/* Gestione RDA · tema con i colori del logo Poliedra Sanità */
:root {
  --blu:#0f6e9e; --blu-scuro:#0b5479; --blu2:#0f6e9e; --turchese:#2db5c2; --turchese-chiaro:#e6f6f8;
  --bordo:#dbe3ea; --bordo-forte:#c5d1db; --sfondo:#f3f6f9; --carta:#ffffff; --testo:#1c2833; --muto:#5f6f7c;
  --verde:#1a7f4b; --rosso:#c62f3b; --giallo:#946200;
  --ombra:0 1px 2px rgba(16,42,67,.06), 0 2px 8px rgba(16,42,67,.05);
  --raggio:10px;
}
* { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; }
body { margin:0; font-family:"Segoe UI", system-ui, -apple-system, Roboto, "Helvetica Neue", Arial, sans-serif; font-size:14.5px;
  line-height:1.45; color:var(--testo); background:var(--sfondo); }
a { color:var(--blu); }
a:hover { color:var(--blu-scuro); }
::selection { background:var(--turchese-chiaro); }

/* ---------- barra laterale e navigazione */
:root { --lato:236px; }
.laterale { position:fixed; inset:0 auto 0 0; width:var(--lato); z-index:30; background:var(--carta); border-right:1px solid var(--bordo);
  display:flex; flex-direction:column; box-shadow:2px 0 12px rgba(16,42,67,.04); }
.laterale::before { content:""; position:absolute; left:0; right:0; top:0; height:3px; background:linear-gradient(90deg, var(--blu), var(--turchese)); }
.laterale a, .barra-mobile a { text-decoration:none; }
.laterale .logo { display:flex; flex-direction:column; align-items:flex-start; gap:8px; padding:22px 20px 16px; color:var(--testo);
  font-weight:600; font-size:15px; border-bottom:1px solid var(--bordo); }
