@font-face{font-family:"Geist";src:url("vendor/fonts/Geist-Variable.woff2") format("woff2");font-weight:100 900;font-display:swap}@font-face{font-family:"Geist Mono";src:url("vendor/fonts/GeistMono-Variable.woff2") format("woff2");font-weight:100 900;font-display:swap}
    :root{--canvas:#f5f6f1;--paper:#fff;--ink:#1f332b;--muted:#536158;--line:#e2e6de;--green:#2f5a46;--pale:#e9f1e7;--blue:#245f80;--blue-pale:#e7f0f6;--amber:#7a5114;--amber-pale:#faf1d6;--red:#8f3934;--red-pale:#fcebeb;--mono:"Geist Mono","Cascadia Mono","SF Mono",Consolas,ui-monospace,monospace;--sans:"Geist","Segoe UI Variable Text","Segoe UI",system-ui,-apple-system,"Helvetica Neue",Arial,sans-serif;--serif:"Iowan Old Style","Charter","Georgia",serif;--shadow:0 1px 2px #1f332b0d,0 4px 14px #1f332b0a}
    *{box-sizing:border-box}html{scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{margin:0;background:var(--canvas);color:var(--ink);font:16px/1.6 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}button,input,select{font:inherit}button,select,input[type=checkbox],summary{cursor:pointer}button,a,input,select,summary{touch-action:manipulation}a{color:var(--green);text-underline-offset:3px}button{color:inherit;transition:background-color .18s,border-color .18s,box-shadow .18s,transform .12s}button:hover{background:#eef3ec}button:active{transform:scale(.98)}:focus-visible{outline:3px solid #4f7fb8;outline-offset:3px;border-radius:4px}button:disabled{opacity:.45;cursor:not-allowed}button:disabled:active{transform:none}h1,h2,h3,p{margin:0}h1,h2,h3{text-wrap:balance}p{text-wrap:pretty}h2{font-size:20px;font-weight:600;letter-spacing:-.02em;line-height:1.3}h3{font-size:17px;font-weight:600}small,.small{font-size:13px}code,.mono{font-family:var(--mono);font-size:.9em;font-variant-numeric:tabular-nums}.muted{color:var(--muted)}.eyebrow{font-size:13px;font-weight:600;letter-spacing:.01em;color:var(--muted)}.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}[hidden]{display:none!important}.skip{position:fixed;top:-80px;left:16px;background:white;padding:12px 16px;z-index:3000;font-weight:600;border-radius:6px;box-shadow:var(--shadow)}.skip:focus{top:10px}.shell{max-width:1376px;padding:0 40px;margin:auto}
    .topbar{border-bottom:1px solid var(--line);background:var(--paper)}.topbar-inner{min-height:72px;display:flex;justify-content:space-between;align-items:center;gap:20px}.brand{display:flex;align-items:center;gap:11px;font-size:24px;font-weight:650;letter-spacing:-.8px}.brand svg{width:34px;height:34px;flex:none}.brand-sub{font-size:13px;font-weight:500;color:var(--muted);border-left:1px solid var(--line);padding-left:16px;margin-left:8px}.project-context{text-align:right;font-size:13px;line-height:1.55;color:var(--muted)}.project-context strong{font-weight:600;color:var(--ink)}
    main{padding-top:32px;padding-bottom:40px}.intro{display:flex;justify-content:space-between;align-items:end;gap:24px;margin-bottom:24px}.intro h1{font-family:var(--serif);font-size:40px;line-height:1.1;letter-spacing:-1.2px;font-weight:400;margin-top:6px}.intro p{color:var(--muted);font-size:16px;margin-top:10px;max-width:60ch}.prototype-note{font-size:14px;color:var(--muted);text-align:right;max-width:240px;line-height:1.5}.surface{background:var(--paper);border:1px solid var(--line);border-radius:10px;box-shadow:var(--shadow)}
    .controls{display:grid;grid-template-columns:240px minmax(260px,1fr) 210px;gap:28px;padding:20px 24px;align-items:start}.control-label{display:block;font-size:14px;color:var(--ink);font-weight:600;margin-bottom:8px}.city-select{height:44px;width:100%;border:1px solid #cfd8cf;border-radius:6px;background:#fff;color:var(--ink);padding:0 12px;font-weight:600;font-size:16px}.mode-toggle{display:inline-flex;border:1px solid #cfd8cf;border-radius:8px;padding:3px;gap:3px;background:#f3f5f0}.mode-toggle button{padding:8px 16px;border:0;border-radius:6px;font-size:15px;font-weight:600;background:transparent;color:var(--muted)}.mode-toggle button[aria-pressed=true]{color:white;background:var(--green);box-shadow:0 1px 3px #1f332b33}.stepper{display:flex;align-items:center;height:44px;border:1px solid #cfd8cf;border-radius:6px;max-width:160px;overflow:hidden;background:#fff}.stepper button{border:0;background:transparent;flex:none;width:44px;height:100%;font-size:22px;line-height:1}.stepper input{min-width:0;width:70px;border:0;outline-offset:-3px;text-align:center;font-family:var(--mono);font-size:17px;appearance:textfield;background:#fff}.stepper input::-webkit-inner-spin-button{appearance:none}.budget-note{font-size:13px;color:var(--muted);margin-top:6px}.mode-meta{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:10px}.badge{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:650;letter-spacing:.02em;background:var(--pale);color:var(--green);padding:3px 9px;border-radius:5px;line-height:1.5}.badge.replay{background:var(--amber-pale);color:var(--amber)}.badge.blue{background:var(--blue-pale);color:var(--blue)}.badge.grey{background:#eff1ec;color:var(--muted)}.timestamp{font-size:13px;color:var(--muted);overflow-wrap:anywhere}.budget-error{font-size:13px;color:var(--red);margin-top:6px}
    .weather{margin-top:16px;padding:22px 24px 20px}.weather-top{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-bottom:16px}.weather-top h2{font-size:19px}.weather-grid{display:grid;grid-template-columns:1.2fr 1.1fr 1fr;gap:30px}.metric+.metric{border-left:1px solid var(--line);padding-left:30px}.metric-label{font-size:14px;color:var(--muted);font-weight:600}.metric-value{font-size:34px;font-weight:600;line-height:1.25;letter-spacing:-.8px;margin:4px 0;font-variant-numeric:tabular-nums}.metric-value .unit{font-size:16px;color:var(--muted);font-weight:400;letter-spacing:0}.metric-value.dates{font-size:28px;padding-top:4px}.metric-note{font-size:14px;color:var(--muted);line-height:1.5}.metric .window-tag{display:inline-block;font-size:13px;font-weight:600;color:var(--amber);background:var(--amber-pale);padding:2px 8px;border-radius:4px;margin-bottom:5px}.weather-bottom{display:grid;grid-template-columns:1.2fr 1.5fr;gap:30px;align-items:center;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}.weather-explain{font-size:14px;color:var(--muted);line-height:1.6;max-width:62ch}.weather-explain strong{font-weight:600;color:var(--ink)}.rain-chart{width:100%;height:80px;display:block}.weather-message{font-size:15px;color:var(--muted);margin:9px 0}.replay-banner{background:var(--amber-pale);border:1px solid #ecd9a6;border-left:4px solid #b88a3e;border-radius:8px;padding:12px 16px;font-size:15px;margin:16px 0 0;color:#5f4116;display:flex;gap:6px 14px;flex-wrap:wrap;align-items:baseline}.replay-banner strong{font-size:15px}.replay-banner .demo-line{flex-basis:100%;font-size:13px;color:#7a5a2a}
    .workspace{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.02fr);gap:20px;margin-top:20px;align-items:start}.panel-header{padding:20px 22px 14px;display:flex;justify-content:space-between;align-items:start;gap:12px}.panel-header p{font-size:14px;color:var(--muted);margin-top:4px}.panel-count{font-size:13px;font-family:var(--mono);background:#eff3ec;padding:4px 9px;border-radius:5px;white-space:nowrap}.map-frame{position:relative;margin:0 12px;background:#edf0e8;border-radius:8px;overflow:hidden}#map{height:340px;background-color:#edf0e8;background-image:linear-gradient(#e2e7dd 1px,transparent 1px),linear-gradient(90deg,#e2e7dd 1px,transparent 1px);background-size:40px 40px}.map-tools{position:absolute;top:12px;right:12px;z-index:800;background:white;border:1px solid var(--line);border-radius:6px;padding:6px 10px;font-size:13px;display:flex;gap:7px;align-items:center;box-shadow:var(--shadow)}.map-tools input{accent-color:var(--green);margin:0}.map-footer{padding:14px 20px 18px}.legend{display:flex;gap:8px 16px;flex-wrap:wrap;font-size:13px;color:var(--ink);margin-bottom:10px}.legend span{display:inline-flex;align-items:center;gap:6px}.dot{width:11px;height:11px;border-radius:50%;border:1px solid currentColor;display:inline-block;flex:none}.dot.sample{color:var(--green);background:var(--green)}.dot.baseline{color:var(--blue);background:var(--blue)}.dot.capacity{color:var(--amber);background:#dfbc70}.dot.low{color:#7d887d;background:#a9b3a5}.dot.excluded{color:var(--red);background:#c87a73}.dot.notice{border:2px solid #976124;background:white}.map-note{font-size:13px;color:var(--muted);line-height:1.6}.leaflet-control-attribution{font-size:11px!important;background:#fff!important}.leaflet-control-zoom a{color:var(--ink)!important}.leaflet-popup-content{font-family:var(--sans);font-size:14px;line-height:1.5}.leaflet-tooltip.site-label{font-family:var(--mono);font-size:12px;font-weight:600;padding:1px 5px;border:0;box-shadow:0 1px 3px #0003;border-radius:4px;background:#fffffff2;color:var(--ink)}.leaflet-tooltip.site-label:before{display:none}.leaflet-popup-content button{margin-top:8px;padding:5px 10px;background:white;border:1px solid #cfd8cf;border-radius:5px;font-size:13px}
    .visit-panel{overflow:hidden}.visit-help{font-size:14px;color:var(--muted);padding:0 22px 12px;border-bottom:1px solid var(--line)}.visits-scroll{max-height:660px;overflow:auto;scrollbar-width:thin;scrollbar-color:#c1cbbf transparent}.visit-list{list-style:none;margin:0;padding:0}.visit-card{padding:18px 22px;border-bottom:1px solid var(--line)}.visit-card:last-child{border-bottom:0}.visit-heading{display:flex;align-items:start;gap:12px}.rank-number{font:600 14px var(--mono);width:30px;height:30px;display:grid;place-items:center;border:1px solid #cfd8cf;border-radius:7px;flex:none;color:var(--green);margin-top:1px}.site-title{flex:1;min-width:0}.site-title h3{font-size:16px;line-height:1.4;overflow-wrap:anywhere}.site-title h3 code{font-size:14px;display:inline-block;margin-right:8px;font-weight:700;color:var(--green)}.category-text{font-size:15px;margin-top:4px;color:var(--ink)}.visit-time{font-size:14px;color:var(--muted);margin:10px 0 8px;padding-left:42px}.visit-time strong{font-weight:600;color:var(--ink);font-size:15px}.visit-time .small-window{font-size:13px;display:block;color:var(--amber);margin-top:2px}.why{margin-left:42px;font-size:14px}.why summary{font-size:14px;color:var(--green);font-weight:600;list-style:none;display:inline-flex;align-items:center;gap:6px;padding:2px 0}.why summary::-webkit-details-marker{display:none}.why summary:before{content:"+";font-family:var(--mono);font-size:16px;font-weight:400}.why[open]>summary:before{content:"−"}.why .reason{margin:11px 0;color:var(--muted);line-height:1.65}.source-fields{display:grid;grid-template-columns:1.45fr 1fr;gap:6px 12px;margin:12px 0;padding-top:10px;border-top:1px solid var(--line);font-size:13px}.source-fields dt{color:var(--muted);overflow-wrap:anywhere}.source-fields dd{margin:0;text-align:right;font-family:var(--mono);overflow-wrap:anywhere}.provenance{margin-top:10px}.provenance summary{font-weight:500;font-size:13px}.provenance p{margin:8px 0;overflow-wrap:anywhere;font-size:13px}.locate{font-size:13px;border:1px solid #cfd8cf;border-radius:6px;background:white;padding:5px 10px;white-space:nowrap;font-weight:500}.empty-visits{padding:28px 24px;color:var(--muted);font-size:15px;line-height:1.7}.empty-visits strong{display:block;font-size:18px;color:var(--ink);margin-bottom:7px}.capacity-details{padding:14px 22px;border-top:1px solid var(--line);font-size:14px}.capacity-details summary{color:var(--ink);font-weight:600}.capacity-row{display:flex;align-items:start;gap:10px;padding:11px 0;border-bottom:1px solid var(--line)}.capacity-row:last-child{border-bottom:0}.capacity-row p{flex:1;min-width:0;font-size:14px}.capacity-row small{display:block;color:var(--muted);margin-top:3px}.capacity-row code{font-size:13px;font-weight:600;white-space:nowrap}
    .notice-panel{margin-top:18px}.notice-panel .panel-header{padding-bottom:10px}.notice-body{padding:0 22px 18px}.notice-description{font-size:14px;color:var(--muted);line-height:1.6;margin-bottom:10px}.notice-row{border-top:1px solid var(--line);font-size:14px;padding:11px 0}.notice-row summary{display:flex;align-items:center;gap:10px;list-style:none}.notice-row summary::-webkit-details-marker{display:none}.notice-row summary:after{content:"+";margin-left:auto;color:var(--muted);font-size:18px}.notice-row[open] summary:after{content:"−"}.notice-row summary code{font-size:13px;font-weight:600;color:var(--amber)}.notice-text{background:#fcf8ec;border-left:3px solid #c2a064;border-radius:0 6px 6px 0;padding:12px 14px;margin:11px 0;line-height:1.65;font-size:15px}.notice-basis{color:var(--muted);font-size:13px;margin-top:7px;line-height:1.6}.notice-tag{color:var(--amber);font-size:13px;font-weight:600}.coverage{padding:16px 20px;margin-top:18px;font-size:14px;color:var(--muted)}.coverage summary{font-weight:600;color:var(--ink)}.coverage p{margin-top:9px;line-height:1.65}.coverage .mono{font-size:14px}.roster{margin-top:20px;overflow:hidden}.roster>summary{padding:18px 22px;font-size:16px;font-weight:600;display:flex;align-items:center;gap:10px;list-style:none}.roster>summary::-webkit-details-marker{display:none}.roster>summary:after{content:"+";margin-left:auto;font-size:22px;font-weight:400;color:var(--muted)}.roster[open]>summary:after{content:"−"}.roster-note{padding:0 22px 13px;font-size:14px;color:var(--muted)}.table-wrap{overflow:auto}.roster table{width:100%;border-collapse:collapse;text-align:left;font-size:14px}.roster th{font-size:13px;color:var(--muted);font-weight:600;white-space:nowrap;background:#f8f9f5}.roster td,.roster th{padding:11px 22px;border-top:1px solid var(--line)}.roster td small{display:block;font-size:13px;color:var(--muted);margin-top:3px}.roster td:nth-child(3){white-space:nowrap}.table-reason{max-width:360px;min-width:220px;color:var(--muted);font-size:13px}.excluded-panel{margin-top:16px;padding:15px 20px;font-size:14px;color:var(--muted)}.excluded-panel summary{font-weight:600;color:var(--ink)}.excluded-panel p{margin-top:9px}.sources-summary{margin-top:16px;padding:15px 20px;font-size:14px;color:var(--muted)}.sources-summary summary{font-weight:600;color:var(--ink)}.sources-summary p{margin-top:8px;overflow-wrap:anywhere}
    .footer{margin-top:28px;padding-top:20px;border-top:1px solid #d8dfd4;display:grid;grid-template-columns:1fr 1fr 1fr;gap:28px;font-size:14px;color:var(--muted);line-height:1.6}.footer strong{display:block;font-size:14px;color:var(--ink);font-weight:600;margin-bottom:4px}.footer-brand{display:flex;justify-content:space-between;gap:20px;font-size:13px;color:var(--muted);margin-top:22px}.loading{padding:35px 0;color:var(--muted)}.fatal{border-left:3px solid var(--red);background:white;padding:20px;line-height:1.7}.fatal p{margin-top:8px;font-size:15px}.inline-status{font-size:13px;color:var(--muted)}
    @media(min-width:1200px){.intro h1{font-size:44px}.map-frame #map{height:360px}}
    @media(max-width:1000px){.shell{padding:0 24px}.controls{grid-template-columns:200px minmax(200px,1fr) 160px;gap:20px}.brand-sub{display:none}.weather-grid{gap:20px}.metric+.metric{padding-left:20px}.metric-value{font-size:28px}.metric-value.dates{font-size:23px}.visit-card{padding:16px}.panel-header{padding:17px 18px 13px}.visits-scroll{max-height:640px}.workspace{gap:16px}}
    @media(max-width:760px){.shell{padding:0 18px}.topbar-inner{min-height:64px}.brand{font-size:22px}.project-context{font-size:12px}.intro{margin-bottom:20px}.intro h1{font-size:34px}.prototype-note{display:none}main{padding-top:24px}.controls{grid-template-columns:1fr 1fr;padding:18px;gap:18px}.city-control{grid-column:1/-1}.city-select{max-width:none}.mode-control{min-width:0}.budget-control{justify-self:end}.mode-toggle button{padding:8px 12px;font-size:14px}.mode-meta{gap:5px}.weather{padding:18px}.weather-grid{grid-template-columns:1fr 1fr;gap:18px}.metric:last-child{border:0;padding:0;grid-column:1/-1;display:flex;align-items:center;gap:12px;border-top:1px solid var(--line);padding-top:12px}.metric:last-child .metric-value{margin:0;font-size:26px}.metric:last-child .metric-note{margin-left:auto;max-width:190px}.weather-bottom{grid-template-columns:1fr;gap:10px}.weather-top{align-items:start;gap:8px}.weather-top h2{font-size:17px}.weather-top .badge{max-width:150px;text-align:left}.metric-value{font-size:28px}.metric-value.dates{font-size:23px}.workspace{grid-template-columns:1fr}.map-frame #map{height:300px}.left-column{display:contents}.map-panel{grid-row:1}.visit-panel{grid-row:2}.notice-panel{grid-row:3;margin-top:0}.coverage{grid-row:4;margin-top:0}.visits-scroll{max-height:none;overflow:visible}.visit-card{padding:18px}.panel-header{padding:18px}.footer{grid-template-columns:1fr;gap:12px}.roster td,.roster th{padding:10px 14px}.footer-brand{flex-direction:column;gap:4px}.replay-banner{font-size:14px}.source-fields{grid-template-columns:1.4fr 1fr}.visit-time,.why,.filed-note,.distance-note{padding-left:0;margin-left:0}}
    .decision{margin-top:16px;padding:22px 24px 18px;border-left:4px solid var(--green)}.decision-answer{font-size:21px;line-height:1.5;letter-spacing:-.01em;max-width:68ch;color:var(--ink)}.decision-answer strong{font-weight:650;color:var(--green)}
    .steps{list-style:none;margin:18px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:10px;counter-reset:step}.step button{width:100%;display:flex;align-items:center;gap:12px;text-align:left;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#fafbf8}.step button:hover{border-color:#b9c9b9;background:#f2f6f0}.step-dot{width:30px;height:30px;flex:none;border-radius:50%;display:grid;place-items:center;font:600 14px var(--mono);border:2px solid #c9d3c8;color:var(--muted);background:#fff}.step-dot svg{width:16px;height:16px}.step-text{display:flex;flex-direction:column;min-width:0;flex:1}.step-title{font-weight:650;font-size:15px}.step-status{font-size:13px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.step-go{color:var(--muted);transition:transform .18s}.step button:hover .step-go{transform:translateX(3px);color:var(--green)}
    .step.done .step-dot{background:var(--green);border-color:var(--green);color:#fff}.step.current button{border-color:var(--green);background:var(--pale);box-shadow:0 0 0 1px var(--green) inset}.step.current .step-dot{border-color:var(--green);color:var(--green)}.step.todo button{opacity:.75}
    .flash{animation:flash 1.3s ease}@keyframes flash{0%,40%{box-shadow:0 0 0 3px #4f7fb8,var(--shadow)}100%{box-shadow:var(--shadow)}}@media(prefers-reduced-motion:reduce){.flash{animation:none;box-shadow:0 0 0 3px #4f7fb8}}[tabindex="-1"]:focus{outline:none}
    @media(max-width:760px){.decision{padding:18px}.decision-answer{font-size:18px}.steps{grid-template-columns:1fr;gap:8px}}
    .workspace{align-items:stretch}.left-column{min-width:0}.left-inner{display:flex;flex-direction:column;gap:18px}.left-column .protection{margin:0}@media(min-width:761px) and (min-height:1000px){.left-inner{position:sticky;top:16px}}.right-column{display:flex;flex-direction:column;gap:18px;min-width:0}.right-column .notice-panel{margin-top:0}.visits-scroll{max-height:none!important;overflow:visible!important}
    .pin{display:grid;place-items:center;width:26px;height:26px;border-radius:50% 50% 50% 4px;transform:rotate(-45deg);background:var(--c,#2f5a46);border:2px solid #fff;box-shadow:0 2px 6px #1f332b55;transition:transform .18s cubic-bezier(.34,1.56,.64,1),box-shadow .18s}.pin span{transform:rotate(45deg);color:#fff;font:700 12px var(--mono);line-height:1}.pin.notice{outline:3px solid #b07a2b;outline-offset:1px}.pin.held{opacity:.45;filter:grayscale(.6)}.pin.hl{transform:rotate(-45deg) scale(1.35);box-shadow:0 0 0 4px #4f7fb866,0 4px 12px #1f332b66;z-index:1000!important}.leaflet-marker-icon.pin-wrap{background:none;border:0}
    .visit-card{transition:background-color .2s,box-shadow .2s}.visit-card.hl{background:#f1f6ef;box-shadow:inset 4px 0 0 var(--green)}
    .budget-range{width:100%;max-width:160px;margin:10px 0 0;accent-color:var(--green);height:22px}
    @media(max-width:760px){.map-panel{position:static}}
    #print-area{display:none}body.print-card{background:#fff}body.print-card>*:not(#print-area){display:none!important}body.print-card #print-area{display:block!important}.task-sheet{break-after:page;padding:24px;color:#111;font:16px/1.5 var(--sans)}.task-card{margin:8px 0 4px 42px}.task-card summary{font-size:14px;font-weight:600;color:var(--green)}.task-body{padding:8px 0 2px;font-size:14px;line-height:1.5}.task-body h3{font-size:16px;margin-bottom:6px}.task-safety{font-weight:700}.task-body fieldset{border:1px solid var(--line);border-radius:6px;margin:0 0 8px;padding:8px 10px}.task-body legend{font-size:14px;padding:0 4px}.task-choice{margin-right:12px;font-weight:500}.task-body label.field{display:block;margin:8px 0;font-weight:600}.task-body input[type=text],.confirm-sample input[type=date],.confirm-strip input[type=date]{display:block;width:100%;max-width:420px;margin-top:4px;border:1px solid #cfd8cf;border-radius:6px;padding:6px 8px;font-weight:400}.confirm-strip{display:flex;flex-wrap:wrap;align-items:flex-end;gap:8px 16px;margin:8px 0 0}.confirm-strip .field{margin:0;font-size:14px}.confirm-strip .stale-chip,.confirm-status{margin:0 0 6px}.task-body .print-one{margin-top:8px}.task-links{margin:8px 0}.lang-switch{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0}.lang-switch button{border:1px solid #cfd8cf;background:#fff;border-radius:6px;padding:4px 8px;font-size:13px;font-weight:600}.lang-switch button[aria-pressed=true]{background:var(--green);border-color:var(--green);color:#fff}.translation-draft{font-size:13px;color:var(--muted)}
    .setting-line{margin:8px 0 0;font-size:13px;color:var(--muted);line-height:1.5}.setting-block{margin-top:12px}.setting-block ul{margin:8px 0;padding-left:18px;font-size:14px;line-height:1.55}.setting-note{font-size:13px;color:var(--muted)}
    .protection{border-left:4px solid var(--amber)}.protection-body{padding:0 22px 18px;font-size:15px;line-height:1.55}.protection-body p{margin:0 0 12px}.protection-body .cover-notices{display:inline-block;margin:0 0 14px;padding:8px 12px;border:1px solid #c2a064;border-radius:6px;background:#fff;color:var(--amber);font-size:14px;font-weight:600}.protection-foot{color:var(--muted);font-size:14px}
    .stale-chip{display:inline-block;margin:6px 0;padding:4px 8px;border-radius:6px;background:#fbf3e4;color:#7a5114;border:1px solid #e6d3a8;font-size:13px;font-weight:600}.visit-card .stale-chip{margin-left:42px}.review-history{margin:4px 0 8px 42px;font-size:13px;color:var(--muted)}.notice-row .review-history,.notice-row .stale-chip{margin-left:0}.review-history ul{margin:6px 0 0;padding-left:18px}
    .review{display:flex;gap:6px;flex-wrap:wrap;margin:4px 0 10px 42px}.rv{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;border:1px solid #cfd8cf;border-radius:999px;background:#fff;font-size:14px;font-weight:600;color:var(--muted)}.rv svg{width:14px;height:14px}.rv.approve[aria-pressed=true]{background:var(--green);border-color:var(--green);color:#fff}.rv.hold[aria-pressed=true]{background:#7a5114;border-color:#7a5114;color:#fff}.rv.approve:hover{border-color:var(--green);color:var(--green)}.rv.hold:hover{border-color:#b88a3e;color:var(--amber)}.rv[aria-pressed=true]:hover{color:#fff;filter:brightness(1.08)}
    .visit-card.rv-hold{background:#fbf8f1}.visit-card.rv-hold .site-title,.visit-card.rv-hold .visit-time{opacity:.6}.visit-card.rv-approve .rank-number{background:var(--green);border-color:var(--green);color:#fff}.pin.ok{border-color:#c8f0d2}
    .review-progress{margin:12px 22px 0;padding:12px 14px;border:1px solid var(--line);border-radius:10px;background:#fafbf8;scroll-margin-top:90px}.rp-top{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;font-size:14px}.rp-top span{color:var(--muted)}.rp-clear{margin-left:auto;border:0;background:none;color:var(--green);font-size:13px;font-weight:600;text-decoration:underline;text-underline-offset:3px;padding:2px 4px}.rp-bar{height:8px;border-radius:99px;background:#e4e9e1;overflow:hidden;margin:8px 0 6px}.rp-bar i{display:block;height:100%;background:linear-gradient(90deg,#2f5a46,#4c8a6c);border-radius:99px;transition:width .35s cubic-bezier(.22,1,.36,1)}.rp-note{font-size:13px;color:var(--muted)}
    .notice-row{display:block}.notice-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.notice-head code{font-size:13px;font-weight:700;color:var(--amber)}.notice-name{flex:1;min-width:140px;display:flex;flex-direction:column;font-weight:600}.notice-state{font-size:13px;font-weight:500;color:var(--muted)}.notice-row.rv-approve .notice-state{color:var(--green)}.notice-row.rv-hold .notice-state{color:var(--amber)}.notice-head .review{margin:0}.notice-more summary{font-size:14px;color:var(--green);font-weight:600;margin-top:6px;list-style:none}.notice-more summary::-webkit-details-marker{display:none}.notice-more summary:before{content:"+ ";font-family:var(--mono)}.notice-more[open] summary:before{content:"− "}
    @media(max-width:760px){.review{margin-left:0}}
    .notice-more summary:after{content:none!important}
    body{background:radial-gradient(1100px 540px at -6% -10%,#d9eadf 0%,#d9eadf00 62%),radial-gradient(900px 500px at 106% -6%,#d8e7ef 0%,#d8e7ef00 58%),radial-gradient(1200px 700px at 50% 120%,#e6ece2 0%,#e6ece200 60%),linear-gradient(180deg,#f2f5ef 0%,#f6f6f1 45%,#f2f3ed 100%);min-height:100dvh}
    body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 .12 0 0 0 0 .2 0 0 0 0 .17 0 0 0 .9 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");opacity:.06;mix-blend-mode:multiply}
    .topbar,main{position:relative;z-index:1}.topbar{background:#ffffffc7;backdrop-filter:saturate(1.4) blur(10px);-webkit-backdrop-filter:saturate(1.4) blur(10px);border-bottom-color:#dfe5dc}
    .intro{position:relative;isolation:isolate}.intro:before{content:"";position:absolute;z-index:-1;right:-40px;top:-46px;width:min(720px,70%);height:240px;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 640 220' fill='none' stroke='%232f5a46' stroke-width='1.2'%3E%3Cpath d='M0 30 C 120 10, 200 60, 320 36 S 520 8, 640 40'/%3E%3Cpath d='M0 48 C 120 28, 200 78, 320 54 S 520 26, 640 58'/%3E%3Cpath d='M0 66 C 120 46, 200 96, 320 72 S 520 44, 640 76'/%3E%3Cpath d='M0 84 C 120 64, 200 114, 320 90 S 520 62, 640 94'/%3E%3Cpath d='M0 102 C 120 82, 200 132, 320 108 S 520 80, 640 112'/%3E%3Cpath d='M0 120 C 120 100, 200 150, 320 126 S 520 98, 640 130'/%3E%3Cpath d='M0 138 C 120 118, 200 168, 320 144 S 520 116, 640 148'/%3E%3Cpath d='M0 156 C 120 136, 200 186, 320 162 S 520 134, 640 166'/%3E%3Cpath d='M0 174 C 120 154, 200 204, 320 180 S 520 152, 640 184'/%3E%3C/svg%3E") no-repeat right top/contain;opacity:.22;-webkit-mask-image:linear-gradient(90deg,#0000,#000 45%);mask-image:linear-gradient(90deg,#0000,#000 45%);pointer-events:none}
    .surface{background:#fffffff2;border-color:#e0e6dc}.decision{background:linear-gradient(135deg,#ffffff 0%,#f6faf4 100%)}
    @media(max-width:760px){.intro:before{width:100%;opacity:.14}}
    @media print{body{background:#fff}body::before{display:none}}

    /* ---------- Hero (storm band) ---------- */
    html,body{overflow-x:clip}
    main{padding-top:0}.topbar{background:#0d2621!important;border-bottom:1px solid #ffffff12!important;backdrop-filter:none!important}.topbar .brand{color:#f3faf6}.topbar .brand svg rect{fill:#6ee7b7}.topbar .brand svg path{stroke:#0d2621}.topbar .brand-sub{color:#b4cac0;border-left-color:#ffffff22}.topbar .project-context{color:#b4cac0}.topbar .project-context strong{color:#eaf4ee}.skip{color:#0d2621}
    .hero{position:relative;margin:0 calc(50% - 50vw);padding:26px 0 34px;color:#eaf4ee;background:linear-gradient(180deg,#0d2621 0%,#10322b 55%,#133a32 100%);overflow:hidden;isolation:isolate;border-radius:0 0 28px 28px}
    .hero-inner{max-width:1376px;margin:0 auto;padding:0 40px;position:relative}
    .hero-bg{position:absolute;inset:0;z-index:-1;pointer-events:none}.hero-bg i{position:absolute;display:block}
    .glow{border-radius:50%;filter:blur(70px);opacity:.5}.g1{width:640px;height:440px;left:-160px;top:-180px;background:#1f7a62}.g2{width:600px;height:440px;right:-160px;top:-140px;background:#1d5a7d}.g3{width:760px;height:320px;left:28%;bottom:-220px;background:#2a7a5f;opacity:.35}
    .contours{inset:0;background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1200 420' fill='none' stroke='%231f6b5c' stroke-width='1.15'%3E%3Cpath d='M-20 40 C 200 10, 380 90, 600 50 S 980 8, 1220 60'/%3E%3Cpath d='M-20 66 C 200 36, 380 116, 600 76 S 980 34, 1220 86'/%3E%3Cpath d='M-20 92 C 200 62, 380 142, 600 102 S 980 60, 1220 112'/%3E%3Cpath d='M-20 118 C 200 88, 380 168, 600 128 S 980 86, 1220 138'/%3E%3Cpath d='M-20 144 C 200 114, 380 194, 600 154 S 980 112, 1220 164'/%3E%3Cpath d='M-20 170 C 200 140, 380 220, 600 180 S 980 138, 1220 190'/%3E%3Cpath d='M-20 196 C 200 166, 380 246, 600 206 S 980 164, 1220 216'/%3E%3Cpath d='M-20 222 C 200 192, 380 272, 600 232 S 980 190, 1220 242'/%3E%3Cpath d='M-20 248 C 200 218, 380 298, 600 258 S 980 216, 1220 268'/%3E%3Cpath d='M-20 274 C 200 244, 380 324, 600 284 S 980 242, 1220 294'/%3E%3Cpath d='M-20 300 C 200 270, 380 350, 600 310 S 980 268, 1220 320'/%3E%3Cpath d='M-20 326 C 200 296, 380 376, 600 336 S 980 294, 1220 346'/%3E%3Cpath d='M-20 352 C 200 322, 380 402, 600 362 S 980 320, 1220 372'/%3E%3Cpath d='M-20 378 C 200 348, 380 428, 600 388 S 980 346, 1220 398'/%3E%3Cpath d='M-20 404 C 200 374, 380 454, 600 414 S 980 372, 1220 424'/%3E%3C/svg%3E") center/cover no-repeat;opacity:.28;-webkit-mask-image:radial-gradient(120% 90% at 70% 20%,#000 30%,#0000 75%);mask-image:radial-gradient(120% 90% at 70% 20%,#000 30%,#0000 75%)}
    .rain{inset:-60px 0 0 0;opacity:0;transition:opacity .6s;background:repeating-linear-gradient(103deg,#0000 0 22px,#d6ecff1f 22px 23px,#0000 23px 61px);-webkit-mask-image:linear-gradient(180deg,#000,#0000 85%);mask-image:linear-gradient(180deg,#000,#0000 85%)}.hero.storm .rain{opacity:1}
    @media(prefers-reduced-motion:no-preference){.g1{animation:drift 18s ease-in-out infinite alternate}.g2{animation:drift 22s ease-in-out infinite alternate-reverse}.hero.storm .rain{animation:fall .9s linear infinite}@keyframes drift{to{transform:translate(60px,30px) scale(1.12)}}@keyframes fall{from{transform:translate(0,0)}to{transform:translate(-14px,61px)}}}
    .hero-lede{font-size:15px;color:#b9cfc5;max-width:72ch}.hero-lede span{color:inherit;font-weight:400}
    .hero :focus-visible{outline-color:#6ee7b7}
    .hero-bar{margin-top:16px;display:grid;grid-template-columns:minmax(0,1.5fr) auto auto;gap:28px;align-items:start;padding:16px 20px;border-radius:18px;background:#ffffff0d;border:1px solid #ffffff1f;box-shadow:inset 0 1px 0 #ffffff14;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
    .hero .control-label{color:#c6d9d0;font-size:13px;margin-bottom:8px}
    .city-pills{display:flex;flex-wrap:wrap;gap:6px}.pill{display:inline-flex;align-items:center;gap:7px;padding:8px 15px;border-radius:999px;border:1px solid #ffffff2a;background:#ffffff08;color:#dcebe3;font-size:15px;font-weight:600}.pill:hover{background:#ffffff16;border-color:#ffffff44}.pill[aria-pressed=true]{background:#eaf6ef;color:#0d2621;border-color:#eaf6ef;box-shadow:0 4px 14px #00000040}.storm-dot{display:none;width:7px;height:7px;border-radius:50%;background:#f2c46d;box-shadow:0 0 0 3px #f2c46d33}.pill.has-storm .storm-dot{display:inline-block}
    .hero .mode-toggle{background:#ffffff0a;border-color:#ffffff24}.hero .mode-toggle button{color:#cfe2d8}.hero .mode-toggle button:hover{background:#ffffff12}.hero .mode-toggle button[aria-pressed=true]{background:#6ee7b7;color:#0d2621;box-shadow:0 2px 10px #6ee7b755}
    .hero .timestamp,.hero .budget-note{color:#b4cac0}.hero .budget-error{color:#ffb4a8}
    .hero .stepper{background:#ffffff0a;border-color:#ffffff2a}.hero .stepper input{background:transparent;color:#fff}.hero .stepper button{color:#eaf4ee}.hero .stepper button:hover{background:#ffffff14}.hero .budget-range{accent-color:#6ee7b7}
    .replay-chip{display:flex;flex-wrap:wrap;gap:3px 12px;align-items:baseline;margin-top:22px;padding:10px 16px;border-radius:14px;background:#f2c46d1c;border:1px solid #f2c46d55;color:#f5dca8;font-size:15px;width:fit-content;max-width:100%}.replay-chip strong{color:#ffd88a}.replay-chip .demo-line{flex-basis:100%;font-size:13px;color:#d6c094}
    .hero .decision{margin:0;padding:0;border:0;background:none;box-shadow:none;border-radius:0}
    .hero-kicker{display:flex;align-items:center;gap:10px;margin-top:26px;font-size:14px;color:#c6d9d0;font-weight:500}.pulse{width:9px;height:9px;border-radius:50%;background:#6ee7b7;box-shadow:0 0 0 0 #6ee7b780}.pulse.warn{background:#f2c46d}.pulse.replay{background:#f2c46d}@media(prefers-reduced-motion:no-preference){.pulse{animation:pulse 2s infinite}@keyframes pulse{70%{box-shadow:0 0 0 9px #6ee7b700}100%{box-shadow:0 0 0 0 #6ee7b700}}}
    .hero .decision-answer{margin-top:10px;font-size:clamp(26px,3vw,40px);line-height:1.18;letter-spacing:-.03em;font-weight:600;color:#f3faf6;max-width:28em}.hero .decision-answer strong{color:#6ee7b7;font-weight:600}
    .kpis{display:grid;grid-template-columns:1.15fr 1fr 1fr;gap:14px;margin-top:26px}.kpi{position:relative;display:flex;flex-direction:column;gap:6px;padding:18px 20px;border-radius:18px;background:linear-gradient(160deg,#ffffff12,#ffffff06);border:1px solid #ffffff1f;box-shadow:inset 0 1px 0 #ffffff12;transition:transform .25s cubic-bezier(.22,1,.36,1),border-color .25s}.kpi:hover{transform:translateY(-3px);border-color:#ffffff38}
    .kpi-label{font-size:13px;font-weight:600;color:#c6d9d0;letter-spacing:.01em}.kpi-value{font-size:44px;font-weight:600;letter-spacing:-.035em;line-height:1.05;color:#fff;font-variant-numeric:tabular-nums}.kpi-value.small{font-size:30px}.kpi-dash{margin:0 4px;color:#a9c2b7}.kpi-unit{font-size:17px;font-weight:500;color:#a9c2b7;margin-left:6px;letter-spacing:0}.kpi-sub{font-size:13px;color:#b4cac0;line-height:1.5}.kpi-big-sub{font-size:20px;font-weight:600;color:#fff;margin:2px 0}
    .mini-bars{width:100%;height:46px;display:block;margin:4px 0 2px}
    .cal{display:flex;align-items:center;gap:10px;margin:4px 0 6px}.cal-tile{width:66px;border-radius:12px;overflow:hidden;background:#f6fbf8;color:#0d2621;text-align:center;box-shadow:0 6px 18px #00000040}.cal-tile b{display:block;background:#6ee7b7;font-size:11px;letter-spacing:.14em;padding:4px 0;font-weight:700}.cal-tile span{display:block;font:700 28px/1 var(--sans);padding:7px 0 9px;font-variant-numeric:tabular-nums}.cal-arrow{color:#6ee7b7;font-size:20px}
    .hero .window-tag{display:inline-block;width:fit-content;font-size:12px;font-weight:600;color:#f5d690;background:#f2c46d1f;border:1px solid #f2c46d44;padding:2px 8px;border-radius:6px}
    .kpi-ring{flex-direction:row;align-items:center;gap:18px}.ring-wrap{position:relative;width:92px;height:92px;flex:none}.ring{width:92px;height:92px;transform:rotate(-90deg)}.ring circle{fill:none;stroke-width:8}.ring-bg{stroke:#ffffff1f}.ring-fg{stroke:#6ee7b7;stroke-linecap:round;stroke-dasharray:100;transition:stroke-dashoffset .6s cubic-bezier(.22,1,.36,1)}.ring-num{position:absolute;inset:0;display:grid;place-content:center;text-align:center;font:600 26px/1 var(--sans);color:#fff}.ring-num small{display:block;font-size:12px;font-weight:500;color:#a9c2b7;margin-top:3px}
    .hero .steps{margin-top:18px}.hero .step button{background:#ffffff08;border-color:#ffffff1f;color:#eaf4ee}.hero .step button:hover{background:#ffffff12;border-color:#ffffff40}.hero .step-status{color:#b4cac0}.hero .step-go{color:#a9c2b7}.hero .step button:hover .step-go{color:#6ee7b7}.hero .step-dot{background:transparent;border-color:#ffffff40;color:#cfe2d8}.hero .step.done .step-dot{background:#6ee7b7;border-color:#6ee7b7;color:#0d2621}.hero .step.current button{background:#6ee7b71c;border-color:#6ee7b7;box-shadow:inset 0 0 0 1px #6ee7b7}.hero .step.current .step-dot{border-color:#6ee7b7;color:#6ee7b7}.hero .step.todo button{opacity:.6}
    .chart-fig{margin:0}.chart-fig figcaption{font-size:13px;color:var(--muted);margin-top:4px}.rain-chart.tall{height:110px}
    @media(prefers-reduced-motion:no-preference){.hero-inner>*{animation:appear .5s cubic-bezier(.22,1,.36,1) both}.hero-bar{animation-delay:.05s}#decision{animation-delay:.1s}}
    @media(max-width:1000px){.hero-inner{padding:0 24px}.hero-bar{grid-template-columns:1fr 1fr}.city-control{grid-column:1/-1}.kpis{grid-template-columns:1fr 1fr}.kpi-ring{grid-column:1/-1}}
    @media(max-width:760px){.hero{border-radius:0 0 20px 20px;padding-top:18px}.hero-inner{padding:0 18px}.hero-bar{grid-template-columns:1fr;gap:16px;padding:14px}.city-pills{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin:0 -4px;padding:2px 4px}.pill{flex:none}.kpis{grid-template-columns:1fr}.kpi-value{font-size:38px}.hero .decision-answer{font-size:24px}}
    @media print{.hero{background:#fff;color:#000;margin:0;border-radius:0}.hero-bg,.hero-bar{display:none}.hero .decision-answer,.kpi-value,.ring-num{color:#000}}
    /* U1: notices as a full-width card grid */
    .notice-wide{margin-top:20px}.notice-wide .notice-body{padding:0 22px 22px}
    #notices{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,350px),1fr));gap:14px;align-items:start}
    #notices>.notice-description{grid-column:1/-1;margin:0;max-width:95ch}
    #notices>.notice-row{border:1px solid var(--line);border-radius:14px;padding:14px 16px 12px;background:#fbfcf9;transition:border-color .2s,background-color .2s,box-shadow .2s}
    #notices>.notice-row:hover{border-color:#c9d6c8;box-shadow:var(--shadow)}
    #notices>.notice-row.rv-approve{border-color:#a9cdb8;background:#f2f8f3}#notices>.notice-row.rv-hold{border-color:#ead7aa;background:#fbf6ea}
    #notices .notice-head{align-items:flex-start}#notices .notice-head .review{flex-basis:100%;margin:8px 0 0}
    /* U1: compact visit cards */
    .visit-card{padding:16px 22px 14px}.visit-time{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 10px;margin:8px 0 6px}.visit-time .small-window{display:inline;margin:0}
    .filed-note{font-size:13px;font-weight:500;margin-bottom:4px}.visit-card .review{margin-top:6px;margin-bottom:8px}
    .visit-card>details.task-card:not([open]),.visit-card>details.why:not([open]){display:inline-block;margin-right:20px;vertical-align:top}.visit-card>details.task-card:not([open]){margin-left:42px}
    @media(max-width:760px){.visit-card>details.task-card:not([open]){margin-left:0}}
    /* V1: visual system for the lower half (Tremor / Magic UI patterns, vanilla) */
    :root{--fec:#a16207;--fec-bg:#fdf3dc;--path:#be123c;--path-bg:#fde8ec;--arg:#6d28d9;--arg-bg:#efe9fd}
    body{background-image:radial-gradient(#1f332b12 1px,transparent 1.3px),radial-gradient(1100px 540px at -6% -10%,#d9eadf 0%,#d9eadf00 62%),radial-gradient(900px 500px at 106% -6%,#d8e7ef 0%,#d8e7ef00 58%),linear-gradient(180deg,#f2f5ef 0%,#f6f6f1 45%,#f2f3ed 100%);background-size:22px 22px,auto,auto,auto}
    .category-text{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px}
    .chip{display:inline-flex;align-items:center;gap:6px;padding:3px 9px 3px 10px;border-radius:999px;font-size:13px;font-weight:600;border:1px solid transparent;line-height:1.5}.chip b{font:600 12px var(--mono)}
    .chip.c-fec{background:var(--fec-bg);color:var(--fec);border-color:#f1dca8}.chip.c-path{background:var(--path-bg);color:var(--path);border-color:#f6c9d3}.chip.c-arg{background:var(--arg-bg);color:var(--arg);border-color:#ddd0fb}.chip.c-base{background:var(--blue-pale);color:var(--blue);border-color:#cfe0ec}.chip.ghost{background:transparent;font-weight:500}
    .meter{display:inline-block;width:34px;height:5px;border-radius:9px;background:#00000014;overflow:hidden}.meter i{display:block;height:100%;border-radius:9px;background:currentColor}
    .tracker{margin:12px 22px 0;padding:12px 14px;border:1px solid var(--line);border-radius:12px;background:#fbfcf9}.tracker-head{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:14px}.tracker-head span{font-size:13px;color:var(--muted)}
    .tracker-bar{display:flex;gap:3px;margin:10px 0 8px;height:30px}.seg{flex:1;min-width:6px;border:0;border-radius:4px;padding:0;background:#cdd5cc;transition:transform .15s,filter .15s}.seg:hover,.seg:focus-visible{transform:scaleY(1.18);filter:brightness(1.08)}
    .seg.k-sample,.seg-dot.k-sample{background:var(--green)}.seg.k-baseline,.seg-dot.k-baseline{background:var(--blue)}.seg.k-capacity,.seg-dot.k-capacity{background:#d9b25f}.seg.k-low,.seg-dot.k-low{background:#c3ccc1}.seg.k-excluded,.seg-dot.k-excluded{background:#c87a73}.seg.has-notice{box-shadow:inset 0 0 0 2px #fff,0 0 0 2px #b07a2b}
    .tracker-legend{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:13px;color:var(--muted)}.tracker-legend span{display:inline-flex;align-items:center;gap:6px}.seg-dot{width:10px;height:10px;border-radius:3px;display:inline-block}
    .visit-card,#notices>.notice-row,.surface.protection{position:relative;isolation:isolate}
    .visit-card::before,#notices>.notice-row::before,.surface.protection::before{content:"";position:absolute;inset:0;z-index:-1;border-radius:inherit;background:radial-gradient(260px circle at var(--mx,50%) var(--my,50%),#2f5a4614,transparent 70%);opacity:0;transition:opacity .25s;pointer-events:none}
    .visit-card:hover::before,#notices>.notice-row:hover::before,.surface.protection:hover::before{opacity:1}
    .kpi::after{content:"";position:absolute;inset:0;border-radius:inherit;background:radial-gradient(220px circle at var(--mx,50%) var(--my,50%),#6ee7b71f,transparent 70%);opacity:0;transition:opacity .25s;pointer-events:none}.kpi:hover::after{opacity:1}
    @media(prefers-reduced-motion:no-preference){.visit-card.enter{animation:rise .45s cubic-bezier(.22,1,.36,1) both;animation-delay:calc(var(--i,0)*55ms)}@keyframes rise{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
      .rain-chart rect,.mini-bars rect{transform-box:fill-box;transform-origin:bottom;animation:grow .7s cubic-bezier(.22,1,.36,1) both}@keyframes grow{from{transform:scaleY(0)}to{transform:scaleY(1)}}}
    /* U2: compact filing status */
    #fhir-status{display:flex;flex-direction:column;gap:6px}.fs-line{display:inline-flex;align-items:center;gap:7px;color:var(--ink);font-weight:500}.fs-line svg{width:15px;height:15px;color:var(--green)}
    .filed-chip{font-size:13px}.filed-chip summary{display:inline-flex;align-items:center;gap:6px;width:fit-content;max-width:100%;padding:4px 11px;border-radius:999px;background:var(--pale);color:var(--green);font-weight:600;list-style:none}.filed-chip summary::-webkit-details-marker{display:none}.filed-chip summary:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 3px #2f5a4622}.filed-chip ul{margin:8px 0 4px;padding-left:18px;columns:2;column-gap:20px}.filed-chip li{margin:2px 0}.filed-chip p{color:var(--muted)}
    /* U3: sticky summary bar */
    #weather,#visit-panel,#notice-panel,#review-progress,#protection,.visit-card,#map{scroll-margin-top:72px}
    .summary-bar{position:fixed;left:0;right:0;top:0;z-index:1200;transform:translateY(-110%);transition:transform .3s cubic-bezier(.22,1,.36,1);background:#1a5c4ef2;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:#eaf4ee;border-bottom:1px solid #ffffff24;box-shadow:0 6px 24px #0c3a3240}.summary-bar.show{transform:none}
    .sb-inner{max-width:1376px;margin:0 auto;padding:9px 40px;display:flex;align-items:center;gap:14px;flex-wrap:wrap;font-size:14px}.sb-inner strong{font-size:15px}.sb-tag{padding:2px 9px;border-radius:999px;background:#6ee7b726;color:#bff0d6;font-weight:600;font-size:13px}.sb-tag.replay{background:#f2c46d26;color:#ffd88a}
    .sb-review{width:90px;height:6px;border-radius:9px;background:#ffffff26;overflow:hidden}.sb-review i{display:block;height:100%;background:#6ee7b7;border-radius:9px;transition:width .35s}
    .sb-actions{margin-left:auto;display:flex;gap:6px}.sb-actions button{padding:5px 11px;border-radius:8px;border:1px solid #ffffff2e;background:#ffffff0d;color:#eaf4ee;font-size:13px;font-weight:600}.sb-actions button:hover{background:#ffffff1f}.sb-actions button:disabled{opacity:.4}
    @media(max-width:760px){.sb-inner{padding:8px 14px;gap:8px;font-size:13px}.sb-review,.sb-actions button[data-jump]{display:none}}
    @media(prefers-reduced-motion:reduce){.summary-bar{transition:none}}
    @media print{.summary-bar{display:none}}
    .hero-bar>*{min-width:0}@media(max-width:1000px){.hero-bar{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}@media(max-width:760px){.hero-bar{grid-template-columns:minmax(0,1fr)}.hero .mode-toggle{display:flex;width:100%}.hero .mode-toggle button{flex:1}}
    /* U5: citizen task card polish */
    details.task-card[open]{margin:6px 0 10px 42px;padding:14px 16px 16px;border:1px solid #d9e4d8;border-radius:14px;background:linear-gradient(180deg,#fbfdfb,#f4f8f3)}
    @media(max-width:760px){details.task-card[open]{margin-left:0}}
    details.task-card>summary{font-weight:600;color:var(--green)}
    .task-card .lang-switch{display:inline-flex;gap:3px;padding:3px;border:1px solid #d5dfd4;border-radius:10px;background:#fff;margin:10px 0 6px}.task-card .lang-switch button{border:0;border-radius:7px;padding:5px 12px;font-size:13px;font-weight:600;background:transparent;color:var(--muted)}.task-card .lang-switch button[aria-pressed=true]{background:var(--green);color:#fff}
    .task-card .task-safety{margin:10px 0 12px;padding:10px 12px;border-radius:10px;background:#fff5e0;border:1px solid #f1d9a6;color:#5f4116;font-size:14px}
    .task-card fieldset{margin:0 0 8px;padding:9px 12px 10px;border:1px solid #dde6dc;border-radius:10px;background:#fff}.task-card legend{padding:0 6px;font-size:14px;font-weight:600;color:var(--ink)}
    .task-card fieldset label{display:inline-flex;align-items:center;gap:6px;margin-right:6px;padding:4px 10px;border:1px solid #d5dfd4;border-radius:999px;font-size:13px;cursor:pointer;transition:background-color .15s,border-color .15s}
    .task-card fieldset label:has(input:checked){background:var(--pale);border-color:var(--green);color:var(--green);font-weight:600}.task-card input[type=radio]{accent-color:var(--green);margin:0}
    .task-card .field{display:block;margin:10px 0 0;font-size:14px;font-weight:600}.task-card .field input{display:block;width:100%;max-width:420px;margin-top:5px;height:38px;padding:0 10px;border:1px solid #cfd8cf;border-radius:8px;background:#fff;font-weight:400}
    .task-card .task-links{margin-top:10px}.task-card .task-links a{font-weight:600}
    .task-card .print-one,.task-card [data-print-card]{margin-top:10px;padding:7px 14px;border:1px solid #cfd8cf;border-radius:8px;background:#fff;font-size:13px;font-weight:600;color:var(--green)}
    .map-hint{position:absolute;inset:0;z-index:900;display:grid;place-items:center;padding:20px;text-align:center;background:#1f332b8c;color:#fff;font-size:15px;font-weight:600;opacity:0;pointer-events:none;transition:opacity .25s}.map-hint.show{opacity:1}.map-frame{transition:box-shadow .2s}.map-frame.map-active{box-shadow:0 0 0 2px var(--green)}
    .distance-note{font-size:13px;color:var(--amber);margin:0 0 8px 42px}
    @media(max-width:520px){.mode-control{grid-column:1/-1}.budget-control{justify-self:stretch;grid-column:1/-1;display:grid;grid-template-columns:1fr auto;align-items:center}.budget-control .control-label{margin:0}.budget-control .budget-note,.budget-control .budget-error{grid-column:1/-1}.mode-toggle button{white-space:nowrap}.mode-meta{margin-top:8px}}
    @media(prefers-reduced-motion:no-preference){.intro,.controls,.weather,.workspace{animation:appear .4s ease both}.controls{animation-delay:.04s}.weather{animation-delay:.08s}.workspace{animation-delay:.12s}@keyframes appear{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}} @media print{.controls,.map-tools,.locate,.topbar .project-context{display:none}.shell{padding:0}.workspace{display:block}.map-panel{break-inside:avoid}.visits-scroll{max-height:none;overflow:visible}.visit-card{break-inside:avoid}.notice-panel{margin-top:12px}}
    .visit-actions{display:flex;flex-direction:column;align-items:flex-end;gap:8px;flex:none}.visit-actions button{border:1px solid #cfd8cf;background:#fff;border-radius:6px;padding:8px 12px;font-size:14px;font-weight:600;color:var(--green)}#fhir-status{margin:0;padding:10px 22px 12px;font-size:14px;color:var(--muted);line-height:1.55}.filed-note{margin:0 0 8px 42px;font-size:14px;font-weight:600;color:var(--green)}.fhir-help a{white-space:nowrap}@media(max-width:760px){.visit-actions{align-items:flex-start}}@media print{#download-fhir,#default-fhir,#fhir-status{display:none!important}}

    /* ===== Overcast storm field: darker than paper, lighter than night water ===== */
    :root{--canvas:#9eb5ab;--paper:#e4eee8;--ink:#16352c;--muted:#3e5c50;--line:#d3e4db;--green:#0f7a5c;--pale:#e5f6ee;--blue:#1d5f86;--blue-pale:#e7f2f8;--amber:#8a5a12;--amber-pale:#fbf3df;--red:#9a3b34;--red-pale:#fdecec;--shadow:0 1px 2px #16352c14,0 12px 32px #16352c18;--fec:#8a5a10;--fec-bg:#fdf3dc;--path:#9f1239;--path-bg:#fde8ec;--arg:#5b21b6;--arg-bg:#efe9fd;--radius:14px}
    html{color-scheme:light}
    body{color:var(--ink);background-color:var(--canvas);background-image:radial-gradient(#14382f2b 1px,transparent 1.3px),radial-gradient(1100px 620px at -8% -10%,#4f7d6c 0%,#4f7d6c00 58%),radial-gradient(980px 540px at 108% -8%,#5d7384 0%,#5d738400 56%),linear-gradient(180deg,#c5d5cc 0%,#a3bab0 46%,#7f9a8e 100%);background-size:22px 22px,auto,auto,auto;background-attachment:scroll}
    body::before{opacity:.055;mix-blend-mode:multiply}
    a{color:var(--green)}button{color:inherit}button:hover{background:#ffffff10}
    /* sticky header with page tabs */
    .topbar{position:sticky;top:0;z-index:1100;background:#1a5c4ed4!important;backdrop-filter:blur(14px) saturate(1.3)!important;-webkit-backdrop-filter:blur(14px) saturate(1.3)!important;border-bottom:1px solid #ffffff24!important}
    .topbar-inner{min-height:64px;gap:18px}.topbar .brand{font-size:21px}.topbar .brand svg{width:30px;height:30px}
    .app-nav{display:flex;gap:4px;padding:4px;border-radius:12px;background:#ffffff0a;border:1px solid #ffffff12}
    .app-nav a{display:inline-flex;align-items:center;gap:7px;padding:7px 14px;border-radius:9px;color:#b4cac0;font-size:14px;font-weight:600;text-decoration:none;transition:background-color .18s,color .18s}
    .app-nav a:hover{background:#ffffff0f;color:#eaf4ee}.app-nav a[aria-current=page]{background:#ffffff17;color:#fff;box-shadow:inset 0 0 0 1px #ffffff1f,0 1px 2px #0006}
    .nav-count:empty{display:none}.nav-count{min-width:20px;height:20px;padding:0 6px;border-radius:999px;background:#f2c46d;color:#2a1d05;font:700 12px/20px var(--mono);text-align:center}
    .header-status .sb-inner{max-width:none;padding:0;margin:0;gap:10px;font-size:13px;color:#b4cac0;flex-wrap:nowrap}.header-status .sb-inner strong{color:#fff;font-size:14px}
    .header-status .sb-actions{margin-left:6px}.header-status .sb-actions button{padding:6px 12px;border-radius:9px;background:#6ee7b7;color:#0b1f1b;border:0;font-weight:700}.header-status .sb-actions button:hover{background:#86efc4}.header-status .sb-actions button:disabled{background:#ffffff1a;color:#9db3a9}
    .header-status .sb-actions .sb-secondary{background:transparent;color:#cfe2d8;border:1px solid #ffffff38;font-weight:600}.header-status .sb-actions .sb-secondary:hover{background:#ffffff15}
    @media(max-width:1180px){.header-status .sb-inner>span:not(.sb-actions):not(.sb-tag){display:none}}
    @media(max-width:900px){.topbar-inner{flex-wrap:wrap;padding-top:8px;padding-bottom:8px}.app-nav{order:3;width:100%;overflow-x:auto}.app-nav a{white-space:nowrap}.header-status{margin-left:auto}}
    main{padding-top:0}
    /* pages */
    .page{display:none}.page.active{display:block}
    .page[data-page=overview].active::before{content:"";display:block;height:32px;margin:0 calc(50% - 50vw);background:#1f6b5c}
    @media(max-width:760px){.page[data-page=overview].active::before{height:24px}}
    @media(prefers-reduced-motion:no-preference){.page.active{animation:pageIn .38s cubic-bezier(.22,1,.36,1) both}@keyframes pageIn{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}}
    /* shared control bar (same controls on every page) */
    .controlbar{margin:18px 0 0}.controlbar .hero-bar{margin-top:0}
    /* hero now blends into the dark canvas */
    .hero{margin:0 calc(50% - 50vw);border-radius:0;padding-top:18px;background:linear-gradient(180deg,#248675e6 0%,#1f6b5ccc 58%,#1f6b5c00 100%)}
    .overview-grid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:18px;margin-top:4px}
    @media(max-width:900px){.overview-grid{grid-template-columns:1fr}}
    .next-list{display:flex;flex-direction:column;gap:8px;padding:0 18px 18px}.next-item{display:flex;align-items:center;gap:12px;padding:14px 16px;border-radius:12px;border:1px solid #ffffff14;background:#ffffff06;color:var(--ink);text-decoration:none;transition:background-color .18s,border-color .18s,transform .18s}.next-item:hover{background:#ffffff0d;border-color:#6ee7b766;transform:translateX(2px)}.next-item span:first-child{display:flex;flex-direction:column;gap:2px;flex:1}.next-item small{font-size:13px;color:var(--muted)}.next-go{color:var(--green);font-size:18px}
    /* surfaces: shadcn dark card */
    .surface{background:linear-gradient(180deg,#359883 0%,#2a7d6c 100%);border:1px solid #ffffff33;border-radius:var(--radius);box-shadow:var(--shadow)}
    .panel-header h2,.weather-top h2{color:#f1f8f4}
    .badge{background:var(--pale);color:var(--green)}.badge.grey,.panel-count{background:#ffffff12;color:var(--muted)}.badge.replay{background:var(--amber-pale);color:var(--amber)}.badge.blue{background:var(--blue-pale);color:var(--blue)}
    .locate,.visit-actions button,.rv,.protection-body .cover-notices,.task-card .print-one,.task-card [data-print-card],.leaflet-popup-content button{background:#ffffff08!important;border:1px solid #ffffff22!important;color:var(--ink)!important}
    .locate:hover,.visit-actions button:hover,.rv:hover,.protection-body .cover-notices:hover{background:#ffffff12!important;border-color:#ffffff3a!important}
    .protection-body .cover-notices{color:var(--amber)!important;border-color:#f2c46d66!important}
    .rv.approve[aria-pressed=true]{background:var(--green)!important;border-color:var(--green)!important;color:#0b1f1b!important}.rv.hold[aria-pressed=true]{background:var(--amber)!important;border-color:var(--amber)!important;color:#2a1d05!important}
    .visit-card{border-bottom-color:#ffffff12}.visit-card.hl{background:#6ee7b70d;box-shadow:inset 3px 0 0 var(--green)}.visit-card.rv-hold{background:#f2c46d0a}.visit-card.rv-approve .rank-number{background:var(--green);border-color:var(--green);color:#0b1f1b}
    .rank-number{border-color:#ffffff26;color:var(--green);background:#ffffff06}
    .visit-help,.capacity-details{border-color:#ffffff12}
    .review-progress,.tracker{background:#ffffff06;border-color:#ffffff14}.rp-bar{background:#ffffff14}.rp-bar i{background:linear-gradient(90deg,#34d399,#6ee7b7)}
    .stale-chip{background:var(--amber-pale);color:var(--amber);border-color:#f2c46d55}
    #notices>.notice-row{background:#ffffff06;border-color:#ffffff14}#notices>.notice-row:hover{border-color:#ffffff2a}#notices>.notice-row.rv-approve{background:#6ee7b70d;border-color:#6ee7b74d}#notices>.notice-row.rv-hold{background:#f2c46d0d;border-color:#f2c46d4d}
    .notice-text{background:#f2c46d12;border-left-color:var(--amber);color:var(--ink)}
    .roster th{background:#ffffff08;color:var(--muted)}.roster td,.roster th{border-top-color:#ffffff12}
    .fatal{background:#2a7d6c}
    .chip.c-base{background:var(--blue-pale);color:var(--blue);border-color:#7cc4f040}.chip.c-fec{border-color:#f5c46b40}.chip.c-path{border-color:#fda4af40}.chip.c-arg{border-color:#c4b5fd40}.meter{background:#ffffff1a}
    .seg{background:#ffffff26}.seg.k-sample,.seg-dot.k-sample{background:#1f9d73}.seg.k-baseline,.seg-dot.k-baseline{background:#3b82c4}.seg.k-capacity,.seg-dot.k-capacity{background:#d9a441}.seg.k-low,.seg-dot.k-low{background:#ffffff2e}.seg.k-excluded,.seg-dot.k-excluded{background:#e0786d}.seg.has-notice{box-shadow:inset 0 0 0 2px #1f6b5c,0 0 0 2px #f2c46d}
    .dot.sample{color:#1f9d73;background:#1f9d73}.dot.baseline{color:#3b82c4;background:#3b82c4}.dot.capacity{color:#d9a441;background:#d9a441}.dot.low{color:#7d8f86;background:#7d8f86}.dot.excluded{color:#e0786d;background:#e0786d}.dot.notice{background:transparent;border-color:#f2c46d}.legend{color:var(--ink)}
    .visit-card::before,#notices>.notice-row::before,.surface.protection::before{background:radial-gradient(260px circle at var(--mx,50%) var(--my,50%),#6ee7b712,transparent 70%)}
    /* citizen task card on dark */
    details.task-card[open]{background:#ffffff05;border-color:#ffffff17}.task-card .lang-switch{background:#ffffff08;border-color:#ffffff1f}.task-card .lang-switch button{color:var(--muted)}.task-card .lang-switch button[aria-pressed=true]{background:var(--green);color:#0b1f1b}
    .task-card .task-safety{background:#f2c46d14;border-color:#f2c46d40;color:#f5dca8}.task-card fieldset{background:#ffffff05;border-color:#ffffff14}.task-card legend{color:var(--ink)}.task-card fieldset label{border-color:#ffffff22}.task-card fieldset label:has(input:checked){background:#6ee7b71a;border-color:var(--green);color:var(--green)}
    .task-card .field input,.city-select,.stepper input{background:#ffffff0a!important;color:var(--ink);border-color:#ffffff22}
    /* map: dark tiles, dark controls */
    .map-frame,#map{background-color:#1a5c4e}#map{background-image:linear-gradient(#ffffff08 1px,transparent 1px),linear-gradient(90deg,#ffffff08 1px,transparent 1px)}
    .leaflet-tile-pane{filter:none}
    .leaflet-control-zoom a{background:#2a7d6c!important;color:var(--ink)!important;border-color:#ffffff2a!important}.leaflet-bar{border-color:#ffffff2a!important}
    .leaflet-control-attribution{background:#1a5c4ecc!important;color:var(--muted)!important}.leaflet-control-attribution a{color:var(--green)!important}
    .leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#2a7d6c;color:var(--ink);box-shadow:0 10px 30px #0c3a3255}
    .leaflet-tooltip.site-label{background:#2a7d6cf2;color:var(--ink)}
    .map-tools{background:#2a7d6ce6;color:var(--ink);border-color:#ffffff2a}
    /* plan page: map pinned full height beside the visit list (no empty column) */
    .page[data-page=plan] .workspace{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);margin-top:18px;align-items:start}
    .page[data-page=plan] .left-inner{position:sticky;top:80px}
    .page[data-page=plan] #map{height:clamp(380px,calc(100dvh - 330px),860px)!important}
    @media(max-width:760px){.page[data-page=plan] .workspace{grid-template-columns:1fr}.page[data-page=plan] .left-inner{position:static}.page[data-page=plan] #map{height:340px!important}}
    .page[data-page=evidence]>*+*,.page[data-page=notices]>*{margin-top:18px}
    .footer{border-top-color:#ffffff17}.footer strong{color:var(--ink)}
    .skip{background:#2a7d6c;color:var(--ink)}

    /* T1 tidy: compact header, dark controls everywhere, seamless hero */
    .app-nav a{white-space:nowrap;padding:7px 13px}
    .topbar .brand-sub{white-space:nowrap}@media(max-width:1320px){.topbar .brand-sub{display:none}}
    .header-status .sb-review,.header-status .sb-inner>span:nth-of-type(3),.header-status .sb-inner>span:nth-of-type(4){display:none}
    .header-status .sb-inner{white-space:nowrap}.header-status .sb-tag{white-space:nowrap}
    .controlbar .control-label{color:#c6d9d0;font-size:13px;margin-bottom:6px}
    .controlbar .mode-toggle{background:#ffffff0a;border-color:#ffffff24}.controlbar .mode-toggle button{color:#cfe2d8;background:transparent}.controlbar .mode-toggle button:hover{background:#ffffff12}.controlbar .mode-toggle button[aria-pressed=true]{background:#6ee7b7;color:#0b1f1b;box-shadow:0 2px 10px #6ee7b744}
    .controlbar .stepper{background:#ffffff0a!important;border-color:#ffffff2a}.controlbar .stepper input{background:transparent!important;color:#fff}.controlbar .stepper button{color:#eaf4ee}.controlbar .stepper button:hover{background:#ffffff14}.controlbar .stepper button:disabled{opacity:.35}
    .controlbar .timestamp,.controlbar .budget-note{color:#b4cac0}.controlbar .budget-error{color:#ffb4a8}.controlbar .budget-range{accent-color:#6ee7b7}
    .controlbar .hero-bar{padding:14px 18px;align-items:center;background:#ffffff08;border-color:#ffffff17}
    .controlbar .budget-control{display:grid;grid-template-columns:auto 1fr;column-gap:12px;align-items:center}.controlbar .budget-control .control-label{grid-column:1/-1}.controlbar .budget-range{margin:0;max-width:130px}.controlbar .budget-control .budget-note,.controlbar .budget-control .budget-error{grid-column:1/-1;margin-top:4px}
    .controlbar .mode-meta{margin-top:6px}
    .hero{background:transparent!important}

    /* ===== Fix-all: replay banner, wide visit rows, side sheets, confirm strip ===== */
    .replay-chip{display:flex!important;align-items:center;gap:14px;flex-wrap:wrap;width:100%;justify-content:space-between}
    .replay-chip .rc-text{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}.replay-chip .rc-text span{color:#f5dca8}
    .rc-btn{flex:none;padding:8px 14px;border-radius:10px;border:1px solid #f2c46d66;background:#f2c46d1a;color:#ffd88a;font-weight:700;font-size:14px}.rc-btn:hover{background:#f2c46d2e!important}
    /* wide visit rows */
    .visit-card{padding:16px 20px;isolation:auto!important}
    .visit-card::before{display:none!important}
    .visit-card:hover{background-image:radial-gradient(320px circle at var(--mx,50%) var(--my,50%),#6ee7b70f,transparent 70%)}
    .vr-grid{display:grid;grid-template-columns:32px minmax(0,1fr) auto;gap:4px 16px;align-items:start}
    .vr-main h3{font-size:16px;line-height:1.35;margin:2px 0 0}.vr-main h3 code{font-size:14px;margin-right:8px;color:var(--green)}
    .vr-main .category-text{margin-top:7px}.vr-main .visit-time{padding-left:0;margin:8px 0 2px}.vr-main .filed-note,.vr-main .distance-note{margin-left:0}
    .vr-side{display:flex;flex-direction:column;align-items:flex-end;gap:8px}
    .vr-side .review{margin:0!important;justify-content:flex-end}
    .vr-links{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
    .vr-links>details{display:inline-block!important;margin:0!important}
    .vr-links summary,.vr-links .locate{display:inline-flex;align-items:center;gap:6px;padding:6px 11px;border-radius:9px;border:1px solid #ffffff22;background:#ffffff08;color:var(--ink);font-size:13px;font-weight:600;list-style:none;cursor:pointer;white-space:nowrap}
    .vr-links summary::-webkit-details-marker{display:none}.vr-links summary::before{content:none!important}.vr-links summary:hover,.vr-links .locate:hover{background:#ffffff12;border-color:#ffffff3a}
    .vr-links details.task-card>summary::before{content:"";display:inline-block!important;width:12px;height:12px;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 2h6l3 3v9H4z' fill='none' stroke='black' stroke-width='1.6'/%3E%3Cpath d='M6 8h5M6 11h4' stroke='black' stroke-width='1.6'/%3E%3C/svg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4 2h6l3 3v9H4z' fill='none' stroke='black' stroke-width='1.6'/%3E%3Cpath d='M6 8h5M6 11h4' stroke='black' stroke-width='1.6'/%3E%3C/svg%3E") center/contain no-repeat}
    details.task-card[open]{margin:0!important;padding:0!important;border:0!important;background:none!important}
    @media(max-width:1100px){.vr-grid{grid-template-columns:32px minmax(0,1fr)}.vr-side{grid-column:2;align-items:flex-start}.vr-side .review,.vr-links{justify-content:flex-start}}
    /* side sheets (shadcn Sheet pattern, Base UI-style enter animation) */
    .sheet-panel{display:none}
    details[open]>.sheet-panel{display:block;position:fixed;top:0;right:0;bottom:0;width:min(540px,100vw);z-index:1300;overflow:auto;overscroll-behavior:contain;background:linear-gradient(180deg,#359883,#277566);border-left:1px solid #ffffff33;box-shadow:-24px 0 60px #0c3a3255;padding:0 24px 28px;text-align:left;cursor:auto;white-space:normal;font-weight:400}
    details.task-card[open]::after,details.why[open]::after{content:"";position:fixed;inset:0;z-index:1250;background:#12483eb0;backdrop-filter:blur(3px);-webkit-backdrop-filter:blur(3px);cursor:pointer}
    @media(prefers-reduced-motion:no-preference){details[open]>.sheet-panel{animation:sheetIn .32s cubic-bezier(.22,1,.36,1) both}details.task-card[open]::after,details.why[open]::after{animation:fadeIn .25s ease both}@keyframes sheetIn{from{transform:translateX(100%)}to{transform:none}}@keyframes fadeIn{from{opacity:0}to{opacity:1}}}
    .sheet-head{position:sticky;top:0;z-index:1;display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 -24px 14px;padding:16px 24px;background:#2f8a76f2;backdrop-filter:blur(8px);border-bottom:1px solid #ffffff2a;font-size:14px;color:var(--muted)}.sheet-head strong{color:var(--ink)}
    .sheet-close{width:34px;height:34px;border-radius:9px;border:1px solid #ffffff22;background:#ffffff08;color:var(--ink);font-size:20px;line-height:1}
    body.sheet-open{overflow:hidden}
    .sheet-panel .reason,.sheet-panel .source-fields,.sheet-panel p{color:var(--ink)}.sheet-panel .reason{color:#c9dbd2;line-height:1.7}.sheet-panel .source-fields{border-top-color:#ffffff17}.sheet-panel .source-fields dt{color:var(--muted)}
    .sheet-panel .task-body h3{margin:8px 0 6px;font-size:18px}.sheet-panel .task-body p{margin:3px 0}
    /* notice confirmation strip */
    .confirm-strip{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;margin:12px 0 10px;padding:10px 12px;border-radius:10px;background:#ffffff06;border:1px dashed #ffffff22}
    .confirm-strip .field{display:flex;align-items:center;gap:10px;margin:0!important;font-size:13px;font-weight:600;color:var(--muted)}
    .confirm-strip .field input{height:34px;padding:0 8px;border-radius:8px;border:1px solid #ffffff22;background:#ffffff0a;color:var(--ink);color-scheme:dark}
    .confirm-strip .confirm-status,.confirm-strip .stale-chip{flex-basis:100%;margin:0;font-size:13px;color:var(--muted)}
    @media print{.sheet-panel{display:block!important;position:static!important;box-shadow:none!important}details.task-card[open]::after,details.why[open]::after{display:none}}

    /* Sheet containment fix: entry animations must not leave a transform behind (it would trap position:fixed), and main must not create a stacking context. */
    .page.active,.workspace,.visit-card.enter,.hero-inner>*,.controls,.weather,.intro{animation-fill-mode:backwards!important}
    main{z-index:auto!important}

    .city-note{margin-top:8px;font-size:13px;color:#b4cac0;max-width:62ch}
    .review-transfer{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;padding:0 20px 10px}.review-transfer button,#review-transfer-status button{background:#ffffff08;border:1px solid #ffffff30;border-radius:6px;color:var(--ink);padding:7px 10px;cursor:pointer}.review-transfer span,#review-transfer-status{font-size:12px;color:var(--muted)}#review-transfer-status{padding:0 20px 8px}#review-transfer-status:empty{display:none}
    .eco-heading{margin:18px 0 8px;color:var(--green);font-size:15px}.replay-chip[hidden]{display:none!important}.guide-launch{background:#ffffff08;border:1px solid #ffffff36;color:var(--ink);border-radius:7px;padding:8px 10px;cursor:pointer;white-space:nowrap;font:600 12px var(--sans)}.guide{position:fixed;top:var(--guide-top,130px);left:var(--guide-left,20px);z-index:20000;width:min(380px,calc(100vw - 24px));padding:20px;border-radius:12px;border:1px solid #73d6ad88;background:#10251f;box-shadow:0 18px 50px #000b;color:#f0f7f2}.guide[hidden]{display:none!important}.guide-step{color:#7fe3b9;font:600 12px var(--mono);text-transform:uppercase;letter-spacing:.08em}.guide h2{font-size:20px;margin:8px 0}.guide p{font-size:14px;line-height:1.55}.guide-actions{display:flex;align-items:center;gap:8px;justify-content:flex-end;margin-top:17px}.guide-actions button{background:#ffffff0d;border:1px solid #ffffff3b;color:var(--ink);border-radius:6px;padding:8px 12px;cursor:pointer}.guide-actions #guide-next{background:#79dbb2;color:#082019;border-color:#79dbb2;font-weight:700}.guide-target{outline:3px solid #79dbb2!important;outline-offset:5px;border-radius:8px}.guide-actions button:focus-visible,.guide-launch:focus-visible{outline:3px solid #79dbb2;outline-offset:2px}@media(max-width:760px){.guide{top:auto!important;left:0!important;bottom:0;width:100%;max-width:none;border-radius:16px 16px 0 0;padding:20px 18px 28px}.guide-launch{font-size:11px;padding:7px}}

    /* Daylight surfaces. Dots, washes, and contours stay. Deep creek colour is for text and actions. */
    .topbar{background:#e7efebf2!important;backdrop-filter:blur(16px) saturate(1.15)!important;-webkit-backdrop-filter:blur(16px) saturate(1.15)!important;border-bottom:1px solid #c5d5cc!important}
    .topbar .brand{color:#16352c}.topbar .brand svg rect{fill:#1f6b5c}.topbar .brand svg path{stroke:#f4fbf8}
    .topbar .brand-sub{color:#4d675c;border-left-color:#d3e4db}
    .topbar .project-context,.header-status .sb-inner{color:#4d675c}
    .topbar .project-context strong,.header-status .sb-inner strong{color:#16352c}
    .app-nav{background:#d7e6decc;border-color:#c3d4cc}
    .app-nav a{color:#3d5c52}.app-nav a:hover{background:#e5f6ee;color:#16352c}
    .app-nav a[aria-current=page]{background:#e5f6ee;color:#0c5c44;box-shadow:inset 0 0 0 1px #b7dccb}
    .header-status .sb-actions button{background:#0f7a5c;color:#fff}.header-status .sb-actions button:hover{background:#0c6850}
    .header-status .sb-actions button:disabled{background:#e7eeea;color:#7d948a}
    .header-status .sb-actions .sb-secondary{background:#e4eee8;color:#16352c;border:1px solid #c5d9cf;font-weight:600}
    .header-status .sb-actions .sb-secondary:hover{background:#f3faf6}
    .page[data-page=overview].active::before{background:#c5d5cc}
    .hero{color:#16352c}.hero-lede,.hero-kicker{color:#1e3b32}
    .glow{opacity:.55}.g1{background:#3f6b5c}.g2{background:#4e6272}.g3{background:#5d8576;opacity:.45}
    h1,h2,h3,.decision-answer,.hero .decision-answer,.hero-lede,.hero-kicker,.replay-chip{text-wrap:wrap;max-width:none}
    .hero .decision-answer,.decision-answer{width:100%;color:#122e26}.hero .decision-answer strong{color:#084636}
    .pill{background:#eef5f1;border-color:#c3d4cc;color:#245246}.pill:hover{background:#f4f8f6;border-color:#9fc7b6}
    .pill[aria-pressed=true]{background:#0f7a5c;color:#fff;border-color:#0f7a5c;box-shadow:0 2px 8px #0f7a5c2e}
    .hero .mode-toggle,.controlbar .mode-toggle{background:#d7e6de;border-color:#c3d4cc}
    .hero .mode-toggle button,.controlbar .mode-toggle button{color:#3d5c52;background:transparent}
    .hero .mode-toggle button:hover,.controlbar .mode-toggle button:hover{background:#e5f6ee}
    .hero .mode-toggle button[aria-pressed=true],.controlbar .mode-toggle button[aria-pressed=true]{background:#0f7a5c;color:#fff;box-shadow:none}
    .hero .timestamp,.hero .budget-note,.controlbar .timestamp,.controlbar .budget-note,.city-note{color:#4d675c}
    .controlbar .budget-error,.hero .budget-error{color:#9a3b34}
    .hero .stepper,.controlbar .stepper{background:#eef5f1!important;border-color:#c3d4cc!important}
    .hero .stepper input,.controlbar .stepper input{color:#16352c!important;background:transparent!important}
    .hero .stepper button,.controlbar .stepper button{color:#16352c}
    .hero .stepper button:hover,.controlbar .stepper button:hover{background:#e5f6ee}
    .controlbar .control-label,.hero .control-label{color:#4d675c}
    .controlbar .hero-bar,.hero-bar{background:#e4eee8;border:1px solid #c3d4cc;box-shadow:0 8px 28px #16352c16}
    .replay-chip{background:#fbf6e8;border-color:#e6d3a4;color:#6b4a10}
    .replay-chip strong,.replay-chip .rc-text span{color:#6b4a10}.replay-chip .demo-line{color:#7a6240}
    .rc-btn{background:#f7f1e2;border-color:#e0c48a;color:#6b4a10}.rc-btn:hover{background:#fbf6e8!important}
    .kpi{background:#e4eee8;border:1px solid #c3d4cc;box-shadow:0 1px 2px #16352c10,0 10px 26px #16352c16}
    .kpi:hover{border-color:#b7dccb}
    .kpi-label{color:#4d675c}.kpi-value,.kpi-big-sub,.ring-num{color:#16352c}
    .kpi-unit,.kpi-dash,.kpi-sub,.ring-num small{color:#5d756b}
    .ring-bg{stroke:#d7e6de}.ring-fg{stroke:#1f8f6e}
    .hero .window-tag{color:#6b4a10;background:#fbf3df;border-color:#e6d3a4}
    .cal-tile{background:#eef5f1;box-shadow:0 6px 16px #16352c16}.cal-tile b{background:#0f7a5c;color:#fff}.cal-arrow{color:#0f7a5c}
    .hero .steps .step button,.hero .step button{background:#e4eee8;border-color:#c3d4cc;color:#16352c}
    .hero .step button:hover{background:#f3faf6;border-color:#b7dccb}
    .hero .step-status,.hero .step-go{color:#5d756b}.hero .step button:hover .step-go{color:#0f7a5c}
    .hero .step-dot{background:#eef5f1;border-color:#c5d9cf;color:#4d675c}
    .hero .step.done .step-dot{background:#0f7a5c;border-color:#0f7a5c;color:#fff}
    .hero .step.current button{background:#e5f6ee;border-color:#0f7a5c;box-shadow:inset 0 0 0 1px #0f7a5c}
    .hero .step.current .step-dot{border-color:#0f7a5c;color:#0f7a5c}
    .surface{background:#e4eee8;border:1px solid #c3d4cc;box-shadow:0 1px 2px #16352c14,0 14px 34px #16352c1c}
    .panel-header h2,.weather-top h2{color:#16352c}
    .next-item{border-color:#c3d4cc;background:#d7e6de}.next-item:hover{background:#e4eee8;border-color:#9fc7b6}
    .locate,.visit-actions button,.rv,.task-card .print-one,.task-card [data-print-card],.leaflet-popup-content button{background:#eef5f1!important;border:1px solid #c3d4cc!important;color:#16352c!important}
    .locate:hover,.visit-actions button:hover,.rv:hover,.vr-links summary:hover,.vr-links .locate:hover{background:#f3faf6!important;border-color:#9fc7b6!important}
    .protection-body .cover-notices{background:#f7f1e2!important;color:#6b4a10!important;border-color:#e0c48a!important}
    .rv.approve[aria-pressed=true]{background:#0f7a5c!important;border-color:#0f7a5c!important;color:#fff!important}
    .rv.hold[aria-pressed=true]{background:#8a5a12!important;border-color:#8a5a12!important;color:#fff!important}
    .visit-card{border-bottom-color:#e6f0eb}.visit-card.hl{background:#e5f6ee}.visit-card.rv-hold{background:#fbf6e8}
    .visit-card.rv-approve .rank-number{background:#0f7a5c;border-color:#0f7a5c;color:#fff}
    .rank-number{border-color:#c5d9cf;color:#0f7a5c;background:#d7e6de}
    .visit-help,.capacity-details{border-color:#e6f0eb}
    .review-progress,.tracker{background:#d7e6de;border-color:#c3d4cc}.rp-bar{background:#c5d6cc}
    #notices>.notice-row{background:#e4eee8;border-color:#c3d4cc}#notices>.notice-row:hover{border-color:#9fc7b6}
    #notices>.notice-row.rv-approve{background:#f3faf6;border-color:#b7dccb}#notices>.notice-row.rv-hold{background:#fbf6e8;border-color:#e6d3a4}
    .notice-text{background:#fbf6e8;border-left-color:#c4922a;color:#16352c}
    .roster th{background:#d7e6de}.roster td,.roster th{border-top-color:#c3d4cc}
    .fatal{background:#e4eee8}.footer{border-top-color:#6d8c80;color:#1e3b32}.footer strong{color:#122e26}
    .seg{background:#d5e0d6}.seg.k-low,.seg-dot.k-low{background:#c3ccc1}
    .seg.has-notice{box-shadow:inset 0 0 0 2px #fff,0 0 0 2px #b07a2b}
    .task-card .task-safety{background:#fff5e0;border-color:#f1d9a6;color:#5f4116}
    .task-card fieldset{background:#eef5f1;border-color:#c3d4cc}.task-card fieldset label{border-color:#c5d6cc}
    .task-card .lang-switch{background:#eef5f1;border-color:#c3d4cc}
    .task-card .lang-switch button[aria-pressed=true]{background:#0f7a5c;color:#fff}
    .task-card .field input,.city-select,.stepper input,.confirm-strip .field input{background:#f4f8f6!important;color:#16352c;border-color:#c3d4cc;color-scheme:light}
    .map-frame,#map{background-color:#d5e4dc}
    .leaflet-control-zoom a{background:#e4eee8!important;color:#16352c!important;border-color:#c3d4cc!important}
    .leaflet-control-attribution{background:#e4eee8e6!important;color:#3e5c50!important}
    .leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#e4eee8;color:#16352c;box-shadow:0 10px 30px #16352c22}
    .leaflet-tooltip.site-label{background:#e4eee8f2;color:#16352c;border:1px solid #c3d4cc}
    .map-tools{background:#e4eee8ee;color:#16352c;border-color:#c3d4cc}
    .summary-bar{background:#e4eee8f2;color:#16352c;border-bottom:1px solid #c3d4cc;box-shadow:0 6px 24px #16352c14}
    .sb-tag{background:#e5f6ee;color:#0c5c44}.sb-tag.replay{background:#fbf3df;color:#6b4a10}
    .sb-review{background:#c5d6cc}.sb-actions button{background:#eef5f1;border-color:#c3d4cc;color:#16352c}
    details[open]>.sheet-panel{background:linear-gradient(180deg,#e4eee8,#d7e6de);border-left:1px solid #c3d4cc;box-shadow:-24px 0 60px #16352c1f}
    details.task-card[open]::after,details.why[open]::after{background:#16352c66}
    .sheet-head{background:#e4eee8f2;border-bottom:1px solid #c3d4cc}
    .sheet-close{border:1px solid #c3d4cc;background:#eef5f1;color:#16352c}
    .sheet-panel .reason{color:#3d5c52}.sheet-panel .source-fields{border-top-color:#e6f0eb}
    .confirm-strip{background:#d7e6de;border:1px dashed #b7cdc2}
    .skip{background:#e4eee8;color:#16352c}
    .vr-links summary,.vr-links .locate{border:1px solid #c3d4cc;background:#eef5f1;color:#16352c}
    .visit-card:hover{background-image:radial-gradient(320px circle at var(--mx,50%) var(--my,50%),#0f7a5c10,transparent 70%)}
    .review-transfer button,#review-transfer-status button,.guide-launch{background:#eef5f1;border:1px solid #c3d4cc;color:#16352c}
    .guide{background:#e4eee8;color:#16352c;border:1px solid #b7dccb;box-shadow:0 18px 50px #16352c24}
    .guide-step{color:#0f7a5c}.guide-actions button{background:#eef5f1;border:1px solid #c3d4cc;color:#16352c}
    .guide-actions #guide-next{background:#0f7a5c;color:#fff;border-color:#0f7a5c}
    .stale-chip{background:#fbf3df;color:#6b4a10;border-color:#e6d3a4}
    .hero-lede,.hero-kicker{background:#eef6f2;border:1px solid #7f9a8e;color:#122e26;box-shadow:0 8px 22px #16352c16}
    .hero-lede,.hero-kicker{width:100%;max-width:100%;box-sizing:border-box}
    .hero-lede{display:block;margin:16px 0 0;padding:12px 16px 12px 14px;border-radius:14px;border-left:4px solid #0f7a5c}
    .hero-kicker{display:flex;margin-top:14px;padding:8px 14px;border-radius:14px}
    .review-transfer{margin-top:16px}
    #download-fhir{background:#0f7a5c!important;border-color:#0f7a5c!important;color:#fff!important}
    #download-fhir:hover{background:#0c6850!important;border-color:#0c6850!important;color:#fff!important}
    @media(max-width:760px){
      .topbar-inner,.app-nav,.hero-inner{min-width:0;max-width:100%}
      .app-nav{width:100%;flex-wrap:wrap;overflow:visible}
      .app-nav a{padding:7px 10px}
      .city-pills{flex-wrap:wrap!important;overflow:visible}
      .header-status{width:100%;margin-left:0}
      .header-status .sb-inner{flex-wrap:wrap;white-space:normal;row-gap:8px}
      .header-status .sb-actions{margin-left:0}
      .hero-lede,.hero-kicker{width:100%;max-width:100%;box-sizing:border-box}
      .hero-kicker{border-radius:14px}
    }
