:root{--bord:#5E1A2A;--bord2:#4a1421;--gold:#D4AF5A;--gold2:#9c7a2c;--ivory:#F6F1E7;--paper:#fffdf8;--ink:#2A2422;--ink2:#5d5450;--mut:#8a807b;--line:#e8dfd0;
 --s-bozza:#8a807b;--s-pronto:#2f6fb0;--s-programmato:#b8862b;--s-in_corso:#7b4bb0;--s-a_mano:#d0661d;--s-pubblicato:#2e7d4f;--s-errore:#b3261e;
 --c-spotify:#1db954;--c-youtube:#e62117;--c-youtube_shorts:#ff6b5a;--c-instagram:#c13584;--c-tiktok:#111;--c-altro:#8a807b}
*{box-sizing:border-box}html,body{margin:0}[hidden]{display:none!important}
body{font:14px/1.45 Inter,system-ui,sans-serif;font-optical-sizing:auto;color:var(--ink);background:var(--ivory)}
body.locked .app,body.locked .top{display:none}
a{color:var(--bord)}
.app{display:grid;grid-template-columns:240px 1fr;min-height:100vh}
.side{background:var(--bord);color:#f1e6cb;display:flex;flex-direction:column;position:sticky;top:0;height:100vh;overflow:auto}
.brand{display:flex;gap:10px;align-items:center;padding:18px 16px 14px;border-bottom:1px solid rgba(255,255,255,.1)}
.brand .logo{width:40px;height:40px}
.brand h1{font:700 17px/1.1 Inter,sans-serif;margin:0;color:var(--gold);letter-spacing:.02em}.brand h1 em{font-style:normal;color:#f1e6cb;font-weight:500}
.brand p{margin:3px 0 0;font-size:11.5px;color:#d9c79f}
.nav{display:flex;flex-direction:column;padding:12px 8px;gap:2px}
.nav a{color:#f1e6cb;text-decoration:none;padding:8px 10px;border-radius:7px;font-weight:500}
.nav a:hover{background:rgba(255,255,255,.08)}.nav a.on{background:rgba(212,175,90,.18);box-shadow:inset 3px 0 var(--gold);color:#fff}
.legend{padding:8px 16px;font-size:11.5px;color:#d9c79f;display:flex;flex-direction:column;gap:4px}
.legend b{font-size:10.5px;text-transform:uppercase;letter-spacing:.1em;color:#c9b07a;margin-top:6px}
.legend span{display:flex;align-items:center;gap:7px}
.sfoot{margin-top:auto;padding:12px 16px;border-top:1px solid rgba(255,255,255,.1);font-size:12px;display:flex;justify-content:space-between;align-items:center;gap:8px}
.sfoot button{background:none;border:1px solid rgba(255,255,255,.25);color:#f1e6cb;padding:4px 10px;font-size:12px}
button{font:inherit;cursor:pointer;border-radius:8px;border:1px solid var(--line);background:#fff;color:var(--ink);padding:7px 12px;min-height:36px}
button:hover{border-color:#cdbfa8}button.pri{background:var(--bord);color:#fff;border-color:var(--bord)}button.pri:hover{background:var(--bord2)}
button.gold{background:var(--gold);border-color:var(--gold);color:var(--bord2);font-weight:600}
button.danger{color:var(--s-errore)}button:disabled{opacity:.5;cursor:default}
main{padding:22px 26px 60px;min-width:0}
.ch{display:flex;justify-content:space-between;align-items:center;gap:14px;margin-bottom:16px;flex-wrap:wrap}
.ch h2{font:700 24px/1.15 Inter,sans-serif;margin:0;color:var(--bord)}.ch p{margin:3px 0 0;color:var(--ink2)}
.tools{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
select,input,textarea{font:inherit;color:var(--ink);border:1px solid var(--line);border-radius:8px;padding:8px 10px;background:#fff}
textarea{resize:vertical;min-height:110px;width:100%}
.dot{width:9px;height:9px;border-radius:50%;display:inline-block;flex:none}
.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--line);gap:1px}
.cal .dow{background:#efe6d6;font-size:11px;text-transform:uppercase;letter-spacing:.08em;color:var(--ink2);padding:6px 8px;font-weight:600}
.day{background:var(--paper);min-height:118px;padding:6px;display:flex;flex-direction:column;gap:3px;min-width:0}
.day.out{background:#f7f2e8}.day.out .n{color:#c2b8a8}
.day.today{box-shadow:inset 0 0 0 2px var(--gold)}
.day .hd{display:flex;justify-content:space-between;align-items:center}
.day .n{font-weight:600;font-size:12.5px;color:var(--ink2)}
.day .add{opacity:0;border:0;background:none;padding:0 6px;min-height:22px;color:var(--bord);font-size:16px;line-height:1}
.day:hover .add,.day .add:focus{opacity:1}
.chip{display:flex;align-items:center;gap:5px;width:100%;text-align:left;border:0;border-left:3px solid var(--c);background:#f8f1e4;border-radius:5px;padding:3px 6px;font-size:11.5px;min-height:24px;line-height:1.2}
.chip:hover{background:#f1e5cf}.chip .t{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}
.chip .tm{font-variant-numeric:tabular-nums;color:var(--ink2)}
.chip.st-pubblicato{opacity:.62}.chip.st-errore,.chip.st-a_mano{background:#fdebdd}
.list{background:var(--paper);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.row{display:grid;grid-template-columns:110px 150px minmax(0,1fr) 160px;gap:12px;align-items:center;padding:10px 14px;border-top:1px solid var(--line);cursor:pointer;width:100%;text-align:left;background:none;border-left:0;border-right:0;border-bottom:0;border-radius:0}
.row:first-child{border-top:0}.row:hover{background:#fbf6ec}
.row .when{font-variant-numeric:tabular-nums;color:var(--ink2);font-size:12.5px}
.ch-tag{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;font-weight:600}
.ch-tag i{width:10px;height:10px;border-radius:3px;background:var(--c);display:inline-block}
.st{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--sc)}
.st::before{content:"";width:8px;height:8px;border-radius:50%;background:var(--sc)}
.sub{color:var(--ink2);font-size:12.5px}
.group-h{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--mut);margin:18px 0 8px;font-weight:600}
.cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:12px}
.card{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:14px 16px;display:flex;flex-direction:column;gap:8px}
.card h3{margin:0;font-size:16px;color:var(--bord)}.card .k{font-size:11.5px;text-transform:uppercase;letter-spacing:.08em;color:var(--gold2);font-weight:600}
.card ul{margin:0;padding-left:18px;color:var(--ink2);font-size:13px}
.bar{display:flex;gap:4px;flex-wrap:wrap}.pill{font-size:11.5px;border-radius:20px;padding:2px 8px;background:#f1e8d6;color:var(--ink2)}
.warn{background:#fdebdd;color:#8a3a10;border-radius:10px;padding:10px 14px;margin-bottom:14px;font-size:13px}
.ok{background:#e6f2ea;color:#1f5b39;border-radius:10px;padding:10px 14px}
.empty{background:var(--paper);border:1px dashed var(--line);border-radius:12px;padding:26px;text-align:center;color:var(--ink2)}
.muted{color:var(--mut)}
.drop{border:2px dashed #d6c6a6;border-radius:12px;padding:22px;text-align:center;background:var(--paper);margin-bottom:14px;color:var(--ink2)}
.drop.over{background:#f6ecd8;border-color:var(--gold)}
.files .row{grid-template-columns:64px minmax(0,1fr) 120px 200px;cursor:default}
.thumb{width:64px;height:44px;border-radius:6px;background:#efe6d6;object-fit:cover;display:flex;align-items:center;justify-content:center;font-size:11px;color:var(--ink2)}
#modal{position:fixed;inset:0;background:rgba(42,20,26,.45);z-index:50;display:flex;justify-content:flex-end}
#modal[hidden]{display:none}
.sheet{background:var(--paper);width:min(560px,100%);height:100%;overflow:auto;padding:20px 22px 30px;display:flex;flex-direction:column;gap:12px;box-shadow:-10px 0 40px rgba(0,0,0,.2)}
.sheet h3{margin:0;color:var(--bord);font-size:19px}
.sheet .x{position:sticky;top:0;align-self:flex-end;margin-bottom:-36px}
.f{display:flex;flex-direction:column;gap:4px;font-size:12.5px;color:var(--ink2);font-weight:500}
.f input,.f select,.f textarea{font-weight:400}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.check{display:flex;gap:8px;align-items:flex-start;font-size:13px;color:var(--ink)}
.picker{border:1px solid var(--line);border-radius:8px;max-height:170px;overflow:auto;background:#fff}
.picker label{display:flex;gap:8px;align-items:center;padding:6px 10px;border-top:1px solid #f1eadc;font-size:13px}
.picker label:first-child{border-top:0}
.actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:4px}
.count{font-size:11.5px;color:var(--mut);text-align:right}.count.over{color:var(--s-errore);font-weight:600}
.log{font-size:12px;color:var(--ink2);border-top:1px solid var(--line);padding-top:8px}
#toast{position:fixed;bottom:18px;left:50%;transform:translateX(-50%);background:var(--bord2);color:#fff;padding:9px 16px;border-radius:9px;opacity:0;transition:opacity .2s;z-index:60;pointer-events:none}
#toast.on{opacity:1}
.top{display:none}
#auth{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bord);padding:20px}#auth[hidden]{display:none}
.abox{background:var(--paper);border-radius:14px;padding:28px;width:100%;max-width:380px;display:flex;flex-direction:column;gap:12px;box-shadow:0 20px 60px rgba(0,0,0,.3)}
.abox h2{font:700 22px Inter,sans-serif;margin:0;color:var(--bord)}.abox p{margin:0;color:var(--ink2)}
.err{color:var(--s-errore)!important;min-height:1em}.key{font:15px ui-monospace,monospace;word-break:break-all;background:#f3ecdf;padding:10px;border-radius:8px}
@media (max-width:900px){
 .app{display:block}.side{position:fixed;inset:0 auto 0 0;width:260px;z-index:40;transform:translateX(-100%);transition:transform .2s}
 body.menu .side{transform:none;box-shadow:0 0 40px rgba(0,0,0,.4)}
 .top{display:flex;justify-content:space-between;align-items:center;background:var(--bord);color:var(--gold);padding:10px 14px;position:sticky;top:0;z-index:30}
 .top button{background:none;border:1px solid rgba(255,255,255,.3);color:#fff}
 main{padding:14px 10px 50px}
 .cal{grid-template-columns:1fr}.cal .dow,.day.out,.day.nopost:not(.today){display:none}.day{min-height:0}.day .add{opacity:1}
 .row{grid-template-columns:1fr;gap:4px}.files .row{grid-template-columns:64px 1fr}.files .row>:nth-child(n+3){grid-column:2}
 .grid2{grid-template-columns:1fr}
}