.logo-img { height:32px; max-width:100%; display:block; }
.logo-testo { display:flex; flex-direction:column; line-height:1.2; }
.logo-testo small { font-weight:500; font-size:11.5px; color:var(--muto); }
.laterale nav { flex:1; overflow-y:auto; padding:10px 12px; display:flex; flex-direction:column; gap:2px; }
.laterale .gruppo { font-size:10.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:#93a2ae; padding:14px 10px 6px; }
.laterale nav a { display:flex; align-items:center; gap:12px; color:#41525f; padding:9px 10px; border-radius:9px; font-size:14px; font-weight:500;
  position:relative; transition:background .15s, color .15s; }
.laterale nav a .ico { width:20px; height:20px; flex:none; color:#7b8d9a; transition:color .15s; }
.laterale nav a:hover { background:var(--turchese-chiaro); color:var(--blu); }
.laterale nav a:hover .ico { color:var(--turchese); }
.laterale nav a.attiva { background:linear-gradient(90deg, var(--turchese-chiaro), #f3fbfc); color:var(--blu); font-weight:600; }
.laterale nav a.attiva::before { content:""; position:absolute; left:-12px; top:6px; bottom:6px; width:4px; border-radius:0 4px 4px 0; background:var(--turchese); }
.laterale nav a.attiva .ico { color:var(--blu); }
.laterale .voce { display:flex; align-items:center; gap:8px; flex:1; white-space:nowrap; }
.laterale .contatore { margin-left:auto; }
.laterale .chi { border-top:1px solid var(--bordo); padding:14px 16px; font-size:12.5px; color:var(--muto); }
.chi-testa { display:flex; align-items:center; gap:10px; }
.avatar { width:34px; height:34px; border-radius:50%; background:linear-gradient(135deg, var(--blu), var(--turchese)); color:#fff;
  display:inline-flex; align-items:center; justify-content:center; font-weight:700; font-size:12px; letter-spacing:.02em; flex:none; }
.chi-nome { display:flex; flex-direction:column; line-height:1.25; min-width:0; }
.chi-nome b { color:var(--testo); font-weight:600; font-size:13px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.chi-link { display:flex; gap:4px; margin-top:10px; }
.chi-link a { flex:1; display:flex; flex-direction:column; align-items:center; gap:3px; padding:7px 4px; border-radius:8px; color:var(--muto); font-size:11.5px; }
.chi-link a:hover { background:var(--turchese-chiaro); color:var(--blu); }
.chi-link .ico { width:18px; height:18px; }
.menu-apri, .barra-mobile, .menu-velo { display:none; }
body.con-menu main { margin-left:calc(var(--lato) + 26px); margin-right:26px; max-width:none; }
main { max-width:1600px; margin:26px auto 40px; padding:0 22px; }
body.con-menu main { padding:0; }

/* ---------- tipografia */
h1 { font-size:23px; font-weight:650; letter-spacing:-.01em; margin:0 0 18px; color:#13273a; }
h2 { font-size:16px; font-weight:650; margin:26px 0 12px; color:#13273a; }
h3 { font-size:14px; margin:12px 0 8px; }
.muto { color:var(--muto); font-size:13px; }
.oggetto { font-size:16px; margin:6px 0 16px; white-space:pre-wrap; color:#24384a; }
code { background:#eef3f7; padding:1px 6px; border-radius:5px; font-size:.92em; }

/* ---------- riquadri */
.card { background:var(--carta); border:1px solid var(--bordo); border-radius:var(--raggio); padding:18px 20px; margin-bottom:16px; box-shadow:var(--ombra); }
.card h2 { margin:0 0 14px; font-size:12.5px; font-weight:700; color:var(--blu); text-transform:uppercase; letter-spacing:.06em;
  display:flex; align-items:center; gap:8px; }
.card h2::before { content:""; width:4px; height:14px; border-radius:2px; background:var(--turchese); flex:none; }
.colonne { display:grid; grid-template-columns:repeat(auto-fill,minmax(420px,1fr)); gap:0 16px; align-items:start; }
.testata { display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:6px; }
.testata h1 { margin:0; }

/* ---------- avvisi */
.flash { padding:11px 14px 11px 16px; border-radius:8px; margin-bottom:12px; border:1px solid; border-left-width:4px; font-size:14px; box-shadow:var(--ombra); }
.flash.ok { background:#eefaf2; border-color:#bfe6cc; border-left-color:var(--verde); }
.flash.avviso { background:#fff8e6; border-color:#f3dfa6; border-left-color:#e0a800; }
.flash.errore { background:#fdf1f1; border-color:#f4c7cb; border-left-color:var(--rosso); }
.avviso { background:#fff8e6; border-left:4px solid #e0a800; padding:10px 14px; border-radius:8px; }
.testo-rosso { color:var(--rosso); font-weight:600; }
.testo-verde { color:var(--verde); font-weight:600; }

/* ---------- tabelle */
table { width:100%; border-collapse:separate; border-spacing:0; background:var(--carta); }
th, td { text-align:left; padding:9px 12px; border-bottom:1px solid #e8eef3; vertical-align:top; font-size:13.5px; }
th { background:#f6f9fb; color:var(--muto); font-weight:650; font-size:11.5px; text-transform:uppercase; letter-spacing:.04em;
  border-bottom:1px solid var(--bordo); white-space:nowrap; }
tbody tr:last-child td, table tr:last-child td { border-bottom:0; }
tr.click { transition:background .12s; }
tr.click:hover { background:#f0f8fb; cursor:pointer; }
td.num, th.num { text-align:right; white-space:nowrap; }
.tabella { overflow-x:auto; background:var(--carta); border:1px solid var(--bordo); border-radius:var(--raggio); box-shadow:var(--ombra); }
.tabella table { border-radius:var(--raggio); }
.card table th:first-child, .tabella table th:first-child { border-top-left-radius:8px; }
.card table th:last-child, .tabella table th:last-child { border-top-right-radius:8px; }
.nowrap { white-space:nowrap; }
tr.ritardo td:first-child { box-shadow:inset 3px 0 0 var(--rosso); }
tr.annullato td { color:var(--muto); text-decoration:line-through; }

/* ---------- moduli */
label { display:block; font-size:12.5px; font-weight:600; color:#4a5a67; margin-bottom:5px; }
input, select, textarea { width:100%; padding:8px 10px; border:1px solid var(--bordo-forte); border-radius:8px; font:inherit; font-size:14px;
  background:#fff; color:var(--testo); transition:border-color .15s, box-shadow .15s; }
input:hover, select:hover, textarea:hover { border-color:#9fb3c2; }
input:focus, select:focus, textarea:focus { outline:none; border-color:var(--turchese); box-shadow:0 0 0 3px rgba(45,181,194,.18); }
input[type=checkbox], input[type=radio] { width:auto; accent-color:var(--blu); }
input[type=file] { padding:6px; background:#f8fafc; border-style:dashed; }
textarea { min-height:72px; resize:vertical; }
.griglia { display:grid; grid-template-columns:repeat(auto-fill,minmax(260px,1fr)); gap:14px 16px; }
.griglia .largo { grid-column:1/-1; }
.sola-lettura, input:disabled { background:#f4f7f9; color:var(--muto); border-color:var(--bordo); }
.manca { border-color:var(--rosso) !important; background:#fff5f5; }
.riga-form { display:flex; gap:8px; align-items:center; margin-top:10px; flex-wrap:wrap; }
.riga-form input { width:auto; }
.spunta { align-self:center; }
.spunta label { display:flex; gap:7px; align-items:center; margin:0; color:var(--testo); font-weight:500; }
.spunta input, .spunta-lab input { width:auto; }
.spunta-lab { display:flex; gap:5px; align-items:center; margin:0 0 8px; white-space:nowrap; font-weight:500; }
.spunta-cod { display:flex; gap:7px; align-items:center; margin-top:24px; font-weight:500; color:var(--testo); }
.spunta-cod input { width:auto; }
details summary { cursor:pointer; color:var(--blu); margin:6px 0; font-weight:500; }

/* ---------- pulsanti */
.btn { display:inline-flex; align-items:center; gap:6px; padding:8px 15px; border-radius:8px; border:1px solid var(--blu); background:var(--blu);
  color:#fff; text-decoration:none; font:inherit; font-size:14px; font-weight:600; cursor:pointer; line-height:1.2;
  box-shadow:0 1px 2px rgba(15,110,158,.25); transition:background .15s, box-shadow .15s, transform .05s; }
.btn:hover { background:var(--blu-scuro); border-color:var(--blu-scuro); color:#fff; }
.btn:active { transform:translateY(1px); }
.btn:focus-visible { outline:none; box-shadow:0 0 0 3px rgba(45,181,194,.35); }
.btn.sec { background:#fff; color:var(--blu); border-color:var(--bordo-forte); box-shadow:none; }
.btn.sec:hover { background:var(--turchese-chiaro); border-color:var(--turchese); color:var(--blu-scuro); }
.btn.verde { background:var(--verde); border-color:var(--verde); box-shadow:0 1px 2px rgba(26,127,75,.25); }
.btn.verde:hover { background:#146a3e; }
.btn.rosso { background:var(--rosso); border-color:var(--rosso); box-shadow:0 1px 2px rgba(198,47,59,.25); }
.btn.rosso:hover { background:#a82531; }
.btn.piccolo { padding:5px 10px; font-size:12.5px; }
.btn[disabled] { opacity:.5; cursor:not-allowed; }

/* ---------- filtri e chip */
.filtri { display:flex; flex-wrap:wrap; gap:12px; align-items:end; }
.filtri > div { min-width:150px; }
.filtri .cerca { flex:1; min-width:240px; }
.chips { display:flex; flex-wrap:wrap; gap:7px; margin:14px 0; align-items:center; }
.chip { padding:5px 13px; border-radius:999px; border:1px solid var(--bordo); background:#fff; text-decoration:none; color:#3d4f5d;
  font-size:12.5px; font-weight:500; transition:all .12s; }
.chip:hover { border-color:var(--turchese); color:var(--blu); }
.chip.attivo { background:var(--blu); color:#fff; border-color:var(--blu); }
.chip.rosso { border-color:#f4c7cb; color:var(--rosso); } .chip.rosso.attivo { background:var(--rosso); color:#fff; border-color:var(--rosso); }
.chip.verde { border-color:#bfe6cc; color:var(--verde); } .chip.verde.attivo { background:var(--verde); color:#fff; border-color:var(--verde); }
.sep { width:1px; height:22px; background:var(--bordo); margin:0 4px; }

/* ---------- stati e etichette */
.stato, .pill { display:inline-block; padding:3px 10px; border-radius:999px; font-size:11.5px; font-weight:650; white-space:nowrap;
  background:#edf1f4; color:var(--muto); letter-spacing:.01em; }
.s-aperta { background:#e3f2fb; color:#0b5f8c; }
.s-approvare { background:#fff4d6; color:var(--giallo); }
.s-approvata, .s-consegnata, .s-chiusa { background:#e2f5ea; color:var(--verde); }
.s-respinta { background:#fde8ea; color:var(--rosso); }
.s-ordinata { background:#f1ebff; color:#6d3fd1; }
.s-annullata { background:#edf1f4; color:var(--muto); text-decoration:line-through; }
.pill.rosso { background:#fde8ea; color:var(--rosso); } .pill.verde { background:#e2f5ea; color:var(--verde); } .pill.giallo { background:#fff4d6; color:var(--giallo); }
.contatore { display:inline-block; min-width:18px; padding:0 6px; margin-left:3px; border-radius:9px; background:var(--rosso); color:#fff;
  font-size:11px; font-weight:700; text-align:center; line-height:18px; }

/* ---------- scheda RDA */
dl { display:grid; grid-template-columns:190px 1fr; gap:7px 14px; margin:0; font-size:14px; }
dt { color:var(--muto); font-size:13px; } dd { margin:0; white-space:pre-wrap; }
.azioni form { display:inline-block; margin:0 8px 8px 0; vertical-align:top; }
.azioni .riquadro { border:1px solid var(--bordo); border-radius:8px; padding:10px; display:flex; gap:8px; align-items:end; background:#fafcfd; }
.azioni .riquadro input { width:auto; }
.autorizzazione, .aut-sezione, .aut-card { border-left:4px solid #e0a800; }
.autorizzazione.ok { border-left-color:var(--verde); }
.aut-card.bloccata { border-left-color:var(--bordo); opacity:.85; }
.bozza-ordine { border-left:4px solid var(--blu); }
.codifica-card { border-left:4px solid var(--rosso); }
.totale { text-align:right; margin-top:8px; color:var(--muto); }

/* ---------- accesso */
.login { max-width:400px; margin:9vh auto; }
.login h1 { text-align:center; font-size:20px; }
.login .card { padding:26px 26px 22px; border-top:4px solid var(--turchese); }
.login .card > div { margin-bottom:14px; }
.login .btn { width:100%; justify-content:center; padding:10px; }
.login-logo { display:block; margin:0 auto 18px; height:46px; }

/* ---------- apparecchiature e ricerca */
.cerca-app { position:relative; }
.app-scelta { display:flex; gap:10px; align-items:center; padding:9px 12px; border:1px solid #bfe6cc; background:#f0fbf4; border-radius:8px; }
.risultati { border:1px solid var(--bordo); border-radius:8px; max-height:260px; overflow:auto; background:#fff; margin-top:4px; box-shadow:var(--ombra); }
.risultati:empty { display:none; }
.risultato { padding:8px 11px; cursor:pointer; border-bottom:1px solid #eef3f7; font-size:13.5px; }
.risultato:hover { background:#f0f8fb; }
table.righe td { padding:4px; } table.righe input { padding:6px 7px; font-size:13px; }
table.righe .corto { width:80px; }
.righe-ordine input { width:100%; }

/* ---------- magazzino */
.kpi-riga { display:grid; grid-template-columns:repeat(auto-fit,minmax(180px,1fr)); gap:14px; margin:14px 0 18px; }
.kpi { background:var(--carta); border:1px solid var(--bordo); border-radius:var(--raggio); padding:14px 16px; text-decoration:none; color:var(--testo);
  box-shadow:var(--ombra); position:relative; overflow:hidden; transition:border-color .15s, transform .1s; }
.kpi::before { content:""; position:absolute; left:0; top:0; bottom:0; width:4px; background:var(--turchese); }
a.kpi:hover { border-color:var(--turchese); transform:translateY(-1px); }
.kpi span { display:block; font-size:11.5px; color:var(--muto); text-transform:uppercase; letter-spacing:.05em; font-weight:600; margin-bottom:3px; }
.kpi b { font-size:24px; font-weight:700; color:#13273a; }
.kpi.allarme::before { background:var(--rosso); } .kpi.allarme b { color:var(--rosso); }
.mov-in { color:var(--verde); font-weight:600; } .mov-out { color:var(--rosso); font-weight:600; } .mov-mv { color:var(--blu); font-weight:600; }

/* ---------- autorizzazioni e preventivi */
.aut-testa { display:flex; justify-content:space-between; gap:12px; flex-wrap:wrap; align-items:baseline; }
.aut-importo { font-size:21px; font-weight:700; color:#13273a; }
.aut-azioni { display:flex; gap:10px; flex-wrap:wrap; margin-top:12px; }
.aut-azioni form { display:flex; gap:6px; align-items:center; flex-wrap:wrap; }
.aut-azioni .prev-scelta { flex-basis:100%; }
.aut-sezione form.aut-firma { display:flex; flex-direction:column; gap:8px; max-width:640px; }
.prev-blocco { border:1px solid var(--bordo); border-radius:var(--raggio); padding:12px 14px; margin:10px 0; background:#fafcfd; }
.prev-testa { display:flex; gap:14px; align-items:center; margin-bottom:8px; }
.prev-testa .prev-togli { margin-left:auto; }
.prev-tab td, .prev-tab th { vertical-align:top; }
.prev-scelta { display:flex; flex-direction:column; gap:6px; margin:6px 0 4px; }
.prev-scelta label { display:flex; gap:8px; align-items:baseline; justify-content:flex-start; font-weight:normal; color:var(--testo); }
.prev-scelta label.no { color:var(--muto); }
.prev-scelta input[type=radio] { width:auto; flex:none; margin:0; }
.firma-campo { margin:8px 0; flex-basis:100%; }
.firma-salvata { display:flex; gap:12px; align-items:center; flex-wrap:wrap; }
.firma-salvata img { max-height:60px; max-width:220px; border:1px dashed var(--bordo-forte); padding:4px; background:#fff; border-radius:6px; }
.firma-pad canvas { width:100%; max-width:460px; height:130px; border:1px dashed var(--bordo-forte); border-radius:8px; background:#fff; touch-action:none; display:block; }
.centri-utente { display:flex; flex-wrap:wrap; gap:4px 10px; align-items:center; }

/* ---------- schermi piccoli */
@media (max-width:1180px) and (min-width:761px) {
  :root { --lato:76px; }
  .laterale .logo { align-items:center; padding:18px 8px 12px; } .laterale .logo-img { height:auto; width:56px; object-fit:contain; object-position:left; }
  .logo-testo, .laterale .voce, .laterale .gruppo, .chi-nome, .chi-link span { display:none; }
  .laterale .gruppo { display:block; height:1px; padding:0; margin:8px 6px; background:var(--bordo); font-size:0; }
  .laterale nav a { justify-content:center; padding:11px 0; }
  .laterale nav a .ico { width:22px; height:22px; }
  .laterale nav a .voce:has(.contatore) { display:block; position:absolute; top:3px; right:6px; font-size:0; }
  .laterale nav a .voce:has(.contatore) .contatore { font-size:10px; }
  .chi-testa { justify-content:center; } .laterale .chi { padding:12px 6px; } .chi-link { flex-direction:column; }
}
@media (max-width:760px) {
  .barra-mobile { display:flex; align-items:center; gap:12px; position:sticky; top:0; z-index:25; background:var(--carta); padding:10px 14px;
    border-bottom:1px solid var(--bordo); }
  .barra-mobile .logo { flex:1; } .barra-mobile .logo-img { height:28px; }
  .hamburger { display:flex; flex-direction:column; gap:4px; cursor:pointer; padding:6px; }
  .hamburger span { width:20px; height:2px; background:var(--testo); border-radius:2px; }
  .laterale { transform:translateX(-105%); transition:transform .2s; width:260px; }
  .menu-apri:checked ~ .laterale { transform:none; }
  .menu-apri:checked ~ .menu-velo { display:block; position:fixed; inset:0; background:rgba(16,42,67,.35); z-index:29; }
  body.con-menu main { margin:18px 14px 30px; }
  main { padding:0 14px; margin-top:18px; }
  dl { grid-template-columns:1fr; }
  .colonne { grid-template-columns:1fr; }
}
@media print { header, .laterale, .barra-mobile, .btn, .chips, .filtri { display:none !important; } body { background:#fff; } .card, .tabella { box-shadow:none; } }

/* chiusura ordine: scelta DDT / RIT */
.scelta-chiusura { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; margin: 6px 0 18px; }
.opzione-chiusura { display: flex; gap: 12px; align-items: flex-start; background: #fff; border: 2px solid var(--bordo, #dfe6ec);
  border-radius: 12px; padding: 14px 16px; cursor: pointer; box-shadow: 0 1px 3px rgba(15, 40, 60, .06); }
.opzione-chiusura input { margin-top: 3px; width: auto; }
.opzione-chiusura b { display: block; color: var(--blu, #0f6e9e); margin-bottom: 4px; }
.opzione-chiusura small { color: #5b6b78; line-height: 1.4; display: block; }
.opzione-chiusura:has(input:checked) { border-color: var(--turchese, #2db5c2); background: #f0fbfc; }
@media (max-width: 760px) { .scelta-chiusura { grid-template-columns: 1fr; } }

/* avviso RDA simili (stesso ricambio o stessa macchina) */
.simili { background:#fff8e6; border:1px solid #f3dfa6; border-left:4px solid #e0a800; border-radius:10px; padding:12px 16px; margin-bottom:16px; }
.simili b.titolo { display:block; margin-bottom:6px; }
.simili ul { margin:0; padding-left:18px; }
.simili li { margin:3px 0; font-size:14px; }
.simili .motivo { color:#8a5a00; font-weight:600; }
.simili-fisso { position:sticky; bottom:12px; z-index:20; max-height:40vh; overflow:auto; box-shadow:0 6px 24px rgba(15,40,60,.18); }
.simili .chiudi-simili { float:right; background:none; border:0; font-size:16px; cursor:pointer; color:#8a5a00; padding:0 0 0 8px; }
.simili[hidden] { display:none; }
@media print { body.con-menu main { margin:0; } }

/* scelta della commessa nella barra laterale */
.commessa-scelta { padding:12px 16px 4px; }
.commessa-scelta label { display:block; font-size:10.5px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:#93a2ae; margin-bottom:5px; }
.commessa-scelta select { width:100%; font-weight:600; color:var(--blu); border-color:var(--turchese); background:var(--turchese-chiaro); }
@media (max-width:1180px) and (min-width:761px) { .commessa-scelta { padding:8px 6px 0; } .commessa-scelta label { display:none; } .commessa-scelta select { font-size:11px; padding:4px 2px; } }
/* alert: ricambio già a magazzino o RDA aperte sulla stessa apparecchiatura */
.simili.magazzino-ok { background:#eef7ff; border-color:#bcd9f2; border-left-color:#1f78c8; }
.simili.magazzino-ok .motivo { color:#14548c; }
dialog.allerta { border:0; border-top:6px solid #e0a800; border-radius:12px; padding:0; max-width:620px; width:calc(100% - 32px); box-shadow:0 20px 60px rgba(15,40,60,.35); }
dialog.allerta::backdrop { background:rgba(15,30,45,.45); }
.allerta-testa { background:#fff8e6; color:#8a5a00; font-weight:700; font-size:18px; padding:14px 20px; }
#allerta-corpo { padding:6px 20px 0; max-height:60vh; overflow:auto; }
#allerta-corpo h3 { font-size:15px; margin:12px 0 6px; }
#allerta-corpo ul { margin:0; padding-left:18px; } #allerta-corpo li { margin:4px 0; font-size:14px; }
dialog.allerta .azioni { padding:14px 20px; text-align:right; }
.simili.gestore-altro { background:#fdeeee; border-color:#f1c4c4; border-left-color:#c62828; }
.simili.gestore-altro .motivo { color:#a11b1b; }
/* tracciabilità compilata dal pezzo letto */
input.compilato-auto, select.compilato-auto, textarea.compilato-auto { background:#eef7ff; border-color:#9cc6ea; }
.stato-pezzi { font-size:13px; margin-top:6px; line-height:1.6; }
/* un elemento nascosto resta nascosto anche se la sua classe gli dà display:flex/inline-block */
[hidden] { display:none !important; }
/* ---------- report consumi */
.report-testa { display:flex; gap:14px; align-items:center; margin-bottom:16px; }
.report-testa h1 { margin:0; }
.report-testa p { margin:2px 0 0; }
.report-ico { width:44px; height:44px; border-radius:10px; background:var(--turchese-chiaro); color:var(--blu); display:grid; place-items:center; flex:none; }
.report-ico svg { width:22px; height:22px; }
.schede-report { display:inline-flex; flex-wrap:wrap; gap:2px; background:#e8eef3; border-radius:10px; padding:4px; margin-bottom:16px; }
.schede-report a { padding:7px 14px; border-radius:8px; color:#41525f; text-decoration:none; font-weight:500; }
.schede-report a:hover { background:rgba(255,255,255,.6); }
.schede-report a.attiva { background:var(--carta); color:var(--blu); box-shadow:var(--ombra); font-weight:600; }
.filtri-report { margin-bottom:14px; }
.report-sintesi { display:flex; justify-content:space-between; align-items:center; gap:12px; flex-wrap:wrap; margin-bottom:12px; color:var(--muto); }
.report-sintesi b { color:var(--testo); }
.pill-scura { background:#3b4b57; color:#fff; border-radius:999px; padding:2px 10px; font-size:13px; font-weight:600; margin-right:4px; }
.estrai { position:relative; }
.estrai summary { list-style:none; cursor:pointer; }
.estrai summary::-webkit-details-marker { display:none; }
.menu-estrai { position:absolute; right:0; top:calc(100% + 4px); background:var(--carta); border:1px solid var(--bordo); border-radius:10px;
  box-shadow:0 8px 24px rgba(16,42,67,.15); padding:6px; z-index:15; min-width:260px; }
.menu-estrai a { display:block; padding:8px 10px; border-radius:7px; text-decoration:none; color:var(--testo); }
.menu-estrai a:hover { background:var(--turchese-chiaro); }
table.report td.chiave { font-family:ui-monospace, Consolas, monospace; font-weight:600; }
table.report td.marca { color:var(--blu); }
.filtri-report { flex-wrap:nowrap; }
.filtri-report > div { flex:0 0 auto; min-width:0; }
.filtri-report > div:first-of-type select { width:250px; }
.filtri-report input[type=date] { width:150px; }
.filtri-report > div select[name=mag] { width:200px; }
.filtri-report .cerca { flex:1 1 auto; min-width:200px; }
@media (max-width: 1100px) { .filtri-report { flex-wrap:wrap; } }
.s-parziale { background:#fff1dc; color:#9a5a00; }
/* carico: tracciabilità uguale o per variazioni */
.domanda-tracc { display:flex; flex-wrap:wrap; gap:8px 22px; align-items:center; background:var(--turchese-chiaro); border-radius:8px; padding:10px 14px; margin:8px 0 14px; }
.domanda-tracc b { width:100%; }
.domanda-tracc label { display:flex; gap:6px; align-items:center; font-weight:500; margin:0; }
.gruppi-tracc table input { width:100%; min-width:80px; }
.gruppi-tracc td { padding:4px; }
.gruppi-tracc table input { min-width:110px; }
.gruppi-tracc td:first-child input { width:64px; min-width:0; }
.gruppi-tracc td:last-child { width:40px; }
tr.riga-ok td { background:#f1faf4; }
.barra-budget { height:6px; background:#e8eef3; border-radius:4px; overflow:hidden; margin-top:6px; display:inline-block; width:100%; vertical-align:middle; }
td .barra-budget { width:70px; margin:0 4px 0 0; }
.barra-budget i { display:block; height:100%; background:var(--turchese); border-radius:4px; }
.barra-budget.verde i { background:var(--verde); } .barra-budget.oltre i { background:var(--rosso); }
.budget-scheda h3 { margin:14px 0 6px; } .budget-scheda details { margin-top:10px; } tr.totale td { border-top:2px solid var(--bordo); }
.avviso-info { background:#eef7fb; border-left:4px solid var(--blu); padding:10px 14px; border-radius:8px; margin:0 0 12px; }
.rdp-forn { border:1px solid #d5e3ec; border-radius:10px; padding:12px 14px; margin-bottom:12px; background:#fff; }
.rdp-forn.ricevuto { border-left:4px solid #2e9d5b; }
.rdp-forn .testa { display:flex; flex-wrap:wrap; gap:8px 14px; align-items:center; justify-content:space-between; }
table.righe-rdp input { width:100%; }
.laterale nav a.sotto { margin-left:22px; padding-top:7px; padding-bottom:7px; font-size:13.5px; }
.laterale nav a.sotto .ico { width:17px; height:17px; }
@media (max-width:1180px) and (min-width:761px) { .laterale nav a.sotto { margin-left:0; } }
@media (max-width:760px) { .laterale nav a.sotto { margin-left:14px; } }
.ati-commessa { border:1px solid var(--bordo); border-radius:10px; padding:10px 14px; margin-bottom:12px; }
.ati-commessa h3 { margin:0 0 8px; display:flex; gap:10px; align-items:center; }
