:root{--blue:#2563EB;--blue-700:#1D4ED8;--blue-50:#EFF6FF;--blue-100:#DBEAFE;--ink:#0F172A;--slate-700:#334155;--slate-500:#64748B;--slate-400:#94A3B8;--line:#E7ECF3;--line-2:#DDE4EE;--bg:#F7F9FC;--surface:#FFFFFF;--surface-2:#F1F5F9;--zone:#F2F6FB;--ok:#15803D;--ok-dot:#16A34A;--warn:#B45309;--warn-bg:#FDF2E3;--danger:#DC2626;--bar-soft:#BFD8F8;--font:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;--mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace}*{box-sizing:border-box;margin:0;padding:0}body,html{background:var(--surface)}body{font-family:var(--font);color:var(--ink);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.5}button,input,select,textarea{font:inherit}a{color:inherit;text-decoration:none}.app{display:grid;grid-template-columns:236px 1fr;min-height:100vh}.side{background:var(--surface);border-right:1px solid var(--line);padding:18px 14px;display:flex;flex-direction:column;position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow-y:auto}.brand{display:flex;align-items:center;gap:10px;padding:6px 8px 18px}.brand .m{width:30px;height:30px;border-radius:8px;background:var(--blue);color:#fff;display:grid;place-items:center}.brand .m,.brand b{font-weight:800;font-size:15px}.brand small{display:block;font:600 9px/1 var(--mono);letter-spacing:.14em;color:var(--slate-400);text-transform:uppercase}.nav{flex-direction:column;gap:2px;margin-top:6px}.nav,.nav a{display:flex}.nav a{align-items:center;gap:10px;padding:9px 11px;border-radius:8px;color:var(--slate-500);font-weight:600;font-size:13px}.nav a:hover{background:var(--surface-2);color:var(--ink)}.nav a.on{background:var(--blue-50);color:var(--blue-700)}.nav a svg{width:16px;height:16px;flex:0 0 auto}.side-foot{margin-top:auto;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--bg)}.side-foot p{font-size:11px;color:var(--slate-500);margin-top:6px}.main{min-width:0;background:var(--surface)}.wrap{width:100%;padding:26px 44px 60px}.wrap.zone{background:var(--zone);border-bottom:1px solid var(--line-2);padding:30px 44px}.eyebrow{font:700 11px/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--blue);display:inline-flex;align-items:center;gap:7px}.eyebrow svg{width:13px;height:13px;flex:0 0 auto}h1{font-size:24px;font-weight:800;letter-spacing:-.02em}h2{font-size:16px;font-weight:700;letter-spacing:-.01em}.muted{color:var(--slate-500)}.head{display:flex;align-items:flex-start;justify-content:space-between}.head .lead{color:var(--slate-500);margin-top:7px;font-size:14px}.head .actions{display:flex;gap:10px;align-items:center;margin-top:26px}.sync-hint{display:inline-flex;align-items:center;gap:7px;font-size:12px;color:var(--slate-400);cursor:pointer}.sync-hint svg{width:12px;height:12px}.pill{display:inline-flex;align-items:center;gap:7px;font-size:11.5px;font-weight:650;padding:5px 11px;border-radius:999px;border:1px solid var(--line-2);background:var(--surface);color:var(--slate-700);white-space:nowrap}.pill .dot{width:7px;height:7px;border-radius:50%;flex:0 0 auto;background:var(--slate-400)}.pill-ok .dot{background:var(--ok-dot)}.pill-warn .dot{background:var(--warn)}.pill-mute{color:var(--slate-400)}.btn{height:38px;padding:0 16px;border-radius:9px;border:1px solid transparent;font-weight:650;font-size:13px;cursor:pointer;display:inline-flex;align-items:center;gap:7px;background:none}.btn-primary{background:var(--blue);color:#fff}.btn-primary:hover{background:var(--blue-700)}.btn-ghost{background:var(--surface);color:var(--ink);border-color:var(--line-2)}.btn-ghost:hover{border-color:var(--blue);color:var(--blue)}.btn-sm{height:32px;font-size:12px;padding:0 13px}.btn:disabled{opacity:.55;cursor:wait}.lnk{color:var(--blue);cursor:pointer}.lnk,.warn-t{font-weight:650}.warn-t{color:var(--warn)}.ok-t{color:var(--ok);font-weight:650}.danger-t{color:var(--danger);font-weight:650;cursor:pointer}.stripe{display:grid;grid-template-columns:1.1fr 1fr 1.2fr;border-top:1px solid var(--line-2);margin-top:26px}.stripe .cell{position:relative;padding:22px 24px 4px}.stripe .cell:first-child{padding-left:2px}.stripe .cell+.cell:before{content:"";position:absolute;left:0;top:18px;bottom:18px;width:1px;background:var(--line)}.p-head{display:flex;align-items:baseline;gap:10px}.p-head .v{font-size:26px;font-weight:800;letter-spacing:-.02em}.p-head .v small{font-size:16px;color:var(--slate-400);font-weight:700}.p-head .k{font-size:12.5px;color:var(--slate-500);font-weight:600}.p-head svg.m-ic{width:15px;height:15px;color:var(--slate-400);align-self:center;flex:0 0 auto}.p-sub{font-size:11.5px;color:var(--slate-400);margin-top:2px}.bars{align-items:flex-end;gap:8px;height:72px;margin-top:14px}.bar,.bars{display:flex}.bar{flex:1 1;flex-direction:column;align-items:center;gap:5px;height:100%;justify-content:flex-end}.bar i{display:block;width:100%;max-width:26px;border-radius:4px 4px 0 0;background:var(--bar-soft)}.bar.today i{background:var(--blue)}.bar em{font-style:normal;font:600 10px/1 var(--mono);color:var(--slate-400)}.bar.today em{color:var(--blue);font-weight:700}.bar .val{font:700 10.5px/1 var(--mono);color:var(--ink)}.funnel{display:flex;flex-direction:column;gap:7px;margin-top:14px}.f-row{display:grid;grid-template-columns:110px 1fr 34px;align-items:center;grid-gap:10px;gap:10px;font-size:11.5px;color:var(--slate-500)}.f-row .f-bar{height:14px;border-radius:3px}.f-row b{font:700 11px/1 var(--mono);color:var(--ink);text-align:right}.act{display:flex;align-items:flex-end;gap:5px;height:72px;margin-top:14px}.act .col{flex:1 1;display:flex;flex-direction:column-reverse;align-items:center;gap:2px;height:100%;justify-content:flex-start}.act .col i{display:block;width:100%;max-width:16px;border-radius:3px}.act .col .snd{background:var(--bar-soft)}.act .col .rsp{background:var(--blue)}.act-leg{display:flex;gap:16px;margin-top:10px;font-size:11px;color:var(--slate-500)}.act-leg span{display:inline-flex;align-items:center;gap:6px}.act-leg i{width:9px;height:9px;border-radius:3px}.section{padding:30px 0 6px}.wrap>.section:first-child{padding-top:4px}.sec-h{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:6px}.sec-h .r{color:var(--blue);font-size:12px;font-weight:650;cursor:pointer}.sec-h .r:hover{color:var(--blue-700)}.sec-count{color:var(--slate-400);font-size:12px;font-weight:600}.list{margin-top:6px}.list>:last-child{border-bottom:1px solid var(--line-2)}.li{display:grid;grid-template-columns:112px 26px 215px 1fr auto;align-items:start;grid-gap:14px;gap:14px;padding:17px 10px 16px;margin:0 -10px;border-top:1px solid var(--line-2);cursor:pointer}.li:hover{background:var(--bg);border-radius:8px}.li b{font-size:13.5px}.li .sub,.li b{line-height:1.35}.li .sub{color:var(--slate-500);font-size:12.5px}.li .date{margin-top:2px}.li>div:last-child{align-self:center}.date{font:600 12px/1 var(--mono);color:var(--blue)}.mtg-ic{display:grid;place-items:center;color:var(--slate-400);flex:0 0 auto}.mtg-ic svg{width:17px;height:17px}.who small{display:block;color:var(--slate-400);font-size:11px;margin-top:2px}.next{display:flex;align-items:center;gap:7px;margin-top:4px;font-size:11.5px;color:var(--slate-500);position:relative}.next .st{font:650 10.5px/1 var(--mono);letter-spacing:.04em;color:var(--blue);cursor:pointer}.next .st:before{content:"";display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--blue);margin-right:6px;vertical-align:1px}.next .st.warn{color:var(--warn)}.next .st.warn:before{background:var(--warn)}.next .chs{display:inline-flex;gap:5px;align-items:center;color:var(--slate-400);margin-left:2px}.next .chs svg{width:12px;height:12px}.caret{width:16px;height:16px;color:var(--slate-400);transition:transform .15s}.li.open .caret{transform:rotate(90deg)}.sw-wrap{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:650;color:var(--slate-700);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;background:none;border:none}.sw{width:34px;height:20px;border-radius:999px;background:var(--line-2);position:relative;transition:background .15s;flex:0 0 auto}.sw:after{content:"";position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--surface);box-shadow:0 1px 2px rgba(16,24,40,.2);transition:left .15s}.sw.on{background:var(--blue)}.sw.on:after{left:16px}.sw-wrap.off{color:var(--slate-400)}.step-pop{display:none;position:absolute;left:0;top:calc(100% + 8px);z-index:30;width:340px;background:var(--surface);border:1px solid var(--line-2);border-radius:12px;box-shadow:0 8px 28px rgba(16,24,40,.14);padding:14px 16px;cursor:default}.next.pop-open .step-pop,.next:hover .step-pop{display:block}.step-pop .sp-t{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:4px}.step-pop .sp-t b{font-size:12.5px}.step-pop .sp-t span{font:600 10px/1 var(--mono);color:var(--slate-400)}.step-pop .sp-meta{font-size:11px;color:var(--slate-500);margin-bottom:9px;display:flex;align-items:center;gap:6px}.step-pop .sp-meta svg{width:12px;height:12px;color:var(--slate-400)}.step-pop .sp-body{font-size:12.5px;line-height:1.55;color:var(--ink);padding:10px 12px;background:var(--bg);border-radius:9px;border:1px solid var(--line)}.step-pop .sp-foot{margin-top:9px;font-size:11px;color:var(--slate-400);display:flex;justify-content:space-between;align-items:center}.detail{margin:0 -10px;padding:24px 14px 18px;background:var(--bg);border-top:1px solid var(--line);border-radius:0 0 10px 10px}.stp{display:grid;grid-template-columns:repeat(4,1fr);margin-bottom:24px}.stp-i{position:relative;padding-right:18px}.stp-i:before{content:"";position:absolute;top:7px;left:26px;right:6px;height:2px;background:var(--line-2);border-radius:2px}.stp-i:last-child:before{display:none}.stp-i.done:before{background:var(--ok-dot)}.stp-dot{width:16px;height:16px;border-radius:50%;background:var(--surface);border:2px solid var(--line-2);display:grid;place-items:center;margin-bottom:9px}.stp-i.done .stp-dot{border-color:var(--ok-dot);background:var(--ok-dot)}.stp-i.done .stp-dot svg{width:9px;height:9px;color:#fff}.stp-i.nextp .stp-dot{border-color:var(--blue)}.stp-i.nextp .stp-dot i{width:6px;height:6px;border-radius:50%;background:var(--blue)}.stp-i b{font-size:12px;display:block}.stp-i small{color:var(--slate-400);font-size:11px;display:block;margin-top:2px}.d-bottom{display:grid;grid-template-columns:1fr 1.2fr;grid-gap:34px;gap:34px;padding-top:18px;border-top:1px solid var(--line)}.d-h{font:700 10px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;margin-bottom:11px;display:flex;align-items:center;gap:7px}.d-h,.d-h svg{color:var(--slate-400)}.d-h svg{width:12px;height:12px}.kv{flex-direction:column}.kv,.kv>div{display:flex;gap:9px}.kv>div{align-items:center;font-size:12.5px}.kv svg{width:13px;height:13px;color:var(--slate-400);flex:0 0 auto}.msgs{display:flex;flex-direction:column}.msg{font-size:12px;padding:10px 0 12px;border-top:1px solid var(--line-2)}.msgs>.msg:first-child{border-top:0;padding-top:2px}.msg .m-h{display:flex;justify-content:space-between;margin-bottom:3px}.msg .m-h span{font:600 10px/1 var(--mono);color:var(--slate-400)}.m-st{display:inline-flex;align-items:center;gap:4px;font-size:10.5px;font-weight:650;color:var(--ok)}.m-st .dot,.m-st i{width:6px;height:6px;border-radius:50%;background:var(--ok-dot)}.d-foot{display:flex;justify-content:space-between;align-items:center;margin-top:16px;padding-top:14px;border-top:1px solid var(--line)}.table-wrap{overflow-x:auto}table.flat{width:100%;border-collapse:collapse}table.flat th{font:600 10px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--slate-400);text-align:left;padding:12px 14px}table.flat td{padding:13px 14px;border-top:1px solid var(--line-2);font-size:13px}table.flat tbody tr:hover{background:var(--bg)}table.flat tr:last-child td{border-bottom:1px solid var(--line-2)}.empty-block{padding:26px 0;color:var(--slate-500);font-size:13px}.empty-block b{display:block;color:var(--ink);font-size:14px;margin-bottom:4px}@media (max-width:900px){.app{grid-template-columns:1fr}.side{position:static;height:auto;align-items:center;gap:8px;overflow-x:auto;padding:10px 14px}.nav,.side{flex-direction:row}.nav{margin:0}.side-foot{display:none}.wrap,.wrap.zone{padding:20px 18px 40px}.stripe{grid-template-columns:1fr}.stripe .cell+.cell:before{display:none}.li{grid-template-columns:90px 1fr auto}.li .mtg-ic,.li .who{display:none}.stp{grid-template-columns:repeat(2,1fr);gap:14px 0}.d-bottom{grid-template-columns:1fr}}