:root{--bg:#0b1120;--bg-soft:#111a2e;--panel:#151f36;--panel-2:#1c2946;--border:#263352;--text:#e6edf7;--muted:#93a4c3;--accent:#f97316;--accent-soft:#f9731626;--good:#22c55e;--warn:#facc15;--bad:#ef4444;--radius:14px}*{box-sizing:border-box}html,body{background:radial-gradient(circle at 15% -10%, #1b2b4d 0%, var(--bg) 45%) no-repeat;background-color:var(--bg);color:var(--text);min-height:100%;margin:0;padding:0;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif}a{color:#7dd3fc}.app{width:min(1180px,100% - 2rem);margin:0 auto;padding:2.5rem 0 3rem}.hero{margin-bottom:1.75rem}.badge{letter-spacing:.12em;text-transform:uppercase;color:var(--accent);background:var(--accent-soft);border:1px solid #f9731659;border-radius:999px;padding:.25rem .6rem;font-size:.72rem;display:inline-block}.hero h1{letter-spacing:-.03em;margin:.65rem 0 .5rem;font-size:clamp(2rem,5vw,3.1rem);line-height:1.05}.lede{color:var(--muted);max-width:62ch;margin:0;line-height:1.55}.panel{background:linear-gradient(180deg, var(--panel) 0%, var(--bg-soft) 100%);border:1px solid var(--border);border-radius:var(--radius);padding:1.25rem}.form-grid{grid-template-columns:repeat(12,1fr);align-items:end;gap:.9rem 1rem;display:grid}.field{flex-direction:column;grid-column:span 3;gap:.35rem;display:flex}.field.span-4{grid-column:span 4}.field.span-6{grid-column:span 6}.field.span-12{grid-column:span 12}label{color:var(--muted);letter-spacing:.02em;font-size:.78rem;font-weight:600}input,select,button{font:inherit;color:var(--text)}input[type=text],input[type=number],input[type=datetime-local],select{background:var(--panel-2);border:1px solid var(--border);border-radius:10px;width:100%;min-height:2.6rem;padding:.6rem .7rem}input:focus,select:focus,button:focus-visible{outline-offset:1px;outline:2px solid #f9731680}input[type=file]{background:var(--panel-2);border:1px dashed var(--border);cursor:pointer;border-radius:10px;width:100%;padding:.55rem}input[type=file]::file-selector-button{background:var(--accent);color:#1a1206;cursor:pointer;border:0;border-radius:8px;margin-right:.7rem;padding:.45rem .7rem;font-weight:700}.check{color:var(--muted);grid-column:span 6;align-items:center;gap:.5rem;font-size:.9rem;display:flex}.check input{width:1.05rem;height:1.05rem;accent-color:var(--accent)}.actions{grid-column:span 6;justify-content:flex-end;align-items:center;gap:.75rem;display:flex}button.primary{background:var(--accent);color:#1a1206;cursor:pointer;border:0;border-radius:10px;min-height:2.6rem;padding:.7rem 1.2rem;font-weight:800}button.primary:disabled{opacity:.6;cursor:progress}button.ghost{color:var(--muted);border:1px solid var(--border);cursor:pointer;background:0 0;border-radius:10px;padding:.7rem 1rem}.error{color:#fecaca;background:#ef44441f;border:1px solid #ef444480;border-radius:10px;margin-top:1rem;padding:.8rem 1rem;line-height:1.45}.warnings{color:#fde68a;background:#facc1514;border:1px solid #facc1547;border-radius:10px;margin:1rem 0 0;padding:.85rem 1rem .85rem 2rem;font-size:.88rem;line-height:1.5}.results{gap:1.25rem;margin-top:1.5rem;display:grid}.summary{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:.75rem;display:grid}.stat{background:var(--panel);border:1px solid var(--border);border-radius:12px;padding:.85rem 1rem}.stat .k{text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-size:.72rem}.stat .v{margin-top:.2rem;font-size:1.35rem;font-weight:800}.map-wrap{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);overflow:hidden}.map{width:100%;height:min(62vh,560px)}.weather-marker{border:2px solid var(--accent);cursor:pointer;background:#0b1120e0;border-radius:999px;place-items:center;width:2.1rem;height:2.1rem;font-size:1.05rem;display:grid;box-shadow:0 2px 8px #00000073}.weather-marker[data-kind=rain],.weather-marker[data-kind=storm]{border-color:#60a5fa}.weather-marker[data-kind=snow]{border-color:#e0f2fe}.weather-marker[data-kind=clear]{border-color:#fbbf24}.popup{color:#0b1120;min-width:150px;font-size:.85rem;line-height:1.4}.popup strong{margin-bottom:.2rem;display:block}.popup .muted{color:#475569}.table-wrap{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);overflow-x:auto}table{border-collapse:collapse;white-space:nowrap;width:100%;font-size:.88rem}thead th{background:var(--panel-2);text-align:left;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border-bottom:1px solid var(--border);padding:.7rem .75rem;font-size:.72rem;position:sticky;top:0}tbody td{vertical-align:middle;border-bottom:1px solid #26335299;padding:.65rem .75rem}tbody tr:hover{background:#f973160d}tbody tr:last-child td{border-bottom:0}td.num{text-align:right;font-variant-numeric:tabular-nums}.icon-cell{text-align:center;font-size:1.15rem}.pill{background:var(--panel-2);border:1px solid var(--border);border-radius:999px;padding:.15rem .5rem;font-size:.75rem;font-weight:700;display:inline-block}.pill.head{color:#fca5a5;background:#ef444426;border-color:#ef444466}.pill.tail{color:#86efac;background:#22c55e24;border-color:#22c55e66}.pill.calm{color:var(--muted)}.row-error{color:#fca5a5;font-size:.82rem}.footer{color:var(--muted);border-top:1px solid var(--border);margin-top:2.5rem;padding-top:1rem;font-size:.82rem;line-height:1.6}.footer p{margin:.2rem 0}.muted{color:var(--muted)}.note{color:var(--muted);margin:.35rem 0 0;font-size:.78rem}@media (max-width:820px){.field,.field.span-4,.field.span-6,.actions,.check{grid-column:span 12}.actions{flex-direction:column-reverse;justify-content:stretch;align-items:stretch}.actions button{width:100%}.map{height:52vh}}
