/* ORTUS HR — styles.css
   Variabili e pattern ripresi da ProjectControl/styles.css (:root, header, auth-*,
   user-menu, toast/dialog, banner aggiornamento). Font: stessa scelta di ProjectControl
   (Google Fonts Montserrat/Inter, caricati via @import qui sotto). */

@import url('https://fonts.googleapis.com/css2?family=Montserrat:wght@300;400;500;600;700;800;900&family=Inter:wght@300;400;500;600&display=swap');

:root{
  --gd:#1a3a2a;--gm:#2d5a3f;--gl:#3d7a55;--ga:#5aad74;
  --lime:#8dc63f;--limeD:#6fa030;
  --bg:#f2f4f1;--sur:#ffffff;--sur2:#f0f3ef;--bor:#dde3da;
  --tx:#1a2518;--txm:#4a5e44;--mut:#8a9e84;
  --red:#c0392b;--grn:#27ae60;--ora:#e67e22;
  --sh:0 2px 16px rgba(26,58,42,.10);--shL:0 8px 40px rgba(26,58,42,.14);
  --r:12px;--rs:8px;
  /* Organigramma (DESIGN v1.5): 2 tinte aggiuntive oltre a --gm (verde scuro = area "verde"). */
  --org-teal:#178c8c;--org-purple:#772470;--org-slate:#6b7a94;--org-grey:#8f8f8f;
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Inter',sans-serif;background:var(--bg);color:var(--tx);min-height:100vh;font-size:14px}

/* ─── HEADER APP ─── */
header{background:var(--gd);padding:0 40px;display:flex;align-items:center;justify-content:space-between;height:66px;box-shadow:0 2px 20px rgba(0,0,0,.28);position:sticky;top:0;z-index:700}
.hlogo{display:flex;align-items:center;gap:14px;cursor:pointer}
.hlogo img{width:32px;height:32px;border-radius:6px}
.hlogo .brand{font-family:'Montserrat',sans-serif;font-weight:900;font-size:17px;color:#fff;letter-spacing:.06em}

/* ─── BOTTONI (usati dai dialog globali) ─── */
.btn{display:inline-flex;align-items:center;gap:6px;padding:9px 20px;border-radius:var(--rs);font-family:'Montserrat',sans-serif;font-size:11px;font-weight:700;letter-spacing:.07em;cursor:pointer;border:none;transition:all .15s;text-transform:uppercase;white-space:nowrap}
.btn-lime{background:var(--lime);color:var(--gd)}.btn-lime:hover{background:var(--limeD);color:#fff}
.btn-out{background:transparent;color:var(--gd);border:1.5px solid var(--gd)}.btn-out:hover{background:var(--gd);color:#fff}
.btn-sm{padding:7px 14px;font-size:10px}

/* ─── AUTH / LOGIN ─── */
.auth-overlay{display:flex;position:fixed;inset:0;background:linear-gradient(135deg,#1a3a2a,#0d2418);z-index:9000;align-items:center;justify-content:center;font-family:'Montserrat',sans-serif}
.auth-card{background:#fff;border-radius:18px;padding:42px 48px;box-shadow:0 24px 80px rgba(0,0,0,.4);max-width:440px;width:90%;text-align:center;margin:auto}
#googleSignInBtn{display:flex;justify-content:center;margin:18px 0}
.auth-card h1{font-size:22px;font-weight:800;color:var(--gd);margin:0 0 8px;letter-spacing:.02em}
.auth-card .sub{font-size:13px;color:var(--mut);margin-bottom:28px;line-height:1.5}
.auth-card .logo{width:120px;margin:0 auto 18px;display:block}
.auth-err{margin-top:18px;padding:10px 14px;background:#ffe5e5;color:#c0392b;border-radius:8px;font-size:12px;display:none}
.auth-err.show{display:block}
.auth-foot{margin-top:22px;font-size:10px;color:var(--mut);letter-spacing:.05em}

/* ─── AVATAR / USER MENU (header) ─── */
.user-chip{display:flex;align-items:center;gap:10px;padding:5px 8px 5px 5px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.18);border-radius:22px;cursor:pointer;transition:.15s;position:relative}
.user-chip:hover{background:rgba(255,255,255,.15)}
.user-chip .avatar{width:30px;height:30px;border-radius:50%;background:var(--lime);color:var(--gd);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:12px;font-family:'Montserrat',sans-serif;overflow:hidden}
.user-chip .avatar img{width:100%;height:100%;object-fit:cover}
.user-chip .uname{font-size:12px;color:#fff;font-weight:600;letter-spacing:.02em;padding-right:6px}
.user-menu{display:none;position:absolute;top:calc(100% + 8px);right:0;min-width:220px;background:#fff;border:1px solid var(--bor);border-radius:10px;box-shadow:0 12px 32px rgba(0,0,0,.18);overflow:hidden;z-index:500}
.user-menu.open{display:block}
.user-menu-item{padding:11px 16px;font-size:12px;color:var(--tx);cursor:pointer;border-bottom:1px solid var(--bor);display:flex;align-items:center;gap:10px}
.user-menu-item:last-child{border-bottom:none}
.user-menu-item:hover{background:var(--sur2)}
.user-menu-info{padding:12px 16px;font-size:11px;color:var(--mut);line-height:1.5;background:var(--sur2);border-bottom:1px solid var(--bor)}
.user-menu-info b{color:var(--tx);font-size:12px}

main{padding:30px 40px}

/* ═══ HOME (#/) — schermata "tool selector" ripresa 1:1 da ProjectControl (v2.2) ═══
   Non position:fixed (a differenza di .tool-selector in ProjectControl): sta sotto l'header
   sticky (66px) come un blocco a piena larghezza, fuori da <main> per non ereditarne il
   padding. Le classi .tool-card (e derivate), .tool-cards-secondary e .tool-card-cfg riusano nome e valori
   di ProjectControl/styles.css così com'è. */
.hr-home{min-height:calc(100vh - 66px);background:linear-gradient(160deg,#1c3f2e 0%,#0f2419 60%,#0a1a10 100%);display:flex;align-items:center;justify-content:center;padding:60px 40px 90px;font-family:'Montserrat',sans-serif}
.hr-home-inner{max-width:960px;width:100%}
.hr-home h1{text-align:center;color:#fff;margin:0 0 10px;font-size:28px;font-weight:600;letter-spacing:.04em}
.hr-home-sub{text-align:center;color:rgba(255,255,255,.55);font-size:11px;letter-spacing:.18em;text-transform:uppercase;margin-bottom:40px;font-weight:500}

.tool-selector-cards{display:grid;grid-template-columns:1fr 1fr 1fr;gap:16px}
.tool-selector-cards.ts-grid-2x2{grid-template-columns:1fr 1fr}
@media (max-width:700px){.tool-selector-cards.ts-grid-2x2{grid-template-columns:1fr}}
/* 01/11 (richiesta utente): la home sta tutta in una schermata senza scorrere. Su schermi larghi 3 colonne (6 card = 2 righe)
   e spaziature compatte; sotto i 1000px si torna a 2 colonne, sotto i 700px a una. */
@media (min-width:1000px){
  .hr-home{padding:28px 40px 56px}
  .hr-home-inner{max-width:1120px}
  .hr-home h1{font-size:24px;margin-bottom:6px}
  .hr-home-sub{margin-bottom:22px}
  .tool-selector-cards.ts-grid-2x2{grid-template-columns:repeat(3,1fr);gap:14px}
  .tool-selector-cards.ts-grid-2x2 .tool-card{padding:20px 22px 18px;min-height:0}
  /* review v9.33: spazio per l'etichetta "Non abilitato" / "In arrivo" in basso a destra */
  .tool-selector-cards.ts-grid-2x2 .tool-card.tc-locked,.tool-selector-cards.ts-grid-2x2 .tool-card.tc-arrivo{padding-bottom:42px}
  .tool-selector-cards.ts-grid-2x2 .tool-card-tag{margin-bottom:10px}
  .tool-selector-cards.ts-grid-2x2 .tool-card-title{font-size:18px;margin-bottom:8px}
  .tool-selector-cards.ts-grid-2x2 .tool-card-desc{line-height:1.55}
  .tool-cards-secondary .tool-card-cfg{padding:14px 22px 12px}
}

.tool-card{position:relative;background:#fff;border-radius:6px;padding:32px 28px 28px;cursor:pointer;border:1px solid #e2e8df;border-top:4px solid transparent;transition:all .2s ease;text-align:left;color:#222;min-height:150px;overflow:hidden}
.tool-card:hover{box-shadow:0 14px 36px rgba(0,0,0,.15);transform:translateY(-3px)}
.tool-card-tag{display:inline-block;font-size:9px;font-weight:700;letter-spacing:.2em;text-transform:uppercase;padding:3px 9px;border-radius:3px;margin-bottom:16px}
.tool-card-title{font-size:20px;font-weight:700;letter-spacing:-.01em;color:#1a3a2e;margin:0 0 14px}
.tool-card-desc{font-size:12px;color:#606860;line-height:1.7;font-weight:400}

/* Colori per card (border-top + tag), stessa coppia scuro/chiaro usata in ProjectControl */
.tool-card.tc-persone{border-top-color:#8dc63f}
.tool-card.tc-persone:hover{border-top-color:#6fa030}
.tc-persone .tool-card-tag{color:#4a7a1e;background:#eef8da}
.tool-card.tc-costi{border-top-color:#2980b9}
.tool-card.tc-costi:hover{border-top-color:#1a6090}
.tc-costi .tool-card-tag{color:#1a5a8c;background:#deeef8}
.tool-card.tc-scadenze{border-top-color:#c0830f}
.tool-card.tc-scadenze:hover{border-top-color:#9c6b0c}
.tc-scadenze .tool-card-tag{color:#7a5209;background:#fbe9cf}
.tool-card.tc-organigramma{border-top-color:var(--org-teal)}
.tool-card.tc-organigramma:hover{border-top-color:#106666}
.tc-organigramma .tool-card-tag{color:#0e5c5c;background:#dcf3f1}
.tool-card.tc-piano{border-top-color:#7c3aed}
.tool-card.tc-piano:hover{border-top-color:#5b21b6}
.tc-piano .tool-card-tag{color:#4c1d95;background:#ede9fe}

/* Card senza permesso: sempre visibile ma attenuata, con lucchetto; il click avvisa (mai apre) */
.tool-card.tc-ferie{border-top-color:#c0830f}
.tc-ferie .tool-card-tag{color:#7a5209;background:#fbe9cf}
.tool-card.tc-rimborsi{border-top-color:#2980b9}
.tc-rimborsi .tool-card-tag{color:#1a5a8c;background:#deeef8}
.tool-card.tc-cartellino{border-top-color:#8e44ad}
.tc-cartellino .tool-card-tag{color:#5b2c6f;background:#efe3f5}
.tool-card.tc-arrivo{opacity:.72;cursor:default}
.tool-card.tc-arrivo:hover{transform:none;box-shadow:0 6px 18px rgba(0,0,0,.10)}
.tool-card.tc-locked{opacity:.62;filter:saturate(.6)}
.tool-card.tc-locked:hover{transform:none;box-shadow:0 6px 18px rgba(0,0,0,.10)}
.tool-card .tc-lock{position:absolute;right:14px;bottom:12px;font-size:11px;font-weight:700;color:#6b7280;background:#f3f4f6;border:1px solid #e5e7eb;border-radius:12px;padding:3px 9px}

/* Card secondaria Configurazione (solo admin): sfondo trasparente chiaro su fondo scuro */
.tool-cards-secondary{display:flex;justify-content:center;margin-top:14px}
.tool-card-cfg{position:relative;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);border-radius:6px;padding:20px 28px 18px;cursor:pointer;text-align:left;transition:all .18s ease;width:360px;min-height:auto}
.tool-card-cfg:hover{background:rgba(255,255,255,.11);border-color:rgba(255,255,255,.28);transform:translateY(-1px);box-shadow:0 6px 20px rgba(0,0,0,.2)}
.tool-card-cfg .tool-card-num{position:absolute;top:12px;right:18px;font-size:18px;color:rgba(255,255,255,.45)}
.tool-card-cfg .tool-card-title{font-size:13px;font-weight:600;color:rgba(255,255,255,.8);margin:0 0 8px;letter-spacing:.03em}
.tool-card-cfg .tool-card-desc{font-size:11px;color:rgba(255,255,255,.45);line-height:1.65}

/* Footer versione della Home: fisso in basso a sinistra, come .ts-foot-ver di ProjectControl */
.hr-home-foot{position:fixed;left:40px;bottom:16px;bottom:calc(16px + env(safe-area-inset-bottom))}
.hr-home-foot .app-foot-ver{font-size:10px;color:rgba(255,255,255,.35);letter-spacing:.16em;text-transform:uppercase;font-weight:500}

/* ─── Stato server (sulla Home, su fondo scuro) ─── */


/* ─── Dialog globali (appAlert/appConfirm/appPrompt) ─── */
#cuConfirmOverlay,#appAlertOverlay,#appPromptOverlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.55);align-items:center;justify-content:center}
#cuConfirmOverlay{z-index:10000}
#appAlertOverlay{z-index:10001}
#appPromptOverlay{z-index:10002}
.dialog-card{background:var(--bg);border-radius:14px;padding:26px 28px;max-width:440px;width:90%;max-height:85vh;box-shadow:0 12px 40px rgba(0,0,0,.45);display:flex;flex-direction:column}
.dialog-msg{font-size:14px;line-height:1.65;margin-bottom:22px;color:var(--tx);white-space:pre-line;overflow-y:auto;flex:1;min-height:0}
.dialog-actions{display:flex;justify-content:flex-end;gap:10px;flex-shrink:0}
#appPromptInput{width:100%;padding:10px 12px;border:1.5px solid var(--bor);border-radius:8px;font-size:13px;font-family:inherit;background:var(--sur);color:var(--tx);margin-bottom:18px}

/* ─── Chip utente header ─── */
.user-chip-trigger{display:flex;align-items:center;gap:10px;cursor:pointer}

/* ─── Banner aggiornamento (creato via JS, classe applicata per lo stile base) ─── */
.app-update-banner{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:99999;background:#10231a;color:#fff;padding:12px 16px;border-radius:10px;bottom:calc(22px + env(safe-area-inset-bottom));box-shadow:0 8px 28px rgba(0,0,0,.35);display:flex;align-items:center;gap:12px;font-family:inherit;font-size:14px;max-width:92vw}
.app-update-banner button{background:#7ec651;color:#10231a;border:none;border-radius:6px;padding:7px 14px;font-weight:700;cursor:pointer;font-family:inherit}
.app-update-banner button.close{background:transparent;color:#9fd;font-size:20px;line-height:1;padding:0 4px}

/* ─── Toast semplice ─── */
.toast{position:fixed;left:50%;bottom:24px;bottom:calc(24px + env(safe-area-inset-bottom));transform:translateX(-50%);background:#10231a;color:#fff;padding:10px 18px;border-radius:8px;font-size:13px;box-shadow:0 8px 24px rgba(0,0,0,.3);z-index:9500}

/* ═══ v1.1 — Persone e rapporti + Employees Database (ex Costi del personale) ═══ */

/* ─── NAV A TAB (sticky sotto header) ─── */
.hr-nav{display:flex;gap:4px;align-items:center;background:var(--sur);border-bottom:1px solid var(--bor);padding:0 40px;position:sticky;top:66px;z-index:600;overflow-x:auto}
.hr-nav a,.hr-nav span{display:inline-flex;align-items:center;padding:14px 16px;font-family:'Montserrat',sans-serif;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--txm);text-decoration:none;border-bottom:3px solid transparent;white-space:nowrap;cursor:pointer}
.hr-nav a:hover{color:var(--gd)}
.hr-nav a.active{color:var(--gd);border-bottom-color:var(--lime)}
.hr-nav span.disabled{color:var(--mut);opacity:.6;cursor:default}

.hr-mut{color:var(--mut);font-size:12px}
.hr-mask{letter-spacing:.05em}

/* ─── TOOLBAR (ricerca + filtri + azioni) ─── */
.hr-toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:16px}
.hr-toolbar-spacer{flex:1 1 auto}
.hr-search{padding:8px 12px;border:1.5px solid var(--bor);border-radius:var(--rs);font-size:12px;font-family:inherit;min-width:220px;background:var(--sur)}
.hr-filter{padding:8px 10px;border:1.5px solid var(--bor);border-radius:var(--rs);font-size:12px;font-family:inherit;background:var(--sur);color:var(--tx)}
.hr-toggle-amounts{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--txm);cursor:pointer}
.hr-costs-date{display:flex;align-items:center;gap:10px;font-size:12px;color:var(--txm)}
.hr-costs-date input[type=date]{padding:7px 10px;border:1.5px solid var(--bor);border-radius:var(--rs);font-family:inherit}
.hr-help{color:var(--mut);font-size:11px}

/* ─── TABELLE (pattern table.ot di ProjectControl) ─── */
.hr-table-wrap{overflow-x:auto}
.hr-table{width:100%;border-collapse:collapse;background:var(--sur);border-radius:var(--rs);overflow:hidden}
.hr-table thead th{padding:9px 14px;font-family:'Montserrat',sans-serif;font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--mut);border-bottom:2px solid var(--bor);background:var(--sur2);text-align:left;white-space:nowrap;cursor:pointer}
.hr-table tbody tr{border-bottom:1px solid var(--bor);transition:background .1s;cursor:pointer}
.hr-table tbody tr:hover{background:var(--bg)}
.hr-table tbody td{padding:10px 14px;font-size:12px;color:var(--tx)}
.hr-table td.r,.hr-table th.r{text-align:right;font-family:'Montserrat',monospace;font-size:12px;white-space:nowrap}
.hr-table .trtot td{font-family:'Montserrat',sans-serif;font-weight:700;background:var(--gd);color:#fff;cursor:default}
.hr-table .trtot td.r{color:var(--lime)}
.hr-table .trtot-grand td{background:#10231a}
/* ─── Persone (v2.9): righe cessate in colore muted, colonne non ordinabili a dati mascherati, vuoto ─── */
.hr-people-count{margin:-8px 0 10px}
/* v5.9: barra di scansione fascicoli sopra l'elenco People (vuota se non in corso) */
.hr-people-scan:not(:empty){margin:-4px 0 14px;padding:10px 12px;border:1px solid var(--bor);border-radius:8px;background:var(--sur2)}
.hr-people-scan .hr-scan-progress{margin:8px 0}
.hr-table tbody tr.hr-row-muted td{color:var(--mut)}
.hr-table thead th.hr-th-nosort{cursor:default}
.hr-table tbody tr.hr-row-empty{cursor:default}
.hr-table tbody tr.hr-row-empty:hover{background:transparent}

/* ─── Employees Database (v2.9): tabella larga con thead a 2 righe sticky e Cognome/Nome sticky a sinistra ───
   Niente border-collapse: con `collapse` i bordi delle celle sticky non seguono lo scroll. L'offset
   `left` di .hr-db-sticky-2 dipende dalla larghezza fissa di Cognome (120px, HR_COSTS_W_COGNOME in hr-costs.js). */
.hr-db-wrap{overflow:auto;max-height:max(320px,calc(100vh - 300px))}
.hr-table-db{width:max-content;min-width:100%;border-collapse:separate;border-spacing:0;overflow:visible;border-radius:0}
.hr-table-db thead th{position:sticky;z-index:3;cursor:default;white-space:normal;letter-spacing:.04em;line-height:1.25;padding:6px 8px;vertical-align:bottom;border-bottom:1px solid var(--bor)}
.hr-table-db thead tr.hr-db-groups th{top:0;height:24px;box-sizing:border-box;padding:4px 8px;font-size:9px;letter-spacing:.1em;white-space:nowrap;vertical-align:middle;border-bottom:1px solid var(--bor)}
.hr-table-db thead tr.hr-db-cols th{top:24px;border-bottom:2px solid var(--bor)}
.hr-table-db thead th.r{font-family:'Montserrat',sans-serif;font-size:9px}
/* v6.3: titolo centrato sulla colonna del dato (richiesta utente): intestazioni (gruppi e colonne) e valori
   centrati, numeri compresi; restano a sinistra solo Cognome/Nome (colonne fisse) e le Note. */
.hr-table-db thead th,.hr-table-db tbody td,.hr-table-db td.r,.hr-table-db th.r,.hr-table-db .trtot td.r{text-align:center}
.hr-table-db thead th.hr-db-sticky-1,.hr-table-db thead th.hr-db-sticky-2,.hr-table-db tbody td.hr-db-sticky-1,.hr-table-db tbody td.hr-db-sticky-2,.hr-table-db td.hr-db-note{text-align:left}
.hr-table-db .hr-db-gstart{border-left:1px solid var(--bor)}
.hr-table-db tbody tr{cursor:default}
.hr-table-db tbody tr:hover{background:transparent}
.hr-table-db tbody td{padding:6px 8px;font-size:11px;border-bottom:1px solid var(--bor);white-space:nowrap}
.hr-table-db td.r{font-size:11px}
.hr-table-db td.hr-db-nil{color:var(--mut)}
.hr-table-db td.hr-db-name{white-space:normal;overflow-wrap:anywhere} /* cognomi lunghi restano nei 120px della colonna fissa (review v2.9) */
.hr-table-db td.hr-db-note{max-width:200px;overflow:hidden;text-overflow:ellipsis}
.hr-table-db tbody td .hr-back-link{margin-bottom:0;color:var(--tx);font-size:11px}
.hr-table-db tbody td .hr-back-link:hover{color:var(--gd);text-decoration:underline}
.hr-table-db tr.hr-db-empty td{padding:14px 12px;font-size:12px;color:var(--mut);white-space:normal}
/* Colonne sticky: sfondo pieno, bordo destro; z-index angolo (th) > celle sticky (td) > resto */
.hr-table-db .hr-db-sticky-1,.hr-table-db .hr-db-sticky-2{position:sticky}
.hr-table-db .hr-db-sticky-1{left:0}
.hr-table-db .hr-db-sticky-2{left:120px;border-right:1px solid var(--bor)}
.hr-table-db thead th.hr-db-sticky-1,.hr-table-db thead th.hr-db-sticky-2{z-index:5;background:var(--sur2)}
.hr-table-db tbody td.hr-db-sticky-1,.hr-table-db tbody td.hr-db-sticky-2{z-index:2;background:var(--sur)}
/* Riga Totale: la cella sticky (Cognome+Nome unite) resta scura e col bordo destro */
.hr-table-db .trtot td{border-bottom:none}
.hr-table-db .trtot td.hr-db-sticky-tot{background:var(--gd);border-right:1px solid var(--bor)}
.hr-table-db .trtot-grand td.hr-db-sticky-tot{background:#10231a}
.hr-table-db .trtot td.hr-db-gstart{border-left-color:transparent}

/* ─── BADGE tipologia/stato/severità ─── */
.hr-badge{display:inline-flex;align-items:center;font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:3px 9px;border-radius:20px;white-space:nowrap}
.hr-badge-societa{background:var(--sur2);color:var(--gd);border:1px solid var(--bor)}
.hr-badge-tip-dipendente{background:#e3f5df;color:#2f7a34}
.hr-badge-tip-cococo{background:#fff1cf;color:#8a6d00}
.hr-badge-tip-consulente{background:#dceffb;color:#1c6a95}
.hr-badge-tip-stagista,.hr-badge-tip-occasionale{background:#ececec;color:#5a5a5a}
.hr-badge-stato-attivo{background:#e3f5df;color:#27ae60}
.hr-badge-stato-in_uscita{background:#fde9d2;color:#e67e22}
.hr-badge-stato-cessato{background:#ececec;color:#7a7a7a}
.hr-badge-stato-da_avviare{background:#dceffb;color:#1c6a95}
.hr-badge-stato-senza_rapporto{background:#f3efdc;color:#8a6d1a} /* persona senza alcun rapporto (v3.0) */
.hr-badge-sev-bloccante{background:#ffe5e5;color:#c0392b}
.hr-badge-sev-verifica{background:#fff1cf;color:#8a6d00}
.hr-badge-sev-info{background:#dceffb;color:#1c6a95}

/* ─── KPI calcolati (icona lucchetto, sfondo sur2) ─── */
.hr-kpi-row{display:flex;flex-wrap:wrap;gap:12px;margin:10px 0}
.hr-kpi{background:var(--sur2);border-radius:var(--rs);padding:10px 16px;min-width:140px}
.hr-kpi.calc .hr-kpi-label::after{content:' 🔒';font-size:9px;opacity:.6}
.hr-kpi-label{font-size:10px;text-transform:uppercase;letter-spacing:.06em;color:var(--mut);margin-bottom:4px}
.hr-kpi-value{font-family:'Montserrat',monospace;font-size:15px;font-weight:700;color:var(--gd)}

/* ─── FORM (griglia label/input, 2 colonne) ─── */
.hr-form{display:grid;grid-template-columns:1fr;gap:10px}
.hr-form-2col{grid-template-columns:1fr 1fr}
.hr-form-row{display:flex;flex-direction:column;gap:4px}
.hr-form-row-full{grid-column:1/-1}
/* Form rapporto largo (v5.8): i wrapper interni non spezzano la griglia; titoli, note ed errori su tutta la riga */
.hr-modal.hr-modal-rapporto{max-width:min(960px,96vw)}
.hr-form-rapporto .hr-form-collar,.hr-form-rapporto .hr-form-dip,.hr-form-rapporto .hr-form-note,.hr-form-rapporto .hr-form-eco{display:contents}
.hr-form-rapporto .hr-form-group-title,.hr-form-rapporto .hr-mask-banner,.hr-form-rapporto .hr-error,.hr-form-rapporto .hr-mut{grid-column:1/-1}
.hr-form-rapporto .hr-form-note .hr-form-row{grid-column:1/-1}
/* v6.5: form assunzione (Piano) largo come il form rapporto */
.hr-form-assunzione .hr-form-row-full,.hr-form-assunzione .hr-error{grid-column:1/-1}
.hr-form-assunzione .hr-form-row-full>.hr-form{grid-template-columns:repeat(5,minmax(0,1fr));margin-top:6px}
.hr-form-assunzione .hr-form-row{min-width:0}
.hr-form-assunzione .hr-form-row input,.hr-form-assunzione .hr-form-row select{min-width:0;width:100%;box-sizing:border-box}
/* v6.8: campi importo con simbolo € */
.hr-euro-wrap{display:flex;align-items:center;gap:6px;min-width:0}
.hr-euro-wrap .hr-euro-sym{color:var(--mut);font-size:13px;font-weight:700;flex:0 0 auto}
.hr-euro-wrap>input{flex:1 1 auto;min-width:0;text-align:right;font-family:'Montserrat',monospace}
.hr-form-assunzione .hr-form-row-full>label{display:block;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--mut);font-weight:700}
.hr-form-dip{display:grid;grid-template-columns:1fr 1fr;gap:10px;grid-column:1/-1;border-top:1px dashed var(--bor);padding-top:10px;margin-top:4px}
.hr-form label{font-size:10px;text-transform:uppercase;letter-spacing:.05em;color:var(--mut)}
.hr-form input,.hr-form select,.hr-form textarea{padding:8px 10px;border:1.5px solid var(--bor);border-radius:var(--rs);font-family:inherit;font-size:13px;background:var(--sur);color:var(--tx)}
.hr-form textarea{min-height:60px;resize:vertical}
/* 01/11: iOS ingrandisce la pagina quando si tocca un campo con testo < 16px (es. "Note / motivazione" del modulo richiesta):
   su telefoni e tablet TUTTI i campi a 16px, così non scatta lo zoom automatico (lo zoom manuale con due dita resta). */
@media (max-width:700px), (hover:none) and (pointer:coarse){
  input:not([type=checkbox]):not([type=radio]):not([type=range]), select, textarea{font-size:16px !important}
  .hr-piano-coeff-item input{width:66px}
}
.hr-form input.changed{border-color:var(--lime);box-shadow:0 0 0 2px rgba(141,198,63,.25)}
.hr-form input:disabled{background:var(--sur2);color:var(--mut);cursor:not-allowed}
.hr-mask-banner{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fff4d2;border:1px solid #e6c95a;color:#8a6d00;border-radius:var(--rs);padding:10px 14px;margin-bottom:14px;font-size:12px}
.hr-chips{display:flex;flex-wrap:wrap;gap:6px}

/* ─── MODALE piccolo (rapporto/variazione/nuova persona) ─── */
.hr-modal-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);display:flex;align-items:center;justify-content:center;z-index:8000;padding:20px}
.hr-modal{background:var(--bg);border-radius:14px;padding:24px 26px;max-width:560px;width:100%;max-height:88vh;max-height:88dvh;overflow-y:auto;box-shadow:var(--shL)}
/* 01/11: su iPhone `vh` include lo spazio sotto le barre del browser → si usa l'altezza dinamica `dvh` (spazio davvero visibile),
   con `viewport-fit=cover` nel meta viewport i margini env(safe-area-inset-*) valgono anche per la barretta in basso. */
.hr-modal h3{font-family:'Montserrat',sans-serif;font-size:16px;color:var(--gd);margin-bottom:16px}
.hr-modal-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}
/* Anteprima file dentro il tool (v3.5): modale larga con Drive preview */
.hr-modal.hr-modal-wide{max-width:min(1100px,96vw)}
.hr-preview-frame{display:block;width:100%;height:72vh;border:1px solid var(--bor);border-radius:8px;background:#fff}
.hr-preview-img{display:block;max-width:100%;max-height:72vh;margin:0 auto;border:1px solid var(--bor);border-radius:8px;background:#fff}
.hr-doc-head-right{display:flex;align-items:center;gap:12px}
/* Menù a tendina "Documenti richiesti" (v4.0) */
.hr-dd{position:relative}
.hr-dd-panel{position:absolute;top:calc(100% + 4px);right:0;min-width:300px;max-height:60vh;overflow-y:auto;background:#fff;border:1px solid var(--bor);border-radius:8px;box-shadow:var(--shL);z-index:900;display:flex;flex-direction:column;padding:8px}
.hr-dd-item{display:flex;align-items:center;gap:8px;padding:6px 8px;border-radius:6px;font-size:13px;cursor:pointer;white-space:nowrap}
.hr-dd-item:hover{background:var(--sur2)}
.hr-dd-item input{margin:0}
.hr-dd-tag{font-size:10px;color:var(--mut);margin-left:4px}
.hr-dd-add{border-top:1px solid var(--bor);margin-top:6px;padding-top:8px;display:flex;justify-content:flex-start}
.hr-link-btn{background:none;border:none;padding:0;font:inherit;font-size:12px;color:var(--gd);text-decoration:underline;cursor:pointer}
/* Bottoni-icona della checklist documenti (v3.8): icone SVG via mask CSS, colore = currentColor */
.hr-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:var(--rs);border:1.5px solid var(--gd);background:transparent;color:var(--gd);cursor:pointer;padding:0;transition:all .15s}
.hr-icon-btn:hover{background:var(--gd);color:#fff}
.hr-icon-btn.hr-icon-btn-sm{width:22px;height:22px;vertical-align:middle;margin-left:6px}
.hr-ico{display:inline-block;width:16px;height:16px;background-color:currentColor;-webkit-mask:var(--ico) center/contain no-repeat;mask:var(--ico) center/contain no-repeat}
.hr-icon-btn-sm .hr-ico{width:12px;height:12px}
.hr-ico-eye{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 12s4-7 11-7 11 7 11 7-4 7-11 7S1 12 1 12z'/%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3C/svg%3E")}
.hr-ico-swap{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M17 1l4 4-4 4'/%3E%3Cpath d='M3 11V9a4 4 0 0 1 4-4h14'/%3E%3Cpath d='M7 23l-4-4 4-4'/%3E%3Cpath d='M21 13v2a4 4 0 0 1-4 4H3'/%3E%3C/svg%3E")}
.hr-ico-clip{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48'/%3E%3C/svg%3E")}
.hr-ico-ban{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='10'/%3E%3Cline x1='4.93' y1='4.93' x2='19.07' y2='19.07'/%3E%3C/svg%3E")}
.hr-ico-upload{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpolyline points='17 8 12 3 7 8'/%3E%3Cline x1='12' y1='3' x2='12' y2='15'/%3E%3C/svg%3E")}
.hr-doc-row.hr-doc-drop{background:var(--sur2);outline:2px dashed var(--gd);outline-offset:-2px;border-radius:6px}
.hr-dropzone{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:12px;padding:14px;border:2px dashed var(--bor);border-radius:8px;color:var(--mut);font-size:12px;cursor:pointer;transition:all .15s}
.hr-dropzone:hover,.hr-dropzone.hr-doc-drop{border-color:var(--gd);background:var(--sur2);color:var(--gd)}
.hr-dropzone .hr-ico{width:18px;height:18px}
.hr-upload-busy{pointer-events:none;opacity:.7}
.hr-upload-stato{padding:8px 0;font-weight:700}
.hr-ico-plus{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round'%3E%3Cline x1='12' y1='5' x2='12' y2='19'/%3E%3Cline x1='5' y1='12' x2='19' y2='12'/%3E%3C/svg%3E")}
.hr-ico-edit{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 20h9'/%3E%3Cpath d='M16.5 3.5a2.12 2.12 0 0 1 3 3L7 19l-4 1 1-4L16.5 3.5z'/%3E%3C/svg%3E")}
.hr-ico-trash{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='3 6 5 6 21 6'/%3E%3Cpath d='M19 6l-1 14a2 2 0 0 1-2 2H8a2 2 0 0 1-2-2L5 6'/%3E%3Cpath d='M10 11v6'/%3E%3Cpath d='M14 11v6'/%3E%3Cpath d='M9 6V4a1 1 0 0 1 1-1h4a1 1 0 0 1 1 1v2'/%3E%3C/svg%3E")}
.hr-ico-exit{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4'/%3E%3Cpolyline points='16 17 21 12 16 7'/%3E%3Cline x1='21' y1='12' x2='9' y2='12'/%3E%3C/svg%3E")}
.hr-ico-euro{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18.5 6.5A7 7 0 0 0 7 12a7 7 0 0 0 11.5 5.5'/%3E%3Cline x1='4' y1='10' x2='14' y2='10'/%3E%3Cline x1='4' y1='14' x2='14' y2='14'/%3E%3C/svg%3E")}
.hr-piano-azioni{white-space:nowrap}
.hr-piano-azioni .hr-icon-btn{margin-right:4px}
.hr-ico-check{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='20 6 9 17 4 12'/%3E%3C/svg%3E")}
.hr-ico-flag{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z'/%3E%3Cline x1='4' y1='22' x2='4' y2='15'/%3E%3C/svg%3E")}
.hr-icon-btn.hr-icon-btn-lime{background:var(--lime);border-color:var(--lime);color:var(--gd)}
.hr-icon-btn.hr-icon-btn-lime:hover{background:var(--gd);border-color:var(--gd);color:#fff}
.hr-dd-item .hr-dd-flag{border-color:var(--bor);color:var(--mut);margin-left:auto} /* bandierina sempre a destra della voce */
.hr-dd-flag.attivo{border-color:var(--gd);color:var(--gd);background:var(--sur2)}
.hr-dd-flag.attivo .hr-ico-flag{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 15s1-1 4-1 5 2 8 2 4-1 4-1V3s-1 1-4 1-5-2-8-2-4 1-4 1z'/%3E%3Cline x1='4' y1='22' x2='4' y2='15'/%3E%3C/svg%3E")}
.hr-dd-del{margin-left:4px}
.hr-ico-calendar{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='3' y='4' width='18' height='18' rx='2'/%3E%3Cline x1='16' y1='2' x2='16' y2='6'/%3E%3Cline x1='8' y1='2' x2='8' y2='6'/%3E%3Cline x1='3' y1='10' x2='21' y2='10'/%3E%3C/svg%3E")}
.hr-date-wrap{display:flex;align-items:center;gap:6px;position:relative}
/* Calendario del tool (v5.1) */
.hr-cal{position:absolute;top:calc(100% + 4px);right:0;z-index:950;background:#fff;border:1px solid var(--bor);border-radius:10px;box-shadow:var(--shL);padding:10px;width:270px}
.hr-cal-head{display:flex;align-items:center;gap:6px;margin-bottom:8px}
.hr-cal-titolo{flex:1;text-align:right;font-weight:700;font-size:13px;color:var(--gd)}
.hr-cal-anno{padding:3px 4px;border:1px solid var(--bor);border-radius:6px;font:inherit;font-size:12px;background:var(--sur)}
.hr-cal-nav{width:26px;height:26px;border:1px solid var(--bor);border-radius:6px;background:var(--sur);cursor:pointer;font-size:16px;line-height:1;color:var(--gd)}
.hr-cal-nav:hover{background:var(--gd);color:#fff}
.hr-cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}
.hr-cal-dow{text-align:center;font-size:10px;font-weight:700;color:var(--mut);padding:2px 0}
.hr-cal-giorno{height:30px;border:none;border-radius:6px;background:transparent;cursor:pointer;font:inherit;font-size:12px;color:var(--tx)}
.hr-cal-giorno:hover{background:var(--sur2)}
.hr-cal-giorno.oggi{outline:1.5px solid var(--lime);outline-offset:-1.5px}
.hr-cal-giorno.scelto{background:var(--gd);color:#fff}
.hr-cal-foot{display:flex;justify-content:space-between;margin-top:8px}
.hr-date-wrap input{flex:1 1 auto;min-width:0}
.hr-date-btn{flex:0 0 auto}
.hr-ico-gear{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='12' cy='12' r='3'/%3E%3Cpath d='M19.4 15a1.65 1.65 0 0 0 .33 1.82l.06.06a2 2 0 0 1-2.83 2.83l-.06-.06a1.65 1.65 0 0 0-1.82-.33 1.65 1.65 0 0 0-1 1.51V21a2 2 0 0 1-4 0v-.09A1.65 1.65 0 0 0 9 19.4a1.65 1.65 0 0 0-1.82.33l-.06.06a2 2 0 0 1-2.83-2.83l.06-.06a1.65 1.65 0 0 0 .33-1.82 1.65 1.65 0 0 0-1.51-1H3a2 2 0 0 1 0-4h.09A1.65 1.65 0 0 0 4.6 9a1.65 1.65 0 0 0-.33-1.82l-.06-.06a2 2 0 0 1 2.83-2.83l.06.06a1.65 1.65 0 0 0 1.82.33H9a1.65 1.65 0 0 0 1-1.51V3a2 2 0 0 1 4 0v.09a1.65 1.65 0 0 0 1 1.51 1.65 1.65 0 0 0 1.82-.33l.06-.06a2 2 0 0 1 2.83 2.83l-.06.06a1.65 1.65 0 0 0-.33 1.82V9a1.65 1.65 0 0 0 1.51 1H21a2 2 0 0 1 0 4h-.09a1.65 1.65 0 0 0-1.51 1z'/%3E%3C/svg%3E")}
.hr-dd-panel.hr-dd-panel-inline{position:static;box-shadow:none;border:1px solid var(--bor);min-width:0;max-height:60vh;margin-top:8px}
.hr-ico-undo{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='1 4 1 10 7 10'/%3E%3Cpath d='M3.51 15a9 9 0 1 0 2.13-9.36L1 10'/%3E%3C/svg%3E")}

/* ─── SCHEDA PERSONA (pagina intera) ─── */
.hr-scheda-header{margin-bottom:22px}
.hr-back-link{display:inline-block;font-size:12px;color:var(--txm);text-decoration:none;margin-bottom:8px}
.hr-back-link:hover{color:var(--gd)}
.hr-section-head .hr-back-link{margin-bottom:0} /* link accanto a un titolo di sezione: sull'asse del titolo (review v2.8) */
.hr-scheda-header h2{font-family:'Montserrat',sans-serif;font-size:22px;color:var(--gd);margin:2px 0 6px}
.hr-scheda-badges{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.hr-chip{display:inline-flex;gap:6px;align-items:center;background:var(--sur);border:1px solid var(--bor);border-radius:20px;padding:4px 8px}
.hr-section{background:var(--sur);border:1px solid var(--bor);border-radius:var(--r);padding:20px 22px;margin-bottom:18px}
.hr-section h3{font-family:'Montserrat',sans-serif;font-size:14px;color:var(--gd);margin-bottom:14px}
.hr-section-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.hr-section-head h3{margin-bottom:0}
.hr-rapporto-card{display:flex;align-items:flex-start;gap:16px;width:100%;box-sizing:border-box;border:1px solid var(--bor);border-radius:var(--rs);padding:11px 14px;margin-bottom:8px;background:var(--sur2)}
.hr-rapporto-main{flex:1 1 auto;min-width:0}
.hr-rapporto-azioni{flex:0 0 auto;display:flex;gap:6px;align-items:center}
.hr-rapporto-card-top{display:flex;align-items:center;gap:10px;margin-bottom:9px;flex-wrap:wrap}
.hr-section-actions{margin-top:16px}
/* Configurazione: riquadro chiuso "Strumenti tecnici" (v9.16) con le sezioni di servizio */
.hr-config-tecnici{border:1px dashed var(--bor);border-radius:var(--r);padding:14px 18px;margin-bottom:18px}
.hr-config-tecnici>summary{cursor:pointer;font-family:'Montserrat',sans-serif;font-size:14px;font-weight:600;color:var(--gd)}
.hr-config-tecnici[open]>summary{margin-bottom:10px}
.hr-config-tecnici>.hr-help{margin-bottom:14px}
.hr-config-tecnici>.hr-section:last-child{margin-bottom:0}
.hr-form-group-title{font-size:10px;text-transform:uppercase;letter-spacing:.1em;font-weight:700;color:var(--gd);margin:14px 0 4px;padding-bottom:4px;border-bottom:1px solid var(--bor)}
.hr-form-group-title:first-of-type{margin-top:6px}
.hr-rapporto-badges{display:flex;gap:6px;flex-wrap:wrap}
.hr-rapporto-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:7px 14px}
.hr-rapporto-k{font-size:9px;text-transform:uppercase;letter-spacing:.08em;color:var(--mut);font-weight:700;margin-bottom:1px}
.hr-rapporto-v{font-size:13px;color:var(--tx);font-weight:600;line-height:1.3}
.hr-retrib-block{border-top:1px solid var(--bor);padding-top:14px;margin-top:14px}
.hr-retrib-block:first-of-type{border-top:none;padding-top:0;margin-top:0}
.hr-retrib-top{display:flex;align-items:center;gap:8px;margin-bottom:6px}
.hr-var-history{margin-top:12px}
.hr-var-row{border-bottom:1px solid var(--bor);padding:8px 0}
.hr-var-row-latest{font-weight:600}
.hr-var-row-head{display:flex;align-items:center;gap:10px;cursor:pointer;font-size:13px}
.hr-var-row-detail{padding:8px 0 0 4px}
.hr-var-detail-line{font-size:12px;color:var(--txm);padding:2px 0}

/* ─── BANNER Drive (fallback manuale) ─── */
.hr-drive-banner{position:fixed;left:50%;bottom:22px;bottom:calc(22px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:9000;background:#fff4d2;color:#8a6d00;border:1px solid #e6c95a;padding:12px 16px;border-radius:10px;box-shadow:0 8px 28px rgba(0,0,0,.2);display:flex;align-items:center;gap:12px;font-size:13px;max-width:92vw}

/* ─── WIZARD IMPORT ─── */
.hr-steps{display:flex;gap:6px;margin-bottom:20px}
.hr-step{padding:8px 14px;border-radius:20px;background:var(--sur2);color:var(--mut);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.04em}
.hr-step.active{background:var(--gd);color:#fff}
.hr-step.done{background:var(--lime);color:var(--gd)}
.hr-dropzone{border:2px dashed var(--bor);border-radius:var(--r);padding:36px 20px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:14px;color:var(--txm)}
.hr-dropzone.drag{border-color:var(--lime);background:rgba(141,198,63,.08)}
.hr-import-counters{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:18px}
.hr-import-counter{background:var(--sur2);border-radius:var(--rs);padding:10px 16px;min-width:90px;text-align:center}
.hr-import-counter-value{font-family:'Montserrat',monospace;font-size:18px;font-weight:700;color:var(--gd)}
.hr-import-counter-label{font-size:10px;text-transform:uppercase;color:var(--mut);letter-spacing:.04em}
.hr-wizard-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:18px}
.hr-error{margin-top:14px;padding:10px 14px;background:#ffe5e5;color:#c0392b;border-radius:8px;font-size:12px}

/* ═══ v1.2 — Fascicoli documentali e scadenze ═══ */

/* ─── Badge numerico (pillola) su tab Scadenze e card Home "Scadenze" ─── */
.hr-nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;margin-left:6px;border-radius:20px;background:var(--red);color:#fff;font-family:'Montserrat',sans-serif;font-size:9px;font-weight:700;line-height:1}
.hr-nav-badge.hr-nav-badge-ambra{background:var(--ora)}
.tool-card .hr-home-card-badge{position:absolute;top:14px;right:14px;margin-left:0}

/* ─── KPI riga (riuso .hr-kpi-row già esistente per Fascicoli) ─── */
.hr-kpi-row .hr-kpi{min-width:120px}

/* ─── Barra di scansione (indeterminata, shimmer verde lime) ─── */
.hr-scan-progress{position:relative;height:4px;border-radius:4px;background:var(--sur2);overflow:hidden;margin:10px 0}
.hr-scan-progress::after{content:'';position:absolute;top:0;left:0;height:100%;width:40%;background:linear-gradient(90deg,transparent,var(--lime),transparent);animation:hrScanShimmer 1.1s linear infinite}
@keyframes hrScanShimmer{0%{left:-40%}100%{left:100%}}

/* ─── Sezione Documenti (scheda persona): checklist a righe ─── */
.hr-doc-list{margin-top:4px}
.hr-doc-row{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px solid var(--bor)}
.hr-doc-row:last-child{border-bottom:none}
.hr-doc-row.hr-doc-row-na{opacity:.55}
.hr-doc-main{flex:1 1 auto;min-width:0}
.hr-doc-label{font-size:13px;color:var(--tx)}
.hr-doc-file{font-family:'Montserrat',monospace;font-size:11px;color:var(--mut);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;margin-top:2px}
.hr-doc-actions{display:flex;gap:6px;flex-wrap:wrap;flex-shrink:0}

/* Pallino di stato (riconosciuto/confermato/mancante/non applicabile) */
.hr-doc-status{display:inline-flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:50%;font-size:12px;flex-shrink:0;background:var(--sur2);color:var(--mut)}
.hr-doc-status.trovato{background:var(--grn);color:#fff}
.hr-doc-status.confirmed{background:var(--grn);color:#fff} /* v3.9: file scelto a mano = stessa spunta piena del riconosciuto (la distinzione confondeva) */
.hr-doc-status-na{background:transparent;color:var(--mut);opacity:.6}

/* ─── Albero file (collassato dietro "Mostra tutti i file") ─── */
.hr-tree{margin-top:10px;font-size:12px}
.hr-tree-node{padding:3px 0;display:flex;align-items:center;gap:8px}
.hr-tree-node.lvl-1{padding-left:0}
.hr-tree-node.lvl-2{padding-left:18px}
.hr-tree-node.lvl-3{padding-left:36px}
.hr-tree-node.is-folder{font-weight:700;color:var(--txm)}
.hr-tree-node a{color:var(--gd);text-decoration:none;font-size:11px}
.hr-tree-node a:hover{text-decoration:underline}

.hr-scad-negativo{color:var(--red);font-weight:700}

/* ─── Intestazione cartella fascicolo ─── */
.hr-fasc-header{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:14px}
.hr-fasc-path{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ═══ v1.3 — Configurazione: utenti, ruoli, moduli; conflitto di salvataggio ═══ */

/* ─── Overlay "Accesso non abilitato" (stessa card del login, senza pulsante Google) ─── */
#hrDenied .sub{margin-bottom:22px}

/* ─── Banner di conflitto (precondizione di scrittura, priorità sul banner giallo standard) ─── */
.hr-drive-banner.hr-drive-banner-conflict{background:#ffe5e5;color:#c0392b;border:1px solid #f3b8b0}

/* ─── Sezione Utenti/Allineamento/Sistema (Configurazione) ─── */
.hr-config-actions{display:flex;gap:6px;flex-wrap:wrap}
.hr-config-coll-warn{margin-top:4px;padding:5px 9px;background:#fdecea;color:#a12a1f;border:1px solid #a12a1f;border-radius:6px;font-size:11.5px;font-weight:600;line-height:1.4}
.hr-config-coll-riepilogo{margin:0 0 10px;padding:10px 14px;background:#fdecea;color:#a12a1f;border:1px solid #a12a1f;border-radius:8px;font-size:12.5px;font-weight:600;line-height:1.5}
.hr-config-moduli{display:flex;flex-wrap:wrap;gap:12px}
.hr-config-modulo-check{display:flex;align-items:center;gap:6px;font-size:12px;color:var(--txm);cursor:pointer}
.hr-config-sistema{margin-bottom:14px}
.hr-config-info-row{padding:4px 0;font-size:13px}

/* Blocco scuro (esito Database D1 in Configurazione) e riga di pulsanti della sezione Allineamento */
.hr-config-cmd{background:#10231a;color:#d7ecd0;border-radius:var(--rs);padding:14px 16px;margin:10px 0}
.hr-config-cmd-actions{display:flex;gap:8px;flex-wrap:wrap}

@media (max-width:768px){
  header{padding:0 16px}
  main{padding:20px 16px}
  .auth-card{padding:32px 24px}
  .hr-nav{padding:0 16px}
  .hr-form-2col,.hr-form-dip{grid-template-columns:1fr}
  .hr-form-assunzione .hr-form-row-full>.hr-form{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hr-org-panels{grid-template-columns:1fr}
  .hr-home{padding:40px 20px 90px}
  .tool-card-cfg{width:100%}
  .hr-home-foot{left:20px}
}

/* v1.3 — avviso limiti delle restrizioni in Configurazione */
.hr-config-warn{background:#fff8e6;border:1px solid #e0b64a;color:#5a4300;border-radius:8px;padding:10px 14px;font-size:12.5px;line-height:1.5;margin:8px 0 14px}

/* v1.4 — crescita retribuzione nello storico variazioni */
.hr-var-growth{margin:10px 0 4px;font-size:12px}
.hr-var-annuo{font-family:ui-monospace,Menlo,monospace;font-size:12px;color:var(--tx);margin-left:10px}

/* ═══ v1.5 — Organigramma ═══════════════════════════════════════════════════ */

/* ─── Barra zoom/azioni (sticky sotto la nav, riusa .hr-toolbar-spacer/.btn) ─── */
.hr-org-zoom-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;background:var(--sur);border:1px solid var(--bor);border-radius:var(--rs);padding:10px 14px;margin-bottom:16px;position:sticky;top:66px;z-index:400} /* 09/10: senza barra moduli, subito sotto l'header */
.hr-org-zoom-group{display:flex;gap:4px}

/* ─── Canvas ad albero: scroll orizzontale sempre, zoom via transform scale ─── */
.hr-org-canvas{overflow-x:auto;padding:36px 24px 20px;background:var(--sur);border:1px solid var(--bor);border-radius:var(--r);margin-bottom:18px}
/* Zoom con la proprietà `zoom` (non transform): riduce anche il layout, così l'albero si ricentra e
   occupa lo spazio disponibile invece di restare tagliato a sinistra (segnalazione utente 27/09).
   "Adatta" (default) calcola il fattore per far entrare l'albero nella larghezza del riquadro. */
.hr-org-scale{width:max-content;min-width:100%}
.hr-org-scale.hr-org-zoom-80{zoom:.8}
.hr-org-scale.hr-org-zoom-60{zoom:.6}
.hr-org-print-head{display:none}

/* Una riga per livello di profondità: le scatole sono centrate, con un connettore a T verso la
   riga superiore (pseudo-elementi: linea orizzontale sulla riga + stub verticale per scatola). */
.hr-org-row{position:relative;display:flex;justify-content:center;align-items:flex-start;gap:32px;padding-top:22px;margin-bottom:6px;min-width:max-content}
.hr-org-row:first-child{padding-top:0}
/* Fascia delle funzioni (v2.7, come le righe 19/26 del foglio): righe bilanciate di colonne; in ogni colonna la
   funzione e, impilate sotto, le sue sotto-unità (stessa larghezza della colonna). */
.hr-org-row.hr-org-band{padding-top:28px}
.hr-org-col{display:flex;flex-direction:column;align-items:stretch;gap:8px;flex:0 0 auto;width:200px}
/* v7.8: fasce come nel file Excel */
.hr-org-row.hr-org-gruppi{align-items:flex-start;gap:28px}
.hr-org-gruppo{display:flex;flex-direction:column;gap:12px;flex:0 0 auto}
.hr-org-gruppo-head{background:#d9d9d9;color:#2b2b2b;font-family:'Montserrat',sans-serif;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;text-align:center;padding:7px 14px;border-radius:var(--rs)}
.hr-org-gruppo-cols{display:flex;align-items:flex-start;gap:20px}
.hr-org-stack{display:flex;flex-direction:column;gap:14px;flex:0 0 auto}
.hr-org-col .hr-org-box{width:auto;min-width:0}
/* Connettori tra i livelli rimossi su richiesta dell'utente (v1.7): i colori delle fasce bastano a leggere la gerarchia. */

.hr-org-box{position:relative;width:180px;flex:0 0 auto;background:var(--sur);border:1.5px solid var(--bor);border-radius:var(--rs);padding:0;overflow:hidden}
.hr-org-box.hr-org-cluster{width:auto;min-width:200px}
.hr-org-box-head{display:flex;flex-direction:column;gap:0}
/* Come nell'Excel: fascia del titolo a colore PIENO della linea gerarchica, testo bianco in grassetto;
   sotto, il nome su fondo chiaro. Il colore è quello del dirigente da cui la posizione discende. */
.hr-org-eyebrow{font-size:10px;text-transform:uppercase;letter-spacing:.06em;font-weight:700;color:#fff;background:var(--org-slate);padding:7px 30px;line-height:1.3;text-align:center} /* v8.5: ruolo centrato nella casella (padding simmetrico: il ⋯ sta nei 30px a destra) */
.hr-org-nome{font-weight:700;font-size:13px;color:var(--tx);padding:7px 10px 8px;background:#f0f0f2}
.hr-org-aperta-label{font-style:italic;font-weight:400;color:var(--mut)}
.hr-org-box .hr-badge{margin:0 10px 8px}
.hr-org-box .hr-org-members{margin:0;padding:8px 10px 10px;border-top:1px dashed var(--bor);background:var(--sur)}

/* Linee gerarchiche: linea CEO = grigio-blu, Deputy = teal / verde scuro, CFO = viola (stessi colori del foglio) */
.hr-org-box.area-neutro .hr-org-eyebrow{background:var(--org-slate)}
.hr-org-box.area-teal .hr-org-eyebrow{background:var(--org-teal)}
.hr-org-box.area-verde .hr-org-eyebrow{background:#175956}
.hr-org-box.area-viola .hr-org-eyebrow{background:var(--org-purple)}
/* v7.9: le sotto-unità ereditano il colore della casella sopra (richiesta utente: Origination e Projects
   Development come Development); il grigio del foglio non è più il default. */
.hr-org-box.hr-org-colorata .hr-org-eyebrow{background:var(--box)}
.hr-org-box.aperta.hr-org-colorata.hr-org-colorata{border-color:var(--box)} /* specificità > regole area-* più avanti */
.hr-org-member.hr-org-colorata.hr-org-colorata{border-left-color:var(--box)}
.hr-org-swatches{display:flex;flex-wrap:wrap;gap:8px;margin:6px 0 10px}
.hr-org-swatch{width:34px;height:34px;border-radius:8px;border:2px solid transparent;cursor:pointer;padding:0}
.hr-org-swatch.selected{border-color:var(--tx);box-shadow:0 0 0 2px #fff inset}
.hr-org-member.area-teal{border-left-color:var(--org-teal)}
.hr-org-member.area-verde{border-left-color:#175956}
.hr-org-member.area-viola{border-left-color:var(--org-purple)}
.hr-org-member.area-neutro{border-left-color:var(--org-slate)}

/* Posizioni aperte: fascia colorata mantenuta, corpo tratteggiato e testo grigio */
.hr-org-box.aperta{border-style:dashed}
.hr-org-box.aperta .hr-org-nome{background:transparent;color:#9e9e9e}
.hr-org-box.aperta.area-teal{border-color:var(--org-teal)}
.hr-org-box.aperta.area-verde{border-color:#175956}
.hr-org-box.aperta.area-viola{border-color:var(--org-purple)}
.hr-org-box.aperta.area-neutro{border-color:var(--org-slate)}

@keyframes hrOrgFlash{0%{box-shadow:0 0 0 3px var(--lime)}100%{box-shadow:0 0 0 0 transparent}}
.hr-org-box.hr-org-flash,.hr-org-member.hr-org-flash{animation:hrOrgFlash .6s ease-out}

/* Membri semplici = chip dentro il cluster della funzione/unità (mai connettori) */
/* Membri in colonna (uno per riga), non affiancati: richiesta utente 27/09 */
.hr-org-members{display:flex;flex-direction:column;gap:6px;margin-top:10px;padding-top:10px;border-top:1px dashed var(--bor)}
.hr-org-member{position:relative;min-width:110px;width:100%;box-sizing:border-box;background:var(--sur);border:1.5px solid var(--bor);border-left:4px solid var(--mut);border-radius:var(--rs);padding:6px 8px;font-size:12px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.hr-org-member.aperta{background:transparent;border-style:dashed}

/* Kebab "⋯" e popover azioni (solo in modalità modifica) */
.hr-org-kebab-wrap{position:relative;margin-left:auto}
.hr-org-box .hr-org-kebab-wrap{position:absolute;top:4px;right:6px;margin-left:0}
.hr-org-box .hr-org-kebab{color:#fff}
.hr-org-kebab{background:transparent;border:none;color:var(--mut);font-size:16px;line-height:1;cursor:pointer;padding:2px 6px;border-radius:6px}
.hr-org-kebab:hover{background:var(--sur2);color:var(--tx)}
.hr-org-menu{position:absolute;top:calc(100% + 4px);right:0;min-width:180px;background:#fff;border:1px solid var(--bor);border-radius:8px;box-shadow:var(--shL);z-index:900;display:flex;flex-direction:column;padding:6px;gap:2px}
.hr-org-menu.hr-org-menu-portal{position:fixed;top:0;left:0;right:auto;z-index:1200}
.hr-org-menu-item{background:transparent;border:none;text-align:left;padding:8px 10px;font-size:12px;color:var(--tx);border-radius:6px;cursor:pointer}
.hr-org-menu-item:hover{background:var(--sur2)}
.hr-org-menu-item:disabled{color:var(--mut);cursor:not-allowed}

/* Pannelli sotto il canvas (impilati su mobile, vedi media query sopra) */
.hr-org-panels{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.hr-org-panels>.hr-section:only-child{grid-column:1/-1}
/* v8.4: assunzioni pianificate in arancione (come le celle del foglio), senza la scritta tra parentesi */
.hr-org-member.hr-org-pianificata{background:#fad9b5;border:1.5px solid #d98c2b;border-left:4px solid #d98c2b;color:#5a3a0a;font-weight:600}
.hr-org-member.hr-org-pianificata.hr-org-colorata{border-left-color:#d98c2b}
.hr-org-box.hr-org-pianificata.hr-org-pianificata{border-color:#d98c2b;border-style:solid} /* batte .aperta.area-* */
.hr-org-box.hr-org-pianificata .hr-org-nome-pianificata{background:#fad9b5;color:#5a3a0a;font-weight:700}
/* v6.2: drag & drop nell'organigramma */
.hr-org-draggable{cursor:grab}
.hr-org-draggable:active{cursor:grabbing}
.hr-org-dragging{opacity:.45}
.hr-org-box.hr-org-drop-over,.hr-org-member.hr-org-drop-over{outline:2px solid var(--lime);outline-offset:2px;box-shadow:0 0 0 4px rgba(170,214,0,.25)}
.hr-org-box.hr-org-drop-no,.hr-org-member.hr-org-drop-no{outline:2px dashed #c0392b;outline-offset:2px}
.hr-org-nome.hr-org-drop-over{outline:2px solid var(--lime);outline-offset:-2px;background:rgba(141,198,63,.18)}
.hr-org-nome.hr-org-drop-no{outline:2px dashed #c0392b;outline-offset:-2px}
.hr-section.hr-org-drop-fuori.hr-org-drop-over{outline:2px dashed var(--lime);outline-offset:-4px;background:rgba(170,214,0,.08)}
.hr-org-drag-hint{margin:-4px 0 10px}
.hr-org-persona-libera{cursor:grab}

/* Badge informativo "dal MM/AAAA" (posizioni future / assunzioni pianificate senza posizione,
   SPEC v2.0 §3): outline grigio-blu, mai a colore pieno (non è un'eccezione da segnalare, solo
   un'informazione sulla decorrenza). */
.hr-org-badge-futuro{display:inline-flex;align-items:center;font-size:9px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:3px 9px;border-radius:20px;white-space:nowrap;background:transparent;color:var(--org-slate);border:1px solid var(--org-slate)}

/* ─── Stampa: solo l'albero, orizzontale, zoom 100% forzato ─── */
@media print{
  body *{visibility:hidden}
  .hr-org-canvas,.hr-org-canvas *{visibility:visible}
  .hr-org-canvas{position:absolute;left:0;top:0;overflow:visible;border:none;transform:none !important;padding:0}
  .hr-org-scale{zoom:1 !important}
  .hr-org-print-head{display:block;text-align:center;font-family:'Montserrat',sans-serif;font-weight:800;font-size:16px;color:var(--gd);margin-bottom:16px}
  .hr-org-box,.hr-org-cluster,.hr-org-member,.hr-org-col{break-inside:avoid}
  .hr-org-kebab-wrap{display:none}
  @page{size:landscape}
}

/* ═══ v2.0 — Piano del personale ═══════════════════════════════════════════ */

/* ─── Sotto-nav condivisa: Piano (Sintesi · Risorse · …) ed Employees Database (Dipendenti · Co.Co.Co · Consulenti), stessa grafica di
   .hr-nav, sticky sotto la nav principale + toolbar comune ─── */
.hr-subnav{display:flex;gap:4px;align-items:center;background:var(--sur);border:1px solid var(--bor);border-radius:var(--rs);padding:0 10px;margin-bottom:16px;position:sticky;top:66px;z-index:550;overflow-x:auto}
.hr-subnav a{display:inline-flex;align-items:center;padding:12px 14px;font-family:'Montserrat',sans-serif;font-size:11px;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--txm);text-decoration:none;border-bottom:3px solid transparent;white-space:nowrap;cursor:pointer}
.hr-subnav a:hover{color:var(--gd)}
.hr-subnav a.active{color:var(--gd);border-bottom-color:var(--lime)}
.hr-subnav-count{margin-left:6px;font-size:10px;font-weight:600;letter-spacing:0;color:var(--mut)}
/* v8.6: sotto-barra di People sopra la vista; le sotto-barre interne (Piano, Database) stanno sotto di lei */
.hr-subnav-people{margin-bottom:16px}
#hrView .hr-subnav{top:114px}
.hr-subnav a.active .hr-subnav-count{color:var(--txm)}

/* ─── Toggle a due stati (13ª/14ª ↔ Uniforme; usato anche per altri switch del Piano) ─── */
.hr-piano-toggle{display:flex;gap:4px}
.hr-piano-toggle button{white-space:nowrap}

/* ─── Grafico a barre CSS puro (Sintesi): altezza % del max, colore per anno reale/pianificato ─── */
.hr-piano-chart{display:flex;align-items:flex-end;gap:18px;height:200px;padding:10px 6px 0;margin:14px 0}
.hr-piano-bar{flex:1 1 0;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;min-width:36px}
.hr-piano-bar-value{font-family:'Montserrat',monospace;font-size:11px;color:var(--txm);margin-bottom:6px;white-space:nowrap}
.hr-piano-bar-fill{width:100%;max-width:56px;border-radius:6px 6px 0 0;background:var(--lime);min-height:2px}
.hr-piano-bar.hr-piano-bar-reale .hr-piano-bar-fill{background:var(--gd)}
.hr-piano-bar-label{font-size:10px;color:var(--mut);margin-top:8px;font-weight:700}

/* ─── Avviso permanente (Ipotesi) ─── */
.hr-piano-warn{background:#fff8e6;border:1px solid #e0b64a;color:#5a4300;border-radius:8px;padding:10px 14px;font-size:12.5px;line-height:1.5;margin-bottom:16px}

/* ─── Riga espandibile (Risorse): chevron + riga di dettaglio a colspan ─── */
.hr-piano-toggle-row{background:transparent;border:none;color:var(--txm);cursor:pointer;font-size:12px;padding:2px 6px;transition:transform .15s}
.hr-piano-toggle-row[aria-expanded="true"]{transform:rotate(90deg)}
.hr-piano-detail-cell{background:var(--sur2);padding:12px 16px}
.hr-piano-detail-table{width:100%;border-collapse:collapse;font-size:11.5px}
.hr-piano-detail-table td{padding:4px 10px}
.hr-piano-detail-table td.r{text-align:right;font-family:'Montserrat',monospace}
.hr-piano-mesi{font-size:11px;color:var(--mut);display:block;margin-top:2px}
.hr-piano-nome-corsivo{font-style:italic}

/* ─── Coefficienti buoni pasto (Ipotesi): 12 input in riga ─── */
.hr-piano-coeff-row{display:flex;flex-wrap:wrap;gap:8px;grid-column:1/-1}
.hr-piano-coeff-item{display:flex;flex-direction:column;align-items:center;gap:4px;width:52px}
.hr-piano-coeff-item label{font-size:9px}
.hr-piano-coeff-item input{width:100%;text-align:center;padding:6px 4px}

@media (max-width:768px){
  .hr-subnav{top:auto;position:static}
  .hr-piano-chart{gap:10px}
}

/* ── v9.5 Presenze: ferie/permessi, rimborsi, cartellino ── */
.hr-pr-mese{display:inline-flex;align-items:center;gap:6px}
.hr-pr-mese-label{min-width:140px;text-align:center;font-family:'Montserrat',sans-serif;font-size:13px}
.hr-pr-table td.hr-pr-note{max-width:260px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Riepilogo del mese (ex Cartellino mensile): cose in sospeso e importi da verificare */
.hr-pr-sospesi{margin:10px 0 14px;white-space:normal}
.hr-pr-sospesi a{color:inherit;font-weight:600;text-decoration:underline;white-space:nowrap}
.hr-pr-table td .hr-pr-da-verif{color:var(--txm,#4a5e44);font-size:11.5px;font-style:italic;white-space:nowrap}
.hr-pr-table td.hr-pr-tot-rimb{font-weight:600}
.hr-table.hr-pr-riepilogo thead th{white-space:normal;min-width:64px;max-width:150px;vertical-align:bottom}
.hr-pr-riepilogo td:first-child{white-space:nowrap}
/* 01/11 (richiesta utente): ore e importi centrati sotto il nome della colonna; il nome porta al dettaglio */
.hr-table.hr-pr-riepilogo td.r,.hr-table.hr-pr-riepilogo thead th:not(:first-child){text-align:center}
.hr-table.hr-pr-giorni td.r,.hr-table.hr-pr-giorni thead th:not(:nth-child(2)):not(:last-child){text-align:center}
.hr-pr-nome-vai{background:none;border:0;padding:0;font:inherit;color:inherit;text-align:left;cursor:pointer}
.hr-pr-nome-vai:hover,.hr-pr-nome-vai:focus-visible{text-decoration:underline}
.hr-pr-cart,.hr-pr-ancora{scroll-margin-top:80px}
.hr-pr-cart h3:focus,.hr-pr-ancora h3:focus{outline:none}
.hr-pr-cart h3:focus-visible,.hr-pr-ancora h3:focus-visible{outline:2px solid var(--txm);outline-offset:3px;border-radius:3px}
.hr-pr-su{font-size:11.5px;color:var(--txm);margin-left:6px;white-space:nowrap}
.hr-pr-tip{display:block;font-size:11px;color:var(--txm);margin-top:1px;white-space:normal;max-width:240px}
.hr-table.hr-pr-riepilogo tr.hr-pr-sep th{background:var(--sur2);font-family:'Montserrat',sans-serif;font-size:9px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--mut);padding:7px 14px;text-align:left}
.hr-pr-table td.hr-pr-tot-rimb .hr-pr-da-verif{font-weight:400}
/* v9.52: "Pagato con" a tre pulsanti nel modulo dello scontrino */
.hr-pr-pag-azienda{background:#e6eef9;color:#1f4b8a}
.hr-table td.hr-pr-da-rimb{font-weight:700}
.hr-ns-pag{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.hr-ns-pag-btn{min-height:44px;padding:6px 8px;border:1.5px solid var(--bor);border-radius:10px;background:var(--sur);color:var(--tx);font:inherit;font-size:13px;font-weight:600;line-height:1.2;cursor:pointer}
.hr-ns-pag-btn.hr-ns-pag-on{border-color:var(--gd,#1a3a2a);background:var(--gd,#1a3a2a);color:#fff}
.hr-ns-pag-btn:focus-visible{outline:2px solid var(--txm);outline-offset:2px}
.hr-ns-pag-nota:empty{display:none}
.hr-ns-incerto .hr-ns-pag-btn{border-color:#e0b64a}
.hr-me-ns-azienda{font-size:12px;color:#1f4b8a}
/* v9.50: legenda dei profili utente in Configurazione */
.hr-config-profili{display:grid;gap:6px;margin:6px 0 14px;font-size:12.5px}
.hr-config-profilo .hr-badge{min-width:118px;display:inline-block;text-align:center}
.hr-config-profili-nota{margin-top:4px;font-size:12px}
/* v9.46: Dati Centro Paghe (#/centropaghe) */
.hr-cp-input{width:9ch;padding:6px 8px;text-transform:uppercase}
.hr-cp-input.hr-cp-ditta{width:13ch}
.hr-cp-input.hr-cp-codice{width:11ch;font-family:ui-monospace,Menlo,monospace;letter-spacing:.04em}
.hr-cp-input.hr-cp-codicecp{width:8ch;text-align:center}
/* v9.57: anteprima dell'importazione dell'elenco dello studio */
.hr-cp-file{margin:4px 0 6px;max-width:100%}
.hr-cp-anteprima{margin-top:8px;border:1px solid var(--bor);border-radius:10px;padding:12px 14px;background:var(--sur)}
.hr-cp-riepilogo{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:8px}
.hr-cp-gruppo{margin:6px 0}
.hr-cp-gruppo summary{cursor:pointer;font-weight:600;font-size:13px}
.hr-cp-gruppo ul{margin:6px 0 0 18px;padding:0;font-size:12.5px}
.hr-cp-anteprima .hr-toolbar{margin-top:10px}
.hr-cp-table td{vertical-align:middle}
.hr-cp-table td.hr-cp-cf{font-family:ui-monospace,Menlo,monospace;font-size:12px}
.hr-cp-table td.hr-cp-manca{color:#c0392b;font-weight:600}
.hr-cp-table tr.hr-cp-incompleto td:first-child{box-shadow:inset 3px 0 0 #e0b64a}
.hr-cp-err{color:#c0392b;font-size:11.5px;margin-top:4px}
.hr-cp-err:empty{display:none}
.hr-cp-stato{display:block;font-size:11px;color:#8a6a00}
.hr-cp-stato:empty{display:none}
.hr-cp-esito{margin-top:10px}
.hr-cp .hr-section > .btn{margin-bottom:10px}
.hr-cp-esito ul{margin:6px 0 0 18px;padding:0}
.hr-pr-azioni{white-space:nowrap;text-align:right}
.hr-pr-azioni .hr-icon-btn{margin-left:2px}
.hr-pr-danger .hr-ico{background:var(--red,#c0392b)}
.hr-pr-rifiutata td{opacity:.55;text-decoration:line-through}
.hr-pr-rifiutata td.hr-pr-azioni{text-decoration:none}
.hr-pr-stato{font-weight:600}
.hr-pr-stato-approvata,.hr-pr-stato-verificato,.hr-pr-stato-aperto{background:#e6f4ea;color:#1e6b3a}
.hr-pr-stato-richiesta,.hr-pr-stato-inserito{background:#fff4d6;color:#8a5a00}
.hr-pr-stato-rifiutata,.hr-pr-stato-rifiutato{background:#fdecea;color:#a12a1f}
.hr-pr-stato-chiuso{background:#e9ecef;color:#444}
.hr-pr-chiuso{background:#fff4d6;border:1px solid #f1d58a;border-radius:var(--rs);padding:10px 14px;margin:10px 0;font-size:13px}
.hr-pr-giorni td,.hr-pr-giorni th{padding:3px 8px;font-size:12px}
.hr-pr-weekend td{background:#f3f4f6;color:#777}
.hr-pr-festivo td{background:#fdf3e3}
.hr-pr-inattivo td{color:#aaa}
.hr-pr-cart{margin-top:18px}
.hr-pr-cart h4{margin:14px 0 6px;font-size:13px}

/* ── Fase B (v9.9): Le mie richieste (#/me), pensata per il telefono ── */
.tool-card.tc-me{border-top-color:#e07a2f}
.tool-card.tc-me:hover{border-top-color:#b85f1e}
.tc-me .tool-card-tag{color:#8a4512;background:#fde8d8}
.hr-me{max-width:720px;margin:0 auto}
.hr-me-head{background:var(--sur);border:1px solid var(--bor);border-radius:var(--r);padding:16px 64px 16px 18px;margin-bottom:16px;display:flex;flex-direction:column;gap:6px;position:relative}
.hr-me-nome{font-family:'Montserrat',sans-serif;font-size:18px;font-weight:600}
.hr-me-esci{align-self:flex-start;margin-top:6px;padding:10px 16px;font-size:11px}
.hr-me-btn-nuova{margin-top:8px;align-self:flex-start;font-size:15px;padding:12px 20px}
.hr-me-sez{margin-bottom:22px}
.hr-me-sez h3{margin:0 0 10px;font-size:15px}
.hr-me-sez-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px;flex-wrap:wrap}
.hr-me-sez-head h3{margin:0}
.hr-me-card{background:var(--sur);border:1px solid var(--bor);border-left:4px solid #c9c9c9;border-radius:var(--rs);padding:12px 14px;margin-bottom:10px;display:flex;flex-direction:column;gap:4px}
.hr-me-card-richiesta{border-left-color:#e0a500}
.hr-me-card-approvata{border-left-color:#2e8b57}
.hr-me-card-rifiutata{border-left-color:#c0392b;opacity:.8}
.hr-me-card-top{display:flex;justify-content:space-between;align-items:center;gap:8px}
.hr-me-card-titolo{font-weight:600;font-size:14px}
.hr-me-card-quando{font-size:14px}
.hr-me-card-note{font-size:13px;white-space:pre-wrap}
.hr-me-card-azioni{display:flex;gap:8px;margin-top:6px;flex-wrap:wrap}
.hr-me-warn{background:#fff8e6;border:1px solid #e0b64a;color:#5a4300;border-radius:8px;padding:8px 12px;font-size:12.5px;line-height:1.45;white-space:pre-wrap}
.hr-me-totali{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.hr-me-kpi{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.hr-me-kpi-item{background:var(--sur);border:1px solid var(--bor);border-radius:var(--rs);padding:8px 12px;font-size:13px}
.hr-me-giorni{display:flex;flex-direction:column;gap:4px}
.hr-me-giorno{display:flex;gap:10px;font-size:13.5px;padding:6px 10px;background:var(--sur);border:1px solid var(--bor);border-radius:var(--rs)}
.hr-me-giorno-data{min-width:64px;font-weight:600}
.hr-me-dow{display:flex;gap:12px;flex-wrap:wrap}
.hr-me-box{background:var(--sur);border:1px solid var(--bor);border-radius:var(--r);padding:14px 16px;margin-bottom:18px}
.hr-me-box-titolo{font-family:'Montserrat',sans-serif;font-size:12px;font-weight:700;letter-spacing:.18em;color:#4a5a50;margin-bottom:10px}
.hr-me-btn-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.hr-me-btn-row .hr-me-btn-fam{min-width:0;padding:14px 6px;font-size:13px;letter-spacing:.04em;text-align:center;white-space:normal;line-height:1.2;display:flex;align-items:center;justify-content:center}
.hr-me-sez h4{margin:0;font-size:14px}
/* Il modulo deve stare nello schermo del telefono: nessuna riga più larga della scheda (28/10) */
.hr-me-form{min-width:0}
.hr-me-form .hr-form-row{min-width:0}
.hr-me-form .hr-form-row input,.hr-me-form .hr-form-row select,.hr-me-form .hr-form-row textarea{width:100%;min-width:0;max-width:100%;box-sizing:border-box}
.hr-me-form .hr-date-wrap{min-width:0}
.hr-me-sez-head .hr-pr-mese{flex-wrap:wrap}
.hr-me-sez-head .hr-pr-mese input{max-width:150px}
@media (max-width:768px){
  .hr-me-form.hr-form{grid-template-columns:1fr}
  .hr-modal-overlay:has(.hr-me-form){padding:10px}
  .hr-modal:has(.hr-me-form){padding:18px 16px;max-height:92vh;max-height:calc(92dvh - env(safe-area-inset-bottom))}
  .hr-modal-overlay:has(.hr-me-form){padding-bottom:calc(10px + env(safe-area-inset-bottom))}
  .hr-me-btn-nuova{align-self:stretch;text-align:center}
  .hr-me-card-top{flex-direction:column;align-items:flex-start}
}
/* Configurazione → Richieste: tabella "Chi approva le richieste" (B2a) */
.hr-me-appr{margin:4px 0 18px}
.hr-me-appr h4{margin:0 0 6px;font-size:13px;color:var(--gd)}
.hr-me-appr .hr-help{margin-bottom:8px}
.hr-me-appr .hr-table tbody tr{cursor:default}
.hr-me-appr .hr-table select{max-width:100%}
/* Colonna "Informati" (v9.59): etichette (.hr-chip) con × (.hr-carta-rimuovi) + tendina "+ Aggiungi…" */
.hr-me-informati{display:flex;flex-direction:column;align-items:flex-start;gap:6px;min-width:190px}
.hr-me-informati-lista{align-items:center}
.hr-me-informato{font-size:12.5px}
.hr-me-informato-nv{border-color:var(--red);color:var(--red)}
.hr-me-informati-nota{margin:0}
.hr-me-informati-nota:focus{outline:2px solid var(--gd);outline-offset:2px}
@media (max-width:768px){
  /* × grande a vista ma con area di tocco di 44px (pseudo-elemento invisibile): il chip non si ingrandisce troppo */
  .hr-me-informati .hr-me-informato-x{position:relative;min-width:26px;min-height:26px;font-size:20px}
  .hr-me-informati .hr-me-informato-x::after{content:'';position:absolute;top:50%;left:50%;width:44px;height:44px;transform:translate(-50%,-50%)}
  .hr-me-informati{min-width:240px}
  .hr-me-informati select{width:100%}
}
/* Notifiche in #/me (B2c) */
.hr-me-notifiche-corpo{background:var(--sur);border:1px solid var(--bor);border-radius:var(--r);padding:14px 16px;display:flex;flex-direction:column;gap:8px}
.hr-me-notifiche-stato{font-weight:600;font-size:14px}
.hr-me-notifiche-azioni{display:flex;gap:8px;flex-wrap:wrap}
.hr-me-notifiche-azioni .btn{white-space:normal;line-height:1.25;text-align:center}
.hr-me-notifiche-canale{display:flex;flex-direction:column;gap:6px;margin-top:6px}
.hr-me-notifiche-sub{font-size:12px;font-weight:600;color:#4a5a50}
.hr-me-radio{display:flex;align-items:flex-start;gap:8px;font-size:14px;line-height:1.4;cursor:pointer}
.hr-me-radio input{margin-top:3px;flex:none}
/* Ingranaggio in #/me e pagina Impostazioni (v9.23): area di tocco 44px; il riquadro riserva 64px a destra, quindi a 320px il nome va a capo e non si sovrappone */
.hr-me-gear{position:absolute;top:6px;right:6px;width:44px;height:44px;display:flex;align-items:center;justify-content:center;background:transparent;border:0;border-radius:50%;color:var(--gd);cursor:pointer;padding:0}
.hr-me-gear:hover,.hr-me-gear:focus-visible{background:var(--sur2)}
.hr-me-gear .hr-ico{width:24px;height:24px}
.hr-me-imp-head{display:flex;flex-direction:column;align-items:flex-start;gap:10px;margin-bottom:16px}
.hr-me-imp-titolo{margin:0;font-family:'Montserrat',sans-serif;font-size:20px;font-weight:600}
.hr-me-indietro{min-height:44px;padding:10px 14px;font-size:11px}
/* Storico (v9.32): righe larghe da toccare in fondo a #/me + pagine #/me/richieste e #/me/note-spese */
.hr-me-storico-lista{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.hr-me-storico-lista .hr-me-storico-riga{display:flex;flex-direction:column;align-items:stretch;justify-content:center;min-height:72px;padding:12px 10px;text-transform:none;letter-spacing:0;white-space:normal}
.hr-me-storico-testo{display:flex;flex-direction:column;align-items:center;gap:4px;min-width:0;text-align:center}
.hr-me-storico-titolo{font-weight:700;font-size:14px;letter-spacing:.02em}
.hr-me-storico-sub{font-size:11.5px;font-weight:500;line-height:1.3;opacity:.85;overflow-wrap:anywhere}
.hr-me-mese-nav{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:16px}
.hr-me-mese-btn{min-width:48px;min-height:44px;padding:8px 14px;font-size:20px;line-height:1;justify-content:center}
.hr-me-mese-btn:disabled{opacity:.35;cursor:default}
.hr-me-mese-label{flex:1;text-align:center;font-family:'Montserrat',sans-serif;font-size:16px;font-weight:600}
.hr-me-vuoto{padding:4px 0}
.hr-me-ns-pagina .hr-me-ns-tot{margin:0 0 12px}
/* Calendario di selezione dei giorni nel modulo di richiesta (v9.33) */
.hr-selcal{display:flex;flex-direction:column;gap:6px;min-width:0;width:100%;max-width:420px}
.hr-selcal-testa{display:flex;align-items:center;justify-content:space-between;gap:8px}
.hr-selcal-nav{min-width:44px;min-height:44px;padding:6px 12px;font-size:20px;line-height:1;justify-content:center}
.hr-selcal-mese{flex:1;text-align:center;font-family:'Montserrat',sans-serif;font-size:15px}
.hr-selcal-dow,.hr-selcal-griglia{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.hr-selcal-dow span{text-align:center;font-size:11px;font-weight:700;color:var(--mut);padding:2px 0}
.hr-selcal-vuoto{min-height:44px}
/* cella = tutta la colonna (>= 40px a 320px); lo spazio tra le celle è il bordo del colore dello sfondo */
.hr-selcal-giorno{min-height:44px;min-width:0;padding:0;border:2px solid var(--bg);background:var(--sur);background-clip:padding-box;border-radius:12px;color:var(--tx);font:inherit;font-size:14px;cursor:pointer;position:relative;box-sizing:border-box}
.hr-selcal-giorno:hover{background:var(--sur2);background-clip:padding-box}
.hr-selcal-giorno:focus-visible{outline:2px solid var(--gd);outline-offset:-2px}
.hr-selcal-nolav{background:var(--sur2);background-clip:padding-box;color:var(--mut)}
.hr-selcal-off{cursor:default;color:var(--mut)}
.hr-selcal-off:hover{background:var(--sur2);background-clip:padding-box}
.hr-selcal-oggi{box-shadow:inset 0 0 0 2px var(--gm);font-weight:700}
.hr-selcal-anteprima{background:#e4f0cf;background-clip:padding-box}
.hr-selcal-sel,.hr-selcal-sel:hover{background:var(--lime);background-clip:padding-box;color:var(--gd);font-weight:700}
.hr-selcal-occ::after{content:'';position:absolute;bottom:5px;left:50%;width:6px;height:6px;margin-left:-3px;border-radius:50%;background:#e0a500}
.hr-selcal-legenda{font-size:11.5px;line-height:1.4}
.hr-selcal-nota{font-size:12.5px;color:#5a4300}
.hr-selcal-nota:empty{display:none}
.hr-form-row.hr-me-cal-riep{flex-direction:row;align-items:flex-start;justify-content:space-between;gap:10px}
.hr-me-cal-riep-testo{font-size:13.5px;line-height:1.45;white-space:pre-line;min-width:0;overflow-wrap:anywhere}
.hr-me-ripeti-box{display:flex;flex-direction:column;gap:8px;margin-top:8px;min-width:0}
.hr-me-chips{display:flex;gap:8px;flex-wrap:wrap}
.hr-me-chip{width:44px;height:44px;border-radius:50%;border:1.5px solid var(--gd);background:transparent;color:var(--gd);font:inherit;font-weight:700;cursor:pointer;padding:0}
.hr-me-chip-on{background:var(--lime)}
@media (max-width:400px){
  .hr-modal-overlay:has(.hr-me-form){padding:4px}
  .hr-modal:has(.hr-me-form){padding:16px 12px}
}
/* 01/11 (richiesta utente): sul telefono il modulo richiesta (ferie/permessi/smart/malattia) è a tutta pagina come quello delle note
   spese, con Annulla/Invia FISSI in basso e calendario e campi compatti: su un telefono normale sta tutto senza scorrere. */
@media (max-width:768px){
  .hr-modal-overlay:has(.hr-me-form:not(.hr-ns-form)){padding:0;align-items:stretch;height:100vh;height:100dvh;bottom:auto}
  .hr-modal:has(.hr-me-form:not(.hr-ns-form)){max-width:none;max-height:none;height:100%;border-radius:0;padding:12px 14px 0;display:flex;flex-direction:column;overflow-y:auto;box-sizing:border-box}
  .hr-modal:has(.hr-me-form:not(.hr-ns-form)) h3{margin-bottom:8px}
  .hr-modal:has(.hr-me-form:not(.hr-ns-form)) .hr-me-form{flex:none;gap:8px;margin-bottom:10px}
  .hr-modal:has(.hr-me-form:not(.hr-ns-form)) .hr-modal-actions{position:sticky;bottom:0;background:var(--bg);margin:auto -14px 0;padding:10px 14px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--bor)}
  .hr-modal:has(.hr-me-form:not(.hr-ns-form)) .hr-modal-actions .btn{flex:1;justify-content:center;min-height:44px}
  .hr-me-form:not(.hr-ns-form) .hr-selcal{gap:4px}
  .hr-me-form:not(.hr-ns-form) .hr-selcal-nav{min-width:40px;min-height:38px;padding:4px 10px}
  .hr-me-form:not(.hr-ns-form) .hr-selcal-giorno,.hr-me-form .hr-selcal-vuoto{min-height:40px}
  .hr-me-form:not(.hr-ns-form) .hr-selcal-dow span{padding:0}
  .hr-me-form:not(.hr-ns-form) .hr-selcal-legenda{font-size:11px;line-height:1.3}
  .hr-me-form:not(.hr-ns-form) textarea{min-height:44px;height:48px}
}
/* Certificato di malattia (B3, v9.24) */
.hr-me-cert{display:flex;flex-direction:column;gap:6px;margin-top:2px}
.hr-me-cert .hr-me-card-azioni{margin-top:0}
.hr-pr-cert{font-size:11px}

/* Saldi ferie dal Prospetto Ferie (v9.25) */
.hr-pr-tabs{display:flex;gap:4px;margin:0 0 14px;border-bottom:1px solid var(--bor)}
.hr-pr-tab{background:none;border:0;border-bottom:3px solid transparent;padding:8px 14px;font-family:'Montserrat',sans-serif;font-size:12px;font-weight:600;color:var(--mut);cursor:pointer}
.hr-pr-tab.attivo{color:var(--tx);border-bottom-color:var(--lime)}
.hr-saldi-table thead th{cursor:default}
.hr-saldi-table th.hr-saldi-gruppo{text-align:center;border-bottom:1px solid var(--bor);border-left:2px solid var(--bor);color:var(--tx);font-size:11px}
.hr-saldi-table .hr-saldi-inizio{border-left:2px solid var(--bor)}
.hr-saldi-table thead tr:first-child th[rowspan]{vertical-align:bottom}
.hr-saldi-imp{min-width:0;grid-template-columns:minmax(0,1fr)}
.hr-saldi-imp-sel{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.hr-saldi-imp-sel .hr-filter{max-width:100%;min-width:0;text-overflow:ellipsis}
.hr-saldi-imp-testata{font-weight:600;margin:8px 0}
.hr-saldi-imp-anteprima .hr-me-warn{margin:8px 0}
.hr-saldi-imp-anteprima .hr-table-wrap{max-height:50vh;overflow:auto;margin-top:8px}
.hr-saldi-imp-table td,.hr-saldi-imp-table th{white-space:nowrap;vertical-align:top}
.hr-saldi-imp-table td.hr-saldi-imp-nome{white-space:normal;min-width:140px}
.hr-saldi-imp-persona .hr-filter{max-width:240px;width:100%}
.hr-saldi-imp-metodo{font-size:11px;margin-top:3px}
.hr-saldi-gg{font-size:11px;color:var(--mut);margin-top:1px}
.hr-saldi-table td{vertical-align:top}
.hr-saldi-imp-piede{display:flex;justify-content:flex-end;margin-top:10px}
.hr-me-saldo .hr-me-box-titolo{text-transform:uppercase}
.hr-me-saldo-riga{font-size:14px;line-height:1.5;margin-bottom:6px}
.hr-me-saldo-nota{font-size:12px;margin-top:4px}

/* ── Note spese dal telefono (v9.28, #/me) ── */
.hr-me-ns .hr-me-ns-btns{margin-bottom:12px}
.hr-me-ns .hr-me-ns-btn.hr-me-btn-fam{min-height:64px;padding:16px 8px;font-size:14px;letter-spacing:.02em;text-transform:none}
.hr-me-ns .hr-me-ns-btn{gap:8px}
.hr-me-ns-ico{font-size:18px;line-height:1}
.hr-form-row label.hr-ns-check{display:flex;align-items:center;gap:10px;text-transform:none;letter-spacing:0;font-size:14px;color:var(--tx);cursor:pointer;margin:2px 0}
.hr-ns-check input[type=checkbox]{width:20px;height:20px;margin:0;flex:0 0 auto}
.hr-me-ns-tot{align-items:center;margin:0 0 6px}
.hr-me-ns-sub{margin:12px 0 8px;font-size:13px;color:var(--gd)}
.hr-me-ns-vuoto{padding:4px 0}
.hr-me-ns-riga{display:flex;justify-content:space-between;align-items:baseline;gap:10px}
.hr-me-ns-chi{font-size:14px;min-width:0;overflow-wrap:anywhere}
.hr-me-ns-importo{font-weight:700;font-size:14px;white-space:nowrap;flex:none}
.hr-ns-form{min-width:0}
/* Chilometrico con indirizzi (v9.35): suggerimenti, chip rapidi, riga del percorso */
.hr-ns-sugg{list-style:none;margin:2px 0 0;padding:0;border:1px solid var(--bor);border-radius:var(--rs);background:var(--sur);overflow:hidden}
.hr-ns-sugg-opt{display:flex;flex-direction:column;gap:1px;min-height:44px;justify-content:center;padding:6px 12px;cursor:pointer;border-top:1px solid var(--bor)}
.hr-ns-sugg-opt:first-child{border-top:0}
.hr-ns-sugg-opt:hover,.hr-ns-sugg-attivo{background:var(--sur2)}
.hr-ns-sugg-attivo{outline:2px solid var(--gd);outline-offset:-2px}
.hr-ns-sugg-p{font-size:14px;font-weight:600;overflow-wrap:anywhere}
.hr-ns-sugg-s{font-size:12px;color:var(--txm);overflow-wrap:anywhere}
.hr-ns-luogo-msg{font-size:12px}
.hr-ns-luogo-msg:empty{display:none}
.hr-ns-chips{display:flex;flex-wrap:nowrap;gap:6px;margin-top:2px;padding:3px 3px;overflow-x:auto;-webkit-overflow-scrolling:touch;scrollbar-width:none} /* v9.43: sempre su una riga */
.hr-ns-chips::-webkit-scrollbar{display:none}
.hr-ns-chip{display:inline-flex;align-items:center;flex:none;box-sizing:border-box;min-height:28px;max-width:100%;padding:2px 9px;border:1px solid var(--bor);border-radius:14px;background:var(--sur);color:var(--txm);font:inherit;font-size:11.5px;line-height:1.2;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hr-ns-chip:hover{background:var(--sur2)}
.hr-ns-chip-sede{background:var(--sur)} /* v9.43: chip discreti (niente bordo verde acceso): l'attenzione va alle etichette */
/* v9.44 (richiesta utente): TUTTE le etichette dei campi dei moduli note spese (data, km, motivo, note, partenza, arrivo…) con lo
   stesso stile evidente; la casella "Andata e ritorno" resta com'è */
.hr-ns-form .hr-form-row>label:not(.hr-ns-check){font-size:12px;font-weight:700;color:var(--gd);letter-spacing:.06em}
/* "Destinazione recente ▾": il select nativo sta SOPRA il chip, trasparente e a tutta area (il tocco apre il selettore del sistema); 16px = niente zoom automatico di iOS */
.hr-ns-chip-menu{position:relative;font-weight:500}
.hr-form .hr-ns-chips label.hr-ns-chip{text-transform:none;letter-spacing:0;font-size:11.5px;color:var(--txm);margin:0} /* il chip-menu è una <label>: niente stile delle etichette dei campi */
.hr-ns-chip-select{position:absolute;inset:0;width:100%;height:100%;opacity:0;cursor:pointer;font-size:16px;border:0;padding:0;margin:0;appearance:none;-webkit-appearance:none}
.hr-ns-chip-menu:focus-within{outline:2px solid var(--gd);outline-offset:2px}
.hr-ns-percorso{display:flex;flex-direction:row;align-items:center;gap:10px;flex-wrap:wrap}
.hr-ns-percorso-info{font-size:13.5px;font-weight:600;min-width:0;overflow-wrap:anywhere}
.hr-ns-percorso-info:empty{display:none}
.hr-ns-km-diff:empty{display:none}
/* Visore del giustificativo (v9.40): piccola finestra centrata sopra la pagina, anche sul telefono (mai a tutto schermo) */
/* v9.41 (richiesta utente): la finestra del giustificativo prende la LARGHEZZA dello scontrino (fino al 96% dello schermo) ed è più
   alta (fino al 94% dell'altezza visibile); immagine e pagine PDF scalano per stare tutte nel riquadro. */
.hr-modal.hr-ns-visore-card{width:auto;width:fit-content;min-width:min(280px,96vw);max-width:96vw;max-height:94vh;max-height:94dvh;padding:14px 12px 12px;display:flex;flex-direction:column}
.hr-modal.hr-ns-visore-card>h3{margin:0 0 10px;font-size:15px}
.hr-ns-visore{display:flex;flex-direction:column;gap:8px;min-width:0;min-height:0;flex:1}
.hr-ns-visore-stato:empty{display:none}
.hr-ns-visore-area{display:flex;flex-direction:column;gap:10px;overflow:auto;-webkit-overflow-scrolling:touch;min-width:0;min-height:0;flex:1;max-height:calc(94vh - 110px);max-height:calc(94dvh - 110px)}
.hr-ns-visore-img{display:block;max-width:calc(96vw - 24px);max-height:calc(94vh - 110px);max-height:calc(94dvh - 110px);width:auto;height:auto;object-fit:contain;margin:0 auto;cursor:zoom-in;flex:none}
.hr-ns-visore-img.hr-ns-visore-zoom{max-width:none;max-height:none;width:auto;height:auto;align-self:flex-start;cursor:zoom-out;margin:0} /* zoom = dimensione reale, scorrevole */
.hr-ns-visore-pagina{max-width:100%;height:auto;margin:0 auto;box-sizing:border-box;background:#fff;border:1px solid var(--bor);border-radius:6px;flex:none}
.hr-ns-visore-frame{width:min(680px,calc(96vw - 24px));height:calc(94vh - 150px);height:calc(94dvh - 150px);min-height:200px;border:1px solid var(--bor);border-radius:8px;background:#fff}
.hr-ns-visore-apri,.hr-ns-visore-scarica{align-self:flex-start;min-height:44px}
.hr-ns-visore-attesa{display:flex;align-items:center;justify-content:center;width:min(280px,calc(96vw - 24px));height:min(60dvh,420px);background:var(--sur2);border-radius:8px}
.hr-ns-visore-spinner{width:26px;height:26px;border:3px solid var(--bor);border-top-color:var(--gm);border-radius:50%;animation:hr-ns-giro .8s linear infinite}
@keyframes hr-ns-giro{to{transform:rotate(360deg)}}
@media (prefers-reduced-motion:reduce){.hr-ns-visore-spinner{animation:none}}
.hr-modal.hr-ns-visore-card .hr-modal-actions{margin-top:10px}
.hr-modal.hr-ns-visore-card .hr-modal-actions .btn{min-height:44px;justify-content:center}
.hr-ns-nota{background:#fff8e6;border:1px solid #e0b64a;color:#5a4300;border-radius:8px;padding:8px 12px;font-size:12.5px;line-height:1.45}
.hr-ns-btn-foto{width:100%;justify-content:center;min-height:56px;font-size:14px;letter-spacing:.02em;text-transform:none}
.hr-ns-anteprima-box{display:flex;flex-direction:column;align-items:flex-start;--ns-h:min(55vh,480px)}
/* foto semplice (senza scansione): anteprima contenuta, il modulo resta in vista */
.hr-ns-anteprima{max-width:100%;max-height:240px;object-fit:contain;background:#fff;border:1px solid var(--bor);border-radius:var(--rs)}
/* Scansione dello scontrino (v9.29): le fasi sono classi aggiunte a tempo da hr-me.js (_hrMeNsScansione).
   Riquadro con le proporzioni della foto (--ar0, impostata inline) che a fine animazione prende quelle della scansione (--ar-fine). */
.hr-ns-scan{--ar0:.75;--ar-fine:.4;--ar:var(--ar0);position:relative;overflow:hidden;align-self:center;width:100%;max-width:max(200px, calc(var(--ns-h) * var(--ar)));aspect-ratio:var(--ar);background:var(--sur2);border:1px solid var(--bor);border-radius:var(--rs);transition:aspect-ratio .4s ease,max-width .4s ease}
.hr-ns-scan.hr-ns-f-fine{--ar:var(--ar-fine)}
.hr-ns-scan-foto{position:absolute;inset:0;transform-origin:0 0;transition:transform .55s cubic-bezier(.4,0,.2,1),opacity .4s ease}
.hr-ns-scan-img{display:block;width:100%;height:100%;object-fit:fill}
.hr-ns-scan-bordo{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}
.hr-ns-scan-poly{fill:rgba(141,198,63,0);stroke:var(--lime);stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset .55s ease,fill .4s ease .25s}
.hr-ns-scan.hr-ns-f-bordo .hr-ns-scan-poly{stroke-dashoffset:0;fill:rgba(141,198,63,.2)}
.hr-ns-scan.hr-ns-f-fine .hr-ns-scan-foto{opacity:0}
.hr-ns-scan-res{position:absolute;inset:0;display:block;width:100%;height:100%;object-fit:contain;background:#fff;opacity:0;transition:opacity .4s ease}
.hr-ns-scan.hr-ns-f-fine .hr-ns-scan-res{opacity:1}
.hr-ns-scan.hr-ns-senza-anim,.hr-ns-scan.hr-ns-senza-anim *{transition:none!important}
@media (prefers-reduced-motion:reduce){.hr-ns-scan,.hr-ns-scan *{transition:none!important}}
.hr-ns-scan-riga{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 12px;margin:2px 0}
.hr-ns-scan-nota{font-size:12.5px;min-width:0;flex:1 1 200px}
.hr-ns-toggle{background:none;border:0;padding:8px 2px;min-height:36px;font:inherit;font-size:13px;font-weight:600;color:var(--gm);text-decoration:underline;cursor:pointer}
.hr-ns-toggle:hover{color:var(--gd)}
/* Correzione manuale del ritaglio (v9.31): strato a tutto schermo sopra la modale, foto intera + perimetro + 4 maniglie (hr-me.js, _hrMeNsEditorRitaglio) */
.hr-ns-scan-azioni{display:flex;flex-wrap:wrap;align-items:center;gap:0 16px}
.hr-ns-crop-riga{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:4px 12px;margin:2px 0}
.hr-ns-crop-nota{font-size:12.5px;min-width:0;flex:1 1 200px}
.hr-ns-crop-apri{background:none;border:0;padding:8px 2px;min-height:36px;font:inherit;font-size:13px;font-weight:600;color:var(--gm);text-decoration:underline;cursor:pointer}
.hr-ns-crop-apri:hover{color:var(--gd)}
.hr-ns-crop{position:fixed;inset:0;z-index:8100;display:flex;flex-direction:column;background:#10170f;color:#fff;touch-action:none;overscroll-behavior:contain;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none;padding:max(10px,env(safe-area-inset-top)) max(10px,env(safe-area-inset-right)) 0 max(10px,env(safe-area-inset-left))}
.hr-ns-crop-testa{flex:none;padding:6px 4px 8px}
.hr-ns-crop-tit{font:700 15px 'Montserrat',sans-serif;margin:0;color:#fff}
.hr-ns-crop-guida{font-size:12.5px;line-height:1.4;opacity:.85;margin:2px 0 0}
.hr-ns-crop-stage{position:relative;flex:1 1 0;min-height:0;overflow:hidden;touch-action:none}
.hr-ns-crop-img{position:absolute;display:block;max-width:none;object-fit:fill;pointer-events:none;-webkit-user-drag:none}
.hr-ns-crop-svg{position:absolute;left:0;top:0;width:100%;height:100%;pointer-events:none;overflow:visible}
.hr-ns-crop-ombra{fill:rgba(0,0,0,.55);fill-rule:evenodd}
.hr-ns-crop-bordo{fill:none;stroke:var(--lime);stroke-width:2;stroke-linejoin:round}
.hr-ns-crop-invalido .hr-ns-crop-bordo{stroke:#ff7a6b;stroke-dasharray:6 4}
.hr-ns-crop-h{position:absolute;width:44px;height:44px;margin:-22px 0 0 -22px;padding:0;border:0;border-radius:50%;background:transparent;cursor:grab;touch-action:none;-webkit-tap-highlight-color:transparent;outline:none}
.hr-ns-crop-h::before{content:'';position:absolute;left:50%;top:50%;width:18px;height:18px;margin:-9px 0 0 -9px;box-sizing:border-box;border-radius:50%;background:var(--lime);border:2px solid #fff;box-shadow:0 0 0 1px rgba(0,0,0,.45),0 1px 5px rgba(0,0,0,.55);transition:transform .12s ease}
.hr-ns-crop-h:active{cursor:grabbing}
.hr-ns-crop-h:focus-visible::before,.hr-ns-crop-h-attivo::before{transform:scale(1.3);box-shadow:0 0 0 1px rgba(0,0,0,.45),0 0 0 5px rgba(141,198,63,.45)}
.hr-ns-crop-occupato .hr-ns-crop-h{opacity:.45;cursor:default}
.hr-ns-crop-lente{position:absolute;z-index:2;box-sizing:border-box;width:90px;height:90px;margin:-45px 0 0 -45px;border-radius:50%;overflow:hidden;background:#222;border:3px solid var(--lime);box-shadow:0 4px 14px rgba(0,0,0,.6);pointer-events:none}
.hr-ns-crop-lente canvas{display:block;width:100%;height:100%}
.hr-ns-crop-lente::after{content:'';position:absolute;left:50%;top:50%;width:14px;height:14px;margin:-7px 0 0 -7px;box-sizing:border-box;border-radius:50%;border:1.5px solid #fff;box-shadow:0 0 0 1px rgba(0,0,0,.6)}
.hr-ns-crop-msg{flex:none;min-height:22px;padding:4px 4px 0;font-size:13px;font-weight:600;color:#ffb4a8}
.hr-ns-crop-msg-info{color:#d9e7cf;font-weight:500}
.hr-ns-crop-azioni{flex:none;display:flex;gap:10px;width:100%;max-width:420px;margin:0 auto;padding:8px 0 calc(10px + env(safe-area-inset-bottom))}
.hr-ns-crop-azioni .btn{flex:1;justify-content:center;min-height:44px}
.hr-ns-crop-azioni .btn-out{color:#fff;border-color:rgba(255,255,255,.7)}
.hr-ns-crop-azioni .btn-out:hover{background:rgba(255,255,255,.16)}
@keyframes hrNsScanEntra{from{opacity:0}to{opacity:1}}
.hr-ns-scan-entra{animation:hrNsScanEntra .3s ease}
@media (prefers-reduced-motion:reduce){.hr-ns-scan-entra{animation:none}.hr-ns-crop-h::before{transition:none}}
.hr-ns-lettura{font-style:italic}
.hr-ns-campi{min-width:0}
.hr-ns-esito-lettura,.hr-ns-avvisi{margin:0}
.hr-ns-incerto input,.hr-ns-incerto select,.hr-ns-incerto textarea{border:2px solid #e0b64a;background:#fffbea}
.hr-ns-controlla{font-size:11.5px;font-weight:600;color:#8a5a00}
.hr-ns-km-anteprima{font-weight:600;font-size:14px;color:var(--gd);min-height:1.2em}
@media (max-width:768px){
  /* modale a tutta pagina sul telefono (come il modulo richiesta, ma fino al bordo) */
  .hr-modal-overlay:has(.hr-ns-form){padding:0;align-items:stretch;height:100vh;height:100dvh;bottom:auto}
  .hr-modal:has(.hr-ns-form){max-width:none;max-height:none;border-radius:0;padding:16px 14px 0;display:flex;flex-direction:column}
  .hr-modal:has(.hr-ns-form) .hr-ns-form{flex:none;margin-bottom:12px}
  .hr-modal:has(.hr-ns-form) .hr-modal-actions{position:sticky;bottom:0;background:var(--bg);margin:auto -14px 0;padding:10px 14px calc(10px + env(safe-area-inset-bottom));border-top:1px solid var(--bor)}
  .hr-modal:has(.hr-ns-form) .hr-modal-actions .btn{flex:1;justify-content:center;min-height:44px}
  .hr-ns-form .hr-form-row input,.hr-ns-form .hr-form-row select,.hr-ns-form .hr-form-row textarea{font-size:16px} /* niente zoom automatico di iOS */
}
@media (max-width:360px){
  .hr-me-ns .hr-me-ns-btn.hr-me-btn-fam{font-size:13px;padding:14px 4px}
}

/* Note spese — vista HR (v9.31) */
.hr-pr-rimb td.hr-pr-note{max-width:200px}
.hr-pr-pag{font-size:10px}
.hr-pr-pag-neutro{background:var(--sur2);color:var(--txm);border:1px solid var(--bor)}
.hr-pr-pag-warn{background:#fff4d6;color:#8a5a00;border:1px solid #f1d58a;cursor:help}
.hr-pr-pag-warn::before{content:"⚠ ";margin-right:3px}
.hr-pr-avviso:empty{display:none}
.hr-pr-avviso{background:#fff4d6;color:#8a5a00;border:1px solid #f1d58a;border-radius:var(--rs);padding:6px 10px;font-size:12px}
.hr-pr-info{background:var(--sur2);border:1px solid var(--bor);border-radius:var(--rs);padding:8px 12px}
.hr-pr-info label{font-size:11px}
.hr-pr-info-riga{font-size:12px;margin-top:2px;overflow-wrap:anywhere}
.hr-pr-rie-hint{margin:0 0 10px}
.hr-pr-rie thead th{white-space:normal;vertical-align:bottom;min-width:70px}
.hr-pr-rie tbody tr{cursor:default}
.hr-pr-rie td:first-child,.hr-pr-rie th:first-child{white-space:nowrap}
.hr-ico-doc{--ico:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V8z'/%3E%3Cpolyline points='14 2 14 8 20 8'/%3E%3Cline x1='16' y1='13' x2='8' y2='13'/%3E%3Cline x1='16' y1='17' x2='8' y2='17'/%3E%3C/svg%3E")}
/* visore del giustificativo: modale a tutta finestra */
.hr-modal.hr-pr-viewer{width:96vw;max-width:96vw;max-height:96vh}
/* review v9.33: il visore sta nella finestra anche a 768px (titolo, "Apri il PDF" e azioni restano visibili) */
.hr-pr-viewer .hr-pr-viewer-frame{height:calc(96vh - 210px);min-height:240px}
.hr-pr-viewer-stage{overflow:auto;max-height:calc(96vh - 190px);text-align:center;border:1px solid var(--bor);border-radius:8px;background:#f6f7f5}
.hr-pr-viewer-img{display:inline-block;max-width:100%;max-height:calc(96vh - 200px);object-fit:contain;cursor:zoom-in}
.hr-pr-viewer-img.hr-pr-zoom{max-width:none;max-height:none;width:200%;cursor:zoom-out}
.hr-pr-viewer-apri{margin-top:10px}
.hr-pr-solo-stretto{display:none;margin-left:6px}
.hr-pr-km-calc{margin-left:6px;cursor:help}
.hr-pr-sugg{display:flex;flex-direction:column;gap:2px;margin:-4px 0 6px}
.hr-pr-sugg:empty{display:none}
.hr-pr-sugg-item{text-align:left;background:var(--sur);border:1px solid var(--bor);border-radius:var(--rs);padding:7px 10px;font:inherit;font-size:12.5px;cursor:pointer}
.hr-pr-sugg-item:hover,.hr-pr-sugg-item:focus{background:var(--sur2);border-color:var(--gd)}
.hr-pr-sugg-msg:empty{display:none}
@media (max-width:900px){
  /* portatile stretto: si nasconde la colonna Km (per i chilometrici è anche in "Esercente / percorso"), i testi lunghi si accorciano con i puntini (suggerimento al passaggio) */
  .hr-pr-rimb .hr-pr-sec{display:none}
  .hr-pr-rimb .hr-pr-solo-stretto{display:inline-flex}
  .hr-pr-rimb td.hr-pr-note{max-width:150px}
  .hr-pr-rimb tbody td,.hr-pr-rimb thead th{padding-left:8px;padding-right:8px}
}

/* 01/11 (review): iPhone in orizzontale con viewport-fit=cover — i bordi laterali evitano la tacca. Solo su schermi bassi in
   orizzontale (telefoni), così non tocca i padding di desktop e tablet; i fondi scuri restano a tutta larghezza. */
@media (orientation:landscape) and (max-height:500px){
  header{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}
  .hr-nav{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}
  main{padding-left:max(16px,env(safe-area-inset-left));padding-right:max(16px,env(safe-area-inset-right))}
  .hr-home{padding-left:max(20px,env(safe-area-inset-left));padding-right:max(20px,env(safe-area-inset-right))}
  .hr-home-foot{left:max(20px,env(safe-area-inset-left))}
  .hr-modal:has(.hr-ns-form) .hr-modal-actions{padding-left:max(14px,env(safe-area-inset-left));padding-right:max(14px,env(safe-area-inset-right))}
}

/* ─── v9.53: Riconciliazione carte aziendali (#/riconciliazione), carte nella scheda persona, giustificativi richiesti in #/me ─── */
.hr-rc{max-width:100%;min-width:0}
.hr-rc .hr-pr-mese{flex-wrap:wrap}
.hr-rc .btn:disabled{opacity:.45;cursor:not-allowed}
.hr-rc-stato:empty{display:none}
.hr-rc-stato{margin:0 0 10px}
.hr-rc-upload .hr-rc-drop{display:flex;flex-direction:column;align-items:center;gap:8px;padding:22px 16px;border:2px dashed var(--bor);border-radius:var(--r);background:var(--sur2);text-align:center;transition:border-color .15s,background .15s}
.hr-rc-drop-over{border-color:var(--lime)!important;background:rgba(141,198,63,.12)!important}
.hr-rc-drop-testo{font-family:'Montserrat',sans-serif;font-weight:700;font-size:14px;color:var(--gd)}
.hr-rc-upload-form{margin-top:14px;max-width:520px}
.hr-rc-file{font-size:13px;color:var(--txm);word-break:break-word}
.hr-rc-upload-azioni{display:flex;flex-wrap:wrap;gap:8px;margin-top:6px}
.hr-rc-avvisi{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}
.hr-rc-avvisi-lista{margin:0;padding-left:18px;white-space:normal}
.hr-rc-card-testa{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:6px}
.hr-rc-card-testa h3{margin:0;font-size:15px}
.hr-rc-titolo:focus{outline:2px solid var(--lime);outline-offset:2px}
.hr-rc-riepilogo{font-size:13px;font-weight:600;color:var(--gd)}
.hr-rc-totali,.hr-rc-meta{margin-top:2px}
.hr-rc-lettura{margin-top:10px}
.hr-rc-azioni{display:flex;flex-wrap:wrap;gap:8px;margin:12px 0}
.hr-rc-azioni .hr-pr-danger{color:var(--red);border-color:var(--red)}
.hr-rc-selezione{margin:0 0 8px}
.hr-rc-vuoto{margin:10px 0}
.hr-rc-badge{font-weight:700}
.hr-rc-estratto-aperto{background:#fff4d6;color:#8a5a00}
.hr-rc-estratto-riconciliato,.hr-rc-badge-abbinato,.hr-rc-badge-giustificato{background:#e6f4ea;color:#1e6b3a}
.hr-rc-badge-da_abbinare{background:#fdecea;color:#a12a1f}
.hr-rc-badge-segnalato{background:#fff4d6;color:#8a5a00}
.hr-rc-badge-incoerente{background:#fdecea;color:#a12a1f;border:1px solid #a12a1f}.hr-rc-incoerente{margin-top:4px}
.hr-rc-badge-ignorato{background:#e9ecef;color:#555}
.hr-rc-table td,.hr-rc-table th{vertical-align:top}
.hr-rc-table thead th{cursor:default}
.hr-rc-table .hr-rc-col-sel{width:28px;padding-right:0}
.hr-rc-table .hr-rc-num{text-align:right;white-space:nowrap}
.hr-rc-table .hr-rc-importo{font-family:'Montserrat',monospace;font-weight:600}
.hr-rc-table .hr-rc-storno{color:var(--grn)}
.hr-rc-table .hr-rc-sub{font-size:11px;margin-top:2px;white-space:normal;max-width:240px}
.hr-rc-table .hr-rc-diff{font-size:11px;color:#8a5a00}
.hr-rc-table td.hr-rc-nota{min-width:180px}
.hr-rc-table td.hr-rc-az{white-space:normal}
.hr-rc-table td.hr-rc-az .btn{margin:0 6px 4px 0}
.hr-rc-table .hr-rc-vedi{margin-top:4px}
.hr-rc-riga:focus{outline:2px solid var(--lime);outline-offset:-2px}
.hr-rc-riga-ignorato td{opacity:.65}
.hr-rc-senza-nota{margin-bottom:8px}
.hr-rc-modale-info{font-weight:600;color:var(--gd);margin-bottom:6px}
.hr-rc-modale-elenco{margin:0 0 8px;padding-left:18px;font-size:13px}
.hr-rc-note-lista{display:flex;flex-direction:column;gap:6px;max-height:50vh;overflow-y:auto}
.hr-rc-nota-item{display:flex;flex-direction:column;align-items:flex-start;gap:2px;text-align:left;background:var(--sur);border:1px solid var(--bor);border-radius:var(--rs);padding:9px 12px;font:inherit;cursor:pointer}
.hr-rc-nota-item:hover,.hr-rc-nota-item:focus{background:var(--sur2);border-color:var(--gd)}
.hr-rc-nota-main{font-size:13px;font-weight:600}
.hr-rc-nota-sub{font-size:11.5px}
@media (max-width:700px){
  /* telefono: si consulta; le tabelle scorrono dentro il loro riquadro, mai la pagina */
  .hr-rc .hr-section{padding:14px 12px}
  .hr-rc-upload .hr-rc-drop{padding:16px 10px}
  .hr-rc-azioni .btn{flex:1 1 auto}
  .hr-rc-avvisi{flex-direction:column}
}
/* carte aziendali nella scheda persona */
.hr-carte-chips{margin:2px 0 6px}
.hr-carta-chip{font-family:'Montserrat',monospace;font-size:12.5px}
.hr-carta-rimuovi{border:0;background:transparent;color:var(--mut);font-size:16px;line-height:1;padding:0 2px;cursor:pointer;border-radius:50%}
.hr-carta-rimuovi:hover,.hr-carta-rimuovi:focus{color:var(--red);outline:1px solid var(--red)}
.hr-carte-add{display:flex;gap:8px;align-items:center}
.hr-carte-add input{width:110px}
.hr-carte-msg:empty{display:none}
.hr-carte-err{color:var(--red)}
.hr-carte-warn{color:#8a5a00}
/* #/me: giustificativi della carta aziendale richiesti da HR */
.hr-me-ns-carta{display:flex;flex-direction:column;gap:8px;margin:0 0 14px;white-space:normal}
.hr-me-ns-carta-titolo{font-weight:700}
.hr-me-ns-carta-riga{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;padding-top:8px;border-top:1px solid #e0b64a}
.hr-me-ns-carta-info{flex:1 1 200px;min-width:0}
.hr-me-ns-carta-chi{font-weight:600}
.hr-me-ns-carta-nota{white-space:pre-wrap}
.hr-me-ns-carta-avviso{display:block;width:100%;margin-top:10px;text-align:left;font:inherit;font-size:13px;font-weight:600;cursor:pointer}
.hr-me-ns-carta-avviso:hover,.hr-me-ns-carta-avviso:focus{border-color:#c79a1f}
/* ── v9.61 — incorporato in ORTUS Manager (?embed=1): niente intestazione né piè, la cornice è quella del Manager ── */
body.hr-embedded header{display:none}
body.hr-embedded .hr-home{min-height:100vh}
body.hr-embedded .hr-home-foot{display:none}
body.hr-embedded main{padding:18px 24px}
body.hr-embedded .auth-overlay .auth-foot{display:none}
/* v9.63: senza intestazione le barre fisse partono dal bordo alto (prima restavano a 66px: vuoto in cima e la seconda barra,
   a 114px, copriva i filtri dell'Employees Database). Stessi scarti di prima, meno l'altezza dell'intestazione (66px). */
body.hr-embedded .hr-nav,body.hr-embedded .hr-subnav,body.hr-embedded .hr-org-zoom-bar{top:0}
/* Dalla 9.69 (utente): dentro il Manager la sotto-barra di People (Anagrafica, Scadenze, Employees Database, Piano assunzioni)
   duplica le voci della barra laterale → nascosta; le sotto-barre interne (Dipendenti/Co.co.co/Consulenti…) salgono in cima. */
body.hr-embedded #hrPeopleSubnav{display:none!important}
body.hr-embedded #hrView .hr-subnav{top:0}
/* Dalla 9.71 — riquadro statico dell'Organigramma nella Panoramica di ORTUS Manager (&statico=organigramma) */
body.hr-statico{background:#fff}
body.hr-statico main{padding:8px 10px}
body.hr-statico .hr-org-zoom-bar,body.hr-statico .hr-org-panels,body.hr-statico .hr-org-kebab,body.hr-statico #hrHomeMain{display:none!important}
body.hr-statico .hr-org-canvas,body.hr-statico #hrOrgCanvas{border:none;box-shadow:none;padding:0}
