:root{--bg:#f2f6fa;--card:#fff;--text:#112031;--muted:#5f6f82;--accent:#0f6cbf;--line:#d9e3ec;--good:#1f7a33;--bad:#a12828;--space:1rem}
*{box-sizing:border-box}body{margin:0;font-family:Verdana,Arial,sans-serif;background:linear-gradient(180deg,#e8f1f9,#f8fbfe 30%,#f2f6fa);color:var(--text);min-height:100vh;display:flex;flex-direction:column}
.wrap{width:min(1120px,94vw);margin:0 auto}.top{background:#0b2f52;color:#fff;padding:.8rem 0}.head-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap}.brand{font-weight:700}
nav a{color:#fff;text-decoration:none;padding:.35rem .6rem;border-radius:8px}nav a:hover{background:rgba(255,255,255,.14)}
nav .nav-switch{display:inline-flex;align-items:center;gap:.22rem;margin-left:.25rem}
nav .nav-switch a{font-size:.78rem;padding:.15rem .35rem;opacity:.9}
nav .nav-switch a.active{text-decoration:underline;opacity:1}
nav .nav-switch .sep{font-size:.74rem;opacity:.72}
main{padding:var(--space) 0 2rem;display:flex;flex-direction:column;gap:var(--space);flex:1}.panel{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:1rem;margin:0;box-shadow:0 6px 18px rgba(8,42,78,.06)}
.panel-dashboard{position:relative;background-color:#f6f9fc;background-size:cover;background-position:center;border-color:#c9d8e8;overflow:visible}
.panel-dashboard::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(255,255,255,.55),rgba(255,255,255,.25));pointer-events:none}
.panel-dashboard>*{position:relative;z-index:1}
.panel-dashboard.season-spring{background-image:url('../img/seasons/spring.svg')}
.panel-dashboard.season-summer{background-image:url('../img/seasons/summer.svg')}
.panel-dashboard.season-autumn{background-image:url('../img/seasons/autumn.svg')}
.panel-dashboard.season-winter{background-image:url('../img/seasons/winter.svg')}
.vigi-badges{position:absolute;top:.7rem;right:.7rem;display:flex;align-items:center;justify-content:flex-end;gap:.35rem;flex-wrap:wrap;max-width:220px;z-index:2}
.vigi-badge{position:relative;display:flex;align-items:center;justify-content:center;min-width:34px;height:34px;padding:0 6px;border-radius:999px;text-decoration:none;color:#fff;opacity:.82;backdrop-filter:blur(2px);box-shadow:0 4px 10px rgba(0,0,0,.18);transition:opacity .15s ease,transform .15s ease}
.vigi-badge:hover{opacity:1;transform:translateY(-1px)}
.vigi-badge::after{content:attr(data-tooltip);position:absolute;right:0;top:calc(100% + 6px);min-width:220px;max-width:300px;padding:.5rem .6rem;border-radius:8px;background:rgba(8,28,48,.92);color:#fff;font-size:.76rem;line-height:1.35;white-space:pre-line;opacity:0;transform:translateY(-4px);pointer-events:none;transition:opacity .15s ease,transform .15s ease}
.vigi-badge:hover::after{opacity:1;transform:translateY(0)}
.vigi-icon{width:18px;height:18px;display:inline-flex}
.vigi-icon svg{width:18px;height:18px;display:block}
.vigi-icons{display:inline-flex;align-items:center;gap:2px}
.vigi-icons .vigi-icon{width:14px;height:14px}
.vigi-icons .vigi-icon svg{width:14px;height:14px}
.vigi-green{background:#33a651;color:#fff}
.vigi-yellow{background:#f7d31e;color:#1f2430}
.vigi-orange{background:#f29a1f;color:#1f2430}
.vigi-red{background:#d7222a;color:#fff}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:var(--space);margin:0}.card{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:.7rem;height:100%}.card h3{margin:0 0 .35rem;font-size:.9rem;color:var(--muted)}.card div{font-size:1.2rem;font-weight:700}
.small-muted{margin:.3rem 0 0;font-size:.8rem;color:var(--muted)}
.station-card .station-visual{display:flex;align-items:flex-end;gap:.55rem;margin:.15rem 0 .45rem}
.station-card .station-visual svg{width:42px;height:42px}
.station-card .alt-meter{width:10px;height:42px;border:1px solid #bfd0e0;border-radius:999px;overflow:hidden;background:#eef4fb}
.station-card .alt-meter span{display:block;width:100%;background:linear-gradient(180deg,#2f6ea4,#61a2da);border-radius:999px}
.weather-hero{display:grid;grid-template-columns:130px 1fr auto;align-items:center;gap:1rem;background:linear-gradient(125deg,#f5fbff,#edf5fc)}
.weather-icon{width:120px;height:120px;display:flex;align-items:center;justify-content:center;background:#fff;border:1px solid var(--line);border-radius:16px}
.weather-icon svg{width:100px;height:100px}
.weather-copy h3{margin:.1rem 0 .35rem;font-size:1.3rem}
.weather-copy p{margin:.15rem 0;color:var(--muted)}
.weather-trend{font-weight:700;color:#26496a!important}
.weather-temp-side{min-width:170px;display:flex;flex-direction:column;align-items:flex-end;gap:.35rem}
.weather-temp-side .current-label{font-size:.75rem;color:#5b6f83;text-transform:uppercase;letter-spacing:.04em}
.weather-temp-side .current-value{font-size:2.35rem;font-weight:700;line-height:1;color:#12355a}
.weather-temp-side .current-value small{font-size:1rem;margin-left:.18rem;color:#37506a;font-weight:600}
.day-minmax{display:flex;gap:.65rem}
.day-minmax .min,.day-minmax .max{display:flex;align-items:center;gap:.2rem;padding:.16rem .35rem;border:1px solid #cbd9e7;border-radius:999px;background:rgba(255,255,255,.72);font-size:.82rem}
.day-minmax .arrow{font-weight:700}
.day-minmax .min .arrow{color:#3d79b2}
.day-minmax .max .arrow{color:#b35634}
.day-minmax .v{font-weight:700;color:#193a5c}
.weather-sunny{background:linear-gradient(125deg,#fff9e6,#fff3c8)}
.weather-rain{background:linear-gradient(125deg,#edf5fd,#dcefff)}
.weather-snow{background:linear-gradient(125deg,#f6fbff,#e7f3ff)}
.weather-wind{background:linear-gradient(125deg,#f2f8ff,#e1ecfb)}
.weather-very_cloudy,.weather-cloudy{background:linear-gradient(125deg,#f2f6fa,#e5edf5)}
.weather-offline{background:linear-gradient(125deg,#f5f7fa,#eceff3)}
.pill{display:inline-block;padding:.25rem .7rem;border-radius:999px;font-weight:700}.pill-ok{background:#e4f4e7;color:var(--good)}.pill-bad{background:#fbe4e4;color:var(--bad)}
.status-row{justify-content:space-between}
.auto-refresh{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}
.auto-refresh-mini{display:flex;flex-direction:column;align-items:flex-end;gap:.3rem}
.auto-chip{display:inline-flex;align-items:center;gap:.45rem;background:rgba(255,255,255,.78);border:1px solid var(--line);border-radius:999px;padding:.25rem .55rem;cursor:pointer;color:#27435f}
.auto-chip .dot{width:10px;height:10px;border-radius:50%;background:#1f9d4a;display:inline-flex;align-items:center;justify-content:center;font-size:7px;line-height:1;color:#fff}
.auto-chip .label{font-size:.78rem;color:#4e6279}
.auto-chip .count{font-family:Consolas,monospace;font-size:.78rem;background:#eef4fb;border:1px solid #d8e4f0;padding:.08rem .28rem;border-radius:999px;min-width:44px;text-align:center}
.auto-chip.is-off .dot{background:#8ea1b5}
.auto-chip.is-off .count{opacity:.65}
.auto-progress{display:block;width:150px;height:4px;background:#dfe8f2;border-radius:999px;overflow:hidden}
.auto-progress span{display:block;height:100%;width:0;background:linear-gradient(90deg,#2c88d9,#22b3be)}
.btn-lite{font:inherit;border:1px solid var(--line);background:#fff;color:var(--text);padding:.42rem .65rem;border-radius:8px;cursor:pointer}
.row{display:flex;gap:.6rem;align-items:center;flex-wrap:wrap}select,input,button,.btn{font:inherit;border:1px solid var(--line);background:#fff;color:var(--text);padding:.5rem .7rem;border-radius:8px;text-decoration:none}
button,.btn{background:var(--accent);border-color:var(--accent);color:#fff;cursor:pointer}
.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:.87rem}th,td{padding:.48rem .35rem;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}
.foot{padding:1.2rem 0 2rem;border-top:1px solid var(--line);font-size:.9rem;color:var(--muted)}
.admin-layout{display:grid;grid-template-columns:220px 1fr;min-height:100vh}.admin-nav{background:#102946;color:#dbe9f7;padding:1rem}.admin-nav h1{margin:.2rem 0 .8rem;font-size:1.2rem}.admin-nav a{display:block;color:#dbe9f7;text-decoration:none;margin:.38rem 0}.admin-main{padding:1rem}.alert{padding:.65rem .8rem;border-radius:8px;margin-bottom:.8rem}.alert-ok{background:#e4f4e7;color:#1e6e2f}.alert-bad{background:#f8e4e4;color:#8e1f1f}
.code{font-family:Consolas,monospace;background:#eef4fb;border:1px solid var(--line);padding:.3rem .4rem;border-radius:6px;word-break:break-all}
@media (max-width:820px){.admin-layout{grid-template-columns:1fr}.weather-hero{grid-template-columns:1fr}.weather-icon{width:100%;max-width:120px}.weather-temp-side{align-items:flex-start;min-width:0}.weather-temp-side .current-value{font-size:2rem}}
