:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:#e5eee8;background:#111a17;font-size:14px;font-synthesis:none}
*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.5;cursor:wait}.hidden{display:none!important}.accent{color:#b3e267}.eyebrow{font-weight:800;font-size:10px;letter-spacing:.18em;color:#b0d974}.brand-icon{width:43px;height:43px;display:grid;place-items:center;border-radius:12px;color:#172414;background:#b8e77a;font-size:27px;font-weight:700}.brand-icon.mini{width:30px;height:30px;border-radius:9px;font-size:20px}.login-wrap{min-height:100vh;display:grid;place-items:center;padding:24px;background:radial-gradient(circle at 50% 0%,#2c4633,#111a17 55%)}.login-card{width:min(100%,420px);padding:37px;background:#1b2922;border:1px solid #3b5140;border-radius:20px;box-shadow:0 30px 90px #0007}.login-card h1{font-size:36px;margin:12px 0 4px}.login-card p{color:#a5b7a9;line-height:1.55}.login-card form{display:grid;gap:16px;margin-top:30px}.login-card label,.detail label{font-size:12px;color:#b8c9bb;font-weight:650}.login-card input,.detail input,.detail select,.detail textarea{display:block;width:100%;margin-top:8px;padding:11px 12px;border-radius:9px;border:1px solid #455a48;background:#152019;color:#f0f7ed;outline:none}.login-card input:focus,.detail input:focus,.detail select:focus,.detail textarea:focus,.sidebar-search:focus-within{border-color:#b3e267;box-shadow:0 0 0 2px #b3e26730}.primary{background:#b8e77a;border:0;border-radius:9px;padding:13px 16px;color:#1b291b;font-weight:800;display:flex;justify-content:space-between}.login-hint{font-size:12px}.error{color:#ffafa7;min-height:18px}
.topbar{height:64px;display:flex;justify-content:space-between;align-items:center;padding:0 22px;background:#17231d;border-bottom:1px solid #324338;position:sticky;top:0;z-index:10}.brand{display:flex;align-items:center;gap:9px;font-weight:800;font-size:18px;white-space:nowrap}.brand-sub{font-size:11px;color:#92a496;font-weight:500;margin-left:10px;border-left:1px solid #435547;padding-left:16px}.top-actions{display:flex;align-items:center;gap:13px}.save-state{font-size:11px;color:#aacb9c}.save-state.busy{color:#eec57b}.user-pill{padding:7px 12px;border:1px solid #465b47;background:#29392b;border-radius:99px;font-size:12px}.icon-button,.secondary{border:1px solid #455b47;background:#25342a;color:#dbe8dc;border-radius:8px;padding:9px 12px}.icon-button:hover,.secondary:hover{border-color:#a7d478;background:#314831}.layout{display:grid;grid-template-columns:240px minmax(480px,1fr) 340px;min-height:calc(100vh - 64px)}.sidebar{background:#19261f;border-right:1px solid #33443a;position:sticky;top:64px;height:calc(100vh - 64px);display:flex;flex-direction:column}.sidebar-top{padding:26px 17px 13px}.sidebar-top h2{margin:7px 0;font-size:23px}.sidebar-top h2 span{font-size:11px;background:#314631;padding:5px 7px;color:#bedbaf;border-radius:7px;vertical-align:middle}.sidebar-top p{font-size:12px;line-height:1.5;color:#95a89a;margin:8px 0}.sidebar-search{margin:7px 15px 13px;border:1px solid #3f5544;background:#101c15;border-radius:9px;display:flex;align-items:center;gap:7px;padding:0 10px;color:#a3b6a6}.sidebar-search span{font-size:22px}.sidebar-search input{width:100%;padding:10px 0;border:0;outline:none;background:transparent;color:#f1f7ed;font-size:12px}.filter-tabs{display:flex;gap:4px;background:#15221a;border-radius:9px;padding:4px}.sidebar .filter-tabs{margin:0 15px 12px}.filter-tabs button{flex:1;border:0;background:transparent;color:#98ab9a;border-radius:6px;padding:7px 6px;font-size:11px;font-weight:700}.filter-tabs button.active{background:#3d5836;color:#dbf2c7}.field-list{overflow-y:auto;flex:1;padding:0 9px 15px}.field-option{width:100%;display:flex;align-items:center;text-align:left;gap:10px;border:1px solid transparent;border-radius:9px;color:#e7efe8;background:transparent;padding:9px;margin:2px 0}.field-option:hover{background:#26372a}.field-option.selected{background:#344933;border-color:#6e9957}.field-number{font-weight:850;background:#293c2b;border:1px solid #536d52;border-radius:7px;min-width:35px;padding:6px;text-align:center}.field-option small{display:block;color:#9baea0;margin-top:2px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.field-option .field-name{min-width:0;flex:1;font-size:12px;font-weight:700}.field-option .dot{flex:none}.sidebar-footer{padding:13px;color:#9aac9b;font-size:10px;border-top:1px solid #36463a}.sidebar-footer span{color:#586d59}
.main{min-width:0;padding:28px clamp(18px,2.5vw,42px) 70px;background:#111b16}.page-heading{display:flex;justify-content:space-between;align-items:end;gap:12px;margin-bottom:22px}.page-heading h1{font-size:31px;letter-spacing:-.04em;margin:6px 0 2px}.page-heading p{margin:0;color:#9cae9e}.map-tools{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.secondary{font-size:11px;font-weight:700;white-space:nowrap}.secondary.active{border-color:#b8e77a;color:#b8e77a}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:18px}.stat{background:#1e2c22;border:1px solid #3a4e3c;padding:14px 15px;border-radius:11px}.stat .caption{color:#a5b5a6;font-size:11px}.stat strong{display:block;font-size:25px;margin-top:3px}.stat:nth-child(2) strong{color:#eabc78}.stat:nth-child(3) strong{color:#ec8b72}.stat:nth-child(4) strong{color:#a8cce1}.map-card,.work-card,.activity-card{background:#1b2920;border:1px solid #3b4d3d;border-radius:13px;overflow:hidden;margin-bottom:17px}.section-heading{display:flex;justify-content:space-between;align-items:center;padding:18px 19px;gap:12px}.section-heading h2{margin:4px 0 0;font-size:18px;letter-spacing:-.02em}.map-instruction{color:#9fad9d;font-size:11px;text-align:right}.map-scroll{overflow:auto;padding:0 14px 8px}.map-stage{position:relative;width:100%;max-width:1081px;aspect-ratio:1081/1051;margin:auto;border-radius:8px;overflow:hidden;outline:1px solid #5b6c50;background:#334637}.map-legend{padding:12px 19px 15px;display:flex;flex-wrap:wrap;gap:8px 16px;color:#afc0af;font-size:11px}.dot{width:9px;height:9px;display:inline-block;border-radius:50%;vertical-align:middle;margin-right:4px;box-shadow:0 0 0 2px #ffffff14}.count-pill{font-size:11px;background:#384e31;color:#c9e9b9;padding:4px 8px;border-radius:15px;vertical-align:middle}.compact{min-width:135px}.queue{padding:0 15px 14px}.queue-group{margin-top:6px}.queue-group h3{text-transform:uppercase;letter-spacing:.14em;color:#9eaf9f;font-size:10px;margin:17px 5px 9px}.queue-row{display:flex;align-items:center;gap:10px;border:1px solid #394d3e;border-radius:9px;padding:11px;margin:5px 0;background:#223128}.queue-row:hover{border-color:#6c895e}.queue-main{flex:1;min-width:0;cursor:pointer}.queue-main strong{font-size:13px}.queue-main p{color:#a9bbab;font-size:11px;margin:3px 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.queue-date{font-size:11px;color:#c6d5c5;white-space:nowrap}.queue-date.late{color:#ff9b84}.queue-done{background:#3c5c36;color:#d5f6bf;border:1px solid #71935e;border-radius:7px;padding:7px 9px;font-size:11px;font-weight:700}.empty-list{padding:30px 18px;color:#a5b9a7;text-align:center;font-size:12px;line-height:1.6}.activity{padding:0 19px 12px}.activity-row{display:flex;gap:11px;padding:10px 1px;border-top:1px solid #35493b;font-size:12px}.activity-row .activity-text{flex:1;line-height:1.4}.activity-row small{color:#8fa492}.activity-row b{color:#c2e19c}.activity-row time{color:#93a697;white-space:nowrap;font-size:11px}
.detail{background:#1b2921;border-left:1px solid #3b4e40;position:sticky;top:64px;height:calc(100vh - 64px);overflow-y:auto}.detail-empty{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px;color:#9eaf9f}.detail-empty h2{color:#e0ebde;margin:4px 0}.detail-empty p{max-width:210px;line-height:1.5}.empty-icon{font-size:48px;color:#8fb474}.detail-header{padding:23px 19px 17px;border-bottom:1px solid #3b4b3d;background:#243427}.detail-header .eyebrow{margin-bottom:6px}.detail-header h2{font-size:26px;margin:0 0 5px}.detail-header p{margin:0;color:#acbfaa;font-size:12px}.detail-content{padding:18px}.detail-content .field-meta{display:grid;gap:12px;margin-bottom:24px}.detail textarea{resize:vertical;min-height:67px}.detail h3{font-size:15px;margin:0 0 4px}.detail .tip{font-size:11px;color:#9eaf9e;margin:0 0 14px;line-height:1.45}.job-card{border:1px solid #435745;border-radius:10px;padding:12px;background:#223329;margin:9px 0}.job-top{display:flex;justify-content:space-between;align-items:center;gap:8px}.job-title{font-size:12px;font-weight:750}.status-select{width:auto!important;min-width:125px;margin:0!important;padding:7px!important;font-size:11px;font-weight:700}.status-select.needed{color:#f2be78}.status-select.in_progress{color:#9cd4ef}.status-select.done{color:#b6e3a3}.status-select.not_needed{color:#a6b5aa}.job-options{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:11px}.job-options label:last-child{grid-column:1/-1}.job-options input,.job-options select{font-size:11px;padding:8px!important;margin-top:5px!important}.job-options label{font-size:10px}.detail-hint{color:#9bab9d;font-size:11px;padding:12px 2px 25px;line-height:1.5}.toast{position:fixed;bottom:20px;left:50%;transform:translate(-50%,120px);background:#a9da77;color:#1b2b1d;border-radius:9px;padding:10px 17px;z-index:30;font-weight:700;box-shadow:0 7px 22px #0008;transition:transform .2s}.toast.show{transform:translate(-50%,0)}.toast.error-toast{background:#ed8e79;color:#2d1d1c}
@media(max-width:1250px){.layout{grid-template-columns:190px minmax(400px,1fr) 305px}.brand-sub{display:none}.sidebar-top{padding-left:13px}.page-heading{align-items:start;flex-wrap:wrap}.main{padding:22px 18px 60px}}
@media(max-width:970px){.layout{grid-template-columns:195px minmax(0,1fr)}.detail{grid-column:2;position:static;height:auto;border-left:0;border-top:1px solid #3b4e40}.main{grid-column:2;grid-row:1}.sidebar{grid-row:1/3}.map-stage{min-width:500px}.stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:660px){.topbar{padding:0 12px;height:55px}.brand{font-size:15px}.save-state{display:none}.user-pill{max-width:94px;overflow:hidden;text-overflow:ellipsis}.layout{display:block}.sidebar{position:static;height:auto;border-right:0;border-bottom:1px solid #33443a}.sidebar-top{padding:14px 16px 4px}.sidebar-top p{display:none}.sidebar-search{margin-bottom:7px}.field-list{max-height:135px;display:flex;overflow:auto;padding:0 12px 6px}.field-option{flex:0 0 128px}.field-option .dot{display:none}.sidebar-footer{display:none}.main{padding:20px 12px}.page-heading h1{font-size:25px}.map-tools{justify-content:start}.map-stage{min-width:650px}.map-scroll{padding:0 10px 8px}.detail{height:auto}.detail-content{display:block}.stats{gap:6px}.stat{padding:11px}.stat strong{font-size:20px}.section-heading{padding:15px 13px}.map-instruction{max-width:110px}.queue-row{flex-wrap:wrap}.queue-main{min-width:52%}}

/* Interactive schematic map */
.small-primary{font-size:11px;padding:10px 13px;gap:8px;white-space:nowrap}
.ownership-banner{display:flex;align-items:center;gap:14px;margin:-3px 0 17px;padding:14px 16px;background:#354424;border:1px solid #8ba95e;border-radius:11px;color:#e9f5d2}
.ownership-banner>span{font-size:25px;color:#c8ed7b}.ownership-banner>div{flex:1}.ownership-banner strong{font-size:13px}.ownership-banner p{margin:3px 0 0;color:#c3d4af;font-size:11px}
.map-controls{display:flex;align-items:center;gap:5px;flex-wrap:wrap;justify-content:flex-end}.map-controls .icon-button{padding:5px 9px;min-width:29px;font-size:16px;font-weight:700}
.map-controls .map-instruction{margin-right:8px}.map-stage{display:block;user-select:none;touch-action:pan-x pan-y;background:#1e3326}
.parcel{cursor:pointer;outline:none}.parcel polygon{fill:#475c49;stroke:#6f8b6e;stroke-width:1.5;transition:fill .16s,stroke .16s}.parcel.owned polygon{fill:#78ac56;stroke:#c9ee9a;stroke-width:2}.parcel.other polygon{fill:#375445;stroke:#68846b}.parcel.unknown polygon{fill:#46574b;stroke:#708474;stroke-dasharray:5 3}
.parcel:hover polygon,.parcel:focus polygon{fill:#a9d978;stroke:#f1ffbd;stroke-width:3}.parcel.selected polygon{stroke:#fff8c1;stroke-width:4;filter:drop-shadow(0 0 6px #d8ed8b)}
.parcel text{fill:#f3f8e9;font:700 14px Inter,system-ui,sans-serif;pointer-events:none;paint-order:stroke;stroke:#102319;stroke-width:2.5}.parcel.other text,.parcel.unknown text{fill:#d2ddcf}
.parcel-work{stroke:#13241b;stroke-width:2;pointer-events:none}.parcel-work.overdue{fill:#f17d65}.parcel-work.needed{fill:#f1c264}.parcel-work.progress{fill:#80c8e5}.compass{fill:#d4e8cb;font:700 17px Inter,system-ui,sans-serif;letter-spacing:.08em}
.dot.owned{background:#9bd475}.dot.other{background:#496c56}.map-note{margin:0;padding:0 19px 15px;color:#8fa992;font-size:10px;line-height:1.4}
.ownership-dialog{width:min(94vw,480px);padding:27px;border:1px solid #71945b;border-radius:17px;background:#1c2c21;color:#e5eee4;box-shadow:0 22px 65px #0009}
.ownership-dialog::backdrop{background:#08130edb}.ownership-dialog h2{margin:5px 0 8px;font-size:23px}.ownership-dialog p{color:#aabdab;line-height:1.5;font-size:12px}.ownership-dialog label{display:block;margin:17px 0 7px;color:#dcebd6;font-weight:700;font-size:12px}.ownership-dialog textarea{width:100%;resize:vertical;padding:11px;border:1px solid #658064;border-radius:8px;background:#132019;color:#e5eee4}.ownership-dialog textarea:focus{outline:2px solid #a9db76}.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:12px}.dialog-actions .primary{display:inline-flex;align-items:center}
@media(max-width:660px){.map-controls{justify-content:start}.map-controls .map-instruction{width:100%;max-width:none;text-align:left}.ownership-banner{align-items:flex-start;flex-wrap:wrap}.ownership-banner .secondary{margin-left:39px}.map-stage{min-width:650px}}
