:root{
  --bg:#F3F0E8; --ink:#172033; --muted:#566075; --line:#DDD7C9; --card:#fff;
  --amber:#F4B63F; --amber-l:#FBEBC8; --green:#17694C; --green-l:#DDF0E7;
  --blue:#2B5FAE; --blue-l:#DEE8F6; --red:#A8321F; --red-l:#F7DDD7; --band:#E6E1D3;
}
*{box-sizing:border-box}
html,body{margin:0;height:100%}
body{background:var(--bg);color:var(--ink);font-family:'Plus Jakarta Sans',system-ui,sans-serif;-webkit-tap-highlight-color:transparent}
a{text-decoration:none;color:inherit}
button{font-family:inherit;cursor:pointer;color:inherit}
input,select,textarea{font-family:inherit;color:var(--ink)}

.app{display:flex;height:100vh;height:100dvh;overflow:hidden}
.rail{width:96px;flex-shrink:0;background:var(--ink);display:flex;flex-direction:column;align-items:center;gap:4px;padding:20px 0;overflow-y:auto}
.logo{width:52px;height:52px;border-radius:14px;background:#fff;padding:5px;color:var(--ink);font-weight:800;font-size:30px;display:flex;align-items:center;justify-content:center;margin-bottom:16px;flex-shrink:0}
.nav{width:76px;height:64px;border-radius:18px;color:#C9CFDD;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;font-size:12px;font-weight:700;flex-shrink:0}
.nav.on{background:var(--amber);color:var(--ink)}
.nav svg{width:28px;height:28px}
.main{flex:1;min-width:0;overflow-y:auto;padding:28px 32px}
.stickyside{position:sticky;top:0;align-self:flex-start;max-height:calc(100vh - 56px);overflow-y:auto}
.page{display:flex;flex-direction:column;gap:20px;min-height:100%}

.head{display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap}
h1{font-size:34px;font-weight:800;line-height:1.1;margin:0}
.sub{font-size:16px;color:var(--muted);margin-top:4px}
.card{background:var(--card);border:1px solid var(--line);border-radius:24px;padding:22px}
.dark{background:var(--ink);color:#fff;border-radius:24px;padding:22px 24px}
.row{display:flex;gap:16px}
.col{display:flex;flex-direction:column;gap:16px}
.grow{flex:1;min-width:0}
.muted{color:var(--muted)}
.label{font-size:14px;font-weight:600;color:var(--muted)}
.big{font-size:28px;font-weight:800;line-height:1.15}

.btn{height:56px;border-radius:18px;border:2px solid var(--ink);background:transparent;font-size:17px;font-weight:800;padding:0 22px;display:inline-flex;align-items:center;justify-content:center;gap:10px}
.btn svg{width:24px;height:24px}
.btn.primary{background:var(--green);border-color:var(--green);color:#fff;height:76px;font-size:20px;border-radius:22px;white-space:nowrap}
.btn.amber{background:var(--amber)}
.btn.ghost{border-color:var(--line);background:#fff}
.btn.sm{height:44px;font-size:15px;padding:0 16px;border-radius:14px}
.btn[disabled]{opacity:.45;cursor:not-allowed}

.search{display:flex;align-items:center;gap:12px;background:#fff;border:2px solid var(--line);border-radius:18px;height:60px;padding:0 20px;width:280px}
.search input{border:0;outline:0;background:transparent;font-size:20px;width:100%}
.search svg{width:26px;height:26px;flex-shrink:0;color:var(--muted)}

/* targa */
.plate{display:flex;align-items:stretch;border:3px solid var(--ink);border-radius:12px;background:#fff;overflow:hidden;height:76px}
.plate .eu{width:40px;background:var(--blue);color:#fff;display:flex;align-items:flex-end;justify-content:center;padding-bottom:6px;font-weight:800;font-size:16px}
.plate .num,.plate input{flex:1;min-width:0;display:flex;align-items:center;justify-content:center;font-size:42px;font-weight:800;letter-spacing:5px;text-align:center;border:0;outline:0;background:transparent;text-transform:uppercase}
.plate.sm{height:44px;border-width:2px;border-radius:8px}
.plate.sm .eu{width:24px;font-size:11px;padding-bottom:3px}
.plate.sm .num{font-size:22px;letter-spacing:3px}

.grid{display:grid;gap:12px}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.tile{background:var(--bg);border-radius:16px;padding:12px 16px}
.tile.amber{background:var(--amber-l)}
.tile.green{background:var(--green-l)}

.chips{display:flex;gap:10px;flex-wrap:wrap}
.chip{height:56px;padding:0 24px;border-radius:16px;background:#fff;border:2px solid var(--line);font-size:18px;font-weight:800}
.chip.on{background:var(--amber);border-color:var(--ink)}

.kpi{background:#fff;border:1px solid var(--line);border-radius:22px;padding:18px 22px}
.kpi .v{font-size:42px;font-weight:800;line-height:1.05}
.kpi .v small{font-size:20px;color:var(--muted);font-weight:700}
.tilelink{background:#fff;border:1px solid var(--line);border-radius:22px;padding:20px;display:flex;flex-direction:column;gap:6px;min-height:118px}
.tilelink b{font-size:20px}
.tilelink span{color:var(--muted);font-size:15px}
.tilelink.dim{opacity:.55}
.tilelink.hot{background:var(--amber);border-color:var(--ink)}
.pill{display:inline-flex;align-items:center;gap:8px;border-radius:999px;padding:10px 18px;font-weight:800;font-size:15px}
.pill.red{background:var(--red-l);color:var(--red)}
.pill.green{background:var(--green-l);color:var(--green)}
.pill.amber{background:var(--amber-l)}

/* lista soste */
.list{display:flex;flex-direction:column;gap:10px}
.item{display:flex;align-items:center;gap:16px;background:#fff;border:1px solid var(--line);border-radius:18px;padding:12px 16px;width:100%;text-align:left}
.item:hover{border-color:var(--ink)}
.item .meta{flex:1;min-width:0}
.item .meta b{font-size:17px}
.item .meta div{font-size:14px;color:var(--muted)}
.item .amt{font-size:22px;font-weight:800}

/* fasce */
.bands{position:relative;height:118px;margin:6px 0 0}
.bands .bar{position:absolute;left:0;right:0;top:20px;height:56px;display:flex}
.band{display:flex;flex-direction:column;align-items:center;justify-content:center;background:var(--band);min-width:0;overflow:hidden}
.band:first-child{border-radius:14px 0 0 14px}
.band:last-child{border-radius:0 14px 14px 0}
.band.on{background:var(--green-l);border-top:3px solid var(--green);border-bottom:3px solid var(--green)}
.band .t{white-space:nowrap;text-align:center;font-size:14px;font-weight:700;color:var(--muted)}
.band.on .t{color:var(--green)}
.band .p{font-size:18px;font-weight:800}
.tol{position:absolute;top:80px;height:10px;background:var(--amber);border-radius:6px;opacity:.9}
.mark{position:absolute;top:4px;width:3px;height:92px;background:var(--ink);border-radius:2px}
.marklabel{position:absolute;top:96px;width:100px;margin-left:-50px;text-align:center;font-size:16px;font-weight:800}
.legend{display:flex;gap:22px;align-items:center;font-size:14px;font-weight:600;color:var(--muted);flex-wrap:wrap}
.legend i{display:inline-block;width:16px;height:16px;border-radius:4px;background:var(--amber);margin-right:8px;vertical-align:-3px}
.legend i.k{width:4px;height:18px;background:var(--ink);border-radius:2px;margin-right:8px}
.note{border-radius:16px;padding:14px 18px;font-size:16px;font-weight:700;line-height:1.35}
.note.green{background:var(--green-l);color:var(--green)}
.note.amber{background:var(--amber-l)}
.note.red{background:var(--red-l);color:var(--red)}

.paygrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.pay{height:92px;border-radius:20px;background:#fff;border:2px solid var(--line);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;font-size:16px;font-weight:800}
.pay svg{width:32px;height:32px}
.pay.on{background:var(--amber);border-color:var(--ink)}
.pay.dashed{border-color:var(--ink);border-style:dashed}
.pay.dashed.on{border-style:solid}

.switch{width:52px;height:30px;border-radius:15px;background:var(--line);position:relative;flex-shrink:0;border:0;padding:0}
.switch::after{content:"";position:absolute;left:4px;top:4px;width:22px;height:22px;border-radius:11px;background:#fff;transition:.15s}
.switch.on{background:var(--green)}
.switch.on::after{left:26px}
.setrow{background:#fff;border:1px solid var(--line);border-radius:18px;height:56px;padding:0 18px;display:flex;align-items:center;justify-content:space-between;font-size:17px;font-weight:700}

/* cassa */
.sumrow{display:flex;justify-content:space-between;align-items:baseline;padding:12px 0;border-bottom:1px solid var(--line);gap:12px}
.sumrow:last-child{border-bottom:0}
.sumrow b.n{font-size:22px}
.sumrow small{display:block;color:var(--muted);font-size:14px;font-weight:600}
.sumrow b,.sumrow .n,.setrow b{white-space:nowrap}
.sumrow.tot{font-size:20px;font-weight:800;border-top:2px solid var(--ink);border-bottom:0}
.diff.ok{color:var(--green)}
.diff.bad{color:var(--red)}

/* form */
.field{display:flex;flex-direction:column;gap:6px}
.field label{font-size:14px;font-weight:700;color:var(--muted)}
.input{height:52px;border-radius:14px;border:2px solid var(--line);background:#fff;padding:0 14px;font-size:18px;font-weight:700;width:100%}
.input:focus{border-color:var(--ink);outline:0}
.input.num{text-align:right}
textarea.input{height:auto;padding:12px 14px}

/* tabs */
.tabs{display:flex;gap:8px;flex-wrap:wrap}
.tab{height:48px;padding:0 20px;border-radius:14px;background:transparent;border:2px solid transparent;font-size:16px;font-weight:800;color:var(--muted);display:inline-flex;align-items:center}
.tab.on{background:var(--ink);color:#fff}
.tab.dim{opacity:.5}

table.t{width:100%;border-collapse:collapse}
table.t th{font-size:14px;color:var(--muted);text-align:left;padding:8px;font-weight:700}
table.t td{padding:6px 8px}

/* modal */
.overlay{position:fixed;inset:0;background:rgba(23,32,51,.55);display:flex;align-items:center;justify-content:center;padding:20px;z-index:50}
.modal{background:#fff;border-radius:24px;padding:26px;width:min(520px,100%);max-height:90vh;overflow:auto;display:flex;flex-direction:column;gap:16px}
.modal h2{margin:0;font-size:24px}
.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%) translateY(30px);background:var(--ink);color:#fff;padding:14px 24px;border-radius:16px;font-weight:700;font-size:17px;opacity:0;pointer-events:none;transition:.2s;z-index:60;max-width:90vw}
.toast.show{opacity:1;transform:translateX(-50%)}
.toast.err{background:var(--red)}
.empty{padding:40px 20px;text-align:center;color:var(--muted);font-weight:600}

/* ticket stampa */
.ticket-print{display:none}
@media print{
  @page{margin:0}
  body *{visibility:hidden}
  .ticket-print,.ticket-print *{visibility:visible}
  .ticket-print{display:block;position:absolute;left:0;top:0;width:58mm;padding:1mm 0;font-family:monospace;color:#000;font-size:12px}
  .ticket-print h3{margin:0 0 4px;font-size:15px;text-align:center}
  .ticket-print .tk{font-size:26px;font-weight:800;text-align:center}
  .ticket-print .tg{font-size:22px;font-weight:800;text-align:center;letter-spacing:3px;margin:4px 0}
  .ticket-print p{margin:2px 0}
}

/* telefono */
@media (max-width:820px){
  .app{flex-direction:column-reverse}
  .rail{width:100%;height:68px;flex-direction:row;padding:4px 6px;gap:2px;justify-content:space-around;overflow-x:auto;overflow-y:hidden}
  .logo{display:none}
  .nav{width:46px;height:58px;gap:3px;font-size:10px}
  .toast{bottom:84px}
  .nav svg{width:24px;height:24px}
  .main{padding:18px 16px}
  h1{font-size:26px}
  .row{flex-direction:column}
  .row>.grow{flex:none}
  .row>.btn{width:100%}
  .btn.primary{min-height:76px;flex:none}
  .search{width:100%}
  .g4{grid-template-columns:repeat(2,minmax(0,1fr))}
  .plate .num,.plate input{font-size:30px;letter-spacing:3px}
  .kpi .v{font-size:34px}
  .side{width:100% !important}
  .stickyside{position:static !important;max-height:none !important}
  .rail{justify-content:space-between}
}

.stepper{display:flex!important;flex-direction:row!important;flex-wrap:nowrap;align-items:center;justify-content:flex-start;gap:10px}
.stepper .btn{flex:none}

/* Categorie veicolo: tessere grandi, comode da toccare */
.cat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:12px}
.cat{min-height:112px;padding:10px 6px;border-radius:20px;background:#fff;border:2px solid var(--line);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;text-align:center;color:var(--ink);transition:transform .08s}
.cat:active{transform:scale(.97)}
.cat b{font-size:34px;line-height:1;font-weight:800}
.cat span{font-size:14px;font-weight:700;line-height:1.15}
.cat .cat-ic{width:48px;height:32px}
.cat.on{background:#2748CF;border-color:#2748CF;color:#fff}
@media (max-width:820px){.cat-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.cat{min-height:104px}.cat b{font-size:30px}}

/* Telefono e tablet: niente larghezze forzate dai campi */
input,select,textarea{min-width:0;max-width:100%}
.plate input{width:100%}
.card,.col,.grow,.row>*{min-width:0}
@media (max-width:820px){.card[style*="min-width"]{min-width:0 !important}}
@media (max-width:480px){
  .stepper{gap:8px}
  .stepper .input{width:84px !important}
  .stepper .btn{width:52px !important}
}
.t{width:100%}
.t td .input,.t td input{width:100%;min-width:60px}
@media (max-width:480px){.t{table-layout:fixed}.t th,.t td{padding-left:4px;padding-right:4px}}
.card{max-width:100%}
@media (max-width:480px){.stepper .btn[data-act=cercaPren]{width:auto !important;padding:0 14px;flex:none}}
table.t .n,table.t th.n{text-align:right;white-space:nowrap}
.sumrow small{display:block}
@media (min-width:821px) and (max-height:820px){
  .rail{padding:12px 0;gap:2px}.logo{width:44px;height:44px;font-size:26px;margin-bottom:8px}
  .nav{height:56px;gap:3px;font-size:11px}.nav svg{width:24px;height:24px}
}
.kpi.compatto .v{font-size:clamp(24px,2.9vw,36px);white-space:nowrap}

.azioni{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.azioni .btn{height:52px;font-size:16px;padding:0 18px;border-radius:16px}
@media (max-width:820px){.azioni{flex-direction:row}.azioni .btn{height:46px;font-size:15px;padding:0 14px}}

.prenriga{display:grid;grid-template-columns:1.1fr 1.4fr 1fr 1fr auto auto;gap:12px;align-items:center;width:100%;text-align:left;background:transparent;border:0;border-bottom:1px solid var(--line);padding:14px 12px;min-height:68px;cursor:pointer;font:inherit;color:inherit;border-radius:0}
.prenriga:last-child{border-bottom:0}
.prenriga:active,.prenriga:hover{background:var(--band)}
.prenriga>div{display:flex;flex-direction:column;gap:2px;min-width:0}
.prenriga b{font-size:17px}.prenriga .muted{font-size:14px}
.prenriga .pr-d{text-align:right}
@media (max-width:820px){.prenriga{grid-template-columns:1fr auto;grid-template-areas:'a e' 'b d' 'c d' 'f f'}.pr-f{grid-area:f}.pr-a{grid-area:a}.pr-b{grid-area:b}.pr-c{grid-area:c}.pr-d{grid-area:d}.pr-e{grid-area:e;align-items:flex-end}}
.portrow{display:grid;grid-template-columns:1fr 1.3fr 110px auto;gap:10px;align-items:center}
.portrow .pct{display:flex;align-items:center;gap:6px}.portrow .pct .input{width:100%}
.chk{display:flex;align-items:center;gap:8px;font-weight:700;font-size:16px;min-height:48px}
.chk input{width:22px;height:22px;min-width:22px}
@media (max-width:820px){.portrow{grid-template-columns:1fr 110px;padding-bottom:12px;border-bottom:1px solid var(--line)}.portrow input[data-k=mittente]{grid-column:1/-1;order:3}.portrow .chk{order:4}}

.pill{display:inline-flex;align-items:center;height:30px;padding:0 12px;border-radius:15px;font-weight:800;font-size:13px;white-space:nowrap;background:var(--band);color:var(--ink)}
.pill.green{background:var(--green-l);color:var(--green)}.pill.amber{background:var(--amber-l)}.pill.blue{background:var(--blue-l);color:var(--blue)}.pill.red{background:var(--red-l);color:var(--red)}
.prenriga .dett{font-size:13px;font-weight:800;color:var(--blue);padding:6px 0 0;text-decoration:underline}

/* accesso con PIN */
.accesso{position:fixed;inset:0;z-index:1000;background:var(--ink);display:flex;align-items:center;justify-content:center;padding:16px;overflow:auto}
.acc-card{background:#fff;border-radius:28px;padding:28px 24px;width:100%;max-width:400px;text-align:center;display:flex;flex-direction:column;gap:14px}
.acc-t{font-size:28px;font-weight:800}
.acc-err{color:var(--red);font-weight:700;min-height:22px}
.acc-ops{display:flex;flex-direction:column;gap:10px}
.acc-ops button{display:flex;align-items:center;gap:14px;min-height:72px;padding:0 16px;border-radius:18px;border:2px solid var(--line);background:#fff;font-size:20px;text-align:left}
.acc-ops small{margin-left:auto;color:var(--muted);font-weight:700;font-size:14px}
.av{width:44px;height:44px;border-radius:22px;background:var(--amber);color:var(--ink);display:inline-flex;align-items:center;justify-content:center;font-weight:800;flex-shrink:0}
.pinpts{display:flex;gap:16px;justify-content:center;height:28px;align-items:center}
.pinpts span{width:20px;height:20px;border-radius:10px;border:3px solid var(--ink)}
.pinpts span.on{background:var(--ink)}
.pad{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.pad button{height:68px;border-radius:18px;border:2px solid var(--line);background:#fff;font-size:28px;font-weight:800}
.pad button.alt{background:var(--band)}
.pad button:active,.acc-ops button:active{background:var(--amber)}
.nav-user{margin-top:auto;background:transparent;border:0}
.nav-user .av{width:34px;height:34px;border-radius:17px;font-size:14px}
@media (max-width:760px){.nav-user{margin-top:0}}

/* tabelle larghe: la colonna del mese resta ferma mentre si scorre */
table.t.sticky th:first-child,table.t.sticky td:first-child{position:sticky;left:0;background:var(--card,#fff);z-index:1}

/* WhatsApp */
.nav{position:relative}
.nav .dot{position:absolute;top:4px;right:8px;min-width:20px;height:20px;padding:0 5px;border-radius:10px;background:#E53935;color:#fff;font-style:normal;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;border:2px solid var(--ink)}
.wa-page{height:100%;min-height:0}
.wa{display:flex;height:calc(100vh - 56px);height:calc(100dvh - 56px);background:var(--card);border:1px solid var(--line);border-radius:18px;overflow:hidden}
.wa-l{width:340px;flex-shrink:0;border-right:1px solid var(--line);display:flex;flex-direction:column;min-height:0}
.wa-lh{display:flex;justify-content:space-between;align-items:center;padding:12px 14px;font-size:18px}
.wa-lh span{display:flex;gap:6px}
.wa-q{margin:0 12px 8px;padding:10px 12px;border:1px solid var(--line);border-radius:12px;font-size:15px}
.wa-lista{flex:1;overflow-y:auto}
.wa-chat{display:flex;gap:10px;align-items:center;width:100%;padding:10px 14px;border:0;border-bottom:1px solid var(--line);background:none;text-align:left}
.wa-chat.on{background:var(--amber-l)}
.wa-av{width:44px;height:44px;border-radius:50%;background:var(--band);display:flex;align-items:center;justify-content:center;font-weight:800;flex-shrink:0}
.wa-ct{flex:1;min-width:0;display:flex;flex-direction:column}
.wa-ct b,.wa-ct small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wa-ct small,.wa-meta small{color:var(--muted)}
.wa-meta{display:flex;flex-direction:column;align-items:flex-end;gap:4px}
.wa-n{background:#25D366;color:#fff;font-style:normal;font-size:12px;font-weight:800;min-width:22px;height:22px;border-radius:11px;display:flex;align-items:center;justify-content:center;padding:0 6px}
.wa-r{flex:1;min-width:0;display:flex;flex-direction:column;background:#ECE5DD}
.wa-vuoto{margin:auto;text-align:center;color:var(--muted);padding:20px}
.wa-rh{display:flex;gap:10px;align-items:center;padding:10px 14px;background:var(--card);border-bottom:1px solid var(--line)}
.wa-rh small{display:block;color:var(--muted)}
.wa-back{display:none}
.wa-msgs{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:4px}
.wa-g{text-align:center;margin:8px 0}.wa-g span{background:#fff;border-radius:8px;padding:3px 10px;font-size:12px;color:var(--muted)}
.wa-m{max-width:75%;align-self:flex-start;background:#fff;border-radius:10px;padding:6px 9px;box-shadow:0 1px 1px rgba(0,0,0,.1);word-break:break-word}
.wa-m.me{align-self:flex-end;background:#D9FDD3}
.wa-m small{display:block;text-align:right;color:var(--muted);font-size:11px}
.wa-m img,.wa-m video{max-width:100%;max-height:320px;border-radius:8px;display:block}
.wa-m img.st{max-height:140px}.wa-m audio{max-width:100%}
.wa-mi{display:block;font-size:12px;color:var(--blue)}
.wa-doc{display:block;padding:8px;background:rgba(0,0,0,.05);border-radius:8px;font-weight:700}
.wa-comp{display:flex;gap:8px;align-items:flex-end;padding:10px;background:var(--card);border-top:1px solid var(--line)}
.wa-comp textarea{flex:1;resize:none;border:1px solid var(--line);border-radius:12px;padding:10px 12px;font-size:16px;max-height:140px}
.wa-att{cursor:pointer}
@media (max-width:820px){
  .wa-l{width:100%;border-right:0}.wa-r{display:none}
  .wa.conv .wa-l{display:none}.wa.conv .wa-r{display:flex}
  .wa-back{display:inline-flex}
}

/* foto veicoli */
.fgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(88px,1fr));gap:8px}
.fthumb{position:relative;aspect-ratio:1;border-radius:12px;overflow:hidden;background:var(--band)}
.fthumb img,.fthumb video{width:100%;height:100%;object-fit:cover;display:block}
.fthumb a{display:block;width:100%;height:100%}
.fthumb b{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:#fff;font-size:26px;text-shadow:0 1px 4px #000;pointer-events:none}
.fthumb button{position:absolute;top:4px;right:4px;width:28px;height:28px;border-radius:50%;border:0;background:rgba(23,32,51,.8);color:#fff;font-size:18px;line-height:1}

/* ---- telefono e tablet: nessun accavallamento, niente scorrimento laterale della pagina ---- */
html,body{overflow-x:hidden;overscroll-behavior-x:none}
.main{overflow-x:hidden}
input[type=date],input[type=time],input[type=month]{-webkit-appearance:none;appearance:none;min-width:0;width:100%;display:block;text-align:left;line-height:normal}
input[type=date]::-webkit-date-and-time-value,input[type=time]::-webkit-date-and-time-value{text-align:left;min-height:1.2em}
.telgrid{display:grid;grid-template-columns:minmax(104px,.5fr) minmax(0,1.5fr);gap:10px;align-items:end}
.telgrid>*{min-width:0}
.telgrid select.input{padding:0 4px 0 8px;font-size:16px;text-overflow:ellipsis}
.oregrid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:4px}
.oregrid>*{min-width:0}
.item-plate{width:150px;flex:none;max-width:100%}
.plate.sm .num{font-size:20px;letter-spacing:1px;white-space:nowrap}
.item{flex-wrap:wrap}
.btn,.chip,.tab{max-width:100%}
.kpi{min-width:0;overflow:hidden}
.kpi .v{overflow-wrap:anywhere}
@media (max-width:820px){
  .oregrid{grid-template-columns:repeat(6,minmax(0,1fr))}
  .g2.stack{grid-template-columns:minmax(0,1fr)}
  .row[style*="flex-end"]{align-items:stretch}
  .row[style*="space-between"]{flex-direction:row;flex-wrap:wrap}
  .datefiltro .field{width:100%}
  .datefiltro .btn{width:100%}
  .tabs{gap:6px}
  .tab{height:42px;padding:0 14px;font-size:15px;background:#fff;border-color:var(--line)}
  .tab.on{background:var(--ink);border-color:var(--ink)}
  div[style*="overflow-x"]{-webkit-overflow-scrolling:touch;max-width:100%}
  div[style*="overflow-x"]>table.t{table-layout:auto;width:max-content;min-width:100%}
  div[style*="overflow-x"]>table.t th,div[style*="overflow-x"]>table.t td{white-space:nowrap;padding-left:10px;padding-right:10px}
  div[style*="overflow-x"]>table.t td:first-child,div[style*="overflow-x"]>table.t th:first-child{min-width:56px;padding-left:4px}
  div[style*="overflow-x"]>table.t td .muted{white-space:nowrap}
  .item-plate{width:140px}
  .grid:has(>.kpi.compatto){grid-template-columns:minmax(0,1fr)}
  .kpi.compatto{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:14px 18px}
  .kpi.compatto .v{font-size:26px}
}
@media (max-width:480px){
  .t{table-layout:auto !important}
  div[style*="overflow-x"]>table.t{width:max-content !important;min-width:100%}
  .main{padding:14px 12px}
}

#push-banner{position:fixed;left:0;right:0;top:0;z-index:900;height:52px;background:var(--ink);color:#fff;display:flex;align-items:center;gap:8px;padding:0 10px 0 14px;font-size:14px;font-weight:700}
#push-banner span{flex:1;min-width:0;line-height:1.2}
#push-banner .btn{height:38px;padding:0 14px;font-size:14px;flex:none;width:auto}
#push-banner .btn.ghost{background:transparent;color:#fff;border-color:#4b5568;padding:0 12px}
body.con-banner .app{padding-top:52px}

/* date: testo centrato in verticale, anche su iPhone */
input[type=date],input[type=time],input[type=month]{display:flex !important;align-items:center;padding-top:0;padding-bottom:0}
input[type=date]::-webkit-date-and-time-value,input[type=time]::-webkit-date-and-time-value{margin:0;min-height:0;line-height:1.2;text-align:left}
input[type=date]::-webkit-datetime-edit,input[type=time]::-webkit-datetime-edit{padding:0;line-height:1.2}
.datafisso{width:190px}
.bnav{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.bnav input[type=date]{width:190px}
.bnav>.btn{width:auto}
@media (max-width:820px){
  .bnav{display:grid;grid-template-columns:56px minmax(0,1fr) 56px;gap:8px}
  .bnav>.btn{padding:0;width:100%}
  .bnav input[type=date]{width:100%}
  .bnav-oggi{grid-column:1 / 2}
  .bnav-leggi{grid-column:2 / 4}
  .bnav-oggi{padding:0 10px !important}
  .giornirow{flex-direction:row !important;justify-content:flex-start !important}
  .giornirow .tab{flex:none}
  .giornirow .datafisso{width:100%;flex:1 1 100%}
  /* righe con targa: targa + bottone sopra, dettagli sotto a tutta larghezza */
  .item:has(.item-plate){display:flex;flex-wrap:wrap;align-items:center;gap:10px}
  .item:has(.item-plate)>.item-plate{order:1;flex:0 0 auto}
  .item:has(.item-plate)>.btn{order:2;margin-left:auto;flex:none;width:auto;min-width:96px}
  .item:has(.item-plate)>.meta{order:3;flex:1 1 100%;min-width:0;overflow-wrap:anywhere}
  .nav{min-width:0}
}
@media (max-width:480px){
  .nav{width:auto;min-width:48px;flex:1 1 0;padding:0 2px;font-size:10px;letter-spacing:-.2px;white-space:nowrap}
}

.dategrid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:10px}
.dategrid .field{min-width:0}
.dategrid + .chips{display:flex;flex-direction:row;flex-wrap:wrap}
.dategrid + .chips .chip{width:auto;flex:none;height:44px;padding:0 16px}

.sumrow>div{min-width:0}
.sumrow small{display:block;overflow-wrap:anywhere;white-space:normal}
button.sumrow{max-width:100%;overflow:hidden;font:inherit;color:inherit}
button.sumrow>div{min-width:0;max-width:100%}
button.sumrow b,button.sumrow small{overflow-wrap:anywhere}
.card{min-width:0}
@media (max-width:820px){button.sumrow{font-size:16px;padding-right:4px}}
button.sumrow>span,button.sumrow>.muted{white-space:nowrap;flex:none}
.tile{min-width:0}
.tile .big{font-size:clamp(20px,5.8vw,30px);white-space:nowrap;overflow-wrap:normal}
@media (max-width:820px){
  .grid.g3:has(>.tile){grid-template-columns:minmax(0,1fr)}
  .grid.g3:has(>.tile)>.tile{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
  .tile .big{font-size:clamp(20px,5.6vw,28px)}
  .sumrow b,.sumrow .n{white-space:nowrap}
}
/* testo dei pulsanti: va a capo invece di uscire dal bottone */
.btn,.chip{white-space:normal;line-height:1.15;text-align:center;overflow-wrap:anywhere}
.btn:not(.sm){height:auto;min-height:56px;padding-top:8px;padding-bottom:8px}
.btn.sm{height:auto;min-height:44px;padding-top:6px;padding-bottom:6px}
.btn.primary,.btn.amber,.btn.ghost{white-space:normal}
.btn.primary:not(.sm){min-height:60px}

.solo-mob{display:none}
.rowinline{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.rowinline .btn{width:auto;flex:none}
@media (max-width:820px){
  .solo-desk{display:none !important}
  .solo-mob{display:flex}
  .solo-mob .sumrow{padding:7px 0}
}

.bnav-azioni{display:contents}
@media (max-width:820px){
  .bnav-azioni{grid-column:1 / -1;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:8px}
  .bnav-oggi,.bnav-leggi{grid-column:auto;padding:0 10px !important;white-space:nowrap}
}

/* Riepilogo abbonati su telefono: schede */
.ab-card{display:flex;flex-direction:column;gap:12px;padding:16px}
.ab-top{display:flex;justify-content:space-between;align-items:center;gap:10px}
.ab-nome{font-size:18px;font-weight:800;color:var(--ink);min-width:0;overflow-wrap:anywhere}
.ab-targa{flex:none;background:var(--band);border-radius:10px;padding:4px 10px;font-weight:800;font-size:14px;letter-spacing:.5px}
.ab-sub{display:flex;flex-wrap:wrap;gap:4px 14px;color:var(--muted);font-size:14px}
.ab-tot{color:var(--ink);font-weight:800;margin-left:auto}
.mesi3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.mcell{background:var(--band);border-radius:12px;padding:8px 10px;display:flex;flex-direction:column;gap:2px;min-width:0}
.mcell small{font-size:12px;color:var(--muted);font-weight:700;text-transform:uppercase}
.mcell b{font-size:17px;font-weight:800}
.mcell em{font-style:normal;font-size:11.5px;color:var(--muted);line-height:1.2;min-height:14px}
.mcell.t-incassato{background:var(--green-l)}
.mcell.t-incassato em{color:var(--green);font-weight:700}
.mcell.t-sospeso{background:var(--amber-l)}
.mcell.t-sospeso em{color:#b45309;font-weight:700}
.mcell.t-previsto b{font-style:italic;color:var(--muted);font-weight:700}
.mcell.t-non_rinnova{background:#fdecea}
.mcell.t-non_rinnova b,.mcell.t-non_rinnova em{color:var(--red)}
.ab-ctl{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:end;border-top:1px solid var(--line);padding-top:12px}
.ab-ann{display:flex;align-items:center;gap:8px;font-weight:700;height:48px}
.ab-ann input{width:24px;height:24px}
.ab-non{display:flex;flex-direction:column;gap:4px;font-size:13px;color:var(--muted);font-weight:700}
.ab-non .input{height:48px;font-size:16px}

.conteggio-pr{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.conteggio-pr .mcell{background:#fff;border:1px solid var(--line);border-radius:16px;padding:10px 16px}
.conteggio-pr .mcell b{font-size:26px}

.tilelink{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"ic t" "s s";align-items:center;column-gap:12px;row-gap:6px}
.tilelink .tl-ic{grid-area:ic;font-style:normal;font-size:38px;line-height:1}
.tilelink b{grid-area:t;min-width:0;overflow-wrap:anywhere;line-height:1.15}
.tilelink span{grid-area:s}
.tilelink b{overflow-wrap:break-word}
@media (max-width:480px){
  .tilelink{padding:14px 12px;column-gap:9px;min-height:104px}
  .tilelink .tl-ic{font-size:30px}
  .tilelink b{font-size:16.5px;hyphens:auto}
  .tilelink span{font-size:14px}
}

/* Transitate */
.trrow{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid var(--line,#e6e1d6);color:inherit;text-decoration:none}
.trrow .tr-ora{font-size:19px;font-weight:800;white-space:nowrap}
.trrow .tr-info{min-width:0}
.trrow .tr-info b{display:block;font-size:18px}
.trrow .tr-info small{display:block;overflow-wrap:anywhere;color:var(--muted)}
@media (max-width:820px){.grid.g2.stack{grid-template-columns:1fr}}

/* barra riepilogo fissa in basso (Home) */
.con-statbar{padding-bottom:110px}
.statbar{position:fixed;left:96px;right:0;bottom:0;z-index:20;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:10px 16px calc(10px + env(safe-area-inset-bottom));background:var(--ink);box-shadow:0 -4px 16px rgba(0,0,0,.18)}
.statbar .sb{background:#fff;border-radius:16px;padding:8px 14px;color:inherit;text-decoration:none;min-width:0;display:flex;flex-direction:column;justify-content:center}
.statbar .sb .label{font-size:13px;color:var(--muted);line-height:1.15}
.statbar .sb .v{font-size:30px;font-weight:800;line-height:1.1}
.statbar .sb .v small{font-size:13px;color:var(--muted);font-weight:700}
@media (max-width:820px){
  .statbar{left:0;bottom:68px;padding:6px 8px;gap:6px}
  .statbar .sb{padding:6px 8px;border-radius:12px}
  .statbar .sb .label{font-size:11px}
  .statbar .sb .v{font-size:22px}
  .statbar .sb .v small{display:none}
}

/* semaforo ZTL */
.semaforo{display:inline-block;width:16px;height:16px;border-radius:50%;vertical-align:-1px;margin-left:6px;background:#c9c5ba;box-shadow:0 0 0 3px rgba(0,0,0,.08)}
.semaforo.red{background:#dc2626;box-shadow:0 0 0 3px rgba(220,38,38,.25)}
.semaforo.amber{background:#f59e0b;box-shadow:0 0 0 3px rgba(245,158,11,.3)}
.semaforo.green{background:#16a34a;box-shadow:0 0 0 3px rgba(22,163,74,.25)}

/* ===== menu hamburger (sostituisce barra laterale / barra in basso) ===== */
.topbar{position:fixed;left:0;right:0;top:0;z-index:50;height:56px;background:var(--ink);display:flex;align-items:center;gap:12px;padding:0 12px;color:#fff}
body.con-banner .topbar{top:52px}
.hamb{width:44px;height:44px;border-radius:12px;background:transparent;border:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;cursor:pointer}
.hamb span{display:block;width:24px;height:3px;border-radius:2px;background:#fff}
.tb-logo{width:38px;height:38px;border-radius:10px;background:#fff;display:flex;align-items:center;justify-content:center;padding:3px}.tb-logo img,.logo img{width:100%;height:100%;object-fit:contain;display:block}
.tb-title{font-size:20px;font-weight:800}
body .app{flex-direction:column;padding-top:56px}
body.con-banner .app{padding-top:108px}
body .rail{position:fixed;top:56px;bottom:0;left:0;z-index:60;width:min(300px,86vw);height:auto;flex-direction:column;align-items:stretch;justify-content:flex-start;gap:4px;padding:12px;overflow-x:hidden;overflow-y:auto;transform:translateX(-105%);transition:transform .2s ease;box-shadow:6px 0 24px rgba(0,0,0,.3)}
body.con-banner .rail{top:108px}
body.menu-open .rail{transform:none}
.scrim{display:none;position:fixed;inset:0;z-index:55;background:rgba(0,0,0,.4)}
body.menu-open .scrim{display:block}
body .logo{display:none}
body .nav{width:auto;min-width:0;height:54px;flex:none;flex-direction:row;justify-content:flex-start;gap:14px;padding:0 14px;font-size:17px;letter-spacing:0;white-space:nowrap}
body .nav svg{width:26px;height:26px}
body .nav-user{margin-top:auto}
body .nav .dot{top:12px;right:14px}
body .statbar{left:0;bottom:0}
body .toast{bottom:24px}
.main{flex:1}
body:not(.menu-open) .rail{box-shadow:none;visibility:hidden;transition:transform .2s ease,visibility 0s .2s}
button.mcell{font:inherit;text-align:left;cursor:pointer;color:inherit}
.conteggio-pr .mcell.on{background:var(--amber);border-color:var(--ink)}
.tb-home{margin-left:auto;height:42px;padding:0 16px;border-radius:12px;background:var(--amber);color:var(--ink);font-weight:800;font-size:16px;display:flex;align-items:center;text-decoration:none;white-space:nowrap}
.tb-back{width:44px;height:44px;border-radius:12px;border:0;background:rgba(255,255,255,.14);color:#fff;font-size:26px;font-weight:800;cursor:pointer;flex:none}

/* semaforo a tre luci (widget ZTL in home) */
.sem3{display:inline-flex;flex-direction:column;justify-content:space-between;gap:3px;width:26px;height:42px;padding:4px;border-radius:9px;background:#1f2937;vertical-align:middle}
.sem3 s{display:block;width:100%;aspect-ratio:1;border-radius:50%;background:#4b5563;opacity:.45;text-decoration:none}
.sem3.red .r{background:#ef4444;opacity:1;box-shadow:0 0 8px #ef4444}
.sem3.amber .a{background:#f59e0b;opacity:1;box-shadow:0 0 8px #f59e0b}
.sem3.green .g{background:#22c55e;opacity:1;box-shadow:0 0 8px #22c55e}
@media (max-width:700px){.sem3{width:22px;height:36px;padding:3px}}
.tilelink .sem-svg{display:block;width:30px;height:auto}
.tilelink{min-height:84px}@media (max-width:700px){.tilelink{min-height:72px}}

@media (max-width:700px){.tilelink .sem-svg{width:26px}}

/* Transitate: righe cliccabili pulite (niente stile bottone del browser) */
button.trrow{appearance:none;-webkit-appearance:none;background:transparent;border:0;border-bottom:1px solid var(--line,#e6e1d6);border-radius:0;box-shadow:none;margin:0;font:inherit;cursor:pointer;width:100%;text-align:left;padding:12px 10px}
button.trrow:hover,button.trrow:active{background:rgba(240,185,76,.14)}
button.trrow:last-child{border-bottom:0}
button.trrow::after{content:"›";grid-column:4;font-size:26px;font-weight:700;color:var(--muted);line-height:1;margin-left:4px}
button.trrow{grid-template-columns:auto minmax(0,1fr) auto auto}
button.trrow .tr-ora{min-width:62px;font-variant-numeric:tabular-nums}
.tilelink .cal-svg{display:block;width:36px;height:auto}

.brriga{display:flex;flex-direction:column;gap:8px;padding:10px;border:2px solid var(--line,#e2dccd);border-radius:16px;background:#fff}
.brsel{display:flex;flex-direction:column;gap:8px}
.brsel select.input{width:100%;min-height:54px;font-size:18px;font-weight:700;padding:0 12px;border-radius:12px}
.brq{display:flex;gap:8px;align-items:stretch}
.brq input.input{flex:1;min-width:0;min-height:54px;font-size:20px;font-weight:800;text-align:center;border-radius:12px}
.brb{flex:0 0 58px;min-height:54px;border-radius:12px;border:2px solid var(--line,#e2dccd);background:#f6f2e8;font-size:26px;font-weight:800;cursor:pointer;touch-action:manipulation}
.brb:active{background:#e8e1cf}
.brx{font-size:20px;color:#b3261e}

/* intestazione fissa in Home: titolo, campo targa/barcode e Invia restano visibili */
.fissa{position:sticky;top:calc(var(--mp,28px)*-1);margin-top:calc(var(--mp,28px)*-1);padding:var(--mp,28px) 0 10px;z-index:20;background:var(--bg);display:flex;flex-direction:column;gap:14px}
@media(max-width:820px){.fissa{--mp:18px}}
@media(max-width:480px){.fissa{--mp:14px}}

.tessmini{display:flex;align-items:center;gap:10px;width:100%;margin-top:8px;padding:8px 10px;border:1.5px dashed var(--line,#cfc8b6);border-radius:12px;background:#fff;text-align:left;cursor:pointer;font:inherit;color:inherit}
.tessmini img{height:44px;max-width:46%;flex-shrink:0}.tessmini img+img{height:44px;width:44px}
.tessmini span{display:flex;flex-direction:column;min-width:0}.tessmini small{color:var(--muted);font-size:12px}
.tessprev{display:flex;flex-direction:column;align-items:center;gap:8px;padding:14px;border:1.5px dashed var(--line,#cfc8b6);border-radius:14px;background:#fff}
.tessplate{font-size:24px;font-weight:800;letter-spacing:3px}

/* campo targa/barcode in Home: campo sopra, fotocamera e Invia ZTL sulla stessa riga */
.scanform{display:flex;flex-wrap:wrap;gap:8px;align-items:stretch}
.scanform #scanCod{flex:1 1 100%;min-width:0;width:100%}
.scanform .scancam{flex:0 0 72px;width:72px;padding:0}
.scanform .scaninv{flex:1 1 0;min-width:0;padding:0 16px}
@media(min-width:821px){.scanform #scanCod{flex:1 1 0;width:auto}}
/* Home: «Panoramica» e data/ora sulla stessa riga anche sul telefono */
.fissa .head{flex-wrap:nowrap;gap:10px;align-items:center}
.fissa .head>div:first-child{flex:0 0 auto;min-width:0}
@media(max-width:820px){.fissa .head h1{font-size:30px}.fissa .head .sub{font-size:14px}.fissa .head .big{font-size:15px!important;line-height:1.25;flex:1 1 0;min-width:0}}

/* finestre e righe: niente testo che esce dallo schermo, niente scorrimento laterale mentre si tiene il dito */
.sumrow>div:first-child{min-width:0;flex:1 1 auto}
.sumrow .n,.sumrow>b,.sumrow>span:last-child{flex-shrink:0;white-space:nowrap}
.plate.sm{max-width:100%;min-width:0;width:max-content}
.plate.sm .num{min-width:0;overflow:hidden;text-overflow:ellipsis}
.plate.sm.lunga{width:100%}
.plate.sm.lunga .num{font-size:15px;letter-spacing:.5px;justify-content:flex-start;padding:0 8px}
.modal{overflow-x:hidden;overscroll-behavior:contain;touch-action:pan-y;-webkit-overflow-scrolling:touch}
.overlay{overscroll-behavior:contain;touch-action:none}
html,body{overscroll-behavior-x:none;max-width:100%;overflow-x:hidden}
body:has(#modal-root .overlay){overflow:hidden}
body:has(#modal-root .overlay) .main{overflow:hidden}

/* Dashboard: lettore barcode sempre attivo + esito grande */
.lettore{display:flex;align-items:center;justify-content:space-between;gap:8px;border:2px dashed var(--line);border-radius:14px;padding:6px 8px 6px 14px;color:var(--muted);font-size:15px;font-weight:700}
.lettore .btn{height:44px;width:52px;min-width:52px;padding:0;font-size:22px}
.esitoscan{position:fixed;left:12px;right:12px;top:calc(env(safe-area-inset-top,0px) + 70px);z-index:2000;max-width:520px;margin:0 auto;border-radius:18px;padding:16px 18px;color:#fff;box-shadow:0 10px 30px rgba(0,0,0,.35);display:flex;flex-direction:column;gap:6px;align-items:flex-start}
.esitoscan.ok{background:#1f8a4c}.esitoscan.ko{background:#c0392b}
.esitoscan b{font-size:22px}.esitoscan small{opacity:.85}

.ztlbadge{display:block;margin-top:4px;font-size:14px;font-weight:800;color:#8a5a00;background:#fbe9c0;border-radius:8px;padding:2px 8px;width:max-content;max-width:100%}
.ztlbadge.rosso{color:#fff;background:var(--red)}

@media (max-width:700px){.tcomp>table.t{font-size:14px}.tcomp>table.t th,.tcomp>table.t td{padding:8px 6px !important}.tcomp>table.t td:first-child{white-space:normal !important;min-width:84px !important}.tcomp>table.t td .muted{font-size:12px}}

/* tablet e desktop: il lettore barcode resta in ascolto ma la barra non si vede (resta sullo smartphone, con il pulsante fotocamera) */
@media (min-width:768px){.lettore{display:none}}

/* tastiera su schermo (opzionale, Impostazioni > Generali) */
#tastiera{position:fixed;left:0;right:0;bottom:0;z-index:200;background:#d9dde5;padding:8px 8px calc(8px + env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:7px;box-shadow:0 -4px 18px rgba(0,0,0,.25);user-select:none;-webkit-user-select:none;touch-action:manipulation}
#tastiera .tr{display:flex;gap:8px;justify-content:center;width:100%;max-width:1010px;margin:0 auto}
#tastiera .tk{flex:1;max-width:96px;height:68px;border:0;border-radius:12px;background:#fff;font-family:inherit;font-weight:700;font-size:34px;line-height:1;color:#172033;box-shadow:0 1px 0 rgba(0,0,0,.3);cursor:pointer}
#tastiera .tk:active{background:#c5cbd8}
#tastiera .tk.spec{background:#b8bfce;max-width:110px;flex:1.4}
#tastiera .tk.on{background:#fff;outline:3px solid #f5a623}
#tastiera .tk.spaz{flex:5;max-width:none;font-size:24px;font-weight:500}
#tastiera .tk.ok{background:#f5a623}
#tastiera.num{max-width:420px;left:auto;right:0;border-top-left-radius:16px}
#tastiera.num .tr{max-width:none}
#tastiera.num .tk{max-width:none;height:84px;font-size:42px}
body.tast-aperta .main{padding-bottom:calc(var(--tast-h,300px) + 24px)}
body.tast-aperta .overlay{align-items:flex-start;padding-bottom:var(--tast-h,300px)}
body.tast-aperta .overlay .modal{max-height:calc(100vh - var(--tast-h,300px) - 40px);max-height:calc(100dvh - var(--tast-h,300px) - 40px)}

/* Nuovo ingresso: su tablet/desktop campi a sinistra, categorie grandi a destra; "Leggi la targa" solo da smartphone */
.ing-sx{display:flex;flex-direction:column;gap:18px}
@media (min-width:768px){
  #scanLive[data-mobile]{display:none}
  .page .plate:not(.sm){height:112px}
  .page .plate:not(.sm) .eu{width:48px}
  .page .plate:not(.sm) input{font-size:76px;letter-spacing:8px}
  .ing-mid{display:flex;gap:24px;align-items:flex-start}
  .ing-sx{width:300px;flex:none}
  .ing-sx .grid.g2{gap:8px}
  .ing-sx .tile .big{font-size:26px}
  .ing-dx{flex:1;min-width:0}
  .ing-dx .cat-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
  .ing-dx .cat{min-height:124px}
  .ing-dx .cat .cat-ic{width:64px;height:44px}
  .ing-dx .cat svg{transform:scale(1.25)}
}

#tastiera .tmain{display:flex;gap:10px;width:100%;max-width:1140px;margin:0 auto}
#tastiera .tlett{flex:1;display:flex;flex-direction:column;gap:7px;min-width:0}
#tastiera .tlett .tr{max-width:none}

#tastiera .tcol{width:330px;display:flex;flex-direction:column;gap:12px}
#tastiera .tcol .tr{gap:12px}
#tastiera .tcol .tr{max-width:none}
#tastiera .tcol .tk{max-width:none;height:62px;font-size:34px}

/* "I" della targa: più grande e centrata nella fascia blu */
.plate:not(.sm) .eu{align-items:center;padding-bottom:0;font-size:34px}
@media (min-width:768px){.page .plate:not(.sm) .eu{font-size:56px}}

/* INGRESSO da tablet: tutto in una schermata, senza scroll */
@media (min-width:768px){
  .main:has(#ingPage){padding:8px 12px}
  #ingPage{gap:8px;min-height:0}
  #ingPage>.head{display:none}
  #ingPage .card{padding:10px 12px;border-radius:18px}
  #ingPage .col{gap:8px}
  #ingPage .card.grow{gap:8px !important}
  #ingPage .side{width:44% !important;gap:8px !important}
  #ingPage .card>div[style*="font-size:18px"]{display:none}
  #ingPage .card>.muted{display:none}
  #ingPage .plate:not(.sm){height:76px}
  #ingPage .plate:not(.sm) input{font-size:58px}
  #ingPage .plate:not(.sm) .eu{font-size:40px;width:44px}
  #ingPage .input{height:44px;font-size:16px}
  #ingPage .field{gap:2px}
  #ingPage .field label{font-size:12px}
  #ingPage .label{font-size:12px;margin-bottom:4px !important}
  #ingPage .tile{padding:6px 12px}
  #ingPage .tile .big{font-size:22px}
  #ingPage .btn{height:46px;font-size:16px;border-radius:14px}
  #ingPage .ing-btns{display:flex;gap:8px}
  #ingPage .ing-btns .btn{flex:1;height:54px;border-radius:16px;padding:0 10px}
  #ingPage .ing-btns .btn.primary{flex:1.3}
  #ingPage .ing-dx .cat{min-height:78px}
  #ingPage .ing-dx .cat svg{transform:none}
  #ingPage .ing-dx .cat b{font-size:24px}
  #ingPage #giorniBox{gap:6px !important}
  #ingPage #giorniBox .stepper .btn{height:44px;width:48px !important;font-size:24px !important}
  #ingPage #giorni{height:44px !important;font-size:22px !important;width:84px !important}
  #ingPage textarea.input{height:52px !important;padding:8px 12px !important}
  #ingPage .setrow{font-size:16px}
  #ingPage #riepilogo:empty{display:none}
  #ingPage .chips .chip{height:38px;font-size:15px}
}
@media (min-width:768px){
  #ingPage #giorniBox .field label,#ingPage #giorniBox .label,#ingPage .card .field label[for="i-pref"],#ingPage .card .field label[for="cEmail"]{display:none}
  #ingPage #giorniBox .chips{margin-top:2px !important}
}
@media (min-width:768px){
  #ingPage .ing-titolo{padding:8px 14px}
  #ingPage .ing-titolo h1{font-size:26px !important}
  #ingPage .ing-titolo .sub{font-size:14px}
  #ingPage .ing-left{gap:8px !important}
  #ingPage .ing-dx .cat{min-height:84px}
  #ingPage .tile .big{font-size:30px}
  #ingPage #ingTiles{grid-template-columns:1.4fr 1fr}
}
@media (min-width:768px){
  #ingPage .ing-mp{display:grid;grid-template-columns:1fr 210px;gap:8px;align-items:end}
  #ingPage .ing-mp .field{margin:0}
  #ingPage .ing-mp .btn{height:44px;padding:0 8px;font-size:15px}
  #ingPage .ing-nf{display:grid;grid-template-columns:1.15fr 1fr;gap:8px}
  #ingPage .ing-nf .card{padding:8px}
  #ingPage .ing-nf textarea.input{height:60px !important}
  #ingPage .ing-nf .row .btn{height:50px;padding:0 6px;font-size:15px}
  #ingPage .ing-dx .cat{min-height:72px}
  #ingPage .plate:not(.sm){height:68px}
}
@media (min-width:768px){
  #ingPage .plate:not(.sm){height:92px}
  #ingPage .plate:not(.sm) input{font-size:78px;letter-spacing:7px}
  #ingPage .plate:not(.sm) .eu{width:56px;font-size:48px}
  #ingPage .ing-dx .cat{min-height:80px}
  #ingPage .input{height:48px}
  #ingPage .btn{height:50px}
}
/* "Leggi la targa" serve solo sullo smartphone: sparisce da qualsiasi tablet */
@media (min-width:600px){#scanLive[data-mobile]{display:none !important}}
@media (min-width:768px){
  #ingPage .ing-mp{grid-template-columns:1fr 230px}
  #ingPage .ing-mp label{font-size:15px}
  #ingPage .ing-mp .input{height:68px;font-size:26px;border-radius:16px}
  #ingPage .ing-mp .btn{height:68px;font-size:18px}
}
#ingPage #giorniBox .chips{margin-top:14px !important}

#tastiera.num{max-width:360px;border-top-left-radius:16px}
#tastiera.num .tk{height:68px;font-size:36px}
#tastiera.num .tr{gap:8px}
#tastiera.num.sx{left:0;right:auto;border-top-left-radius:0;border-top-right-radius:16px}
#tastiera.num{width:340px}
#ingPage .ing-btns .btn.primary{background:#2748CF;border-color:#2748CF;color:#fff}
#ingPage #giorniBox .stepper{display:flex;align-items:center;gap:10px}
#ingPage .notti-l{font-size:22px;font-weight:800;letter-spacing:1px;margin-right:6px}
#ingPage #giorniBox .stepper .btn,#ingPage #giorniBox #giorni{height:60px !important;width:60px !important;padding:0 !important;display:flex;align-items:center;justify-content:center;line-height:1;font-size:30px !important;margin:0}
#ingPage #giorniBox #giorni{width:100px !important;flex:none}
#ingPage #giorniBox .grid{grid-template-columns:1fr !important}
#ingPage .ing-nf{grid-template-columns:1fr}
#ingPage #giorniBox #uData,#ingPage #giorniBox #uOra{width:280px;max-width:100%}

#scheda{position:fixed;inset:0;z-index:150;background:rgba(23,32,51,.45);display:flex;justify-content:center;align-items:flex-start;padding:84px 16px 0}
#scheda .sc-box{background:#fff;border-radius:20px;padding:16px;width:min(860px,100%);display:flex;flex-direction:column;gap:12px;box-shadow:0 10px 30px rgba(0,0,0,.3)}
#scheda .sc-top{display:flex;justify-content:space-between;align-items:center;gap:12px;font-size:20px}
#scheda .sc-ok{height:52px;padding:0 28px;font-size:20px}
#scheda .sc-in{font-size:28px;height:68px}
#scheda textarea.sc-in{height:150px;padding:12px 14px;resize:none;line-height:1.3}
body.tast-aperta #scheda{padding-bottom:var(--tast-h,300px)}
#scheda .sc-ok{background:#2748CF;border-color:#2748CF;color:#fff}
#scheda .sc-targa{font-size:64px;height:96px;text-align:center;letter-spacing:8px;font-weight:800;text-transform:uppercase}

/* barra in alto più alta da tablet; Home blu con testo bianco */
.tb-home{background:#2748CF;color:#fff}
@media (min-width:768px){
  .topbar{height:76px}
  body .app{padding-top:76px}
  body.con-banner .app{padding-top:128px}
  .stickyside{max-height:calc(100vh - 76px)}
  .wa{height:calc(100vh - 76px);height:calc(100dvh - 76px)}
  .tb-logo{width:52px;height:52px;border-radius:12px}
  .tb-back{width:56px;height:56px;font-size:30px}
  .tb-title{font-size:28px}
  .tb-home{height:54px;padding:0 22px;font-size:21px;border-radius:14px}
}

/* USCITA da tablet: tutto in una schermata */
@media (min-width:768px){
  .main:has(#uscPage){padding:8px 12px}
  #uscPage{gap:8px;min-height:0}
  #uscPage>.head{display:none}
  #uscPage .card{padding:10px 12px;border-radius:18px}
  #uscPage .col{gap:8px}
  #uscPage .side{width:38% !important;gap:8px !important}
  #uscPage .plate{height:84px}
  #uscPage .plate .num{font-size:62px}
  #uscPage .plate .eu{width:50px;font-size:38px;align-items:center;padding-bottom:0}
  #uscPage .tile{padding:6px 12px}
  #uscPage .tile .big{font-size:26px}
  #uscPage .grid.g2{gap:6px 14px}
  #uscPage .usc-note>div:first-child,#uscPage .usc-note .muted{display:none}
  #uscPage textarea.input{height:56px !important;padding:8px 12px !important}
  #uscPage .btn.sm,#uscPage .azioni .btn{height:46px;min-height:0;font-size:15px;padding:0 12px}
  #uscPage .azioni{display:flex;flex-wrap:wrap;gap:8px}
  #uscPage .dark{padding:12px 16px}
  #uscPage .dark div[style*="font-size:64px"]{font-size:58px !important}
  #uscPage #conferma{background:#2748CF;border-color:#2748CF;color:#fff}
  #uscPage .card .field label{font-size:12px}
  #uscPage .input{height:48px}
}
@media (max-width:767px){#uscPage .azioni{display:flex;flex-wrap:wrap;gap:8px}}
.azioni.big{display:grid;grid-template-columns:repeat(auto-fit,minmax(104px,1fr));gap:8px}
.azioni.big .azb{flex-direction:column;height:auto !important;min-height:86px;padding:8px 6px;gap:5px;font-size:15px;line-height:1.1;text-align:center;border-radius:16px}
.azioni.big .azb svg{width:34px;height:34px;flex:none}
#conferma{min-height:78px;font-size:26px;border-radius:20px}
#uscPage #conferma{min-height:84px}
#uscPage .azioni.big{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
#uscPage .azioni.big .azb{height:auto;min-height:88px;padding:8px 4px;font-size:15px}
@media (max-width:767px){#uscPage .azioni.big{grid-template-columns:repeat(auto-fit,minmax(104px,1fr))}}
.notti-row{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.notti-l2{font-size:22px;font-weight:800;letter-spacing:1px;margin-right:6px}
.notti-row .btn{width:64px;height:64px;padding:0;font-size:32px;min-height:0}
.notti-row .btn.primary{width:auto;padding:0 22px;font-size:20px;background:#2748CF;border-color:#2748CF;color:#fff}
.notti-row .btn.ghost[data-act="nottiAnnulla"]{width:auto;padding:0 18px;font-size:18px}
.notti-n{min-width:96px;height:64px;border:2px solid var(--line);border-radius:14px;background:#fff;font-size:34px;font-weight:800;display:flex;align-items:center;justify-content:center}
@media (min-width:768px){#uscPage .azioni.big.azdx{grid-template-columns:repeat(2,minmax(0,1fr))}
#uscPage .azioni.big.azdx .azb{min-height:104px;font-size:17px}}
.tb-clock{margin-left:auto;color:#fff;font-weight:800;font-size:16px;text-transform:capitalize;white-space:nowrap}
.tb-clock[hidden]{display:none}
@media (min-width:768px){.tb-clock{font-size:26px;margin-right:6px}}
#uscPage .exb{width:56px;height:52px;padding:0;font-size:28px;font-weight:800;min-height:0}
#uscPage .usc-dati .label{font-size:17px}
#uscPage .usc-dati b{font-size:22px}
#uscPage .usc-dati .muted{font-size:17px !important}
/* Bici e Bagagli: elenco a sinistra, comandi e totali a destra */
@media (min-width:768px){
  .bici2{display:flex;flex-direction:row;gap:12px;align-items:stretch}
  .bi-l{flex:1;min-width:0;display:flex;flex-direction:column;gap:10px}
  .bi-list{flex:1;min-height:0;overflow:auto;padding-right:2px}
  .bi-r{width:250px;flex:none;display:flex;flex-direction:column;gap:10px;overflow:auto}
  .bi-r .btn{justify-content:center}
  .bi-nuovo{height:84px;font-size:24px}
  .bici2 .head{margin-bottom:0}
}
@media (max-width:767px){
  .bici2{display:flex;flex-direction:column;gap:10px}
  .bi-r{order:-1;display:grid;grid-template-columns:1fr 1fr;gap:8px}
  .bi-r .bi-nuovo{grid-column:1/-1;height:64px;font-size:20px}
  .bi-r .btn{justify-content:center}
}
@media (min-width:768px){
  .bici2 .bi-list .card{padding:10px 14px !important}
  .bici2 .bi-list .btn.sm{height:38px;min-height:0;font-size:15px;padding:0 12px}
  .bici2 .bi-list .row{margin-top:6px !important}
  .bici2 .bi-r .card{padding:8px 14px}
  .bici2 .bi-r .card .muted{font-size:14px}
  .bici2 .bi-nuovo{padding:0 8px;line-height:1.1}
}
@media (min-width:768px){
  .bici2{overflow:hidden}
  .bi-l{min-height:0}
  .bici2 .bnav-leggi{display:none}
}

.bw-dots{display:flex;gap:6px;margin:6px 0 4px}.bw-dots span{flex:1;height:8px;border-radius:4px;background:var(--line,#E0DAC9)}.bw-dots span.on{background:#2748CF}.bw-dots span.ok{background:#1A6E4E}
.bw-t{font-size:17px;margin-bottom:10px;color:var(--muted,#566)}
[data-st][hidden],.bw-btn [hidden]{display:none !important}
.bw-btn{flex-wrap:wrap}
.bw-btn{flex-wrap:wrap}

/* smartphone: tastierino numerico a tutta larghezza e basso, così la scheda resta visibile */
@media (max-width:767px){
  #tastiera.num{width:100%;max-width:none;left:0;right:0;border-radius:0;padding:6px 6px calc(6px + env(safe-area-inset-bottom));gap:5px}
  #tastiera.num .tk{height:54px;font-size:28px;border-radius:10px}
  #tastiera.num .tr{gap:6px}
}

@media (min-width:768px){.bi-doc{display:none !important}}
.tilelink.hot{background:#2748CF;border-color:#2748CF}
.tilelink.hot b,.tilelink.hot span{color:#fff}
@media (min-width:768px){body.ruolo-op #hamb{display:none !important}}
.elrow{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;text-align:left;font:inherit;color:inherit;background:transparent;border:0;border-bottom:1px solid var(--line);cursor:pointer;padding:14px 4px;height:auto;min-height:72px;overflow:visible}
.elrow b{display:block;font-size:24px;font-weight:800;letter-spacing:.5px;line-height:1.2}
.elrow small{display:block;margin-top:3px;font-size:17px;font-weight:600;color:var(--muted);line-height:1.3}
.elrow .muted{font-size:28px}

/* + e − dei contatori: barre disegnate, perfettamente al centro */
button.has-pm{display:flex !important;align-items:center;justify-content:center;line-height:1}
.pm{position:relative;display:block;width:.62em;height:.62em;flex:none}
.pm::before{content:"";position:absolute;left:0;right:0;top:50%;height:.12em;margin-top:-.06em;background:currentColor;border-radius:.06em}
.pm-piu::after{content:"";position:absolute;top:0;bottom:0;left:50%;width:.12em;margin-left:-.06em;background:currentColor;border-radius:.06em}

/* calendario grande (tablet) */
.calov{position:fixed;inset:0;z-index:300;background:rgba(10,14,30,.5);display:flex;align-items:center;justify-content:center;padding:12px;touch-action:none}
.calbox{background:#fff;border-radius:24px;width:min(560px,100%);max-height:96vh;overflow:auto;padding:18px;box-shadow:0 20px 60px rgba(0,0,0,.35)}
.calmese{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px}
.calmese b{font-size:24px;text-transform:capitalize}
.calmese button{width:64px;height:64px;border-radius:16px;border:2px solid var(--line,#e2dccf);background:#fff;font-size:30px;font-weight:800;color:var(--ink)}
.calgr{display:grid;grid-template-columns:repeat(7,1fr);gap:6px}
.calgr .h{text-align:center;font-weight:800;color:#6b6f80;padding:6px 0;font-size:15px}
.calgr button{height:64px;border-radius:14px;border:0;background:#f7f4ee;font-size:22px;font-weight:700;color:var(--ink)}
.calgr button.p{color:#b5b3ab;background:transparent}
.calgr button:disabled{color:#d4d2cb;background:transparent}
.calgr button.oggi{box-shadow:inset 0 0 0 3px #2f45c9}
.calgr button.sel{background:#2f45c9;color:#fff}
.calpiede{display:flex;gap:10px;margin-top:16px}
.calpiede button{height:60px;padding:0 22px;border-radius:14px;font-size:18px;font-weight:800;border:2px solid var(--line,#e2dccf);background:#fff;color:var(--ink)}
.calpiede .ok{flex:1;background:#2f45c9;border-color:#2f45c9;color:#fff}
input[type="date"]{cursor:pointer}
@media (max-height:640px){.calgr button{height:48px;font-size:18px}.calmese button{height:48px;width:52px}}

/* Home: data e ora al centro della barra, stampe rapide a destra */
.tb-print{margin-left:auto;display:flex;gap:8px}
.tb-print[hidden]{display:none}
.tb-print button{height:44px;padding:0 14px;border-radius:12px;border:2px solid rgba(255,255,255,.35);background:transparent;color:#fff;font-weight:800;font-size:16px;white-space:nowrap;cursor:pointer}
.tb-print button:active{background:rgba(255,255,255,.18)}
.tb-print .sm{display:none}
@media (max-width:899px){.tb-print .lg{display:none}.tb-print .sm{display:inline}}
@media (min-width:900px){
  .tb-clock{position:absolute;left:50%;transform:translateX(-50%);margin:0;font-size:24px}
  .tb-print button{height:54px;font-size:18px;padding:0 18px}
}

/* Chiusura cassa: due pulsanti e percorso a step a tutto schermo */
.cw-azioni{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:6px 0 14px}
.cw-big{height:96px;border-radius:20px;border:0;font-size:26px;font-weight:800;color:#fff;cursor:pointer;font-family:inherit;display:flex;flex-direction:column;align-items:center;justify-content:center}
.cw-big small{font-size:14px;font-weight:600;opacity:.85;margin-top:4px}
.cw-big.blu{background:#2f45c9}.cw-big.verde{background:#2e6b4c}.cw-big.grigio{background:#9aa0ae;cursor:default}
.cw{position:fixed;inset:0;z-index:150;background:var(--bg);display:flex;flex-direction:column;overflow:auto;overscroll-behavior:contain}
.cw-top{background:var(--ink);color:#fff;padding:12px 18px;display:flex;align-items:center;gap:14px;font-size:20px;position:sticky;top:0;z-index:2}
.cw-x{margin-left:auto;background:rgba(255,255,255,.15);border:0;color:#fff;font-size:18px;font-weight:800;border-radius:12px;padding:10px 16px;cursor:pointer;font-family:inherit}
.cw-prog{display:flex;gap:8px;padding:12px 18px}.cw-prog i{flex:1;height:8px;border-radius:5px;background:var(--line)}.cw-prog i.on{background:#2f45c9}
.cw-body{width:100%;max-width:760px;margin:0 auto;padding:0 18px 24px}
.cw-body h2{font-size:30px;margin:8px 0}
.cw-att{display:flex;justify-content:space-between;align-items:center;background:#fff;border:2px solid var(--line);border-radius:18px;padding:14px 20px;font-size:20px;margin:10px 0}
.cw-att small{display:block;font-size:14px;color:var(--muted);font-weight:500}.cw-att b{font-size:32px}
.cw-lab{display:block;font-size:18px;font-weight:700;margin:14px 0 6px}
.cw-camp{display:block;width:100%;height:84px;border-radius:18px;border:3px solid #2f45c9;background:#fff;font-size:44px;font-weight:800;text-align:right;padding:0 22px;color:var(--ink);font-family:inherit}
.cw-diff{border-radius:18px;padding:14px 20px;font-size:20px;display:flex;justify-content:space-between;align-items:center;margin:10px 0;font-weight:700}
.cw-diff b{font-size:32px}.cw-diff.ok{background:#dcefe3;color:#2e6b4c}.cw-diff.bad{background:#f7dcd5;color:#a8341f}.cw-diff.nd{background:#e8e4d8;color:var(--muted)}
.cw-avv{background:#fbeccc;border-radius:16px;padding:14px 18px;font-size:18px;margin:10px 0}
.cw-err{background:#f7dcd5;color:#a8341f;border-radius:14px;padding:12px 16px;font-weight:700;margin-top:10px}
.cw-err[hidden]{display:none}
.cw-nav{display:flex;gap:12px;margin-top:18px}
.cw-nav button{height:66px;border-radius:16px;font-size:22px;font-weight:800;border:2px solid var(--line);background:#fff;color:var(--ink);padding:0 26px;cursor:pointer;font-family:inherit}
.cw-nav .cw-av{flex:1;background:#2f45c9;border-color:#2f45c9;color:#fff}.cw-nav .cw-av.v{background:#2e6b4c;border-color:#2e6b4c}
body.tast-aperta .cw{padding-bottom:calc(var(--tast-h,300px) + 12px)}
@media (max-width:600px){.cw-azioni{grid-template-columns:1fr}.cw-camp{font-size:36px;height:72px}}
body.con-banner .cw{top:52px}

/* operatori da tablet: senza hamburger, il pulsante Esci in Home per cambiare utente */
.tb-esci{height:44px;padding:0 16px;border-radius:12px;border:2px solid rgba(255,255,255,.35);background:transparent;color:#fff;font-weight:800;font-size:16px;white-space:nowrap;cursor:pointer;font-family:inherit;margin-left:8px}
.tb-esci[hidden]{display:none}
@media (min-width:900px){.tb-esci{height:54px;font-size:18px;padding:0 18px}}
@media (max-width:767px){.tb-esci{display:none !important}}

/* ingresso da tablet: foto e video si fanno da smartphone */
@media (min-width:768px){.foto-ing{display:none !important}}

/* Ingresso: pulsanti Registra più alti, + e − delle notti blu */
#ingPage .ing-btns .btn{height:72px !important;font-size:20px}
#ingPage .ing-btns .btn.primary{background:#2748CF;border-color:#2748CF;color:#fff}
#ingPage #giorniBox .stepper .btn{height:72px !important;width:72px !important;background:#2748CF;border-color:#2748CF;color:#fff;font-size:36px !important}
#ingPage #giorniBox #giorni{height:72px !important}
#ingPage .ing-btns .btn{height:92px !important;font-size:22px}
#ingPage #accMet .chip{height:60px !important;font-size:17px !important}
.conteggio-pr .mcell.on{background:#2748CF;border-color:#2748CF;color:#fff}
.conteggio-pr .mcell.on small,.conteggio-pr .mcell.on b{color:#fff}

.btn.cs-dove.primary{background:#2748CF;border-color:#2748CF;color:#fff}
.bici-chips .chip.on{background:#2748CF;border-color:#2748CF;color:#fff}

/* Nuovo noleggio bici a passi: riquadri grandi */
.bwtile{display:flex;align-items:center;gap:12px;border:2px solid var(--line);border-radius:18px;padding:10px 14px;background:#fff}
.bwtile.sel{border-color:#2748CF;background:#eef1fd}
.bwtile .n{flex:1;min-width:0;font-size:22px;font-weight:800}.bwtile .n small{display:block;font-size:14px;color:var(--muted,#566075);font-weight:600}
.bwq{display:flex;align-items:center;gap:8px}.bwq b{min-width:36px;text-align:center;font-size:28px}
.bwq button{width:64px;height:64px;border-radius:16px;border:0;background:#2748CF;color:#fff;font-size:34px;font-weight:800;padding:0}
.bwq button.g{background:#eee9dc;color:var(--ink,#172033)}
.bwdur{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.bwdur button{min-height:84px;border-radius:18px;border:2px solid var(--line);background:#fff;font-size:22px;font-weight:800;color:var(--ink,#172033)}
.bwdur button small{display:block;font-size:17px;color:var(--muted,#566075);font-weight:700}
.bwdur button.sel{background:#2748CF;border-color:#2748CF;color:#fff}.bwdur button.sel small{color:#dfe5ff}
.bwsum{background:var(--band,#E6E1D3);border-radius:16px;padding:12px 16px;margin-top:10px;font-size:18px}.bwsum:empty{display:none}
.bwsum small{display:block;font-size:14px;color:var(--muted,#566075);margin-top:2px}
.bwlink{background:none;border:0;color:#2748CF;font-weight:800;text-decoration:underline;font-size:17px;padding:10px 0;cursor:pointer;font-family:inherit}
.bwmet{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.bwmet button{height:72px;border-radius:18px;border:2px solid var(--line);background:#fff;font-size:22px;font-weight:800;color:var(--ink,#172033)}
.bwmet button.sel{background:#2748CF;border-color:#2748CF;color:#fff}

/* Uscita da tablet: niente scatto foto/video (da smartphone); si vedono solo quelle già fatte. Pulsanti a destra più alti */
@media (min-width:768px){
  #uscPage .foto-scatta{display:none !important}
  #uscPage .foto-vuote{display:none !important}
  #uscPage #conferma{min-height:120px !important;font-size:30px}
  #uscPage .azioni.big.azdx .azb{min-height:140px !important;font-size:19px}
}

/* Uscita da tablet: targa grande come in Ingresso, riquadri e dati più grandi */
@media (min-width:768px){
  #uscPage .plate{height:92px}
  #uscPage .plate .num{font-size:78px;letter-spacing:7px}
  #uscPage .plate .eu{width:56px;font-size:48px}
  #uscPage .tile{padding:12px 16px}
  #uscPage .tile .big{font-size:40px}
  #uscPage .tile .label{font-size:19px}
  #uscPage .usc-dati .label{font-size:20px}
  #uscPage .usc-dati b{font-size:28px}
  #uscPage .usc-dati .muted{font-size:20px !important}
  #uscPage .grid.g2{gap:12px 18px}
}

/* Uscita da tablet: targa grande come in Ingresso, riquadri e dati più grandi */
@media (min-width:768px){
  #uscPage .plate{height:92px}
  #uscPage .plate .num{font-size:78px;letter-spacing:7px}
  #uscPage .plate .eu{width:56px;font-size:48px}
  #uscPage .tile{padding:12px 16px}
  #uscPage .tile .big{font-size:40px}
  #uscPage .tile .label{font-size:19px}
  #uscPage .usc-dati .label{font-size:20px}
  #uscPage .usc-dati b{font-size:28px}
  #uscPage .usc-dati .muted{font-size:20px !important}
  #uscPage .grid.g2{gap:12px 18px}
}

/* Uscita, elenco soste da tablet: schede e targhe più grandi */
@media (min-width:768px){
  .usc-lista .item{padding:18px 22px;gap:22px;border-radius:22px}
  .usc-lista .item>div:first-child{width:280px !important}
  .usc-lista .plate.sm{height:68px;border-radius:10px}
  .usc-lista .plate.sm .eu{width:34px;font-size:14px}
  .usc-lista .plate.sm .num{font-size:36px;letter-spacing:3px}
  .usc-lista .item .meta b{font-size:26px}
  .usc-lista .item .meta div{font-size:20px}
  .usc-lista .item .amt{font-size:34px}
  .usc-lista>.label{font-size:20px !important}
}

/* Prenotazioni da tablet: righe e testi più grandi */
@media (min-width:768px){
  .prenriga{padding:22px 16px;gap:16px;min-height:104px}
  .prenriga b{font-size:25px}
  .prenriga .muted{font-size:20px}
  .prenriga .pr-d b{font-size:28px}
  .prenriga .pill{font-size:17px;padding:6px 16px}
  .prenriga .dett{font-size:18px;padding:8px 0 0}
  .conteggio-pr .mcell{padding:14px 18px}
  .conteggio-pr .mcell small{font-size:16px}
  .conteggio-pr .mcell b{font-size:40px}
}

/* Tablet: Home, Partenze del giorno, Controllo soste, Deposito auto più grandi */
@media (min-width:768px){
  .tilelink{min-height:170px;padding:26px 24px;column-gap:18px}
  .tilelink .tl-ic{font-size:56px}
  .tilelink .tl-ic svg{width:56px;height:56px}
  .tilelink b{font-size:28px}
  .statbar .sb{padding:12px 18px}
  .statbar .sb .label{font-size:19px}
  .statbar .sb .v{font-size:44px}
  .statbar .sb .v small{font-size:18px}
  #partPage .sumrow,#csPage .sumrow,#depPage .sumrow{padding:14px 0;gap:14px 18px !important}
  #partPage .sumrow b,#csPage .sumrow b,#depPage .sumrow b{font-size:26px}
  #partPage .sumrow small,#csPage .sumrow small,#depPage .sumrow small{font-size:19px}
  #partPage .sumrow>div:first-child:not([style*="150px"]){font-size:30px !important}
  #partPage .plate.sm,#csPage .plate.sm,#depPage .plate.sm{height:68px;border-radius:10px}
  #partPage .plate.sm .eu,#csPage .plate.sm .eu,#depPage .plate.sm .eu{width:34px;font-size:14px}
  #partPage .plate.sm .num,#csPage .plate.sm .num,#depPage .plate.sm .num{font-size:36px;letter-spacing:3px}
  #csPage .sumrow>div[style*="150px"],#depPage .sumrow>div[style*="150px"]{width:260px !important}
  #partPage .sumrow>div[style*="width:"]:not(:first-child){width:260px !important}
  #partPage .card>div:first-child,#csPage .card>div:first-child:not(.sumrow),#depPage .card>div:first-child{font-size:24px !important}
  #partPage .tab{font-size:20px;min-height:64px;padding:0 24px}
  #csPage .sumrow .btn,#depPage .sumrow .btn{height:68px !important;font-size:22px}
  #csPage .muted,#depPage .muted,#partPage .muted{font-size:18px !important}
}

/* Partenze, Controllo soste, Deposito da tablet: ancora più grandi */
@media (min-width:768px){
  #partPage .sumrow,#csPage .sumrow,#depPage .sumrow{padding:20px 0 !important;gap:14px 22px !important}
  #partPage .sumrow b,#csPage .sumrow b,#depPage .sumrow b{font-size:32px !important}
  #partPage .sumrow small,#csPage .sumrow small,#depPage .sumrow small{font-size:23px !important}
  #partPage .sumrow>div:first-child:not([style*="150px"]){font-size:38px !important;width:110px !important}
  #partPage .plate.sm,#csPage .plate.sm,#depPage .plate.sm{height:88px !important;border-radius:12px}
  #partPage .plate.sm .eu,#csPage .plate.sm .eu,#depPage .plate.sm .eu{width:42px;font-size:18px}
  #partPage .plate.sm .num,#csPage .plate.sm .num,#depPage .plate.sm .num{font-size:48px !important;letter-spacing:4px}
  #csPage .sumrow>div[style*="150px"],#depPage .sumrow>div[style*="150px"]{width:260px !important}
  #partPage .card>div:first-child,#csPage .card>div:first-child:not(.sumrow),#depPage .card>div:first-child{font-size:28px !important}
  #partPage .tab{font-size:22px;min-height:72px}
  #partPage .azioni .btn,#csPage .azioni .btn,#depPage .azioni .btn{height:76px;font-size:21px}
  #csPage .sumrow .btn,#depPage .sumrow .btn{height:76px !important;font-size:24px;min-width:150px}
  #depPage .sumrow>button.btn{height:72px !important}
  #csPage .card .muted,#depPage .card .muted{font-size:19px !important}
}

/* Noleggio bici e Bagagli da tablet: schede, testi e pulsanti più grandi */
@media (min-width:768px){
  .bici2 .bi-list .card{padding:18px 22px !important}
  .bici2 .bi-list .card b{font-size:26px !important}
  .bici2 .bi-list .card,.bici2 .bi-list .card .muted{font-size:20px}
  .bici2 .bi-list .card .muted{font-size:20px !important}
  .bici2 .bi-list .card .chip{height:44px;font-size:18px;padding:0 18px}
  .bici2 .bi-list .btn.sm{height:60px !important;font-size:19px !important;padding:0 20px !important;border-radius:16px}
  .bici2 .bi-list .row{gap:10px !important;margin-top:12px !important}
  .bici2 .bi-r{width:340px}
  .bici2 .bi-r .btn{height:72px;font-size:21px}
  .bici2 .bi-nuovo{height:104px !important;font-size:28px !important}
  .bici2 .bi-r .card{padding:14px 20px}
  .bici2 .bi-r .card .muted{font-size:19px}
  .bici2 .bi-r .card .big{font-size:44px !important}
  .bici2 .bi-chips .chip,.bici2 .chips .chip{height:60px !important;font-size:20px !important;padding:0 24px !important}
  .bici2 .input{height:60px;font-size:20px}
  .bici2 .bnav .btn{height:60px;min-width:64px}
}

/* Campi Cerca più grandi da tablet */
@media (min-width:768px){
  .search{height:84px;border-radius:22px;padding:0 26px;gap:16px}
  .search input{font-size:30px}
  .search svg{width:36px;height:36px}
  .head .search,.page>.head .search{max-width:760px !important;flex:1 1 560px !important}
}

.prenriga .pr-num{font-size:20px;font-weight:800;color:var(--ink,#172033);letter-spacing:.5px}
@media (min-width:768px){.prenriga .pr-num{font-size:30px;margin-top:2px}}

.prenriga .pr-f{flex-direction:row !important;gap:10px;align-items:center}
.prenriga .pr-f .btn{height:56px;padding:0 20px;border-radius:16px;font-size:18px;font-weight:800;color:#fff;border:0}
.prenriga .pr-ing{background:var(--green)}
.prenriga .pr-dett{background:#2748CF}
@media (min-width:768px){.prenriga .pr-f .btn{height:68px;padding:0 28px;font-size:21px}}

/* smartphone: niente data e ora nella barra in alto */
@media (max-width:767px){.tb-clock{display:none !important}}

/* Ingresso da smartphone: pulsanti staccati tra loro */
@media (max-width:767px){
  #ingPage .ing-btns{display:flex;flex-direction:column;gap:16px;margin-top:6px}
  #ingPage .ing-btns .btn{width:100%}
  #ingPage [data-act=vaiPrenOggi]{margin-top:16px}
  #scanLive{margin-top:12px;margin-bottom:6px}
  #ingPage .card>.btn+.btn,#ingPage .card>.btn+.row{margin-top:14px}
}

/* Ingresso da smartphone: NOTTI − n + dentro il form */
@media (max-width:767px){
  #ingPage #giorniBox .stepper{gap:8px;flex-wrap:nowrap;max-width:100%}
  #ingPage .notti-l{font-size:18px;margin-right:0}
  #ingPage #giorniBox .stepper .btn,#ingPage #giorniBox #giorni{height:60px !important;width:58px !important;font-size:30px !important;flex:none}
  #ingPage #giorniBox #giorni{width:84px !important}
}

/* Numero notti sotto le categorie: stessa grafica di prima anche fuori da #giorniBox */
#ingPage .nnotti .stepper{display:flex;align-items:center;gap:10px}
#ingPage .nnotti .stepper .btn,#ingPage .nnotti #giorni{height:72px !important;width:72px !important;padding:0 !important;display:flex;align-items:center;justify-content:center;line-height:1;margin:0}
#ingPage .nnotti .stepper .btn{background:#2748CF;border-color:#2748CF;color:#fff;font-size:36px !important}
#ingPage .nnotti #giorni{width:100px !important;flex:none;font-size:30px !important}
@media (max-width:767px){
  #ingPage .nnotti .stepper{gap:8px;flex-wrap:nowrap}
  #ingPage .nnotti .stepper .btn,#ingPage .nnotti #giorni{height:60px !important;width:58px !important;font-size:30px !important;flex:none}
  #ingPage .nnotti #giorni{width:84px !important}
}

/* Ingresso: ogni blocco è un widget separato */
.ing-targa{display:contents}
@media (max-width:767px){
  #ingPage .ing-left>.card:first-child{background:none;border:0;box-shadow:none;padding:0;gap:14px}
  #ingPage .ing-targa,#ingPage .ing-mp,#ingPage .ing-dx,#ingPage .nnotti{display:flex;flex-direction:column;gap:12px;background:#fff;border:2px solid var(--line);border-radius:26px;padding:16px}
  #ingPage .ing-mp{display:flex}
  #ingPage .ing-nf .card,#ingPage .ing-left>.card:first-child>.card{background:#fff}
}


.tb-logo{cursor:pointer}

/* Data e ora di uscita affiancate, con icona calendario e orologio nel campo */
.iconf{position:relative}
.iconf i{position:absolute;left:14px;top:50%;transform:translateY(-50%);font-style:normal;font-size:22px;pointer-events:none}
.iconf .input{padding-left:50px !important;width:100%}
#ingPage .nnotti .uscdt{display:grid !important;grid-template-columns:1.25fr 1fr !important;gap:10px !important}
#ingPage .nnotti #uData,#ingPage .nnotti #uOra{width:100% !important;max-width:none !important;height:56px;font-size:18px;min-width:0}

input[type=date]{pointer-events:none}

/* Smartphone: Prenotazioni, campi e filtri ben visibili */
@media (max-width:767px){
  .datefiltro{display:grid !important;grid-template-columns:1fr 1fr;gap:10px !important;align-items:end}
  .datefiltro .field{margin:0;min-width:0}
  .datefiltro .field label{font-size:16px}
  .datefiltro .field .input{height:60px;font-size:19px;width:100%;padding:0 14px}
  .datefiltro .search{grid-column:1/-1;flex:none !important;width:100% !important;min-width:0 !important;height:64px !important;padding:0 16px;gap:12px}
  .datefiltro .search input{font-size:19px}
  .datefiltro .search svg{width:28px;height:28px}
  .datefiltro .btn{grid-column:1/-1;width:100%}
  .chips .chip,.tabs .tab{min-height:48px}
  /* Ingresso: targa più grande */
  #ingPage .plate:not(.sm){height:92px}
  #ingPage .plate:not(.sm) input{font-size:54px;letter-spacing:5px}
  #ingPage .plate:not(.sm) .eu{width:52px;font-size:34px}
}
@media (max-width:767px){
  #ingPage .plate:not(.sm){height:84px}
  #ingPage .plate:not(.sm) input{font-size:40px;letter-spacing:2px;padding:0 4px;text-overflow:clip}
  #ingPage .plate:not(.sm) .eu{width:46px;font-size:30px}
}

/* smartphone: Mappa senza ora/Adesso; Prenotazioni filtri in griglia ordinata */
@media (max-width:767px){
  .mapora{display:none !important}
  .pr-azioni{display:grid !important;grid-template-columns:1fr 1fr;gap:10px;width:100%}
  .pr-azioni .btn{width:100%;height:56px;font-size:16px;padding:0 8px;white-space:normal;line-height:1.15}
  .pr-azioni .btn:first-child:nth-last-child(n+4){grid-column:1 / -1}
  .pr-tabs,.pr-portali{display:grid !important;grid-template-columns:1fr 1fr;gap:10px;overflow:visible}
  .pr-tabs .tab,.pr-portali .tab{width:100%;height:52px !important;font-size:16px !important;padding:0 6px;white-space:normal;line-height:1.15}
  .pr-tabs .tab:last-child:nth-child(odd),.pr-portali .tab:last-child:nth-child(odd){grid-column:1 / -1}
}

/* Chiusura cassa: Stampa riepilogo a destra, sulla riga del titolo */
.head:has([data-act="stampaRiepilogo"]){flex-wrap:nowrap;gap:10px}
.head:has([data-act="stampaRiepilogo"])>div:first-child{flex:1 1 auto;min-width:0}
.head:has([data-act="stampaRiepilogo"]) [data-act="stampaRiepilogo"]{flex:0 0 auto;white-space:nowrap}
@media (max-width:767px){
  .head:has([data-act="stampaRiepilogo"]) h1{font-size:28px}
  .head:has([data-act="stampaRiepilogo"]) [data-act="stampaRiepilogo"]{height:52px;font-size:15px;padding:0 14px}
}

/* Mappa: campo data stretto, con calendario, a sinistra */
.mapdata{flex:0 0 auto;width:170px}
.giornirow .mapdata .datafisso{width:100% !important;flex:none;padding-right:6px;font-size:17px}

/* Prenotazioni: filtri a elenco a discesa su smartphone */
.pr-sel{display:none}
@media (max-width:767px){
  .pr-tabs,.pr-portali{display:none !important}
  .pr-sel{display:grid;grid-template-columns:1fr 1fr;gap:10px}
  .pr-sel .field{margin:0}
  .pr-sel select.input{height:56px;font-size:18px;padding:0 10px}
}

/* Uscita: pulsanti + e − blu con testo bianco (notti e servizi extra) */
.notti-row .btn[data-act="nottiD"],.stepper .btn.exb{background:#2748CF !important;border-color:#2748CF !important;color:#fff !important}

/* esito scansione lettore: popup grande al centro */
.esitoscanbk{position:fixed;inset:0;z-index:1999;background:rgba(0,0,0,.45)}
.esitoscan{top:50%!important;left:16px!important;right:16px!important;transform:translateY(-50%);max-width:560px!important;padding:28px 22px!important;text-align:center;align-items:center;gap:10px}
.esitoscan b{font-size:30px!important}.esitoscan div{font-size:20px}


/* Ingresso tablet: notti e uscita prevista nella colonna di destra, sotto Registra */
@media (min-width:768px){#ingPage .side>.nnotti{display:flex;flex-direction:column;gap:12px;background:#fff;border:2px solid var(--line);border-radius:26px;padding:14px}
#ingPage .side>.nnotti .stepper{gap:8px;flex-wrap:nowrap}
#ingPage .side>.nnotti .stepper .btn,#ingPage .side>.nnotti #giorni{height:60px !important;width:58px !important;font-size:30px !important;flex:none}
#ingPage .side>.nnotti #giorni{width:84px !important}
#ingPage .side>.nnotti .uscdt{grid-template-columns:1fr 1fr !important}}


.cs-targa .plate.sm{width:max-content;max-width:none;min-width:0}
.cs-targa .plate.sm .num{overflow:visible;white-space:nowrap;padding:0 10px}

/* Panoramica Storico */
.pn-bar{display:flex;align-items:center;gap:10px;margin:2px 0 10px}
.pn-burger{width:48px;height:48px;border:0;border-radius:12px;background:var(--card,#fff);box-shadow:0 1px 3px #0002;font-size:22px;cursor:pointer}
.pn-sel{display:flex;gap:8px;align-items:center;justify-content:center;margin:4px 0 12px}
.pn-sel button{width:46px;height:46px;border-radius:12px;border:1px solid #d9dce3;background:#fff;font-size:18px;cursor:pointer}
.pn-sel b{min-width:170px;text-align:center;font-size:20px;text-transform:capitalize}
.pn-hero{background:linear-gradient(135deg,#1e293b,#0f172a);color:#fff;border-radius:16px;padding:16px;margin-bottom:12px}
.pn-hero small{color:#cbd5e1;display:block}.pn-hero .big{font-size:38px;font-weight:800;letter-spacing:-.5px;line-height:1.15}
.pn-pill{display:inline-block;padding:2px 9px;border-radius:20px;font-size:13px;font-weight:700;margin:6px 6px 0 0}
.pn-pill.up{background:#dcfce7;color:#166534}.pn-pill.dn{background:#fee2e2;color:#b91c1c}
.pn-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin-bottom:12px}
@media(min-width:620px){.pn-grid{grid-template-columns:repeat(3,1fr)}}
.pn-k{background:#fff;border-radius:14px;padding:12px;box-shadow:0 1px 2px #0001}.pn-k small{color:#6b7280;display:block;font-size:12px}.pn-k b{font-size:21px}.pn-k i{font-style:normal;font-size:12px;color:#6b7280;display:block}
.pn-card{background:#fff;border-radius:16px;padding:14px;margin-bottom:12px;box-shadow:0 1px 2px #0001}.pn-card h2{font-size:16px;margin:0 0 10px}
.pn-stack{display:flex;height:16px;border-radius:8px;overflow:hidden;margin:8px 0}
.pn-leg{display:grid;gap:7px}.pn-leg div{display:flex;align-items:center;gap:8px}.pn-leg i{width:11px;height:11px;border-radius:3px;flex:0 0 auto}.pn-leg em{margin-left:auto;font-style:normal;font-weight:700}.pn-leg u{text-decoration:none;color:#6b7280;font-size:12px;width:44px;text-align:right}
.pn-bars{display:flex;align-items:flex-end;gap:2px;height:140px;position:relative;margin-top:14px}
.pn-bars .b{flex:1;background:#2563eb;border-radius:3px 3px 0 0;min-width:3px}.pn-bars .b.we{background:#f5a300}.pn-bars .b.best{background:#16a34a}.pn-bars .b.low{background:#dc2626}
.pn-avg{position:absolute;left:0;right:0;border-top:2px dashed #111;opacity:.55}.pn-avg em{position:absolute;right:0;top:-18px;font-size:11px;font-style:normal;background:#fff;padding:0 4px}
.pn-axis{display:flex;justify-content:space-between;color:#6b7280;font-size:11px;margin-top:4px}
.pn-mu{color:#6b7280;font-size:13px}
.pn-list .r{display:flex;align-items:center;gap:10px;padding:10px 0;border-bottom:1px solid #eceef3}.pn-list .r:last-child{border:0}
.pn-list .d{width:46px;text-align:center;line-height:1.1}.pn-list .d b{font-size:18px;display:block}.pn-list .d span{font-size:11px;color:#6b7280;text-transform:uppercase}
.pn-list .m{flex:1;min-width:0}.pn-list .m .bar{height:7px;border-radius:4px;background:#2563eb;margin-top:5px}.pn-list .v{font-weight:800}
.pn-seg{display:flex;background:#e8eaf0;border-radius:12px;padding:3px;margin-bottom:12px}.pn-seg button{flex:1;height:42px;border:0;border-radius:10px;background:none;font-size:14px;cursor:pointer}.pn-seg button.on{background:#fff;font-weight:700;box-shadow:0 1px 3px #0002}
.pn-t{width:100%;border-collapse:collapse;font-size:14px}.pn-t th,.pn-t td{padding:8px 4px;border-bottom:1px solid #eceef3;text-align:right}.pn-t th:first-child,.pn-t td:first-child{text-align:left}.pn-t th{color:#6b7280;font-weight:600;font-size:12px}
.pn-drawer{position:fixed;inset:0;z-index:60;display:none}.pn-drawer.on{display:block}
.pn-drawer .bk{position:absolute;inset:0;background:#0007}
.pn-drawer nav{position:absolute;left:0;top:0;bottom:0;width:78%;max-width:320px;background:#fff;padding:16px;display:flex;flex-direction:column;gap:4px;overflow:auto}
.pn-drawer nav b{font-size:12px;color:#6b7280;text-transform:uppercase;margin:12px 6px 4px}
.pn-drawer nav button{height:54px;text-align:left;border:0;border-radius:12px;background:none;font-size:17px;padding:0 12px;cursor:pointer}
.pn-drawer nav button.on{background:#f5a300;font-weight:700}

.pn-two{display:grid;grid-template-columns:1fr;gap:12px}
.pn-segcol{display:flex;flex-wrap:wrap}
.pn-col{display:none}.pn-col.on{display:block}
.pn-hero.g{background:linear-gradient(135deg,#14532d,#052e16)}
.pn-r{display:flex;align-items:center;gap:8px;padding:9px 0;border-bottom:1px solid #eceef3}.pn-r:last-child{border:0}.pn-r i{width:11px;height:11px;border-radius:3px;flex:0 0 auto}.pn-r em{margin-left:auto;font-style:normal;font-weight:700}.pn-r small{color:#6b7280;display:block;font-size:12px}
.pn-tag{font-size:11px;padding:2px 8px;border-radius:10px;background:#fef3c7;color:#92400e;font-weight:700;margin-left:auto;white-space:nowrap}.pn-tag.g{background:#dcfce7;color:#166534}.pn-tag.r{background:#fee2e2;color:#b91c1c}
.pn-diff{background:#fef9c3;color:#713f12;border-radius:12px;padding:10px 12px;font-size:14px;margin-bottom:12px}

/* ===== Tema "Report": blu navy, card pastello, angoli morbidi ===== */
:root{
  --bg:#F3F5FB; --ink:#142044; --muted:#6B7592; --line:#E6E9F4; --card:#fff;
  --navy:#142044; --accent:#3156D3; --accent-l:#E3EBFF;
  --blue:#3156D3; --blue-l:#E3EBFF; --green:#1C8D57; --green-l:#E1F4EA; --red:#C9372C; --red-l:#FDE5E2; --amber-l:#FFF1D6; --band:#E8ECF7;
  --shadow:0 1px 2px #1420440d,0 4px 14px #14204410;
}
body{background:var(--bg);color:var(--ink)}
.topbar{background:var(--navy)!important}
.rail{background:var(--navy);width:104px}
.nav{color:#CFD7F3;border-radius:14px}
.nav.on{background:var(--accent);color:#fff}
.logo{border-radius:14px}
.card{border-radius:18px;border:1px solid var(--line);box-shadow:var(--shadow)}
.kpi{border-radius:18px;border:1px solid var(--line);box-shadow:var(--shadow)}
.kpi .v{letter-spacing:-.5px}
.tile{border-radius:16px;background:var(--band)}
.tilelink{border-radius:18px;border:1px solid var(--line);box-shadow:var(--shadow);transition:transform .12s,box-shadow .12s}
.tilelink:active{transform:scale(.98)}
.tilelink.hot{background:var(--accent);border-color:var(--accent);color:#fff}
.tilelink.hot span{color:#dbe4ff}
.btn{border-radius:14px;border:2px solid var(--ink)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#fff;border-radius:16px}
.btn.amber{background:var(--accent);border-color:var(--accent);color:#fff}
.btn.ghost{border-color:var(--line);background:#fff;box-shadow:var(--shadow)}
.btn.sm,.azioni .btn{border-radius:12px}
.tab{border-radius:12px;background:#E3E8F6;color:var(--ink)}
.tab.on{background:var(--navy);color:#fff}
.tabs{gap:8px}
.input{border:2px solid var(--line);border-radius:14px}
.input:focus{border-color:var(--accent)}
.pill{background:var(--band)}
.note{border-radius:14px}
.note.amber{background:var(--amber-l);color:#7A4B00}
.modal{border-radius:22px}
table.t th{background:var(--band);color:var(--ink);font-size:13px;text-transform:none}
table.t th:first-child{border-radius:10px 0 0 10px}table.t th:last-child{border-radius:0 10px 10px 0}
table.t td{border-bottom:1px solid var(--line)}
.sumrow.tot{border-top:2px solid var(--navy)}
h1{letter-spacing:-.6px}
.head h1{font-size:30px}
/* menu laterale esteso su schermi larghi (stile Report) */
@media(min-width:1200px){
  .rail{width:232px;align-items:stretch;padding:18px 12px;gap:2px}
  .rail .logo{width:52px;margin:0 6px 18px}
  .nav{width:auto;height:48px;flex-direction:row;justify-content:flex-start;gap:12px;padding:0 14px;font-size:15px;border-radius:12px}
  .nav svg{width:22px;height:22px}
}

/* KPI pastello con icona (stile Report) */
.pn-kpis{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin-bottom:12px}
@media(min-width:900px){.pn-kpis{grid-template-columns:repeat(4,1fr)}}
.pn-kp{border-radius:18px;padding:14px;display:flex;flex-direction:column;gap:6px;border:1px solid #1420440a;min-width:0}
.pn-kp .ic{width:38px;height:38px;border-radius:50%;background:#ffffffb0;display:grid;place-items:center;font-size:19px}
.pn-kp small{color:var(--muted);font-size:13px;font-weight:600}
.pn-kp b{font-size:clamp(20px,2.4vw,28px);letter-spacing:-.5px;line-height:1.1;white-space:nowrap}
.pn-kp .d{font-size:12px;font-weight:800}.pn-kp .d.up{color:#1c8d57}.pn-kp .d.dn{color:#c9372c}.pn-kp .d.nd{color:var(--muted);font-weight:600}
.pn-kp.k1{background:#e9f0ff}.pn-kp.k2{background:#f0eaff}.pn-kp.k3{background:#e4f6ec}.pn-kp.k4{background:#fdeee0}.pn-kp.k5{background:#e3f5ee}.pn-kp.k6{background:#fff3df}.pn-kp.k7{background:#ece9ff}.pn-kp.k8{background:#ffe8ea}
.pn-chrow{display:grid;grid-template-columns:1fr;gap:12px;margin-bottom:12px}@media(min-width:900px){.pn-chrow{grid-template-columns:1.6fr 1fr}}
.pn-ch{display:flex;align-items:flex-end;gap:5px;height:170px;border-bottom:1px solid var(--line);padding-top:6px}
.pn-ch .g{flex:1;display:flex;align-items:flex-end;gap:2px;height:100%}.pn-ch .g i{flex:1;border-radius:3px 3px 0 0;display:block;min-width:2px}.pn-ch .g.cur{background:#f3f5fb;border-radius:6px}
.pn-lab{display:flex;gap:5px;font-size:11px;color:var(--muted);margin-top:4px}.pn-lab span{flex:1;text-align:center}.pn-lab .cur{font-weight:800;color:var(--ink)}
.pn-donut{display:grid;place-items:center;margin:4px 0 10px}.pn-dn2{width:170px;height:170px;border-radius:50%;display:grid;place-items:center}.pn-dn2 div{width:112px;height:112px;border-radius:50%;background:#fff;display:grid;place-items:center;align-content:center;text-align:center;font-weight:800;font-size:17px;line-height:1.1}.pn-dn2 small{display:block;font-weight:500;font-size:12px;color:var(--muted)}
.pn-t th.h1{background:#e3ebff}.pn-t th.h2{background:#ece6ff}.pn-t th.h3{background:#e0f4e8}.pn-t th.h4{background:#fde9d7}.pn-t th.h5{background:#e8ecf7}.pn-t th.h6{background:#e3f1ff}
.pn-t tr.cur td{background:#eef1fb;font-weight:800}
.pn-tw{overflow:auto}.pn-tw .pn-t{min-width:640px}
/* Risultato del giorno: KPI pastello con icona */
#riCorpo .grid.g4>.kpi{border:1px solid #1420440a;position:relative;padding-top:64px}
#riCorpo .grid.g4>.kpi::before{position:absolute;left:18px;top:14px;width:38px;height:38px;border-radius:50%;background:#ffffffb0;display:grid;place-items:center;font-size:19px}
#riCorpo .grid.g4>.kpi:nth-child(1){background:#ffe8ea}#riCorpo .grid.g4>.kpi:nth-child(1)::before{content:"🧾"}
#riCorpo .grid.g4>.kpi:nth-child(2){background:#e9f0ff}#riCorpo .grid.g4>.kpi:nth-child(2)::before{content:"💶"}
#riCorpo .grid.g4>.kpi:nth-child(3){background:#f0eaff}#riCorpo .grid.g4>.kpi:nth-child(3)::before{content:"🛒"}
#riCorpo .grid.g4>.kpi:nth-child(4){background:#e4f6ec}#riCorpo .grid.g4>.kpi:nth-child(4)::before{content:"🌐"}
#riCorpo .grid.g4>.kpi:nth-child(5){background:#fdeee0}#riCorpo .grid.g4>.kpi:nth-child(5)::before{content:"🎫"}
#riCorpo .grid.g4>.kpi:nth-child(6){background:#fff3df}#riCorpo .grid.g4>.kpi:nth-child(6)::before{content:"💰"}

/* Abbonati e Clienti */
.targa{display:inline-block;font:800 13px/1 ui-monospace,Menlo,monospace;letter-spacing:1px;background:#fff;color:#142044;border:1.5px solid #142044;border-radius:6px;padding:4px 7px 4px 16px;position:relative;margin-right:2px}
.targa::before{content:"I";position:absolute;left:0;top:0;bottom:0;width:11px;background:#2a4fc7;color:#fff;font:700 7px/1 system-ui;display:grid;place-items:end center;padding-bottom:2px;border-radius:4px 0 0 4px}
.targhe{display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;align-items:center}
.ab-av{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;font-weight:800;flex-shrink:0;background:#e9f0ff;color:#3156d3}
.ab-av.big{width:62px;height:62px;font-size:21px}
.ab-av.st-attivo{background:#e4f6ec;color:#1c8d57}.ab-av.st-in_scadenza{background:#fff3df;color:#b7791f}.ab-av.st-scaduto{background:#ffe8ea;color:#c9372c}
.ab-av.az{background:#ece9ff;color:#5b3fd0}.ab-av.pv{background:#fdeee0;color:#c0691c}
.ab-item{border-left:5px solid var(--line)}.ab-item.st-attivo{border-left-color:#3fae78}.ab-item.st-in_scadenza{border-left-color:#f2a05c}.ab-item.st-scaduto{border-left-color:#e5484d}
.ab-item.sel{border-color:var(--accent);box-shadow:0 0 0 2px #3156d333}
.cl-item,.ab-item{box-shadow:var(--shadow)}
.ab-head{gap:14px;justify-content:flex-start!important}
.ab-sec{display:flex;align-items:center;gap:8px;font-weight:800;font-size:16px;padding:8px 0 2px;border-top:1px solid var(--line);margin-top:6px}
.ab-sec span{width:30px;height:30px;border-radius:50%;background:#e9f0ff;display:grid;place-items:center;font-size:15px}
.cl-hero{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:12px;background:linear-gradient(135deg,#f3f5fb,#e9f0ff)}

/* KPI pastello generici (Fatture, ecc.) */
.grid.g4>.kpi.compatto{border:1px solid #1420440a}
.grid.g4>.kpi.compatto:nth-child(4n+1){background:#e9f0ff}.grid.g4>.kpi.compatto:nth-child(4n+2){background:#f0eaff}.grid.g4>.kpi.compatto:nth-child(4n+3){background:#e4f6ec}.grid.g4>.kpi.compatto:nth-child(4n+4){background:#fdeee0}
.grid.g4>.kpi.compatto .v{font-weight:900;letter-spacing:-.5px}
/* Noleggio bici e Bagagli */
.bk-card{border-left:5px solid var(--line);box-shadow:var(--shadow)}
.bk-card.st-confermata,.bk-card.st-in_attesa{border-left-color:#f2a05c}.bk-card.st-ritirata,.bk-card.st-in_deposito{border-left-color:#3156d3}.bk-card.st-riconsegnata,.bk-card.st-ritirato{border-left-color:#3fae78}.bk-card.st-annullata,.bk-card.st-annullato{border-left-color:#b5bccf}.bk-card.st-scaduto{border-left-color:#e5484d}
.bi-r>.card{position:relative;padding:14px 14px 14px 64px;border:1px solid #1420440a;min-height:72px}
.bi-r>.card::before{position:absolute;left:14px;top:50%;transform:translateY(-50%);width:38px;height:38px;border-radius:50%;background:#ffffffb0;display:grid;place-items:center;font-size:19px}
.bi-r>.card:nth-of-type(1){background:#e9f0ff}.bi-r>.card:nth-of-type(2){background:#e4f6ec}.bi-r>.card:nth-of-type(3){background:#fff3df}.bi-r>.card:nth-of-type(4){background:#f0eaff}.bi-r>.card:nth-of-type(5){background:#ffe8ea}
#biciPage .bi-r>.card:nth-of-type(1)::before{content:"📋"}#biciPage .bi-r>.card:nth-of-type(2)::before{content:"🚲"}#biciPage .bi-r>.card:nth-of-type(3)::before{content:"💶"}#biciPage .bi-r>.card:nth-of-type(4)::before{content:"🛞"}#biciPage .bi-r>.card:nth-of-type(5)::before{content:"🗓️"}
#bagPage .bi-r>.card:nth-of-type(1)::before{content:"🧳"}#bagPage .bi-r>.card:nth-of-type(2)::before{content:"📦"}#bagPage .bi-r>.card:nth-of-type(3)::before{content:"⚠️"}#bagPage .bi-r>.card:nth-of-type(4)::before{content:"💶"}

/* Prenotazioni */
.prenriga{border-left:5px solid var(--line);border-radius:14px;margin:6px 0;padding-left:14px;background:#fff;box-shadow:var(--shadow);border-bottom:0!important}
.prenriga.st-arrivata{border-left-color:#3156d3}.prenriga.st-da_confermare{border-left-color:#f2a05c}.prenriga.st-attesa{border-left-color:#3fae78}.prenriga.st-uscita,.prenriga.st-partita,.prenriga.st-conclusa{border-left-color:#3fae78}.prenriga.st-annullata{border-left-color:#e5484d;opacity:.6}
.prenriga .pr-a b{display:inline-block;background:#e9f0ff;color:#3156d3;border-radius:999px;padding:3px 12px;font-size:14px}
.prenriga .pr-d b{color:#142044}
#prcorpo .kpi.compatto{border:1px solid #1420440a}
#prcorpo .kpi.compatto:nth-of-type(3n+1){background:#e9f0ff}#prcorpo .kpi.compatto:nth-of-type(3n+2){background:#fdeee0}#prcorpo .kpi.compatto:nth-of-type(3n+3){background:#e4f6ec}
#prcorpo>.card{background:transparent;box-shadow:none;border:0;padding:0!important}

/* Risultato: KPI in colonna con icona a sinistra (anche su telefono) */
#riCorpo .grid.g4>.kpi{padding:14px 16px 14px 70px!important;display:flex!important;flex-direction:column!important;align-items:flex-start!important;justify-content:center!important;gap:2px!important;min-height:84px}
#riCorpo .grid.g4>.kpi::before{top:50%!important;transform:translateY(-50%)}
#riCorpo .grid.g4>.kpi .v{font-size:28px!important}

/* Pagine operative: ZTL, Chiusura cassa, Cassa privata, Sospesi, Partenze, Transitate, Auto e incassi */
.grid.g2>.kpi,.grid.g3>.kpi,.grid.g4>.kpi:not(.compatto){border:1px solid #1420440a;border-radius:18px}
.grid.g3>.kpi:nth-child(3n+1),.grid.g2>.kpi:nth-child(2n+1),.grid.g4>.kpi:not(.compatto):nth-child(4n+1){background:#e9f0ff}
.grid.g3>.kpi:nth-child(3n+2),.grid.g2>.kpi:nth-child(2n+2),.grid.g4>.kpi:not(.compatto):nth-child(4n+2){background:#fdeee0}
.grid.g3>.kpi:nth-child(3n+3),.grid.g4>.kpi:not(.compatto):nth-child(4n+3){background:#e4f6ec}
.grid.g4>.kpi:not(.compatto):nth-child(4n+4){background:#f0eaff}
.grid.g2>.tile,.grid.g3>.tile{border:1px solid #1420440a;border-radius:18px;padding:14px 18px}
.grid.g2>.tile:nth-child(2n+1),.grid.g3>.tile:nth-child(3n+1){background:#e4f6ec}
.grid.g2>.tile:nth-child(2n+2),.grid.g3>.tile:nth-child(3n+2){background:#e9f0ff}
.grid.g3>.tile:nth-child(3n+3){background:#fdeee0}
.grid>.tile .big{font-weight:900;letter-spacing:-.5px}
.zkpi{border-radius:18px!important;border:1px solid #1420440a!important}
.zkpi:nth-child(4n+1){background:#e9f0ff}.zkpi:nth-child(4n+2){background:#e4f6ec}.zkpi:nth-child(4n+3){background:#fdeee0}.zkpi:nth-child(4n+4){background:#f0eaff}
.zkpi>div:nth-child(2){font-weight:900!important;letter-spacing:-.5px}
.card>div[style*="font-size:18px;font-weight:800"]:first-child{display:flex;align-items:center;gap:10px}
.card>div[style*="font-size:18px;font-weight:800"]:first-child::before{content:"";width:6px;height:20px;border-radius:3px;background:var(--accent);flex-shrink:0}
a.sumrow:hover,button.sumrow:hover{background:var(--band);border-radius:10px}
table.t tbody tr:hover td{background:#f6f8fe}

/* Impostazioni e bici */
.imp-tabs{flex-wrap:nowrap;overflow-x:auto;gap:6px;padding:6px;background:#fff;border:1px solid var(--line);border-radius:18px;box-shadow:var(--shadow);scrollbar-width:none;margin-bottom:14px}
.imp-tabs::-webkit-scrollbar{display:none}
.imp-tabs .tab{flex:none;height:44px;border-radius:12px;white-space:nowrap}
.imp-tabs .tab.on{background:var(--navy);color:#fff}
.bk-st{display:inline-block;margin-top:4px;padding:5px 12px;border-radius:999px;font-weight:800;font-size:13px;background:#e8ecf7;color:#142044}
.bk-st.st-confermata,.bk-st.st-in_attesa{background:#fff3df;color:#8a5a00}.bk-st.st-ritirata{background:#e9f0ff;color:#3156d3}.bk-st.st-riconsegnata{background:#e4f6ec;color:#1c8d57}.bk-st.st-annullata{background:#ffe8ea;color:#c9372c}
.imp-tabswrap~.col>.card,.imp-tabswrap~div .card{border-radius:18px}
/* fix: schede laterali bici/bagagli, testo non sopra l'icona */
.bi-r>.card{padding:14px 14px 14px 68px!important;display:flex!important;flex-direction:column!important;justify-content:center!important;align-items:flex-start!important;gap:2px!important;min-height:78px!important}
.bi-r>.card .muted{font-size:15px;line-height:1.2}
.bi-r>.card .big{font-size:30px!important;line-height:1.05!important}
.bi-r>.card::before{left:16px!important}

.dd{font-size:11px;font-weight:800;margin-left:2px}.dd.up{color:#1c8d57}.dd.dn{color:#c9372c}
.pn-t tr[data-act]{cursor:pointer}.pn-t tr[data-act]:hover td{background:#eef1fb}
.pn-t td{vertical-align:top}
.pn-ch2{display:flex;align-items:flex-end;gap:6px;height:170px;border-bottom:1px solid var(--line);padding-top:6px}
.pn-ch2 .g{flex:1;display:flex;align-items:flex-end;gap:2px;height:100%;border-radius:6px}.pn-ch2 .g.cur{background:#f3f5fb}
.pn-ch2 .g i{flex:1;display:block;border-radius:3px 3px 0 0;min-width:3px}.pn-ch2 .g i.a{background:#3156d3}.pn-ch2 .g i.b{background:#c9d3f3}
.dsub{display:block;font-size:11px;font-weight:600;color:var(--muted);white-space:nowrap;line-height:1.35}

/* Dettaglio mensile (tabella unica) */
.dm-card{background:#fff;border-radius:18px;box-shadow:var(--shadow);border:1px solid #14204414;margin-bottom:12px;overflow:hidden}
.dm-top{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:14px 16px 8px;flex-wrap:wrap}.dm-top b{font-size:18px}
.dm-tg{display:flex;border:1px solid var(--line);border-radius:10px;padding:3px;background:#fff}.dm-tg button{height:34px;padding:0 14px;border-radius:8px;font-weight:700;font-size:14px;color:var(--ink);background:transparent;border:0}.dm-tg button.on{background:var(--navy);color:#fff}
table.dm{width:100%;border-collapse:collapse;font-size:13.5px;min-width:980px}
table.dm th{padding:8px 8px;text-align:center;font-weight:800;border-left:1px solid #fff;background:#f3f5fb}
table.dm tr.sub th{background:#f7f8fc;font-size:12px;font-weight:600;color:var(--muted);padding:5px 8px}
table.dm th.g1{background:#e3ebff;color:#2748cf}table.dm th.g2{background:#e0f4e8;color:#1c6b43}table.dm th.g3{background:#fde9d7;color:#8a4b12}
table.dm th.t1{background:#e3f1ff;color:#2748cf}table.dm th.t2{background:#e0f4e8;color:#1c6b43}table.dm th.t3{background:#fff3cf;color:#8a6a00}table.dm th.t4{background:#ece6ff;color:#5b3fd0}
table.dm td{padding:7px 10px;text-align:right;border-top:1px solid var(--line);white-space:nowrap}
table.dm td.m,table.dm th.m{text-align:left;font-weight:700;position:sticky;left:0;background:#fff}
table.dm th.m{background:#f3f5fb}
table.dm td.t1{color:#2748cf;font-weight:700}
table.dm tr[data-act]{cursor:pointer}table.dm tr[data-act]:hover td{background:#f6f8fe}
table.dm tr.cur td{background:#eef1fb;font-weight:800}
table.dm th.g4{background:#ece6ff;color:#5b3fd0}table.dm{min-width:1180px}

/* Partenze: la targa non deve restare larga 260px (la regola sopra colpiva tutti i div con «width:» nello stile) */
#partPage .sumrow>div.pt-plate{width:auto !important;max-width:100%;min-width:0}
#partPage .sumrow>div.pt-plate .plate.sm{width:max-content;max-width:100%}

/* Clienti: i pulsanti in alto non vanno a capo lettera per lettera */
.cli-tools .btn{white-space:nowrap;flex:none}
.cli-tools .search{flex:1 1 220px;min-width:200px}

/* il pulsante Home sta sempre a destra */
.topbar .tb-home{margin-left:auto !important}

/* barra in alto: il titolo occupa lo spazio libero, quindi Home e i pulsanti di stampa stanno tutti a destra */
.topbar .tb-title{flex:1 1 auto;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.topbar .tb-home,.topbar .tb-print,.topbar .tb-esci{flex:none;margin-left:0 !important}
.topbar .tb-print{display:flex;gap:8px}
.topbar .tb-print[hidden]{display:none}

/* Home operatore su tablet: tutto in una schermata, senza scroll */
@media (min-width:768px){
  .con-statbar{padding-top:8px !important;padding-bottom:96px}
  .con-statbar .grid.g4{gap:12px;row-gap:12px}
  .con-statbar .tilelink{min-height:112px;padding:12px 18px;column-gap:14px}
  .con-statbar .tilelink .tl-ic{font-size:44px}
  .con-statbar .tilelink .tl-ic svg{width:44px;height:44px}
  .con-statbar .tilelink b{font-size:24px}
  .con-statbar .statbar .sb,.statbar .sb{padding:8px 16px}
  .statbar .sb .v{font-size:36px}
}

/* Ingresso e Uscita su tablet: mai scroll */
@media (min-width:768px){
  .main:has(#ingPage),.main:has(#uscPage){overflow-y:hidden}
}

/* Tastiera: stile A (chiara, grigia, tasti rosa) e B (scura) + colonna OFF / invio */
#tastiera .tmid{width:84px;display:flex;flex-direction:column;gap:7px}
#tastiera .tmid .tk{max-width:none;flex:none;height:68px;font-size:24px}
#tastiera .tmid .tk.ok{flex:1;height:auto;font-size:40px}
#tastiera{background:#a9acb4}
#tastiera .tk{background:#fff;border-radius:8px}
#tastiera .tk.spec,#tastiera .tk.ok{background:#f0b9a6}
#tastiera .tmid .tk.spec{background:#c9ccd3;font-size:20px}
#tastiera.scura{background:#172033}
#tastiera.scura .tk{background:#2b3650;color:#e8ecf4}
#tastiera.scura .tk:active{background:#3a4766}
#tastiera.scura .tk.spec,#tastiera.scura .tk.ok{background:#e8923a;color:#1a1206}
#tastiera.scura .tmid .tk.spec{background:#3a4766;color:#e8ecf4}
#tastiera.scura .tk.on{outline-color:#fff}
#tastiera .tcol{width:260px}
#tastiera .tcol .tk{height:68px}

/* Impostazioni: frecce per scorrere le schede */
.imp-tabswrap{position:relative;margin-bottom:14px}
.imp-tabswrap .imp-tabs{margin-bottom:0}
.imp-fr{position:absolute;top:6px;bottom:6px;z-index:2;width:44px;display:none;align-items:center;justify-content:center;border:0;border-radius:12px;background:#fff;color:var(--ink);font-size:30px;font-weight:800;line-height:1;cursor:pointer;box-shadow:0 0 10px 8px #fff}
.imp-fr-sx{left:6px}.imp-fr-dx{right:6px}
.imp-fr:hover{background:#E3E8F6}

/* Targhe piccole (Partenze, Uscita, liste): la «I» sulla fascia blu è grande e centrata, come in Ingresso */
.plate.sm .eu{align-items:center !important;padding-bottom:0 !important;font-size:24px !important;line-height:1}
#partPage .plate.sm .eu,#csPage .plate.sm .eu,#depPage .plate.sm .eu,.usc-lista .plate.sm .eu,#uscPage .plate .eu{align-items:center !important;padding-bottom:0 !important;font-size:34px !important;width:46px !important;line-height:1}

/* Pulsanti Stampa prenotazioni / partenze nella barra in alto: blu pieno */
.topbar .tb-print button{background:#2748CF;border-color:#2748CF;color:#fff}
.topbar .tb-print button:active{background:#1E3AA8;border-color:#1E3AA8}

/* Niente barra di scorrimento laterale (tablet, telefono, desktop): si scorre comunque */
*{scrollbar-width:none;-ms-overflow-style:none}
*::-webkit-scrollbar{display:none;width:0;height:0}

/* Titolo (e ricerca) della pagina fissi in alto: scorre solo il contenuto sotto */
.main{--mp:28px}
@media (max-width:820px){.main{--mp:18px}}
@media (max-width:480px){.main{--mp:14px}}
@media (min-width:768px){.main:has(#uscPage){--mp:8px}}
.page>.head:first-child{position:sticky;top:calc(var(--mp)*-1);margin-top:calc(var(--mp)*-1);padding:var(--mp) 0 10px;z-index:20;background:var(--bg)}

/* Risultato del giorno: filtri e date accanto al titolo */
.risfiltri{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-end;gap:8px}
.risfiltri .tab{flex:none;padding:0 14px;height:46px}
.risfiltri label{font-weight:700;color:var(--muted,#667);font-size:14px;margin-left:4px}
.risfiltri .datafisso{width:150px;flex:none;height:46px;padding:0 8px;font-size:16px}
@media(max-width:820px){.risfiltri{justify-content:flex-start}}
.risfiltri .rfd{display:flex;align-items:center;gap:6px}

/* Storico e costi: viste come tessere */
.pn-tiles{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.pn-tile{height:50px;display:flex;align-items:center;gap:10px;padding:0 12px;border-radius:14px;border:1px solid var(--line,#d9dce3);background:var(--card,#fff);font:inherit;font-weight:700;font-size:15px;line-height:1.1;text-align:left;cursor:pointer;color:var(--ink)}
.pn-tile svg{flex:none}
.pn-tile.on{background:#2748CF;border-color:#2748CF;color:#fff}
.page.pn .fissa .pn-sel{margin:0}
@media(max-width:600px){.pn-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* icone di stato nella barra in alto (Home): pillola unica, centrata tra Home e data */
.tb-stato{position:absolute;left:27%;top:50%;transform:translate(-50%,-50%);display:flex;align-items:center;gap:14px;height:40px;padding:0 16px;border-radius:999px;background:rgba(0,0,0,.28);border:1px solid rgba(255,255,255,.22)}
.tb-stato[hidden]{display:none}
.tbs{border:0;background:none;padding:6px 0;cursor:pointer;display:flex;align-items:center;color:#9FAAC4}
.tbs.ok{color:#4FD1A0}.tbs.no{color:#FF6B6B}
@media(max-width:860px){.tb-stato{position:static;transform:none;margin-left:8px;gap:10px;padding:0 10px}}
/* Dettaglio mensile: la scelta attiva (Numero auto / Incassi / Confronto) deve vedersi bene */
.dm-tg button.on{background:#2748CF !important;color:#fff !important;box-shadow:0 1px 4px #0004}
.dm-tg button{min-width:110px}

/* Home a icone: C = verticale al centro, F = icona in alto a sinistra con barra colorata */
html.homeC .homegrid,html.homeF .homegrid{grid-template-columns:repeat(6,minmax(0,1fr));gap:12px}
@media(max-width:1100px){html.homeC .homegrid,html.homeF .homegrid{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:700px){html.homeC .homegrid,html.homeF .homegrid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}}
html.homeC .homegrid .tilelink,html.homeF .homegrid .tilelink{display:flex;flex-direction:column;min-height:112px;padding:10px 8px;border-radius:18px}
@media(max-width:700px){html.homeC .homegrid .tilelink,html.homeF .homegrid .tilelink{min-height:96px}}
html.homeC .homegrid .tilelink{align-items:center;justify-content:center;text-align:center;gap:10px}
html.homeF .homegrid .tilelink{align-items:flex-start;justify-content:space-between;text-align:left;padding:14px;overflow:hidden;border-top:3px solid var(--g,#9aa3b5)}
html.homeC .homegrid .tilelink .tl-ic,html.homeF .homegrid .tilelink .tl-ic{display:grid;place-items:center;line-height:0;color:var(--g)}
html.homeC .homegrid .tilelink b,html.homeF .homegrid .tilelink b{font-size:15px;line-height:1.15}
.homegrid .tilelink[data-g=mov]{--g:#16a34a}.homegrid .tilelink[data-g=sol]{--g:#d98a00}.homegrid .tilelink[data-g=ana]{--g:#2563eb}
html.scuro .homegrid .tilelink[data-g=mov]{--g:#4FD1A0}html.scuro .homegrid .tilelink[data-g=sol]{--g:#F4B63F}html.scuro .homegrid .tilelink[data-g=ana]{--g:#7FAAF8}
html.homeC .homegrid .tilelink.hot .tl-ic,html.homeF .homegrid .tilelink.hot .tl-ic{color:#fff}
html.homeF .homegrid .tilelink.hot{border-top-color:#fff}
/* Storico e costi: tutta la pagina scorre, intestazione compresa */
.page.pn .fissa{position:static;margin-top:0;padding:0 0 10px}
