:root{--bg:#0b0d10;--panel:#14181d;--panel-2:#1b2027;--border:#262d36;--text:#e7edf3;--muted:#8b98a7;--accent:#ff5a1f;--accent-2:#2dd4bf;--good:#35c46b;--warn:#f5b544;--bad:#ef4d4d;--radius:12px;--space:16px}*{box-sizing:border-box}body,html{margin:0;padding:0;height:100%;background:var(--bg);color:var(--text);font-family:Segoe UI,system-ui,-apple-system,Roboto,Helvetica,Arial,sans-serif}.app{display:grid;grid-template-columns:380px 1fr;height:100vh}@media (max-width:820px){.app{grid-template-columns:1fr;grid-template-rows:auto 1fr;height:auto;min-height:100vh}}.panel{background:var(--panel);border-right:1px solid var(--border);padding:var(--space);overflow-y:auto}.brand{display:flex;align-items:baseline;gap:8px;margin-bottom:20px}.brand h1{font-size:22px;letter-spacing:.5px;margin:0}.brand .mc{color:var(--accent)}.brand small{color:var(--muted)}.field{margin-bottom:12px}.field label{display:block;font-size:12px;text-transform:uppercase;letter-spacing:.6px;color:var(--muted);margin-bottom:6px}.field input,.field select{width:100%;padding:10px 12px;background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);font-size:15px}.row{display:flex;gap:8px}.row>*{flex:1 1}.checks{display:grid;grid-template-columns:1fr 1fr;grid-gap:6px;gap:6px;margin:8px 0 14px}.checks label{display:flex;align-items:center;gap:8px;font-size:13px;color:var(--text);text-transform:none;letter-spacing:0}button{cursor:pointer;border:none;border-radius:var(--radius);padding:12px 14px;font-size:15px;font-weight:600;color:#0b0d10;background:var(--accent);transition:transform .06s ease,filter .15s ease}button:hover{filter:brightness(1.08)}button:active{transform:translateY(1px)}button.secondary{background:var(--panel-2);color:var(--text);border:1px solid var(--border)}button:disabled{opacity:.5;cursor:not-allowed}.actions{display:flex;gap:8px;margin-top:8px}.stats{margin-top:18px;background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius);padding:14px}.stat{display:flex;justify-content:space-between;padding:6px 0;border-bottom:1px dashed var(--border);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.stat:last-child{border-bottom:none}.stat .k{color:var(--muted)}.stat .v{font-weight:700}.score{display:flex;align-items:center;gap:12px;margin-top:12px}.score .num{font-size:40px;font-weight:800;color:var(--accent-2);font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.score .band{color:var(--muted)}.map{position:relative;height:100%;min-height:320px}.map-placeholder{height:100%;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:12px;color:var(--muted);text-align:center;padding:24px;background:repeating-linear-gradient(45deg,#101418,#101418 12px,#0d1115 0,#0d1115 24px)}.error{margin-top:12px;color:var(--bad);font-size:14px}.hint{color:var(--muted);font-size:12px;margin-top:4px}.candidates{margin-top:12px;display:grid;grid-gap:8px;gap:8px}.candidate{background:var(--panel-2);border:1px solid var(--border);border-radius:var(--radius);padding:10px 12px;cursor:pointer}.candidate.active{border-color:var(--accent)}.candidate .label{text-transform:uppercase;letter-spacing:.6px;font-size:12px;color:var(--accent)}