/* THEME: layout migliorato - colori Noi San Paolo (blu #0875CE, arancio #F5A623) */
:root{color-scheme:light;--bg:#f2f5f9;--card:#fff;--ink:#1c2b3a;--mute:#64748b;--line:#e3e9f0;--pri:#0875CE;--pri2:#0661ab;--navy:#0b3b66;--org:#F5A623;--org2:#e08e0b;--rad:10px;--sh:0 1px 2px rgba(16,40,70,.06),0 2px 8px rgba(16,40,70,.06)}
body{background:var(--bg);color:var(--ink);font-family:"Segoe UI",system-ui,-apple-system,Roboto,sans-serif;-webkit-font-smoothing:antialiased}
/* menu laterale */
.side{background:linear-gradient(180deg,#0a7fdb 0%,#0768b5 55%,#055596 100%)!important;width:236px;padding:14px 12px;box-shadow:2px 0 12px rgba(8,50,95,.18);scrollbar-width:thin;scrollbar-color:#ffffff55 transparent}
.side .brand{padding:6px 6px 16px;margin-bottom:6px;border-bottom:1px solid #ffffff30}
.side a,.side details.nv summary{border-radius:8px;transition:background .15s}
.side details.nv>summary{padding:10px 12px;margin-bottom:2px;font-weight:600;letter-spacing:.01em}
.side details.nv[open]>summary{background:#ffffff1c}
.side details.nv>a{margin:1px 0 1px 10px;padding:7px 10px 7px 14px;border-left:2px solid #ffffff38;border-radius:0 8px 8px 0;opacity:.95}
.side details.nv>a:hover{border-left-color:#fff;background:#ffffff22!important}
.side a.on{background:var(--org)!important;color:#fff!important;font-weight:600;box-shadow:0 2px 6px rgba(0,0,0,.2)}
.side details.nv>a.on{border-left-color:#fff}
.side .who{margin-top:16px;padding:12px 6px 4px;font-size:11.5px;line-height:1.7}
.side .who a{display:inline-block;padding:2px 0;color:#fff!important;text-decoration:underline;text-underline-offset:2px;background:none!important}
.main{padding:24px 30px 40px;max-width:1480px}
/* titolo pagina */
.ts-title{margin-bottom:16px;padding-bottom:12px;border-bottom:1px solid var(--line);position:relative}
.ts-title::after{content:"";position:absolute;left:0;bottom:-1px;width:64px;height:3px;border-radius:3px;background:var(--org)}
.ts-title h1{font-size:21px;font-weight:700;color:var(--navy);letter-spacing:-.01em}
/* bottoni */
.ts-green,.ts-blue,.ts-red,button.pri,.pri{border-radius:7px!important;padding:8px 16px!important;font-weight:600;box-shadow:0 1px 2px rgba(0,0,0,.12);transition:transform .08s,box-shadow .15s,filter .15s;text-decoration:none;display:inline-block}
.ts-green{background:#2e9e5b!important}.ts-blue,.pri{background:var(--pri)!important;border-color:var(--pri)!important}
.ts-green:hover,.ts-blue:hover,.ts-red:hover,.pri:hover{filter:brightness(1.07);box-shadow:0 3px 8px rgba(0,0,0,.18);transform:translateY(-1px)}
.ts-green:active,.ts-blue:active,.pri:active{transform:none}
button,.btn{border-radius:7px;transition:border-color .15s,background .15s}
button.x,.ts-btns button.x{background:#fff;border:1px solid #cbd5e1;color:#334155}button.x:hover{background:#f1f5f9;border-color:#94a3b8}
.ts-btns{gap:12px}
/* card */
.ts-card,.card{border:0!important;border-radius:var(--rad)!important;box-shadow:var(--sh);background:#fff;overflow:hidden}
.ts-head{background:linear-gradient(90deg,#F5A623,#f7b648)!important;font-size:13px;letter-spacing:.02em;padding:9px 18px;display:flex;align-items:center}
.ts-card form{padding:16px 20px}
.ts-count{background:#ffffff40;color:#fff;font-weight:700;padding:1px 8px;margin-left:8px}
/* campi */
input,select,textarea{border:1px solid #cfd8e3!important;border-radius:6px!important;background:#fff;transition:border-color .15s,box-shadow .15s}
input:not([type=checkbox]):not([type=radio]),select{min-height:32px}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--pri)!important;box-shadow:0 0 0 3px rgba(8,117,206,.18)}
.tsr label,label{color:#475569;font-weight:600}
.ts-grid4,.ts-grid{gap:10px 18px}
input[type=checkbox]{accent-color:var(--pri);width:15px;height:15px}
/* tabelle */
.tbl{overflow:auto;max-height:70vh}
table.tst{border-collapse:separate;border-spacing:0}
table.tst th{position:sticky;top:0;background:#f8fafc;color:var(--org2)!important;border-bottom:2px solid var(--org)!important;padding:9px 10px;font-size:11px;letter-spacing:.04em;text-transform:uppercase;z-index:1}
table.tst td{padding:8px 10px;border-bottom:1px solid #eef2f6;color:#1e293b}
table.tst tr:nth-child(even) td{background:#fafcfe}
table.tst tr.click{transition:background .1s}table.tst tr.click:hover td{background:#e8f2fc!important;cursor:pointer}
table.tst tr.tot td{background:#eef5fc!important;border-top:2px solid var(--pri);font-weight:700}
table.tst td[style*="text-align:right"]{font-variant-numeric:tabular-nums}
.ts-tabs a,.ts-vtabs a{transition:background .15s}.ts-tabs a.on{color:var(--pri);font-weight:600;border-bottom:3px solid var(--org)}
.ts-vtabs{border-radius:8px;overflow:hidden;border-color:var(--line)}.ts-vtabs a:hover{background:#f1f6fb}.ts-vtabs a.on{background:#fff4de;color:var(--navy);border-left:3px solid var(--org)}
.ts-note{border-radius:8px}
/* finestre */
.modal-bg{background:rgba(11,59,102,.45);backdrop-filter:blur(2px);padding:5vh 12px}
.modal{border-radius:12px;box-shadow:0 20px 50px rgba(8,40,80,.35);padding:22px 24px;border-top:4px solid var(--org)}
.modal h2{color:var(--navy);font-size:17px;padding-bottom:10px;border-bottom:1px solid var(--line)}
.toast{border-radius:8px;box-shadow:0 6px 20px rgba(0,0,0,.25)}
/* scrollbar */
*{scrollbar-width:thin;scrollbar-color:#b6c4d4 transparent}
::-webkit-scrollbar{width:9px;height:9px}::-webkit-scrollbar-thumb{background:#b6c4d4;border-radius:6px}
/* login */
.login{max-width:400px}.login.card,.login .card{padding:26px;box-shadow:0 10px 30px rgba(8,50,95,.15);border-top:4px solid var(--org)!important}
a:focus-visible,button:focus-visible{outline:2px solid var(--org);outline-offset:2px}
/* mobile */
@media(max-width:900px){.side{width:100%;height:auto;position:static;flex-direction:column;box-shadow:none}.main{padding:16px 14px 32px}.ts-title{flex-wrap:wrap}.ts-grid4,.ts-grid{grid-template-columns:1fr}}
@media print{.ts-card,.card{box-shadow:none}.ts-head{background:#fff!important;color:#000;border-bottom:2px solid #000}table.tst th{position:static}}
