*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
:root{
  /* ── COLORE ── superficie neutra fredda da console operativa, un solo accento (rosso, brand RAEE) usato con parsimonia */
  --bg:#f0f1f4;--surface:#fff;--sf2:#f5f6f8;--sf3:#eef0f2;--bd:#e4e6ea;--bd2:#d0d3d8;
  --tx:#22242b;--tx2:#5c5f68;--tx3:#94979f;
  --red:#c53939;--redd:#a52f2f;--redl:#fbeeee;
  --amb:#c17a1f;--ambl:#fdf6ec;
  --grn:#3f8a5c;--grnl:#eff6f1;
  --blu:#3f6fb5;--blul:#eff3f9;
  --vlt:#7c73a8;--vltl:#f3f2f8;
  /* ── BARRA SCURA (topbar/nav) — struttura seria, un solo accento rosso, toni più tenui ── */
  --dk:#26272b;--dk2:#323337;--dktx:#ededee;--dktx2:#a3a5ab;--dkbd:#3d3e42;
  /* ── FORMA ── */
  --r:14px;--rs:10px;--rxs:6px;
  --sh:0 1px 2px rgba(17,18,26,.05),0 0 0 1px rgba(17,18,26,.04);
  --shm:0 12px 32px rgba(17,18,26,.12),0 0 0 1px rgba(17,18,26,.04);
  --tr:.15s ease;--sw:412px;
  /* ── SPAZIATURA ── scala 4/8/12/16/20/28/36 */
  --sp1:4px;--sp2:8px;--sp3:12px;--sp4:16px;--sp5:20px;--sp6:28px;--sp7:36px;
  --f:'Inter Tight',system-ui,sans-serif;--m:'JetBrains Mono',monospace
}
html,body{height:100%}
body.booting{visibility:hidden}
body{font-family:var(--f);font-size:14px;color:var(--tx);
  background:var(--bg);
  display:flex;flex-direction:column;overflow:hidden;line-height:1.45;
  -webkit-font-smoothing:antialiased}
::-webkit-scrollbar{width:6px;height:6px}
::-webkit-scrollbar-track{background:transparent}
::-webkit-scrollbar-thumb{background:var(--bd2);border-radius:4px}
:focus-visible{outline:2px solid var(--red);outline-offset:2px}

/* ════════════════════ BARRA SUPERIORE ════════════════════
   Solo indicatori: marchio, selettore giorno, stato cloud, impostazioni.
   Nessun contenuto compilabile qui — tutto il resto vive nell'area sotto,
   a piena larghezza. */
#topbar{background:var(--dk);border-bottom:1px solid var(--dkbd);
  padding:14px 24px;display:flex;align-items:center;gap:14px 22px;flex-wrap:wrap;
  flex-shrink:0}
.tb-brand{flex-shrink:0}
.sb-brand{font-size:10px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--red);margin-bottom:4px;display:flex;align-items:center;gap:5px}
.sb-tit{font-size:17px;font-weight:700;margin-bottom:0;letter-spacing:-.01em;color:var(--dktx)}

.day-sw{display:flex;gap:4px;background:var(--dk2);border-radius:var(--rs);padding:4px;flex-shrink:0;width:auto;min-width:280px}
.day-btn{flex:1;padding:9px 10px;font-family:var(--f);font-size:12.5px;font-weight:600;touch-action:manipulation;
  border:none;background:transparent;border-radius:var(--rxs);white-space:nowrap;
  cursor:pointer;transition:var(--tr);color:var(--dktx2)}
.day-btn:hover{color:var(--dktx)}
.day-btn.active{background:var(--red);color:#fff;font-weight:700}
#cdp{width:auto;padding:8px 10px;font-family:var(--f);font-size:13px;
  border:1.5px solid var(--dkbd);border-radius:var(--rs);color:var(--dktx);background:var(--dk2);flex-shrink:0}
.cloud-bar{display:flex;align-items:center;gap:7px;font-size:12px;color:var(--dktx2);padding:7px 10px;
  background:var(--dk2);border-radius:var(--rs);border:1px solid var(--dkbd);flex-shrink:0}
