:root,[data-theme=blue]{--bg:#f3f6fb;--card:#ffffff;--ink:#0f1b2d;--ink2:#33435a;--mut:#586579;--line:#dfe5ee;--soft:#f6f8fc;--field:#c3ccd9;--side:#0b2a5b;--side-ink:#c9d6ea;--side-hover:#143a78;--acc:#1d4ed8;--acc-ink:#ffffff;--c1:#1d4ed8;--c2:#93b4f5;--pos:#0b6e4f;--neg:#b23e17;--warn:#8a4b06}[data-theme=gold]{--bg:#0e0d0b;--card:#17150f;--ink:#f3ecd9;--ink2:#d8cfb8;--mut:#a39a82;--line:#2b271c;--soft:#1d1a13;--field:#3a3525;--side:#090806;--side-ink:#cfc6ae;--side-hover:#1d1a13;--acc:#d4a937;--acc-ink:#1a1405;--c1:#d4a937;--c2:#6e5a22;--pos:#5fd08f;--neg:#f08a6a;--warn:#e6b450}[data-theme=green]{--bg:#0f1412;--card:#171e1b;--ink:#e7f0ec;--ink2:#c2d0c9;--mut:#93a39b;--line:#26312c;--soft:#1c2521;--field:#33413b;--side:#0a0e0c;--side-ink:#b9c8c0;--side-hover:#1a2420;--acc:#22c55e;--acc-ink:#052e14;--c1:#22c55e;--c2:#1f6b3c;--pos:#4ade80;--neg:#f58a6b;--warn:#e6b450}[data-theme=purple]{--bg:#f6f4fb;--card:#ffffff;--ink:#1e1532;--ink2:#40365a;--mut:#615a75;--line:#e4dff0;--soft:#f9f7fd;--field:#cdc5de;--side:#2a1a55;--side-ink:#d5cbee;--side-hover:#3a2670;--acc:#6d28d9;--acc-ink:#ffffff;--c1:#6d28d9;--c2:#c4b0f3;--pos:#0b6e4f;--neg:#b23e17;--warn:#8a4b06}[data-theme=midnight]{--bg:#0b1220;--card:#121b2e;--ink:#e6edf7;--ink2:#c0cbdc;--mut:#93a1b8;--line:#22304a;--soft:#18233a;--field:#2f3f5e;--side:#070c17;--side-ink:#b7c3d8;--side-hover:#16213a;--acc:#22b8cf;--acc-ink:#04252b;--c1:#22b8cf;--c2:#1c5f7a;--pos:#4fd1a5;--neg:#f58a6b;--warn:#e6b450}[data-theme=graphite]{--bg:#151515;--card:#1e1e1e;--ink:#efefef;--ink2:#cfcfcf;--mut:#a0a0a0;--line:#303030;--soft:#252525;--field:#404040;--side:#0c0c0c;--side-ink:#c8c8c8;--side-hover:#232323;--acc:#f97316;--acc-ink:#2a1203;--c1:#f97316;--c2:#7c3d12;--pos:#4ade80;--neg:#f87171;--warn:#e6b450}[data-theme=sand]{--bg:#f5f1e8;--card:#fffdf8;--ink:#24201a;--ink2:#4a4338;--mut:#645c4f;--line:#e4dccb;--soft:#faf6ed;--field:#cfc6b3;--side:#1f3a36;--side-ink:#cfdcd8;--side-hover:#2b4d48;--acc:#0f766e;--acc-ink:#ffffff;--c1:#0f766e;--c2:#9ccfc8;--pos:#0b6e4f;--neg:#b23e17;--warn:#8a4b06}[data-theme=rose]{--bg:#fbf4f5;--card:#ffffff;--ink:#2a1418;--ink2:#4d3238;--mut:#6b555a;--line:#eedde0;--soft:#fdf8f9;--field:#dcc6cb;--side:#4a1524;--side-ink:#ecced5;--side-hover:#641d31;--acc:#be123c;--acc-ink:#ffffff;--c1:#be123c;--c2:#f0a8b8;--pos:#0b6e4f;--neg:#9a3412;--warn:#8a4b06}[data-theme=mono]{--bg:#f5f5f4;--card:#ffffff;--ink:#1c1917;--ink2:#44403c;--mut:#5f5a55;--line:#e7e5e4;--soft:#fafaf9;--field:#c9c5c1;--side:#1c1917;--side-ink:#d6d3d1;--side-hover:#292524;--acc:#1c1917;--acc-ink:#ffffff;--c1:#292524;--c2:#a8a29e;--pos:#0b6e4f;--neg:#b23e17;--warn:#8a4b06}*{box-sizing:border-box}body,html{margin:0}body{background:var(--bg);color:var(--ink);font:15px/1.5 system-ui,-apple-system,Segoe UI,Roboto,sans-serif}a{color:inherit}h1{font-size:26px}h1,h2{margin:0}h2{font-size:17px}.num{font-family:ui-monospace,Cascadia Mono,Consolas,monospace;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.pos{color:var(--pos)}.neg{color:var(--neg)}.flat,.mut{color:var(--mut)}.link{color:var(--acc);font-weight:600;text-decoration:none}.link:hover,[data-theme=mono] .link{text-decoration:underline}.shell{display:flex;flex-wrap:wrap;min-height:100vh}.side{flex:1 1 220px;max-width:100%;background:var(--side);color:var(--side-ink);padding:20px 14px;display:flex;flex-direction:column;gap:4px}.brand{color:#fff;font-weight:700;font-size:16px;padding:4px 10px 18px}.nav{display:block;padding:11px 14px;border-radius:8px;text-decoration:none;color:var(--side-ink);font-weight:500;font-size:14px}.nav:hover{background:var(--side-hover);color:#fff}.nav{padding:8px 14px}.nav-group{margin:14px 14px 2px;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--side-ink);opacity:.55}.nav-more{margin-top:12px}.nav-more summary{padding:8px 14px;border-radius:8px;cursor:pointer;font-size:14px;font-weight:500;color:var(--side-ink);opacity:.75}.nav-more summary:hover{background:var(--side-hover);color:#fff;opacity:1}.nav.soon{opacity:.55;cursor:default}.nav.soon:hover{background:transparent;color:var(--side-ink)}.side .signout{margin-top:8px}.side .signout button{width:100%;text-align:left;background:transparent;border:0;color:var(--side-ink);font:inherit;font-size:14px;padding:11px 14px;border-radius:8px;cursor:pointer}.side .signout button:hover{background:var(--side-hover);color:#fff}.stamp{margin-top:16px;padding:4px 14px;font-size:12px;color:var(--side-ink);opacity:.8}.themes{padding:10px 14px 4px}.themes p{margin:0 0 8px;font-size:12px;opacity:.8}.themes form{display:flex;flex-wrap:wrap;gap:8px}.sw{width:28px;height:28px;border-radius:50%;border:2px solid rgba(255,255,255,.35);padding:0;cursor:pointer}.sw.on{border-color:#fff;box-shadow:0 0 0 2px var(--side),0 0 0 4px #fff}.main{flex:999 1 560px;min-width:0;padding:28px;flex-direction:column;gap:20px}.main,.top{display:flex}.top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px}.seg{display:flex;gap:2px;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:3px}.seg a{padding:7px 12px;border-radius:6px;text-decoration:none;font-weight:600;font-size:13px;color:var(--mut)}.seg a.on{background:var(--acc);color:var(--acc-ink)}.actions{display:flex;flex-wrap:wrap;gap:10px;align-items:center}.card{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:20px;min-width:0}.card.flush{padding:0}.card.good{border-color:var(--pos)}.card-head{padding:18px 20px 8px;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:12px}.lbl{font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--mut);margin:0}.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));grid-gap:16px;gap:16px}.kpi .v{font-size:28px;font-weight:600;margin:8px 0 4px}.kpi .s{font-size:13px;font-weight:500}.row{display:flex;flex-wrap:wrap;gap:16px}.chart-wrap{overflow-x:auto}.chart{align-items:flex-end;gap:6px;height:240px;min-width:560px;border-bottom:1px solid var(--line)}.bar,.chart{display:flex}.bar{flex:1 1;flex-direction:column;justify-content:flex-end;height:100%}.bar .a{background:var(--c1);border-radius:3px 3px 0 0}.bar .b{background:var(--c2)}.xlabels{display:flex;gap:6px;min-width:560px;padding-top:6px}.xlabels div{flex:1 1;font-size:10px;text-align:center;color:var(--mut)}.legend{display:flex;flex-wrap:wrap;gap:14px;font-size:13px;color:var(--ink2)}.legend span{display:inline-flex;align-items:center;gap:6px}.sq{width:10px;height:10px;border-radius:2px;display:inline-block;flex:none}.alloc-bar{display:flex;height:14px;border-radius:7px;overflow:hidden;gap:2px;margin:14px 0}.list-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:7px 0;border-bottom:1px solid var(--line);font-size:14px}.list-row:last-child{border-bottom:0}.table-wrap{overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:14px}th{text-align:left;font-size:12px;font-weight:600;color:var(--mut);letter-spacing:.04em;text-transform:uppercase;padding:10px 12px}td,th{border-bottom:1px solid var(--line);white-space:nowrap}td{padding:11px 12px}td.r,th.r{text-align:right}tr.total td{background:var(--soft);font-weight:600}.chip{display:inline-block;font-size:12px;font-weight:600;padding:3px 8px;border-radius:999px;background:var(--line);color:var(--ink2)}.chip.warn{background:color-mix(in srgb,var(--warn) 18%,var(--card));color:var(--warn)}.chip.ok{background:color-mix(in srgb,var(--pos) 18%,var(--card));color:var(--pos)}.chip.bad{background:color-mix(in srgb,var(--neg) 18%,var(--card));color:var(--neg)}.note{font-size:13px;color:var(--mut);margin:0}.btn{display:inline-block;background:var(--acc);color:var(--acc-ink);border:0;border-radius:8px;font:inherit;font-weight:600;padding:11px 16px;min-height:44px;cursor:pointer;text-decoration:none}.btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--field)}.btn.danger{background:var(--neg);color:var(--card)}.form{gap:14px}.form,.form label{display:flex;flex-direction:column}.form label{font-size:13px;font-weight:600;gap:6px}.form input:not([type=checkbox]),.form select,.form textarea{border:1px solid var(--field);border-radius:8px;padding:10px 12px;font:inherit;font-weight:400;min-height:44px;background:var(--card);color:var(--ink);width:100%}.form textarea{min-height:84px;resize:vertical}.form input:disabled{background:var(--soft);color:var(--mut)}.form .btn{align-self:flex-start}.form .check{flex-direction:row;align-items:center;gap:10px;font-weight:500}.form .check input{width:20px;height:20px}.grid2{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));grid-gap:14px;gap:14px;align-items:end}.hint{font-weight:400;color:var(--mut);font-size:12px}.login{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px;background:var(--side)}.login form{width:100%;max-width:400px;background:var(--card);border-radius:16px;padding:36px;gap:16px}.login form,.login label{display:flex;flex-direction:column}.login label{font-size:13px;font-weight:600;gap:6px}.login input{border:1px solid var(--field);border-radius:8px;padding:11px 12px;background:var(--card);color:var(--ink)}.login button,.login input{font:inherit;min-height:44px}.login button{background:var(--acc);color:var(--acc-ink);border:0;border-radius:8px;font-weight:600;padding:12px 18px;cursor:pointer}.error{background:color-mix(in srgb,var(--neg) 14%,var(--card));color:var(--neg)}.error,.saved{border-radius:8px;padding:10px 12px;font-size:14px;margin:0}.saved{background:color-mix(in srgb,var(--pos) 14%,var(--card));color:var(--pos)}.tabs{display:flex;flex-wrap:wrap;gap:6px;border-bottom:1px solid var(--line)}.tabs a{display:flex;flex-direction:column;gap:2px;padding:10px 14px;min-height:44px;text-decoration:none;font-weight:600;font-size:14px;color:var(--mut);border-bottom:3px solid transparent;margin-bottom:-1px}.tabs a .num{font-size:12px;font-weight:500}.tabs a.on,.tabs a:hover{color:var(--ink)}.tabs a.on{border-bottom-color:var(--acc)}.tabs a.todo{color:var(--warn)}.tabs a.edit{margin-left:auto;justify-content:center;font-weight:500;font-size:13px;color:var(--acc)}[data-theme=mono] .tabs a.edit{text-decoration:underline}.filters{display:flex;flex-wrap:wrap;gap:12px;align-items:flex-end;padding:14px 16px}.filters label{font-size:12px;font-weight:600;color:var(--mut);display:flex;flex-direction:column;gap:4px;flex:1 1 130px}.filters label.grow{flex:3 1 220px}.filters input,.filters select{border:1px solid var(--field);border-radius:8px;padding:8px 10px;font:inherit;font-weight:400;min-height:40px;background:var(--card);color:var(--ink);width:100%}.filters .btn{min-height:40px;padding:8px 16px}.seg button{padding:7px 12px;border-radius:6px;border:0;background:transparent;font:inherit;font-weight:600;font-size:13px;color:var(--mut);cursor:pointer;min-height:32px}.seg button.on{background:var(--acc);color:var(--acc-ink)}.tabs button{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:10px 14px;min-height:44px;background:transparent;border:0;border-bottom:3px solid transparent;margin-bottom:-1px;font:inherit;font-weight:600;font-size:14px;color:var(--mut);cursor:pointer}.tabs button .num{font-size:12px;font-weight:500}.tabs button.on,.tabs button:hover{color:var(--ink)}.tabs button.on{border-bottom-color:var(--acc)}.tabs button.todo{color:var(--warn)}.th-sort{background:transparent;border:0;padding:0;font:inherit;color:inherit;letter-spacing:inherit;text-transform:inherit;cursor:pointer}.th-sort:hover{color:var(--ink)}.hero{display:flex;flex-wrap:wrap;gap:28px;padding:24px}.hero-side{flex:1 1 280px;display:flex;flex-direction:column;gap:8px;min-width:0}.hero-main{flex:3 1 520px;min-width:0}.big{font-size:clamp(28px,4vw,40px);font-weight:700;line-height:1.1;letter-spacing:-.01em}.pill{align-self:flex-start;font-size:13px;font-weight:600;padding:5px 10px;border-radius:999px;background:var(--soft);border:1px solid var(--line)}.facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-gap:14px 18px;gap:14px 18px;margin:14px 0 0;padding-top:16px;border-top:1px solid var(--line)}.facts dt{font-size:12px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--mut)}.facts dd{margin:4px 0 0;font-size:18px;font-weight:600}small{font-size:12px;font-weight:500;color:var(--mut)}.facts small{display:block;margin-top:2px}.chartbox svg{width:100%;height:auto;display:block;outline-offset:4px}.readout{gap:6px 16px;align-items:baseline;min-height:24px;font-size:13px;padding-top:8px}.readout,.ring{display:flex;flex-wrap:wrap}.ring{gap:20px;align-items:center}.ring svg{flex:0 0 170px;width:170px;height:170px}.ring-legend{flex:1 1 180px;min-width:0}.ring-row{display:flex;align-items:center;gap:8px;padding:6px 4px;border-radius:6px;text-decoration:none;font-size:14px}.ring-row:hover{background:var(--soft)}.ring-row .name{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ring-row b{width:52px;text-align:right}.dot{flex:none;width:10px;height:10px;border-radius:50%;margin-top:6px;background:var(--mut)}.dot.warn{background:var(--warn)}.dot.bad{background:var(--neg)}.dot.ok{background:var(--pos)}.bar-row{position:relative;display:flex;justify-content:space-between;gap:12px;padding:9px 0 13px;text-decoration:none;font-size:14px;border-bottom:1px solid var(--line)}.bar-row:last-child{border-bottom:0}.bar-row .name{font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bar-row small{margin-left:8px;font-weight:400}.bar-row i{position:absolute;left:0;bottom:5px;height:3px;border-radius:2px;background:var(--acc)}.bar-row:hover .name{text-decoration:underline}.loading{padding:80px 0;max-width:520px;margin:0 auto;text-align:center}.loading .note{margin-top:14px}.progress{height:6px;border-radius:999px;background:color-mix(in srgb,currentColor 12%,transparent);overflow:hidden;position:relative}.progress span{position:absolute;inset:0 auto 0 0;width:35%;border-radius:999px;background:var(--acc);animation:progress-slide 1.2s ease-in-out infinite}@keyframes progress-slide{0%{left:-35%}to{left:100%}}@media (prefers-reduced-motion:reduce){.progress span{animation-duration:3s}}button[aria-busy=true]{opacity:.7;cursor:progress}table.matrix td,table.matrix th{white-space:nowrap}table.matrix .stick{position:-webkit-sticky;position:sticky;left:0;background:var(--card);z-index:1;min-width:220px;text-align:left}table.matrix tr.group td,table.matrix tr.group td.stick,table.matrix tr.total td.stick{background:var(--soft)}table.matrix .th-sort.on{color:var(--acc);text-decoration:underline;text-underline-offset:4px}tr.group td{background:var(--soft)}table.schedule{font-size:12.5px;table-layout:fixed;width:100%;min-width:1180px}table.schedule th{white-space:normal;padding:6px 5px;line-height:1.2;font-size:10.5px;overflow-wrap:anywhere}table.schedule td{white-space:nowrap;padding:3px 5px;overflow:hidden;text-overflow:ellipsis}table.schedule td:first-child{white-space:normal;padding-left:14px;line-height:1.15}table.schedule th:first-child{padding-left:14px}table.schedule input.cell{width:100%;min-width:0;height:27px;padding:2px 6px;border:1px solid var(--field);border-radius:5px;font:inherit;background:var(--card);color:var(--ink);text-align:right;font-feature-settings:"tnum";font-variant-numeric:tabular-nums}table.schedule input.cell.wide{text-align:left}table.schedule input.cell.pos{color:var(--pos)}table.schedule input.cell.neg{color:var(--neg)}table.schedule input.cell.driver{border-left:3px solid var(--acc);background:var(--soft)}table.schedule input.cell:disabled{background:var(--soft);border-color:var(--line)}table.schedule .chip{font-size:10.5px;padding:2px 6px}table.schedule tr.total td{white-space:normal}label.tick{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:600;min-height:44px;padding:0 6px;cursor:pointer}label.tick input{width:18px;height:18px}table.matrix td.memo{font-style:italic;opacity:.75}table.schedule .pair{display:flex;align-items:center;gap:4px}table.schedule .pair input[type=checkbox]{width:15px;height:15px;flex:none;margin:0}.quiet-link{color:inherit;text-decoration:none}.quiet-link:hover{text-decoration:underline}table.schedule input.cell.bad{border:2px solid var(--neg);background:color-mix(in srgb,var(--neg) 8%,var(--card))}table.schedule label.accrued{display:inline-flex;align-items:center;gap:8px;margin-left:18px;font-weight:500;font-size:12px}table.schedule label.accrued input.cell{width:96px}table.matrix tr.sold .mut,table.matrix tr.sold a.link,table.matrix tr.sold td,table.matrix tr.sold td.neg,table.matrix tr.sold td.pos{color:var(--mut)}table.matrix tr.sold td.stick{background:var(--soft)}details.fold>summary{cursor:pointer;padding:10px 20px 14px;color:var(--acc);font-weight:600;font-size:14px;min-height:44px}details.fold[open]>summary{padding-bottom:6px}.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));grid-gap:22px;gap:22px}.grid3 .form{gap:10px}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}table.tight td,table.tight th{padding-left:9px;padding-right:9px}table.tight td:first-child,table.tight th:first-child{padding-left:20px}.dash{display:flex;flex-direction:column;gap:14px}.dash-row{display:grid;grid-template-columns:minmax(250px,1fr) minmax(320px,1.35fr) minmax(260px,1.1fr);grid-gap:14px;gap:14px}.dash-row2{grid-template-columns:minmax(0,2.1fr) minmax(300px,1fr)}.dash .card{padding:16px 18px}.dash-net{display:flex;flex-direction:column;gap:5px}.dash-net .big{font-size:clamp(24px,2.2vw,32px)}.dash-net .facts{gap:10px 14px;margin-top:8px;padding-top:10px}.dash-net .facts dd{font-size:15px;margin-top:2px}.dash-day{display:flex;flex-direction:column;gap:8px;color:inherit;text-decoration:none;transition:border-color .15s,box-shadow .15s}.dash-day:focus-visible,.dash-day:hover{border-color:var(--acc);box-shadow:0 0 0 1px var(--acc)}.daybars{display:flex;flex-direction:column;gap:5px;flex:1 1;justify-content:center}.daybar{display:grid;grid-template-columns:96px 1fr 84px;grid-gap:8px;gap:8px;align-items:center;font-size:13px}.daybar .name{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.daybar .num{text-align:right;font-size:12.5px}.daybar .track{position:relative;height:12px;background:linear-gradient(to right,transparent calc(50% - .5px),var(--line) calc(50% - .5px),var(--line) calc(50% + .5px),transparent calc(50% + .5px))}.daybar .track i{position:absolute;top:0;bottom:0;border-radius:3px;min-width:2px}.daybar .track i.up{left:50%;background:var(--pos)}.daybar .track i.down{right:50%;background:var(--neg)}.dash-att .list-row{padding:5px 0;font-size:13px}.dash-att .dot{margin-top:5px;width:8px;height:8px}.dash-chart .chartbox svg{max-height:clamp(120px,calc(100vh - 640px),250px)}@media (max-height:800px){.dash-alloc .ring svg{width:104px;height:104px}.dash-alloc .ring-row{padding-top:0;padding-bottom:0;font-size:12.5px}.dash{gap:10px}.dash .card{padding:12px 16px}}.dash-alloc .ring svg{width:132px;height:132px;flex:none}.dash-alloc .ring{gap:14px;flex-wrap:nowrap}.dash-alloc .ring-row{padding-top:2px;padding-bottom:2px;font-size:13px}@media (max-width:1100px){.dash-row,.dash-row2{grid-template-columns:1fr}}.dayhist{display:flex;gap:4px;align-items:stretch;height:150px}.dayhist .col{flex:1 1;max-width:34px;display:flex;flex-direction:column;text-decoration:none;color:var(--mut);border-radius:4px}.dayhist .col.on{background:var(--soft);color:var(--ink)}.dayhist .half{flex:1 1;display:flex;align-items:flex-start;justify-content:center}.dayhist .half.top{align-items:flex-end;border-bottom:1px solid var(--line)}.dayhist i{width:62%;border-radius:2px;min-height:2px}.dayhist i.up{background:var(--pos)}.dayhist i.down{background:var(--neg)}.dayhist small{text-align:center;font-size:10px}.side{position:-webkit-sticky;position:sticky;top:0;height:100vh;overflow-y:auto}@media (max-width:820px){.side{position:static;height:auto}}.insight{display:grid;grid-template-columns:14px 1fr auto;grid-gap:12px;gap:12px;align-items:start;padding:12px 0;border-top:1px solid var(--line)}.insight:first-child{border-top:0}.insight .dot{margin-top:6px}.nav.on{background:var(--side-hover);color:#fff}.coin-dust{padding:10px 20px 14px}