/* Colonna Taxi — foglio di stile unico.
   Nessun font esterno, nessuna risorsa di terze parti: la pagina pubblica
   non effettua alcuna richiesta verso domini diversi da quello del sito. */

:root{
  --paper:#EEF1F4; --surface:#FFF; --surface-2:#F6F8FA;
  --line:#D6DDE4; --line-strong:#B9C4CE;
  --ink:#101720; --ink-2:#4E5A68; --ink-3:#7C8896;
  --accent:#0B4A6F; --accent-soft:#E2EDF4;
  --free:#1B7A57; --free-soft:#E0F0E9;
  --coming:#8C5C00; --coming-soft:#FAEDCE; --taxi:#F2B705;
  --alert:#A8392F; --alert-soft:#F6E3E0;
  --shadow:0 1px 2px rgba(16,23,32,.06), 0 8px 24px -12px rgba(16,23,32,.22);
  --sans:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
}
@media (prefers-color-scheme:dark){
  :root{
    --paper:#0C1116; --surface:#141B22; --surface-2:#1B242D;
    --line:#28333D; --line-strong:#3A4650;
    --ink:#E7EDF3; --ink-2:#A3B0BD; --ink-3:#78848F;
    --accent:#5AA9D6; --accent-soft:#12303F;
    --free:#4CC894; --free-soft:#0F2A21;
    --coming:#F0BA3A; --coming-soft:#33280A;
    --alert:#E4796B; --alert-soft:#331915;
    --shadow:0 1px 2px rgba(0,0,0,.4), 0 10px 28px -14px rgba(0,0,0,.8);
  }
}

*{box-sizing:border-box}
[hidden]{display:none !important}
html{-webkit-text-size-adjust:100%}
body{
  margin:0;background:var(--paper);color:var(--ink);
  font-family:var(--sans);font-size:16px;line-height:1.55;
  -webkit-font-smoothing:antialiased;
}
main{max-width:620px;margin:0 auto;padding:20px 16px 56px}
main.largo{max-width:900px}
a{color:var(--accent)}
h1{font-size:22px;font-weight:700;letter-spacing:-.015em;margin:0}
h2{font-size:18px;font-weight:700;letter-spacing:-.01em;margin:0}
h3{font-size:16px;font-weight:700;margin:0}
p{margin:0}

.testata{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:18px}
.testata .sub{font-size:13.5px;color:var(--ink-3);margin-top:2px}
.orologio{font-size:12.5px;color:var(--ink-3);text-align:right;flex:none;font-variant-numeric:tabular-nums}
.orologio b{display:block;color:var(--free);font-weight:600;font-size:12.5px}

/* ---------- postazioni ---------- */
.postazione{
  background:var(--surface);border:1px solid var(--line);border-radius:14px;
  box-shadow:var(--shadow);overflow:hidden;margin-bottom:14px;
}
.p-testa{display:flex;align-items:center;gap:14px;padding:15px 16px}
.p-num{
  font-size:46px;font-weight:800;line-height:.9;letter-spacing:-.04em;
  font-variant-numeric:tabular-nums;min-width:54px;text-align:center;
}
.p-num.si{color:var(--free)} .p-num.no{color:var(--ink-3)}
.p-tit{flex:1;min-width:0}
.p-tit .parola{
  display:block;margin-top:3px;font-size:11.5px;font-weight:700;
  letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);
}
.p-piede{padding:11px 16px;border-top:1px solid var(--line);font-size:14px}
.p-piede.arrivo{background:var(--coming-soft);color:var(--coming)}
.p-piede.vuoto{background:var(--surface-2);color:var(--ink-3)}
.p-piede b{font-weight:600;font-variant-numeric:tabular-nums}

