:root{--bg: #0a0b0d;--surface: #0f1115;--surface-2: #14171c;--border: rgba(255, 255, 255, .09);--border-2: rgba(255, 255, 255, .16);--text: #e9ebee;--text-dim: #9ca2a9;--text-faint: #646a72;--accent: #7fb4ff;--accent-dim: #5a83b8;--danger: #e5484d;--good: #4fb477;--info: #5a9fe0;--depot: #d4af37;--sans: "Archivo", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--serif: "Archivo", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--display: "Archivo", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--mono: "IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace}*{box-sizing:border-box}html,body{margin:0;padding:0;background:var(--bg);color:var(--text);font-family:var(--sans);height:100%;overflow:hidden}.app{display:flex;flex-direction:column;height:100vh}.topbar{display:flex;align-items:center;justify-content:space-between;padding:10px 20px;background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0}.brand{display:flex;align-items:center;gap:9px}.brand-mark{width:25px;height:25px;color:var(--text);flex-shrink:0}.brand-name{font-family:var(--display);font-style:normal;font-weight:800;font-size:22px;letter-spacing:-.02em;color:var(--text)}.brand-sub{margin-left:2px;color:var(--text-dim);font-size:13px}.info-btn{background:transparent;border:1px solid var(--border);color:var(--text);padding:6px 14px;border-radius:6px;cursor:pointer;font-size:13px}.info-btn:hover{border-color:var(--accent);color:var(--accent)}.layout{display:flex;flex:1;min-height:0}.sidebar{width:380px;background:var(--surface);border-right:1px solid var(--border);display:flex;flex-direction:column;overflow:hidden;flex-shrink:0}.sidebar-scroll{flex:1;min-height:0;overflow-y:auto;padding:16px}.sidebar-footer{flex-shrink:0;padding:16px;border-top:1px solid var(--border);background:var(--surface)}.clear-link{display:block;margin:8px auto 0;padding:2px 8px;background:none;border:none;cursor:pointer;color:var(--text-faint);font-size:12px;font-family:var(--sans);text-decoration:underline;text-underline-offset:2px;transition:color .12s ease}.clear-link:hover{color:var(--text-dim)}.control-section{margin-bottom:18px;padding-bottom:16px;border-bottom:1px solid var(--border)}.control-section h2{font-family:var(--mono);font-size:10.5px;text-transform:uppercase;letter-spacing:1px;color:var(--text-dim);margin:0 0 8px;font-weight:500}.param-summary{list-style:none;cursor:pointer;display:flex;align-items:center;font-family:var(--mono);font-size:10.5px;text-transform:uppercase;letter-spacing:1.5px;color:var(--text-dim);font-weight:500}.param-summary:hover{color:var(--text)}.param-summary::-webkit-details-marker{display:none}.param-summary:after{content:"▸";margin-left:auto;color:var(--text-faint);font-size:12px;transition:transform .15s ease}.param-section[open]>.param-summary{margin-bottom:14px}.param-section[open]>.param-summary:after{transform:rotate(90deg)}.input-row{display:flex;gap:6px}.depot-select{width:100%;background:var(--surface-2);border:1px solid var(--border);color:var(--text);padding:9px 34px 9px 12px;border-radius:8px;font-size:13px;font-family:var(--sans);margin-bottom:6px;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%239aa0a6' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 11px center;background-size:12px;transition:border-color .12s ease,background-color .12s ease}.depot-select:hover{border-color:#ffffff38}.depot-select:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px #60a5fa40}.depot-select option{background:var(--surface-2);color:var(--text)}input[type=checkbox]{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:16px;height:16px;flex:none;margin:0;padding:0;border:1.5px solid rgba(255,255,255,.28);border-radius:4px;background:var(--surface-2);cursor:pointer;display:inline-grid;place-content:center;vertical-align:middle;transition:background-color .12s ease,border-color .12s ease}input[type=checkbox]:before{content:"";width:10px;height:10px;transform:scale(0);transition:transform .12s ease;background-color:#fff;clip-path:polygon(14% 44%,0 60%,40% 100%,100% 18%,86% 4%,40% 72%)}input[type=checkbox]:checked{background:var(--accent);border-color:var(--accent)}input[type=checkbox]:checked:before{transform:scale(1)}input[type=checkbox]:hover{border-color:#ffffff73}input[type=checkbox]:focus-visible{outline:none;box-shadow:0 0 0 2px var(--bg),0 0 0 3px var(--accent)}.op-depot>summary.op-depot-summary{list-style:none;cursor:pointer;display:flex;align-items:baseline;gap:8px;padding:2px 0}.op-depot>summary.op-depot-summary::-webkit-details-marker{display:none}.op-depot>summary.op-depot-summary:before{content:"▸";color:var(--text-faint);font-size:10px;line-height:1}.op-depot[open]>summary.op-depot-summary:before{content:"▾"}.op-depot-title{font-size:12px;color:var(--text-dim);text-transform:uppercase;letter-spacing:.06em;font-weight:600}.op-depot-current{margin-left:auto;color:var(--text-faint);font-size:11.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:62%}.op-depot[open] .op-depot-current{display:none}.op-depot-body{margin-top:9px}.calc-modal{display:none;position:fixed;top:0;right:0;bottom:0;left:0;z-index:4000;background:#07080b9e;align-items:center;justify-content:center}.calc-modal.show{display:flex}.calc-modal-card{background:var(--surface-2);border:1px solid var(--border);border-radius:14px;padding:28px 30px;text-align:center;max-width:320px;box-shadow:0 24px 70px #0000008c}.calc-spinner{width:46px;height:46px;border:4px solid var(--border);border-top-color:var(--accent);border-radius:50%;margin:0 auto 18px;animation:calcspin .8s linear infinite}@keyframes calcspin{to{transform:rotate(360deg)}}.calc-modal-text{margin:0 0 6px;font-weight:600;font-size:15px;color:var(--text)}.calc-modal-hint{margin:0;font-size:12px;color:var(--text-dim);line-height:1.45}.mode-tabs{display:flex;gap:4px;margin-bottom:16px;border-bottom:1px solid var(--border)}.top-tabs{display:flex;gap:4px;margin-bottom:14px;padding:4px;background:var(--surface-2, rgba(255,255,255,.04));border:1px solid var(--border);border-radius:10px}.top-tab{flex:1;background:none;border:none;border-radius:7px;color:var(--text-dim);font-family:var(--sans);font-size:13.5px;font-weight:600;padding:9px 0;cursor:pointer;letter-spacing:.01em;transition:background .12s,color .12s}.top-tab.active{color:var(--text);background:var(--accent, #c8553d)}.mode-tab{flex:1;background:none;border:none;border-bottom:2px solid transparent;color:var(--text-dim);font-family:var(--sans);font-size:13px;font-weight:500;padding:9px 0;cursor:pointer;letter-spacing:.02em}.mode-tab.active{color:var(--text);border-bottom-color:var(--accent)}.mode-tab:disabled{color:var(--text-faint);cursor:default}.edit-flight-btn{background:none;border:1px solid var(--border-2);color:var(--text-dim);font-family:var(--sans);font-size:12px;padding:7px 12px;border-radius:8px;cursor:pointer;margin-bottom:14px}.edit-flight-btn:hover{color:var(--text);border-color:var(--accent)}.results-hero{margin-bottom:12px}.results-hero .hero-num{font-family:var(--mono);font-weight:600;font-size:46px;line-height:.95;letter-spacing:-.01em;color:var(--text);font-variant-numeric:tabular-nums}.results-hero .hero-cap{font-size:13.5px;color:var(--text);margin-top:6px;max-width:280px}.results-hero .hero-sub{font-size:12px;color:var(--text-dim);margin-top:5px;line-height:1.5}.results-h3{margin-top:22px;font-size:11px;color:var(--text-dim);text-transform:uppercase;letter-spacing:1.5px}.nb-verdict{font-size:13.5px;line-height:1.55;color:var(--text);margin:8px 0 14px}.nb-bar{display:flex;height:16px;border-radius:8px;overflow:hidden;gap:1px;background:var(--surface-2)}.nb-bar>div{min-width:3px}.nb-legend{margin-top:10px;display:flex;flex-direction:column;gap:7px}.nb-legend-row{display:flex;align-items:center;gap:9px;font-size:13px}.nb-legend-label{flex:1;color:var(--text)}.nb-legend-count{font-variant-numeric:tabular-nums;font-weight:600;color:var(--text)}.nb-legend-sub{color:var(--text-dim);font-weight:400;font-size:11px;margin-left:6px}.nb-legend-foot{margin-top:10px;font-size:11px;color:var(--text-dim);line-height:1.45}details.epa-impact-card>summary{list-style:none;cursor:pointer;margin-bottom:0}details.epa-impact-card>summary::-webkit-details-marker{display:none}details.epa-impact-card[open]>summary{margin-bottom:8px}.epa-impact-head .head-right{display:flex;align-items:center;gap:9px}.card-chevron{color:var(--text-dim);font-size:12px;transition:transform .15s ease}details.epa-impact-card[open] .card-chevron{transform:rotate(180deg)}.summary-takeaway{font-size:12px;color:var(--text-dim);margin-top:4px}details.epa-impact-card[open] .summary-takeaway{display:none}.breakdown-details{margin-top:16px}.breakdown-details>summary{list-style:none;cursor:pointer;font-size:11px;text-transform:uppercase;letter-spacing:1.5px;color:var(--text-dim);padding:4px 0}.breakdown-details>summary::-webkit-details-marker{display:none}.breakdown-details>summary:before{content:"▸ ";color:var(--accent)}.breakdown-details[open]>summary:before{content:"▾ "}.sel-rows{margin-top:6px}.sel-row{padding:9px 0;border-bottom:1px solid var(--border)}.sel-row:last-child{border-bottom:none}.sel-row-top{display:flex;align-items:baseline;justify-content:space-between;gap:12px}.sel-name{font-size:13.5px;font-weight:600;color:var(--text)}.sel-val{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:14px;color:var(--text);white-space:nowrap}.sel-row-sub{margin-top:2px;font-size:11.5px;color:var(--text-dim);line-height:1.4}.input-row input[type=text]{flex:1;background:var(--surface-2);border:1px solid var(--border);color:var(--text);padding:9px 12px;border-radius:6px;font-size:13px;font-family:var(--sans)}.input-row input[type=text]:focus{outline:none;border-color:var(--accent)}.pin-btn{background:var(--surface-2);border:1px solid var(--border);color:var(--text);padding:0 12px;border-radius:6px;cursor:pointer;font-size:13px;white-space:nowrap}.pin-btn:hover,.pin-btn.active{background:var(--accent);color:var(--bg);border-color:var(--accent)}.use-my-house-btn{margin-top:8px;background:transparent;border:1px dashed var(--border);color:var(--text-dim);padding:8px 12px;border-radius:6px;font-size:12px;cursor:pointer;font-family:var(--sans);width:100%}.use-my-house-btn:hover{border-color:var(--info);color:var(--info);border-style:solid}.resolved{margin-top:6px;font-size:12px;color:var(--text-dim);font-style:normal;min-height:14px}.resolved .resolved-mark{color:var(--good);font-weight:600}.resolved.error,.resolved.error .resolved-mark{color:var(--danger)}.control-label{display:block;font-size:12px;color:var(--text-dim);margin-bottom:14px}.altitude-control{display:flex;align-items:center;gap:10px;margin-top:6px}input[type=range]{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:4px;border-radius:2px;cursor:pointer;outline:none;background:linear-gradient(to right,var(--accent) 0 var(--fill,50%),rgba(255,255,255,.13) var(--fill,50%) 100%)}input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;-moz-appearance:none;appearance:none;width:14px;height:14px;border-radius:50%;background:var(--text);border:2px solid var(--accent);box-shadow:0 1px 3px #00000080;cursor:pointer}input[type=range]::-moz-range-thumb{width:14px;height:14px;border-radius:50%;background:var(--text);border:2px solid var(--accent);cursor:pointer}input[type=range]::-moz-range-track{height:4px;border-radius:2px;background:#ffffff21}input[type=range]::-moz-range-progress{height:4px;border-radius:2px;background:var(--accent)}input[type=range]:focus-visible::-webkit-slider-thumb{box-shadow:0 0 0 3px #7fb4ff59}.altitude-control input[type=range]{flex:1}.altitude-control span{font-family:var(--mono);font-size:13px;color:var(--text);min-width:56px;text-align:right;font-variant-numeric:tabular-nums}.hint{display:block;margin-top:4px;font-size:11px;color:var(--text-faint);font-style:normal;line-height:1.35}.expander-summary{cursor:pointer;font-size:11px;color:var(--accent)}.toggle-group{display:flex;gap:0;margin-top:8px;border:1px solid var(--border);border-radius:6px;overflow:hidden}.toggle-btn{flex:1;background:transparent;border:0;border-right:1px solid var(--border);color:var(--text-dim);padding:9px 8px;cursor:pointer;font-size:11px;font-family:var(--sans);letter-spacing:.02em;transition:background .15s ease,color .15s ease}.toggle-btn:last-child{border-right:0}.toggle-btn:hover{color:var(--text)}.toggle-btn.active{background:var(--accent);color:var(--bg);font-weight:600}.flight-mode-group{margin:2px 0 22px}.flight-mode-group .toggle-btn{font-size:12px;padding:10px 8px}.calculate-btn{width:100%;background:var(--accent);color:var(--bg);border:1px solid var(--accent);padding:14px;border-radius:8px;font-size:14px;font-weight:700;cursor:pointer;font-family:var(--sans)}.calculate-btn:hover:not(:disabled){background:var(--accent-dim);border-color:var(--accent-dim)}.calculate-btn:disabled{background:var(--surface-2);color:var(--text-dim);border:1px solid var(--border);cursor:not-allowed}.results{margin-bottom:18px;padding-bottom:16px;border-bottom:1px solid var(--border)}.results h2{font-size:12px;text-transform:uppercase;letter-spacing:2px;color:var(--accent);margin:0 0 10px}.result-line{display:flex;justify-content:space-between;font-size:13px;padding:6px 0;border-bottom:1px solid var(--border)}.result-line:last-child{border-bottom:none}.result-line .label{color:var(--text-dim)}.result-line .value{font-family:var(--mono);color:var(--text);font-weight:600}.result-line.highlight .value{color:var(--accent);font-family:var(--mono);font-size:21px;font-weight:600;font-variant-numeric:tabular-nums;line-height:1}.info-tip{display:inline-block;width:14px;height:14px;line-height:14px;text-align:center;background:var(--surface-2);border:1px solid var(--border);border-radius:50%;color:var(--text-dim);font-size:9px;margin-left:4px;cursor:help;vertical-align:middle}.info-tip:hover{background:var(--accent);color:var(--bg);border-color:var(--accent)}.band-row{display:flex;align-items:center;gap:10px;padding:6px 0;font-size:12px}.band-color-chip{width:14px;height:14px;border-radius:3px;flex-shrink:0}.band-row .band-label{flex:1;color:var(--text)}.band-row .band-count{font-family:Menlo,monospace;color:var(--accent);font-weight:600}.band-summary-table{width:100%;margin-top:8px;border-collapse:collapse;font-size:12px;cursor:pointer}.band-summary-table thead th{text-align:left;font-weight:600;color:var(--text-dim);font-size:10px;text-transform:uppercase;letter-spacing:1px;padding:6px 4px;border-bottom:1px solid var(--border)}.band-summary-table thead th.num{text-align:right}.band-summary-table tbody tr{border-bottom:1px solid var(--border)}.band-summary-table tbody tr:last-child{border-bottom:none}.band-summary-table tbody tr:hover{background:var(--surface-2)}.band-summary-table td{padding:8px 4px;vertical-align:middle}.band-summary-table td.num{text-align:right;font-family:Menlo,monospace;color:var(--accent);font-weight:600}.band-summary-table td .chip-and-label{display:flex;align-items:center;gap:8px}.band-eye{flex-shrink:0;background:none;border:none;color:var(--text-dim);font-size:15px;line-height:1;padding:2px;margin:-2px 0 -2px -2px;cursor:pointer;border-radius:3px}.band-eye:hover{color:var(--text);background:var(--surface-2)}.band-summary-table tbody tr.band-hidden{opacity:.45}.band-summary-table tbody tr.band-hidden .band-color-chip{filter:grayscale(.8)}.epa-impact-card{background:var(--surface-2);border-radius:8px;padding:10px 12px;margin-top:12px}.epa-impact-head{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:6px}.epa-impact-title{font-size:11px;text-transform:uppercase;letter-spacing:1px;color:var(--text-dim);font-weight:600}.epa-impact-badge{font-size:11px;font-weight:700;color:#11140f;padding:2px 8px;border-radius:999px;white-space:nowrap}.epa-impact-row{font-size:12px;color:var(--text);margin:2px 0}.epa-impact-note{font-size:10px;color:var(--text-dim);margin-top:6px;line-height:1.4}.layer-swatch[data-layer=epa]{background:linear-gradient(90deg,#7fcdbb,#fec44f,#cc4c02);border-color:#c99a3a}.band-summary-table td .ng4-mini{font-size:10px;color:var(--text-dim);margin-top:2px}.band-summary-table td .ng4-mini .breach{color:var(--danger);font-weight:600}.band-summary-table td .ng4-mini .ok{color:var(--good)}.click-hint{font-size:10px;color:var(--text-dim);font-style:italic;margin-top:6px;text-align:center}.detail-modal{position:relative;background:var(--surface);border:1px solid var(--accent);border-radius:12px;padding:28px;max-width:720px;max-height:90vh;overflow-y:auto;color:var(--text);line-height:1.5}.detail-modal h2{font-family:var(--serif);font-style:italic;color:var(--accent);margin-top:0;margin-bottom:4px}.detail-modal .band-sub{color:var(--text-dim);font-size:13px;margin-bottom:18px}.detail-modal table{width:100%;border-collapse:collapse;font-size:13px;margin:12px 0}.detail-modal table th,.detail-modal table td{padding:8px 10px;text-align:left;border-bottom:1px solid var(--border)}.detail-modal table th{color:var(--text-dim);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:1px}.detail-modal table td.breach{color:var(--danger);font-family:Menlo,monospace;font-weight:600}.detail-modal table td.ok{color:var(--good);font-family:Menlo,monospace}.detail-modal .source{background:var(--surface-2);border-left:2px solid var(--accent);padding:10px 14px;margin:12px 0;font-size:12px;color:var(--text-dim)}.detail-modal .source strong{color:var(--text)}.caveats{margin-top:24px;padding-top:16px;border-top:1px dashed var(--border)}.caveats h3{font-size:11px;text-transform:uppercase;letter-spacing:2px;color:var(--text-dim);margin:0 0 8px}.caveats ul{margin:0;padding-left:16px;font-size:11px;color:var(--text-dim);line-height:1.5}.caveats li{margin-bottom:4px}.map-wrap{flex:1;position:relative;background:#1a1a1a}#map{position:absolute;top:0;right:0;bottom:0;left:0}.map-help{position:absolute;bottom:12px;left:50%;transform:translate(-50%);background:#141414d9;padding:8px 16px;border-radius:20px;font-size:12px;color:var(--text-dim);pointer-events:none;border:1px solid var(--border)}.map-status{position:absolute;top:12px;left:50%;transform:translate(-50%);background:var(--surface);padding:10px 18px;border-radius:6px;font-size:13px;border:1px solid var(--accent);color:var(--text);z-index:1}.sound-character{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:var(--accent);margin-top:3px;cursor:help}.sound-character .sound-icon{font-size:13px;line-height:1;display:inline-block;min-width:14px;text-align:center}.tilt-rotate-ctrl button{width:29px;height:29px;display:flex;align-items:center;justify-content:center;background:#fff;border:0;cursor:pointer;color:#404040;padding:0}.tilt-rotate-ctrl button:hover{background:#0000000d}.tilt-rotate-ctrl button+button{border-top:1px solid #ddd}.screenshot-ctrl button{width:29px;height:29px;display:flex;align-items:center;justify-content:center;background:#fff;border:0;cursor:pointer;color:#404040;padding:0}.screenshot-ctrl button:hover{background:#0000000d}.tilt-rotate-ctrl button svg,.screenshot-ctrl button svg{width:16px;height:16px;display:block}.impact-popup{pointer-events:none}.impact-popup .mapboxgl-popup-content{background:#14161ce6;color:#fff;font-size:11px;line-height:1.3;padding:5px 8px;border-radius:7px;box-shadow:0 2px 8px #00000080;white-space:nowrap}.impact-popup .mapboxgl-popup-tip{border-top-color:#14161ce6}.bvlos-popup .mapboxgl-popup-content{background:#12141af7;color:#e8eaed;font-size:12px;line-height:1.4;padding:10px 12px;border-radius:8px;border-left:3px solid #2dd4bf;box-shadow:0 4px 16px #0009}.bvlos-popup .mapboxgl-popup-tip{border-top-color:#12141af7}.bvlos-popup .mapboxgl-popup-close-button{color:#e8eaed;font-size:16px;padding:2px 6px}.bvlos-popup .mapboxgl-popup-close-button:hover{background:#ffffff1a}.agg-popup .mapboxgl-popup-content{background:#14161df7;color:#e8eaed;padding:9px 11px;border-radius:9px;box-shadow:0 3px 12px #00000052;border:1px solid rgba(255,255,255,.1)}.agg-popup.mapboxgl-popup-anchor-bottom .mapboxgl-popup-tip,.agg-popup.mapboxgl-popup-anchor-bottom-left .mapboxgl-popup-tip,.agg-popup.mapboxgl-popup-anchor-bottom-right .mapboxgl-popup-tip{border-top-color:#14161df7}.agg-popup.mapboxgl-popup-anchor-top .mapboxgl-popup-tip,.agg-popup.mapboxgl-popup-anchor-top-left .mapboxgl-popup-tip,.agg-popup.mapboxgl-popup-anchor-top-right .mapboxgl-popup-tip{border-bottom-color:#14161df7}.agg-popup.mapboxgl-popup-anchor-left .mapboxgl-popup-tip{border-right-color:#14161df7}.agg-popup.mapboxgl-popup-anchor-right .mapboxgl-popup-tip{border-left-color:#14161df7}.agg-popup .mapboxgl-popup-close-button{color:#9aa0a6;font-size:15px;padding:1px 5px}.agg-popup .mapboxgl-popup-close-button:hover{background:#ffffff14;color:#fff}.agg-pop-top{display:flex;align-items:center;justify-content:space-between;gap:8px}.agg-pop-db{font-size:24px;font-weight:800;line-height:1}.agg-pop-db small{font-size:11px;font-weight:600;opacity:.7}.agg-pop-tag{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.03em;padding:3px 7px;border-radius:5px;white-space:nowrap}.agg-pop-tag.band-maroon{background:#6d002657;color:#ff9bb0}.agg-pop-tag.band-red{background:#d7302738;color:#fca5a5}.agg-pop-tag.band-orange{background:#fdae6133;color:#fdba74}.agg-pop-tag.band-yellow{background:#fee08b2e;color:#fde68a}.agg-pop-tag.band-blue{background:#2c7fb83d;color:#93c5fd}.agg-pop-sub{font-size:10.5px;opacity:.6;margin:1px 0 7px}.agg-pop-grid{display:grid;grid-template-columns:auto 1fr;gap:2px 10px;font-size:11.5px;line-height:1.45}.agg-pop-grid span{opacity:.6}.agg-pop-grid b{text-align:right}.agg-details>summary{cursor:pointer;font-size:12px;color:#9aa0a6;padding:3px 0;-webkit-user-select:none;user-select:none}.agg-details>summary:hover{color:#e8eaed}.agg-details[open]>summary{color:#e8eaed;margin-bottom:2px}.agg-colour-src{font-size:12px}.layers-panel{position:absolute;top:10px;left:auto;right:50px;z-index:2;background:var(--surface);border:1px solid var(--border);border-radius:6px;color:var(--text);font-size:12px;overflow:hidden;max-width:260px}.layers-panel.is-dragging{box-shadow:0 8px 24px #00000080;cursor:grabbing}.layers-header{display:flex;align-items:stretch}.layers-header .layers-toggle{flex:1}.layers-header .mobile-close{display:none}.layers-toggle{cursor:grab;display:flex;align-items:center;gap:8px;background:transparent;border:none;color:var(--text);padding:9px 12px;font:inherit;width:100%}.layers-panel.is-dragging .layers-toggle{cursor:grabbing}.layers-toggle:hover{background:var(--surface-2)}.layers-toggle[aria-expanded=true]{border-bottom:1px solid var(--border)}.layers-toggle svg{color:var(--accent)}.layers-toggle .layers-chevron{margin-left:auto;color:var(--text-dim);transition:transform .15s ease;flex-shrink:0}.layers-toggle[aria-expanded=false] .layers-chevron{transform:rotate(-90deg)}.layers-body{padding:4px 0 0;display:flex;flex-direction:column;background:var(--surface)}.layers-section{border-top:1px solid var(--border)}.layers-section:first-child{border-top:none}.layers-section>summary{list-style:none;cursor:pointer;padding:8px 12px 8px 22px;position:relative;font-size:11px;color:var(--text-dim);letter-spacing:.1em;text-transform:uppercase;-webkit-user-select:none;user-select:none}.layers-section>summary::-webkit-details-marker{display:none}.layers-section>summary:before{content:"";position:absolute;left:10px;top:50%;width:6px;height:6px;border-right:1.5px solid var(--text-dim);border-bottom:1.5px solid var(--text-dim);transform:translateY(-65%) rotate(-45deg);transition:transform .15s ease}.layers-section[open]>summary:before{transform:translateY(-25%) rotate(45deg)}.layers-section>summary:hover{background:var(--surface-2);color:var(--text)}.layers-section>.section-body{padding:4px 12px 10px;display:flex;flex-direction:column;gap:4px}.layer-row{display:grid;grid-template-columns:16px 14px 1fr auto;gap:8px;align-items:center;cursor:pointer;padding:4px 0;font-size:12px}.layer-row:hover .layer-name{color:var(--text)}.layer-row input[type=checkbox]{margin:0;cursor:pointer;accent-color:var(--accent)}.layer-swatch{width:12px;height:12px;border-radius:2px;border:1.5px solid rgba(255,255,255,.18);transition:opacity .15s ease,background .15s ease}.layer-swatch[data-layer=spa]{background:#3d8b50;border-color:#3d8b50}.layer-swatch[data-layer=sac]{background:#2a7d9d;border-color:#2a7d9d}.layer-swatch[data-layer=parks]{background:#c4923a;border-color:#c4923a}.layer-swatch[data-layer=sensitive]{background:#a04ec4;border-color:#a04ec4}.layer-swatch[data-layer=bldg-res]{background:#5a9fe0;border-color:#5a9fe0}.layer-swatch[data-layer=bldg-com]{background:#d9803a;border-color:#d9803a}.layer-swatch[data-layer=bldg-unk]{background:#8a8a8a;border-color:#8a8a8a}.layer-swatch[data-layer=bvlos]{background:#2dd4bf;border-color:#2dd4bf}.layer-swatch[data-layer=impact]{background:#c8ccd2;border-color:#c8ccd2}.layer-swatch[data-layer=view3d]{background:linear-gradient(135deg,#5a9fe0,#5a9fe0 50%,#2a3850 50%);border-color:#5a9fe0}.layer-swatch[data-layer=radius]{background:transparent;border:1.5px dashed var(--depot);border-radius:50%}.layer-row:has(.layer-swatch){grid-template-columns:14px 1fr auto}.layer-row:has(.layer-swatch)>input[type=checkbox]{position:absolute;opacity:0;width:1px;height:1px;pointer-events:none;margin:0}.layer-row>input[type=checkbox]:not(:checked)~.layer-swatch{background:transparent;opacity:.4}.layer-row>input[type=checkbox]:not(:checked)~.layer-name{color:var(--text-faint)}.layer-row>input[type=checkbox]:focus-visible~.layer-swatch{box-shadow:0 0 0 2px var(--bg),0 0 0 3px var(--accent)}.layer-name{color:var(--text-dim)}.layer-row.radio-row{grid-template-columns:16px 1fr}.cycle-btn{display:flex;align-items:center;gap:6px;background:var(--surface-2);border:1px solid var(--border);color:var(--text);padding:5px 10px;border-radius:4px;font:inherit;font-size:12px;cursor:pointer;margin:4px 0 0 24px;align-self:flex-start}.cycle-btn:hover{border-color:var(--accent)}.cycle-btn .cycle-label{color:var(--text-dim)}.cycle-btn .cycle-value{color:var(--accent);font-weight:500;text-transform:capitalize}.cycle-btn .cycle-hint{margin-left:4px;color:var(--text-dim);font-size:11px}.layer-state{display:inline-flex;align-items:center;gap:4px;min-height:14px;min-width:14px;justify-content:flex-end}.layer-state .spin{width:12px;height:12px;border:1.5px solid var(--border);border-top-color:var(--accent);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.layer-state .empty{font-size:9.5px;color:var(--text-dim);font-style:italic}.layer-state .warn{display:inline-flex;align-items:center;justify-content:center;width:14px;height:14px;border-radius:50%;background:#b54a2c;color:#fff;font-size:10px;font-weight:700;cursor:help;flex-shrink:0}.layer-state .retry{background:transparent;border:1px solid var(--border);color:var(--text-dim);font:inherit;font-size:10px;padding:1px 6px;border-radius:3px;cursor:pointer;margin:0}.layer-state .retry:hover{color:var(--text);border-color:var(--accent)}.layer-error-pop{position:absolute;z-index:5;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:4px;padding:10px 12px;font-size:11.5px;line-height:1.45;max-width:240px;box-shadow:0 4px 16px #0006}.layer-error-pop .title{font-weight:600;margin-bottom:4px;color:#e88066}.layer-error-pop .detail{color:var(--text-dim);font-family:var(--mono, ui-monospace, monospace);font-size:10px;margin-top:6px;word-break:break-word}.layers-note{font-size:10px;color:var(--text-dim);line-height:1.45;margin-top:6px;padding-top:8px;border-top:1px solid var(--border);font-style:italic}@media (max-width: 640px){.layers-panel{display:none;position:fixed;top:0;right:0;bottom:0;left:auto;max-width:320px;width:86%;border-radius:0;border-left:1px solid var(--border);border-top:none;border-bottom:none;border-right:none;z-index:1100;box-shadow:-8px 0 24px #0000008c;font-size:12px;overflow-y:auto}.layers-panel.mobile-open{display:flex;flex-direction:column}.layers-panel.mobile-open .layers-toggle{padding:14px 16px;border-bottom:1px solid var(--border);cursor:default}.layers-panel.mobile-open .layers-body{display:flex!important}.layers-panel.mobile-open .layers-header .mobile-close{display:block;padding:14px 18px;border-bottom:1px solid var(--border)}.layers-panel .mobile-close{background:transparent;border:none;color:var(--text-dim);font-size:22px;line-height:1;cursor:pointer}.layers-panel.is-dragging{box-shadow:-8px 0 24px #0000008c}}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:#000c;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:20px}.modal{position:relative;background:var(--surface);border:1px solid var(--accent);border-radius:12px;padding:32px;max-width:640px;max-height:90vh;overflow-y:auto;color:var(--text);line-height:1.6}.modal h2{font-family:var(--display);font-style:normal;color:var(--text);margin-top:0}.modal h3{font-size:14px;color:var(--accent);margin-top:22px;margin-bottom:8px}.modal blockquote{border-left:3px solid var(--accent);padding-left:14px;margin:12px 0;color:var(--text-dim);font-style:italic;font-size:14px}.modal p{font-size:14px}.modal ul:not(.cite-list){list-style:none;padding:0;margin:12px 0}.modal ul:not(.cite-list) li{position:relative;padding-left:18px;margin-bottom:8px;font-size:14px;line-height:1.55}.modal ul:not(.cite-list) li:before{content:"";position:absolute;left:0;top:9px;width:6px;height:6px;border-radius:50%;background:var(--accent)}.modal ul:not(.cite-list) li code{background:var(--surface-2);padding:1px 6px;border-radius:3px;font-size:12px;color:var(--accent)}.modal .cite-list{list-style:none;padding:0;margin:16px 0;display:flex;flex-direction:column;gap:10px}.modal .cite-list li{background:var(--surface-2);border-left:3px solid var(--accent);border-radius:0 6px 6px 0;padding:12px 14px;font-size:13px;line-height:1.5;color:var(--text-dim)}.modal .cite-list li strong{display:block;color:var(--accent);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:1.5px;margin-bottom:4px}.modal .cite-list li em{color:var(--text);font-style:italic}.modal .cite-list li a{display:inline-block;background:#d4af371f;color:var(--accent);text-decoration:none;padding:2px 8px;border-radius:3px;font-family:Menlo,monospace;font-size:11px;margin:2px 0;word-break:break-all}.modal .cite-list li a:hover{background:#d4af3738}.modal details{background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:10px 14px;margin-bottom:8px;font-size:13px}.modal details summary{cursor:pointer;color:var(--text);outline:none}.modal details summary strong{color:var(--accent)}.modal details[open] summary{margin-bottom:8px}.modal details p{font-size:13px;color:var(--text-dim);margin-top:0}.modal details a{color:var(--accent)}.modal-close{position:absolute;top:14px;right:14px;background:transparent;border:none;color:var(--text-dim);font-size:18px;cursor:pointer}.modal-close:hover{color:var(--text)}.mobile-quick,.mobile-result-fab,.mobile-back-quick,.mobile-map-menu-btn,.mobile-map-menu{display:none}.link-btn{background:transparent;border:none;color:var(--accent);cursor:pointer;text-decoration:underline;font-size:inherit;padding:0;font-family:var(--sans)}@media (max-width: 768px){.layout{display:none}.mobile-quick{display:flex;flex-direction:column;flex:1;padding:24px 20px;color:var(--text)}body.mobile-map-mode .mobile-quick{display:none}body.mobile-map-mode .layout{display:flex;flex:1;flex-direction:column}body.mobile-map-mode .topbar,body.mobile-advanced .mobile-quick{display:none}body.mobile-advanced .layout{display:flex}.mobile-quick-hero{flex:1;display:flex;flex-direction:column;justify-content:center;text-align:center;gap:18px;padding-top:20px}.mobile-quick-hero h1{font-family:var(--serif);font-style:italic;font-weight:700;color:var(--text);font-size:24px;line-height:1.25;margin:0}.mobile-quick-hero p{color:var(--text-dim);font-size:14px;line-height:1.5;margin:0}.mobile-quick-cta{background:var(--accent);color:var(--bg);border:none;padding:16px;border-radius:10px;font-size:15px;font-weight:700;cursor:pointer;font-family:var(--sans);margin-top:14px}.mobile-quick-secondary{background:transparent;color:var(--text);border:1px solid var(--border);padding:12px;border-radius:8px;font-size:13px;cursor:pointer;font-family:var(--sans)}.mobile-quick-footer{text-align:center;color:var(--text-dim);font-size:12px;line-height:1.6;padding-top:24px;border-top:1px dashed var(--border);margin-top:24px}.topbar{padding:10px 16px}.brand-name{font-size:19px}.brand-mark{width:21px;height:21px}.brand-sub{display:none}.info-btn{padding:6px 12px;font-size:12px}.quick-modal{max-width:95vw;padding:24px 20px}.quick-modal h2{font-family:var(--serif);font-style:italic;color:var(--accent);margin-top:0;margin-bottom:4px}.quick-sub{color:var(--text-dim);font-size:13px;margin-bottom:18px}.quick-label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:1.5px;color:var(--text-dim);margin-bottom:6px}.quick-input{width:100%;background:var(--surface-2);border:1px solid var(--border);color:var(--text);padding:14px;border-radius:8px;font-size:16px;font-family:var(--sans)}.quick-input:focus{outline:none;border-color:var(--accent)}.quick-or{text-align:center;color:var(--text-dim);font-size:12px;margin:14px 0;text-transform:uppercase;letter-spacing:2px}.quick-secondary-btn{width:100%;background:var(--surface-2);color:var(--text);border:1px solid var(--border);padding:14px;border-radius:8px;font-size:14px;cursor:pointer;font-family:var(--sans);margin-top:6px}.quick-cta-btn{width:100%;background:var(--accent);color:var(--bg);border:none;padding:16px;border-radius:8px;font-size:15px;font-weight:700;cursor:pointer;font-family:var(--sans);margin-top:14px}.quick-cta-btn:disabled{background:var(--surface-2);color:var(--text-dim);cursor:not-allowed}.quick-resolved{font-size:12px;color:var(--good);font-style:italic;margin-top:12px;text-align:center;min-height:16px}.quick-resolved.error{color:var(--danger)}#quickStepLoading{text-align:center;padding:40px 20px}.quick-spinner{width:48px;height:48px;border:4px solid var(--border);border-top-color:var(--accent);border-radius:50%;margin:0 auto 20px;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.quick-loading-text{color:var(--text-dim);font-size:13px}.quick-destination{background:var(--surface-2);padding:10px 12px;border-radius:6px;font-size:12px;color:var(--text-dim);margin-bottom:16px}.quick-destination strong{color:var(--text)}.quick-hero-number{text-align:center;background:linear-gradient(180deg,#1a1612,#141414);border:1px solid var(--accent);border-radius:12px;padding:24px 16px;margin:16px 0}.quick-hero-value{font-family:Menlo,monospace;font-size:56px;font-weight:700;color:var(--accent);line-height:1;margin-bottom:8px}.quick-hero-label{font-size:13px;color:var(--text);line-height:1.4}.quick-hero-label span{color:var(--text-dim);font-size:11px}.quick-breakdown{margin:14px 0}.quick-band{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:6px;margin-bottom:4px;background:var(--surface-2);font-size:12px}.quick-band-chip{width:12px;height:12px;border-radius:3px;flex-shrink:0}.quick-band-label{flex:1;color:var(--text)}.quick-band-count{font-family:Menlo,monospace;color:var(--accent);font-weight:600}.quick-ng4-note{background:#1a1010;border-left:3px solid var(--danger);padding:10px 12px;margin:14px 0;font-size:12px;color:var(--text);border-radius:4px}.quick-ng4-note.ok{background:#0f1410;border-left-color:var(--good)}.quick-actions{display:flex;flex-direction:column;gap:8px;margin-top:18px}.quick-actions .quick-cta-btn,.quick-actions .quick-secondary-btn{margin-top:0}.quick-caveat{font-size:11px;color:var(--text-dim);line-height:1.5;margin-top:18px;text-align:center}body.mobile-map-mode .layout .sidebar{display:none}body.mobile-map-mode .layout .map-wrap{height:100vh;min-height:100vh;flex:1}body.mobile-map-mode .layout .map-help{display:none}body.mobile-map-mode .mobile-back-quick,body.mobile-map-mode .mobile-result-fab,body.mobile-map-mode .mobile-map-menu-btn,body.mobile-map-mode.menu-open .mobile-map-menu{display:flex}.mobile-result-fab{position:fixed;bottom:24px;left:50%;transform:translate(-50%);background:var(--accent);color:var(--bg);border:none;border-radius:999px;padding:12px 20px;box-shadow:0 4px 20px #00000080,0 0 0 3px #d4af3733;align-items:center;gap:12px;cursor:pointer;font-family:var(--sans);z-index:100;transition:transform .15s ease,box-shadow .15s ease}.mobile-result-fab:active{transform:translate(-50%) scale(.96)}.fab-icon{display:flex;align-items:center;justify-content:center}.fab-icon svg{width:20px;height:20px;stroke:currentColor}.fab-label{display:flex;flex-direction:column;align-items:flex-start;line-height:1.1}.fab-number{font-weight:700;font-size:17px;font-family:Menlo,monospace}.fab-sub{font-size:10px;text-transform:uppercase;letter-spacing:1px;opacity:.85}.mobile-back-quick{position:fixed;top:16px;left:16px;background:#141414eb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:10px 14px;font-size:14px;font-weight:600;cursor:pointer;font-family:var(--sans);z-index:100;display:none;align-items:center;gap:6px}.mobile-back-quick:active{background:var(--surface-2)}.mobile-back-quick svg{width:16px;height:16px;stroke:currentColor}.mobile-map-menu-btn{position:fixed;top:16px;right:64px;width:44px;height:44px;background:#141414eb;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);color:var(--text);border:1px solid var(--border);border-radius:8px;line-height:1;cursor:pointer;font-family:var(--sans);z-index:100;align-items:center;justify-content:center;padding:0}.mobile-map-menu-btn:active{background:var(--surface-2)}.mobile-map-menu-btn svg{width:22px;height:22px;stroke:currentColor}.mobile-map-menu{position:fixed;top:68px;right:16px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 8px 24px #0009;flex-direction:column;z-index:101;overflow:hidden;min-width:240px;max-width:calc(100vw - 32px)}.map-menu-item{background:transparent;border:none;color:var(--text);padding:14px 16px;text-align:left;cursor:pointer;font-family:var(--sans);font-size:13px;display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--border)}.map-menu-item:last-child{border-bottom:none}.map-menu-item:active{background:var(--surface-2)}.map-menu-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:20px;height:20px;color:var(--accent)}.map-menu-icon svg{width:20px;height:20px;stroke:currentColor}.map-menu-title{font-weight:600;margin-bottom:2px}.map-menu-sub{font-size:11px;color:var(--text-dim)}}.exaggeration-row{display:flex;align-items:center;gap:8px}.exaggeration-row .layer-name{flex:0 0 auto}.exaggeration-row input[type=range]{flex:1 1 auto;min-width:60px}.exaggeration-row .exag-value{flex:0 0 auto;font-variant-numeric:tabular-nums;color:var(--text-dim);font-size:12px;min-width:34px;text-align:right}.cross-section{margin-top:14px}.cross-section:empty{display:none}.xsec-title{font-size:11px;text-transform:uppercase;letter-spacing:1.5px;color:var(--text-dim);margin-bottom:6px}.xsec-title .xsec-sub{text-transform:none;letter-spacing:0;font-size:10px;opacity:.8}.xsec-svg{width:100%;height:auto;display:block;background:var(--surface-2);border:1px solid var(--border);border-radius:6px}svg text{font-family:var(--sans)}.xsec-svg text{font-family:var(--mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em}.xsec-legend{display:flex;gap:16px;margin-top:6px;font-size:11px;color:var(--text-dim)}.xsec-legend>span{display:inline-flex;align-items:center}.xsec-key{display:inline-block;width:12px;height:3px;border-radius:2px;margin-right:6px;vertical-align:middle}.xsec-key-dotted{display:inline-block;width:12px;height:3px;margin-right:6px;vertical-align:middle;background:repeating-linear-gradient(90deg,#ededed 0 2px,transparent 2px 5px);opacity:.7}.terrain-note{margin:8px 0 0;padding:8px 10px;font-size:11px;line-height:1.4;color:var(--accent);background:#d4af3714;border:1px solid rgba(212,175,55,.35);border-radius:6px}.app-version{margin-left:auto;align-self:center;font-size:11px;font-variant-numeric:tabular-nums;color:var(--text-dim);opacity:.7;padding:2px 7px;border:1px solid var(--border);border-radius:999px;white-space:nowrap}.explainer{margin-top:8px;border-top:1px dashed var(--border);padding-top:8px}.explainer>summary{cursor:pointer;list-style:none;font-size:11px;letter-spacing:.02em;color:var(--text-dim);display:inline-flex;align-items:center;gap:6px}.explainer>summary::-webkit-details-marker{display:none}.explainer>summary:before{content:"ⓘ";opacity:.65}.explainer>summary:after{content:"▾";font-size:9px;opacity:.55;transition:transform .15s ease}.explainer[open]>summary:after{transform:rotate(180deg)}.explainer>summary:hover{color:var(--accent)}.explainer .explainer-body{margin-top:8px;font-size:12px;line-height:1.5;color:var(--text-dim)}@media (min-width: 769px){.layout{--sidebar-w: 380px}.sidebar{width:var(--sidebar-w);transition:width .18s ease,padding .18s ease}.layout.sidebar-dragging .sidebar{transition:none}.layout.sidebar-collapsed .sidebar{width:0;padding-left:0;padding-right:0;border-right:none;overflow:hidden}.sidebar-resizer{position:relative;flex:0 0 6px;align-self:stretch;cursor:col-resize;background:var(--border);transition:background .15s ease}.sidebar-resizer:hover,.layout.sidebar-dragging .sidebar-resizer{background:var(--accent)}.layout.sidebar-collapsed .sidebar-resizer{display:none}.sidebar-collapse-btn,.sidebar-reopen{position:absolute;top:12px;width:22px;height:30px;display:flex;align-items:center;justify-content:center;background:var(--surface-2);color:var(--text-dim);border:1px solid var(--border);border-radius:6px;cursor:pointer;font-size:16px;line-height:1;padding:0;z-index:8}.sidebar-collapse-btn{left:50%;transform:translate(-50%)}.sidebar-collapse-btn:hover,.sidebar-reopen:hover{color:var(--accent);border-color:var(--accent)}.sidebar-reopen{left:10px;top:12px;display:none;box-shadow:0 2px 8px #0006}.layout.sidebar-collapsed .sidebar-reopen{display:flex}}@media (max-width: 768px){.sidebar-resizer,.sidebar-collapse-btn,.sidebar-reopen{display:none!important}}.xsec-title{position:relative;padding-right:26px}.xsec-expand{position:absolute;right:0;top:-3px;width:22px;height:22px;display:inline-flex;align-items:center;justify-content:center;background:var(--surface-2);color:var(--text-dim);border:1px solid var(--border);border-radius:6px;cursor:pointer;font-size:13px;line-height:1;padding:0}.xsec-expand:hover{color:var(--accent);border-color:var(--accent)}.xsec-legend-wrap{flex-wrap:wrap;row-gap:4px}.xsec-modal{max-width:1000px;width:92vw;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:22px;position:relative;box-shadow:0 24px 70px #0000008c}.xsec-modal .xsec-title{font-size:13px}.nb-bar .band-toggle{cursor:pointer;transition:opacity .15s ease}.nb-bar .band-toggle:hover{filter:brightness(1.15)}.nb-legend-row.band-toggle{cursor:pointer;border-radius:6px;padding:2px 5px;margin:0 -5px;transition:opacity .15s ease,background .15s ease}.nb-legend-row.band-toggle:hover{background:var(--surface-2)}.band-toggle.band-hidden{opacity:.55}.band-chip-toggle{width:16px;height:16px;box-sizing:border-box;box-shadow:inset 0 0 0 2px var(--c);transition:background .12s ease}.band-toggle.band-hidden .band-chip-toggle{background:transparent!important}.nb-toggle-hint{opacity:.85}.cross-section,#xsecModalBody{position:relative}.xsec-tip{position:absolute;z-index:30;pointer-events:none;background:var(--surface-2);border:1px solid var(--border);border-radius:7px;padding:7px 9px;font-size:11px;line-height:1.5;color:var(--text);box-shadow:0 6px 18px #00000080;max-width:230px;white-space:nowrap}.xsec-guide{position:absolute;width:1px;background:#ffffff80;pointer-events:none;z-index:29}.xsec-band-legend{margin-top:4px;align-items:center}.xsec-band-legend-label{color:var(--text-dim);margin-right:2px}#importSection{margin-top:10px}#importSection .section-title{font-family:var(--mono);font-size:10.5px;text-transform:uppercase;letter-spacing:1.5px;color:var(--text-dim);font-weight:500;margin-bottom:12px}.import-file-label{display:block;font-size:13px;color:var(--text);margin-bottom:6px}.import-file-label input[type=file]{display:block;margin-top:8px;font-size:12px;color:var(--text-dim);max-width:100%}.import-file-label input[type=file]::file-selector-button,.import-file-label input[type=file]::-webkit-file-upload-button{background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:7px 12px;margin-right:10px;font-size:12px;font-family:var(--sans);cursor:pointer}.import-file-label input[type=file]::file-selector-button:hover,.import-file-label input[type=file]::-webkit-file-upload-button:hover{border-color:var(--accent)}.import-status{margin-top:8px;font-size:12px;line-height:1.45;color:var(--text-dim);background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:7px 9px}.import-status.error{color:#ff9b8a;border-color:#7a2a22}#droneScannerPicker{display:block}#droneScannerPicker label{display:block;font-size:13px;color:var(--text-dim)}#droneScannerPicker select{width:100%;margin-top:6px;background:var(--surface-2);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:9px 12px;font-size:13px;font-family:var(--sans);cursor:pointer}#droneScannerPicker select:focus{outline:none;border-color:var(--accent)}#clearImportBtn{margin-top:8px}.obs-validator{margin-top:22px;padding-top:18px;border-top:1px solid var(--border)}.obs-v-lead{font-size:13px;color:var(--text-dim);line-height:1.5;margin:0 0 12px}.obs-v-label{display:block;font-size:10.5px;text-transform:uppercase;letter-spacing:1px;color:var(--text-dim);font-family:var(--mono);margin:12px 0 5px}.obs-v-select{width:100%;background:var(--surface-2);border:1px solid var(--border);color:var(--text);border-radius:6px;padding:9px 10px;font-size:13px;font-family:var(--sans)}.obs-v-turnstile{margin:14px 0 4px}.obs-v-submit{width:100%;margin-top:12px;background:var(--accent);color:var(--bg);border:1px solid var(--accent);padding:11px;border-radius:6px;font-weight:700;font-size:13px;cursor:pointer;font-family:var(--sans)}.obs-v-submit:disabled{background:transparent;color:var(--text-faint);border-color:var(--border);cursor:not-allowed}.obs-v-msg{font-size:12px;color:var(--danger);margin:8px 0 0;min-height:14px}.obs-v-fine{font-size:11px;color:var(--text-faint);margin:10px 0 0;line-height:1.4}.obs-v-loc{font-size:13px;color:var(--text-dim);background:var(--surface-2);border:1px solid var(--border);border-radius:6px;padding:9px 11px;margin-top:4px;line-height:1.4}.obs-v-loc strong{color:var(--text)}.obs-help{margin-top:10px;border:1px solid var(--border);border-radius:6px;background:var(--surface-2)}.obs-help>summary{list-style:none;cursor:pointer;padding:9px 11px;font-size:12px;font-weight:600;color:var(--accent);font-family:var(--sans);-webkit-user-select:none;user-select:none}.obs-help>summary::-webkit-details-marker{display:none}.obs-help>summary:before{content:"＋";display:inline-block;width:14px;color:var(--text-faint);font-weight:400}.obs-help[open]>summary:before{content:"－"}.obs-help-body{padding:0 12px 11px}.obs-help-body p{font-size:12px;color:var(--text-dim);line-height:1.5;margin:0 0 8px}.obs-help-body p:last-child{margin-bottom:0}.obs-help-body strong{color:var(--text)}.obs-help-fine{color:var(--text-faint)!important;font-size:11px!important}.app-toasts{position:fixed;left:50%;bottom:20px;transform:translate(-50%);z-index:6000;display:flex;flex-direction:column;gap:8px;align-items:center;width:min(92vw,460px);pointer-events:none}.app-toast{pointer-events:auto;display:flex;align-items:flex-start;gap:10px;width:100%;box-sizing:border-box;background:var(--surface-2);border:1px solid var(--border);border-left:3px solid var(--accent);color:var(--text);padding:11px 12px;border-radius:8px;box-shadow:0 8px 28px #0006;font-family:var(--sans);font-size:13px;line-height:1.4;opacity:0;transform:translateY(8px);transition:opacity .2s ease,transform .2s ease}.app-toast.show{opacity:1;transform:translateY(0)}.app-toast-warn{border-left-color:var(--depot)}.app-toast-error{border-left-color:var(--danger)}.app-toast-msg{flex:1}.app-toast-x{flex:none;background:transparent;border:none;color:var(--text-dim);font-size:13px;line-height:1;cursor:pointer;padding:2px 4px;border-radius:4px;font-family:var(--sans)}.app-toast-x:hover{color:var(--text);background:#ffffff14}.cached-towns-list{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}.town-chip{font-size:12px;line-height:1;padding:5px 10px;border-radius:999px;border:1px solid var(--border);background:var(--surface-2);color:var(--text);cursor:pointer;white-space:nowrap;transition:border-color .12s,background .12s}.town-chip:hover{border-color:var(--depot);background:var(--surface)}
