/* Borderò · stile dell'app (estratto da index.html) */
  :root {
    /* palette logo SDN: navy scuro (SDN + cerchio) + azzurro onda. Stile "documentale": piatto,
       bordi a filo, ombre minime — coerente con verbali-enti/zero6-academy. */
    --blu: #1a4d8f; --blu-scuro: #143c6f; --blu-chiaro: #e9f1fb; --azzurro: #3987c9;
    --sfondo: #f3f5f8; --bordo: #e0e4eb; --testo: #171d2b; --muto: #67728a;
    --verde: #15803d; --rosso: #b42318; --arancio: #c2570b; --viola: #6d28d9; --superficie: #fff;
    --grigio: var(--sfondo); --footer-h: 40px; --sidebar-w: 216px;
    --raggio: 6px;
    --ombra-sm: 0 1px 2px rgba(16,24,40,.05);
    --ombra: 0 1px 3px rgba(16,24,40,.07), 0 1px 2px rgba(16,24,40,.04);
    --ombra-lg: 0 20px 50px rgba(16,24,40,.22);
  }
  * { box-sizing: border-box; }
  body { margin: 0; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif; background: var(--sfondo); color: var(--testo); font-size: 13.5px; }

  .ico { width: 15px; height: 15px; stroke: currentColor; fill: none; stroke-width: 2; stroke-linecap: round; stroke-linejoin: round; vertical-align: -3px; flex: none; }

  header { background: var(--superficie); border-bottom: 1px solid var(--bordo); padding: 8px 16px; display: flex; align-items: center; gap: 10px; flex-wrap: wrap; position: sticky; top: 0; z-index: 70; box-shadow: 0 1px 3px rgba(16,24,40,.06); }
  footer { position: fixed; left: 0; right: 0; bottom: 0; height: var(--footer-h); background: var(--blu); color: #fff; z-index: 70; display: flex; align-items: center; gap: 12px; padding: 0 16px; font-size: 12.5px; }
  footer .fbrand { font-weight: 700; }
  footer .fstato { color: #cfe0ff; }
  .brand { display: flex; align-items: center; gap: 9px; font-size: 16px; font-weight: 700; letter-spacing: .2px; }
  .brand .logo { width: 28px; height: 28px; border-radius: 6px; background: var(--blu); color: #fff; display: inline-flex; align-items: center; justify-content: center; flex: none; }
  header .file-info { flex-basis: 100%; width: 100%; order: 20; margin-top: 8px; padding-top: 8px; border-top: 1px solid var(--bordo); color: var(--muto); font-size: 12.5px; }
  header .file-info:empty { display: none; }
  main { display: flex; height: calc(100vh - var(--header-h, 92px) - var(--footer-h)); margin-left: var(--sidebar-w); transition: margin-left .18s ease; }
  #colonna-pdf { flex: 1; overflow: auto; padding: 12px; text-align: center; }
  #colonna-lato { width: 480px; min-width: 380px; background: var(--superficie); border-left: 1px solid var(--bordo); display: flex; flex-direction: column; transition: width .18s ease; }
  /* collasso del pannello destro per allargare l'area PDF */
  #btn-lato-toggle { flex: 0 0 auto; color: var(--muto); padding: 0 12px; border-bottom: 2px solid transparent; }
  #btn-lato-toggle .ico { width: 18px; height: 18px; }
  #btn-lato-apri { display: none; position: fixed; top: 50%; right: 6px; transform: translateY(-50%); z-index: 45; width: 32px; height: 48px; border-radius: 6px; background: var(--superficie); box-shadow: var(--ombra); align-items: center; justify-content: center; }
  #btn-lato-apri .ico { width: 20px; height: 20px; color: var(--blu); }
  body.lato-chiuso #colonna-lato { width: 0; min-width: 0; border: none; overflow: hidden; }
  body.lato-chiuso #btn-lato-apri { display: inline-flex; }

  /* Pulsanti */
  button { display: inline-flex; align-items: center; gap: 6px; background: var(--superficie); color: var(--testo); border: 1px solid var(--bordo); border-radius: 6px; padding: 6px 11px; cursor: pointer; font-size: 13px; font-weight: 500; font-family: inherit; }
  button:hover { background: #f2f4f7; border-color: #c3c9d4; }
  button.primario { background: var(--blu); border-color: var(--blu); color: #fff; }
  button.primario:hover { background: var(--blu-scuro); border-color: var(--blu-scuro); }
  button.pericolo { color: var(--rosso); border-color: #e6bab4; background: var(--superficie); }
  button.pericolo:hover { background: #fdf2f1; border-color: var(--rosso); }
  button.attivo { background: var(--verde); border-color: var(--verde); color: #fff; }
  button:disabled { opacity: .45; cursor: default; }
  input, select { padding: 6px 9px; border: 1px solid var(--bordo); border-radius: 6px; font-size: 13px; font-family: inherit; background: #fff; color: var(--testo); }
  input:focus, select:focus { outline: 2px solid #bfd3f7; border-color: var(--blu); }
  input[type=number] { width: 90px; }

  /* Barra strumenti */
  #barra-pagine { display: flex; align-items: center; justify-content: center; gap: 12px; margin-bottom: 10px; position: sticky; top: 0; z-index: 5; background: var(--sfondo); padding: 6px 2px; flex-wrap: wrap; }
  .gruppo { display: flex; align-items: center; gap: 4px; background: var(--superficie); border: 1px solid var(--bordo); border-radius: 6px; padding: 4px 6px; }
  .etichetta-gruppo { font-size: 10.5px; color: var(--muto); text-transform: uppercase; letter-spacing: .6px; font-weight: 700; padding: 0 5px; }
  .cal-wrap { position: relative; display: inline-flex; align-items: center; gap: 5px; }
  .cal-pop { position: absolute; top: calc(100% + 6px); left: 0; z-index: 80; background: var(--superficie); border: 1px solid var(--bordo); border-radius: 6px; box-shadow: 0 8px 28px rgba(16,24,40,.18); padding: 12px; width: 260px; }
  .cal-testa { display: flex; align-items: center; justify-content: space-between; margin-bottom: 8px; }
  .cal-testa b { font-size: 13px; }
  .cal-nav { border: 1px solid var(--bordo); border-radius: 6px; background: #fff; width: 28px; height: 28px; padding: 0; justify-content: center; font-size: 15px; line-height: 1; }
  .cal-griglia { display: grid; grid-template-columns: repeat(7, 1fr); gap: 2px; }
  .cal-dow { text-align: center; font-size: 10px; font-weight: 700; color: var(--muto); padding: 2px 0; }
  .cal-g { text-align: center; padding: 6px 0; border-radius: 6px; cursor: pointer; font-size: 12.5px; border: 1px solid transparent; user-select: none; }
  .cal-g:hover { background: var(--blu-chiaro); }
  .cal-g.vuoto { cursor: default; }
  .cal-g.off { color: #b8bdc7; }
  .cal-g.sel { background: var(--blu); color: #fff; font-weight: 700; }
  .cal-chip-riga { margin-top: 10px; display: flex; flex-wrap: wrap; gap: 5px; max-height: 92px; overflow: auto; }
  .cal-chip { display: inline-flex; align-items: center; gap: 5px; background: var(--blu-chiaro); color: var(--blu-scuro); border-radius: 999px; padding: 3px 5px 3px 9px; font-size: 11.5px; font-weight: 600; }
  .cal-chip button { border: none; background: none; color: var(--blu-scuro); padding: 0; width: 16px; height: 16px; border-radius: 50%; justify-content: center; font-size: 13px; line-height: 1; }
  .cal-chip button:hover { background: #d5e2fb; }
  .cal-pie { display: flex; justify-content: space-between; margin-top: 10px; }
  .gruppo > button { border: none; background: none; padding: 5px 9px; }
  .gruppo > button:hover { background: #f2f4f7; }
  .gruppo > button.pericolo { color: var(--rosso); }
  .segmento { display: inline-flex; border: 1px solid var(--bordo); border-radius: 6px; overflow: hidden; }
  .segmento button { border: none; border-radius: 0; padding: 5px 12px; background: #fff; color: var(--muto); font-weight: 600; }
  .segmento button + button { border-left: 1px solid var(--bordo); }
  .segmento button.attivo-seg { background: var(--blu); color: #fff; }
  .segmento button.attivo-seg.pub { background: var(--arancio); }

  #contenitore-canvas { position: relative; display: inline-block; box-shadow: 0 1px 4px rgba(16,24,40,.2); background: #fff; border-radius: 2px; }
  #canvas-pdf { display: block; }
  #overlay { position: absolute; inset: 0; cursor: crosshair; }

  /* Pannello laterale */
  #tabs { display: flex; border-bottom: 1px solid var(--bordo); }
  #tabs button { flex: 1; background: none; border: none; border-radius: 0; color: var(--muto); padding: 11px 2px; font-weight: 600; border-bottom: 2px solid transparent; justify-content: center; }
  #tabs button.sel { color: var(--blu); border-bottom-color: var(--blu); }
  .tab-body { flex: 1; overflow: auto; padding: 12px; display: none; }
  .tab-body.sel { display: block; }

  .articolo { border: 1px solid var(--bordo); border-left: 5px solid #999; border-radius: 6px; padding: 9px 10px; margin-bottom: 8px; background: var(--superficie); }
  .articolo.sel { outline: 2px solid var(--blu); outline-offset: -1px; }
  /* Card uscita: sfondo verde se il giornale completo è analizzato, rosso se no */
  .uscita-card.ok { background: #eef8f1; border-left-color: var(--verde); }
  .uscita-card.ko { background: #fdeeed; border-left-color: var(--rosso); }
  .uscita-card .riga-archivio { background: rgba(255,255,255,.72); }
  .u-azioni { display: inline-flex; gap: 6px; flex: none; align-items: center; }
  .articolo .riga { display: flex; gap: 6px; align-items: center; margin-bottom: 6px; flex-wrap: wrap; }
  .articolo .titolo { font-weight: 600; width: 100%; }
  .icona-sola { padding: 6px 8px; }
  .badge { display: inline-block; padding: 2px 9px; border-radius: 999px; font-size: 11.5px; color: #fff; font-weight: 700; letter-spacing: .3px; }
  .badge.breve { background: #7aa5d6; } .badge.medio { background: #3d7fd1; } .badge.lungo { background: #1e3a8a; }
  .mini { font-size: 12px; color: var(--muto); }

  table { border-collapse: collapse; width: 100%; background: var(--superficie); }
  th, td { border: 1px solid var(--bordo); padding: 6px 9px; text-align: left; }
  th { background: #f8f9fb; font-size: 11.5px; text-transform: uppercase; letter-spacing: .4px; color: var(--muto); }
  td.num, th.num { text-align: right; }
  tr.totale td { font-weight: 700; background: var(--blu-chiaro); }

  .campo { margin-bottom: 10px; }
  .campo label { display: block; font-weight: 600; margin-bottom: 3px; font-size: 13px; }
  .nota { font-size: 12px; color: var(--muto); margin-top: 4px; }
  #schermata-apertura { max-width: 1600px; margin: 20px auto 20px calc(var(--sidebar-w) + 20px); padding: 0 20px 56px; display: flex; gap: 20px; align-items: flex-start; transition: margin-left .18s ease; }
  .home-col { background: var(--superficie); border: 1px solid var(--bordo); border-radius: 6px; padding: 30px; }
  .home-sinistra { flex: 1; min-width: 320px; text-align: center; }
  .home-destra { flex: 1.15; min-width: 320px; }
  .home-destra h2:first-child { margin-top: 0; }
  #schermata-apertura.trascina .home-sinistra { outline: 3px dashed var(--blu); }
  @media (max-width: 1150px) { #schermata-apertura { flex-direction: column; } }
  h2 { font-size: 15px; margin: 18px 0 8px; }
  .autore-riga { display: flex; gap: 6px; align-items: center; margin-bottom: 6px; flex-wrap: wrap; }
  .autore-riga input { flex: 1; min-width: 70px; }
  #msg { position: fixed; bottom: 16px; left: 50%; transform: translateX(-50%); background: #1f2430; color: #fff; padding: 10px 18px; border-radius: 6px; display: none; z-index: 99; box-shadow: 0 4px 14px rgba(16,24,40,.3); font-size: 13px; }

  #pagina-report, #pagina-backup, #pagina-consegne, #pagina-archivio, #pagina-giornalisti, #pagina-inserzionisti, #pagina-budget, #pagina-uscite, #pagina-bordero, #pagina-correttore, #pagina-impostazioni, #pagina-account, #pagina-provvigioni, #pagina-privacy, #pagina-sistema, #pagina-consegne, #pagina-backup { position: fixed; top: var(--header-h, 92px); bottom: var(--footer-h); left: var(--sidebar-w); right: 0; background: var(--sfondo); z-index: 50; overflow: auto; padding: 12px 14px; transition: left .18s ease; }
  /* Layout a due colonne 2/3 + 1/3 riutilizzabile in tutte le pagine */
  .pagina-2col { display: flex; gap: 18px; align-items: flex-start; }
  .pagina-2col > .col-main { flex: 2 1 0; min-width: 0; }
  .pagina-2col > .col-side { flex: 1 1 0; min-width: 280px; max-width: 400px; position: sticky; top: 0; }
  @media (max-width: 940px) { .pagina-2col { flex-direction: column; } .pagina-2col > .col-side { position: static; max-width: none; width: 100%; } }
  .side-stat { display: flex; justify-content: space-between; align-items: baseline; gap: 10px; padding: 7px 0; border-bottom: 1px dashed #e6eaf1; font-size: 13px; }
  .side-stat:last-child { border-bottom: none; }
  .side-stat > span { color: var(--muto); }
  .side-stat > b { font-variant-numeric: tabular-nums; white-space: nowrap; }
  .side-stat.grande { padding: 4px 0 9px; }
  .side-stat.grande > b { font-size: 20px; letter-spacing: -.3px; }
  .side-stat.spicca > b { color: var(--blu); }
  .side-stat.attenzione > b { color: var(--arancio); }
  .side-stat.allarme > b { color: var(--rosso); }
  .side-mini { font-size: 11.5px; color: var(--muto); margin-top: 8px; line-height: 1.4; }
  /* Controllo qualità anagrafica giornalisti */
  .controllo { display: flex; gap: 10px; align-items: flex-start; border: 1px solid var(--bordo); border-radius: 6px; padding: 12px 14px; margin-bottom: 14px; background: var(--superficie); }
  .controllo.ok { border-color: #bfe3cd; background: #f2fbf5; color: var(--verde); align-items: center; }
  .controllo.ha-avvisi { border-color: #f1d6ab; background: #fff9ef; }
  .controllo.ha-errori { border-color: #e6bab4; background: #fdf4f2; }
  .controllo > .ico { flex: none; width: 20px; height: 20px; margin-top: 1px; }
  .controllo.ha-errori > .ico { color: var(--rosso); }
  .controllo.ha-avvisi > .ico { color: var(--arancio); }
  .controllo-testa { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; width: 100%; }
  .controllo-titolo { flex: 1; min-width: 200px; font-size: 13.5px; }
  .controllo-toggle { padding: 4px 12px; font-size: 12.5px; }
  .c-badge { display: inline-block; font-size: 11.5px; font-weight: 700; padding: 2px 8px; border-radius: 6px; margin-left: 4px; white-space: nowrap; }
  .c-badge.err { background: #fbe3df; color: var(--rosso); }
  .c-badge.avv { background: #fbedd6; color: var(--arancio); }
  .controllo-dettagli { width: 100%; margin-top: 10px; border-top: 1px dashed var(--bordo); padding-top: 8px; }
  .controllo-riga { padding: 7px 0; border-bottom: 1px dashed #e6eaf1; }
  .controllo-riga:last-child { border-bottom: none; }
  .controllo-nome { font-size: 13px; margin-bottom: 3px; display: flex; align-items: center; gap: 7px; flex-wrap: wrap; }
  .controllo-punti { margin: 0; padding-left: 2px; list-style: none; }
  .controllo-punti li { font-size: 12.5px; color: var(--testo); line-height: 1.5; display: flex; align-items: flex-start; gap: 7px; }
  .c-dot { flex: none; width: 7px; height: 7px; border-radius: 50%; margin-top: 6px; }
  .c-dot.errore { background: var(--rosso); }
  .c-dot.avviso { background: var(--arancio); }
  .mini-tag { font-size: 10.5px; font-weight: 700; text-transform: uppercase; letter-spacing: .3px; padding: 2px 7px; border-radius: 6px; background: var(--sfondo); color: var(--muto); border: 1px solid var(--bordo); }
  .mini-tag.pag { background: var(--blu-chiaro); color: var(--blu); border-color: #bcd6f2; }
  .riga-flag { display: inline-flex; vertical-align: middle; margin-left: 5px; cursor: help; }
  .riga-flag .ico { width: 15px; height: 15px; }
  .riga-flag.err { color: var(--rosso); }
  .riga-flag.avv { color: var(--arancio); }
  tr.riga-errore > td:first-child { box-shadow: inset 3px 0 0 var(--rosso); }
  tr.riga-avviso > td:first-child { box-shadow: inset 3px 0 0 var(--arancio); }
  /* Griglia checkbox per abbinare gli inserzionisti a un gestore pubblicità */
  .ins-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)); gap: 2px 14px; max-height: 280px; overflow: auto; border: 1px solid var(--bordo); border-radius: 6px; padding: 8px 10px; background: var(--sfondo); }
  .ins-check { display: flex; align-items: center; gap: 7px; font-size: 13px; padding: 3px 2px; cursor: pointer; }
  .ins-check input { width: 15px; height: 15px; flex: none; }
  .ins-check.occupato { color: var(--muto); opacity: .65; cursor: not-allowed; }
  /* Popup account: campi più grandi e curati, radius 6px */
  .pu-form { font-size: 14px; }
  .pu-form .pannello { border-radius: 6px; padding: 18px 20px; margin-bottom: 16px; }
  .pu-form label.mini { font-size: 12px; font-weight: 600; color: var(--muto); display: flex; flex-direction: column; gap: 4px; }
  .pu-form input, .pu-form select { min-height: 44px; padding: 10px 13px; border-radius: 6px; font-size: 14px; box-sizing: border-box; }
  .pu-form input[type=checkbox] { min-height: 0; }
  .pu-form label.mini > input, .pu-form label.mini > select { margin-top: 4px; }
  .pu-form button { min-height: 44px; border-radius: 6px; padding: 0 18px; font-size: 14px; font-weight: 600; }
  .pu-form .autore-riga { gap: 16px; align-items: flex-end; margin-bottom: 0; }
  .pu-form .ins-grid { border-radius: 6px; gap: 6px 20px; padding: 14px 16px; max-height: 360px; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); }
  .pu-form .ins-check { font-size: 14px; padding: 7px 4px; border-radius: 6px; }
  .pu-form .ins-check:hover { background: var(--blu-chiaro); }
  .pu-form .ins-check input { width: 19px; height: 19px; }
  .pu-form .sez-intesta { font-weight: 700; text-transform: uppercase; letter-spacing: .05em; color: var(--blu-scuro); font-size: 12px; }
  /* Parcheggio uscite future nella colonna laterale */
  .parcheggio-uscite { display: flex; flex-direction: column; gap: 6px; max-height: 340px; overflow: auto; }
  .parcheggio-riga { display: flex; gap: 4px; align-items: stretch; }
  .parcheggio-chip { flex: 1; display: flex; justify-content: space-between; align-items: center; gap: 8px; min-width: 0; text-align: left; background: var(--sfondo); border: 1px solid var(--bordo); border-radius: 6px; padding: 8px 10px; font-size: 13px; font-weight: 600; box-shadow: none; min-height: 0; }
  .parcheggio-riga .parcheggio-del { flex: none; min-height: 0; padding: 0 9px; border-radius: 6px; }
  .parcheggio-chip:hover { border-color: var(--blu); color: var(--blu-scuro); background: var(--blu-chiaro); transform: none; box-shadow: none; }
  .parcheggio-chip .mini { color: var(--muto); font-weight: 400; flex: none; }
  #pagina-bordero { z-index: 60; }
  #bordero-contenuto { background: #fff; }
  .ico-azione { padding: 5px 7px; }
  #lightbox { position: fixed; inset: 0; z-index: 90; background: rgba(16,24,40,.8); display: flex; flex-direction: column; }
  #lightbox .lb-barra { display: flex; gap: 8px; align-items: center; padding: 10px 14px; color: #fff; }
  #lightbox .lb-barra .mini { color: #dfe3ea; }
  #lightbox .lb-corpo { flex: 1; overflow: auto; text-align: center; padding: 0 14px 18px; }
  #lightbox img { max-width: 100%; background: #fff; box-shadow: 0 4px 20px rgba(0,0,0,.4); }
  .bordero-sezione { padding: 4px 0 18px; }
  .bordero-testa h1 { font-size: 20px; margin: 0 0 2px; }
  .bordero-testa .sub { color: var(--muto); font-size: 13px; margin-bottom: 10px; }
  .inserz-layout { display: flex; gap: 22px; align-items: flex-start; }
  .inserz-anagrafica { flex: 2 1 0; min-width: 0; }
  .inserz-target { flex: 1 1 0; min-width: 300px; position: sticky; top: 0; }
  .libreria-inserzioni { margin-top: 22px; padding-top: 14px; border-top: 1px solid var(--bordo, #dfe3e8); max-width: 980px; }
  .libreria-inserzioni .nota { max-width: 760px; margin: 6px 0 10px; }
  .controllo-numero { border: 1px solid var(--bordo, #dfe3e8); border-radius: 6px; padding: 10px 12px; margin-bottom: 14px; background: var(--superficie, #fff); }
  .controllo-numero .gruppo-controllo { margin-top: 10px; }
  .controllo-numero .gruppo-controllo h4 { margin: 0 0 4px; font-size: 12px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; color: var(--muto); }
  .controllo-numero .voce-controllo { display: flex; gap: 8px; align-items: baseline; padding: 3px 0; border-top: 1px solid var(--bordo, #eef0f3); font-size: 13px; }
  .controllo-numero .voce-controllo .pag { font-variant-numeric: tabular-nums; color: var(--muto); min-width: 44px; }
  .controllo-numero .voce-controllo .testo { flex: 1; min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  .controllo-numero .tutto-bene { color: var(--verde, #1b8a4b); margin-top: 8px; font-size: 13px; }
  /* Tabella anagrafica inserzionisti */
  .wrap-tab-inserz { overflow-x: auto; border: 1px solid var(--bordo); border-radius: 6px; background: var(--superficie); }
  table.tab-inserz { width: 100%; border-collapse: collapse; font-size: 13px; min-width: 640px; }
  table.tab-inserz thead th { position: sticky; top: 0; z-index: 1; background: var(--superficie); text-align: left; font-size: 11px; text-transform: uppercase; letter-spacing: .04em; color: var(--muto); font-weight: 700; padding: 10px 10px; border-bottom: 2px solid var(--bordo); white-space: nowrap; }
  table.tab-inserz tbody td { padding: 8px 10px; border-bottom: 1px solid var(--bordo); vertical-align: middle; }
  table.tab-inserz tbody tr:last-child td { border-bottom: none; }
  table.tab-inserz tbody tr:hover td { background: var(--blu-chiaro); }
  table.tab-inserz .col-num { text-align: right; white-space: nowrap; font-variant-numeric: tabular-nums; }
  table.tab-inserz input.codice { width: 74px; font-weight: 600; color: var(--blu-scuro); text-align: center; }
  table.tab-inserz input.nome { width: 100%; min-width: 130px; font-weight: 600; }
  table.tab-inserz input.budget { width: 88px; text-align: right; }
  table.tab-inserz .col-budget { white-space: nowrap; }
  table.tab-inserz .col-avanz { min-width: 168px; }
  table.tab-inserz .avanz-testo { font-size: 11.5px; margin-top: 3px; color: var(--muto); }
  table.tab-inserz .col-azioni { text-align: right; white-space: nowrap; width: 1%; }
  table.tab-inserz tfoot td { padding: 10px; border-top: 2px solid var(--bordo); font-weight: 700; background: var(--sfondo); white-space: nowrap; }
  @media (max-width: 900px) { .inserz-layout { flex-direction: column; } .inserz-target { position: static; width: 100%; } }
  .pannello { background: var(--superficie); border: 1px solid var(--bordo); border-radius: 6px; padding: 14px 16px; margin-bottom: 14px; }
  .pannello h3 { margin: 0 0 10px; font-size: 14px; }
  .obiettivo-riga { display: flex; align-items: center; gap: 8px; margin-bottom: 10px; }
  .barra-budget { height: 9px; background: var(--sfondo); border: 1px solid var(--bordo); border-radius: 999px; overflow: hidden; }
  .barra-budget > div { height: 100%; background: var(--blu); border-radius: 999px; }
  .barra-budget > div.oltre { background: var(--rosso); }
  table.target td, table.target th { padding: 5px 8px; font-size: 12.5px; }
  table.target th { background: var(--blu-chiaro); font-size: 11px; text-transform: uppercase; letter-spacing: .3px; color: var(--muto); }
  table.target input.tprezzo { width: 74px; text-align: right; }
  table.target .medio { text-align: right; font-variant-numeric: tabular-nums; }
  table.target .medio.sotto { color: var(--rosso); }
  table.target .medio.sopra { color: #167c3b; }
  .report-testa { display: flex; gap: 10px 12px; align-items: flex-end; flex-wrap: wrap; border-bottom: 1px solid var(--bordo); padding-bottom: 12px; margin-bottom: 16px; }
  .report-testa h2 { display: inline-flex; align-items: center; gap: 8px; align-self: center; }
  /* filtri e ricerche: etichetta sopra, controlli alti come i pulsanti */
  .report-testa label { display: inline-flex; flex-direction: column; align-items: stretch; gap: 3px; font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .3px; color: var(--muto); }
  .report-testa label > select,
  .report-testa label > input,
  .report-testa > input[type="search"] { min-height: 44px; font-size: 13.5px; font-weight: 400; text-transform: none; letter-spacing: normal; color: var(--testo); padding: 9px 13px; margin-bottom: 14px; }
  .report-testa { align-items: flex-start; }
  /* schede della pagina Impostazioni */
  .imp-tabs { display: inline-flex; gap: 3px; background: var(--sfondo); border: 1px solid var(--bordo); border-radius: 6px; padding: 3px; flex-wrap: wrap; align-self: center; }
  .imp-tabs button { min-height: 0; box-shadow: none; background: none; border: none; color: var(--muto); font-weight: 600; padding: 8px 15px; border-radius: 6px; }
  .imp-tabs button:hover { transform: none; background: var(--blu-chiaro); color: var(--blu-scuro); border-color: transparent; }
  .imp-tabs button.sel { background: var(--superficie); color: var(--blu-scuro); box-shadow: var(--ombra-sm); }
  .imp-sez { max-width: 820px; }
  .imp-sez h2:first-child { margin-top: 0; }
  /* Compensi e fasce — schede grafiche */
  .imp-blocco { background: var(--superficie); border: 1px solid #e6eaf1; border-radius: 6px; box-shadow: var(--ombra-sm); padding: 18px 20px 20px; margin: 0 0 16px; }
  .imp-blocco-testa { display: flex; align-items: baseline; gap: 10px; flex-wrap: wrap; margin-bottom: 16px; }
  .imp-blocco-testa h2 { margin: 0; font-size: 16px; }
  .imp-blocco-testa .nota { margin: 0; }
  .input-unita { display: inline-flex; align-items: center; gap: 7px; }
  .input-unita input { width: 108px; text-align: right; font-variant-numeric: tabular-nums; font-weight: 700; }
  .input-unita span { color: var(--muto); font-size: 13px; font-weight: 600; }
  /* fila delle soglie con freccia di flusso */
  .soglie-flusso { display: flex; align-items: flex-end; gap: 14px; flex-wrap: wrap; }
  .soglia-campo { display: flex; flex-direction: column; gap: 6px; }
  .soglia-campo > label { font-size: 11px; font-weight: 700; text-transform: uppercase; letter-spacing: .3px; color: var(--muto); }
  .soglia-freccia { color: var(--bordo); font-size: 22px; line-height: 40px; }
  .soglia-oltre { display: inline-flex; align-items: center; gap: 6px; align-self: flex-end; height: 40px; padding: 0 12px; border-radius: 6px; background: #f3eefe; color: var(--viola); font-weight: 700; font-size: 12.5px; }
  /* schede compenso per fascia */
  .compensi-griglia { display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; }
  .fascia-card { position: relative; border: 1px solid #e6eaf1; border-radius: 6px; padding: 14px 15px 15px; background: var(--sfondo); overflow: hidden; }
  .fascia-card::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px; background: var(--acc); }
  .fascia-card.breve { --acc: var(--azzurro); }
  .fascia-card.medio { --acc: var(--arancio); }
  .fascia-card.lungo { --acc: var(--viola); }
  .fascia-nome { display: inline-flex; align-items: center; gap: 7px; font-weight: 800; font-size: 13px; text-transform: uppercase; letter-spacing: .4px; color: var(--acc); }
  .fascia-nome::before { content: ""; width: 9px; height: 9px; border-radius: 50%; background: var(--acc); }
  .fascia-range { margin: 3px 0 12px; font-size: 12.5px; color: var(--muto); min-height: 17px; }
  .fascia-prezzo { display: flex; align-items: baseline; gap: 6px; }
  .fascia-prezzo input { width: 100%; font-size: 22px; font-weight: 800; padding: 8px 12px; text-align: right; font-variant-numeric: tabular-nums; }
  .fascia-prezzo span { font-size: 17px; font-weight: 700; color: var(--muto); }
  @media (max-width: 620px) { .compensi-griglia { grid-template-columns: 1fr; } }
  /* Correttore: due colonne (nomi ricorrenti | amministratori) */
  .imp-sez-larga { max-width: 1120px; }
  .correttore-2col { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; align-items: start; }
  .correttore-2col .imp-blocco { margin: 0; height: 100%; }
  .correttore-2col .nota { margin-top: 0; }
  @media (max-width: 900px) { .correttore-2col { grid-template-columns: 1fr; } }
  .rep-giornalista-blocco { margin-bottom: 26px; }
  .rep-giornalista-blocco h2 { color: var(--blu); border-bottom: 1px solid var(--bordo); padding-bottom: 4px; }
  .rep-edizione { margin: 10px 0 4px; font-weight: 600; }
  .riga-archivio { display: flex; gap: 8px; align-items: center; border: 1px solid var(--bordo); border-radius: 6px; padding: 9px 11px; margin-bottom: 6px; background: var(--superficie); }
  /* righe elenco (dashboard e pagina archivio): sempre una riga sola, il nome file si tronca con "…" */
  .riga-lista { flex-wrap: nowrap; }
  .riga-lista > .mini { min-width: 0; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  /* Correttore bozze */
  .bozze-drop { border: 2px dashed var(--bordo); border-radius: 6px; padding: 40px 24px; text-align: center; background: var(--superficie); max-width: 720px; margin: 10px auto; transition: border-color .15s, background .15s; }
  .bozze-drop.sopra { border-color: var(--blu); background: var(--blu-chiaro); }
  .bozze-2col { display: flex; gap: 14px; align-items: flex-start; }
  .bozze-viewer { flex: 1 1 0; min-width: 0; position: sticky; top: 0; }
  .bozze-nav { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
  .bozze-zoom-sep { width: 1px; height: 22px; background: var(--bordo); margin: 0 2px; }
  #bozze-zoom-lbl { min-width: 40px; text-align: center; font-variant-numeric: tabular-nums; }
  #bozze-zoom-err { min-height: 34px; padding: 5px 11px; font-size: 12.5px; }
  #bozze-zoom-err .ico { width: 15px; height: 15px; }
  #bozze-canvas { cursor: zoom-in; }
  .bozze-canvas-wrap { border: 1px solid var(--bordo); border-radius: 6px; background: #f4f5f8; overflow: auto; max-height: calc(100vh - var(--header-h, 92px) - var(--footer-h) - 92px); display: flex; justify-content: safe center; align-items: flex-start; padding: 8px; }
  /* niente max-width: il canvas mantiene le sue dimensioni reali (larghezza E altezza in px dal JS) così lo zoom resta proporzionato; il contenitore scorre in orizzontale */
  #bozze-canvas { box-shadow: var(--ombra); background: #fff; }
  .bozze-lista { flex: 0 0 380px; max-width: 380px; }
  .bozze-cat { margin-bottom: 16px; }
  .bozze-cat h3 { display: flex; align-items: center; gap: 9px; border-left: 4px solid; padding-left: 11px; margin: 8px 0 9px; font-size: 15px; }
  .bozze-badge { color: #fff; border-radius: 999px; padding: 1px 10px; font-size: 12.5px; font-weight: 700; }
  .bozze-legenda { display: flex; flex-wrap: wrap; gap: 7px 14px; margin: 2px 0 12px; font-size: 12px; color: var(--muto); }
  .bozze-legenda span { display: inline-flex; align-items: center; gap: 6px; }
  .bozze-legenda i { width: 13px; height: 13px; border-radius: 3px; display: inline-block; }
  .bozze-item { border: 1px solid var(--bordo); border-radius: 6px; padding: 9px 12px; margin-bottom: 6px; background: var(--superficie); cursor: pointer; transition: border-color .12s, box-shadow .12s; }
  .bozze-item:hover { border-color: var(--blu); box-shadow: var(--ombra-sm); }
  .bozze-item.sel { border-color: var(--blu); box-shadow: 0 0 0 2px rgba(57,135,201,.25); }
  .bozze-testo { font-weight: 600; word-break: break-word; }
  .bozze-nota { color: var(--muto); margin-top: 2px; }
  .bozze-item .bozze-pag { color: var(--blu-scuro); font-weight: 700; }
  @media (max-width: 900px) { .bozze-2col { flex-direction: column; } .bozze-viewer { position: static; width: 100%; } .bozze-lista { flex: none; max-width: none; width: 100%; } }
  /* barra dei file (più bozze insieme) */
  .bozze-files { display: none; flex-wrap: wrap; gap: 6px; margin-bottom: 10px; }
  .bozze-chip { display: inline-flex; align-items: center; gap: 6px; padding: 5px 6px 5px 11px; border: 1px solid var(--bordo); border-radius: 999px; background: var(--superficie); font-size: 12.5px; font-weight: 600; cursor: pointer; }
  .bozze-chip:hover { border-color: var(--blu); }
  .bozze-chip.att { border-color: var(--blu); background: var(--blu-chiaro); color: var(--blu-scuro); }
  .bozze-chip .mini { color: var(--muto); font-weight: 500; }
  .bozze-chip-n { background: var(--blu); color: #fff; border-radius: 999px; padding: 0 7px; font-size: 11px; }
  .bozze-chip-todo { color: var(--muto); font-weight: 500; }
  .bozze-chip-x { min-height: 0; padding: 1px 5px; background: none; box-shadow: none; border: none; color: var(--muto); font-size: 12px; border-radius: 999px; }
  .bozze-chip-x:hover { color: #fff; background: var(--rosso); transform: none; box-shadow: none; }
  /* stati di lavorazione: ✓ corretta, ✕ scartata, ↩ ripristina, ✎ nota */
  .bozze-item { position: relative; }
  .bozze-item .bozze-testo, .bozze-item .bozze-nota { padding-right: 30px; }
  .bozze-scarta, .bozze-ripristina { position: absolute; top: 6px; min-height: 0; width: 22px; height: 22px; padding: 0; border-radius: 6px; background: none; box-shadow: none; border: 1px solid transparent; color: var(--muto); font-size: 12px; line-height: 1; }
  .bozze-scarta { right: 6px; }
  .bozze-ripristina { right: 6px; }
  .bozze-scarta:hover { color: #fff; background: var(--rosso); border-color: var(--rosso); transform: none; box-shadow: none; }
  .bozze-ripristina:hover { color: var(--blu-scuro); background: var(--blu-chiaro); transform: none; box-shadow: none; }
  .bozze-item.scart { opacity: .65; }
  .bozze-gruppo-chiuso { margin-top: 14px; }
  .bozze-gruppo-chiuso > summary { cursor: pointer; color: var(--muto); font-size: 12.5px; font-weight: 600; margin-bottom: 8px; }
  .bozze-notabtn { min-height: 0; padding: 0 6px; background: none; box-shadow: none; border: none; color: var(--blu); font-size: 11.5px; font-weight: 700; }
  .bozze-notabtn:hover { transform: none; box-shadow: none; text-decoration: underline; }
  .bozze-notared { color: var(--blu-scuro); font-style: italic; }
  .bozze-sugg { color: #1e7a44; font-weight: 700; margin-left: 4px; }
  .bozze-legenda span { cursor: pointer; user-select: none; border-radius: 6px; padding: 2px 5px; }
  .bozze-legenda span:hover { background: var(--blu-chiaro); }
  .bozze-legenda span.off { opacity: .38; text-decoration: line-through; }
  /* gestione avanzata: viste, avanzamento pagine, azioni di massa */
  .bozze-viste { margin: 0 0 10px; }
  .bozze-viste button { font-size: 12.5px; padding: 6px 12px; }
  .bozze-pagstrip { display: flex; flex-wrap: wrap; gap: 5px; align-items: center; margin: 0 0 12px; font-size: 12px; color: var(--muto); }
  .pagchip { min-height: 0; padding: 3px 9px; font-size: 11.5px; font-weight: 700; border-radius: 999px; box-shadow: none; background: #fdeeed; color: #b42318; border: 1px solid #f3c1bd; }
  .pagchip.ok { background: #eef8f1; color: var(--verde); border-color: #bfe3cd; }
  .pagchip:hover { transform: none; box-shadow: var(--ombra-sm); }
  .bozze-bulk { min-height: 0; padding: 1px 8px; margin-left: 6px; font-size: 11px; font-weight: 700; background: none; border: 1px solid var(--bordo); box-shadow: none; color: var(--muto); border-radius: 999px; }
  .bozze-bulk:hover { transform: none; box-shadow: none; background: var(--blu-chiaro); color: var(--blu-scuro); }
  .catdot { width: 9px; height: 9px; border-radius: 50%; display: inline-block; margin-right: 6px; flex: none; }
  /* «vedi elenco» delle liste di controllo */
  .lista-vedi { min-height: 0; padding: 0 5px; background: none; box-shadow: none; border: none; color: var(--blu); font-size: inherit; font-weight: 700; }
  .lista-vedi:hover { text-decoration: underline; transform: none; box-shadow: none; background: none; }
  #verifica-lista h3 { font-size: 13px; text-transform: uppercase; letter-spacing: .3px; color: var(--muto); margin: 14px 0 6px; }
  .verifica-griglia { display: grid; grid-template-columns: repeat(auto-fill, minmax(230px, 1fr)); gap: 1px 16px; font-size: 13px; }
  .verifica-griglia > div { padding: 3px 0; border-bottom: 1px solid var(--sfondo); }
  /* rapporto di correzione stampabile */
  #bozze-rapporto { display: none; }
  body.rapporto-bozze > *:not(#bozze-rapporto) { display: none !important; }
  body.rapporto-bozze #bozze-rapporto { display: block; padding: 20px; }
  #bozze-rapporto table { width: 100%; border-collapse: collapse; margin: 8px 0 18px; }
  #bozze-rapporto th, #bozze-rapporto td { border: 1px solid #999; padding: 4px 7px; font-size: 11.5px; text-align: left; vertical-align: top; }
  .btn-carica { font-size: 15px; font-weight: 600; padding: 13px 22px; border-radius: 6px; }
  .btn-carica .ico { width: 18px; height: 18px; }
  .btn-carica.drop-attivo { outline: 3px dashed var(--blu); outline-offset: 3px; background: var(--blu-chiaro); color: var(--blu); }
  .u-data { padding: 7px 9px; }

  /* Scheda anagrafica (modale) */
  #scheda-sfondo { position: fixed; inset: 0; background: rgba(16,24,40,.45); z-index: 80; display: flex; align-items: flex-start; justify-content: center; overflow: auto; padding: 28px 16px; }
  #scheda-pannello { background: var(--superficie); border-radius: 6px; max-width: 860px; width: 100%; padding: 18px 22px 22px; box-shadow: 0 10px 40px rgba(16,24,40,.3); margin-bottom: 28px; }
  .griglia-campi { display: grid; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); gap: 10px 12px; margin: 10px 0; }
  .griglia-campi .campo { margin: 0; }
  .griglia-campi input, .griglia-campi select, #scheda-corpo textarea { width: 100%; }
  #scheda-corpo textarea { min-height: 60px; resize: vertical; padding: 6px 9px; border: 1px solid var(--bordo); border-radius: 6px; font: inherit; font-size: 13px; }
  .barra-budget { height: 10px; border-radius: 999px; background: #e8eaef; overflow: hidden; margin-top: 6px; }
  .barra-budget > div { height: 100%; background: var(--blu); }
  .barra-budget > div.oltre { background: var(--rosso); }

  /* Contatori e grafici (budget) */
  .contatori { display: flex; gap: 12px; flex-wrap: wrap; margin: 12px 0; }
  .contatore { border: 1px solid var(--bordo); border-radius: 6px; padding: 10px 14px; min-width: 150px; background: var(--superficie); }
  .contatore .v { font-size: 21px; font-weight: 700; line-height: 1.1; }
  .contatore .l { font-size: 11px; color: var(--muto); text-transform: uppercase; letter-spacing: .4px; margin-top: 2px; }
  .contatore.sfora { border-color: var(--rosso); background: #fdf2f1; }
  .contatore.sfora .v { color: var(--rosso); }
  .contatore.ok { border-color: #bfe3c8; background: #f2fbf5; }
  .chart-riga { display: grid; grid-template-columns: 190px 1fr 92px; gap: 10px; align-items: center; margin-bottom: 7px; font-size: 12.5px; }
  .chart-barra { height: 16px; border-radius: 6px; background: #e8eaef; overflow: hidden; display: flex; }
  .chart-barra > div { height: 100%; }
  .scroll-x { overflow-x: auto; }
  table.matrice { font-size: 12px; min-width: 860px; }
  table.matrice th, table.matrice td { padding: 4px 5px; }
  table.matrice input { width: 52px; text-align: right; padding: 3px 4px; }
  table.matrice .voce { text-align: left; white-space: nowrap; color: var(--muto); font-weight: 600; }
  table.matrice tr.collab td { background: #eef2fb; font-weight: 700; color: var(--testo); }
  table.matrice tr.zona-band td { background: var(--blu); color: #fff; font-weight: 700; letter-spacing: .3px; }
  table.matrice tr.zona-sub td { background: #e7edfa; font-weight: 600; }
  table.matrice tr.riga-prod td { color: var(--muto); }
  table.matrice td.tot { font-weight: 700; background: #f8f9fb; }
  table.matrice td.tot.sfora { color: var(--rosso); }

  /* ===== Stile documentale: piatto, bordi a filo, ombre minime ===== */
  body { -webkit-font-smoothing: antialiased; font-variant-numeric: tabular-nums; }
  @keyframes salgo { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }

  header { background: var(--superficie); box-shadow: none; padding: 10px 20px; }
  .brand { font-size: 17px; }

  footer { background: var(--blu-scuro); border-top: 1px solid rgba(255,255,255,.08); box-shadow: none; }
  footer .fstato { color: #cfddf5; white-space: nowrap; flex: none; }
  footer .fcopy { font-size: 11px; color: #b9cbe8; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

  /* Logo SDN */
  .logo-sdn { width: 38px; height: 38px; flex: none; display: inline-block; object-fit: contain; vertical-align: middle; }

  /* Pulsanti dell'header più alti e comodi */
  header > button, header .brand { min-height: 44px; }
  header > button { padding: 11px 16px; }

  /* Pulsanti: piatti, navy del logo, alti e comodi al click — nessun sollevamento/ombra decorativa */
  button { border-radius: 6px; padding: 9px 15px; min-height: 40px; font-weight: 600; transition: background .14s ease, border-color .14s ease, color .14s ease; }
  button:not(.primario):not(.pericolo):not(.attivo):hover { border-color: var(--blu); color: var(--blu-scuro); background: var(--blu-chiaro); }
  button.primario { background: var(--blu); border-color: var(--blu); color: #fff; }
  button.primario:hover { background: var(--blu-scuro); border-color: var(--blu-scuro); }
  button:active { filter: brightness(.96); }
  .btn-carica { min-height: 52px; }
  /* pulsanti "compatti" dentro gruppi/tab/segmenti: più bassi, senza min-height */
  .gruppo > button, #tabs button, .segmento button, .gruppo button, .cal-nav, .icona-sola, .ico-azione { box-shadow: none; min-height: 0; }
  .gruppo > button:hover, #tabs button:hover { transform: none; }
  .icona-sola { min-height: 36px; }
  input, select, textarea { border-radius: 6px; transition: border-color .14s, box-shadow .14s; }
  input:focus, select:focus, textarea:focus { outline: none; border-color: var(--blu); box-shadow: 0 0 0 3px var(--blu-chiaro); }

  /* ===== Menu verticale (sidebar) ===== */
  header { padding: 8px 16px; gap: 10px; }
  #btn-collassa { min-height: 40px; padding: 8px 10px; background: var(--superficie); }
  #btn-esci { min-height: 40px; color: var(--rosso); border-color: #e6bab4; background: var(--superficie); }
  #btn-esci:hover { background: #fdf2f1; border-color: var(--rosso); color: var(--rosso); }
  #sel-ruolo-wrap select { min-height: 40px; }
  #sidebar {
    position: fixed; left: 0; top: var(--header-h, 92px); bottom: var(--footer-h); width: var(--sidebar-w);
    background: var(--superficie); border-right: 1px solid var(--bordo); z-index: 60;
    display: flex; flex-direction: column; gap: 4px; padding: 12px 10px; overflow-y: auto;
    box-shadow: none; transition: width .18s ease;
  }
  .side-btn {
    display: flex; align-items: center; gap: 11px; width: 100%; justify-content: flex-start; flex: none;
    padding: 11px 13px; border: 1px solid transparent; border-radius: 6px; background: none;
    box-shadow: none; min-height: 44px; font-weight: 600; color: var(--testo); white-space: nowrap; overflow: hidden;
    position: relative; transition: background .12s, color .12s;
  }
  .side-btn .ico { width: 18px; height: 18px; }
  .side-btn:hover { transform: none; background: var(--blu-chiaro); color: var(--blu-scuro); border-color: transparent; }
  .side-btn.attivo-nav { background: var(--blu-chiaro); color: var(--blu-scuro); border-color: transparent; }
  .side-btn.attivo-nav::before { content: ""; position: absolute; left: -10px; top: 9px; bottom: 9px; width: 3px; border-radius: 0 3px 3px 0; background: var(--blu); }
  body.menu-chiuso .side-btn.attivo-nav::before { left: 0; }
  .side-btn.attivo-nav .ico { color: var(--blu); }
  .side-btn.primario { background: var(--blu); color: #fff; }
  .side-sep { height: 1px; flex: none; background: var(--bordo); margin: 8px 4px; }
  .side-label { flex: none; font-size: 10.5px; font-weight: 800; text-transform: uppercase; letter-spacing: .07em; color: var(--muto); padding: 12px 13px 3px; white-space: nowrap; overflow: hidden; }
  .side-label:first-child { padding-top: 2px; }
  body.menu-chiuso .side-label { height: 1px; padding: 8px 0 0; margin: 4px 6px 0; background: var(--bordo); font-size: 0; }
  /* sotto-menu Impostazioni: voci indentate, visibili solo quando si è nelle Impostazioni */
  .side-btn .ico-caret { width: 14px; height: 14px; margin-left: auto; transition: transform .18s ease; opacity: .6; }
  body.sub-imp-aperto #btn-impostazioni-top .ico-caret { transform: rotate(90deg); }
  #sub-impostazioni { display: none; flex-direction: column; gap: 2px; margin: 2px 0 2px 10px; padding-left: 8px; border-left: 2px solid var(--bordo); }
  body.sub-imp-aperto #sub-impostazioni { display: flex; }
  .side-sub-btn {
    display: flex; align-items: center; width: 100%; justify-content: flex-start; text-align: left;
    padding: 9px 12px; border: 1px solid transparent; border-radius: 6px; background: none;
    box-shadow: none; min-height: 0; font-weight: 600; font-size: 13.5px; color: var(--muto); white-space: nowrap; overflow: hidden;
  }
  .side-sub-btn:hover { transform: none; background: var(--blu-chiaro); color: var(--blu-scuro); border-color: transparent; }
  .side-sub-btn.attivo-sub { background: var(--blu-chiaro); color: var(--blu-scuro); border-color: #cbdcf3; }
  /* stato collassato: solo icone */
  body.menu-chiuso { --sidebar-w: 62px; }
  body.menu-chiuso #sidebar { padding: 12px 9px; }
  body.menu-chiuso .side-btn { justify-content: center; padding: 11px 0; gap: 0; }
  body.menu-chiuso .side-btn > span { display: none; }
  body.menu-chiuso .side-btn .ico-caret { display: none; }
  body.menu-chiuso #sub-impostazioni { display: none; }
  body.menu-chiuso .side-sep { margin: 8px 6px; }
  @media print { #sidebar { display: none; } }

  /* velo dietro il menu su schermi piccoli */
  #velo-menu { display: none; }

  /* ===== Mobile: sidebar a scomparsa (drawer), contenuto a tutta larghezza ===== */
  @media (max-width: 820px) {
    body { --sidebar-w: 0px; }                 /* il contenuto usa tutta la larghezza */
    body.menu-chiuso { --sidebar-w: 0px; }
    #sidebar {
      width: min(80vw, 288px); padding: 12px 10px;
      transform: translateX(-100%); transition: transform .22s ease;
      box-shadow: 4px 0 22px rgba(16,24,40,.18);
    }
    #sidebar .side-btn { justify-content: flex-start; padding: 13px 14px; gap: 11px; }
    #sidebar .side-btn > span { display: inline; }   /* sempre etichette leggibili nel drawer */
    body.menu-mobile-aperto #sidebar { transform: translateX(0); }
    body.menu-mobile-aperto #velo-menu {
      display: block; position: fixed; left: 0; right: 0;
      top: var(--header-h, 92px); bottom: 0; z-index: 55;
      background: rgba(16,24,40,.42); animation: velo-in .18s ease;
    }
    #schermata-apertura { margin-left: 16px !important; margin-right: 4px; padding: 0 4px 56px; }
    #pagina-report, #pagina-backup, #pagina-consegne, #pagina-archivio, #pagina-giornalisti, #pagina-inserzionisti,
    #pagina-budget, #pagina-uscite, #pagina-bordero, #pagina-correttore, #pagina-impostazioni, #pagina-account, #pagina-provvigioni, #pagina-privacy, #pagina-sistema, #pagina-consegne, #pagina-backup { left: 0; padding: 10px 12px; }
    main { margin-left: 0; }
    /* header più compatto: il selettore ruolo può restringersi invece di andare a capo */
    header .brand { font-size: 15px; }
    #sel-ruolo-wrap { min-width: 0; flex: 1 1 120px; }
    #sel-ruolo-wrap select { min-width: 0; max-width: 100%; }
  }
  @keyframes velo-in { from { opacity: 0; } to { opacity: 1; } }

  header button:not(.primario) { background: rgba(255,255,255,.6); }

  /* Card: piatte, bordo a filo, ombra minima — coerenti col resto delle app */
  /* #scheda-pannello e .cal-pop hanno già la loro ombra "elevata" alla definizione: qui solo le card di pagina */
  .home-col, .pannello { border-radius: 6px; box-shadow: var(--ombra-sm); }
  .home-col { padding: 32px; }
  #schermata-apertura { animation: salgo .3s ease both; }

  .riga-archivio, .articolo { border-radius: 6px; transition: border-color .12s, background .12s; }
  .riga-archivio:hover, .articolo:hover { border-color: var(--blu); }

  h2 { letter-spacing: -.2px; }
  .home-destra h2, .pannello h3 { position: relative; padding-left: 13px; }
  .home-destra h2::before, .pannello h3::before {
    content: ""; position: absolute; left: 0; top: 50%; transform: translateY(-50%);
    width: 4px; height: 15px; border-radius: 3px; background: var(--blu);
  }

  /* Tiles del riepilogo: barra d'accento a tinta unita, piatte */
  .contatori { gap: 14px; }
  #dashboard .contatori { display: grid; grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); gap: 14px; }
  #dashboard .contatore { flex: none; min-width: 0; }
  .contatore {
    border-radius: 6px; box-shadow: none;
    padding: 14px 16px 14px 18px; position: relative; overflow: hidden;
    transition: border-color .15s; flex: 1 1 150px;
  }
  .contatore:hover { border-color: var(--blu); }
  .contatore::before { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 3px; background: var(--blu); }
  .contatore .v { font-size: 23px; letter-spacing: -.5px; }
  .contatore.tile-blu::before { background: var(--blu); }
  .contatore.tile-verde::before { background: #15803d; }
  .contatore.tile-verde .v { color: #12703a; }
  .contatore.tile-arancio::before { background: #c2570b; }
  .contatore.tile-arancio .v { color: #b45309; }
  .contatore.tile-viola::before { background: #6d28d9; }
  .contatore.tile-viola .v { color: #5b21b6; }

  /* Barre di avanzamento: tinta unita */
  .barra-budget > div:not(.oltre) { background: var(--blu); }
  .chart-barra { border-radius: 6px; }

  /* Tabelle */
  th { background: #f6f7fa; }
  tr.totale td { background: var(--blu-chiaro); }

  #msg { border-radius: 6px; box-shadow: 0 8px 24px rgba(16,24,40,.3); }
  @media (prefers-reduced-motion: reduce) { *, *::before { animation: none !important; transition: none !important; } }

  @media print {
    header, footer, #colonna-pdf, #tabs, .no-print { display: none !important; }
    main { height: auto; display: block; }
    #colonna-lato { width: auto; border: none; }
    .tab-body { display: none; padding: 0; }
    #tab-riepilogo { display: block !important; }
    body { background: #fff; }
    body.report-aperto main, body.report-aperto #schermata-apertura, body.report-aperto #tab-riepilogo { display: none !important; }
    #pagina-report { position: static; padding: 0; }
    body.bordero-aperto > *:not(#pagina-bordero) { display: none !important; }
    #pagina-bordero { position: static; padding: 0; overflow: visible; }
    .bordero-sezione { page-break-after: always; }
    .bordero-sezione:last-child { page-break-after: auto; }
  }
  /* Schermata di login (versione online) */
  /* Schermata di login (online) — layout redazione SDNews a schermo diviso */
  #login-overlay { position: fixed; inset: 0; z-index: 200; background: #fff; display: block; padding: 0; overflow: auto; }
  #login-overlay .rz { display: flex; min-height: 100vh; }
  /* ---- Pannello sinistro: accesso ---- */
  #login-overlay .rz-panel { display: flex; flex-direction: column; justify-content: space-between; width: min(560px, 46vw); flex: none; background: #fff; padding: 42px 56px 26px; box-sizing: border-box; }
  #login-overlay .lg-brand { display: flex; align-items: center; gap: 14px; }
  #login-overlay .lg-brand img { width: 46px; height: 46px; object-fit: contain; }
  #login-overlay .lg-name { font-family: var(--serif); font-size: 23px; font-weight: 700; line-height: 1; letter-spacing: -.3px; display: block; color: var(--testo); }
  #login-overlay .lg-tag { display: block; margin-top: 3px; font-size: 10px; letter-spacing: .14em; text-transform: uppercase; color: var(--muto); }
  #login-overlay .login-card { background: transparent; border: 0; box-shadow: none; padding: 0; width: 100%; max-width: 384px; text-align: left; margin: auto 0; }
  #login-overlay .login-card h2 { font-family: var(--serif); font-weight: 700; font-size: 32px; margin: 0 0 8px; letter-spacing: -.3px; color: var(--testo); padding: 0; border: 0; }
  #login-overlay .login-card h2::before { display: none; }
  #login-overlay .login-card .sub { color: var(--muto); font-size: 14.5px; line-height: 1.5; margin: 0 0 24px; }
  #login-overlay .lg-field { margin-bottom: 16px; }
  #login-overlay .lg-field label { display: block; font-size: 13px; font-weight: 600; color: var(--testo); margin-bottom: 6px; }
  #login-overlay .login-card input { width: 100%; height: 46px; margin: 0; padding: 11px 13px; font-size: 15px; border: 1px solid #dfe4ec; border-radius: 6px; background: #fff; box-sizing: border-box; }
  #login-overlay .login-card input:focus { border-color: var(--azzurro); box-shadow: 0 0 0 3px color-mix(in srgb, var(--azzurro) 22%, transparent); }
  #login-overlay .lg-passwrap { position: relative; }
  #login-overlay .lg-passwrap input { padding-right: 44px; }
  #login-overlay .lg-eye { position: absolute; right: 6px; top: 5px; width: 36px; height: 36px; display: flex; align-items: center; justify-content: center; background: none !important; border: 0 !important; box-shadow: none !important; padding: 0; min-height: 0; cursor: pointer; color: var(--muto); border-radius: 6px; }
  #login-overlay .lg-eye svg { width: 18px; height: 18px; }
  #login-overlay .login-card button.primario { width: 100%; margin-top: 6px; justify-content: center; gap: 9px; padding: 13px; font-size: 15px; font-weight: 700; box-shadow: 0 6px 16px rgba(14,63,116,.28); }
  #login-overlay .lg-foot { display: flex; align-items: flex-start; gap: 9px; margin-top: 24px; padding-top: 18px; border-top: 1px solid #eef1f6; font-size: 12.5px; line-height: 1.55; color: var(--muto); }
  #login-overlay .lg-foot svg { width: 15px; height: 15px; flex: none; margin-top: 1px; }
  #login-overlay .lg-copy { font-size: 11.5px; color: #a6adba; margin: 22px 0 0; }
  /* ---- Pannello destro: l'app dal vivo ---- */
  #login-overlay .rz-hero { flex: 1; position: relative; overflow: hidden; color: #fff;
    background: linear-gradient(155deg, var(--navy), color-mix(in srgb, var(--navy) 72%, #000)); }
  #login-overlay .rz-hero::before { content: ""; position: absolute; inset: 0 0 auto 0; height: 5px; background: var(--gold); z-index: 2; }
  #login-overlay .rz-hero::after { content: ""; position: absolute; inset: 0;
    background-image: linear-gradient(rgba(255,255,255,.045) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.045) 1px, transparent 1px);
    background-size: 44px 44px; pointer-events: none; }
  #login-overlay .hero-glow-a { position: absolute; top: -80px; left: -100px; width: 420px; height: 380px; background: radial-gradient(circle, color-mix(in srgb, var(--gold) 22%, transparent), transparent 68%); pointer-events: none; }
  #login-overlay .hero-glow-b { position: absolute; right: -130px; bottom: -130px; width: 430px; height: 430px; border-radius: 50%; background: radial-gradient(circle, color-mix(in srgb, var(--azzurro) 40%, transparent), transparent 70%); pointer-events: none; }
  #login-overlay .hero-core { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; justify-content: center; min-height: 100vh; padding: 56px 48px 72px; box-sizing: border-box; text-align: center; }
  #login-overlay .kick { display: inline-flex; align-items: center; gap: 8px; font-size: 12px; letter-spacing: .16em; text-transform: uppercase; color: var(--gold); font-weight: 600; }
  #login-overlay .kick svg { width: 16px; height: 16px; }
  #login-overlay .hero-core h1 { font-family: var(--serif); font-weight: 700; font-size: 35px; line-height: 1.18; letter-spacing: -.3px; max-width: 17ch; margin: 16px 0 12px; color: #fff; border: 0; padding: 0; }
  #login-overlay .hero-core h1::before { display: none; }
  #login-overlay .hero-sub { font-size: 15px; line-height: 1.6; max-width: 44ch; margin: 0; color: rgba(255,255,255,.75); }
  /* carte flottanti */
  #login-overlay .hero-cards { position: relative; width: 600px; height: 316px; margin-top: 44px; flex: none; }
  #login-overlay .hc { position: absolute; background: #fff; border-radius: 14px; box-shadow: 0 24px 60px rgba(6,20,42,.45); color: var(--testo); text-align: left; }
  #login-overlay .hc-main { left: 112px; top: 26px; width: 330px; padding: 18px 20px; box-sizing: border-box; }
  #login-overlay .hc-testa { display: flex; align-items: center; justify-content: space-between; padding-bottom: 12px; border-bottom: 1px solid #eef1f6; }
  #login-overlay .hc-micro { font-size: 10.5px; font-weight: 700; letter-spacing: .1em; text-transform: uppercase; color: var(--muto); }
  #login-overlay .hc-num { font-size: 11px; font-weight: 700; color: var(--navy); }
  #login-overlay .hc-row { display: flex; align-items: center; gap: 12px; padding: 11px 0; border-bottom: 1px solid #f4f6fa; }
  #login-overlay .hc-row:last-child { border-bottom: 0; padding-bottom: 4px; }
  #login-overlay .hc-ic { display: flex; align-items: center; justify-content: center; width: 30px; height: 30px; flex: none; background: color-mix(in srgb, var(--navy) 9%, #fff); border-radius: 8px; color: var(--navy); }
  #login-overlay .hc-ic.oro { background: color-mix(in srgb, var(--gold) 12%, #fff); color: var(--gold); }
  #login-overlay .hc-ic svg { width: 16px; height: 16px; }
  #login-overlay .hc-t { display: flex; flex-direction: column; gap: 1px; flex: 1; min-width: 0; }
  #login-overlay .hc-t b { font-size: 13.5px; font-weight: 600; color: var(--testo); }
  #login-overlay .hc-t span { font-size: 11.5px; color: var(--muto); }
  #login-overlay .hc-badge { font-size: 11px; font-weight: 700; padding: 4px 9px; border-radius: 999px; background: color-mix(in srgb, var(--navy) 10%, #fff); color: var(--navy); }
  #login-overlay .hc-badge.ok { background: rgba(27,138,75,.12); color: #1b8a4b; }
  #login-overlay .hc-badge.oro { background: color-mix(in srgb, var(--gold) 14%, #fff); color: #96701f; }
  #login-overlay .hc-stat { right: 22px; top: 0; width: 158px; padding: 14px 16px; border-radius: 12px; box-shadow: 0 18px 44px rgba(6,20,42,.4); box-sizing: border-box; }
  #login-overlay .hc-stat .testa { display: flex; align-items: flex-start; justify-content: space-between; color: var(--gold); }
  #login-overlay .hc-stat .testa svg { width: 15px; height: 15px; }
  #login-overlay .hc-big { font-family: var(--serif); font-size: 34px; font-weight: 700; line-height: 1.1; margin-top: 6px; color: var(--testo); }
  #login-overlay .hc-sub { font-size: 11.5px; line-height: 1.4; margin-top: 2px; color: var(--muto); }
  #login-overlay .hc-toast { left: 38px; bottom: 0; display: flex; align-items: center; gap: 11px; padding: 12px 18px 12px 13px; border-radius: 12px; box-shadow: 0 18px 44px rgba(6,20,42,.4); }
  #login-overlay .hc-check { display: flex; align-items: center; justify-content: center; width: 28px; height: 28px; flex: none; background: rgba(27,138,75,.14); border-radius: 50%; color: #1b8a4b; }
  #login-overlay .hc-check svg { width: 14px; height: 14px; }
  #login-overlay .hero-date { position: absolute; bottom: 24px; left: 0; right: 0; display: flex; align-items: center; justify-content: center; gap: 9px; font-size: 11px; letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.5); z-index: 1; }
  #login-overlay .hero-date .dot { width: 6px; height: 6px; border-radius: 50%; background: var(--gold); flex: none; }
  @media (max-width: 1280px) {
    #login-overlay .hero-cards { transform: scale(.82); transform-origin: top center; margin-top: 24px; }
    #login-overlay .hero-core h1 { font-size: 30px; }
  }
  @media (max-width: 900px) {
    #login-overlay .rz { flex-direction: column; }
    #login-overlay .rz-panel { width: auto; padding: 30px 22px 20px; }
    #login-overlay .login-card { margin: 26px 0 0; max-width: none; }
    #login-overlay .rz-hero { flex: none; }
    #login-overlay .hero-core { min-height: 0; padding: 40px 22px 44px; }
    #login-overlay .hero-core h1 { font-size: 26px; }
    #login-overlay .hero-cards, #login-overlay .hero-date { display: none; }
  }

  /* ═══════ Restyle moderno 2026 — allineamento alle app Laravel: più profondità, angoli morbidi, micro-interazioni ═══════ */
  :root {
    --raggio: 10px; --raggio-sm: 8px; --raggio-lg: 16px;
    --bordo: #e7e9f0;
    --ombra-sm: 0 1px 2px rgba(16,24,40,.05);
    --ombra: 0 1px 2px rgba(16,24,40,.04), 0 8px 20px -8px rgba(16,24,40,.12);
    --ombra-lg: 0 24px 60px -12px rgba(16,24,40,.28);
    --ring: 0 0 0 3px rgba(26,77,143,.16);
  }
  body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
  ::-webkit-scrollbar { width: 11px; height: 11px; }
  ::-webkit-scrollbar-thumb { background: #ccd3e1; border-radius: 999px; border: 3px solid transparent; background-clip: padding-box; }
  ::-webkit-scrollbar-thumb:hover { background: #b3bccd; border: 3px solid transparent; background-clip: padding-box; }
  header { background: rgba(255,255,255,.82); backdrop-filter: saturate(1.6) blur(10px); -webkit-backdrop-filter: saturate(1.6) blur(10px); box-shadow: inset 0 -1px 0 rgba(16,24,40,.06); }
  button { border-radius: var(--raggio-sm); transition: background .15s ease, border-color .15s ease, box-shadow .15s ease, transform .04s ease; }
  button:active { transform: translateY(.5px); }
  button.primario { box-shadow: 0 1px 2px rgba(26,77,143,.28); }
  button.primario:hover { box-shadow: 0 6px 16px -4px rgba(26,77,143,.5); }
  input, select, textarea { border-radius: var(--raggio-sm); transition: border-color .15s ease, box-shadow .15s ease; }
  input:focus, select:focus, textarea:focus { outline: none; border-color: var(--blu); box-shadow: var(--ring); }
  .home-col, .pannello, .controllo { border-radius: var(--raggio-lg); box-shadow: var(--ombra); }
  .contatore, .gruppo, .segmento, .cal-pop, .articolo, .riga-archivio, .bozze-drop { border-radius: var(--raggio); }
  .contatore { box-shadow: var(--ombra-sm); }
  .riga-archivio { box-shadow: var(--ombra-sm); transition: box-shadow .15s ease, border-color .15s ease; }
  .riga-archivio:hover { box-shadow: var(--ombra); border-color: #cfd6e4; }
  .articolo { box-shadow: var(--ombra-sm); transition: box-shadow .15s ease, border-color .15s ease; }
  .articolo:hover { box-shadow: var(--ombra); }
  .articolo.sel { outline: none; box-shadow: 0 0 0 2px var(--blu), var(--ombra-sm); }
  th, td { border: none; border-bottom: 1px solid var(--bordo); padding: 9px 12px; }
  th { background: #f7f9fc; }
  tbody tr { transition: background .12s ease; }
  tbody tr:hover td { background: #f6f9fd; }
  tr.totale td, tr.totale:hover td { background: var(--blu-chiaro); }
  .side-btn { border-radius: var(--raggio-sm); }
  .side-btn.attivo-nav { box-shadow: 0 1px 2px rgba(26,77,143,.14); }
  .badge { box-shadow: inset 0 -1px 0 rgba(0,0,0,.08); }

  /* ─── Rifinitura "oltre": home più curata, tiles KPI premium, CTA con profondità ─── */
  .home-sinistra { background: radial-gradient(130% 80% at 50% -12%, rgba(57,135,201,.10), rgba(57,135,201,0) 58%), var(--superficie); }
  .home-sinistra .logo-sdn { filter: drop-shadow(0 5px 12px rgba(26,77,143,.28)); }
  button.primario { background: linear-gradient(180deg, var(--azzurro), var(--blu)); border-color: var(--blu); }
  button.primario:hover { background: linear-gradient(180deg, var(--blu), var(--blu-scuro)); }
  #btn-apri.primario { box-shadow: 0 8px 20px -6px rgba(26,77,143,.5); }
  #btn-apri.primario:hover { box-shadow: 0 12px 26px -6px rgba(26,77,143,.62); transform: translateY(-1px); }
  .home-destra h2::before, .pannello h3::before { background: linear-gradient(var(--azzurro), var(--blu)); width: 4px; height: 16px; border-radius: 3px; }
  .contatore .v { font-variant-numeric: tabular-nums; }
  .contatore::before { width: 4px; border-radius: 0 4px 4px 0; }
  #dashboard .contatore { transition: box-shadow .16s ease, transform .09s ease, border-color .16s ease; }
  #dashboard .contatore:hover { transform: translateY(-2px); box-shadow: var(--ombra); border-color: #d3dbe8; }
  #dashboard .contatore.tile-blu { background: linear-gradient(180deg, rgba(26,77,143,.05), rgba(255,255,255,0) 46%), #fff; }
  #dashboard .contatore.tile-verde { background: linear-gradient(180deg, rgba(21,128,61,.055), rgba(255,255,255,0) 46%), #fff; }
  #dashboard .contatore.tile-arancio { background: linear-gradient(180deg, rgba(194,87,11,.055), rgba(255,255,255,0) 46%), #fff; }
  #dashboard .contatore.tile-viola { background: linear-gradient(180deg, rgba(109,40,217,.055), rgba(255,255,255,0) 46%), #fff; }
  .bozze-drop { background: radial-gradient(120% 90% at 50% -10%, rgba(57,135,201,.09), rgba(57,135,201,0) 60%), var(--superficie); }

  /* ─── Correttore bozze: legenda a chip-filtro, item a scheda, toggle a segmento ─── */
  .bozze-legenda { gap: 8px; align-items: center; }
  .bozze-legenda span { padding: 5px 12px 5px 9px; border-radius: 999px; font-size: 12px; font-weight: 600; color: var(--testo);
    border: 1px solid color-mix(in srgb, var(--cat, var(--blu)) 34%, transparent);
    background: color-mix(in srgb, var(--cat, var(--blu)) 10%, #fff);
    transition: box-shadow .14s ease, background .14s ease, transform .06s ease; }
  .bozze-legenda span:hover { background: color-mix(in srgb, var(--cat, var(--blu)) 17%, #fff); box-shadow: var(--ombra-sm); }
  .bozze-legenda span:active { transform: translateY(.5px); }
  .bozze-legenda i { width: 9px; height: 9px; border-radius: 50%; }
  .bozze-legenda span.off { opacity: .5; text-decoration: none; background: #fff; border-color: var(--bordo); box-shadow: none; }
  .bozze-legenda span.off i { filter: grayscale(1); opacity: .55; }
  .bozze-item { border-radius: var(--raggio); box-shadow: var(--ombra-sm); }
  .bozze-item:hover { box-shadow: var(--ombra); border-color: #cfd6e4; }
  .bozze-item.sel { border-color: var(--blu); box-shadow: 0 0 0 2px var(--blu), var(--ombra-sm); }
  .bozze-cat h3 { border-left-width: 4px; border-radius: 2px; }
  .bozze-viste.imp-tabs { display: inline-flex; gap: 2px; background: #eef1f6; border: none; border-radius: 999px; padding: 3px; }
  .bozze-viste.imp-tabs button { border: none; border-radius: 999px; background: none; color: var(--muto); font-weight: 700; padding: 6px 14px; }
  .bozze-viste.imp-tabs button.sel { background: #fff; color: var(--blu); box-shadow: var(--ombra-sm); }
  /* ═══════ Allineamento grafico all'area gestione SDNews (navy · oro · serif) ═══════ */
  :root {
    --navy: #0e3f74; --gold: #b0842f; --gold-soft: #c99a3e; --paper: #f5f7fb;
    --serif: Georgia, "Times New Roman", "PT Serif", serif;
    --blu: #0e3f74; --blu-scuro: #0a2e56; --azzurro: #2e79bd;
  }
  h1, h2, .pannello h3, .contatore .v { font-family: var(--serif); }
  h1 { letter-spacing: -.3px; }
  h2::before, .pannello h3::before { background: var(--gold) !important; }
  .contatore.tile-blu::before { background: var(--gold) !important; }
  #brand-home { font-family: var(--serif); font-weight: 700; letter-spacing: -.2px; }
  /* Filtri uniformi: l'altezza comune e' definita piu' sotto, in un punto solo (44px) */
  button:not(.icona-sola):not(.side-btn):not(.side-sub-btn):not(.btn-carica):not(.brand):not(#brand-home) { min-height: 44px; box-sizing: border-box; }
  /* Tabelle ordinabili: clic sull'intestazione */
  table.tab-inserz th { cursor: pointer; user-select: none; white-space: nowrap; }
  table.tab-inserz th:hover { color: var(--blu); }
  table.tab-inserz th .sort-ind { font-size: 9px; margin-left: 4px; color: var(--gold); vertical-align: middle; }
  /* Collaborazione in tempo reale */
  .pres-dot { display:inline-block; width:8px; height:8px; border-radius:50%; background:#1b8a4b; box-shadow:0 0 0 0 rgba(27,138,75,.5); animation:presPulse 1.8s infinite; vertical-align:middle }
  @keyframes presPulse { 0%{box-shadow:0 0 0 0 rgba(27,138,75,.5)} 70%{box-shadow:0 0 0 6px rgba(27,138,75,0)} 100%{box-shadow:0 0 0 0 rgba(27,138,75,0)} }
  .pres-badge { font-size:12px; color:#1b6b3a; font-weight:600; margin-left:8px; white-space:nowrap }
  #presenza-avviso { position:fixed; left:50%; transform:translateX(-50%); bottom:calc(var(--footer-h, 44px) + 16px); z-index:300; background:#0e3f74; color:#fff; padding:11px 16px; border-radius:12px; box-shadow:0 10px 30px rgba(20,40,80,.3); display:none; align-items:center; gap:12px; font-size:14px }
  #presenza-avviso button { background:#fff; color:#0e3f74; border:0; border-radius:8px; padding:6px 12px; font-weight:700; cursor:pointer }
  /* Archivio: uscita unificata (corpo + prime pagine/inserti per testata) */
  .uscita-blocco { border:1px solid var(--bordo, #e6e9ee); border-radius:12px; margin-bottom:10px; overflow:hidden }
  .uscita-testa { background:var(--card, #f6f8fb); padding:8px 12px; display:flex; align-items:center; gap:8px }
  .uscita-blocco .riga-archivio { border-radius:0; margin:0 }
  .uscita-blocco .riga-archivio:first-of-type { border-top:0 }

  /* ===== Restyle globale pulsanti: piatti, angoli morbidi, primario in gradiente navy ===== */
  button:not(.icona-sola):not(.side-btn):not(.side-sub-btn):not(.brand):not(#brand-home) {
    border-radius: 5px;
    border: 1px solid var(--bordo, #e6e9ee);
    background: #fff;
    color: var(--testo, #14212f);
    font-weight: 600;
    box-shadow: 0 1px 1px rgba(16,33,60,.03);
    transition: background .14s ease, border-color .14s ease, color .14s ease, box-shadow .14s ease;
  }
  button:not(.primario):not(.pericolo):not(.icona-sola):not(.side-btn):not(.side-sub-btn):not(.attivo):not(.brand):not(#brand-home):hover {
    background: #f4f7fb; border-color: #cdd8e6; color: var(--navy, #0e3f74);
  }
  button.primario {
    background: linear-gradient(135deg, #235f9e 0%, #104079 55%, #0b3462 100%) !important;
    border: 1px solid #0c3660 !important;
    color: #fff !important;
    box-shadow: inset 0 1px 0 rgba(255,255,255,.18), 0 1px 2px rgba(14,63,116,.22) !important;
  }
  button.primario:hover {
    background: linear-gradient(135deg, #2a68a8 0%, #124684 55%, #0d3a6c 100%) !important;
    filter: brightness(1.03);
  }
  button.primario:active { box-shadow: inset 0 1px 3px rgba(0,0,0,.18) !important; filter: brightness(.98); }
  button.pericolo:not(.icona-sola) {
    background: #fff !important; color: var(--rosso, #c0392b) !important; border: 1px solid #e6bab4 !important; box-shadow: 0 1px 1px rgba(16,33,60,.03) !important;
  }
  button.pericolo:not(.icona-sola):hover { background: #fdf2f0 !important; border-color: #d98c82 !important; }

  /* Menu a tendina e campi di testo: STESSA altezza comoda in TUTTO il sito (44px) */
  select, input:not([type=checkbox]):not([type=radio]):not([type=file]) { min-height: 44px; padding: 9px 13px; box-sizing: border-box; }
  /* Safari disegna le <select> con il controllo nativo del sistema e ignora altezza e padding:
     restavano basse accanto ai campi di ricerca. Le disegniamo noi, con la freccia di sfondo. */
  /* Il selettore e' scritto con due :not() apposta: cosi' pesa piu' di regole come
     ".report-testa label > select", che altrimenti riporterebbero il padding a 13px e
     la freccia finirebbe sopra il testo ("Tutti gli ann|"). */
  select:not([multiple]):not([size]) {
    -webkit-appearance: none; -moz-appearance: none; appearance: none;
    padding-right: 34px;
    background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='none' stroke='%235b6472' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round' d='M1 1.5 6 6.5 11 1.5'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    background-size: 12px 8px;
  }
  select::-ms-expand { display: none; }
  /* Pulsante "Installa app": su header stretto resta solo l'icona */
  @media (max-width: 560px) { #btn-installa span { display: none; } #btn-installa { padding: 9px 11px; } }

  /* ==================== RESPONSIVE — mobile/tablet solido ==================== */
  @media (max-width: 820px) {
    html, body { max-width: 100vw; overflow-x: hidden; }
    /* Home: colonne impilate a tutta larghezza (niente crescita dal contenuto) */
    #schermata-apertura { flex-direction: column; align-items: stretch !important; margin: 12px 10px 22px !important; padding: 0 !important; width: auto; max-width: 100%; gap: 14px; }
    #schermata-apertura > * { width: 100% !important; min-width: 0 !important; max-width: 100% !important; box-sizing: border-box; }
    .home-sinistra, .home-destra { min-width: 0 !important; flex: none !important; }
    .home-col { padding: 18px 16px !important; }
    /* Nessun contenitore più largo dello schermo */
    .home-col, .pannello, .card, .uscita-blocco, .contatore, main,
    .pagina-2col, .pagina-2col > *, #dashboard, #rep-contenuto { min-width: 0; max-width: 100%; box-sizing: border-box; }
    /* Righe archivio/liste: info sopra, pulsanti a capo sotto, ben cliccabili */
    .riga-archivio, .riga-lista { flex-wrap: wrap; gap: 8px 10px; }
    .riga-archivio > span[style*="flex"] { flex-basis: 100%; height: 0; margin: 0; padding: 0; }
    .uscita-testa { flex-wrap: wrap; }
    /* CTA hero a tutta larghezza */
    #btn-apri { width: 100%; justify-content: center; }
    /* Contatori del riepilogo: griglia fluida */
    #dashboard .contatori, .contatori { grid-template-columns: repeat(auto-fill, minmax(140px, 1fr)) !important; display: grid !important; gap: 10px; }
    /* Tabelle: scrollano invece di sforare la pagina */
    .pannello table, #pagina-report table, #pagina-bordero table, .tab-body table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; max-width: 100%; white-space: nowrap; }
    /* Barre di filtri: a capo */
    #pagina-archivio > div { flex-wrap: wrap; }
    /* Header compatto */
    header { padding: 7px 10px; gap: 8px; }
    header .brand { font-size: 15px; }
    /* Vista mappatura: PDF sopra, pannello sotto (impilati) */
    #area-lavoro { flex-direction: column; height: auto; overflow: visible; }
    #colonna-pdf, #colonna-lato { width: 100% !important; max-width: 100% !important; flex: none !important; }
    #colonna-lato { border-left: 0; border-top: 1px solid var(--bordo); max-height: none; }
    #colonna-pdf { min-height: 46vh; }
    /* input/select/pulsanti: touch target comodi */
    input, select, textarea, button { font-size: 16px; } /* 16px evita lo zoom automatico su iOS */
  }
  @media (max-width: 440px) {
    #dashboard .contatori, .contatori { grid-template-columns: 1fr 1fr !important; }
    .contatore .v { font-size: 20px; }
    .home-col { padding: 14px 12px !important; }
    header .brand span, header #sel-ruolo-wrap b { max-width: 96px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
  }
  /* Badge «Firme da assegnare» in dashboard + tabelle del pannello */
  .dash-firme { display: flex; align-items: center; gap: 12px; flex-wrap: wrap;
    margin: 0 0 14px; padding: 12px 14px; border: 1px solid var(--bordo);
    border-left: 4px solid var(--gold, #b0842f); border-radius: var(--raggio, 8px);
    background: color-mix(in srgb, var(--gold, #b0842f) 8%, var(--superficie, #fff)); }
  .dash-firme > div:first-child { flex: 1; min-width: 160px; }
  .dash-firme button { white-space: nowrap; }
  #pan-firme table td { vertical-align: middle; }
  /* Giro di bozze: griglia pagine + esito della riverifica */
  .rev-griglia { display: flex; flex-wrap: wrap; gap: 6px; margin-top: 10px; }
  .rev-chip { display: inline-flex; align-items: center; justify-content: center; min-width: 30px; height: 26px; padding: 0 7px;
    border: 1px solid var(--bordo); border-radius: 6px; background: var(--superficie); font-size: 12.5px; font-weight: 700;
    color: var(--muto); font-variant-numeric: tabular-nums; }
  .rev-chip sup { font-size: 9px; margin-left: 2px; opacity: .75; }
  .rev-chip.ok { background: rgba(27,138,75,.1); border-color: rgba(27,138,75,.3); color: #1b8a4b; }
  .rev-chip.attiva { outline: 2px solid var(--blu); outline-offset: 1px; color: var(--blu); }
  /* Tre condizioni, riconoscibili a colpo d'occhio su 64 caselle:
     mai arrivata (vuota) · verificata ma da chiudere (ambra) · chiusa (verde). */
  .rev-chip.mai { background: transparent; border-style: dashed; color: #a8b0bb; font-weight: 600; }
  .rev-chip.vista { background: rgba(180,83,9,.09); border-color: rgba(180,83,9,.32); color: #b45309; }
  .rev-chip.fuori { border-color: var(--rosso, #c0392b); color: var(--rosso, #c0392b); }
  /* un quaderno sono 4 pagine: un filo d'aria ogni 4 rende la griglia leggibile */
  .rev-griglia { row-gap: 6px; }
  .rev-chip:nth-child(4n+1) { margin-left: 10px; }
  .rev-chip:first-child { margin-left: 0; }
  .rev-chip .rev-x { display: none; margin: 0 -3px 0 4px; padding: 0 3px; min-height: 0; height: 16px; line-height: 14px;
    border: 0 !important; background: none !important; box-shadow: none !important; color: var(--rosso, #c0392b); font-size: 14px; cursor: pointer; }
  .rev-chip:hover .rev-x { display: inline-block; }
  .rev-banner { margin-top: 10px; padding: 9px 12px; border-radius: 8px; font-size: 13.5px;
    background: color-mix(in srgb, var(--blu) 7%, var(--superficie)); border: 1px solid color-mix(in srgb, var(--blu) 18%, var(--bordo)); }

  /* ══════════ App mobile: barra inferiore (uso a una mano) + drawer bottom-sheet + safe-area ══════════ */
  :root { --botnav-h: 60px; }
  #bottom-nav { display: none; }
  @media (max-width: 820px) {
    /* Su mobile lo spazio in basso è per la navigazione col pollice: via il footer informativo */
    footer { display: none !important; }
    body { --footer-h: 0px; }

    /* ---- Barra di navigazione inferiore ---- */
    #bottom-nav {
      display: flex; position: fixed; left: 0; right: 0; bottom: 0; z-index: 65;
      height: calc(var(--botnav-h) + env(safe-area-inset-bottom, 0px));
      padding-bottom: env(safe-area-inset-bottom, 0px);
      background: color-mix(in srgb, var(--superficie, #fff) 88%, transparent);
      -webkit-backdrop-filter: saturate(1.5) blur(10px); backdrop-filter: saturate(1.5) blur(10px);
      border-top: 1px solid var(--bordo); box-shadow: 0 -2px 16px rgba(16,24,40,.08);
      align-items: stretch; justify-content: space-around;
    }
    #bottom-nav .bn-item {
      flex: 1; min-width: 0; display: flex; flex-direction: column; align-items: center; justify-content: center;
      gap: 3px; background: none !important; border: 0 !important; box-shadow: none !important;
      color: var(--muto); font-size: 10.5px; font-weight: 600; padding: 7px 2px; min-height: 0;
      border-radius: 0; -webkit-tap-highlight-color: transparent; position: relative;
    }
    #bottom-nav .bn-item .ico { width: 23px; height: 23px; transition: transform .12s; }
    #bottom-nav .bn-item span { line-height: 1; letter-spacing: -.1px; max-width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
    #bottom-nav .bn-item.attivo { color: var(--navy, #0e3f74); }
    #bottom-nav .bn-item.attivo .ico { color: var(--navy, #0e3f74); transform: translateY(-1px); }
    #bottom-nav .bn-item:active .ico { transform: scale(.88); }
    /* Azione centrale in risalto (Apri PDF) */
    #bottom-nav .bn-fab .ico { color: #fff; width: 25px; height: 25px; }
    #bottom-nav .bn-fab::before {
      content: ""; position: absolute; top: 4px; width: 46px; height: 46px; border-radius: 50%;
      background: linear-gradient(135deg, #235f9e, #0e3f74); box-shadow: 0 6px 16px rgba(14,63,116,.4);
    }
    #bottom-nav .bn-fab .ico, #bottom-nav .bn-fab span { position: relative; z-index: 1; }
    #bottom-nav .bn-fab span { color: var(--navy, #0e3f74); margin-top: 18px; }

    /* Pagine e home: lasciano respiro alla barra inferiore (niente contenuto nascosto sotto) */
    #pagina-report, #pagina-backup, #pagina-consegne, #pagina-archivio, #pagina-giornalisti, #pagina-inserzionisti,
    #pagina-budget, #pagina-uscite, #pagina-bordero, #pagina-correttore, #pagina-impostazioni,
    #pagina-account, #pagina-provvigioni, #pagina-privacy, #pagina-sistema, #pagina-consegne, #pagina-backup {
      bottom: 0; padding-bottom: calc(var(--botnav-h) + env(safe-area-inset-bottom, 0px) + 18px);
    }
    #schermata-apertura { padding-bottom: calc(var(--botnav-h) + env(safe-area-inset-bottom, 0px) + 22px) !important; }
    main { height: auto; min-height: calc(100dvh - var(--header-h, 64px)); padding-bottom: calc(var(--botnav-h) + env(safe-area-inset-bottom, 0px)); }
    #colonna-lato { padding-bottom: calc(var(--botnav-h) + env(safe-area-inset-bottom, 0px) + 8px); }
    /* Toast e avvisi sopra la barra, non dietro */
    #msg { bottom: calc(var(--botnav-h) + env(safe-area-inset-bottom, 0px) + 14px); }
    #presenza-avviso { bottom: calc(var(--botnav-h) + env(safe-area-inset-bottom, 0px) + 16px) !important; }

    /* ---- Drawer «Menu» come BOTTOM SHEET (sale dal basso, raggiungibile col pollice) ---- */
    #sidebar {
      top: auto; bottom: 0; left: 0; right: 0; width: auto; max-width: none; max-height: 82vh;
      transform: translateY(103%); transition: transform .28s cubic-bezier(.32, .72, 0, 1);
      border-right: 0; border-top: 1px solid var(--bordo);
      border-radius: 18px 18px 0 0; box-shadow: 0 -12px 36px rgba(16,24,40,.24);
      padding: 6px 12px calc(22px + env(safe-area-inset-bottom, 0px)); overflow-y: auto; z-index: 90;
    }
    #sidebar::before { content: ""; display: block; width: 42px; height: 4px; border-radius: 3px; background: var(--bordo); margin: 4px auto 12px; flex: none; }
    #sidebar .side-btn { padding: 14px 14px; }
    body.menu-mobile-aperto #sidebar { transform: translateY(0); }
    body.menu-mobile-aperto #velo-menu { display: block; position: fixed; inset: 0; top: 0; z-index: 85; background: rgba(16,24,40,.44); animation: velo-in .18s ease; }

    /* Header compatto e su UNA riga: l'hamburger è ridondante (il «Menu» è nella barra in basso) */
    #btn-collassa { display: none !important; }
    header { flex-wrap: nowrap; padding: 6px 10px; gap: 6px; overflow: hidden; }
    header .brand { font-size: 15px; flex: none; }
    header .brand .logo-sdn { height: 22px; }
    #sel-ruolo-wrap { flex: 0 1 auto; min-width: 0; overflow: hidden; }
    #sel-ruolo-wrap select { max-width: 118px; text-overflow: ellipsis; }
    /* «Esci» resta ben tappabile ma compatto: solo icona su schermi stretti */
    #btn-esci { flex: none; }

    /* Barre filtri/generazione (Uscite, Report, ecc.): mai overflow orizzontale, vanno a capo */
    .report-testa, .report-testa .gruppo, .cal-wrap { flex-wrap: wrap; }
    .report-testa .gruppo { width: 100%; }
    .report-testa > label, .report-testa .gruppo > label { flex: 1 1 44%; min-width: 130px; }

    /* Pannello «Firme da assegnare»: le righe vanno a capo invece di scrollare in orizzontale */
    #pan-firme table, #pan-firme tbody { display: block; overflow-x: visible; white-space: normal; }
    #pan-firme tr { display: flex; flex-wrap: wrap; align-items: center; gap: 4px 10px; padding: 9px 2px; border-bottom: 1px solid var(--bordo); }
    #pan-firme td { border: 0 !important; padding: 0 !important; }
    #pan-firme td:nth-child(3) { flex: 1 1 100%; order: 3; }
    #pan-firme td:nth-child(4) { order: 4; margin-left: auto; }
    #pan-firme .sel-firma { width: 100%; min-width: 0; }
    #pan-firme .btn-firma-una { white-space: nowrap; }
  }
  @media (max-width: 430px) {
    /* schermi molto stretti: «Esci» come sola icona per non rubare spazio al titolo */
    #btn-esci { font-size: 0; padding: 8px 10px; }
    #btn-esci .ico { margin: 0; }
  }
/* --- Aggiornamento del codice: passi e barra --- */
.agg-scelta { display: flex; gap: 10px; align-items: center; flex-wrap: wrap; }
.agg-scelta input[type=file] { max-width: 340px; }
#agg-corso { margin-top: 14px; }
.agg-passi { display: flex; gap: 18px; flex-wrap: wrap; margin-bottom: 10px; }
.agg-passo { display: inline-flex; align-items: center; gap: 7px; font-size: 12.5px; color: var(--muto); }
.agg-passo i { width: 9px; height: 9px; border-radius: 50%; background: var(--bordo); flex: none; }
.agg-passo.corso { color: var(--blu); font-weight: 600; }
.agg-passo.corso i { background: var(--blu); box-shadow: 0 0 0 3px rgba(30,58,95,.14); }
.agg-passo.fatto { color: #1b6b41; }
.agg-passo.fatto i { background: #1b8a4b; }
.agg-passo.no { color: var(--rosso, #c0392b); font-weight: 600; }
.agg-passo.no i { background: var(--rosso, #c0392b); }
.agg-barra { height: 8px; border-radius: 99px; background: var(--bordo); overflow: hidden; }
.agg-barra > div { height: 100%; width: 0; border-radius: 99px; background: var(--blu); transition: width .25s ease; }
.agg-barra > div.ok { background: #1b8a4b; }
.agg-barra > div.no { background: var(--rosso, #c0392b); }
.agg-esito { border-radius: 8px; padding: 12px 14px; margin-top: 12px; border: 1px solid var(--bordo); }
.agg-esito.ok { border-color: #a7d8bb; background: #f4fbf7; }
.agg-esito.no { border-color: #e6bab4; background: #fdf4f2; }
.agg-esito b { display: block; margin-bottom: 4px; }
.agg-esito.ok b { color: #1b6b41; }
.agg-esito.no b { color: var(--rosso, #c0392b); }
.agg-file { font-size: 12.5px; color: var(--muto); margin-bottom: 6px; word-break: break-word; }
/* --- Pagina Backup --- */
.bk-lista { display: flex; flex-direction: column; gap: 8px; }
.bk-riga { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; border: 1px solid var(--bordo); border-radius: 8px; padding: 10px 12px; }
.bk-riga.bk-ultima { border-color: #a7d8bb; background: #f6fbf8; }
.bk-info { flex: 1; min-width: 200px; display: flex; flex-direction: column; align-items: flex-start; gap: 2px; }
.bk-titolo { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.bk-info b { font-size: 14px; }
.bk-tag { font-size: 10.5px; letter-spacing: .04em; text-transform: uppercase; padding: 2px 8px; border-radius: 99px; border: 1px solid #a7d8bb; background: #eef8f2; color: #1b6b41; }
.bk-tag.bk-no { border-color: #e6bab4; background: #fdf2f0; color: var(--rosso, #c0392b); }
.bk-file { color: var(--muto); overflow: hidden; text-overflow: ellipsis; white-space: nowrap; max-width: 100%; }
.bk-azioni { display: flex; gap: 6px; align-items: center; }
@media (max-width: 760px) {
  .bk-riga { flex-direction: column; align-items: stretch; }
  .bk-azioni { justify-content: flex-end; }
}
/* --- Prendi da edicola --- */
.ed-numero { border: 1px solid var(--bordo); border-radius: 10px; padding: 12px 14px; margin-bottom: 12px; }
.ed-testa { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 8px; }
.ed-tag { font-size: 10.5px; letter-spacing: .04em; text-transform: uppercase; padding: 2px 8px; border-radius: 99px; border: 1px solid var(--bordo); color: var(--muto); }
.ed-tag.ed-pub { border-color: #a7d8bb; background: #eef8f2; color: #1b6b41; }
.ed-tag.ed-bozza { border-color: #e5c9a6; background: #fdf6ec; color: #8a5a12; }
.ed-riga { display: flex; align-items: center; gap: 10px; padding: 9px 4px; border-top: 1px dashed var(--bordo); cursor: pointer; }
.ed-riga:hover { background: var(--blu-chiaro, #f2f6fc); }
.ed-riga.ed-no { opacity: .55; cursor: not-allowed; }
.ed-nome { flex: 1; font-weight: 600; font-size: 14px; }
@media (max-width: 760px) {
  #edicola-modale { padding: 12px 8px !important; }
  #edicola-modale > div { padding: 16px 14px !important; }
  .ed-riga { flex-wrap: wrap; }
}
/* --- Consegne dei giornalisti --- */
.cons-griglia { display:grid; grid-template-columns:repeat(auto-fill,minmax(320px,1fr)); gap:14px; }
.cons-card { border:1px solid var(--bordo); border-radius:10px; padding:14px 16px; background:var(--superficie,#fff); }
.cons-testa { display:flex; align-items:center; gap:8px; }
.cons-tit { font-size:15px; line-height:1.3; }
.cons-badge { font-size:11px; letter-spacing:.04em; text-transform:uppercase; padding:2px 8px; border-radius:99px; border:1px solid var(--bordo); color:var(--muto); white-space:nowrap; }
.cons-badge.accettata { border-color:#a7d8bb; background:#eef8f2; color:#1b6b41; }
.cons-badge.impaginata { border-color:#bcc9de; background:#eef2f8; color:#2c4a75; }
.cons-foto { display:flex; gap:6px; flex-wrap:wrap; margin-bottom:10px; }
.cons-foto img { width:64px; height:64px; object-fit:cover; border-radius:6px; border:1px solid var(--bordo); }
.cons-azioni { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.cons-azioni select { min-width:150px; }
.cons-mancanti { display:flex; flex-wrap:wrap; gap:6px; margin-top:6px; }
.cons-chip { font-size:12.5px; padding:3px 10px; border-radius:99px; border:1px solid #e5c9a6; background:#fdf6ec; color:#8a5a12; }
.cons-all { display:flex; gap:12px; align-items:flex-start; padding:10px 0; border-top:1px dashed var(--bordo); }
.cons-all img { width:88px; height:88px; object-fit:cover; border-radius:6px; border:1px solid var(--bordo); flex:none; }
.cons-all input { width:100%; }
@media (max-width:760px) {
  .cons-griglia { grid-template-columns:1fr; }
  .cons-all img { width:64px; height:64px; }
  #cons-nuova { width:100%; justify-content:center; }
  #cons-uscita { width:100%; }
  #cons-scadenza { display:block; width:100%; }
  #cons-modale { padding:12px 8px !important; }
  #cons-modale > div { padding:16px 14px !important; }
}


/* ═══════ Sistema e Backup: lo schema degli altri gestionali (ingresso con lo stato, numeri, viste) ═══════ */
.sist-pagina { max-width: 1120px; margin: 0 auto; padding: 4px 4px 40px; }
.sist-testa { display: flex; align-items: flex-start; gap: 14px; padding: 6px 0 18px; border-bottom: 1px solid var(--bordo); margin-bottom: 18px; flex-wrap: wrap; }
.sist-testa-ico { width: 44px; height: 44px; border-radius: 10px; background: color-mix(in srgb, var(--gold) 14%, #fff); color: var(--gold); display: inline-flex; align-items: center; justify-content: center; flex: none; }
.sist-testa-ico .ico { width: 22px; height: 22px; }
.sist-testa-testi { flex: 1; min-width: 260px; }
.sist-testa-testi h2 { margin: 0 0 4px; font-size: 26px; padding-left: 0; }
.sist-testa-testi h2::before { display: none; }
.sist-testa-testi p { margin: 0; color: var(--muto); max-width: 76ch; line-height: 1.5; }
.sist-testa-azioni { display: flex; gap: 8px; flex-wrap: wrap; align-self: center; }
.sist-versione { align-self: center; font-size: 12px; font-weight: 700; color: var(--navy); background: var(--blu-chiaro); border-radius: 999px; padding: 4px 12px; white-space: nowrap; }
.sist-versione:empty { display: none; }
.sist-salute { display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 0; border: 1px solid var(--bordo); border-radius: 8px; background: var(--superficie); margin-bottom: 22px; overflow: hidden; }
.sist-salute-voce { display: flex; align-items: center; gap: 10px; padding: 13px 16px; border-right: 1px solid var(--bordo); background: none; border-top: 0; border-bottom: 0; border-left: 0; text-align: left; cursor: pointer; min-height: 0 !important; font: inherit; color: var(--testo); }
.sist-salute-voce:last-child { border-right: 0; }
.sist-salute-voce:hover { background: var(--paper); }
.sist-salute-voce .lab { color: var(--muto); font-size: 12.5px; }
.sist-salute-voce b { margin-left: auto; font-variant-numeric: tabular-nums; font-size: 13.5px; }
.sist-pallino { width: 10px; height: 10px; border-radius: 50%; flex: none; background: #c3cad6; }
.sist-pallino.verde { background: var(--verde); } .sist-pallino.giallo { background: #c58a16; } .sist-pallino.rosso { background: var(--rosso); } .sist-pallino.grigio { background: #c3cad6; }
.sist-sezione { margin-bottom: 22px; }
.sist-sezione > .etichetta-gruppo { display: block; padding: 0 0 8px; }
.sist-schede { display: grid; grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)); gap: 12px; }
.sist-scheda { display: grid; grid-template-columns: auto 1fr; grid-template-rows: auto 1fr; column-gap: 12px; row-gap: 3px; align-items: start; text-align: left; background: var(--superficie); border: 1px solid var(--bordo); border-radius: 8px; padding: 14px 15px; cursor: pointer; font: inherit; color: var(--testo); min-height: 92px !important; transition: border-color .14s ease, box-shadow .14s ease; }
.sist-scheda:hover { border-color: color-mix(in srgb, var(--navy) 35%, var(--bordo)); box-shadow: var(--ombra); }
.sist-scheda .ic-chip { grid-row: 1 / 3; }
.sist-scheda b { font-size: 14px; font-family: var(--serif); }
.sist-scheda span.riga { color: var(--muto); font-size: 12.5px; line-height: 1.45; }
.ic-chip { width: 34px; height: 34px; border-radius: 8px; display: inline-flex; align-items: center; justify-content: center; background: var(--blu-chiaro); color: var(--navy); flex: none; }
.ic-chip .ico { width: 17px; height: 17px; }
.ic-chip.verde { background: color-mix(in srgb, var(--verde) 13%, #fff); color: var(--verde); }
.ic-chip.giallo { background: #fbf1dc; color: #9a6a0b; }
.ic-chip.rosso { background: color-mix(in srgb, var(--rosso) 11%, #fff); color: var(--rosso); }
.ic-chip.grigio { background: #eef1f5; color: var(--muto); }
.sist-barra { display: flex; align-items: center; gap: 10px; padding: 2px 0 14px; border-bottom: 1px solid var(--bordo); margin-bottom: 16px; }
.sist-indietro { display: inline-flex; align-items: center; gap: 6px; background: none; border: 1px solid var(--bordo); border-radius: 999px; padding: 6px 14px 6px 10px; min-height: 0 !important; color: var(--navy); font-weight: 700; cursor: pointer; }
.sist-indietro:hover { background: var(--paper); }
.sist-barra-sep { color: #b8c0cd; }
.sist-barra-titolo { margin: 0; font-size: 22px; padding-left: 0; }
.sist-barra-titolo::before { display: none; }
.sist-intro { color: var(--muto); max-width: 80ch; margin: -4px 0 14px; line-height: 1.5; }
.sist-sez-testa { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.sist-sez-testa h3 { margin: 0 !important; }
.sist-spazio { flex: 1; }
.sist-semaforo { display: inline-block; width: 11px; height: 11px; border-radius: 50%; background: #ccd3e1; vertical-align: -1px; margin-left: 6px; }
.sist-numeri { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: 12px; margin-bottom: 16px; }
.sist-numero { background: var(--superficie); border: 1px solid var(--bordo); border-left: 3px solid #c3cad6; border-radius: 8px; padding: 12px 14px; display: flex; flex-direction: column; gap: 2px; }
.sist-numero.verde { border-left-color: var(--verde); } .sist-numero.giallo { border-left-color: #c58a16; } .sist-numero.rosso { border-left-color: var(--rosso); }
.sist-numero .lab { font-size: 11px; text-transform: uppercase; letter-spacing: .08em; color: var(--muto); font-weight: 700; }
.sist-numero b { font-size: 22px; font-family: var(--serif); font-variant-numeric: tabular-nums; }
.sist-numero span.sotto { font-size: 12px; color: var(--muto); }
.sist-due { display: grid; grid-template-columns: minmax(0, 1.3fr) minmax(0, 1fr); gap: 14px; align-items: start; }
@media (max-width: 900px) { .sist-due { grid-template-columns: 1fr; } }
.sist-tab { width: 100%; border-collapse: collapse; font-size: 13px; }
.sist-tab th { text-align: left; font-size: 11px; text-transform: uppercase; letter-spacing: .07em; color: var(--muto); font-weight: 700; padding: 6px 10px; border-bottom: 1px solid var(--bordo); }
.sist-tab td { padding: 9px 10px; border-bottom: 1px solid var(--bordo); vertical-align: top; }
.sist-tab tr:last-child td { border-bottom: 0; }
.sist-tab .num { text-align: right; font-variant-numeric: tabular-nums; white-space: nowrap; }
.sist-tab .quando { white-space: nowrap; font-variant-numeric: tabular-nums; }
.sist-tab .quando div { font-size: 11.5px; color: var(--muto); }
.sist-tab .azioni { white-space: nowrap; text-align: right; }
.sist-tab .azioni button { margin-left: 4px; }
.sist-tab .dove { font-family: ui-monospace, SFMono-Regular, Menlo, monospace; font-size: 11.5px; color: var(--muto); word-break: break-all; }
.sist-tab .msg { word-break: break-word; }
#pagina-sistema [hidden], #pagina-backup [hidden], #pagina-impostazioni [hidden] { display: none !important; }
/* Impostazioni: stesso schema di Sistema (ingresso + viste); i blocchi diventano pannelli piatti */
#pagina-impostazioni .imp-sez { max-width: none; }
#pagina-impostazioni .imp-pannello { padding: 16px 18px; }
#pagina-impostazioni .imp-pannello .sist-sez-testa { margin-bottom: 10px; }
#pagina-impostazioni .imp-pannello .sist-sez-testa h3 { font-family: var(--serif); font-size: 16px; }
#pagina-impostazioni .imp-blocco { box-shadow: none; border-color: var(--bordo); border-radius: 8px; }
#pagina-impostazioni .imp-blocco-testa h2 { font-family: var(--serif); }
#imp-sezioni .sist-schede { grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); }
.imp-gruppo { margin: 0 0 18px; scroll-margin-top: 12px; }
.imp-gruppo > .etichetta-gruppo { display: block; padding: 0 0 8px; }
.imp-due { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; align-items: start; }
.imp-due > .pannello { margin-bottom: 0; }
@media (max-width: 980px) { .imp-due { grid-template-columns: 1fr; } }
.imp-indice { display: flex; gap: 6px; flex-wrap: wrap; margin: 0 0 16px; }
.imp-indice a { font-size: 12.5px; font-weight: 600; color: var(--navy); text-decoration: none; border: 1px solid var(--bordo); border-radius: 999px; padding: 5px 12px; background: var(--superficie); }
.imp-indice a:hover { background: var(--blu-chiaro); }
.sist-intro .sist-etichetta { vertical-align: 1px; margin-left: 4px; }
.sist-etichetta { display: inline-block; font-size: 11px; font-weight: 700; padding: 2px 8px; border-radius: 999px; background: #eef1f5; color: var(--muto); margin: 0 4px 2px 0; white-space: nowrap; }
.sist-etichetta.blu { background: var(--blu-chiaro); color: var(--navy); }
.sist-etichetta.verde { background: color-mix(in srgb, var(--verde) 12%, #fff); color: var(--verde); }
.sist-etichetta.oro { background: color-mix(in srgb, var(--gold) 14%, #fff); color: #8a6420; }
.sist-etichetta.giallo { background: #fbf1dc; color: #8a5d06; }
.sist-etichetta.rosso { background: color-mix(in srgb, var(--rosso) 10%, #fff); color: var(--rosso); }
.sist-vuoto { text-align: center; padding: 22px 12px; color: var(--muto); }
.sist-vuoto b { display: block; color: var(--testo); margin: 6px 0 2px; font-family: var(--serif); font-size: 15px; }
.sist-bene { display: flex; align-items: center; gap: 8px; color: var(--verde); font-weight: 600; padding: 6px 0; }
.sist-riapre.verde { border-left: 3px solid var(--verde); } .sist-riapre.rosso { border-left: 3px solid var(--rosso); } .sist-riapre.giallo { border-left: 3px solid #c58a16; }
.sist-tappe { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 14px; }
.sist-tappa { display: inline-flex; align-items: center; gap: 8px; padding: 7px 14px 7px 8px; border: 1px solid var(--bordo); border-radius: 999px; background: var(--superficie); color: var(--muto); font-weight: 600; font-size: 13px; }
.sist-tappa i { width: 22px; height: 22px; border-radius: 50%; display: inline-flex; align-items: center; justify-content: center; font-style: normal; font-size: 12px; background: #eef1f5; color: var(--muto); }
.sist-tappa.corrente { border-color: var(--navy); color: var(--navy); } .sist-tappa.corrente i { background: var(--navy); color: #fff; }
.sist-tappa.fatta { color: var(--verde); border-color: color-mix(in srgb, var(--verde) 40%, var(--bordo)); } .sist-tappa.fatta i { background: var(--verde); color: #fff; }
.sist-tappa.errore { color: var(--rosso); border-color: color-mix(in srgb, var(--rosso) 40%, var(--bordo)); } .sist-tappa.errore i { background: var(--rosso); color: #fff; }
.sist-zona { display: flex; flex-direction: column; align-items: center; gap: 6px; padding: 26px 16px; border: 2px dashed #c8d0dc; border-radius: 10px; background: var(--paper); cursor: pointer; text-align: center; margin: 10px 0 12px; transition: border-color .14s ease, background .14s ease; }
.sist-zona:hover, .sist-zona.sopra { border-color: var(--navy); background: var(--blu-chiaro); }
.sist-zona b { font-family: var(--serif); font-size: 15px; }
.sist-zona span:last-child { color: var(--muto); font-size: 12.5px; }
.sist-zona-ico { width: 44px; height: 44px; border-radius: 50%; background: #fff; color: var(--navy); display: inline-flex; align-items: center; justify-content: center; box-shadow: var(--ombra-sm); }
.sist-zona-ico .ico { width: 21px; height: 21px; }
.sist-file { display: flex; align-items: center; gap: 12px; padding: 12px 14px; border: 1px solid var(--bordo); border-radius: 8px; background: var(--superficie); margin: 10px 0 12px; }
.sist-file-ico { width: 38px; height: 38px; border-radius: 8px; background: var(--blu-chiaro); color: var(--navy); display: inline-flex; align-items: center; justify-content: center; flex: none; }
.sist-file-testi { flex: 1; min-width: 0; display: flex; flex-direction: column; }
.sist-file-testi b { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.sist-file-testi span { color: var(--muto); font-size: 12.5px; }
.sist-controllo { border: 1px solid var(--bordo); border-radius: 8px; padding: 12px 14px; margin-bottom: 12px; background: var(--superficie); }
.sist-controllo.ok { border-left: 3px solid var(--verde); } .sist-controllo.attenzione { border-left: 3px solid #c58a16; } .sist-controllo.no { border-left: 3px solid var(--rosso); }
.sist-versioni { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; margin-bottom: 8px; }
.sist-versioni .da, .sist-versioni .a { font-family: var(--serif); font-size: 18px; font-weight: 700; font-variant-numeric: tabular-nums; }
.sist-versioni .a { color: var(--navy); }
.sist-versioni .freccia { color: var(--muto); }
.sist-controllo ul { margin: 6px 0 0; padding-left: 18px; color: var(--muto); font-size: 12.5px; }
.sist-nonchiudere { color: #8a5d06 !important; font-weight: 600; }
/* velo «sto lavorando» e conferma scritta */
.sist-velo { position: fixed; inset: 0; background: rgba(14, 26, 46, .42); z-index: 400; display: flex; align-items: center; justify-content: center; padding: 16px; }
.sist-velo-box { background: #fff; border-radius: 12px; box-shadow: var(--ombra-lg); padding: 24px 26px; max-width: 440px; width: 100%; text-align: center; }
.sist-velo-box > b { display: block; font-family: var(--serif); font-size: 18px; margin: 12px 0 6px; }
.sist-velo-box p { margin: 0; color: var(--muto); line-height: 1.5; }
.sist-velo-box .crono { margin-top: 10px; font-variant-numeric: tabular-nums; color: var(--muto); font-size: 12px; }
.sist-rotella { width: 34px; height: 34px; border-radius: 50%; border: 3px solid #e3e8f0; border-top-color: var(--navy); animation: sistGira .8s linear infinite; margin: 0 auto; }
@keyframes sistGira { to { transform: rotate(360deg); } }
.sist-conferma-box { text-align: left; max-width: 480px; }
.sist-conferma-box h3 { margin: 0 0 8px; font-family: var(--serif); font-size: 18px; color: var(--rosso); }
.sist-conferma-box p { color: var(--testo); margin: 0 0 10px; line-height: 1.5; }
.sist-conferma-box label { display: block; margin-top: 4px; }
.sist-conferma-box label b { font-family: ui-monospace, Menlo, monospace; font-size: 12px; letter-spacing: .06em; background: #fdecec; color: var(--rosso); padding: 1px 6px; border-radius: 4px; }
.sist-conferma-box input { display: block; width: 100%; font-size: 15px; letter-spacing: .08em; text-transform: uppercase; margin: 4px 0 14px; }
.sist-conferma-azioni { display: flex; gap: 8px; justify-content: flex-end; }
button.pericolo-pieno { background: var(--rosso); color: #fff; border-color: var(--rosso); }
button.pericolo-pieno:disabled { opacity: .45; cursor: not-allowed; }
@media (max-width: 700px) { .sist-salute-voce { border-right: 0; border-bottom: 1px solid var(--bordo); } .sist-testa-azioni { width: 100%; } }