.cdot{width:7px;height:7px;border-radius:50%;background:#5a5d64;flex-shrink:0;transition:var(--tr)}
.cdot.ok{background:var(--grn)}.cdot.sy{background:var(--amb)}.cdot.er{background:var(--red)}
#cr-btn{margin-left:2px;background:none;border:none;cursor:pointer;font-size:14px;color:var(--dktx2);padding:2px;transition:var(--tr)}
#cr-btn:hover{color:#fff}
#settings-btn{margin-left:auto;width:38px;height:38px;border:1.5px solid var(--dkbd);border-radius:var(--rs);
  background:var(--dk2);cursor:pointer;font-size:16px;display:flex;align-items:center;justify-content:center;
  color:var(--dktx2);transition:var(--tr);flex-shrink:0}
#settings-btn:hover{border-color:var(--red);color:#fff}

.user-chip{display:flex;align-items:center;gap:6px;padding:7px 10px;background:var(--dk2);
  border-radius:var(--rs);border:1px solid var(--dkbd);font-size:11.5px;color:var(--dktx2);
  flex-shrink:0;margin-left:auto}
.user-chip #user-email{max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:600;color:var(--dktx)}
#logout-btn{background:none;border:none;cursor:pointer;font-size:14px;color:var(--dktx2);padding:0;transition:var(--tr)}
#logout-btn:hover{color:var(--red)}
/* Quando c'è la chip utente, l'ingranaggio non deve avere anche lui margin-left:auto */
.user-chip + #settings-btn{margin-left:0}

/* ── SCHERMATA DI LOGIN ── */
#login-screen{position:fixed;inset:0;background:var(--dk);z-index:2000;
  display:none;align-items:center;justify-content:center;padding:20px}
.login-card{background:var(--surface);border:1px solid var(--bd);border-radius:var(--r);
  padding:32px 28px;width:100%;max-width:380px}

.save-btn{width:100%;padding:11px;border:none;border-radius:var(--rs);font-family:var(--f);font-size:13.5px;
  font-weight:700;background:var(--red);color:#fff;cursor:pointer;transition:var(--tr);margin-bottom:6px}
.save-btn:hover{background:var(--redd)}
details.bk{font-size:12px;color:var(--tx3)}
details.bk summary{cursor:pointer;user-select:none;padding:2px 0;font-weight:600}
.bkb{display:flex;gap:5px;margin-top:7px}
.bkbtn{flex:1;padding:7px 8px;font-family:var(--f);font-size:11.5px;font-weight:600;
  border:1.5px solid var(--bd);border-radius:var(--rs);background:var(--surface);
  color:var(--tx2);cursor:pointer;transition:var(--tr)}
.bkbtn:hover{border-color:var(--red);color:var(--red)}

/* ── NAVIGAZIONE ── riga di tab a piena larghezza: sono solo indicatori
   di dove premere, tutto il contenuto compilabile sta sotto, a tutta pagina */
#navtabs{display:flex;gap:2px;border-bottom:1px solid var(--dkbd);flex-shrink:0;background:var(--dk);
  padding:0 24px;overflow-x:auto;scrollbar-width:none}
#navtabs::-webkit-scrollbar{display:none}
.tab-btn{padding:13px 18px;font-family:var(--f);font-size:12.5px;font-weight:600;white-space:nowrap;
  border:none;background:none;cursor:pointer;color:var(--dktx2);transition:var(--tr);
  border-bottom:2.5px solid transparent;text-align:center;border-radius:var(--rxs) var(--rxs) 0 0;flex-shrink:0}
