:root{
  --ink:#12263a; --muted:#5a6b7b; --bg:#eef2f4; --card:#ffffff; --line:#cfd8de;
  --brand:#12304a; --accent:#0b6aa8; --ok:#17663f; --okbg:#e3f3ea;
  --warn:#8a5a00; --warnbg:#fdf1d6; --bad:#a3261b; --badbg:#fbe4e1;
  --r:10px;
}
*{box-sizing:border-box}
html{font-size:17px}
body{margin:0;background:var(--bg);color:var(--ink);font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;line-height:1.5}
.wrap{max-width:760px;margin:0 auto;padding:1rem}
h1{font-size:1.6rem;margin:.6rem 0}
h2{font-size:1.2rem;margin:1rem 0 .4rem}
h3{font-size:1.05rem;margin:0 0 .3rem}
a{color:var(--accent)}
.muted{color:var(--muted);margin:.25rem 0}
.top{background:var(--brand);color:#fff;padding:.6rem 1rem;display:flex;flex-wrap:wrap;gap:.4rem 1.2rem;align-items:center}
.top .brand{color:#fff;font-weight:700;font-size:1.1rem;text-decoration:none}
.top nav{display:flex;flex-wrap:wrap;gap:.2rem 1rem;align-items:center}
.top nav a,.linklike{color:#fff;background:none;border:0;font:inherit;padding:.5rem 0;cursor:pointer;text-decoration:underline}
.top nav form{margin:0}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:1rem;margin:0 0 .9rem}
.narrow{max-width:460px;margin-left:auto;margin-right:auto}
label{display:block;font-weight:600;margin:.8rem 0 .25rem}
input{width:100%;font:inherit;padding:.7rem .8rem;border:1px solid #8fa0ad;border-radius:8px;background:#fff;color:var(--ink)}
input:focus-visible,.btn:focus-visible,.linklike:focus-visible,a:focus-visible{outline:3px solid #f2a900;outline-offset:2px}
.btn{display:inline-block;font:inherit;font-weight:600;text-align:center;text-decoration:none;cursor:pointer;
  padding:.75rem 1.1rem;min-height:48px;border-radius:8px;border:2px solid var(--brand);background:#fff;color:var(--brand)}
.btn.primary{background:var(--brand);color:#fff}
.btn.danger{border-color:var(--bad);color:var(--bad)}
.btn.block{width:100%;margin-top:1rem}
.actions{display:flex;flex-wrap:wrap;gap:.5rem;margin:.6rem 0}
.actions form{margin:0}
form.inline{margin-top:.6rem}
form.inline input{max-width:20rem}
form.inline .btn{margin-top:.5rem}
.badge{display:inline-block;font-size:.8rem;font-weight:600;padding:.1rem .55rem;border-radius:99px;border:1px solid var(--line);background:#f4f7f9;vertical-align:middle}
.badge.ok{background:var(--okbg);color:var(--ok);border-color:var(--ok)}
.badge.no{background:var(--badbg);color:var(--bad);border-color:var(--bad)}
.flash{padding:.7rem .9rem;border-radius:8px;border:1px solid;margin:.5rem 0}
.flash.errore{background:var(--badbg);color:var(--bad);border-color:var(--bad)}
.flash.ok{background:var(--okbg);color:var(--ok);border-color:var(--ok)}
.flash.codice{background:var(--warnbg);color:var(--warn);border-color:var(--warn);font-size:1.1rem;word-break:break-word}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
select{width:100%;font:inherit;padding:.7rem .8rem;border:1px solid #8fa0ad;border-radius:8px;background:#fff;color:var(--ink)}
fieldset.opts{border:0;padding:0;margin:.4rem 0}
fieldset.opts legend{font-weight:600;padding:0}
label.opt{display:flex;gap:.6rem;align-items:center;font-weight:500;padding:.55rem .6rem;margin:.25rem 0;min-height:48px;border:1px solid var(--line);border-radius:8px}
label.opt input{width:1.3rem;height:1.3rem;flex:none}
.row2{display:grid;grid-template-columns:1fr 1fr;gap:.6rem}
.stats{list-style:none;padding:0;margin:0}
.stats li{padding:.2rem 0}
h4{margin:.8rem 0 .2rem;font-size:1rem}
form.inline-form{display:inline-block;margin:.15rem .3rem}
form.inline-form select{width:auto;padding:.4rem}
.btn.small{min-height:40px;padding:.35rem .7rem}
.card ul{padding-left:1.1rem}

/* ---------- Parte C: navigazione, cruscotto, calendari ---------- */
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.top{justify-content:space-between;flex-wrap:nowrap;padding-top:max(.6rem,env(safe-area-inset-top))}
.top form{margin:0}
.tabbar{display:flex;justify-content:center;gap:.2rem;background:#fff;border-bottom:1px solid var(--line);padding:.2rem .5rem;flex-wrap:wrap}
.tabbar a{display:flex;flex-direction:column;align-items:center;min-width:64px;min-height:48px;padding:.3rem .6rem;color:var(--ink);text-decoration:none;font-size:.82rem;border-radius:8px;border-bottom:3px solid transparent;justify-content:center}
.tabbar a .ic{font-size:1.1rem;line-height:1}
.tabbar a[aria-current="page"]{color:var(--accent);font-weight:700;border-bottom-color:var(--accent)}
.cnt{background:var(--bad);color:#fff;border-radius:99px;padding:0 .4rem;font-size:.75rem}
@media (max-width:699px){
  body{padding-bottom:calc(66px + env(safe-area-inset-bottom))}
  .tabbar{position:fixed;left:0;right:0;bottom:0;z-index:20;border-top:1px solid var(--line);border-bottom:0;justify-content:space-around;flex-wrap:nowrap;padding:.2rem .2rem calc(.2rem + env(safe-area-inset-bottom));gap:0}
  .tabbar a{min-width:0;flex:1;padding:.25rem .1rem;font-size:.72rem;border-bottom:0;border-top:3px solid transparent}
  .tabbar a[aria-current="page"]{border-top-color:var(--accent)}
}
.subtabs{display:flex;gap:.4rem;margin:.4rem 0 .8rem}
.subtabs a{flex:1;text-align:center;padding:.65rem .4rem;min-height:48px;border:2px solid var(--brand);border-radius:8px;text-decoration:none;color:var(--brand);font-weight:600;background:#fff}
.subtabs a[aria-current="page"]{background:var(--brand);color:#fff}
.calnav{display:flex;justify-content:space-between;align-items:center;gap:.5rem;margin:.3rem 0}
.calnav strong{font-size:1.1rem;text-align:center}
.badge.warn{background:var(--warnbg);color:var(--warn);border-color:var(--warn)}
.wrap{max-width:1000px}
.grid2{display:grid;grid-template-columns:1fr;gap:0 1rem;align-items:start}
@media (min-width:900px){.grid2{grid-template-columns:1fr 1fr}}
.tiles{list-style:none;padding:0!important;margin:.5rem 0;display:grid;grid-template-columns:repeat(5,1fr);gap:.4rem}
.tiles li{background:#f4f7f9;border:1px solid var(--line);border-radius:8px;text-align:center;padding:.4rem .1rem}
.tiles b{display:block;font-size:1.5rem;line-height:1.1}
.tiles span{font-size:.72rem;color:var(--muted)}
.tiles li.alert{background:var(--badbg);border-color:var(--bad)}
.tiles li.alert b{color:var(--bad)}
progress{width:100%;max-width:18rem;height:.8rem;vertical-align:middle}
.seats{margin:.3rem 0}
.dep{border-top:1px solid var(--line);padding-top:.4rem;margin-top:.4rem}
.dep p{margin:.15rem 0}
.warnline{background:var(--warnbg);border:1px solid var(--warn);border-radius:8px;padding:.5rem .7rem;color:#5c3b00}
.notice{border-color:var(--accent)}
.card.leg.annullata{opacity:.75}
details{margin:.4rem 0}summary{cursor:pointer;font-weight:600;min-height:44px;display:flex;align-items:center}
.scroll{overflow-x:auto}
table.cal{width:100%;border-collapse:collapse;table-layout:fixed;background:#fff}
table.cal th{background:var(--brand);color:#fff;padding:.4rem 0;font-size:.85rem}
table.cal td{border:1px solid var(--line);vertical-align:top;height:5.2rem;padding:.2rem;font-size:.75rem;overflow:hidden}
table.cal td.fuori{background:#f1f4f6;color:#8a97a3}
table.cal td.oggi{outline:3px solid #f2a900;outline-offset:-3px}
.num{display:block;font-weight:700;font-size:.85rem}
.chip{display:block;margin:.12rem 0;padding:.12rem .25rem;border-radius:5px;border:1px solid var(--line);background:#f4f7f9;color:var(--ink);text-decoration:none;white-space:nowrap}
.chip.ok{background:var(--okbg);border-color:var(--ok)}
.chip.warn{background:var(--warnbg);border-color:var(--warn)}
.chip.no{background:var(--badbg);border-color:var(--bad)}
.daysec.oggi h2{border-left:5px solid #f2a900;padding-left:.5rem}
.storia{list-style:none;padding:0!important;font-size:.92rem}
.storia li{padding:.25rem 0;border-bottom:1px solid var(--line)}
.aggiorna{position:fixed;left:.6rem;right:.6rem;bottom:calc(76px + env(safe-area-inset-bottom));z-index:30;background:var(--brand);color:#fff;padding:.7rem .9rem;border-radius:10px;display:flex;gap:.6rem;align-items:center;justify-content:space-between;box-shadow:0 2px 10px rgba(0,0,0,.3)}
@media (min-width:700px){.aggiorna{bottom:1rem;max-width:30rem;margin:auto}}
