/* scheda-operatrice (17/10/2026): scheda dell'operatrice come la vede nell'app EsOperator, con le correzioni della segreteria.
   Finestra grande; tipi = parola + colore tenue (mai solo colore); stati = icona + parola. */

.modal.lg:has(.so-scheda){max-width:min(1180px, 97vw)}
.so-scheda .so-sotto{margin:-4px 0 10px; font-size:.85em}

/* avvisi in testa: stato (forma + parola) + spiegazione + azione */
.so-avviso{display:flex; flex-wrap:wrap; align-items:center; gap:6px 10px; margin:0 0 10px; padding:8px 12px;
  border:1px solid var(--line); border-radius:var(--radius-s); background:var(--surface-2); font-size:.86em; color:var(--ink-2)}
.so-avviso > span:not(.so-st){flex:1 1 360px}
.so-avviso-chiusa{border-color:var(--line-2); background:color-mix(in srgb, var(--s-off) 10%, var(--surface))}
.so-inline{margin:0}

.so-st{display:inline-flex; align-items:center; gap:5px; font-weight:700; font-size:.82em; padding:2px 9px 2px 7px;
  border-radius:11px; border:1px solid; white-space:nowrap; line-height:1.5}
.so-st svg{width:13px; height:13px; flex:none}
.so-st-ok{color:var(--s-free); border-color:var(--s-free); background:color-mix(in srgb, var(--s-free) 10%, transparent)}
.so-st-ko{color:var(--s-busy); border-color:var(--s-busy); background:color-mix(in srgb, var(--s-busy) 9%, transparent)}
.so-st-nd{color:var(--ink-2); border-color:var(--line-2); background:var(--surface)}
.so-st-chiusa{color:var(--ink); border-color:var(--ink-2); background:var(--surface)}
.so-st-corso{color:var(--s-book); border-color:var(--s-book); background:color-mix(in srgb, var(--s-book) 10%, transparent); font-size:.76em}
.so-st-fine{color:var(--ink-2); border-color:var(--line-2); background:transparent; font-weight:600; font-size:.76em}

