/* rwyrd v4 — layout B sopra i token e i componenti v3 (v3-tokens.css + v3-app.css). Solo cornice e superfici nuove. */
.v4{--rc:0px}
.v4.has-rc{--rc:336px}
.v4-main{flex:1;min-width:0;display:flex;flex-direction:column;height:100%}
.v4-tb{height:60px;flex:none;display:flex;align-items:center;gap:12px;padding:0 16px}
.v4-search{flex:1;max-width:520px;margin:0 auto;display:flex;align-items:center;gap:10px;height:40px;padding:0 14px;border-radius:var(--r-pill);border:0;background:var(--surface-2);color:var(--ink-3);font:var(--t-sub);cursor:pointer;text-align:left}
.v4-search .q{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v4-search kbd{font:500 11px/1 var(--font);color:var(--ink-3);padding:4px 6px;border-radius:6px;background:var(--surface)}
.v4-search:hover{background:var(--surface-3)}
.v4-tb-r{display:flex;align-items:center;gap:8px;flex:none}
.v4-bell{position:relative}
.v4-bell .badge{position:absolute;top:-2px;right:-2px;min-width:16px;height:16px;line-height:16px;font-size:10px;padding:0 4px}
.v4-body{flex:1;min-height:0;display:flex}
.v4 .v3-main{flex:1;min-width:0}
.v4 .v3-col{padding-top:20px}
.v4.has-panel .v3-col{margin-left:auto!important;margin-right:auto!important}
.v4 .v3-player{left:calc(var(--w-side) + (100vw - var(--w-side) - var(--rc))/2);width:min(640px,calc(100vw - var(--w-side) - var(--rc) - 48px))}
.v4.has-panel .v3-player{left:calc(var(--w-side) + (100vw - var(--w-side) - var(--w-panel) - 24px)/2)}
.v4 .toast{left:calc(var(--w-side) + (100vw - var(--w-side) - var(--rc))/2)}
.v4 .v3-chats{height:100%}

/* colonna destra fissa (riepilogo della pagina) */
.v4-rcol{width:320px;flex:none;overflow-y:auto;padding:8px 16px 140px 0;scrollbar-width:thin}
.v4-box{background:var(--surface);border-radius:var(--r-lg);padding:16px;margin:0 0 12px;border:1px solid var(--card-border);box-shadow:var(--sh-1)}
.v4-box .row.sm{margin:0 -8px;width:calc(100% + 16px)}
.v4-box .kv{padding:6px 0;min-height:34px}
.only-drawer{display:none}
.v4-sech{flex-wrap:wrap}.v4-sech h3{flex:none}.v4-sech-r{margin-left:auto;min-width:0;max-width:100%}

/* ── Calendar ── */
.v4 .v3-main:has(.v4-cal){overflow:hidden}
.v4-cal{display:flex;height:100%}
.v4-cal-main{flex:1;min-width:0;display:flex;flex-direction:column;padding:12px 16px 0}
.v4-cal-top{display:flex;align-items:center;gap:16px;margin:0 0 12px;flex-wrap:wrap}
.v4-cal-bar{display:flex;align-items:center;gap:6px;margin:0 0 10px;flex-wrap:nowrap;min-width:0}
.v4-period{margin:0 0 0 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:18px}
.v4-dots{display:inline-flex;gap:3px}.v4-dots i{width:8px;height:8px;border-radius:50%;display:block}
.v4-cal-scroll{flex:1;min-height:0;overflow-y:auto;padding-bottom:100px}
/* mese infinito */
.v4-month{position:relative;flex:1;min-height:0;overflow-y:auto;background:var(--surface);border-radius:var(--r-lg) var(--r-lg) 0 0;border:1px solid var(--card-border);border-bottom:0;padding-bottom:96px;scrollbar-width:thin}
.v4-month .wds{position:sticky;top:0;z-index:3;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));background:var(--surface);border-bottom:1px solid var(--line)}
.v4-month .wds div{padding:10px 10px 8px;font:var(--t-cap);color:var(--ink-3)}
.v4-month .wrow{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}
.v4-month .cell{min-height:118px;padding:4px 5px 6px;border-top:1px solid var(--line);border-left:1px solid var(--line);display:flex;flex-direction:column;gap:3px;min-width:0;cursor:pointer}
.v4-month .cell:first-child{border-left:0}
.v4-month .cell.odd{background:color-mix(in oklab,var(--bg) 45%,var(--surface))}
.v4-month .cell.today{background:color-mix(in oklab,var(--accent) 6%,var(--surface))}
.v4-month .cell.drop{box-shadow:inset 0 0 0 2px var(--accent)}
.v4-month .dn{display:flex;align-items:center;gap:4px;padding:2px 4px;min-height:24px}
.v4-month .n{font:500 13px/1 var(--font);font-variant-numeric:tabular-nums;white-space:nowrap}
.v4-month .past .n{color:var(--ink-3)}
.v4-month .today .n{background:var(--accent);color:var(--on-accent);border-radius:12px;min-width:24px;height:24px;display:grid;place-items:center;padding:0 7px}
.v4-month .dl,.v4-legend .dl{width:6px;height:6px;border-radius:50%;background:var(--warn);display:inline-block}
.v4 .it{display:flex;align-items:center;gap:5px;border:0;text-align:left;cursor:pointer;padding:3px 6px;border-radius:7px;font:500 12px/16px var(--font);min-width:0;color:var(--ink);background:color-mix(in oklab,var(--c,var(--accent)) 16%,var(--surface));box-shadow:inset 3px 0 0 var(--c,var(--accent))}
.v4 .it .tx{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}
.v4 .it b{font-weight:700}
.v4 .it .ic{width:14px;height:14px;flex:none}
.v4 .it.tk{background:transparent;box-shadow:none;color:var(--ink-2);padding-left:4px}
.v4 .it.tk .ck{width:12px;height:12px;border-radius:50%;border:1.5px solid var(--ink-3);flex:none}
.v4 .it.tk.late{color:var(--err)}.v4 .it.tk.late .ck{border-color:var(--err)}
.v4 .it.grp{font-weight:600}
.v4 .it.rl{background:var(--ink);color:var(--ink-inv);box-shadow:none}
.v4 .it[draggable=true]{cursor:grab}
.v4-month .more{border:0;background:transparent;text-align:left;font:500 12px/1 var(--font);color:var(--ink-3);padding:3px 6px;cursor:pointer}
/* settimana / giorno */
.v4-tg{flex:1;min-height:0;display:flex;flex-direction:column;background:var(--surface);border-radius:var(--r-lg) var(--r-lg) 0 0;border:1px solid var(--card-border);border-bottom:0;overflow:hidden}
.v4-tg .hdr,.v4-tg .allday{display:grid;border-bottom:1px solid var(--line)}
.v4-tg .hdr>div{display:flex;flex-direction:column;align-items:center;padding:8px 0;gap:2px}
.v4-tg .hdr .w{font:var(--t-cap);color:var(--ink-3)}
.v4-tg .hdr .dnum{font:600 20px/32px var(--font);width:36px;height:36px;display:grid;place-items:center;border-radius:50%}
.v4-tg .hdr .today .dnum{background:var(--accent);color:var(--on-accent)}
.v4-tg .allday>span{font-size:11px;padding:8px 6px;text-align:right}
.v4-tg .ad{padding:3px;display:flex;flex-direction:column;gap:2px;min-width:0;border-left:1px solid var(--line);min-height:32px}
.v4-tg .ad.today,.v4-tg .col.today{background:color-mix(in oklab,var(--accent) 5%,var(--surface))}
.v4-tg .ad.drop,.v4-tg .col.drop{box-shadow:inset 0 0 0 2px var(--accent)}
.v4-tg .grid{flex:1;min-height:0;overflow-y:auto;padding-bottom:96px}
.v4-tg .inner{display:grid;position:relative}
.v4-tg .hrs{position:relative}
.v4-tg .hrs span{position:absolute;right:8px;transform:translateY(-6px);font:500 11px/1 var(--font);color:var(--ink-3)}
.v4-tg .col{position:relative;border-left:1px solid var(--line);cursor:pointer}
.v4-tg .hl{position:absolute;left:0;right:0;border-top:1px solid var(--line);pointer-events:none}
.v4-tg .ev{position:absolute;border:0;border-radius:8px;padding:4px 7px;text-align:left;overflow:hidden;cursor:pointer;font:500 12px/15px var(--font);color:var(--ink);background:color-mix(in oklab,var(--c) 20%,var(--surface));box-shadow:inset 3px 0 0 var(--c);display:flex;flex-direction:column;gap:1px;z-index:1}
.v4-tg .ev b{font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.v4-tg .ev span{color:var(--ink-2);font-size:11px}
.v4-tg .ev.tk{background:var(--surface);box-shadow:inset 0 0 0 1.5px var(--line-strong)}
.v4-tg .now{position:absolute;left:0;right:0;height:2px;background:var(--err);z-index:2;pointer-events:none}
/* agenda */
.v4-agenda{background:var(--surface);border-radius:var(--r-lg);border:1px solid var(--card-border);padding:4px 16px}
.v4-agenda .ag{display:grid;grid-template-columns:64px 1fr;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}
.v4-agenda .ag:last-child{border-bottom:0}
.v4-agenda .dd{display:flex;flex-direction:column;align-items:center;font:var(--t-cap);color:var(--ink-3)}
.v4-agenda .dd b{font:600 22px/32px var(--font);color:var(--ink);width:38px;height:38px;display:grid;place-items:center;border-radius:50%}
.v4-agenda .today .dd b{background:var(--accent);color:var(--on-accent)}
.v4-agenda .its{display:flex;flex-direction:column;gap:6px;min-width:0}
.v4-agenda .ai{display:flex;flex-direction:column;align-items:flex-start;gap:2px;border:0;text-align:left;padding:10px 12px;border-radius:12px;cursor:pointer;color:var(--ink);background:color-mix(in oklab,var(--c,var(--ink-3)) 14%,var(--surface));box-shadow:inset 4px 0 0 var(--c,var(--ink-3))}
.v4-agenda .ai.rl{background:var(--ink);color:var(--ink-inv);box-shadow:none}
.v4-agenda .ai b{font:var(--t-row);font-size:14px}.v4-agenda .ai span{font:var(--t-sub);opacity:.75}
.v4-agenda .ai.empty{background:transparent;box-shadow:inset 0 0 0 1px var(--line);color:var(--ink-3);font:var(--t-sub)}
/* colonna destra del calendario (v2): pannello + striscia di icone */
.v4-cal-rc{display:flex;flex:none;height:100%}
.v4-cal-pane{width:300px;overflow-y:auto;padding:12px 12px 120px;display:flex;flex-direction:column;border-left:1px solid var(--line);scrollbar-width:thin}
.v4-strip{width:60px;display:flex;flex-direction:column;align-items:center;gap:6px;padding:12px 0;border-left:1px solid var(--line)}
.v4-strip button{position:relative;width:44px;height:44px;border-radius:14px;border:0;background:transparent;color:var(--ink-2);display:grid;place-items:center;cursor:pointer}
.v4-strip button:hover{background:var(--hover);color:var(--ink)}
.v4-strip button.on{background:var(--tab-on);color:var(--ink);box-shadow:var(--sh-1)}
.v4-strip .badge{position:absolute;top:2px;right:0;min-width:16px;height:16px;line-height:16px;font-size:10px;padding:0 4px}
.v4-strip .badge.warn{background:var(--warn)}
.v4-strip .lbl{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.v4-pane-h{display:flex;align-items:center;gap:6px;margin:0 0 10px;min-height:36px}
.v4-pane-h h3{font:var(--t-h3);margin:0;flex:1}
.v4-pane-b{display:flex;flex-direction:column}
.v4-pane-b .row.sm{padding-left:4px;padding-right:4px}
.v4-note{display:block;width:100%;text-align:left;background:var(--surface);border-radius:14px;padding:12px;margin:0 0 8px;border:1px solid var(--card-border);box-shadow:var(--sh-1);cursor:pointer;color:var(--ink)}
.v4-note:hover{box-shadow:var(--sh-2)}
.v4-note b{font:var(--t-row);font-size:14px}
.v4-note p{font:var(--t-sub);color:var(--ink-2);margin:6px 0 8px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.v4-ned{display:flex;flex-direction:column}
.v4-nview{min-height:200px;cursor:text;line-height:22px}
.v4-nview p{margin:0}
.v4-nview a{color:var(--accent-ink)}
.v4-nview .ck{display:flex;gap:8px;align-items:center;cursor:pointer;padding:2px 0}
.v4-nview .ck.on{color:var(--ink-3);text-decoration:line-through}
/* meetings */
.v4-meet{display:flex;gap:16px;flex:1;min-height:0}
.v4-meet-l{width:320px;flex:none;overflow-y:auto;padding-bottom:100px}
.v4-mi{display:flex;flex-direction:column;align-items:flex-start;gap:3px;width:100%;text-align:left;padding:10px 12px;border-radius:14px;border:0;background:transparent;cursor:pointer;color:var(--ink)}
.v4-mi:hover{background:var(--hover)}.v4-mi.on{background:var(--selected)}
.v4-mi b{font:var(--t-row);font-size:14.5px}.v4-mi span{font:var(--t-sub);color:var(--ink-2)}
.v4-meet-r{flex:1;min-width:0;overflow-y:auto;background:var(--surface);border-radius:var(--r-lg) var(--r-lg) 0 0;border:1px solid var(--card-border);border-bottom:0;padding:24px 28px 110px}
.v4-md{max-width:var(--w-read)}
.v4-ta{width:100%;min-height:64px;border:0;background:transparent;font:var(--t-body);color:var(--ink);outline:none;resize:vertical}
.v4-in{width:100%;height:40px;border:0;background:var(--surface-2);border-radius:12px;padding:0 12px;font:var(--t-body);font-size:14px;color:var(--ink);outline:none}
.v4-in:focus{box-shadow:var(--focus)}
/* board */
.v4-board{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(260px,1fr);gap:16px;overflow-x:auto;align-items:start;padding-bottom:8px}
.v4-bcol{border-radius:18px;box-shadow:inset 0 0 0 1px var(--line);padding:12px 8px 8px;display:grid;gap:4px;align-content:start;min-width:0}
.v4-bcol.drop{background:var(--accent-soft)}
.v4-bcol .h{display:flex;align-items:center;gap:8px;padding:0 8px 6px}
.v4-bcol .h b{font:var(--t-row);flex:1}.v4-bcol .h em{font-style:normal;color:var(--ink-3);font:var(--t-sub)}
.v4-card{display:flex;gap:10px;align-items:flex-start;padding:10px;border-radius:12px;background:var(--surface);cursor:grab;box-shadow:var(--sh-1);border:1px solid var(--card-border)}
.v4-card .t{font:500 13.5px/18px var(--font)}
.v4-card.done .t{color:var(--ink-3);text-decoration:line-through}
.v4-badd{width:100%;height:36px;border:0;background:transparent;border-radius:12px;padding:0 10px;font:var(--t-sub);color:var(--ink);outline:none}
.v4-badd:focus,.v4-badd:hover{background:var(--hover)}
.v4-sw{width:24px;height:24px;border-radius:50%;border:0;cursor:pointer;flex:none}

/* ── Audience (grafici Revolut) ── */
.v4-chart{padding:22px}
.v4-chart-h{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.v4-bars{position:relative;display:flex;align-items:flex-end;gap:8px;margin-top:18px;padding-right:44px}
.v4-bars .b{flex:1;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;border:0;background:transparent;cursor:pointer;padding:0;min-width:0}
.v4-bars .b i{display:block;width:100%;max-width:40px;border-radius:8px 8px 4px 4px;background:var(--surface-3);max-height:calc(100% - 22px);transition:background .15s}
.v4-bars .b span{font:var(--t-cap);color:var(--ink-3);margin-top:6px;height:16px}
.v4-bars .b.on i{background:var(--accent)}.v4-bars .b.on span{color:var(--ink)}
.v4-bars .b:hover i{background:color-mix(in oklab,var(--accent) 45%,var(--surface-3))}
.v4-bars .gl{position:absolute;left:0;right:44px;border-top:1px dashed var(--line-strong);pointer-events:none;margin-bottom:22px}
.v4-bars .gl.avg{border-color:var(--accent-ink);opacity:.6}
.v4-bars .gl em{position:absolute;right:-44px;top:-8px;font:500 11px/1 var(--font);font-style:normal;color:var(--ink-3)}
.v4-bars.mini{gap:4px;margin-top:10px;padding-right:0}.v4-bars.mini .b i{border-radius:3px;max-height:100%}.v4-bars.mini .gl{right:0;margin-bottom:0}
.v4-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:12px 0}
.v4-cards .v{font:700 26px/32px var(--font);letter-spacing:-.02em;margin:4px 0 4px}
.v4-split{display:flex;gap:2px;height:8px;border-radius:4px;overflow:hidden;margin:12px 0 6px}
.v4-split i{display:block;height:100%}
.v4-two{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.v4-donut{position:relative;width:180px;height:180px}
.v4-donut .c{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
.v4-donut .c b{font:700 24px/30px var(--font)}
.v4-alloc{display:grid;grid-template-columns:minmax(90px,1.2fr) 2fr 64px;align-items:center;gap:12px;padding:8px 0}
.v4-alloc b{text-align:right;font-weight:500}
/* costi: ordine del recoupment */
.v4-wf{display:flex;gap:3px;height:14px;margin:16px 0 8px;border-radius:7px;overflow:hidden}
.v4-wf i{position:relative;display:block;background:var(--surface-3)}
.v4-wf i b{position:absolute;left:0;top:0;bottom:0}
.v4-wf .c b{background:var(--accent)}.v4-wf .a b{background:var(--warn)}.v4-wf .r{background:var(--ok-soft)}
.v4-wf-l{display:flex;gap:16px;flex-wrap:wrap;font:var(--t-sub);color:var(--ink-2)}
.v4-wf-l span{display:inline-flex;align-items:center;gap:6px}
.v4-wf-l i{width:10px;height:10px;border-radius:3px;display:inline-block}
.v4-wf-l .c{background:var(--accent)}.v4-wf-l .a{background:var(--warn)}.v4-wf-l .r{background:var(--ok)}
/* import, discover */
.v4-srcs{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.v4-src{display:flex;align-items:center;gap:12px;padding:14px;border-radius:16px;background:var(--surface);border:1px solid var(--card-border);box-shadow:var(--sh-1);text-align:left;cursor:pointer;color:var(--ink)}
.v4-src:hover{box-shadow:var(--sh-2)}
.v4-src>div{flex:1;min-width:0}.v4-src b{display:block;font:var(--t-row)}
.v4-disc{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px}
.v4-dcard{display:flex;flex-direction:column;align-items:center;gap:4px;padding:20px 14px;border-radius:20px;background:var(--surface);border:1px solid var(--card-border);box-shadow:var(--sh-1);text-align:center;cursor:pointer;color:var(--ink)}
.v4-dcard:hover{box-shadow:var(--sh-2)}.v4-dcard.sel{box-shadow:0 0 0 2px var(--accent)}
.v4-dcard b{font:var(--t-row);margin-top:8px}
.v4-dcard .row2{display:flex;gap:10px;font:var(--t-row);font-size:14px;margin:6px 0 4px}

/* ── responsive ── */
@media (max-width:1279px){
  .v4.has-rc{--rc:0px}
  .v4-rcol{display:none}
  .v4-rcol.open{display:block;position:fixed;top:60px;right:0;bottom:0;width:340px;z-index:45;background:var(--bg);padding:12px 16px 140px;box-shadow:var(--sh-3)}
  .v4-rcol.open .only-drawer{display:flex;justify-content:flex-end;margin:0 0 4px}
  .v4-cal-pane{width:280px}
}
@media (max-width:1000px){.v4-search .q{font-size:0}.v4-search .q::before{content:"Search";font:var(--t-sub)}}
@media (max-width:900px){.v4-cal-pane{position:absolute;right:60px;top:60px;bottom:0;z-index:20;background:var(--bg);box-shadow:var(--sh-3)}.v4-meet{flex-direction:column}.v4-meet-l{width:auto;max-height:260px;padding-bottom:0}}
@media (max-width:700px){
  .v4-tb{height:56px;padding:0 12px}
  .v4-tb .hide-s{display:none}
  .v4 .v3-player{left:8px;right:8px;width:auto}
  .v4 .toast{left:50%}
  .v4-rcol.open{top:0;width:auto;left:0;z-index:60}
  .v4-cal{flex-direction:column}
  .v4-month{flex:none;height:calc(100dvh - 300px);min-height:420px}
  .v4-cal-main{padding:8px 8px 0}
  .v4-cal-bar{flex-wrap:wrap}
  .v4-cal-rc{height:auto;order:-1}
  .v4-strip{flex-direction:row;width:auto;justify-content:center;border-left:0;border-bottom:1px solid var(--line);padding:4px 0}
  .v4-cal-pane{position:fixed;inset:0;bottom:64px;width:auto;z-index:50;padding:16px 16px 40px}
  .v4-month .cell{min-height:64px;padding:2px}.v4-month .it .tx{display:none}.v4-month .it{min-height:8px;padding:2px;justify-content:center}.v4-month .wds div{text-align:center;padding:8px 2px}.v4-month .dn{justify-content:center}
  .v4-cards,.v4-two,.v4-srcs{grid-template-columns:1fr}
  .v4-meet-r{padding:16px 16px 100px}
}
.v4-rc-btn{display:none}
.v4-pane-x{display:none}
@media (max-width:700px){.v4-pane-x{display:inline-flex;align-items:center;gap:6px;height:44px;margin:0 0 8px -8px;padding:0 10px;border:0;border-radius:999px;background:transparent;color:var(--ink);font:600 15px var(--font);cursor:pointer}.v4-pane-x:hover{background:var(--hover)}}
@media (max-width:1279px){.v4-rc-btn{display:inline-flex}}
