:root{color-scheme:light;--ink:#182923;--muted:#52665d;--paper:#f4f6f5;--surface:#fff;--forest:#153f31;--accent:#297258;--line:#d9e2dd;--danger:#b94d3e}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:75px}body{margin:0;color:var(--ink);background:var(--paper);font:16px/1.5 Arial,"Helvetica Neue",sans-serif}button,input,select{font:inherit}button,a,input,select,summary{touch-action:manipulation}button{cursor:pointer}button,select,input{min-height:40px}button{padding:.5rem .8rem;border:1px solid #bdccc3;border-radius:5px;background:#fff;color:var(--forest);font-size:.875rem}button:hover{background:#eaf2ed}button:disabled{opacity:.5;cursor:not-allowed}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid #4593c5;outline-offset:3px}a{color:var(--forest)}[hidden]{display:none!important}.primary{background:var(--forest);color:#fff;border-color:var(--forest);font-weight:600}.primary:hover{background:var(--accent)}.muted,.hint{color:var(--muted)}.hint{display:block;font-size:.8125rem;line-height:1.5}.mono{font-family:Consolas,monospace}.eyebrow{font-size:.75rem;letter-spacing:.12em;font-weight:600;color:var(--accent);margin:0 0 .65rem}h1,h2,h3,p{margin-top:0}h1{font-size:1.65rem;line-height:1.12;margin-bottom:.8rem;letter-spacing:-.035em}h2{font-size:1.6rem;line-height:1.2;margin-bottom:.6rem;font-weight:500}h3{font-size:1rem;margin-bottom:.6rem}small{display:block}
.topbar{min-height:70px;display:flex;align-items:center;gap:2rem;padding:12px 24px;border-bottom:1px solid var(--line);background:#fff}.brand{display:flex;gap:.7rem;align-items:center;text-decoration:none;font-weight:700;white-space:nowrap}.brand-mark{background:var(--forest);color:#fff;padding:8px;border-radius:5px;font-size:.85rem}.brand small{font-size:.75rem;color:var(--muted);font-weight:400}.topbar nav{display:flex;gap:1.4rem;margin-left:auto}.topbar nav a{text-decoration:none;font-size:.875rem}.status{font-size:.8125rem;border-left:1px solid var(--line);padding-left:1.2rem;color:var(--muted)}.status.live{color:var(--accent)}
.workspace{display:grid;grid-template-columns:275px minmax(340px,1fr) 310px;max-width:1920px;margin:auto;align-items:start}.controls,.evidence{padding:24px 20px;background:white;min-width:0}.controls{border-right:1px solid var(--line)}.evidence{border-left:1px solid var(--line)}.intro{font-size:.875rem;margin-bottom:1.3rem}label{display:block;font-size:.875rem;margin:0 0 .4rem}input:not([type=checkbox]):not([type=range]),select{width:100%;border:1px solid #bdccc3;border-radius:5px;padding:.55rem .65rem;color:var(--ink);background:white}select{font-size:.875rem}form>.hint{margin:.3rem 0 .6rem}.button-row{display:flex;gap:.4rem}.button-row>*{flex:1}.presets{display:flex;flex-wrap:wrap;gap:.35rem;margin:1rem 0}.presets button{font-size:.75rem;min-height:32px;padding:.3rem .5rem}.refine{width:100%}#engineHelp{margin:.6rem 0 .25rem}.text-link{font-size:.8125rem}.control-section{border-top:1px solid var(--line);padding-top:1rem;margin-top:1rem}.control-section select{margin-bottom:.9rem}label output{float:right;font-variant-numeric:tabular-nums}input[type=range]{width:100%;min-height:25px;accent-color:var(--accent);margin:0 0 .7rem}.check{display:flex;align-items:center;gap:.5rem;margin-top:.5rem}.check input{min-height:auto;width:17px;height:17px;accent-color:var(--forest)}summary{cursor:pointer;font-size:.875rem;font-weight:600;margin-bottom:.8rem}.button-stack{display:flex;flex-direction:column;gap:.55rem}.button-stack a{text-align:center;border:1px solid var(--line);border-radius:5px;padding:.55rem;font-size:.8125rem;text-decoration:none}.message{font-size:.8125rem;line-height:1.45;padding:.6rem .7rem;background:#edf3ef;border-left:3px solid var(--accent);margin:1rem 0 0}.message.error{border-color:var(--danger);background:#fff1ee;color:#913e31}.progress-label{display:flex;justify-content:space-between;gap:1rem;font-size:.75rem;margin-top:.75rem}progress{width:100%;height:8px;accent-color:var(--accent)}
.map-column{min-width:0;padding:16px;background:#edf1ee}.map-toolbar{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-bottom:10px}.segmented{display:flex}.segmented button{border-radius:0;min-height:38px}.segmented button:first-child{border-radius:5px 0 0 5px}.segmented button:last-child{border-radius:0 5px 5px 0;border-left:0}.segmented button.active{background:var(--forest);border-color:var(--forest);color:white}.map-frame{position:relative;border:1px solid #b9c9be;height:clamp(480px,68vh,850px);background:#fff}#map{width:100%;height:100%;background:#fff}.map-loading{position:absolute;inset:0;display:grid;place-items:center;background:#edf1ee;z-index:800;color:var(--muted)}.map-legend{position:absolute;bottom:25px;right:10px;z-index:600;background:rgba(255,255,255,.96);padding:10px 12px;border:1px solid var(--line);border-radius:4px;max-width:230px;font-size:.75rem;pointer-events:none}.legend-title{font-size:.8125rem;font-weight:600;margin-bottom:5px}.legend-ramp{height:9px;width:170px;margin:5px 0}.legend-ends{display:flex;justify-content:space-between}.legend-row{display:flex;gap:6px;align-items:center;margin-top:4px;line-height:1.3}.swatch{width:11px;height:11px;flex-shrink:0;display:inline-block}.legend-note{margin-top:6px;color:var(--muted);font-size:.75rem;max-width:190px}.north{position:absolute;right:16px;top:10px;z-index:500;text-align:center;font-size:.8125rem;line-height:1.05;background:rgba(255,255,255,.85);padding:5px}.map-caption{display:flex;gap:1rem;align-items:center;justify-content:space-between;font-size:.75rem;margin-top:7px;color:var(--muted)}.map-caption button{font-size:.75rem;min-height:30px;white-space:nowrap}.metrics{display:grid;grid-template-columns:repeat(4,1fr);background:white;border:1px solid var(--line);margin:12px 0 0}.metrics>div{padding:12px;border-right:1px solid var(--line)}.metrics>div:last-child{border:0}.metrics dt{font-size:.75rem;color:var(--muted)}.metrics dd{font-size:1.55rem;margin:3px 0 0;font-variant-numeric:tabular-nums}.candidate-bar{display:flex;align-items:center;gap:.5rem;padding-top:12px;font-size:.8125rem}.candidate-bar>span:first-child{margin-right:auto}.candidate-bar button{min-height:30px;padding:0 .7rem}
.evidence-heading{display:flex;justify-content:space-between;align-items:center}.evidence-heading button{border:0;min-height:30px;font-size:1.3rem;padding:0 .4rem}.evidence h2{font-size:1.15rem;overflow-wrap:anywhere}.evidence .mono{font-size:.75rem;margin-bottom:.5rem}.score-summary{display:flex;gap:12px;align-items:center;margin:12px 0 18px}.score-summary>span{font-size:2.6rem;line-height:1.1;font-variant-numeric:tabular-nums;letter-spacing:-.06em}.score-summary>div{font-size:.8125rem}.score-summary small{font-size:.75rem;color:var(--muted)}.cell-status{display:inline-block;font-size:.75rem;padding:.25rem .5rem;background:#e9f0eb;border-radius:3px;margin:0}.cell-status.priority{color:#a64031;background:#fff0eb}.family-row{display:grid;grid-template-columns:94px 1fr 32px;gap:7px;align-items:center;font-size:.75rem;margin:.45rem 0}.family-bar{height:7px;background:#e5ece7;border-radius:2px}.family-bar i{display:block;height:7px;background:#526fa0;border-radius:2px}.chart-heading{display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-top:14px;margin-top:16px}.chart-heading h3{margin:0}.chart-heading select{width:85px;min-height:34px;padding:.3rem;font-size:.8125rem}.trajectory-chart svg{width:100%;height:auto;display:block}.date-support{display:grid;grid-template-columns:repeat(5,1fr);gap:3px;margin:.7rem 0}.date-support>span{text-align:center;font-size:.75rem;color:var(--muted);border-bottom:3px solid #80a790;padding:4px}.date-support b{display:block;color:var(--ink);font-size:.875rem}.date-support .weak{border-color:#e3a56e}.evidence-text{font-size:.8125rem;margin:0 0 .65rem}.rule-list{padding:0;list-style:none;font-size:.8125rem}.rule-list li{margin:.5rem 0}.rule-list .pass{color:var(--accent)}.rule-list .fail{color:#986634}.boundary-note{border-top:1px solid var(--line);padding-top:1rem;margin:1.5rem 0 0;font-size:.8125rem;color:var(--muted)}.evidence .button-stack{margin-top:1rem}
.outputs,.methods{max-width:1560px;margin:0 auto;padding:45px 28px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:2rem;margin-bottom:20px}.section-heading p{margin-bottom:0;font-size:.875rem}.section-heading h2{margin-bottom:.5rem}.section-heading .eyebrow{margin-bottom:.6rem}.section-heading>a{font-size:.875rem}.figure-gallery{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}.figure-card{margin:0;min-width:0;border:1px solid var(--line);background:#fff}.figure-card>button{padding:0;border:0;border-radius:0;width:100%;display:block;background:white}.figure-card img{width:100%;aspect-ratio:1.15;object-fit:contain;display:block}.figure-card figcaption{padding:12px;font-size:.875rem}.figure-card figcaption b{font-weight:500;display:block;margin-bottom:.5rem}.figure-card figcaption a{font-size:.75rem;margin-right:.8rem}.methods{padding-top:30px;border-top:1px solid var(--line)}.method-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;margin-top:30px}.method-grid p{font-size:.875rem;color:var(--muted)}.validation-summary{background:#fff;border:1px solid var(--line);padding:18px 22px;margin:18px 0;font-size:.875rem;display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.validation-summary strong{display:block;font-size:1.6rem;font-weight:500;margin-bottom:4px}.methods>p,.methods details p{font-size:.875rem;color:var(--muted)}footer{border-top:1px solid var(--line);padding:20px;text-align:center;color:var(--muted);font-size:.75rem}dialog{width:min(96vw,1500px);max-width:none;border:0;border-radius:7px;padding:16px;box-shadow:0 20px 80px #0005}dialog::backdrop{background:#10271fd9}.dialog-heading{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:10px}.dialog-heading h2{font-size:1rem;margin:0}dialog img{max-width:100%;max-height:78vh;display:block;margin:auto}dialog>a{font-size:.875rem;display:block;text-align:center;margin-top:12px}.leaflet-control-attribution{font-size:10px!important}.leaflet-container{font-family:Arial,sans-serif}.leaflet-control-scale-line{border-color:#52665d;background:#ffffffe0;color:#182923}.leaflet-tooltip{font-size:12px}.map-picking,.map-picking .leaflet-interactive{cursor:crosshair!important}.history-item{display:block;width:100%;margin:.4rem 0;text-align:left;font-size:.75rem}
@media(min-width:1700px){.workspace{grid-template-columns:300px minmax(600px,1fr) 330px}.controls,.evidence{padding:26px}.map-column{padding:20px}}
@media(max-width:1200px){.workspace{grid-template-columns:260px minmax(0,1fr)}.evidence{grid-column:1/-1;border-top:1px solid var(--line);border-left:0;min-height:0}#cellEvidence{max-width:600px}.method-grid{grid-template-columns:repeat(2,1fr)}.figure-gallery{grid-template-columns:repeat(3,1fr)}.map-frame{height:580px}.boundary-note{max-width:100ch}}
@media(max-width:760px){.topbar{padding:12px 16px;gap:10px;flex-wrap:wrap}.brand{font-size:.875rem}.topbar nav{gap:12px}.topbar nav a{font-size:.8125rem}.status{border:0;padding:0;width:100%;font-size:.75rem}.workspace{display:flex;flex-direction:column}.controls,.map-column,.evidence{width:100%;border:0}.controls{padding:20px}h1{font-size:1.5rem}.control-section{padding-top:12px;margin-top:12px}.map-column{padding:10px}.map-frame{height:490px}.map-legend{max-width:190px;right:7px;bottom:24px;padding:8px}.map-caption{align-items:start;gap:5px}.metrics>div{padding:9px}.metrics dd{font-size:1.35rem}.map-toolbar>button,.segmented button{font-size:.8125rem}.segmented button{padding:.5rem .65rem}.evidence{padding:20px}.evidence h2{font-size:1.3rem}.trajectory-chart{max-width:480px}.outputs,.methods{padding:30px 20px}.section-heading{display:block}.section-heading>.button-stack{margin-top:18px}.figure-gallery{grid-template-columns:repeat(2,1fr);gap:10px}.method-grid{grid-template-columns:1fr;gap:14px}.validation-summary{grid-template-columns:1fr;gap:15px}.validation-summary strong{display:inline-block;margin-right:8px}.figure-card figcaption{font-size:.8125rem;padding:9px}.map-caption button{white-space:normal}.presets button{font-size:.8125rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.map-toolbar{flex-wrap:wrap}.map-toolbar #pickCell{margin-left:auto;font-weight:600}#pickCell.active,#pickLocation.active{background:var(--forest);border-color:var(--forest);color:#fff}.cell-pick-controls{margin-bottom:10px;background:white;border:1px solid var(--line);padding:10px 12px;border-radius:5px}.cell-pick-controls p{font-size:.875rem;margin:0 0 8px}.cell-pick-controls form{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.cell-pick-controls label{margin:0}.cell-pick-controls input{flex:1;min-width:120px;width:auto!important;font-size:.875rem}.evidence{position:sticky;top:12px;max-height:calc(100dvh - 24px);overflow-y:auto;overscroll-behavior:contain;scrollbar-gutter:stable}.evidence-heading{position:sticky;top:-24px;background:white;z-index:2;padding:8px 0;border-bottom:1px solid var(--line);margin-bottom:12px}.evidence-heading .eyebrow{margin:0}.evidence-heading button{min-width:40px;min-height:40px}.evidence.is-open{box-shadow:-3px 0 0 #183aef}.cell-metadata{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:16px 0}.cell-metadata dt{font-size:.8125rem;color:var(--muted)}.cell-metadata dd{font-size:.875rem;margin:0;overflow-wrap:anywhere}.cell-data-section{border-top:1px solid var(--line);padding-top:12px;margin-top:12px}.cell-data-scroll{overflow:auto;max-height:340px;margin-bottom:12px}.cell-data-scroll table{border-collapse:collapse;width:100%;font-size:.875rem;font-variant-numeric:tabular-nums}.cell-data-scroll th,.cell-data-scroll td{padding:7px 5px;text-align:left;vertical-align:top;border-bottom:1px solid var(--line)}.cell-data-scroll th{background:#edf3ef;position:sticky;top:0;white-space:nowrap}#allCellData td{overflow-wrap:anywhere;min-width:95px}.north{pointer-events:none}
@media(max-width:1200px){.evidence{display:none;position:fixed;z-index:900;right:12px;top:12px;bottom:12px;width:min(370px,88vw);max-height:none;border:1px solid var(--line);border-radius:8px;box-shadow:0 8px 36px #10271f40}.evidence.is-open{display:block;box-shadow:0 8px 36px #10271f40,-3px 0 0 #183aef}.evidence-heading{top:-24px}}
@media(max-width:760px){.map-toolbar #pickCell{margin-left:0}.evidence{right:8px;top:8px;bottom:8px}.evidence-heading{top:-20px}.cell-pick-controls form{gap:6px}}
