:root{--font-ui: "Geist", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--font-num: "Geist", ui-sans-serif, system-ui, sans-serif;--fs-xs: .75rem;--fs-sm: .8125rem;--fs-md: .9375rem;--fs-lg: 1.125rem;--fs-xl: 1.375rem;--fs-2xl: 1.75rem;--fs-3xl: 2.25rem;--lh-tight: 1.2;--lh-body: 1.5;--s-1: 4px;--s-2: 8px;--s-3: 12px;--s-4: 16px;--s-5: 20px;--s-6: 24px;--s-8: 32px;--s-10: 40px;--s-12: 48px;--s-16: 64px;--r-sm: 6px;--r-md: 10px;--r-lg: 14px;--r-pill: 999px;--sidebar-w: 248px;--content-max: 1240px;--tabbar-h: 60px;--ease: cubic-bezier(.2,.7,.2,1);--dur: .16s;--bg: #eef3f8;--surface: #ffffff;--surface-2: #e4ecf5;--surface-3: #d7e2ee;--ink: #0a1a2d;--ink-2: #3b4e66;--ink-3: #566a82;--line: #d2dde9;--line-strong: #b1c2d5;--brand: #0b3558;--brand-hover: #072845;--brand-ink: #f2f7fc;--brand-soft: #dae7f4;--accent: #0e9fb0;--accent-text: #0a6c78;--accent-soft: #d3f0f3;--accent-ink: #032530;--ochre: #b8862b;--ochre-text: #7d5a10;--ochre-soft: #f5ecd8;--pos: #1c6e45;--pos-soft: #dcefe3;--neg: #a8352a;--neg-soft: #f7e0dc;--warn: #8a5800;--warn-soft: #f7ebcf;--info: #1f5f99;--info-soft: #dceaf7;--transfer: #5a5f98;--focus: #1f74e0;--shadow-1: 0 1px 2px rgba(7, 26, 48, .07), 0 1px 1px rgba(7, 26, 48, .04);--shadow-2: 0 8px 28px rgba(7, 26, 48, .16), 0 2px 6px rgba(7, 26, 48, .08);--scrim: rgba(4, 16, 32, .45);--c-income: #2f7d5a;--c-expense: #b2553f;--c-personal: #3a78c9;--c-business: #b8862b;--c-band: rgba(14, 159, 176, .16);--c-grid: #e0e8f1;color-scheme:light}@media (prefers-color-scheme: dark){:root:not([data-theme=light]){--bg: #06101d;--surface: #0c1828;--surface-2: #112236;--surface-3: #172c44;--ink: #e2ecf7;--ink-2: #b0c2d6;--ink-3: #8ba1b9;--line: #1b2e45;--line-strong: #2a4260;--brand: #8fcfff;--brand-hover: #b0ddff;--brand-ink: #04101e;--brand-soft: #122f4a;--accent: #3dd6e0;--accent-text: #6fe3ea;--accent-soft: #0e3540;--accent-ink: #03222a;--ochre: #e2bd6a;--ochre-text: #ebcb84;--ochre-soft: #33291a;--pos: #6cc996;--pos-soft: #1d3428;--neg: #f1907f;--neg-soft: #3d2420;--warn: #e8b85a;--warn-soft: #3a2f1a;--info: #8cc2f0;--info-soft: #13283d;--transfer: #a9addf;--focus: #7fb6ff;--shadow-1: 0 1px 2px rgba(0,0,0,.4);--shadow-2: 0 12px 32px rgba(0,0,0,.5);--scrim: rgba(0,0,0,.6);--c-income: #6cc996;--c-expense: #ef9a7f;--c-personal: #8db8f0;--c-business: #e0b44c;--c-band: rgba(61, 214, 224, .16);--c-grid: #152739;color-scheme:dark}}:root[data-theme=dark]{--bg: #06101d;--surface: #0c1828;--surface-2: #112236;--surface-3: #172c44;--ink: #e2ecf7;--ink-2: #b0c2d6;--ink-3: #8ba1b9;--line: #1b2e45;--line-strong: #2a4260;--brand: #8fcfff;--brand-hover: #b0ddff;--brand-ink: #04101e;--brand-soft: #122f4a;--accent: #3dd6e0;--accent-text: #6fe3ea;--accent-soft: #0e3540;--accent-ink: #03222a;--ochre: #e2bd6a;--ochre-text: #ebcb84;--ochre-soft: #33291a;--pos: #6cc996;--pos-soft: #1d3428;--neg: #f1907f;--neg-soft: #3d2420;--warn: #e8b85a;--warn-soft: #3a2f1a;--info: #8cc2f0;--info-soft: #13283d;--transfer: #a9addf;--focus: #7fb6ff;--shadow-1: 0 1px 2px rgba(0,0,0,.4);--shadow-2: 0 12px 32px rgba(0,0,0,.5);--scrim: rgba(0,0,0,.6);--c-income: #6cc996;--c-expense: #ef9a7f;--c-personal: #8db8f0;--c-business: #e0b44c;--c-band: rgba(61, 214, 224, .16);--c-grid: #152739;color-scheme:dark}*,*:before,*:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}html,body{margin:0;padding:0}body{font-family:var(--font-ui);font-size:var(--fs-md);line-height:var(--lh-body);color:var(--ink);background:var(--bg);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}h1,h2,h3,h4{margin:0;line-height:var(--lh-tight);font-weight:600;letter-spacing:-.01em}h1{font-size:var(--fs-2xl);letter-spacing:-.02em}h2{font-size:var(--fs-xl)}h3{font-size:var(--fs-lg)}h4{font-size:var(--fs-md)}p{margin:0 0 var(--s-3);max-width:72ch}p:last-child{margin-bottom:0}a{color:var(--brand);text-underline-offset:2px}a:hover{color:var(--brand-hover)}small{font-size:var(--fs-sm)}code{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9em;background:var(--surface-2);padding:1px 4px;border-radius:4px}button,input,select,textarea{font:inherit;color:inherit}img,svg{display:block;max-width:100%}table{border-collapse:collapse;width:100%}hr{border:0;border-top:1px solid var(--line);margin:var(--s-6) 0}:focus-visible{outline:2px solid var(--focus);outline-offset:2px;border-radius:4px}.num,.tnum{font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1}.right{text-align:right}.muted{color:var(--ink-3)}.ink-2{color:var(--ink-2)}.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}.stack{display:flex;flex-direction:column;gap:var(--s-4)}.stack-sm{display:flex;flex-direction:column;gap:var(--s-2)}.stack-lg{display:flex;flex-direction:column;gap:var(--s-8)}.row{display:flex;align-items:center;gap:var(--s-3);flex-wrap:wrap}.row-between{display:flex;align-items:center;justify-content:space-between;gap:var(--s-3);flex-wrap:wrap}.grow{flex:1 1 auto;min-width:0}.grid-2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--s-6)}.grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-4)}.grid-auto{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--s-4)}@media (max-width: 1100px){.grid-3{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (max-width: 860px){.grid-2,.grid-3{grid-template-columns:minmax(0,1fr)}}.section-title{font-size:var(--fs-lg);font-weight:600;margin-bottom:var(--s-3)}.help{font-size:var(--fs-sm);color:var(--ink-3)}.pos{color:var(--pos)}.neg{color:var(--neg)}.table-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--line);border-radius:var(--r-md);background:var(--surface)}.tbl{width:100%;font-size:var(--fs-sm)}.tbl th,.tbl td{padding:10px 14px;text-align:left;border-bottom:1px solid var(--line);vertical-align:middle}.tbl thead th{font-weight:500;color:var(--ink-3);background:var(--surface);position:sticky;top:0;z-index:1;white-space:nowrap}.tbl tbody tr:last-child td{border-bottom:0}.tbl td.num,.tbl th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.tbl tfoot td{font-weight:600;border-top:1px solid var(--line-strong);border-bottom:0}.tbl tr.is-clickable{cursor:pointer}.tbl tr.is-clickable:hover td{background:var(--surface-2)}.tbl tr:focus-visible{outline:2px solid var(--focus);outline-offset:-2px}.panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg);padding:var(--s-6)}.panel-flush{background:var(--surface);border:1px solid var(--line);border-radius:var(--r-lg)}.panel+.panel{margin-top:0}.notice{display:flex;gap:var(--s-3);align-items:flex-start;padding:var(--s-3) var(--s-4);border-radius:var(--r-md);background:var(--surface-2);color:var(--ink-2);font-size:var(--fs-sm)}.notice.warn{background:var(--warn-soft);color:var(--ink)}.notice.danger{background:var(--neg-soft);color:var(--ink)}.notice.info{background:var(--info-soft);color:var(--ink)}.notice.estimate{background:var(--ochre-soft);color:var(--ink)}.notice>svg{flex:none;margin-top:2px}.field-row{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:var(--s-4);align-items:end}.chip{display:inline-flex;align-items:center;gap:6px;padding:2px 8px;border-radius:var(--r-pill);font-size:var(--fs-xs);line-height:18px;background:var(--surface-2);color:var(--ink-2);white-space:nowrap;max-width:100%}.chip .dot{width:8px;height:8px;border-radius:50%;flex:none}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}.control{width:100%;height:38px;padding:0 12px;border-radius:var(--r-md);border:1px solid var(--line-strong);background:var(--surface);color:var(--ink);font-size:var(--fs-md);transition:border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}textarea.control{height:auto;padding:10px 12px;resize:vertical;line-height:1.45}.control:hover:not(:disabled){border-color:var(--ink-3)}.control:focus{outline:none;border-color:var(--focus);box-shadow:0 0 0 3px color-mix(in srgb,var(--focus) 25%,transparent)}.control:disabled{background:var(--surface-2);color:var(--ink-3)}.control[aria-invalid=true]{border-color:var(--neg)}.control::placeholder{color:var(--ink-3);opacity:.8}@media (max-width: 767px){.control{font-size:16px}}.md-table{overflow-x:auto;margin:8px 0;border:1px solid var(--line);border-radius:var(--r-md)}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;height:38px;padding:0 14px;border-radius:var(--r-md);border:1px solid transparent;font-weight:500;font-size:var(--fs-sm);text-decoration:none;cursor:pointer;white-space:nowrap;transition:background var(--dur) var(--ease),border-color var(--dur) var(--ease),color var(--dur) var(--ease);-webkit-user-select:none;user-select:none}.btn-sm{height:32px;padding:0 10px;gap:6px;border-radius:var(--r-sm)}.btn.block{display:flex;width:100%}.btn:disabled{opacity:.55;cursor:not-allowed}.btn-primary{background:var(--brand);color:var(--brand-ink)}.btn-primary:not(:disabled):hover{background:var(--brand-hover);color:var(--brand-ink)}.btn-secondary{background:var(--surface);border-color:var(--line-strong);color:var(--ink)}.btn-secondary:not(:disabled):hover{background:var(--surface-2);color:var(--ink)}.btn-ghost{background:transparent;color:var(--ink-2)}.btn-ghost:not(:disabled):hover{background:var(--surface-2);color:var(--ink)}.btn-danger{background:var(--neg);color:#fff}.btn-danger:not(:disabled):hover{filter:brightness(1.08);color:#fff}.btn-link{background:none;border:0;padding:0;height:auto;color:var(--brand);text-decoration:underline;text-underline-offset:2px}.spinner{width:14px;height:14px;border-radius:50%;border:2px solid currentColor;border-right-color:transparent;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.icon-btn{border:0;background:none;color:var(--ink-3);cursor:pointer;padding:6px;border-radius:6px;display:grid;place-items:center}.icon-btn:hover{background:var(--surface-2);color:var(--ink)}.badge{display:inline-flex;align-items:center;gap:4px;border-radius:var(--r-pill);font-weight:500;white-space:nowrap;line-height:1;font-size:11.5px;padding:4px 8px}.badge.md{font-size:var(--fs-sm);padding:5px 10px}.t-neutral{background:var(--surface-2);color:var(--ink-2)}.t-pos{background:var(--pos-soft);color:var(--pos)}.t-neg{background:var(--neg-soft);color:var(--neg)}.t-warn{background:var(--warn-soft);color:var(--warn)}.t-info{background:var(--info-soft);color:var(--info)}.t-brand{background:var(--brand-soft);color:var(--brand)}.t-accent{background:var(--accent-soft);color:var(--accent-text)}.t-estimate{background:var(--ochre-soft);color:var(--ochre-text);border:1px dashed var(--ochre)}.field{display:flex;flex-direction:column;gap:6px;min-width:0}.field-label{font-size:var(--fs-sm);font-weight:500;color:var(--ink-2);display:flex;gap:6px;align-items:baseline}.field-label .opt{font-weight:400;color:var(--ink-3);font-size:var(--fs-xs)}.field-hint{font-size:var(--fs-xs);color:var(--ink-3)}.field-error{font-size:var(--fs-xs);color:var(--neg)}select.control{-webkit-appearance:none;-moz-appearance:none;appearance:none;padding-right:34px;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='%23566a82' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 10px center}.prefix-wrap{position:relative}.prefix-wrap .prefix{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--ink-3);font-size:var(--fs-sm);pointer-events:none}.prefix-wrap .control{padding-left:26px}.tg{display:flex;align-items:center;gap:10px;cursor:pointer;position:relative;font-size:var(--fs-sm)}.tg.disabled{opacity:.55;cursor:not-allowed}.tg-text{display:flex;flex-direction:column;gap:2px;flex:1 1 auto;min-width:0}.tg-label{color:var(--ink);font-weight:500}.tg input{position:absolute;opacity:0;right:0;width:40px;height:22px;margin:0;cursor:pointer}.track{width:38px;height:22px;border-radius:999px;background:var(--surface-3);border:1px solid var(--line-strong);position:relative;flex:none;transition:background var(--dur) var(--ease)}.thumb{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:50%;background:var(--surface);box-shadow:var(--shadow-1);transition:transform var(--dur) var(--ease)}.tg input:checked~.track{background:var(--brand);border-color:var(--brand)}.tg input:checked~.track .thumb{transform:translate(16px)}.tg input:focus-visible~.track{outline:2px solid var(--focus);outline-offset:2px}.tg-state{font-size:var(--fs-xs);color:var(--ink-3);width:22px}.seg{display:inline-flex;background:var(--surface-2);border-radius:var(--r-md);padding:3px;gap:2px;flex-wrap:wrap}.seg button{border:0;background:none;padding:6px 12px;border-radius:7px;font-size:var(--fs-sm);font-weight:500;color:var(--ink-2);cursor:pointer}.seg button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-1)}.tabs{display:flex;gap:2px;border-bottom:1px solid var(--line);overflow-x:auto;scrollbar-width:none}.tab{position:relative;border:0;background:none;padding:10px 14px;font-size:var(--fs-sm);font-weight:500;color:var(--ink-3);cursor:pointer;white-space:nowrap;display:inline-flex;align-items:center;gap:6px}.tab:hover,.tab[aria-selected=true]{color:var(--ink)}.tab[aria-selected=true]:after{content:"";position:absolute;left:10px;right:10px;bottom:-1px;height:2px;background:var(--accent);border-radius:2px}.tab .count{font-size:11px;background:var(--surface-2);color:var(--ink-2);padding:1px 7px;border-radius:999px}.tab .count.hot{background:var(--neg-soft);color:var(--neg)}.sc-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);overflow:hidden}.sc{position:relative;display:flex;flex-direction:column;gap:4px;padding:var(--s-5) var(--s-5);color:inherit;text-decoration:none;min-width:0;border:0;background:none;text-align:left;font:inherit;cursor:pointer}.sc+.sc{border-left:1px solid var(--line)}.sc:hover{background:color-mix(in srgb,var(--surface) 60%,var(--surface-2))}.sc[aria-pressed=true]{background:var(--surface-2)}.sc[aria-pressed=true]:after{content:"";position:absolute;left:0;right:0;bottom:0;height:3px;background:var(--accent)}.sc-label{display:flex;align-items:center;gap:8px;font-size:var(--fs-sm);color:var(--ink-3)}.sc-value{font-size:var(--fs-3xl);font-weight:600;letter-spacing:-.02em;line-height:1.1;font-variant-numeric:tabular-nums}.sc-hint{font-size:var(--fs-xs);color:var(--ink-3)}.sc .ico{width:26px;height:26px;border-radius:8px;display:grid;place-items:center}@media (max-width: 900px){.sc-row{grid-template-columns:repeat(2,minmax(0,1fr))}.sc:nth-child(3){border-left:0}.sc:nth-child(n+3){border-top:1px solid var(--line)}.sc-value{font-size:var(--fs-2xl)}}.scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);z-index:90;display:flex;justify-content:flex-end;animation:fade .16s var(--ease)}.drw{width:min(var(--w, 560px),100vw);height:100dvh;background:var(--surface);box-shadow:var(--shadow-2);display:flex;flex-direction:column;outline:none;animation:slidein .22s var(--ease)}.drw-head{display:flex;align-items:center;gap:12px;padding:16px 20px;border-bottom:1px solid var(--line);padding-top:max(16px,env(safe-area-inset-top))}.drw-title{font-size:var(--fs-lg);flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.drw-body{padding:20px;overflow-y:auto;flex:1 1 auto}.drw-foot{padding:12px 20px;border-top:1px solid var(--line);display:flex;gap:8px;justify-content:flex-end;flex-wrap:wrap;padding-bottom:max(12px,env(safe-area-inset-bottom))}.dlg-scrim{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);z-index:95;display:grid;place-items:center;padding:16px;animation:fade .16s var(--ease)}.dlg{width:min(460px,100%);background:var(--surface);border-radius:var(--r-lg);box-shadow:var(--shadow-2);padding:22px}.dlg h2{font-size:var(--fs-lg);margin-bottom:8px}.dlg-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:18px}@keyframes fade{0%{opacity:0}}@keyframes slidein{0%{transform:translate(24px)}}.toasts{position:fixed;right:20px;bottom:20px;z-index:120;display:flex;flex-direction:column;gap:8px;max-width:400px}.toast{display:flex;gap:10px;align-items:flex-start;background:var(--ink);color:var(--bg);padding:12px 14px;border-radius:var(--r-md);box-shadow:var(--shadow-2);font-size:var(--fs-sm);animation:fade .16s var(--ease)}.toast.err{background:var(--neg);color:#fff}@media (max-width: 767px){.toasts{left:12px;right:12px;bottom:calc(var(--tabbar-h) + 12px + env(safe-area-inset-bottom));max-width:none}}.shell{min-height:100dvh}.skip{position:absolute;left:-9999px;top:8px;z-index:300;background:var(--surface);padding:8px 12px;border-radius:6px}.skip:focus{left:8px}.app-sidebar{position:fixed;inset:0 auto 0 0;width:var(--sidebar-w);background:var(--surface);border-right:1px solid var(--line);display:flex;flex-direction:column;z-index:50;padding-top:env(safe-area-inset-top)}.sb-head{display:flex;align-items:center;justify-content:space-between;padding:20px 20px 12px}.brand{color:var(--ink);text-decoration:none;display:inline-flex;align-items:center;gap:10px;font-weight:650;letter-spacing:-.02em}.sb-close{display:none!important}.sb-ws{padding:4px 20px 14px;border-bottom:1px solid var(--line)}.sb-ws .k{font-size:var(--fs-xs);color:var(--ink-3)}.sb-ws .v{font-weight:500;font-size:var(--fs-sm);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.sb-nav{flex:1 1 auto;overflow-y:auto;padding:12px;display:flex;flex-direction:column;gap:1px}.sb-link{position:relative;display:flex;align-items:center;gap:12px;padding:8px 10px;border-radius:8px;color:var(--ink-2);text-decoration:none;font-size:var(--fs-sm);font-weight:500}.sb-link:hover{background:var(--surface-2);color:var(--ink)}.sb-link.active{background:var(--brand-soft);color:var(--brand)}.sb-link.active:before{content:"";position:absolute;left:-12px;top:8px;bottom:8px;width:3px;border-radius:0 3px 3px 0;background:var(--accent)}.sb-badge{font-size:11px;font-weight:600;background:var(--accent);color:var(--accent-ink);border-radius:999px;padding:1px 7px}.sb-badge.hot{background:var(--neg);color:#fff}.sb-foot{padding:12px 16px calc(16px + env(safe-area-inset-bottom));border-top:1px solid var(--line);display:flex;flex-direction:column;gap:10px}.sb-user{display:flex;align-items:center;gap:10px;font-size:var(--fs-sm)}.uname{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.avatar{width:28px;height:28px;border-radius:50%;background:var(--brand);color:var(--brand-ink);display:grid;place-items:center;font-size:12px;font-weight:600;flex:none}.app-topbar,.tablet-scrim{display:none}.app-main{margin-left:var(--sidebar-w);min-height:100dvh;outline:none}.app-content{max-width:var(--content-max);margin:0 auto;padding:32px 40px 64px}.tabbar{display:none}.theme-toggle{display:flex;background:var(--surface-2);border-radius:8px;padding:3px;gap:2px}.theme-toggle button{flex:1;border:0;background:none;height:26px;border-radius:6px;color:var(--ink-3);cursor:pointer;display:grid;place-items:center}.theme-toggle button[aria-pressed=true]{background:var(--surface);color:var(--ink);box-shadow:var(--shadow-1)}@media (max-width: 1023px){.app-sidebar{transform:translate(-100%);transition:transform .22s var(--ease);box-shadow:var(--shadow-2);visibility:hidden}.tablet-open .app-sidebar{transform:none;visibility:visible}.tablet-open .tablet-scrim{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:var(--scrim);z-index:45}.sb-close{display:grid!important}.app-topbar{display:flex;align-items:center;gap:12px;position:sticky;top:0;z-index:40;background:color-mix(in srgb,var(--bg) 88%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:calc(10px + env(safe-area-inset-top)) 20px 10px;border-bottom:1px solid var(--line)}.app-main{margin-left:0}.app-content{padding:24px 24px 56px}}@media (max-width: 767px){.menu-btn{display:none!important}.app-content{padding:16px 16px calc(var(--tabbar-h) + 32px + env(safe-area-inset-bottom))}.tabbar{display:flex;position:fixed;left:0;right:0;bottom:0;z-index:40;background:var(--surface);border-top:1px solid var(--line);padding-bottom:env(safe-area-inset-bottom)}.tabbar .tb{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;height:var(--tabbar-h);font-size:11px;font-weight:500;color:var(--ink-3);text-decoration:none;border:0;background:none;cursor:pointer}.tabbar .tb.active{color:var(--brand)}}.page-head{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap;margin-bottom:var(--s-6)}.page-head h1{font-size:var(--fs-2xl)}.page-head .sub{color:var(--ink-3);margin:6px 0 0}.quote{display:flex;gap:16px;align-items:center;padding:18px 22px;border-radius:var(--r-lg);background:linear-gradient(110deg,var(--brand-soft),color-mix(in srgb,var(--accent-soft) 70%,var(--surface)));border:1px solid var(--line)}.quote .q-ico{flex:none;width:40px;height:40px;border-radius:12px;background:var(--brand);color:var(--brand-ink);display:grid;place-items:center}.quote .q-text{font-size:var(--fs-lg);font-weight:500;letter-spacing:-.01em;color:var(--ink);margin:0}.quote .q-tag{font-size:var(--fs-xs);color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em;margin-top:2px}.toolbar{display:flex;gap:12px;align-items:center;justify-content:space-between;flex-wrap:wrap}.search{position:relative;width:min(280px,100%)}.search svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--ink-3)}.search .control{padding-left:34px;height:36px}.t-ref{font-weight:600;font-variant-numeric:tabular-nums;color:var(--ink-2);white-space:nowrap}.t-title{font-weight:500;color:var(--ink)}.t-meta{font-size:var(--fs-xs);color:var(--ink-3)}.due{font-size:var(--fs-xs);white-space:nowrap}.due.late{color:var(--neg);font-weight:600}.cards{display:none}@media (max-width: 767px){.table-wrap.tickets{display:none}.cards{display:flex;flex-direction:column;gap:10px}.tcard{display:block;text-decoration:none;color:inherit;background:var(--surface);border:1px solid var(--line);border-radius:var(--r-md);padding:14px}.tcard .top{display:flex;justify-content:space-between;gap:8px;margin-bottom:6px}}.prio{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-sm);color:var(--ink-2);text-transform:capitalize}.prio .dot{width:8px;height:8px;border-radius:50%}.empty{text-align:center;padding:48px 16px;color:var(--ink-3)}.empty h3{color:var(--ink);margin-bottom:6px}.skel{background:linear-gradient(90deg,var(--surface-2),var(--surface-3),var(--surface-2));background-size:200% 100%;animation:shimmer 1.2s infinite linear;border-radius:8px}@keyframes shimmer{to{background-position:-200% 0}}.td-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:var(--s-6);align-items:start}@media (max-width: 1100px){.td-grid{grid-template-columns:minmax(0,1fr)}}.back{display:inline-flex;align-items:center;gap:6px;font-size:var(--fs-sm);color:var(--ink-3);text-decoration:none;margin-bottom:12px}.back:hover{color:var(--ink)}.desc{white-space:pre-wrap;color:var(--ink);line-height:1.6}.timeline{display:flex;flex-direction:column;gap:0}.ev{display:grid;grid-template-columns:32px minmax(0,1fr);gap:12px;padding:14px 0;border-top:1px solid var(--line)}.ev:first-child{border-top:0}.ev .who{display:flex;gap:8px;align-items:baseline;flex-wrap:wrap;font-size:var(--fs-sm)}.ev .who b{font-weight:600}.ev .when{color:var(--ink-3);font-size:var(--fs-xs)}.ev .body{white-space:pre-wrap;margin-top:4px;line-height:1.55;overflow-wrap:anywhere}.ev .av{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-size:12px;font-weight:600}.ev .av.client{background:var(--accent-soft);color:var(--accent-text)}.ev .av.admin{background:var(--brand);color:var(--brand-ink)}.ev .av.system{background:var(--surface-2);color:var(--ink-3)}.ev.internal .body{background:var(--ochre-soft);border:1px dashed var(--ochre);padding:10px 12px;border-radius:var(--r-md)}.ev.sys{padding:8px 0}.ev.sys .body{margin:0;color:var(--ink-3);font-size:var(--fs-sm)}.kv{display:grid;grid-template-columns:110px minmax(0,1fr);gap:10px 12px;font-size:var(--fs-sm)}.kv dt{color:var(--ink-3)}.kv dd{margin:0;color:var(--ink);min-width:0;overflow-wrap:anywhere}.panel-title{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-bottom:14px}.panel-title h2{font-size:var(--fs-md);font-weight:600}.money-row{display:flex;justify-content:space-between;font-size:var(--fs-sm);padding:4px 0}.money-row.total{font-weight:600;border-top:1px solid var(--line);margin-top:6px;padding-top:10px;font-size:var(--fs-md)}.timer{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:var(--r-md);background:var(--surface-2)}.timer .clock{font-size:var(--fs-xl);font-weight:600;font-variant-numeric:tabular-nums;flex:1}.timer.running{background:var(--accent-soft)}.timer.running .clock{color:var(--accent-text)}.mini-tbl{width:100%;font-size:var(--fs-sm)}.mini-tbl td,.mini-tbl th{padding:7px 6px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}.mini-tbl th{color:var(--ink-3);font-weight:500;font-size:var(--fs-xs)}.mini-tbl td.num,.mini-tbl th.num{text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}.cost-line{display:grid;grid-template-columns:110px minmax(0,1fr) 70px 110px 32px;gap:8px;align-items:center}@media (max-width: 640px){.cost-line{grid-template-columns:1fr 1fr}}.matrix{width:100%;font-size:var(--fs-sm);border-collapse:collapse}.matrix th,.matrix td{padding:10px 8px;border-bottom:1px solid var(--line)}.matrix thead th{font-weight:500;color:var(--ink-3);font-size:var(--fs-xs);text-align:center;vertical-align:bottom;white-space:normal;min-width:76px}.matrix thead th:first-child{text-align:left}.matrix td.c{text-align:center}.matrix input[type=checkbox]{width:18px;height:18px;accent-color:var(--brand);cursor:pointer}.toggle-list{display:flex;flex-direction:column}.toggle-list>*{padding:14px 0;border-top:1px solid var(--line)}.toggle-list>*:first-child{border-top:0;padding-top:0}.status-dot{display:inline-flex;align-items:center;gap:8px;font-size:var(--fs-sm)}.status-dot:before{content:"";width:8px;height:8px;border-radius:50%;background:var(--ink-3)}.status-dot.ok:before{background:var(--pos)}.status-dot.no:before{background:var(--neg)}.logo-drop{display:flex;align-items:center;gap:16px;padding:14px;border:1px dashed var(--line-strong);border-radius:var(--r-md)}.logo-drop .prev{width:180px;height:64px;display:grid;place-items:center;background:#fff;border-radius:8px;border:1px solid var(--line);overflow:hidden;padding:6px}.logo-drop .prev img{max-width:100%;max-height:100%;object-fit:contain}.auth{min-height:100dvh;display:grid;grid-template-columns:minmax(320px,5fr) 7fr}.auth-side{position:relative;overflow:hidden;color:#f2f7fc;background-color:#2f6f86;background-size:cover;background-position:center}.side-content{position:relative;height:100%;padding:40px;display:flex;flex-direction:column;justify-content:space-between}.side-brand{display:inline-flex;align-items:center;gap:10px;font-weight:600;letter-spacing:-.01em;font-size:1.0625rem;text-shadow:0 1px 10px rgba(2,16,34,.5)}.side-brand .lt{width:26px;height:26px;border-radius:8px;background:#f2f7fc;display:grid;place-items:center}.pitch{margin-bottom:6vh;text-shadow:0 1px 14px rgba(2,16,34,.6)}.pitch .tag{font-size:var(--fs-2xl);line-height:1.25;font-weight:500;letter-spacing:-.02em;max-width:16ch;margin:0 0 12px}.pitch .tag-sub{color:#f2f7fce6;max-width:34ch;margin:0}.auth-main{display:grid;place-items:center;padding:40px 24px}.auth-card{width:100%;max-width:400px}.auth-card .sub{color:var(--ink-3);margin:8px 0 24px}.collab{display:flex;align-items:center;justify-content:center;gap:18px;margin-bottom:40px;min-height:64px}.auth-card .collab{width:min(620px,calc(58.33vw - 48px));position:relative;left:50%;transform:translate(-50%);min-height:104px}@media (max-width: 860px){.auth-card .collab{width:calc(100vw - 48px);gap:12px;min-height:0}}.collab .lg{flex:0 1 auto;min-width:0;display:flex;align-items:center}.collab .lg img{display:block;max-height:56px;max-width:100%;width:auto;height:auto;object-fit:contain}.collab .wordmark{font-weight:700;font-size:1.35rem;letter-spacing:.02em;color:var(--ink);line-height:1.1;overflow-wrap:anywhere}.collab .wordmark small{display:block;font-size:10px;letter-spacing:.22em;font-weight:600;color:var(--ink-3);margin-top:2px}.collab .lg.right .wordmark{text-align:left}:root[data-theme=dark] .collab .lg img{background:#fff;padding:6px 10px;border-radius:10px}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .collab .lg img{background:#fff;padding:6px 10px;border-radius:10px}}.paint-x{flex:none;width:34px;height:34px;color:#0b0b0c}:root[data-theme=dark] .paint-x{color:var(--ink)}@media (prefers-color-scheme: dark){:root:not([data-theme=light]) .paint-x{color:var(--ink)}}.logo-plate{background:transparent}@media (max-width: 860px){.auth{grid-template-columns:1fr}.auth-side{min-height:220px;background-position:center 30%}.side-content{padding:24px;gap:24px}.pitch{margin-bottom:4px}.pitch .tag{font-size:var(--fs-xl)}.pitch .tag-sub{display:none}}.sent{text-align:left}.sent .ico{width:44px;height:44px;border-radius:12px;background:var(--accent-soft);color:var(--accent-text);display:grid;place-items:center;margin-bottom:14px}.logo{display:inline-flex;align-items:center;gap:10px;--logo-ink: var(--bg)}.logo .logo-bg{color:var(--brand)}.logo-word{font-weight:650;font-size:1.0625rem;letter-spacing:-.02em;display:inline-flex;align-items:baseline;gap:6px}.logo-by{font-weight:500;font-size:var(--fs-xs);letter-spacing:0;opacity:.7}.auth-side .logo{--logo-ink: #0b3558;color:#f2f7fc}.auth-side .logo .logo-bg{color:#f2f7fc}.auth-card .collab .lg img{max-height:104px}.auth-card .collab .wordmark{font-size:2rem}.auth-card .collab .wordmark small{font-size:12px}.auth-card .paint-x{width:44px;height:44px}@media (max-width: 860px){.auth-card .collab .lg img{max-height:72px}.auth-card .paint-x{width:34px;height:34px}}
