/* v2 screen styles (projects, assign grid, review, money, home, sales, calendar). */
.pj-board{display:flex;gap:12px;overflow-x:auto;padding-bottom:10px;align-items:flex-start}
.pj-col{flex:0 0 264px;display:flex;flex-direction:column;gap:10px;padding:8px;border-radius:16px;background:color-mix(in oklab,var(--surface) 50%,transparent);border:1px dashed transparent;min-height:220px}
.pj-col.hot{border-color:var(--brand);background:var(--brand-soft)}
.pj-colh{display:flex;align-items:center;gap:8px;padding:6px 6px 2px;font-size:12.5px}
.pj-drop{padding:22px 8px;text-align:center;font-size:12px;color:var(--text-4);border:1px dashed var(--line);border-radius:12px}
.pj-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;overflow:hidden;cursor:pointer;transition:transform .15s,box-shadow .15s,border-color .15s}
.pj-card:hover{transform:translateY(-2px);box-shadow:0 10px 24px rgba(0,0,0,.28);border-color:var(--line-strong)}
.pj-cover{position:relative;height:96px}.pj-cover img{width:100%;height:100%;object-fit:cover;display:block}
.pj-flag{position:absolute;left:8px;top:8px;display:inline-flex;align-items:center;gap:5px;padding:3px 8px;border-radius:99px;background:rgba(10,12,9,.76);backdrop-filter:blur(6px);font-size:11px;font-weight:700}
.pj-flag.danger{color:#ff9a8a}.pj-flag.info{color:#8fd3ef}.pj-flag.warning{color:#f2c46a}
.pj-body{padding:10px 12px 12px;display:flex;flex-direction:column;gap:4px}.pj-body>b{font-size:13.5px;line-height:1.3}.pj-body>span{font-size:12px}
.pj-prog{display:flex;align-items:center;gap:8px;margin-top:6px;font-size:11px;color:var(--text-3)}
.pj-foot{display:flex;align-items:center;gap:8px;margin-top:4px}
/* workspace */
.ws-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.ws-poster{width:72px;height:46px;border-radius:8px;object-fit:cover}
.ws-title{font-family:var(--font-display);font-size:22px;font-weight:600;line-height:1.2}
.ws-meta{display:flex;gap:14px;flex-wrap:wrap;margin-top:5px;font-size:12.5px;color:var(--text-3)}.ws-meta>span,.ws-meta>a{display:inline-flex;align-items:center;gap:5px}.ws-meta a{color:var(--text-3)}.ws-meta a:hover{color:var(--brand)}
.ws-steps{display:grid;grid-template-columns:repeat(8,minmax(0,1fr));gap:4px}[data-w~="lt1180"] .ws-steps{grid-template-columns:repeat(4,minmax(0,1fr))}
.ws-steps button{display:flex;align-items:center;gap:8px;min-height:40px;padding:0 10px;border:1px solid var(--line);background:var(--surface);color:var(--text-3);font-size:12.5px;font-weight:650;cursor:pointer;border-radius:10px;white-space:nowrap;overflow:hidden;min-width:0}
.ws-steps button span:last-child{overflow:hidden;text-overflow:ellipsis}
.ws-steps button.past{color:var(--text-2)}.ws-steps button.past .ws-step-n{background:color-mix(in oklab,var(--c) 22%,transparent);color:var(--c)}
.ws-steps button.now{border-color:var(--c);color:var(--text-1);background:color-mix(in oklab,var(--c) 10%,var(--surface))}.ws-steps button.now .ws-step-n{background:var(--c);color:#0b0d0a}
.ws-step-n{width:22px;height:22px;border-radius:99px;background:var(--surface-3);display:inline-flex;align-items:center;justify-content:center;font-size:11px;flex:none}
[data-w~="lt900"] .ws-steps{grid-template-columns:repeat(3,minmax(0,1fr))}
[data-w~="lt560"] .ws-steps{grid-template-columns:repeat(2,minmax(0,1fr))}
.ws-tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);overflow-x:auto}
.ws-tabs button{display:inline-flex;align-items:center;gap:7px;height:40px;padding:0 14px;border:0;background:none;color:var(--text-3);font-weight:650;cursor:pointer;border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap}
.ws-tabs button.on{color:var(--text-1);border-bottom-color:var(--brand)}
.ov-stuck{display:flex;flex-direction:column;gap:4px}.ov-stuck button{display:flex;align-items:center;gap:10px;padding:8px;border:0;background:none;border-radius:10px;cursor:pointer;text-align:left;font-size:13px}.ov-stuck button:hover{background:var(--surface-2)}
.ov-ok{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--text-2)}
.ov-steps{display:flex;flex-direction:column;gap:10px}.ov-step{display:grid;grid-template-columns:150px minmax(0,1fr) 54px 110px;gap:12px;align-items:center;font-size:12.5px}
[data-w~="lt720"] .ov-step{grid-template-columns:110px minmax(0,1fr) 44px}[data-w~="lt720"] .ov-step>span:last-child{display:none}
.ov-log,.ov-next{display:flex;align-items:center;gap:10px;padding:7px 0;border-bottom:1px solid var(--line);font-size:12.5px}.ov-log:last-child,.ov-next:last-child{border-bottom:0}
/* review */
.rv-list{display:flex;flex-direction:column;gap:8px}
.rv-item{display:flex;align-items:center;gap:12px;padding:8px;border:1px solid var(--line);border-radius:12px;flex-wrap:wrap}
.rv-thumb{position:relative;width:112px;aspect-ratio:16/9;border-radius:8px;overflow:hidden;flex:none;background:#000}.rv-thumb img{width:100%;height:100%;object-fit:cover}.rv-thumb span{position:absolute;right:4px;bottom:4px;font-size:10px;background:rgba(0,0,0,.65);color:#fff;padding:1px 5px;border-radius:4px}
.rv-b{flex:1;min-width:180px;display:flex;flex-direction:column;gap:3px}.rv-a{display:flex;gap:6px}
.rv-note{font-size:12px;color:var(--danger);background:var(--danger-soft);padding:6px 8px;border-radius:8px}
.rv-share{display:flex;align-items:center;gap:8px;padding:9px 12px;border:1px dashed var(--line-strong);border-radius:10px;font-size:12.5px;color:var(--text-2);overflow:hidden}
/* money */
.mn-top{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-bottom:12px}.mn-top>div{display:flex;flex-direction:column;gap:3px;font-size:12px}.mn-top b{font-family:var(--font-display);font-size:20px;font-weight:600}
.mn-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;padding:9px 0;border-top:1px solid var(--line);font-size:13px}.mn-row .v2-bar{grid-column:1/-1;height:4px}
/* assign grid */
.sg-wrap{display:grid;grid-template-columns:minmax(0,1fr);gap:16px;align-items:start}.sg-wrap.with-panel{grid-template-columns:minmax(0,1fr) 280px}
[data-w~="lt1000"] .sg-wrap.with-panel{grid-template-columns:minmax(0,1fr)}
.sg-main{min-width:0;display:flex;flex-direction:column;gap:10px;position:relative}
.sg-bar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.sg-hint{font-size:12px;flex:1;min-width:160px}
.sg-scroll{overflow:auto;border:1px solid var(--line);border-radius:14px;background:var(--surface);max-height:calc(100vh - 290px);min-height:260px}
.sg{border-collapse:separate;border-spacing:0;width:100%;min-width:880px}
.sg th{position:sticky;top:0;z-index:2;background:var(--surface);border-bottom:1px solid var(--line);padding:0;text-align:left}
.sg td{border-bottom:1px solid var(--line);padding:4px}
.sg .sg-shot{position:sticky;left:0;z-index:1;background:var(--surface);min-width:230px;width:230px;border-right:1px solid var(--line)}.sg th.sg-shot{z-index:3;padding:0 12px;font-size:12px}
.sg-colh{width:100%;display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 10px;border:0;background:none;cursor:pointer;font-size:12.5px;font-weight:700;color:var(--text-1);text-align:left}.sg-colh:hover:not(:disabled){background:var(--surface-2)}.sg-colh:disabled{cursor:default}
.sg-colh small{font-size:11px;font-weight:600;color:var(--text-3)}.sg-colh small.warn{color:var(--warning)}
.sg-rowh{width:100%;display:flex;align-items:center;gap:10px;padding:4px 8px;border:0;background:none;cursor:pointer;text-align:left;border-radius:8px}.sg-rowh:hover:not(:disabled){background:var(--surface-2)}.sg-rowh:disabled{cursor:default}
.sg-rowh img{width:52px;height:30px;object-fit:cover;border-radius:5px;flex:none}.sg-rowh>span{flex:1;min-width:0;display:flex;flex-direction:column}.sg-rowh small{font-size:11.5px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sg-cell{width:100%;min-width:124px;height:42px;display:flex;align-items:center;gap:8px;padding:0 8px;border:1px solid var(--line);border-radius:9px;background:var(--surface);cursor:pointer;text-align:left;position:relative;overflow:hidden}
.sg-cell::after{content:"";position:absolute;left:0;top:0;bottom:0;width:3px;background:var(--st)}
.sg-cell:hover{border-color:var(--line-strong);background:var(--surface-2)}
.sg-cell.empty{border-style:dashed;background:none}.sg-cell.empty::after{display:none}
.sg-cell.sel{border-color:var(--brand);background:var(--brand-soft);box-shadow:0 0 0 1px var(--brand)}
.sg-cell.mine{box-shadow:inset 0 0 0 1px color-mix(in oklab,var(--brand) 50%,transparent)}
.sg-c-t{display:flex;flex-direction:column;min-width:0;line-height:1.2}.sg-c-t b{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sg-c-t small{font-size:11px;font-weight:600}
.sg-plus{display:inline-flex;align-items:center;gap:5px;font-size:12px;color:var(--text-4);font-weight:600}
.sg-bulk{position:sticky;bottom:12px;z-index:5;display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 12px;background:var(--surface);border:1px solid var(--brand);border-radius:12px;box-shadow:var(--shadow-xl)}
.sg-panel{position:sticky;top:76px;background:var(--surface);border:1px solid var(--line);border-radius:14px;padding:12px;display:flex;flex-direction:column;gap:10px;max-height:calc(100vh - 100px);overflow-y:auto}
.sg-panel-h{display:flex;align-items:baseline;gap:8px;justify-content:space-between;font-size:13px}
.sg-load{display:flex;gap:10px;align-items:flex-start}.sg-load-t{display:flex;justify-content:space-between;gap:6px;font-size:12.5px;margin-bottom:4px}.sg-load small{font-size:11px}
.sg-popscrim{position:fixed;inset:0;z-index:90}
.sg-pop{position:fixed;background:var(--surface);border:1px solid var(--line-strong);border-radius:14px;box-shadow:var(--shadow-xl);display:flex;flex-direction:column;max-height:360px;overflow:hidden;animation:v2in .14s ease}
.sg-pop-h{padding:12px 14px 8px;display:flex;flex-direction:column;gap:2px;border-bottom:1px solid var(--line)}
.sg-pop-sec{padding:10px 14px;display:flex;flex-direction:column;gap:8px;overflow-y:auto}.sg-pop-sec+.sg-pop-sec{border-top:1px solid var(--line)}
.sg-pop-l{font-size:11px;font-weight:700;color:var(--text-4);text-transform:uppercase;letter-spacing:.05em}
.sg-ppl{display:flex;flex-direction:column;gap:2px;max-height:170px;overflow-y:auto}
.sg-ppl button{display:flex;align-items:center;gap:9px;padding:6px;border:0;background:none;border-radius:9px;cursor:pointer;text-align:left}.sg-ppl button:hover{background:var(--surface-2)}.sg-ppl button.on{background:var(--brand-soft)}
.sg-ppl-n{flex:1;min-width:0;display:flex;flex-direction:column}.sg-ppl-n b{font-size:12.5px}.sg-ppl-n small{font-size:11px;color:var(--text-3)}
.sg-ppl-l{width:64px;display:flex;flex-direction:column;gap:3px;align-items:flex-end}.sg-ppl-l .v2-bar{height:4px}.sg-ppl-l small{font-size:10.5px;font-family:var(--font-mono)}
.sg-sts{display:flex;gap:4px;flex-wrap:wrap}.sg-sts button{height:28px;padding:0 10px;border:1px solid var(--line);background:none;border-radius:99px;font-size:12px;font-weight:650;color:var(--text-2);cursor:pointer}.sg-sts button.on{border-color:var(--c);color:var(--c);background:color-mix(in oklab,var(--c) 14%,transparent)}
.sg-pop-row{display:grid;grid-template-columns:1.3fr 1fr 1fr;gap:8px}.sg-pop-row input{height:32px;padding:0 8px}
.sg-unassign{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;border:0;background:none;color:var(--danger);font-size:12.5px;cursor:pointer;padding:4px 0}
/* home */
.hm-hello{font-family:var(--font-display);font-size:26px;font-weight:600}
.hm-task{display:flex;align-items:center;gap:12px;padding:10px;border:1px solid var(--line);border-radius:12px;flex-wrap:wrap}
.hm-task img{width:64px;height:38px;border-radius:7px;object-fit:cover}.hm-task-b{flex:1;min-width:180px;display:flex;flex-direction:column;gap:2px}
.hm-proj{display:grid;grid-template-columns:44px minmax(0,1fr) 120px 90px;gap:12px;align-items:center;padding:8px 0;border-bottom:1px solid var(--line);cursor:pointer;font-size:13px}.hm-proj:last-child{border-bottom:0}.hm-proj img{width:44px;height:28px;border-radius:5px;object-fit:cover}
[data-w~="lt720"] .hm-proj{grid-template-columns:44px minmax(0,1fr) 80px}[data-w~="lt720"] .hm-proj>:nth-child(3){display:none}
/* sales */
.crm-board{display:flex;gap:12px;overflow-x:auto;padding-bottom:10px;align-items:flex-start}
.crm-col{flex:0 0 250px;display:flex;flex-direction:column;gap:8px;padding:8px;border-radius:14px;background:color-mix(in oklab,var(--surface) 50%,transparent);min-height:200px;border:1px dashed transparent}.crm-col.hot{border-color:var(--brand)}
.crm-card{background:var(--surface);border:1px solid var(--line);border-radius:12px;padding:12px;display:flex;flex-direction:column;gap:6px;cursor:pointer}.crm-card:hover{border-color:var(--line-strong)}
.chain{display:flex;align-items:stretch;gap:0;flex-wrap:wrap}
.chain-s{flex:1;min-width:120px;display:flex;flex-direction:column;gap:6px;padding:12px;border:1px solid var(--line);margin-left:-1px;font-size:12.5px}.chain-s:first-child{border-radius:12px 0 0 12px;margin-left:0}.chain-s:last-child{border-radius:0 12px 12px 0}
.chain-s.on{background:var(--brand-soft);border-color:var(--line-brand)}.chain-s b{font-size:13px}
.doc-paper{background:#fff;color:#1b2114;border-radius:10px;padding:28px;font-size:13px;display:flex;flex-direction:column;gap:14px}.doc-paper table{width:100%;border-collapse:collapse}.doc-paper td,.doc-paper th{padding:7px 0;border-bottom:1px solid #e3e6dc;text-align:left}.doc-paper .r{text-align:right}
/* calendar */
.cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.cal-h{background:var(--surface-2);padding:8px 10px;font-size:11px;font-weight:700;color:var(--text-3)}
.cal-d{background:var(--surface);min-height:108px;padding:6px;display:flex;flex-direction:column;gap:3px;min-width:0}.cal-d.today{background:color-mix(in oklab,var(--brand) 9%,var(--surface))}.cal-d.off{opacity:.45}
.cal-n{font-size:12px;font-weight:700;color:var(--text-2)}.cal-e{display:block;font-size:11px;padding:2px 6px;border-radius:5px;background:var(--surface-2);border-left:3px solid var(--c);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:pointer;border-top:0;border-right:0;border-bottom:0;text-align:left;color:var(--text-1)}
[data-w~="lt720"] .cal-d{min-height:70px}[data-w~="lt720"] .cal-e{font-size:0;height:6px;padding:0}
/* misc */
.wf-steps{display:flex;gap:6px;flex-wrap:wrap;align-items:center}.wf-chip{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border-radius:8px;background:var(--surface-2);font-size:12px;font-weight:650}
.fl-tree{display:flex;flex-direction:column}.fl-row{display:flex;align-items:center;gap:10px;padding:8px 10px;border-radius:9px;font-size:13px;cursor:pointer;border:0;background:none;text-align:left;width:100%}.fl-row:hover{background:var(--surface-2)}.fl-row.on{background:var(--brand-soft)}
.so-card{border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--surface)}.so-card img{width:100%;aspect-ratio:16/9;object-fit:cover;display:block}.so-card div{padding:10px 12px;display:flex;flex-direction:column;gap:4px;font-size:12.5px}
.perm{width:100%;border-collapse:collapse;font-size:12.5px}.perm th,.perm td{padding:8px;border-bottom:1px solid var(--line);text-align:center}.perm th:first-child,.perm td:first-child{text-align:left}

.ws-tabs{overflow-y:hidden}
.ws-steps button span:last-child{flex:1;min-width:0;text-align:left}
.ov-stuck button b,.ov-stuck button>span{white-space:nowrap}.ov-stuck button>span[style]{overflow:hidden;text-overflow:ellipsis}
.sg-colh>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}.sg-colh small{white-space:nowrap}
.sg-c-t small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sg-cell{min-width:132px}
.pj-colh b{white-space:nowrap}
.ws-meta>span{white-space:nowrap}
.kpi span{white-space:normal}
.v2-mono{white-space:nowrap}.v2-table td{white-space:nowrap}.v2-table td>div{white-space:nowrap}

/* Trello / Notion layer */
.cd-lab{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 10px;border:0;border-radius:6px;background:color-mix(in oklab,var(--c) 26%,transparent);color:var(--text-1);font-size:12px;font-weight:650;cursor:pointer;box-shadow:inset 3px 0 0 var(--c)}
.cd-task{display:flex;align-items:center;gap:10px;padding:6px 0;border-bottom:1px solid var(--line);font-size:13px;flex-wrap:wrap}
.cd-ck{display:flex;align-items:center;gap:10px;padding:5px 2px;font-size:13px;cursor:pointer}.cd-ck input{accent-color:var(--brand);width:16px;height:16px}
.cd-cm{display:flex;gap:10px;padding:8px 0;align-items:flex-start}
.cd-mention{position:absolute;left:8px;bottom:70px;background:var(--surface);border:1px solid var(--line-strong);border-radius:10px;box-shadow:var(--shadow-xl);padding:4px;z-index:5;min-width:200px}.cd-mention button{display:flex;align-items:center;gap:8px;width:100%;padding:6px 8px;border:0;background:none;border-radius:7px;cursor:pointer;font-size:13px;text-align:left}.cd-mention button:hover{background:var(--surface-2)}
.wk-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.wk-views{display:inline-flex;gap:2px;padding:3px;background:var(--surface-2);border-radius:10px;flex-wrap:wrap}.wk-views button{display:inline-flex;align-items:center;gap:6px;height:30px;padding:0 11px;border:0;border-radius:7px;background:none;color:var(--text-3);font-weight:650;font-size:12.5px;cursor:pointer;white-space:nowrap}.wk-views button.on{background:var(--surface);color:var(--text-1);box-shadow:var(--shadow-xs)}
.wk-saved{display:flex;gap:6px;flex-wrap:wrap}.wk-sv{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:8px;overflow:hidden}.wk-sv button{display:inline-flex;align-items:center;gap:5px;height:28px;padding:0 9px;border:0;background:none;font-size:12px;font-weight:600;color:var(--text-2);cursor:pointer}.wk-sv button.x{padding:0 6px;color:var(--text-4)}.wk-sv button:hover{background:var(--surface-2)}
.wk-chip{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px;border:1px solid var(--line);border-radius:99px;background:none;font-size:12px;font-weight:600;color:var(--text-2);cursor:pointer;white-space:nowrap}.wk-chip.on{border-color:var(--c,var(--brand));background:color-mix(in oklab,var(--c,var(--brand)) 14%,transparent);color:var(--text-1)}
.wk-card{background:var(--surface);border:1px solid var(--line);border-radius:10px;padding:10px;display:flex;flex-direction:column;gap:7px;cursor:pointer;font-size:12.5px}.wk-card:hover{border-color:var(--line-strong);box-shadow:var(--shadow-sm)}.wk-card>b{font-weight:600;line-height:1.35}
.wk-labs{display:flex;gap:4px}.wk-labs span{width:30px;height:6px;border-radius:99px}
.wk-meta{display:flex;align-items:center;gap:10px;color:var(--text-3);font-size:11.5px}.wk-meta>span{display:inline-flex;align-items:center;gap:4px}
.wk-add{display:inline-flex;align-items:center;gap:6px;padding:8px;border:0;background:none;color:var(--text-3);font-size:12.5px;font-weight:600;cursor:pointer;border-radius:8px;text-align:left}.wk-add:hover{background:var(--surface-2);color:var(--text-1)}
.wk-cellin{width:100%;min-width:90px;height:28px;border:1px solid transparent;border-radius:6px;background:none;padding:0 6px;outline:none}.wk-cellin:hover{border-color:var(--line)}.wk-cellin:focus{border-color:var(--brand);background:var(--surface)}
.tl-row{display:flex;height:34px;border-bottom:1px solid var(--line);cursor:pointer;background:var(--surface)}.tl-row:hover{background:var(--surface-2)}.tl-head{cursor:default;height:30px;background:var(--surface-2)}
.tl-l{width:240px;flex:none;padding:0 12px;display:flex;align-items:center;gap:6px;font-size:12px;white-space:nowrap;overflow:hidden;position:sticky;left:0;background:inherit;z-index:1;border-right:1px solid var(--line)}
.tl-r{position:relative;flex:1;display:flex}.tl-head .tl-r span{flex:none;font-size:10.5px;color:var(--text-3);font-family:var(--font-mono);line-height:30px;white-space:nowrap}
.tl-bar{position:absolute;top:8px;height:18px;border-radius:5px;border:1px solid;font-size:10px;font-weight:700;color:var(--text-1);padding:0 5px;line-height:16px;white-space:nowrap;overflow:hidden}
.tl-today{position:absolute;top:0;bottom:0;width:2px;background:var(--danger);opacity:.7;pointer-events:none}
.sg-load.hot{background:var(--brand-soft);border-radius:10px;outline:1px dashed var(--brand)}
.nt-wrap{display:grid;grid-template-columns:220px minmax(0,1fr);gap:18px;align-items:start}[data-w~="lt720"] .nt-wrap{grid-template-columns:minmax(0,1fr)}
.nt-side{display:flex;flex-direction:column;gap:2px;position:sticky;top:76px}
.nt-page{padding:28px 36px 40px!important;min-height:420px}.nt-title{font-family:var(--font-display);font-size:26px;font-weight:600;margin-bottom:4px}
.nt-b{position:relative;display:flex;align-items:flex-start;gap:8px}.nt-b textarea{flex:1;border:0;background:none;outline:none;resize:none;font:inherit;color:var(--text-1);padding:3px 0;line-height:1.6;overflow:hidden;min-height:26px}
.nt-h textarea{font-family:var(--font-display);font-size:18px;font-weight:600;margin-top:10px}.nt-dot{line-height:1.6;padding-top:3px;color:var(--text-3)}.nt-todo input{margin-top:8px;accent-color:var(--brand)}
.nt-code textarea{font-family:var(--font-mono);font-size:12.5px;background:var(--surface-2);border-radius:8px;padding:8px 10px}.nt-b hr{flex:1;border:0;border-top:1px solid var(--line-strong);margin:12px 0}
.nt-menu{position:absolute;left:0;top:100%;z-index:10;background:var(--surface);border:1px solid var(--line-strong);border-radius:10px;box-shadow:var(--shadow-xl);padding:4px;min-width:200px}.nt-menu button{display:flex;align-items:center;gap:9px;width:100%;padding:7px 9px;border:0;background:none;border-radius:7px;cursor:pointer;font-size:13px;text-align:left}.nt-menu button:hover{background:var(--surface-2)}
.nt-side .fl-row span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
[data-w~="lt720"] .nt-side{position:static;flex-direction:row;overflow-x:auto;gap:4px}[data-w~="lt720"] .nt-side .fl-row{width:auto;flex:none}
[data-w~="lt720"] .nt-page{padding:20px!important}
/* review v2 */
.rv2-flow{display:flex;align-items:center;gap:6px;flex-wrap:wrap;font-size:12px}.rv2-fs{display:inline-flex;align-items:center;gap:5px;height:26px;padding:0 10px;border-radius:99px;border:1px solid var(--line);color:var(--text-3);font-weight:600}.rv2-fs.past{color:var(--text-2)}.rv2-fs.now{border-color:var(--brand);color:var(--text-1);background:var(--brand-soft)}
.rv2-wrap{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:16px;align-items:start}[data-w~="lt1000"] .rv2-wrap{grid-template-columns:minmax(0,1fr)}
.rv2-main{display:flex;flex-direction:column;gap:10px;min-width:0;background:#0b0c0a;border:1px solid var(--line);border-radius:14px;padding:12px}
.rv2-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.rv2-cred{display:inline-flex;align-items:center;gap:6px;font-size:12px;color:var(--text-2)}
.rv2-cmp{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.rv2-frame{position:relative;aspect-ratio:16/9;border-radius:8px;overflow:hidden;background:#000}.rv2-frame img{width:100%;height:100%;object-fit:cover;display:block}
.rv2-pin{position:absolute;transform:translate(-50%,-50%);width:24px;height:24px;border-radius:99px;background:#FFD25A;color:#111;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;box-shadow:0 0 0 3px rgba(0,0,0,.4)}.rv2-pin.done{background:#888}.rv2-pin.new{background:var(--brand);border:2px solid #fff}
.rv2-tc{position:absolute;right:8px;top:8px;font-size:11px;background:rgba(0,0,0,.6);color:#fff;padding:2px 7px;border-radius:4px}.rv2-scene{position:absolute;left:8px;top:8px;font-size:11px;font-weight:700;background:rgba(0,0,0,.6);color:#fff;padding:2px 7px;border-radius:4px;font-family:var(--font-mono)}
.rv2-tl{position:relative;height:40px;cursor:pointer}.rv2-sc{position:absolute;top:14px;height:22px;border-right:1px solid #0b0c0a;background:rgba(255,255,255,.1);font-size:9.5px;font-family:var(--font-mono);color:rgba(255,255,255,.6);padding:4px 4px 0;overflow:hidden;white-space:nowrap}.rv2-sc.fix{background:rgba(224,104,79,.35);color:#fff}
.rv2-mk{position:absolute;top:0;transform:translateX(-50%);width:16px;height:16px;border-radius:99px;background:#FFD25A;color:#111;font-size:9px;font-weight:800;display:flex;align-items:center;justify-content:center;z-index:2;cursor:pointer}.rv2-mk.done{background:#777}
.rv2-ph{position:absolute;top:10px;bottom:0;width:2px;background:#fff;z-index:3;pointer-events:none}
.rv2-ctl{display:flex;align-items:center;gap:6px}
.rv2-side{display:flex;flex-direction:column;background:var(--surface);border:1px solid var(--line);border-radius:14px;max-height:calc(100vh - 140px);position:sticky;top:76px}
.rv2-side-h{display:flex;justify-content:space-between;align-items:baseline;padding:12px 14px;border-bottom:1px solid var(--line)}
.rv2-list{flex:1;overflow-y:auto;padding:6px;display:flex;flex-direction:column;gap:2px;min-height:120px}
.rv2-c{display:flex;gap:9px;padding:9px 8px;border-radius:9px;cursor:pointer}.rv2-c.on{background:var(--surface-2)}
.rv2-num{width:20px;height:20px;border-radius:99px;background:#FFD25A;color:#111;font-size:10.5px;font-weight:800;display:flex;align-items:center;justify-content:center;flex:none}.rv2-num.done{background:var(--surface-3);color:var(--text-3)}
.rv2-shot{font-size:10.5px;padding:0 6px;border-radius:4px;background:var(--surface-3);color:var(--text-2)}
.rv2-send{display:inline-flex;align-items:center;gap:5px;margin-top:6px;border:1px solid var(--line);background:none;border-radius:7px;padding:3px 8px;font-size:11.5px;font-weight:600;color:var(--text-2);cursor:pointer}.rv2-send:hover{border-color:var(--brand);color:var(--text-1)}
.rv2-ok{width:26px;height:26px;flex:none;border:1px solid var(--line);border-radius:7px;color:var(--text-2);cursor:pointer;display:flex;align-items:center;justify-content:center}
.rv2-in{padding:10px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:6px}
.rv2-act{padding:10px;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:8px}
.pj-flag{white-space:nowrap;max-width:calc(100% - 16px);overflow:hidden;text-overflow:ellipsis}
.rp-leg{display:inline-flex;align-items:center;gap:6px;font-size:11.5px;color:var(--text-3)}.rp-leg i{width:10px;height:10px;border-radius:3px;margin-left:6px}
.rp-row{display:flex;align-items:center;gap:8px;font-size:12.5px}.rp-row i{width:10px;height:10px;border-radius:3px;flex:none}.rp-row b{margin-left:auto}
.rp-bar{display:grid;grid-template-columns:minmax(90px,130px) minmax(0,1fr) auto;gap:10px;align-items:center;padding:6px 0;font-size:12.5px}.rp-bar b{font-size:12px;min-width:48px;text-align:right}
.rp-row{white-space:nowrap}.rp-row>span,.rp-row{min-width:0}

/* deal drawer */
.dl-stage{display:flex;gap:4px}.dl-stage button{flex:1;display:flex;flex-direction:column;gap:6px;align-items:flex-start;border:0;background:none;padding:0;cursor:pointer;font-size:11.5px;color:var(--text-3);font-family:inherit;text-align:left}.dl-stage i{display:block;width:100%;height:4px;border-radius:4px;background:var(--surface-3)}.dl-stage .done i{background:var(--green-700,var(--brand))}.dl-stage .on i{background:var(--brand)}.dl-stage .on{color:var(--text);font-weight:700}.dl-stage .done{color:var(--text-2)}
.dl-facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1px;background:var(--line);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.dl-fact{background:var(--surface);padding:10px 12px;display:flex;flex-direction:column;gap:4px;min-width:0}.dl-fact>span{font-size:11.5px;display:flex;align-items:center;gap:5px}.dl-fact b{font-size:13.5px}
.dl-next{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:12px;border-radius:12px;background:color-mix(in oklab,var(--warning) 9%,var(--surface));border:1px solid color-mix(in oklab,var(--warning) 30%,transparent)}
.dl-sec{display:flex;flex-direction:column;gap:8px}.dl-sech{display:flex;align-items:center;justify-content:space-between;min-height:28px}
.dl-kv{display:grid;grid-template-columns:130px minmax(0,1fr);gap:8px 12px;font-size:12.5px}.dl-kv>span{color:var(--text-3)}.dl-kv>b{font-weight:600;text-wrap:pretty}
.dl-files{display:flex;flex-wrap:wrap;gap:6px}.dl-files button{display:inline-flex;align-items:center;gap:6px;padding:6px 10px;border-radius:8px;border:1px solid var(--line);background:var(--surface);color:var(--text-2);font:inherit;font-size:12px;cursor:pointer}.dl-files button:hover{border-color:var(--line-strong)}.dl-files .add{border-style:dashed;color:var(--text-3)}
.dl-cost{display:flex;flex-direction:column;gap:8px;font-size:12.5px}.dl-crow{display:flex;justify-content:space-between;gap:10px}.dl-crow i{display:inline-block;width:8px;height:8px;border-radius:2px;margin-right:8px}.dl-cbar{display:flex;height:8px;border-radius:6px;overflow:hidden;gap:2px}.dl-cbar i{display:block}
.dl-note{display:flex;gap:8px}.dl-note input{flex:1}
.dl-tl{display:flex;flex-direction:column}.dl-tli{display:flex;gap:10px;padding:10px 0;border-bottom:1px solid var(--line)}.dl-tli:last-child{border-bottom:0}.dl-tlic{width:26px;height:26px;border-radius:99px;background:var(--surface-2);display:grid;place-items:center;color:var(--text-2);flex:none}
.dl-client{display:flex;align-items:center;gap:12px}.dl-copy{border:0;background:none;color:var(--text-3);cursor:pointer;padding:4px;border-radius:6px}.dl-copy:hover{background:var(--surface-2);color:var(--text)}
.dl-row{width:100%;background:none;border-left:0;border-right:0;border-top:0;color:inherit;font:inherit;cursor:pointer}.dl-row:hover{color:var(--text)}
.v2-drawer-b>*{flex-shrink:0}.dl-sech>.sg-pop-l{flex:1;white-space:nowrap}
/* crm v3 */
.crm-sum{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.crm-sum small{font-size:11.5px}
.crm-colh{display:flex;flex-direction:column;gap:4px;padding:4px 6px 6px;font-size:12.5px}.crm-colh>i{display:block;height:3px;border-radius:3px;background:linear-gradient(90deg,var(--brand) var(--p),var(--surface-3) var(--p))}
.crm-card.rot{border-color:color-mix(in oklab,var(--danger) 45%,var(--line))}.crm-rot{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;color:var(--danger);font-weight:600}
.doc-age{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:12px}.doc-age>div{display:flex;flex-direction:column;gap:3px;font-size:12px}.doc-age span{display:flex;align-items:center;gap:6px;color:var(--text-3)}.doc-age i{width:8px;height:8px;border-radius:2px}.doc-age b{font-size:15px}
.doc-fun{display:flex;flex-direction:column;gap:10px}.doc-fun>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;align-items:center;font-size:12.5px}.doc-fun span{display:flex;align-items:center;gap:6px}.doc-fun small{grid-column:1/-1;font-size:11px}.doc-fun .v2-pbar,.doc-fun .wl-progress{grid-column:1/-1}
.doc-flow{display:flex;gap:6px;flex-wrap:wrap}.doc-flow>div{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 10px 0 4px;border-radius:99px;border:1px solid var(--line);font-size:12px;color:var(--text-3)}.doc-flow span{width:20px;height:20px;border-radius:99px;display:grid;place-items:center;background:var(--surface-2);font-size:11px;font-weight:700}
.doc-flow .done{color:var(--text-2)}.doc-flow .done span{background:var(--brand);color:var(--ink-900,#111)}.doc-flow .on{border-color:var(--line-brand);background:var(--brand-soft);color:var(--text);font-weight:600}.doc-flow .on span{background:var(--brand);color:var(--ink-900,#111)}.doc-flow .late{border-color:var(--danger);color:var(--danger)}.doc-flow .late span{background:var(--danger);color:#fff}
.doc-in{width:100%;border:1px solid transparent;background:transparent;font:inherit;color:inherit;padding:2px 4px;border-radius:4px}.doc-in:hover,.doc-in:focus{border-color:#c9cdbf;background:#fff;outline:none}.doc-in.r{text-align:right}
.doc-addl{display:inline-flex;align-items:center;gap:5px;border:1px dashed #c9cdbf;background:none;border-radius:6px;padding:4px 10px;font:inherit;font-size:12px;color:#6b7359;cursor:pointer}
.pj-health{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;font-weight:600;color:var(--c);white-space:nowrap}.pj-health i{width:7px;height:7px;border-radius:99px;background:var(--c)}
.pt-wrap{display:flex;flex-direction:column;gap:14px}.pt-group{border:1px solid var(--line);border-radius:12px;background:var(--surface);overflow:hidden}
.pt-gh{display:flex;align-items:center;gap:8px;width:100%;padding:10px 14px;border:0;background:none;color:var(--c);font:inherit;font-size:13px;cursor:pointer;text-align:left}.pt-gh b{color:var(--c)}.pt-gh .v2-mut{font-size:12px}
.pt-t{border-top:1px solid var(--line)}
.pt-tl{position:relative;height:10px;border-radius:5px;background:var(--surface-2);margin-bottom:3px}.pt-tl>i{position:absolute;top:0;bottom:0;border-radius:5px;overflow:hidden}.pt-tl>i>b{display:block;height:100%}.pt-tl>span{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--danger);opacity:.8}
.sg-cell:not(.empty):not(.sel){background:color-mix(in oklab,var(--st) 11%,var(--surface))}
.sg tfoot td{padding:8px 4px 4px;vertical-align:top}.sg-mix{display:flex;height:6px;border-radius:4px;overflow:hidden;gap:1px;margin:0 2px 4px;background:var(--surface-2)}.sg-mix i{display:block}.sg tfoot small{font-size:11px;padding-left:2px}
.sg-legend{display:flex;gap:10px;flex-wrap:wrap;font-size:11.5px;color:var(--text-3)}.sg-legend span{display:inline-flex;align-items:center;gap:5px}.sg-legend i{width:8px;height:8px;border-radius:2px}
.rv2-filt{display:flex;gap:4px;align-items:center;padding:0 12px 8px;flex-wrap:wrap}.rv2-filt button{height:26px;padding:0 9px;border-radius:99px;border:1px solid var(--line);background:none;color:var(--text-3);font:inherit;font-size:11.5px;font-weight:600;cursor:pointer}.rv2-filt button.on{background:var(--surface-2);color:var(--text);border-color:var(--line-strong)}
.rv2-rep{display:flex;gap:6px;align-items:flex-start;font-size:12px;margin-top:6px;padding-left:8px;border-left:2px solid var(--line)}
.rv2-keys{display:inline-flex;align-items:center;gap:4px;color:var(--text-4);font-size:11px}.rv2-keys kbd{font-family:var(--font-mono);font-size:10.5px;padding:1px 5px;border:1px solid var(--line);border-radius:4px;color:var(--text-3)}
.cf-chart{display:flex;align-items:flex-end;gap:6px;height:140px;padding-top:8px}.cf-col{flex:1;min-width:18px;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:4px}.cf-col i{display:block;width:100%;max-width:34px;border-radius:5px 5px 2px 2px}.cf-col small{font-size:10px;color:var(--text-4)}
.nt-row{display:flex;align-items:center;gap:2px;border-radius:8px}.nt-row:hover,.nt-row.on{background:var(--surface-2)}.nt-row.on .nt-pg{color:var(--text);font-weight:600}
.nt-fold{width:20px;height:24px;display:grid;place-items:center;border:0;background:none;color:var(--text-4);cursor:pointer;border-radius:5px;flex:none}.nt-fold:hover{background:var(--surface-3);color:var(--text)}.nt-add{opacity:0}.nt-row:hover .nt-add{opacity:1}
.nt-pg{flex:1;min-width:0;display:flex;align-items:center;gap:8px;height:30px;border:0;background:none;color:var(--text-2);font:inherit;font-size:13px;cursor:pointer;text-align:left}.nt-pg span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.nt-crumb{display:flex;align-items:center;gap:4px;font-size:12px;margin-bottom:8px;flex-wrap:wrap}.nt-crumb button{border:0;background:none;color:inherit;font:inherit;cursor:pointer;padding:0}.nt-crumb button:hover{color:var(--text)}
input.nt-title{width:100%;border:0;background:none;outline:none;color:var(--text);padding:0}
.nt-props{display:grid;grid-template-columns:130px minmax(0,1fr);gap:8px 12px;font-size:12.5px;align-items:center;padding:10px 0 14px;margin-bottom:14px;border-bottom:1px solid var(--line)}.nt-props>.v2-mut{display:flex;align-items:center;gap:6px}
.nt-sel{border:0;background:var(--surface-2);border-radius:6px;padding:3px 8px;font:inherit;font-weight:600;cursor:pointer}
.nt-lock{display:flex;align-items:center;gap:8px;font-size:12.5px;padding:8px 12px;border-radius:8px;background:var(--brand-soft);color:var(--text-2);margin-bottom:12px}
.nt-body{border:0;padding:0;margin:0;min-width:0}
.nt-callout{background:color-mix(in oklab,var(--gold-400) 10%,var(--surface-2));border-radius:8px;padding:6px 12px}.nt-quote{border-left:3px solid var(--line-strong);padding-left:12px}.nt-quote textarea{font-style:italic;color:var(--text-2)}.nt-tc textarea{font-family:var(--font-mono);font-size:12.5px}
.nt-tpls{display:flex;flex-direction:column;gap:6px}.nt-tpls button{display:flex;align-items:center;gap:12px;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--surface);color:inherit;font:inherit;cursor:pointer;text-align:left}.nt-tpls button:hover{border-color:var(--line-brand);background:var(--brand-soft)}.nt-tpls b{display:block;font-size:13px}.nt-tpls small{font-size:12px}
.crm-colh b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.pt-gh b{white-space:nowrap}
[data-w~="lt720"] .nt-row{flex:none}[data-w~="lt720"] .nt-side>.sg-pop-l{display:none}[data-w~="lt720"] .nt-pg span{overflow:visible}
.cl-head{display:flex;gap:14px;align-items:center}.cl-tag{display:inline-flex;align-items:center;height:20px;padding:0 8px;border-radius:99px;background:var(--surface-2);font-size:11px;font-weight:600;color:var(--text-2)}.cl-tag.on{background:var(--brand-soft);color:var(--brand)}.cl-tag.gold{background:color-mix(in oklab,var(--gold-400) 15%,transparent);color:var(--gold-400)}
.cl-note{display:flex;gap:8px;align-items:flex-start;font-size:12.5px;padding:10px 12px;border-radius:10px;background:color-mix(in oklab,var(--gold-400) 9%,var(--surface-2));line-height:1.5}.cl-note svg{flex:none;margin-top:2px;color:var(--gold-400)}
.cl-people{display:flex;flex-direction:column;gap:8px}.cl-person{display:flex;gap:12px;align-items:flex-start;padding:12px;border:1px solid var(--line);border-radius:12px}
.crm-colh b{flex:none;min-width:auto;overflow:visible}
.cl-person b{white-space:nowrap}.cl-tag{white-space:nowrap;flex:none;height:auto;min-height:20px;line-height:1.4}
/* viz */
.vz-leg{display:flex;gap:12px;flex-wrap:wrap;font-size:11.5px;color:var(--text-3);margin-top:8px}.vz-leg span{display:inline-flex;align-items:center;gap:5px}.vz-leg i{width:8px;height:8px;border-radius:2px}.vz-leg b{color:var(--text-2);font-weight:600;margin-left:2px}
.vz-vb .vz-leg{margin:0 0 8px}.vz-vb-plot{display:flex;align-items:stretch;gap:4px;border-bottom:1px solid var(--line)}.vz-vb-col{flex:1;min-width:0;display:flex;flex-direction:column;gap:4px}.vz-vb-bars{flex:1;display:flex;align-items:flex-end;justify-content:center;gap:2px}.vz-vb-bars i{display:block;flex:1;max-width:16px;border-radius:3px 3px 0 0;min-height:0}.vz-vb-col small{font-size:10px;color:var(--text-4);text-align:center;height:12px;transform:translateY(16px)}.vz-vb{padding-bottom:16px}.vz-vb-col.f i{opacity:.45}.vz-vb-col:hover i{filter:brightness(1.2)}
.vz-hs-bar{display:flex;gap:2px;border-radius:5px;overflow:hidden;background:var(--surface-2)}.vz-hs-bar i{display:block;min-width:2px}
.vz-fn{display:flex;flex-direction:column;gap:2px}.vz-fn-row{display:grid;grid-template-columns:110px minmax(0,1fr) auto;gap:10px;align-items:center;font-size:12.5px}.vz-fn-l{display:flex;align-items:center;gap:6px;color:var(--text-2);white-space:nowrap}.vz-fn-track{height:18px;display:flex;justify-content:center}.vz-fn-track i{display:block;height:100%;border-radius:4px}.vz-fn-cv{font-size:10.5px;color:var(--text-4);display:flex;align-items:center;gap:3px;padding-left:120px;justify-content:center}
.vz-ar-plot{position:relative}.vz-ar-plot svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible}.vz-ar-dot,.vz-ar-hit{position:absolute;width:10px;height:10px;margin:-5px 0 0 -5px;border-radius:99px;border:2px solid var(--surface)}.vz-ar-hit{background:transparent;border-color:transparent;width:14px;height:14px;margin:-7px 0 0 -7px}.vz-ar-hit:hover{background:var(--brand);border-color:var(--surface)}.vz-ar-dot em{position:absolute;bottom:12px;left:50%;transform:translateX(-50%);font-style:normal;font-size:11px;font-weight:700;white-space:nowrap;color:var(--text);background:var(--surface-2);padding:1px 6px;border-radius:5px}
.vz-ar-x{position:relative;height:16px;margin-top:4px}.vz-ar-x small{position:absolute;transform:translateX(-50%);font-size:10px;color:var(--text-4);white-space:nowrap}.vz-ar-x small:first-child{transform:none}.vz-ar-x small:last-child{transform:translateX(-100%)}
.vz-ht{display:grid;gap:3px;align-items:center;font-size:12px}.vz-ht>small{text-align:center;font-size:10.5px}.vz-ht>i{height:22px;border-radius:4px;display:grid;place-items:center;font-style:normal;font-size:10px;font-weight:700;color:var(--text)}.vz-ht-l{white-space:nowrap;padding-right:6px}.vz-ht>b{font-size:11px;padding-left:6px;text-align:right}
.vz-ring{position:relative;display:inline-grid;place-items:center;flex:none}.vz-ring-t{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;line-height:1.1}.vz-ring-t small{font-size:10px}
.vz-bl{position:relative;height:8px;border-radius:4px;background:var(--surface-2);min-width:60px}.vz-bl>i{position:absolute;left:0;top:0;bottom:0;border-radius:4px}.vz-bl>span{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--text-2);border-radius:1px}
.ov-steps2{display:flex;flex-direction:column;gap:10px}
.hm-gantt{display:flex;flex-direction:column;gap:8px}.hm-g-axis{position:relative;height:14px;margin-left:190px}.hm-g-axis small{position:absolute;font-size:10px;color:var(--text-4);transform:translateX(-50%)}.hm-g-axis small:first-child{transform:none}
.hm-g-row{display:grid;grid-template-columns:180px minmax(0,1fr);gap:10px;align-items:center;cursor:pointer;padding:3px 0;border-radius:6px}.hm-g-row:hover{background:var(--surface-2)}.hm-g-l{display:flex;align-items:center;gap:8px;min-width:0;font-size:12.5px}.hm-g-l b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:600}.hm-g-row .pt-tl{margin:0}
[data-w~="lt560"] .hm-g-row{grid-template-columns:110px minmax(0,1fr)}[data-w~="lt560"] .hm-g-axis{margin-left:120px}
.v2-card-a{flex:none}.v2-card-a a{white-space:nowrap}.vz-ring-t small,.vz-ring-t b{white-space:nowrap}
.cal-load{flex:1;height:4px;border-radius:2px;background:var(--surface-2);overflow:hidden;max-width:48px}.cal-load i{display:block;height:100%}
.vd-row{padding:10px 0;border-bottom:1px solid var(--line)}.vd-row:last-child{border-bottom:0}.vd-stars{display:inline-flex;gap:2px}.vd-stars i{width:6px;height:12px;border-radius:2px}

.cr-dept{display:flex!important;flex-direction:row!important;align-items:center;gap:12px;border:1px solid var(--line);border-radius:14px;background:var(--surface);cursor:pointer;padding:12px!important;font:inherit;color:inherit}
.hm-att{display:flex;align-items:center;gap:8px;border-radius:10px}.hm-att:hover{background:var(--surface-2)}.hm-att>button{flex:1;min-width:0;display:flex;align-items:center;gap:10px;padding:8px;border:0;background:none;cursor:pointer;text-align:left;font:inherit;color:inherit}.hm-att>.wl-btn,.hm-att>button+*{flex:none;margin-right:6px}
.wk-strip{display:flex;gap:6px;overflow-x:auto;padding-bottom:6px}.wk-fr{position:relative;flex:none;width:112px;aspect-ratio:16/9;border-radius:8px;overflow:hidden;border:1px solid var(--line);padding:0;cursor:pointer;background:var(--surface-2)}.wk-fr img{width:100%;height:100%;object-fit:cover;display:block;transform:scale(1.6)}.wk-fr:hover{border-color:var(--line-strong)}.wk-fr.fix{border-color:var(--danger);box-shadow:0 0 0 1px var(--danger)}
.wk-fr-id{position:absolute;left:5px;top:4px;font-size:10px;font-weight:700;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.8)}.wk-fr-ok{position:absolute;right:4px;top:4px;width:16px;height:16px;border-radius:99px;background:var(--brand);color:var(--ink-900,#111);display:grid;place-items:center}
.wk-fr-st{position:absolute;left:0;right:0;bottom:0;display:flex;gap:1px;height:5px}.wk-fr-st i{flex:1}
.cd-takes{display:flex;gap:6px;overflow-x:auto}.cd-takes button{position:relative;flex:none;width:96px;aspect-ratio:16/9;border-radius:8px;overflow:hidden;border:2px solid transparent;padding:0;cursor:pointer;background:var(--surface-2)}.cd-takes button.on{border-color:var(--brand)}.cd-takes img{width:100%;height:100%;object-fit:cover;transform:scale(1.5)}.cd-takes span{position:absolute;left:4px;top:3px;font-size:10px;font-weight:700;color:#fff;text-shadow:0 1px 3px #000}.cd-takes small{position:absolute;right:4px;bottom:3px;font-size:9.5px;color:#fff;text-shadow:0 1px 3px #000}
.fl-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(130px,1fr));gap:8px}.fl-tile{position:relative;display:flex;flex-direction:column;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--surface);padding:0;cursor:pointer;text-align:left;color:inherit;font:inherit}.fl-tile:hover{border-color:var(--line-strong)}.fl-tile img,.fl-ic{width:100%;aspect-ratio:16/9;object-fit:cover;transform-origin:center}.fl-tile img{transform:scale(1.4)}.fl-ic{display:grid;place-items:center;background:var(--surface-2);color:var(--text-3)}.fl-tile small{font-size:10.5px;padding:6px 8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;position:relative;background:var(--surface)}.fl-play{position:absolute;left:8px;top:8px;width:22px;height:22px;border-radius:99px;background:rgba(0,0,0,.6);color:#fff;display:grid;place-items:center}
.cal-e[draggable="true"]{cursor:grab}
.v2-search-r button>span:first-child{margin-left:0;color:inherit}.v2-search-r b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.v2-search-r button>span:last-child{white-space:nowrap}
.sg-pop-l>span{white-space:nowrap}
.wf-body{display:flex;flex-direction:column;gap:14px}.wf-ph .vz-leg{gap:4px 10px;white-space:nowrap;min-height:36px;align-content:flex-start}.wf-ph{display:flex;flex-direction:column}.wf-ph>.vz-leg{margin-top:8px}.wf-ph{position:relative}.wf-tot{order:-1;align-self:flex-start;font-size:11.5px;color:var(--text-3);margin-bottom:6px}.wf-ph .vz-leg span{gap:4px}
.vz-fn-track{justify-content:flex-start}.vz-fn-cv{display:grid;grid-template-columns:110px minmax(0,1fr) auto;gap:10px;padding:0;height:14px;align-items:center;justify-content:stretch}.vz-fn-cv>span:nth-child(2){display:flex;align-items:center;gap:3px;padding-left:6px}.vz-fn-row b{min-width:64px;text-align:right}
.crm-board{align-items:stretch}.crm-col{min-height:auto}.crm-card{min-height:156px}.crm-card>span:nth-last-child(1):not(.v2-mut){}.crm-card>div+span{margin-top:auto}
/* calendar v3 */
.cal-bar{display:flex;align-items:center;gap:6px;flex-wrap:wrap}.cal-lbl{min-width:120px;text-align:center;font-size:13px;white-space:nowrap}
.cal-n{display:flex;align-items:center;gap:6px}.cal-n small{font-size:10px;margin-left:auto}.cal-more{border:0;background:none;color:var(--text-3);font:inherit;font-size:11px;text-align:left;cursor:pointer;padding:0 4px}.cal-more:hover{color:var(--text)}
.cal-e{display:flex;align-items:center;gap:5px;border:0;border-left:3px solid var(--c);text-align:left;color:var(--text-1);font-family:inherit;cursor:pointer;min-width:0}.cal-e>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1;min-width:0}.cal-e.rich{padding:5px 6px;font-size:11.5px;border-radius:6px}.cal-e.rich small{font-size:10px;color:var(--text-3)}
.cal-load.wide{max-width:none;flex:none;height:3px;margin:0 8px}
.cal-wk{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px}.cal-wk-d{background:var(--surface);border:1px solid var(--line);border-radius:12px;min-height:360px;display:flex;flex-direction:column;gap:6px;padding-bottom:8px;min-width:0}.cal-wk-d.today{border-color:var(--line-brand);background:color-mix(in oklab,var(--brand) 6%,var(--surface))}
.cal-wk-h{display:flex;align-items:baseline;gap:6px;padding:10px 10px 0;font-size:12px}.cal-wk-h b{font-size:18px;font-family:var(--font-display)}.cal-wk-b{display:flex;flex-direction:column;gap:4px;padding:0 6px}
[data-w~="lt1000"] .cal-wk{grid-template-columns:repeat(4,minmax(0,1fr))}[data-w~="lt720"] .cal-wk{grid-template-columns:minmax(0,1fr)}[data-w~="lt720"] .cal-wk-d{min-height:auto}
.cal-pp{display:grid;min-width:960px}.cal-pp-h{padding:8px 4px;text-align:center;font-size:11px;color:var(--text-3);border-bottom:1px solid var(--line);display:flex;flex-direction:column;line-height:1.2}.cal-pp-h b{font-size:13px;color:var(--text-2)}.cal-pp-h.today b{color:var(--brand)}.cal-pp-h.we{opacity:.55}
.cal-pp-l{display:flex;align-items:center;gap:8px;padding:6px 10px;border-bottom:1px solid var(--line);font-size:12.5px;position:sticky;left:0;background:var(--surface);z-index:1}.cal-pp-l>span{display:flex;flex-direction:column;min-width:0;line-height:1.25}.cal-pp-l b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-pp-l small{font-size:11px;white-space:nowrap}
.cal-pp-c{border-bottom:1px solid var(--line);border-left:1px solid var(--line);background:var(--lc);min-height:46px;padding:4px;display:flex;flex-wrap:wrap;align-content:flex-start;gap:3px}.cal-pp-c small{width:100%;font-size:10.5px;font-weight:700}.cal-pp-c.we{background:repeating-linear-gradient(135deg,transparent 0 6px,var(--surface-2) 6px 7px),var(--lc)}.cal-pp-c.today{box-shadow:inset 2px 0 0 var(--brand)}
.cal-pp-t{display:block;width:14px;height:8px;border-radius:2px;cursor:pointer}
.cal-gt{display:flex;flex-direction:column;padding-top:6px;overflow-x:auto}.cal-gt-row{display:grid;grid-template-columns:220px minmax(520px,1fr);align-items:center;gap:10px;padding:5px 14px;cursor:pointer}.cal-gt-row:hover{background:var(--surface-2)}.cal-gt-axis{cursor:default;height:22px}.cal-gt-axis:hover{background:none}
.cal-gt-l{display:flex;gap:8px;align-items:center;min-width:0;font-size:12.5px}.cal-gt-l>span{display:flex;flex-direction:column;line-height:1.25}.cal-gt-l b,.cal-gt-l small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cal-gt-l small{font-size:11px}
.cal-gt-track{position:relative;height:22px}.cal-gt-axis .cal-gt-track small{position:absolute;top:2px;font-size:10px;color:var(--text-4);transform:translateX(-50%)}
.cal-gt-seg{position:absolute;top:5px;height:12px;opacity:.28;border-radius:2px}.cal-gt-seg.past{opacity:.6}.cal-gt-seg.now{opacity:1;top:3px;height:16px;border-radius:4px;box-shadow:0 0 0 1px var(--surface)}
.cal-gt-ms{position:absolute;top:1px;transform:translateX(-50%);color:var(--danger);font-size:14px;line-height:20px}.cal-gt-inv{position:absolute;top:-6px;transform:translateX(-50%);font-size:10px;font-weight:800}.cal-gt-today{position:absolute;top:-4px;bottom:-4px;width:2px;background:var(--danger);opacity:.6}
.cal-ag{display:flex;flex-direction:column;gap:10px}.cal-ag-h{display:flex;align-items:center;gap:8px;padding:10px 14px;border-bottom:1px solid var(--line);font-size:13px}.cal-ag-r{display:flex;align-items:center;gap:10px;width:100%;padding:8px 14px;border:0;border-bottom:1px solid var(--line);background:none;color:inherit;font:inherit;font-size:12.5px;cursor:pointer}.cal-ag-r:last-child{border-bottom:0}.cal-ag-r:hover{background:var(--surface-2)}.cal-ag-r>i{width:4px;height:22px;border-radius:2px;flex:none}.cal-ag-r>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* UI elements pass */
.v2-table thead th{position:sticky;top:0;z-index:1;background:var(--surface)}.v2-table tbody tr.click:hover td{background:var(--surface-2)}
.ws-crumb{display:flex;align-items:center;gap:4px;font-size:12px;color:var(--text-3);margin-bottom:2px}.ws-crumb a{color:var(--text-3)}.ws-crumb a:hover{color:var(--text)}
.v2-keys{width:min(680px,94vw);max-height:84vh;overflow:auto;background:var(--surface);border:1px solid var(--line-strong);border-radius:16px;box-shadow:var(--shadow-xl)}.v2-keys-h{display:flex;align-items:center;justify-content:space-between;padding:14px 18px;border-bottom:1px solid var(--line)}
.v2-keys-b{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px;padding:16px 18px}.v2-keys-r{display:flex;justify-content:space-between;gap:10px;padding:5px 0;font-size:12.5px;border-bottom:1px solid var(--line)}.v2-keys-r kbd{font-family:var(--font-mono);font-size:11px;padding:1px 6px;border:1px solid var(--line-strong);border-bottom-width:2px;border-radius:5px;margin-left:3px;color:var(--text-2)}
.v2-keys-r{align-items:center}.v2-keys-r>span:first-child{flex:1;min-width:0}.v2-keys-r>span:last-child{flex:none;white-space:nowrap}.v2-keys-h b{white-space:nowrap}
[data-w~="lt720"] .cal-e.rich{font-size:11.5px;height:auto;padding:5px 6px}
.cal-nav{display:flex;align-items:center;gap:6px;flex:none;white-space:nowrap;margin-left:auto}
.cal-ag-h b{white-space:nowrap}
/* blind-test fixes */
.chain-s>span:first-child{white-space:nowrap}.chain-s b{white-space:nowrap}
#v2-toast{max-width:min(560px,90vw);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
[data-w~="lt1180"] .ws-steps{display:flex;gap:4px;overflow-x:auto;grid-template-columns:none}[data-w~="lt1180"] .ws-steps button{flex:none;padding:0 9px;min-height:36px}[data-w~="lt1180"] .ws-steps button:not(.now)>span:last-child{display:none}[data-w~="lt1180"] .ws-steps button.now{flex:1;min-width:170px}
.sg-legend span{white-space:nowrap}[data-w~="lt1180"] .sg-hint{display:none}
.au-rule{display:flex;align-items:center;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line);cursor:pointer}.au-rule:last-child{border-bottom:0}.au-rule:hover{background:var(--surface-2)}.au-rule b{display:block;font-size:13px;font-weight:600;text-wrap:pretty}.au-rule small{font-size:11.5px}
.au-sw{position:relative;flex:none;width:36px;height:20px}.au-sw input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}.au-sw i{position:absolute;inset:0;border-radius:99px;background:var(--surface-3);transition:background .15s}.au-sw i::after{content:"";position:absolute;left:2px;top:2px;width:16px;height:16px;border-radius:99px;background:#fff;transition:transform .15s}.au-sw.on i{background:var(--brand)}.au-sw.on i::after{transform:translateX(16px)}
.v2-tone.brand{background:var(--brand-soft);color:var(--brand)}
.v2-pop-clear{margin-left:auto;border:0;background:none;color:var(--text-3);font:inherit;font-size:11.5px;cursor:pointer}.v2-pop-clear:hover{color:var(--text)}

/* login */
.lg-wrap{display:flex;min-height:100vh;width:100%;background:var(--bg-canvas)}.lg-hero{flex:1 1 46%;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;padding:44px 48px;min-width:0;color:#fff}.lg-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 35%;filter:brightness(.5)}.lg-hero>*{position:relative}.lg-hero>img{position:absolute}
.lg-brand{display:flex;align-items:center;gap:12px}.lg-brand img{height:40px}.lg-brand b{display:block;font-family:var(--font-display);font-size:19px;font-weight:600}.lg-brand span{font-size:10px;letter-spacing:.18em;text-transform:uppercase;opacity:.7;font-weight:600}
.lg-tag h1{font-family:var(--font-display);font-size:32px;line-height:1.25;font-weight:600;max-width:460px}.lg-tag p{margin-top:14px;max-width:420px;line-height:1.6;opacity:.8}.lg-hero small{opacity:.6;font-size:11.5px}
.lg-side{flex:1 1 54%;display:flex;align-items:center;justify-content:center;padding:32px;position:relative}.lg-lang{position:absolute;top:22px;right:24px;border-color:var(--line)!important}
.lg-card{width:min(440px,100%);display:flex;flex-direction:column;gap:14px}.lg-card h2{font-family:var(--font-display);font-size:24px;font-weight:600}
.lg-modes{display:grid;grid-template-columns:1fr 1fr;gap:10px}.lg-modes button{display:flex;flex-direction:column;align-items:flex-start;gap:6px;padding:12px 14px;border:1.5px solid var(--line);border-radius:12px;background:var(--surface);cursor:pointer;text-align:left}.lg-modes button.on{border-color:var(--brand);background:var(--brand-soft)}.lg-modes .v2-tone{background:var(--surface-3);color:var(--text-2)}.lg-modes button.on .v2-tone{background:var(--brand);color:var(--text-on-brand)}.lg-modes small{color:var(--text-3);font-size:11.5px}
.lg-people{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:6px;max-height:260px;overflow-y:auto}.lg-people button{display:flex;align-items:center;gap:9px;padding:7px 9px;border:1px solid var(--line);border-radius:10px;background:var(--surface);cursor:pointer;text-align:left;min-width:0}.lg-people button.on{border-color:var(--brand);background:var(--brand-soft)}.lg-people span{display:flex;flex-direction:column;min-width:0}.lg-people b{font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.lg-people small{font-size:11px;color:var(--text-3)}
.lg-err{display:flex;align-items:center;gap:6px;color:var(--danger);font-size:12.5px;font-weight:600}
@media (max-width:820px){.lg-hero{display:none}}
/* library */
.lb-bar{display:flex;flex-wrap:wrap;gap:10px;align-items:center;justify-content:space-between}.lb-filters{display:flex;gap:8px;flex-wrap:wrap}.lb-filters .v2-in{width:auto;min-width:150px;height:34px}
.lb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px}.lb-card{background:var(--surface);border:1px solid var(--line);border-radius:14px;overflow:hidden;display:flex;flex-direction:column}.lb-thumb{position:relative;height:120px;background:var(--surface-3);display:flex;align-items:center;justify-content:center;color:var(--text-4)}.lb-thumb img{width:100%;height:100%;object-fit:cover}
.lb-chip{position:absolute;top:8px;left:8px;display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:700;padding:3px 8px;border-radius:99px;background:rgba(10,11,9,.75);color:#fff}.lb-chip.r{left:auto;right:8px}
.lb-b{padding:12px;display:flex;flex-direction:column;gap:6px;flex:1}.lb-b>b{font-size:13.5px;line-height:1.3}.lb-meta{display:flex;align-items:center;gap:6px;font-size:11.5px;color:var(--text-3);margin-top:auto;margin-bottom:4px}
/* client share */
.sh-tog{display:flex;align-items:center;gap:10px}.sh-tog span{display:flex;flex-direction:column;font-size:13px}.sh-tog small{font-size:12px}
.sh-list{display:flex;flex-direction:column;gap:4px;border-top:1px solid var(--line);padding-top:10px}.sh-row{display:flex;align-items:center;gap:8px;font-size:12px;min-width:0}

/* timer · leave · rounds */
.tm-wrap{display:inline-flex;gap:4px;align-items:center}.tm-btn{display:inline-flex;align-items:center;gap:5px;height:28px;padding:0 9px;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--text-2);font-size:11.5px;cursor:pointer;white-space:nowrap}.tm-btn:hover{background:var(--surface-2)}.tm-btn.on{border-color:var(--danger);color:var(--danger);background:var(--danger-soft)}.tm-btn.ghost{padding:0 7px;border-color:transparent}
.lv-list{display:flex;flex-direction:column;gap:8px}.lv-row{display:flex;align-items:center;gap:10px;font-size:13px}
.rd-row{display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--text-2)}.rd-dots{display:inline-flex;gap:3px;margin-left:auto}.rd-dots i{width:14px;height:6px;border-radius:3px;background:var(--surface-3)}.rd-dots i.on{background:var(--brand)}.rd-dots i.x{background:var(--warning)}

/* client portal */
.ptl-wrap{width:100%;min-height:100vh;background:var(--bg-canvas)}
.ptl-staff{position:sticky;top:0;z-index:30;display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:8px 20px;background:var(--surface-2);border-bottom:1px solid var(--line);font-size:12.5px;font-weight:600}.ptl-staff button{border:1px solid var(--line);background:var(--surface);border-radius:8px;padding:4px 10px;cursor:pointer;font-size:12px}.ptl-staff button:last-child{margin-left:auto}
.ptl-top{width:100%;box-sizing:border-box;display:flex;align-items:center;gap:12px;max-width:1120px;margin:0 auto;padding:18px 24px}.ptl-top img{height:34px}.ptl-top b{display:block;font-family:var(--font-display);font-size:16px}.ptl-top div>span,.ptl-top>span{font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--text-3);font-weight:600}.ptl-top .ptl-who{margin-left:auto;font-size:13px;letter-spacing:0;text-transform:none;color:var(--text-2)}
.ptl-main{width:100%;box-sizing:border-box;max-width:1120px;margin:0 auto;padding:0 24px 60px;display:flex;flex-direction:column;gap:18px}
.ptl-hero{position:relative;border-radius:20px;overflow:hidden;border:1px solid var(--line);background:var(--surface);min-height:220px;display:flex;align-items:flex-end}.ptl-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:brightness(.38)}
.ptl-hero-b{position:relative;padding:28px;display:flex;flex-direction:column;gap:10px;width:100%;color:#fff}.ptl-eyebrow{font-size:12.5px;font-weight:700;opacity:.8}.ptl-hero h1{font-family:var(--font-display);font-size:30px;font-weight:600;line-height:1.2}.ptl-hero p{opacity:.85;font-size:14px}
.ptl-stages{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:6px;margin-top:6px}.ptl-stages>div{display:flex;align-items:center;gap:7px;min-width:0}.ptl-stages>div>span{width:26px;height:26px;border-radius:99px;display:inline-flex;align-items:center;justify-content:center;background:rgba(255,255,255,.14);flex:none}.ptl-stages small{font-size:12px;font-weight:600;opacity:.7;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ptl-stages .done>span{background:var(--brand);color:var(--text-on-brand)}.ptl-stages .on>span{background:#fff;color:#111}.ptl-stages .on small,.ptl-stages .done small{opacity:1}
.ptl-grid{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);gap:18px;align-items:start}.ptl-col{display:flex;flex-direction:column;gap:18px;min-width:0}
@media (max-width:880px){.ptl-grid{grid-template-columns:minmax(0,1fr)}.ptl-stages small{display:none}.ptl-hero h1{font-size:24px}}
.ptl-action{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:16px 18px;border-radius:14px;border:1px solid var(--line);background:var(--surface)}.ptl-action.warning{border-color:color-mix(in oklab,var(--warning) 45%,transparent)}.ptl-action b{font-size:15px}.ptl-action p{font-size:12.5px;margin-top:2px}
.ptl-vtabs{display:flex;gap:6px;flex-wrap:wrap;margin-bottom:10px}.ptl-vtabs button{display:flex;flex-direction:column;align-items:flex-start;padding:6px 12px;border:1px solid var(--line);border-radius:9px;background:var(--surface);cursor:pointer;font-weight:700;font-size:13px}.ptl-vtabs button.on{border-color:var(--brand);background:var(--brand-soft)}.ptl-vtabs small{font-weight:500;font-size:10.5px;color:var(--text-3)}
.ptl-player{position:relative;aspect-ratio:16/9;border-radius:12px;overflow:hidden;background:#000;cursor:pointer}.ptl-player img{width:100%;height:100%;object-fit:cover}.ptl-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:64px;height:64px;border-radius:99px;background:rgba(0,0,0,.55);color:#fff;display:flex;align-items:center;justify-content:center}.ptl-tc{position:absolute;right:10px;bottom:8px;font-size:11.5px;color:#fff;background:rgba(0,0,0,.55);padding:2px 7px;border-radius:6px}
.ptl-bar{position:relative;height:10px;margin:10px 0;border-radius:99px;background:var(--surface-3);cursor:pointer}.ptl-bar>span{position:absolute;left:0;top:0;bottom:0;border-radius:99px;background:var(--brand)}.ptl-bar>i{position:absolute;top:-3px;width:4px;height:16px;border-radius:2px;background:var(--warning);transform:translateX(-50%)}
.ptl-note{display:flex;gap:8px;align-items:center}.ptl-note>span{font-size:12px;color:var(--text-3);flex:none}
.ptl-notes{display:flex;flex-direction:column;gap:4px;margin:10px 0}.ptl-notes>div{display:flex;align-items:center;gap:10px;font-size:13px;padding:6px 8px;border-radius:8px;background:var(--surface-2)}.ptl-notes>div>span:first-child{font-size:11.5px;color:var(--brand);cursor:pointer;flex:none}.ptl-notes.sent{border-top:1px solid var(--line);padding-top:10px}
.ptl-vact{display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;margin-top:8px}.ptl-vstate{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:13px;color:var(--text-2);margin-top:4px}
.ptl-tl{display:flex;flex-direction:column}.ptl-ms{position:relative;display:flex;align-items:center;gap:10px;padding:9px 0 9px 26px;font-size:13.5px}.ptl-ms::before{content:"";position:absolute;left:8px;top:0;bottom:0;width:2px;background:var(--line)}.ptl-ms:first-child::before{top:50%}.ptl-ms:last-child::before{bottom:50%}.ptl-ms b{flex:1;font-weight:600}.ptl-ms .v2-mono{font-size:12px}
.ptl-dot{position:absolute;left:0;width:18px;height:18px;border-radius:99px;border:2px solid var(--line-strong);background:var(--surface);display:flex;align-items:center;justify-content:center}.ptl-ms.done .ptl-dot{background:var(--brand);border-color:var(--brand);color:var(--text-on-brand)}.ptl-ms.now .ptl-dot{border-color:var(--brand);box-shadow:0 0 0 4px var(--brand-ring)}.ptl-ms.next b,.ptl-ms.plan b{color:var(--text-2)}.ptl-ms.plan .ptl-dot{border-style:dashed}
.ptl-docs{display:flex;flex-direction:column;gap:6px}.ptl-doc{display:flex;align-items:center;gap:10px;padding:10px;border:1px solid var(--line);border-radius:10px;background:var(--surface);cursor:pointer;text-align:left;width:100%}.ptl-doc:hover{background:var(--surface-2)}.ptl-doc:disabled{cursor:default;opacity:.7}.ptl-doc>span:nth-child(2){display:flex;flex-direction:column}.ptl-doc>span>b{font-size:13px}.ptl-doc>span>small{font-size:11.5px}
.ptl-contact{display:flex;align-items:center;gap:12px}.ptl-contact>div{display:flex;flex-direction:column}.ptl-cbtns{display:flex;gap:6px;margin-top:12px;flex-wrap:wrap}
.ptl-acts{display:flex;flex-direction:column;gap:9px}.ptl-acts>div{display:flex;align-items:flex-start;gap:9px;font-size:12.5px;line-height:1.45}.ptl-acts .v2-ic{margin-top:2px;color:var(--text-3)}
.ptl-kv{display:grid;grid-template-columns:max-content minmax(0,1fr);gap:8px 16px;font-size:13px}.ptl-kv>span{color:var(--text-3)}
.ptl-agree{display:flex;gap:8px;align-items:flex-start;font-size:13px;line-height:1.45}.ptl-agree input{margin-top:3px;accent-color:var(--brand)}
.ptl-foot{text-align:center;font-size:11.5px;color:var(--text-4);margin-top:10px}

.cal-pp-c.off{background:repeating-linear-gradient(135deg,var(--surface-2) 0 6px,transparent 6px 12px)}.cal-offl{display:block;font-size:10px;font-weight:700;color:var(--warning)}
.cal-gt-inv{top:-7px!important;width:16px;height:16px;border-radius:99px;display:inline-flex!important;align-items:center;justify-content:center;background:color-mix(in oklab,currentColor 18%,var(--surface));border:1px solid currentColor;z-index:2;cursor:default}.cal-gt-inv.s{position:static;transform:none}.cal-gt-lg{display:inline-flex;align-items:center;gap:5px}
.ws-meta a,.ws-meta>span{white-space:nowrap}
/* portal admin */
.pa-thumb{width:44px;height:30px;border-radius:6px;object-fit:cover;flex:none}.pa-ph{display:inline-flex;align-items:center;justify-content:center;background:var(--surface-3);color:var(--text-3)}
.pa-shared{display:inline-flex;gap:10px;font-size:12.5px;color:var(--text-2)}.pa-shared>span{display:inline-flex;align-items:center;gap:4px}
.pa-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.pa-on{display:flex;align-items:center;gap:8px;font-size:13px;font-weight:600;white-space:nowrap}
.pa-list{display:flex;flex-direction:column;gap:6px;margin-top:8px}.pa-row{display:flex;align-items:center;gap:10px;padding:9px 10px;border:1px solid var(--line);border-radius:10px;font-size:13px}.pa-row.off{opacity:.55}.pa-row small{font-size:11.5px}
.ptl-staff a{font-weight:700}
/* advanced gantt */
.gt-tools{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line)}.gt-chk{display:inline-flex;align-items:center;gap:6px;font-size:12.5px;color:var(--text-2);cursor:pointer}.gt-chk input{accent-color:var(--brand)}
.gt{overflow:auto;max-height:72vh;position:relative}
.gt-row{display:flex;min-width:max-content}.gt-l{position:sticky;left:0;z-index:3;width:300px;flex:none;display:flex;align-items:center;gap:8px;padding:0 12px;background:var(--surface);border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:46px}
.gt-track{position:relative;flex:none;border-bottom:1px solid var(--line);min-height:46px}
.gt-head{position:sticky;top:0;z-index:5}.gt-head .gt-l{z-index:6;min-height:52px}.gt-axis{background:var(--surface);min-height:52px}
.gt-months{position:relative;height:24px;border-bottom:1px solid var(--line)}.gt-months span{position:absolute;top:0;height:24px;padding:4px 8px;font-size:11.5px;font-weight:700;border-left:1px solid var(--line-strong);white-space:nowrap;overflow:hidden}
.gt-ticks{position:relative;height:27px}.gt-ticks span{position:absolute;top:0;height:27px;display:flex;align-items:center;justify-content:center;font-size:10.5px;color:var(--text-4);border-left:1px solid var(--line)}.gt-ticks span.we{background:var(--surface-2)}.gt-ticks span.td{color:var(--brand);font-weight:700}
.gt-today{position:absolute;top:0;bottom:0;width:2px;background:var(--brand);opacity:.55;z-index:1;pointer-events:none}.gt-today.hd{opacity:1}.gt-today.hd b{position:absolute;bottom:2px;left:4px;font-size:10px;color:var(--brand);white-space:nowrap}
.gt-chev{width:22px;height:22px;border:0;background:none;color:var(--text-3);border-radius:6px;cursor:pointer;display:inline-flex;align-items:center;justify-content:center;flex:none}.gt-chev:hover{background:var(--surface-2)}
.gt-name{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.25;cursor:pointer}.gt-name b{font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.gt-name small{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gt-pct{display:flex;align-items:center;gap:6px;flex:none}.gt-pct>span{width:46px;height:5px;border-radius:99px;background:var(--surface-3);overflow:hidden}.gt-pct i{display:block;height:100%;background:var(--brand)}.gt-pct small{font-size:11px;width:30px;text-align:right}
.gt-bar{position:absolute;top:11px;height:24px;border-radius:7px;overflow:hidden;cursor:pointer;box-shadow:0 0 0 1px var(--line-strong);z-index:2}.gt-bar:hover{box-shadow:0 0 0 2px var(--brand)}
.gt-seg{position:absolute;top:0;bottom:0}.gt-seg.past{opacity:.55}.gt-seg.next{opacity:.2}.gt-seg.now{opacity:1}
.gt-prog{position:absolute;left:0;bottom:0;height:3px;background:#fff;opacity:.85}
.gt-lbl{position:absolute;left:8px;top:0;bottom:0;display:flex;align-items:center;font-size:11px;font-weight:700;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.6);white-space:nowrap;pointer-events:none}
.gt-late{position:absolute;top:15px;height:16px;border-radius:0 6px 6px 0;background:repeating-linear-gradient(135deg,color-mix(in oklab,var(--danger) 55%,transparent) 0 4px,transparent 4px 8px);border:1px solid var(--danger);border-left:0;z-index:1;display:flex;align-items:center;justify-content:flex-end;padding-right:4px}.gt-late small{font-size:10px;font-weight:700;color:var(--danger)}
.gt-due{position:absolute;top:16px;width:14px;height:14px;background:var(--danger);transform:translateX(-50%) rotate(45deg);border:2px solid var(--surface);z-index:3;cursor:default}
.gt-ver{position:absolute;top:36px;transform:translateX(-50%);font-size:9.5px;font-weight:700;padding:0 4px;border-radius:4px;background:var(--surface-3);color:var(--text-2);z-index:3;line-height:14px}.gt-ver.pub{background:var(--success-soft);color:var(--success)}
.gt-inv{top:2px!important;z-index:4}
.gt-ph .gt-l{min-height:36px;padding-left:20px;background:color-mix(in oklab,var(--surface-2) 45%,var(--surface))}.gt-ph .gt-track{min-height:36px}.gt-ind{width:12px;flex:none}.gt-sw{width:10px;height:10px;border-radius:3px;flex:none;display:inline-block}
.gt-pbar{position:absolute;top:9px;height:18px;border-radius:5px;background:color-mix(in oklab,var(--c) 30%,transparent);border:1px solid color-mix(in oklab,var(--c) 70%,transparent);overflow:hidden;z-index:2}.gt-pbar>span{position:absolute;left:0;top:0;bottom:0;background:var(--c)}.gt-pbar.next{background:none;border-style:dashed;opacity:.7}.gt-pbar.late{box-shadow:0 0 0 2px var(--danger)}.gt-pbar em{position:absolute;inset:0;display:flex;align-items:center;padding-left:6px;font-style:normal;font-size:10.5px;font-weight:700;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.6)}
.gt-grp .gt-l{min-height:34px;background:var(--surface-2);gap:8px}.gt-grp .gt-l b{font-size:12px}.gt-grp .gt-track{min-height:34px;background-color:var(--surface-2)}
.gt-deal .gt-l{min-height:40px}.gt-deal .gt-track{min-height:40px}.gt-dbar{position:absolute;top:10px;height:20px;border-radius:6px;border:1.5px dashed var(--text-3);display:flex;align-items:center;padding-left:8px;font-size:10.5px;color:var(--text-3);font-weight:700;white-space:nowrap;overflow:hidden}
.gt-hv{position:fixed;z-index:300;min-width:180px;max-width:260px;padding:10px 12px;background:var(--surface);border:1px solid var(--line-strong);border-radius:10px;box-shadow:var(--shadow-xl);display:flex;flex-direction:column;gap:3px;font-size:12px;color:var(--text-2);pointer-events:none}.gt-hv b{font-size:13px;color:var(--text-1)}
.gt-due.s{position:static;display:inline-block;width:10px;height:10px;transform:rotate(45deg);margin-right:4px}.gt-late.s{position:static;display:inline-block;width:18px;height:10px;margin-right:4px}.gt-ver.s{position:static;transform:none;display:inline-block;margin-right:4px}
@media (max-width:760px){.gt-l{width:200px}.gt-pct{display:none}}
.gt-chk{white-space:nowrap}
.pt-t td{overflow:hidden;text-overflow:ellipsis}.pt-t td b,.pt-t td small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
/* gantt v2: monday-style bars */
.gt-l{width:320px}.gt-hp{display:inline-flex;align-items:center;gap:5px;font-size:11px;font-weight:600;color:var(--c);white-space:nowrap;flex:none}.gt-hp i{width:7px;height:7px;border-radius:99px;background:var(--c)}
.gt-bar2{position:absolute;top:10px;height:26px;border-radius:99px;background:color-mix(in oklab,var(--c) 28%,var(--surface));overflow:hidden;cursor:pointer;z-index:2}.gt-bar2:hover{box-shadow:0 0 0 2px var(--c)}
.gt-fill{position:absolute;left:0;top:0;bottom:0;background:var(--c);opacity:.9}
.gt-in{position:absolute;inset:0;display:flex;align-items:center;gap:7px;padding-left:4px;pointer-events:none}.gt-in em{font-style:normal;font-size:11.5px;font-weight:700;color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.55);white-space:nowrap}
.gt-end{position:absolute;top:14px;display:flex;align-items:center;gap:5px;font-size:11.5px;white-space:nowrap;z-index:2;pointer-events:none}.gt-end em{font-style:normal;font-weight:600;margin-right:4px}.gt-end b{font-weight:700}
.gt-latep{margin-left:4px;padding:1px 7px;border-radius:99px;background:var(--danger-soft);color:var(--danger);font-weight:700;font-size:11px}
.gt-pbar{border-radius:99px}.gt-pbar.now{box-shadow:0 0 0 2px var(--c)}
@media (max-width:760px){.gt-l{width:200px}.gt-hp{display:none}}
/* gantt: drag, baseline, milestones, holidays */
.gt-pbar.ed{cursor:grab;touch-action:none}.gt-pbar.drag{cursor:grabbing;box-shadow:0 0 0 2px var(--text-1);z-index:5}
.gt-h{position:absolute;top:0;bottom:0;width:8px;cursor:ew-resize;z-index:3}.gt-h.l{left:0}.gt-h.r{right:0}.gt-pbar.ed:hover .gt-h{background:color-mix(in oklab,#fff 35%,transparent)}
.gt-base{position:absolute;top:30px;height:0;border-top:2px dashed var(--text-3);z-index:1;pointer-events:none}.gt-base.s{position:static;display:inline-block;width:18px;margin-right:4px;vertical-align:middle}
.gt-hol{position:absolute;top:0;bottom:0;background:repeating-linear-gradient(135deg,color-mix(in oklab,var(--danger) 18%,transparent) 0 3px,transparent 3px 7px);pointer-events:none;z-index:0}.gt-hol.s{position:static;display:inline-block;width:14px;height:10px;margin-right:4px;vertical-align:middle}
.gt-ticks span.hol{color:var(--danger);font-weight:700}
.gt-msd{display:inline-block;width:9px;height:9px;transform:rotate(45deg);background:var(--info);border:1.5px solid var(--surface);flex:none}
.gt-ms2{position:absolute;top:11px;display:flex;align-items:center;gap:5px;transform:translateX(-5px);z-index:2;white-space:nowrap}.gt-ms2 em{font-style:normal;font-size:11px;font-weight:600;color:var(--text-2)}
.gt-msrow .gt-l{background:color-mix(in oklab,var(--info) 6%,var(--surface))}
/* department workload */
.wl{overflow:auto;max-height:72vh}
.wlw-row{display:grid;grid-template-columns:300px repeat(var(--n),minmax(76px,1fr));min-width:max-content}
.wlw-l{position:sticky;left:0;z-index:2;display:flex;align-items:center;gap:8px;padding:0 12px;background:var(--surface);border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:50px}.wlw-l>span:not(.v2-avstack){display:flex;flex-direction:column;line-height:1.25}.wlw-l b{font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.wlw-l small{font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.wlw-head{position:sticky;top:0;z-index:4}.wlw-head .wlw-l{z-index:5;flex-direction:column;align-items:flex-start;justify-content:center;gap:0}
.wlw-h{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:6px 4px;background:var(--surface);border-bottom:1px solid var(--line);border-left:1px solid var(--line);font-size:11px}.wlw-h small{color:var(--text-4);font-size:10px}.wlw-h b{font-size:11.5px}.wlw-h.we{background:var(--surface-2)}.wlw-h.hol b{color:var(--danger)}.wlw-h.now{box-shadow:inset 0 -2px 0 var(--brand)}.wlw-h.now b{color:var(--brand)}
.wlw-c{position:relative;display:flex;align-items:center;justify-content:center;gap:6px;min-height:50px;border:0;border-left:1px solid var(--line);border-bottom:1px solid var(--line);background:none;cursor:pointer;padding:4px 6px;color:var(--text-2)}.wlw-c:hover{background:var(--surface-2)}
.wlw-c.ok{background:color-mix(in oklab,var(--brand) 9%,transparent)}.wlw-c.w{background:color-mix(in oklab,var(--warning) 14%,transparent)}.wlw-c.x{background:color-mix(in oklab,var(--danger) 16%,transparent)}
.wlw-bar{width:5px;height:30px;border-radius:3px;background:var(--surface-3);display:flex;align-items:flex-end;overflow:hidden;flex:none}.wlw-bar i{display:block;width:100%;background:var(--brand)}.wlw-c.w .wlw-bar i{background:var(--warning)}.wlw-c.x .wlw-bar i{background:var(--danger)}
.wlw-v{display:flex;align-items:baseline;gap:1px;font-family:var(--font-mono)}.wlw-v b{font-size:13px;color:var(--text-1)}.wlw-v small{font-size:10px;color:var(--text-3)}.wlw-c.x .wlw-v b{color:var(--danger)}
.wlw-tag{position:absolute;top:2px;left:0;right:0;text-align:center;font-size:9.5px;font-weight:700;color:var(--warning);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:0 3px}.wlw-c:has(.wlw-tag){padding-top:14px}
.wlw-dept .wlw-l{background:color-mix(in oklab,var(--surface-2) 60%,var(--surface))}.wlw-dept .wlw-l b{font-size:13px}
.wlw-person .wlw-l{padding-left:20px}
@media (max-width:760px){.wlw-row{grid-template-columns:190px repeat(var(--n),minmax(66px,1fr))}}
.wlw-row{grid-template-columns:300px repeat(var(--n),minmax(84px,1fr))}@media (max-width:760px){.wlw-row{grid-template-columns:190px repeat(var(--n),minmax(72px,1fr))}}
/* insights */
.fc-cols{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:end}.fc-col{display:flex;flex-direction:column;align-items:center;gap:6px;cursor:default}.fc-col b{font-size:13px}.fc-col span{font-weight:700;font-size:12.5px}.fc-col small{font-size:11px}
.fc-bar{width:56%;height:120px;display:flex;flex-direction:column-reverse;border-radius:8px;overflow:hidden;background:var(--surface-2)}.fc-bar i{display:block;width:100%}.fc-bar i.c{background:var(--brand)}.fc-bar i.b{background:color-mix(in oklab,var(--brand) 35%,transparent)}
.fc-tg{display:flex;align-items:center;gap:10px}.fc-tg>span{display:flex;flex-direction:column;gap:4px}.fc-tb{position:relative;display:block;height:7px;border-radius:99px;background:var(--surface-3)}.fc-tb i{position:absolute;left:0;top:0;bottom:0;border-radius:99px;background:var(--brand)}.fc-tb em{position:absolute;top:-3px;width:2px;height:13px;background:var(--text-2)}
.ag-bar{display:flex;height:10px;border-radius:99px;overflow:hidden;background:var(--surface-3);margin-bottom:14px}.ag-bar i{display:block}
.ag-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px}.ag-b{display:flex;flex-direction:column;gap:3px;font-size:12.5px}.ag-b b{font-size:16px}.ag-b small{font-size:11px}
.ef-k{display:flex;flex-direction:column;gap:2px;padding:10px 0;border-bottom:1px solid var(--line)}.ef-k:last-child{border-bottom:0}.ef-k span{font-size:12.5px;color:var(--text-2)}.ef-k b{font-size:20px}.ef-k small{font-size:11.5px}
.lk{cursor:pointer;border-radius:3px;text-decoration:underline;text-decoration-color:color-mix(in oklab,currentColor 30%,transparent);text-underline-offset:2px}.lk:hover{color:var(--brand);text-decoration-color:var(--brand)}.lk:focus-visible{outline:2px solid var(--brand-ring)}
/* client profile plus */
.cl-logo{object-fit:contain;border-radius:12px;background:#fff;flex:none;display:block}.cl-logo.round{border-radius:99px;object-fit:cover}
.clh{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:var(--surface)}
.clh-cover{position:relative;height:110px;background-size:cover;background-position:center}.clh-cbtn{position:absolute;right:10px;top:10px;display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border:0;border-radius:99px;background:rgba(10,11,9,.6);color:#fff;font-size:11.5px;font-weight:600;cursor:pointer}
.clh-row{display:flex;gap:14px;align-items:flex-start;padding:0 16px;flex-wrap:wrap}
.clh-logo{position:relative;margin-top:-30px;padding:3px;border:0;border-radius:15px;background:var(--surface);cursor:pointer;flex:none}.clh-logo>.clh-cam{position:absolute;right:-2px;bottom:-2px;width:22px;height:22px;border-radius:99px;background:var(--brand);color:var(--text-on-brand);display:flex;align-items:center;justify-content:center;border:2px solid var(--surface)}
.clh-logo.sm{margin-top:0;padding:0;border-radius:99px}.clh-logo.sm>.clh-cam{width:17px;height:17px}
.clh-score{display:flex;align-items:center;gap:8px;padding-top:14px;cursor:help}.clh-score span{display:flex;flex-direction:column;line-height:1.15}.clh-score b{font-size:18px}.clh-score small{font-size:10.5px}
.clh-acts{display:flex;gap:6px;flex-wrap:wrap;padding:12px 16px 14px}
.clb-colors{display:flex;gap:10px;flex-wrap:wrap;align-items:flex-start}.clb-sw{display:flex;flex-direction:column;align-items:center;gap:4px;position:relative}.clb-sw>button:first-child{width:56px;height:56px;border-radius:12px;border:1px solid var(--line-strong);cursor:copy}.clb-sw span{font-size:10.5px}.clb-sw .v2-x{position:absolute;top:-6px;right:-6px;width:20px;height:20px;background:var(--surface);border:1px solid var(--line)}
.clb-add{width:56px;height:56px;border-radius:12px;border:1.5px dashed var(--line-strong);display:flex;align-items:center;justify-content:center;color:var(--text-3);cursor:pointer;position:relative}.clb-add input{position:absolute;inset:0;opacity:0;cursor:pointer}
.clb-logos{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:10px}.clb-lg{position:relative;display:flex;flex-direction:column;gap:4px}.clb-lg img{width:100%;height:80px;object-fit:contain;background:repeating-conic-gradient(var(--surface-2) 0 25%,var(--surface-3) 0 50%) 0 0/14px 14px;border-radius:8px;cursor:zoom-in}.clb-lg small{font-size:10.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.clb-lg .v2-x{position:absolute;top:4px;right:4px;width:24px;height:24px;background:var(--surface)}
.clb-drop{border:1.5px dashed var(--line-strong);border-radius:12px;padding:10px;display:flex;flex-direction:column;gap:10px}.clb-drop.hot{border-color:var(--brand);background:var(--brand-soft)}.clb-hint{display:flex;align-items:center;justify-content:center;gap:8px;color:var(--text-3);font-size:12px;padding:6px}
.clb-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:8px}.clb-im{position:relative;aspect-ratio:4/3;border-radius:8px;overflow:hidden;cursor:zoom-in}.clb-im img{width:100%;height:100%;object-fit:cover}.clb-im.proj span{position:absolute;left:0;right:0;bottom:0;padding:3px 6px;font-size:10px;color:#fff;background:linear-gradient(transparent,rgba(0,0,0,.75));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.clb-del{position:absolute;top:4px;right:4px;width:22px;height:22px;border:0;border-radius:99px;background:rgba(0,0,0,.6);color:#fff;display:none;align-items:center;justify-content:center;cursor:pointer}.clb-im:hover .clb-del{display:flex}
.clb-list{display:flex;flex-direction:column;gap:5px}.clb-li{display:flex;align-items:center;gap:8px;font-size:13px;padding:5px 8px;border-radius:8px;background:var(--surface-2)}
.clb-lb{max-width:min(900px,92vw);max-height:88vh;background:var(--surface);border-radius:14px;overflow:hidden;display:flex;flex-direction:column}.clb-lb img{max-height:78vh;object-fit:contain;background:#000}.clb-lb>div{display:flex;align-items:center;gap:10px;padding:8px 12px}.clb-lb b{flex:1;font-size:13px}
.clb-stars{display:inline-flex;gap:2px}.clb-stars button{border:0;background:none;color:var(--text-4);cursor:pointer;padding:2px}.clb-stars button.on{color:var(--gold-400)}.clb-stars button.on svg{fill:currentColor}
.cl-bd{display:inline-flex;align-items:center;gap:4px}.cl-bd input{border:0;background:none;color:var(--text-2);font:inherit;font-size:12px;width:120px}
.clh-logo{display:inline-flex}
.clh-score small{white-space:nowrap}
.clh-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto;column-gap:14px;align-items:start}.clh-logo{z-index:2;width:70px;height:70px;display:flex;align-items:center;justify-content:center;overflow:visible}.clh-logo>*:first-child{width:64px!important;height:64px!important;flex:none}.clh-logo.sm{width:38px;height:38px}.clh-logo.sm>*:first-child{width:38px!important;height:38px!important}
#root[data-w~="lt560"] .clh-row{grid-template-columns:auto minmax(0,1fr)}#root[data-w~="lt560"] .clh-score{grid-column:1/-1;padding-top:8px}
.fc-total{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;padding:10px 12px;border-radius:10px;background:var(--surface-2);margin-bottom:12px}.fc-total span{font-size:12.5px;color:var(--text-3)}.fc-total b{font-size:20px}
.fc-months{display:flex;flex-direction:column;gap:14px}.fc-m{display:flex;flex-direction:column;gap:6px}.fc-mh{display:flex;align-items:center;font-size:13px}
.fc-mbar{display:flex;height:8px;border-radius:99px;background:var(--surface-3);overflow:hidden}.fc-mbar i{display:block;height:100%}.fc-mbar .c{background:var(--brand)}.fc-mbar .b{background:color-mix(in oklab,var(--brand) 35%,transparent)}
.fc-ds{display:flex;flex-direction:column;gap:2px}.fc-d{display:flex;align-items:center;gap:10px;font-size:12.5px;padding:3px 0;border-bottom:1px dashed var(--line)}.fc-d:last-child{border-bottom:0}.fc-d>span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fc-d b{font-size:12.5px;min-width:64px;text-align:right}
.fc-mh{gap:8px;min-width:0}.fc-mh b{white-space:nowrap}
.fc-total span,.fc-total b{white-space:nowrap}.fc-total small{white-space:nowrap;flex-basis:100%}
.fc-d{align-items:flex-start}.fc-dn{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.fc-dn>span,.fc-dn>small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.fc-dn>small{font-size:11.5px}
#root[data-w~="lt1000"] .fc-wrap{grid-template-columns:minmax(0,1fr)!important}
.clh-score{padding-top:16px;text-align:right}.clh-score b{font-size:14px;white-space:nowrap}
/* interaction layer */
.ix-undo{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:210;display:flex;align-items:center;gap:10px;max-width:min(560px,92vw);padding:8px 8px 8px 14px;border-radius:12px;background:var(--text-1);color:var(--bg-canvas);font-size:13px;box-shadow:var(--shadow-xl);animation:v2in .18s}

.ix-undo kbd,.ix-g kbd,.ix-help kbd{font-family:var(--font-mono);font-size:10.5px;padding:1px 5px;border-radius:4px;border:1px solid currentColor;opacity:.7}.ix-x{border:0;background:none;color:inherit;opacity:.6;cursor:pointer;display:flex}
.ix-g{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:210;display:flex;flex-wrap:wrap;gap:6px 12px;align-items:center;max-width:92vw;padding:9px 14px;border-radius:12px;background:var(--surface);border:1px solid var(--line-strong);box-shadow:var(--shadow-xl);font-size:12.5px}.ix-g span{display:inline-flex;gap:5px;align-items:center}
.ix-help{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:18px}.ix-k{display:flex;align-items:center;gap:10px;padding:5px 0;font-size:13px;border-bottom:1px dashed var(--line)}.ix-k>span{display:inline-flex;gap:4px;min-width:64px}
.pk{position:fixed;z-index:220;width:288px;padding:12px;border-radius:12px;background:var(--surface);border:1px solid var(--line-strong);box-shadow:var(--shadow-xl);display:flex;flex-direction:column;gap:10px;pointer-events:none;animation:v2in .14s}
.pk-h{display:flex;align-items:center;gap:10px}.pk-t{flex:1;min-width:0;display:flex;flex-direction:column;line-height:1.3}.pk-h b{font-size:13.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.pk-h small{font-size:11.5px}
.pk-img{width:100%;height:96px;object-fit:cover;border-radius:8px}.pk-bar{height:5px;border-radius:99px;background:var(--surface-3);overflow:hidden}.pk-bar i{display:block;height:100%;background:var(--brand)}
.pk-f{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}.pk-s{display:flex;flex-direction:column;gap:1px;min-width:0}.pk-f small{font-size:10.5px;color:var(--text-3)}.pk-f b{font-size:12.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pk-hint{font-size:10.5px;color:var(--text-4)}
.wk-card[draggable="true"],.crm-card[draggable="true"]{cursor:grab}.wk-card[draggable="true"]:active{cursor:grabbing}


button.wf-chip{cursor:pointer;font:inherit;display:inline-flex;align-items:center;gap:4px;opacity:.55}button.wf-chip.on{opacity:1;border-color:var(--brand);color:var(--brand)}
/* cash entry */
.ce{display:flex;flex-direction:column;gap:16px}.ce-top{display:flex;gap:10px;flex-wrap:wrap;justify-content:space-between}.ce-sec{display:flex;flex-direction:column;gap:8px}
.ce-g3{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px}
.ce-chips{display:flex;gap:4px}.ce-chips button{flex:1;height:34px;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface);color:var(--text-2);font:inherit;font-size:12.5px;cursor:pointer}.ce-chips button.on{border-color:var(--brand);background:var(--brand-soft);color:var(--brand);font-weight:700}
.ce-sum{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:10px 12px;border-radius:10px;background:var(--surface-2)}.ce-sum span{display:flex;flex-direction:column;gap:2px;font-size:11.5px;color:var(--text-3)}.ce-sum b{font-size:14px;color:var(--text-1)}
.ce-note{display:flex;gap:6px;align-items:flex-start;font-size:12px;color:var(--text-3)}.ce-note.warn{color:var(--warning)}
.ce-split{display:grid;grid-template-columns:minmax(0,1fr) 70px auto 28px;gap:8px;align-items:center}.ce-split:not(:has(input)){grid-template-columns:minmax(0,1fr)}.ce-split .r{text-align:right}
.ce-proof{display:flex;gap:12px;flex-wrap:wrap}.ce-photo{width:120px;height:96px;border:1.5px dashed var(--line-strong);border-radius:10px;background:none;color:var(--text-3);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;cursor:pointer;padding:6px;text-align:center;overflow:hidden}.ce-photo small{font-size:10.5px;line-height:1.3}.ce-photo.has{padding:0;border-style:solid}.ce-photo img{width:100%;height:100%;object-fit:cover}
.ce-chk{display:flex;gap:8px;align-items:center;font-size:12.5px;color:var(--text-2)}
/* settings */
.st{display:grid;grid-template-columns:230px minmax(0,1fr);gap:20px;align-items:start}
.st-nav{position:sticky;top:76px;display:flex;flex-direction:column;gap:2px}.st-nav button{display:flex;align-items:center;gap:10px;padding:8px 10px;border:0;border-radius:8px;background:none;color:var(--text-2);font:inherit;font-size:13px;text-align:left;cursor:pointer}.st-nav button:hover{background:var(--surface-2)}.st-nav button.on{background:var(--brand-soft);color:var(--brand);font-weight:700}
.st-body{display:flex;flex-direction:column;gap:14px;padding-bottom:70px;min-width:0}.st-h{font-size:18px;margin:0 0 2px}
.st-grp{border:1px solid var(--line);border-radius:12px;background:var(--surface)}.st-gh{display:flex;flex-direction:column;gap:2px;padding:12px 16px;border-bottom:1px solid var(--line)}.st-gh b{font-size:13.5px}.st-gh small{font-size:12px}.st-gb{padding:14px 16px;display:flex;flex-direction:column;gap:12px}
.st-g2{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.st-g3{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:12px}.st-span{grid-column:1/-1}
.st-in{display:flex;align-items:center;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface);overflow:hidden}.st-in input{flex:1;min-width:0;border:0!important;box-shadow:none!important}.st-in i{font-style:normal;font-size:12px;color:var(--text-3);padding:0 10px;white-space:nowrap}
.st-hint{font-size:11.5px;margin-top:2px}.st-prev{font-size:12.5px;color:var(--text-3);padding:8px 10px;border-radius:8px;background:var(--surface-2)}.st-prev b{color:var(--text-1)}
.st-sw{display:flex;align-items:center;gap:12px;padding:6px 0;border-bottom:1px dashed var(--line)}.st-sw:last-child{border-bottom:0}.st-sw>span{flex:1;display:flex;flex-direction:column;gap:2px}.st-sw b{font-size:13px;font-weight:600}.st-sw small{font-size:12px}
.st-logo{display:flex;gap:14px;align-items:center;flex-wrap:wrap}.st-logo>button{width:180px;height:90px;border:1.5px dashed var(--line-strong);border-radius:10px;background:repeating-conic-gradient(var(--surface-2) 0 25%,var(--surface-3) 0 50%) 0 0/14px 14px;display:flex;align-items:center;justify-content:center;cursor:pointer;padding:8px}.st-logo img{max-width:100%;max-height:100%;object-fit:contain}.st-logo>span{flex:1;min-width:200px;display:flex;flex-direction:column;gap:8px;align-items:flex-start}
.st-list{display:flex;flex-direction:column;gap:10px}.st-bank{display:flex;gap:12px;align-items:flex-start;padding:12px;border:1px solid var(--line);border-radius:10px;flex-wrap:wrap}.st-bank-a{display:flex;flex-direction:column;gap:8px;align-items:flex-end;padding-top:20px}.st-radio{display:flex;gap:6px;align-items:center;font-size:12.5px;white-space:nowrap}
.st-days{display:flex;gap:6px;flex-wrap:wrap}.st-days button{width:46px;height:36px;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface);color:var(--text-3);font:inherit;font-size:12.5px;font-weight:600;cursor:pointer}.st-days button.on{background:var(--brand-soft);border-color:var(--brand);color:var(--brand)}
.st-hol{display:flex;gap:10px;align-items:center;font-size:13px;padding:6px 0;border-bottom:1px dashed var(--line)}.st-hol .v2-mono{width:90px;color:var(--text-3)}.st-hol.add{border-bottom:0;flex-wrap:wrap}.st-hol.add input[type=date]{width:160px}
.st-perm{width:26px;height:26px;border:1px solid var(--line-strong);border-radius:7px;background:var(--surface);color:var(--text-on-brand);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.st-perm.on{background:var(--success);border-color:var(--success)}.st-nt td:first-child{min-width:240px}
.st-int{display:flex;align-items:center;gap:12px;padding:10px 0;border-bottom:1px dashed var(--line);flex-wrap:wrap}.st-int:last-child{border-bottom:0}.st-int>span:nth-child(2){display:flex;flex-direction:column;gap:2px}.st-int b{font-size:13px}.st-int small{font-size:12px}
.st-st{font-size:11.5px;font-weight:700;white-space:nowrap;color:var(--text-3)}.st-st.on{color:var(--success)}.st-st.wait{color:var(--warning)}
.st-bar{position:fixed;left:50%;bottom:20px;transform:translateX(-50%);z-index:60;display:flex;align-items:center;gap:10px;padding:8px 8px 8px 14px;border-radius:12px;background:var(--surface);border:1px solid var(--line-strong);box-shadow:var(--shadow-xl);font-size:13px;font-weight:600;white-space:nowrap}
#root[data-w~="lt900"] .st{grid-template-columns:minmax(0,1fr)}#root[data-w~="lt900"] .st-nav{position:static;flex-direction:row;overflow-x:auto;gap:4px;padding-bottom:4px}#root[data-w~="lt900"] .st-nav button{flex:none}
.st-nav button span{flex:1;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;width:auto;max-width:none}
.st-nav button{justify-content:flex-start}.st-nav button svg{flex:none}
#root[data-w~="lt900"] .st-nav{scrollbar-width:none}#root[data-w~="lt900"] .st-nav button span{flex:none;overflow:visible}#root[data-w~="lt900"] .st-nav button{padding:7px 12px;border:1px solid var(--line)}
.st .perm td:first-child{min-width:190px}
.st-nav button{display:grid!important;grid-template-columns:16px minmax(0,1fr);gap:10px;justify-items:start;text-align:left}.st-nav button>svg{margin:0!important}.st-nav button>span{margin:0!important;padding:0!important;width:auto!important;text-align:left;overflow:visible;white-space:normal;line-height:1.3}
.st,.st>*,.st-grp,.st-gb,.st-g2,.st-g3,.st-g2>*,.st-g3>*{min-width:0}.st-g2{grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr))}.st-g3{grid-template-columns:repeat(auto-fit,minmax(min(170px,100%),1fr))}.st-gb .v2-field input,.st-gb .v2-field select,.st-gb .v2-field textarea,.st-in{width:100%;min-width:0;max-width:100%;box-sizing:border-box}
#root[data-w~="lt900"] .st-nav button{display:flex!important}#root[data-w~="lt900"] .st-nav button>span{white-space:nowrap}
.st-nav button>span{max-width:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.st-nav button{min-height:36px;align-items:center}
.st-ng{font-size:10.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--text-4);padding:12px 10px 4px}.st-ng:first-child{padding-top:0}#root[data-w~="lt900"] .st-ng{display:none}
.st-fs{border:0;margin:0;padding:0;min-width:0;display:flex;flex-direction:column;gap:14px}.st-fs:disabled{opacity:.7}
.st-in input,.st-in select{background:transparent!important;border:0!important;height:36px;padding:0 10px}.st-in:focus-within{border-color:var(--brand);box-shadow:0 0 0 3px var(--brand-ring)}
#root[data-w~="lt900"] .st-nav button{display:inline-flex!important;align-items:center;gap:8px}#root[data-w~="lt900"] .st-nav button>span{width:auto!important;flex:none;overflow:visible}
/* social */
.so-kpi{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}
.so-marks{position:relative;height:18px;margin:2px 0 0}.so-marks span{position:absolute;top:0;transform:translateX(-50%);width:18px;height:18px;border-radius:99px;background:var(--c);color:#111;display:flex;align-items:center;justify-content:center}
.so-row{display:grid;grid-template-columns:minmax(120px,1fr) minmax(0,1.2fr) 56px;gap:10px;align-items:center;padding:7px 0;border-bottom:1px dashed var(--line)}.so-row:last-child{border-bottom:0}.so-row>span:first-child{display:flex;flex-direction:column;min-width:0}.so-row b{font-size:13px}.so-row small{font-size:11.5px}.so-row>b{text-align:right}
.so-bar{height:10px;border-radius:99px;background:var(--surface-3);overflow:hidden}.so-bar i{display:block;height:100%;background:var(--gold-400);border-radius:99px}
.so-heat{display:grid;grid-template-columns:32px repeat(7,minmax(0,1fr));gap:4px;align-items:center}.so-heat small{font-size:10.5px;color:var(--text-3);text-align:center}.so-heat i{display:block;aspect-ratio:1.6;border-radius:5px;max-height:30px}
.so-split{display:flex;height:22px;border-radius:6px;overflow:hidden;margin-top:12px;font-size:11px;font-weight:700}.so-split span{display:flex;align-items:center;justify-content:center;background:var(--surface-3);color:var(--text-2);flex:1}.so-split span:first-child{flex:none;background:color-mix(in oklab,var(--brand) 35%,var(--surface-2));color:var(--text-1)}
.v2-content .rp-eq{align-items:stretch}.rp-eq>*{height:100%;display:flex;flex-direction:column}.rp-eq>*>.wl-card__body{flex:1;display:flex;flex-direction:column;justify-content:center}
/* no ragged gaps: side-by-side cards share the row height */
.v2-content .g-2>.wl-card{height:100%;display:flex;flex-direction:column}.g-2>.wl-card>.wl-card__body{flex:1}
#root[data-w~="lt900"] .v2-content .g-2{align-items:start}#root[data-w~="lt900"] .v2-content .g-2>.wl-card{height:auto}
.g-kpi.so-kpi{grid-template-columns:repeat(5,minmax(0,1fr))}[data-w~="lt720"] .g-kpi.so-kpi{grid-template-columns:repeat(2,minmax(0,1fr))}[data-w~="lt720"] .g-kpi.so-kpi>:last-child{grid-column:1/-1}.so-kpi .wl-stat__label{white-space:normal}
.fc-merge{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr);gap:28px}.fc-merge>section{min-width:0}.fc-merge>section+section{border-left:1px solid var(--line);padding-left:28px}.fc-sh{margin:0 0 10px;font-size:13.5px;font-weight:700}
#root[data-w~="lt900"] .fc-merge{grid-template-columns:minmax(0,1fr)}#root[data-w~="lt900"] .fc-merge>section+section{border-left:0;padding-left:0;border-top:1px solid var(--line);padding-top:18px}
/* undo toast v2 */
.ix-undo{position:fixed;left:50%;bottom:22px;transform:translateX(-50%);z-index:210;display:flex;align-items:center;gap:12px;width:min(480px,calc(100vw - 32px));min-width:0;max-width:none;padding:10px 10px 10px 12px;border-radius:14px;background:var(--surface);color:var(--text-1);border:1px solid var(--line-strong);box-shadow:var(--shadow-xl);overflow:hidden;animation:ix-up .22s cubic-bezier(.2,.8,.2,1)}
@keyframes ix-up{from{opacity:0;transform:translate(-50%,10px)}to{opacity:1;transform:translate(-50%,0)}}
.ix-ic{width:32px;height:32px;border-radius:10px;background:var(--brand-soft);color:var(--brand);display:flex;align-items:center;justify-content:center;flex:none}
.ix-tx{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px;text-align:left}.ix-tx b{font-size:13px;font-weight:700}.ix-tx small{font-size:12px;color:var(--text-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ix-undo .ix-btn{display:inline-flex;align-items:center;gap:6px;height:32px;padding:0 10px;border:1px solid var(--line-strong);border-radius:9px;background:var(--surface-2);color:var(--text-1);font:inherit;font-size:12.5px;font-weight:700;cursor:pointer;flex:none;white-space:nowrap}.ix-undo .ix-btn:hover{border-color:var(--brand);color:var(--brand)}
.ix-undo .ix-btn kbd{font-family:var(--font-mono);font-size:10px;padding:1px 5px;border-radius:4px;border:0;background:var(--surface-3);color:var(--text-3);opacity:1}
.ix-undo .ix-x{width:28px;height:28px;border-radius:8px;justify-content:center;align-items:center;color:var(--text-3);opacity:1;flex:none}.ix-undo .ix-x:hover{background:var(--surface-2);color:var(--text-1)}
.ix-timer{position:absolute;left:0;bottom:0;height:2px;width:100%;background:var(--brand);transform-origin:left;animation:ix-tm 7s linear forwards}@keyframes ix-tm{from{transform:scaleX(1)}to{transform:scaleX(0)}}
.ix-undo:hover .ix-timer{animation-play-state:paused}
@media (max-width:520px){.ix-undo .ix-btn kbd{display:none}}
.ix-undo>.ix-ic{flex:0 0 32px;width:32px}.ix-undo>.ix-tx{flex:1 1 auto}.ix-undo>.ix-tx b{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.cr-heat{display:flex;align-items:center;gap:3px}.cr-heat i{display:block;width:12px;height:20px;border-radius:3px;background:var(--surface-3);flex:none}
.cr-heat i.ok{background:var(--brand)}.cr-heat i.w{background:var(--warning)}.cr-heat i.x{background:var(--danger)}.cr-heat i.off{width:5px;background:var(--surface-2)}.cr-heat i.lv{background:repeating-linear-gradient(135deg,var(--surface-3) 0 3px,color-mix(in oklab,var(--warning) 45%,transparent) 3px 5px)}
.cr-heat i.today{box-shadow:0 0 0 1.5px var(--text-1)}.cr-wk{display:block;width:1px;height:24px;background:var(--line-strong);margin:0 3px;flex:none}
.cr-hh{display:flex;flex-direction:column;gap:3px}.cr-leg{display:flex;align-items:center;gap:4px;font-size:10px;font-weight:500;color:var(--text-3);text-transform:none;letter-spacing:0;white-space:nowrap}.cr-leg i{display:inline-block;width:8px;height:8px;border-radius:2px;margin-left:4px}.cr-leg i:first-child{margin-left:0}.cr-leg i.ok{background:var(--brand)}.cr-leg i.w{background:var(--warning)}.cr-leg i.x{background:var(--danger)}.cr-leg i.lv{background:color-mix(in oklab,var(--warning) 45%,var(--surface-3))}
.v2-card .v2-tablewrap{overflow-x:auto}.cr-heat{width:max-content}
.v2-content>*{min-width:0;max-width:100%}.wl-card{min-width:0}.v2-tablewrap{max-width:100%}
.cr-load{display:flex;flex-direction:column;gap:6px}.cr-load>div:first-child{width:100%}
.cr-heat{gap:2px}.cr-heat i{width:10px;height:16px}.cr-heat i.off{width:4px}.cr-wk{margin:0 2px;height:20px}
.cr-wks{display:flex;flex-direction:column;gap:6px;min-width:280px}.cr-w{display:grid;grid-template-columns:64px minmax(60px,1fr) 62px auto;gap:8px;align-items:center;font-size:12px}
.cr-wl{color:var(--text-3)}.cr-wb{height:6px;border-radius:99px;background:var(--surface-3);overflow:hidden}.cr-wb i{display:block;height:100%;border-radius:99px;background:var(--brand)}.cr-w.w .cr-wb i{background:var(--warning)}.cr-w.x .cr-wb i{background:var(--danger)}
.cr-wn{font-family:var(--font-mono);font-size:11.5px;color:var(--text-3);text-align:right;white-space:nowrap}.cr-wn b{color:var(--text-1)}.cr-wt{font-size:11.5px;color:var(--text-3);white-space:nowrap}.cr-w.w .cr-wt{color:var(--warning)}.cr-w.x .cr-wt{color:var(--danger);font-weight:700}.cr-w.off{opacity:.6}
.cr-wks{min-width:210px}.cr-w{grid-template-columns:58px minmax(50px,1fr) 58px;grid-template-areas:"l b n" ". t t";row-gap:1px}.cr-wl{grid-area:l}.cr-wb{grid-area:b}.cr-wn{grid-area:n}.cr-wt{grid-area:t;font-size:11px}.cr-w.ok .cr-wt,.cr-w.off .cr-wt{display:none}
#root[data-w~="lt900"] .cr-role{display:none}
.cr-tw{container-type:inline-size}@container (max-width:760px){.cr-role{display:none}}
/* scripts & ideas */
.sc{display:grid;grid-template-columns:280px minmax(0,1fr);gap:18px;align-items:start}
.sc-side{position:sticky;top:76px;display:flex;flex-direction:column;gap:10px}.sc-seg{display:flex}.sc-seg button{flex:1;font-size:12px}
.sc-list{display:flex;flex-direction:column;gap:2px;max-height:calc(100vh - 230px);overflow:auto}
.sc-it{display:flex;align-items:center;gap:10px;padding:9px 10px;border:0;border-radius:10px;background:none;text-align:left;cursor:pointer;color:var(--text-1);font:inherit}.sc-it:hover{background:var(--surface-2)}.sc-it.on{background:var(--brand-soft)}
.sc-it>.sc-it-t{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.sc-it b{font-size:13px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sc-it small{font-size:11.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sc-dot{width:8px;height:8px;border-radius:50%;flex:none}
.sc-main{border:1px solid var(--line);border-radius:16px;background:var(--surface);min-width:0;display:flex;flex-direction:column}
.sc-tb{position:sticky;top:64px;z-index:5;display:flex;flex-wrap:wrap;align-items:center;gap:2px;padding:6px 10px;border-bottom:1px solid var(--line);background:color-mix(in oklab,var(--surface) 92%,transparent);backdrop-filter:blur(8px);border-radius:16px 16px 0 0}
.sc-tb button{width:30px;height:30px;border:0;border-radius:7px;background:none;color:var(--text-2);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.sc-tb button:hover{background:var(--surface-2);color:var(--text-1)}.sc-sep{width:1px;height:18px;background:var(--line);margin:0 4px}
.sc-saved{font-size:11.5px;color:var(--success)}.sc-saved.dirty{color:var(--text-3)}

.sc-title{width:100%;border:0;background:none;color:var(--text-1);font-family:var(--font-display,inherit);font-size:32px;font-weight:700;letter-spacing:-.02em;outline:none;padding:0;margin-bottom:12px}.sc-title::placeholder{color:var(--text-4)}
.sc-props{display:flex;flex-direction:column;gap:2px;padding-bottom:16px;margin-bottom:18px;border-bottom:1px solid var(--line)}
.sc-props label{display:grid;grid-template-columns:18px 110px minmax(0,1fr) auto;align-items:center;gap:8px;min-height:32px;font-size:13px;color:var(--text-3)}.sc-props select{border:0;background:none;color:var(--text-1);font:inherit;font-size:13px;padding:4px 6px;border-radius:6px;cursor:pointer;max-width:100%}.sc-props select:hover{background:var(--surface-2)}
.sc-tagl{display:flex;flex-wrap:wrap;gap:6px;align-items:center}.sc-tagl em{font-style:normal;display:inline-flex;align-items:center;gap:4px;padding:2px 8px;border-radius:99px;background:var(--surface-2);color:var(--text-1);font-size:12px}.sc-tagl em button{border:0;background:none;color:var(--text-3);cursor:pointer;padding:0;font-size:13px}.sc-tagl input{border:0;background:none;color:var(--text-1);font:inherit;font-size:12.5px;outline:none;width:80px}
.sc-edwrap{position:relative}
.sc-ed{min-height:360px;outline:none;font-size:15px;line-height:1.7;color:var(--text-1);word-wrap:break-word}
.sc-ed:empty:before{content:attr(data-ph);color:var(--text-4)}
.sc-ed>*{margin:0 0 .55em}.sc-ed h1{font-size:26px;line-height:1.25;margin:1em 0 .4em}.sc-ed h2{font-size:20px;line-height:1.3;margin:1.1em 0 .35em}.sc-ed h3{font-size:16.5px;margin:1em 0 .3em}
.sc-ed ul,.sc-ed ol{padding-left:24px}.sc-ed ul.todo{list-style:none;padding-left:2px}.sc-ed ul.todo li{position:relative;padding-left:28px}.sc-ed ul.todo li:before{content:"";position:absolute;left:0;top:.3em;width:16px;height:16px;border:1.5px solid var(--line-strong);border-radius:4px;cursor:pointer}
.sc-ed ul.todo li.done{color:var(--text-3);text-decoration:line-through}.sc-ed ul.todo li.done:before{background:var(--brand);border-color:var(--brand)}.sc-ed ul.todo li.done:after{content:"";position:absolute;left:5px;top:calc(.3em + 2px);width:4px;height:8px;border:solid var(--text-on-brand,#fff);border-width:0 2px 2px 0;transform:rotate(45deg)}
.sc-ed blockquote{margin-left:0;padding:2px 0 2px 14px;border-left:3px solid var(--line-strong);color:var(--text-2)}
.sc-ed a{color:var(--brand);text-decoration:underline;text-underline-offset:2px}
.sc-ed hr{border:0;border-top:1px solid var(--line);margin:1.2em 0}
.sc-ed table{width:100%;border-collapse:collapse;font-size:13.5px;line-height:1.5}.sc-ed th,.sc-ed td{border:1px solid var(--line);padding:7px 9px;text-align:left;vertical-align:top}.sc-ed th{background:var(--surface-2);font-weight:600;font-size:12.5px;color:var(--text-2)}.sc-ed td:first-child,.sc-ed th:first-child{width:36px;color:var(--text-3)}.sc-ed td:last-child,.sc-ed th:last-child{width:60px}
.sc-ed figure{margin:1em 0}.sc-ed img{max-width:100%;border-radius:10px;display:block}.sc-ed figcaption{font-size:12.5px;color:var(--text-3);margin-top:6px;text-align:center}
.sc-slash{position:absolute;z-index:20;width:220px;max-height:300px;overflow:auto;padding:6px;border:1px solid var(--line-strong);border-radius:12px;background:var(--surface);box-shadow:var(--shadow-xl)}.sc-slash button{display:flex;align-items:center;gap:10px;width:100%;padding:7px 9px;border:0;border-radius:7px;background:none;color:var(--text-1);font:inherit;font-size:13px;text-align:left;cursor:pointer}.sc-slash button:hover{background:var(--surface-2)}
.sc-lock{display:inline-flex;gap:6px;align-items:center;margin-top:10px;font-size:12px;color:var(--text-3)}
.sc-foot{display:flex;flex-wrap:wrap;align-items:center;gap:4px;padding:8px 12px;border-top:1px solid var(--line);font-size:12px}
.sc-new{position:relative;display:inline-flex;gap:1px}.sc-new>.wl-btn:first-child{border-top-right-radius:0;border-bottom-right-radius:0}.sc-new>.wl-btn:nth-child(2){border-top-left-radius:0;border-bottom-left-radius:0;padding:0 8px}
.sc-newm{display:none;position:absolute;right:0;top:calc(100% + 6px);z-index:30;min-width:190px;padding:6px;border:1px solid var(--line-strong);border-radius:12px;background:var(--surface);box-shadow:var(--shadow-xl)}.sc-new.open .sc-newm{display:block}.sc-newm button{display:flex;gap:10px;align-items:center;width:100%;padding:8px 10px;border:0;border-radius:7px;background:none;color:var(--text-1);font:inherit;font-size:13px;cursor:pointer;text-align:left}.sc-newm button:hover{background:var(--surface-2)}
.v2-content:has(>.sc),.v2-content:has(.sc){container-type:inline-size}
@container (max-width:900px){.sc{grid-template-columns:minmax(0,1fr)}.sc-side{position:static}.sc-list{max-height:220px}}
@container (max-width:560px){.sc-page{padding:22px 18px}.sc-props label{grid-template-columns:18px 84px minmax(0,1fr)}.sc-title{font-size:26px}}
.st-int>span:first-child,.wl-l>span:first-child{flex:none}
.sc-props label{grid-template-columns:18px 110px max-content minmax(0,1fr)}.sc-props select{width:auto;justify-self:start;padding-right:4px}.sc-props label>.lk{justify-self:start;min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12.5px;color:var(--text-3)}
.sc-tb{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;top:76px}.sc-tb::-webkit-scrollbar{display:none}.sc-tb button{flex:none}.sc-saved{flex:none;padding-left:8px;white-space:nowrap}
.sc-props label.sc-tags{grid-template-columns:18px 110px minmax(0,1fr)}
@container (max-width:560px){.sc-props label{grid-template-columns:18px 84px max-content minmax(0,1fr)}.sc-props label.sc-tags{grid-template-columns:18px 84px minmax(0,1fr)}}
.sc-props select{max-width:280px;text-overflow:ellipsis}.sc-open{justify-self:start;width:26px;height:26px;border:0;border-radius:6px;background:none;color:var(--text-3);display:inline-flex;align-items:center;justify-content:center;cursor:pointer}.sc-open:hover{background:var(--surface-2);color:var(--brand)}
.sc-foot .sc-saved{display:inline-flex;align-items:center;gap:4px;padding:0 10px 0 0;margin-right:6px;border-right:1px solid var(--line)}
.sc-seg{display:flex;flex-wrap:nowrap;width:100%}.sc-seg button{flex:1 1 0;min-width:0;padding:0 6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:12px}
.sc-new{gap:0;border-radius:999px;box-shadow:inset 0 1px 0 rgba(255,255,255,.25),0 8px 20px -10px color-mix(in oklab,var(--brand) 70%,transparent)}
html .sc-new>.wl-btn,html[data-skin="premium"] .sc-new>.wl-btn{box-shadow:none}
html .sc-new>.wl-btn:first-child,html[data-skin="premium"] .sc-new>.wl-btn:first-child{border-radius:999px 0 0 999px;padding-right:14px}
html .sc-new>.wl-btn:nth-child(2),html[data-skin="premium"] .sc-new>.wl-btn:nth-child(2){border-radius:0 999px 999px 0;padding:0 12px 0 10px;min-width:0;width:auto;border-left:1px solid color-mix(in oklab,var(--text-on-brand,#0b0f0a) 22%,transparent)}
.sc-seg button{text-align:center;justify-content:center}
html .sc-new>:nth-child(2),html[data-skin="premium"] .sc-new>:nth-child(2){border-radius:0 999px 999px 0!important;width:auto;min-width:0;height:var(--control-h-md,38px);padding:0 12px 0 10px;border:0;border-left:1px solid color-mix(in oklab,#000 22%,transparent);box-shadow:none}
html .sc-new>:first-child,html[data-skin="premium"] .sc-new>:first-child{border-radius:999px 0 0 999px!important}
/* collapsible side panels */
.pn-tog{flex:none;width:32px;height:32px;border:0;border-radius:8px;background:none;color:var(--text-3);display:inline-flex;align-items:center;justify-content:center;cursor:pointer;transition:background-color .2s,color .2s}.pn-tog:hover{background:var(--surface-2);color:var(--text-1)}
.pn-head{display:flex;gap:6px;align-items:center}.pn-head>input{flex:1;min-width:0}
.st-nav>.pn-tog{align-self:flex-end;margin-bottom:4px}
*:has(>.st),*:has(>.sc),*:has(>.nt-wrap){container-type:inline-size}
.sc,.st,.nt-wrap{transition:grid-template-columns .35s cubic-bezier(.32,.72,0,1)}
@container (min-width:901px){
.sc.pn-rail,.st.pn-rail,.nt-wrap.pn-rail{grid-template-columns:52px minmax(0,1fr)}
.pn-rail>.sc-side,.pn-rail>.st-nav,.pn-rail>.nt-side{width:52px;z-index:30;border-radius:14px;transition:width .3s cubic-bezier(.32,.72,0,1),box-shadow .3s,background-color .3s;transition-delay:0s}
.pn-rail>.sc-side .pn-head>input,.pn-rail>.sc-side .sc-seg,.pn-rail>.sc-side .sc-it-t,.pn-rail>.sc-side .sc-dot,.pn-rail>.st-nav button:not(.pn-tog)>span:last-child,.pn-rail>.st-nav>.st-ng,.pn-rail>.nt-side>*:not(.pn-head),.pn-rail>.nt-side .pn-head>.sg-pop-l{display:none}
.pn-rail>.sc-side .sc-it{justify-content:center;padding:10px 0}.pn-rail>.st-nav button:not(.pn-tog){justify-content:center;padding:9px 0}.pn-rail .pn-head{justify-content:center}.pn-rail>.st-nav>.pn-tog{align-self:center}
.pn-rail>.sc-side:hover,.pn-rail>.st-nav:hover,.pn-rail>.nt-side:hover{width:280px;padding:8px;margin:-8px;background:var(--surface);border:1px solid var(--line-strong);box-shadow:var(--shadow-xl);transition-delay:.12s}
.pn-rail>.st-nav:hover,.pn-rail>.nt-side:hover{width:236px}
.pn-rail>.sc-side:hover .pn-head>input,.pn-rail>.sc-side:hover .sc-it-t,.pn-rail>.nt-side:hover .pn-head>.sg-pop-l{display:flex}.pn-rail>.sc-side:hover .sc-seg{display:flex}.pn-rail>.sc-side:hover .sc-dot{display:block}.pn-rail>.st-nav:hover button>span:last-child{display:inline}.pn-rail>.st-nav:hover>.st-ng{display:block}.pn-rail>.nt-side:hover>*{display:flex}
.pn-rail>.sc-side:hover .sc-it{justify-content:flex-start;padding:9px 10px}.pn-rail>.st-nav:hover button:not(.pn-tog){justify-content:flex-start;padding:8px 10px}.pn-rail>.sc-side:hover .pn-head,.pn-rail>.nt-side:hover .pn-head{justify-content:flex-start}.pn-rail>.st-nav:hover>.pn-tog{align-self:flex-end}
}
@container (max-width:900px){.pn-tog{display:none}}
@container (min-width:901px){.pn-rail>.st-nav>.st-ng+button{margin-top:10px}.pn-rail>.st-nav:hover>.st-ng+button{margin-top:0}}
.st-nav button>span:first-child{flex:none}
@container (max-width:900px){.st{grid-template-columns:minmax(0,1fr)}.st-nav{position:static;flex-direction:row;overflow-x:auto;gap:4px;padding-bottom:4px;scrollbar-width:none}.st-nav>.st-ng{display:none}.st-nav button{flex:none;padding:7px 12px;border:1px solid var(--line)}.st-nav button>span:last-child{flex:none;overflow:visible}}
/* A4 page view */
.sc-canvas{padding:22px 24px 40px;background:var(--bg-canvas);overflow-x:auto;display:flex;flex-direction:column;align-items:center;gap:16px}
.sc-canvas>.sc-props{width:794px;max-width:100%;margin:0;padding:0 0 4px;border:0}
.sc-sheet{--text-1:#1b1d1a;--text-2:#3c3f3a;--text-3:#6b6f68;--text-4:#a3a69f;--line:#e3e4df;--line-strong:#cfd1ca;--surface:#fff;--surface-2:#f4f4f1;--brand:#3f8f2a;color-scheme:light;position:relative;flex:none;width:794px;box-sizing:border-box;padding:96px 76px 110px;background:#fff;color:var(--text-1);border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.25),0 18px 40px -18px rgba(0,0,0,.55)}
.sc-sheet .sc-title{color:var(--text-1);font-size:28px}
.sc-sheet .sc-ed{min-height:600px;font-size:14.5px}
.sc-run,.sc-pfoot{position:absolute;left:76px;right:76px;display:flex;justify-content:space-between;gap:16px;font-size:10.5px;color:#8b8e86;pointer-events:none;user-select:none}.sc-run{margin-top:40px;padding-bottom:6px;border-bottom:1px solid #eeefea}.sc-run span,.sc-pfoot span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sc-run span:last-child{max-width:50%}
.sc-brk{position:absolute;left:0;right:0;height:14px;margin-top:-7px;background:var(--bg-canvas);box-shadow:inset 0 6px 6px -6px rgba(0,0,0,.5),inset 0 -6px 6px -6px rgba(0,0,0,.5);pointer-events:none}
.sc-ed hr.pb{border:0;height:22px;margin:18px 0;position:relative;background:none}.sc-ed hr.pb:before{content:"";position:absolute;left:0;right:0;top:50%;border-top:1px dashed var(--line-strong)}.sc-ed hr.pb:after{content:"Ngắt trang";position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);padding:0 8px;background:#fff;font-size:10.5px;color:var(--text-3)}
.sc-sheet .sc-slash{--surface:#fff}
.sc-sheet ::selection{background:#cfe8c3}
@container (max-width:900px){.sc-canvas{padding:16px 12px 30px}}
.sc-run span,.sc-pfoot span{flex:none;overflow:visible}.sc-run span:first-child{flex:1 1 auto;min-width:0;overflow:hidden}.sc-run span:last-child{max-width:45%;overflow:hidden}.sc-pfoot span:first-child{flex:1}
.sc-foot{flex-wrap:wrap}.sc-foot>.v2-mut{white-space:nowrap}
.sc-canvas{overflow-x:hidden}.sc-sheet .sc-ed>*{transition:none}
/* standards pass */
.v2-top{min-width:0;box-sizing:border-box}.v2-top-t{min-width:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:0 1 auto}
.v2-searchbtn{flex:1 1 140px;min-width:38px;max-width:320px;overflow:hidden}.v2-searchbtn span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
.v2-top-r{min-width:0;flex:none}
html[data-skin="premium"] .v2-top{width:auto;max-width:calc(100% - 28px)}

.wl-stat__label,.wl-stat__foot{white-space:normal;overflow-wrap:anywhere;min-width:0}
.vz-fn-row{grid-template-columns:minmax(70px,110px) minmax(0,1fr) auto}.vz-fn-row>*{min-width:0}
.vz-ar-plot{overflow:hidden}.hm-gantt{min-width:0;overflow:hidden}.hm-gantt .v2-mut{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
.v2-searchbtn>span:not(:first-child){white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}.v2-searchbtn>svg,.v2-searchbtn>span:first-child{flex:none}
#root[data-w~="lt720"] .v2-searchbtn{flex:0 0 38px;padding:0;justify-content:center}#root[data-w~="lt720"] .v2-searchbtn>span:not(:first-child),#root[data-w~="lt720"] .v2-searchbtn kbd{display:none}
@media (max-width:1100px){.v2-searchbtn kbd{display:none}}
.v2-content .g-kpi{grid-template-columns:repeat(auto-fit,minmax(min(100%,200px),1fr))}.wl-stat__label{overflow-wrap:normal;word-break:normal}
@media (max-width:1240px){.v2-searchbtn{flex:0 0 38px;width:38px;padding:0;justify-content:center}.v2-searchbtn>span:not(:first-child),.v2-searchbtn kbd{display:none}}
.wl-stat__label::first-letter{text-transform:uppercase}.v2-searchbtn{max-width:38px}@media (min-width:1241px){.v2-searchbtn{max-width:320px}}
.v2-top .v2-top-t{flex:1 1 auto!important;min-width:0!important;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.v2-top .v2-top-r{flex:none;min-width:0}
@media (max-width:1000px){.v2-top .v2-top-r [title^="Phím tắt"],.v2-top .v2-top-r [title^="Shortcuts"]{display:none}}
