@charset "UTF-8";:root{--accent: #6366f1;--accent-hover: #7679f5;--accent-active: #4f46e5;--accent-fg: #ffffff;--accent-subtle: rgba(99, 102, 241, .14);--accent-ring: rgba(99, 102, 241, .4);--glow: rgba(99, 102, 241, .14);--accent-gradient: none;--bg-app: #0b0d12;--bg-sunken: #080a0e;--bg-panel: #0e1016;--bg-surface: #14171f;--bg-elevated: #1a1e28;--bg-soft: #12151c;--bg-floating: #20242f;--bg-hover: #1e222c;--bg-row-selected: rgba(99, 102, 241, .12);--backdrop: rgba(6, 8, 12, .66);--border: rgba(228, 231, 245, .09);--border-strong: rgba(228, 231, 245, .16);--border-layout: rgba(228, 231, 245, .06);--text: #e7e9f0;--text-strong: #ffffff;--text-muted: #a9b1c4;--text-dim: #7b8397;--success: #2ecc71;--success-subtle: rgba(46, 204, 113, .14);--warning: #f5a524;--warning-subtle: rgba(245, 165, 36, .15);--danger: #f04452;--danger-hover: #e11d48;--danger-subtle: rgba(240, 68, 82, .14);--info: #38bdf8;--info-subtle: rgba(56, 189, 248, .14);--neutral-subtle: rgba(148, 163, 184, .15);--muted: var(--text-muted);--surface: var(--surface-primary);--surface-2: var(--surface-secondary);--radius: 10px;--radius-lg: 14px;--radius-sm: 8px;--radius-xs: 6px;--radius-pill: 999px;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-8: 3rem;--space-10: 4rem;--space-12: 5rem;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .28);--shadow-card: 0 1px 2px rgba(0, 0, 0, .2), 0 1px 3px rgba(0, 0, 0, .24);--shadow-md: 0 10px 26px rgba(0, 0, 0, .34);--shadow-lg: 0 20px 46px rgba(0, 0, 0, .46);--shadow: var(--shadow-lg);--ease: cubic-bezier(.4, 0, .2, 1);--ease-out: cubic-bezier(.16, 1, .3, 1);--transition: .18s var(--ease);--transition-slow: .3s var(--ease);--focus-ring: 0 0 0 3px var(--accent-ring);--app-bg: var(--bg-app);--surface-primary: var(--bg-surface);--surface-secondary: var(--bg-soft);--surface-elevated: var(--bg-elevated);--surface-hover: var(--bg-hover);--surface-active: var(--bg-row-selected);--border-subtle: var(--border-layout);--border-default: var(--border);--border-component: var(--border);--text-primary: var(--text);--text-secondary: var(--text-muted);--text-disabled: color-mix(in srgb, var(--text-dim) 55%, transparent);--text-inverse: #ffffff;--primary: var(--accent);--primary-hover: var(--accent-hover);--primary-active: var(--accent-active);--primary-subtle: var(--accent-subtle);--duration-fast: .14s;--duration-normal: .2s;--duration-slow: .28s;--ease-emphasized: cubic-bezier(.2, 0, 0, 1);--color-bg-app: var(--bg-app);--color-bg-surface: var(--bg-surface);--color-bg-surface-raised: var(--bg-elevated);--color-bg-subtle: var(--bg-soft);--color-bg-hover: var(--bg-hover);--color-bg-active: var(--bg-row-selected);--color-border-default: var(--border);--color-border-subtle: var(--border-layout);--color-border-strong: var(--border-strong);--color-text-primary: var(--text);--color-text-secondary: var(--text-muted);--color-text-muted: var(--text-dim);--color-text-disabled: color-mix(in srgb, var(--text-dim) 65%, transparent);--color-accent: var(--accent);--color-accent-hover: var(--accent-hover);--color-accent-active: var(--accent-active);--color-success: var(--success);--color-warning: var(--warning);--color-danger: var(--danger);--color-info: var(--info);--color-focus-ring: var(--accent-ring);--motion-fast: .14s;--motion-normal: .22s;--motion-slow: .32s;--ease-standard: var(--ease);--ease-enter: cubic-bezier(0, 0, .2, 1);--ease-exit: cubic-bezier(.4, 0, 1, 1);--font-size-xs: .72rem;--font-size-sm: .82rem;--font-size-md: .9rem;--font-size-lg: 1.05rem;--font-size-xl: 1.5rem;--line-height-tight: 1.2;--line-height-normal: 1.5;--z-base: 0;--z-sticky: 20;--z-nav: 40;--z-drawer: 40;--z-dropdown: 60;--z-overlay: 60;--z-backdrop: 90;--z-dialog: 100;--z-toast: 120;--z-tooltip: 140;--pill-paid-bg: var(--success-subtle);--pill-paid-fg: var(--success);--pill-overdue-bg: var(--danger-subtle);--pill-overdue-fg: var(--danger);--pill-draft-bg: var(--neutral-subtle);--pill-draft-fg: #cbd5e1;color-scheme:dark}:root[data-theme=light]{--accent: #4f46e5;--accent-hover: #4338ca;--accent-active: #3730a3;--accent-fg: #ffffff;--accent-subtle: rgba(79, 70, 229, .1);--accent-ring: rgba(79, 70, 229, .28);--glow: rgba(79, 70, 229, .08);--accent-gradient: none;--bg-app: #f4f5fb;--bg-sunken: #e9ebf5;--bg-panel: #ffffff;--bg-surface: #ffffff;--bg-elevated: #ffffff;--bg-soft: #f6f7fc;--bg-floating: #ffffff;--bg-hover: #eef0fb;--bg-row-selected: rgba(79, 70, 229, .07);--backdrop: rgba(17, 20, 34, .34);--border: #d6dae7;--border-strong: #c2c8da;--border-layout: #e6e9f2;--text: #1b2030;--text-strong: #0b0f1c;--text-muted: #545c70;--text-dim: #7c8598;--success: #0f8a4d;--success-subtle: rgba(16, 185, 129, .12);--warning: #b45309;--warning-subtle: rgba(217, 119, 6, .12);--danger: #d1293d;--danger-hover: #be123c;--danger-subtle: rgba(240, 68, 82, .1);--info: #0284c7;--info-subtle: rgba(2, 132, 199, .1);--neutral-subtle: rgba(100, 116, 139, .12);--shadow-sm: 0 1px 2px rgba(17, 24, 39, .06);--shadow-card: 0 1px 2px rgba(17, 24, 39, .05), 0 1px 3px rgba(17, 24, 39, .07);--shadow-md: 0 10px 28px rgba(17, 24, 39, .1);--shadow-lg: 0 22px 50px rgba(17, 24, 39, .16);--pill-draft-fg: #475569;color-scheme:light}:root[data-theme=dark] .shell,:root:not([data-theme]) .shell{--accent: #6366f1;--accent-hover: #7679f5;--accent-active: #4f46e5;--accent-fg: #ffffff;--accent-subtle: rgba(99, 102, 241, .14);--accent-ring: rgba(99, 102, 241, .4);--glow: rgba(99, 102, 241, .14);--bg-app: #0b0d12;--bg-sunken: #080a0e;--bg-panel: #0e1016;--bg-surface: #14171f;--bg-elevated: #1a1e28;--bg-soft: #12151c;--bg-hover: #1e222c;--bg-floating: #20242f;--bg-row-selected: var(--accent-subtle);--backdrop: rgba(6, 8, 12, .66);--border: rgba(228, 231, 245, .09);--border-strong: rgba(228, 231, 245, .16);--border-layout: rgba(228, 231, 245, .06);--text: #e7e9f0;--text-strong: #ffffff;--text-muted: #a9b1c4;--text-dim: #7b8397;--focus-ring: 0 0 0 3px var(--accent-ring)}:root[data-theme=light] .shell{--accent: #4f46e5;--accent-hover: #4338ca;--accent-active: #3730a3;--accent-fg: #ffffff;--accent-subtle: rgba(79, 70, 229, .1);--accent-ring: rgba(79, 70, 229, .28);--glow: rgba(79, 70, 229, .08);--bg-app: #f4f5fb;--bg-sunken: #e9ebf5;--bg-panel: #ffffff;--bg-surface: #ffffff;--bg-elevated: #f8f9fe;--bg-soft: #f6f7fc;--bg-floating: #ffffff;--bg-hover: #eef0fb;--bg-row-selected: rgba(79, 70, 229, .07);--backdrop: rgba(17, 20, 34, .36);--border: rgba(17, 20, 45, .1);--border-strong: rgba(17, 20, 45, .17);--border-layout: rgba(17, 20, 45, .07);--text: #1b2030;--text-strong: #0b0f1c;--text-muted: #545c70;--text-dim: #7c8598;--focus-ring: 0 0 0 3px var(--accent-ring)}*{box-sizing:border-box}html,body{margin:0;padding:0;height:100%}body{background:var(--bg-app);color:var(--text);font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;font-size:14px;line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;transition:background var(--transition),color var(--transition)}::selection{background:var(--accent-subtle);color:var(--text-strong)}.shell{font-feature-settings:"tnum" 1,"cv05" 1}button{font-family:inherit;cursor:pointer}select{color:var(--text);background-color:var(--bg-elevated)}select option{background-color:var(--bg-surface);color:var(--text)}select option:hover,select option:focus,select option:checked,select option[selected]{background:var(--accent-subtle);color:var(--accent);box-shadow:0 0 0 100px var(--accent-subtle) inset}a{color:inherit;text-decoration:none}:where(a,button,input,select,textarea,[tabindex]):focus-visible{outline:none;box-shadow:var(--focus-ring);border-radius:var(--radius-xs)}@media(prefers-reduced-motion:reduce){*{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important;scroll-behavior:auto!important}}.view-head,.page-header{display:flex;flex-wrap:wrap;gap:var(--space-4);align-items:flex-start;justify-content:space-between;margin-bottom:var(--space-5)}.page-header__meta{min-width:min(100%,20rem)}.page-header__actions{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center;justify-content:flex-end}.view-crumb{display:flex;align-items:center;gap:.45rem;margin-bottom:.35rem;font-size:.78rem;color:var(--text-muted)}.view-crumb .sep{color:var(--text-dim)}.view-crumb .current{color:var(--text)}.view-title{margin:0;font-size:clamp(1.35rem,1.15rem + .5vw,1.75rem);font-weight:760;color:var(--text-strong);line-height:1.12}.view-sub{margin:.3rem 0 0;color:var(--text-muted);font-size:.83rem}.card{background:color-mix(in srgb,var(--bg-surface) 94%,var(--bg-elevated));border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-card)}.card--pad{padding:1.15rem 1.25rem}.metric{display:flex;flex-direction:column;gap:.45rem;padding:1rem 1.1rem;min-height:5.35rem;justify-content:center;transition:border-color var(--transition),transform var(--transition)}.metric:hover{border-color:var(--border-strong);transform:translateY(-2px);box-shadow:var(--shadow-md)}.metric__label{font-size:.68rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--text-muted)}.metric__value{font-size:clamp(1.25rem,1rem + .6vw,1.65rem);font-weight:760;color:var(--text-strong);font-variant-numeric:tabular-nums;line-height:1.12}.metric__delta{font-size:.75rem;font-weight:600;font-variant-numeric:tabular-nums}.metric__delta--up{color:var(--success)}.metric__delta--down{color:var(--danger)}.metric__delta--flat{color:var(--text-muted)}.section-title{margin:0 0 .9rem;font-size:.95rem;font-weight:600;color:var(--text-strong);letter-spacing:-.01em}.data-table{width:100%;border-collapse:collapse;min-width:640px}.data-table thead th{position:sticky;top:0;text-align:left;padding:.7rem .9rem;font-size:.65rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--text-muted);border-bottom:1px solid var(--border);background:color-mix(in srgb,var(--bg-surface) 88%,var(--bg-elevated));z-index:1}.data-table tbody td{padding:.68rem .9rem;font-size:.84rem;border-bottom:1px solid var(--border);color:var(--text-muted);line-height:1.35}.data-table tbody tr{transition:background var(--transition)}.data-table tbody tr:last-child td{border-bottom:none}.data-table tbody tr:hover{background:color-mix(in srgb,var(--bg-hover) 78%,transparent)}.data-table tbody tr:hover .num,.data-table tbody tr:hover .strong{color:var(--text-strong)}.data-table .num{text-align:right;color:var(--text);font-variant-numeric:tabular-nums}.data-table .strong{color:var(--text);font-weight:600}.data-table .mono{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;letter-spacing:.02em;color:var(--text)}.data-table a{color:var(--accent);font-weight:600;transition:color var(--transition)}.data-table a:hover{color:var(--accent-hover);text-decoration:underline}.table-scroll{overflow-x:auto;border-radius:var(--radius);-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain}@media(max-width:767px){.data-table{min-width:560px}.data-table thead th{padding:.5rem .65rem;font-size:.62rem}.data-table tbody td{padding:.55rem .65rem;font-size:.82rem}}.badge{display:inline-flex;align-items:center;gap:.35rem;padding:.18rem .55rem;border-radius:var(--radius-pill);font-size:.72rem;font-weight:600;white-space:nowrap}.badge--dot:before{content:"";width:5px;height:5px;border-radius:50%;background:currentColor}.badge--success{color:var(--success);background:var(--success-subtle)}.badge--neutral{color:var(--text-muted);background:var(--neutral-subtle)}.badge--warning{color:var(--warning);background:var(--warning-subtle)}.badge--info{color:var(--info);background:var(--info-subtle)}.badge--danger{color:var(--danger);background:var(--danger-subtle)}.pill{display:inline-flex;align-items:center;gap:.35rem;padding:.2rem .6rem;border-radius:var(--radius-pill);font-size:.72rem;font-weight:600;line-height:1;white-space:nowrap;text-transform:capitalize}.pill:before{content:"";width:6px;height:6px;border-radius:50%;background:currentColor;flex:none}.pill--paid{color:var(--success);background:var(--success-subtle)}.pill--overdue{color:var(--danger);background:var(--danger-subtle)}.pill--warn{color:var(--warning);background:var(--warning-subtle)}.pill--info{color:var(--info);background:var(--info-subtle)}.pill--draft{color:var(--pill-draft-fg);background:var(--neutral-subtle)}.ui-btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;min-height:2.35rem;padding:.58rem .95rem;border-radius:var(--radius-sm);border:1px solid transparent;font-size:.85rem;font-weight:700;line-height:1.2;white-space:nowrap;transition:background var(--transition),border-color var(--transition),color var(--transition),box-shadow var(--transition),transform var(--transition)}.ui-btn:active{transform:translateY(.5px)}.ui-btn:disabled{opacity:.55;cursor:not-allowed;transform:none}.ui-btn--primary{background:var(--accent);background-image:var(--accent-gradient);color:var(--accent-fg);box-shadow:0 1px 2px #0000002e,0 1px #ffffff1f inset}.ui-btn--primary:hover:not(:disabled){background:var(--accent-hover);transform:translateY(-1px);box-shadow:0 4px 14px var(--accent-ring),0 1px #ffffff24 inset}.ui-btn--primary:active:not(:disabled){background:var(--accent-active);transform:translateY(.5px)}.ui-btn--secondary{background:var(--surface-elevated);border-color:var(--border-component, var(--border-strong));color:var(--text)}.ui-btn--secondary:hover:not(:disabled){border-color:var(--accent);background:var(--bg-hover)}.ui-btn--ghost{background:var(--bg-elevated);border-color:var(--border-strong);color:var(--text)}.ui-btn--ghost:hover:not(:disabled){border-color:var(--text-dim)}.ui-btn--outline{background:transparent;border-color:var(--border-strong);color:var(--text)}.ui-btn--outline:hover:not(:disabled){background:var(--bg-hover);border-color:var(--text-dim)}.ui-btn--subtle{background:var(--accent-subtle);color:var(--accent)}.ui-btn--subtle:hover:not(:disabled){color:var(--accent-hover)}.ui-btn--danger{background:var(--danger);color:var(--text-inverse)}.ui-btn--danger:hover:not(:disabled){background:var(--danger-hover)}.ui-btn--sm{padding:.4rem .7rem;font-size:.8rem;border-radius:var(--radius-xs)}.ui-btn--icon{padding:.5rem;aspect-ratio:1}@media(max-width:767px){.ui-btn--icon{min-width:2.5rem;min-height:2.5rem}}.ui-search{position:relative;display:inline-flex;align-items:center}.ui-search__lens{position:absolute;left:.7rem;display:inline-flex;color:var(--text-dim);pointer-events:none}.ui-search__input{width:260px;max-width:100%;min-height:2.45rem;padding:.6rem .8rem .6rem 2rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-elevated);color:var(--text);font-size:.85rem;transition:border-color var(--transition),background var(--transition),box-shadow var(--transition)}.ui-search__input::placeholder{color:var(--text-dim)}.ui-search__input:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}.grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem}@media(max-width:1023px){.grid-3{grid-template-columns:repeat(2,1fr)}}@media(max-width:767px){.grid-3,.grid-2{grid-template-columns:1fr}}.modal{position:fixed;inset:0;display:grid;place-items:center;padding:1.5rem;background:var(--backdrop);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);z-index:var(--z-dialog);animation:modal-fade var(--transition)}@keyframes modal-fade{0%{opacity:0}to{opacity:1}}.modal__card{width:100%;max-width:min(34rem,92vw);padding:0 1.75rem;background:var(--surface-primary);border:1px solid var(--border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);max-height:88vh;overflow-y:auto;animation:modal-pop var(--transition-slow)}.modal__card--sm{max-width:min(34rem,92vw)}.modal__card--md{max-width:min(46rem,92vw)}.modal__card--wide{max-width:min(52rem,92vw)}.modal__card--lg{max-width:min(64rem,92vw)}.modal__card--xl{max-width:min(76rem,90vw)}@keyframes modal-pop{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.modal__title{position:sticky;top:0;z-index:2;margin:0 -1.75rem 1.25rem;padding:1.4rem 1.75rem 1rem;background:var(--surface-primary);border-bottom:1px solid var(--border);font-size:1.2rem;font-weight:700;letter-spacing:-.01em;color:var(--text-strong)}.modal__actions{position:sticky;bottom:0;z-index:2;display:flex;justify-content:flex-end;gap:.6rem;margin:1.25rem -1.75rem 0;padding:1rem 1.75rem 1.4rem;background:var(--surface-primary);border-top:1px solid var(--border)}@media(max-width:767px){.modal{padding:0;align-items:flex-end}.modal__card,.modal__card--sm,.modal__card--md,.modal__card--wide,.modal__card--lg,.modal__card--xl{max-width:100%;width:100%;max-height:92dvh;border-radius:var(--radius-lg) var(--radius-lg) 0 0;padding:0 1.1rem}.modal__title{margin:0 -1.1rem 1rem;padding:1.1rem 1.1rem .85rem}.modal__actions{margin:1.1rem -1.1rem 0;padding:.85rem 1.1rem calc(.85rem + env(safe-area-inset-bottom,0px));flex-wrap:wrap}.modal__actions .ui-btn{flex:1;min-width:7rem}}.form{display:flex;flex-direction:column;gap:.9rem}.form__row{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,12rem),1fr));gap:.9rem;align-items:start}.form__error{margin:.5rem 0 0;color:var(--danger);font-size:.83rem}.form__hint{margin:0;color:var(--text-muted);font-size:.8rem}.field{flex:1;display:flex;flex-direction:column;gap:.35rem;font-size:.8rem;color:var(--text-muted)}.field em{color:var(--accent);font-style:normal}.field input,.field select,.field textarea{min-height:2.45rem;padding:.68rem .8rem;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface-elevated);color:var(--text);font-size:.9rem;font-family:inherit;transition:border-color var(--transition),background var(--transition),box-shadow var(--transition)}.field input::placeholder,.field select::placeholder,.field textarea::placeholder{color:var(--text-dim)}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-ring)}.field input:disabled,.field select:disabled,.field textarea:disabled{opacity:.6;cursor:not-allowed}@media(max-width:767px){.form__row{grid-template-columns:1fr}.field input,.field select,.field textarea{padding:.75rem .85rem;font-size:1rem}}.section-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;margin-bottom:.85rem}.section-head h2,.section-head h3{margin:0;font-size:.95rem;font-weight:600;color:var(--text-strong);letter-spacing:-.01em}.muted{color:var(--text-muted);font-size:.83rem}.view-toolbar{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;justify-content:space-between;padding:.9rem 1rem;margin-bottom:1rem}.btn-plus{font-size:1.05rem;line-height:1}.empty-cell{text-align:center;padding:2.5rem 1rem!important;color:var(--text-muted)}.empty-state{display:grid;justify-items:center;gap:var(--space-2);padding:var(--space-6) var(--space-4);color:var(--text-muted);text-align:center}.empty-state__title{margin:0;color:var(--text);font-size:var(--font-size-lg);font-weight:700}.empty-state__body{max-width:28rem;margin:0;font-size:var(--font-size-sm)}.link-btn{background:transparent;border:none;color:var(--accent);font-size:.82rem;font-weight:600;padding:0;transition:color var(--transition)}.link-btn:hover{color:var(--accent-hover);text-decoration:underline}.check{display:flex;align-items:center;gap:.5rem;font-size:.82rem;color:var(--text-muted)}.alert{border:1px solid var(--border);border-radius:var(--radius);margin:0 0 1rem;padding:.8rem 1rem;font-size:.85rem}.alert--error{color:var(--danger);background:var(--danger-subtle);border-color:color-mix(in srgb,var(--danger) 32%,transparent)}.alert--success{color:var(--success);background:var(--success-subtle);border-color:color-mix(in srgb,var(--success) 32%,transparent)}.alert--warning{color:var(--warning);background:var(--warning-subtle);border-color:color-mix(in srgb,var(--warning) 32%,transparent)}.avatar-chip{display:inline-flex;align-items:center;justify-content:center;width:1.9rem;height:1.9rem;border-radius:50%;background:var(--accent-subtle);color:var(--accent);font-size:.72rem;font-weight:700}.skeleton{position:relative;overflow:hidden;background:var(--bg-hover);border-radius:var(--radius-xs)}.skeleton:after{content:"";position:absolute;inset:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.06),transparent);animation:skeleton-shimmer 1.4s infinite}@keyframes skeleton-shimmer{to{transform:translate(100%)}}
