:root{--purple-50:#f6f0fa;--purple-100:#eadcf3;--purple-200:#d6bce8;--purple-300:#c29bea;--purple-400:#a877d2;--purple-500:#8e4fbf;--purple-600:#6e3394;--purple-700:#4d2069;--purple-800:#351548;--purple-900:#1e0c2a;--canvas:#180d22;--sidebar:#301344;--sidebar-hover:#44205c;--surface:#22142e;--raised:#2c1a3b;--border:#45305a;--ink:#f3eef7;--muted:#b3a6be;--nav-ink:#c9b8d8;--accent:var(--purple-300);--accent-soft:#c29bea24;--positive:#56d3a0;--negative:#e0685b;--warn:#f1b75a;--radius:14px;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}*{box-sizing:border-box}html,body,#root{min-height:100vh;margin:0}body{background:var(--canvas);color:var(--ink);font:15px/1.5 var(--font)}h1{margin:0 0 20px;font-size:26px}h2{margin:0 0 12px;font-size:18px}h3{margin:16px 0 8px;font-size:15px}.center{place-items:center;min-height:100vh;padding:16px;display:grid}.muted{color:var(--muted)}.small{font-size:13px}.error{color:var(--negative)}tr.clickable{cursor:pointer}tr.clickable:hover td{background:#ffffff0a}.good{color:var(--positive)}.warn{color:var(--warn)}.note{background:var(--accent-soft);border:1px solid var(--border);border-radius:10px;padding:10px 14px}.wordmark{letter-spacing:.08em;margin-bottom:18px;font-size:20px;font-weight:800}.wordmark span{letter-spacing:0;color:var(--nav-ink);font-weight:400}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:16px;padding:20px}.card.narrow{width:100%;max-width:380px}.card h3:first-child{margin-top:0}.grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;display:grid}.btn{background:var(--purple-500);color:#fff;font:inherit;cursor:pointer;border:0;border-radius:10px;padding:10px 16px;font-weight:600}.btn:hover{background:var(--purple-600)}.btn.ghost{color:var(--purple-200);border:1px solid var(--border);background:0 0}.btn.ghost:hover{background:var(--raised)}.btn.small{padding:5px 10px;font-size:13px}.btn:disabled{opacity:.5;cursor:default}input,select,textarea{font:inherit;border:1px solid var(--border);background:var(--raised);color:var(--ink);border-radius:10px;padding:9px 12px}input::placeholder{color:var(--muted)}input:focus,select:focus,textarea:focus,.btn:focus-visible{outline:2px solid var(--purple-400);outline-offset:1px}.row{flex-wrap:wrap;align-items:center;gap:8px;margin-top:8px;display:flex}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;border-bottom:1px solid var(--border);padding:7px 10px}th{color:var(--muted);font-weight:600}td.num,th.num{text-align:right;font-variant-numeric:tabular-nums}tbody tr:hover{background:var(--raised)}.assistant{background:var(--surface);border-left:1px solid var(--border);z-index:10;flex-direction:column;width:min(460px,100vw);display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-12px 0 40px #00000059}.assistant-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.assistant-body{flex-direction:column;flex:1;gap:10px;padding:16px;display:flex;overflow-y:auto}.bubble{background:var(--raised);border:1px solid var(--border);border-radius:12px;max-width:100%;padding:10px 12px;overflow-x:auto}.bubble p{margin:0 0 8px}.bubble p:last-child{margin:0}.bubble ul{margin:4px 0 8px;padding-left:20px}.bubble.me{background:var(--purple-700);border-color:var(--purple-600);white-space:pre-wrap;align-self:flex-end;max-width:85%}.bubble.error{color:var(--negative)}.assistant-ask{border-top:1px solid var(--border);gap:8px;padding:12px 16px;display:flex}.assistant-ask textarea{resize:none;flex:1}.shell{min-height:100vh;display:flex}.content{flex:1;min-width:0;padding:16px 32px 40px}.content-inner{max-width:1400px;margin:0 auto}.rail{background:var(--sidebar);border:1px solid var(--border);border-radius:22px;flex-direction:column;flex-shrink:0;align-self:flex-start;width:108px;height:calc(100vh - 32px);margin:16px 0 16px 16px;padding:10px 8px;display:flex;position:sticky;top:16px;overflow-y:auto}.rail-brand{white-space:nowrap;justify-content:center;align-items:center;gap:6px;padding:4px 0 10px;font-size:11.5px;font-weight:700;display:flex}.rail-brand .dot{background:var(--positive);border-radius:50%;width:8px;height:8px}.rail-nav{border-top:1px solid var(--border);flex-direction:column;gap:2px;margin-top:6px;padding-top:8px;display:flex}.rail-item{width:100%;color:var(--nav-ink);font:inherit;text-align:center;cursor:pointer;background:0 0;border:0;border-radius:14px;flex-direction:column;align-items:center;gap:6px;padding:9px 4px;font-size:11px;line-height:1.2;display:flex}.rail-item:hover,.rail-item.on{background:var(--sidebar-hover);color:var(--ink)}.rail-item.on .vz-ico{color:var(--accent)}.rail-item .vz-ico{color:var(--nav-ink)}.rail-foot{border-top:1px solid var(--border);text-align:center;gap:4px;margin-top:auto;padding-top:10px;font-size:11px;display:grid}.rail-foot .who{text-overflow:ellipsis;white-space:nowrap;color:var(--muted);overflow:hidden}.rail-foot .role{color:var(--positive);font-weight:600}.flyout{z-index:20;background:var(--raised);border:1px solid var(--border);border-radius:16px;flex-direction:column;gap:2px;min-width:220px;padding:8px;display:flex;position:fixed;box-shadow:0 16px 40px #00000073}.flyout-title{padding:6px 10px 8px;font-size:13px;font-weight:600}.flyout-item{text-align:left;color:var(--nav-ink);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:10px;align-items:center;gap:10px;padding:9px 12px;display:flex}.flyout-item:hover{background:var(--sidebar-hover);color:var(--ink)}.flyout-item.on{background:var(--purple-700);color:var(--ink)}.flyout-group{flex-direction:column;gap:2px;display:flex}.flyout-sub{text-align:left;color:var(--ink);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:10px;justify-content:space-between;align-items:center;padding:9px 12px;font-weight:600;display:flex}.flyout-sub:hover{background:var(--sidebar-hover)}.flyout-sub span{color:var(--muted);transition:transform .15s}.flyout-sub.open span{transform:rotate(90deg)}.flyout-nest{border-left:1px solid var(--border);flex-direction:column;gap:2px;margin:0 0 4px 12px;padding-left:8px;display:flex}.link{color:var(--accent);font:inherit;text-underline-offset:3px;cursor:pointer;background:0 0;border:0;padding:0;text-decoration:underline}.topbar{justify-content:flex-end;align-items:center;gap:10px;margin-bottom:18px;display:flex}.search{width:min(340px,100%);position:relative}.search input{border-radius:12px;width:100%}.search-results,.help-results{flex-direction:column;gap:2px;display:flex}.search-results{z-index:15;background:var(--raised);border:1px solid var(--border);border-radius:14px;padding:6px;position:absolute;top:calc(100% + 6px);left:0;right:0;box-shadow:0 16px 40px #00000073}.search-results button,.help-results button{text-align:left;color:var(--ink);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:10px;gap:2px;padding:8px 10px;display:grid}.search-results button:hover,.help-results button:hover{background:var(--sidebar-hover)}.search-results p{margin:6px 8px}.help-circle{border:1px solid var(--border);background:var(--surface);width:38px;height:38px;color:var(--ink);font:inherit;cursor:pointer;border-radius:50%;flex-shrink:0;font-weight:700}.help-circle:hover,.help-circle.on{background:var(--purple-700);border-color:var(--purple-500)}.side-panel{background:var(--surface);border-left:1px solid var(--border);z-index:10;flex-direction:column;width:min(380px,100vw);display:flex;position:fixed;top:0;bottom:0;right:0;box-shadow:-12px 0 40px #00000059}.side-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:14px 16px;display:flex}.side-body{flex:1;padding:16px;overflow-y:auto}.side-body input[type=search]{width:100%;margin-bottom:14px}.side-body h2{margin:4px 0 6px;font-size:20px}.side-body h3{margin:18px 0 8px;font-size:14px}.side-body ul{margin:0;padding-left:18px}.side-body li{margin-bottom:4px}.help-box,.help-tip{background:var(--raised);border:1px solid var(--border);border-radius:12px;margin-bottom:8px;padding:10px 12px;font-size:14px}.help-box p,.help-tip p{color:var(--muted);margin:4px 0 0}.help-tip{border-color:var(--purple-500);border-left:3px solid var(--positive);margin-top:16px}.help-flow{gap:6px;margin:0;padding:0;font-size:14px;list-style:none;display:grid}.help-flow li{align-items:baseline;gap:10px;display:flex}.help-flow span{background:var(--accent-soft);height:22px;color:var(--accent);border-radius:50%;flex:0 0 22px;place-items:center;font-size:12px;font-weight:700;display:grid}.tour{z-index:950;pointer-events:none;position:fixed;inset:0}.tour-dim{pointer-events:auto;background:#0000008c;position:fixed;inset:0}.tour-ring{border:2px solid var(--accent);box-shadow:0 0 0 9999px #0000008c, 0 0 0 6px var(--accent-soft);pointer-events:none;border-radius:12px;transition:all .25s;position:fixed}.tour-pop{pointer-events:auto;border-radius:var(--radius);background:var(--raised);border:1px solid var(--accent);color:var(--ink);padding:16px 18px 14px;position:fixed;box-shadow:0 16px 40px #00000080}.tour-count{color:var(--accent);margin-bottom:4px;font-size:12px}.tour-title{margin:0 0 6px;font-size:16px;font-weight:650}.tour-text{color:var(--muted);margin:0 0 12px;font-size:14px;line-height:1.55}.tour-dots{gap:5px;margin-bottom:12px;display:flex}.tour-dots span{background:var(--border);border-radius:3px;width:6px;height:6px;transition:width .2s}.tour-dots span.on{background:var(--accent);width:18px}.tour-nav{justify-content:space-between;align-items:center;display:flex}.side-foot{border-top:1px solid var(--border);padding:12px 16px;font-size:13px}h1{letter-spacing:-.02em;font-size:34px;font-weight:800;line-height:1.1}.page-head{margin-bottom:22px}.page-head h1{margin:0}.page-title .accent{color:var(--accent)}.page-sub{color:var(--muted);margin:6px 0 0;font-size:15.5px}.card{border-radius:18px;padding:20px 22px}.card h2{font-size:19px}.card-head{justify-content:space-between;align-items:baseline;gap:12px;display:flex}.card>p.muted.small{margin-top:-4px}th{font-size:13px;font-weight:500}.btn,input,select{border-radius:12px}.scroll{overflow-x:auto}.grid2{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:16px;display:grid}.grid2>.card{margin-bottom:16px}.stats{grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:14px;margin-bottom:14px;display:grid}.stats.four{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.stat{background:var(--raised);border:1px solid var(--border);border-radius:16px;padding:16px 18px 14px}.stat-label{color:var(--nav-ink);align-items:center;gap:9px;font-size:14px;display:flex}.stat-value{letter-spacing:-.01em;font-variant-numeric:tabular-nums;margin-top:8px;font-size:28px;font-weight:700}.stat-hint{color:var(--muted);margin-top:2px;font-size:13px}.vz-ico{color:var(--accent);flex:none}.vz-answer{background:var(--raised);border:1px solid var(--border);border-radius:18px;align-items:center;gap:16px;margin-bottom:18px;padding:16px 22px;display:flex}.vz-answer p{flex:1;margin:0;font-size:16.5px;line-height:1.5}.vz-answer.warn{border-color:#f1b75a73}.vz-answer.warn .vz-ico{color:var(--warn)}.vz-answer.bad .vz-ico{color:var(--negative)}.vz-spark{width:100%;height:40px;margin-top:8px;display:block}.vz-line{fill:none;stroke:var(--accent);stroke-width:2px;vector-effect:non-scaling-stroke}.vz-fill{fill:#c29bea29}.vz-area svg{width:100%;display:block}.vz-grid{stroke:var(--border);stroke-width:1px;vector-effect:non-scaling-stroke;opacity:.6}.vz-cmp{fill:none;stroke:var(--muted);stroke-width:2px;stroke-dasharray:5 5;vector-effect:non-scaling-stroke;opacity:.7}.vz-target{stroke:var(--warn);stroke-width:2px;stroke-dasharray:6 5;vector-effect:non-scaling-stroke}.vz-col{fill:var(--accent)}.vz-col.below{fill:var(--purple-500)}.vz-axis{color:var(--muted);justify-content:space-between;margin-top:6px;font-size:12px;display:flex}.vz-donut{flex-wrap:wrap;align-items:center;gap:22px;display:flex}.vz-dc1{text-anchor:middle;fill:var(--ink);font-size:22px;font-weight:700}.vz-dc2{text-anchor:middle;fill:var(--muted);font-size:12px}.vz-legend{flex-direction:column;flex:1;gap:10px;min-width:160px;font-size:14px;display:flex}.vz-legend div{align-items:center;gap:10px;display:flex}.vz-legend i{border-radius:4px;flex:none;width:12px;height:12px}.vz-legend b{font-variant-numeric:tabular-nums;margin-left:auto}.vz-bars{flex-direction:column;gap:4px;display:flex}.vz-barrow{grid-template-columns:minmax(90px,30%) minmax(0,1fr) auto;align-items:center;gap:12px;padding:5px 0;font-size:14px;display:grid}.vz-bl{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.vz-track{background:var(--purple-800);border-radius:5px;height:9px;display:block;overflow:hidden}.vz-bar{background:var(--accent);border-radius:5px;height:100%;display:block}.vz-bar.warn{background:var(--warn)}.vz-bar.bad{background:var(--negative)}.vz-bv{text-align:right;font-variant-numeric:tabular-nums;min-width:60px}.vz-more{color:var(--accent);font:inherit;cursor:pointer;background:0 0;border:0;align-self:flex-start;padding:4px 0;font-size:13px}.vz-meter{align-items:center;gap:10px;min-width:130px;display:flex}.vz-meter .vz-track{flex:1;height:7px}.vz-meter b{font-variant-numeric:tabular-nums;text-align:right;min-width:40px;font-weight:600}.vz-ring{align-items:center;gap:20px;margin:8px 0 0;display:flex}.vz-ringbg{fill:none;stroke:var(--purple-800)}.vz-ringok{fill:var(--positive)}.vz-ringlow{fill:var(--accent)}.vz-ring figcaption{gap:4px;display:grid}.vz-ring figcaption b{font-size:22px}.vz-ring figcaption span{color:var(--muted);font-size:13px}@media (width<=760px){.shell{flex-direction:column}.rail{border-radius:18px;align-self:stretch;width:auto;height:auto;margin:10px 12px 0;position:static}.rail-nav{grid-template-columns:repeat(auto-fill,minmax(76px,1fr));display:grid}.rail-foot{justify-content:center;align-items:center;gap:12px;display:flex}.flyout{right:16px}.content{padding:14px 16px 32px}.topbar .search{flex:1;width:auto}h1{font-size:28px}.grid2{grid-template-columns:minmax(0,1fr)}.vz-answer{padding:14px 16px}}.update-notice{color:var(--warn);background:#f1b75a1f;border:1px solid #f1b75a73;border-radius:12px;flex-wrap:wrap;align-items:center;gap:12px;margin:0 0 14px;padding:10px 14px;display:flex}.rc-section{margin-bottom:28px}.rc-grid{grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:14px;display:grid}.rc-tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--ink);font:inherit;text-align:left;cursor:pointer;flex-direction:column;gap:2px;padding:0 0 12px;display:flex;overflow:hidden}.rc-tile:hover{border-color:var(--purple-400)}.rc-tile>span:not(.rc-img){padding:0 14px}.rc-img,.rc-photo{aspect-ratio:4/5;background:var(--purple-700);place-items:center;display:grid;position:relative;overflow:hidden}.rc-img{margin-bottom:8px}.rc-img>span,.rc-photo>span{text-align:center;color:var(--purple-100);padding:12px;font-size:20px;font-weight:800}.rc-img img,.rc-photo img{object-fit:cover;width:100%;height:100%;position:absolute;inset:0}.rc-name{font-size:16px;font-weight:700}.rc-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin:14px 0 18px;display:flex}.rc-head h1{margin:0}.rc-sizes{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:4px;display:inline-flex}.rc-sizes button{color:var(--muted);font:inherit;cursor:pointer;background:0 0;border:0;border-radius:9px;padding:10px 20px;font-size:17px;font-weight:700}.rc-sizes button.on{background:var(--purple-500);color:#fff}.rc-detail{grid-template-columns:minmax(220px,300px) 1fr;align-items:start;gap:28px;margin-bottom:16px;display:grid}.rc-cup{clip-path:polygon(0 0,100% 0,91% 100%,9% 100%);border:3px solid #ffffff59;border-top:0;border-radius:0 0 26px 26px;flex-direction:column-reverse;height:460px;display:flex;overflow:hidden}.rc-cup>div{border-top:1px solid #0000002e;flex-basis:0;align-items:center;gap:6px;min-height:30px;padding:0 18%;font-size:13px;display:flex}.rc-photo{border-radius:var(--radius)}.rc-steps{margin:0;padding:0;list-style:none}.rc-steps li{border-bottom:1px solid var(--border);grid-template-columns:36px auto 1fr auto;align-items:center;gap:12px;padding:12px 4px;font-size:18px;display:grid}.rc-steps b{font-variant-numeric:tabular-nums;font-size:22px}.rc-n{background:var(--purple-700);width:32px;height:32px;color:var(--purple-100);border-radius:50%;place-items:center;font-size:15px;font-weight:700;display:grid}.rc-thumb img{object-fit:cover;border-radius:8px;width:66px;height:88px;display:block}.rc-extras{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px;display:grid}.rc-extras>div{background:var(--surface);border:1px solid var(--border);border-radius:10px;justify-content:space-between;gap:8px;padding:10px 14px;display:flex}.rc-extras b{font-variant-numeric:tabular-nums;white-space:nowrap}@media (width<=760px){.rc-detail{grid-template-columns:1fr}.rc-cup{width:100%;max-width:280px;height:360px;margin:0 auto}}.btn-export{border-radius:8px;padding:4px 12px;font-size:12px;font-weight:600}.grid-years{grid-template-columns:repeat(auto-fill,minmax(340px,1fr));gap:14px;display:grid}.grid-years>.card{margin-bottom:0}.month-grid{grid-template-columns:repeat(6,1fr);gap:6px;display:grid}.month-cell{text-align:left;background:var(--raised);border:1px solid var(--border);border-top:3px solid var(--border);color:inherit;font:inherit;cursor:pointer;border-radius:8px;flex-direction:column;gap:2px;padding:6px 7px;display:flex}.month-cell b{font-size:12px}.month-cell span{color:var(--muted);font-size:11px}.month-cell.locked{border-top-color:var(--purple-400)}.month-cell.posted{border-top-color:var(--purple-200)}.month-cell.waiting{border-top-color:var(--warn)}.month-cell.none{opacity:.35;cursor:default}.month-cell.on{border-color:var(--accent);background:var(--sidebar-hover)}.import-hero{background:var(--purple-700);border-radius:var(--radius);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:20px;margin-bottom:16px;padding:22px 24px;display:flex}.import-hero .eyebrow{color:var(--purple-200);margin:0 0 4px;font-size:13px}.import-hero h2{margin:0 0 6px;font-size:26px}.import-hero p:not(.eyebrow){color:var(--purple-100);max-width:520px;margin:0;font-size:13px}.import-actions{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.pipeline{justify-content:space-between;align-items:flex-start;padding:18px 6px 6px;display:flex;overflow-x:auto}.pipeline>em{background:var(--border);flex:1;min-width:16px;height:1px;margin:16px 8px 0}.pipeline>div{text-align:center;min-width:96px}.pipeline i{background:var(--purple-500);color:#fff;border-radius:50%;place-items:center;width:32px;height:32px;margin:0 auto 8px;font-style:normal;font-weight:700;display:grid}.pipeline b,.pipeline span{font-size:13px;display:block}.pipeline span{color:var(--muted);font-size:12px}.progress{background:var(--raised);border:1px solid var(--border);border-radius:13px;height:26px;margin:8px 0 12px;position:relative;overflow:hidden}.progress>div{background:var(--purple-500);height:100%}.progress>span{place-items:center;font-size:13px;font-weight:600;display:grid;position:absolute;inset:0}.count-area+.count-area{border-top:1px solid var(--border)}.count-head{all:unset;cursor:pointer;justify-content:space-between;align-items:center;width:100%;padding:12px 4px;font-size:16px;font-weight:700;display:flex}.sticky-foot{z-index:5;background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;margin-top:12px;padding:12px 16px;display:flex;position:sticky;bottom:0}.sticky-foot>span{margin-right:auto}.day-grid td,.day-grid th{text-align:center;padding:6px 4px}.day-grid td:first-child{text-align:left}.day-grid i{background:var(--raised);border:1px solid var(--border);border-radius:4px;width:14px;height:14px;display:inline-block}.day-grid i.on{background:var(--purple-400);border-color:var(--purple-400)}.dot-on{background:var(--positive);vertical-align:middle;border-radius:50%;width:8px;height:8px;margin-right:6px;display:inline-block}.state-chip{border:1px solid var(--border);background:var(--raised);border-radius:8px;padding:3px 10px;font-size:12px;display:inline-block}.state-chip.good{color:var(--positive)}.state-chip.error{color:var(--negative)}.stat-btn{all:unset;cursor:pointer;display:block}.stat-btn>.stat{box-sizing:border-box;height:100%}.stat-btn:hover>.stat{border-color:var(--purple-400)}
