@import"https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600;9..144,700&family=Inter+Tight:wght@400;500;600;700&family=JetBrains+Mono:wght@400;500;600;700&display=swap";*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--color-white: #ffffff;--color-gray-50: #faf8f3;--color-gray-100: #f2ede2;--color-gray-200: #e5decf;--color-gray-300: #d0c5b0;--color-gray-400: #a89b82;--color-gray-500: #7d7159;--color-gray-600: #5a5240;--color-gray-700: #3f392c;--color-gray-800: #28241b;--color-gray-900: #15130e;--surface-page: var(--color-gray-50);--surface-card: var(--color-white);--surface-raised: var(--color-white);--surface-sunken: var(--color-gray-100);--border-subtle: var(--color-gray-200);--border-default: var(--color-gray-300);--border-strong: var(--color-gray-400);--color-primary: #1f4d38;--color-primary-hover: #163828;--color-primary-active: #0e261c;--color-primary-light: #deeae3;--color-primary-bg: #ebf1ed;--color-primary-text: #ffffff;--color-success: #3d7a5c;--color-success-hover: #2f6249;--color-success-active: #244f3a;--color-success-light: #dbebe2;--color-warning: #b8772e;--color-warning-hover: #9c6322;--color-warning-active: #80511b;--color-warning-light: #f4e5c8;--color-danger: #8b2424;--color-danger-hover: #6f1b1b;--color-danger-active: #581515;--color-danger-light: #f0d7d7;--color-income: var(--color-success);--color-spend: var(--color-gray-700);--color-overdue: var(--color-danger);--font-family-body: "Inter Tight", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-family-display: "Fraunces", Georgia, "Times New Roman", serif;--font-family-mono: "JetBrains Mono", SFMono-Regular, Consolas, "Liberation Mono", monospace;--font-family: var(--font-family-body);--font-size-xs: .75rem;--font-size-sm: .8125rem;--font-size-base: .9375rem;--font-size-md: 1rem;--font-size-lg: 1.125rem;--font-size-xl: 1.375rem;--font-size-2xl: 1.75rem;--font-size-3xl: 2.25rem;--font-size-4xl: 3rem;--font-size-5xl: 4rem;--font-size-display: 5.5rem;--tracking-display: -.03em;--tracking-tight: -.015em;--tracking-normal: 0;--tracking-wide: .04em;--tracking-uppercase: .09em;--leading-tight: 1.15;--leading-snug: 1.3;--leading-normal: 1.55;--leading-relaxed: 1.65;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--spacing-3xl: 4.5rem;--radius-xs: 2px;--radius-sm: 4px;--radius-md: 6px;--radius-lg: 8px;--radius-xl: 12px;--radius-2xl: 16px;--radius-full: 9999px;--shadow-xs: 0 1px 1px rgba(40, 36, 27, .04);--shadow-sm: 0 1px 2px rgba(40, 36, 27, .06);--shadow-md: 0 4px 12px rgba(40, 36, 27, .08);--shadow-lg: 0 12px 32px rgba(40, 36, 27, .12);--shadow-xl: 0 24px 48px rgba(40, 36, 27, .18);--shadow-card: none;--shadow-card-hover: var(--shadow-xs);--shadow-input: none;--shadow-pressed: inset 0 1px 2px rgba(40, 36, 27, .1);--shadow-focus-ring: 0 0 0 3px rgba(31, 77, 56, .22);--shadow-focus-ring-success: 0 0 0 3px rgba(61, 122, 92, .24);--shadow-focus-ring-danger: 0 0 0 3px rgba(139, 36, 36, .24);--shadow-inset-top: none;--shadow-inset-bottom: none;--ease-out: cubic-bezier(.4, 0, .2, 1);--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-in-out: cubic-bezier(.4, 0, .2, 1);--transition-fast: .14s var(--ease-out);--transition-normal: .22s var(--ease-out);--transition-slow: .32s var(--ease-out);--nav-height: 64px;--sidebar-width: 240px;--max-content-width: 1200px}[data-theme=dark]{--color-white: #1e1a14;--color-gray-50: #14110d;--color-gray-100: #1e1a14;--color-gray-200: #2d2820;--color-gray-300: #3d372c;--color-gray-400: #5a5040;--color-gray-500: #8a7e66;--color-gray-600: #b0a48c;--color-gray-700: #cfc4ac;--color-gray-800: #e5ddc6;--color-gray-900: #f5efe0;--surface-page: #14110d;--surface-card: #1e1a14;--surface-raised: #28231b;--surface-sunken: #0e0c09;--border-subtle: #2d2820;--border-default: #3d372c;--border-strong: #5a5040;--color-primary: #6ba887;--color-primary-hover: #82bb9d;--color-primary-active: #569473;--color-primary-light: #14241d;--color-primary-bg: #0e1b14;--color-primary-text: #14110d;--color-success: #7dc698;--color-success-hover: #92d4ab;--color-success-active: #6bb586;--color-success-light: #1a2b22;--color-warning: #d69756;--color-warning-hover: #e0a968;--color-warning-active: #c08542;--color-warning-light: #2a2010;--color-danger: #c44a4a;--color-danger-hover: #d86060;--color-danger-active: #b03a3a;--color-danger-light: #2d0f0f;--color-income: var(--color-success);--color-spend: var(--color-gray-700);--color-overdue: var(--color-danger);--shadow-xs: 0 1px 1px rgba(0, 0, 0, .4);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .5);--shadow-md: 0 4px 12px rgba(0, 0, 0, .5);--shadow-lg: 0 12px 32px rgba(0, 0, 0, .6);--shadow-xl: 0 24px 48px rgba(0, 0, 0, .7);--shadow-card: none;--shadow-card-hover: var(--shadow-xs);--shadow-input: none;--shadow-pressed: inset 0 1px 2px rgba(0, 0, 0, .5);--shadow-focus-ring: 0 0 0 3px rgba(107, 168, 135, .32);--shadow-focus-ring-success: 0 0 0 3px rgba(125, 198, 152, .3);--shadow-focus-ring-danger: 0 0 0 3px rgba(196, 74, 74, .3)}html{font-size:16px;scroll-behavior:smooth}body{font-family:var(--font-family-body);font-size:var(--font-size-base);line-height:var(--leading-normal);color:var(--color-gray-700);background-color:var(--surface-page);min-height:100vh;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:"ss01","cv11"}#root{min-height:100vh;display:flex;flex-direction:column}h1,h2,h3,h4,h5,h6{font-family:var(--font-family-display);font-weight:600;line-height:var(--leading-tight);color:var(--color-gray-900);letter-spacing:var(--tracking-tight);font-variation-settings:"opsz" 24,"SOFT" 30}h1{font-size:var(--font-size-3xl);letter-spacing:var(--tracking-display);font-variation-settings:"opsz" 48,"SOFT" 50}h2{font-size:var(--font-size-2xl);letter-spacing:var(--tracking-display);font-variation-settings:"opsz" 36,"SOFT" 40}h3{font-size:var(--font-size-xl)}h4{font-size:var(--font-size-lg)}p{margin-bottom:var(--spacing-md)}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-fast)}a:hover{color:var(--color-primary-hover)}input,select,textarea{font-family:inherit;font-size:var(--font-size-base);color:var(--color-gray-800)}button{font-family:inherit;cursor:pointer}.num{font-family:var(--font-family-mono);font-variant-numeric:tabular-nums;font-feature-settings:"tnum" 1,"zero" 1;letter-spacing:-.01em}.num-hero{font-family:var(--font-family-mono);font-size:var(--font-size-2xl);font-weight:700;font-variant-numeric:tabular-nums lining-nums;font-feature-settings:"tnum" 1,"zero" 1;letter-spacing:-.02em;line-height:1}.num-positive{color:var(--color-income)}.num-negative{color:var(--color-overdue)}.num-muted{color:var(--color-gray-500)}.eyebrow{font-family:var(--font-family-body);font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:var(--tracking-uppercase);color:var(--color-gray-500);line-height:1}.rule{border:0;border-top:1px solid var(--border-subtle);margin:var(--spacing-lg) 0}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.container{width:100%;max-width:var(--max-content-width);margin:0 auto;padding:0 var(--spacing-md)}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn var(--transition-normal)}.slide-up{animation:slideUp var(--transition-normal)}::selection{background-color:var(--color-primary-light);color:var(--color-gray-900)}[data-theme=dark] ::selection{background-color:var(--color-primary-light);color:var(--color-gray-900)}*{scrollbar-width:thin;scrollbar-color:var(--border-default) transparent}*::-webkit-scrollbar{width:10px;height:10px}*::-webkit-scrollbar-track{background:transparent}*::-webkit-scrollbar-thumb{background:var(--border-default);border-radius:var(--radius-full);border:2px solid var(--surface-page)}*::-webkit-scrollbar-thumb:hover{background:var(--border-strong)}.nav-sidebar{position:fixed;left:0;top:0;bottom:0;width:var(--sidebar-width);background-color:var(--surface-card);color:var(--color-gray-700);border-right:1px solid var(--border-subtle);padding:var(--spacing-lg);display:none;flex-direction:column;z-index:50}@media(min-width:768px){.nav-sidebar{display:flex}}.nav-brand{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-2xl);padding:0 var(--spacing-sm)}.nav-brand-icon{color:var(--color-primary);flex-shrink:0}.nav-brand-text{font-family:var(--font-family-display);font-size:var(--font-size-xl);font-weight:600;color:var(--color-gray-900);letter-spacing:var(--tracking-tight);font-variation-settings:"opsz" 32,"SOFT" 50}.nav-list{list-style:none;display:flex;flex-direction:column;gap:2px}.nav-item{width:100%}.nav-link{display:flex;align-items:center;gap:var(--spacing-sm);padding:.5rem .75rem;border-radius:var(--radius-md);color:var(--color-gray-600);text-decoration:none;transition:background-color var(--transition-fast),color var(--transition-fast);font-family:var(--font-family-body);font-size:var(--font-size-sm);font-weight:500}.nav-link:hover{background-color:var(--surface-sunken);color:var(--color-gray-900)}.nav-link-active{background-color:var(--color-primary-light);color:var(--color-primary);font-weight:600}.nav-link-active:hover{background-color:var(--color-primary-light);color:var(--color-primary)}[data-theme=dark] .nav-link-active{color:var(--color-primary-hover)}.mobile-header{position:fixed;top:0;left:0;right:0;height:var(--nav-height);background-color:var(--surface-card);color:var(--color-gray-800);border-bottom:1px solid var(--border-subtle);z-index:40;display:flex;align-items:center}@media(min-width:768px){.mobile-header{display:none}}.mobile-header-content{display:flex;align-items:center;justify-content:space-between;width:100%;padding:0 var(--spacing-md)}.nav-mobile{position:fixed;bottom:0;left:0;right:0;height:var(--nav-height);background-color:var(--surface-card);color:var(--color-gray-800);border-top:1px solid var(--border-subtle);display:flex;justify-content:space-around;align-items:center;z-index:40}@media(min-width:768px){.nav-mobile{display:none}}.nav-mobile-link{display:flex;flex-direction:column;align-items:center;gap:2px;padding:var(--spacing-sm);color:var(--color-gray-500);text-decoration:none;transition:color var(--transition-fast)}.nav-mobile-link:hover,.nav-mobile-link-active{color:var(--color-primary)}.nav-mobile-label{font-family:var(--font-family-body);font-size:var(--font-size-xs);font-weight:600;letter-spacing:var(--tracking-wide)}.loading-spinner-container{display:flex;justify-content:center;align-items:center;padding:var(--spacing-xl)}.loading-spinner{width:36px;height:36px;border:2px solid var(--border-subtle);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}.loading-spinner-sm{width:18px;height:18px}.toast-container{position:fixed;top:var(--spacing-lg);right:var(--spacing-lg);z-index:1000;display:flex;flex-direction:column;gap:var(--spacing-sm);max-width:400px}@media(max-width:640px){.toast-container{left:var(--spacing-md);right:var(--spacing-md);top:calc(var(--nav-height) + var(--spacing-sm))}}.toast{position:relative;overflow:hidden;min-width:300px;padding:calc(var(--spacing-sm) + 3px) var(--spacing-md) var(--spacing-md);background-color:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);animation:toast-in .32s cubic-bezier(.21,1.02,.55,1) both}.toast-success{--toast-color: var(--color-success)}.toast-error{--toast-color: var(--color-danger)}.toast-warning{--toast-color: var(--color-warning)}.toast-info{--toast-color: var(--color-primary)}.toast-countdown{position:absolute;top:0;left:0;height:3px;width:100%;background-color:var(--toast-color);transform-origin:left;animation-name:toast-countdown;animation-timing-function:linear;animation-fill-mode:forwards}.toast-head{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);margin-bottom:3px}.toast-eyebrow{font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:var(--tracking-uppercase);color:var(--toast-color)}.toast-meta{display:inline-flex;align-items:center;gap:var(--spacing-xs)}.toast-time{font-family:var(--font-family-mono, "JetBrains Mono", Consolas, monospace);font-size:.66rem;font-weight:500;color:var(--color-gray-400);font-variant-numeric:tabular-nums}.toast-message{margin:0;font-size:var(--font-size-sm);font-weight:500;color:var(--color-gray-800);line-height:var(--leading-snug);word-break:break-word;animation:toast-body-in .4s .08s cubic-bezier(.21,1.02,.55,1) both}.toast-close{display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;margin:-4px -4px -4px 0;background:none;border:none;border-radius:var(--radius-full);padding:0;cursor:pointer;color:var(--color-gray-400);transition:color var(--transition-fast),background-color var(--transition-fast)}.toast-close:hover{color:var(--color-gray-700);background-color:var(--surface-sunken)}@keyframes toast-in{0%{opacity:0;transform:translate(14px) scale(.97)}to{opacity:1;transform:translate(0) scale(1)}}@keyframes toast-body-in{0%{opacity:0;transform:translateY(3px)}to{opacity:1;transform:translateY(0)}}@keyframes toast-countdown{0%{transform:scaleX(1)}to{transform:scaleX(0)}}@media(prefers-reduced-motion:reduce){.toast,.toast-message,.toast-countdown{animation:none}}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;border:none;border-radius:var(--radius-md);background-color:transparent;color:var(--color-gray-500);cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast)}.icon-btn:hover{background-color:var(--surface-sunken);color:var(--color-gray-800)}.icon-btn:active{background-color:var(--color-gray-200)}.icon-btn:focus-visible{outline:none;box-shadow:var(--shadow-focus-ring)}.icon-btn-danger:hover{background-color:var(--color-danger-light);color:var(--color-danger)}.status-badge{display:inline-flex;align-items:center;gap:4px;padding:.25rem .625rem;font-family:var(--font-family-body);font-size:var(--font-size-xs);font-weight:600;border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:var(--tracking-wide);line-height:1}.status-badge-paid{background-color:var(--color-success-light);color:var(--color-success)}.status-badge-pending{background-color:var(--surface-sunken);color:var(--color-gray-600)}.status-badge-upcoming{background-color:var(--color-warning-light);color:var(--color-warning)}.status-badge-overdue{background-color:var(--color-danger-light);color:var(--color-danger)}.status-badge-partial{background-color:var(--color-primary-light);color:var(--color-primary)}[data-theme=dark] .status-badge-paid{color:var(--color-success-hover)}[data-theme=dark] .status-badge-upcoming{color:var(--color-warning-hover)}[data-theme=dark] .status-badge-overdue{color:var(--color-danger-hover)}.payment-modal-bill{display:flex;align-items:baseline;gap:.5rem;margin-bottom:.25rem}.payment-modal-name{font-weight:600;color:var(--color-gray-800);font-size:var(--font-size-lg)}.payment-modal-total{color:var(--color-gray-500);font-size:var(--font-size-sm)}.payment-modal-note{margin:0 0 1rem;font-size:var(--font-size-sm);color:var(--color-primary)}.payment-modal-label{display:block;font-size:var(--font-size-sm);font-weight:500;color:var(--color-gray-600);margin-bottom:.375rem}.payment-modal-input-wrap{display:flex;align-items:center;border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:0 .75rem}.payment-modal-input-wrap:focus-within{border-color:var(--color-primary)}.payment-modal-currency{color:var(--color-gray-500);font-size:var(--font-size-lg)}.payment-modal-input{flex:1;border:none;background:none;outline:none;padding:.625rem .5rem;font-size:var(--font-size-lg);font-weight:600;color:var(--color-gray-800)}.payment-modal-remaining{margin:.5rem 0 0;font-size:var(--font-size-sm);color:var(--color-gray-500)}.fb-status-new{--fb-color: var(--color-gray-600);--fb-bg: var(--color-gray-100)}.fb-status-accepted{--fb-color: var(--color-primary);--fb-bg: var(--color-primary-light)}.fb-status-in-progress{--fb-color: var(--color-warning);--fb-bg: var(--color-warning-light)}.fb-status-done{--fb-color: var(--color-success);--fb-bg: var(--color-success-light)}.fb-status-rejected{--fb-color: var(--color-danger);--fb-bg: var(--color-danger-light)}.fb-status-badge{display:inline-flex;align-items:center;padding:.2rem .6rem;border-radius:var(--radius-full);font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:var(--tracking-wide);line-height:1;white-space:nowrap;background-color:var(--fb-bg);color:var(--fb-color)}.status-select{position:relative;display:inline-flex}.status-select-trigger{display:inline-flex;align-items:center;gap:6px;padding:.3rem .65rem;border-radius:var(--radius-full);border:1px solid var(--fb-color, var(--border-subtle));background-color:var(--fb-bg, var(--surface-card));color:var(--fb-color, var(--color-gray-600));font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:var(--tracking-wide);line-height:1;white-space:nowrap;cursor:pointer;transition:background-color var(--transition-normal),border-color var(--transition-normal),color var(--transition-normal),filter var(--transition-fast)}.status-select-trigger:hover:not(:disabled){filter:brightness(.96)}@keyframes status-select-pop{0%{transform:scale(1)}40%{transform:scale(1.08)}to{transform:scale(1)}}.status-select-trigger.status-select-changed{animation:status-select-pop .35s cubic-bezier(.34,1.4,.64,1) both}@media(prefers-reduced-motion:reduce){.status-select-trigger.status-select-changed{animation:none}}.status-select-trigger:disabled{opacity:.6;cursor:default}.status-select-chevron{opacity:.7}.status-select-open .status-select-chevron{transform:rotate(180deg)}.status-select-count{font-size:.7rem;font-weight:700;opacity:.75}.status-select-menu{position:absolute;top:calc(100% + 4px);left:0;z-index:60;min-width:190px;background-color:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:var(--spacing-xs);display:flex;flex-direction:column;gap:2px}.status-select-menu-right{left:auto;right:0}.status-select-option{display:flex;align-items:center;gap:8px;width:100%;padding:.45rem .6rem;border:none;background:none;border-radius:var(--radius-sm);color:var(--color-gray-700);font-size:var(--font-size-sm);font-weight:500;text-align:left;cursor:pointer}.status-select-option.is-active{background-color:var(--fb-bg, var(--color-gray-100));color:var(--fb-color, var(--color-gray-800))}.status-select-dot{width:8px;height:8px;border-radius:50%;background-color:var(--fb-color, var(--color-gray-400));flex-shrink:0}.status-select-option-label{flex:1}.status-select-option .status-select-count{color:var(--color-gray-500);opacity:1}.status-select-check{color:var(--fb-color, var(--color-primary));flex-shrink:0}.feedback-mine{margin-top:var(--spacing-lg);padding-top:var(--spacing-sm);border-top:1px solid var(--border-subtle)}.feedback-mine-toggle{display:flex;align-items:center;gap:var(--spacing-sm);width:100%;padding:var(--spacing-sm) 0;background:none;border:none;color:var(--color-gray-500);cursor:pointer;transition:color var(--transition-fast)}.feedback-mine-toggle:hover{color:var(--color-gray-700)}.feedback-mine-title{font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:var(--tracking-uppercase);margin:0}.feedback-mine-count{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:16px;padding:0 5px;border-radius:var(--radius-full);background-color:var(--color-gray-100);font-size:.68rem;font-weight:700}.feedback-mine-toggle svg:last-child{margin-left:auto}.feedback-mine-note{font-size:var(--font-size-xs);color:var(--color-gray-500);margin:0 0 var(--spacing-sm)}.feedback-mine-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:var(--spacing-sm)}.feedback-mine-item{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md)}.feedback-mine-msg{font-size:var(--font-size-sm);color:var(--color-gray-700);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.category-badge{display:inline-flex;align-items:center;gap:6px;padding:.25rem .625rem;font-family:var(--font-family-body);font-size:var(--font-size-xs);font-weight:500;border-radius:var(--radius-full);background-color:var(--surface-sunken);color:var(--color-gray-700)}.category-badge-icon{width:12px;height:12px}.nav-footer{margin-top:auto;padding-top:var(--spacing-md);border-top:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:var(--spacing-xs)}.nav-bottom{margin-top:auto}.nav-suggestion{display:flex;align-items:center;gap:.6rem;width:100%;padding:.5rem .75rem;margin-bottom:var(--spacing-xs);background:none;border:none;border-radius:var(--radius-md);color:var(--color-gray-500);font-family:inherit;font-size:var(--font-size-sm);font-weight:500;text-align:left;cursor:pointer;transition:color var(--transition-fast),background-color var(--transition-fast)}.nav-suggestion:hover{color:var(--color-primary);background-color:var(--color-primary-light)}.nav-user{padding:var(--spacing-sm) var(--spacing-md)}.nav-user-name{font-family:var(--font-family-body);font-size:var(--font-size-sm);font-weight:500;color:var(--color-gray-700)}.nav-logout-btn{display:flex;align-items:center;gap:var(--spacing-sm);padding:.5rem .75rem;border:none;border-radius:var(--radius-md);background-color:transparent;color:var(--color-gray-600);font-family:var(--font-family-body);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:background-color var(--transition-fast),color var(--transition-fast);width:100%;text-align:left}.nav-logout-btn:hover{background-color:var(--color-danger-light);color:var(--color-danger)}[data-theme=dark] .nav-logout-btn:hover{color:var(--color-danger-hover)}.modal-overlay{position:fixed;inset:0;background-color:#14110d8c;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:100;padding:var(--spacing-md);animation:fadeIn var(--transition-fast)}.modal{background-color:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:100%;max-width:500px;max-height:90vh;display:flex;flex-direction:column;animation:slideUp var(--transition-normal)}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-lg);border-bottom:1px solid var(--border-subtle)}.modal-body{padding:var(--spacing-lg);overflow-y:auto}.modal-footer{display:flex;justify-content:flex-end;gap:var(--spacing-sm);padding:var(--spacing-lg);border-top:1px solid var(--border-subtle);background-color:var(--surface-sunken)}.confirm-modal{max-width:400px}.confirm-modal-content{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--spacing-md)}.confirm-modal-icon{width:48px;height:48px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center}.confirm-modal-message{font-family:var(--font-family-body);font-size:var(--font-size-base);color:var(--color-gray-600);line-height:var(--leading-relaxed)}.fly-in-overlay{position:fixed;inset:0;background-color:#14110d8c;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);opacity:0;visibility:hidden;pointer-events:none;transition:opacity var(--transition-normal),visibility var(--transition-normal);z-index:100;display:flex;justify-content:flex-end}.fly-in-overlay.active{opacity:1;visibility:visible;pointer-events:auto}.fly-in-panel{width:480px;max-width:100%;height:100%;background-color:var(--surface-raised);border-left:1px solid var(--border-subtle);box-shadow:var(--shadow-xl);display:flex;flex-direction:column;transform:translate(100%);transition:transform var(--transition-normal)}.fly-in-overlay.active .fly-in-panel{transform:translate(0)}.fly-in-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg);border-bottom:1px solid var(--border-subtle);flex-shrink:0}.fly-in-title{margin:0;font-family:var(--font-family-display);font-size:var(--font-size-xl);font-weight:600;color:var(--color-gray-900);letter-spacing:var(--tracking-tight);font-variation-settings:"opsz" 28,"SOFT" 50}.fly-in-body{display:flex;flex-direction:column;gap:var(--spacing-md);padding:var(--spacing-lg);overflow-y:auto;flex:1}.fly-in-amount-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md)}.fly-in-footer{display:flex;justify-content:flex-end;gap:var(--spacing-sm);padding:var(--spacing-lg);border-top:1px solid var(--border-subtle);flex-shrink:0;background-color:var(--surface-sunken)}.fly-in-empty{text-align:center;padding:var(--spacing-xl) var(--spacing-md);color:var(--color-gray-500)}.fly-in-empty p{margin:0 0 var(--spacing-sm);font-size:var(--font-size-sm)}.fly-in-empty-hint{color:var(--color-gray-600)}.advanced-section{border-top:1px solid var(--border-subtle);padding-top:var(--spacing-md);margin-top:var(--spacing-xs)}.advanced-summary{display:flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) 0;cursor:pointer;font-family:var(--font-family-body);font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:var(--tracking-uppercase);color:var(--color-gray-600);-webkit-user-select:none;user-select:none;list-style:none}.advanced-summary::-webkit-details-marker{display:none}.advanced-summary:hover{color:var(--color-gray-900)}.advanced-chevron{transition:transform var(--transition-fast);color:var(--color-gray-500)}.advanced-section[open] .advanced-chevron{transform:rotate(180deg)}.advanced-body{display:flex;flex-direction:column;gap:var(--spacing-md);padding-top:var(--spacing-md)}@media(max-width:640px){.fly-in-panel{width:100%;border-left:none}.fly-in-amount-row{grid-template-columns:1fr}}.custom-checkbox{position:relative;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;flex-shrink:0}.custom-checkbox-disabled{cursor:not-allowed;opacity:.5}.custom-checkbox-input{position:absolute;inset:0;opacity:0;margin:0;cursor:inherit}.custom-checkbox-box{display:inline-flex;align-items:center;justify-content:center;background-color:var(--surface-card);border:1.5px solid var(--border-default);border-radius:var(--radius-sm);color:#fff;transition:background-color var(--transition-fast),border-color var(--transition-fast),box-shadow var(--transition-fast)}.custom-checkbox:hover:not(.custom-checkbox-disabled) .custom-checkbox-box{border-color:var(--border-strong)}.custom-checkbox-input:focus-visible+.custom-checkbox-box{border-color:var(--color-primary);box-shadow:var(--shadow-focus-ring)}.custom-checkbox-sm .custom-checkbox-box{width:16px;height:16px}.custom-checkbox-md .custom-checkbox-box{width:18px;height:18px}.custom-checkbox-lg .custom-checkbox-box{width:22px;height:22px;border-radius:var(--radius-md)}.custom-checkbox-primary .custom-checkbox-box-active{background-color:var(--color-primary);border-color:var(--color-primary);color:var(--color-primary-text)}.custom-checkbox-primary .custom-checkbox-input:focus-visible+.custom-checkbox-box{border-color:var(--color-primary);box-shadow:var(--shadow-focus-ring)}.custom-checkbox-success .custom-checkbox-box-active{background-color:var(--color-success);border-color:var(--color-success)}.custom-checkbox-success .custom-checkbox-input:focus-visible+.custom-checkbox-box{border-color:var(--color-success);box-shadow:var(--shadow-focus-ring-success)}.custom-checkbox-danger .custom-checkbox-box-active{background-color:var(--color-danger);border-color:var(--color-danger)}.custom-checkbox-danger .custom-checkbox-input:focus-visible+.custom-checkbox-box{border-color:var(--color-danger);box-shadow:var(--shadow-focus-ring-danger)}.custom-checkbox-disabled .custom-checkbox-box-active{background-color:var(--color-gray-400);border-color:var(--color-gray-400)}.custom-select{position:relative;width:100%}.custom-select-trigger{width:100%;display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm);padding:.625rem .875rem;font-family:var(--font-family-body);font-size:var(--font-size-base);color:var(--color-gray-800);background-color:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-md);cursor:pointer;transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background-color var(--transition-fast);text-align:left}.custom-select-trigger:hover:not(:disabled){border-color:var(--border-strong)}.custom-select-trigger:focus-visible{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus-ring)}.custom-select-open .custom-select-trigger{border-color:var(--color-primary);box-shadow:var(--shadow-focus-ring)}.custom-select-disabled .custom-select-trigger{opacity:.6;cursor:not-allowed}.custom-select-value{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.custom-select-placeholder{color:var(--color-gray-400)}.custom-select-chevron{color:var(--color-gray-500);transition:transform var(--transition-fast);flex-shrink:0}.custom-select-open .custom-select-chevron{transform:rotate(180deg)}.custom-select-menu{position:absolute;top:calc(100% + 4px);left:0;right:0;z-index:50;max-height:280px;overflow-y:auto;background-color:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-md);padding:var(--spacing-xs);display:flex;flex-direction:column;gap:2px;animation:customSelectFadeIn var(--transition-fast)}@keyframes customSelectFadeIn{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:translateY(0)}}.custom-select-option{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm);width:100%;padding:.5rem .625rem;background:none;border:none;border-radius:var(--radius-sm);cursor:pointer;text-align:left;font-family:var(--font-family-body);font-size:var(--font-size-sm);color:var(--color-gray-800);transition:background-color var(--transition-fast)}.custom-select-option:hover:not(:disabled),.custom-select-option-active{background-color:var(--surface-sunken)}.custom-select-option-selected{color:var(--color-primary);font-weight:600}.custom-select-option-selected.custom-select-option-active,.custom-select-option-selected:hover{background-color:var(--color-primary-light)}[data-theme=dark] .custom-select-option-selected{color:var(--color-primary-hover)}.custom-select-option-disabled{opacity:.5;cursor:not-allowed}.custom-select-option-content{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.custom-select-option-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.custom-select-option-meta{font-size:var(--font-size-xs);color:var(--color-gray-500);font-weight:400}.custom-select-option-check{color:var(--color-primary);flex-shrink:0}.custom-select-empty{padding:var(--spacing-md);text-align:center;font-size:var(--font-size-sm);color:var(--color-gray-500)}html[data-sidebar=collapsed]{--sidebar-width: 76px}.nav-sidebar{transition:width var(--transition-normal),padding var(--transition-normal)}.app-content{transition:margin-left var(--transition-normal)}.nav-brand-row{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-sm)}.nav-collapse-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;flex-shrink:0;margin-top:2px;padding:0;background:none;border:none;border-radius:var(--radius-md);color:var(--color-gray-400);cursor:pointer;transition:color var(--transition-fast),background-color var(--transition-fast)}.nav-collapse-btn:hover{color:var(--color-gray-700);background-color:var(--surface-sunken)}[data-sidebar=collapsed] .nav-sidebar{padding-left:var(--spacing-sm);padding-right:var(--spacing-sm)}[data-sidebar=collapsed] .nav-brand-row{flex-direction:column;align-items:center;margin-bottom:var(--spacing-2xl)}[data-sidebar=collapsed] .nav-brand{margin-bottom:var(--spacing-sm);padding:0}[data-sidebar=collapsed] .nav-brand-text,[data-sidebar=collapsed] .nav-link span,[data-sidebar=collapsed] .nav-suggestion span,[data-sidebar=collapsed] .nav-user,[data-sidebar=collapsed] .nav-logout-btn span{display:none}[data-sidebar=collapsed] .nav-link,[data-sidebar=collapsed] .nav-suggestion,[data-sidebar=collapsed] .nav-logout-btn{justify-content:center;padding-left:0;padding-right:0}@media(prefers-reduced-motion:reduce){.nav-sidebar,.app-content{transition:none}}.fly-in-panel-wide{width:640px}.txv-filters{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.txv-search{position:relative;grid-column:1 / -1}.txv-search-icon{position:absolute;left:var(--spacing-md);top:50%;transform:translateY(-50%);color:var(--color-gray-400);pointer-events:none}.txv-search .form-input.txv-search-input{width:100%;padding-left:calc(var(--spacing-md) + 22px)}.txv-summary{font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:var(--tracking-uppercase);color:var(--color-gray-500);margin:0 0 var(--spacing-sm)}.txv-summary .num{text-transform:none;letter-spacing:-.01em;font-size:var(--font-size-sm);color:var(--color-gray-700)}.txv-list{display:flex;flex-direction:column}.txv-row{display:flex;align-items:center;gap:var(--spacing-md);padding:9px 0;border-top:1px solid var(--surface-sunken)}.txv-date{width:48px;flex-shrink:0;font-size:var(--font-size-xs);font-weight:600;color:var(--color-gray-500)}.txv-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.txv-name{font-size:var(--font-size-sm);font-weight:500;color:var(--color-gray-800);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.txv-meta{font-size:var(--font-size-xs);color:var(--color-gray-500)}.txv-amount{flex-shrink:0;font-size:var(--font-size-sm);font-weight:700;color:var(--color-gray-800)}.txv-in{color:var(--color-income, var(--color-success))}.txv-more{width:100%;margin-top:var(--spacing-md)}.txv-empty{padding:var(--spacing-xl) 0;text-align:center;color:var(--color-gray-500);font-size:var(--font-size-sm)}.txv-scope{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-sm);padding:6px 10px;margin-bottom:var(--spacing-sm);background-color:var(--color-primary-light);color:var(--color-primary);border-radius:var(--radius-md);font-size:var(--font-size-xs)}.txv-scope-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.txv-scope-clear{display:inline-flex;align-items:center;gap:3px;flex-shrink:0;background:none;border:none;padding:2px 4px;border-radius:var(--radius-sm);color:inherit;font-size:inherit;font-weight:600;cursor:pointer}.txv-scope-clear:hover{text-decoration:underline}.fb-badge-btn{border:none;cursor:pointer;gap:4px;transition:filter var(--transition-fast)}.fb-badge-btn:hover{filter:brightness(.94)}.chat-fab{position:fixed;bottom:calc(var(--nav-height) + var(--spacing-lg));right:var(--spacing-lg);width:56px;height:56px;border-radius:var(--radius-full);background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-hover) 100%);color:var(--color-white);border:none;box-shadow:0 4px 14px #27799c66;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast);z-index:90}.chat-fab:hover{transform:scale(1.08) translateY(-2px);box-shadow:0 6px 20px #27799c80}.chat-fab-active{background:linear-gradient(135deg,var(--color-gray-600) 0%,var(--color-gray-700) 100%);box-shadow:0 4px 14px #0003}.chat-fab-active:hover{box-shadow:0 6px 20px #0000004d}.chat-fab-streaming{animation:fabPulse 2s infinite}.chat-fab-pulse{position:absolute;top:-4px;right:-4px;width:14px;height:14px;background-color:var(--color-success);border:2px solid var(--color-white);border-radius:var(--radius-full);animation:dotPulse 1.5s infinite}@media(min-width:768px){.chat-fab{bottom:var(--spacing-xl);right:var(--spacing-xl);width:60px;height:60px}}.chat-panel{position:fixed;top:0;right:0;bottom:0;width:100%;max-width:480px;background-color:var(--color-white);box-shadow:-4px 0 24px #0000001f;display:flex;flex-direction:column;z-index:100;animation:slideInRight var(--transition-normal) ease-out}@keyframes slideInRight{0%{transform:translate(100%);opacity:.8}to{transform:translate(0);opacity:1}}@media(max-width:767px){.chat-panel{max-width:100%}}@media(min-width:1200px){.chat-panel{max-width:520px}}.chat-panel-header{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-lg);border-bottom:1px solid var(--color-gray-200);background:linear-gradient(to bottom,var(--color-white) 0%,var(--color-gray-50) 100%);flex-shrink:0;min-height:64px}.chat-panel-header-left{display:flex;align-items:center;gap:var(--spacing-sm);flex:1;min-width:0}.chat-panel-header-right{display:flex;align-items:center;gap:var(--spacing-xs)}.chat-panel-title{font-size:var(--font-size-lg);font-weight:600;color:var(--color-gray-800);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-header-btn{display:flex;align-items:center;justify-content:center;width:38px;height:38px;border:none;border-radius:var(--radius-md);background-color:transparent;color:var(--color-gray-500);cursor:pointer;transition:all var(--transition-fast)}.chat-header-btn:hover{background-color:var(--color-gray-100);color:var(--color-gray-700)}.chat-header-btn-danger:hover{background-color:var(--color-danger-light);color:var(--color-danger)}.chat-model-selector{padding:var(--spacing-sm) var(--spacing-lg);border-bottom:1px solid var(--color-gray-100);background-color:var(--color-gray-50);flex-shrink:0}.chat-model-select-wrapper{position:relative;display:inline-flex;align-items:center}.chat-model-select{appearance:none;background-color:var(--color-white);border:1px solid var(--color-gray-200);border-radius:var(--radius-md);padding:6px 32px 6px 12px;font-size:var(--font-size-sm);font-weight:500;color:var(--color-gray-700);cursor:pointer;transition:all var(--transition-fast)}.chat-model-select:hover{border-color:var(--color-gray-300);background-color:var(--color-gray-50)}.chat-model-select:focus{outline:none;border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light)}.chat-model-select:disabled{opacity:.5;cursor:not-allowed}.chat-model-select-icon{position:absolute;right:10px;color:var(--color-gray-400);pointer-events:none}.chat-messages{flex:1;overflow-y:auto;padding:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-lg);background-color:var(--color-gray-50)}.chat-messages::-webkit-scrollbar{width:6px}.chat-messages::-webkit-scrollbar-track{background:transparent}.chat-messages::-webkit-scrollbar-thumb{background-color:var(--color-gray-300);border-radius:3px}.chat-messages::-webkit-scrollbar-thumb:hover{background-color:var(--color-gray-400)}.chat-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:var(--spacing-2xl) var(--spacing-lg);flex:1}.chat-empty-title{font-size:var(--font-size-xl);font-weight:600;color:var(--color-gray-800);margin-bottom:var(--spacing-sm)}.chat-empty-subtitle{font-size:var(--font-size-sm);color:var(--color-gray-500);max-width:300px;line-height:1.6}.chat-message{display:flex;gap:var(--spacing-sm);animation:messageIn .2s ease-out}@keyframes messageIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.chat-message-user{max-width:88%;margin-left:auto;flex-direction:row-reverse}.chat-message-assistant{width:100%}.chat-message-avatar{flex-shrink:0;width:36px;height:36px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;box-shadow:var(--shadow-sm)}.chat-message-user .chat-message-avatar{background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-hover) 100%);color:var(--color-white)}.chat-message-content{display:flex;flex-direction:column;gap:4px}.chat-message-user .chat-message-text{padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-lg);border-bottom-right-radius:4px;font-size:var(--font-size-sm);line-height:1.6;white-space:pre-wrap;word-break:break-word;box-shadow:var(--shadow-sm);background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-hover) 100%);color:var(--color-white)}.chat-message-assistant .chat-message-text{font-size:var(--font-size-sm);line-height:1.6;color:var(--color-gray-800)}.chat-message-streaming{-webkit-mask-image:linear-gradient(to bottom,rgba(0,0,0,1) 0%,rgba(0,0,0,1) calc(100% - 24px),rgba(0,0,0,.35) 100%);mask-image:linear-gradient(to bottom,#000 0% calc(100% - 24px),#00000059);transition:-webkit-mask-image var(--transition-fast),mask-image var(--transition-fast)}.chat-message-time{font-size:11px;color:var(--color-gray-400);padding:0 var(--spacing-sm)}.chat-message-user .chat-message-time{text-align:right}.chat-message-typing{display:flex;gap:5px;padding:var(--spacing-xs) 0;align-items:center}.typing-dot{width:8px;height:8px;background-color:var(--color-gray-400);border-radius:var(--radius-full);animation:typingBounce 1.4s infinite ease-in-out}.typing-dot:nth-child(1){animation-delay:0s}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}@keyframes typingBounce{0%,60%,to{transform:translateY(0)}30%{transform:translateY(-6px)}}.chat-input-container{padding:var(--spacing-md) var(--spacing-lg) var(--spacing-lg);border-top:1px solid var(--color-gray-200);background-color:var(--color-white);flex-shrink:0}.chat-input-wrapper{display:flex;align-items:flex-end;gap:var(--spacing-sm);background-color:var(--color-gray-50);border:1px solid var(--color-gray-200);border-radius:var(--radius-xl);padding:6px 6px 6px 16px;transition:all var(--transition-fast)}.chat-input-wrapper:focus-within{border-color:var(--color-primary);box-shadow:0 0 0 3px var(--color-primary-light);background-color:var(--color-white)}.chat-input{flex:1;border:none;background:transparent;padding:10px 0;font-size:var(--font-size-sm);color:var(--color-gray-800);resize:none;max-height:150px;line-height:1.5}.chat-input:focus{outline:none}.chat-input::placeholder{color:var(--color-gray-400)}.chat-input:disabled{opacity:.5}.chat-send-btn{flex-shrink:0;width:40px;height:40px;border:none;border-radius:var(--radius-lg);background:linear-gradient(135deg,var(--color-primary) 0%,var(--color-primary-hover) 100%);color:var(--color-white);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all var(--transition-fast);box-shadow:0 2px 8px #27799c4d}.chat-send-btn:hover:not(:disabled){transform:scale(1.05);box-shadow:0 4px 12px #27799c66}.chat-send-btn:disabled{background:var(--color-gray-300);box-shadow:none;cursor:not-allowed}.chat-stop-btn{background:linear-gradient(135deg,var(--color-danger) 0%,#dc2626 100%);box-shadow:0 2px 8px #ef44444d}.chat-stop-btn:hover{box-shadow:0 4px 12px #ef444466}.chat-input-hint{font-size:11px;color:var(--color-gray-400);margin-top:var(--spacing-xs);text-align:center}.chat-conversation-list{flex:1;display:flex;flex-direction:column;overflow:hidden;background-color:var(--color-gray-50)}.chat-new-conversation-btn{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);margin:var(--spacing-md);padding:var(--spacing-md);border:2px dashed var(--color-gray-300);border-radius:var(--radius-lg);background-color:var(--color-white);color:var(--color-gray-600);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.chat-new-conversation-btn:hover{border-color:var(--color-primary);color:var(--color-primary);background-color:var(--color-primary-light)}.chat-conversations{flex:1;overflow-y:auto;padding:0 var(--spacing-md) var(--spacing-md)}.chat-conversation-item{display:flex;align-items:center;width:100%;border:none;border-radius:var(--radius-lg);background-color:var(--color-white);transition:all var(--transition-fast);margin-bottom:var(--spacing-sm);box-shadow:var(--shadow-sm);overflow:hidden}.chat-conversation-item:hover{background-color:var(--color-gray-50)}.chat-conversation-item:hover .chat-conversation-delete-btn{opacity:1}.chat-conversation-item-active{background-color:var(--color-primary-light);border-left:3px solid var(--color-primary)}.chat-conversation-item-active:hover{background-color:var(--color-primary-light)}.chat-conversation-item-btn{display:flex;align-items:center;gap:var(--spacing-md);flex:1;padding:var(--spacing-md);border:none;background:transparent;text-align:left;cursor:pointer;min-width:0}.chat-conversation-delete-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;margin-right:var(--spacing-sm);border:none;border-radius:var(--radius-md);background:transparent;color:var(--color-gray-400);cursor:pointer;opacity:0;transition:all var(--transition-fast)}.chat-conversation-delete-btn:hover{background-color:var(--color-danger-light);color:var(--color-danger)}.chat-conversation-actions{display:flex;align-items:center;gap:2px;margin-right:var(--spacing-sm);opacity:0;transition:opacity var(--transition-fast)}.chat-conversation-item:hover .chat-conversation-actions{opacity:1}.chat-conversation-action-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:var(--radius-md);background:transparent;color:var(--color-gray-400);cursor:pointer;transition:all var(--transition-fast)}.chat-conversation-action-btn:hover{background-color:var(--color-gray-200);color:var(--color-gray-600)}.chat-conversation-action-btn-danger:hover{background-color:var(--color-danger-light);color:var(--color-danger)}.chat-conversation-icon{flex-shrink:0;color:var(--color-gray-400)}.chat-conversation-item-active .chat-conversation-icon{color:var(--color-primary)}.chat-conversation-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.chat-conversation-title{font-size:var(--font-size-sm);font-weight:500;color:var(--color-gray-800);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-conversation-date{font-size:11px;color:var(--color-gray-400)}.chat-loading,.chat-no-conversations{padding:var(--spacing-xl);text-align:center;color:var(--color-gray-500);font-size:var(--font-size-sm)}.chat-no-conversations p{margin-bottom:var(--spacing-sm)}@keyframes fabPulse{0%,to{box-shadow:0 4px 14px #27799c66}50%{box-shadow:0 4px 20px #27799c99}}@keyframes dotPulse{0%,to{transform:scale(1)}50%{transform:scale(1.2)}}[data-theme=dark] .chat-panel{box-shadow:-4px 0 24px #0006}[data-theme=dark] .chat-message-user .chat-message-text{color:#fff}[data-theme=dark] .chat-message-assistant .chat-message-text{color:var(--color-gray-800)}[data-theme=dark] .chat-send-btn:not(:disabled),[data-theme=dark] .chat-fab{color:#fff}[data-theme=dark] .chat-input-wrapper{background-color:var(--color-gray-200);border-color:var(--color-gray-300)}[data-theme=dark] .chat-input-wrapper:focus-within{background-color:var(--color-gray-100)}[data-theme=dark] .chat-conversation-item{box-shadow:none;border:1px solid var(--color-gray-300)}[data-theme=dark] .chat-model-select{background-color:var(--color-gray-200);border-color:var(--color-gray-300)}[data-theme=dark] .confirm-modal-message{color:var(--color-gray-500)}[data-theme=dark] .btn-danger,[data-theme=dark] .btn-warning{color:#fff}.edit-title-modal{max-width:400px}.edit-title-modal .form-group{margin-bottom:0}.chat-confirmation{background:linear-gradient(135deg,var(--color-warning-light) 0%,#fef3c7 100%);border:1px solid var(--color-warning);border-radius:var(--radius-lg);padding:var(--spacing-md);margin:0 var(--spacing-lg) var(--spacing-md);animation:confirmSlideIn .3s ease-out}@keyframes confirmSlideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.chat-confirmation-header{display:flex;align-items:center;gap:var(--spacing-xs);font-weight:600;color:var(--color-warning-dark);margin-bottom:var(--spacing-sm);font-size:var(--font-size-sm)}.chat-confirmation-description{font-size:var(--font-size-sm);color:var(--color-gray-700);margin-bottom:var(--spacing-md);line-height:1.5}.chat-confirmation-buttons{display:flex;gap:var(--spacing-sm);flex-wrap:wrap}.chat-confirm-btn{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border:none;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:all var(--transition-fast);white-space:nowrap}.chat-confirm-btn:disabled{opacity:.6;cursor:not-allowed}.chat-confirm-btn-once{background-color:var(--color-success);color:#fff}.chat-confirm-btn-once:hover:not(:disabled){background-color:var(--color-success-dark);transform:translateY(-1px)}.chat-confirm-btn-session{background-color:var(--color-primary);color:#fff}.chat-confirm-btn-session:hover:not(:disabled){background-color:var(--color-primary-hover);transform:translateY(-1px)}.chat-confirm-btn-decline{background-color:var(--color-gray-200);color:var(--color-gray-700)}.chat-confirm-btn-decline:hover:not(:disabled){background-color:var(--color-danger);color:#fff;transform:translateY(-1px)}[data-theme=dark] .chat-confirmation{background:linear-gradient(135deg,#fbbf2426,#fbbf241a);border-color:var(--color-warning)}[data-theme=dark] .chat-confirmation-header{color:var(--color-warning)}[data-theme=dark] .chat-confirmation-description{color:var(--color-gray-300)}[data-theme=dark] .chat-confirm-btn-decline{background-color:var(--color-gray-600);color:var(--color-gray-200)}[data-theme=dark] .chat-confirm-btn-once,[data-theme=dark] .chat-confirm-btn-session{color:#fff}.chat-tool-block{display:flex;align-items:flex-start;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);margin:var(--spacing-xs) 0;border-radius:var(--radius-md);font-size:var(--font-size-sm);animation:toolBlockIn .2s ease-out}@keyframes toolBlockIn{0%{opacity:0;transform:translate(-8px)}to{opacity:1;transform:translate(0)}}.chat-tool-block-running{background-color:var(--color-primary-light);border:1px solid var(--color-primary);color:var(--color-primary-dark)}.chat-tool-block-success{background-color:var(--color-success-light);border:1px solid var(--color-success);color:var(--color-success-dark)}.chat-tool-block-error{background-color:var(--color-danger-light);border:1px solid var(--color-danger);color:var(--color-danger)}.chat-tool-block-icon{flex-shrink:0;display:flex;align-items:center;justify-content:center;margin-top:1px}.chat-tool-spinner{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.chat-tool-block-content{display:flex;flex-direction:column;gap:2px;min-width:0}.chat-tool-block-name{font-weight:500;display:flex;flex-wrap:wrap;align-items:baseline;gap:var(--spacing-xs)}.chat-tool-block-description{font-weight:400;opacity:.85}.chat-tool-block-error-text{font-size:12px;opacity:.9}[data-theme=dark] .chat-tool-block-running{background-color:#27799c26;border-color:var(--color-primary);color:var(--color-primary)}[data-theme=dark] .chat-tool-block-success{background-color:#10b98126;border-color:var(--color-success);color:var(--color-success)}[data-theme=dark] .chat-tool-block-error{background-color:#ef444426;border-color:var(--color-danger);color:var(--color-danger)}.chat-tool-activities{display:flex;flex-direction:column;gap:var(--spacing-xs);margin-top:var(--spacing-sm)}.chat-message-tool-calls{display:flex;flex-direction:column;gap:var(--spacing-xs);margin-bottom:var(--spacing-sm)}.md-content{display:flex;flex-direction:column;gap:var(--spacing-xs)}.md-content>*:first-child{margin-top:0}.md-content>*:last-child{margin-bottom:0}.md-p{margin:0;line-height:1.6}.md-h1,.md-h2,.md-h3,.md-h4,.md-h5,.md-h6{margin:var(--spacing-sm) 0 var(--spacing-xs);font-weight:600;line-height:1.3}.md-h1{font-size:1.25em}.md-h2{font-size:1.15em}.md-h3{font-size:1.05em}.md-h4,.md-h5,.md-h6{font-size:1em}.md-inline-code{background-color:#00000014;padding:2px 6px;border-radius:var(--radius-sm);font-family:SF Mono,Consolas,Monaco,monospace;font-size:.9em;word-break:break-word}.chat-message-assistant .md-inline-code{background-color:var(--color-gray-100);color:var(--color-gray-800)}.md-code-block{background-color:var(--color-gray-900);color:var(--color-gray-100);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);overflow-x:auto;margin:var(--spacing-xs) 0;font-size:.85em}.md-code-block code{font-family:SF Mono,Consolas,Monaco,monospace;line-height:1.5;white-space:pre}.md-list{margin:var(--spacing-xs) 0;padding-left:1.5em}.md-list li{margin:2px 0;line-height:1.5}ul.md-list{list-style-type:disc}ol.md-list{list-style-type:decimal}.md-link{color:var(--color-primary);text-decoration:underline;text-underline-offset:2px}.md-link:hover{color:var(--color-primary-hover)}.chat-message-assistant .md-link{color:var(--color-primary)}.md-hr{border:none;border-top:1px solid var(--color-gray-300);margin:var(--spacing-sm) 0}.md-content strong{font-weight:600}.md-content em{font-style:italic}[data-theme=dark] .md-inline-code{background-color:#ffffff1a}[data-theme=dark] .chat-message-assistant .md-inline-code{background-color:var(--color-gray-300);color:var(--color-gray-900)}[data-theme=dark] .md-code-block{background-color:#1a1a2e;color:#e0e0e0}[data-theme=dark] .md-hr{border-top-color:var(--color-gray-400)}.md-table-wrap{overflow-x:auto;margin:var(--spacing-sm) 0}.md-table{border-collapse:collapse;width:100%;font-size:.85em}.md-table th,.md-table td{border:1px solid var(--color-gray-300);padding:5px 10px;text-align:left;vertical-align:top}.md-table th{font-weight:600;background-color:var(--color-gray-100)}.md-table tbody tr:nth-child(2n) td{background-color:#00000005}.md-td-center{text-align:center}.md-td-right{text-align:right}[data-theme=dark] .md-table th,[data-theme=dark] .md-table td{border-color:var(--color-gray-400)}[data-theme=dark] .md-table th{background-color:#ffffff0f}[data-theme=dark] .md-table tbody tr:nth-child(2n) td{background-color:#ffffff08}.category-manager-modal{max-width:480px}.category-manager-modal .modal-body{display:flex;flex-direction:column;gap:var(--spacing-lg);max-height:60vh}.category-add-btn{width:100%}.category-form{display:flex;flex-direction:column;gap:var(--spacing-md);padding:var(--spacing-md);background-color:var(--color-gray-50);border-radius:var(--radius-md);border:1px solid var(--color-gray-200)}.category-form-actions{display:flex;justify-content:flex-end;gap:var(--spacing-sm);margin-top:var(--spacing-sm)}.color-picker{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.color-option{width:32px;height:32px;border-radius:var(--radius-full);border:2px solid transparent;cursor:pointer;transition:all var(--transition-fast)}.color-option-active{border-color:var(--color-gray-800);box-shadow:0 0 0 2px var(--color-white),0 0 0 4px var(--color-gray-400)}.category-list{display:flex;flex-direction:column;gap:var(--spacing-xs);overflow-y:auto}.category-list-empty{text-align:center;padding:var(--spacing-xl) var(--spacing-md);color:var(--color-gray-500)}.category-list-empty p{margin:0;font-size:var(--font-size-sm)}.category-list-empty p:first-child{font-weight:500;color:var(--color-gray-700);margin-bottom:var(--spacing-xs)}.category-list-item{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-white);border:1px solid var(--color-gray-200);border-radius:var(--radius-md);transition:background-color var(--transition-fast)}.category-list-item:hover{background-color:var(--color-gray-50)}.category-list-item-info{display:flex;align-items:center;gap:var(--spacing-sm)}.category-dot{width:12px;height:12px;border-radius:var(--radius-full);flex-shrink:0}.category-list-item-name{font-size:var(--font-size-sm);font-weight:500;color:var(--color-gray-800)}.category-list-item-actions{display:flex;align-items:center;gap:var(--spacing-xs)}.category-list-item-actions .icon-btn{width:32px;height:32px}.income-source-add-btn{width:100%}.income-source-form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-md)}@media(max-width:520px){.income-source-form-row{grid-template-columns:1fr}}.form-label-optional{font-weight:400;color:var(--color-gray-500);font-size:var(--font-size-xs)}.form-input-error{border-color:var(--color-danger)}.income-source-list{display:flex;flex-direction:column;gap:var(--spacing-xs);overflow-y:auto}.income-source-list-empty{text-align:center;padding:var(--spacing-xl) var(--spacing-md);color:var(--color-gray-500)}.income-source-list-empty p{margin:0;font-size:var(--font-size-sm)}.income-source-list-empty p:first-child{font-weight:500;color:var(--color-gray-700);margin-bottom:var(--spacing-xs)}.income-source-list-item{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-white);border:1px solid var(--color-gray-200);border-radius:var(--radius-md);transition:background-color var(--transition-fast)}.income-source-list-item:hover{background-color:var(--color-gray-50)}.income-source-list-item-info{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.income-source-list-item-name{font-size:var(--font-size-sm);font-weight:600;color:var(--color-gray-800)}.income-source-list-item-meta{font-size:var(--font-size-xs);color:var(--color-gray-500)}.income-source-list-item-actions{display:flex;align-items:center;gap:var(--spacing-xs);flex-shrink:0}.income-source-list-item-actions .icon-btn{width:32px;height:32px}.home-page{padding-top:var(--nav-height)}@media(min-width:768px){.home-page{padding-top:0}}.dashboard-summary{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}@media(min-width:768px){.dashboard-summary{grid-template-columns:repeat(4,1fr)}}.summary-card{background-color:var(--surface-card);color:var(--color-gray-800);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--spacing-md);display:flex;align-items:flex-start;gap:var(--spacing-md);box-shadow:var(--shadow-card),var(--shadow-inset-top);transition:box-shadow var(--transition-normal),border-color var(--transition-fast),transform var(--transition-fast)}.summary-card:hover{box-shadow:var(--shadow-card-hover),var(--shadow-inset-top);transform:translateY(-1px);border-color:var(--border-default)}.summary-card-icon{width:48px;height:48px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;flex-shrink:0}.summary-icon-primary{background-color:var(--color-primary-light);color:var(--color-primary)}.summary-icon-success{background-color:var(--color-success-light);color:var(--color-success)}.summary-icon-warning{background-color:var(--color-warning-light);color:var(--color-warning)}.summary-icon-danger{background-color:var(--color-danger-light);color:var(--color-danger)}.summary-card-content{flex:1;min-width:0}.summary-card-title{font-size:var(--font-size-xs);color:var(--color-gray-500);margin-bottom:2px}.summary-card-value{font-size:var(--font-size-xl);font-weight:700;color:var(--color-gray-900);margin-bottom:2px;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.summary-card-subtitle{font-size:var(--font-size-xs);color:var(--color-gray-400)}.quick-actions{display:flex;flex-direction:row;justify-content:space-between;flex-wrap:wrap;gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}@media(min-width:640px){.quick-actions{grid-template-columns:repeat(5,1fr)}}.quick-action-btn{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--spacing-xs);padding:var(--spacing-md);background-color:var(--surface-card);color:var(--color-gray-700);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast),transform var(--transition-fast);font-size:var(--font-size-sm);box-shadow:var(--shadow-card),var(--shadow-inset-top);font-weight:500;flex:1}.quick-action-btn:hover{border-color:var(--color-primary);color:var(--color-primary);transform:translateY(-2px);box-shadow:var(--shadow-card-hover),var(--shadow-inset-top)}.quick-action-btn:active{transform:translateY(0);box-shadow:var(--shadow-sm)}.quick-action-btn-primary{background:linear-gradient(180deg,var(--color-primary) 0%,var(--color-primary-hover) 100%);border-color:var(--color-primary-hover);color:var(--color-white);box-shadow:var(--shadow-md)}.quick-action-btn-primary:hover{background:linear-gradient(180deg,var(--color-primary-hover) 0%,var(--color-primary-active) 100%);border-color:var(--color-primary-active);color:var(--color-white);box-shadow:var(--shadow-lg)}.upcoming-bills-list{display:flex;flex-direction:column}.upcoming-bill-item{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) 0;border-bottom:1px solid var(--color-gray-100)}.upcoming-bill-item:last-child{border-bottom:none}.upcoming-bill-category-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.upcoming-bill-info{flex:1;min-width:0}.upcoming-bill-name{font-weight:500;color:var(--color-gray-900);margin-bottom:2px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.upcoming-bill-due{display:flex;align-items:center;gap:4px;font-size:var(--font-size-xs);color:var(--color-gray-500)}.upcoming-bill-amount{font-weight:600;color:var(--color-gray-900);white-space:nowrap}.home-grid{display:grid;gap:var(--spacing-lg)}@media(min-width:1024px){.home-grid{grid-template-columns:2fr 1fr}}.category-breakdown{display:flex;flex-direction:column;gap:var(--spacing-sm)}.category-breakdown-item{display:flex;align-items:center;gap:var(--spacing-sm)}.category-breakdown-dot{width:12px;height:12px;border-radius:50%;flex-shrink:0}.category-breakdown-name{flex:1;font-size:var(--font-size-sm);color:var(--color-gray-700)}.category-breakdown-amount{font-size:var(--font-size-sm);font-weight:600;color:var(--color-gray-900)}.welcome-section{margin-bottom:var(--spacing-lg)}.welcome-greeting{font-size:var(--font-size-2xl);font-weight:700;color:var(--color-gray-900);margin-bottom:var(--spacing-xs)}.welcome-date{font-size:var(--font-size-sm);color:var(--color-gray-500)}.paycheck-panel{position:relative;background-color:var(--surface-raised);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--spacing-lg);margin-bottom:var(--spacing-lg);display:flex;flex-direction:column;gap:var(--spacing-md);transition:border-color var(--transition-fast)}.paycheck-panel-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-md)}.paycheck-panel-header-text{flex:1;min-width:0}.paycheck-panel-title{font-size:var(--font-size-lg);font-weight:700;color:var(--color-gray-900);margin:0 0 2px;letter-spacing:-.02em}.paycheck-panel-subtitle{font-size:var(--font-size-sm);color:var(--color-gray-500);margin:0}.paycheck-panel-picker{position:relative;flex-shrink:0}.paycheck-panel-picker-btn{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) var(--spacing-sm);background-color:var(--surface-card);color:var(--color-gray-700);border:1px solid var(--border-default);border-radius:var(--radius-md);box-shadow:var(--shadow-input);cursor:pointer;font-size:var(--font-size-sm);font-weight:500;transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast);max-width:200px}.paycheck-panel-picker-btn:hover{background-color:var(--color-gray-50);border-color:var(--border-strong);color:var(--color-gray-900)}.paycheck-panel-picker-btn-label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.paycheck-panel-picker-overlay{position:fixed;inset:0;z-index:9}.paycheck-panel-picker-menu{position:absolute;top:calc(100% + 4px);right:0;min-width:240px;background-color:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-lg),var(--shadow-inset-top);z-index:10;padding:var(--spacing-xs);display:flex;flex-direction:column;gap:2px;animation:customSelectFadeIn var(--transition-fast)}.paycheck-panel-picker-item{display:flex;flex-direction:column;align-items:flex-start;gap:2px;padding:var(--spacing-sm);background:none;border:none;border-radius:var(--radius-sm);cursor:pointer;text-align:left;transition:background-color var(--transition-fast);width:100%}.paycheck-panel-picker-item:hover{background-color:var(--color-gray-100)}.paycheck-panel-picker-item-active,.paycheck-panel-picker-item-active:hover{background-color:var(--color-primary-light)}.paycheck-panel-picker-item-name{font-size:var(--font-size-sm);font-weight:600;color:var(--color-gray-900)}.paycheck-panel-picker-item-active .paycheck-panel-picker-item-name{color:var(--color-primary)}.paycheck-panel-picker-item-meta{font-size:var(--font-size-xs);color:var(--color-gray-500)}.paycheck-panel-picker-divider{height:1px;background-color:var(--color-gray-200);margin:var(--spacing-xs) 0}.paycheck-panel-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-md)}@media(max-width:640px){.paycheck-panel-stats{grid-template-columns:1fr;gap:var(--spacing-sm)}}.paycheck-panel-stat{display:flex;flex-direction:column;gap:2px}.paycheck-panel-stat-label{font-size:var(--font-size-xs);color:var(--color-gray-500);text-transform:uppercase;letter-spacing:.5px;font-weight:500}.paycheck-panel-stat-value{font-size:var(--font-size-xl);font-weight:700;color:var(--color-gray-900);font-variant-numeric:tabular-nums;letter-spacing:-.02em}.paycheck-panel-stat-value-warning{color:var(--color-warning)}.paycheck-panel-stat-value-success{color:var(--color-success)}.paycheck-panel-stat-value-danger{color:var(--color-danger)}.paycheck-panel-bar{height:8px;background-color:var(--color-gray-100);border-radius:var(--radius-full);overflow:hidden;box-shadow:var(--shadow-input)}.paycheck-panel-bar-fill{height:100%;background:linear-gradient(180deg,var(--color-warning) 0%,var(--color-warning-hover) 100%);border-radius:var(--radius-full);transition:width var(--transition-normal);box-shadow:inset 0 1px #ffffff40}.paycheck-panel-bar-fill-danger{background:linear-gradient(180deg,var(--color-danger) 0%,var(--color-danger-hover) 100%)}.paycheck-panel-bar-label{font-size:var(--font-size-xs);color:var(--color-gray-500);margin-top:-4px}.paycheck-panel-toggle{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-xs) 0;background:none;border:none;color:var(--color-primary);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;align-self:flex-start;transition:opacity var(--transition-fast)}.paycheck-panel-toggle:hover{opacity:.8}.paycheck-panel-bill-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--color-gray-100);display:flex;flex-direction:column}.paycheck-panel-bill-item{display:grid;grid-template-columns:1fr auto auto;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) 0;border-bottom:1px solid var(--color-gray-100)}.paycheck-panel-bill-item:last-child{border-bottom:none}.paycheck-panel-bill-name{font-size:var(--font-size-sm);color:var(--color-gray-700);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.paycheck-panel-bill-date{font-size:var(--font-size-xs);color:var(--color-gray-500)}.paycheck-panel-bill-amount{font-size:var(--font-size-sm);font-weight:600;color:var(--color-gray-900);font-variant-numeric:tabular-nums}.paycheck-panel-empty{flex-direction:row;align-items:center;gap:var(--spacing-md)}@media(max-width:640px){.paycheck-panel-empty{flex-direction:column;text-align:center}}.paycheck-panel-empty-icon{width:56px;height:56px;border-radius:var(--radius-md);background-color:var(--color-primary-light);color:var(--color-primary);display:flex;align-items:center;justify-content:center;flex-shrink:0}.paycheck-panel-empty-content{flex:1;display:flex;flex-direction:column;gap:var(--spacing-xs);align-items:flex-start}@media(max-width:640px){.paycheck-panel-empty-content{align-items:center}}.paycheck-panel-empty-title{font-size:var(--font-size-base);font-weight:600;color:var(--color-gray-900);margin:0}.paycheck-panel-empty-message{font-size:var(--font-size-sm);color:var(--color-gray-500);margin:0 0 var(--spacing-xs)}.income-hero{margin-bottom:var(--spacing-lg)}.income-hero-eyebrow{display:inline-flex;align-items:center;gap:4px}.income-hero-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-lg);flex-wrap:wrap}.income-hero-value{margin:var(--spacing-xs) 0 2px;line-height:1.05;color:var(--color-gray-800);font-weight:600}.income-hero-sub{font-size:var(--font-size-sm);color:var(--color-gray-500);margin:0}.income-hero-next{text-align:right}.income-hero-next-amount{margin:var(--spacing-xs) 0 0;font-weight:600;color:var(--color-gray-800)}.income-hero-next-meta{font-size:var(--font-size-sm);color:var(--color-gray-500);margin:0}.income-hero-streams{margin-top:var(--spacing-md);padding-top:var(--spacing-md);border-top:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:var(--spacing-sm)}.income-hero-stream{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md)}.income-hero-stream-info{display:flex;flex-direction:column;gap:2px;min-width:0}.income-hero-stream-name{font-weight:500;color:var(--color-gray-800);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.income-hero-stream-meta{font-size:var(--font-size-sm);color:var(--color-gray-500)}.income-hero-stream-actions{display:flex;align-items:center;gap:var(--spacing-xs);flex-shrink:0}.income-hero-tracked{display:inline-flex;align-items:center;gap:4px;font-size:var(--font-size-sm);font-weight:500;color:var(--color-income);flex-shrink:0}.income-hero-allset{display:flex;align-items:center;gap:var(--spacing-xs);margin:var(--spacing-md) 0 0;font-size:var(--font-size-sm);color:var(--color-income)}.income-hero-empty{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);flex-wrap:wrap}.income-hero-empty-title{font-weight:600;color:var(--color-gray-800);margin:var(--spacing-xs) 0 2px}.income-hero-empty-sub{font-size:var(--font-size-sm);color:var(--color-gray-500);margin:0;max-width:48ch}.money-card{margin-bottom:var(--spacing-lg)}.money-eyebrow{display:inline-flex;align-items:center;gap:4px}.money-value{margin:var(--spacing-xs) 0 var(--spacing-xs);line-height:1.05;color:var(--color-gray-800);font-weight:600}.money-value-over{color:var(--color-overdue, var(--color-danger))}.money-line{font-size:var(--font-size-sm);color:var(--color-gray-600);margin:0 0 var(--spacing-md);max-width:52ch}.money-breakdown{display:flex;align-items:center;flex-wrap:wrap;gap:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--color-gray-500)}.money-part-amount{color:var(--color-gray-800);font-weight:600}.money-sep{color:var(--color-gray-400)}.money-next{margin:var(--spacing-sm) 0 0;font-size:var(--font-size-sm);color:var(--color-income)}.money-next .num{font-weight:600}.stat-row{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-sm);margin-bottom:var(--spacing-lg)}@media(min-width:768px){.stat-row{grid-template-columns:repeat(3,1fr)}}@media(min-width:1200px){.stat-row{grid-template-columns:repeat(6,1fr)}}.stat-tile{background-color:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--spacing-md);box-shadow:var(--shadow-card),var(--shadow-inset-top)}.stat-tile-label{font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:var(--tracking-uppercase);color:var(--color-gray-500);margin:0}.stat-tile-value{font-size:var(--font-size-xl);font-weight:600;color:var(--color-gray-800);margin:var(--spacing-xs) 0 2px}.stat-tile-sub{font-size:var(--font-size-xs);color:var(--color-gray-500);margin:0}.stat-tile-danger .stat-tile-value{color:var(--color-overdue, var(--color-danger))}.ask-bar{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);margin-bottom:var(--spacing-lg);background-color:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-full);transition:border-color var(--transition-fast)}.ask-bar:focus-within{border-color:var(--color-primary)}.ask-bar-icon{color:var(--color-gray-400);flex-shrink:0}.ask-bar-input{flex:1;min-width:0;border:none;background:none;outline:none;font-size:var(--font-size-sm);color:var(--color-gray-800)}.ask-bar-input::placeholder{color:var(--color-gray-500)}.ask-bar-send{display:flex;align-items:center;justify-content:center;width:30px;height:30px;padding:0;border:none;border-radius:50%;background-color:var(--color-primary);color:#fff;cursor:pointer;flex-shrink:0;transition:opacity var(--transition-fast)}.ask-bar-send:hover{opacity:.9}.transfer-amount{font-weight:600;color:var(--color-gray-800);flex-shrink:0}.review-title{display:inline-flex;align-items:center;gap:var(--spacing-sm)}.review-count{display:inline-flex;align-items:center;justify-content:center;min-width:22px;height:22px;padding:0 6px;border-radius:var(--radius-full);background-color:var(--color-primary-light);color:var(--color-primary);font-size:var(--font-size-xs);font-weight:600}.review-sub{font-size:var(--font-size-sm);color:var(--color-gray-500);margin:0 0 var(--spacing-md)}.review-list{display:flex;flex-direction:column}.review-row{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);padding:var(--spacing-sm) 0;border-top:1px solid var(--border-subtle)}.review-row:first-child{border-top:none}.review-row-info{display:flex;flex-direction:column;gap:2px;min-width:0}.review-row-name{font-weight:500;color:var(--color-gray-800);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.review-row-meta{font-size:var(--font-size-sm);color:var(--color-gray-500)}.review-row-actions{display:flex;align-items:center;gap:var(--spacing-xs);flex-shrink:0}.review-dismiss{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:none;border:none;border-radius:var(--radius-md);color:var(--color-gray-500);cursor:pointer;transition:all var(--transition-fast)}.review-dismiss:hover{background-color:var(--color-gray-100);color:var(--color-gray-700)}.review-dismiss:disabled{opacity:.5;cursor:default}.transfers-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;padding:0;background:none;border:none;color:var(--color-gray-500);cursor:pointer}.transfers-toggle .card-title{margin:0}.transfers-card .review-sub{margin-top:var(--spacing-sm)}.bills-page{max-width:900px;margin:0 auto}.bills-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:var(--spacing-xl);gap:var(--spacing-md);flex-wrap:wrap}.bills-header-actions{display:flex;gap:var(--spacing-sm);flex-wrap:wrap}.bills-filters{display:flex;flex-direction:column;gap:var(--spacing-md);margin-bottom:var(--spacing-xl)}.bills-search{position:relative;width:100%}.bills-search-icon{position:absolute;left:var(--spacing-md);top:50%;transform:translateY(-50%);color:var(--color-gray-400);pointer-events:none}.bills-search .form-input.bills-search-input{padding-left:calc(var(--spacing-md) + 24px);color:var(--color-gray-800)}.bills-status-filters{display:flex;gap:var(--spacing-sm);flex-wrap:wrap}.bills-filter-btn{padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);font-weight:500;border:1px solid var(--color-gray-200);border-radius:var(--radius-full);background-color:var(--color-white);color:var(--color-gray-600);cursor:pointer;transition:all var(--transition-fast)}.bills-filter-btn:hover{background-color:var(--color-gray-50);border-color:var(--color-gray-300)}.bills-filter-btn-active{background-color:var(--color-primary);border-color:var(--color-primary);color:var(--color-white)}.bills-filter-btn-active:hover{background-color:var(--color-primary-hover)}.bills-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.bill-card{background-color:var(--color-white);color:var(--color-gray-800);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--spacing-lg);transition:box-shadow var(--transition-fast)}.bill-card:hover{box-shadow:var(--shadow-lg)}.bill-card-paid{opacity:.7;background-color:var(--color-gray-50)}.bill-card-header{display:flex;align-items:flex-start;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.bill-card-category-indicator{width:4px;height:40px;border-radius:var(--radius-full);flex-shrink:0}.bill-card-info{flex:1;min-width:0}.bill-card-name{font-size:var(--font-size-lg);font-weight:600;color:var(--color-gray-800);margin:0}.bill-card-merchant{font-size:var(--font-size-sm);color:var(--color-gray-500);margin:2px 0 0}.bill-card-amount{font-size:var(--font-size-xl);font-weight:700;color:var(--color-gray-900)}.bill-card-details{display:flex;flex-wrap:wrap;gap:var(--spacing-md);margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--color-gray-100)}.bill-card-detail{display:flex;align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-sm);color:var(--color-gray-500)}.bill-card-autopay{color:var(--color-success)}.bill-card-footer{display:flex;align-items:center;gap:var(--spacing-md);flex-wrap:wrap}.bill-card-status{display:inline-flex;padding:var(--spacing-xs) var(--spacing-sm);font-size:var(--font-size-xs);font-weight:600;border-radius:var(--radius-full);text-transform:uppercase}.status-paid{background-color:var(--color-success-light);color:var(--color-success)}.status-pending{background-color:var(--color-gray-100);color:var(--color-gray-600)}.status-upcoming{background-color:var(--color-warning-light);color:var(--color-warning)}.status-overdue{background-color:var(--color-danger-light);color:var(--color-danger)}.status-partial{background-color:var(--color-primary-light);color:var(--color-primary)}.bill-card-overdue-flag{color:var(--color-danger);font-weight:600}.bill-card-due-text{font-size:var(--font-size-sm);color:var(--color-gray-500)}.bill-card-actions{display:flex;align-items:center;gap:var(--spacing-sm);margin-left:auto}.bill-card-menu-container{position:relative}.bill-card-menu-overlay{position:fixed;inset:0;z-index:10}.bill-card-menu{position:absolute;right:0;top:100%;margin-top:var(--spacing-xs);background-color:var(--color-white);color:var(--color-gray-800);border-radius:var(--radius-md);box-shadow:var(--shadow-lg);min-width:140px;z-index:20;overflow:hidden}.bill-card-menu button{display:flex;align-items:center;gap:var(--spacing-sm);width:100%;padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);color:var(--color-gray-700);background:none;border:none;cursor:pointer;transition:background-color var(--transition-fast)}.bill-card-menu button:hover{background-color:var(--color-gray-50)}.bill-card-menu-danger{color:var(--color-danger)!important}.bills-form-page{max-width:600px;margin:0 auto}.bills-form-notice{display:flex;align-items:flex-start;gap:var(--spacing-sm);padding:var(--spacing-md);background-color:var(--color-warning-light);border:1px solid var(--color-warning);border-radius:var(--radius-md);margin-bottom:var(--spacing-lg);color:var(--color-gray-800)}.bills-form-notice svg{color:var(--color-warning);flex-shrink:0;margin-top:2px}.bills-form-notice p{margin:0;font-size:var(--font-size-sm);line-height:1.5}.form-notice-link{color:var(--color-primary);font-weight:500;text-decoration:underline}.form-notice-link:hover{color:var(--color-primary-hover)}.bills-form-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-xl)}.bills-form{background-color:var(--color-white);color:var(--color-gray-800);border-radius:var(--radius-lg);box-shadow:var(--shadow-md);padding:var(--spacing-xl)}.form-checkbox{display:flex;align-items:center;gap:var(--spacing-sm)}.form-checkbox input[type=checkbox]{width:18px;height:18px;accent-color:var(--color-primary)}.form-checkbox label{font-size:var(--font-size-sm);color:var(--color-gray-700);cursor:pointer}.form-actions{display:flex;justify-content:flex-end;gap:var(--spacing-md);margin-top:var(--spacing-xl);padding-top:var(--spacing-lg);border-top:1px solid var(--color-gray-200)}.icon-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;padding:0;background:none;border:none;border-radius:var(--radius-md);color:var(--color-gray-500);cursor:pointer;transition:all var(--transition-fast)}@media(max-width:640px){.bill-card-footer{flex-direction:column;align-items:flex-start}.bill-card-actions{width:100%;margin-left:0;margin-top:var(--spacing-md)}}.income-page{display:flex;flex-direction:column;gap:var(--spacing-lg)}.income-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--spacing-md);flex-wrap:wrap}.income-header-actions{display:flex;gap:var(--spacing-sm);flex-wrap:wrap}.income-filters{display:flex;flex-direction:column;gap:var(--spacing-md);padding:var(--spacing-md);background-color:var(--color-white);border:1px solid var(--color-gray-200);border-radius:var(--radius-md)}.income-filter-group{display:flex;flex-direction:column;gap:var(--spacing-xs)}.income-filter-label{font-size:var(--font-size-xs);font-weight:600;color:var(--color-gray-600);text-transform:uppercase;letter-spacing:.02em}.income-filter-select{max-width:280px}.income-preset-buttons{display:flex;flex-wrap:wrap;gap:var(--spacing-xs)}.income-preset-btn{padding:var(--spacing-xs) var(--spacing-md);background-color:var(--color-gray-100);color:var(--color-gray-700);border:1px solid transparent;border-radius:var(--radius-md);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.income-preset-btn:hover{background-color:var(--color-gray-200)}.income-preset-btn-active{background-color:var(--color-primary-light);color:var(--color-primary);border-color:var(--color-primary)}.income-preset-btn-active:hover{background-color:var(--color-primary-light)}.income-custom-range{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap}.income-custom-sep{color:var(--color-gray-500);font-size:var(--font-size-sm)}.income-entry-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.income-entry-card{display:flex;align-items:stretch;background-color:var(--color-white);border:1px solid var(--color-gray-200);border-radius:var(--radius-md);overflow:hidden;transition:border-color var(--transition-fast),box-shadow var(--transition-fast)}.income-entry-card:hover{border-color:var(--color-primary);box-shadow:var(--shadow-sm)}.income-entry-card-main{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);flex:1;cursor:pointer;min-width:0}.income-entry-card-info{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}.income-entry-card-source{font-size:var(--font-size-md);font-weight:600;color:var(--color-gray-900);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.income-entry-card-date{font-size:var(--font-size-sm);color:var(--color-gray-500)}.income-entry-card-notes{font-size:var(--font-size-xs);color:var(--color-gray-600);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:400px}.income-entry-card-amounts{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex-shrink:0}.income-entry-card-net{font-size:var(--font-size-lg);font-weight:700;color:var(--color-success);font-variant-numeric:tabular-nums}.income-entry-card-gross{font-size:var(--font-size-xs);color:var(--color-gray-500);font-variant-numeric:tabular-nums}.income-entry-card-actions{display:flex;align-items:center;gap:var(--spacing-xs);padding:0 var(--spacing-sm);border-left:1px solid var(--color-gray-100);background-color:var(--color-gray-50)}.income-entry-card-actions .icon-btn{width:32px;height:32px}.linklike-btn{background:none;border:none;padding:var(--spacing-xs) 0 0;margin:0;font-size:var(--font-size-xs);font-weight:500;color:var(--color-primary);cursor:pointer;text-align:left;transition:color var(--transition-fast)}.linklike-btn:hover{color:var(--color-primary-dark, var(--color-primary));text-decoration:underline}@media(max-width:640px){.income-entry-card-main{flex-direction:column;align-items:flex-start;gap:var(--spacing-sm)}.income-entry-card-amounts{align-items:flex-start}.income-entry-card-notes{max-width:100%;white-space:normal}}.income-layout{display:flex;flex-direction:column;gap:var(--spacing-lg)}.income-tabs{display:flex;gap:var(--spacing-xs);border-bottom:1px solid var(--color-gray-200);flex-wrap:wrap}.income-tab{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:var(--spacing-sm) var(--spacing-md);background:none;border:none;border-bottom:2px solid transparent;color:var(--color-gray-500);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:color var(--transition-fast),border-color var(--transition-fast),background-color var(--transition-fast);text-decoration:none;white-space:nowrap;margin-bottom:-1px;border-radius:var(--radius-md) var(--radius-md) 0 0}.income-tab:hover{color:var(--color-gray-800);background-color:var(--color-gray-50)}.income-tab-active{color:var(--color-primary);border-bottom-color:var(--color-primary)}.income-tab-active:hover{color:var(--color-primary)}.allocate-view{display:flex;flex-direction:column;gap:var(--spacing-md);padding-bottom:80px}.allocate-context{margin-bottom:0}.allocate-filter-bar{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);background-color:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-card),var(--shadow-inset-top);flex-wrap:wrap}.allocate-filter-chips{display:flex;gap:var(--spacing-xs);flex-wrap:wrap}.allocate-filter-actions{display:flex;align-items:center;gap:var(--spacing-md);flex-wrap:wrap}.allocate-show-paid-toggle{display:inline-flex;align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-sm);color:var(--color-gray-700);-webkit-user-select:none;user-select:none}.allocate-show-paid-toggle label{cursor:pointer}.allocate-bill-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.allocate-card{display:flex;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md);background-color:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);box-shadow:var(--shadow-sm),var(--shadow-inset-top);transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background-color var(--transition-fast),transform var(--transition-fast)}.allocate-card-selectable{cursor:pointer}.allocate-card-selectable:hover{border-color:var(--border-strong);box-shadow:var(--shadow-card-hover),var(--shadow-inset-top);transform:translateY(-1px)}.allocate-card-selected{border-color:var(--color-primary);background-color:var(--color-primary-bg);box-shadow:var(--shadow-sm),var(--shadow-inset-top),0 0 0 1px var(--color-primary)}.allocate-card-selected:hover{border-color:var(--color-primary);box-shadow:var(--shadow-card-hover),var(--shadow-inset-top),0 0 0 1px var(--color-primary)}.allocate-card-linked,.allocate-card-paid-other{background-color:var(--color-gray-50);opacity:.85;box-shadow:none}.allocate-card-checkbox-wrap{display:flex;align-items:center;flex-shrink:0}.allocate-card-category-indicator{width:4px;align-self:stretch;border-radius:var(--radius-full);flex-shrink:0}.allocate-card-info{display:flex;flex-direction:column;gap:4px;min-width:0;flex:1}.allocate-card-name-row{display:flex;align-items:baseline;gap:var(--spacing-xs);min-width:0}.allocate-card-name{font-size:var(--font-size-base);font-weight:600;color:var(--color-gray-900);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.allocate-card-merchant{font-size:var(--font-size-xs);color:var(--color-gray-500);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.allocate-card-meta{display:flex;flex-wrap:wrap;gap:var(--spacing-sm);font-size:var(--font-size-xs);color:var(--color-gray-500)}.allocate-card-meta-item{display:inline-flex;align-items:center;gap:4px}.allocate-card-meta-autopay{color:var(--color-warning)}.allocate-card-meta-status-linked{color:var(--color-primary);font-weight:600}.allocate-card-meta-status-paid-other{color:var(--color-success);font-weight:500}.allocate-card-meta-status-partial{color:var(--color-primary);font-weight:500}.allocate-card-amount{font-size:var(--font-size-base);font-weight:700;color:var(--color-gray-900);font-variant-numeric:tabular-nums;letter-spacing:-.01em;flex-shrink:0}.allocate-card-mark-btn{flex-shrink:0}@media(max-width:640px){.allocate-card{flex-wrap:wrap}.allocate-card-mark-btn{width:100%;justify-content:center}}.allocate-bulk-bar{position:fixed;bottom:0;left:0;right:0;z-index:30;display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md);padding:var(--spacing-md) var(--spacing-lg);background-color:var(--surface-card);border-top:1px solid var(--border-subtle);box-shadow:0 -4px 6px -1px #0f172a14,0 -10px 24px -8px #0f172a1a,var(--shadow-inset-top);flex-wrap:wrap;animation:slideUpBar var(--transition-normal)}@keyframes slideUpBar{0%{transform:translateY(100%)}to{transform:translateY(0)}}@media(min-width:768px){.allocate-bulk-bar{left:var(--sidebar-width)}}@media(max-width:768px){.allocate-bulk-bar{bottom:var(--nav-height)}}.allocate-bulk-bar-summary{display:flex;align-items:baseline;gap:var(--spacing-xs);font-size:var(--font-size-sm);color:var(--color-gray-700)}.allocate-bulk-bar-count{font-weight:700;color:var(--color-gray-900);font-variant-numeric:tabular-nums}.allocate-bulk-bar-total{color:var(--color-gray-500);font-variant-numeric:tabular-nums}.allocate-bulk-bar-actions{display:flex;align-items:center;gap:var(--spacing-sm);flex-wrap:wrap}.bank-page{max-width:960px}.bank-accounts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:var(--spacing-md);margin-bottom:var(--spacing-lg)}.bank-account-card{margin-bottom:0}.bank-account-name{font-weight:600;color:var(--color-gray-800);margin:2px 0 var(--spacing-sm)}.bank-account-mask{color:var(--color-gray-500);font-weight:500}.bank-account-amount{font-size:var(--font-size-xl);font-weight:700;color:var(--color-gray-800);margin:0}.bank-account-sub{font-size:var(--font-size-xs);color:var(--color-gray-500);margin:2px 0 0}.bank-toolbar{display:grid;grid-template-columns:minmax(200px,1fr) 170px 140px 150px;gap:var(--spacing-sm);align-items:center;margin-bottom:var(--spacing-md)}.bank-filters{display:contents}@media(max-width:860px){.bank-toolbar{grid-template-columns:1fr 1fr}.bank-search{grid-column:1 / -1}}.bank-search{position:relative}.bank-search-icon{position:absolute;left:var(--spacing-md);top:50%;transform:translateY(-50%);color:var(--color-gray-400);pointer-events:none}.bank-search .form-input.bank-search-input{width:100%;padding-left:calc(var(--spacing-md) + 24px)}.bank-result-line{display:flex;align-items:baseline;gap:6px;font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:var(--tracking-uppercase);color:var(--color-gray-500);margin:0;padding-bottom:var(--spacing-sm)}.bank-result-line .num{text-transform:none;letter-spacing:-.01em;font-size:var(--font-size-sm)}.bank-txn-list{display:flex;flex-direction:column}.bank-txn-row{display:flex;align-items:center;gap:var(--spacing-md);padding:10px 0;border-top:1px solid var(--surface-sunken)}.bank-txn-date{width:52px;flex-shrink:0;font-size:var(--font-size-xs);font-weight:600;color:var(--color-gray-500)}.bank-txn-info{flex:1;min-width:0;display:flex;flex-direction:column;gap:1px}.bank-txn-name{display:flex;align-items:center;gap:var(--spacing-sm);font-weight:500;color:var(--color-gray-800);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bank-txn-meta{font-size:var(--font-size-xs);color:var(--color-gray-500);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.bank-txn-amount{flex-shrink:0;font-weight:700}.bank-out{color:var(--color-gray-800)}.bank-in{color:var(--color-income, var(--color-success))}.bank-more{width:100%;margin-top:var(--spacing-md)}.bank-list-empty{padding:var(--spacing-xl) 0;text-align:center;color:var(--color-gray-500);font-size:var(--font-size-sm)}.bank-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--spacing-xs);padding:var(--spacing-2xl) var(--spacing-lg);color:var(--color-gray-400)}.bank-empty-title{font-size:var(--font-size-md);font-weight:600;color:var(--color-gray-600);margin:var(--spacing-xs) 0 0}.bank-empty-sub{font-size:var(--font-size-sm);color:var(--color-gray-500);margin:0 0 var(--spacing-md)}@media(max-width:640px){.bank-txn-date{width:44px}}.analytics-page{max-width:1200px;margin:0 auto}.analytics-header{margin-bottom:var(--spacing-xl)}.analytics-title{font-size:var(--font-size-2xl);font-weight:700;color:var(--color-gray-900);margin-bottom:var(--spacing-sm)}.analytics-subtitle{font-size:var(--font-size-base);color:var(--color-gray-500)}.analytics-period-selector{display:flex;gap:var(--spacing-sm);margin-bottom:var(--spacing-xl);flex-wrap:wrap}.period-btn{padding:var(--spacing-sm) var(--spacing-md);border:1px solid var(--color-gray-300);border-radius:var(--radius-md);background-color:var(--color-white);color:var(--color-gray-600);font-size:var(--font-size-sm);font-weight:500;cursor:pointer;transition:all var(--transition-fast)}.period-btn:hover{border-color:var(--color-primary);color:var(--color-primary)}.period-btn.active{background-color:var(--color-primary);border-color:var(--color-primary);color:var(--color-white)}.analytics-grid{display:grid;gap:var(--spacing-lg)}@media(min-width:768px){.analytics-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:1024px){.analytics-grid{grid-template-columns:repeat(3,1fr)}}.analytics-grid-full{grid-column:1 / -1}.analytics-summary{display:grid;grid-template-columns:repeat(2,1fr);gap:var(--spacing-md);margin-bottom:var(--spacing-xl)}@media(min-width:768px){.analytics-summary{grid-template-columns:repeat(4,1fr)}}.summary-card{background-color:var(--color-white);color:var(--color-gray-800);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-sm);border:1px solid var(--color-gray-100)}.summary-card-icon{width:40px;height:40px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;margin-bottom:var(--spacing-md)}.summary-card-icon.primary{background-color:var(--color-primary-light);color:var(--color-primary)}.summary-card-icon.success{background-color:var(--color-success-light);color:var(--color-success)}.summary-card-icon.warning{background-color:var(--color-warning-light);color:var(--color-warning)}.summary-card-icon.danger{background-color:var(--color-danger-light);color:var(--color-danger)}.summary-card-value{font-size:var(--font-size-2xl);font-weight:700;color:var(--color-gray-900);margin-bottom:var(--spacing-xs)}.summary-card-label{font-size:var(--font-size-sm);color:var(--color-gray-500)}.summary-card-change{display:flex;align-items:center;gap:var(--spacing-xs);font-size:var(--font-size-xs);margin-top:var(--spacing-sm)}.summary-card-change.positive{color:var(--color-success)}.summary-card-change.negative{color:var(--color-danger)}.chart-card{background-color:var(--color-white);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-sm);border:1px solid var(--color-gray-100)}.chart-card-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-lg)}.chart-card-title{font-size:var(--font-size-lg);font-weight:600;color:var(--color-gray-800)}.chart-card-total{font-size:var(--font-size-sm);font-weight:600;color:var(--color-gray-600)}.chart-container{height:300px;position:relative}.category-breakdown{background-color:var(--color-white);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-sm);border:1px solid var(--color-gray-100)}.category-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.category-item{display:flex;align-items:center;gap:var(--spacing-md)}.category-color{width:12px;height:12px;border-radius:var(--radius-full);flex-shrink:0}.category-info{flex:1;min-width:0}.category-name{font-size:var(--font-size-sm);font-weight:500;color:var(--color-gray-700);margin-bottom:var(--spacing-xs)}.category-bar-container{height:8px;background-color:var(--color-gray-100);border-radius:var(--radius-full);overflow:hidden}.category-bar{height:100%;border-radius:var(--radius-full);transition:width var(--transition-normal)}.category-amount{font-size:var(--font-size-sm);font-weight:600;color:var(--color-gray-800);white-space:nowrap}.category-percentage{font-size:var(--font-size-xs);color:var(--color-gray-500);margin-left:var(--spacing-xs)}.payment-method-bars{display:flex;flex-direction:column;gap:var(--spacing-md)}.payment-bar-item{display:flex;flex-direction:column;gap:var(--spacing-xs)}.payment-bar-header{display:flex;justify-content:space-between;align-items:center}.payment-bar-label{display:flex;align-items:center;gap:var(--spacing-sm)}.payment-bar-dot{width:10px;height:10px;border-radius:var(--radius-full);flex-shrink:0}.payment-bar-name{font-size:var(--font-size-sm);font-weight:500;color:var(--color-gray-700)}.payment-bar-last-four{font-weight:400;color:var(--color-gray-400);margin-left:2px}.payment-bar-values{display:flex;align-items:center;gap:var(--spacing-xs)}.payment-bar-amount{font-size:var(--font-size-sm);font-weight:600;color:var(--color-gray-800)}.payment-bar-percent{font-size:var(--font-size-xs);color:var(--color-gray-500)}.payment-bar-track{height:8px;background-color:var(--color-gray-100);border-radius:var(--radius-full);overflow:hidden}.payment-bar-fill{height:100%;border-radius:var(--radius-full);transition:width var(--transition-normal)}.trends-chart{height:250px;display:flex;align-items:flex-end;gap:var(--spacing-sm);padding-top:var(--spacing-md)}.trend-bar-group{flex:1;display:flex;flex-direction:column;align-items:center;gap:var(--spacing-xs)}.trend-bar{width:100%;max-width:40px;background-color:var(--color-primary);border-radius:var(--radius-sm) var(--radius-sm) 0 0;transition:height var(--transition-normal);min-height:4px}.trend-bar:hover{background-color:var(--color-primary-hover)}.trend-label{font-size:var(--font-size-xs);color:var(--color-gray-500);text-align:center}.trend-value{font-size:var(--font-size-xs);font-weight:600;color:var(--color-gray-700)}.bill-calendar{background-color:var(--color-white);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-sm);border:1px solid var(--color-gray-100)}.calendar-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--spacing-md)}.calendar-nav-btn{padding:var(--spacing-xs);background:none;border:1px solid var(--color-gray-200);border-radius:var(--radius-md);color:var(--color-gray-600);cursor:pointer;transition:all var(--transition-fast)}.calendar-nav-btn:hover{background-color:var(--color-gray-50);border-color:var(--color-gray-300)}.calendar-month-year{font-size:var(--font-size-lg);font-weight:600;color:var(--color-gray-800)}.calendar-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px}.calendar-weekday{padding:var(--spacing-sm);text-align:center;font-size:var(--font-size-xs);font-weight:600;color:var(--color-gray-500);text-transform:uppercase}.calendar-day{aspect-ratio:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-xs);border-radius:var(--radius-md);font-size:var(--font-size-sm);color:var(--color-gray-700);cursor:pointer;transition:all var(--transition-fast);position:relative}.calendar-day:hover{background-color:var(--color-gray-50)}.calendar-day.other-month{color:var(--color-gray-300)}.calendar-day.today{background-color:var(--color-primary-light);color:var(--color-primary);font-weight:600}.calendar-day.has-bill{font-weight:600}.calendar-day-dot{width:6px;height:6px;border-radius:var(--radius-full);position:absolute;bottom:4px}.calendar-day-dot.due{background-color:var(--color-warning)}.calendar-day-dot.paid{background-color:var(--color-success)}.calendar-day-dot.overdue{background-color:var(--color-danger)}.analytics-empty{text-align:center;padding:var(--spacing-2xl)}.analytics-empty-icon{width:80px;height:80px;margin:0 auto var(--spacing-lg);color:var(--color-gray-300)}.analytics-empty-title{font-size:var(--font-size-xl);font-weight:600;color:var(--color-gray-700);margin-bottom:var(--spacing-sm)}.analytics-empty-description{font-size:var(--font-size-base);color:var(--color-gray-500);margin-bottom:var(--spacing-lg)}.real-spending{margin-bottom:var(--spacing-xl)}.real-spending .chart-card-title{display:inline-flex;align-items:center;gap:var(--spacing-sm)}.real-spending-icon{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-md);background-color:var(--color-primary-light);color:var(--color-primary);flex-shrink:0}.real-spending-qualifier{font-family:var(--font-family-body);font-size:var(--font-size-sm);font-weight:500;color:var(--color-gray-500);letter-spacing:normal}.real-spending-qualifier:before{content:"·";margin-right:var(--spacing-sm);color:var(--color-gray-400)}.real-spending-count{font-size:var(--font-size-xs);color:var(--color-gray-500)}.real-flow-row{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--spacing-md);margin-bottom:var(--spacing-lg);padding:var(--spacing-md);background-color:var(--surface-sunken);border-radius:var(--radius-md)}.real-flow-label{font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:var(--tracking-uppercase);color:var(--color-gray-500);margin:0 0 2px}.real-flow-value{font-size:var(--font-size-lg);font-weight:700;color:var(--color-gray-800);margin:0}.real-flow-positive{color:var(--color-success)}.real-flow-negative{color:var(--color-danger)}.real-spending-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--spacing-xl)}@media(max-width:720px){.real-spending-grid{grid-template-columns:1fr}}.real-spending-subtitle{font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:var(--tracking-uppercase);color:var(--color-gray-500);margin:0 0 var(--spacing-sm)}.real-cat-list,.real-merchant-list{display:flex;flex-direction:column;gap:var(--spacing-sm)}.real-cat-head{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:3px}.real-cat-name{font-size:var(--font-size-sm);color:var(--color-gray-700)}.real-cat-amount{font-size:var(--font-size-sm);font-weight:700;color:var(--color-gray-800)}.real-cat-track{height:6px;background-color:var(--surface-sunken);border-radius:var(--radius-full);overflow:hidden}.real-cat-bar{height:100%;background-color:var(--color-primary);border-radius:var(--radius-full);transition:width .5s cubic-bezier(.21,1.02,.55,1)}.real-merchant-row{display:flex;justify-content:space-between;align-items:center;gap:var(--spacing-md);padding:7px 0;border-top:1px solid var(--surface-sunken)}.real-merchant-name{font-size:var(--font-size-sm);color:var(--color-gray-700);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.real-merchant-meta{display:inline-flex;align-items:center;gap:var(--spacing-sm);flex-shrink:0}.real-merchant-count{font-size:var(--font-size-xs);color:var(--color-gray-400)}.real-merchant-amount{font-size:var(--font-size-sm);font-weight:700;color:var(--color-gray-800)}.real-drill{display:block;width:100%;padding:5px 8px;background:none;border:none;border-radius:var(--radius-md);text-align:left;font-family:inherit;color:inherit;cursor:pointer;transition:background-color var(--transition-fast)}.real-drill:hover{background-color:var(--color-primary-bg, var(--surface-sunken))}.real-merchant-row.real-drill,.category-item.real-drill{display:flex}.real-spending-controls{display:inline-flex;align-items:center;gap:var(--spacing-md);flex-shrink:0}.real-spending-range{min-width:140px}.real-spending-empty{padding:var(--spacing-lg) 0;text-align:center;color:var(--color-gray-500);font-size:var(--font-size-sm);margin:0}@media(max-width:720px){.real-spending .chart-card-header{flex-direction:column;align-items:flex-start;gap:var(--spacing-sm)}}.settings-page{max-width:900px;margin:0 auto}.settings-header{margin-bottom:var(--spacing-xl)}.settings-layout{display:flex;flex-direction:column;gap:var(--spacing-lg)}.settings-nav{display:flex;gap:var(--spacing-sm);flex-wrap:wrap;padding-bottom:var(--spacing-md);border-bottom:1px solid var(--color-gray-200)}.settings-nav-btn{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-sm) var(--spacing-md);font-size:var(--font-size-sm);font-weight:500;color:var(--color-gray-600);background:none;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-fast)}.settings-nav-btn:hover{background-color:var(--color-gray-100)}.settings-nav-btn-active{background-color:var(--color-primary-light);color:var(--color-primary)}.settings-content{flex:1}.settings-section{display:flex;flex-direction:column;gap:var(--spacing-md)}.settings-item{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);padding:var(--spacing-md) 0;border-bottom:1px solid var(--color-gray-100)}.settings-item:last-child{border-bottom:none}.settings-item-info{display:flex;align-items:center;gap:var(--spacing-md)}.settings-item-icon{display:flex;align-items:center;justify-content:center;width:40px;height:40px;border-radius:var(--radius-md);background-color:var(--color-gray-100);color:var(--color-gray-600)}.settings-item-label{font-weight:500;color:var(--color-gray-800);margin:0}.settings-item-description{font-size:var(--font-size-sm);color:var(--color-gray-500);margin:2px 0 0}.settings-select{width:auto;min-width:150px;color:var(--color-gray-600)}.toggle{position:relative;display:inline-block;width:48px;height:26px}.toggle input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;cursor:pointer;inset:0;background-color:var(--color-gray-300);border-radius:var(--radius-full);transition:var(--transition-fast)}.toggle-slider:before{position:absolute;content:"";height:20px;width:20px;left:3px;bottom:3px;background-color:#fff;border-radius:50%;transition:var(--transition-fast)}.toggle input:checked+.toggle-slider{background-color:var(--color-primary)}.toggle input:checked+.toggle-slider:before{transform:translate(22px)}.settings-list{display:flex;flex-direction:column}.settings-list-item{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md);border-bottom:1px solid var(--color-gray-100)}.settings-list-item:last-child{border-bottom:none}.settings-list-item-info{display:flex;align-items:center;gap:var(--spacing-md)}.settings-list-item-icon{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-md);background-color:var(--color-gray-100);color:var(--color-gray-600)}.settings-list-item-details{display:flex;flex-direction:column;gap:2px}.settings-list-item-name{display:flex;align-items:center;font-weight:500;color:var(--color-gray-800)}.settings-list-item-meta{font-size:var(--font-size-sm);color:var(--color-gray-500)}.settings-list-item-actions{display:flex;align-items:center;gap:var(--spacing-xs)}.settings-list-empty{padding:var(--spacing-xl);text-align:center;color:var(--color-gray-500);font-size:var(--font-size-sm)}.category-dot{width:12px;height:12px;border-radius:50%}.settings-form{display:flex;flex-direction:column;gap:var(--spacing-md);padding:var(--spacing-md);margin-bottom:var(--spacing-md);background-color:var(--color-gray-50);border-radius:var(--radius-md)}.settings-form .form-group{display:flex;flex-direction:column;gap:var(--spacing-xs)}.settings-form .form-label{font-size:var(--font-size-sm);font-weight:500;color:var(--color-gray-700)}.settings-form .form-checkbox{display:flex;align-items:center;gap:var(--spacing-sm);font-size:var(--font-size-sm);color:var(--color-gray-700);cursor:pointer}.settings-form .form-checkbox input[type=checkbox]{width:16px;height:16px;cursor:pointer}.settings-form-actions{display:flex;justify-content:flex-end;gap:var(--spacing-sm);margin-top:var(--spacing-sm)}.badge{display:inline-flex;align-items:center;padding:2px 8px;font-size:var(--font-size-xs);font-weight:500;border-radius:var(--radius-full)}.badge-success{background-color:var(--color-success-light, #dcfce7);color:var(--color-success, #16a34a)}.icon-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:none;border:none;border-radius:var(--radius-md);color:var(--color-gray-500);cursor:pointer;transition:all var(--transition-fast)}.icon-btn:hover{background-color:var(--color-gray-100);color:var(--color-gray-700)}.icon-btn-danger:hover{background-color:var(--color-danger-light, #fee2e2);color:var(--color-danger, #dc2626)}.color-picker{display:flex;gap:var(--spacing-sm);flex-wrap:wrap}.color-option{width:32px;height:32px;border-radius:50%;border:2px solid transparent;cursor:pointer;transition:transform var(--transition-fast)}.color-option:hover{transform:scale(1.1)}.color-option-active{border-color:var(--color-gray-800)}@media(min-width:768px){.settings-layout{flex-direction:row}.settings-nav{flex-direction:column;width:200px;border-bottom:none;border-right:1px solid var(--color-gray-200);padding-right:var(--spacing-lg);padding-bottom:0}.settings-content{flex:1;padding-left:var(--spacing-lg)}}.bank-item{padding:var(--spacing-md) 0;border-bottom:1px solid var(--color-gray-100)}.bank-item:last-child{border-bottom:none}.bank-item-header{display:flex;align-items:center;justify-content:space-between;gap:var(--spacing-md);margin-bottom:var(--spacing-xs)}.bank-item-header .settings-list-item-info,.bank-item .settings-list-item-details,.bank-transactions .settings-list-item-details{min-width:0}.bank-item .settings-list-item-name,.bank-transactions .settings-list-item-name{min-width:0;gap:var(--spacing-sm)}.bank-truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}.bank-account-balance{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex-shrink:0}.bank-account-balance-value{font-weight:600}.bank-transactions{margin-top:var(--spacing-lg);padding-top:var(--spacing-md);border-top:1px solid var(--color-gray-200)}.bank-txn-out,.bank-txn-in{font-weight:600;flex-shrink:0}.bank-txn-out{color:var(--color-spend)}.bank-txn-in{color:var(--color-income)}.bank-spin{animation:spin .8s linear infinite}.settings-item-muted{opacity:.6}.coming-soon-pill{display:inline-flex;align-items:center;margin-left:6px;padding:.15rem .5rem;border-radius:var(--radius-full);background-color:var(--color-primary-light);color:var(--color-primary);font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:var(--tracking-wide);vertical-align:middle}.bank-item-actions{display:flex;align-items:center;gap:var(--spacing-xs);flex-shrink:0}.bank-multi-warning{display:flex;align-items:center;gap:var(--spacing-sm);margin:0 0 var(--spacing-md);padding:var(--spacing-sm) var(--spacing-md);background-color:var(--color-warning-light);color:var(--color-warning);border-radius:var(--radius-md);font-size:var(--font-size-sm);line-height:1.45}.bank-multi-warning svg{flex-shrink:0}.toggle-locked{cursor:not-allowed}@keyframes toggle-nope{0%,to{transform:translate(0)}20%{transform:translate(-4px)}40%{transform:translate(4px)}60%{transform:translate(-3px)}80%{transform:translate(2px)}}.toggle-shake{animation:toggle-nope .4s ease-in-out}@media(prefers-reduced-motion:reduce){.toggle-shake{animation:none}}.admin-fb-page{max-width:880px}.admin-fb-toolbar{display:flex;align-items:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-xl)}.admin-fb-toolbar-label{font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:var(--tracking-uppercase);color:var(--color-gray-500)}.admin-fb-list{display:flex;flex-direction:column;gap:var(--spacing-md)}.admin-fb-card{background-color:var(--surface-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--spacing-lg);box-shadow:var(--shadow-card);transition:border-color var(--transition-fast)}.admin-fb-card:hover{border-color:var(--color-gray-300)}.admin-fb-head{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--spacing-md);margin-bottom:var(--spacing-md)}.admin-fb-submitter{display:flex;align-items:center;gap:var(--spacing-sm);min-width:0}.admin-fb-avatar{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:50%;background-color:var(--color-primary-light);color:var(--color-primary);font-size:var(--font-size-xs);font-weight:700;flex-shrink:0;letter-spacing:.02em}.admin-fb-submitter-text{display:flex;flex-direction:column;min-width:0}.admin-fb-name{font-weight:600;color:var(--color-gray-800);font-size:var(--font-size-sm)}.admin-fb-sub{font-size:var(--font-size-xs);color:var(--color-gray-500)}.admin-fb-message{margin:0 0 var(--spacing-lg);color:var(--color-gray-800);font-size:var(--font-size-md);line-height:1.55;white-space:pre-wrap;word-break:break-word}.admin-fb-notes{display:flex;align-items:flex-end;gap:var(--spacing-sm)}.admin-fb-notes-input{flex:1;resize:vertical}.admin-fb-notes-save{flex-shrink:0}.admin-fb-loading{display:flex;justify-content:center;padding:var(--spacing-2xl) 0}.admin-fb-empty{display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--spacing-xs);padding:var(--spacing-2xl) var(--spacing-lg);color:var(--color-gray-400);border:1px dashed var(--border-subtle);border-radius:var(--radius-lg)}.admin-fb-empty-title{font-size:var(--font-size-md);font-weight:600;color:var(--color-gray-600);margin:var(--spacing-xs) 0 0}.admin-fb-empty-sub{font-size:var(--font-size-sm);color:var(--color-gray-500);margin:0}@media(max-width:640px){.admin-fb-notes{flex-direction:column;align-items:stretch}.admin-fb-notes-save{align-self:flex-end}}.admin-fb-head-actions{display:flex;align-items:center;gap:var(--spacing-xs);flex-shrink:0}.admin-fb-view-toggle{margin-left:auto}.admin-fb-card-history{opacity:.85}.admin-fb-history-note{margin:calc(-1 * var(--spacing-sm)) 0 var(--spacing-md);font-size:var(--font-size-sm);color:var(--color-gray-500);font-style:italic}.auth-container{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--spacing-lg);background:linear-gradient(135deg,var(--color-primary-light) 0%,var(--color-gray-100) 100%)}.auth-card{width:100%;max-width:420px;background-color:var(--color-white);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);padding:var(--spacing-2xl)}.auth-header{text-align:center;margin-bottom:var(--spacing-xl)}.auth-logo{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.auth-logo-icon{font-size:2rem}.auth-logo-text{font-size:var(--font-size-2xl);font-weight:700;color:var(--color-gray-900);margin:0}.auth-subtitle{font-size:var(--font-size-base);color:var(--color-gray-500);margin:0}.auth-form{margin-bottom:var(--spacing-lg)}.auth-error{background-color:var(--color-danger-light);color:var(--color-danger);padding:var(--spacing-sm) var(--spacing-md);border-radius:var(--radius-md);font-size:var(--font-size-sm);margin-bottom:var(--spacing-md);text-align:center}.input-with-icon{position:relative;display:flex;align-items:center}.input-icon{position:absolute;left:var(--spacing-md);color:var(--color-gray-400);pointer-events:none;width:18px;display:flex;align-items:center;justify-content:center}.form-input-with-icon{padding-left:calc(var(--spacing-md) + 18px + var(--spacing-sm))!important}.password-toggle{position:absolute;right:var(--spacing-md);background:none;border:none;color:var(--color-gray-400);cursor:pointer;padding:var(--spacing-xs);display:flex;align-items:center;justify-content:center;transition:color var(--transition-fast)}.password-toggle:hover{color:var(--color-gray-600)}.auth-options{display:flex;justify-content:flex-end;margin-bottom:var(--spacing-lg)}.auth-link{color:var(--color-primary);font-size:var(--font-size-sm);font-weight:500;text-decoration:none;transition:color var(--transition-fast)}.auth-link:hover{color:var(--color-primary-hover);text-decoration:underline}.auth-submit{width:100%}.auth-footer{text-align:center;font-size:var(--font-size-sm);color:var(--color-gray-500)}.auth-footer p{margin:0}.required{color:var(--color-danger)}.optional{color:var(--color-gray-400);font-weight:400;font-size:var(--font-size-xs)}.form-hint{font-size:var(--font-size-xs);color:var(--color-gray-400);margin-top:var(--spacing-xs);margin-bottom:0}.loading-spinner-sm{width:18px;height:18px;border:2px solid var(--color-white);border-top-color:transparent;border-radius:50%;animation:spin .8s linear infinite}.auth-initializing{min-height:100vh;display:flex;align-items:center;justify-content:center;background-color:var(--color-gray-50)}.loading-spinner{width:40px;height:40px;border:3px solid var(--color-gray-200);border-top-color:var(--color-primary);border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:480px){.auth-card{padding:var(--spacing-lg)}.auth-logo-text{font-size:var(--font-size-xl)}}.auth-help-text{font-size:var(--font-size-sm);color:var(--color-gray-600);line-height:1.55;margin:0 0 var(--spacing-md)}.auth-success{display:flex;align-items:flex-start;gap:var(--spacing-sm);padding:var(--spacing-md);margin-bottom:var(--spacing-md);background-color:var(--color-success-light);color:var(--color-success);border-radius:var(--radius-md);font-size:var(--font-size-sm);line-height:1.5}.auth-success p{margin:0;color:inherit}.auth-success svg{flex-shrink:0;margin-top:1px}.app-container{display:flex;flex-direction:column;min-height:100vh}.app-main{flex:1;display:flex;flex-direction:column}.app-content{flex:1;padding:var(--spacing-lg);padding-bottom:calc(var(--nav-height) + var(--spacing-lg))}@media(min-width:768px){.app-main{flex-direction:row}.app-content{margin-left:var(--sidebar-width);padding:var(--spacing-xl) var(--spacing-2xl);padding-bottom:var(--spacing-2xl)}}.page-header{margin-bottom:var(--spacing-xl);padding-bottom:var(--spacing-lg);border-bottom:1px solid var(--border-subtle)}.page-eyebrow{font-family:var(--font-family-body);font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:var(--tracking-uppercase);color:var(--color-primary);margin-bottom:var(--spacing-sm);line-height:1}.page-title{font-family:var(--font-family-display);font-size:var(--font-size-3xl);font-weight:600;color:var(--color-gray-900);letter-spacing:var(--tracking-display);line-height:var(--leading-tight);font-variation-settings:"opsz" 60,"SOFT" 50;margin-bottom:var(--spacing-sm)}.page-subtitle{font-family:var(--font-family-body);font-size:var(--font-size-base);color:var(--color-gray-500);line-height:var(--leading-relaxed);max-width:60ch}.card{background-color:var(--surface-card);color:var(--color-gray-700);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--spacing-lg);margin-bottom:var(--spacing-md);transition:border-color var(--transition-fast),background-color var(--transition-fast)}.card-interactive{cursor:pointer}.card-interactive:hover{border-color:var(--border-default);background-color:var(--surface-raised)}.card-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:var(--spacing-md);padding-bottom:var(--spacing-md);border-bottom:1px solid var(--border-subtle)}.card-title{font-family:var(--font-family-display);font-size:var(--font-size-lg);font-weight:600;color:var(--color-gray-900);letter-spacing:var(--tracking-tight);font-variation-settings:"opsz" 24,"SOFT" 40}.card-eyebrow{font-family:var(--font-family-body);font-size:var(--font-size-xs);font-weight:600;text-transform:uppercase;letter-spacing:var(--tracking-uppercase);color:var(--color-gray-500);margin-bottom:var(--spacing-xs);line-height:1}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:.5rem 1rem;font-family:var(--font-family-body);font-size:var(--font-size-sm);font-weight:500;line-height:1.2;border-radius:var(--radius-md);border:1px solid transparent;cursor:pointer;transition:background-color var(--transition-fast),border-color var(--transition-fast),color var(--transition-fast),box-shadow var(--transition-fast);-webkit-user-select:none;user-select:none;white-space:nowrap}.btn:disabled{opacity:.45;cursor:not-allowed}.btn:focus-visible{outline:none;box-shadow:var(--shadow-focus-ring)}.btn-primary{background-color:var(--color-primary);color:var(--color-primary-text);border-color:var(--color-primary)}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-hover);border-color:var(--color-primary-hover)}.btn-primary:active:not(:disabled){background-color:var(--color-primary-active);border-color:var(--color-primary-active)}.btn-secondary{background-color:var(--surface-card);color:var(--color-gray-700);border-color:var(--border-default)}.btn-secondary:hover:not(:disabled){background-color:var(--surface-sunken);border-color:var(--border-strong);color:var(--color-gray-900)}.btn-secondary:active:not(:disabled){background-color:var(--color-gray-100)}.btn-danger{background-color:var(--color-danger);color:#fff;border-color:var(--color-danger)}.btn-danger:hover:not(:disabled){background-color:var(--color-danger-hover);border-color:var(--color-danger-hover)}.btn-danger:active:not(:disabled){background-color:var(--color-danger-active);border-color:var(--color-danger-active)}.btn-danger:focus-visible{box-shadow:var(--shadow-focus-ring-danger)}.btn-success{background-color:var(--color-success);color:#fff;border-color:var(--color-success)}.btn-success:hover:not(:disabled){background-color:var(--color-success-hover);border-color:var(--color-success-hover)}.btn-success:active:not(:disabled){background-color:var(--color-success-active);border-color:var(--color-success-active)}.btn-success:focus-visible{box-shadow:var(--shadow-focus-ring-success)}.btn-ghost{background-color:transparent;color:var(--color-gray-600)}.btn-ghost:hover:not(:disabled){background-color:var(--surface-sunken);color:var(--color-gray-900)}.btn-lg{padding:.75rem 1.25rem;font-size:var(--font-size-md)}.btn-sm{padding:.375rem .75rem;font-size:var(--font-size-xs)}.btn-icon{padding:var(--spacing-sm);width:36px;height:36px}.btn-warning{background-color:var(--color-warning);color:#fff;border-color:var(--color-warning)}.btn-warning:hover:not(:disabled){background-color:var(--color-warning-hover);border-color:var(--color-warning-hover)}.form-group{margin-bottom:var(--spacing-md)}.form-label{display:block;font-family:var(--font-family-body);font-size:var(--font-size-xs);font-weight:600;color:var(--color-gray-600);margin-bottom:var(--spacing-xs);text-transform:uppercase;letter-spacing:var(--tracking-uppercase);line-height:1}.form-input,.form-select,.form-textarea{width:100%;padding:.625rem .875rem;font-family:var(--font-family-body);font-size:var(--font-size-base);color:var(--color-gray-800);background-color:var(--surface-card);border:1px solid var(--border-default);border-radius:var(--radius-md);transition:border-color var(--transition-fast),box-shadow var(--transition-fast),background-color var(--transition-fast)}.form-input-num{font-family:var(--font-family-mono);font-variant-numeric:tabular-nums;letter-spacing:-.01em}.form-input:hover:not(:focus):not(:disabled),.form-select:hover:not(:focus):not(:disabled),.form-textarea:hover:not(:focus):not(:disabled){border-color:var(--border-strong)}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--color-primary);box-shadow:var(--shadow-focus-ring)}.form-input::placeholder,.form-textarea::placeholder{color:var(--color-gray-400)}.form-input:disabled,.form-select:disabled,.form-textarea:disabled{background-color:var(--surface-sunken);color:var(--color-gray-500);cursor:not-allowed}.form-error{font-size:var(--font-size-sm);color:var(--color-danger);margin-top:var(--spacing-xs)}.form-hint{font-size:var(--font-size-xs);color:var(--color-gray-500);margin-top:var(--spacing-xs)}.form-row{display:grid;gap:var(--spacing-md)}@media(min-width:640px){.form-row-2{grid-template-columns:repeat(2,1fr)}.form-row-3{grid-template-columns:repeat(3,1fr)}}.badge{display:inline-flex;align-items:center;padding:.25rem .625rem;font-family:var(--font-family-body);font-size:var(--font-size-xs);font-weight:600;border-radius:var(--radius-full);text-transform:uppercase;letter-spacing:var(--tracking-wide);line-height:1}.badge-primary{background-color:var(--color-primary-light);color:var(--color-primary)}.badge-success{background-color:var(--color-success-light);color:var(--color-success)}.badge-warning{background-color:var(--color-warning-light);color:var(--color-warning)}.badge-danger{background-color:var(--color-danger-light);color:var(--color-danger)}.badge-neutral{background-color:var(--surface-sunken);color:var(--color-gray-600)}[data-theme=dark] .badge-primary{color:var(--color-primary-hover)}[data-theme=dark] .badge-success{color:var(--color-success-hover)}[data-theme=dark] .badge-warning{color:var(--color-warning-hover)}[data-theme=dark] .badge-danger{color:var(--color-danger-hover)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-2xl) var(--spacing-lg);text-align:center}.empty-state-icon{width:56px;height:56px;color:var(--color-gray-300);margin-bottom:var(--spacing-md)}.empty-state-title{font-family:var(--font-family-display);font-size:var(--font-size-xl);font-weight:600;color:var(--color-gray-800);letter-spacing:var(--tracking-tight);font-variation-settings:"opsz" 28,"SOFT" 50;margin-bottom:var(--spacing-sm)}.empty-state-description{font-size:var(--font-size-sm);color:var(--color-gray-500);margin-bottom:var(--spacing-lg);max-width:42ch;line-height:var(--leading-relaxed)}.modal-overlay{position:fixed;inset:0;background-color:#14110d8c;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;z-index:100;animation:fadeIn var(--transition-fast);padding:var(--spacing-md)}.modal{background-color:var(--surface-raised);color:var(--color-gray-800);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:100%;max-width:500px;max-height:90vh;overflow:hidden;display:flex;flex-direction:column;animation:slideUp var(--transition-normal)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-lg);border-bottom:1px solid var(--border-subtle);flex-shrink:0}.modal-title{font-family:var(--font-family-display);font-size:var(--font-size-xl);font-weight:600;color:var(--color-gray-900);letter-spacing:var(--tracking-tight);font-variation-settings:"opsz" 28,"SOFT" 50;margin:0}.modal-body{padding:var(--spacing-lg);overflow-y:auto;flex:1}.modal-footer{display:flex;justify-content:flex-end;gap:var(--spacing-sm);padding:var(--spacing-lg);border-top:1px solid var(--border-subtle);background-color:var(--surface-sunken);flex-shrink:0}
