:root{--navy: #1b2d4e;--blue: #0ba5e0;--action: #0369a1;--action-dark: #075985;--bg: #f4f6fa;--card: #ffffff;--line: #e2e8f0;--text: #1e293b;--muted: #64748b;--ok-bg: #dcfce7;--ok: #166534;--warn-bg: #fef3c7;--warn: #92400e;--bad-bg: #fee2e2;--bad: #991b1b;--radius: 8px;font-family:system-ui,Segoe UI,Roboto,Arial,sans-serif;color:var(--text);background:var(--bg)}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);line-height:1.5;font-size:15px}h1,h2,h3{color:var(--navy);line-height:1.25}h1{font-size:1.6rem;margin:.2em 0 .6em}h2{font-size:1.2rem;margin:0 0 .6em}h3{font-size:1rem;margin:1em 0 .5em}a{color:var(--action)}a:hover{color:var(--navy)}.page{max-width:1200px;margin:0 auto;padding:24px}.muted{color:var(--muted)}.breadcrumb{font-size:.85rem;color:var(--muted);margin-bottom:2px}.breadcrumb a{color:var(--muted);text-decoration:none}.page-title{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:16px}.page-title h1{margin:0}.page-title .actions{margin-left:auto;display:flex;gap:8px;flex-wrap:wrap}.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:16px;margin-bottom:16px}.card>h2:first-child,.card>h3:first-child,.card>div:first-child>h2:first-child{margin-top:0}.card.attention{border-left:4px solid #f59e0b}.grid-2{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,3fr);gap:16px;align-items:start}.tiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;margin-bottom:16px}.tile{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px}.tile-label{font-size:.72rem;color:var(--muted);text-transform:uppercase;letter-spacing:.04em}.tile-value{font-size:1.4rem;font-weight:700;color:var(--navy);margin-top:2px;overflow-wrap:anywhere}.tile-sub{font-size:.8rem;color:var(--muted)}label{color:var(--text)}input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],select,textarea{font:inherit;color:var(--text);background:#fff;border:1px solid #cbd5e1;border-radius:6px;padding:8px 10px;margin:2px 0}input:focus,select:focus,textarea:focus,button:focus-visible,a:focus-visible{outline:2px solid var(--blue);outline-offset:1px}input[type=checkbox],input[type=radio]{accent-color:var(--blue)}input.full-width{display:block;width:100%;margin-top:4px}.dropzone{border:2px dashed #cbd5e1;border-radius:var(--radius);padding:16px;text-align:center;color:var(--muted);background:#fafbfd;margin:8px 0}.dropzone small{display:block;font-size:.8rem}button{font:inherit;font-size:.92rem;cursor:pointer;border-radius:6px;padding:7px 14px;background:#fff;color:var(--navy);border:1px solid var(--navy)}button:hover:not(:disabled){background:#eef2f8}button.primary{background:var(--action);color:#fff;border-color:var(--action);font-weight:600}button.primary:hover:not(:disabled){background:var(--action-dark);border-color:var(--action-dark)}button.danger{background:var(--bad);color:#fff;border-color:var(--bad);font-weight:600}button:disabled{opacity:.5;cursor:not-allowed}table{border-collapse:collapse;width:100%;font-size:.9rem;background:var(--card)}th{text-align:left;font-size:.72rem;text-transform:uppercase;letter-spacing:.04em;color:var(--muted);font-weight:600;padding:8px;border-bottom:1px solid var(--line)}td{padding:8px;border-bottom:1px solid var(--line);vertical-align:top}tr:last-child td{border-bottom:none}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}.badge{display:inline-block;border-radius:999px;padding:2px 10px;font-size:.78rem;font-weight:600}.badge-ok{background:var(--ok-bg);color:var(--ok)}.badge-warn{background:var(--warn-bg);color:var(--warn)}.badge-bad{background:var(--bad-bg);color:var(--bad)}.tile-hint{font-size:.85rem;color:var(--muted);margin-top:6px}.tile-up{color:var(--ok)}.tile-down{color:var(--bad)}.badge-attn{background:#e0f2fe;color:var(--action-dark)}[role=alert]{background:var(--bad-bg);color:var(--bad);border-radius:6px;padding:8px 12px}[role=status]{background:#e0f2fe;color:var(--navy);border-radius:6px;padding:8px 12px}.app-header{background:var(--navy);color:#fff}.app-header-inner{max-width:1200px;margin:0 auto;padding:10px 24px;display:flex;align-items:center;gap:10px}.brand{display:flex;align-items:center;gap:8px;color:#fff;text-decoration:none;font-weight:700;letter-spacing:.08em}.brand img{width:28px;height:28px}.brand:hover{color:#fff}.app-nav{margin-left:auto;display:flex;gap:18px;align-items:center}.app-nav a,.app-nav button.nav-link{color:#dbe4f0;text-decoration:none;background:none;border:none;padding:4px 0;font-size:.95rem}.app-nav a.active{color:#fff;border-bottom:2px solid var(--blue)}.app-nav a:hover,.app-nav button.nav-link:hover{color:#fff;background:none}.menu-toggle{display:none;margin-left:auto;background:none;border:1px solid #ffffff55;color:#fff;font-size:1.2rem;padding:4px 10px}.auth-shell{min-height:calc(100vh - 60px);display:flex;align-items:flex-start;justify-content:center;padding:48px 16px 24px}.auth-card{width:100%;max-width:400px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:28px 28px 24px}.auth-brand{text-align:center;margin-bottom:12px}.auth-brand img{width:56px;height:56px}.auth-brand .wordmark{font-weight:700;letter-spacing:.15em;color:var(--navy);margin-top:2px}.auth-brand .tagline{color:var(--muted);font-size:.88rem;margin-top:2px}.auth-card form label{display:block;margin:10px 0;font-size:.9rem}.auth-card form input[type=text],.auth-card form input[type=email],.auth-card form input[type=password],.auth-card form select{display:block;width:100%;margin-top:4px}.auth-card form button.primary{width:100%;padding:10px;margin-top:8px}.auth-card h1{font-size:1.2rem;text-align:center}.app-footer{text-align:center;color:var(--muted);font-size:.85rem;padding:16px 16px 28px}.app-footer a{color:var(--muted)}.mapping-note{color:var(--muted);font-size:.9rem;margin:4px 0 12px}.chart-note{font-size:.85rem;color:var(--muted);margin:4px 0 12px}.forecast-headline{font-size:1.05rem;margin:4px 0}button.explain-forecast{min-height:44px}.table-scroll{overflow-x:auto}@media (max-width: 640px){body{margin:0;font-size:16px;line-height:1.45}h1{font-size:1.5rem}h2{font-size:1.25rem}p,li,td,th,label,span,strong,a{overflow-wrap:anywhere}label{display:block;margin:8px 0}input[type=text],input[type=email],input[type=password],input[type=number],input[type=date],input[type=file],select,textarea{display:block;width:100%;max-width:100%;min-height:44px;box-sizing:border-box;font-size:16px;margin-top:4px}input[type=checkbox],input[type=radio]{min-width:22px;min-height:22px;vertical-align:middle}button{min-height:44px;padding:8px 14px;font-size:16px;margin:4px 4px 4px 0}img,svg{max-width:100%}.table-scroll{max-width:100%;-webkit-overflow-scrolling:touch}.table-scroll table{min-width:100%}.table-scroll th,.table-scroll td.num{overflow-wrap:normal;white-space:nowrap}.table-scroll td{max-width:70vw}ul{padding-left:20px}footer{margin-top:24px}.page{padding:16px}.app-header-inner{padding:10px 16px;flex-wrap:wrap}.menu-toggle{display:block;min-height:44px;min-width:44px}.app-nav{display:none;width:100%;flex-direction:column;align-items:stretch;gap:0;margin:8px 0 0}.app-nav.open{display:flex}.app-nav a,.app-nav button.nav-link{padding:12px 4px;min-height:44px;border-bottom:1px solid #ffffff22;text-align:left}.app-nav a.active{border-bottom:1px solid #ffffff22;color:#fff;font-weight:700}.grid-2{grid-template-columns:1fr}.tiles{grid-template-columns:1fr 1fr}.tile{container-type:inline-size}.tile-value{font-size:min(1.4rem,11cqi)}.page-title .actions{margin-left:0;width:100%}.auth-shell{padding:20px 12px}.auth-card{padding:20px 16px}}
