
/* Layout: sidebar indaco a sinistra (in alto su mobile), area di lavoro chiara con Gantt a righe fisse e colonna etichette ancorata */
:root{
  --bg:#f5f5fb; --surface:#ffffff; --surface-2:#f0f0f8; --line:#e2e1ef; --grid:rgba(49,46,129,.07);
  --ink:#1b1840; --muted:#6a6790; --faint:#9b98bd;
  --side-a:#1e1b4b; --side-b:#312e81; --side-ink:#e0e7ff; --side-mut:#a5b4fc;
  --accent:#f97316; --accent-soft:#ffedd5; --accent-ink:#9a3412;
  --p1:#4338ca; --p1-ink:#ffffff; --p2:#7c78dc; --p2-ink:#ffffff; --p3:#cfd1e6; --p3-ink:#2b2858;
  --done:#e4e3ef; --done-ink:#8b88ab;
  --wk:rgba(67,56,202,.05); --hol:rgba(249,115,22,.08);
  --sick-a:#fde2e7; --sick-b:#fbcfd8; --sick-ink:#9f1239;
  --off-a:#e3e7f1; --off-b:#d5dbe9; --off-ink:#3f4a66;
  --ok:#0f8a69; --ok-soft:#d8f3ea; --warn:#b45309; --warn-soft:#fef0d6; --bad:#dc2626; --bad-soft:#fde4e4;
  --l0:#eef0f7; --l1:#dbe4ff; --l2:#a9b8ff; --l3:#4f46e5; --l3-ink:#ffffff;
  --shadow:0 1px 2px rgba(27,24,64,.06),0 8px 24px -12px rgba(27,24,64,.18);
  --font:'Plus Jakarta Sans',system-ui,-apple-system,'Segoe UI',sans-serif;
  --mono:'JetBrains Mono',ui-monospace,'SFMono-Regular',Menlo,monospace;
  --lab:236px;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#0e0d22; --surface:#16143a; --surface-2:#1d1a49; --line:#2b2862; --grid:rgba(165,180,252,.07);
  --ink:#ecebff; --muted:#a6a3d4; --faint:#6f6ca3;
  --side-a:#0a0920; --side-b:#1e1b4b; --side-ink:#e0e7ff; --side-mut:#8b93e6;
  --accent:#fb8a3c; --accent-soft:#3b2112; --accent-ink:#fdba8c;
  --p1:#6366f1; --p1-ink:#ffffff; --p2:#4b48a8; --p2-ink:#eceaff; --p3:#34325f; --p3-ink:#d9d8f5;
  --done:#24224d; --done-ink:#7c79b0;
  --wk:rgba(165,180,252,.045); --hol:rgba(251,138,60,.08);
  --sick-a:#3b1424; --sick-b:#4a1a2e; --sick-ink:#fda4b8;
  --off-a:#232744; --off-b:#2b3052; --off-ink:#b6bedc;
  --ok:#34d3a0; --ok-soft:#0f3a30; --warn:#fbbf5a; --warn-soft:#3a2a0e; --bad:#f87171; --bad-soft:#3d1518;
  --l0:#1b1944; --l1:#272566; --l2:#3d3a9a; --l3:#7c7cf6; --l3-ink:#0e0d22;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 10px 30px -14px rgba(0,0,0,.6);
  color-scheme:dark;
}}
:root[data-theme="dark"]{
  --bg:#0e0d22; --surface:#16143a; --surface-2:#1d1a49; --line:#2b2862; --grid:rgba(165,180,252,.07);
  --ink:#ecebff; --muted:#a6a3d4; --faint:#6f6ca3;
  --side-a:#0a0920; --side-b:#1e1b4b; --side-ink:#e0e7ff; --side-mut:#8b93e6;
  --accent:#fb8a3c; --accent-soft:#3b2112; --accent-ink:#fdba8c;
  --p1:#6366f1; --p1-ink:#ffffff; --p2:#4b48a8; --p2-ink:#eceaff; --p3:#34325f; --p3-ink:#d9d8f5;
  --done:#24224d; --done-ink:#7c79b0;
  --wk:rgba(165,180,252,.045); --hol:rgba(251,138,60,.08);
  --sick-a:#3b1424; --sick-b:#4a1a2e; --sick-ink:#fda4b8;
  --off-a:#232744; --off-b:#2b3052; --off-ink:#b6bedc;
  --ok:#34d3a0; --ok-soft:#0f3a30; --warn:#fbbf5a; --warn-soft:#3a2a0e; --bad:#f87171; --bad-soft:#3d1518;
  --l0:#1b1944; --l1:#272566; --l2:#3d3a9a; --l3:#7c7cf6; --l3-ink:#0e0d22;
  --shadow:0 1px 2px rgba(0,0,0,.3),0 10px 30px -14px rgba(0,0,0,.6);
  color-scheme:dark;
}
*{box-sizing:border-box}
body{background:var(--bg);color:var(--ink);font:14px/1.45 var(--font);margin:0}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.num{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:.92em}

.shell{display:grid;grid-template-columns:252px minmax(0,1fr);min-height:100vh}
.side{background:linear-gradient(180deg,var(--side-a),var(--side-b));color:var(--side-ink);padding:22px 14px;position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:22px}
.brand{display:flex;align-items:center;gap:10px;padding:0 6px}
.brand svg{flex:none}
.brand b{font-weight:800;font-size:16px;letter-spacing:-.01em}
.brand small{display:block;color:var(--side-mut);font-size:11px;letter-spacing:.06em;text-transform:uppercase}
.nav{display:flex;flex-direction:column;gap:3px}
.nav button{display:flex;align-items:center;gap:10px;border:0;background:transparent;color:var(--side-ink);padding:9px 10px;border-radius:9px;font-weight:600;text-align:left;opacity:.82}
.nav button:hover{background:rgba(255,255,255,.07);opacity:1}
.nav button[aria-current="true"]{background:rgba(255,255,255,.12);opacity:1;box-shadow:inset 3px 0 0 var(--accent)}
.nav .ct{margin-left:auto;font-size:11px;background:rgba(255,255,255,.12);border-radius:20px;padding:1px 7px}
.nav .ct.bad{background:var(--accent);color:#fff}
.legend{margin-top:auto;display:grid;gap:7px;font-size:12px;color:var(--side-mut);padding:0 6px}
.legend h4{margin:0 0 2px;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--side-mut);font-weight:700}
.legend span{display:flex;align-items:center;gap:8px}
.legend i{width:22px;height:10px;border-radius:3px;display:inline-block}

