/* Product UI: one scale, explicit primary actions, map remains the main surface. */
:root{--ink:#18372f;--muted:#50665e;--line:#d4dfd9;--paper:#fff;--green:#17624d;--danger:#9d3044}
body{font:16px/1.5 "Segoe UI",system-ui,sans-serif;color:var(--ink)}
header,aside,footer{background:var(--paper);border-color:var(--line);box-shadow:0 4px 20px #14382c12}
header{top:12px;left:12px;right:12px;padding:10px 16px;border-radius:16px}
.brand{font-size:21px;letter-spacing:-.4px}.brand small{display:none}
button{font-size:15px;line-height:1.35;min-height:44px;border-radius:10px;border-color:var(--line);background:white;padding:10px 14px;transition:background .12s}
button:hover{background:#edf5f1}button:focus-visible,a:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #237da0;outline-offset:3px}
button.primary,#drawTools button.primary{background:var(--green);color:white;border-color:var(--green);font-weight:600}
button.primary:hover{background:#104c3b}button.danger{color:var(--danger);border-color:#e8c5cd}
#mine{background:#e9f3ee;font-weight:600}
#card{top:92px;left:12px;width:360px;max-height:calc(100dvh - 210px);padding:20px;display:flex;flex-direction:column;border-radius:16px}
#card[hidden]{display:none!important}#card>h1{font-size:26px;line-height:1.2;letter-spacing:-.5px;margin:12px 30px 16px 0;flex-shrink:0}
#card>.eyebrow{font-size:11px;letter-spacing:1.3px;color:var(--muted)}
#collapse{align-self:flex-start;margin:0 44px 12px 0;padding:8px 12px;font-size:14px}
#close{top:17px;right:14px;z-index:2;background:white}
#cardBody{max-height:none;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding-right:6px}
#card p,#drawTools p{font-size:15px;color:var(--muted);line-height:1.55}
#drawTools{gap:10px}#drawTools>button{width:100%;text-align:left}
#drawTools .detail-field{gap:7px;margin:8px 0;font-weight:600}
#drawTools select,#drawTools .detail-item input,#drawTools .visits input,#drawTools .visits select{font:16px/1.4 "Segoe UI",system-ui,sans-serif;background:#fff;border:1px solid #aebfb5;border-radius:9px;min-height:46px;padding:10px;color:var(--ink)}
#drawTools .detail-item{background:#f5f8f6;border:1px solid var(--line);border-radius:12px;padding:12px}
#drawTools .detail-item strong{font-size:15px}
.visits{margin-top:10px}.visits h3{font-size:19px;margin:12px 0}
.visits>button{width:100%;text-align:left}
.visits small{display:block;font-size:13px;color:var(--muted);line-height:1.5;margin:8px 0}
.visits article{padding:16px 0}.visits article strong{font-size:15px}
.section-management{width:100%;border-top:1px solid var(--line);margin-top:16px;padding-top:12px}
.section-management summary{font-size:14px;cursor:pointer;padding:10px 0;font-weight:600}
.section-management button{display:block;width:100%;margin:8px 0;text-align:left}
footer{bottom:22px;left:12px;padding:10px 12px;border-radius:14px;max-width:520px;display:flex;align-items:center;gap:12px;flex-wrap:wrap;font-size:13px}
footer #status{width:100%;margin:0;font-size:13px;max-width:460px}
footer #status:empty{display:none}
.legend-toggle{position:relative}.legend-toggle>summary{cursor:pointer;font-size:14px;min-height:44px;padding:12px 6px}
.legend-toggle[open] .map-legend{position:absolute;bottom:54px;left:0;background:white;border:1px solid var(--line);box-shadow:0 3px 14px #14382c18;border-radius:12px;padding:16px;width:270px;display:grid;gap:12px}
.map-legend{font-size:14px}.map-legend i{width:25px}
#restrictionButton{font-size:14px;margin:0;min-height:44px;color:#873247;background:#fcf5f7}
dialog#restrictionDialog,dialog#accountDialog,dialog#unsavedDialog{padding:24px;border:1px solid var(--line);border-radius:18px;background:white;max-width:calc(100vw - 24px);max-height:88dvh;color:var(--ink)}
dialog h2{font-size:24px;line-height:1.25;margin:18px 0}
dialog#accountDialog{width:560px}
#accountContent p{font-size:15px;line-height:1.55}
#restrictionContent summary{cursor:pointer;padding:10px 0;font-weight:600}
#restrictionContent{font-size:15px;gap:12px}
#restrictionContent button{font-size:15px;padding:13px}
#accountContent input{font-size:16px;border:1px solid #aebfb5;border-radius:9px;width:100%}
.leaflet-tooltip{font:600 14px/1.4 "Segoe UI",system-ui,sans-serif;border-radius:7px;border-color:#c7d6cc;padding:7px 10px;color:var(--ink)}
.leaflet-popup-content{font-size:15px;line-height:1.5}
.leaflet-control-zoom{margin-top:92px!important}
@media(max-width:600px){
 header{top:8px;left:8px;right:8px;display:grid;grid-template-columns:1fr auto;padding:9px;gap:7px}
 header .brand{font-size:19px;white-space:nowrap}header #accountButton{justify-self:end}
 header #home,header #mine{width:100%;font-size:14px}header #home{grid-column:1}header #mine{grid-column:2}
 #card{top:auto;bottom:var(--footer-space,94px);left:8px;right:8px;width:auto;max-height:min(62dvh,calc(100dvh - var(--footer-space,94px) - 130px));padding:16px;border-radius:18px}
 #card>h1{font-size:23px;margin:8px 32px 12px 0}
 #cardBody{max-height:43dvh}
 #card p,#drawTools p{font-size:15px}
 footer{left:8px;right:8px;bottom:22px;max-height:none;max-width:none;padding:5px 10px;gap:10px;justify-content:space-between}
 footer #status{display:block;font-size:13px}
 footer:has(#status:not(:empty)){max-width:calc(100% - 16px)}
 .legend-toggle[open] .map-legend{width:min(270px,calc(100vw - 40px));font-size:14px}
 .leaflet-control-zoom{margin-top:130px!important}.leaflet-control-scale{top:206px}
 #restrictionContent{font-size:15px}
}
@media(prefers-reduced-motion:reduce){button{transition:none}}
.river-handle{cursor:grab!important;border:3px solid #17624d!important;box-shadow:0 0 0 5px #ffffffad!important;touch-action:none}
.river-handle:active{cursor:grabbing!important}
#card.map-editing #collapse,#card.map-editing>#description,#card.map-editing>#kind{display:none}
#card.map-editing h1{font-size:20px;margin:0 35px 10px 0}
#card.map-editing #cardBody>#description{display:none}
#card.map-editing .visits{border:0;margin:0;padding:0}
#card.map-editing .visits h3{display:none}
#card.map-editing #drawTools p{margin:5px 0}
@media(max-width:600px){#card.map-editing{max-height:44dvh;padding:12px}#card.map-editing #cardBody{max-height:34dvh}#card.map-editing button{min-height:44px;padding:8px 10px}#card.map-editing .section-management{display:none}}

.visit-range-preview .section-endpoint:not(.visit-range-marker),.visit-range-preview .visit-active-marker{display:none}
#card.map-editing #drawTools>.section-management,#card.map-editing #drawTools>.section-management~p{display:none}
#card.map-editing #drawTools:has(.visits)>p{display:none}

#card .visits .range-repick{display:inline-block;width:calc(50% - 4px);margin-right:4px}
#card.map-editing .visits button{margin-top:4px;margin-bottom:4px}
#card.map-editing .visits>p{margin:5px 0}

/* Visual hierarchy: dark navigation, warm surfaces, distinct actions. */
:root{--ink:#163c38;--muted:#566e68;--line:#d6e1d9;--paper:#fbfaf5;--green:#126653;--danger:#9c3549}
body{font-family:ui-sans-serif,"Segoe UI",system-ui,sans-serif;letter-spacing:-.15px}
header{background:#123e38;color:#f8fbf6;border:1px solid #28564d;box-shadow:0 8px 24px #153c3826;padding:10px 14px;gap:10px}
.brand{font-weight:750;letter-spacing:-.7px;margin-right:8px;white-space:nowrap}.brand span{color:#a9d7a4;display:inline-grid;place-items:center;width:34px;height:34px;background:#ffffff12;border-radius:11px;margin-right:5px}
header button{background:#ffffff0d;border-color:#ffffff22;color:#f5fff8}header button:hover{background:#ffffff20}#mine{background:#cce6bc;color:#153c33;border-color:#cce6bc;font-weight:700}#home{margin-left:auto}
button{background:#e7efe8;border:1px solid #d3dfd5;font-weight:600;box-shadow:none;transition:background .15s,box-shadow .15s}button:hover{background:#d9e7dc;box-shadow:0 2px 7px #173d3210}button.quiet{background:transparent;border-color:transparent;color:#557168;font-weight:500}button.quiet:hover{background:#e8eee7}button.danger{background:#faeff0;color:var(--danger)}
button.primary,#drawTools button.primary{background:#146653;color:#fff;border:1px solid #146653;box-shadow:0 3px 8px #14665325}button.primary:hover{background:#0d5343}button:disabled{box-shadow:none}
#card{background:#fbfaf5;border:1px solid #dce4d8;box-shadow:0 12px 40px #173d3222;padding:20px;border-radius:20px}#card>h1{font-weight:750;font-size:28px;letter-spacing:-.9px}#kind{color:#648070!important}#collapse{background:#e9eee3;border:none;border-radius:20px;color:#52694f;font-size:13px;padding:7px 12px;min-height:36px}#close{background:transparent;color:#61736b;border-radius:50%}#close:hover{background:#e5eddf}
#description{font-weight:500}#drawTools{margin-top:12px;gap:8px}#drawTools>button.endpoint-choice{width:calc(50% - 4px);font-size:13px;text-align:center}
#drawTools .detail-item{background:#edf2e7;border:0}#drawTools .detail-field{font-size:13px;color:#567164}#drawTools select,#drawTools .detail-item input,#drawTools .visits input,#drawTools .visits select{background:#fff;border:1px solid #cedbd0;box-shadow:0 1px 2px #153c3805}
.section-overview{width:100%;background:#edf2e7;border:1px solid #e0e7d8;border-radius:15px;padding:15px}.section-overview h3{margin:0 0 12px;font-size:15px}.section-overview dl{display:grid;grid-template-columns:auto 1fr;gap:8px 14px;margin:0 0 12px;font-size:14px}.section-overview dt{color:#59705b}.section-overview dd{margin:0;font-weight:600;text-align:right}.section-overview small{display:block;font-size:12px;color:#627568;line-height:1.5}.access-links a{display:block!important;margin:12px 0 0!important;border-radius:9px;background:#d5e4cf;padding:10px;font-size:14px;text-decoration:none;color:#234e36}.section-rules{margin-top:14px;padding-top:12px;border-top:1px solid #d2ddcc}.section-rules summary{cursor:pointer;font-weight:600;font-size:14px;color:#6e5736}.section-rules article{margin:12px 0;padding:10px;border-left:3px solid #b27b3f;background:#fff9ed}.section-rules a{font-size:13px;margin-top:6px}.section-rules p{font-size:13px!important}
.visits{width:100%;border-top:1px solid #d8e2d5;padding-top:8px}.visits h3{font-size:17px}.visits article{border-radius:12px;background:#f0eee6;padding:14px;margin:10px 0}.visits article button{background:transparent;border:0;padding-left:0;font-size:13px;text-decoration:underline;text-underline-offset:3px}.visit-live{background:#efe5f5;color:#663782!important;padding:10px;border-radius:10px}
.section-management{margin-top:6px;border-top:1px solid #dce3d5}.section-management summary{color:#6a7869;font-size:13px}.section-management button{background:transparent;border:1px solid #d9e1d3}
footer{background:#fbfaf5eF;border:1px solid #dde5d9;padding:6px 10px;box-shadow:0 3px 16px #14382c14}#restrictionButton{background:#f2e8df;color:#76583b;border:0}.legend-toggle>summary{font-size:13px;color:#526c5c}.legend-toggle[open] .map-legend{background:#fbfaf5}
#card.map-editing{background:#eff5e9;border-color:#bfd2b7;border-top:4px solid #146653}#card.map-editing h1{font-size:18px;margin-bottom:8px}#card.map-editing #drawTools>p:first-child,#card.map-editing .visits>p:first-of-type{font-weight:650;color:#184938}#card.map-editing .section-overview{display:none}#card.map-editing .visits{padding:0}#card.map-editing button.primary{position:sticky;bottom:0;z-index:2}#card.map-editing #drawTools>p:nth-child(2){font-size:12px;font-weight:400}#card.map-editing label:has(input[type=checkbox]){background:#e2edda;padding:9px;border-radius:10px;font-size:13px}
#mapSearch{position:relative;display:flex;align-items:center;flex:1;max-width:460px;background:#f6f8f0;border:1px solid #ffffff60;border-radius:12px;color:#183e35;height:44px;margin-left:10px}#searchInput{font:inherit;font-size:15px;width:100%;min-width:0;height:100%;border:0;outline:none!important;background:transparent;color:#173e34;padding:0 12px;box-shadow:none;border-radius:12px}#mapSearch:focus-within{box-shadow:0 0 0 3px #b5dba58c}#mapSearch>button{color:#245d4c;background:transparent;border:0;font-size:26px;line-height:1;padding:4px 12px;min-width:44px}#searchResults{position:absolute;top:52px;left:0;right:0;max-height:55dvh;overflow-y:auto;background:#fbfaf5;border:1px solid #d5e0cf;border-radius:14px;box-shadow:0 14px 32px #16382c30;padding:7px;z-index:1200}#searchResults button{display:block;width:100%;background:transparent;color:#254d3d;text-align:left;border:0;border-radius:8px;padding:10px}#searchResults button:hover,#searchResults button:focus{background:#e4efdb}#searchResults strong,#searchResults small{display:block}#searchResults strong{font-size:14px}#searchResults small,#searchResults p{font-size:12px;color:#697d6a;font-weight:400;margin:3px 0}#searchResults p{padding:8px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
@media(min-width:601px) and (max-width:900px){header .brand{font-size:17px}#mapSearch{max-width:none;margin:0}header #home{display:none}#card{top:92px}}
@media(max-width:600px){header{grid-template-columns:1fr auto auto;gap:7px;padding:9px;border-radius:17px}header .brand{font-size:18px;grid-column:1;margin:0}header #accountButton{grid-column:2;grid-row:1;font-size:12px;min-height:36px;padding:6px 9px}header #mine{grid-column:3;grid-row:1;font-size:12px;min-height:36px;padding:6px 9px}header #home{display:none}#mapSearch{grid-column:1 / -1;grid-row:2;width:100%;max-width:none;margin:0;height:42px}#searchResults{max-height:50dvh}#card>h1{font-size:24px}#card{padding:16px}.brand span{width:28px;height:28px;font-size:23px;margin-right:2px}.leaflet-control-zoom{margin-top:130px!important}#card.map-editing{padding:12px;max-height:46dvh}#card.map-editing #cardBody{max-height:36dvh}.section-overview{padding:13px}.section-overview dl{font-size:13px}footer{padding:4px 8px}#restrictionButton{font-size:13px}.legend-toggle>summary{font-size:12px}}
#card .section-overview p{margin:6px 0;font-size:14px}.section-overview dl:empty{display:none}#card .section-overview .section-activity{font-size:12px;font-weight:650;color:#3b694d;background:#dce8d4;border-radius:7px;padding:7px;margin:0 0 12px}.section-activity[data-active=true]{background:#eddef4!important;color:#663782!important}.brand[role=button]{cursor:pointer}header #accountButton{order:3}header #mine{order:4}header #home{order:2}

#searchResults{overflow-x:hidden}#searchResults button{white-space:normal;overflow-wrap:anywhere;max-width:100%}

#mapSearch>button{display:grid;place-items:center}@media(max-width:600px){header #accountButton,header #mine{min-height:44px}}

#layerControls{display:flex;gap:12px;flex-wrap:wrap;padding:10px 0}#layerControls label{display:flex;gap:5px;align-items:center;min-height:32px}.layer-toggle summary{cursor:pointer;padding:10px}.layer-toggle[open]{max-width:320px}
/* A task owns the panel; browsing context never competes with editing. */
#card{height:auto!important;max-height:calc(100dvh - 210px)}
#card[data-task="map"],#card[data-task="form"]{padding:12px;}
#card[data-task="map"]{width:440px;max-height:240px;overflow:hidden}
#card[data-task="form"]{width:480px;max-height:60dvh}
#card[data-task="map"]>#collapse,#card[data-task="map"]>#close,#card[data-task="map"]>.eyebrow,#card[data-task="map"]>h1,#card[data-task="form"]>#collapse,#card[data-task="form"]>.eyebrow,#card[data-task="form"]>h1{display:none}
#card[data-task] #cardBody{height:auto;max-height:none}
#card[data-task="map"] #description,#card[data-task="form"] #description,#card[data-task="map"] .section-overview,#card[data-task="form"] .section-overview,#card[data-task="map"] .section-management,#card[data-task="form"] .section-management{display:none!important}
#card[data-task="form"] #drawTools>.section-overview,#card[data-task="form"] #drawTools:has(.visits)>button,#card[data-task="map"] #drawTools:has(.visits)>button{display:none!important}
#card[data-task="map"] #drawTools,#card[data-task="form"] #drawTools{margin:0;gap:6px}
#card[data-task="map"] .visits,#card[data-task="form"] .visits{border:0;margin:0;padding:0}
#card[data-task="map"] #cardBody{overflow:hidden}
#card.map-editing button.primary{position:static!important}
#card[data-task="map"] button{min-height:34px;padding:5px 9px;font-size:13px}
#card[data-task="map"] p{font-size:13px;line-height:1.3;margin:2px 0}
#card[data-task="map"] #drawTools .visits{display:flex;gap:5px;flex-wrap:wrap}
#card[data-task="map"] .visits button{margin:0}
#card[data-task="map"] .range-repick,#card[data-task="map"] .endpoint-choice{min-height:30px;padding:3px 7px;font-size:12px;flex:0 0 auto}
#card[data-task="form"] .outcome-buttons{display:grid;grid-template-columns:1fr 1fr;gap:5px;margin:8px 0}
#card[data-task="form"] .outcome-buttons button{min-height:42px;margin:0;font-size:13px;padding:6px}
.outcome-buttons button[aria-pressed="true"]{background:#164f43;color:white;border-color:#164f43}
#card[data-task="form"] .visits>label{margin:5px 0;font-size:13px}
#card[data-task="form"] .visits>button{min-height:36px;font-size:13px;padding:5px 9px}
#card[data-task="form"] .visits p{margin:0 0 5px}
#card[data-task="form"] .visits input{min-height:36px;padding:5px}
@media(min-width:601px){#card[data-task="form"]:has(.details-editor){width:620px}.details-editor{display:grid!important;grid-template-columns:1fr 1fr;align-items:start}.details-editor>p,.details-editor>.detail-tabs{grid-column:1/-1}.details-fields,.details-places{min-width:0}.details-actions{grid-column:1/-1;display:flex;gap:6px}.detail-tabs{display:none}}
@media(max-width:600px){
 #card[data-task="map"]{width:auto;left:8px;right:8px;bottom:26px;max-height:160px;padding:8px 10px}
 #card[data-task="form"]{width:auto;left:8px;right:8px;bottom:26px;max-height:45dvh;padding:10px}
 body.task-map header #mapSearch,body.task-map header #mine{display:none}
 body.task-map header{display:flex;min-height:56px}body.task-map header .brand{flex:1}
 body.task-map footer,body.task-form footer{display:none}
 body.task-map .leaflet-control-zoom{margin-top:80px!important}
 body.task-map .leaflet-control-scale{top:150px}
 #card[data-task="form"] #cardBody{max-height:calc(45dvh - 20px);overflow:auto}
 #card[data-task="map"] .visits button{font-size:11px;padding:4px 6px;min-height:30px}
 #card[data-task="map"] .range-repick{font-size:11px}
 .detail-tabs{display:flex;gap:6px;width:100%}.detail-tabs button{flex:1}
 .details-editor[data-tab="fields"] .details-places,.details-editor[data-tab="places"] .details-fields{display:none}
 .details-actions{display:flex;gap:6px;width:100%}
}
#card[data-task="map"] #drawTools button,#card[data-task="map"] .visits button{width:auto!important;flex:0 1 auto!important}
#card[data-task="map"] .visits>p{flex:1 0 100%}
#card[data-task="map"] #drawTools .visits{display:flex!important;flex-direction:row!important}
#card[data-task="form"] .outcome-buttons button{width:auto!important}
#taskConfirmation{font-weight:650;color:#164f43;margin:5px 0}
#card[data-task="form"]:has(.visits) #drawTools .visits{display:flex!important;flex-wrap:wrap;gap:5px}
#card[data-task="form"] .visits>p,#card[data-task="form"] .visits>label,#card[data-task="form"] .outcome-buttons{width:100%;flex-basis:100%}
#card[data-task="form"] #drawTools .visits>button{width:auto!important;flex:0 1 auto!important;margin:0}
#card[data-task="form"]>#close{display:none}
#card[data-task="form"] .visits .outcome-buttons{margin:3px 0}
#card[data-task="form"] .visits>label{margin:2px 0}
#card[data-task="form"] .details-editor .detail-field{margin:3px 0;gap:2px;font-size:13px;line-height:18px}
#card[data-task="form"] .details-editor select{min-height:34px;height:34px;font-size:14px;padding:4px 7px}
#card[data-task="form"] .details-editor button{min-height:36px;padding:5px 9px;font-size:13px}
#card[data-task="form"] .details-fields,#card[data-task="form"] .details-places{max-height:310px;overflow:auto}
@media(max-width:600px){#card[data-task="form"] .details-fields,#card[data-task="form"] .details-places{max-height:205px;width:100%}.details-editor{display:flex!important;gap:5px!important}.details-editor>p{font-size:12px!important;margin:0!important}}
@media(max-width:600px){#card[data-task="form"]{max-height:40dvh}#card[data-task="form"] #cardBody{max-height:calc(40dvh - 20px)}#card[data-task="form"] .details-fields,#card[data-task="form"] .details-places{max-height:165px}}
#drawTools label:has(input[type="text"]){display:flex;flex-direction:column}#drawTools input[type="text"]{width:100%;height:36px;min-height:36px;font:16px system-ui;border:1px solid #b8c8bb;border-radius:8px;padding:6px}
#accountContent form{display:grid;gap:10px}.location-control button{font-size:24px;width:40px;min-height:40px;padding:0;background:#fff}#accountButton{max-width:180px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media(max-width:600px){#accountButton{max-width:110px}footer:has(#status:not(:empty)){max-height:170px}footer #status:not(:empty){display:block!important;font-size:12px}}
#card[data-task="form"] .visits.time-open{gap:3px!important}
#card[data-task="form"] .visits.time-open>p{font-size:12px;line-height:1.25}
#card[data-task="form"] .visits.time-open label:has(input[type="datetime-local"]){width:calc(50% - 3px);flex-basis:calc(50% - 3px);font-size:11px}
#card[data-task="form"] .visits.time-open input{height:32px;min-height:32px;font-size:13px;padding:3px}
#card[data-task="form"] .visits.time-open label{font-size:12px;gap:2px}
#card[data-task="form"] .visits.time-open button,#card[data-task="form"] .visits.time-open .outcome-buttons button{min-height:30px;font-size:12px;padding:3px 6px}
#card[data-task="form"] .visits.time-open>button:nth-of-type(-n+2){order:1}
#card[data-task="form"] .visits.time-open>label:has(input[type="datetime-local"]){order:2}
#card[data-task="form"] .visits.time-open>.outcome-buttons{order:3}
#card[data-task="form"] .visits.time-open>label:has(input[type="text"]){order:4}
#card[data-task="form"] .visits.time-open>button:nth-of-type(n+3){order:5}
