@font-face{font-family:Readex Pro;font-style:normal;font-weight:160 700;font-display:swap;src:url(/fonts/readex-arabic.woff2) format("woff2");unicode-range:U+0600-06FF,U+0750-077F,U+0870-088E,U+0890-0891,U+0897-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC,U+102E0-102FB,U+10E60-10E7E,U+10EC2-10EC4,U+10EFC-10EFF,U+1EE00-1EE03,U+1EE05-1EE1F,U+1EE21-1EE22,U+1EE24,U+1EE27,U+1EE29-1EE32,U+1EE34-1EE37,U+1EE39,U+1EE3B,U+1EE42,U+1EE47,U+1EE49,U+1EE4B,U+1EE4D-1EE4F,U+1EE51-1EE52,U+1EE54,U+1EE57,U+1EE59,U+1EE5B,U+1EE5D,U+1EE5F,U+1EE61-1EE62,U+1EE64,U+1EE67-1EE6A,U+1EE6C-1EE72,U+1EE74-1EE77,U+1EE79-1EE7C,U+1EE7E,U+1EE80-1EE89,U+1EE8B-1EE9B,U+1EEA1-1EEA3,U+1EEA5-1EEA9,U+1EEAB-1EEBB,U+1EEF0-1EEF1}@font-face{font-family:Readex Pro;font-style:normal;font-weight:160 700;font-display:swap;src:url(/fonts/readex-latin.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plex Num;font-style:normal;font-weight:400;font-display:swap;src:url(/fonts/plexnum-400.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Plex Num;font-style:normal;font-weight:600;font-display:swap;src:url(/fonts/plexnum-600.woff2) format("woff2");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--ink-950: #0b0d11;--ink-900: #12141a;--ink-850: #171a21;--ink-800: #1d2028;--ink-700: #272b35;--ink-600: #343947;--ink-500: #4a5063;--ink-400: #6b7288;--ink-300: #9aa0b3;--ink-200: #c6cad5;--ink-100: #e4e6ec;--paper: #faf9f7;--surface: #ffffff;--surface-raised: #ffffff;--surface-sunken: #f3f1ed;--line: #e7e4de;--line-strong: #d6d2ca;--gold-700: #8a5d06;--gold-600: #a97208;--gold-500: #c68a0e;--gold-400: #e0a52a;--gold-200: #f2dcab;--gold-100: #fdf4e2;--good-600: #11684a;--good-500: #157a52;--good-100: #e6f4ee;--warn-600: #9a4a06;--warn-500: #b45c09;--warn-100: #fdf1e3;--bad-600: #99201f;--bad-500: #b82a28;--bad-100: #fdebea;--info-600: #1a4f8c;--info-500: #2265ad;--info-100: #eaf2fb;--bg: var(--paper);--fg: var(--ink-900);--fg-soft: #5a6173;--fg-faint: #878da0;--fg-on-accent: #ffffff;--rail-bg: var(--ink-900);--rail-fg: var(--ink-200);--rail-fg-soft: var(--ink-400);--rail-active-bg: var(--ink-750, #1a1d25);--rail-hover-bg: var(--ink-800);--accent: var(--gold-600);--accent-hover: var(--gold-700);--accent-soft: var(--gold-100);--accent-line: var(--gold-200);--focus-ring: 0 0 0 3px color-mix(in srgb, var(--accent) 32%, transparent);--font-sans: "Readex Pro", "SF Arabic", "Segoe UI", "Noto Sans Arabic", "Helvetica Neue", system-ui, -apple-system, sans-serif;--font-num: "Plex Num", "Readex Pro", "SF Arabic", "Segoe UI", system-ui, sans-serif;--font-mono: "SF Mono", "JetBrains Mono", ui-monospace, "Cascadia Mono", Menlo, monospace;--text-2xs: .6875rem;--text-xs: .75rem;--text-sm: .8125rem;--text-base: .9063rem;--text-md: 1rem;--text-lg: 1.1875rem;--text-xl: 1.5rem;--text-2xl: 1.9375rem;--text-3xl: 2.5rem;--leading-tight: 1.25;--leading-normal: 1.65;--s1: .25rem;--s2: .5rem;--s3: .75rem;--s4: 1rem;--s5: 1.25rem;--s6: 1.5rem;--s8: 2rem;--s10: 2.5rem;--s12: 3rem;--s16: 4rem;--r-sm: 6px;--r-md: 10px;--r-lg: 14px;--r-xl: 20px;--r-pill: 999px;--shadow-sm: 0 1px 2px rgb(16 18 24 / .05);--shadow-md: 0 2px 4px rgb(16 18 24 / .05), 0 6px 16px -6px rgb(16 18 24 / .1);--shadow-lg: 0 4px 8px rgb(16 18 24 / .06), 0 18px 40px -12px rgb(16 18 24 / .18);--shadow-rail: 1px 0 0 rgb(255 255 255 / .04);--ease: cubic-bezier(.32, .72, .28, 1);--fast: .12s;--normal: .2s;--rail-w: 15.5rem;--topbar-h: 3.75rem;--content-max: 82rem;--ink-750: #1a1d25}:root[data-theme=dark]{--bg: var(--ink-950);--fg: #eceef3;--fg-soft: #a2a8bb;--fg-faint: #757c91;--surface: var(--ink-900);--surface-raised: var(--ink-850);--surface-sunken: var(--ink-950);--line: #242832;--line-strong: #323847;--rail-bg: #08090d;--rail-fg: var(--ink-200);--rail-fg-soft: var(--ink-400);--rail-active-bg: var(--ink-800);--rail-hover-bg: var(--ink-850);--accent: var(--gold-400);--accent-hover: var(--gold-500);--accent-soft: #2a2114;--accent-line: #493a1d;--fg-on-accent: #1a1204;--good-500: #3fbb8b;--good-100: #10291f;--warn-500: #e0983c;--warn-100: #2c2011;--bad-500: #ef6b64;--bad-100: #2e1615;--info-500: #5c9ee0;--info-100: #12212f;--shadow-sm: 0 1px 2px rgb(0 0 0 / .4);--shadow-md: 0 2px 4px rgb(0 0 0 / .3), 0 6px 16px -6px rgb(0 0 0 / .5);--shadow-lg: 0 4px 8px rgb(0 0 0 / .35), 0 18px 40px -12px rgb(0 0 0 / .6);color-scheme:dark}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: var(--ink-950);--fg: #eceef3;--fg-soft: #a2a8bb;--fg-faint: #757c91;--surface: var(--ink-900);--surface-raised: var(--ink-850);--surface-sunken: var(--ink-950);--line: #242832;--line-strong: #323847;--rail-bg: #08090d;--rail-active-bg: var(--ink-800);--rail-hover-bg: var(--ink-850);--accent: var(--gold-400);--accent-hover: var(--gold-500);--accent-soft: #2a2114;--accent-line: #493a1d;--fg-on-accent: #1a1204;--good-500: #3fbb8b;--good-100: #10291f;--warn-500: #e0983c;--warn-100: #2c2011;--bad-500: #ef6b64;--bad-100: #2e1615;--info-500: #5c9ee0;--info-100: #12212f;--shadow-sm: 0 1px 2px rgb(0 0 0 / .4);--shadow-md: 0 2px 4px rgb(0 0 0 / .3), 0 6px 16px -6px rgb(0 0 0 / .5);--shadow-lg: 0 4px 8px rgb(0 0 0 / .35), 0 18px 40px -12px rgb(0 0 0 / .6);color-scheme:dark}}*,*:before,*:after{box-sizing:border-box}*{margin:0}html{-webkit-text-size-adjust:100%;text-size-adjust:100%}body{min-height:100dvh;background:var(--bg);color:var(--fg);font-family:var(--font-sans);font-size:var(--text-base);line-height:var(--leading-normal);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4{line-height:var(--leading-tight);font-weight:600;letter-spacing:normal;text-wrap:balance}h1{font-size:var(--text-xl)}h2{font-size:var(--text-lg)}h3{font-size:var(--text-md)}a{color:inherit;text-decoration:none}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer;background:none;border:none;padding:0}img,svg{display:block;max-width:100%}table{border-collapse:collapse;width:100%}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--r-sm)}.tnum,td.num,th.num{font-family:var(--font-num);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.ltr{direction:ltr;unicode-bidi:isolate;text-align:start}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap;border:0}::selection{background:color-mix(in srgb,var(--accent) 24%,transparent)}*{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media print{:root,:root[data-theme=dark],:root[data-theme=light],:root:not([data-theme=light]){--bg: #ffffff;--surface: #ffffff;--surface-raised: #ffffff;--surface-sunken: #f4f4f4;--fg: #000000;--fg-soft: #333333;--fg-faint: #666666;--line: #bbbbbb;--line-strong: #999999;--accent: #7a5200;--accent-soft: #f6efdd;--accent-line: #ddc98f;--good-500: #10613e;--good-100: #eef6f1;--warn-500: #8a4506;--warn-100: #faf1e6;--bad-500: #8f1f1d;--bad-100: #faeceb;--info-500: #17406f;--info-100: #eef3f9;color-scheme:light}.rail,.topbar,.no-print,button{display:none!important}body{background:#fff;color:#000;font-size:11pt}.badge,table.data th,table.data tfoot td{background:transparent!important;color:#000!important;border:1px solid #999}.workspace,.content{padding:0!important;margin:0!important;max-width:none!important}.card{border:1px solid #ccc!important;box-shadow:none!important;break-inside:avoid}table{break-inside:auto}tr{break-inside:avoid;break-after:auto}thead{display:table-header-group}@page{margin:14mm}}.app{display:grid;grid-template-columns:var(--rail-w) 1fr;min-height:100dvh}.workspace{display:flex;flex-direction:column;min-width:0}.content{flex:1;width:100%;max-width:var(--content-max);margin-inline:auto;padding:var(--s6) var(--s8) var(--s16)}.rail{display:flex;flex-direction:column;background:var(--rail-bg);color:var(--rail-fg);box-shadow:var(--shadow-rail);position:sticky;top:0;height:100dvh;overflow-y:auto;overscroll-behavior:contain}.brand{display:flex;align-items:center;gap:var(--s3);padding:var(--s6) var(--s5) var(--s5)}.brand-mark{width:2.25rem;height:2.25rem;border-radius:var(--r-md);background:var(--accent);color:var(--fg-on-accent);display:grid;place-items:center;flex-shrink:0}.brand-name{font-size:var(--text-lg);font-weight:600;letter-spacing:normal;line-height:1.15}.brand-name small{display:block;font-size:var(--text-2xs);font-weight:500;letter-spacing:.16em;color:var(--rail-fg-soft);direction:ltr;text-align:start}.nav{display:flex;flex-direction:column;gap:1px;padding:var(--s2) var(--s3);flex:1}.nav-label{padding:var(--s4) var(--s3) var(--s2);font-size:var(--text-2xs);font-weight:600;letter-spacing:.14em;color:var(--rail-fg-soft)}.nav-item{display:flex;align-items:center;gap:var(--s3);padding:var(--s2) var(--s3);border-radius:var(--r-md);color:var(--rail-fg);font-size:var(--text-base);font-weight:450;transition:background var(--fast) var(--ease),color var(--fast) var(--ease);position:relative}.nav-item svg{width:1.125rem;height:1.125rem;color:var(--rail-fg-soft);flex-shrink:0;transition:color var(--fast) var(--ease)}.nav-item:hover{background:var(--rail-hover-bg);color:#fff}.nav-item[aria-current=page]{background:var(--rail-active-bg);color:#fff;font-weight:550}.nav-item[aria-current=page] svg{color:var(--accent)}.nav-item[aria-current=page]:before{content:"";position:absolute;inset-inline-start:calc(var(--s3) * -1 - 1px);inset-block:25%;width:3px;border-radius:var(--r-pill);background:var(--accent)}.nav-count{margin-inline-start:auto;font-size:var(--text-2xs);font-weight:600;padding:1px var(--s2);border-radius:var(--r-pill);background:var(--accent);color:var(--fg-on-accent);font-variant-numeric:tabular-nums}.rail-foot{padding:var(--s4) var(--s5) var(--s6);border-top:1px solid rgb(255 255 255 / .06);font-size:var(--text-xs);color:var(--rail-fg-soft);line-height:1.6}.rail-foot .who{color:var(--rail-fg);font-weight:550;font-size:var(--text-sm)}.topbar{position:sticky;top:0;z-index:20;height:var(--topbar-h);display:flex;align-items:center;gap:var(--s3);padding:0 var(--s8);background:color-mix(in srgb,var(--bg) 84%,transparent);backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid var(--line)}.crumb{font-size:var(--text-sm);color:var(--fg-faint);display:flex;align-items:center;gap:var(--s2);min-width:0;overflow:hidden}.crumb>span{white-space:nowrap}.crumb b{color:var(--fg);font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:6.5rem}.topbar-actions{margin-inline-start:auto;display:flex;align-items:center;gap:var(--s2);min-width:0}.topbar-actions>.btn,.topbar-actions>.avatar{flex-shrink:0}.topbar-actions>*{flex-shrink:0}.month-picker{position:relative;display:flex;align-items:center;gap:var(--s2)}.month-chip{display:inline-flex;align-items:center;gap:var(--s2);height:2.25rem;padding:0 var(--s3);border:1px solid var(--line-strong);border-radius:var(--r-md);background:var(--surface);color:var(--fg);font-size:var(--text-sm);font-weight:550;white-space:nowrap;transition:border-color var(--fast) var(--ease),background var(--fast) var(--ease)}.month-chip:hover{border-color:var(--accent)}.month-chip[data-past]{border-color:var(--accent-line);background:var(--accent-soft);color:var(--accent)}.month-chip-lock{width:13px;height:13px;flex-shrink:0;opacity:.75}.month-chip-arrow{width:14px;height:14px;flex-shrink:0;opacity:.6}.month-chip-short{display:none}.month-back{font-size:var(--text-xs);color:var(--accent);font-weight:550;white-space:nowrap;text-decoration:underline;text-underline-offset:3px}.month-menu{position:absolute;top:calc(100% + var(--s2));inset-inline-start:0;z-index:40;min-width:18rem;max-height:60vh;overflow-y:auto;padding:var(--s1);background:var(--surface-raised);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-lg);animation:month-menu-in var(--fast) var(--ease)}@keyframes month-menu-in{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.month-option{display:flex;align-items:center;gap:var(--s2);width:100%;padding:var(--s2) var(--s2);border-radius:var(--r-sm);font-size:var(--text-sm);text-align:start;color:var(--fg)}.month-option:hover{background:var(--surface-sunken)}.month-option[data-selected]{background:var(--accent-soft);color:var(--accent)}.month-option-tick{width:14px;height:14px;flex-shrink:0;display:grid;place-items:center}.month-option-tick svg{width:14px;height:14px}.month-option-name{flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:max-content}.month-option-tag{flex-shrink:0;font-size:var(--text-2xs);padding:1px var(--s2);border-radius:var(--r-pill);background:var(--surface-sunken);color:var(--fg-faint);font-weight:500}.month-option-tag.live{background:var(--good-100);color:var(--good-500)}.rail-toggle{display:none;width:2.25rem;height:2.25rem;border-radius:var(--r-md);place-items:center;color:var(--fg-soft);flex-shrink:0}.rail-toggle:hover{background:var(--surface-sunken)}.page-head{display:flex;align-items:flex-end;gap:var(--s4);flex-wrap:wrap;margin-bottom:var(--s6)}.page-head h1{font-size:var(--text-2xl);letter-spacing:normal}.page-head p{color:var(--fg-soft);font-size:var(--text-sm);margin-top:var(--s1);max-width:62ch}.page-head .actions{margin-inline-start:auto;display:flex;gap:var(--s2);flex-wrap:wrap}.eyebrow{font-size:var(--text-2xs);font-weight:600;letter-spacing:.16em;color:var(--accent);margin-bottom:var(--s2);direction:ltr;text-align:start}.card{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);box-shadow:var(--shadow-sm)}.card-head{display:flex;align-items:center;gap:var(--s3);padding:var(--s4) var(--s5);border-bottom:1px solid var(--line)}.card-head h2{font-size:var(--text-md);font-weight:600}.card-head p{font-size:var(--text-xs);color:var(--fg-soft);margin-top:2px}.card-head .actions{margin-inline-start:auto;display:flex;gap:var(--s2)}.card-body{padding:var(--s5)}.card-body.tight{padding:var(--s3)}.card-body.flush{padding:0}.grid{display:grid;gap:var(--s4)}.grid.cols-2{grid-template-columns:repeat(auto-fit,minmax(20rem,1fr))}.grid.cols-3{grid-template-columns:repeat(auto-fit,minmax(15rem,1fr))}.grid.cols-4{grid-template-columns:repeat(auto-fit,minmax(12rem,1fr))}.stack{display:flex;flex-direction:column;gap:var(--s4)}.row{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap}.row.end{justify-content:flex-end}.row.between{justify-content:space-between}.stat{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s4) var(--s5);display:flex;flex-direction:column;gap:var(--s1);position:relative;overflow:hidden}.stat-label{font-size:var(--text-xs);color:var(--fg-soft);font-weight:500}.stat-value{font-size:var(--text-xl);font-weight:600;letter-spacing:normal;font-family:var(--font-num);font-variant-numeric:tabular-nums;line-height:1.45;display:flex;align-items:baseline;gap:3px;flex-wrap:wrap}.stat-value .unit{font-size:var(--text-sm);font-weight:500;color:var(--fg-faint);letter-spacing:0;direction:rtl;unicode-bidi:isolate;white-space:nowrap}.stat-note{font-size:var(--text-xs);color:var(--fg-faint)}.stat.accent{border-color:var(--accent-line);background:var(--accent-soft)}.stat.accent .stat-value{color:var(--accent)}.stat.good .stat-value{color:var(--good-500)}.stat.bad .stat-value{color:var(--bad-500)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--s2);height:2.25rem;padding:0 var(--s4);border-radius:var(--r-md);border:1px solid var(--line-strong);background:var(--surface);color:var(--fg);font-size:var(--text-sm);font-weight:550;white-space:nowrap;transition:background var(--fast) var(--ease),border-color var(--fast) var(--ease),transform var(--fast) var(--ease),opacity var(--fast) var(--ease)}.btn svg{width:1rem;height:1rem;flex-shrink:0}.btn:hover:not(:disabled){background:var(--surface-sunken)}.btn:active:not(:disabled){transform:translateY(1px)}.btn:disabled,.btn[aria-busy=true]{opacity:.55;cursor:not-allowed}.btn.primary{background:var(--accent);border-color:var(--accent);color:var(--fg-on-accent)}.btn.primary:hover:not(:disabled){background:var(--accent-hover);border-color:var(--accent-hover)}.btn.ghost{border-color:transparent;background:transparent;color:var(--fg-soft)}.btn.ghost:hover:not(:disabled){background:var(--surface-sunken);color:var(--fg)}.btn.danger{border-color:var(--bad-500);color:var(--bad-500);background:transparent}.btn.danger:hover:not(:disabled){background:var(--bad-100)}.btn.sm{height:1.875rem;padding:0 var(--s3);font-size:var(--text-xs)}.btn.lg{height:2.625rem;padding:0 var(--s6);font-size:var(--text-base)}.btn.icon{width:2.25rem;padding:0}.btn.icon.sm{width:1.875rem}.btn.block{width:100%}.btn-group{display:inline-flex;border:1px solid var(--line-strong);border-radius:var(--r-md);overflow:hidden}.btn-group .btn{border:none;border-radius:0;border-inline-end:1px solid var(--line)}.btn-group .btn:last-child{border-inline-end:none}.btn-group .btn[aria-pressed=true]{background:var(--accent-soft);color:var(--accent)}.field{display:flex;flex-direction:column;gap:var(--s2)}.field>label,.label{font-size:var(--text-sm);font-weight:550;color:var(--fg)}.field .hint{font-size:var(--text-xs);color:var(--fg-soft);line-height:1.5}.field .error{font-size:var(--text-xs);color:var(--bad-500);font-weight:500}.input,.select,.textarea{width:100%;min-height:2.375rem;padding:var(--s2) var(--s3);background:var(--surface);border:1px solid var(--line-strong);border-radius:var(--r-md);font-size:var(--text-base);transition:border-color var(--fast) var(--ease),box-shadow var(--fast) var(--ease)}.textarea{min-height:7rem;resize:vertical;line-height:var(--leading-normal)}.input:focus,.select:focus,.textarea:focus{outline:none;border-color:var(--accent);box-shadow:var(--focus-ring)}.input[aria-invalid=true]{border-color:var(--bad-500)}.input::placeholder,.textarea::placeholder{color:var(--fg-faint)}.select{--select-arrow: var(--s3);appearance:none;padding-inline-end:calc(var(--select-arrow) + var(--s5));background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(var(--select-arrow) + 4px) 50%,var(--select-arrow) 50%;background-size:5px 5px;background-repeat:no-repeat}.select.compact{width:auto;min-height:1.875rem;height:1.875rem;padding-block:0;font-size:var(--text-sm)}.money-input{position:relative;display:flex;align-items:center}.money-input{direction:ltr}.money-input .input{padding-inline-end:var(--s10);font-family:var(--font-num);font-variant-numeric:tabular-nums;direction:ltr;text-align:start}.money-input .suffix{position:absolute;right:var(--s3);font-size:var(--text-xs);color:var(--fg-faint);pointer-events:none;direction:rtl;unicode-bidi:isolate}.checkbox{display:inline-flex;align-items:center;gap:var(--s2);font-size:var(--text-sm);cursor:pointer;user-select:none}.checkbox input{width:1rem;height:1rem;accent-color:var(--accent);cursor:pointer}.search{position:relative;display:flex;align-items:center;flex:1;min-width:12rem;max-width:24rem}.search svg{position:absolute;inset-inline-start:var(--s3);width:1rem;height:1rem;color:var(--fg-faint);pointer-events:none}.search .input{padding-inline-start:var(--s8)}.search .clear{position:absolute;inset-inline-end:var(--s2);width:1.5rem;height:1.5rem;border-radius:var(--r-sm);display:grid;place-items:center;color:var(--fg-faint)}.search .clear:hover{background:var(--surface-sunken);color:var(--fg)}.table-wrap{overflow-x:auto;border-radius:var(--r-lg)}table.data{font-size:var(--text-sm)}table.data th{text-align:start;font-size:var(--text-xs);font-weight:600;color:var(--fg-soft);padding:var(--s3) var(--s4);border-bottom:1px solid var(--line);background:var(--surface-sunken);white-space:nowrap;position:sticky;top:0;z-index:1}table.data td{padding:var(--s3) var(--s4);border-bottom:1px solid var(--line);vertical-align:middle}table.data tbody tr:last-child td{border-bottom:none}table.data tbody tr:hover td{background:var(--surface-sunken)}table.data th.num,table.data td.num{text-align:end;font-variant-numeric:tabular-nums;white-space:nowrap}table.data td.shrink{width:1%;white-space:nowrap}table.data tfoot td{padding:var(--s3) var(--s4);font-weight:600;border-top:2px solid var(--line-strong);background:var(--surface-sunken)}.cell-main{font-weight:500;color:var(--fg);display:block;max-width:34ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cell-sub{font-size:var(--text-xs);color:var(--fg-faint);display:block}.badge{display:inline-flex;align-items:center;gap:var(--s1);padding:2px var(--s2);border-radius:var(--r-pill);font-size:var(--text-2xs);font-weight:600;background:var(--surface-sunken);color:var(--fg-soft);white-space:nowrap;border:1px solid transparent}.badge.good{background:var(--good-100);color:var(--good-500)}.badge.warn{background:var(--warn-100);color:var(--warn-500)}.badge.bad{background:var(--bad-100);color:var(--bad-500)}.badge.info{background:var(--info-100);color:var(--info-500)}.badge.accent{background:var(--accent-soft);color:var(--accent)}.badge.outline{background:transparent;border-color:var(--line-strong)}.badge .dot{width:5px;height:5px;border-radius:50%;background:currentColor}.avatar{width:2rem;height:2rem;border-radius:50%;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent);font-size:var(--text-xs);font-weight:600;flex-shrink:0;user-select:none}.avatar.sm{width:1.5rem;height:1.5rem;font-size:var(--text-2xs)}.avatar.lg{width:2.5rem;height:2.5rem;font-size:var(--text-sm)}.who-cell{display:inline-flex;align-items:center;gap:var(--s2);min-width:0}.tabs{display:flex;gap:var(--s1);border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}.tabs::-webkit-scrollbar{display:none}.tab{padding:var(--s3) var(--s4);font-size:var(--text-sm);font-weight:550;color:var(--fg-soft);border-bottom:2px solid transparent;margin-bottom:-1px;white-space:nowrap;transition:color var(--fast) var(--ease),border-color var(--fast) var(--ease)}.tab:hover{color:var(--fg)}.tab[aria-selected=true]{color:var(--accent);border-bottom-color:var(--accent)}.toolbar{display:flex;align-items:center;gap:var(--s2);flex-wrap:wrap;padding:var(--s3) var(--s4);border-bottom:1px solid var(--line);background:var(--surface)}.toolbar .spacer{margin-inline-start:auto}.bulkbar{display:flex;align-items:center;gap:var(--s3);padding:var(--s3) var(--s4);background:var(--accent-soft);border-bottom:1px solid var(--accent-line);font-size:var(--text-sm);font-weight:550;color:var(--accent)}.banner{display:flex;align-items:flex-start;gap:var(--s3);padding:var(--s3) var(--s4);border-radius:var(--r-md);border:1px solid var(--line);background:var(--surface-sunken);font-size:var(--text-sm);line-height:1.55}.banner svg{width:1.125rem;height:1.125rem;flex-shrink:0;margin-top:2px}.banner .actions{margin-inline-start:auto;display:flex;gap:var(--s2)}.banner strong{display:block;font-weight:600}.banner.warn{background:var(--warn-100);border-color:transparent;color:var(--warn-500)}.banner.bad{background:var(--bad-100);border-color:transparent;color:var(--bad-500)}.banner.good{background:var(--good-100);border-color:transparent;color:var(--good-500)}.banner.info{background:var(--info-100);border-color:transparent;color:var(--info-500)}.empty{display:flex;flex-direction:column;align-items:center;gap:var(--s2);padding:var(--s16) var(--s6);text-align:center;color:var(--fg-soft)}.empty svg{width:2.5rem;height:2.5rem;color:var(--fg-faint);opacity:.6;margin-bottom:var(--s2)}.empty strong{font-size:var(--text-md);color:var(--fg);font-weight:600}.empty p{font-size:var(--text-sm);max-width:44ch}.skeleton{background:linear-gradient(90deg,var(--surface-sunken) 25%,color-mix(in srgb,var(--surface-sunken) 55%,var(--line)) 37%,var(--surface-sunken) 63%);background-size:400% 100%;animation:shimmer 1.4s ease infinite;border-radius:var(--r-sm);height:1rem}@keyframes shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}.spinner{width:1rem;height:1rem;border:2px solid currentColor;border-top-color:transparent;border-radius:50%;animation:spin .7s linear infinite;flex-shrink:0}@keyframes spin{to{transform:rotate(360deg)}}.toast-host{position:fixed;inset-block-start:var(--s4);inset-inline:0;z-index:100;display:flex;flex-direction:column;align-items:center;gap:var(--s2);pointer-events:none;padding:0 var(--s4)}.toast{pointer-events:auto;display:flex;align-items:center;gap:var(--s3);padding:var(--s3) var(--s4);border-radius:var(--r-md);background:var(--ink-900);color:#fff;font-size:var(--text-sm);font-weight:500;box-shadow:var(--shadow-lg);max-width:32rem;animation:toast-in var(--normal) var(--ease)}.toast.bad{background:var(--bad-600)}.toast.good{background:var(--good-600)}.toast button{color:inherit;opacity:.7}.toast button:hover{opacity:1}@keyframes toast-in{0%{opacity:0;transform:translateY(-8px) scale(.98)}to{opacity:1;transform:none}}dialog.modal{padding:0;border:none;border-radius:var(--r-xl);background:var(--surface);color:var(--fg);box-shadow:var(--shadow-lg);width:min(34rem,calc(100vw - 2rem));max-height:min(85dvh,50rem);overflow:hidden}dialog.modal.wide{width:min(56rem,calc(100vw - 2rem))}dialog.modal::backdrop{background:#08090d8c;backdrop-filter:blur(3px)}.modal-head{display:flex;align-items:flex-start;gap:var(--s3);padding:var(--s5) var(--s5) var(--s3)}.modal-head h2{font-size:var(--text-md)}.modal-head p{font-size:var(--text-sm);color:var(--fg-soft);margin-top:var(--s1)}.modal-head .close{margin-inline-start:auto;color:var(--fg-faint)}.modal-body{padding:var(--s2) var(--s5) var(--s5);overflow-y:auto;display:flex;flex-direction:column;gap:var(--s4)}.modal-foot{display:flex;gap:var(--s2);justify-content:flex-end;padding:var(--s4) var(--s5);border-top:1px solid var(--line);background:var(--surface-sunken)}.auth{min-height:100dvh;display:grid;place-items:center;padding:var(--s6);background:radial-gradient(60rem 40rem at 80% -10%,color-mix(in srgb,var(--accent) 9%,transparent),transparent),var(--bg)}.auth-card{width:min(24rem,100%);display:flex;flex-direction:column;gap:var(--s5)}.auth-card .brand{padding:0;justify-content:center}.auth-card form{display:flex;flex-direction:column;gap:var(--s4);background:var(--surface);border:1px solid var(--line);border-radius:var(--r-xl);padding:var(--s6);box-shadow:var(--shadow-md)}.auth-foot{text-align:center;font-size:var(--text-xs);color:var(--fg-faint);line-height:1.7}.doc{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s8)}.doc-head{display:flex;align-items:flex-start;gap:var(--s4);padding-bottom:var(--s5);border-bottom:2px solid var(--fg);margin-bottom:var(--s5)}.doc-head .meta{margin-inline-start:auto;text-align:end;font-size:var(--text-sm);color:var(--fg-soft)}.doc-total{display:flex;justify-content:space-between;align-items:baseline;margin-top:var(--s5);padding-top:var(--s4);border-top:2px solid var(--fg);font-size:var(--text-lg);font-weight:600}.doc-total .amount{font-size:var(--text-xl);font-family:var(--font-num);font-variant-numeric:tabular-nums}.invite-link{margin:0;padding:var(--s3);background:var(--surface-sunken);border:1px solid var(--line);border-radius:var(--r-sm);font-family:var(--font-mono);font-size:var(--text-xs);line-height:1.8;white-space:pre-wrap;overflow-wrap:anywhere}@media(max-width:62rem){.content{padding:var(--s5) var(--s4) var(--s12)}.topbar{padding:0 var(--s4)}}@media(max-width:52rem){.app{grid-template-columns:1fr;overflow-x:clip}.rail{position:fixed;inset-block:0;inset-inline-start:0;width:var(--rail-w);z-index:60;transform:translate(100%);visibility:hidden;transition:transform var(--normal) var(--ease),visibility 0s linear var(--normal)}[dir=ltr] .rail{transform:translate(-100%)}.rail[data-open=true]{transform:none;visibility:visible;transition:transform var(--normal) var(--ease)}.rail-scrim{position:fixed;inset:0;z-index:55;background:#08090d80;backdrop-filter:blur(2px)}.rail-toggle{display:grid}.crumb>span:not(:last-child),.crumb>[aria-hidden]{display:none}.page-head h1{font-size:var(--text-xl)}.topbar{gap:var(--s1);padding:0 var(--s3)}.topbar-actions{gap:var(--s1)}.month-chip-full{display:none}.month-chip-short{display:inline}.month-chip{padding:0 var(--s2)}.month-back{display:none}.month-menu{inset-inline-start:auto;inset-inline-end:0;min-width:12rem}.grid.cols-3,.grid.cols-4{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s3)}.grid.cols-3>.stat,.grid.cols-4>.stat{padding:var(--s3)}.grid.cols-3>.stat .stat-value,.grid.cols-4>.stat .stat-value{font-size:var(--text-lg)}.stat-label{line-height:1.35}table.data.stackable thead{display:none}table.data.stackable tbody tr{display:grid;grid-template-columns:auto 1fr;gap:var(--s1) var(--s3);padding:var(--s3) var(--s4);border-bottom:1px solid var(--line)}table.data.stackable tbody td{display:contents;padding:0;border:none}table.data.stackable tbody td:before{content:attr(data-label);font-size:var(--text-xs);color:var(--fg-faint);font-weight:500}table.data.stackable tbody td.full:before{content:none}table.data.stackable tbody td.full{grid-column:1 / -1}}@media(max-width:23rem){.crumb{display:none}}.note-parts{display:flex;flex-wrap:wrap;gap:0 var(--s2)}.note-part{white-space:nowrap}.note-part+.note-part:before{content:"·";margin-inline-end:var(--s2);color:var(--line-strong)}.drop{position:relative;display:flex;flex-direction:column;align-items:center;gap:var(--s3);padding:var(--s10) var(--s6);text-align:center;border:1.5px dashed var(--line-strong);border-radius:var(--r-xl);background:radial-gradient(120% 120% at 50% 0%,var(--surface-sunken) 0%,transparent 70%),var(--surface);overflow:hidden;transition:border-color var(--normal) var(--ease),background var(--normal) var(--ease),transform var(--fast) var(--ease)}.drop[data-dragging]{border-color:var(--accent);border-style:solid;background:radial-gradient(120% 120% at 50% 0%,var(--accent-soft) 0%,transparent 75%),var(--surface);transform:scale(1.005)}.drop[data-blocked]{border-style:solid;opacity:.75}.drop-mark{display:grid;place-items:center;width:3.5rem;height:3.5rem;border-radius:var(--r-lg);background:var(--accent-soft);color:var(--accent);transition:transform var(--normal) var(--ease)}.drop-mark svg{width:24px;height:24px}.drop[data-dragging] .drop-mark{transform:translateY(-4px);animation:drop-hover 1.1s var(--ease) infinite}@keyframes drop-hover{0%,to{transform:translateY(-2px)}50%{transform:translateY(-8px)}}.drop-title{font-size:var(--text-lg);font-weight:600}.drop-hint,.drop-note{max-width:34rem;font-size:var(--text-sm);color:var(--fg-soft);line-height:var(--leading-normal)}.drop-note{font-size:var(--text-xs);color:var(--fg-faint)}.drop-file{max-width:100%;font-size:var(--text-sm);color:var(--fg-soft);direction:ltr;unicode-bidi:isolate;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.drop-error{display:inline-flex;align-items:center;gap:var(--s2);padding:var(--s2) var(--s3);border-radius:var(--r-md);background:var(--bad-100);color:var(--bad-500);font-size:var(--text-sm)}.drop-error svg{width:15px;height:15px;flex-shrink:0}.drop-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--s2);margin-top:var(--s2)}.drop.working{border-style:solid;border-color:var(--accent-line)}.drop-reel{display:grid;place-items:center;width:3.5rem;height:3.5rem;border-radius:var(--r-lg);background:var(--accent-soft);color:var(--accent)}.drop-reel svg{width:24px;height:24px;animation:drop-reel 2.4s linear infinite}.drop.working[data-paused] .drop-reel svg{animation-play-state:paused}@keyframes drop-reel{to{transform:rotate(360deg)}}.drop-working-head{display:flex;flex-direction:column;gap:var(--s1);max-width:100%}.drop-bar{position:relative;width:min(30rem,100%);height:8px;border-radius:var(--r-pill);background:var(--surface-sunken);overflow:hidden}.drop-bar-fill{height:100%;border-radius:inherit;background:linear-gradient(90deg,var(--gold-500),var(--gold-400));transition:width var(--normal) var(--ease)}.drop-bar[data-indeterminate] .drop-bar-fill{width:35%!important;animation:drop-sweep 1.3s var(--ease) infinite}@keyframes drop-sweep{0%{margin-inline-start:-35%}to{margin-inline-start:100%}}.drop-meter{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:center;gap:var(--s2);font-size:var(--text-xs);color:var(--fg-faint)}.drop-pct{font-size:var(--text-md);font-weight:600;color:var(--fg)}.drop-meter-gap{flex-basis:100%;height:0}.drop-meter-dot{color:var(--line-strong)}.drop-meter-note{white-space:nowrap}.drop.done{border-style:solid;border-color:var(--good-500);background:radial-gradient(120% 120% at 50% 0%,var(--good-100) 0%,transparent 72%),var(--surface)}.drop-burst{position:absolute;top:var(--s8);inset-inline-start:50%;width:3.5rem;height:3.5rem;margin-inline-start:-1.75rem;border-radius:50%;border:2px solid var(--good-500);animation:drop-burst .7s var(--ease) forwards;pointer-events:none}@keyframes drop-burst{0%{transform:scale(.6);opacity:.85}to{transform:scale(2.6);opacity:0}}.drop-done-mark{display:grid;place-items:center;width:3.5rem;height:3.5rem;border-radius:50%;background:var(--good-500);color:#fff;animation:drop-pop .42s var(--ease) backwards}.drop-done-mark svg{width:26px;height:26px;stroke-width:2.4}@keyframes drop-pop{0%{transform:scale(.5);opacity:0}60%{transform:scale(1.08)}to{transform:scale(1);opacity:1}}.drop-facts{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--s3);margin-top:var(--s2)}.drop-fact{display:flex;flex-direction:column;gap:2px;min-width:9rem;padding:var(--s3) var(--s4);border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface)}.drop-fact.accent{border-color:var(--accent-line);background:var(--accent-soft)}.drop-fact-label{font-size:var(--text-2xs);color:var(--fg-soft)}.drop-fact-value{font-size:var(--text-lg);font-weight:600;line-height:1.45}.drop-fact.accent .drop-fact-value{color:var(--accent)}@media(max-width:52rem){.drop{padding:var(--s8) var(--s4)}.drop-facts{width:100%}.drop-fact{flex:1;min-width:0}}@media(prefers-reduced-motion:reduce){.drop-reel svg,.drop-mark,.drop-burst,.drop-bar[data-indeterminate] .drop-bar-fill{animation:none!important}.drop-burst{display:none}}.month-option-tag.waiting{background:var(--warn-100);color:var(--warn-500)}@media screen and (max-width:46rem){.doc-head{flex-direction:column;gap:var(--s3)}.doc-head .meta{margin-inline-start:0;text-align:start}}
