:root{--ink:#071410;--forest:#0d261d;--panel:#112e24;--line:#24483a;--mint:#8df0b4;--lime:#c9f66f;--cream:#f1f4e9;--muted:#9aafa5;--amber:#f3bd65;--danger:#ff827a;--white:#fff;--shadow:0 20px 70px #00150e66}
*{box-sizing:border-box}
body{margin:0;background:var(--ink);color:var(--cream);font-family:"Segoe UI",system-ui,sans-serif;min-height:100vh}
button,input,select,textarea{font:inherit}
button{cursor:pointer}
.hidden{display:none!important}
.eyebrow{color:var(--mint);font:700 11px/1.4 "Space Mono",monospace;letter-spacing:.14em;text-transform:uppercase;margin:0 0 10px}
.login-shell{min-height:100vh;display:grid;grid-template-columns:minmax(380px,540px) 1fr;background:#06120e}
.login-card{padding:clamp(40px,7vw,100px);display:flex;flex-direction:column;justify-content:center;position:relative;z-index:2}
.login-card h1{font:700 clamp(48px,7vw,76px)/.86 "Space Mono",monospace;letter-spacing:-.07em;margin:24px 0 18px;color:var(--cream);max-width:470px}.brand-lockup{display:flex;flex-wrap:wrap;align-items:baseline;column-gap:.17em;row-gap:.03em}.brand-word{display:inline-flex;align-items:baseline;white-space:nowrap}.brand-word b{font-size:1em}.brand-word small,.brand-join{font-size:.31em;line-height:1;letter-spacing:.01em;color:#c9d7d0}.brand-join{margin:0 -.18em}
.tagline{font-size:20px;color:var(--muted);max-width:340px;line-height:1.5;margin:0 0 50px}
.brand-logo{display:block;object-fit:contain;filter:drop-shadow(0 10px 24px #0008)}
.login-logo{width:112px;height:112px;margin:-12px 0 4px -12px}
.sidebar-logo{width:46px;height:46px;flex:0 0 46px;margin-left:-7px}
form{display:grid;gap:18px}.login-card form{max-width:360px}
label{display:grid;gap:8px;color:#c7d2cc;font-size:13px;font-weight:600}
input,select,textarea{width:100%;border:1px solid var(--line);border-radius:10px;background:#0b2018;color:var(--cream);padding:13px 14px;outline:none}
input:focus,select:focus,textarea:focus{border-color:var(--mint);box-shadow:0 0 0 3px #8df0b41a}
button.primary,.primary-link{border:0;border-radius:10px;background:var(--mint);color:#062015;padding:14px 18px;font-weight:700;text-decoration:none;text-align:center}
button.primary:hover,.primary-link:hover{background:var(--lime)}
.form-error{color:var(--danger);font-size:13px;min-height:18px;margin:0}.fine-print{font-size:11px;color:#688176;max-width:360px;margin-top:22px}
.login-art{position:relative;overflow:hidden;background:linear-gradient(140deg,#183e2c,#0a1a14 65%)}
.login-art:before{content:"";position:absolute;inset:0;background:radial-gradient(circle at 62% 42%,#9aea8833,transparent 28%),linear-gradient(125deg,transparent 30%,#77be7330 30.2%,transparent 31%),linear-gradient(52deg,transparent 58%,#77be7330 58.2%,transparent 59%)}
.scan-grid{position:absolute;inset:-30%;transform:perspective(500px) rotateX(58deg) rotateZ(-18deg);background-image:linear-gradient(#a8e5a31a 1px,transparent 1px),linear-gradient(90deg,#a8e5a31a 1px,transparent 1px);background-size:60px 60px}
.target{position:absolute;width:86px;height:86px;border:1px solid var(--lime);border-radius:50%}.target:before,.target:after{content:"";position:absolute;background:var(--lime)}.target:before{left:42px;top:-12px;width:1px;height:108px}.target:after{top:42px;left:-12px;width:108px;height:1px}.target i{position:absolute;inset:28px;border-radius:50%;background:#c9f66f33;box-shadow:0 0 30px var(--lime)}.target-one{left:30%;top:34%}.target-two{right:18%;bottom:25%;transform:scale(.62)}
.art-caption{position:absolute;right:7%;bottom:7%;border-left:2px solid var(--lime);padding-left:14px;display:grid}.art-caption span{font:11px "Space Mono";color:var(--lime)}.art-caption strong{font:20px "Space Mono"}
.app-shell{display:grid;grid-template-columns:250px 1fr;min-height:100vh}
.sidebar{background:#081a14;border-right:1px solid #173329;padding:28px 20px;display:flex;flex-direction:column;position:sticky;top:0;height:100vh}
.sidebar-brand{display:flex;align-items:center;gap:13px;margin:5px 4px 38px}.sidebar-brand strong.expanded-brand{max-width:172px;font:700 21px/.82 "Space Mono",monospace;letter-spacing:-.05em}.sidebar-brand .brand-lockup{column-gap:.12em;row-gap:.04em}.sidebar-brand .brand-word small,.sidebar-brand .brand-join{font-size:.39em}.sidebar-brand .brand-join{margin:0 -.1em}
nav{display:grid;gap:6px}nav button{border:0;background:transparent;color:#829a8f;border-radius:8px;padding:12px;text-align:left;display:flex;gap:13px;align-items:center;font-weight:600}nav button span{font-family:"Space Mono";width:20px;color:#5c7f6f}nav button:hover,nav button.active{background:#123126;color:var(--cream)}nav button.active span{color:var(--lime)}
.safety-note{margin-top:auto;border:1px solid #23513d;background:#0c241b;border-radius:10px;padding:14px;display:flex;gap:11px;align-items:flex-start}.safety-note div{display:grid;gap:2px}.safety-note strong{font-size:11px;color:var(--mint)}.safety-note small{font-size:10px;color:#6e8d7f}.pulse{width:8px;height:8px;border-radius:50%;background:var(--mint);box-shadow:0 0 0 5px #8df0b41c;margin-top:4px}
.logout{background:transparent;border:0;color:#718a7f;padding:18px 12px 0;text-align:left;font-size:12px}
main{min-width:0;background:linear-gradient(145deg,#0d2019,#071410 58%)}
.topbar{padding:34px 42px 24px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #173329}.topbar h2{font-size:26px;margin:0;letter-spacing:-.03em}.user-chip{display:flex;align-items:center;gap:11px}.user-chip>span{width:38px;height:38px;border-radius:10px;background:#1b4434;color:var(--mint);display:grid;place-items:center;font:700 12px "Space Mono"}.user-chip div{display:grid}.user-chip strong{font-size:12px}.user-chip small{font-size:10px;color:var(--muted);text-transform:capitalize}
.content{padding:34px 42px 60px;max-width:1500px;margin:auto}.notice{margin:18px 42px 0;border:1px solid #377659;background:#153a2b;color:var(--mint);padding:12px 15px;border-radius:8px;font-size:13px}
.stat-grid{display:grid;grid-template-columns:repeat(4,minmax(150px,1fr));gap:14px;margin-bottom:22px}.stat{background:linear-gradient(145deg,#15362a,#0c241b);border:1px solid var(--line);border-radius:14px;padding:20px;min-height:130px;position:relative;overflow:hidden}.stat:after{content:"";position:absolute;width:90px;height:90px;border:1px solid #9aeab31a;border-radius:50%;right:-35px;bottom:-35px}.stat small{color:var(--muted);font-size:11px}.stat strong{display:block;font:700 34px "Space Mono";margin:14px 0 5px}.stat em{font-style:normal;color:var(--mint);font-size:10px}
.dashboard-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(290px,.8fr);gap:20px}.panel{background:#0c2119cc;border:1px solid #1d3b30;border-radius:14px;overflow:hidden}.panel-header{padding:18px 20px;border-bottom:1px solid #1c3a2e;display:flex;align-items:center;justify-content:space-between}.panel-header h3{font-size:14px;margin:0}.panel-header a,.text-button{font:10px "Space Mono";text-transform:uppercase;letter-spacing:.08em;color:var(--mint);background:transparent;border:0;text-decoration:none}.panel-body{padding:20px}
.map{height:330px;background:#0a1c15;border-radius:10px;position:relative;overflow:hidden}.map svg{width:100%;height:100%}.map .grid-line{stroke:#365b492c;stroke-width:1}.map .boundary{fill:#86e2a10d;stroke:#4f9572;stroke-width:2}.map .point{fill:var(--lime);stroke:#071410;stroke-width:4}.map .area{fill:#f3bd6566;stroke:var(--amber);stroke-width:2}.map-legend{position:absolute;left:12px;bottom:12px;background:#071410dd;border:1px solid var(--line);border-radius:7px;padding:8px 10px;display:flex;gap:13px;font-size:9px;color:var(--muted)}.map-legend i{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:5px}.map-legend span:first-child i{background:var(--lime)}.map-legend span:last-child i{background:var(--amber)}
.queue{display:grid}.queue-item{padding:14px 0;border-bottom:1px solid #1a382c}.queue-item:first-child{padding-top:0}.queue-item:last-child{border:0}.queue-top{display:flex;justify-content:space-between;gap:12px}.queue-item strong{font-size:12px}.queue-item p{margin:7px 0 0;color:var(--muted);font-size:11px}.confidence{font:700 11px "Space Mono";color:var(--mint)}
.badge{display:inline-flex;align-items:center;border:1px solid #326047;border-radius:999px;padding:4px 8px;font:9px "Space Mono";text-transform:uppercase;color:var(--mint);white-space:nowrap}.badge.pending,.badge.needs_review{color:var(--amber);border-color:#725a2d}.badge.rejected{color:var(--danger);border-color:#743f3c}.badge.approved,.badge.confirmed,.badge.processed{color:var(--mint)}
.toolbar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:18px}.toolbar p{font-size:12px;color:var(--muted);margin:0}.toolbar-actions{display:flex;gap:9px}.secondary{background:#112d22;border:1px solid var(--line);color:var(--cream);padding:10px 13px;border-radius:8px;font-size:11px;font-weight:700;text-decoration:none}.secondary:hover{border-color:#4a866c}
.data-panel{background:#0b2119;border:1px solid #1e3d31;border-radius:14px;overflow:auto}table{width:100%;border-collapse:collapse;min-width:760px}th,td{text-align:left;padding:15px 17px;border-bottom:1px solid #19372b}th{color:#708a7e;font:9px "Space Mono";letter-spacing:.08em;text-transform:uppercase}td{font-size:12px;color:#cbd7d1}td strong{color:var(--cream)}tr:last-child td{border-bottom:0}.mono{font-family:"Space Mono";font-size:10px}.muted{color:var(--muted)}
.imagery-thumb{width:82px;height:54px;object-fit:cover;border-radius:6px;border:1px solid var(--line);background:#071410}
.decision-actions{display:flex;gap:6px}.decision-actions button{border-radius:6px;padding:6px 8px;background:transparent;font-size:10px;font-weight:700}.approve{border:1px solid #43805f;color:var(--mint)}.reject{border:1px solid #70413e;color:var(--danger)}
.empty{padding:50px;text-align:center;color:var(--muted)}
.modal-backdrop{position:fixed;inset:0;background:#020b08c9;display:grid;place-items:center;z-index:20;padding:20px}.modal{width:min(540px,100%);background:#0e281e;border:1px solid #2b5342;border-radius:16px;box-shadow:var(--shadow);padding:24px}.modal-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:22px}.modal h3{margin:0}.modal-close{border:0;background:transparent;color:var(--muted);font-size:20px}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.form-grid .wide{grid-column:1/-1}.form-actions{display:flex;justify-content:flex-end;gap:9px;margin-top:8px}.modal textarea{min-height:80px;resize:vertical}
.admin-grid{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(360px,1.2fr);gap:20px;margin-bottom:20px}.admin-create form{gap:13px}.access-links{display:grid;grid-template-columns:1fr 1fr;gap:12px}.access-card{position:relative;display:grid;gap:7px;text-align:left;border:1px solid var(--line);border-radius:12px;background:#0a1c15;color:var(--cream);padding:18px 70px 18px 18px;text-decoration:none}.access-card:hover{border-color:var(--mint)}.access-card span{font-size:10px;color:var(--muted);overflow-wrap:anywhere}.access-card b{position:absolute;right:15px;top:50%;transform:translateY(-50%);color:var(--mint);font-size:10px}.admin-users-panel{margin-bottom:20px}.admin-users{display:grid}.admin-users article{display:grid;grid-template-columns:minmax(220px,1fr) 150px 100px auto auto;gap:12px;align-items:end;padding:16px 20px;border-bottom:1px solid #19372b}.admin-users article:last-child{border-bottom:0}.admin-user-identity{display:grid;gap:4px}.admin-user-identity span,.admin-user-identity small{font-size:10px;color:var(--muted)}.admin-users label{gap:5px}.admin-enabled{display:flex;align-items:center;padding-bottom:11px}.admin-enabled input{width:auto}
.library-layout{display:grid;grid-template-columns:minmax(300px,.8fr) minmax(380px,1.2fr);gap:20px;margin-bottom:20px}.panel-header div{display:grid;gap:4px}.panel-header small{font-size:10px;color:var(--muted)}.capture-panel textarea{min-height:92px;resize:vertical}.photo-picker{border:1px dashed #47765f;border-radius:12px;padding:18px;background:#0a1c15;cursor:pointer}.photo-picker input{position:absolute;width:1px;height:1px;opacity:0}.photo-picker span{color:var(--mint);font-weight:700}.photo-picker small{color:var(--muted);font-weight:400}.target-species{display:grid}.species-target{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:15px 20px;border-bottom:1px solid #19372b}.species-target:last-child{border-bottom:0}.species-target>div{display:grid;gap:3px}.species-target strong{font-size:12px}.species-target em{font-size:10px;color:var(--muted);font-style:italic}.species-target button{min-width:102px;border-radius:999px;padding:7px 10px;font:700 9px "Space Mono";text-transform:uppercase}.species-target button:disabled{cursor:default;opacity:.75}.target-on{border:1px solid #4e8d6c;background:#163d2c;color:var(--mint)}.target-off{border:1px solid #4a5751;background:#101d18;color:var(--muted)}.reference-gallery-panel{margin-bottom:20px}.reference-gallery{padding:20px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.reference-card{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:#091a14}.reference-photo{height:190px;position:relative;background:#071410}.reference-photo img{width:100%;height:100%;object-fit:cover}.reference-photo span{position:absolute;left:9px;bottom:9px;border:1px solid #69ac83;background:#06160fd9;border-radius:999px;padding:5px 8px;font:700 9px "Space Mono";color:var(--mint)}.reference-card>div:last-child{padding:14px;display:grid;gap:5px}.reference-card strong{font-size:13px}.reference-card em,.reference-card small{font-size:10px;color:var(--muted)}.reference-card p{font-size:11px;color:#bccac3;line-height:1.5;margin:5px 0}
.species-target>div:first-child small{font-size:9px;color:#6f8d80}.species-actions{display:flex!important;align-items:center;gap:7px}.species-target .treatment-link{border-radius:8px;text-transform:none}.herbicide-panel{margin-bottom:20px}.herbicide-list{display:grid}.herbicide-list>article{display:grid;grid-template-columns:minmax(190px,1.2fr) repeat(3,minmax(120px,.8fr)) 100px auto;gap:14px;align-items:center;padding:15px 20px;border-bottom:1px solid #19372b}.herbicide-list>article:last-child{border-bottom:0}.herbicide-list article>div{display:grid;gap:4px}.herbicide-list strong{font-size:12px}.herbicide-list span{font-size:10px;color:#c4d2cb}.herbicide-list small{font:9px "Space Mono";text-transform:uppercase;color:#708a7e}.herbicide-list a{font:700 9px "Space Mono";color:var(--mint);text-decoration:none}.wide-modal{width:min(760px,100%);max-height:90vh;overflow:auto}.safety-copy{border-left:2px solid var(--amber);padding:10px 12px;background:#2b2214;color:#dbc99f;font-size:11px;line-height:1.5}.check-label{display:flex;align-items:center;gap:9px}.check-label input{width:auto}.check-label{align-self:end;padding-bottom:12px}
.species-target .identification-warning{color:var(--amber)}.reference-links{display:flex!important;gap:12px;margin-top:4px}.reference-links a{font:700 9px "Space Mono";color:var(--mint);text-decoration:none}.herbicide-list b{color:var(--amber);font-weight:700}
@media(max-width:950px){.login-shell{grid-template-columns:1fr}.login-art{display:none}.app-shell{grid-template-columns:74px 1fr}.sidebar{padding:25px 12px}.sidebar-brand strong,nav button:not(.active){font-size:0}.sidebar-brand{margin-left:9px}.sidebar-brand .sidebar-logo{width:38px;height:38px;flex-basis:38px;margin-left:-3px}nav button{justify-content:center;font-size:0}nav button span{font-size:18px;text-align:center}.safety-note,.logout{display:none}.stat-grid{grid-template-columns:1fr 1fr}.dashboard-grid,.admin-grid,.library-layout{grid-template-columns:1fr}.reference-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.herbicide-list>article{grid-template-columns:1fr 1fr}.admin-users article{grid-template-columns:1fr 130px 100px}.admin-users article button{width:100%}.topbar,.content{padding-left:24px;padding-right:24px}}
@media(max-width:620px){.app-shell{display:block}.sidebar{position:fixed;left:0;right:0;bottom:0;top:auto;height:64px;z-index:10;display:block;border-right:0;border-top:1px solid var(--line);padding:7px 10px;overflow:hidden}.sidebar-brand,.safety-note,.logout{display:none}nav{display:flex;justify-content:flex-start;overflow-x:auto;scrollbar-width:none}nav button,nav button:not(.active){font-size:0;padding:11px 15px;flex:0 0 auto}nav button span{font-size:18px}.topbar{padding:22px 18px}.user-chip div{display:none}.content{padding:22px 18px 90px}.notice{margin:12px 18px}.stat-grid{grid-template-columns:1fr 1fr;gap:9px}.stat{padding:15px;min-height:110px}.stat strong{font-size:26px}.dashboard-grid,.admin-grid,.library-layout{gap:12px}.reference-gallery{grid-template-columns:1fr;padding:14px}.reference-photo{height:230px}.species-target{align-items:flex-start;padding:14px}.species-actions{align-items:flex-end!important}.herbicide-list>article{grid-template-columns:1fr}.access-links{grid-template-columns:1fr}.admin-users article{grid-template-columns:1fr}.admin-enabled{padding-bottom:0}.form-grid{grid-template-columns:1fr}.form-grid .wide{grid-column:auto}}