.contatti{border-top:1px solid var(--line);padding:6px 0}
.contatto{
  display:flex;align-items:center;gap:12px;padding:9px 16px;
  border-bottom:1px solid var(--line);
}
.contatto:last-child{border-bottom:0}
.contatto .et{font-weight:600;font-size:14.5px;flex:none;min-width:74px}
.contatto .st{font-size:13px;color:var(--ink-3);flex:1}
.contatto .st.arr{color:var(--coming)}
.chiama{
  flex:none;background:var(--accent);color:#fff;text-decoration:none;
  border-radius:9px;padding:8px 15px;font-size:14.5px;font-weight:600;
  font-variant-numeric:tabular-nums;white-space:nowrap;
}
@media (prefers-color-scheme:dark){.chiama{color:#08151C}}
.senza-num{font-size:12.5px;color:var(--ink-3);flex:none}

.nota{
  font-size:12.5px;color:var(--ink-3);line-height:1.5;
  border-top:1px solid var(--line);padding-top:14px;margin-top:20px;
}
.nota strong{color:var(--ink-2);font-weight:600}
.nota a{color:var(--ink-3)}

/* ---------- moduli e pannelli ---------- */
.riquadro{
  background:var(--surface);border:1px solid var(--line);border-radius:14px;
  box-shadow:var(--shadow);padding:20px 18px;margin-bottom:16px;
}
.campo{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}
.campo>label{
  font-size:11.5px;font-weight:700;letter-spacing:.12em;
  text-transform:uppercase;color:var(--ink-3);
}
.riga{display:flex;gap:8px;flex-wrap:wrap}
input[type=text],input[type=tel],input[type=password],select{
  font:inherit;font-size:16px;color:var(--ink);background:var(--surface);
  border:1px solid var(--line);border-radius:9px;padding:11px 12px;width:100%;
}
input:focus-visible,select:focus-visible,button:focus-visible,a:focus-visible{
  outline:2px solid var(--accent);outline-offset:2px;
}
button{font:inherit;cursor:pointer;color:inherit}
.opt{
  flex:1 1 auto;background:var(--surface);border:1px solid var(--line);
  border-radius:9px;padding:11px 12px;font-size:15px;font-weight:500;text-align:center;
}
.opt:hover{border-color:var(--line-strong)}
.opt[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:#fff;font-weight:600}
@media (prefers-color-scheme:dark){.opt[aria-pressed=true]{color:#08151C}}
.opt.piccolo{flex:0 0 auto;padding:9px 14px;font-size:14px}
.principale{
  width:100%;background:var(--free);border:none;border-radius:10px;color:#fff;
  padding:14px;font-size:15.5px;font-weight:700;
}
@media (prefers-color-scheme:dark){.principale{color:#08170F}}
.secondaria{
  background:var(--surface);border:1px solid var(--line);border-radius:9px;
  padding:10px 14px;font-size:14px;color:var(--ink-2);
}

.stato-ora{
  border-radius:12px;padding:16px;display:flex;align-items:center;gap:13px;
  border:1px solid var(--line);background:var(--surface-2);margin-bottom:18px;
}
.stato-ora .pallino{width:11px;height:11px;border-radius:50%;flex:none;background:var(--ink-3)}
.stato-ora .txt{flex:1;min-width:0}
.stato-ora .et{font-size:17px;font-weight:700}
.stato-ora .de{font-size:13.5px;color:var(--ink-2);margin-top:1px}
.stato-ora .cd{font-size:26px;font-weight:800;font-variant-numeric:tabular-nums;flex:none;color:var(--coming)}
.stato-ora.s-libero{background:var(--free-soft);border-color:transparent}
.stato-ora.s-libero .pallino{background:var(--free)} .stato-ora.s-libero .et{color:var(--free)}
.stato-ora.s-rientro{background:var(--coming-soft);border-color:transparent}
.stato-ora.s-rientro .pallino{background:var(--taxi)} .stato-ora.s-rientro .et{color:var(--coming)}
.stato-ora.s-incerto{background:var(--alert-soft);border-color:transparent}
.stato-ora.s-incerto .pallino{background:var(--alert)} .stato-ora.s-incerto .et{color:var(--alert)}

.colonna-riga{
  display:flex;align-items:center;gap:10px;font-size:14px;
  padding:8px 0;border-bottom:1px solid var(--line);
}
.colonna-riga:last-child{border-bottom:0}
.colonna-riga .nm{color:var(--ink-2)}
.colonna-riga .vl{margin-left:auto;font-variant-numeric:tabular-nums;color:var(--ink-3);font-size:13px}

.avviso{
  border-left:3px solid var(--accent);background:var(--accent-soft);
  border-radius:0 10px 10px 0;padding:12px 14px;font-size:13.5px;
  color:var(--ink-2);margin-bottom:16px;
}
.avviso.errore{border-left-color:var(--alert);background:var(--alert-soft);color:var(--alert)}
.avviso code{
  font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:17px;
  font-weight:700;color:var(--ink);letter-spacing:.08em;
}

table{width:100%;border-collapse:collapse;font-size:14px}
th{
  text-align:left;font-size:11.5px;letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink-3);font-weight:700;padding:0 10px 8px 0;
}
td{padding:9px 10px 9px 0;border-top:1px solid var(--line);vertical-align:middle}
td.destra,th.destra{text-align:right;padding-right:0}
.tabella-scorre{overflow-x:auto}

.piede{
  margin-top:28px;padding-top:16px;border-top:1px solid var(--line);
  display:flex;gap:14px;flex-wrap:wrap;font-size:12.5px;color:var(--ink-3);
}
.piede a{color:var(--ink-3)}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
