
/* OFF LIMITS — single dark brand world: black, hazard gold, condensed type */
:root{
  color-scheme:dark;
  --bg:#070707; --surface:#101010; --surface-2:#191919; --surface-3:#222; --line:#2A2A2A; --line-2:#3A3A3A;
  --ink:#F3F1EB; --ink-2:#C4C0B5; --muted:#8C887D;
  --gold:#E9B91E; --gold-hi:#F6C931; --gold-lo:#B98E0C; --on-gold:#0A0A0A;
  --ok:#5FCB8F; --ok-bg:rgba(95,203,143,.14); --warn:#FF8B4D; --warn-bg:rgba(255,139,77,.14); --bad:#FF5A5A; --bad-bg:rgba(255,90,90,.15);
  --info:#86B4FF; --info-bg:rgba(134,180,255,.14); --new:#F6C931; --new-bg:rgba(246,201,49,.13);
  --hazard:repeating-linear-gradient(-45deg,var(--gold) 0 10px,#0A0A0A 10px 20px);
  --f-display:"Bebas Neue","Oswald","Arial Narrow",Impact,sans-serif;
  --f-label:"Montserrat",system-ui,sans-serif;
  --f-body:"Barlow",system-ui,-apple-system,"Segoe UI",sans-serif;
  --f-mono:"JetBrains Mono",ui-monospace,Menlo,monospace;
  --r:6px;
}
*{box-sizing:border-box}
html,body{height:100%}
body{background:var(--bg);color:var(--ink);font-family:var(--f-body);font-size:16px;line-height:1.5;-webkit-font-smoothing:antialiased}
button,input,select,textarea{font:inherit;color:inherit}
a{color:var(--gold-hi)}
:focus-visible{outline:2px solid var(--gold-hi);outline-offset:2px}
h1,h2,h3{margin:0;text-wrap:balance;font-weight:400}
p{margin:0}
.disp{font-family:var(--f-display);font-weight:400;letter-spacing:.02em;line-height:.95;text-transform:uppercase}
.label{font-family:var(--f-label);font-size:10.5px;text-transform:uppercase;letter-spacing:.28em;color:var(--gold);font-weight:600}
.muted{color:var(--muted)}
.num{font-variant-numeric:tabular-nums}
.mono{font-family:var(--f-mono);font-size:13px}
.gold{color:var(--gold-hi)}

/* buttons & inputs */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:1px solid var(--line-2);background:var(--surface-2);border-radius:4px;padding:10px 16px;font-family:var(--f-label);font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.12em;cursor:pointer;white-space:nowrap;text-decoration:none;color:var(--ink)}
.btn:hover{border-color:var(--gold)}
.btn:disabled{opacity:.45;cursor:not-allowed}
.btn.gold{background:linear-gradient(180deg,var(--gold-hi),var(--gold));color:var(--on-gold);border-color:var(--gold)}
.btn.gold:hover{filter:brightness(1.06)}
.btn.ok{background:var(--ok);color:#06140c;border-color:var(--ok)}
.btn.warn{background:transparent;color:var(--warn);border-color:var(--warn)}
.btn.ghost{background:transparent;border-color:transparent}
.btn.ghost:hover{border-color:var(--line-2)}
.btn.sm{padding:7px 11px;font-size:11px}
.field{display:grid;gap:7px}
.field>span{font-family:var(--f-label);font-size:10.5px;font-weight:600;text-transform:uppercase;letter-spacing:.16em;color:var(--ink-2)}
.input,select.input,textarea.input{width:100%;background:#0B0B0B;border:1px solid var(--line-2);border-radius:4px;padding:11px 12px;font-size:16px;color:var(--ink)}
textarea.input{resize:vertical;min-height:80px}
.input:focus{border-color:var(--gold);outline:none}
.input::placeholder{color:#6d6a62}
.pill{display:inline-flex;align-items:center;gap:6px;font-family:var(--f-label);font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;padding:4px 9px;border-radius:3px;white-space:nowrap}
.pill::before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor}
.st-nuovo{background:var(--new-bg);color:var(--new)}
.st-approvato{background:var(--ok-bg);color:var(--ok)}
.st-modifiche{background:var(--warn-bg);color:var(--warn)}
.st-pronto{background:var(--info-bg);color:var(--info)}
.st-pagata{background:var(--ok-bg);color:var(--ok)}
.st-da_pagare{background:var(--new-bg);color:var(--new)}
.st-scaduta{background:var(--warn-bg);color:var(--warn)}

/* brand pieces */
.hazard{height:8px;background:var(--hazard)}
.ruled{display:grid;gap:10px;justify-items:start}
.ruled::before,.ruled::after{content:"";height:2px;width:100%;background:linear-gradient(90deg,var(--gold),var(--gold-lo) 70%,transparent)}
.logo-full{width:min(300px,78vw);height:auto;display:block}
.mark{width:34px;height:34px;display:block}

/* boot / login / setup */
#boot{display:grid;place-items:center;height:100%;padding-inline:16px}
.gate{min-height:100%;display:grid;grid-template-rows:auto 1fr auto}
.gate-in{display:grid;place-items:center;padding:40px 16px 48px}
.gate-card{width:100%;max-width:420px;display:grid;gap:26px}
.gate-form{display:grid;gap:16px;background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--gold);border-radius:var(--r);padding:22px}
.gate-foot{padding:16px;text-align:center;font-family:var(--f-label);font-size:10px;letter-spacing:.3em;text-transform:uppercase;color:var(--muted)}
.err{color:var(--warn);font-size:14px;font-weight:600;min-height:1em}
.seg{display:flex;gap:4px;background:#0B0B0B;border:1px solid var(--line);padding:4px;border-radius:4px}
.seg button{flex:1;border:0;background:transparent;padding:9px;border-radius:3px;font-family:var(--f-label);font-size:11px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;cursor:pointer;color:var(--muted)}
.seg button[aria-pressed="true"]{background:var(--gold);color:var(--on-gold)}
.lock{display:flex;gap:8px;align-items:flex-start;font-size:13px;color:var(--muted)}
.lock svg{flex:none;margin-top:2px;color:var(--gold)}

/* shell */
.shell{display:grid;grid-template-columns:1fr;min-height:100%}
.side{display:none}
.topbar{position:relative;z-index:20;background:#070707;border-bottom:1px solid var(--line)}
.shell::before{content:"";position:fixed;top:0;left:0;right:0;height:env(safe-area-inset-top,0px);background:#070707;z-index:40;pointer-events:none}
.topbar-in{display:flex;align-items:center;gap:12px;padding:10px 16px}
.client-chip{display:flex;align-items:center;gap:11px;min-width:0;flex:1}
.logo-box{width:42px;height:42px;border-radius:6px;background:var(--surface-3);display:grid;place-items:center;overflow:hidden;flex:none;border:1px solid var(--line-2)}
.logo-box img{width:100%;height:100%;object-fit:cover;display:block}
.logo-box.ini{background:var(--surface-3)}
.logo-box .ini{font-family:var(--f-display);font-size:20px;color:var(--gold-hi);letter-spacing:.04em}
.client-chip .nm{font-family:var(--f-display);font-size:25px;letter-spacing:.03em;line-height:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.client-chip .sub{font-family:var(--f-label);font-size:9.5px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold)}
main{padding:22px 16px 116px;max-width:1200px;width:100%;margin-inline:auto;display:grid;gap:26px;align-content:start}
.tabbar{position:fixed;left:0;right:0;bottom:0;z-index:30;background:#0B0B0B;border-top:1px solid var(--line);display:flex;padding:6px 4px calc(6px + env(safe-area-inset-bottom,0px))}
.tabbar button{flex:1;border:0;background:transparent;display:grid;justify-items:center;gap:3px;padding:6px 2px;font-family:var(--f-label);font-size:9.5px;letter-spacing:.08em;text-transform:uppercase;font-weight:700;color:var(--muted);cursor:pointer;position:relative;min-width:0}
.tabbar button span{overflow:hidden;text-overflow:ellipsis;max-width:100%}
.tabbar button svg{width:22px;height:22px}
.tabbar button[aria-current="page"]{color:var(--gold-hi)}
.tabbar button[aria-current="page"]::after{content:"";position:absolute;top:-6px;left:22%;right:22%;height:3px;background:var(--gold)}
.badge{position:absolute;top:1px;left:calc(50% + 5px);min-width:17px;height:17px;padding:0 5px;border-radius:9px;background:var(--gold);color:var(--on-gold);font-family:var(--f-body);font-size:11px;font-weight:700;display:grid;place-items:center;letter-spacing:0}
@media (min-width:920px){
  .shell{grid-template-columns:256px 1fr}
  .side{display:flex;flex-direction:column;gap:20px;position:sticky;top:0;height:100vh;padding:24px 16px;border-right:1px solid var(--line);background:#0B0B0B;overflow:auto}
  .tabbar{display:none}
  .topbar{display:none}
  main{padding:34px 40px 56px}
  .side nav{display:grid;gap:2px}
  .side nav button{display:flex;align-items:center;gap:12px;border:0;background:transparent;padding:11px 12px;border-radius:4px;font-family:var(--f-label);font-size:11.5px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);cursor:pointer;text-align:left;position:relative}
  .side nav button:hover{background:var(--surface-2)}
  .side nav button svg{width:19px;height:19px}
  .side nav button[aria-current="page"]{background:var(--surface-2);color:var(--gold-hi)}
  .side nav button[aria-current="page"]::before{content:"";position:absolute;left:0;top:8px;bottom:8px;width:3px;background:var(--gold)}
  .side nav .badge{position:static;margin-left:auto}
  .side-foot{margin-top:auto;display:grid;gap:10px}
  .side .client-chip{padding:12px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r)}
}
.side .sep{font-family:var(--f-label);font-size:9.5px;text-transform:uppercase;letter-spacing:.28em;color:var(--gold);font-weight:700;padding:14px 12px 6px}

/* page header */
.ph{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:14px}
.ph h1{font-size:clamp(46px,9vw,68px)}
.ph p{color:var(--ink-2);max-width:62ch;margin-top:4px}
.banner{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between;background:var(--hazard);border-radius:4px;padding:6px}
.banner>span{background:#0A0A0A;color:var(--ink);padding:8px 12px;border-radius:3px;font-weight:600;font-size:14px}
.note{background:var(--surface);border:1px solid var(--line);border-left:3px solid var(--gold);border-radius:4px;padding:13px 15px;color:var(--ink-2);font-size:15px}

/* stats */
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:12px}
.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px 16px 14px;display:grid;gap:4px;text-align:left;cursor:pointer;position:relative;overflow:hidden}
.stat:hover{border-color:var(--gold)}
.stat.static{cursor:default}.stat.static:hover{border-color:var(--line)}
.stat .v{font-family:var(--f-display);font-size:52px;line-height:1;letter-spacing:.02em}
.stat .v.sm{font-size:40px}
.stat .d{font-size:13.5px;color:var(--muted)}
.stat.hot{border-color:var(--gold)}
.stat.hot::after{content:"";position:absolute;right:0;top:0;width:44px;height:44px;background:var(--hazard);clip-path:polygon(100% 0,0 0,100% 100%)}
.sec{display:grid;gap:14px}
.sec-h{display:flex;align-items:baseline;justify-content:space-between;gap:10px;border-bottom:1px solid var(--line);padding-bottom:8px}
.sec-h h2{font-size:32px}

/* media grid */
.filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.chip{border:1px solid var(--line-2);background:transparent;border-radius:3px;padding:7px 12px;font-family:var(--f-label);font-size:10.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;cursor:pointer;color:var(--ink-2)}
.chip:hover{border-color:var(--gold)}
.chip[aria-pressed="true"]{background:var(--gold);color:var(--on-gold);border-color:var(--gold)}
.chip .c{opacity:.75;margin-left:6px;font-variant-numeric:tabular-nums}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(158px,1fr));gap:12px}
@media (min-width:700px){.grid{grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:18px}}
.tile{display:grid;gap:8px;border:0;background:transparent;padding:0;text-align:left;cursor:pointer;color:inherit}
.thumb{position:relative;aspect-ratio:4/5;max-width:100%;border-radius:4px;overflow:hidden;background:var(--surface-2);border:1px solid var(--line)}
.tile:hover .thumb{border-color:var(--gold)}
.thumb img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.ph-v,.ph-i{position:absolute;inset:0;display:grid;place-items:center;color:var(--muted)}
.ph-v{background:repeating-linear-gradient(90deg,transparent 0 22px,rgba(233,185,30,.06) 22px 23px),var(--surface-2)}
.ph-v .play,.mv .play{width:54px;height:54px;border-radius:50%;background:var(--gold);color:var(--on-gold);display:grid;place-items:center}
.thumb .kind{position:absolute;left:8px;bottom:8px;background:rgba(0,0,0,.78);color:var(--ink);font-family:var(--f-label);font-size:9.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;padding:4px 7px;border-radius:3px}
.thumb .pill{position:absolute;right:8px;top:8px;background:rgba(0,0,0,.82)}
.thumb .cm{position:absolute;right:8px;bottom:8px;background:rgba(0,0,0,.78);font-size:12px;font-weight:700;padding:3px 7px;border-radius:3px;display:flex;gap:4px;align-items:center}
.dl-badge{position:absolute;left:0;top:10px;font-family:var(--f-label);font-size:9.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;padding:4px 8px;background:var(--gold);color:var(--on-gold)}
.dl-badge.late{background:var(--warn);color:#140700}
.tile .t{font-weight:600;font-size:15px;line-height:1.3;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.tile .m{font-size:12.5px;color:var(--muted);margin-top:-6px}
.empty{background:var(--surface);border:1px dashed var(--line-2);border-radius:var(--r);padding:30px 18px;text-align:center;color:var(--muted);display:grid;gap:10px;justify-items:center}
.empty b{color:var(--ink);font-family:var(--f-display);font-size:26px;font-weight:400;letter-spacing:.03em}

/* modal */
.modal-wrap{position:fixed;inset:0;z-index:50;background:rgba(0,0,0,.78);display:grid;align-items:end;justify-items:center}
@media (min-width:920px){.modal-wrap{align-items:center;padding:24px}}
.modal{background:var(--bg);width:100%;max-width:1100px;max-height:94vh;overflow:auto;border-radius:8px 8px 0 0;border-top:3px solid var(--gold);display:grid;grid-template-columns:1fr;padding-bottom:env(safe-area-inset-bottom,0px)}
@media (min-width:920px){.modal{border-radius:6px;border:1px solid var(--line-2);border-top:3px solid var(--gold);grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);max-height:90vh;overflow:hidden}}
.mv{background:#000;display:grid;place-items:center;min-height:300px;position:relative}
.mv img{max-height:70vh;width:100%;object-fit:contain}
@media (min-width:920px){.mv{min-height:0;height:calc(90vh - 4px)}.mv img{max-height:100%;height:100%}}
.mv .vid{display:grid;gap:14px;justify-items:center;padding:28px;text-align:center}
.mv .vid .play{width:78px;height:78px}
.md{padding:18px 18px 24px;display:grid;gap:18px;align-content:start}
@media (min-width:920px){.md{overflow:auto;max-height:calc(90vh - 4px);padding:24px}}
.md h2{font-size:38px;word-break:break-word}
.md .x{justify-self:end;margin:-6px -6px -8px 0}
.actions{display:flex;flex-wrap:wrap;gap:8px}
.thread{display:grid;gap:10px}
.msg{display:grid;gap:3px;padding:10px 12px;border-radius:4px;background:var(--surface);border:1px solid var(--line);max-width:92%}
.msg.agenzia{justify-self:end;background:var(--surface-2);border-color:var(--gold-lo)}
.msg .who{font-family:var(--f-label);font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.16em;color:var(--muted)}
.msg.agenzia .who{color:var(--gold)}
.msg .txt{white-space:pre-wrap;word-break:break-word}
.msg.sys{max-width:100%;justify-self:center;background:transparent;border:0;padding:2px;color:var(--muted);font-size:12.5px;text-align:center}
.post-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px;display:grid;gap:10px}
.post-card .cap{white-space:pre-wrap;font-size:15.5px}
.post-card .tags{color:var(--gold-hi);font-size:14px;word-break:break-word}
.plat-chips{display:flex;flex-wrap:wrap;gap:6px}
.plat-chip{display:inline-flex;align-items:center;gap:5px;font-family:var(--f-label);font-size:9.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;padding:4px 8px;border-radius:3px;border:1px solid var(--line-2);color:var(--ink-2)}
.plat-chip svg{width:13px;height:13px}
.checks{display:flex;flex-wrap:wrap;gap:14px}
.checks label{display:flex;gap:7px;align-items:center;font-weight:600;font-size:15px}
.checks input{accent-color:var(--gold);width:18px;height:18px}

/* lists */
.list{display:grid;border:1px solid var(--line);border-radius:var(--r);overflow:hidden;background:var(--surface)}
.row{display:grid;grid-template-columns:1fr auto;gap:6px 14px;padding:14px 16px;border-top:1px solid var(--line);align-items:center}
.row:first-child{border-top:0}
.row .main{display:grid;gap:3px;min-width:0}
.row .ttl{font-weight:600;overflow:hidden;text-overflow:ellipsis}
.row .meta{font-size:13.5px;color:var(--muted);display:flex;flex-wrap:wrap;gap:4px 12px}
.row .end{display:grid;justify-items:end;gap:6px}
.amount{font-family:var(--f-display);font-size:30px;letter-spacing:.02em}

/* calendar */
.cal{display:grid;gap:26px}
.cal-month h2{font-size:36px;margin-bottom:12px}
.cal-row{display:grid;grid-template-columns:58px 60px 1fr;gap:14px;align-items:center;padding:12px 14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);text-align:left;cursor:pointer;width:100%;color:inherit}
.cal-row+.cal-row{margin-top:8px}
.cal-row:hover{border-color:var(--gold)}
.cal-day{display:grid;justify-items:center;line-height:1}
.cal-day b{font-family:var(--f-display);font-weight:400;font-size:42px;color:var(--gold-hi)}
.cal-day span{font-family:var(--f-label);font-size:9.5px;text-transform:uppercase;letter-spacing:.18em;color:var(--muted);font-weight:700;margin-top:2px}
.cal-th{position:relative;width:60px;height:75px;border-radius:3px;overflow:hidden;background:var(--surface-2)}
.cal-info{display:grid;gap:6px;min-width:0}
.cal-info .t{font-weight:700;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* report */
.months{display:flex;gap:8px;overflow-x:auto;padding-bottom:4px}
.plats{display:grid;grid-template-columns:repeat(auto-fit,minmax(290px,1fr));gap:14px}
.plat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px;display:grid;gap:16px;align-content:start}
.plat-h{display:flex;align-items:center;gap:10px}
.plat-h .ic{width:32px;height:32px;border-radius:4px;display:grid;place-items:center;background:var(--gold);color:var(--on-gold)}
.plat-h .ic svg{width:18px;height:18px}
.plat-h h3{font-size:30px}
.plat-h .handle{margin-left:auto;font-size:13px;color:var(--muted)}
.kpis{display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.kpi .k{font-family:var(--f-label);font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);font-weight:700}
.kpi .v{font-family:var(--f-display);font-size:34px;line-height:1.05;letter-spacing:.02em}
.kpi .dl{font-size:12.5px;font-weight:600}
.up{color:var(--ok)} .down{color:var(--warn)} .flat{color:var(--muted)}
.chart{position:relative}
.chart svg{display:block;width:100%;height:auto;overflow:visible}
.tip{position:absolute;pointer-events:none;background:var(--gold);color:var(--on-gold);font-size:12px;font-weight:700;padding:5px 8px;border-radius:3px;white-space:nowrap;transform:translate(-50%,-125%)}

/* admin */
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:14px}
.ccard{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:16px;display:grid;gap:14px}
.ccard .top{display:flex;gap:12px;align-items:center}
.ccard .logo-box{width:54px;height:54px}
.ccard h3{font-size:32px}
.counts{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.counts div{background:#0B0B0B;border:1px solid var(--line);border-radius:4px;padding:8px 10px}
.counts b{display:block;font-family:var(--f-display);font-weight:400;font-size:32px;line-height:1}
.counts span{font-family:var(--f-label);font-size:9px;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);font-weight:700}
.cred{display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;background:#0B0B0B;border:1px solid var(--line);border-radius:4px;padding:9px 10px;font-size:13px}
.cred code{font-family:var(--f-mono);font-size:13px;background:var(--surface-2);padding:2px 6px;border-radius:3px;color:var(--gold-hi)}
.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:14px}
.panel{background:var(--surface);border:1px solid var(--line);border-top:3px solid var(--gold);border-radius:var(--r);padding:18px;display:grid;gap:16px}
.panel h3{font-size:32px}
.log{font-family:var(--f-mono);font-size:12px;background:#050505;border:1px solid var(--line);border-radius:4px;padding:10px;max-height:260px;overflow:auto;white-space:pre-wrap;color:var(--ink-2)}
.bar{height:8px;border-radius:2px;background:var(--surface-3);overflow:hidden}
.bar i{display:block;height:100%;background:var(--hazard);width:0;transition:width .3s}
.swatch{width:44px;height:44px;border-radius:4px;border:1px solid var(--line-2);padding:0;cursor:pointer;background:none}
fieldset{border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;display:grid;gap:12px;margin:0}
legend{font-family:var(--f-display);font-size:22px;letter-spacing:.04em;padding:0 6px;color:var(--gold-hi)}

#toast{position:fixed;left:50%;bottom:calc(86px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);z-index:80;background:var(--gold);color:var(--on-gold);padding:11px 16px;border-radius:4px;font-weight:700;font-size:14px;box-shadow:0 8px 30px rgba(0,0,0,.5);max-width:calc(100vw - 32px)}
@media (min-width:920px){#toast{bottom:24px}}
@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}

/* PWA additions */
.thumb img.dr{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.mv iframe{width:100%;height:100%;min-height:420px;border:0;background:#000}
@media (min-width:920px){.mv iframe{height:calc(90vh - 4px)}}
.mv img.full{max-height:70vh;width:100%;object-fit:contain}
@media (min-width:920px){.mv img.full{max-height:100%;height:100%}}
.install{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap}

/* ---------- report (in-app + PDF) ---------- */
.rp-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.rp-bar .months{margin:0}
.rp{--serif:"Playfair Display",Georgia,serif;display:grid;gap:18px}
.rp-page{background:#000;border:1px solid var(--line);border-radius:var(--r);padding:clamp(22px,5vw,56px);color:#F2C14E;font-family:var(--f-label);position:relative;overflow:hidden}
.rp-cover{min-height:min(88vh,1000px);display:flex;flex-direction:column;align-items:center;text-align:center}
.rp-logos{width:100%;display:flex;justify-content:space-between;align-items:center;gap:20px}
.rp-logos img{height:clamp(46px,9vw,80px);width:auto}
.rp-logos img.cl{width:clamp(56px,11vw,96px);height:clamp(56px,11vw,96px);object-fit:cover;border-radius:8px}
.rp-cname{font-family:var(--serif);font-size:clamp(22px,4vw,34px);color:#F2C14E}
.rp-big{font-family:var(--serif);font-size:clamp(200px,42vw,380px);line-height:.8;color:#3A2E0E;margin-top:clamp(24px,6vh,60px)}
.rp-title{font-family:var(--serif);font-size:clamp(56px,13vw,120px);letter-spacing:.02em;color:#F9BE45;margin-top:-.62em;line-height:1}
.rp-rule{width:min(300px,50%);height:3px;margin:22px auto;background:linear-gradient(90deg,transparent,#E9B91E,transparent)}
.rp-sub{font-size:clamp(15px,2.6vw,22px);color:#F2C14E;font-weight:500}
.rp-month{margin-top:8px;font-size:14px;letter-spacing:.3em;text-transform:uppercase;color:#C9A43C}
.rp-icons{margin-top:auto;padding-top:36px;display:flex;align-items:center;gap:22px;color:#F2C14E}
.rp-icons svg{width:42px;height:42px}
.rp-icons i{width:1px;height:32px;background:#6B5520}
.rp-foot{margin-top:14px;padding-top:12px;border-top:1px solid #6B5520;width:min(460px,90%);font-size:14px}
.rp-head{display:flex;align-items:center;gap:clamp(16px,4vw,40px);margin-bottom:clamp(24px,5vw,48px)}
.rp-num{display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;align-items:end;column-gap:6px}
.rp-vert{grid-row:1/3;writing-mode:vertical-rl;transform:rotate(180deg);font-family:var(--serif);font-size:30px;letter-spacing:.06em;color:#4A3B12;line-height:1}
.rp-n{font-family:var(--serif);font-size:84px;line-height:.85;color:#4A3B12}
.rp-num img{height:34px;opacity:.55}
.rp-clogo img{width:clamp(48px,9vw,76px);height:clamp(48px,9vw,76px);object-fit:cover;border-radius:8px}
.rp-h{font-family:var(--serif);font-size:clamp(32px,6.5vw,56px);color:#F9BE45;text-align:center;letter-spacing:.02em;text-transform:uppercase;line-height:1.05}
.rp-h2{font-family:var(--serif);font-size:clamp(24px,4vw,34px);color:#F9BE45;text-transform:uppercase;margin:34px 0 4px;text-align:center}
.rp-cmp{text-align:center;color:#C9A43C;font-size:13px;letter-spacing:.12em;text-transform:uppercase;margin:10px 0 28px}
.rp-rows{border-left:4px solid #B38A12;padding:6px 0 6px clamp(14px,3vw,28px);display:grid;gap:clamp(14px,2.6vw,26px);margin:12px 0}
.rp-row{display:flex;justify-content:space-between;align-items:baseline;gap:14px;font-size:clamp(16px,2.8vw,22px)}
.rp-row span{color:#F2C14E}
.rp-row b{font-weight:500;color:#F9D27A;white-space:nowrap}
.rp-row.sm{font-size:15px}
.rp-d{font-size:.85em;margin-left:4px}
.rp-d.up{color:#3DBB6E}.rp-d.down{color:#E5484D}.rp-d.flat{color:#C9A43C}
.rp-plats{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:22px}
.rp-plat{border-left:4px solid #B38A12;padding-left:16px;display:grid;gap:10px;align-content:start}
.rp-plat-h{display:flex;align-items:center;gap:10px;font-family:var(--serif);font-size:24px;color:#F9BE45}
.rp-plat-h .ic svg{width:24px;height:24px}
.rp-chart{margin-top:28px}
.rp-concl{border-left:4px solid #B38A12;padding-left:clamp(14px,3vw,24px);white-space:pre-wrap;font-size:clamp(15px,2.5vw,19px);line-height:1.55;color:#F2C14E;margin-top:18px}
@media print{
  @page{size:A4;margin:0}
  html,body{background:#000!important}
  body *{visibility:hidden}
  .rp,.rp *{visibility:visible}
  .rp{position:absolute;left:0;top:0;width:210mm;gap:0}
  .no-print{display:none!important}
  .rp-page{width:210mm;min-height:297mm;border:0;border-radius:0;padding:22mm 18mm;break-after:page;page-break-after:always;-webkit-print-color-adjust:exact;print-color-adjust:exact}
  .rp-cover{min-height:297mm}
  .rp-big{font-size:340px}.rp-title{font-size:110px}
}

/* ---------- contratto ---------- */
.gate-card.wide{max-width:760px;width:100%}
.contract-box{max-height:46vh;overflow:auto;border:1px solid var(--line-2);border-radius:var(--r);padding:14px 16px;background:var(--surface);display:grid;gap:6px;font-size:14.5px}
.contract-box.inline{max-height:none}
.contract-box h3{font-family:var(--f-display);font-size:22px;letter-spacing:.02em;color:var(--gold-hi);margin-bottom:6px}
.art summary{cursor:pointer;padding:8px 0;border-bottom:1px solid var(--line);color:var(--ink)}
.art ol{margin:8px 0 12px;padding-left:22px;display:grid;gap:6px;color:var(--ink-2)}
.clauses{font-size:13px;color:var(--muted);margin-top:10px;border-top:1px solid var(--line);padding-top:10px}
.check{display:flex;gap:10px;align-items:flex-start;font-size:14.5px;cursor:pointer}
.check input{width:20px;height:20px;accent-color:var(--gold);flex:none;margin-top:1px}
.contract-link{display:flex;align-items:center;gap:10px;width:100%;text-align:left;cursor:pointer;margin:0 0 18px;color:var(--ink)}
.contract-link svg{width:20px;height:20px;color:var(--gold-hi);flex:none}
.faq{display:grid;gap:8px}
.faq-i{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px}
.faq-i summary{cursor:pointer;font-weight:600}
.faq-i p{margin:8px 0;color:var(--ink-2)}
.faq-search{max-width:520px;margin-bottom:8px}

/* ---------- calendario ---------- */
.cal{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px;display:grid;gap:10px;margin-bottom:6px}
.cal-h{display:flex;align-items:center;justify-content:space-between;gap:10px}
.cal-h h2{font-size:30px}
.cal-g{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}
.wd{font-family:var(--f-label);font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--muted);text-align:center;padding:4px 0}
.cd{min-height:54px;border:1px solid var(--line);border-radius:5px;background:var(--surface-2);display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:4px;padding:6px 2px;cursor:pointer;color:var(--ink)}
.cd.empty-d{background:transparent;border-color:transparent;cursor:default}
.cd.today{border-color:var(--gold)}
.cd.sel{background:var(--gold);color:var(--on-gold)}
.cd .dn{font-size:14px;font-variant-numeric:tabular-nums;font-weight:600}
.dots{display:flex;gap:3px;flex-wrap:wrap;justify-content:center}
.dot{width:7px;height:7px;border-radius:50%;display:inline-block;flex:none}
.dot.ev-shoot{background:var(--gold-hi)}.dot.ev-post{background:var(--info)}.dot.ev-video{background:var(--ok)}
.cd.sel .dot{outline:1.5px solid var(--on-gold)}
.legend{display:flex;gap:16px;flex-wrap:wrap;font-size:13px;color:var(--muted)}
.legend span{display:inline-flex;align-items:center;gap:6px}
.cal-list{display:grid;gap:10px}
.shoot{background:var(--surface);border:1px solid var(--line);border-left:4px solid var(--gold);border-radius:var(--r);padding:14px;display:grid;gap:8px}
.shoot-h{display:flex;align-items:flex-start;gap:12px}
.shoot-h .ic{width:34px;height:34px;border-radius:5px;background:var(--gold);color:var(--on-gold);display:grid;place-items:center;flex:none}
.shoot-h .ic svg{width:20px;height:20px}
.shoot-h .pill{margin-left:auto;flex:none}
.shoot-h .muted{font-size:14px}
.shoot-n{margin:0;color:var(--ink-2);font-size:14.5px;white-space:pre-wrap}
.cal-pub{display:grid;grid-template-columns:auto 1fr;gap:4px 10px;align-items:center;text-align:left;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:12px 14px;cursor:pointer;color:var(--ink)}
.cal-pub .muted{grid-column:2;font-size:13.5px}

/* sezioni (menu) */
.menu-g{margin:0 0 16px}.menu-g>.label{display:block;margin:0 0 8px;color:var(--gold)}
.menu-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px}
.menu-card{display:flex;align-items:center;gap:12px;text-align:left;cursor:pointer;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px;color:var(--ink);font:inherit}
.menu-card:hover{border-color:var(--gold)}
.menu-card svg{width:24px;height:24px;color:var(--gold-hi);flex:none}
.menu-card b{display:block;font-size:15px}.menu-card small{display:block;color:var(--muted);font-size:12.5px;margin-top:2px}

/* pagamenti (solo agenzia) */
.pill.pay-pagata{background:var(--ok-bg);color:var(--ok)}
.pill.pay-attesa{background:var(--new-bg);color:var(--new)}
.pill.pay-ritardo{background:var(--warn-bg);color:var(--warn)}
.pill.pay-nonpagata{background:var(--bad-bg);color:var(--bad)}
.row.inv{border-left:4px solid transparent}
.row.inv.pay-pagata{border-left-color:var(--ok);background:rgba(95,203,143,.07)}
.row.inv.pay-ritardo{border-left-color:var(--warn);background:rgba(255,139,77,.08)}
.row.inv.pay-nonpagata{border-left-color:var(--bad);background:rgba(255,90,90,.09)}
.row.inv .hint{font-size:12px;color:var(--muted)}
.row.inv .wa-due{color:var(--warn);font-weight:700}
.stat.pay-pagata{border-color:rgba(95,203,143,.45)} .stat.pay-pagata .label{color:var(--ok)}
.stat.pay-ritardo{border-color:rgba(255,139,77,.45)} .stat.pay-ritardo .label{color:var(--warn)}
.stat.pay-nonpagata{border-color:rgba(255,90,90,.5)} .stat.pay-nonpagata .label{color:var(--bad)}
.chips{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 8px}
.pay-legend{font-size:12.5px;color:var(--muted);margin:4px 0 12px;display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.dotc{display:inline-block;width:10px;height:10px;border-radius:50%;margin-left:6px}
.dotc.pay-pagata{background:var(--ok)}.dotc.pay-ritardo{background:var(--warn)}.dotc.pay-nonpagata{background:var(--bad)}
/* media da Clienti In Cloud */
.thumb video.dr{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block;background:#000}
.mv video.full{max-height:70vh;width:100%;background:#000;display:block}
@media (min-width:920px){.mv video.full{max-height:100%;height:100%}}

.st-storia{background:rgba(200,140,255,.14);color:#C98CFF}
.dot.ev-story{background:#C98CFF}

.meta .due{color:var(--bad);font-weight:700;text-decoration:underline;text-decoration-color:var(--bad);text-underline-offset:3px}

/* scadenze fatture nel calendario */
.dot.ev-due{background:var(--bad)}
.cal-due{border-color:rgba(255,90,90,.5)!important}
.cal-due b{color:var(--bad)}
.cd:has(.ev-due) .dn{color:var(--bad);font-weight:800;text-decoration:underline;text-underline-offset:3px}
/* stories in rotazione */
.grid.stories{grid-template-columns:repeat(auto-fill,minmax(118px,1fr));gap:10px}
@media (min-width:700px){.grid.stories{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px}}
.thumb.st9{aspect-ratio:9/16}
.story-t{text-decoration:none}
.story-t .meta b{font-size:13px}
.story-note{line-height:1.55}
.thumb.st9{border:0;background:#000}
.thumb.st9 img.dr{transform:scale(1.045);transform-origin:center}
.story-view{position:fixed;inset:0;z-index:200;background:rgba(0,0,0,.94);display:grid;place-items:center;padding:16px}
.sv-box{height:min(92vh,calc((100vw - 32px)*16/9));aspect-ratio:9/16;overflow:hidden;border-radius:10px;background:#000}
.sv-box img{width:100%;height:100%;object-fit:cover;transform:scale(1.045);display:block}
.sv-x{position:absolute;top:calc(12px + env(safe-area-inset-top,0px));right:14px;width:44px;height:44px;border:0;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;font-size:28px;line-height:1;cursor:pointer}
.thumb.st9 video.dr{transform:scale(1.045)}
.thumb .play{position:absolute;inset:0;display:grid;place-items:center;font-size:30px;color:#fff;text-shadow:0 2px 10px rgba(0,0,0,.7);pointer-events:none}
.sv-box video{width:100%;height:100%;object-fit:cover;display:block;background:#000}
.cred .dev{display:inline-flex;align-items:center;gap:4px;margin-left:6px;font-size:12.5px;color:var(--muted)}
.cred .dev .btn{padding:0 6px;min-height:0;line-height:1.4}