/* tabella: una riga per chiamata, richiami in riga */
.so-tab{table-layout:auto}
.so-tab th,.so-tab td{vertical-align:middle}
.so-tab .so-num{text-align:right; white-space:nowrap}
.so-tab th.so-num svg{width:14px; height:14px; vertical-align:-2px}
.so-tab .so-c-ora{width:56px}
.so-tab tr.so-riga td{border-top:1px solid var(--line)}
.so-tab tr.so-riga.so-t-car td:first-child{box-shadow:inset 3px 0 0 #d98aa6}
.so-tab tr.so-riga.so-t-cod td:first-child{box-shadow:inset 3px 0 0 #6f95d6}
.so-tab tr.so-riga.so-t-est td:first-child{box-shadow:inset 3px 0 0 #7fb08d}
.so-tipo{display:inline-block; font-size:.78em; font-weight:700; padding:1px 8px; border-radius:10px; border:1px solid}
.so-tipo.so-t-car{color:#a3365c; border-color:#e7b5c7; background:#fbeff3}
.so-tipo.so-t-cod{color:#2f5bb0; border-color:#b9cbec; background:#eef3fc}
.so-tipo.so-t-est{color:#2f7a4a; border-color:#bcd9c4; background:#eef7f1}
.so-nuovo{font-size:.72em; font-weight:700; color:var(--accent-2); border:1px dashed var(--accent); border-radius:9px; padding:0 6px}
.so-id{font-size:.8em}
.so-nota{display:block; font-size:.78em; color:var(--ink-2); margin-top:2px}
.so-nota svg{vertical-align:-2px}

.so-rich{display:flex; flex-wrap:wrap; gap:4px; align-items:center}
.so-chip{display:inline-flex; align-items:center; gap:5px; font:inherit; font-size:.8em; font-weight:500; color:var(--ink);
  background:var(--surface); border:1px solid var(--line-2); border-radius:12px; padding:1px 9px; line-height:1.6; cursor:default}
button.so-chip{cursor:pointer}
button.so-chip:hover{border-color:var(--accent); color:var(--accent-2); filter:none}
.so-chip b{font-weight:700}
.so-az{text-align:right; white-space:nowrap}

/* pannello «Correggi» */
.so-tab tr.so-modifica > td{background:var(--surface-2); border-bottom:2px solid var(--line); padding:10px 12px 12px}
.so-tab tr.so-modifica:hover{background:transparent}
.so-pannello{display:grid; grid-template-columns:repeat(auto-fit, minmax(380px, 1fr)); gap:12px 22px}
.so-sez-minuti{grid-column:1 / -1}
.so-pannello section{min-width:0}
.so-pannello h4{margin:0 0 6px; font-size:.82em; font-weight:700; color:var(--ink-2); text-transform:uppercase; letter-spacing:.03em}
.so-form{display:flex; flex-wrap:wrap; gap:6px 8px; align-items:flex-end; margin:0 0 8px}
.so-form label{display:flex; flex-direction:column; gap:2px; margin:0; font-size:.76em; color:var(--ink-2); flex:1 1 120px}
.so-form label input,.so-form label select{padding:5px 8px; font-size:1.2em}
.so-form input[type=time]{min-width:100px}
.so-form input[type=number]{min-width:80px}
.so-form button{flex:none}
/* una riga per chiamata: [chiamata/richiamo] ora · minuti · motivo · Salva | motivo · Togli */
.so-rigaform{display:flex; flex-wrap:wrap; align-items:flex-end; gap:4px 18px; border-left:2px solid var(--line-2); padding:2px 0 2px 8px; margin:0 0 6px}
.so-rigaform .so-form{margin:0}
.so-form-riga{flex:3 1 560px; flex-wrap:nowrap}
.so-form-riga label{flex:0 0 118px}
.so-form-riga label:nth-of-type(2){flex:0 0 96px}
.so-form-riga label:nth-of-type(3){flex:1 1 140px}
.so-chi{flex:0 0 84px; align-self:center; font-size:.74em; font-weight:700; color:var(--muted); text-transform:uppercase; letter-spacing:.03em}
.so-form-togli{flex:1 1 260px; flex-wrap:nowrap}
.so-form-togli input{flex:1 1 140px; padding:5px 8px; font-size:.88em}
@media (max-width:900px){ .so-form-riga{flex-wrap:wrap} .so-chi{flex-basis:100%} }
.so-togli-tutto{grid-column:1 / -1; border-top:1px dashed var(--line-2); padding-top:8px}
.so-togli-tutto .so-form label{max-width:420px}
.btn-ghost.so-rosso{color:var(--s-busy); border-color:color-mix(in srgb, var(--s-busy) 45%, var(--line-2))}
.btn-ghost.so-rosso:hover{border-color:var(--s-busy); color:var(--s-busy)}

/* totali in fondo, come l'app */
.so-tab tfoot td{border-top:2px solid var(--line); padding-top:10px; padding-bottom:10px}
.so-totali td{display:table-cell}
.so-tot{display:inline-flex; align-items:center; gap:6px; margin-right:18px; font-size:.95em; white-space:nowrap}
.so-tot svg{width:15px; height:15px; color:var(--s-book)}
.so-tot-tot{font-weight:700}

.so-nuova{margin:12px 0 0; border:1px solid var(--line); border-radius:var(--radius-s); padding:6px 12px}
.so-nuova summary,.so-storia summary{cursor:pointer; font-weight:600; font-size:.88em; color:var(--ink-2); padding:2px 0}
.so-nuova summary svg,.so-storia summary svg{vertical-align:-2px}
.so-nuova[open] summary{margin-bottom:8px}
.so-storia{margin:12px 0 0; font-size:.84em}
.so-storia ul{margin:6px 0 0; padding-left:18px}
.so-storia li{margin:2px 0}
.so-n{display:inline-block; min-width:18px; text-align:center; font-size:.8em; font-weight:700; padding:0 6px; border-radius:9px; background:var(--accent-soft); color:var(--accent-2)}
.so-nota-piede{font-size:.78em; margin-top:10px}

/* stelle a mano: −1 / +1 sotto il numero */
.so-stelle-az{display:flex; gap:3px; justify-content:flex-end; margin-top:3px}
.so-stelle-az form{margin:0}
.btn-ghost.so-st-btn{padding:0 6px; font-size:.74em; line-height:1.6; font-weight:700}

/* finestra «Anche alla cliente?» (minuti di una carta) */
.so-dlg{border:1px solid var(--line-2); border-radius:var(--radius); padding:16px 18px; max-width:460px; box-shadow:var(--shadow-lg); color:var(--ink)}
.so-dlg::backdrop{background:rgba(16,24,40,.35)}
.so-dlg h3{margin:0 0 8px; font-size:1em}
.so-dlg p{margin:0 0 14px; font-size:.92em; line-height:1.5}
.so-dlg-bot{display:flex; flex-wrap:wrap; gap:8px; justify-content:flex-end}

/* riepilogo del giorno: bottone «Scheda» */
.so-apri-btn svg{vertical-align:-2px}
/* nel riepilogo «Scheda» sta sopra «Chiudi giornata» / «Modifica», allineati a destra: la colonna resta stretta */
.so-az-col{display:inline-flex; flex-direction:column; align-items:flex-end; gap:4px; vertical-align:middle}
.tbl.rep td.liveact .so-az-col .btn-sm{margin-left:0}
.rg-tab2 .so-az-col{flex-direction:row; gap:6px}

/* blocco giornaliero: classi al posto degli style= (17/10/2026) */
.blk-nota{margin:10px 0 4px}
.blk-num{text-align:right}
.blk-ora{font-size:.85em}
.blk-testa{display:flex; justify-content:flex-end; margin:0 0 8px}

/* chiusura: totali presi dalla scheda corretta */
.chiu-scheda{display:flex; flex-wrap:wrap; align-items:center; gap:6px 10px; font-size:.86em; margin:0 0 10px}

@media (max-width:720px){
  .so-tab thead{display:none}
  .so-tab tr.so-riga{display:flex; flex-wrap:wrap; align-items:center; gap:2px 10px; padding:8px 0 8px 8px; border-top:1px solid var(--line)}
  .so-tab tr.so-riga td{border:0; padding:1px 0; box-shadow:none !important}
  .so-tab tr.so-riga.so-t-car{box-shadow:inset 3px 0 0 #d98aa6}
  .so-tab tr.so-riga.so-t-cod{box-shadow:inset 3px 0 0 #6f95d6}
  .so-tab tr.so-riga.so-t-est{box-shadow:inset 3px 0 0 #7fb08d}
  .so-tab .so-c-ora{width:auto}
  .so-tab td.so-c-ass{order:5; font-size:.85em; color:var(--ink-2)}
  .so-tab td.so-c-ass::before{content:'assegnati '; font-family:"IBM Plex Sans",sans-serif; color:var(--muted)}
  .so-tab td.so-rich{order:4; flex-basis:100%}
  .so-tab td.so-c-min{order:6}
  .so-tab td.so-c-min::after{content:' min'; font-weight:400}
  .so-tab td.so-c-st{order:7}
  .so-tab td.so-c-st::before{content:'stelle '; font-family:"IBM Plex Sans",sans-serif; color:var(--muted)}
  .so-tab td.so-az{order:9; margin-left:auto; padding-right:4px}
  .so-tab tr.so-riga td:nth-child(8){order:8}
  .so-tab tr.so-modifica td{display:block}
  .so-pannello{grid-template-columns:1fr}
  .so-tot{margin:2px 14px 2px 0}
}
