.dx-lines{width:100%;border-collapse:collapse}.dx-lines th{text-align:left;font-size:12px;font-weight:500;color:var(--c-muted-2);padding:6px 4px;white-space:nowrap}.dx-lines td{padding:4px;vertical-align:top}.dx-lines .dx-num{text-align:right}.dx-lines-wrap{min-width:0}.dx-totals{display:flex;flex-direction:column;align-items:flex-end;gap:4px;margin-top:12px}.dx-totals b{font-variant-numeric:tabular-nums}.dx-total-big{font-size:18px;font-weight:700}.dx-grid{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:14px;align-items:start}@media (max-width: 1000px){.dx-grid{grid-template-columns:minmax(0,1fr)}}.dx-stack{min-width:0}.dx-grid .card+.card{margin-top:0}.dx-stack{display:flex;flex-direction:column;gap:14px}.dx-kv{display:grid;grid-template-columns:max-content 1fr;gap:6px 16px;margin:0}.dx-kv dt{color:var(--c-muted-2)}.dx-kv dd{margin:0}.dx-progress{height:8px;background:var(--c-surface-3);border-radius:6px;overflow:hidden;margin:8px 0}.dx-progress>span{display:block;height:100%;background:var(--c-income)}.dx-progress.is-partial>span{background:var(--c-warning-text)}.dx-timeline{list-style:none;margin:0;padding:0}.dx-timeline>li{position:relative;padding:0 0 14px 22px;margin-left:6px;border-left:2px solid var(--c-border)}.dx-timeline>li:last-child{border-left-color:transparent;padding-bottom:0}.dx-timeline>li:before{content:"";position:absolute;left:-7px;top:3px;width:12px;height:12px;border-radius:50%;background:var(--c-surface);border:2px solid var(--c-border-strong)}.dx-timeline>li.tone-green:before{border-color:var(--c-income);background:var(--c-success-bg)}.dx-timeline>li.tone-red:before{border-color:var(--c-danger);background:var(--c-danger-bg)}.dx-timeline>li.tone-blue:before{border-color:var(--c-accent);background:var(--c-accent-weak)}.dx-timeline>li.tone-yellow:before{border-color:var(--c-warning-text);background:var(--c-warning-bg)}.dx-comment{background:var(--c-surface-2);border-radius:8px;padding:6px 10px;margin-top:4px;white-space:pre-wrap}.dx-step{border:1px solid var(--c-border);border-radius:10px;padding:12px;background:var(--c-table-head-bg);display:flex;flex-direction:column;gap:10px}.dx-step-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.dx-step-no{width:24px;height:24px;border-radius:50%;background:var(--c-accent-weak);color:var(--c-accent);display:inline-flex;align-items:center;justify-content:center;font-weight:600;font-size:12px}.dx-stage{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.dx-stage-box{border:1px dashed var(--c-border-strong);border-radius:8px;padding:4px 10px;background:var(--c-surface)}.dx-notif{display:flex;gap:12px;padding:10px 14px;border-bottom:1px solid var(--c-border);align-items:flex-start}.dx-notif:last-child{border-bottom:0}.dx-notif.is-unread{background:var(--c-accent-weak)}.dx-dot{width:8px;height:8px;border-radius:50%;background:var(--c-accent);margin-top:7px;flex:none}.dx-dot.is-read{background:transparent}.dx-files{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}.dx-files li{display:flex;align-items:center;gap:8px}.dx-cand{display:grid;grid-template-columns:28px minmax(0,1fr) 140px;gap:10px;align-items:center;padding:8px;border:1px solid var(--c-border);border-radius:8px}.dx-cand+.dx-cand{margin-top:6px}.dx-cand.is-picked{border-color:var(--c-accent);background:var(--c-accent-weak)}.dx-stat{cursor:pointer;text-align:left;border:1px solid var(--c-border);background:var(--c-surface);border-radius:10px;padding:12px 14px;font:inherit}.dx-stat:hover,.dx-stat.is-active{border-color:var(--c-accent);background:var(--c-accent-weak)}.dx-banner{margin-bottom:var(--sp-3)}.dx-note{display:inline-block;max-width:220px}.dx-w80{width:80px}.dx-lines-wrap{overflow-x:auto}.dx-lines{min-width:760px}.dx-c-nom{min-width:160px}.dx-c-name{min-width:180px}.dx-c-unit{width:70px}.dx-c-qty{width:90px}.dx-c-price{width:120px}.dx-c-vat{width:80px}.dx-c-sum{width:120px}.dx-c-del{width:36px}.dx-row-no{padding-top:12px!important}.dx-row-sum{padding-top:10px!important}.dx-right{text-align:right}.dx-desc{display:inline-block;max-width:200px}.center-row{justify-content:center;flex-wrap:wrap}.dx-step.is-active{border-color:var(--c-accent)}.dx-pre{white-space:pre-wrap}.dx-mt6{margin-top:6px}.dx-mb6{margin-bottom:6px}.dx-mb8{margin-bottom:8px}.dx-self-end{align-self:end}.settings-page{display:flex;flex-direction:column;gap:var(--sp-4);max-width:960px}.settings-page.is-wide{max-width:none}.settings-block{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-xl)}.settings-block>header{display:flex;align-items:flex-start;gap:var(--sp-3);padding:16px 16px 0;flex-wrap:wrap}.settings-block>header .sb-title{flex:1;min-width:0}.settings-block>header h3{font-size:var(--fs-xl);line-height:var(--lh-xl)}.settings-block>header .sb-sub{color:var(--c-muted-2);font-size:var(--fs-xs);line-height:var(--lh-xs);margin-top:2px}.settings-block>.sb-body{padding:16px}.settings-block>.sb-body.is-flush{padding:0}.settings-block>footer{display:flex;justify-content:flex-end;gap:var(--sp-2);padding:0 16px 16px;flex-wrap:wrap}.sum-bar{display:flex;gap:8px 24px;flex-wrap:wrap;align-items:baseline}.sum-bar .sum-item{display:inline-flex;gap:6px;align-items:baseline;white-space:nowrap}.sum-bar .sum-item>.lbl{color:var(--c-muted-2)}.cell-stack{display:flex;flex-direction:column;min-width:0;line-height:1.3}.cell-stack>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:100%}.cell-stack>.sub{font-size:var(--fs-xs);line-height:var(--lh-xs);color:var(--c-muted-2)}.page-banner{margin-bottom:var(--sp-3)}.stack-sm{display:flex;flex-direction:column;gap:var(--sp-2)}.stack-md{display:flex;flex-direction:column;gap:var(--sp-4)}.actions-end{display:flex;gap:var(--sp-2);justify-content:flex-end;flex-wrap:wrap;align-items:center}.tabs-bar{margin-bottom:var(--sp-3)}.seg-bar{display:flex;margin-bottom:var(--sp-3)}@media (max-width: 767px){.settings-page{gap:var(--sp-3)}.settings-block>header{padding:12px 12px 0}.settings-block>.sb-body{padding:12px}.settings-block>footer{padding:0 12px 12px}.sum-bar{gap:4px 16px}}.perm-matrix{border-collapse:separate;border-spacing:0;min-width:100%}.perm-matrix th,.perm-matrix td{padding:6px 10px;border-bottom:1px solid var(--c-border);text-align:center;white-space:nowrap}.perm-matrix th:first-child,.perm-matrix td:first-child{text-align:left;position:sticky;left:0;background:var(--c-surface);z-index:1;min-width:260px}.perm-matrix thead th{background:var(--c-table-head-bg);font-size:12px}.perm-matrix tr.perm-group td{background:var(--c-surface-2);font-weight:600;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--c-muted-2);text-align:left}.perm-matrix .scope-code{color:var(--c-muted-2);font-size:11px;display:block}.perm-col-locked{background:var(--c-table-head-bg)}.secret-box{display:flex;gap:8px;align-items:center;background:var(--c-warning-bg);border:1px solid var(--c-warning-line);border-radius:var(--radius-md);padding:10px 12px}.secret-box code{flex:1;word-break:break-all;font-size:13px}.usage-bar{height:10px;border-radius:10px;background:var(--c-surface-3);overflow:hidden}.usage-bar>span{display:block;height:100%;background:var(--c-accent)}.usage-bar.warn>span{background:var(--c-warning-text)}.usage-bar.over>span{background:var(--c-danger)}.rule-row{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--c-border)}.rule-row:last-child{border-bottom:0}.rule-row.is-off{opacity:.55}.rule-order{width:26px;text-align:center;color:var(--c-muted-2);font-variant-numeric:tabular-nums}.chips{display:flex;gap:4px;flex-wrap:wrap}.json-view{background:var(--c-surface-2);border-radius:6px;padding:8px 10px;font-size:12px;max-height:240px;overflow:auto;white-space:pre-wrap;word-break:break-all;margin:0}.settings-section+.settings-section{margin-top:18px}.diff-from{color:var(--c-danger);text-decoration:line-through}.diff-to{color:var(--c-income)}.perm-col-actions{justify-content:center;margin-top:4px}.cell-code{display:block;max-width:360px}.btn-fill{width:100%}.rule-result{margin-top:14px}.rule-result-head{margin-bottom:8px}.rule-order-btns{gap:0}.rule-row{cursor:default}.import-steps{margin-bottom:var(--sp-3)}.company-rename{align-items:flex-end}.plan-card.is-current{border-color:var(--c-accent)}.plan-price{font-size:var(--fs-2xl);line-height:var(--lh-2xl);font-weight:var(--fw-bold)}.plan-list{padding-left:18px}.notif-head{border-bottom:1px solid var(--c-border)}.notif-title{border:0;background:none;padding:0;text-align:left;cursor:pointer;font:inherit;font-weight:var(--fw-medium)}.dx-mt10{margin-top:10px}.dx-mt12{margin-top:12px}.settings-page .card-head{flex-wrap:wrap;gap:8px}.settings-page .card-head .row{flex-wrap:wrap}:root{color-scheme:light;--c-bg: #f2f4f7;--c-surface: #ffffff;--c-surface-2: #f5f6f8;--c-surface-3: #e4e9ed;--c-field: #f2f4f7;--c-overlay: rgba(0, 0, 0, .5);--c-border: #e7e8ec;--c-border-strong: #d0d4dc;--c-border-card: #e5e5e5;--c-border-soft: rgba(0, 0, 0, .1);--c-grid: #f7f7f7;--c-text: #22222b;--c-text-strong: #0b1315;--c-muted: #7a818e;--c-muted-2: #616571;--c-faint: #a7afbb;--c-icon: #8e97a5;--c-on-primary: #ffffff;--c-primary: #0b1315;--c-primary-hover: #26302f;--c-primary-press: #3d4647;--c-accent: #1a4a97;--c-accent-weak: rgba(26, 74, 151, .1);--c-accent-faint: rgba(26, 74, 151, .05);--c-accent-line: rgba(26, 74, 151, .3);--c-accent-50: #e8f3fc;--c-accent-200: #a3ccf4;--c-ai: #7d2ae8;--c-ai-weak: rgba(125, 42, 232, .11);--c-ai-line: #e7d8fb;--c-income: #398241;--c-outcome: #c33737;--c-balance: #1a4a97;--c-income-bar: #97c049;--c-outcome-bar: #c33737;--c-cash-bar: #70a4df;--c-success: #398241;--c-success-bg: #dff4da;--c-success-line: #c9edc0;--c-ok-bg: #f0f9d0;--c-ok-text: #528113;--c-warning-bg: #fff3cd;--c-warning-text: #856404;--c-warning-line: #ebdac9;--c-danger: #c33737;--c-danger-bg: #fce4d7;--c-danger-line: #f9c4b1;--c-info: #5981c0;--c-info-bg: #d0e6f9;--c-info-text: #24344d;--c-banner-bg: #ebdac9;--c-banner-text: #534030;--c-table-head-bg: #f5f7f8;--c-table-head-text: rgba(122, 129, 142, .65);--c-table-head-line: rgba(122, 129, 142, .2);--c-table-sorted-bg: #dfe5ef;--c-table-stripe: #f9fafb;--c-table-hover: #e9edf5;--c-table-selected: #f9fafc;--c-table-active: #d4dbec;--c-chart-1: #12243d;--c-chart-2: #623b6e;--c-chart-3: #c24a74;--c-chart-4: #ff7a4d;--c-chart-5: #ffcc00;--c-chart-6: #1a4a97;--c-chart-7: #70a4df;--c-chart-8: #97c049;--c-chart-9: #8c8c8c;--c-chart-10: #7d2ae8;--c-chart-axis: #8c8c8c;--c-chart-line: #1a4a97;--c-chart-area: #d0e6f9;--c-chart-grid: #eceef2;--c-chart-grey: #94a3b8;--c-income-bar-weak: #cfe3a5;--c-outcome-bar-weak: #e7aaaa;--sp-0: 0;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--sp-6: 24px;--sp-8: 32px;--sp-10: 40px;--sp-12: 48px;--radius-xs: 4px;--radius-sm: 6px;--radius-md: 8px;--radius-lg: 10px;--radius-xl: 12px;--radius-2xl: 16px;--radius-pill: 999px;--shadow-panel: 0 2px 6px rgba(21, 23, 25, .05);--shadow-dropdown: 0 3px 6px rgba(0, 0, 0, .15);--shadow-medium: 0 4px 10px rgba(0, 0, 0, .12);--shadow-tooltip: 0 8px 35px rgba(0, 0, 0, .16);--shadow-toast: 0 2px 10px rgba(0, 0, 0, .1);--shadow-sticky: 0 4px 20px rgba(0, 0, 0, .1);--shadow-check: 0 2px 3px rgba(0, 0, 0, .15);--focus-ring: none;--font-sans: "Inter", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono: "Fira Mono", ui-monospace, "SFMono-Regular", Menlo, Consolas, "Liberation Mono", monospace;--fs-2xs: 12px;--lh-2xs: 18px;--fs-xs: 14px;--lh-xs: 21px;--fs-md: 16px;--lh-md: 24px;--fs-lg: 18px;--lh-lg: 27px;--fs-xl: 20px;--lh-xl: 24px;--fs-2xl: 24px;--lh-2xl: 28.8px;--fs-3xl: 28px;--lh-3xl: 33.6px;--fs-4xl: 48px;--lh-4xl: 56px;--fs-5xl: 56px;--lh-5xl: 64px;--fw-regular: 400;--fw-medium: 500;--fw-bold: 700;--ls-display: -.02em;--h-btn: 37px;--h-btn-sm: 30px;--h-btn-icon: 33px;--h-input: 42px;--h-input-compact: 34px;--h-pill: 32px;--h-row: 48px;--h-row-compact: 36px;--h-thead: 36px;--h-nav-item: 32px;--h-banner: 32px;--w-sidebar: 270px;--w-sidebar-rail: 66px;--w-settings-nav: 267px;--w-panel-rail: 38px;--w-popover: 317px;--gutter: 8px;--panel-pad-x: 16px;--ease: linear;--dur-fast: .16s;--dur-panel: .3s;--z-sticky: 10;--z-dropdown: 1000;--z-bulkbar: 999;--z-popover: 1049;--z-modal: 1055;--z-toast: 1080}:root[data-theme=dark]{color-scheme:dark;--c-bg: #1b1f22;--c-surface: #232529;--c-surface-2: #383b41;--c-surface-3: #2c2f35;--c-field: #2c2f35;--c-overlay: rgba(0, 0, 0, .65);--c-border: #4a4a4a;--c-border-strong: #5d636f;--c-border-card: #4a4a4a;--c-border-soft: rgba(255, 255, 255, .12);--c-grid: #2f3237;--c-text: #dddddd;--c-text-strong: #ffffff;--c-muted: #9aa1ad;--c-muted-2: #b3b9c3;--c-faint: #7a818e;--c-icon: #9aa1ad;--c-on-primary: #22222b;--c-primary: #ffcc00;--c-primary-hover: #cca300;--c-primary-press: #e6b800;--c-accent: #ead272;--c-accent-weak: rgba(255, 204, 0, .14);--c-accent-faint: rgba(255, 204, 0, .07);--c-accent-line: rgba(255, 204, 0, .35);--c-accent-50: #2c2a1c;--c-accent-200: #6b5c1f;--c-ai: #b98cf5;--c-ai-weak: rgba(185, 140, 245, .16);--c-ai-line: rgba(185, 140, 245, .3);--c-income: #7fc686;--c-outcome: #f08080;--c-balance: #ead272;--c-income-bar: #97c049;--c-outcome-bar: #e0605f;--c-cash-bar: #7795bd;--c-success: #7fc686;--c-success-bg: #243a28;--c-success-line: #35523a;--c-ok-bg: #2e3a1c;--c-ok-text: #b4e150;--c-warning-bg: #3b3418;--c-warning-text: #efd877;--c-warning-line: #5a4d1f;--c-danger: #f08080;--c-danger-bg: #4a2a28;--c-danger-line: #6b3a36;--c-info: #7795bd;--c-info-bg: #22313f;--c-info-text: #cfdcec;--c-banner-bg: #3a3128;--c-banner-text: #ebdac9;--c-table-head-bg: #2a2d32;--c-table-head-text: rgba(221, 221, 221, .55);--c-table-head-line: rgba(255, 255, 255, .08);--c-table-sorted-bg: #444444;--c-table-stripe: #222222;--c-table-hover: #111111;--c-table-selected: #2b2d31;--c-table-active: #3a3d44;--c-chart-1: #7795bd;--c-chart-2: #9e78a9;--c-chart-3: #f374a0;--c-chart-4: #f3a48a;--c-chart-5: #efd877;--c-chart-6: #ead272;--c-chart-7: #7795bd;--c-chart-8: #97c049;--c-chart-9: #9aa1ad;--c-chart-10: #b98cf5;--c-chart-axis: #9aa1ad;--c-chart-line: #ead272;--c-chart-area: #3b3418;--c-chart-grid: #34373d;--c-chart-grey: #6f7783;--c-income-bar-weak: #5b7430;--c-outcome-bar-weak: #7b3b3b;--shadow-panel: 0 2px 6px rgba(0, 0, 0, .35);--shadow-dropdown: 0 3px 8px rgba(0, 0, 0, .55);--shadow-medium: 0 4px 10px rgba(0, 0, 0, .5);--shadow-tooltip: 0 8px 35px rgba(0, 0, 0, .6)}html{background:var(--c-bg)}body{margin:0;background:var(--c-bg);color:var(--c-text);font-family:var(--font-sans);font-size:var(--fs-md);line-height:var(--lh-md);-webkit-font-smoothing:antialiased}:focus-visible{outline:2px solid var(--c-accent);outline-offset:2px}input:focus-visible,textarea:focus-visible,select:focus-visible{outline:none}.mono-label{font-family:var(--font-mono);font-size:var(--fs-md);line-height:var(--lh-md);text-transform:uppercase;color:var(--c-muted)}:root{--bg: var(--c-bg);--panel: var(--c-surface);--text: var(--c-text);--muted: var(--c-muted);--line: var(--c-border);--line-strong: var(--c-border-strong);--primary: var(--c-accent);--primary-d: var(--c-accent);--primary-l: var(--c-accent-weak);--danger: var(--c-danger);--danger-l: var(--c-danger-bg);--green: var(--c-income);--green-l: var(--c-success-bg);--yellow: var(--c-warning-text);--yellow-l: var(--c-warning-bg);--purple: var(--c-ai);--purple-l: var(--c-ai-weak);--radius: var(--radius-md);--shadow: var(--shadow-dropdown);--font: var(--font-sans);--surface-sunken: var(--c-surface-2)}*{box-sizing:border-box}html,body,#root{height:100%}html{font-size:16px}body{overflow:hidden}body.is-scrollable{overflow:auto}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3,h4,h5{margin:0;font-weight:var(--fw-bold);color:var(--c-text-strong)}h1,h2{font-size:var(--fs-3xl);line-height:var(--lh-3xl)}h3{font-size:var(--fs-2xl);line-height:var(--lh-2xl)}h4{font-size:var(--fs-xl);line-height:var(--lh-xl)}h5{font-size:var(--fs-lg);line-height:var(--lh-lg);font-weight:var(--fw-medium)}a{color:var(--c-accent);text-decoration:none;transition:color var(--dur-fast) var(--ease)}a:hover{text-decoration:underline}p{margin:0}::placeholder{color:var(--c-faint);opacity:1}::selection{background:var(--c-accent-weak)}*{scrollbar-width:thin;scrollbar-color:var(--c-border-strong) transparent}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-thumb{background:var(--c-border-strong);border-radius:10px;border:2px solid transparent;background-clip:padding-box}::-webkit-scrollbar-track{background:transparent}.muted{color:var(--c-muted)}.small{font-size:var(--fs-xs);line-height:var(--lh-xs)}.micro{font-size:var(--fs-2xs);line-height:var(--lh-2xs)}.num{text-align:right;font-variant-numeric:tabular-nums}.pos{color:var(--c-income)}.neg{color:var(--c-outcome)}.row{display:flex;align-items:center;gap:12px}.row.gap-s{gap:8px}.row.between{justify-content:space-between}.row.end{justify-content:flex-end}.row.wrap{flex-wrap:wrap}.col{display:flex;flex-direction:column;gap:12px}.grow{flex:1;min-width:0}.pad-s{padding:8px 12px}.nowrap{white-space:nowrap}.ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--sp-6)}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--sp-6)}@media (max-width: 800px){.grid-2,.grid-3{grid-template-columns:1fr}}.mono-label,.widget-title{font-family:var(--font-mono);font-size:var(--fs-md);line-height:var(--lh-md);text-transform:uppercase;color:var(--c-muted);font-weight:var(--fw-regular)}.money{font-variant-numeric:tabular-nums;white-space:nowrap}.money--in{color:var(--c-income)}.money--out{color:var(--c-outcome)}.money--zero{color:var(--c-muted)}.money__cents{opacity:.32}.money--big{font-size:var(--fs-4xl);line-height:var(--lh-4xl);font-weight:var(--fw-medium);letter-spacing:var(--ls-display)}.money--hero{font-size:var(--fs-5xl);line-height:var(--lh-5xl);font-weight:var(--fw-medium);letter-spacing:var(--ls-display)}.amount-in{color:var(--c-income);font-weight:var(--fw-medium);font-variant-numeric:tabular-nums}.amount-out{color:var(--c-outcome);font-weight:var(--fw-medium);font-variant-numeric:tabular-nums}.amount-tr{color:var(--c-accent);font-weight:var(--fw-medium);font-variant-numeric:tabular-nums}.spinner{width:18px;height:18px;border:2px solid var(--c-border-strong);border-top-color:var(--c-accent);border-radius:50%;display:inline-block;animation:spin .7s linear infinite;vertical-align:middle;flex:none}.spinner-sm{width:14px;height:14px}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{display:block;border-radius:var(--radius-sm);background:linear-gradient(90deg,var(--c-surface-2) 25%,var(--c-border) 37%,var(--c-surface-2) 63%);background-size:400% 100%;animation:shimmer 1.4s ease infinite;min-height:14px}@keyframes shimmer{0%{background-position:100% 50%}to{background-position:0 50%}}@media (prefers-reduced-motion: reduce){*{animation-duration:.001ms!important;transition-duration:.001ms!important}}.auth-page{min-height:100vh;height:100%;overflow:auto;display:grid;place-items:center;padding:20px;background:var(--c-bg)}.auth-card{width:100%;max-width:420px;background:var(--c-surface);border-radius:var(--radius-2xl);padding:32px;box-shadow:var(--shadow-panel);border:1px solid var(--c-border)}.auth-card h1{margin:20px 0 4px;font-size:var(--fs-2xl);line-height:var(--lh-2xl)}.auth-card form{display:flex;flex-direction:column;gap:4px;margin-top:20px}.auth-card form .btn{width:100%;margin-top:8px}.brand{display:flex;align-items:center;gap:10px;font-weight:var(--fw-bold);font-size:20px;color:var(--c-text-strong)}.brand-logo{width:32px;height:32px;border-radius:10px;background:var(--c-primary);color:var(--c-on-primary);display:grid;place-items:center;font-size:17px;font-weight:var(--fw-bold);flex:none}.brand-logo.is-sm{width:28px;height:28px;border-radius:8px;font-size:15px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:4px;position:relative;min-height:var(--h-btn);padding:6px 12px;border:1px solid var(--c-border-card);border-radius:var(--radius-md);background:transparent;color:var(--c-text);font-size:var(--fs-md);line-height:var(--lh-md);cursor:pointer;white-space:nowrap;text-decoration:none;transition:background-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),opacity var(--dur-fast) var(--ease)}.btn:hover{text-decoration:none}.btn svg{width:20px;height:20px;color:var(--c-icon);flex:none;transition:color var(--dur-fast) var(--ease)}.btn:hover:not(:disabled){color:var(--c-accent);border-color:var(--c-accent-line)}.btn:hover:not(:disabled) svg{color:var(--c-accent)}.btn:active:not(:disabled),.btn[aria-expanded=true]{border-color:var(--c-accent)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn.is-loading{color:transparent!important;cursor:progress}.btn.is-loading>.spinner{position:absolute;top:0;right:0;bottom:0;left:0;margin:auto}.btn-sm{min-height:var(--h-btn-sm);padding:4px 8px;border-radius:var(--radius-sm);font-size:var(--fs-xs);line-height:var(--lh-xs)}.btn-sm svg{width:16px;height:16px}.btn-icon,.icon-btn{display:inline-grid;place-items:center;width:var(--h-btn-icon);height:var(--h-btn-icon);min-height:0;padding:0;border:0;border-radius:var(--radius-md);background:transparent;color:var(--c-icon);cursor:pointer;flex:none;line-height:1;transition:background-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.icon-btn svg,.btn-icon svg{width:22px;height:22px}.icon-btn:hover:not(:disabled),.btn-icon:hover:not(:disabled){background:#091e4214;color:var(--c-accent);border:0}:root[data-theme=dark] .icon-btn:hover:not(:disabled),:root[data-theme=dark] .btn-icon:hover:not(:disabled){background:#ffffff1a}.icon-btn.is-sm{width:28px;height:28px}.icon-btn.is-sm svg{width:18px;height:18px}.icon-btn.is-danger{color:var(--c-danger)}.icon-btn.is-danger:hover:not(:disabled){color:var(--c-danger);background:var(--c-danger-bg)}.icon-btn:disabled{opacity:.4;cursor:not-allowed}.btn.btn-primary{background:var(--c-primary);border-color:var(--c-primary);color:var(--c-on-primary)}.btn.btn-primary svg{color:currentColor}.btn.btn-primary:hover:not(:disabled){background:var(--c-primary-hover);border-color:var(--c-primary-hover);color:var(--c-on-primary)}.btn.btn-primary:active:not(:disabled){background:var(--c-primary-press);border-color:var(--c-primary-press)}.btn.btn-primary:hover:not(:disabled) svg{color:currentColor}.btn.btn-secondary{background:var(--c-surface-2);border-color:transparent;color:var(--c-text-strong)}.btn.btn-secondary:hover:not(:disabled){background:color-mix(in srgb,var(--c-surface-2),#000 10%);border-color:transparent;color:var(--c-text-strong)}.btn.btn-ghost,.btn.btn-basic{background:transparent;border-color:transparent;color:var(--c-muted-2)}.btn.btn-ghost:hover:not(:disabled),.btn.btn-basic:hover:not(:disabled){background:#091e4214;border-color:transparent;color:var(--c-text)}:root[data-theme=dark] .btn.btn-ghost:hover:not(:disabled){background:#ffffff1a}.btn.btn-danger{background:var(--c-danger);border-color:var(--c-danger);color:#fff}.btn.btn-danger svg{color:currentColor}.btn.btn-danger:hover:not(:disabled){background:color-mix(in srgb,var(--c-danger),#000 12%);border-color:transparent;color:#fff}.btn.btn-danger-soft{background:var(--c-danger-bg);border-color:transparent;color:var(--c-danger)}.btn.btn-danger-soft svg{color:currentColor}.btn.btn-danger-soft:hover:not(:disabled){background:var(--c-danger-line);color:var(--c-danger);border-color:transparent}.btn.btn-ai{background:var(--c-ai-weak);border-color:var(--c-ai-line);color:var(--c-ai)}.btn.btn-ai svg{color:currentColor}.btn.btn-ai:hover:not(:disabled){border-color:var(--c-ai);color:var(--c-ai)}.btn.btn-link{border:0;background:none;color:var(--c-accent);padding:0 4px;min-height:0}.btn.btn-link:hover:not(:disabled){text-decoration:underline;border:0}.btn-block{width:100%}.field{display:flex;flex-direction:column;gap:2px;min-width:0}.field-label{font-size:var(--fs-md);line-height:var(--lh-md);color:var(--c-text);font-weight:var(--fw-regular)}.req{color:var(--c-danger);margin-left:2px}.field-hint,.field-error{font-size:var(--fs-2xs);line-height:var(--lh-2xs);min-height:21px;padding-top:2px}.field-hint{color:var(--c-muted);opacity:.85}.field-error{color:var(--c-danger)}.field:not(.has-error):not(:has(.field-hint)):after{content:"";display:block;min-height:21px}.field.no-reserve:after{display:none!important}.field-help{display:inline-grid;place-items:center;width:16px;height:16px;margin-left:4px;color:var(--c-icon);cursor:help;vertical-align:-3px}.input{width:100%;min-height:var(--h-input);padding:6px 12px;border:1px solid var(--c-border);border-radius:var(--radius-lg);background:var(--c-field);color:var(--c-text);font-size:var(--fs-md);line-height:var(--lh-md);transition:border-color var(--dur-fast) var(--ease),background-color var(--dur-fast) var(--ease)}.input:hover:not(:disabled){border-color:var(--c-border-strong)}.input:focus,.input:focus-visible{outline:none;border-color:var(--c-field);box-shadow:none}.input:disabled{opacity:.5;cursor:not-allowed}.input-sm{min-height:var(--h-btn-sm);width:auto;padding:2px 8px;font-size:var(--fs-xs);border-radius:var(--radius-sm)}textarea.input,.textarea{min-height:84px;resize:vertical;padding-top:8px;padding-bottom:8px}.has-error .input,.is-invalid .input,.input.is-invalid{border-color:var(--c-danger);background:color-mix(in srgb,var(--c-danger-bg),var(--c-field) 70%)}select.input,.select{-moz-appearance:none;appearance:none;-webkit-appearance:none;padding-right:32px;cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24' fill='none' stroke='%238e97a5' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}select.input option{background:var(--c-surface);color:var(--c-text)}input[type=date].input,input[type=time].input,input[type=datetime-local].input,input[type=month].input{padding-right:8px}input[type=search]::-webkit-search-cancel-button{display:none}input[type=checkbox],input[type=radio]{accent-color:var(--c-primary)}.search-input{position:relative;display:inline-flex;align-items:center;width:250px;max-width:100%}.search-input>svg{position:absolute;left:10px;width:18px;height:18px;color:var(--c-icon);pointer-events:none}.search-input .input{min-height:var(--h-input-compact);padding-left:34px;padding-right:30px;border-color:transparent;border-radius:var(--radius-lg)}.search-input .input:hover:not(:disabled){border-color:var(--c-border)}.search-input>.icon-btn{position:absolute;right:2px;width:28px;height:28px}.search-input>.icon-btn svg{width:16px;height:16px}.money-input{position:relative}.money-input .input{text-align:right;font-variant-numeric:tabular-nums;padding-right:64px}.money-cur{position:absolute;right:8px;top:50%;transform:translateY(-50%);padding:1px 8px;border-radius:var(--radius-md);background:var(--c-surface-2);color:var(--c-muted);font-family:var(--font-mono);font-size:var(--fs-2xs);line-height:18px;pointer-events:none}.money-input.is-invalid .input{border-color:var(--c-danger)}.form-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 var(--sp-6);align-content:start}.form-grid>.full,.form-grid>.error-box{grid-column:1 / -1}@media (max-width: 700px){.form-grid{grid-template-columns:1fr}}.form-section-title{font-weight:var(--fw-bold);margin:8px 0 4px}.check{display:inline-flex;align-items:center;gap:8px;cursor:pointer;position:relative;line-height:1.3}.check input{position:absolute;opacity:0;width:100%;height:100%;left:0;top:0;margin:0;cursor:pointer;z-index:1}.check-box{width:16px;height:16px;border-radius:var(--radius-xs);background:var(--c-surface-2);border:1px solid var(--c-border-strong);display:inline-grid;place-items:center;flex:none;color:transparent;transition:background-color var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease)}.check-box svg{width:12px;height:12px;stroke-width:3}.check:hover .check-box{border-color:var(--c-accent-line)}.check input:checked+.check-box,.check input:indeterminate+.check-box{background:var(--c-primary);border-color:var(--c-primary);color:var(--c-on-primary);box-shadow:var(--shadow-check)}.check input:focus-visible+.check-box{outline:2px solid var(--c-accent);outline-offset:2px}.check input:disabled+.check-box{opacity:.5}.check:has(input:disabled){cursor:not-allowed}.check.is-md .check-box{width:24px;height:24px}.check.is-md .check-box svg{width:16px;height:16px}.switch{display:inline-flex;align-items:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none;position:relative}.switch.is-disabled{opacity:.5;cursor:not-allowed}.switch input{position:absolute;opacity:0;width:0;height:0}.switch-track{width:48px;height:24px;border-radius:24px;background:var(--c-border-strong);position:relative;transition:background-color var(--dur-fast) var(--ease);flex:none}.switch-thumb{position:absolute;top:2px;left:2px;width:20px;height:20px;border-radius:50%;background:#fff;transition:left var(--dur-fast) ease;box-shadow:0 1px 3px #0000004d}.switch input:checked+.switch-track{background:var(--c-primary)}:root[data-theme=dark] .switch input:checked+.switch-track{background:var(--c-primary)}.switch input:checked+.switch-track .switch-thumb{left:26px}:root[data-theme=dark] .switch input:checked+.switch-track .switch-thumb{background:var(--c-on-primary)}.switch input:focus-visible+.switch-track{outline:2px solid var(--c-accent);outline-offset:2px}.segmented{display:inline-flex;position:relative;padding:4px;border-radius:var(--radius-xl);background:var(--c-surface-2);font-size:var(--fs-xs);line-height:var(--lh-xs);max-width:100%;overflow-x:auto;scrollbar-width:none}.segmented::-webkit-scrollbar{display:none}.seg-thumb{position:absolute;top:4px;bottom:4px;left:0;border-radius:var(--radius-md);background:var(--c-accent-weak);transition:transform .22s ease,width .22s ease,background-color var(--dur-fast);pointer-events:none}.seg{position:relative;z-index:1;border:0;background:none;padding:4px 8px;cursor:pointer;border-radius:var(--radius-md);color:var(--c-text);white-space:nowrap;transition:color var(--dur-fast) var(--ease),background-color var(--dur-fast) var(--ease)}.seg:hover:not(:disabled):not(.is-active){color:var(--c-accent)}.seg.is-active{color:var(--c-accent);font-weight:var(--fw-bold)}.segmented.no-thumb .seg.is-active{background:var(--c-accent-weak)}.seg:disabled{color:#00000040;cursor:not-allowed}.seg.is-active.tone-income{color:var(--c-income)}.seg.is-active.tone-outcome{color:var(--c-outcome)}.segmented.is-tabs{display:flex;width:100%}.segmented.is-tabs .seg{flex:1 1 0;padding:4px 24px;text-align:center;border-radius:var(--radius-md)}.segmented.is-tabs .seg+.seg:before{content:"";position:absolute;left:0;top:20%;bottom:20%;width:1px;background:#8e8e9326}.segmented.is-tabs .seg.is-active:before,.segmented.is-tabs .seg.is-active+.seg:before{display:none}.tabs{display:flex;gap:0;border-bottom:1px solid var(--c-border-soft);margin-bottom:16px;overflow-x:auto;scrollbar-width:none;flex:none}.tab{border:0;background:none;padding:8px 16px;cursor:pointer;color:#adb5bd;position:relative;white-space:nowrap;transition:color var(--dur-fast) var(--ease)}.tab:hover{color:var(--c-text)}.tab.is-active{color:var(--c-text);font-weight:var(--fw-medium)}.tab.is-active:after{content:"";position:absolute;left:0;right:0;bottom:-1px;height:4px;background:var(--c-text);border-radius:4px 4px 0 0}.tab-count{margin-left:6px;font-size:var(--fs-2xs);background:var(--c-surface-2);border-radius:10px;padding:1px 7px;color:var(--c-muted)}.badge{display:inline-flex;align-items:center;gap:4px;padding:1px 8px;border-radius:var(--radius-md);font-size:var(--fs-2xs);line-height:18px;font-weight:var(--fw-medium);background:#f3f3f3;color:#6c757d;white-space:nowrap}:root[data-theme=dark] .badge{background:var(--c-surface-2);color:var(--c-muted-2)}.badge-green{background:var(--c-ok-bg);color:var(--c-ok-text)}.badge-red{background:var(--c-danger-bg);color:var(--c-danger)}.badge-blue{background:var(--c-accent-weak);color:var(--c-accent)}.badge-yellow{background:var(--c-warning-bg);color:var(--c-warning-text)}.badge-purple{background:var(--c-ai-weak);color:var(--c-ai)}.status-pill{display:inline-block;padding:8px 12px;border-radius:var(--radius-md);font-size:var(--fs-2xs);line-height:18px;font-weight:var(--fw-bold)}.status-pill.crit{background:var(--c-danger-bg);color:var(--c-danger)}.status-pill.warn{background:var(--c-warning-bg);color:var(--c-warning-text)}.status-pill.ok{background:var(--c-ok-bg);color:var(--c-ok-text)}.status-pill.neutral{background:var(--c-surface-2);color:var(--c-muted)}.error-box{display:flex;justify-content:space-between;align-items:center;gap:12px;background:var(--c-danger-bg);color:var(--c-danger);border:1px solid var(--c-danger-line);border-radius:var(--radius-md);padding:8px 12px;margin-bottom:12px;font-size:var(--fs-xs)}.info-alert{display:flex;gap:8px;align-items:flex-start;background:var(--c-info-bg);color:var(--c-info-text);border:1px solid var(--c-accent-200);border-radius:var(--radius-md);padding:8px 12px;font-size:var(--fs-xs);line-height:var(--lh-xs)}.info-alert>svg{color:var(--c-info);flex:none;margin-top:1px;width:18px;height:18px}.hint-box{background:var(--c-warning-bg);border:1px solid var(--c-warning-line);color:var(--c-warning-text);border-radius:var(--radius-xl);padding:16px;font-size:var(--fs-xs);line-height:var(--lh-xs)}.alert-card{display:flex;gap:16px;align-items:flex-start;width:420px;max-width:100%;background:var(--c-surface-2);border:1px solid var(--c-border);border-radius:var(--radius-xl);padding:12px 16px;position:relative}.alert-card .alert-icon{width:48px;height:48px;border-radius:var(--radius-md);display:grid;place-items:center;flex:none;background:var(--c-danger-bg);color:var(--c-danger)}.alert-card.is-ai .alert-icon{background:var(--c-ai-weak);color:var(--c-ai)}.alert-card .alert-title{font-weight:var(--fw-bold)}.alert-card .alert-text{font-size:var(--fs-xs);line-height:var(--lh-xs);color:var(--c-muted)}.alert-card .alert-x{position:absolute;top:4px;right:4px}.alert-stack{display:flex;gap:12px;flex-wrap:wrap;margin-bottom:12px}.progress{height:18px;background:#e9ebf1;border-radius:var(--radius-xs);overflow:hidden}.progress>span{display:block;height:100%;background:#007aff;border-radius:var(--radius-xs)}:root[data-theme=dark] .progress{background:var(--c-surface-2)}.card{background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-md);min-width:0}.card+.card{margin-top:16px}.card-head{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--c-border)}.card-head h3{font-family:var(--font-mono);font-size:var(--fs-xs);line-height:var(--lh-xs);text-transform:uppercase;color:var(--c-muted);font-weight:var(--fw-regular);letter-spacing:.02em}.card-body{padding:16px}.center-pad{padding:28px;text-align:center}.empty{padding:48px 16px;text-align:center;color:var(--c-muted)}.empty-title{font-weight:var(--fw-medium);color:var(--c-text);margin-bottom:4px}.empty-first{position:relative;max-width:640px;margin:24px auto;padding:40px 32px;text-align:center;background:var(--c-surface);border:1px solid var(--c-border);border-radius:var(--radius-2xl);overflow:hidden}.empty-first:before,.empty-first:after{content:"";position:absolute;width:260px;height:260px;border-radius:50%;filter:blur(60px);opacity:.5;z-index:0;pointer-events:none}.empty-first:before{left:-90px;top:-90px;background:var(--c-info-bg)}.empty-first:after{right:-90px;bottom:-110px;background:var(--c-warning-bg)}.empty-first>*{position:relative;z-index:1}.empty-first .empty-art{width:72px;height:72px;margin:0 auto 16px;border-radius:20px;display:grid;place-items:center;background:var(--c-accent-weak);color:var(--c-accent)}.empty-first .empty-art svg{width:36px;height:36px}.empty-first h3{font-size:28px;line-height:33.6px;margin-bottom:12px}.empty-first ul{list-style:none;margin:12px auto 16px;padding:0;max-width:460px;text-align:left;display:flex;flex-direction:column;gap:8px;color:var(--c-muted-2)}.empty-first li{display:flex;gap:8px;align-items:flex-start}.empty-first li svg{width:18px;height:18px;color:var(--c-income);flex:none;margin-top:3px}.empty-first .hint-box{text-align:left;margin:0 auto 20px;max-width:460px}.tip-wrap{position:relative;display:inline-flex}.tip{position:absolute;z-index:var(--z-popover);left:50%;bottom:calc(100% + 6px);transform:translate(-50%);background:#22222b;color:#fff;font-size:var(--fs-xs);line-height:var(--lh-xs);padding:4px 8px;border-radius:var(--radius-md);white-space:nowrap;pointer-events:none;opacity:0;transition:opacity var(--dur-fast) var(--ease);max-width:280px}.tip.is-light{background:var(--c-surface);color:var(--c-text);border:1px solid var(--c-border);box-shadow:var(--shadow-tooltip)}.tip.is-right{left:calc(100% + 8px);bottom:auto;top:50%;transform:translateY(-50%)}.tip.is-wrap{white-space:normal;width:max-content}.tip-wrap:hover>.tip,.tip-wrap:focus-within>.tip{opacity:1}.toasts{position:fixed;left:50%;bottom:24px;transform:translate(-50%);display:flex;flex-direction:column;gap:8px;align-items:center;z-index:var(--z-toast);pointer-events:none;width:max-content;max-width:calc(100vw - 32px)}.toast{display:flex;align-items:center;gap:8px;background:#000;color:#fff;padding:10px 16px;border-radius:var(--radius-xl);box-shadow:var(--shadow-toast);font-size:var(--fs-xs);line-height:var(--lh-xs);pointer-events:auto;animation:slide-up var(--dur-panel) ease}.toast svg{width:18px;height:18px;flex:none}.toast-ok svg{color:#7fd48b}.toast-error svg{color:#ff8e8e}.toast-info svg{color:#8ec5ff}:root[data-theme=dark] .toast{background:#f2f4f7;color:#22222b}@keyframes slide-up{0%{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}.tag-dot{display:inline-block;width:8px;height:8px;border-radius:50%;margin-right:5px}.tag-list{display:flex;gap:4px;flex-wrap:wrap}.color-swatch{width:42px;height:42px;padding:3px;border:1px solid var(--c-border);border-radius:var(--radius-lg);background:var(--c-field)}.modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--c-overlay);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);display:flex;align-items:flex-start;justify-content:center;padding:8vh 12px 12px;z-index:var(--z-modal);overflow-y:auto;animation:fade-in var(--dur-fast) linear}.modal{background:var(--c-surface);border-radius:var(--radius-2xl);width:100%;box-shadow:var(--shadow-tooltip);display:flex;flex-direction:column;max-height:88vh;animation:pop-in .18s ease}.modal-head{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:16px 16px 8px 24px}.modal-head h2{font-size:var(--fs-xl);line-height:var(--lh-xl)}.modal-body{padding:8px 24px 16px;overflow-y:auto}.modal-foot{display:flex;justify-content:flex-end;gap:8px;padding:12px 24px 20px}@keyframes fade-in{0%{opacity:0}to{opacity:1}}@keyframes pop-in{0%{transform:translateY(8px) scale(.98);opacity:0}to{transform:none;opacity:1}}.dropdown{position:relative;display:inline-block}.dropdown-panel{position:absolute;top:calc(100% + 4px);z-index:var(--z-dropdown);background:var(--c-surface);border:1px solid rgba(0,0,0,.08);border-radius:var(--radius-xl);box-shadow:var(--shadow-dropdown);padding:8px;min-width:200px;max-width:min(92vw,560px);animation:fade-in var(--dur-fast) linear}:root[data-theme=dark] .dropdown-panel{border-color:var(--c-border)}.dropdown-panel.align-left{left:0}.dropdown-panel.align-right{right:0}.dropdown-panel.is-up{top:auto;bottom:calc(100% + 4px)}.menu{display:flex;flex-direction:column;min-width:180px;gap:1px}.menu-title{padding:4px 8px;font-size:var(--fs-2xs);line-height:var(--lh-2xs);color:var(--c-faint);text-transform:uppercase;letter-spacing:.03em}.menu-sep{height:1px;background:var(--c-border);margin:4px 0}.menu-item{display:flex;align-items:center;gap:8px;text-align:left;border:0;background:none;min-height:32px;padding:4px 8px;border-radius:var(--radius-md);cursor:pointer;font-size:var(--fs-xs);line-height:var(--lh-xs);color:var(--c-text);width:100%;text-decoration:none;transition:background-color var(--dur-fast) var(--ease)}.menu-item svg{width:18px;height:18px;color:var(--c-icon);flex:none}.menu-item:hover:not(:disabled){background:#f1f2f4;text-decoration:none}:root[data-theme=dark] .menu-item:hover:not(:disabled){background:var(--c-surface-2)}.menu-item.danger{color:var(--c-danger)}.menu-item.danger svg{color:var(--c-danger)}.menu-item.is-active{background:#f1f2f4;color:var(--c-accent);font-weight:var(--fw-medium)}:root[data-theme=dark] .menu-item.is-active{background:var(--c-surface-2)}.menu-item:disabled{opacity:.5;cursor:not-allowed}.menu-item .menu-end{margin-left:auto;color:var(--c-muted);font-size:var(--fs-2xs)}.col-picker{max-height:60vh;overflow-y:auto;min-width:240px}.combo{position:relative}.combo-trigger{display:flex;align-items:center;gap:6px;text-align:left;cursor:pointer}.combo.is-disabled .combo-trigger{cursor:not-allowed}.combo-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.combo-label.placeholder{color:var(--c-faint)}.combo-clear{color:var(--c-muted);display:grid;place-items:center;width:20px;height:20px;border-radius:6px}.combo-clear:hover{background:#091e4214;color:var(--c-text)}.combo-clear svg{width:14px;height:14px}.combo-caret{color:var(--c-icon);display:grid}.combo-caret svg{width:18px;height:18px}.combo-panel{width:max(100%,280px);padding:8px}.combo-search{margin-bottom:8px;min-height:36px}.combo-list{max-height:260px;overflow-y:auto;display:flex;flex-direction:column;gap:1px}.combo-opt{display:flex;align-items:center;gap:8px;min-height:32px;padding:4px 8px;border-radius:var(--radius-md);cursor:pointer;font-size:var(--fs-xs);line-height:var(--lh-xs)}.combo-opt>span:first-of-type{flex:1;min-width:0;overflow-wrap:anywhere}.combo-opt.is-selected{background:var(--c-accent-weak);color:var(--c-accent)}.combo-opt.is-cursor,.combo-opt:hover{background:#f1f2f4}.combo-opt.is-selected.is-cursor{background:var(--c-accent-weak)}:root[data-theme=dark] .combo-opt.is-cursor,:root[data-theme=dark] .combo-opt:hover{background:var(--c-surface-2)}.combo-opt.is-disabled{opacity:.5;cursor:default}.tree-panel{min-width:260px}.tree-row{display:flex;align-items:center;gap:6px;min-height:32px;padding:3px 6px;border-radius:var(--radius-md);cursor:pointer;font-size:var(--fs-xs);line-height:var(--lh-xs)}.tree-row:hover{background:#f1f2f4}.tree-row.is-selected{background:var(--c-accent-weak);color:var(--c-accent)}.tree-row.is-group .tree-name{font-weight:var(--fw-medium)}:root[data-theme=dark] .tree-row:hover{background:var(--c-surface-2)}.tree-caret{width:16px;color:var(--c-muted);display:grid;place-items:center;flex:none}.tree-caret svg{width:14px;height:14px}.tree-name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.daterange{display:flex;gap:16px;width:495px;max-width:calc(100vw - 48px)}.cal{width:252px;flex:none}.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px;font-weight:var(--fw-medium);text-transform:capitalize}.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);row-gap:2px}.cal-dow{text-align:center;font-size:12.8px;text-transform:uppercase;color:#666;padding:4px 0}.cal-day{height:32px;border:0;background:none;border-radius:var(--radius-lg);cursor:pointer;font-size:var(--fs-xs);position:relative;color:var(--c-text);transition:background-color var(--dur-fast) var(--ease);font-variant-numeric:tabular-nums}.cal-day:hover:not(.is-sel){background:#f1f2f4}.cal-day.is-out{color:var(--c-faint)}.cal-day.is-today{box-shadow:inset 0 0 0 1px var(--c-border-strong)}.cal-day.is-range{background:#e6e8ec;border-radius:0}.cal-day.is-sel{background:var(--c-primary);color:var(--c-on-primary)}.cal-day.is-start{border-radius:var(--radius-lg) 0 0 var(--radius-lg)}.cal-day.is-end{border-radius:0 var(--radius-lg) var(--radius-lg) 0}.cal-day.is-start.is-end{border-radius:var(--radius-lg)}:root[data-theme=dark] .cal-day.is-range{background:var(--c-surface-2)}:root[data-theme=dark] .cal-day:hover:not(.is-sel){background:var(--c-surface-2)}:root[data-theme=dark] .cal-dow{color:var(--c-muted)}.daterange-presets{flex:1;min-width:0;display:flex;flex-direction:column;gap:8px}.daterange-presets h6{margin:4px 0 0;font-size:var(--fs-xs);font-weight:var(--fw-regular);color:var(--c-muted)}.preset-grid{display:flex;flex-wrap:wrap;gap:6px}.preset-btn{border:1px solid var(--c-border-card);background:transparent;border-radius:var(--radius-sm);padding:4px 8px;font-size:var(--fs-xs);line-height:var(--lh-xs);cursor:pointer;transition:all var(--dur-fast) var(--ease)}.preset-btn:hover{color:var(--c-accent);border-color:var(--c-accent-line)}.preset-btn.is-active{background:var(--c-primary);color:var(--c-on-primary);border-color:var(--c-primary)}.daterange-custom{display:grid;grid-template-columns:1fr 1fr;gap:8px;margin-top:auto}.daterange-custom .field-label{font-size:var(--fs-2xs);color:var(--c-muted)}.daterange-custom .input{min-height:34px}@media (max-width: 560px){.daterange{flex-direction:column;width:100%}.cal{width:100%}}.pulse-dot{width:20px;height:20px;border-radius:50%;background:var(--c-accent);opacity:.85;animation:pulse 1.6s ease infinite}@keyframes pulse{0%{box-shadow:0 0 #1a4a9780}70%{box-shadow:0 0 0 14px #1a4a9700}to{box-shadow:0 0 #1a4a9700}}.cmdk-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--c-overlay);-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);z-index:var(--z-modal);display:flex;justify-content:center;align-items:flex-start;padding:12vh 12px 12px;animation:fade-in var(--dur-fast) linear}.cmdk{width:100%;max-width:620px;background:var(--c-surface);border-radius:var(--radius-2xl);box-shadow:var(--shadow-tooltip);overflow:hidden;display:flex;flex-direction:column;max-height:70vh}.cmdk-input{display:flex;align-items:center;gap:10px;padding:12px 16px;border-bottom:1px solid var(--c-border)}.cmdk-input svg{color:var(--c-icon);width:20px;height:20px;flex:none}.cmdk-input input{flex:1;border:0;outline:0;background:transparent;font-size:var(--fs-md);min-width:0}.cmdk-kbd{font-family:var(--font-mono);font-size:11px;border:1px solid var(--c-border);border-radius:6px;padding:1px 6px;color:var(--c-muted);background:var(--c-surface-2)}.cmdk-list{overflow-y:auto;padding:8px;display:flex;flex-direction:column}.cmdk-group{padding:8px 8px 4px;font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.04em;color:var(--c-faint)}.cmdk-item{display:flex;align-items:center;gap:10px;padding:6px 8px;min-height:40px;border-radius:var(--radius-md);cursor:pointer;border:0;background:none;text-align:left;width:100%;font-size:var(--fs-xs);line-height:var(--lh-xs)}.cmdk-item svg{width:18px;height:18px;color:var(--c-icon);flex:none}.cmdk-item.is-cursor{background:var(--c-accent-weak);color:var(--c-accent)}.cmdk-item.is-cursor svg{color:var(--c-accent)}.cmdk-item .cmdk-sub{margin-left:auto;color:var(--c-muted);font-size:var(--fs-2xs);max-width:40%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.cmdk-empty{padding:28px 16px;text-align:center;color:var(--c-muted)}.cmdk-foot{display:flex;gap:14px;padding:8px 16px;border-top:1px solid var(--c-border);color:var(--c-muted);font-size:var(--fs-2xs)}.notif-panel{width:360px;max-width:calc(100vw - 32px);max-height:70vh;overflow-y:auto;padding:0!important}.notif-item{display:flex;gap:10px;padding:10px 12px;border-bottom:1px solid var(--c-border)}.notif-item.unread{background:var(--c-accent-faint)}.notif-dot{width:8px;height:8px;border-radius:50%;background:var(--c-accent);margin-top:7px;flex:none}.notif-item:not(.unread) .notif-dot{visibility:hidden}.bell{position:relative}.bell-count{position:absolute;top:1px;right:1px;min-width:16px;height:16px;border-radius:8px;background:var(--c-danger);color:#fff;font-size:10px;line-height:1;display:grid;place-items:center;padding:0 4px;font-weight:var(--fw-bold)}.help-drawer{position:fixed;left:16px;bottom:16px;width:380px;max-width:calc(100vw - 32px);height:470px;max-height:calc(100vh - 32px);background:var(--c-surface);border-radius:var(--radius-2xl);box-shadow:var(--shadow-tooltip);z-index:var(--z-popover);display:flex;flex-direction:column;overflow:hidden;animation:pop-in .18s ease;border:1px solid var(--c-border)}.help-drawer.is-big{width:640px;height:640px}.help-drawer header{display:flex;align-items:center;gap:4px;padding:12px 12px 4px 16px}.help-drawer header h4{flex:1}.help-drawer .help-body{padding:8px 16px 16px;overflow-y:auto;font-size:var(--fs-xs);line-height:var(--lh-xs);color:var(--c-muted-2)}@media (max-width: 767px){.ph-help-text{display:none}.help-drawer{left:8px;bottom:8px}}.dropdown-panel.is-portal{z-index:1100}.shell{height:100vh;height:100dvh;display:flex;flex-direction:column;background:var(--c-bg);overflow:hidden}.shell-banner{flex:none;min-height:var(--h-banner);background:var(--c-banner-bg);color:var(--c-banner-text);font-size:var(--fs-2xs);line-height:var(--lh-2xs);display:flex;align-items:center;justify-content:center;gap:8px;text-align:center;padding:6px 12px}.shell-banner a{font-weight:var(--fw-bold);color:inherit;text-decoration:underline}.shell-body{flex:1;min-height:0;display:flex;padding:var(--gutter) var(--gutter) var(--gutter) 0}.sidebar{width:var(--w-sidebar);margin-right:calc(var(--gutter) * -1);flex:none;display:flex;flex-direction:column;min-height:0;position:relative;z-index:3;padding:0 16px 0 12px;transition:width var(--dur-panel) ease}.sidebar-top{padding:0 0 8px;display:flex;flex-direction:column;gap:8px;flex:none}.ws-btn{display:flex;align-items:center;gap:10px;width:100%;height:48px;padding:0 12px 0 8px;background:var(--c-surface);border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;box-shadow:var(--shadow-panel);text-align:left;transition:border-color var(--dur-fast) var(--ease)}.ws-btn:hover{border-color:var(--c-accent-line)}.ws-btn .ws-name{flex:1;min-width:0;font-weight:var(--fw-bold);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.2}.ws-btn .ws-sub{display:block;font-weight:var(--fw-regular);font-size:var(--fs-2xs);color:var(--c-muted)}.ws-btn>svg{color:var(--c-icon);width:18px;height:18px;flex:none}.sidebar-search{display:flex;align-items:center;gap:8px;width:100%;height:34px;padding:0 10px;border:0;border-radius:var(--radius-lg);background:#0000000a;color:var(--c-muted);cursor:pointer;font-size:var(--fs-xs);transition:background-color var(--dur-fast) var(--ease)}:root[data-theme=dark] .sidebar-search{background:#ffffff0f}.sidebar-search:hover{background:var(--c-surface);color:var(--c-text)}.sidebar-search svg{width:18px;height:18px;color:var(--c-icon)}.sidebar-search .cmdk-kbd{margin-left:auto}.sidebar-scroll{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;margin:0 -8px;padding:4px 8px 8px}.nav{display:flex;flex-direction:column;gap:2px}.nav-link,.nav-group-btn{display:flex;align-items:center;gap:10px;width:100%;height:var(--h-nav-item);padding:0 8px;border-radius:var(--radius-md);border:0;background:transparent;color:var(--c-text);text-decoration:none!important;font-size:var(--fs-xs);line-height:var(--lh-xs);cursor:pointer;text-align:left;transition:background-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease);position:relative}.nav-link>svg,.nav-group-btn>svg.nav-ico{width:18px;height:18px;color:var(--c-icon);flex:none;transition:color var(--dur-fast) var(--ease)}.nav-link:hover,.nav-group-btn:hover{background:var(--c-surface);color:var(--c-accent)}.nav-link:hover>svg,.nav-group-btn:hover>svg.nav-ico{color:var(--c-accent)}.nav-link.active{background:var(--c-accent-weak);color:var(--c-accent);font-weight:var(--fw-bold)}.nav-link.active>svg{color:var(--c-accent)}.nav-label{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.nav-link .soon{margin-left:auto;font-size:10px;opacity:.55;font-weight:var(--fw-regular)}.nav-count{margin-left:auto;min-width:20px;height:18px;border-radius:9px;background:var(--c-danger);color:#fff;font-size:11px;font-weight:var(--fw-bold);display:grid;place-items:center;padding:0 6px}.nav-group{display:flex;flex-direction:column}.nav-group-btn .nav-chev{margin-left:auto;width:16px;height:16px;color:var(--c-icon);transition:transform var(--dur-fast) ease}.nav-group-btn[aria-expanded=true] .nav-chev{transform:rotate(90deg)}.nav-group-btn.has-active{font-weight:var(--fw-bold)}.nav-children{display:flex;flex-direction:column;gap:1px;margin:2px 0 4px 17px;padding-left:12px;border-left:1px solid var(--c-border-card)}.nav-children .nav-link{height:30px;padding-left:10px}.sidebar-foot{flex:none;padding:8px 0;display:flex;align-items:center;gap:2px;justify-content:space-between}.sidebar-foot .user-btn{display:flex;align-items:center;gap:8px;min-width:0;flex:1;border:0;background:none;padding:4px;border-radius:var(--radius-md);cursor:pointer;text-align:left}.sidebar-foot .user-btn:hover{background:var(--c-surface)}.sidebar-foot .user-name{min-width:0;font-size:var(--fs-xs);line-height:1.25}.sidebar-foot .user-name b{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:var(--fw-medium)}.sidebar-foot .user-name span{font-size:var(--fs-2xs);color:var(--c-muted);display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.avatar{width:32px;height:32px;border-radius:50%;background:var(--c-accent-weak);color:var(--c-accent);display:grid;place-items:center;font-weight:var(--fw-bold);font-size:var(--fs-xs);flex:none;border:0}.sidebar-handle{position:absolute;top:18px;right:-6px;z-index:5;width:28px;height:28px;border-radius:50%;border:1px solid var(--c-border);background:var(--c-surface);color:var(--c-icon);cursor:pointer;display:grid;place-items:center;box-shadow:var(--shadow-panel);transition:color var(--dur-fast),transform var(--dur-fast)}.sidebar-handle:hover{color:var(--c-accent)}.sidebar-handle svg{width:16px;height:16px}.sidebar-close{display:none}.shell.is-rail .sidebar{width:var(--w-sidebar-rail);padding:0 8px 0 12px}.shell.is-rail .ws-btn{padding:0;justify-content:center}.shell.is-rail .ws-btn .ws-name,.shell.is-rail .ws-btn>svg:last-child,.shell.is-rail .nav-label,.shell.is-rail .nav-chev,.shell.is-rail .nav-count,.shell.is-rail .soon,.shell.is-rail .sidebar-search span,.shell.is-rail .sidebar-search .cmdk-kbd,.shell.is-rail .user-name{display:none}.shell.is-rail .nav-link,.shell.is-rail .nav-group-btn,.shell.is-rail .sidebar-search{justify-content:center;padding:0}.shell.is-rail .sidebar-foot{flex-direction:column;gap:4px;align-items:center}.shell.is-rail .nav-group{gap:1px}.shell.is-rail .nav-children{margin:0;padding:0;border:0}.shell.is-rail .nav-children .nav-link{height:var(--h-nav-item);padding:0}.shell.is-rail .nav-group-btn{display:none}.rail-tip{position:relative}.shell.is-rail .nav-link:after,.shell.is-rail .ws-btn:after{content:attr(data-tip);position:absolute;left:calc(100% + 10px);top:50%;transform:translateY(-50%);background:var(--c-surface);color:var(--c-text);border:1px solid var(--c-border);box-shadow:var(--shadow-tooltip);border-radius:var(--radius-md);padding:4px 8px;font-size:var(--fs-xs);font-weight:var(--fw-regular);white-space:nowrap;opacity:0;pointer-events:none;z-index:var(--z-popover);transition:opacity var(--dur-fast)}.shell.is-rail .nav-link:hover:after,.shell.is-rail .ws-btn:hover:after{opacity:1}.shell.is-rail .sidebar-scroll{overflow:visible}.workspace{flex:1;min-width:0;display:flex;gap:var(--gutter);position:relative}.panel{background:var(--c-surface);border-radius:var(--radius-sm);box-shadow:var(--shadow-panel);min-width:0;display:flex;flex-direction:column;min-height:0;overflow:hidden;container-type:inline-size;container-name:panel}.main-panel{flex:1 1 0;transition:flex-basis var(--dur-panel) ease,flex-grow var(--dur-panel) ease}.panel-body{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;padding:8px 16px 16px;display:flex;flex-direction:column}.panel-body>*{flex:none}.panel-body>.table-card,.panel-body>.rt-wrap-grow{flex:1 1 360px}.panel-rail{display:none;flex:none;width:var(--w-panel-rail);border:0;background:var(--c-surface);border-radius:var(--radius-sm);box-shadow:var(--shadow-panel);cursor:pointer;align-items:center;padding:16px 0;flex-direction:column;gap:12px;color:var(--c-accent);font-weight:var(--fw-bold)}.panel-rail span{writing-mode:vertical-rl;transform:rotate(180deg);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-height:60vh}.panel-rail:hover{background:var(--c-accent-faint)}.workspace.has-side .main-panel{flex:0 0 calc(50% - var(--gutter) / 2)}.workspace.has-side.is-expanded .main-panel{display:none}.workspace.has-side.is-expanded .panel-rail{display:flex}.page-header{position:sticky;top:0;z-index:var(--z-sticky);background:var(--c-surface);display:flex;align-items:center;gap:8px;flex-wrap:nowrap;margin:-8px -16px 8px;padding:16px 16px 8px;min-height:61px;flex:none}.page-header .ph-title{flex:1;min-width:0}.page-header h1,.page-header h2{font-size:var(--fs-3xl);line-height:var(--lh-3xl);font-weight:var(--fw-bold);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:0}.page-header .ph-sub{font-size:var(--fs-xs);line-height:var(--lh-xs);color:var(--c-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.page-actions{display:flex;gap:4px;align-items:center;flex:none;position:relative}.menu-toggle,.ph-kebab{display:none}.page-header .ph-help{color:var(--c-muted-2)}@container panel (max-width: 560px){.page-header h1,.page-header h2{font-size:var(--fs-xl);line-height:var(--lh-xl)}.page-actions>:not(.btn-primary):not(.ph-kebab):not(.dropdown){display:none}.page-actions.is-open>:not(.btn-primary):not(.ph-kebab){display:inline-flex;position:absolute;right:0;top:calc(100% + 4px);z-index:20}.ph-kebab{display:inline-grid}}.drawer-backdrop{display:none}@media (max-width: 767px){.shell-body{padding:var(--gutter)}.sidebar{position:fixed;z-index:var(--z-modal);left:0;top:0;bottom:0;width:min(84vw,326px);max-width:326px;margin:0;padding:12px 12px 8px;background:var(--c-bg);transform:translate(-102%);transition:transform var(--dur-panel) ease;box-shadow:none}.shell.nav-open .sidebar{transform:none;box-shadow:var(--shadow-tooltip)}.shell.is-rail .sidebar{width:min(84vw,326px);padding:12px 12px 8px}.shell.is-rail .ws-btn .ws-name,.shell.is-rail .nav-label,.shell.is-rail .nav-chev,.shell.is-rail .user-name{display:revert}.shell.is-rail .nav-link,.shell.is-rail .nav-group-btn{justify-content:flex-start;padding:0 8px}.shell.is-rail .nav-group-btn{display:flex}.shell.is-rail .nav-link:after,.shell.is-rail .ws-btn:after{display:none}.shell.is-rail .sidebar-foot{flex-direction:row}.sidebar-handle{display:none}.sidebar-close{display:grid;position:absolute;right:-52px;top:50%;transform:translateY(-50%);width:41px;height:41px;border-radius:50%;border:0;background:var(--c-surface);color:var(--c-text);box-shadow:var(--shadow-medium);place-items:center;cursor:pointer;opacity:0;pointer-events:none;transition:opacity var(--dur-panel)}.shell.nav-open .sidebar-close{opacity:1;pointer-events:auto}.drawer-backdrop{display:block;position:fixed;top:0;right:0;bottom:0;left:0;z-index:calc(var(--z-modal) - 1);background:var(--c-overlay);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);opacity:0;pointer-events:none;transition:opacity var(--dur-panel)}.shell.nav-open .drawer-backdrop{opacity:1;pointer-events:auto}.menu-toggle{display:inline-grid}.panel-body{padding:4px 12px 16px}.page-header{margin:-4px -12px 8px;padding:12px 12px 8px;min-height:57px}.page-header h1,.page-header h2{font-size:var(--fs-2xl);line-height:var(--lh-2xl)}.workspace.has-side .main-panel{display:none}.panel-rail{display:none!important}}.nav-children[hidden]{display:none}.table-card{display:flex;flex-direction:column;min-height:0;background:var(--c-surface);border:2px solid var(--c-table-head-bg);border-radius:var(--radius-2xl);overflow:hidden;margin-bottom:8px;position:relative}.table-toolbar{display:flex;justify-content:space-between;align-items:center;gap:8px;padding:6px 8px 6px 12px;min-height:40px;flex-wrap:wrap;border-bottom:1px solid var(--c-table-head-line);flex:none}.table-toolbar .tt-left{display:flex;align-items:center;gap:8px;min-width:0;flex-wrap:wrap;color:var(--c-muted);font-size:var(--fs-xs)}.table-toolbar .tt-right{display:flex;align-items:center;gap:2px}.table-wrap{flex:1 1 auto;min-height:0;overflow:auto;position:relative}.data-table{width:100%;border-collapse:separate;border-spacing:0;font-size:var(--fs-md);line-height:var(--lh-md)}.data-table.is-resized{width:max-content;min-width:100%;table-layout:fixed}.data-table th{position:sticky;top:0;z-index:3;height:var(--h-thead);padding:0 12px;background:var(--c-table-head-bg);color:var(--c-table-head-text);font-size:var(--fs-2xs);line-height:var(--lh-2xs);font-weight:var(--fw-regular);text-transform:uppercase;text-align:left;white-space:nowrap;-webkit-user-select:none;user-select:none;border-right:1px solid var(--c-table-head-line);transition:background-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}.data-table th:last-child{border-right:0}.data-table th.sortable{cursor:pointer}.data-table th.sortable:hover{color:var(--c-text)}.data-table th.sorted{background:var(--c-table-sorted-bg);color:var(--c-accent);font-weight:var(--fw-medium)}.data-table th .th-in{display:flex;align-items:center;gap:4px;min-width:0;height:100%}.data-table th.is-right .th-in{justify-content:flex-end}.data-table th .th-label{overflow:hidden;text-overflow:ellipsis}.data-table th .sort-arrow{width:14px;height:14px;flex:none}.data-table th .th-grip{width:14px;height:14px;flex:none;margin-left:-4px;opacity:0;cursor:grab;color:var(--c-muted);transition:opacity var(--dur-fast)}.data-table th:hover .th-grip{opacity:.8}.data-table th .th-resize{position:absolute;right:-1px;top:0;bottom:0;width:6px;cursor:col-resize;z-index:4;opacity:0;background:var(--c-accent);background-clip:content-box;padding:0 2px;transition:opacity var(--dur-fast)}.data-table th:hover .th-resize,.data-table th .th-resize.is-active{opacity:.9}.data-table th.is-drop{box-shadow:inset 3px 0 0 var(--c-accent)}.data-table .col-check{width:45px;min-width:45px;max-width:45px;padding-left:14px;padding-right:0}.data-table thead th.col-check{border-top-left-radius:var(--radius-xl)}.data-table td{padding:4px 12px;min-height:var(--h-row);height:var(--h-row);border-bottom:1px solid var(--c-table-stripe);vertical-align:middle;background:inherit;white-space:nowrap;max-width:260px;overflow:hidden;text-overflow:ellipsis}.data-table tbody tr{background:var(--c-surface);transition:background-color var(--dur-fast) var(--ease);position:relative}.data-table tbody tr:nth-child(2n){background:var(--c-table-stripe)}.data-table tbody tr:hover{background:var(--c-table-hover)}.data-table tbody tr.is-selected{background:var(--c-table-selected)}.data-table tbody tr.is-selected td.col-check{box-shadow:inset 2px 0 0 var(--c-accent)}.data-table tbody tr.is-active,.data-table tbody tr.is-active:hover{background:var(--c-table-active)}.data-table tbody tr.is-disabled{opacity:.5}.data-table tr.clickable{cursor:pointer}.data-table tbody tr:last-child td{border-bottom:0}.data-table tr.is-planned td{color:var(--c-muted)}.data-table td .cell-sub{display:block;font-size:var(--fs-xs);line-height:var(--lh-xs);color:var(--c-muted)}.data-table td.is-clip,.data-table.is-resized td{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.data-table tfoot td{position:sticky;bottom:0;z-index:2;font-weight:var(--fw-bold);background:var(--c-table-head-bg);border-top:1px solid var(--c-table-head-line);height:44px}.data-table .st-1,.data-table .st-2{position:sticky;z-index:2;background:inherit}.data-table thead .st-1,.data-table thead .st-2{z-index:5;background:var(--c-table-head-bg)}.data-table thead th.sorted.st-2{background:var(--c-table-sorted-bg)}.data-table .st-1{left:0}.data-table .st-2{left:45px}.table-loading-note{position:absolute;left:0;right:0;top:110px;text-align:center;z-index:6;pointer-events:none}.data-table .st-last:after{content:"";position:absolute;top:0;bottom:0;right:-20px;width:20px;pointer-events:none;opacity:0;transition:opacity var(--dur-fast);background:linear-gradient(90deg,rgba(0,0,0,.08),transparent)}.table-wrap.is-scrolled .st-last:after{opacity:1}.data-table tfoot .st-1,.data-table tfoot .st-2{z-index:5;background:var(--c-table-head-bg)}.data-table td.col-actions{width:0;padding:0;position:sticky;right:0;overflow:visible;background:transparent;z-index:2;border-bottom-color:transparent}.data-table th.col-actions-h{width:0;padding:0;border:0}.row-actions{position:absolute;right:4px;top:50%;transform:translateY(-50%);display:none;align-items:center;gap:2px;padding:0 4px 0 36px;height:100%;background:linear-gradient(90deg,transparent,var(--c-table-hover) 28px)}.data-table tbody tr:hover .row-actions,.data-table tbody tr:focus-within .row-actions{display:flex}.row-actions .icon-btn{background:var(--c-surface);box-shadow:0 0 0 1px var(--c-border);border-radius:var(--radius-md)}.row-actions .icon-btn:hover:not(:disabled){background:var(--c-surface);box-shadow:0 0 0 1px var(--c-accent-line)}@media (hover: none){.row-actions{display:none!important}}.table-summary{padding:10px 16px;border-top:1px solid var(--c-table-head-line);background:var(--c-table-head-bg);display:flex;gap:8px 24px;flex-wrap:wrap;font-size:var(--fs-xs);flex:none}.table-empty{text-align:center;padding:56px 16px;color:var(--c-muted)}.table-loading td{height:var(--h-row)}.table-loading .skeleton{height:16px}.pager{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;border-top:1px solid var(--c-table-head-line);flex-wrap:wrap;flex:none;background:var(--c-surface);font-size:var(--fs-xs)}.pager-pages{display:flex;gap:6px;align-items:center}.pager-link{width:29px;height:28px;border-radius:var(--radius-md);border:0;background:none;display:grid;place-items:center;cursor:pointer;color:var(--c-icon);transition:all var(--dur-fast)}.pager-link:hover:not(:disabled){background:#091e4214;color:var(--c-accent)}.pager-link:disabled{opacity:.35;cursor:default}.pager-link svg{width:20px;height:20px}.pager-input{width:48px;height:28px;text-align:center;border:1px solid var(--c-border);background:var(--c-field);border-radius:var(--radius-md);font-size:var(--fs-xs);font-variant-numeric:tabular-nums}.pager-input:focus{outline:none;border-color:var(--c-accent-line)}.pager-total{color:var(--c-muted);font-size:var(--fs-xs);white-space:nowrap}.pager-size{display:flex;align-items:center;gap:8px;color:var(--c-muted)}.pager-size .input{min-height:30px;background-color:var(--c-surface-2);border-color:transparent;color:var(--c-text-strong);padding-right:28px}.bulkbar{position:fixed;left:50%;bottom:24px;transform:translate(-50%);z-index:var(--z-bulkbar);display:flex;align-items:center;gap:4px;background:#000;color:#fff;border-radius:var(--radius-xl);padding:8px;box-shadow:var(--shadow-medium);min-width:min(414px,calc(100vw - 24px));max-width:calc(100vw - 24px);animation:slide-up var(--dur-panel) ease}:root[data-theme=dark] .bulkbar{background:#f2f4f7;color:#22222b}.bulkbar .bb-info{flex:1;min-width:0;display:flex;align-items:center;gap:8px;padding:0 8px;font-size:var(--fs-xs);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bulkbar .bb-sum{font-weight:var(--fw-bold);font-variant-numeric:tabular-nums}.bulkbar .bb-dot{opacity:.5}.bulkbar .bb-btn{display:inline-flex;align-items:center;gap:6px;height:33px;padding:0 10px;border:0;background:transparent;color:inherit;border-radius:var(--radius-md);cursor:pointer;font-size:var(--fs-xs);white-space:nowrap;transition:background-color var(--dur-fast)}.bulkbar .bb-btn:hover:not(:disabled){background:#ffffff29}:root[data-theme=dark] .bulkbar .bb-btn:hover:not(:disabled){background:#0000001a}.bulkbar .bb-btn:disabled{opacity:.5}.bulkbar .bb-btn svg{width:18px;height:18px}.bulkbar .bb-btn.is-danger{color:#ff8e8e}.bulkbar .bb-x{width:33px;padding:0;justify-content:center}.bb-wrap{display:flex;gap:2px;overflow-x:auto;scrollbar-width:none}.colmenu{width:300px;max-width:calc(100vw - 32px)}.colmenu-list{max-height:50vh;overflow-y:auto;display:flex;flex-direction:column;gap:1px}.colmenu-row{display:flex;align-items:center;gap:6px;min-height:32px;padding:2px 6px;border-radius:var(--radius-md);font-size:var(--fs-xs);cursor:default}.colmenu-row:hover{background:#f1f2f4}:root[data-theme=dark] .colmenu-row:hover{background:var(--c-surface-2)}.colmenu-row.is-over{box-shadow:inset 0 2px 0 var(--c-accent)}.colmenu-row .grip{color:var(--c-faint);cursor:grab;display:grid}.colmenu-row .grip svg{width:16px;height:16px}.colmenu-row .eye{border:0;background:none;cursor:pointer;display:grid;color:var(--c-icon);padding:2px;border-radius:6px}.colmenu-row .eye:hover{color:var(--c-accent)}.colmenu-row .eye svg{width:18px;height:18px}.colmenu-row.is-off .name{color:var(--c-faint);text-decoration:line-through}.colmenu-row .name{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.colmenu-row .eye:disabled{opacity:.35;cursor:not-allowed}.rt-wrap{overflow:auto;max-height:calc(100vh - 230px);background:var(--c-surface);border:2px solid var(--c-table-head-bg);border-radius:var(--radius-2xl);position:relative}.rt-table{border-collapse:separate;border-spacing:0;width:100%;font-variant-numeric:tabular-nums;font-size:var(--fs-md);line-height:var(--lh-md)}.rt-table th,.rt-table td{padding:4px 12px;height:var(--h-row);border-bottom:1px solid var(--c-table-stripe);white-space:nowrap;font-weight:var(--fw-regular);text-align:left;background:var(--c-surface)}.rt-table td.num,.rt-table th.num{min-width:130px;width:130px}.rt-table thead th{position:sticky;top:0;z-index:3;height:var(--h-thead);padding:0 12px;background:var(--c-table-head-bg);font-weight:var(--fw-regular);font-size:var(--fs-2xs);text-transform:uppercase;color:var(--c-table-head-text);border-bottom:1px solid var(--c-table-head-line);border-right:1px solid var(--c-table-head-line)}.rt-table thead tr.rt-sub th{top:36px;font-weight:var(--fw-regular)}.rt-table th.num,.rt-table td.num{text-align:right}.rt-table .rt-first{position:sticky;left:0;z-index:2;min-width:250px;width:250px;max-width:360px;background:var(--c-surface);border-right:1px solid var(--c-table-head-line);text-align:left;overflow:hidden;text-overflow:ellipsis}.rt-table thead .rt-first{z-index:4;background:var(--c-table-head-bg)}.rt-table.is-scrolled .rt-first{box-shadow:var(--shadow-sticky)}.rt-total-h,.rt-table td:last-child{background:var(--c-table-head-bg)}.rt-table tbody tr:hover td,.rt-table tbody tr:hover th{background:var(--c-table-hover)}.rt-name{display:flex;align-items:center;gap:4px;min-width:0}.rt-caret{border:0;background:none;cursor:pointer;width:22px;height:22px;color:var(--c-icon);padding:0;flex:none;display:grid;place-items:center;border-radius:6px;transition:transform var(--dur-fast),color var(--dur-fast)}.rt-caret:hover{color:var(--c-accent);background:var(--c-accent-faint)}.rt-caret svg{width:16px;height:16px}.rt-caret-pad{width:22px;flex:none}.rt-bold th,.rt-bold td{font-weight:var(--fw-bold);background:var(--c-surface-2)}.rt-bold .rt-first{background:var(--c-surface-2)}.rt-muted th,.rt-muted td{color:var(--c-muted);font-size:var(--fs-xs)}.rt-divider th,.rt-divider td{border-bottom:2px solid var(--c-border-strong)}.rt-btn{border:0;background:none;padding:0;font:inherit;color:var(--c-accent);cursor:pointer;text-decoration:none;font-variant-numeric:tabular-nums}.rt-btn:hover{text-decoration:underline}.rt-plan{color:var(--c-ai);font-style:italic}.rt-foot th,.rt-foot td{position:sticky;bottom:0;z-index:3;font-weight:var(--fw-bold);background:var(--c-table-head-bg);border-top:2px solid var(--c-border-strong)}.rt-foot .rt-first{z-index:4}@media (max-width: 767px){.rt-table .rt-first{min-width:170px;width:170px}.rt-table td.num,.rt-table th.num{min-width:110px;width:110px}}@media (max-width: 767px){.data-table .st-2,.data-table .st-1:not(.col-check){max-width:150px;overflow:hidden;text-overflow:ellipsis}.table-toolbar{padding-left:8px}}.filter-bar{display:flex;flex-direction:column;gap:8px;margin-bottom:12px;flex:none}.fb-row{display:flex;flex-wrap:wrap;gap:8px;align-items:center}.fb-row .fb-spacer{flex:1}.filter-search{width:250px}.fb-saved svg.star{color:#f5a623;fill:#f5a623}.fb-toggle .fb-count{background:var(--c-accent);color:#fff;border-radius:9px;min-width:18px;height:18px;font-size:11px;display:inline-grid;place-items:center;padding:0 5px;margin-left:2px}.filter-right{margin-left:auto;display:flex;gap:12px;align-items:center}.pill{display:inline-flex;align-items:center;height:var(--h-pill);border:1px solid var(--c-border-soft);border-radius:var(--radius-md);background:transparent;color:#475266;font-size:var(--fs-xs);line-height:var(--lh-xs);max-width:100%;transition:background-color var(--dur-fast) var(--ease),border-color var(--dur-fast) var(--ease),color var(--dur-fast) var(--ease)}:root[data-theme=dark] .pill{color:var(--c-muted-2)}.pill:hover{background:var(--c-accent-faint)}.pill.is-active{color:var(--c-accent);background:var(--c-accent-faint);border-color:var(--c-accent-line)}.pill.is-active:hover{background:var(--c-accent-weak)}.pill.is-open{border-color:var(--c-accent)}.pill.is-invalid{background:var(--c-danger-bg);border-color:var(--c-danger-line);color:var(--c-danger)}.pill-main{display:inline-flex;align-items:center;gap:6px;border:0;background:none;padding:0 12px;height:100%;cursor:pointer;color:inherit;border-radius:inherit;max-width:320px}.pill-main>svg{width:16px;height:16px;color:var(--c-icon);flex:none}.pill.is-active .pill-main>svg{color:var(--c-accent)}.pill-main .pill-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pill-main .pill-caret{width:14px;height:14px;margin-left:2px;opacity:.7}.pill-x{border:0;background:none;cursor:pointer;display:grid;place-items:center;height:100%;padding:0 8px 0 0;color:var(--c-accent);opacity:.7}.pill-x:hover{opacity:1;color:var(--c-danger)}.pill-x svg{width:14px;height:14px}.pill.is-active .pill-main{padding-right:6px}.pill-more .pill-main{padding:0 10px}.facet{width:var(--w-popover);max-width:calc(100vw - 48px);display:flex;flex-direction:column;gap:8px}.facet-title{font-size:var(--fs-2xs);line-height:var(--lh-2xs);color:var(--c-faint);text-transform:uppercase;letter-spacing:.03em;padding:0 4px}.facet .input{min-height:36px}.facet-actions{display:flex;justify-content:space-between;padding:0 4px;font-size:var(--fs-xs)}.facet-link{border:0;background:none;padding:0;cursor:pointer;color:var(--c-accent);font-size:var(--fs-xs)}.facet-link:hover{text-decoration:underline}.facet-link.is-muted{color:var(--c-muted)}.facet-link:disabled{opacity:.4;cursor:default;text-decoration:none}.facet-opt{display:flex;align-items:center;gap:8px;min-height:32px;padding:4px 8px;border-radius:var(--radius-md);cursor:pointer;font-size:var(--fs-xs);line-height:var(--lh-xs)}.facet-opt:hover{background:#f1f2f4}:root[data-theme=dark] .facet-opt:hover{background:var(--c-surface-2)}.facet-opt .facet-label{flex:1;min-width:0;overflow-wrap:anywhere}.facet-opt .facet-count{color:var(--c-muted);font-size:var(--fs-2xs);font-variant-numeric:tabular-nums}.facet-more{width:100%;justify-content:center}.amount-editor{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:300px;max-width:calc(100vw - 48px)}.amount-editor .field-label{font-size:var(--fs-2xs);color:var(--c-muted)}.amount-editor .field:after{display:none!important}.filter-editor{min-width:260px}.list-editor{display:flex;flex-direction:column;gap:6px}.saved-filters{width:320px;max-width:calc(100vw - 48px);display:flex;flex-direction:column;gap:4px}.saved-row{display:flex;align-items:center;gap:2px}.saved-row .menu-item{flex:1}.saved-new{display:flex;flex-direction:column;gap:8px;border-top:1px solid var(--c-border);padding-top:8px;margin-top:4px}.saved-empty{padding:12px 8px;color:var(--c-muted);font-size:var(--fs-xs);text-align:center}@media (max-width: 767px){.filter-search{width:100%;flex:1 1 100%}.search-input{width:100%}}.side-slot{flex:0 0 0;width:0;min-width:0;overflow:hidden;display:none;background:transparent;box-shadow:none;position:relative}.workspace.has-side .side-slot{display:flex;flex:1 1 0;width:auto;overflow:visible;flex-direction:column;background:transparent;gap:var(--gutter)}.side-panel{flex:1 1 0;min-height:0;background:var(--c-surface);border-radius:var(--radius-sm);box-shadow:var(--shadow-panel);display:flex;flex-direction:column;overflow:hidden;animation:panel-in var(--dur-panel) ease;container-type:inline-size;container-name:sidepanel}@keyframes panel-in{0%{transform:translate(32px);opacity:0}to{transform:none;opacity:1}}.side-head{display:flex;align-items:center;gap:4px;padding:16px 16px 8px;flex:none;min-height:60px}.side-head h2,.side-head h4{flex:1;min-width:0;font-size:var(--fs-xl);line-height:var(--lh-xl);font-weight:var(--fw-bold);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;margin:0}.side-body{flex:1;min-height:0;overflow-y:auto;padding:8px 16px 16px}.side-foot{flex:none;display:flex;justify-content:flex-end;align-items:center;gap:8px;padding:16px;border-top:1px solid var(--c-border);background:var(--c-surface);position:relative;z-index:2}.side-foot .foot-left{margin-right:auto;display:flex;gap:8px}.side-panel.is-floating{position:fixed;top:8px;bottom:8px;right:8px;width:min(50vw,720px);z-index:var(--z-modal);box-shadow:var(--shadow-tooltip)}.side-panel .form-grid{column-gap:var(--sp-6)}@container sidepanel (max-width: 480px){.side-panel .form-grid{grid-template-columns:1fr}}@media (max-width: 767px){.workspace.has-side .side-slot{position:fixed;top:0;right:0;bottom:0;left:0;z-index:var(--z-modal);background:var(--c-bg);padding:var(--gutter)}.side-panel{animation:sheet-in var(--dur-panel) ease}.side-panel.is-floating{left:0;width:100vw;border-radius:0;top:0;bottom:0;right:0}.side-head{padding:12px 12px 8px}.side-body{padding:8px 12px 16px}.side-foot{padding:12px}.side-head .btn-expand{display:none}}@keyframes sheet-in{0%{transform:translateY(24px);opacity:0}to{transform:none;opacity:1}}.donut-center{font-size:var(--fs-lg);font-weight:var(--fw-bold);fill:var(--c-text)}.kpi{display:flex;flex-direction:column;gap:2px}.kpi-value{font-size:var(--fs-2xl);line-height:var(--lh-2xl);font-weight:var(--fw-bold);font-variant-numeric:tabular-nums}.kpi-label{color:var(--c-muted);font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.02em}.kpi-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin-bottom:16px}.summary-block{background:var(--c-surface-2);border-radius:var(--radius-xl);padding:16px;margin-bottom:16px}.summary-block .kpi-label{font-family:var(--font-mono);font-size:var(--fs-xs)}.summary-block .kpi-value{font-size:var(--fs-4xl);line-height:var(--lh-4xl);font-weight:var(--fw-medium);letter-spacing:var(--ls-display)}@media (max-width: 767px){.summary-block .kpi-value,.money--big{font-size:34px;line-height:40px}.money--hero{font-size:40px;line-height:48px}}.cat-tree .tree-row{padding:7px 8px;border:1px solid transparent;min-height:40px;font-size:var(--fs-md);line-height:var(--lh-md)}.cat-tree .tree-row.drop-in{background:var(--c-accent-weak);border-color:var(--c-accent)}.cat-tree .tree-row.drop-before{box-shadow:0 -2px 0 var(--c-accent)}.cat-tree .tree-row.drop-after{box-shadow:0 2px 0 var(--c-accent)}.cat-tree .tree-row.dragging{opacity:.4}.cat-tree .row-actions{display:none;margin-left:auto;gap:2px;position:static;transform:none;background:none;height:auto;padding:0}.cat-tree .tree-row:hover .row-actions{display:flex}.drag-handle{cursor:grab;color:var(--c-faint);-webkit-user-select:none;user-select:none}.tx-parts{display:flex;flex-direction:column;gap:12px}.tx-part{border:1px solid var(--c-border);border-radius:var(--radius-xl);padding:12px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0 12px;background:var(--c-surface-2)}.tx-part .full{grid-column:1 / -1}@media (max-width: 900px){.tx-part{grid-template-columns:1fr 1fr}}.split-warn{color:var(--c-danger);font-size:var(--fs-2xs)}.split-ok{color:var(--c-income);font-size:var(--fs-2xs)}.account-group-title{padding:8px 12px;background:var(--c-surface-2);font-weight:var(--fw-medium);font-size:var(--fs-2xs);text-transform:uppercase;letter-spacing:.04em;color:var(--c-muted)}.callout{background:var(--c-info-bg);color:var(--c-info-text);border-radius:var(--radius-md);padding:8px 12px}.kpi-row>.card,.kpi-row>.card+.card{margin-top:0}@media (max-width: 767px){.kpi-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.kpi-row .kpi-value{font-size:20px;line-height:26px}.kpi-row .card{padding:0}}