.tab-btn:hover{color:var(--dktx);background:rgba(255,255,255,.05)}
.tab-btn.active{color:#fff;border-bottom-color:var(--red);background:var(--dk2);font-weight:700}
.tc{display:inline-flex;align-items:center;justify-content:center;min-width:17px;height:17px;
  padding:0 5px;font-size:9.5px;font-weight:700;border-radius:9px;background:var(--dkbd);
  color:var(--dktx2);margin-left:5px;vertical-align:middle}
.tab-btn.active .tc{background:var(--red);color:#fff}

.tab-dd{position:relative;flex-shrink:0}
#tab-dd-btn.active{color:#fff;border-bottom-color:var(--red);background:var(--dk2);font-weight:700}
.tab-dd-menu{position:fixed;background:var(--surface);
  border:1.5px solid var(--bd);border-radius:var(--rs);box-shadow:var(--shm);
  min-width:200px;padding:6px;display:none;z-index:500}
.tab-dd-menu.open{display:block}
.tab-dd-item{display:flex;align-items:center;gap:6px;width:100%;padding:10px 12px;
  font-family:var(--f);font-size:12.5px;font-weight:600;border:none;background:none;
  cursor:pointer;color:var(--tx2);border-radius:var(--rxs);text-align:left;transition:var(--tr)}
.tab-dd-item:hover{background:var(--sf2);color:var(--tx)}
.tab-dd-item.active{background:var(--redl);color:var(--red);font-weight:800}
.tab-dd-item .tc{margin-left:auto}

/* ════════════════════ CONTENUTO — piena pagina ════════════════════ */
#content{flex:1;overflow-y:auto;background:var(--sf3);-webkit-overflow-scrolling:touch}
.content-inner{max-width:1160px;margin:0 auto;padding:28px 24px 60px}
.tab-pane{display:none}.tab-pane.active{display:block}


/* ════════════════════ FORM ════════════════════ */
.stit{font-size:11px;font-weight:800;letter-spacing:.1em;text-transform:uppercase;
  color:var(--red);margin-bottom:14px;padding-bottom:8px;
  border-bottom:2px solid var(--bd);display:flex;align-items:center;gap:6px}
.fg{margin-bottom:13px}
.fg label{display:block;font-size:11px;font-weight:700;color:var(--tx2);margin-bottom:5px;
  text-transform:uppercase;letter-spacing:.04em}
.fg input,.fg select,.fg textarea{width:100%;padding:10px 12px;border:1.5px solid var(--bd);
  border-radius:var(--rs);font-family:var(--f);font-size:13.5px;color:var(--tx);
  background:var(--surface);transition:var(--tr);outline:none}
.fg input:focus,.fg select:focus,.fg textarea:focus{border-color:var(--red);box-shadow:0 0 0 3px rgba(220,38,38,.1)}
.fg textarea{resize:vertical;min-height:56px}
.fr{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.fr3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px}

.btn-p{width:100%;padding:13px;border:none;border-radius:var(--rs);font-family:var(--f);touch-action:manipulation;
  font-size:14px;font-weight:700;background:var(--red);color:#fff;cursor:pointer;transition:var(--tr);
  box-shadow:0 2px 6px rgba(220,38,38,.22)}
.btn-p:hover{background:var(--redd);box-shadow:0 4px 10px rgba(220,38,38,.28)}
.btn-s{padding:9px 16px;border:1.5px solid var(--bd);border-radius:var(--rs);font-family:var(--f);touch-action:manipulation;
  font-size:12.5px;font-weight:600;background:var(--surface);color:var(--tx2);cursor:pointer;transition:var(--tr)}
.btn-s:hover{border-color:var(--red);color:var(--red);background:var(--redl)}
.btn-i{width:28px;height:28px;border:none;border-radius:var(--rxs);background:none;cursor:pointer;font-size:13px;
  display:inline-flex;align-items:center;justify-content:center;color:var(--tx3);transition:var(--tr)}
.btn-i:hover{background:var(--sf2);color:var(--tx)}.btn-i.del:hover{background:var(--redl);color:var(--red)}

/* ════════════════════ CARDS ════════════════════ */
.card{background:var(--surface);border:1.5px solid var(--bd);border-radius:var(--r);
  padding:14px 16px;margin-bottom:10px;box-shadow:var(--sh);transition:var(--tr)}
.card:hover{border-color:var(--bd2);box-shadow:var(--shm)}
.card-h{display:flex;align-items:flex-start;gap:8px;margin-bottom:5px}
.card-t{font-size:13.5px;font-weight:700;flex:1}
.card-m{font-size:11.5px;color:var(--tx3);margin-top:2px}
.card-a{display:flex;gap:2px;flex-shrink:0}
.prio-alta{border-left:4px solid var(--red)!important}
.prio-normale{border-left:4px solid #94a3b8!important}
.prio-bassa{border-left:4px solid #86efac!important}

/* ════════════════════ BADGES ── pillola, più leggibili ════════════════════ */
.badge{display:inline-flex;align-items:center;padding:3px 9px;font-size:10px;font-weight:700;border-radius:20px;letter-spacing:.02em}
.br{background:var(--redl);color:var(--red)}.ba{background:var(--ambl);color:var(--amb)}
.bg{background:var(--grnl);color:var(--grn)}.bgy{background:var(--sf2);color:var(--tx2)}.bb{background:var(--blul);color:var(--blu)}
.r1b{background:#2563eb;color:#fff}.r2b{background:#0d9488;color:#fff}
.r3b{background:#7c3aed;color:#fff}.r4b{background:#ea580c;color:#fff}
.r5b{background:#ca8a04;color:#fff}.rAb{background:#6b7280;color:#fff}

/* ── MATCH BOX ── */
.match-box{background:var(--surface);border:1.5px solid var(--bd);border-radius:var(--rs);padding:12px;margin-bottom:10px}
.match-tit{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--tx3);margin-bottom:8px}
.veh-row{display:flex;align-items:center;gap:8px;padding:6px 0;font-size:12.5px;border-bottom:1px solid var(--bd)}
.veh-row:last-child{border-bottom:none}
.veh-ok{color:var(--grn);font-weight:700}
.veh-no{color:var(--tx3)}
.veh-cap{font-family:var(--m);font-size:11.5px;color:var(--tx3);margin-left:auto}

/* ── AUTISTA select box ── */
.aut-box{background:var(--surface);border:1.5px solid var(--bd);border-radius:var(--rs);padding:12px;margin-bottom:10px}
.rec-box{background:var(--surface);border:1.5px solid var(--bd);border-radius:var(--rs);padding:12px;margin-bottom:10px}
.rec-tit{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--tx3);margin-bottom:7px}
.rec-item{display:flex;justify-content:space-between;align-items:center;padding:5px 0;font-size:12.5px;border-bottom:1px solid var(--bd)}
.rec-item:last-child{border-bottom:none}
.rec-cost{font-family:var(--m);font-weight:700;color:var(--red)}

/* ── VETTORI ── */
.soc-card{border:1.5px solid var(--bd);border-radius:var(--r);margin-bottom:8px;overflow:hidden;background:var(--surface)}
.soc-h{display:flex;align-items:center;gap:8px;padding:11px 14px;background:var(--sf2);cursor:pointer;user-select:none}
.soc-name{font-weight:700;font-size:13.5px;flex:1}
.soc-body{padding:12px 14px;border-top:1px solid var(--bd);display:none}
.soc-body.open{display:block}
.sub-t{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--tx3);margin-bottom:7px}
.mrow,.arow{display:flex;align-items:center;gap:7px;padding:8px 10px;
  background:var(--surface);border:1.5px solid var(--bd);border-radius:var(--rs);margin-bottom:5px;font-size:12.5px}
.mrow-info,.arow-info{flex:1}
.mrow-name,.arow-name{font-weight:700}
.mrow-sub{font-size:11px;color:var(--tx3);margin-top:1px}
.stato{font-size:9.5px;font-weight:700;padding:2px 7px;border-radius:20px}
.s-disponibile{background:var(--grnl);color:var(--grn)}.s-rotto{background:var(--redl);color:var(--red)}
.s-officina{background:var(--ambl);color:var(--amb)}.s-fermo{background:var(--sf2);color:var(--tx3)}
.pills{display:flex;flex-wrap:wrap;gap:4px;margin-top:5px}
.pill{font-size:10px;padding:2px 7px;background:var(--sf2);border-radius:20px;color:var(--tx3)}

/* ── COMBINAZIONI ── */
.combo-sec{margin-bottom:18px}
.combo-veh-tit{font-size:12.5px;font-weight:700;padding:8px 12px;background:var(--sf2);border:1.5px solid var(--bd);border-radius:var(--rs);margin-bottom:7px}
.combo-tbl{width:100%;border-collapse:collapse;font-size:11.5px;margin-bottom:8px}
.combo-tbl th{padding:6px 8px;text-align:left;background:var(--sf2);font-weight:700;font-size:9.5px;text-transform:uppercase;letter-spacing:.05em;color:var(--tx3);border:1px solid var(--bd)}
.combo-tbl td{padding:6px 8px;border:1px solid var(--bd);color:var(--tx2)}
.combo-tbl td.n{text-align:right;font-family:var(--m);color:var(--tx)}
.combo-tbl tr:hover td{background:var(--sf2)}
td.zero{color:var(--bd2)!important}

/* ── TARIFFE ── */
.tar-row{display:grid;grid-template-columns:1fr auto auto;gap:7px;align-items:center;
  padding:9px 12px;background:var(--surface);border:1.5px solid var(--bd);border-radius:var(--rs);margin-bottom:6px;font-size:12.5px}

/* ── CALENDARIO ── */
.df-bar{display:flex;gap:6px;align-items:center;flex-wrap:wrap;margin-bottom:12px}
.df-btn{padding:6px 12px;font-family:var(--f);font-size:11.5px;font-weight:600;
  border:1.5px solid var(--bd);border-radius:var(--rs);background:var(--surface);
  color:var(--tx2);cursor:pointer;transition:var(--tr)}
.df-btn.active{background:var(--red);color:#fff;border-color:var(--red)}
.drrow{display:flex;gap:6px;align-items:center;margin-bottom:9px}
.drrow input{padding:6px 9px;font-family:var(--f);font-size:12.5px;
  border:1.5px solid var(--bd);border-radius:var(--rs);color:var(--tx);background:var(--surface)}
.ev-item{display:flex;align-items:flex-start;gap:12px;padding:13px 15px;
  background:var(--surface);border:1.5px solid var(--bd);border-radius:var(--r);
  margin-bottom:8px;font-size:12.5px;box-shadow:var(--sh);
  border-left:4px solid var(--bd2);transition:border-color .15s,box-shadow .15s}
.ev-item:hover{border-left-color:var(--red);box-shadow:var(--shm)}
.ev-date{font-family:var(--m);font-size:11.5px;font-weight:600;color:var(--tx2);width:76px;flex-shrink:0;padding-top:1px}
.ev-info{flex:1}
.ev-dest{font-weight:700;font-size:13.5px;margin-bottom:4px}
.ev-meta{color:var(--tx3);font-size:11.5px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}

/* ════════════════════ MAIN ════════════════════ */
#main{flex:1;display:flex;flex-direction:column;overflow:hidden;background:var(--bg)}
.mhead{background:var(--surface);border-bottom:1px solid var(--bd);padding:18px 26px;
  display:flex;align-items:center;gap:12px;flex-shrink:0;flex-wrap:wrap;box-shadow:var(--sh)}
.mhead h2{font-size:18px;font-weight:800;flex:1;letter-spacing:-.02em}
.mha{display:flex;gap:8px;flex-wrap:wrap}
.mcontent{flex:1;overflow-y:auto;padding:24px;-webkit-overflow-scrolling:touch}

/* ── KPI SUMMARY BAR (piano) ── */
.kpi-bar{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:22px}
.kpi{flex:1;min-width:130px;background:var(--surface);border:1.5px solid var(--bd);border-radius:var(--r);
  padding:14px 16px;box-shadow:var(--sh)}
.kpi-v{font-size:24px;font-weight:800;line-height:1;letter-spacing:-.02em;color:var(--tx)}
.kpi-l{font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--tx3);margin-top:6px}
.kpi.warn .kpi-v{color:var(--red)}
.day-hdr{font-size:12.5px;font-weight:700;color:var(--tx2);padding:10px 14px;
  background:var(--sf2);border:1px solid var(--bd);border-radius:var(--rs);
  margin:22px 0 10px;display:flex;align-items:center;gap:8px}
.day-hdr:first-child{margin-top:0}

/* ════════════════════ PIANO — giri ════════════════════ */
.giro-card{background:var(--surface);border:1.5px solid var(--bd);border-radius:var(--r);box-shadow:var(--sh);overflow:hidden;
  margin-bottom:14px}
.giro-h{padding:16px 18px;background:var(--surface);border-bottom:1px solid var(--bd);display:flex;align-items:flex-start;gap:10px;flex-wrap:wrap}
.giro-aut{font-weight:800;font-size:15px;letter-spacing:-.01em}
.giro-mz{font-size:12px;color:var(--tx2);margin-top:3px}
.giro-cap{font-size:10.5px;color:var(--tx3);margin-left:auto;text-align:right;min-width:150px}
.giro-body{padding:6px 18px 12px}
.cap-bar-wrap{width:100%;height:7px;background:var(--sf2);border-radius:4px;overflow:hidden;margin-top:4px}
.cap-bar-fill{height:100%;border-radius:4px;transition:width .3s}
.ferm{display:flex;align-items:flex-start;gap:10px;padding:11px 0;border-bottom:1px solid var(--bd);font-size:12.5px;position:relative}
.ferm:last-child{border-bottom:none}
.fnum{width:26px;height:26px;border-radius:50%;background:var(--red);color:#fff;font-size:10.5px;font-weight:800;
  flex-shrink:0;display:flex;align-items:center;justify-content:center;font-family:var(--m);margin-top:1px;box-shadow:0 1px 4px rgba(0,0,0,.18)}
.ferm.opp .fnum{background:var(--amb)}
.finfo{flex:1;min-width:0}
.fdest{font-weight:700;font-size:13.5px}
.fmeta{color:var(--tx3);font-size:10.5px;margin-top:4px;display:flex;flex-wrap:wrap;gap:4px;align-items:center}
.fora{font-family:var(--m);font-size:12.5px;font-weight:700;color:var(--tx);flex-shrink:0;background:var(--sf2);padding:4px 9px;border-radius:var(--rxs);border:1px solid var(--bd)}
.non-ass{margin-top:18px;padding:16px 18px;background:var(--redl);border:1.5px solid #fca5a5;border-radius:var(--r);box-shadow:var(--sh)}
.non-ass-t{font-size:13.5px;font-weight:700;color:var(--red);margin-bottom:8px}

/* ── EMPTY ── */
.empty{text-align:center;padding:48px 20px;color:var(--tx3)}
.ei{font-size:32px;margin-bottom:9px}
.et{font-size:14px;font-weight:600;color:var(--tx2)}.es{font-size:12px;margin-top:5px}

/* ════════════════════ MODAL ════════════════════ */
.overlay{position:fixed;inset:0;background:rgba(17,18,26,.55);display:flex;align-items:center;
  justify-content:center;z-index:1000;opacity:0;pointer-events:none;transition:opacity .2s}
.overlay.open{opacity:1;pointer-events:all}
.modal{background:var(--surface);border-radius:var(--r);padding:24px;max-width:500px;width:92%;
  box-shadow:var(--shm);transform:translateY(-10px);transition:transform .2s;max-height:88vh;overflow-y:auto}
.overlay.open .modal{transform:translateY(0)}
.modal-t{font-size:16px;font-weight:800;margin-bottom:16px;letter-spacing:-.01em}
.modal-a{display:flex;gap:8px;margin-top:16px;justify-content:flex-end}
.div{border:none;border-top:1px solid var(--bd);margin:12px 0}

/* ── CARICO ITEMS ── */
.carico-row{display:flex;align-items:center;gap:6px;margin-bottom:6px;padding:8px 10px;
  background:var(--sf2);border:1px solid var(--bd);border-radius:var(--rs)}
.carico-row select,.carico-row input{padding:6px 8px;border:1px solid var(--bd);border-radius:var(--rxs);
  font-family:var(--f);font-size:12.5px;color:var(--tx);background:var(--surface);outline:none}
.carico-row select{flex:2}.carico-row input{flex:1;min-width:0}

/* ── VINCOLO BADGE ── */
.vincolo{display:inline-flex;align-items:center;gap:3px;padding:3px 8px;font-size:10px;font-weight:700;
  border-radius:20px;background:var(--blul);color:var(--blu)}

@media(max-width:768px){
  #topbar{padding:12px 16px;gap:10px 14px}
  .sb-tit{font-size:16px}
  .day-sw{min-width:0;flex:1 1 auto}
  .day-btn{padding:11px 6px;font-size:12.5px}
  #settings-btn{width:36px;height:36px}
  .user-chip #user-email{display:none}
  .user-chip{padding:7px 8px}
  .login-card{padding:26px 22px}
  #navtabs{padding:0 10px}
  .tab-btn{padding:12px 12px 10px;font-size:11px;touch-action:manipulation}
  .tc{height:17px;min-width:17px;font-size:9px;padding:0 4px}
  .content-inner{padding:16px 14px 40px}
  .fr{grid-template-columns:1fr}
  .fr3{grid-template-columns:1fr 1fr}
  .fg input,.fg select,.fg textarea{padding:13px 12px;font-size:16px!important;border-radius:var(--rs)}
  .fg label{font-size:11.5px;margin-bottom:5px}
  .btn-p{padding:15px;font-size:15.5px;touch-action:manipulation}
  .btn-s{touch-action:manipulation}
  .save-btn{padding:12px;font-size:13.5px}
  .mhead{padding:0 0 13px;flex-wrap:wrap;gap:8px}
  .mhead h2{font-size:16px;width:100%;margin-bottom:2px}
  .mha{width:100%;display:flex;gap:6px;flex-wrap:wrap}
  .mha .btn-s{flex:1;padding:10px 6px;font-size:11.5px;text-align:center}
  .kpi-bar{gap:8px}
  .kpi{min-width:100px;padding:11px 12px}
  .kpi-v{font-size:20px}
  .giro-card{border-radius:12px;margin-bottom:14px}
  .giro-h{padding:13px 15px;flex-wrap:wrap;gap:8px}
  .giro-aut{font-size:15.5px}
  .giro-mz{font-size:12.5px;margin-top:3px}
  .giro-cap{margin-left:0;width:100%;text-align:left;min-width:0}
  .giro-body{padding:6px 15px 10px}
  .ferm{padding:12px 0;gap:11px}
  .fnum{width:29px;height:29px;font-size:11.5px}
  .fdest{font-size:14.5px}
  .fmeta{font-size:12px;margin-top:4px}
  .fora{font-size:13.5px;padding:5px 10px}
  .ev-item{padding:13px 15px;border-radius:12px;margin-bottom:9px}
  .ev-date{font-size:12.5px;width:68px}
  .ev-dest{font-size:14.5px}
  .ev-meta{font-size:12.5px;gap:7px}
  .modal{padding:22px 18px;border-radius:20px 20px 0 0;
    position:fixed;bottom:0;left:0;right:0;
    max-width:100%!important;width:100%!important;
    max-height:92vh;overflow-y:auto;
    transform:translateY(100%)}
  .overlay{align-items:flex-end}
  .overlay.open .modal{transform:translateY(0)}
  .badge{padding:4px 9px;font-size:10.5px}
  .non-ass{border-radius:12px;padding:16px}
  .carico-row{flex-wrap:wrap;gap:7px}
  .carico-row select{flex:1;min-width:140px}
  .carico-row input{min-width:70px;flex:0 0 70px}
}
@media(max-width:390px){
  .tab-btn{font-size:10px;padding:10px 8px}
  .mha .btn-s{font-size:10.5px;padding:9px 5px}
}


/* ════════════════════ IMPORT ════════════════════ */
.drop-zone{border:2px dashed var(--bd2);border-radius:var(--r);padding:34px;text-align:center;
  cursor:pointer;transition:var(--tr);background:var(--sf2);margin-bottom:12px}
.drop-zone:hover,.drop-zone.drag{border-color:var(--red);background:var(--redl)}
.drop-zone-icon{font-size:30px;margin-bottom:8px}
.drop-zone-t{font-size:13.5px;font-weight:700;color:var(--tx2)}
.drop-zone-s{font-size:11.5px;color:var(--tx3);margin-top:4px}
.imp-table{width:100%;border-collapse:collapse;font-size:11.5px;margin-top:10px;max-height:280px;overflow-y:auto;display:block}
.imp-table th{padding:6px 9px;background:var(--sf2);border:1px solid var(--bd);font-weight:700;
  font-size:10px;text-transform:uppercase;letter-spacing:.04em;color:var(--tx3);position:sticky;top:0}
.imp-table td{padding:6px 9px;border:1px solid var(--bd);color:var(--tx2)}
.imp-table tr:hover td{background:var(--sf2)}
.imp-table td.ok{color:var(--grn)}.imp-table td.warn{color:var(--amb)}.imp-table td.err{color:var(--red)}
.map-row{display:flex;align-items:center;gap:8px;margin-bottom:7px;font-size:12.5px}
.map-row label{width:130px;flex-shrink:0;font-weight:600;color:var(--tx2)}
.map-row select{flex:1;padding:6px 8px;border:1px solid var(--bd);border-radius:var(--rxs);font-family:var(--f);font-size:12.5px}
.imp-summary{font-size:12.5px;padding:10px 12px;background:var(--grnl);border:1px solid #86efac;border-radius:var(--rs);margin-top:10px}
.imp-warn{font-size:12.5px;padding:10px 12px;background:var(--ambl);border:1px solid #fcd34d;border-radius:var(--rs);margin-top:7px}
