/* dropsome — design system v2 · AWESOME. */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&display=swap');

:root{
  --bg:#0e0e0f; --bg2:#1a1a1b; --bg3:#222223; --bg4:#2b2b2d; --bg5:#343436;
  --line:rgba(255,255,255,.06); --line2:rgba(255,255,255,.11); --line3:rgba(255,255,255,.2);
  --txt:#f3f2ef; --txt2:#a3a29e; --txt3:#6b6a66;
  --y:#5fcf7f; --n:#ef5a5a; --m:#f0b043; --acc:#ef6c3a; --acc2:#f28a5e;
  --serif:"Inter",-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;
  --sans:"Inter",-apple-system,BlinkMacSystemFont,"Helvetica Neue",Arial,sans-serif;
  --r:12px; --r2:18px; --r3:24px;
  --ease:cubic-bezier(.2,.7,.2,1);
  --shadow:0 24px 60px rgba(0,0,0,.5), 0 2px 8px rgba(0,0,0,.35);
}
*{box-sizing:border-box}
html,body{margin:0;min-height:100%}
body{background:var(--bg);color:var(--txt);font:14px/1.5 var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overscroll-behavior:none;letter-spacing:-.005em}
a{color:inherit;text-decoration:none}
img,video{-webkit-user-drag:none;user-drag:none;-webkit-touch-callout:none}
body:not(.owner) .vwrap img,body:not(.owner) .card img{pointer-events:none}
button{font:inherit;color:inherit;background:none;border:0;cursor:pointer;padding:0}
input{font:inherit;color:inherit}
::selection{background:rgba(239,108,58,.3)}
.spacer{flex:1}

