*{box-sizing:border-box}body{margin:0}:root{--bg:#0d1a0d;--bg2:#1a2a1a;--bg3:#243324;--border:#2a4a2a;--accent:#4caf50;--accent2:#81c784;--warn:#ffcc02;--danger:#e53935;--ok:#4caf50;--text:#c8e6c9;--text-dim:#6a9a6a;--label:#a5d6a7;--mono:"Courier New", Courier, monospace;--sans:system-ui, -apple-system, sans-serif;--radius:4px}.theme-ol{--bg:var(--obsidian-void);--bg2:var(--obsidian-abyss);--bg3:var(--obsidian-deep);--border:var(--obsidian-fog);--accent:var(--neon-magenta);--accent2:var(--neon-cyan);--warn:var(--signal-warn);--danger:var(--signal-alert);--ok:var(--signal-ok);--text:var(--fg-1);--text-dim:var(--fg-3);--label:var(--fg-2);--mono:var(--font-mono);--sans:var(--font-body);--radius:var(--radius-0)}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{background:var(--bg);color:var(--text);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;font-size:16px}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg2)}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--accent)}::-webkit-scrollbar-corner{background:var(--bg2)}*{scrollbar-width:thin;scrollbar-color:var(--border) var(--bg2)}.app{flex-direction:column;max-width:1440px;height:100dvh;margin:0 auto;display:flex}.app-header{background:var(--bg2);border-bottom:1px solid var(--border);z-index:1100;flex-shrink:0;justify-content:space-between;align-items:center;padding:8px 16px;display:flex;position:relative}.header-title{font-family:var(--mono);letter-spacing:.16em;color:var(--accent);text-transform:uppercase;align-items:center;gap:8px;font-size:13px;font-weight:700;display:flex}.header-status{font-family:var(--mono);letter-spacing:1px;border-radius:var(--radius);padding:2px 8px;font-size:11px}.header-status.ok{color:var(--ok);border:1px solid var(--ok)}.header-status.err{color:var(--warn);border:1px solid var(--warn)}.tab-bar{background:var(--bg2);border-bottom:2px solid var(--border);flex-shrink:0;display:flex;overflow-x:auto}.tab-btn{min-width:60px;color:var(--text-dim);font-family:var(--mono);letter-spacing:1px;cursor:pointer;white-space:nowrap;text-transform:uppercase;background:0 0;border:none;border-bottom:2px solid #0000;flex:1 0 auto;padding:8px;font-size:11px;transition:color .15s,border-color .15s}.tab-btn:hover{color:var(--text)}.tab-btn.active{color:var(--accent);border-bottom-color:var(--accent)}.tab-btn:focus-visible{outline:2px solid var(--accent2);outline-offset:-2px}.tab-content{flex:1;padding:12px;overflow-y:auto}.section{background:linear-gradient(180deg, var(--bg3), var(--bg2));border:1px solid var(--border);border-radius:var(--radius);margin-bottom:12px;position:relative;overflow:hidden}.section:before{content:"";border-top:2px solid var(--accent);border-left:2px solid var(--accent);width:18px;height:18px;filter:drop-shadow(0 0 4px var(--accent));pointer-events:none;position:absolute;top:-1px;left:-1px}.section-header{background:var(--bg3);font-family:var(--mono);letter-spacing:1.5px;color:var(--accent2);border-bottom:1px solid var(--border);text-transform:uppercase;padding:6px 10px;font-size:11px}.section-body{padding:10px}.eyebrow{font-family:var(--mono);letter-spacing:.16em;color:var(--accent);text-transform:uppercase;font-size:11px}.eyebrow:before{content:"// "}.eyebrow:after{content:" //"}.field-row{grid-template-columns:1fr 1fr;gap:8px;margin-bottom:8px;display:grid}.field-row-3{grid-template-columns:1fr 1fr 1fr;gap:8px;margin-bottom:8px;display:grid}.field{flex-direction:column;gap:3px;display:flex}label{letter-spacing:1px;color:var(--label);font-size:11px;font-family:var(--mono);text-transform:uppercase}input,select{background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-1,2px);color:var(--text);font-family:var(--mono);width:100%;padding:6px 8px;font-size:14px;transition:border-color .15s}select{padding-right:28px}input:focus,select:focus{outline:2px solid var(--accent2);outline-offset:1px;border-color:var(--accent2)}select option{background:var(--bg2)}.result-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:8px;margin-bottom:8px;display:grid}.result-card{background:var(--bg3);border:1px solid var(--border);border-radius:var(--radius);padding:8px 10px}.result-card .rc-label{font-family:var(--mono);letter-spacing:1px;color:var(--text-dim);text-transform:uppercase;margin-bottom:4px;font-size:11px}.result-card .rc-value{font-family:var(--mono);color:var(--accent);font-size:18px;font-weight:700}.result-card .rc-unit{color:var(--text-dim);margin-left:3px;font-size:11px}.result-card .rc-sub{font-family:var(--mono);color:var(--text-dim);margin-top:2px;font-size:12px}.btn{border-radius:var(--radius-1,2px);border:1px solid var(--accent);color:var(--accent);font-family:var(--mono);letter-spacing:1px;cursor:pointer;text-transform:uppercase;background:0 0;padding:7px 14px;font-size:12px;transition:background .15s,color .15s,transform 80ms}.btn:hover{background:var(--accent);color:var(--bg);box-shadow:0 0 8px var(--accent)}.btn:active{transform:translateY(1px)}.btn:disabled{opacity:.4;cursor:not-allowed}.btn:focus-visible{outline:2px solid var(--accent2);outline-offset:2px}.btn-sm{padding:4px 8px;font-size:11px}.btn-danger{border-color:var(--danger);color:var(--danger)}.btn-danger:hover{background:var(--danger);color:var(--bg);box-shadow:0 0 8px var(--danger)}.btn-warn{border-color:var(--warn);color:var(--warn)}.btn-warn:hover{background:var(--warn);color:var(--bg);box-shadow:0 0 8px var(--warn)}.btn-active{background:var(--accent);color:var(--bg)}.status-pill{border-radius:var(--radius-pill,999px);font-family:var(--mono);letter-spacing:.16em;text-transform:uppercase;border:1px solid;align-items:center;gap:4px;padding:2px 8px;font-size:10px;display:inline-flex}.status-pill.ok{color:var(--ok)}.status-pill.warn{color:var(--warn)}.status-pill.alert{color:var(--danger)}.status-pill.info{color:var(--accent2)}.modal-backdrop{z-index:9999;background:#060e06cc;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.modal-backdrop.scroll{align-items:flex-start;overflow-y:auto}.theme-ol.modal-backdrop{background:#07040ecc}.modal-card{background:var(--bg2);border:1px solid var(--border);border-radius:var(--radius);box-shadow:0 12px 48px #000000b3}.map-outer{flex-direction:column;height:calc(100dvh - 115px);display:flex}.map-container{border-radius:var(--radius);flex:1 0 320px;min-height:320px;overflow:hidden}.map-toolbar{flex-wrap:wrap;flex-shrink:0;gap:8px;padding:8px 0;display:flex}.leg-list{max-height:50vh;padding-right:4px;overflow-y:auto}.leaflet-marker-icon{background:0 0!important;border:none!important}.cp-label{font-family:var(--mono);letter-spacing:.5px;padding:1px 6px;font-size:11px;line-height:14px;background:var(--bg2)!important;border:1px solid var(--cp-color,var(--border))!important;border-radius:var(--radius-1,2px)!important;color:var(--cp-color,var(--text))!important;box-shadow:0 0 6px var(--cp-color,transparent)!important}.cp-label:before{display:none}.mono{font-family:var(--mono)}.accent{color:var(--accent)}.warn-text{color:var(--warn)}.danger{color:var(--danger)}.dim{color:var(--text-dim)}.mt8{margin-top:8px}.mt12{margin-top:12px}.row{align-items:center;gap:8px;display:flex}.spacer{flex:1}.no-results{text-align:center;color:var(--text-dim);font-family:var(--mono);padding:32px}.working-panel{margin-top:8px}.working-toggle{border:1px solid var(--border);border-radius:var(--radius);color:var(--text-dim);font-family:var(--mono);cursor:pointer;text-align:left;background:0 0;width:100%;padding:4px 10px;font-size:12px;transition:color .15s}.working-toggle:hover{color:var(--text)}.working-body{background:var(--bg);border:1px solid var(--border);border-radius:0 0 var(--radius) var(--radius);font-family:var(--mono);color:var(--text-dim);white-space:pre-wrap;border-top:none;padding:10px;font-size:12px;line-height:1.7}.working-row{margin-bottom:4px}.working-label{color:var(--accent2);margin-right:4px}.working-expr{color:var(--text)}@media print{.app-header,.tab-bar{display:none!important}.tab-content{padding:0;overflow:visible}}@media (width<=480px){.field-row,.field-row-3{grid-template-columns:1fr}.result-grid{grid-template-columns:1fr 1fr}.tab-btn{padding:6px 4px;font-size:10px}}