main{padding-block:22px 48px;padding-inline:clamp(16px,3vw,34px);min-width:0;display:flex;flex-direction:column;gap:18px}
.top{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px}
.top .ttl{display:flex;flex-direction:column;min-width:0;margin-right:auto}
.top .eyebrow{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:700}
.top h1{margin:0;font-size:clamp(20px,2.4vw,26px);font-weight:800;letter-spacing:-.02em;text-wrap:balance}
.top h1 button{border:0;background:none;padding:0;font-weight:inherit;text-align:left}
.top h1 button:hover{color:var(--p1)}
.acts{display:flex;flex-wrap:wrap;gap:8px}
.btn{vertical-align:middle;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:10px;padding:8px 13px;font-weight:650;display:inline-flex;align-items:center;gap:7px;white-space:nowrap}
.btn:hover{border-color:var(--faint)}
.btn:disabled{opacity:.5;cursor:default}
.btn.pri{background:var(--p1);border-color:var(--p1);color:var(--p1-ink)}
.btn.hot{background:var(--accent);border-color:var(--accent);color:#fff}
.btn.danger{color:var(--bad);border-color:var(--bad)}
.btn.danger.armed{background:var(--bad);color:#fff}
.btn.sm{padding:5px 9px;font-size:12.5px;border-radius:8px}
.btn svg{flex:none}
.chip-save{font-size:12px;color:var(--muted);display:inline-flex;align-items:center;gap:6px;padding:4px 10px;border-radius:20px;background:var(--surface-2)}
.chip-save i{width:7px;height:7px;border-radius:50%;background:var(--ok)}
.chip-save.pending i,.chip-save.saving i{background:var(--warn)}
.chip-save.error i,.chip-save.ro i{background:var(--bad)}

.strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.kpi{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:11px 14px;display:flex;flex-direction:column;gap:2px}
.kpi span{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:700}
.kpi b{font-size:19px;font-weight:800;letter-spacing:-.01em}
.kpi b.bad{color:var(--bad)}

.example{display:flex;flex-wrap:wrap;align-items:center;gap:10px;background:var(--accent-soft);color:var(--accent-ink);border-radius:12px;padding:10px 14px;font-size:13px}
.example p{margin:0;flex:1 1 260px}

.alerts{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.alerts summary{cursor:pointer;padding:10px 14px;font-weight:700;display:flex;align-items:center;gap:8px;list-style:none}
.alerts summary::-webkit-details-marker{display:none}
.alerts summary .pill{margin-left:auto}
.alerts ul{list-style:none;margin:0;padding:0 8px 8px;display:grid;gap:4px}
.alerts li button{width:100%;text-align:left;border:0;background:var(--surface-2);border-radius:8px;padding:7px 10px;display:flex;gap:9px;align-items:baseline;font-size:13px}
.alerts li button:hover{background:var(--l1)}
.alerts li b{font-weight:700}
.sev{width:8px;height:8px;border-radius:50%;flex:none;transform:translateY(-1px)}
.sev.bad{background:var(--bad)} .sev.warn{background:var(--warn)}
.pill{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:700;border-radius:20px;padding:2px 9px;background:var(--surface-2);color:var(--muted)}
.pill.bad{background:var(--bad-soft);color:var(--bad)} .pill.warn{background:var(--warn-soft);color:var(--warn)} .pill.ok{background:var(--ok-soft);color:var(--ok)} .pill.hot{background:var(--accent-soft);color:var(--accent-ink)}

.toolbar{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.seg{display:inline-flex;background:var(--surface-2);border-radius:10px;padding:3px;gap:2px}
.seg button{border:0;background:transparent;border-radius:8px;padding:6px 11px;font-weight:650;font-size:13px;color:var(--muted)}
.seg button[aria-pressed="true"]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow)}
.toolbar .sp{flex:1}

/* Gantt */
.gwrap{background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:auto;max-height:calc(100vh - 290px);min-height:320px;box-shadow:var(--shadow)}
.gt{position:relative;min-width:100%}
.gh{position:sticky;top:0;z-index:5;display:flex;background:var(--surface);border-bottom:1px solid var(--line)}
.gh .glab{display:flex;align-items:flex-end;padding:8px 12px;font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted);font-weight:700;z-index:6}
.glab{position:sticky;left:0;flex:none;width:var(--lab);background:var(--surface);border-right:1px solid var(--line);z-index:3}
.scale{flex:none}
.mrow,.drow{display:flex}
.mrow span{flex:none;font-size:11.5px;font-weight:700;color:var(--ink);padding:6px 6px 2px;border-left:1px solid var(--line);white-space:nowrap;overflow:hidden;text-transform:capitalize}
.drow span{flex:none;text-align:center;font-size:10.5px;color:var(--muted);padding:2px 0 6px;font-family:var(--mono);line-height:1.15}
.drow span i{display:block;font-style:normal;font-family:var(--font);font-size:9.5px;color:var(--faint)}
.drow span.we{color:var(--faint);background:var(--wk)}
.drow span.hol{color:var(--accent);background:var(--hol)}
.drow span.td{color:#fff;background:var(--accent);border-radius:6px}
.drow span.td i{color:#fff}
.gb{position:relative}
.gbg{position:absolute;top:0;bottom:0;left:var(--lab);pointer-events:none;z-index:0;
  background-image:repeating-linear-gradient(90deg,transparent 0,transparent calc(var(--dw)*5),var(--wk) calc(var(--dw)*5),var(--wk) calc(var(--dw)*7)),
  repeating-linear-gradient(90deg,var(--grid) 0,var(--grid) 1px,transparent 1px,transparent var(--dw))}
.gbg .holc{position:absolute;top:0;bottom:0;background:var(--hol)}
.gbg .tline{position:absolute;top:0;bottom:0;width:2px;background:var(--accent);opacity:.75}
.grow{display:flex;position:relative;z-index:1;border-bottom:1px solid var(--line)}
.grow:last-child{border-bottom:0}
.grow .glab{padding:6px 12px;display:flex;flex-direction:column;justify-content:center;min-width:0;cursor:pointer}
.grow .glab:hover b{color:var(--p1)}
.grow .glab b{font-weight:700;font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.grow .glab small{font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.grow .glab{overflow:hidden}
.glab,.glab *{scrollbar-width:none}
.glab::-webkit-scrollbar,.glab *::-webkit-scrollbar{display:none}
.grow .glab .ph{display:grid;grid-template-columns:26px minmax(0,1fr);align-items:center;gap:9px;min-width:0}
.grow .glab .pt{min-width:0;display:flex;flex-direction:column;gap:2px;overflow:hidden}
.grow .glab .pt small{display:flex;align-items:center;gap:6px;min-width:0}
.grow .glab .pt .role{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.ldp{flex:none;font-size:10.5px;padding:0 6px;line-height:16px}
.gtl{position:relative;flex:none;height:48px}
.bar{position:absolute;top:10px;height:28px;border-radius:7px;border:0;background:var(--p2);color:var(--p2-ink);display:flex;align-items:center;gap:5px;padding:0 6px;overflow:hidden;font:650 12px/1 var(--font);white-space:nowrap;text-align:left}
.bar:hover{filter:brightness(1.07)}
.bar.p1{background:var(--p1);color:var(--p1-ink)}
.bar.p3{background:var(--p3);color:var(--p3-ink)}
.bar.urg{background:var(--accent);color:#fff}
.bar.prog{background-image:linear-gradient(90deg,rgba(255,255,255,.22) 0,rgba(255,255,255,.22) var(--pg),transparent var(--pg))}
.bar.done{background:var(--done);color:var(--done-ink)}
.bar.late{box-shadow:inset -4px 0 0 var(--bad)}
.bar.cf{outline:2px solid var(--bad);outline-offset:1px}
.bar .bn{overflow:hidden;text-overflow:ellipsis}
.bar svg{flex:none}
.av{display:inline-grid;place-items:center;width:20px;height:20px;border-radius:50%;background:var(--c);color:#fff;font:700 9.5px/1 var(--font);flex:none;font-style:normal;box-shadow:0 0 0 1.5px rgba(255,255,255,.55)}
.av.lg{width:34px;height:34px;font-size:12.5px;box-shadow:none}
.av.md{width:26px;height:26px;font-size:10.5px;box-shadow:none}
.absb{position:absolute;top:10px;height:28px;border-radius:7px;font:600 11px/28px var(--font);padding:0 7px;overflow:hidden;white-space:nowrap;
  background:repeating-linear-gradient(135deg,var(--off-a) 0 6px,var(--off-b) 6px 12px);color:var(--off-ink)}
.absb.sick{background:repeating-linear-gradient(135deg,var(--sick-a) 0 6px,var(--sick-b) 6px 12px);color:var(--sick-ink)}
.dl{position:absolute;top:6px;bottom:6px;width:2px;background:var(--bad);border-radius:2px}
.dl::before{content:"";position:absolute;top:-3px;left:-3px;width:8px;height:8px;background:var(--bad);transform:rotate(45deg);border-radius:1px}
.nop{position:absolute;top:13px;font-size:11.5px}
.gempty{padding:40px 20px;text-align:center;color:var(--muted)}

/* Carichi */
.panel{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px 18px;box-shadow:var(--shadow)}
.panel h2{margin:0 0 4px;font-size:16px;font-weight:800;letter-spacing:-.01em}
.panel .sub{margin:0 0 14px;color:var(--muted);font-size:13px;max-width:70ch}
.today3{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.today3 h3{margin:0 0 8px;font-size:11px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.plist{display:flex;flex-wrap:wrap;gap:6px}
.pchip{display:inline-flex;align-items:center;gap:6px;background:var(--surface-2);border-radius:20px;padding:3px 10px 3px 3px;font-size:12.5px;font-weight:600}
.pchip small{color:var(--muted);font-weight:500}
.tblw{overflow-x:auto}
table.load{border-collapse:separate;border-spacing:4px;width:100%;min-width:680px}
table.load th{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:700;text-align:left;padding:4px 6px}
table.load th.w{text-align:center}
table.load td.n{white-space:nowrap;padding-right:10px}
table.load td.n div{display:flex;align-items:center;gap:8px;font-weight:700}
table.load td.n small{display:block;color:var(--muted);font-weight:500;font-size:11.5px}
.ld{border-radius:8px;padding:6px 6px;text-align:center;background:var(--l0);min-width:64px}
.ld b{display:block;font-family:var(--mono);font-size:13px}
.ld span{font-size:10.5px;color:var(--muted)}
.ld.l1{background:var(--l1)} .ld.l2{background:var(--l2)} .ld.l3{background:var(--l3);color:var(--l3-ink)} .ld.l3 span{color:var(--l3-ink);opacity:.8}
.ld.ab{background:repeating-linear-gradient(135deg,var(--off-a) 0 6px,var(--off-b) 6px 12px);color:var(--off-ink)}
.ld.ab.sick{background:repeating-linear-gradient(135deg,var(--sick-a) 0 6px,var(--sick-b) 6px 12px);color:var(--sick-ink)}
.lscale{display:flex;flex-wrap:wrap;gap:12px;font-size:12px;color:var(--muted);margin-top:10px}
.lscale span{display:inline-flex;gap:6px;align-items:center}
.lscale i{width:16px;height:10px;border-radius:3px;display:inline-block}

/* Carico giornaliero */
.lhd{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start;justify-content:space-between}
.lhd>div:first-child{flex:1 1 320px;min-width:0}
.lctl{display:flex;flex-wrap:wrap;gap:8px}
table.day{border-collapse:separate;border-spacing:0;min-width:100%}
table.day th,table.day td{padding:2px 1px}
table.day th.nm{position:sticky;left:0;z-index:2;background:var(--surface);text-align:left;padding:3px 12px 3px 0;min-width:200px;max-width:230px;font-weight:700;font-size:12.5px}
table.day thead th.nm{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);vertical-align:bottom}
table.day th.nm div{display:flex;align-items:center;gap:8px;min-width:0}
table.day th.nm span{min-width:0;overflow:hidden}
table.day th.nm small{display:block;color:var(--muted);font-weight:500;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
table.day th.wk{font-size:11px;font-weight:700;color:var(--ink);text-align:left;padding:4px 6px;border-left:2px solid var(--line)}
table.day th.dh{font-size:10px;color:var(--faint);font-weight:600;text-align:center;min-width:44px;line-height:1.1;padding-bottom:6px}
table.day th.dh b{display:block;font-family:var(--mono);font-size:12px;color:var(--muted)}
table.day th.dh.td{color:var(--accent)} table.day th.dh.td b{color:#fff;background:var(--accent);border-radius:6px;margin:1px 6px 0}
table.day .mo{border-left:2px solid var(--line)}
table.day th.tot,table.day td.tot{text-align:center;padding:2px 8px;font-size:11px;color:var(--muted);white-space:nowrap}
table.day tbody th.nm,table.day tbody td{border-top:1px solid var(--line)}
.dc{display:grid;place-items:center;width:100%;min-width:42px;height:28px;border-radius:5px;border:0;font:700 10px/1 var(--mono);padding:0;overflow:hidden;white-space:nowrap}
button.dc{cursor:pointer}
button.dc:hover{filter:brightness(1.1)}
.dc.p1{background:var(--p1);color:var(--p1-ink)} .dc.p2{background:var(--p2);color:var(--p2-ink)} .dc.p3{background:var(--p3);color:var(--p3-ink)}
.dc.urg{background:var(--accent);color:#fff}
.dc.fr{background:var(--l0)}
.dc.ab{background:repeating-linear-gradient(135deg,var(--off-a) 0 5px,var(--off-b) 5px 10px);color:var(--off-ink)}
.dc.ab.sick{background:repeating-linear-gradient(135deg,var(--sick-a) 0 5px,var(--sick-b) 5px 10px);color:var(--sick-ink)}
table.day tfoot th.nm{font-size:11.5px;color:var(--muted);border-top:2px solid var(--line)}
table.day tfoot td{border-top:2px solid var(--line);text-align:center}
.fcount{display:inline-block;min-width:26px;font:700 12px var(--mono);color:var(--ok);padding:3px 0}
.fcount.zero{color:var(--bad)}
@media (max-width:520px){table.day th.nm{min-width:140px}table.day th.nm small{display:none}}

/* Persone */
.pgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(270px,1fr));gap:14px}
.pcard{background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:16px;display:flex;flex-direction:column;gap:10px}
.pcard .hd{display:flex;gap:11px;align-items:center}
.pcard .hd b{display:block;font-size:15px;font-weight:800}
.pcard .hd small{color:var(--muted);font-size:12.5px}
.tags{display:flex;flex-wrap:wrap;gap:5px}
.tag{font-size:11.5px;font-weight:650;background:var(--l1);color:var(--ink);border-radius:6px;padding:2px 8px}
.tag.no{background:var(--bad-soft);color:var(--bad)}
.pcard .rowl{font-size:12.5px;color:var(--muted);display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.meter{height:6px;border-radius:6px;background:var(--l0);overflow:hidden}
.meter i{display:block;height:100%;background:var(--p1);border-radius:6px}
.abl{display:grid;gap:5px;margin:0;padding:0;list-style:none}
.abl li{display:flex;align-items:center;gap:8px;font-size:12.5px;background:var(--surface-2);border-radius:8px;padding:5px 6px 5px 10px}
.abl li .grow2{flex:1;min-width:0}
.pcard .ft{display:flex;gap:6px;margin-top:auto;flex-wrap:wrap}
.addcard{border:1.5px dashed var(--line);background:transparent;border-radius:14px;min-height:150px;display:grid;place-items:center;color:var(--muted);font-weight:700}
.addcard:hover{border-color:var(--p1);color:var(--p1)}

/* Registro */
.log{display:grid;gap:10px;list-style:none;margin:0;padding:0}
.log li{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:grid;gap:6px}
.log .lh{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.log .lh time{font-size:12px;color:var(--muted)}
.log .lh b{font-weight:700}
.chg{margin:0;padding:0;list-style:none;display:grid;gap:3px}
.chg li{border:0;padding:0;background:none;font-size:12.5px;display:block;color:var(--muted)}
.chg li b{color:var(--ink);font-weight:650}
.chg li.bad b{color:var(--bad)}

/* Guida */
.guide{display:grid;gap:16px;max-width:880px}
.guide .eyebrow{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-weight:800}
.ghero h2{font-size:22px;margin-top:2px}
.ghero .sub{margin:0}
.guide .sub{max-width:72ch}
.steps{list-style:none;margin:0;padding:0;counter-reset:st;display:grid;gap:4px}
.steps>li{counter-increment:st;display:grid;grid-template-columns:34px minmax(0,1fr);gap:14px;padding:12px 0;border-top:1px solid var(--line)}
.steps>li:first-child{border-top:0}
.steps>li::before{content:counter(st);width:30px;height:30px;border-radius:50%;background:var(--p1);color:var(--p1-ink);display:grid;place-items:center;font:700 13px var(--mono)}
.steps h3{margin:3px 0 4px;font-size:14.5px;font-weight:750}
.stext{color:var(--muted);font-size:13.5px;line-height:1.55}
.stext b{color:var(--ink)}
.stext ul{margin:6px 0;padding-left:18px;display:grid;gap:3px}
.sact{margin-top:8px}
.caps{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.caps>div{background:var(--surface-2);border-radius:12px;padding:12px 16px}
.caps h3{margin:0 0 6px;font-size:11.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.caps ul{margin:0;padding-left:18px;display:grid;gap:5px;font-size:13.5px}
.rules{margin:0;padding-left:20px;display:grid;gap:8px;font-size:13.5px;color:var(--muted)}
.rules b{color:var(--ink)}
.wlist{display:grid;gap:8px}
.wrow{display:grid;grid-template-columns:150px minmax(0,1fr);gap:12px;align-items:baseline}
.wrow p{margin:0;font-size:13.5px;color:var(--muted)}
.wrow .pill{justify-self:start}
@media (max-width:520px){.wrow{grid-template-columns:minmax(0,1fr);gap:4px}}

/* Commesse */
.jobs{display:grid;gap:10px}
.jhead{display:flex;flex-wrap:wrap;align-items:center;gap:8px}
.jhead h2{margin:0 4px 0 0;font-size:16px;font-weight:800;letter-spacing:-.01em}
.jhead .sp{flex:1}
.pill.prev{background:var(--l1);color:var(--p1)}
.jgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:10px}
.jcard{position:relative;background:var(--surface);border:1px solid var(--line);border-radius:12px;display:flex;flex-direction:column;overflow:hidden;min-width:0}
.jcard::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;background:var(--jc)}
.jcard.sel{border-color:var(--jc);box-shadow:0 0 0 2px var(--jc)}
.jmain{border:0;background:none;color:inherit;text-align:left;padding:11px 13px 8px 17px;display:grid;gap:5px;min-width:0}
.jmain:hover .jtop b{color:var(--p1)}
.jtop{display:flex;align-items:center;gap:8px;min-width:0}
.jtop b{font-weight:750;font-size:13.5px;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.jmain small{color:var(--muted);font-size:12px}
.jdates{font-size:12px;font-family:var(--mono);font-variant-numeric:tabular-nums}
.jdue{color:var(--muted)} .jlate{color:var(--bad);font-weight:700}
.jcard .meter i{background:var(--jc)}
.jfoot{display:flex;flex-wrap:wrap;gap:4px 12px;font-size:11.5px;color:var(--muted)}
.jbad{color:var(--bad);font-weight:700}
.jact,.jact0{display:flex;flex-wrap:wrap;gap:6px}
.jact{padding:2px 13px 11px 17px}
.jdot{width:10px;height:10px;border-radius:50%;background:var(--jc);flex:none;display:inline-block}
.jempty{border:1.5px dashed var(--line);border-radius:12px;padding:16px;color:var(--muted);font-size:13.5px}
.grow.jrow{background:var(--surface-2)}
.grow.jrow .glab{flex-direction:row;align-items:center;justify-content:flex-start;gap:8px;background:var(--surface-2);padding-block:4px}
.grow.jrow .glab b{font-size:12.5px;font-weight:800;flex:0 1 auto}
.grow.jrow .glab small{flex:none;font-size:11px}
.grow.jrow .gtl{height:32px}
.jspan{position:absolute;top:12px;height:8px;border-radius:4px;background:var(--jc);opacity:.6}
.bar.jc{border-left:4px solid var(--jc)}
.bar.dim{opacity:.25}

/* Anagrafica persone */
.psum{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}
.psum .dkt b small{font-size:12px;color:var(--muted);font-weight:600}
.prate{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px}
.pill.kdip{background:var(--l1);color:var(--p1)}
.pill.kaut{background:var(--accent-soft);color:var(--accent-ink)}
.stars{display:inline-flex;align-items:center;gap:1px;font-size:15px;line-height:1}
.stars i{font-style:normal;color:var(--line)}
.stars i.on{color:#f5a524}
.stars b{font-size:11.5px;color:var(--muted);margin-left:6px;font-weight:600}
.stars.none{font-size:12px;color:var(--muted);font-style:italic}
.sr{color:#d18a0a;font-weight:700}
.kseg,.rate{display:flex;flex-wrap:wrap;gap:6px}
.kopt,.ropt{position:relative}
.kopt input,.ropt input{position:absolute;opacity:0;pointer-events:none}
.kopt span,.ropt span{display:inline-flex;align-items:center;justify-content:center;min-width:36px;border:1px solid var(--line);border-radius:9px;padding:6px 11px;font-weight:650;font-size:13px;cursor:pointer;background:var(--surface)}
.ropt span{font-family:var(--mono)}
.ropt.nr span{font-family:var(--font);font-weight:600;color:var(--muted)}
.kopt input:checked+span,.ropt input:checked+span{background:var(--p1);border-color:var(--p1);color:var(--p1-ink)}
.ropt:not(.nr) input:checked+span::before{content:"★";margin-right:4px;color:#ffd166}
.kopt input:focus-visible+span,.ropt input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}

/* Dashboard */
.dash{display:grid;gap:16px}
.dhead{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:10px}
.dhead .eyebrow{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-weight:800}
.dhead h2{margin:2px 0 0;font-size:22px;font-weight:800;letter-spacing:-.02em}
.dk{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.dkt{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:3px}
.dkt span{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:700}
.dkt b{font-size:24px;font-weight:800;letter-spacing:-.01em}
.dkt.bad b{color:var(--bad)} .dkt.hot b{color:var(--accent)} .dkt.ok b{color:var(--ok)}
.gg{display:grid;gap:2px}
.ggrow{display:grid;grid-template-columns:minmax(150px,300px) minmax(0,1fr);gap:12px;align-items:center;border:0;background:none;color:inherit;text-align:left;padding:5px 4px;border-radius:8px;width:100%}
button.ggrow:hover{background:var(--surface-2)}
.ggh{padding-bottom:2px}
.ggh .ggl{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:700}
.ggl{display:flex;align-items:center;gap:8px;min-width:0}
.ggn{display:flex;flex-direction:column;min-width:0;flex:1}
.ggn b{font-size:13px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ggn small{font-size:11.5px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ggl .pill{flex:none}
.ggt{position:relative;height:26px;min-width:0;background:linear-gradient(var(--grid),var(--grid)) 0 50%/100% 1px no-repeat}
.ggh .ggt{height:18px;background:none}
.ggh .ggt{overflow:hidden}
.arch>*,.dash>*,.dgrid>*,.reg>*{min-width:0}
@media (max-width:640px){.ggrow{grid-template-columns:minmax(0,1fr);gap:4px}.ggh .ggl{display:none}.hbr{grid-template-columns:minmax(90px,40%) minmax(0,1fr) 40px}}
.tk{position:absolute;top:0;font-size:11px;font-weight:700;color:var(--muted);text-transform:capitalize;padding-left:4px;border-left:1px solid var(--line);white-space:nowrap}
.wl{position:absolute;top:0;bottom:0;width:1px;background:var(--grid)}
.ggbar{position:absolute;top:6px;height:14px;border-radius:7px;background:color-mix(in srgb,var(--jc) 28%,transparent);overflow:hidden}
.ggbar i{display:block;height:100%;background:var(--jc);border-radius:7px 0 0 7px}
.ggbar.prev{background:repeating-linear-gradient(135deg,color-mix(in srgb,var(--jc) 30%,transparent) 0 5px,color-mix(in srgb,var(--jc) 14%,transparent) 5px 10px)}
.ggdue{position:absolute;top:7px;width:11px;height:11px;margin-left:-5px;background:var(--ink);transform:rotate(45deg);border-radius:2px;box-shadow:0 0 0 2px var(--surface)}
.ggdue.late{background:var(--bad)}
.ggtoday{position:absolute;top:-2px;bottom:-2px;width:2px;background:var(--accent);border-radius:2px}
.dgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:16px;align-items:start}
.dc2 h2{font-size:15px}
.dc2 .sub{margin-bottom:10px}
svg.chart{width:100%;height:auto;display:block}
.cgrid{stroke:var(--line);stroke-width:1}
.cax{fill:var(--muted);font:500 10.5px var(--font)}
.cbn{fill:var(--p2)} .cbh{fill:var(--accent)}
.cb:hover .cbn,.cb:hover .cbh{filter:brightness(1.15)}
.hb{display:grid;gap:6px}
.hbr{display:grid;grid-template-columns:minmax(110px,42%) minmax(0,1fr) 46px;gap:10px;align-items:center;border:0;background:none;color:inherit;text-align:left;padding:3px 4px;border-radius:7px;font-size:12.5px;width:100%}
button.hbr:hover{background:var(--surface-2)}
.hbl{display:flex;align-items:center;gap:7px;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}
.hbl small{color:var(--muted);font-weight:500}
.hbt{height:10px;background:var(--l0);border-radius:5px;overflow:hidden}
.hbt i{display:block;height:100%;border-radius:0 5px 5px 0;background:var(--jc,var(--p2))}
.hbr.nb .hbt i{background:var(--p2)}
.hbt i.hot,.hbr.nb .hbt i.hot{background:var(--accent)}
.hbr b{text-align:right;font-size:12px}
.duel{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.duel button,.wlist2 button{width:100%;border:0;background:var(--surface-2);color:inherit;border-radius:9px;padding:7px 10px;display:flex;align-items:center;gap:10px;text-align:left;font-size:13px}
.duel button:hover,.wlist2 button:hover{background:var(--l1)}
.dd{flex:none;width:52px;font-weight:700}
.dn{flex:1;min-width:0;display:flex;flex-direction:column}
.dn b{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dn small{color:var(--muted);font-size:11.5px;display:flex;align-items:center;gap:5px}
.duel .pill{flex:none}
.wlist2{list-style:none;margin:0;padding:0;display:grid;gap:4px}
.wlist2 button{align-items:flex-start}
.wlist2 .jdot{margin-top:5px}
.okbox{display:flex;align-items:center;gap:8px;background:var(--ok-soft);color:var(--ok);border-radius:10px;padding:10px 12px;font-weight:650;font-size:13px}
.ctip{position:fixed;z-index:80;max-width:280px;background:var(--ink);color:var(--bg);padding:7px 10px;border-radius:8px;font-size:12px;line-height:1.45;white-space:pre-line;pointer-events:none;box-shadow:0 10px 24px -10px rgba(0,0,0,.45)}

/* Selezione commesse nel Gantt */
.jhint{font-size:12px;color:var(--muted)}
.jchips{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.jcl{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:700;margin-right:4px}
.jchips .jcl:last-child{text-transform:none;letter-spacing:0;font-weight:500;font-size:12px;margin-left:6px}
.jchip{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:20px;padding:4px 11px;font-size:12.5px;font-weight:650}
.jchip[aria-pressed="true"]{background:var(--jc,var(--p1));border-color:var(--jc,var(--p1));color:#fff}
.jchip[aria-pressed="true"] .jdot{background:#fff}
.jchip.all[aria-pressed="true"]{background:var(--p1);border-color:var(--p1)}
.selinfo{display:grid;gap:12px}
.selhd{display:flex;flex-wrap:wrap;gap:8px;align-items:center;justify-content:space-between}
.selnames{display:flex;flex-wrap:wrap;gap:8px;align-items:center;font-size:11.5px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:700}
.selj{display:inline-flex;align-items:center;gap:6px;font-size:13px;letter-spacing:0;text-transform:none;color:var(--ink);font-weight:700;background:var(--surface-2);border-radius:20px;padding:3px 10px}
.states{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:8px}
.stt{background:var(--surface-2);border-radius:10px;padding:8px 11px;display:flex;flex-direction:column;gap:1px}
.stt b{font-size:19px;font-weight:800}
.stt span{font-size:11.5px;color:var(--muted)}
.stt.ok b{color:var(--ok)} .stt.hot b{color:var(--accent)} .stt.warn b{color:var(--warn)} .stt.bad b{color:var(--bad)}
.ovbox{border-top:1px solid var(--line);padding-top:4px}
.ovbox .h3{margin-top:12px}
.opairs{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr));gap:10px}
.opair{border:1px solid var(--line);border-radius:12px;padding:10px 12px;display:grid;gap:7px}
.opt{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
.ox{font-size:12px;color:var(--muted)}
.ometa{display:flex;flex-wrap:wrap;gap:4px 16px;font-size:12.5px;color:var(--muted)}
.ometa b{color:var(--ink)}
.avs{display:flex;flex-wrap:wrap;gap:5px}
.gbg .ovl{position:absolute;top:0;bottom:0;background:repeating-linear-gradient(135deg,rgba(249,115,22,.16) 0 4px,rgba(249,115,22,.05) 4px 8px)}

/* Anagrafe */
.reg{display:grid;gap:12px}
.regq{flex:1 1 240px;max-width:360px}
table.regt{border-collapse:collapse;width:100%;min-width:1020px;font-size:13px}
table.regt th{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);text-align:left;padding:7px 8px;border-bottom:1px solid var(--line);font-weight:700}
table.regt td{padding:9px 8px;border-bottom:1px solid var(--line);vertical-align:middle}
table.regt tr:hover td{background:var(--surface-2)}
td.rn{min-width:240px}
.rnw{display:flex;gap:9px;align-items:flex-start}
table.regt td.num{white-space:nowrap}
td.rn .jdot{margin-top:5px}
td.rn b{display:block;font-weight:750}
td.rn small{display:block;color:var(--muted);font-size:12px;max-width:300px}
td.rav{min-width:140px}
td.rav .meter{display:block;margin-bottom:4px}
td.rav .meter i{background:var(--jc)}
td.rav small,td.rpp small{font-size:11.5px;color:var(--muted)}
td.rpp{min-width:170px}
.avs2{display:flex;align-items:center;margin-bottom:3px}
.avs2 .av{margin-right:-3px;box-shadow:0 0 0 2px var(--surface)}
.avs2 .pill{margin-left:9px}
.pnames{font-size:12px;color:var(--muted)}
table.regt td.ra{white-space:nowrap}
.ract{display:flex;gap:6px;justify-content:flex-end;align-items:center}

/* Archivio */
.arch{display:grid;gap:16px;max-width:1000px}
.bkact{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.vh{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}
label.btn{cursor:pointer}
.h3{margin:18px 0 8px;font-size:11.5px;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
table.snap{border-collapse:collapse;width:100%;min-width:520px;font-size:13px}
table.snap th,table.snap td{text-align:left;padding:7px 8px;border-bottom:1px solid var(--line);vertical-align:middle}
table.snap thead th{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
table.snap td.ra{text-align:right;white-space:nowrap}
table.snap td.ra .btn{margin-left:4px}
.box.warnb{background:var(--warn-soft);color:var(--ink)}
.asearch{max-width:420px;margin-bottom:12px}
.alist{display:grid;gap:10px}
.aitem{position:relative;border:1px solid var(--line);border-radius:12px;padding:12px 14px 12px 18px;display:grid;gap:8px;background:var(--surface)}
.aitem::before{content:"";position:absolute;left:0;top:0;bottom:0;width:4px;border-radius:12px 0 0 12px;background:var(--jc)}
.ahead{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.ahead b{font-weight:750;font-size:14.5px}
.muted{color:var(--muted);font-size:12.5px}
.ameta{display:flex;flex-wrap:wrap;gap:4px 18px;font-size:12.5px;color:var(--muted)}
.ameta b{color:var(--ink);font-weight:650}
.aitem details summary{cursor:pointer;font-size:12.5px;font-weight:700;color:var(--p1)}
.aitem details .tblw{margin-top:6px}
.toast{position:fixed;left:50%;bottom:calc(22px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);background:var(--ink);color:var(--bg);padding:10px 16px;border-radius:10px;font-weight:650;font-size:13.5px;z-index:70;box-shadow:0 12px 30px -10px rgba(0,0,0,.4);max-width:calc(100vw - 32px)}

/* Tema */
.thm{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
.thb{border:1px solid var(--line);background:var(--surface-2);border-radius:12px;padding:10px;display:flex;flex-direction:column;align-items:flex-start;gap:3px;text-align:left}
.thb b{font-weight:750;font-size:13.5px}
.thb small{font-size:11.5px;color:var(--muted)}
.thb.on{border-color:var(--p1);box-shadow:0 0 0 2px var(--p1)}
.sw{display:block;width:100%;height:30px;border-radius:7px;margin-bottom:5px;border:1px solid var(--line)}
.sw-light{background:linear-gradient(90deg,#312e81 0 22%,#f5f5fb 22%)}
.sw-dark{background:linear-gradient(90deg,#0a0920 0 22%,#16143a 22%)}
.sw-auto{background:linear-gradient(90deg,#312e81 0 22%,#f5f5fb 22% 61%,#16143a 61%)}
@media (max-width:520px){.thm{grid-template-columns:minmax(0,1fr)}}

/* Assistente AI */
.aiwrap{display:grid;gap:16px;max-width:920px}
.aihero .eyebrow{display:inline-flex;align-items:center;gap:6px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--accent);font-weight:800}
.aihero h2{font-size:21px;margin-top:4px}
.aihero{display:grid;gap:12px}
.aihero .sub{margin:0}
.quick{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:8px}
.qbtn{border:1px solid var(--line);background:var(--surface-2);border-radius:12px;padding:11px 13px;text-align:left;display:flex;flex-direction:column;gap:2px}
.qbtn b{font-weight:750;font-size:13.5px}
.qbtn span{font-size:12px;color:var(--muted)}
.qbtn:hover:not(:disabled){border-color:var(--p1);background:var(--surface)}
.qbtn:disabled{opacity:.55;cursor:default}
.fg textarea.aitxt{font-family:var(--font);font-size:14px;min-height:84px;line-height:1.5}
.aiact{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.aiact .sp{flex:1}
.aihint{font-size:12px;color:var(--muted);max-width:52ch}
.spin{width:16px;height:16px;border-radius:50%;border:2px solid var(--l1);border-top-color:var(--accent);animation:spin .8s linear infinite;flex:none}
@keyframes spin{to{transform:rotate(360deg)}}
#aistatus{font-weight:600;font-size:13.5px}
.box.err{background:var(--bad-soft);color:var(--bad)}
.prop{display:grid;gap:14px}
.prop h2{margin:0}
.prop .lead{margin:0;font-size:15px;font-weight:600;max-width:70ch;line-height:1.5}
.ana{margin:0;padding-left:18px;display:grid;gap:4px;color:var(--muted);font-size:13.5px;max-width:75ch}
.cmpw{overflow-x:auto}
table.cmp{border-collapse:collapse;width:100%;min-width:420px;font-size:13.5px}
table.cmp th,table.cmp td{padding:7px 10px;border-bottom:1px solid var(--line);text-align:left}
table.cmp thead th{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
table.cmp tbody th{font-weight:600;color:var(--muted)}
table.cmp td{font-family:var(--mono);font-variant-numeric:tabular-nums;font-size:13px}
table.cmp td.good{color:var(--ok);font-weight:700}
table.cmp td.good::after{content:"  ▼"}
table.cmp td.worse{color:var(--bad);font-weight:700}
table.cmp td.worse::after{content:"  ▲"}
.acts-l{display:grid;gap:6px}
.actrow{display:grid;grid-template-columns:20px minmax(0,1fr);gap:10px;align-items:start;background:var(--surface-2);border-radius:10px;padding:9px 12px;cursor:pointer}
.actrow input{width:17px;height:17px;margin-top:2px;accent-color:var(--p1)}
.actrow b{display:block;font-weight:650;font-size:13.5px}
.actrow small{display:block;color:var(--muted);font-size:12.5px;margin-top:2px}
.chgd summary{cursor:pointer;font-weight:700;font-size:13.5px;padding:4px 0}
.chgd .res{margin-top:8px}
.pill.ai{background:var(--accent-soft);color:var(--accent-ink)}
.alerts li button.aili{background:var(--accent-soft);color:var(--accent-ink);font-weight:700;align-items:center}

/* Modale */
.ov{position:fixed;inset:0;background:rgba(14,13,34,.45);z-index:50;display:grid;place-items:center;padding:16px;overflow:auto}
.dlg{background:var(--surface);color:var(--ink);border-radius:16px;width:min(640px,100%);max-height:calc(100vh - 32px);overflow:auto;box-shadow:0 30px 80px -20px rgba(0,0,0,.45);padding:20px 22px;display:flex;flex-direction:column;gap:14px}
.dlg h2{margin:0;font-size:19px;font-weight:800;letter-spacing:-.01em}
.dlg .hint{margin:-6px 0 0;color:var(--muted);font-size:13px;max-width:62ch}
.fg{display:flex;flex-direction:column;gap:5px;min-width:0}
.fg label,.fs legend{font-size:11.5px;font-weight:700;color:var(--muted);letter-spacing:.04em;text-transform:uppercase}
.fg input,.fg select,.fg textarea{border:1px solid var(--line);background:var(--surface-2);border-radius:9px;padding:8px 10px;width:100%;min-width:0}
.fg textarea{font-family:var(--mono);font-size:12px;min-height:110px}
.r3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.r2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.fs{border:0;padding:0;margin:0;display:flex;flex-direction:column;gap:7px}
.cks{display:flex;flex-wrap:wrap;gap:6px}
.ck{position:relative}
.ck input{position:absolute;opacity:0;pointer-events:none}
.ck span{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);border-radius:20px;padding:4px 10px 4px 4px;font-size:12.5px;font-weight:600;cursor:pointer;background:var(--surface)}
.ck span.np{padding-left:10px}
.ck input:checked+span{background:var(--p1);border-color:var(--p1);color:var(--p1-ink)}
.ck.red input:checked+span{background:var(--bad);border-color:var(--bad);color:#fff}
.ck input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
.swatches{display:flex;gap:8px;flex-wrap:wrap}
.swatches label{position:relative}
.swatches input{position:absolute;opacity:0}
.swatches span{display:block;width:28px;height:28px;border-radius:50%;background:var(--c);cursor:pointer}
.swatches input:checked+span{box-shadow:0 0 0 3px var(--surface),0 0 0 5px var(--c)}
.swatches input:focus-visible+span{outline:2px solid var(--accent);outline-offset:4px}
.tg{display:flex;align-items:center;gap:9px;font-weight:600;font-size:13.5px;cursor:pointer}
.tg input{width:17px;height:17px;accent-color:var(--p1)}
.tg.hot input{accent-color:var(--accent)}
.mft{display:flex;flex-wrap:wrap;gap:8px;align-items:center;border-top:1px solid var(--line);padding-top:14px}
.mft .sp{flex:1}
.res{display:grid;gap:6px;list-style:none;margin:0;padding:0}
.res li{background:var(--surface-2);border-radius:9px;padding:8px 11px;font-size:13px}
.res li b{display:block;font-weight:700}
.res li span{color:var(--muted)}
.res li.bad b{color:var(--bad)}
.box{background:var(--surface-2);border-radius:10px;padding:12px 14px;display:grid;gap:8px;font-size:13px}

@media (max-width:880px){
  :root{--lab:180px}
  .shell{grid-template-columns:minmax(0,1fr)}
  .side{position:static;height:auto;flex-direction:row;flex-wrap:wrap;align-items:center;padding:12px 16px;gap:10px}
  .nav{flex-direction:row;overflow-x:auto;width:100%;gap:4px}
  .nav button{padding:7px 10px;white-space:nowrap}
  .nav button[aria-current="true"]{box-shadow:inset 0 -3px 0 var(--accent)}
  .legend{display:none}
  .gwrap{max-height:70vh}
  .r3{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:520px){
  .r3,.r2{grid-template-columns:minmax(0,1fr)}
  .acts .btn .lbl{display:none}
  .grow .glab>small{display:none}
  .grow .glab .pt .role{display:none}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}
/* ===================== Rinnovo grafico ===================== */
:root{
  --bg:#f4f5fa; --surface:#ffffff; --surface-2:#f4f5fb; --line:#e5e6f0; --grid:rgba(30,27,75,.06);
  --ink:#14143a; --muted:#5d6088; --faint:#9c9fbd;
  --p1:#4f46e5; --p2:#8580ee; --p3:#d9dbef; --p3-ink:#2a2766;
  --l0:#eef0f8; --l1:#e0e5ff; --l2:#aab7ff; --l3:#4f46e5;
  --shadow:0 1px 2px rgba(20,20,58,.04),0 6px 20px -8px rgba(20,20,58,.12);
  --shadow-lg:0 30px 70px -20px rgba(20,20,58,.35);
  --aur1:rgba(99,102,241,.13); --aur2:rgba(249,115,22,.07);
  --ring:0 0 0 3px rgba(79,70,229,.18);
  --r:16px;
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#0a0a1c; --surface:#121230; --surface-2:#191940; --line:#25255a; --grid:rgba(165,180,252,.06);
  --ink:#eef0ff; --muted:#a3a6d6; --faint:#6e71a6;
  --p1:#6d6af5; --p2:#4f4bb8; --p3:#2f2d62; --p3-ink:#dcdbf7;
  --l0:#17173a; --l1:#232262; --l2:#3a379a; --l3:#7c7cf6;
  --shadow:0 1px 2px rgba(0,0,0,.35),0 10px 28px -12px rgba(0,0,0,.6);
  --shadow-lg:0 30px 80px -20px rgba(0,0,0,.75);
  --aur1:rgba(99,102,241,.16); --aur2:rgba(249,115,22,.06);
  --ring:0 0 0 3px rgba(124,124,246,.28);
}}
:root[data-theme="dark"]{
  --bg:#0a0a1c; --surface:#121230; --surface-2:#191940; --line:#25255a; --grid:rgba(165,180,252,.06);
  --ink:#eef0ff; --muted:#a3a6d6; --faint:#6e71a6;
  --p1:#6d6af5; --p2:#4f4bb8; --p3:#2f2d62; --p3-ink:#dcdbf7;
  --l0:#17173a; --l1:#232262; --l2:#3a379a; --l3:#7c7cf6;
  --shadow:0 1px 2px rgba(0,0,0,.35),0 10px 28px -12px rgba(0,0,0,.6);
  --shadow-lg:0 30px 80px -20px rgba(0,0,0,.75);
  --aur1:rgba(99,102,241,.16); --aur2:rgba(249,115,22,.06);
  --ring:0 0 0 3px rgba(124,124,246,.28);
}
body{background:radial-gradient(1100px 460px at 92% -8%,var(--aur1),transparent 62%),radial-gradient(800px 380px at 30% -14%,var(--aur2),transparent 60%),var(--bg);background-attachment:fixed;-webkit-font-smoothing:antialiased;letter-spacing:-.003em}
.num{font-family:var(--font);font-variant-numeric:tabular-nums;font-size:inherit;font-feature-settings:"tnum"}

/* sidebar */
.side{background:linear-gradient(180deg,#121033 0%,#1b1850 48%,#272274 100%);padding:20px 12px 16px;gap:16px;box-shadow:inset -1px 0 0 rgba(255,255,255,.06)}
.brand{gap:11px;padding:2px 8px 6px}
.brand .logo{box-shadow:0 6px 18px -6px rgba(99,102,241,.8);border-radius:9px}
.brand b{font-size:15.5px;letter-spacing:-.015em}
.brand small{font-size:10.5px;letter-spacing:.09em;opacity:.85}
.nav{gap:2px;overflow-y:auto;min-height:0;flex:1}
.ngl{font-size:10px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--side-mut);opacity:.65;padding:14px 12px 5px}
.ngl:first-child{padding-top:4px}
.nav button{padding:8px 11px;border-radius:10px;font-weight:550;font-size:13.5px;opacity:.78;gap:11px;transition:background .15s,opacity .15s}
.nav button svg{opacity:.9}
.nav button .nl{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.nav button:hover{background:rgba(255,255,255,.06);opacity:1}
.nav button[aria-current="true"]{background:linear-gradient(90deg,rgba(255,255,255,.14),rgba(255,255,255,.06));opacity:1;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.nav button[aria-current="true"] svg{color:#fdba74}
.nav .ct{font-size:10.5px;font-weight:700;background:rgba(255,255,255,.1);padding:1px 7px;margin-left:auto}
.legend{margin-top:0;padding:10px 12px;border-radius:12px;background:rgba(255,255,255,.04);gap:0}
.legend summary{cursor:pointer;font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--side-mut);list-style:none;display:flex;align-items:center;justify-content:space-between}
.legend summary::-webkit-details-marker{display:none}
.legend summary::after{content:"+";font-size:14px;opacity:.7}
.legend[open] summary::after{content:"–"}
.lgi{display:grid;gap:6px;margin-top:10px;font-size:12px}
.lgi span{display:flex;align-items:center;gap:8px}
.lgi i{width:20px;height:8px;border-radius:3px;display:inline-block}

/* intestazione fissa */
main{padding-block:0 48px;gap:20px}
.top{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;margin-inline:calc(-1 * clamp(16px,3vw,34px));padding:14px clamp(16px,3vw,34px);background:color-mix(in srgb,var(--bg) 78%,transparent);backdrop-filter:saturate(1.6) blur(14px);-webkit-backdrop-filter:saturate(1.6) blur(14px);border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent)}
.top .eyebrow{font-size:10.5px;letter-spacing:.1em}
.top h1{font-size:clamp(18px,2vw,22px);letter-spacing:-.025em}
.chip-save{background:var(--surface);border:1px solid var(--line);font-weight:550}

/* superfici */
.panel,.kpi,.dkt,.jcard,.pcard,.alerts,.gwrap,.aitem,.opair{border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);background:var(--surface)}
.panel{padding:20px 22px}
.panel h2,.dc2 h2{font-size:15.5px;letter-spacing:-.015em}
.sub{color:var(--muted)}
.kpi,.dkt{padding:14px 16px;gap:6px;position:relative;overflow:hidden}
.kpi span,.dkt span{font-size:10.5px;letter-spacing:.09em;font-weight:700;color:var(--muted)}
.kpi b{font-size:22px;letter-spacing:-.03em}
.dkt b{font-size:28px;font-weight:800;letter-spacing:-.035em;line-height:1.1}
.dkt::after{content:"";position:absolute;right:-24px;top:-24px;width:84px;height:84px;border-radius:50%;background:radial-gradient(circle,var(--aur1),transparent 70%)}
.dkt.bad::after{background:radial-gradient(circle,rgba(220,38,38,.12),transparent 70%)}
.dkt.ok::after{background:radial-gradient(circle,rgba(15,138,105,.12),transparent 70%)}
.dkt.hot::after{background:radial-gradient(circle,rgba(249,115,22,.14),transparent 70%)}
.dhead h2{font-size:24px;letter-spacing:-.03em}
.example{border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);border-radius:14px;padding:11px 16px;background:color-mix(in srgb,var(--accent-soft) 80%,var(--surface))}

/* pulsanti */
.btn{min-height:36px;padding:0 14px;border-radius:10px;font-weight:600;font-size:13.5px;box-shadow:0 1px 2px rgba(20,20,58,.06);transition:background .15s,border-color .15s,box-shadow .15s,transform .05s;justify-content:center}
.btn:hover{border-color:color-mix(in srgb,var(--p1) 35%,var(--line));background:var(--surface-2)}
.btn:active{transform:translateY(1px)}
.btn.pri{background:linear-gradient(180deg,#635bff,#4338ca);border-color:#4338ca;color:#fff;box-shadow:0 1px 2px rgba(67,56,202,.35),0 6px 16px -8px rgba(79,70,229,.7),inset 0 1px 0 rgba(255,255,255,.18)}
.btn.pri:hover{background:linear-gradient(180deg,#6f68ff,#4f46e5)}
.btn.hot{background:linear-gradient(180deg,#fb923c,#ea580c);border-color:#ea580c;color:#fff;box-shadow:0 1px 2px rgba(234,88,12,.35),0 6px 16px -8px rgba(249,115,22,.7),inset 0 1px 0 rgba(255,255,255,.2)}
.btn.hot:hover{background:linear-gradient(180deg,#fda05a,#f97316)}
.btn.sm{min-height:30px;padding:0 10px;font-size:12.5px;border-radius:9px}
.btn.danger{background:var(--surface)}
.btn.danger.armed{background:var(--bad);border-color:var(--bad)}
.seg{background:var(--surface-2);border:1px solid var(--line);border-radius:11px}
.seg button{border-radius:8px;font-weight:600}
.seg button[aria-pressed="true"]{box-shadow:0 1px 3px rgba(20,20,58,.12),0 0 0 1px var(--line)}
.pill{font-weight:650;padding:2px 9px;letter-spacing:.005em}
:focus-visible{outline:none;box-shadow:var(--ring)}
.nav button:focus-visible{box-shadow:0 0 0 2px #fdba74}

/* campi */
.fg input,.fg select,.fg textarea{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:9px 12px;transition:border-color .15s,box-shadow .15s}
.fg input:focus,.fg select:focus,.fg textarea:focus{outline:none;border-color:var(--p1);box-shadow:var(--ring)}
.fg label,.fs legend{font-size:11px;letter-spacing:.07em}
.ov{background:rgba(10,10,28,.42);backdrop-filter:blur(5px);-webkit-backdrop-filter:blur(5px)}
.dlg{border-radius:20px;padding:24px 26px;box-shadow:var(--shadow-lg);border:1px solid var(--line)}
.dlg h2{font-size:20px;letter-spacing:-.025em}

/* schede commesse e persone */
.jcard{transition:box-shadow .15s,transform .15s}
.jcard:hover{box-shadow:0 1px 2px rgba(20,20,58,.05),0 14px 30px -14px rgba(20,20,58,.28);transform:translateY(-1px)}
.jcard::before{width:3px;border-radius:0 3px 3px 0;top:14px;bottom:14px}
.pcard{padding:18px;gap:12px;transition:box-shadow .15s}
.pcard:hover{box-shadow:0 1px 2px rgba(20,20,58,.05),0 14px 30px -14px rgba(20,20,58,.28)}
.tag{background:var(--surface-2);border:1px solid var(--line);font-weight:600;color:var(--ink)}
.meter{height:6px;background:var(--l0)}
.meter i{background:linear-gradient(90deg,var(--p2),var(--p1))}
.av{box-shadow:0 0 0 2px var(--surface)}

/* Gantt */
.gwrap{border-radius:var(--r)}
.gh{background:color-mix(in srgb,var(--surface) 94%,transparent);backdrop-filter:blur(8px)}
.gh .glab{font-size:10.5px;letter-spacing:.09em}
.drow span{font-family:var(--font);font-weight:600;font-variant-numeric:tabular-nums}
.drow span.td{border-radius:8px;box-shadow:0 4px 10px -4px rgba(249,115,22,.7)}
.mrow span{font-weight:750;letter-spacing:-.01em}
.grow{transition:background .12s}
.grow:hover,.grow:hover .glab{background:var(--surface-2)}
.grow.jrow,.grow.jrow .glab{background:color-mix(in srgb,var(--surface-2) 70%,var(--surface))}
.bar{border-radius:8px;box-shadow:0 1px 2px rgba(20,20,58,.18);font-weight:650}
.bar::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.18),rgba(255,255,255,0) 60%);pointer-events:none;border-radius:inherit}
.bar.done::after{display:none}
.bar:hover{filter:brightness(1.06);box-shadow:0 4px 12px -4px rgba(20,20,58,.35)}
.gbg .tline{width:2px;opacity:.9;box-shadow:0 0 0 3px rgba(249,115,22,.12)}
.jspan{height:6px;top:13px;border-radius:3px}

/* tabelle */
table.regt th,table.snap thead th,table.load th{font-size:10.5px;letter-spacing:.08em}
table.regt td{padding:11px 8px}
table.regt tr:hover td{background:var(--surface-2)}
.ld,.dc{border-radius:7px}

/* grafici */
.cbn{fill:var(--p2)}
.hbt{height:8px;border-radius:4px}
.hbt i{border-radius:4px}
.ggbar{border-radius:8px}
.ggbar i{border-radius:8px 0 0 8px}
.ctip{border-radius:10px;box-shadow:var(--shadow-lg)}
.toast{border-radius:12px}

@media (max-width:880px){
  .side{padding:12px 16px;gap:10px}
  .ngl{display:none}
  .nav{flex:none}
  .legend{display:none}
  .top{position:static;margin-inline:0;padding:12px 0;background:none;backdrop-filter:none;border-bottom:0}
  main{padding-block:8px 40px}
}
@media (prefers-reduced-motion:reduce){.jcard:hover{transform:none}}

/* ===================== Colori aziendali Crearecasa ===================== */
:root{
  --brand:#423f41; --brand-2:#2f2c2e; --orange:#f7941e; --orange-2:#e07c06;
  --bg:#f6f5f3; --surface:#ffffff; --surface-2:#f4f2f0; --line:#e8e4e1; --grid:rgba(66,63,65,.06);
  --ink:#2a2728; --muted:#6e6769; --faint:#a59fa1;
  --side-a:#ffffff; --side-b:#ffffff; --side-ink:#2a2728; --side-mut:#8b8487;
  --accent:#f7941e; --accent-soft:#fff1e0; --accent-ink:#9a5100;
  --p1:#423f41; --p1-ink:#ffffff; --p2:#8a8486; --p2-ink:#ffffff; --p3:#dcd8d5; --p3-ink:#3a3637;
  --done:#ebe8e6; --done-ink:#958e90;
  --wk:rgba(66,63,65,.04); --hol:rgba(247,148,30,.09);
  --l0:#f1eeec; --l1:#fde6c8; --l2:#f9bd6e; --l3:#f7941e; --l3-ink:#2a2728;
  --aur1:rgba(247,148,30,.10); --aur2:rgba(66,63,65,.05);
  --ring:0 0 0 3px rgba(247,148,30,.28);
  --shadow:0 1px 2px rgba(42,39,40,.05),0 6px 20px -8px rgba(42,39,40,.14);
  --shadow-lg:0 30px 70px -20px rgba(42,39,40,.38);
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#131112; --surface:#1d1a1b; --surface-2:#262223; --line:#383334; --grid:rgba(244,241,239,.05);
  --ink:#f4f1ef; --muted:#b4acae; --faint:#7d7577;
  --side-a:#181516; --side-b:#181516; --side-ink:#f4f1ef; --side-mut:#9b9395;
  --accent:#f9a03c; --accent-soft:#3a2510; --accent-ink:#fcc27e;
  --p1:#ece8e6; --p1-ink:#1d1a1b; --p2:#7b7476; --p2-ink:#ffffff; --p3:#3d3839; --p3-ink:#e2dddb;
  --done:#2a2627; --done-ink:#857d7f;
  --wk:rgba(244,241,239,.03); --hol:rgba(249,160,60,.08);
  --l0:#221f20; --l1:#3d2a16; --l2:#8a5718; --l3:#f9a03c; --l3-ink:#1d1a1b;
  --aur1:rgba(249,160,60,.10); --aur2:rgba(255,255,255,.03);
  --ring:0 0 0 3px rgba(249,160,60,.35);
  --shadow:0 1px 2px rgba(0,0,0,.4),0 10px 28px -12px rgba(0,0,0,.65);
}}
:root[data-theme="dark"]{
  --bg:#131112; --surface:#1d1a1b; --surface-2:#262223; --line:#383334; --grid:rgba(244,241,239,.05);
  --ink:#f4f1ef; --muted:#b4acae; --faint:#7d7577;
  --side-a:#181516; --side-b:#181516; --side-ink:#f4f1ef; --side-mut:#9b9395;
  --accent:#f9a03c; --accent-soft:#3a2510; --accent-ink:#fcc27e;
  --p1:#ece8e6; --p1-ink:#1d1a1b; --p2:#7b7476; --p2-ink:#ffffff; --p3:#3d3839; --p3-ink:#e2dddb;
  --done:#2a2627; --done-ink:#857d7f;
  --wk:rgba(244,241,239,.03); --hol:rgba(249,160,60,.08);
  --l0:#221f20; --l1:#3d2a16; --l2:#8a5718; --l3:#f9a03c; --l3-ink:#1d1a1b;
  --aur1:rgba(249,160,60,.10); --aur2:rgba(255,255,255,.03);
  --ring:0 0 0 3px rgba(249,160,60,.35);
  --shadow:0 1px 2px rgba(0,0,0,.4),0 10px 28px -12px rgba(0,0,0,.65);
}
/* logo chiaro/scuro */
.lg-d{display:none}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .lg-l{display:none}:root:not([data-theme="light"]) .lg-d{display:block}}
:root[data-theme="dark"] .lg-l{display:none}:root[data-theme="dark"] .lg-d{display:block}
.brand{display:flex;flex-direction:column;align-items:flex-start;gap:7px;padding:6px 10px 10px}
.brand img{width:178px;max-width:100%;height:auto}
.brand small{display:block;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--side-mut);font-weight:700}

/* menu laterale chiaro con accenti arancio */
.side{background:var(--side-a);color:var(--side-ink);box-shadow:inset -1px 0 0 var(--line),4px 0 24px -18px rgba(42,39,40,.25)}
.ngl{color:var(--side-mut);opacity:1}
.nav button{color:var(--side-ink);opacity:1;font-weight:550}
.nav button svg{color:var(--side-mut)}
.nav button:hover{background:var(--surface-2)}
.nav button[aria-current="true"]{background:var(--accent-soft);color:var(--ink);box-shadow:inset 3px 0 0 var(--accent);font-weight:700}
.nav button[aria-current="true"] svg{color:var(--accent)}
.nav .ct{background:var(--surface-2);color:var(--muted)}
.nav .ct.bad{background:var(--accent);color:#fff}
.nav button:focus-visible{box-shadow:var(--ring)}
.legend{background:var(--surface-2);color:var(--muted)}
.legend summary{color:var(--side-mut)}

/* pulsanti */
.btn.pri{background:linear-gradient(180deg,#4d494b,#2f2c2e);border-color:#2f2c2e;color:#fff;box-shadow:0 1px 2px rgba(42,39,40,.35),0 6px 16px -8px rgba(42,39,40,.6),inset 0 1px 0 rgba(255,255,255,.12)}
.btn.pri:hover{background:linear-gradient(180deg,#5a5658,#3a3739)}
.btn.hot{background:linear-gradient(180deg,#f9a33d,#ef8410);border-color:#e07c06;color:#fff;text-shadow:0 1px 0 rgba(120,60,0,.25);box-shadow:0 1px 2px rgba(224,124,6,.4),0 6px 16px -8px rgba(247,148,30,.75),inset 0 1px 0 rgba(255,255,255,.25)}
.btn.hot:hover{background:linear-gradient(180deg,#fbb052,#f7941e)}
.btn:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--line))}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .btn.pri{background:linear-gradient(180deg,#f9a33d,#ef8410);border-color:#e07c06;color:#1d1a1b;text-shadow:none}}
:root[data-theme="dark"] .btn.pri{background:linear-gradient(180deg,#f9a33d,#ef8410);border-color:#e07c06;color:#1d1a1b;text-shadow:none}
.jchip.all[aria-pressed="true"],.seg button[aria-pressed="true"]{color:var(--ink)}
.jchip.all[aria-pressed="true"]{background:var(--brand);border-color:var(--brand);color:#fff}
.ck input:checked+span,.kopt input:checked+span,.ropt input:checked+span{background:var(--brand);border-color:var(--brand);color:#fff}
.ropt:not(.nr) input:checked+span::before{color:var(--orange)}
.meter i{background:linear-gradient(90deg,#f9b25e,var(--orange))}
.dkt::after{background:radial-gradient(circle,rgba(247,148,30,.13),transparent 70%)}
.pill.kdip{background:var(--surface-2);color:var(--ink);box-shadow:inset 0 0 0 1px var(--line)}
.pill.kaut{background:var(--accent-soft);color:var(--accent-ink)}
.pill.prev{background:var(--accent-soft);color:var(--accent-ink)}
.dhead .eyebrow,.top .eyebrow,.aihero .eyebrow,.guide .eyebrow{color:var(--orange-2)}
.cbn{fill:var(--p2)}
.drow span.td{background:var(--orange)}
.sw-light{background:linear-gradient(90deg,#ffffff 0 22%,#f6f5f3 22%);box-shadow:inset 0 0 0 1px #e8e4e1}
.sw-dark{background:linear-gradient(90deg,#181516 0 22%,#1d1a1b 22%)}
.sw-auto{background:linear-gradient(90deg,#ffffff 0 22%,#f6f5f3 22% 61%,#1d1a1b 61%)}
.thb.on{border-color:var(--orange);box-shadow:0 0 0 2px var(--orange)}
.aitem details summary{color:var(--accent-ink)}
.jcard.sel{box-shadow:0 0 0 2px var(--jc),var(--shadow)}

/* titoli: niente parole tagliate */
.top h1,.dhead h2,.panel h2,.dlg h2,.ghero h2,.aihero h2{letter-spacing:-.01em;line-height:1.25;overflow:visible}
.dhead{align-items:center}
.dhead>div:first-child{flex:1 0 auto}
.dhead h2{white-space:nowrap;font-size:clamp(20px,2.4vw,26px);padding-bottom:2px}
.top .ttl{flex:1 1 auto;min-width:min(100%,260px)}

@media (max-width:880px){
  .brand{flex-direction:row;align-items:center;padding:0;gap:10px}
  .brand img{width:150px}
  .brand small{display:none}
  .side{box-shadow:inset 0 -1px 0 var(--line)}
  .nav button[aria-current="true"]{box-shadow:inset 0 -3px 0 var(--accent)}
}

/* ===================== Creocasa Milano: oro e antracite ===================== */
:root{
  --gold:#c9a227; --gold-2:#a8841a; --gold-hi:#e8cf6a;
  --orange:#c9a227; --orange-2:#a8841a;
  --bg:#f6f5f2; --surface:#ffffff; --surface-2:#f3f1ec; --line:#e6e2da; --grid:rgba(40,36,30,.06);
  --ink:#1f1d1a; --muted:#6b665d; --faint:#a39e94;
  --side-a:#161513; --side-b:#0e0d0c; --side-ink:#ecebe7; --side-mut:#9c978d;
  --accent:#c9a227; --accent-soft:#f7efd6; --accent-ink:#6c5408;
  --p1:#2a2824; --p1-ink:#ffffff; --p2:#8c877e; --p3:#dcd8cf; --p3-ink:#2a2824;
  --l0:#f1eee8; --l1:#f5e9c4; --l2:#e3c873; --l3:#c9a227; --l3-ink:#1f1d1a;
  --aur1:rgba(201,162,39,.10); --aur2:rgba(40,36,30,.04);
  --ring:0 0 0 3px rgba(201,162,39,.32);
}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]){
  --bg:#100f0d; --surface:#1a1916; --surface-2:#23211d; --line:#36332d; --grid:rgba(236,235,231,.05);
  --ink:#f1efea; --muted:#b1aca2; --faint:#7b766d;
  --side-a:#0d0c0b; --side-b:#0d0c0b;
  --accent:#d9b440; --accent-soft:#33290f; --accent-ink:#ecd27f;
  --p1:#ece9e2; --p1-ink:#1a1916; --p2:#77726a; --p3:#3a372f; --p3-ink:#e6e2da;
  --l0:#1f1d19; --l1:#3a2f12; --l2:#7d6420; --l3:#d9b440; --l3-ink:#1a1916;
  --aur1:rgba(217,180,64,.09); --aur2:rgba(255,255,255,.02);
  --ring:0 0 0 3px rgba(217,180,64,.38);
}}
:root[data-theme="dark"]{
  --bg:#100f0d; --surface:#1a1916; --surface-2:#23211d; --line:#36332d; --grid:rgba(236,235,231,.05);
  --ink:#f1efea; --muted:#b1aca2; --faint:#7b766d;
  --side-a:#0d0c0b; --side-b:#0d0c0b;
  --accent:#d9b440; --accent-soft:#33290f; --accent-ink:#ecd27f;
  --p1:#ece9e2; --p1-ink:#1a1916; --p2:#77726a; --p3:#3a372f; --p3-ink:#e6e2da;
  --l0:#1f1d19; --l1:#3a2f12; --l2:#7d6420; --l3:#d9b440; --l3-ink:#1a1916;
  --aur1:rgba(217,180,64,.09); --aur2:rgba(255,255,255,.02);
  --ring:0 0 0 3px rgba(217,180,64,.38);
}
/* menu scuro: il logo è pensato per fondi scuri */
.side{background:radial-gradient(420px 260px at 20% -10%,rgba(201,162,39,.16),transparent 70%),linear-gradient(180deg,#191816,#0e0d0c);color:var(--side-ink);box-shadow:inset -1px 0 0 rgba(255,255,255,.06)}
.brand{padding:8px 10px 12px;gap:10px}
.brand img{width:172px;height:auto;filter:drop-shadow(0 2px 10px rgba(0,0,0,.45))}
.brand small{color:var(--gold);letter-spacing:.14em}
.ngl{color:#8f8a80}
.nav button{color:#e7e5df}
.nav button svg{color:#9c978d}
.nav button:hover{background:rgba(255,255,255,.06)}
.nav button[aria-current="true"]{background:linear-gradient(90deg,rgba(201,162,39,.22),rgba(201,162,39,.06));color:#fff;box-shadow:inset 3px 0 0 var(--gold)}
.nav button[aria-current="true"] svg{color:var(--gold-hi)}
.nav .ct{background:rgba(255,255,255,.1);color:#d8d5ce}
.nav .ct.bad{background:#e8590c;color:#fff}
.legend{background:rgba(255,255,255,.05)}
.legend summary{color:#9c978d}
.lgi{color:#bdb8ae}
/* pulsanti */
.btn.pri{background:linear-gradient(180deg,#34312c,#171614);border-color:#171614;color:#fff;box-shadow:0 1px 2px rgba(0,0,0,.35),0 6px 16px -8px rgba(0,0,0,.6),inset 0 1px 0 rgba(255,255,255,.1)}
.btn.pri:hover{background:linear-gradient(180deg,#403c36,#24221f)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .btn.pri{background:linear-gradient(180deg,#e8cf6a,#c9a227);border-color:#a8841a;color:#1a1916}}
:root[data-theme="dark"] .btn.pri{background:linear-gradient(180deg,#e8cf6a,#c9a227);border-color:#a8841a;color:#1a1916}
.btn.hot{background:linear-gradient(180deg,#f47b3a,#d9480f);border-color:#c2410c;color:#fff;text-shadow:none;box-shadow:0 1px 2px rgba(194,65,12,.4),0 6px 16px -8px rgba(217,72,15,.7),inset 0 1px 0 rgba(255,255,255,.2)}
.btn.hot:hover{background:linear-gradient(180deg,#f78b4f,#e8590c)}
.bar.urg,.dc.urg{background:#e8590c;color:#fff}
.meter i{background:linear-gradient(90deg,#e8cf6a,#c9a227)}
.drow span.td{background:var(--gold);color:#1a1916}
.drow span.td i{color:#1a1916}
.dkt::after{background:radial-gradient(circle,rgba(201,162,39,.14),transparent 70%)}
.jchip.all[aria-pressed="true"],.ck input:checked+span,.kopt input:checked+span,.ropt input:checked+span{background:#2a2824;border-color:#2a2824;color:#fff}
.ropt:not(.nr) input:checked+span::before{color:var(--gold-hi)}
.thb.on{border-color:var(--gold);box-shadow:0 0 0 2px var(--gold)}
.sw-light{background:linear-gradient(90deg,#161513 0 22%,#f6f5f2 22%)}
.sw-dark{background:linear-gradient(90deg,#0d0c0b 0 22%,#1a1916 22%)}
.sw-auto{background:linear-gradient(90deg,#161513 0 22%,#f6f5f2 22% 61%,#1a1916 61%)}
.dhead .eyebrow,.top .eyebrow,.aihero .eyebrow,.guide .eyebrow{color:var(--gold-2)}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) :is(.dhead,.top,.aihero,.guide) .eyebrow{color:var(--gold)}}
:root[data-theme="dark"] :is(.dhead,.top,.aihero,.guide) .eyebrow{color:var(--gold)}
.bar.hid,.dc.hid{background:repeating-linear-gradient(135deg,var(--l0) 0 6px,var(--surface-2) 6px 12px);color:var(--muted);box-shadow:inset 0 0 0 1px var(--line);font-weight:600;cursor:default}
.bar.hid::after{display:none}
/* chip utente */
.uchip{display:inline-flex;align-items:center;gap:9px;border:1px solid var(--line);background:var(--surface);border-radius:12px;padding:4px 12px 4px 4px;color:var(--ink);text-align:left;box-shadow:0 1px 2px rgba(0,0,0,.05)}
.uchip:hover{border-color:var(--gold)}
.uav{display:inline-grid;place-items:center;width:30px;height:30px;border-radius:9px;background:linear-gradient(135deg,#e8cf6a,#a8841a);color:#1a1916;font:800 11.5px/1 var(--font);flex:none}
.uct{display:flex;flex-direction:column;line-height:1.15;min-width:0}
.uct b{font-size:12.5px;font-weight:700;white-space:nowrap}
.uct small{font-size:11px;color:var(--muted)}
/* permessi: comandi nascosti */
.no-edit_plan :is([data-a="new-task"]:not([data-ph="preventivo"]),[data-a="urgent"],[data-a="replan"]){display:none!important}
.no-edit_jobs :is([data-a="new-job"],[data-a="edit-job"],[data-a="arm"][data-v^="arch:"],[data-a="restore-arch"],[data-a="arm"][data-v^="delarch:"],[data-a="arm"][data-v="wipe-tasks"],[data-a="keep-example"],[data-a="arm"][data-v="deljob"]),.no-edit_jobs .example{display:none!important}
.no-edit_people :is(button[data-a="edit-person"],[data-a="new-person"],.addcard){display:none!important}
.no-edit_absences :is([data-a="absence"],[data-a="arm"][data-v^="abs:"]){display:none!important}
.no-backup :is([data-a^="dl-"],[data-a^="snap-"],[data-a="arm"][data-v^="snap:"]){display:none!important}
.no-view_ratings :is([data-a="psort"][data-v="val"],.seg.vr){display:none!important}
.no-use_ai :is([data-a="ai-run"],[data-a="ai-followup"],.aili){display:none!important}
.no-view_log [data-a="go-log"]{display:none!important}
/* utenti */
table.ut tr.off td{opacity:.55}
td.uvis{max-width:280px;font-size:12.5px;color:var(--muted)}
.pill.radm{background:#2a2824;color:var(--gold-hi)}
.rgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:10px;margin-top:6px}
.ut{min-width:780px!important}
.ut td.rn b{display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.rbox{border:1px solid var(--line);border-radius:12px;padding:12px 14px;display:grid;gap:4px;background:var(--surface-2)}
.rbox b{font-size:14px}
.rbox small{color:var(--muted);font-size:12px}
.rbox ul{list-style:none;margin:6px 0 0;padding:0;display:grid;gap:3px;font-size:12px;color:var(--faint)}
.rbox li.on{color:var(--ink)}
.plist2{display:grid;gap:7px}
.plist2 .tg{font-weight:550;font-size:13px}
fieldset[disabled]{opacity:.6}
/* accesso */
.auth{min-height:100vh;display:grid;grid-template-columns:minmax(320px,44%) minmax(0,1fr);background:var(--bg)}
.abrand{position:relative;overflow:hidden;background:radial-gradient(700px 420px at 15% 0%,rgba(201,162,39,.25),transparent 65%),radial-gradient(600px 500px at 100% 100%,rgba(201,162,39,.12),transparent 60%),linear-gradient(160deg,#1c1b18,#0b0a09);color:#ecebe7;padding:56px clamp(28px,5vw,64px);display:flex;flex-direction:column;justify-content:center;gap:34px}
.abrand img{width:min(320px,80%);height:auto;filter:drop-shadow(0 4px 24px rgba(0,0,0,.5))}
.abt{display:grid;gap:8px;max-width:38ch}
.abt b{font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:#e8cf6a}
.abt span{font-size:22px;line-height:1.35;font-weight:600;color:#f3f1ec;letter-spacing:-.01em}
.afeat{list-style:none;margin:0;padding:0;display:grid;gap:10px;font-size:14px;color:#c9c5bc}
.afeat li{display:flex;gap:10px;align-items:center}
.afeat li::before{content:"";width:18px;height:2px;background:linear-gradient(90deg,#e8cf6a,#a8841a);border-radius:2px}
.apane{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;gap:18px}
.acard{width:min(420px,100%);background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:30px 30px 26px;box-shadow:var(--shadow-lg);display:grid;gap:14px}
.acard h1{margin:0;font-size:24px;font-weight:800;letter-spacing:-.015em}
.asub{margin:-4px 0 4px;color:var(--muted);font-size:13.5px;line-height:1.5}
.aform{display:grid;gap:12px}
.aform .fg input{padding:11px 13px;font-size:14.5px}
.ab{width:100%;min-height:44px;font-size:14.5px}
.ab.ghost{background:transparent;box-shadow:none}
.arem{font-size:13px;color:var(--muted);font-weight:550}
.alink{border:0;background:none;color:var(--accent-ink);font-weight:650;font-size:13px;padding:4px;justify-self:center;text-decoration:underline;text-underline-offset:3px}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .alink{color:var(--gold)}}
:root[data-theme="dark"] .alink{color:var(--gold)}
.aerr{background:var(--bad-soft);color:var(--bad);border-radius:10px;padding:10px 12px;font-size:13px;font-weight:600}
.rcode{font:800 22px/1 var(--mono);letter-spacing:.12em;text-align:center;padding:18px;border-radius:12px;border:1.5px dashed var(--gold);background:var(--accent-soft);color:var(--ink);user-select:all}
.afoot{margin:0;font-size:12px;color:var(--faint)}
@media (max-width:820px){
  .auth{grid-template-columns:minmax(0,1fr)}
  .abrand{padding:28px 20px;gap:16px}
  .abrand img{width:200px}
  .afeat,.abt span{display:none}
  .apane{justify-content:flex-start;padding:24px 16px}
  .acard{padding:22px 18px}
}
@media (max-width:880px){.side{background:linear-gradient(180deg,#191816,#0e0d0c)}.brand img{width:130px}.uct{display:none}.uchip{padding:4px}}

/* filtri dashboard */
.dfbar{display:grid;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:var(--shadow);padding:12px 14px}
.dfrow{display:flex;flex-wrap:wrap;align-items:center;gap:8px 10px}
.dfrow .sp{flex:1}
.dff{border-top:1px solid var(--line);padding-top:10px}
.dfs{display:inline-flex;align-items:center;gap:8px;font-size:11px;font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.dfs select{font:inherit;font-size:13px;font-weight:600;letter-spacing:0;text-transform:none;color:var(--ink);background:var(--surface-2);border:1px solid var(--line);border-radius:9px;padding:6px 28px 6px 10px;max-width:240px}
.dfs select:focus{outline:none;border-color:var(--accent);box-shadow:var(--ring)}
.dfsum{font-size:12.5px;color:var(--muted);font-weight:600}
.dfv button{font-weight:700}
.gghz{position:absolute;top:-4px;bottom:-4px;background:color-mix(in srgb,var(--accent) 9%,transparent);border-left:1px dashed color-mix(in srgb,var(--accent) 50%,transparent);border-right:1px dashed color-mix(in srgb,var(--accent) 50%,transparent)}
.dfbar{grid-template-columns:minmax(0,1fr)}
.dfbar,.dfrow>*{min-width:0}
.dfrow .seg button{white-space:nowrap}
@media (max-width:640px){.dfs{width:100%;justify-content:space-between}.dfs select{max-width:none;flex:1;min-width:0;width:100%}.dfrow .seg{overflow-x:auto;max-width:100%;flex:1 1 100%}.dfrow .sp{display:none}}

/* filtri dentro le schede */
.ch{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:8px 12px;margin-bottom:12px}
.cht{min-width:0;flex:1 1 220px}
.cht h2{margin:0 0 3px}
.cht .sub{margin:0}
.cctl{display:flex;flex-wrap:wrap;align-items:center;gap:6px;justify-content:flex-end;max-width:100%}
.ctl-l{font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.seg.mini{padding:2px;border-radius:9px}
.seg.mini button{padding:4px 9px;font-size:12px;border-radius:7px;white-space:nowrap}
.cbf{fill:var(--ok)}
@media (max-width:640px){.cctl{justify-content:flex-start}.seg.mini{overflow-x:auto;max-width:100%}}

/* filtro per lavorazione */
.tfrow{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:8px 12px}
.tfq{flex:0 1 260px;min-width:0;font:inherit;font-size:13px;background:var(--surface-2);border:1px solid var(--line);border-radius:9px;padding:7px 11px;color:var(--ink)}
.tfq:focus{outline:none;border-color:var(--accent);box-shadow:var(--ring)}
.tfsum{font-size:12.5px;color:var(--muted);flex:1 1 auto}
.tfsum b{color:var(--ink)}
@media (max-width:640px){.tfq{flex:1 1 100%}}

/* preventivi */
.qk{margin-top:2px}
.qimp{font-family:var(--font);font-weight:800;color:var(--ink);font-size:13px}
.btn.qacc{border-color:color-mix(in srgb,var(--ok) 45%,var(--line));color:var(--ok)}
.btn.qacc:hover{background:var(--ok-soft)}
.no-edit_quotes :is([data-a="new-quote"],[data-a="new-qtask"],[data-a="quote-sent"],[data-a="arm"][data-v="delquote"]){display:none!important}
.no-accept_quotes :is([data-a="quote-accept"],[data-a="arm"][data-v^="qrej:"]){display:none!important}

/* menu laterale: scorre tutto insieme e si compatta sugli schermi bassi */
.side{overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;scrollbar-color:rgba(255,255,255,.18) transparent}
.side::-webkit-scrollbar{width:6px}.side::-webkit-scrollbar-thumb{background:rgba(255,255,255,.18);border-radius:6px}
.nav{flex:none;overflow:visible;min-height:auto}
.legend{margin-top:auto;flex:none}
@media (max-height:860px) and (min-width:881px){
  .side{gap:10px;padding-top:14px;padding-bottom:12px}
  .brand{padding:2px 10px 4px;gap:6px}
  .brand img{width:138px}
  .ngl{padding:9px 12px 3px}
  .nav button{padding:6px 11px;font-size:13px}
}
@media (max-height:680px) and (min-width:881px){.legend{display:none}.brand small{display:none}.ngl{padding:6px 12px 2px}.nav{gap:0}.nav button{padding:4px 11px}.side{padding-top:10px;gap:6px}}
@media (max-width:880px){.side{overflow:visible}}

/* Analisi AI */
.aihub{display:grid;gap:16px}
.aihub>*{min-width:0}
.aihead{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-start;justify-content:space-between}
.aihead .ahl{flex:1 1 420px;min-width:0}
.aihead h2{font-size:21px;margin:4px 0 4px}
.aihead .eyebrow{display:inline-flex;align-items:center;gap:6px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-2,var(--accent));font-weight:800}
.aihead .sub{margin:0}
.aitabs{justify-self:start;flex-wrap:wrap;max-width:100%}
.aitabs button{font-weight:700;padding:7px 14px}
.gauge{flex:none}
.gauge .gtr{fill:none;stroke:var(--l0);stroke-width:10}
.gauge .gvl{fill:none;stroke-width:10;stroke-linecap:round;transition:stroke-dasharray .5s}
.g-ok .gvl{stroke:var(--ok)} .g-warn .gvl{stroke:var(--warn)} .g-bad .gvl{stroke:var(--bad)}
.gauge .gnum{font:800 30px var(--font);fill:var(--ink)}
.gauge .glab{font:600 11px var(--font);fill:var(--muted)}
.hpan{display:grid;gap:16px}
.hrow{display:flex;flex-wrap:wrap;gap:20px;align-items:center}
.htx{flex:1 1 320px;min-width:0;display:grid;gap:6px}
.htx h2{margin:0;font-size:24px}
.htx .eyebrow{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-weight:800}
.htx .sub{margin:0;max-width:70ch}
.hact{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
table.captbl{border-collapse:collapse;width:100%;min-width:520px;font-size:13px}
table.captbl th{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);text-align:left;padding:6px 8px;border-bottom:1px solid var(--line)}
table.captbl td{padding:7px 8px;border-bottom:1px solid var(--line);vertical-align:middle;white-space:nowrap}
table.captbl .r{text-align:right}
table.captbl small{color:var(--muted)}
.hbt.cu{display:inline-block;width:90px;vertical-align:middle;margin-right:6px}
.sev.ok{background:var(--ok)}
.rtypes{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}
.rtype{border:1px solid var(--line);background:var(--surface-2);border-radius:14px;padding:14px;text-align:left;display:flex;flex-direction:column;gap:6px;color:var(--ink);min-height:132px}
.rtype b{font-size:14.5px;font-weight:800}
.rtype span{font-size:12.5px;color:var(--muted);line-height:1.45;flex:1}
.rtype em{font-style:normal;font-size:12px;font-weight:700;color:var(--accent-ink);display:inline-flex;gap:5px;align-items:center}
.rtype:hover:not(:disabled){border-color:var(--accent);background:var(--surface)}
.rtype.on{border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 40%,transparent)}
.rtype:disabled{opacity:.6;cursor:default}
.rdoc{display:grid;gap:18px;padding:26px 28px}
.rhd{display:flex;flex-wrap:wrap;gap:16px;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:16px}
.rdoc>*,.prop>*{min-width:0}
.cmpw{overflow-x:auto;max-width:100%}
.rht{flex:1 1 220px;min-width:0;display:grid;gap:6px;justify-items:start}
.rht .eyebrow{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:700}
.rht h2{margin:0;font-size:24px;letter-spacing:-.01em;line-height:1.25}
.rsum p{margin:0;font-size:15px;line-height:1.6;max-width:85ch}
.rsum .h3,.rdoc .h3{margin:0 0 8px}
.rnum{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px}
.rnum div{background:var(--surface-2);border-radius:12px;padding:10px 12px;display:grid;gap:2px}
.rnum span{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:700}
.rnum b{font-size:18px;font-weight:800}
.rsecs{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,340px),1fr));gap:12px}
.rsec{border:1px solid var(--line);border-radius:14px;padding:14px 16px;position:relative;overflow:hidden}
.rsec::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--ok)}
.rsec.s-warn::before{background:var(--warn)} .rsec.s-bad::before{background:var(--bad)}
.rsh{display:flex;gap:8px;align-items:center;justify-content:space-between;margin-bottom:8px}
.rsh h3{margin:0;font-size:14.5px}
.rsec ul{margin:0;padding-left:18px;display:grid;gap:5px;font-size:13.5px;line-height:1.5}
table.rtbl{border-collapse:collapse;width:100%;min-width:640px;font-size:13px}
table.rtbl th{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);text-align:left;padding:7px 8px;border-bottom:1px solid var(--line)}
table.rtbl td{padding:9px 8px;border-bottom:1px solid var(--line);vertical-align:top;line-height:1.45}
.rrec{margin:0;padding:0;list-style:none;display:grid;gap:8px;counter-reset:rr}
.rrec li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:start;background:var(--surface-2);border-radius:12px;padding:10px 12px;counter-increment:rr}
.rrec li .pill{white-space:nowrap}
.rrec b{display:block;font-size:13.5px}
.rrec small{display:block;color:var(--muted);font-size:12.5px;margin-top:2px}
.rrec .ren{font-weight:650}
.rft{flex-wrap:wrap}
.rnote{font-size:12px;color:var(--muted)}
.sct{margin-bottom:12px;flex-wrap:wrap;max-width:100%}
.scf{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}
.scf .wide{grid-column:span 2}
.chatp{display:grid;gap:12px}
.chatbox{min-height:260px;max-height:min(58vh,560px);overflow-y:auto;display:flex;flex-direction:column;gap:10px;padding:12px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2)}
.bub{max-width:min(78ch,88%);padding:10px 14px;border-radius:14px;font-size:14px;line-height:1.55}
.bub.me{align-self:flex-end;background:var(--p1);color:var(--p1-ink);border-bottom-right-radius:4px}
.bub.ai{align-self:flex-start;background:var(--surface);border:1px solid var(--line);border-bottom-left-radius:4px}
.bub p{margin:0 0 6px}.bub p:last-child{margin:0}
.bub ul{margin:4px 0 6px;padding-left:18px}
.bub .mh{display:block;margin:6px 0 2px}
.berr{display:block;color:var(--bad);margin-top:4px}
.cempty{margin:auto;text-align:center;display:grid;gap:10px;max-width:640px}
.sugs{display:flex;flex-wrap:wrap;gap:8px;justify-content:center}
.sug{border:1px solid var(--line);background:var(--surface);border-radius:20px;padding:7px 13px;font-size:13px;color:var(--ink)}
.sug:hover{border-color:var(--accent)}
.chatin{display:flex;gap:10px;align-items:flex-end}
.chatin textarea{flex:1;min-width:0;resize:vertical;font:inherit;font-size:14px;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:12px;padding:10px 12px}
.chatin textarea:focus{outline:none;border-color:var(--accent);box-shadow:var(--ring)}
@media (max-width:640px){.scf .wide{grid-column:auto}.rdoc{padding:18px 16px}.bub{max-width:100%}}

.log li,.pcard,.pchip,.jcard,.jmain,.res li,.dlg,.aitem,.bub,.rdoc,.rsec,.selj,.opair,.ggn,.dn,td.rn,.hbl,.tag,.actrow,.box,.toast,.duel,.wlist2,.chg li,.glab{overflow-wrap:anywhere}

.top h1,.top h1 button{overflow-wrap:anywhere}
.seg{flex-wrap:wrap;max-width:100%}

.duel,.wlist2,.alist,.log,.res,.abl{grid-template-columns:minmax(0,1fr)}
.jchip,.selj,.pill,.chip-save{max-width:100%;overflow-wrap:anywhere;text-align:left}
.duel li,.wlist2 li,.duel button,.wlist2 button{min-width:0}


.gp-boot{min-height:100vh;display:grid;place-items:center;color:var(--muted);font-weight:600}
.mfaqr{display:grid;place-items:center;background:#fff;border-radius:12px;padding:10px}
.mfaqr svg{width:200px;height:200px}
