:root{
    --side:264px;

    /* Palette istituzionale verde, sul modello dei portali regionali:
       banda scura in testa, intestazioni di pannello in verde medio,
       corpo bianco su fondo chiaro, bordi grigi sottili. */
    --verde-scuro:#136c38;
    --verde:#2e8b4f;
    --verde-med:#3f9c5c;
    --verde-chiaro:#5bb271;
    --verde-tenue:#eaf4ec;

    --bg:#ffffff;
    --card:#fff;
    --line:#d5dbd6;
    --line-soft:#e9ede9;
    --txt:#242a26;
    --muted:#68736b;
    --pri:var(--verde);
    --pri-d:var(--verde-scuro);
    --dark:#17452b;
    --ok:#1a7f43;
    --err:#b3261e;
    --radius:4px;
}

*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
    font:14px/1.45 "Segoe UI",Tahoma,Geneva,Verdana,Arial,Helvetica,sans-serif;
    background:var(--bg);color:var(--txt);
}
a{color:var(--verde-scuro);text-decoration:none}
a:hover{text-decoration:underline}

/* Banda istituzionale in testa alla pagina. */
body::before{
    content:"";position:fixed;top:0;left:0;right:0;height:8px;
    background:var(--verde-scuro);z-index:70;
}

/* ---------------------------------------------------------- sidebar ----- */
.sidebar{
    position:fixed;inset:8px auto 0 0;width:var(--side);
    background:var(--dark);color:#d3e5d8;
    display:flex;flex-direction:column;z-index:40;
}
.brand{display:flex;gap:10px;align-items:center;padding:16px;border-bottom:1px solid rgba(255,255,255,.12)}
.brand-mark{
    width:36px;height:36px;flex:0 0 36px;border-radius:var(--radius);background:var(--verde-chiaro);
    color:#fff;font-size:24px;font-weight:700;display:flex;align-items:center;justify-content:center;
}
.brand-txt{display:flex;flex-direction:column;min-width:0}
.brand-txt strong{color:#fff;font-size:14px;line-height:1.2}
.brand-txt span{color:#9dc4a9;font-size:11.5px;text-transform:uppercase;letter-spacing:.4px}

.nav{flex:1;overflow-y:auto;padding:10px 8px}
.nav-group{margin-bottom:3px}
.nav-group-head{
    width:100%;display:flex;align-items:center;gap:10px;
    background:none;border:0;color:#d3e5d8;cursor:pointer;
    padding:10px;border-radius:var(--radius);font-size:13px;font-weight:600;
    text-transform:uppercase;letter-spacing:.3px;
}
.nav-group-head:hover{background:rgba(255,255,255,.08);color:#fff}
.nav-group-head .lbl{flex:1;text-align:left}
.nav-group-head .chev{transition:transform .15s ease;font-size:16px;opacity:.6}
.nav-group.open .chev{transform:rotate(90deg)}
.nav-sub{list-style:none;margin:2px 0 6px;padding:0 0 0 34px;display:none}
.nav-group.open .nav-sub{display:block}
.nav-sub a{
    display:block;padding:8px 10px;border-radius:var(--radius);
    color:#b6d3bf;font-size:13.5px;text-decoration:none;
}
.nav-sub a:hover{background:rgba(255,255,255,.09);color:#fff;text-decoration:none}
.nav-sub a.active{background:var(--verde-med);color:#fff;font-weight:600}

.ico{width:16px;height:16px;flex:0 0 16px;background:currentColor;opacity:.85;
    -webkit-mask-repeat:no-repeat;mask-repeat:no-repeat;-webkit-mask-size:contain;mask-size:contain}
.ico-stethoscope{-webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'><path d='M6 3v6a5 5 0 0 0 4 4.9V16a4 4 0 0 0 8 0v-1.1a3 3 0 1 0-2 0V16a2 2 0 0 1-4 0v-2.1A5 5 0 0 0 16 9V3h-2v6a3 3 0 0 1-6 0V3H6z'/></svg>");
    mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'><path d='M6 3v6a5 5 0 0 0 4 4.9V16a4 4 0 0 0 8 0v-1.1a3 3 0 1 0-2 0V16a2 2 0 0 1-4 0v-2.1A5 5 0 0 0 16 9V3h-2v6a3 3 0 0 1-6 0V3H6z'/></svg>")}
.ico-user{-webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'><path d='M12 12a4 4 0 1 0 0-8 4 4 0 0 0 0 8zm0 2c-4 0-8 2-8 4.5V21h16v-2.5C20 16 16 14 12 14z'/></svg>");
    mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'><path d='M12 12a4 4 0 1 0 0-8 4 4 0 0 0 0 8zm0 2c-4 0-8 2-8 4.5V21h16v-2.5C20 16 16 14 12 14z'/></svg>")}
.ico-table{-webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'><path d='M3 4h18v16H3V4zm2 2v3h5V6H5zm7 0v3h7V6h-7zM5 11v3h5v-3H5zm7 0v3h7v-3h-7zM5 16v2h5v-2H5zm7 0v2h7v-2h-7z'/></svg>");
    mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'><path d='M3 4h18v16H3V4zm2 2v3h5V6H5zm7 0v3h7V6h-7zM5 11v3h5v-3H5zm7 0v3h7v-3h-7zM5 16v2h5v-2H5zm7 0v2h7v-2h-7z'/></svg>")}

.ico-grid{-webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'><path d='M3 3h8v8H3V3zm10 0h8v5h-8V3zM3 13h8v8H3v-8zm10-3h8v11h-8V10z'/></svg>");
    mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'><path d='M3 3h8v8H3V3zm10 0h8v5h-8V3zM3 13h8v8H3v-8zm10-3h8v11h-8V10z'/></svg>")}

.ico-cog{-webkit-mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'><path d='M12 8a4 4 0 1 0 0 8 4 4 0 0 0 0-8zm9.4 4c0-.6-.1-1.2-.2-1.7l2-1.6-2-3.4-2.4 1a7.6 7.6 0 0 0-3-1.7L15.4 2H8.6l-.4 2.6c-1.1.4-2.1 1-3 1.7l-2.4-1-2 3.4 2 1.6a7.7 7.7 0 0 0 0 3.4l-2 1.6 2 3.4 2.4-1c.9.7 1.9 1.3 3 1.7l.4 2.6h6.8l.4-2.6c1.1-.4 2.1-1 3-1.7l2.4 1 2-3.4-2-1.6c.1-.5.2-1.1.2-1.7z'/></svg>");
    mask-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='black'><path d='M12 8a4 4 0 1 0 0 8 4 4 0 0 0 0-8zm9.4 4c0-.6-.1-1.2-.2-1.7l2-1.6-2-3.4-2.4 1a7.6 7.6 0 0 0-3-1.7L15.4 2H8.6l-.4 2.6c-1.1.4-2.1 1-3 1.7l-2.4-1-2 3.4 2 1.6a7.7 7.7 0 0 0 0 3.4l-2 1.6 2 3.4 2.4-1c.9.7 1.9 1.3 3 1.7l.4 2.6h6.8l.4-2.6c1.1-.4 2.1-1 3-1.7l2.4 1 2-3.4-2-1.6c.1-.5.2-1.1.2-1.7z'/></svg>")}

.sidebar-foot{padding:10px 12px;border-top:1px solid rgba(255,255,255,.12);font-size:11.5px;color:#9dc4a9}
.utente-box{display:flex;align-items:center;gap:8px;padding:6px;border-radius:var(--radius);background:rgba(255,255,255,.07)}
.utente-txt{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.25}
.utente-txt strong{color:#fff;font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.utente-txt span{font-size:11px;color:#9dc4a9;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.esci{color:#b6d3bf;font-size:15px;text-decoration:none;padding:2px 4px;border-radius:var(--radius)}
.esci:hover{background:rgba(255,255,255,.14);color:#fff;text-decoration:none}
.avatar-sm{width:26px;height:26px;flex:0 0 26px;font-size:10.5px;background:var(--verde-med)}
.db-info{display:block;margin-top:8px;padding-left:4px}

/* ---------------------------------------------------- pagina di accesso -- */
.login{
    background:#fff;border:1px solid var(--line);border-radius:var(--radius);
    width:min(380px,92vw);box-shadow:0 2px 10px rgba(0,0,0,.08);
    display:flex;flex-direction:column;gap:12px;padding:0 26px 26px;overflow:hidden;
}
.login-brand{
    display:flex;align-items:center;gap:10px;
    margin:0 -26px 10px;padding:14px 20px;
    background:var(--verde-med);color:#fff;
}
.login-brand .brand-mark{background:rgba(255,255,255,.2)}
.login-brand strong{display:block;font-size:14.5px;color:#fff}
.login-brand span{display:block;font-size:11px;color:rgba(255,255,255,.85);text-transform:uppercase;letter-spacing:.4px}
.login label{display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:var(--muted);font-weight:600}
.login input{font-weight:400;color:var(--txt)}
.login .btn{margin-top:6px;width:100%;text-align:center}
.riga-builtin{background:#f7faf8}

/* schede semplici (profilo) */
.card-pad{padding:18px 20px;margin-bottom:16px}
.sez{margin:0 0 12px;font-size:15px;color:var(--verde-scuro)}
.dati{display:grid;grid-template-columns:150px 1fr;gap:6px 14px;margin:0}
.dati dt{color:var(--muted);font-size:12.5px}
.dati dd{margin:0}
.form-stretto{max-width:520px}
.form-stretto .rows{grid-template-columns:1fr}
.form-stretto .btn{margin-top:12px}

/* ------------------------------------------------------------- main ----- */
.main{margin-left:var(--side);padding:8px 24px 40px;min-height:100vh}
.topbar{
    position:sticky;top:8px;z-index:20;
    display:flex;align-items:center;justify-content:space-between;
    padding:12px 18px;margin:0 0 16px;
    background:var(--verde-med);color:#fff;border-radius:var(--radius) var(--radius) 0 0;
}
.topbar h1{margin:0;font-size:18px;font-weight:600}
.topbar-right{color:rgba(255,255,255,.9);font-size:13px;display:flex;align-items:center;gap:14px;min-width:0}
.topbar-ente{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:46vw}

.menu-toggle{display:none;position:fixed;top:16px;left:12px;z-index:60;
    background:var(--verde-scuro);color:#fff;border:0;border-radius:var(--radius);
    width:38px;height:38px;font-size:18px;cursor:pointer}
.backdrop{display:none}

/* ---------------------------------------------------------- toolbar ----- */
.toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin-bottom:14px}
.filtri{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.toolbar-right{display:flex;gap:10px;align-items:center;margin-left:auto}
.badge-count{color:var(--muted);font-size:12.5px}

input,select,textarea{
    font:inherit;color:var(--txt);background:#fff;
    border:1px solid var(--line);border-radius:var(--radius);padding:7px 9px;
}
input:focus,select:focus,textarea:focus{outline:2px solid rgba(46,139,79,.28);border-color:var(--verde)}
input[type=search]{min-width:260px}
input[type=color]{padding:2px;height:34px;width:100%}

.btn{
    font:inherit;font-weight:600;border-radius:var(--radius);padding:8px 16px;
    border:1px solid transparent;cursor:pointer;display:inline-block;text-decoration:none;
}
.btn:hover{text-decoration:none}
.btn-primary{background:var(--verde-chiaro);border-color:var(--verde);color:#fff}
.btn-primary:hover{background:var(--verde)}
.btn-ghost{background:#fff;border-color:var(--line);color:var(--txt)}
.btn-ghost:hover{background:var(--verde-tenue);border-color:var(--verde-chiaro)}

/* ------------------------------------------------------------ card ------ */
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--radius);overflow:auto;margin-bottom:16px}

.grid{width:100%;border-collapse:collapse;font-size:13.5px}
.grid th{
    text-align:left;background:var(--verde-med);color:#fff;font-weight:600;
    font-size:12px;padding:10px 9px;border-bottom:1px solid var(--verde);white-space:nowrap;
}
.grid td{padding:9px;border-bottom:1px solid var(--line-soft);vertical-align:middle}
.grid th:first-child,.grid td:first-child{padding-left:12px}
.grid th:last-child,.grid td:last-child{padding-right:12px}
.grid tbody tr:nth-child(even){background:#fafcfa}
.grid tbody tr:hover{background:var(--verde-tenue)}
.grid td small{display:block;color:var(--muted);font-size:11.5px}
.grid .c{text-align:center}
.vuoto{text-align:center;color:var(--muted);padding:38px 12px !important}

.avatar{
    display:inline-flex;align-items:center;justify-content:center;
    width:30px;height:30px;border-radius:50%;color:#fff;font-size:11.5px;font-weight:700;
}
.dot{display:inline-block;width:14px;height:14px;border-radius:3px}

.pill{display:inline-block;padding:2px 9px;border-radius:99px;font-size:11.5px;font-weight:600}
.pill-on{background:var(--verde-tenue);color:var(--verde-scuro);border:1px solid #c3e0cc}
.pill-off{background:#f0f1f0;color:#6b7280;border:1px solid #dfe2e0}
.tag{display:inline-block;background:var(--verde-tenue);color:var(--verde-scuro);border:1px solid #cfe4d5;
    border-radius:3px;padding:1px 6px;font-size:11px;margin:1px 2px}
.tag-tipo{display:inline-flex;align-items:center;gap:6px;white-space:nowrap}
.tag-tipo::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--c,#94a3b8)}
.muted{color:var(--muted)}

/* griglia annidata nel form (attività del medico) */
.subgrid-add{display:flex;gap:8px;margin-bottom:10px}
.subgrid-add select{flex:1;min-width:0}
.subgrid{border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.subgrid th{padding:8px 10px}
.subgrid td{padding:7px 10px;vertical-align:middle}
.subgrid td input,.subgrid td select{width:100%;padding:6px 8px}
.subgrid td small{color:var(--muted)}
.nota{color:var(--muted);font-size:12.5px;margin:6px 2px 0}
.subgrid-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:10px}
.totale{color:var(--muted);font-size:12.5px}
.totale strong{color:var(--verde-scuro);font-size:14px}
.durata{color:var(--muted);font-variant-numeric:tabular-nums}
.slot{display:inline-block;background:#f4f8f5;border:1px solid var(--line);border-radius:3px;
    padding:1px 7px;font-size:11.5px;margin:1px 2px;white-space:nowrap}
.slot b{color:var(--verde-scuro)}
.hint{font-size:11px;font-weight:500;color:var(--muted)}
.ico-btn[disabled]{opacity:.35;cursor:not-allowed}

.azioni{white-space:nowrap}
.inline{display:inline}
.ico-btn{
    background:#fff;border:1px solid var(--line);border-radius:var(--radius);
    width:30px;height:30px;cursor:pointer;font-size:14px;line-height:1;margin:0 1px;
}
.ico-btn:hover{background:var(--verde-tenue);border-color:var(--verde-chiaro)}
.ico-btn.danger:hover{background:#fdecea;border-color:#f0bdb8;color:var(--err)}

/* ----------------------------------------------------------- flash ------ */
.flash{padding:11px 14px;border-radius:var(--radius);margin-bottom:14px;font-weight:500}
.flash-ok{background:var(--verde-tenue);color:var(--verde-scuro);border:1px solid #bfe0c9}
.flash-err{background:#fdecea;color:#8f2018;border:1px solid #f0bdb8}

/* ---------------------------------------------------------- dialog ------ */
/* Le schede si aprono sempre alla massima ampiezza utile: l'intestazione e il
   piè restano fissi, scorre solo il corpo. */
.dlg{
    border:0;border-radius:var(--radius);padding:0;
    width:96vw;max-width:96vw;height:94vh;max-height:94vh;
    box-shadow:0 10px 40px rgba(0,0,0,.3);
}
.dlg[open]{display:flex;flex-direction:column}
.dlg > form{display:flex;flex-direction:column;flex:1;min-height:0}
.dlg::backdrop{background:rgba(20,40,28,.45)}
.dlg-head{display:flex;align-items:center;justify-content:space-between;
    padding:13px 20px;background:var(--verde-med);color:#fff;flex:0 0 auto}
.dlg-head h2{margin:0;font-size:16px;font-weight:600}
.dlg-x{background:none;border:0;font-size:24px;line-height:1;cursor:pointer;color:rgba(255,255,255,.85)}
.dlg-x:hover{color:#fff}
.dlg-body{padding:16px 20px;flex:1;min-height:0;overflow:auto}
.dlg-foot{display:flex;justify-content:flex-end;gap:10px;padding:14px 20px;
    border-top:1px solid var(--line);background:#f7f9f7;flex:0 0 auto}

fieldset{border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px 14px;margin:0 0 14px}
legend{padding:0 6px;color:var(--verde-scuro);font-size:11.5px;font-weight:700;
    text-transform:uppercase;letter-spacing:.5px}
.rows{display:grid;grid-template-columns:repeat(4,1fr);gap:10px 12px}
.rows label,.full{display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:var(--muted);font-weight:600}
.rows label input,.rows label select,.full textarea{font-weight:400;color:var(--txt)}
.rows .f2{grid-column:span 2}
.full{margin-top:10px}
.checks{display:flex;flex-wrap:wrap;gap:8px 18px;margin-top:4px}
.chk{display:flex;align-items:center;gap:6px;font-size:13px;color:var(--txt);font-weight:500}
.chk input{width:16px;height:16px}

/* --------------------------------------------------------- errore db ---- */
body.plain{display:flex;align-items:center;justify-content:center;min-height:100vh}
.errbox{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:26px 30px;max-width:620px}
.errbox h1{margin-top:0;font-size:19px;color:var(--err)}
.errbox pre{background:#f6f8f6;border:1px solid var(--line);border-radius:var(--radius);padding:10px;overflow:auto;font-size:12px}
code{background:#eef2ef;border-radius:3px;padding:1px 5px;font-size:12.5px}

/* ------------------------------------------------------- responsive ----- */
/* Con la scheda a tutto schermo i campi possono stare più larghi. */
@media (min-width:1500px){.rows{grid-template-columns:repeat(6,1fr)}.rows .f2{grid-column:span 2}}
@media (max-width:1100px){.rows{grid-template-columns:repeat(2,1fr)}}
@media (max-width:820px){
    .sidebar{transform:translateX(-100%);transition:transform .2s ease}
    body.nav-open .sidebar{transform:none}
    body.nav-open .backdrop{display:block;position:fixed;inset:0;background:rgba(10,25,15,.45);z-index:35}
    .main{margin-left:0;padding:8px 14px 30px}
    .menu-toggle{display:block}
    .topbar{padding-left:56px}
    .rows{grid-template-columns:1fr}
    .rows .f2{grid-column:span 1}
    input[type=search]{min-width:0;width:100%}
    .filtri{width:100%}
}

/* ------------------------------------------------------- cruscotto ------ */
.crusc-testa{display:grid;grid-template-columns:minmax(240px,1fr) 3fr;gap:16px;margin-bottom:16px}
.hero{
    background:var(--verde-scuro);color:#fff;border-radius:var(--radius);
    padding:18px 20px;display:flex;flex-direction:column;justify-content:center;gap:2px;
}
.hero-etichetta{font-size:12.5px;color:rgba(255,255,255,.85)}
.hero-numero{font-size:52px;line-height:1.05;font-weight:600;font-variant-numeric:tabular-nums}
.hero-nota{font-size:12px;color:rgba(255,255,255,.8);margin-top:4px}

.tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
.tile{
    background:var(--card);border:1px solid var(--line);border-radius:var(--radius);
    padding:14px 16px;display:flex;flex-direction:column;gap:2px;
}
.tile-lbl{font-size:12.5px;color:var(--muted)}
.tile-val{font-size:28px;font-weight:600;color:var(--txt);font-variant-numeric:tabular-nums;line-height:1.15}
.tile-sub{font-size:11.5px;color:var(--muted)}

.crusc-due{display:grid;grid-template-columns:1fr 1fr;gap:16px;align-items:start}

.card-testa{
    display:flex;align-items:center;justify-content:space-between;gap:12px;
    padding:11px 16px;background:var(--verde-med);color:#fff;
}
.card-testa h2{margin:0;font-size:15px;font-weight:600}
.card-testa a,.card-testa .badge-count{color:rgba(255,255,255,.92);font-size:12.5px}
.card-testa a:hover{color:#fff}

.grafico{display:block;max-width:100%;height:auto;margin:4px 0}

.quota{margin:6px 0 10px}
.quota-testa{display:flex;justify-content:space-between;gap:12px;font-size:12.5px;
    color:var(--muted);margin-bottom:6px}
.quota-testa strong{color:var(--txt);font-size:14px}
.quota-traccia{height:14px;border-radius:7px;background:var(--verde-tenue);overflow:hidden}
.quota-riempita{height:100%;background:var(--verde-med);border-radius:7px}

.avvisi{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
.avvisi li{
    font-size:13px;padding:9px 12px;border:1px solid var(--line);
    border-left:3px solid var(--verde-chiaro);border-radius:var(--radius);background:#fbfdfb;
}
.avvisi li a{color:var(--txt)}
.avvisi li a:hover{color:var(--verde-scuro)}

.sezioni{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--line-soft)}
.sezione{
    display:flex;flex-direction:column;gap:6px;padding:16px;background:var(--card);
    color:var(--txt);text-decoration:none;
}
.sezione:hover{background:var(--verde-tenue);text-decoration:none}
.sezione-tit{font-weight:600;color:var(--verde-scuro)}
.sezione-txt{font-size:12.5px;color:var(--muted);flex:1;line-height:1.5}
.sezione-dati{display:flex;align-items:baseline;gap:8px;font-size:12.5px}
.sezione-dati strong{font-size:15px}
.sezione-dati span{color:var(--muted)}

.codice{
    background:#f6f8f6;border:1px solid var(--line);border-radius:var(--radius);
    padding:10px 12px;font-size:11.5px;overflow:auto;white-space:pre-wrap;word-break:break-all;
}

@media (max-width:1200px){
    .crusc-testa{grid-template-columns:1fr}
    .tiles{grid-template-columns:repeat(2,1fr)}
    .crusc-due{grid-template-columns:1fr}
    .sezioni{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:820px){
    .tiles{grid-template-columns:1fr}
    .sezioni{grid-template-columns:1fr}
}

/* Selezione multipla nelle griglie della scheda */
.subgrid-add{align-items:flex-start}
.subgrid-add select[multiple]{flex:1;min-width:0;padding:4px;height:auto}
.subgrid-azioni{display:flex;flex-direction:column;gap:6px;min-width:230px}
.subgrid-azioni .nota{margin:2px 0 0;line-height:1.4}

/* Righe di dettaglio in elenco: pulsanti che aprono e chiudono un blocco */
.tgl{
    display:inline-flex;align-items:center;gap:6px;max-width:100%;
    background:none;border:0;padding:2px 6px 2px 2px;border-radius:var(--radius);
    font:inherit;color:var(--txt);cursor:pointer;text-align:left;
}
.tgl:hover{background:#fff;box-shadow:inset 0 0 0 1px var(--line)}
.tgl-frec{color:var(--verde);font-size:10px;width:10px;flex:0 0 10px;line-height:1}
.tgl-n{font-size:12.5px;color:var(--muted);white-space:nowrap}

/* Nell'elenco con dettagli la zebratura è dichiarata riga per riga: le righe
   nascoste falserebbero il conteggio di nth-child. */
.grid-dett tbody tr:nth-child(even){background:transparent}
.grid-dett tbody tr.pari{background:#fafcfa}
.grid-dett tbody tr:hover,.grid-dett tbody tr.pari:hover{background:var(--verde-tenue)}
.grid-dett tbody tr.dett,.grid-dett tbody tr.dett:hover{background:#f2f7f3}
.grid-dett tbody tr.dett>td{padding:0;border-top:0}

.dett-box{padding:10px 14px 14px 40px}
.dett-tit{font-size:12.5px;color:var(--muted);margin-bottom:8px}

table.mini{width:100%;border-collapse:collapse;background:var(--card);
           border:1px solid var(--line-soft);border-radius:var(--radius)}
table.mini th{
    text-align:left;font-size:11.5px;font-weight:600;color:var(--verde-scuro);
    text-transform:uppercase;letter-spacing:.03em;
    padding:6px 10px;border-bottom:1px solid var(--line-soft);background:#f6faf7;
}
table.mini td{padding:6px 10px;border-bottom:1px solid var(--line-soft);vertical-align:middle}
table.mini tbody:last-child tr:last-child td{border-bottom:0}
table.mini tr.gruppo td{background:#eef5f0;padding:5px 10px}
table.mini tr.gruppo .tag-tipo{font-weight:600;font-size:12.5px}
table.mini tr.gruppo .tgl-n{margin-left:8px}
table.mini .c{text-align:center}

.sez-blocco{border-left:2px solid var(--line);padding-left:10px;margin-bottom:6px}
.sez-medici{display:flex;flex-wrap:wrap;gap:8px;padding:6px 0 8px 22px;font-size:13px}
/* display esplicito batte la regola del browser: va ridichiarato. */
[hidden]{display:none !important}
.chip{
    display:inline-flex;align-items:center;gap:6px;background:var(--card);
    border:1px solid var(--line-soft);border-radius:14px;padding:2px 10px 2px 2px;
}
.chip small{color:var(--muted);font-size:11.5px}

/* Logo dell'ente: barra laterale, pagina di accesso e anteprima in scheda */
.brand-logo{
    width:38px;height:38px;flex:0 0 38px;object-fit:contain;
    background:#fff;border-radius:var(--radius);padding:3px;
}
.login-brand .brand-logo{width:44px;height:44px;flex:0 0 44px}

.logo-riga{display:flex;gap:18px;align-items:flex-start;flex-wrap:wrap}
.logo-anteprima{
    width:180px;min-height:96px;flex:0 0 180px;display:flex;align-items:center;
    justify-content:center;border:1px dashed var(--line);border-radius:var(--radius);
    background:#f6faf7;padding:8px;
}
.logo-anteprima img{max-width:100%;max-height:110px;object-fit:contain}
.logo-comandi{flex:1;min-width:280px;display:flex;flex-direction:column;gap:8px}
.logo-comandi .nota{margin:0}

.rows label textarea{font-weight:400;color:var(--txt);font-family:inherit;font-size:13px}
.rows label .nota{font-weight:400;margin:0;line-height:1.35}
.rows .f4{grid-column:span 4}
@media (max-width:1100px){.rows .f4{grid-column:span 2}}
@media (max-width:700px){.rows .f4{grid-column:span 1}}
