:root{
  --bg:#f5f3ef; --card:#fff; --ink:#1d2a2f; --muted:#667479; --line:#e2ddd5;
  --petrol:#0f4c5c; --petrol-d:#0a3743; --terra:#c8553d; --ok:#2e7d5b; --warn:#b7791f;
  --a:#c8553d; --b:#0f4c5c; --c:#4a7fa7; --d:#8a979c; --x:#b8c0c3;
  --radius:12px;
}
@media (prefers-color-scheme:dark){
  :root{--bg:#10191c;--card:#182427;--ink:#e8eef0;--muted:#97a6ab;--line:#2a3a3f;--petrol:#5fb3c7;--petrol-d:#8fd0df;--terra:#e8805f;--a:#e8805f;--b:#4f9fb4;--c:#6f9fc4;--d:#7f8d92;--x:#56656a}
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
a{color:var(--petrol)} a:hover{color:var(--petrol-d)}
main{max-width:980px;margin:0 auto;padding:16px 14px 60px}
h1{font-size:1.55rem;margin:.4em 0 .5em} h2{font-size:1.1rem;margin:0 0 .6em} h3{font-size:1rem;margin:.2em 0}
.h-sig{font-size:1.3rem;line-height:1.3}
.muted{color:var(--muted)} .count{font-weight:400;font-size:.9em}
code{background:rgba(127,127,127,.15);padding:.1em .35em;border-radius:5px;font-size:.88em;word-break:break-all}
.sr{position:absolute;left:-9999px}

.top{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:14px;background:var(--petrol);color:#fff;padding:8px 14px}
@media (prefers-color-scheme:dark){.top{background:#0c2a33}}
.brand{color:#fff;text-decoration:none;font-weight:600;white-space:nowrap} .brand b{color:#ffb4a0}
.top nav{display:flex;gap:2px;overflow-x:auto;flex:1;scrollbar-width:none}
.top nav::-webkit-scrollbar{display:none}
.top nav a{color:#e6f1f4;text-decoration:none;padding:6px 10px;border-radius:8px;white-space:nowrap;font-size:.95rem}
.top nav a.on{background:rgba(255,255,255,.18);color:#fff}
.logout{margin:0} .link{background:none;border:0;color:#e6f1f4;cursor:pointer;font:inherit;padding:6px}

.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px;margin:0 0 12px}
.flash{border-radius:10px;padding:10px 14px;margin:0 0 12px;border:1px solid}
.flash.ok{background:#e7f4ee;border-color:#b7dcc8;color:#1f5a41}
.flash.err{background:#fbeae6;border-color:#efc3b9;color:#8b2f1e}
.flash.info{background:#e8f1f4;border-color:#c1d9e0;color:#0a3743}
@media (prefers-color-scheme:dark){.flash.ok{background:#17332a;color:#a9dcc3;border-color:#285a47}.flash.err{background:#3a1f1a;color:#f2b5a6;border-color:#6a3328}.flash.info{background:#15303a;color:#b5dbe6;border-color:#27505d}}

.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:10px;margin-bottom:12px}
.kpi{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);padding:12px;text-decoration:none;color:var(--ink);display:flex;flex-direction:column}
.kpi b{font-size:1.7rem;line-height:1.1;color:var(--petrol)} .kpi.hot b{color:var(--terra)} .kpi span{color:var(--muted);font-size:.85rem}

.bars{display:flex;align-items:flex-end;gap:3px;height:110px}
.bar{flex:1;height:100%;display:flex;align-items:flex-end;background:rgba(127,127,127,.08);border-radius:3px}
.bar i{display:block;width:100%;background:var(--petrol);border-radius:3px 3px 0 0;min-height:2px}
.axis{display:flex;justify-content:space-between;color:var(--muted);font-size:.8rem;margin-top:4px}

.sig-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.when{margin-left:auto;color:var(--muted);font-size:.85rem}
.sig h3{margin:.45em 0 .2em;font-size:1.02rem;line-height:1.35} .sig h3 a{text-decoration:none;color:var(--ink)} .sig h3 a:hover{text-decoration:underline}
.meta{color:var(--muted);font-size:.88rem;margin:.2em 0} .why{font-size:.9rem;margin:.3em 0 .6em}
.sig-foot{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.ext{margin-left:auto;font-size:.9rem}
.cls{display:inline-grid;place-items:center;width:1.7em;height:1.7em;border-radius:8px;color:#fff;font-weight:700;font-size:.9rem}
.cls-A{background:var(--a)}.cls-B{background:var(--b)}.cls-C{background:var(--c)}.cls-D{background:var(--d)}.cls-X{background:var(--x)}
.score{font-weight:700;border:1px solid var(--line);border-radius:999px;padding:0 .6em;font-size:.88rem}
.tag{font-size:.75rem;border:1px solid var(--line);border-radius:999px;padding:.05em .6em;color:var(--muted)}
.tag.hot{border-color:var(--terra);color:var(--terra)} .tag.demo{border-style:dashed}
.geo{white-space:nowrap}
.geo-confermata,.geo-probabile{color:var(--ok)} .geo-da_verificare{color:var(--warn)} .geo-non_localizzata{color:var(--muted)}
.okc{color:var(--ok)} .errc{color:var(--terra)}

button,.btn,select,input,textarea{font:inherit}
button,.btn{display:inline-block;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:9px;padding:6px 12px;cursor:pointer;text-decoration:none;line-height:1.3}
button:hover,.btn:hover{border-color:var(--petrol)}
button.primary{background:var(--petrol);border-color:var(--petrol);color:#fff} button.primary:hover{background:var(--petrol-d)}
@media (prefers-color-scheme:dark){button.primary{color:#0a1a1e}}
button.danger{color:var(--terra)}
select,input,textarea{width:100%;background:var(--card);color:var(--ink);border:1px solid var(--line);border-radius:9px;padding:7px 9px}
.inline{display:inline;margin:0} .inline select{width:auto}
label{display:block;font-size:.88rem;color:var(--muted)} label input,label select,label textarea{margin-top:3px;color:var(--ink)}
.form label{margin-bottom:10px} .grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:0 12px} .wide{grid-column:1/-1}
.filters{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:8px;align-items:center}
.filters input[type=search]{grid-column:1/-1}

.pager{display:flex;justify-content:center;align-items:center;gap:14px;margin:18px 0}
.columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;align-items:start}
.col h2{position:sticky;top:48px;background:var(--bg);padding:6px 0;margin:0 0 6px;z-index:1}
.two{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:0 12px}
.search.off{opacity:.65} .search-head{display:flex;align-items:center;gap:10px}
.search-head h3{margin:0}
.tablewrap{overflow-x:auto} table{width:100%;border-collapse:collapse;font-size:.92rem}
th,td{text-align:left;padding:6px 8px;border-bottom:1px solid var(--line)} th{color:var(--muted);font-weight:500} .num{text-align:right;font-variant-numeric:tabular-nums}
.hbar{display:grid;grid-template-columns:130px 1fr 34px;gap:8px;align-items:center;margin:6px 0;font-size:.9rem}
.hbar div{background:rgba(127,127,127,.12);border-radius:5px;height:12px} .hbar i{display:block;height:100%;background:var(--petrol);border-radius:5px}
.hbar b{text-align:right}
ul.plain{padding-left:1.1em;margin:.3em 0}

.login{max-width:380px;margin:12vh auto 0} .login h1{text-align:center} .login h1 b{color:var(--terra)}
.login label{margin-bottom:12px} .login button{width:100%;margin-top:4px;padding:9px}
@media (max-width:560px){.hbar{grid-template-columns:100px 1fr 30px}.top{gap:8px}.when{margin-left:0;width:100%}}