/* ---------- gate ---------- */
.gate{position:fixed;inset:0;background:var(--bg);display:flex;align-items:center;justify-content:center;z-index:100;padding:24px}
.gate .box{width:min(460px,100%);background:var(--bg2);border:1px solid var(--line);border-radius:var(--r3);padding:34px 34px 30px;animation:rise .5s var(--ease) both;box-shadow:var(--shadow)}
.gate .eyebrow{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--txt3);margin-bottom:14px;font-weight:500}
.gate h1{font:600 clamp(28px,4.5vw,38px)/1.1 var(--sans);margin:0 0 8px;letter-spacing:-.025em}
.gate p{color:var(--txt2);margin:0 0 26px;font-size:13.5px}
.gate input{width:100%;background:var(--bg3);border:1px solid var(--line2);border-radius:var(--r);padding:13px 16px;font-size:15px;outline:none;transition:border-color .2s}
.gate input::placeholder{color:var(--txt3)}
.gate input:focus{border-color:var(--acc)}
.gate button{margin-top:14px;width:100%;background:var(--acc);color:#fff;border-radius:var(--r);padding:13px 24px;font-weight:600;font-size:14px;transition:all .2s var(--ease)}
.gate button:hover{background:var(--acc2);transform:translateY(-1px)}
@keyframes rise{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}

/* ---------- top bar (pannello) ---------- */
.top{position:sticky;top:12px;z-index:40;margin:12px 14px 0;background:rgba(26,26,27,.92);backdrop-filter:saturate(1.3) blur(18px);-webkit-backdrop-filter:saturate(1.3) blur(18px);border:1px solid var(--line2);border-radius:var(--r2);box-shadow:0 10px 30px rgba(0,0,0,.35)}
.top .r1{display:flex;align-items:center;gap:18px;padding:14px 18px 6px}
.top .r2{display:flex;align-items:center;gap:10px;padding:6px 14px 12px;flex-wrap:wrap}
.crumb{color:var(--txt2);font-size:13px;white-space:nowrap;transition:color .15s;background:var(--bg3);border-radius:999px;padding:6px 12px}
.crumb:hover{color:var(--txt);background:var(--bg4)}
.ttl{font:600 clamp(18px,2.4vw,24px)/1.1 var(--sans);letter-spacing:-.025em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.ttl small{display:block;font:500 11px/1.4 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--txt3);margin-top:4px}
.who{font-size:13px;color:var(--txt2);white-space:nowrap;display:flex;align-items:center;gap:8px}
.badge{background:var(--acc);color:#fff;border-radius:999px;padding:1px 8px;font-size:11px;font-weight:600}
.sync{font-size:11px;color:var(--txt3);min-width:70px;text-align:right;letter-spacing:.04em}
.sync.wait{color:var(--m)} .sync.err{color:var(--n)}
.prog{height:3px;background:transparent;position:relative;margin:0 18px 0}
.prog i{position:absolute;left:0;top:-1px;height:2px;background:var(--acc);width:0;transition:width .35s var(--ease);border-radius:2px}
.lang{font-size:10.5px;letter-spacing:.12em;color:var(--txt2);background:var(--bg3);border-radius:999px;padding:5px 9px;transition:all .15s;font-weight:600}
.lang:hover{color:var(--txt);background:var(--bg4)}
.hero .lang{margin-left:14px}

.chips{display:flex;gap:2px;background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:4px;flex-wrap:wrap}
.chips button{padding:7px 14px;border-radius:999px;color:var(--txt2);font-size:12.5px;white-space:nowrap;transition:all .15s;display:flex;align-items:center;gap:7px;font-weight:500}
.chips button::before{content:"";width:6px;height:6px;border-radius:50%;background:transparent;transition:background .15s}
.chips button:hover{color:var(--txt)}
.chips button.on{background:var(--bg4);color:var(--txt)}
.chips button.on::before{background:var(--acc)}
.chips button b{font-weight:500;color:var(--txt3)}
.chips button.on b{color:var(--txt2)}
.seg{display:flex;gap:2px;background:var(--bg);border:1px solid var(--line);border-radius:999px;padding:4px}
.seg button{padding:6px 14px;border-radius:999px;color:var(--txt2);font-size:12.5px;white-space:nowrap;transition:all .15s;font-weight:500}
.seg button.on{background:var(--bg4);color:var(--txt)}
.szbox{display:flex;align-items:center;gap:10px;padding:0 6px 0 12px;background:var(--bg);border:1px solid var(--line);border-radius:999px;height:36px}
.szbox span{font-size:10px;letter-spacing:.12em;color:var(--txt3);white-space:nowrap;font-weight:600}
#sz{-webkit-appearance:none;appearance:none;width:110px;height:2px;border-radius:2px;background:var(--bg5);outline:none;cursor:pointer}
#sz::-webkit-slider-thumb{-webkit-appearance:none;width:12px;height:12px;border-radius:50%;background:var(--acc);border:0;transition:transform .15s}
#sz::-webkit-slider-thumb:hover{transform:scale(1.25)}
#sz::-moz-range-thumb{width:12px;height:12px;border:0;border-radius:50%;background:var(--acc)}
.pill{background:var(--bg3);border:1px solid var(--line);border-radius:999px;padding:8px 16px;font-size:12.5px;color:var(--txt);transition:all .15s;white-space:nowrap;font-weight:500}
.pill:hover{background:var(--bg4);border-color:var(--line2)}
.pill.acc{background:var(--acc);border-color:var(--acc);color:#fff}
.pill.acc:hover{background:var(--acc2)}

/* ---------- justified grid ---------- */
.grid{position:relative;padding:14px 22px 120px;user-select:none;display:flex;flex-direction:column;gap:6px}
.row{display:flex;gap:6px}
.cell{position:relative;background:var(--bg2);border-radius:6px;overflow:hidden;cursor:pointer;flex:0 0 auto;transition:opacity .25s,transform .25s var(--ease)}
.cell::after{content:"";position:absolute;inset:0;border-radius:6px;border:2px solid transparent;pointer-events:none;z-index:4;transition:border-color .12s,box-shadow .12s}
.cell img,.cell video.gm{width:100%;height:100%;object-fit:cover;display:block;opacity:0;transition:opacity .5s var(--ease),transform .6s var(--ease);pointer-events:none}
.cell img.in,.cell video.gm.in{opacity:1}
.cell:hover img,.cell:hover video.gm{transform:scale(1.03)}
.cell[data-s="y"]::after{border-color:var(--y)} .cell[data-s="m"]::after{border-color:var(--m)} .cell[data-s="n"]::after{border-color:var(--n)}
.cell[data-s="n"]{opacity:.38} .cell[data-s="n"]:hover{opacity:.8}
.cell.sel::after{border-color:var(--acc);box-shadow:inset 0 0 0 4px rgba(239,108,58,.22)}
.cell .dot{position:absolute;top:8px;left:8px;width:8px;height:8px;border-radius:50%;box-shadow:0 0 0 3px rgba(10,10,11,.6)}
.cell[data-s="y"] .dot{background:var(--y)} .cell[data-s="n"] .dot{background:var(--n)} .cell[data-s="m"] .dot{background:var(--m)}
.cell .cm{position:absolute;top:7px;right:8px;font-size:10px;color:#0a0a0b;background:var(--txt);border-radius:999px;padding:1px 6px;line-height:15px}
.cell .tag{position:absolute;right:8px;top:8px;font-size:9.5px;letter-spacing:.12em;color:#e9e8e3;background:rgba(10,10,11,.65);backdrop-filter:blur(6px);border-radius:999px;padding:2px 7px}
.cell .cm + .tag,.cell .tag + .cm{top:28px}
.cell .tr{position:absolute;top:7px;right:8px;width:26px;height:26px;border-radius:999px;background:rgba(10,10,11,.6);backdrop-filter:blur(6px);color:#e9e8e3;display:grid;place-items:center;opacity:0;transform:translateY(-4px);transition:opacity .15s,transform .2s var(--ease),background .15s;z-index:3}
.cell:hover .tr{opacity:1;transform:none}
.cell .tr:hover{background:var(--n);color:#fff}
body.owner .cell .tag{right:40px} body.owner .cell .cm{right:40px}
.cell .pl{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:38px;height:38px;border-radius:50%;background:rgba(10,10,11,.55);backdrop-filter:blur(6px);display:grid;place-items:center;font-size:12px;color:#fff;pointer-events:none;transition:transform .2s var(--ease)}
.cell:hover .pl{transform:translate(-50%,-50%) scale(1.08)}
.cell .ft{position:absolute;left:0;right:0;bottom:0;padding:26px 9px 8px;background:linear-gradient(transparent,rgba(10,10,11,.86));display:flex;align-items:flex-end;gap:8px;opacity:0;transform:translateY(6px);transition:opacity .2s,transform .25s var(--ease)}
.cell:hover .ft{opacity:1;transform:none}
.cell .nm{font-size:11px;color:var(--txt2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}
.q{display:flex;gap:4px}
.q button{width:28px;height:28px;border-radius:999px;background:rgba(255,255,255,.1);backdrop-filter:blur(8px);color:var(--txt);font-size:12px;font-weight:600;transition:all .15s;display:grid;place-items:center}
.q .qy:hover{background:var(--y);color:#0a0a0b} .q .qm:hover{background:var(--m);color:#0a0a0b} .q .qn:hover{background:var(--n);color:#0a0a0b}
.cell.small .ft{display:none}
#marq{position:absolute;border:1px solid var(--acc);background:rgba(143,181,255,.12);pointer-events:none;display:none;z-index:5;border-radius:3px}
.empty{padding:90px 22px;color:var(--txt3);text-align:center;font:500 20px var(--serif);letter-spacing:-.02em}

/* ---------- floating tools ---------- */
.tools{position:fixed;left:50%;bottom:22px;transform:translateX(-50%) translateY(140%);z-index:50;display:flex;align-items:center;gap:6px;background:rgba(34,34,35,.94);backdrop-filter:blur(18px);border:1px solid var(--line2);border-radius:999px;padding:6px 8px 6px 18px;box-shadow:var(--shadow);transition:transform .3s var(--ease)}
.tools.on{transform:translateX(-50%) translateY(0)}
.tools .cnt{font-size:12.5px;color:var(--txt2);padding-right:8px}
.tools button{border-radius:999px;padding:8px 14px;font-size:12.5px;color:var(--txt);background:var(--bg4);transition:all .15s;font-weight:500}
.tools button:hover{background:var(--bg5)}
.tools button.dg:hover{background:var(--n);color:#fff}

/* ---------- viewer ---------- */
.view{position:fixed;inset:0;background:var(--bg);z-index:60;display:none;flex-direction:column;padding:12px 14px}
.view.on{display:flex;animation:fade .2s var(--ease)}
@keyframes fade{from{opacity:0}to{opacity:1}}
.vtop{display:flex;align-items:center;gap:16px;padding:12px 18px;font-size:12.5px;color:var(--txt2);background:var(--bg2);border:1px solid var(--line);border-radius:var(--r2)}
.vtop .fn{color:var(--txt);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vtop .cnt{font-variant-numeric:tabular-nums;letter-spacing:.04em;background:var(--bg3);border-radius:999px;padding:4px 10px}
.vwrap{flex:1;position:relative;display:flex;align-items:center;justify-content:center;overflow:hidden;min-height:0;padding:14px 0}
.vwrap img,.vwrap video{max-width:100%;max-height:100%;object-fit:contain;user-select:none;display:none;border-radius:var(--r)}
.vwrap .shown{display:block;animation:fade .25s var(--ease)}
.nav{position:absolute;top:0;bottom:0;width:14%;opacity:0;z-index:2;cursor:w-resize}
.nav.l{left:0} .nav.r{right:0;cursor:e-resize}
.vbot{padding:10px 12px;display:flex;gap:12px;align-items:center;flex-wrap:wrap;background:var(--bg2);border:1px solid var(--line);border-radius:var(--r2)}
.st{display:flex;gap:6px}
.st button{background:var(--bg3);border:1px solid var(--line);border-radius:999px;padding:9px 18px;font-size:13px;font-weight:600;color:var(--txt2);transition:all .15s}
.st button:hover{color:var(--txt);background:var(--bg4)}
.st button.on{color:#0e0e0f}
.st .by.on{background:var(--y);border-color:var(--y)} .st .bn.on{background:var(--n);border-color:var(--n);color:#fff} .st .bm.on{background:var(--m);border-color:var(--m)}
.vbot input{flex:1;min-width:200px;background:var(--bg3);border:1px solid var(--line);border-radius:999px;padding:9px 16px;outline:none;transition:border-color .15s}
.vbot input:focus{border-color:var(--acc)}
.hint{font-size:11px;color:var(--txt3);white-space:nowrap;letter-spacing:.02em}
.x{color:var(--txt2);width:32px;height:32px;border-radius:999px;display:grid;place-items:center;transition:all .15s;background:var(--bg3)}
.x:hover{background:var(--bg4);color:var(--txt)}

/* ---------- cards ---------- */
.tin{position:fixed;inset:0;background:var(--bg);z-index:65;display:none;flex-direction:column;padding:12px 14px}
.tin.on{display:flex;animation:fade .2s var(--ease)}
.tstage{flex:1;position:relative;display:grid;place-items:center;min-height:0;padding:16px;overflow:hidden;touch-action:none;user-select:none}
.card{position:absolute;width:min(640px,92vw);max-width:calc((100dvh - 250px) * 1.9);max-height:100%;background:var(--bg2);border:1px solid var(--line2);border-radius:var(--r3);overflow:hidden;display:flex;flex-direction:column;box-shadow:var(--shadow);will-change:transform;user-select:none;padding:8px}
.card.back{transform:scale(.94) translateY(16px);opacity:.5;pointer-events:none}
.card .media{width:100%;max-height:calc(100dvh - 250px);display:grid;place-items:center;background:var(--bg);border-radius:var(--r2);overflow:hidden}
.card img,.card video{width:100%;height:100%;object-fit:contain;display:block;pointer-events:none}
.card .cap{padding:12px 10px 6px;font-size:12.5px;color:var(--txt2);display:flex;gap:10px;align-items:center}
.card .cap b{color:var(--txt);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stamp{position:absolute;top:22px;font:700 26px var(--sans);letter-spacing:-.01em;text-transform:uppercase;padding:6px 16px;border-radius:12px;border:2px solid;opacity:0;transform:rotate(-10deg);pointer-events:none;background:rgba(14,14,15,.55);backdrop-filter:blur(4px)}
.stamp.sy{left:22px;color:var(--y);border-color:var(--y)}
.stamp.sn{right:22px;color:var(--n);border-color:var(--n);transform:rotate(10deg)}
.stamp.sm{left:50%;top:18px;transform:translateX(-50%);color:var(--m);border-color:var(--m)}
.tbtns{display:flex;gap:8px;align-items:center;justify-content:center;padding:12px;flex-wrap:wrap;background:var(--bg2);border:1px solid var(--line);border-radius:var(--r2)}
.tbtns button{background:var(--bg3);border:1px solid var(--line);border-radius:999px;padding:11px 24px;font-size:14px;font-weight:600;color:var(--txt2);min-width:96px;transition:all .15s}
.tbtns .kn:hover{background:var(--n);border-color:var(--n);color:#fff}
.tbtns .km:hover{background:var(--m);border-color:var(--m);color:#0e0e0f}
.tbtns .ky:hover{background:var(--y);border-color:var(--y);color:#0e0e0f}
.tbtns .kz{min-width:0;padding:11px 16px;font-weight:500;font-size:12.5px;background:transparent;border-color:transparent}
.tdone{text-align:center;color:var(--txt2);padding:40px 20px}
.tdone b{display:block;font:600 28px var(--sans);color:var(--txt);margin-bottom:8px;letter-spacing:-.02em}

/* ---------- project page / hub ---------- */
.hero{padding:clamp(28px,5vh,56px) 22px 18px;max-width:1280px;margin:0 auto;width:100%}
.hero .eyebrow{font-size:11px;letter-spacing:.12em;text-transform:uppercase;color:var(--txt3);margin-bottom:14px;display:flex;gap:14px;align-items:center;font-weight:500}
.hero .who{text-transform:none;letter-spacing:0}
.hero h1{font:600 clamp(34px,5vw,54px)/1.05 var(--sans);margin:0;letter-spacing:-.03em;animation:rise .6s var(--ease) both}
.hero .meta{color:var(--txt2);margin-top:12px;font-size:14px;animation:rise .6s .06s var(--ease) both}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px;padding:8px 22px 10px;max-width:1280px;margin:0 auto;width:100%}
.stat{display:flex;align-items:center;gap:14px;background:var(--bg2);border:1px solid var(--line);border-radius:var(--r2);padding:14px 16px;animation:rise .6s .1s var(--ease) both}
.stat .ic{width:46px;height:46px;border-radius:14px;background:var(--bg3);display:grid;place-items:center;color:var(--txt);flex:none}
.stat .ic svg{width:20px;height:20px}
.stat .lb{font-size:12px;color:var(--txt2)}
.stat .vl{font:600 26px/1.1 var(--sans);letter-spacing:-.03em;margin-top:2px;display:flex;align-items:baseline;gap:8px}
.stat .vl small{font-size:11.5px;font-weight:600;color:var(--y)}
.secs,.hub{display:grid;gap:12px;padding:10px 22px 90px;max-width:1280px;margin:0 auto;width:100%}
.secs{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}
.hub{grid-template-columns:repeat(auto-fill,minmax(340px,1fr))}
.sec,.proj{background:var(--bg2);border:1px solid var(--line);border-radius:var(--r3);overflow:hidden;display:block;transition:transform .35s var(--ease),border-color .2s;animation:rise .6s var(--ease) both;padding:8px}
.sec:hover,.proj:hover{transform:translateY(-3px);border-color:var(--line2)}
.sec .ph{aspect-ratio:3/2;background:var(--bg);display:block;position:relative;overflow:hidden;border-radius:var(--r2)}
.sec .ph img{width:100%;height:100%;object-fit:cover;display:block;opacity:0;transition:opacity .5s,transform .8s var(--ease)}
.sec .ph img.in{opacity:1}
.sec:hover .ph img{transform:scale(1.04)}
.sec .bd,.proj .pb{padding:14px 10px 10px}
.sec .nm,.proj .nm{font:600 18px/1.2 var(--sans);letter-spacing:-.02em}
.sec .mt,.proj .mt{color:var(--txt2);font-size:12.5px;margin-top:6px}
.bars{display:flex;height:4px;overflow:hidden;background:var(--bg3);margin-top:12px;border-radius:2px}
.bars i{display:block;height:100%}
.bars .by{background:var(--y)} .bars .bm{background:var(--m)} .bars .bn{background:var(--n)}
.lnk{padding:0 22px 60px;color:var(--txt3);font-size:12.5px;max-width:1280px;margin:0 auto;width:100%}
.lnk a{color:var(--txt2);border-bottom:1px solid var(--line2);transition:color .15s}
.lnk a:hover{color:var(--txt)}
.msg{padding:90px 22px;color:var(--txt3);text-align:center;font:500 18px var(--sans);letter-spacing:-.01em}
.proj .ph{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;height:120px;background:var(--bg);border-radius:var(--r2);overflow:hidden}
.proj .ph img,.proj .ph span{width:100%;height:100%;object-fit:cover;display:block;opacity:0;transition:opacity .5s}
.proj .ph img.in{opacity:1}
.proj .pt{display:flex;align-items:baseline;gap:12px}
.proj .nm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.proj .nm:hover{color:var(--acc)}
.proj .dt{font-size:11px;color:var(--txt3);letter-spacing:.06em;white-space:nowrap}
.secl{display:flex;flex-wrap:wrap;gap:4px;margin-top:12px}
.secl a{font-size:12px;color:var(--txt2);background:var(--bg3);border-radius:999px;padding:5px 11px;transition:all .15s}
.secl a:hover{color:var(--txt);background:var(--bg4)}
.secl a b{font-weight:500;color:var(--txt3);margin-left:6px}
.acts{display:flex;gap:6px;flex-wrap:wrap;margin-top:14px}

/* ---------- admin ---------- */
.agrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px;padding:16px 22px 90px}
.acell{background:var(--bg2);border:1px solid var(--line);border-radius:var(--r2);overflow:hidden;padding:6px}
.acell .ph{height:150px;display:block;background:var(--bg);position:relative;border-radius:var(--r);overflow:hidden}
.acell img{width:100%;height:100%;object-fit:contain;display:block;opacity:0;transition:opacity .4s}
.acell img.in{opacity:1}
.acell .meta{padding:10px 8px 8px}
.acell .fn{font-size:11px;color:var(--txt3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;margin-bottom:6px}
.badges{display:flex;flex-wrap:wrap;gap:4px}
.b{font-size:10.5px;border-radius:999px;padding:3px 9px;background:var(--bg3);color:var(--txt2);font-weight:500}
.b.y{background:rgba(95,207,127,.14);color:var(--y)} .b.n{background:rgba(239,90,90,.14);color:var(--n)} .b.m{background:rgba(240,176,67,.14);color:var(--m)}
.cmt{margin-top:7px;font-size:12px;color:var(--txt2);border-left:2px solid var(--line2);padding-left:8px}
.cmt span{color:var(--txt3)}
.people{display:flex;gap:8px;flex-wrap:wrap;padding:0 18px 4px}
.p{border:1px solid var(--line);border-radius:999px;padding:6px 13px;font-size:12.5px;background:var(--bg3)}
.p b{font-weight:600} .p i{font-style:normal;color:var(--txt2)}
dialog{background:var(--bg2);color:var(--txt);border:1px solid var(--line2);border-radius:var(--r3);max-width:min(680px,92vw);padding:18px;box-shadow:var(--shadow)}
dialog::backdrop{background:rgba(0,0,0,.65);backdrop-filter:blur(4px)}
textarea{width:100%;height:46vh;background:var(--bg);border:1px solid var(--line);border-radius:var(--r);color:var(--txt);font:12px/1.5 ui-monospace,Menlo,monospace;padding:12px;outline:none}

/* ---------- toast ---------- */
.toast{position:fixed;left:50%;bottom:22px;transform:translateX(-50%) translateY(140%);z-index:55;background:rgba(34,34,35,.95);backdrop-filter:blur(18px);border:1px solid var(--line2);border-radius:999px;padding:10px 12px 10px 18px;font-size:13px;color:var(--txt);box-shadow:var(--shadow);transition:transform .3s var(--ease);white-space:nowrap;display:flex;gap:12px;align-items:center}
.toast.on{transform:translateX(-50%) translateY(0)}
.toast button{border-radius:999px;padding:6px 13px;background:var(--acc);color:#fff;font-weight:600;font-size:12.5px}


/* ---------- rinomina ---------- */
.ren{width:28px;height:28px;border-radius:999px;display:grid;place-items:center;color:var(--txt3);background:transparent;transition:all .15s;flex:none;margin-left:4px}
.ren:hover{color:var(--txt);background:var(--bg4)}
.ren.big{width:36px;height:36px;margin-left:10px}
.hrow,.nmrow{display:flex;align-items:center;gap:2px;min-width:0}
.nmrow .nm{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.sec .nmrow .ren{opacity:0} .sec:hover .nmrow .ren{opacity:1}
.proj .pt .ren{opacity:0} .proj:hover .pt .ren{opacity:1}
.inl{font:inherit;color:var(--txt);background:var(--bg3);border:1px solid var(--acc);border-radius:10px;padding:4px 10px;outline:none;min-width:0;width:100%;max-width:520px}
.hero .inl{font:600 clamp(28px,4vw,40px)/1.1 var(--sans);letter-spacing:-.03em}
.top .inl{font:600 20px/1.1 var(--sans);letter-spacing:-.02em;max-width:420px}

/* ---------- wordmark ---------- */
.brand{font-weight:700;font-size:12.5px;letter-spacing:.14em;color:var(--txt);text-transform:uppercase;white-space:nowrap;display:inline-flex;align-items:center;line-height:1}
.brand i{font-style:normal;color:var(--acc)}
.top .brand{padding-right:6px;border-right:1px solid var(--line2);margin-right:2px;height:22px}
.hero .eyebrow .brand{margin-right:2px;letter-spacing:.14em}
.hero .eyebrow .brand + span::before{content:"·";margin:0 10px 0 2px;color:var(--txt3)}
@media(max-width:720px){.top .brand{display:none}}

/* ---------- touch ---------- */
button,.cell,.chips button,.seg button{touch-action:manipulation}
@media(hover:none){
  .cell .ft,.cell .tr{display:none}
  .sec .nmrow .ren,.proj .pt .ren{opacity:1}
}

/* ---------- mobile ---------- */
@media(max-width:720px){
  .top{margin:8px 8px 0;top:8px}
  .top .r1{padding:10px 12px 4px;gap:10px}
  .top .brand{display:none}
  .crumb{font-size:0;width:34px;height:32px;padding:0;display:grid;place-items:center;flex:none}
  .crumb::before{content:"←";font-size:15px}
  .ttl{flex:1;min-width:0;font-size:17px} .top .r1 .spacer{flex:0 0 0;display:none} .who{margin-left:auto}
  .ttl small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:10px}
  .sync{display:none}
  .top .r2{padding:4px 10px 10px;flex-wrap:wrap;gap:8px}
  .chips{flex:0 0 100%;flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}
  .chips::-webkit-scrollbar{display:none}
  .chips button{padding:8px 13px;font-size:13px}
  .szbox,.hint{display:none}
  .seg{flex:1} .seg button{flex:1;text-align:center;padding:8px 10px}
  #selall{flex:1;text-align:center}
  .grid{padding:8px 8px 120px;gap:4px} .row{gap:4px}
  .tools{max-width:calc(100vw - 16px);flex-wrap:wrap;justify-content:center;row-gap:6px;border-radius:20px;padding:8px 10px;bottom:12px}
  .tools .cnt{flex:0 0 100%;text-align:center;padding:0 0 2px}
  .tools button{padding:9px 14px;font-size:13px}
  .toast{max-width:calc(100vw - 16px);white-space:normal;text-align:center;border-radius:20px;bottom:12px}
  .view,.tin{padding:8px;height:100dvh;padding-bottom:calc(8px + env(safe-area-inset-bottom))}
  .vtop{padding:10px 12px;gap:10px} .vtop .cnt{white-space:nowrap}
  .vwrap{padding:8px 0}
  .vbot{padding:10px;gap:8px}
  .st{width:100%} .st button{flex:1;padding:14px 0;font-size:15px;text-align:center}
  .vbot input{min-width:0;width:100%;flex:0 0 100%}
  .tstage{padding:10px 6px}
  .card{width:min(640px,100%)}
  .tbtns{padding:10px;gap:8px}
  .tbtns button{flex:1;min-width:0;padding:15px 0;font-size:15px}
  .tbtns .kz{flex:0 0 auto;padding:15px 12px;font-size:13px}
  .hero{padding:26px 16px 12px} .hero h1{font-size:30px}
  .hero .eyebrow .brand + span{display:none} .hero .eyebrow{gap:10px}
  .stats{grid-template-columns:1fr 1fr;gap:8px;padding:6px 16px 8px}
  .stat{padding:12px 12px;gap:10px} .stat .ic{width:38px;height:38px;border-radius:11px} .stat .vl{font-size:22px}
  .secs,.hub{padding:8px 16px 60px;gap:10px}
  .proj .ph{height:96px}
  .agrid{padding:12px 12px 80px}
  .people{padding:0 12px 4px}
}

/* ---------- intro regista ---------- */
.intro{position:fixed;inset:0;background:rgba(10,10,11,.78);backdrop-filter:blur(14px);z-index:90;display:flex;align-items:center;justify-content:center;padding:20px;animation:fade .25s var(--ease);overflow-y:auto;-webkit-overflow-scrolling:touch}
.ibox{position:relative;max-height:calc(100dvh - 40px);overflow-y:auto}
.iclose{position:absolute;top:12px;right:12px;width:34px;height:34px;border-radius:50%;border:1px solid var(--line2);background:var(--bg3);color:var(--txt);font-size:18px;line-height:32px;text-align:center;cursor:pointer;z-index:2}
.ibox{width:min(720px,100%);background:var(--bg2);border:1px solid var(--line2);border-radius:var(--r3);padding:28px 28px 24px;box-shadow:var(--shadow);animation:rise .45s var(--ease) both}
.ibox .eyebrow{margin-bottom:16px}
.ibox h2{font:600 26px/1.1 var(--sans);letter-spacing:-.03em;margin:0 0 8px}
.ibox .iby{color:var(--txt2);margin:0 0 20px;font-size:14px}
.icols{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.icol{background:var(--bg3);border:1px solid var(--line);border-radius:var(--r2);padding:16px 16px 14px;display:flex;flex-direction:column;gap:6px}
.icol .iic{width:38px;height:38px;border-radius:11px;background:var(--bg4);display:grid;place-items:center;color:var(--acc);margin-bottom:4px}
.icol .iic svg{width:20px;height:20px}
.icol b{font-weight:600;font-size:15px}
.icol span{color:var(--txt2);font-size:13px;line-height:1.45}
.isave{color:var(--txt3);font-size:12.5px;margin:18px 0 16px}
.ibtns{display:flex;gap:8px;flex-wrap:wrap}
.ibtns .pill{padding:11px 18px;font-size:13.5px}
@media(max-width:720px){
  .intro{align-items:flex-start;padding:12px}
  .icols{grid-template-columns:1fr 1fr;gap:8px}
  .icol{padding:12px 12px 10px}
  .icol span{font-size:12px}
  .icol .idemo{display:none}
  /* mobile: scorre la scatola, non l'overlay (su iOS l'overlay fisso non scorre), e la × resta sempre a portata */
  .intro{padding:0;align-items:stretch;overflow:hidden}
  .ibox{width:100%;max-width:none;border-radius:0;border-left:0;border-right:0;padding:22px 18px calc(18px + env(safe-area-inset-bottom));
        height:100vh;height:100dvh;max-height:100vh;max-height:100dvh;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;animation:none}
  .ibox h2{font-size:22px;padding-right:44px}
  .iclose{position:fixed;top:calc(10px + env(safe-area-inset-top));right:10px;z-index:95;width:38px;height:38px;line-height:36px;font-size:20px}
  .ibtns{position:sticky;bottom:0;background:var(--bg2);padding:10px 0 4px;margin-top:8px}
  .ibtns .pill{flex:1;text-align:center}
}

.idemo{width:100%;aspect-ratio:900/560;border-radius:10px;margin-top:10px;background:var(--bg);display:block;border:1px solid var(--line)}

/* ---------- swipe: veli ai bordi ---------- */
.tstage{--gl:0;--gr:0;--gd:0;isolation:isolate}
.tstage::before,.tstage::after,.tstage .gd{content:"";position:absolute;pointer-events:none;z-index:0;transition:opacity .18s}
.tstage::before{left:0;top:0;bottom:0;width:34%;background:linear-gradient(90deg,rgba(239,90,90,.34),rgba(239,90,90,0));opacity:calc(.32 + var(--gl) * .68)}
.tstage::after{right:0;top:0;bottom:0;width:34%;background:linear-gradient(270deg,rgba(95,207,127,.34),rgba(95,207,127,0));opacity:calc(.32 + var(--gr) * .68)}
.tstage .gd{left:0;right:0;bottom:0;height:34%;background:linear-gradient(0deg,rgba(240,176,67,.30),rgba(240,176,67,0));opacity:calc(.22 + var(--gd) * .78)}
.card{z-index:2} .card.back{z-index:1}

/* ---------- doppioni, finito ---------- */
.cell .dg{position:absolute;left:8px;bottom:8px;font-size:10px;font-weight:600;letter-spacing:.04em;background:rgba(240,176,67,.9);color:#0e0e0f;border-radius:999px;padding:2px 7px;z-index:3}
.cell:hover .dg{bottom:44px}
.okb{color:var(--y);font-weight:600}

/* voto del regista visibile al proprietario */
.cell .rv{position:absolute;right:8px;top:8px;font-size:10px;font-weight:600;letter-spacing:.04em;background:rgba(95,207,127,.92);color:#0e0e0f;border-radius:999px;padding:2px 7px;z-index:3;pointer-events:none}
.cell[data-s="n"] .rv{background:rgba(239,90,90,.92)}
.cell[data-s="m"] .rv{background:rgba(240,176,67,.92)}


/* ================= Soft studio (23 set 2026) =================
   Stessa pelle di PITCHSOME (skin Soft studio + home): verde scuro, accento corallo, pezzi in rilievo con due
   ombre (luce in alto a sinistra, ombra in basso a destra), piste e campi scavati. Tutto in coda: le regole di
   prima restano sopra, per tornare indietro basta togliere questo blocco. */
:root{
  --bg:#232b27; --bg2:#27302b; --bg3:#212924; --bg4:#2e3832; --bg5:#3d4a43;
  --line:rgba(255,255,255,.05); --line2:rgba(255,255,255,.08); --line3:rgba(255,255,255,.14);
  --txt:#e6ebe7; --txt2:#8d9a92; --txt3:#6f7d75;
  --y:#57d38c; --m:#f0b043; --n:#ef5a5a; --acc:#ff7a59; --acc2:#ff9078; --accink:#1a0d08;
  --hi:#37463f; --lo:#161b18;
  --up:6px 6px 14px var(--lo),-6px -6px 14px var(--hi);
  --ups:3px 3px 7px var(--lo),-3px -3px 7px var(--hi);
  --in:inset 3px 3px 6px var(--lo),inset -3px -3px 6px var(--hi);
  --ins:inset 2px 2px 4px var(--lo),inset -2px -2px 4px var(--hi);
  --sans:-apple-system,BlinkMacSystemFont,"Inter","Helvetica Neue",Arial,sans-serif; --serif:var(--sans);
  --shadow:16px 16px 40px var(--lo),-8px -8px 24px var(--hi);
}
body{background:var(--bg)}
::selection{background:rgba(255,122,89,.3)}
*{scrollbar-width:thin;scrollbar-color:#3d4a43 transparent}

/* marchio a interruttore: guida scavata, cursore in rilievo sotto DROP */
.brand{position:relative;display:inline-flex;align-items:center;height:28px;border-radius:14px;box-shadow:var(--in);letter-spacing:.16em;font-size:12px;font-weight:400;color:var(--txt);cursor:default}
.brand b,.brand em{position:relative;z-index:1;display:inline-flex;align-items:center;height:28px;padding:0 11px 0 calc(11px + .16em);font-style:normal}
.brand b{font-weight:800}.brand em{font-weight:300;color:var(--txt2)}
.brand:before{content:"";position:absolute;left:4px;top:4px;bottom:4px;width:calc(50% - 2px);border-radius:10px;background:var(--bg2);box-shadow:var(--ups);transition:left .22s var(--ease)}
.brand.flip:before{left:calc(50% - 2px)}
.top .brand{border-right:0;padding-right:0;margin-right:4px;height:28px}
.hero .eyebrow .brand{margin-right:6px}

/* ingresso */
.gate .box{background:var(--bg2);border:0;box-shadow:var(--shadow);border-radius:22px}
.gate h1{font-weight:700;letter-spacing:-.035em}
.gate input{background:var(--bg2);border:0;box-shadow:var(--in);border-radius:12px}
.gate input:focus{box-shadow:var(--in),0 0 0 2px var(--acc)}
.gate button{background:var(--acc);color:var(--accink);border-radius:13px;box-shadow:var(--up),inset 0 1px 0 rgba(255,255,255,.28)}
.gate button:hover{background:var(--acc);filter:brightness(1.06);transform:none}
.gate button:active{box-shadow:inset 3px 3px 8px rgba(0,0,0,.35)}

/* barra in alto */
.top{background:var(--bg2);backdrop-filter:none;-webkit-backdrop-filter:none;border:0;border-radius:20px;box-shadow:var(--up)}
.crumb,.lang{background:var(--bg2);box-shadow:var(--ups);border-radius:10px;transition:box-shadow .14s,color .14s}
.crumb:hover,.lang:hover{background:var(--bg2);color:var(--acc)}
.crumb:active,.lang:active{box-shadow:var(--ins)}
.ttl{font-weight:700;letter-spacing:-.03em}
.badge{background:var(--acc);color:var(--accink)}
.sync{color:var(--txt3)}

/* piste scavate con la voce attiva in rilievo */
.chips,.seg{background:var(--bg2);border:0;box-shadow:var(--in);border-radius:14px}
.chips button,.seg button{border-radius:10px}
.chips button.on,.seg button.on{background:var(--bg2);box-shadow:var(--ups);color:var(--txt)}
.szbox{background:var(--bg2);border:0;box-shadow:var(--in);border-radius:14px}
#sz{background:var(--lo);height:4px;box-shadow:0 1px 0 var(--hi)}
#sz::-webkit-slider-thumb{width:16px;height:16px;background:var(--acc);box-shadow:2px 2px 4px var(--lo),-1px -1px 3px var(--hi)}
#sz::-moz-range-thumb{width:16px;height:16px;background:var(--acc)}

/* bottoni in rilievo */
.pill{background:var(--bg2);border:0;box-shadow:var(--ups);border-radius:11px;transition:box-shadow .14s,color .14s}
.pill:hover{background:var(--bg2);color:var(--acc)}
.pill:active{box-shadow:var(--ins)}
.pill.acc{background:var(--acc);color:var(--accink);box-shadow:var(--ups),inset 0 1px 0 rgba(255,255,255,.28)}
.pill.acc:hover{background:var(--acc);color:var(--accink);filter:brightness(1.06)}
.x,.ren{background:var(--bg2);box-shadow:var(--ups);border-radius:10px}
.x:hover,.ren:hover{background:var(--bg2);color:var(--acc)}
.ren{box-shadow:none;background:transparent}.ren:hover{box-shadow:var(--ups)}
.inl{background:var(--bg2);border:0;box-shadow:var(--in),0 0 0 2px var(--acc)}

/* griglia: le celle restano foto, solo un filo scavato attorno */
.cell{background:var(--bg3);border-radius:8px}
.cell::after{border-radius:8px}
.cell.sel::after{box-shadow:inset 0 0 0 4px rgba(255,122,89,.22)}
#marq{background:rgba(255,122,89,.10)}
.cell .cm{background:var(--txt);color:var(--bg)}
.empty,.msg{font-weight:600}

/* barra flottante e avvisi */
.tools,.toast{background:var(--bg2);backdrop-filter:none;border:0;box-shadow:var(--shadow);border-radius:18px}
.tools button{background:var(--bg2);box-shadow:var(--ups);border-radius:10px}
.tools button:hover{background:var(--bg2);color:var(--acc)}
.tools button.dg:hover{background:var(--n);color:#fff;box-shadow:none}
.toast button{background:var(--acc);color:var(--accink);border-radius:10px}

/* viewer e carte */
.vtop,.vbot,.tbtns{background:var(--bg2);border:0;box-shadow:var(--up);border-radius:18px}
.vtop .cnt{background:var(--bg2);box-shadow:var(--ins);border-radius:10px}
.vwrap img,.vwrap video{border-radius:12px}
.st button,.tbtns button{background:var(--bg2);border:0;box-shadow:var(--ups);border-radius:12px;transition:box-shadow .14s,color .14s,background .14s}
.st button:hover{background:var(--bg2);color:var(--txt)}
.st button.on{box-shadow:var(--ins)}
.st .by.on{background:var(--y)} .st .bm.on{background:var(--m)} .st .bn.on{background:var(--n)}
.tbtns .kn:hover,.tbtns .km:hover,.tbtns .ky:hover{box-shadow:var(--ins)}
.tbtns .kz{box-shadow:none;background:transparent}
.vbot input{background:var(--bg2);border:0;box-shadow:var(--in);border-radius:12px}
.vbot input:focus{box-shadow:var(--in),0 0 0 2px var(--acc)}
.card{background:var(--bg2);border:0;box-shadow:var(--shadow);border-radius:22px}
.card .media{background:var(--bg3);box-shadow:var(--ins);border-radius:16px}
.stamp{background:rgba(35,43,39,.7);backdrop-filter:none}

/* pagina progetto e home */
.hero h1{font-weight:700;letter-spacing:-.035em}
.stat{background:var(--bg2);border:0;box-shadow:var(--up);border-radius:18px}
.stat .ic{background:var(--bg2);box-shadow:var(--in);color:var(--acc)}
.stat .vl{font-weight:700}
.secs,.hub{gap:26px 24px;padding-top:18px}
.sec,.proj{background:var(--bg2);border:0;box-shadow:var(--up);border-radius:20px;padding:12px;transition:box-shadow .16s,transform .16s}
.sec:hover,.proj:hover{transform:translateY(-2px);box-shadow:9px 11px 22px var(--lo),-7px -7px 18px var(--hi)}
.sec:active{transform:none;box-shadow:var(--in)}
.sec .ph,.proj .ph{background:var(--bg3);border-radius:12px;box-shadow:inset 0 0 0 1px rgba(0,0,0,.25)}
.sec .nm,.proj .nm{font-weight:700}
.bars{background:var(--lo);height:5px;border-radius:3px;box-shadow:0 1px 0 var(--hi)}
.secl a{background:var(--bg2);box-shadow:var(--ups);border-radius:9px}
.secl a:hover{background:var(--bg2);color:var(--acc)}
.lnk a{border-bottom-color:var(--line3)}

/* riepilogo cartella (admin) */
.acell{background:var(--bg2);border:0;box-shadow:var(--up);border-radius:18px}
.acell .ph{background:var(--bg3);box-shadow:var(--ins)}
.b{background:var(--bg2);box-shadow:var(--ins)}
.p{background:var(--bg2);border:0;box-shadow:var(--ups)}
textarea{background:var(--bg2);border:0;box-shadow:var(--in)}

/* dialoghi e intro regista */
dialog{background:var(--bg2);border:0;border-radius:22px;box-shadow:var(--shadow)}
dialog::backdrop{background:rgba(10,14,12,.62);backdrop-filter:blur(3px)}
.intro{background:rgba(20,26,23,.72)}
.ibox{background:var(--bg2);border:0;box-shadow:var(--shadow);border-radius:22px}
.ibox h2{font-weight:700;letter-spacing:-.035em}
.icol{background:var(--bg2);border:0;box-shadow:var(--up);border-radius:16px}
.icol .iic{background:var(--bg2);box-shadow:var(--in)}
.iclose{background:var(--bg2);border:0;box-shadow:var(--ups);border-radius:10px}
.idemo{border:0;box-shadow:var(--ins);background:var(--bg3)}
@media(max-width:720px){
  .ibox{border-radius:0}
  .ibtns{background:var(--bg2)}
  .top{border-radius:16px}
}
/* barra e avviso nascosti: l'ombra larga non deve spuntare dal fondo */
.tools:not(.on),.toast:not(.on){box-shadow:none}

/* riga titolo (nome + matita + link) e riga di utilita' (chi sei, ?, lingua, salvato) */
.trow,.utl{display:flex;align-items:center;gap:4px;min-width:0}
.trow{flex:0 1 auto}.utl{gap:10px}
@media(max-width:720px){.trow{flex:1}.trow .ttl{flex:1}.utl{margin-left:auto}}

/* ================= cartella: binario + pannello (proposta 03 del foglio barre, 23 set 2026) =================
   Stesso markup della barra in alto: da 901 px in su a sinistra c'e' il binario (#rail, icone) e accanto .top
   diventa il pannello; .r1 e .r2 si sciolgono (display:contents) e i pezzi si mettono in fila con order.
   Il binario sceglie la sezione del pannello (data-pane: show = filtri, view = dimensione e selezione).
   Sotto i 901 px il binario sparisce e resta la barra di prima. */
.rail{display:none}
@media(min-width:901px){
  .rail{position:fixed;left:0;top:0;bottom:0;width:58px;z-index:41;display:flex;flex-direction:column;align-items:center;gap:10px;padding:16px 0;background:var(--bg3);box-shadow:inset -1px 0 0 var(--lo)}
  .rmono{font-weight:900;font-size:14px;letter-spacing:.02em;margin-bottom:8px}.rmono i{font-style:normal;color:var(--acc)}
  .rbt{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;color:var(--txt3);transition:color .14s,box-shadow .14s}
  .rbt svg{width:17px;height:17px}
  .rbt:hover{color:var(--txt)}
  .rbt.on{background:var(--bg2);box-shadow:var(--ups);color:var(--acc)}
  .rsp{flex:1}
  .top{position:fixed;left:58px;top:0;bottom:0;width:222px;margin:0;display:flex;flex-direction:column;gap:10px;padding:18px 14px 16px;border-radius:0;box-shadow:1px 0 0 var(--lo),2px 0 0 var(--hi);overflow-y:auto;overflow-x:hidden;scrollbar-width:none;z-index:40}
  .top::-webkit-scrollbar{display:none}
  .top .r1,.top .r2{display:contents}
  .top .spacer,#back,.top .seg{display:none!important}
  .top .brand{order:1;align-self:flex-start;margin:0 0 4px;border-right:0;padding-right:0}
  .ttl{white-space:normal;font-size:19px;line-height:1.15;overflow:visible;flex:1;min-width:0;overflow-wrap:anywhere}
  .ttl small{margin-top:6px}
  .trow{order:3;align-items:flex-start;margin:0 0 0 4px}
  .utl{order:5;margin:0 4px}
  .prog{order:6;margin:4px 4px 8px;height:6px;border-radius:3px;background:var(--lo);box-shadow:0 1px 0 var(--hi)}
  .prog i{top:0;height:6px;border-radius:3px}
  .chips{order:7;flex-direction:column;flex-wrap:nowrap;border-radius:16px;padding:5px;gap:2px}
  .chips button{justify-content:flex-start;padding:9px 12px;font-size:13px}
  .chips button b{margin-left:auto}
  .chips button::before{background:var(--txt3)}
  .chips button[data-k="y"]::before{background:var(--y)} .chips button[data-k="m"]::before{background:var(--m)} .chips button[data-k="n"]::before{background:var(--n)}
  .chips button.on::before{box-shadow:0 0 0 3px rgba(255,122,89,.18)}
  .chips button[data-k="all"].on::before,.chips button[data-k="todo"].on::before,.chips button[data-k="del"].on::before,.chips button[data-k="dup"].on::before{background:var(--acc)}
  #ktabs{order:8}
  #selall,#dupsel{order:9;width:100%;text-align:center;white-space:normal;line-height:1.3;padding:10px 14px}
  .szbox{order:10;width:100%;gap:8px;padding:0 12px}
  .szbox span{flex:none}
  #sz{flex:1;min-width:0;width:auto}
  #done{order:12;margin-top:auto;width:100%;text-align:center;padding:11px 16px}
  /* sezioni del pannello */
  .top[data-pane="show"] .szbox,.top[data-pane="show"] #selall,.top[data-pane="show"] #dupsel{display:none!important}
  .top[data-pane="view"] #tabs,.top[data-pane="view"] #ktabs{display:none!important}
  .grid{margin-left:280px;padding:14px 22px 120px 12px}
  .empty{margin-left:280px}
  .tools,.toast{left:calc(50% + 140px)}
}

/* ================= home: colonna filtri (proposta 04) + tessere con cassetto link (proposta 20), 23 set 2026 ================= */
.hw{display:grid;grid-template-columns:58px 222px minmax(0,1fr);min-height:100vh}
/* binario della home (proposta 03): stessi pezzi .rmono/.rbt della cartella */
.hrail{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;align-items:center;gap:10px;padding:16px 0;background:var(--bg3);box-shadow:inset -1px 0 0 var(--lo);z-index:2}
.hrail .rmono{font-weight:900;font-size:14px;letter-spacing:.02em;margin-bottom:8px}.hrail .rmono i{font-style:normal;color:var(--acc)}
.hrail .rbt{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;color:var(--txt3);transition:color .14s,box-shadow .14s}
.hrail .rbt svg{width:17px;height:17px}.hrail .rbt:hover{color:var(--txt)}
.hrail .rbt.on{background:var(--bg2);box-shadow:var(--ups);color:var(--acc)}
.hpt{font-size:15px;font-weight:700;letter-spacing:-.01em;margin:2px 4px -2px}
.hside[data-hp="prj"] .hstats,.hside[data-hp="prj"] .hupd{display:none!important}
.hside[data-hp="num"] .hq,.hside[data-hp="num"] .hprj{display:none!important}
.hside[data-hp="num"] .hsp{display:none}
.hside[data-hp="num"] .hstats{grid-template-columns:1fr}
.hside{position:sticky;top:0;height:100vh;display:flex;flex-direction:column;gap:18px;padding:22px 16px 18px;background:var(--bg2);box-shadow:1px 0 0 var(--lo),2px 0 0 var(--hi);overflow-y:auto;scrollbar-width:none}
.hside::-webkit-scrollbar{display:none}
.hbr .brand{margin:0}
.hq{display:flex;align-items:center;gap:8px;height:38px;padding:0 12px;border-radius:12px;box-shadow:var(--in);color:var(--txt3)}
.hq svg{width:15px;height:15px;flex:none}
.hq input{flex:1;min-width:0;background:none;border:0;outline:none;font-size:13.5px;color:var(--txt)}
.hq input::placeholder{color:var(--txt3)}
.hq:focus-within{box-shadow:var(--in),0 0 0 2px var(--acc)}
.hlb{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--txt3);font-weight:600;margin:0 12px 6px}
.hls{display:flex;flex-direction:column;gap:2px}
.hls button{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:9px 12px;border-radius:11px;font-size:13px;color:var(--txt2);text-align:left;transition:color .14s,box-shadow .14s}
.hls button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hls button b{font-weight:500;color:var(--txt3);font-size:12px}
.hls button:hover{color:var(--txt)}
.hls button.on{box-shadow:var(--ins);color:var(--txt)}
.hls button.on span::before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--acc);margin:0 8px 1px 0}
.hsp{flex:1}
.hstats{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.hstats div{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:8px;padding:10px;border-radius:14px;box-shadow:var(--ins)}
.hstats i{grid-row:span 2;width:26px;height:26px;display:grid;place-items:center;color:var(--acc)}
.hstats i svg{width:16px;height:16px}
.hstats span{font-size:10.5px;color:var(--txt3)}
.hstats b{font-size:17px;font-weight:700;letter-spacing:-.02em;line-height:1.1}
.hupd{font-size:11px;color:var(--txt3);margin:0 4px}
.hmain{min-width:0;padding:26px 28px 90px}
.hhead{display:flex;align-items:baseline;gap:16px;margin:0 0 24px}
.hhead h1{font:700 clamp(28px,3.4vw,40px)/1.05 var(--sans);letter-spacing:-.035em;margin:0}
.hsub{color:var(--txt2);font-size:13px;margin-left:auto}
.hmain .hub{padding:0;max-width:none;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:26px}
.hmain .proj .ph{grid-template-columns:repeat(3,1fr);height:130px}
.hmain .proj .pb{padding:14px 6px 4px}
.hmain .proj .mt{margin-top:4px}
.hmain .proj .bars{margin-top:12px}
.drw{display:flex;align-items:center;gap:8px;margin-top:14px;padding:5px 5px 5px 12px;border-radius:12px;box-shadow:var(--in);font:11.5px/1.2 ui-monospace,Menlo,monospace;color:var(--txt2);min-width:0}
.drw span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.drw .pill{padding:7px 14px;flex:none}
.hmain .acts{margin-top:10px}
.hmain .acts .pill{padding:7px 13px;font-size:12px}
@media(max-width:900px){
  .hw{grid-template-columns:1fr;align-content:start}
  .hrail,.hpt{display:none}
  .hside .hbr{display:block}
  .hside[data-hp] .hq{display:flex!important}.hside[data-hp] .hprj{display:block!important}
  .hside[data-hp] .hstats{display:grid!important;grid-template-columns:repeat(4,1fr)}
  .hside{position:static;height:auto;gap:12px;padding:16px 16px 14px;box-shadow:0 1px 0 var(--lo),0 2px 0 var(--hi)}
  .hls{flex-direction:row;overflow-x:auto;scrollbar-width:none;padding:3px}
  .hls::-webkit-scrollbar{display:none}
  .hls button{flex:none;gap:8px}
  .hlb{margin:0 4px 4px}
  .hsp,.hupd{display:none}
  .hstats{grid-template-columns:repeat(4,1fr)}
  .hmain{padding:20px 16px 60px}
  .hmain .hub{grid-template-columns:1fr;gap:18px}
}
@media(max-width:520px){.hside[data-hp] .hstats{grid-template-columns:1fr 1fr}.hhead{flex-wrap:wrap}.hsub{margin-left:0}}

/* home: logo in cima al pannello, nuovo progetto e finestra di caricamento dal browser (23 set 2026) */
.hbr .brand{cursor:pointer}
.hnew{width:100%;text-align:center;padding:10px 14px}
.upbox{width:min(560px,100%)}
.upl{display:block;font-size:12px;color:var(--txt2);margin:0 0 14px}
.upin{display:block;width:100%;margin-top:6px;height:40px;padding:0 13px;border:0;border-radius:12px;background:var(--bg2);box-shadow:var(--in);color:var(--txt);font:inherit;font-size:14px;outline:none}
.upin:focus{box-shadow:var(--in),0 0 0 2px var(--acc)}
select.upin{appearance:none;-webkit-appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--txt2) 50%),linear-gradient(135deg,var(--txt2) 50%,transparent 50%);background-position:calc(100% - 18px) 18px,calc(100% - 13px) 18px;background-size:5px 5px;background-repeat:no-repeat}
.updz{border-radius:18px;box-shadow:var(--in);padding:26px 18px;text-align:center;display:flex;flex-direction:column;gap:6px;align-items:center;transition:box-shadow .15s}
.updz b{font-size:15px}.updz span{font-size:12px;color:var(--txt3)}
.updz.on{box-shadow:var(--in),0 0 0 2px var(--acc)}
.upbt{display:flex;gap:8px;margin-top:10px;flex-wrap:wrap;justify-content:center}
.upsum{font-size:12.5px;color:var(--txt2);margin:14px 2px 4px;min-height:18px}
.upsum .warn{color:var(--m)}
.upbar{height:8px;border-radius:4px;background:var(--lo);box-shadow:0 1px 0 var(--hi);overflow:hidden;margin:6px 0 12px}
.upbar i{display:block;height:100%;width:0;background:var(--acc);border-radius:4px;transition:width .3s var(--ease)}
.uperr{font-size:12px;color:var(--n);max-height:120px;overflow:auto;margin-bottom:8px}
.pill:disabled{opacity:.45;cursor:default}
/* voto del regista accanto al pallino, cosi' non copre la durata dei video in alto a destra */
.cell .rv{right:auto;left:22px;top:5px}

/* ---------- strumenti del proprietario (7 ott 2026): caricare trascinando, riordinare, eliminare, spostare ---------- */
.dropon{outline:2px dashed var(--txt2);outline-offset:-6px}
body.dropon{outline-offset:-10px}
.sec.dragging{opacity:.45}
.sec.dropbefore{box-shadow:-4px 0 0 0 var(--txt)}
.ren.del:hover,.ren.del.armed{color:#fff;background:var(--n)}
.sec .nmrow .ren.del.armed{opacity:1}
.mvmenu{position:fixed;z-index:60;min-width:220px;max-width:260px;max-height:50vh;overflow:auto;display:none;flex-direction:column;gap:2px;padding:6px;background:var(--bg3, #222);border:1px solid var(--line2);border-radius:14px;box-shadow:var(--shadow)}
.mvmenu.on{display:flex}
.mvmenu button{display:flex;justify-content:space-between;gap:10px;text-align:left;padding:9px 12px;border-radius:9px;font-size:13px;color:var(--txt);background:transparent}
.mvmenu button:hover{background:var(--bg4)}
.mvmenu button b{color:var(--txt3);font-weight:500}
.mvmenu span{padding:9px 12px;font-size:12.5px;color:var(--txt3)}

/* ================= Chiaro (20 ott 2026) =================
   Stessa pelle della pagina Projects di PITCHSOME (stile "Notion chiaro", prova 16 di pitchsome/docs/home_stile_20):
   grigio chiarissimo, testo #37352f, niente rilievi, bottone principale nero. Copre il Soft studio qui sopra:
   per tornare al Soft studio basta togliere questo blocco. Le ombre "in rilievo" diventano trasparenti (non none,
   perche' alcune regole le sommano a un contorno) e i campi hanno un filo sottile. */
:root{
  --bg:#f7f7f5; --bg2:#f7f7f5; --bg3:#efefed; --bg4:#ebebe9; --bg5:#e3e2e0; --chip:#ebebe9; --card:#fff;
  --line:rgba(55,53,47,.08); --line2:rgba(55,53,47,.12); --line3:rgba(55,53,47,.22);
  --txt:#37352f; --txt2:#787774; --txt3:#9b9a97;
  --y:#3e9b63; --m:#d9a02a; --n:#d44c47; --acc:#37352f; --acc2:#4b4943; --accink:#fff; --sel:#2383e2;
  --hi:#fff; --lo:#e3e2e0;
  --up:0 0 0 0 transparent; --ups:0 0 0 0 transparent; --ins:0 0 0 0 transparent;
  --in:inset 0 0 0 1px rgba(55,53,47,.14);
  --shadow:0 0 0 1px rgba(15,15,15,.05),0 12px 40px rgba(15,15,15,.14);
  color-scheme:light;
}
body{background:var(--bg);color:var(--txt)}
::selection{background:rgba(35,131,226,.22)}
*{scrollbar-color:#d3d2cf transparent}

/* marchio: cursore bianco su pista grigia */
.brand{box-shadow:none;background:var(--chip)}
.brand:before{background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.08)}

/* bottoni piatti: grigio al passaggio, il principale nero */
.crumb,.lang,.pill,.x,.ren,.tools button,.secl a,.iclose,.st button,.tbtns button{background:transparent;box-shadow:none;color:var(--txt)}
.crumb:hover,.lang:hover,.pill:hover,.x:hover,.ren:hover,.tools button:hover,.secl a:hover,.iclose:hover,.st button:hover{background:var(--chip);color:var(--txt);box-shadow:none}
.crumb,.lang,.pill,.x,.tools button,.secl a,.iclose{box-shadow:inset 0 0 0 1px var(--line2)}
.ren:hover{box-shadow:none}
.pill.acc,.gate button,.toast button{background:var(--ink,#37352f);color:#fff;box-shadow:none;border-radius:7px;font-weight:600;filter:none}
.pill.acc:hover,.gate button:hover,.toast button:hover{background:#4b4943;color:#fff;filter:none}
.pill,.crumb,.lang,.x,.tools button,.secl a{border-radius:7px}
.tools button.dg:hover{background:var(--n);color:#fff}

/* campi */
.gate input,.vbot input,.upin,textarea,.hq,.inl{background:#fff;box-shadow:var(--in)}
.gate input:focus,.vbot input:focus,.upin:focus,.hq:focus-within{box-shadow:inset 0 0 0 1px var(--sel),0 0 0 3px rgba(35,131,226,.18)}
.gate input,.hq,.upin,.vbot input{border-radius:7px}

/* piste: grigio con la voce attiva bianca */
.chips,.seg,.szbox{background:var(--chip);box-shadow:none;border-radius:8px}
.chips button,.seg button{border-radius:6px}
.chips button.on,.seg button.on{background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.08);color:var(--txt)}
.chips button.on::before{box-shadow:none}
#sz{background:var(--bg5);box-shadow:none}
#sz::-webkit-slider-thumb{background:var(--txt);box-shadow:0 1px 2px rgba(0,0,0,.2)}
#sz::-moz-range-thumb{background:var(--txt)}

/* ingresso e pannelli */
.gate .box,.card,.ibox,dialog{background:#fff;box-shadow:var(--shadow);border-radius:12px;color:var(--txt)}
dialog::backdrop{background:rgba(15,15,15,.35);backdrop-filter:none}
.intro{background:rgba(247,247,245,.82)}
.top{background:var(--bg2);box-shadow:0 0 0 1px var(--line2);border-radius:10px}
.rail,.hrail{background:var(--bg3);box-shadow:inset -1px 0 0 var(--line)}
.rbt.on,.hrail .rbt.on{background:#fff;box-shadow:0 1px 2px rgba(0,0,0,.08);color:var(--txt)}
.rmono i,.hrail .rmono i{color:var(--txt)}
.hside{background:var(--bg2);box-shadow:1px 0 0 var(--line2)}
.hls button.on{background:var(--chip);box-shadow:none}
.hls button.on span::before{background:var(--txt)}
.hstats div{background:#fff;box-shadow:inset 0 0 0 1px var(--line)}
.hstats i,.stat .ic{color:var(--txt2)}
.drw{background:var(--chip);box-shadow:none;border-radius:7px}
.drw .pill{font-family:var(--sans)}
.badge{background:var(--txt);color:#fff}
.prog,.bars,.upbar{background:var(--bg5);box-shadow:none}
.prog i,.upbar i{background:var(--txt)}

/* tessere: niente fondo, grigio al passaggio, foto con un filo */
.sec,.proj,.stat,.acell,.icol{background:transparent;box-shadow:none;border-radius:8px;transition:background .12s}
.sec:hover,.proj:hover{background:#efefed;transform:none;box-shadow:none}
.sec:active{box-shadow:none}
.stat,.acell,.icol{box-shadow:inset 0 0 0 1px var(--line)}
.stat .ic,.icol .iic{background:var(--chip);box-shadow:none}
.sec .ph,.proj .ph,.acell .ph,.card .media,.idemo{background:var(--bg3);border-radius:5px;box-shadow:0 0 0 1px rgba(55,53,47,.09)}

/* griglia della cartella: selezione blu come in Notion */
.cell{background:var(--bg3);border-radius:4px}
.cell::after{border-radius:4px}
.cell.sel::after{border-color:var(--sel);box-shadow:inset 0 0 0 4px rgba(35,131,226,.22)}
#marq{border-color:var(--sel);background:rgba(35,131,226,.10)}
.cell .cm{background:#fff;color:var(--txt)}

/* viewer, barra flottante, avvisi */
.vtop,.vbot,.tbtns,.tools,.toast{background:#fff;box-shadow:var(--shadow);border-radius:10px}
.vtop .cnt{background:var(--chip);box-shadow:none}
.vwrap img,.vwrap video{border-radius:4px}
.st button{box-shadow:inset 0 0 0 1px var(--line2)}
.st button.on{box-shadow:none;color:#fff}
.st .bm.on{color:var(--txt)}
.tbtns .kn:hover,.tbtns .km:hover,.tbtns .ky:hover{box-shadow:none}
.stamp{background:rgba(255,255,255,.75)}
.mvmenu{background:#fff;border:0;box-shadow:var(--shadow);border-radius:8px}
.mvmenu button{border-radius:5px}.mvmenu button:hover{background:var(--chip)}
.b,.p{background:var(--chip);box-shadow:none}
.updz{background:var(--bg);box-shadow:inset 0 0 0 1px var(--line2)}
.updz.on{box-shadow:inset 0 0 0 1px var(--sel),0 0 0 3px rgba(35,131,226,.18)}
@media(min-width:901px){.top{border-radius:0;box-shadow:1px 0 0 var(--line2)}}
@media(max-width:900px){.hside{box-shadow:0 1px 0 var(--line2)}}

/* cartelle nascoste al regista (24 ott 2026): nella vista proprietario restano, attenuate, con l'occhio barrato */
.sec.off .ph,.sec.off .nm{opacity:.4}
.offb{color:var(--txt2);font-weight:600}
.ren.vis.on{color:var(--n)}
/* riquadro Peso (24 ott 2026): su telefono, con due colonne, il quinto riquadro prende la riga intera */
@media(max-width:720px){.stats .stat.sz{grid-column:1/-1}}
/* Peso nel pannello Numeri della home: quinto riquadro, a tutta riga quando le colonne sono 2 o 4 */
.hstats .hkg{grid-column:1/-1}

/* home: l'immagine della tessera apre il progetto (24 ott 2026). Al passaggio le foto si avvicinano appena,
   si scuriscono e compare "Apri →"; il puntatore e' la mano */
.proj .ph{position:relative;cursor:pointer}
.proj .ph img{transition:opacity .5s,transform .35s var(--ease),filter .25s}
.proj .ph:hover img.in{transform:scale(1.04);filter:brightness(.78)}
.proj .ph .phgo{position:absolute;left:50%;top:50%;transform:translate(-50%,-40%);opacity:0;pointer-events:none;
  background:#fff;color:var(--txt);font-size:13px;font-weight:600;padding:7px 14px;border-radius:999px;
  box-shadow:0 4px 14px rgba(0,0,0,.18);transition:opacity .18s,transform .22s var(--ease);width:auto;height:auto}
.proj .ph:hover .phgo,.proj .ph:focus-visible .phgo{opacity:1;transform:translate(-50%,-50%)}
.proj .ph:focus-visible{outline:2px solid var(--sel);outline-offset:2px}
