:root{font-family:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;color:#18332f;background:#eff2ec;font-size:16px}*{box-sizing:border-box}body{margin:0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{opacity:.55;cursor:not-allowed}.topbar{height:70px;display:flex;align-items:center;justify-content:space-between;padding:0 26px;background:#173a35;color:#fff}.brand{display:flex;align-items:center;gap:12px}.brand-mark{display:grid;place-items:center;width:38px;height:38px;border-radius:12px;background:#b9d4aa;color:#173a35;font-size:28px}.brand strong{display:block;font-size:20px;letter-spacing:-.03em}.brand small{display:block;color:#c5d5cd;font-size:13px}.mode-badge{padding:8px 12px;border:1px solid #68847b;border-radius:40px;font-size:13px;color:#e1e8dd}.workspace{display:grid;grid-template-columns:minmax(0,1fr) 430px;height:calc(100dvh - 70px);min-height:500px}.map-column{min-width:0;display:flex;flex-direction:column}.map{position:relative;flex:1;overflow:hidden;background:#dfe8dc;touch-action:none;cursor:grab}.map.dragging{cursor:grabbing}.tiles,.markers{position:absolute;inset:0;overflow:hidden}.tiles img{position:absolute;width:256px;height:256px;max-width:none;user-select:none;pointer-events:none}.tree-pin,.anchor-pin{position:absolute;transform:translate(-50%,-50%);border:2px solid #fff;box-shadow:0 2px 7px #14302e55}.tree-pin{width:16px;height:16px;border-radius:50%;background:#275d50;padding:0;z-index:2}.tree-pin:hover,.tree-pin:focus-visible{width:23px;height:23px;z-index:4;outline:2px solid #f2ad62}.tree-pin.selected{width:27px;height:27px;background:#dd7045;border:4px solid white;z-index:6}.anchor-pin{width:24px;height:24px;border-radius:50%;background:#297bc5;z-index:5;pointer-events:none}.anchor-pin::after{content:'';position:absolute;inset:-8px;border:2px solid #297bc577;border-radius:50%}.map-tools{position:absolute;z-index:10;right:16px;top:16px;display:flex;flex-direction:column;gap:8px}.map-tools button{min-width:44px;min-height:44px;border:1px solid #d1dfd7;background:white;border-radius:10px;color:#173a35;font-weight:700;box-shadow:0 3px 12px #15312a22}.map-tools button:first-child{padding:0 12px}.map-toast{position:absolute;z-index:12;bottom:30px;left:16px;right:16px;max-width:460px;padding:12px 14px;background:#173a35;color:white;border-radius:10px;box-shadow:0 4px 18px #0003}.map-credit{position:absolute;bottom:4px;right:6px;background:#ffffffe5;padding:2px 4px;font-size:11px}.map-credit a{color:#245d72}.map-caption{margin:0;padding:12px 20px;background:#e7eee6;color:#416158;line-height:1.4;font-size:13px}.panel{overflow-y:auto;background:#f9faf6;border-left:1px solid #d9e3da;padding:0 24px 26px}.tabs{display:flex;gap:20px;position:sticky;top:0;z-index:15;background:#f9faf6;border-bottom:1px solid #dce5dc}.tabs button{padding:18px 2px 14px;background:none;border:0;border-bottom:3px solid transparent;color:#637c70;font-weight:650;white-space:nowrap}.tabs button.active{border-color:#ca6a42;color:#18332f}.section-heading{margin:23px 0 19px}.section-heading h1{font-size:24px;margin:0 0 5px;letter-spacing:-.035em}.section-heading p{color:#63756b;margin:0;font-size:14px;line-height:1.5}label,.search-label{font-weight:650;font-size:14px;display:block;margin:16px 0 7px}input[type=search],input[type=email],input:not([type]),textarea,select{width:100%;padding:11px 12px;border:1px solid #cbd9d0;border-radius:9px;background:white;color:#18332f;outline-color:#3c7c66}textarea{resize:vertical}.gps-info{margin:12px 0;padding:10px 12px;border-radius:8px;background:#e7eee6;color:#3c5d52;font-size:13px;line-height:1.4}.candidates{display:grid;gap:8px;max-height:290px;overflow:auto}.candidate{display:flex;justify-content:space-between;align-items:center;text-align:left;gap:8px;border:1px solid #dde6dd;border-radius:10px;background:#fff;padding:11px 12px;color:#18332f}.candidate:hover,.candidate:focus-visible{border-color:#397b62;background:#f1f7ef}.candidate strong,.candidate small{display:block}.candidate strong{font-size:14px}.candidate small{font-size:12px;color:#668076;margin-top:4px}.candidate .distance{color:#53786b;font-size:13px;white-space:nowrap}.selected-card{margin-top:19px;background:#e7efe6;border-left:4px solid #c96e42;border-radius:9px;padding:15px}.selected-card .eyebrow{font-size:12px;font-weight:750;letter-spacing:.08em;text-transform:uppercase;color:#527365}.selected-card h2{font-size:20px;line-height:1.25;margin:5px 0}.selected-card p{font-size:13px;line-height:1.5;margin:6px 0;color:#416154}.selected-card .metrics{display:flex;flex-wrap:wrap;gap:6px;margin-top:10px}.selected-card .metrics span{background:#fff;border-radius:6px;padding:5px 7px;font-size:12px}.selected-card button{margin-top:12px;border:1px solid #6b9782;border-radius:7px;padding:8px 11px;background:#fff;color:#1d5540;font-weight:650}#observation-form{margin-top:24px;border-top:1px solid #dce5dc;padding-top:16px}#observation-form h2{margin:0 0 17px;font-size:19px}fieldset{padding:0;margin:0;border:0}legend{font-size:14px;font-weight:650;margin-bottom:9px}.choice-row{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}.choice-row label{margin:0}.choice-row input{position:absolute;opacity:0}.choice-row span{display:grid;place-items:center;min-height:58px;padding:5px;border:1px solid #cad7ce;border-radius:8px;background:#fff;color:#33564a;text-align:center;font-size:13px;font-weight:650}.choice-row input:checked+span{border:2px solid #286c53;background:#e0efdf}.choice-row input:focus-visible+span{outline:3px solid #ecaa61}.optional{font-weight:400;color:#657b6e}.form-context{color:#5e766a;font-size:13px;line-height:1.5}.save-button{width:100%;margin-top:8px;border:0;border-radius:9px;background:#bc633f;color:#fff;font-weight:700;padding:13px}.save-button:hover{background:#a55232}.form-message{min-height:20px;color:#235945;font-size:14px}.history-actions{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}.history-actions button,.auth-box button{border:1px solid #bcd1c2;border-radius:7px;background:#fff;color:#225743;padding:8px 9px;font-weight:650;font-size:13px}.history-list{display:grid;gap:9px}.history-item{border:1px solid #dae5da;border-radius:9px;background:#fff;padding:13px}.history-item strong{font-size:15px}.history-item p{margin:5px 0;font-size:13px;color:#536e61;overflow-wrap:anywhere}.history-item small{color:#687d71}.history-item button{border:0;padding:4px 0;background:none;color:#245e50;text-decoration:underline}.status-chip{display:inline-block;padding:3px 7px;margin-left:5px;border-radius:5px;background:#e7efe4;font-size:12px}.status-chip.critical{background:#f9d9ce;color:#813d28}.status-chip.monitor{background:#fff0d4;color:#75560e}.auth-box{margin-top:25px;border-top:1px solid #dce5dc;padding-top:17px}.auth-box strong{font-size:14px}.auth-box p{font-size:13px;color:#5a7166}.auth-box form{display:flex;gap:6px}.auth-box input{min-width:0}.auth-box button{white-space:nowrap}.auth-box #sign-out{margin-top:8px}@media(max-width:850px){.topbar{height:62px;padding:0 15px}.brand strong{font-size:17px}.brand small{font-size:12px}.mode-badge{font-size:11px;padding:6px 8px}.workspace{display:block;height:auto;min-height:0}.map-column{height:48dvh;min-height:310px}.panel{height:auto;max-height:none;padding:0 18px 30px;border-left:0}.map-tools{top:10px;right:10px}.map-tools button:first-child span{display:none}.map-caption{font-size:12px;padding:8px 14px}.candidates{max-height:210px}}@media(max-width:360px){.tabs{gap:12px}.tabs button{font-size:13px}.choice-row span{font-size:12px}.brand-mark{display:none}}
/* Provisional tree workflow */
.tree-pin.provisional{background:#73549a;border-radius:5px;transform:translate(-50%,-50%) rotate(45deg)}.tree-pin.provisional.selected{background:#cf6940}.add-tree-toggle{width:100%;margin:13px 0 3px;padding:11px 12px;border:1px solid #607b69;border-radius:9px;background:#fff;color:#285846;font-weight:700;text-align:left}.add-tree-toggle:hover{background:#eaf3e9}.new-tree-form{padding:15px;margin-top:10px;border:1px solid #d6cce4;border-radius:10px;background:#f5f2f8}.new-tree-form h2{font-size:19px;margin:0 0 6px}.new-tree-form p{font-size:13px;line-height:1.5;color:#5d6470}.position-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.position-actions button{padding:8px 10px;border:1px solid #8873a1;border-radius:7px;background:#fff;color:#61477c;font-size:13px;font-weight:650}.position-actions span{font-size:13px;color:#534b65}.nearby-warning{margin-top:11px;font-size:13px;line-height:1.5;color:#665039}.nearby-warning a{color:#61477c}.confirmation{display:flex;align-items:flex-start;gap:9px;line-height:1.4;font-weight:500;margin:18px 0 8px}.confirmation input{width:18px;height:18px;margin:1px 0 0;flex:none}.new-tree-form .save-button{background:#674f85}.new-tree-form .save-button:hover{background:#553f72}
.nearby-warning button{border:0;background:none;padding:3px 0;color:#61477c;text-align:left;text-decoration:underline;font-size:13px}.nearby-warning button:hover{color:#3d2b54}
/* Field interface v2 */
[hidden]{display:none!important}.workspace{height:calc(100dvh - 96px)}.header-actions{display:flex;align-items:center;gap:10px}.header-actions button{border:1px solid #879f95;background:#244b41;color:white;padding:9px 12px;border-radius:8px;font-size:13px}.tabs{gap:0;justify-content:space-between}.tabs button{font-size:14px}.gps-info{margin:12px 0 5px}.zone-info{font-size:13px;color:#2e6752;margin:0 0 6px}.map-tools{align-items:flex-end}.map-tools button{padding:7px 10px;font-size:14px}.data-credit{padding:5px 20px;font-size:11px;line-height:16px;background:#e8eee6;color:#456050}.data-credit a{color:inherit}.measure-grid{display:grid;grid-template-columns:1fr;gap:0}.measure-grid label{font-size:13px;margin-top:10px}.measure-grid input{margin-top:6px}.new-tree-form{margin:18px 0;background:#f4f3f8}#edit-tree-form{margin-top:18px}#edit-tree-form>button[type=button],#cancel-observation-edit{margin-top:8px;padding:9px 10px;background:#fff;color:#37584a;border:1px solid #b7caba;border-radius:7px}.gps-dot{position:absolute;width:18px;height:18px;background:#1976e8;border:3px solid white;border-radius:50%;transform:translate(-50%,-50%);box-shadow:0 1px 5px #0c317b66;z-index:8;pointer-events:none}.gps-dot.stale{background:#819ab4}.gps-accuracy{position:absolute;background:#2979e320;border:1px solid #2979e355;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;z-index:1}.chosen-point{position:absolute;transform:translate(-50%,-50%);border:2px solid #b05a13;background:white;color:#a24b07;width:28px;height:28px;border-radius:50%;display:grid;place-items:center;font-weight:700;z-index:7;pointer-events:none}.nearby-warning{display:grid;gap:5px}.panel>.gps-info{position:relative}.history-item .history-actions{margin:10px 0 0}#search-summary{font-size:13px}.tree-pin{min-width:16px;min-height:16px}#edit-tree-context{font-size:13px}.header-actions #undo:disabled{opacity:.45}.map-column .map-caption{font-size:12px}
@media(min-width:1100px){.measure-grid{grid-template-columns:repeat(3,1fr);gap:8px}.measure-grid input{padding:9px 7px;min-width:0;width:100%}.measure-grid label{min-width:0;font-size:12px}}
@media(max-width:850px){.workspace{height:auto}.header-actions{gap:5px}.header-actions button{font-size:11px;padding:7px;max-width:105px}.mode-badge{max-width:110px;text-align:center}.map-column{height:45dvh}.data-credit{padding:8px 14px;font-size:11px}.panel{padding-bottom:30px}.tabs{top:0}.map-tools button{min-height:40px;font-size:12px}#stop-gps,#follow-gps{padding:5px 8px}}

.measure-details{margin-top:17px;border:1px solid #d6dfd3;border-radius:8px;padding:10px 12px;background:#ffffffb0}.measure-details summary{font-size:14px;font-weight:650;cursor:pointer;color:#3a5e4b}.header-actions #undo{min-width:80px;white-space:nowrap}.new-tree-form .form-message:empty{display:none}

.back-search{margin:15px 0 3px;padding:9px 10px;background:white;border:1px solid #bdd0c3;color:#28533f;border-radius:8px;font-weight:650}#detail-heading{font-size:20px;margin:8px 0}#detail-heading:focus{outline:none}#detail-view .selected-card{margin-top:12px}#detail-view #edit-tree-form:focus,#observation-form:focus{outline:none}#edit-tree-form,#observation-form{scroll-margin-top:65px}.street-quality{font-size:13px;line-height:1.5;background:#fff5dd;padding:9px 10px;border-radius:7px}.street-quality summary{cursor:pointer;font-weight:650}

#detail-view{scroll-margin-top:62px}#detail-heading{scroll-margin-top:62px}.street-quality ul{padding-left:18px}.street-quality li{margin:4px 0}

.point-prompt{position:absolute;z-index:25;padding:15px;background:#fff;border:1px solid #b8cfc2;border-radius:12px;box-shadow:0 5px 24px #14362c40;color:#18332f;cursor:default;touch-action:auto}.point-prompt strong{font-size:16px;line-height:1.35;display:block}.point-prompt p{font-size:12px;color:#537366;line-height:1.45;margin:7px 0 12px;overflow-wrap:anywhere}.point-prompt>div{display:flex;gap:8px}.point-prompt button{padding:9px 14px;min-height:42px;border-radius:8px;border:1px solid #a9bfaf;background:#fff;color:#28523e;font-weight:650;font-size:14px}.point-prompt #confirm-map-add{background:#285e49;color:#fff;border-color:#285e49}.point-prompt button:focus-visible{outline:3px solid #e9aa62;outline-offset:2px}#new-tree-form{scroll-margin-top:64px}.map:focus-visible{outline:3px solid #d58b43;outline-offset:-3px}

.coordinate-entry{margin:15px 0;padding:12px;border:1px solid #c7d5ca;border-radius:9px;background:#fff}.coordinate-entry legend{padding:0 5px;font-size:14px;color:#2a5a43;margin:0}.coordinate-entry>p{margin:3px 0 8px;font-size:12px;color:#5b7365}.coordinate-fields{display:grid;grid-template-columns:1fr 1fr;gap:9px}.coordinate-fields label{font-size:13px;min-width:0;margin:0 0 8px}.coordinate-fields input{width:100%;min-width:0;margin-top:6px;padding:9px 8px}.coordinate-entry button{padding:9px 11px;border:1px solid #91ad99;border-radius:7px;color:#28543f;background:#edf4eb;font-size:13px;font-weight:650}.coordinate-entry p[role=status]{margin:8px 0 0;line-height:1.45}.coordinate-entry p[role=status]:empty{display:none}

.tree-timeline{margin:16px 0;border:1px solid var(--line,#d4ded6);border-radius:12px;padding:12px}.tree-timeline>button{width:100%}.history-event{border-top:1px solid #d4ded6;padding:12px 0;overflow-wrap:anywhere}.history-event p,#tree-history-context{font-size:.85rem;color:#53635a}.history-event ul{padding-left:20px;font-size:.9rem}.history-event li{margin:5px 0}
