/* NaNoShift · rifiniture UI condivise: intestazione, navigazione, tabelle, accessibilità.
   Caricato dopo gli stili inline di dashboard.html, reparto.html e coordinamento.html. */

:root{--gold:#f2bd36;--focus:#2463eb}

/* Accessibilità: focus sempre visibile, movimento ridotto */
:where(button,a,input,select,textarea,summary):focus-visible{outline:2px solid var(--focus);outline-offset:2px}
@media (prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
@media (pointer:coarse){.btn,.tabs button,.links a,.nav button,.chip{min-height:40px}}

/* Intestazione: icona + nome + sottotitolo, senza logo sproporzionato */
.top{padding-top:10px;padding-bottom:10px;min-height:64px}
.brand{display:flex;align-items:center;gap:10px;min-width:0;flex:1 1 auto;font-size:17px;font-weight:800;letter-spacing:-.3px;color:#0057b7;line-height:1.15}
.brand .logo-mark{width:42px;height:42px;max-height:none;flex:none;object-fit:contain;margin:0}
.brand .brand-text{display:flex;flex-direction:column;min-width:0}
.brand .brand-name{display:block;white-space:nowrap}
.brand .brand-shift{color:var(--gold)}
.brand .brand-text small{display:block;font-size:12px;line-height:1.3;font-weight:500;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.links{flex:none}
.links a{display:inline-flex;align-items:center}
@media(max-width:520px){.links a{padding:8px 10px;font-size:13px}.brand{font-size:16px}}
@media(max-width:380px){.brand .brand-text small{max-width:36vw}}

/* Dashboard: sulla colonna laterale il marchio c'è già, l'intestazione mostra solo l'utente */
@media(min-width:1000px){
 body:has(.side-nav) .top .logo-mark,body:has(.side-nav) .top .brand-name{display:none}
 body:has(.side-nav) .top .brand-text small{font-size:14px;color:var(--navy);font-weight:650}
}

/* Notifiche: il pannello non esce mai dallo schermo */
@media(max-width:600px){
 .notification-wrap{position:static}
 .notification-panel{position:fixed;left:10px;right:10px;top:70px;width:auto;max-height:calc(100vh - 150px)}
}
.notification-panel .small-row{align-items:flex-start}

/* Calendario: viste a sinistra, import/export in un menu "Strumenti" */
.cal-controls{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap;margin:15px 0}
.cal-controls .tabs{margin:0}
.tools{position:relative}
.tools>summary{list-style:none;cursor:pointer;border:1px solid var(--line);background:#fff;border-radius:10px;padding:8px 12px;font-weight:650;display:inline-flex;gap:8px;align-items:center;user-select:none}
.tools>summary::-webkit-details-marker{display:none}
.tools>summary::after{content:"";width:6px;height:6px;border-right:2px solid var(--muted);border-bottom:2px solid var(--muted);transform:rotate(45deg) translateY(-2px)}
.tools[open]>summary{background:var(--pale);border-color:#b9cdfb;color:var(--blue)}
.tools-menu{position:absolute;right:0;top:calc(100% + 6px);z-index:8;min-width:220px;background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 48px #102b4e24;padding:6px;display:grid;gap:2px}
.tools-menu button{border:0;background:transparent;text-align:left;border-radius:9px;padding:10px 12px;font-weight:600;color:var(--navy)}
.tools-menu button:hover{background:var(--pale)}
.tools-menu .tools-sep{height:1px;background:var(--line);margin:4px 6px}
@media(max-width:600px){
 .cal-controls{display:grid;grid-template-columns:1fr}
 .tools>summary{width:100%;justify-content:space-between}
 .tools-menu{position:static;box-shadow:none;margin-top:6px}
}

/* Tabelle dei turni: su telefono il totale non copre più i giorni */
@media(max-width:700px){th.totalcol,td.totalcol{position:static}}

/* Reparto: pulsanti di disponibilità leggibili e comodi da toccare */
.chips .chip{min-height:34px}
@media(max-width:560px){.day .chips{gap:6px}.day .d{width:100%}}

/* Colonna laterale: marchio compatto */
.side-nav .side-brand .sb-name{color:#0057b7;display:inline;white-space:nowrap}
.side-nav .side-brand .sb-name span{color:var(--gold)}

/* Gruppi: riquadri equilibrati */
.group-grid{align-items:start;margin-top:14px}
.group-card{border:1px solid var(--line);border-radius:14px;padding:16px;background:#fff;min-width:0}
#groupsSection .group-card h3:first-child{margin-top:0}
#groupsSection .actions{display:flex;gap:8px;flex-wrap:wrap;align-items:center}

/* Pannelli annidati (es. proiezione nel simulatore): niente doppio bordo né margini */
#taxSection .panel{margin-top:0;margin-bottom:16px;box-shadow:none;padding:16px;border-radius:14px}
#taxSection table th,#taxSection table td{padding:8px 12px;text-align:left;white-space:nowrap}

/* Coordinamento: su schermi larghi tutto il mese entra senza coprire l'ultimo giorno */
@media(min-width:1100px){
 .scroll th,.scroll td{min-width:28px}
 .scroll th:first-child,.scroll td:first-child{min-width:124px}
 .scroll th.totalcol,.scroll td.totalcol{min-width:84px}
}
/* Distanza fra tabella e pannelli che la seguono */
.scroll+.panel,.scroll+section{margin-top:16px}

/* Campi data/ora: mai oltre il contenitore (iOS li allarga per via dell'aspetto nativo) */
input,select,textarea{max-width:100%}
.field,.row .field{min-width:0}
.row .field{min-width:min(180px,100%)}
input[type="date"],input[type="time"],input[type="month"],input[type="datetime-local"]{-webkit-appearance:none;appearance:none;display:block;width:100%;min-width:0;min-height:44px;text-align:left;line-height:1.2}
input[type="date"]::-webkit-date-and-time-value,input[type="time"]::-webkit-date-and-time-value{text-align:left;min-width:0}
.rolechip{display:inline-block;font-size:11px;font-weight:700;padding:2px 8px;border-radius:999px;vertical-align:middle;white-space:nowrap}
.rolechip.inf{background:#e6f0ff;color:#1c4fa3}.rolechip.oss{background:#e8f7ee;color:#18703d}
.actions-inline{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.actions-inline select{min-height:36px;padding:4px 8px;border-radius:9px;border:1px solid var(--line);background:#fff}
[hidden]{display:none!important}
.statgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin:12px 0}
.statcard{display:flex;flex-direction:column;align-items:flex-start;gap:4px;text-align:left;padding:14px;border:1px solid var(--line);border-radius:14px;background:#fff;cursor:pointer;font:inherit;color:var(--navy)}
.statcard b{font-size:28px;line-height:1}.statcard span{font-size:13px;color:var(--muted)}.statcard.warn{border-color:#f0b4ae;background:#fff6f5}.statcard.warn b{color:#b42318}

/* I miei turni: calendario del mese */
.mysum{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:8px 0 12px}
.mysum>div{padding:10px 12px;border:1px solid var(--line);border-radius:12px;background:#f9fbff}
.mysum b{display:block;font-size:18px;line-height:1.2}.mysum span{font-size:12px;color:var(--muted)}
.sumchips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px}.sumchip{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--muted)}
.mgrid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.mh{text-align:center;font-size:11px;font-weight:700;color:var(--muted);padding:2px 0}
.mc{min-height:62px;border:1px solid var(--line);border-radius:10px;padding:4px;display:flex;flex-direction:column;align-items:center;gap:2px;background:#fff}
.mc.empty{border:0;background:transparent}.mc.we .dn{color:var(--red)}
.mc .dn{align-self:flex-start;font-size:11px;font-weight:700;color:var(--muted)}
.mc .tm{font-size:10px;color:var(--muted);white-space:nowrap}
.mc.has{background:#f9fbff}.mc.today{outline:2px solid var(--blue);outline-offset:-2px}
@media(max-width:520px){.mc{min-height:54px;padding:3px 2px;border-radius:8px}.mc .tm{display:none}.mysum b{font-size:15px}}
