@import"https://fonts.googleapis.com/css2?family=DM+Serif+Display:wght@400&family=Outfit:wght@400;500;600;700&display=swap";.sidebar-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:var(--color-surface-overlay);z-index:998;opacity:0;transition:opacity .3s ease}.sidebar-overlay.active{display:block;opacity:1}.sidebar{position:fixed;top:0;left:0;bottom:0;width:260px;background:var(--color-surface);border-right:1px solid var(--color-border);display:flex;flex-direction:column;z-index:999;transition:transform .3s ease,background-color .3s ease,border-color .3s ease}.sidebar-header{padding:1.25rem 1.5rem;border-bottom:1px solid var(--color-border);display:flex;align-items:center;justify-content:space-between}.sidebar-logo{display:flex;align-items:center;gap:.75rem;font-family:var(--font-serif);font-size:1.5rem;color:var(--color-text-primary);text-decoration:none;transition:color .2s ease}.sidebar-logo:hover{color:var(--color-text-secondary)}.sidebar-close{display:none;background:none;border:none;color:var(--color-text-secondary);cursor:pointer;padding:.5rem;border-radius:var(--radius-md);transition:all .2s ease}.sidebar-close:hover{background:var(--color-neutral-100);color:var(--color-text-primary)}.sidebar-user{padding:1.25rem 1.5rem;border-bottom:1px solid var(--color-border);display:flex;align-items:center;gap:.75rem}.sidebar-avatar{width:44px;height:44px;border-radius:50%;background:linear-gradient(135deg,var(--color-avatar-gradient-from) 0%,var(--color-avatar-gradient-to) 100%);color:var(--color-text-inverse);display:flex;align-items:center;justify-content:center;font-family:var(--font-sans);font-size:1rem;font-weight:600;flex-shrink:0}.sidebar-user-info{flex:1;min-width:0}.sidebar-user-name{font-family:var(--font-sans);font-size:.9375rem;font-weight:600;color:var(--color-text-primary);margin:0 0 .25rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-user-email{font-family:var(--font-sans);font-size:.8125rem;color:var(--color-text-secondary);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-nav{flex:1;padding:.75rem 1rem;overflow-y:auto;scrollbar-width:none}.sidebar-nav::-webkit-scrollbar{width:4px}.sidebar-nav::-webkit-scrollbar-track{background:transparent}.sidebar-nav::-webkit-scrollbar-thumb{background:transparent;border-radius:4px;transition:background .2s}.sidebar-nav:hover::-webkit-scrollbar{width:4px}.sidebar-nav:hover::-webkit-scrollbar-thumb{background:var(--color-neutral-300)}.sidebar-nav:hover{scrollbar-width:thin;scrollbar-color:var(--color-neutral-300) transparent}.sidebar-section{margin-bottom:1.125rem}.sidebar-section-title{font-family:var(--font-sans);font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-muted);margin:0 0 .5rem}.sidebar-nav-item{display:flex;align-items:center;gap:.75rem;padding:.7rem .9rem;font-family:var(--font-sans);font-size:.9375rem;font-weight:500;color:var(--color-text-secondary);text-decoration:none;border-radius:var(--radius-lg);transition:all .2s ease;margin-bottom:.35rem}.sidebar-nav-item:hover{background:var(--color-neutral-100);color:var(--color-text-primary)}.sidebar-nav-item.active{background:var(--color-btn-primary-bg);color:var(--color-btn-primary-text)}.sidebar-nav-item.active:hover{opacity:.9}.sidebar-footer{padding:.75rem 1rem 1rem;border-top:1px solid var(--color-border);display:flex;flex-direction:column;gap:.25rem}.sidebar-logout{width:100%;display:flex;align-items:center;gap:.75rem;padding:.75rem .95rem;font-family:var(--font-sans);font-size:.9375rem;font-weight:500;color:var(--color-text-secondary);background:none;border:none;border-radius:var(--radius-lg);cursor:pointer;transition:all .2s ease}.sidebar-logout:hover{background:var(--color-neutral-100);color:var(--color-text-primary)}.sidebar-view-toggle{display:flex;margin:10px 12px 4px;background:var(--color-neutral-100);border-radius:10px;padding:3px;gap:2px}.sidebar-toggle-btn{flex:1;padding:6px 8px;font-family:var(--font-sans);font-size:.8rem;font-weight:500;color:var(--color-text-secondary);background:transparent;border:none;border-radius:8px;cursor:pointer;transition:all .2s ease;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sidebar-toggle-btn.active{background:var(--color-surface);color:var(--color-text-primary);font-weight:600;box-shadow:var(--shadow-sm)}.sidebar-toggle-btn:hover:not(.active){color:var(--color-text-primary)}.sidebar-theme-toggle{width:100%;display:flex;align-items:center;padding:.5rem .95rem;background:none;border:none;border-radius:var(--radius-lg);cursor:pointer;transition:all .2s ease}.sidebar-theme-toggle:hover{background:var(--color-neutral-100)}.theme-toggle-track{display:flex;align-items:center;gap:.75rem;width:100%}.theme-toggle-thumb{width:36px;height:22px;border-radius:11px;background:var(--color-neutral-300);position:relative;transition:background .3s ease;display:flex;align-items:center;flex-shrink:0}.theme-toggle-thumb:before{content:"";position:absolute;top:3px;left:3px;width:16px;height:16px;border-radius:50%;background:var(--color-surface);box-shadow:0 1px 3px #0003;transition:transform .3s cubic-bezier(.4,0,.2,1)}.theme-toggle-thumb.dark{background:var(--color-accent-blue)}.theme-toggle-thumb.dark:before{transform:translate(14px)}.theme-toggle-thumb svg{position:absolute;top:4px;left:5px;color:var(--color-accent-orange);transition:all .3s ease}.theme-toggle-thumb.dark svg{left:auto;right:5px;left:initial;color:#fff}.theme-toggle-label{font-family:var(--font-sans);font-size:.9375rem;font-weight:500;color:var(--color-text-secondary);transition:color .2s ease}.sidebar-theme-toggle:hover .theme-toggle-label{color:var(--color-text-primary)}@media (max-width: 968px){.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0)}.sidebar-close{display:block}}.finance-chat-launcher{position:fixed;right:24px;bottom:24px;z-index:900;width:52px;height:52px;border-radius:50%;border:none;background:var(--color-btn-primary-bg);color:var(--color-btn-primary-text);display:flex;align-items:center;justify-content:center;cursor:pointer;box-shadow:0 8px 24px #0000002e;transition:transform .18s ease,box-shadow .18s ease,background .18s ease}.finance-chat-launcher:hover{background:var(--color-btn-primary-bg-hover);transform:translateY(-2px);box-shadow:0 12px 28px #00000038}.finance-chat-launcher:focus-visible{outline:2px solid var(--color-primary-500);outline-offset:3px}.finance-chat-panel{position:fixed;right:24px;bottom:88px;z-index:900;width:min(400px,calc(100vw - 32px));max-height:min(620px,calc(100vh - 130px));display:flex;flex-direction:column;background:var(--color-surface);border:1px solid var(--color-border);border-radius:16px;box-shadow:0 20px 48px #0000002e;overflow:hidden;animation:finance-chat-in .18s ease-out}@keyframes finance-chat-in{0%{opacity:0;transform:translateY(8px) scale(.98)}to{opacity:1;transform:translateY(0) scale(1)}}.finance-chat-header{display:flex;align-items:center;justify-content:space-between;padding:12px 14px;border-bottom:1px solid var(--color-border);background:var(--color-surface-muted);flex-shrink:0}.finance-chat-header-title{display:flex;align-items:center;gap:8px;font-size:.9rem;font-weight:600;color:var(--color-text-primary)}.finance-chat-close{background:none;border:none;cursor:pointer;color:var(--color-text-secondary);display:flex;padding:4px;border-radius:6px}.finance-chat-close:hover{background:var(--color-neutral-200);color:var(--color-text-primary)}.finance-chat-messages{flex:1;overflow-y:auto;padding:14px;display:flex;flex-direction:column;gap:10px}.finance-chat-row{display:flex;flex-direction:column;gap:8px;align-items:flex-start}.finance-chat-row.user{align-items:flex-end}.finance-chat-bubble{max-width:88%;padding:9px 12px;border-radius:12px;font-size:.85rem;line-height:1.45;white-space:pre-wrap;word-break:break-word}.finance-chat-bubble.bot{background:var(--color-surface-muted);border:1px solid var(--color-border);color:var(--color-text-primary);border-bottom-left-radius:4px}.finance-chat-bubble.user{background:var(--color-btn-primary-bg);color:var(--color-btn-primary-text);border-bottom-right-radius:4px}.finance-chat-typing{display:flex;align-items:center;gap:7px;color:var(--color-text-secondary)}.finance-chat-spin{animation:finance-chat-rotate .9s linear infinite}@keyframes finance-chat-rotate{to{transform:rotate(360deg)}}.finance-chat-examples{display:flex;flex-wrap:wrap;gap:6px;margin-top:2px}.finance-chat-example{border:1px dashed var(--color-border-strong);background:transparent;color:var(--color-text-secondary);font-size:.78rem;padding:5px 10px;border-radius:999px;cursor:pointer}.finance-chat-example:hover{border-style:solid;color:var(--color-text-primary);background:var(--color-surface-muted)}.finance-chat-draft{width:100%;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface-raised);padding:12px;display:flex;flex-direction:column;gap:10px}.finance-chat-draft-head{display:flex;align-items:center;gap:6px;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted)}.finance-chat-draft-amount{font-size:1.45rem;font-weight:700;color:var(--color-expense);line-height:1.1}.finance-chat-draft-amount.income,.finance-chat-draft-amount.gain{color:var(--color-income)}.finance-chat-draft-amount.neutral{color:var(--color-text-primary)}.finance-chat-draft-amount.loss{color:var(--color-expense)}.finance-chat-field{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}.finance-chat-field>span{font-size:.72rem;font-weight:600;color:var(--color-text-secondary)}.finance-chat-field>span em{font-style:normal;color:var(--color-accent-orange)}.finance-chat-field input,.finance-chat-field select{width:100%;padding:7px 9px;font-size:.83rem;font-family:inherit;color:var(--color-text-primary);background:var(--color-surface);border:1px solid var(--color-border-input);border-radius:8px}.finance-chat-field input:focus,.finance-chat-field select:focus{outline:none;border-color:var(--color-primary-500);box-shadow:0 0 0 3px var(--color-focus-ring)}.finance-chat-field.needs-input select{border-color:var(--color-accent-orange)}.finance-chat-field-row{display:flex;gap:8px}.finance-chat-draft-notes{font-size:.75rem;color:var(--color-text-muted);background:var(--color-surface-muted);border-radius:6px;padding:6px 8px;word-break:break-word;white-space:pre-wrap}.finance-chat-draft-error{font-size:.78rem;color:var(--color-error-text);background:var(--color-error-bg);border:1px solid var(--color-error-border);border-radius:6px;padding:6px 8px}.finance-chat-draft-actions{display:flex;gap:8px;justify-content:flex-end}.finance-chat-btn{display:inline-flex;align-items:center;gap:6px;padding:7px 13px;font-size:.82rem;font-weight:600;font-family:inherit;border-radius:8px;cursor:pointer;border:1px solid transparent}.finance-chat-btn.primary{background:var(--color-btn-primary-bg);color:var(--color-btn-primary-text)}.finance-chat-btn.primary:hover:not(:disabled){background:var(--color-btn-primary-bg-hover)}.finance-chat-btn.ghost{background:transparent;color:var(--color-text-secondary);border-color:var(--color-border)}.finance-chat-btn.ghost:hover:not(:disabled){background:var(--color-surface-muted);color:var(--color-text-primary)}.finance-chat-btn:disabled{opacity:.55;cursor:not-allowed}.finance-chat-rows{width:100%;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface-raised);padding:4px 12px}.finance-chat-row-item{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 0}.finance-chat-row-item+.finance-chat-row-item{border-top:1px solid var(--color-border)}.finance-chat-row-main{display:flex;flex-direction:column;gap:2px;min-width:0}.finance-chat-row-title{font-size:.82rem;font-weight:600;color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.finance-chat-row-meta{font-size:.72rem;color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.finance-chat-row-amount{font-size:.82rem;font-weight:700;color:var(--color-text-primary);white-space:nowrap}.finance-chat-rows-more{font-size:.72rem;color:var(--color-text-muted);padding:0 0 9px}.finance-chat-action{width:100%;border:1px solid var(--color-border);border-radius:12px;background:var(--color-surface-raised);padding:12px;display:flex;flex-direction:column;gap:8px}.finance-chat-action.destructive{border-color:var(--color-error-border)}.finance-chat-action-heading{display:flex;align-items:center;gap:6px;font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-muted)}.finance-chat-action.destructive .finance-chat-action-heading{color:var(--color-error-text)}.finance-chat-action-summary{margin:0;font-size:.88rem;font-weight:600;line-height:1.35;color:var(--color-text-primary)}.finance-chat-action-meta{margin:0;font-size:.75rem;color:var(--color-text-muted)}.finance-chat-action-error{font-size:.78rem;color:var(--color-error-text);background:var(--color-error-bg);border:1px solid var(--color-error-border);border-radius:6px;padding:6px 8px}.finance-chat-action-footer{display:flex;gap:8px;justify-content:flex-end}.finance-chat-btn.primary.danger{background:var(--color-error-text);color:#fff}.finance-chat-btn.primary.danger:hover:not(:disabled){filter:brightness(1.08)}.finance-chat-action-settled{display:flex;align-items:center;gap:7px;width:100%;font-size:.8rem;font-weight:600;border-radius:8px;padding:7px 10px}.finance-chat-action-settled.done{color:var(--color-success-text);background:var(--color-success-bg);border:1px solid var(--color-success-border)}.finance-chat-action-settled.declined{color:var(--color-text-muted);background:var(--color-surface-muted);border:1px solid var(--color-border)}.finance-chat-saved{display:flex;align-items:center;gap:7px;font-size:.8rem;color:var(--color-success-text);background:var(--color-success-bg);border:1px solid var(--color-success-border);border-radius:8px;padding:7px 10px;width:100%}.finance-chat-composer{display:flex;align-items:flex-end;gap:8px;padding:10px 12px;border-top:1px solid var(--color-border);background:var(--color-surface);flex-shrink:0}.finance-chat-input{flex:1;resize:none;min-height:62px;max-height:150px;padding:9px 11px;font-size:.85rem;font-family:inherit;line-height:1.4;color:var(--color-text-primary);background:var(--color-surface-muted);border:1px solid var(--color-border-input);border-radius:10px}.finance-chat-input:focus{outline:none;border-color:var(--color-primary-500);box-shadow:0 0 0 3px var(--color-focus-ring)}.finance-chat-send{width:36px;height:36px;flex-shrink:0;border:none;border-radius:9px;background:var(--color-btn-primary-bg);color:var(--color-btn-primary-text);display:flex;align-items:center;justify-content:center;cursor:pointer}.finance-chat-send:hover:not(:disabled){background:var(--color-btn-primary-bg-hover)}.finance-chat-send:disabled{opacity:.45;cursor:not-allowed}.finance-chat-file-input{display:none}.finance-chat-attach{width:36px;height:36px;flex-shrink:0;border:1px solid var(--color-border-input);border-radius:9px;background:var(--color-surface-muted);color:var(--color-text-secondary);display:flex;align-items:center;justify-content:center;cursor:pointer}.finance-chat-attach:hover:not(:disabled){color:var(--color-text-primary);border-color:var(--color-primary-500)}.finance-chat-attach:disabled{opacity:.45;cursor:not-allowed}.finance-chat-attachment{display:inline-flex;align-items:center;gap:6px;max-width:88%;padding:6px 10px;margin-bottom:4px;font-size:.78rem;color:var(--color-text-secondary);background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:10px}.finance-chat-attachment span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.finance-chat-attachment.user{align-self:flex-end}.finance-chat-panel.dragging{border-color:var(--color-primary-500)}.finance-chat-dropzone{position:absolute;top:0;right:0;bottom:0;left:0;z-index:5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;font-size:.85rem;color:var(--color-text-primary);background:var(--color-surface);border:2px dashed var(--color-primary-500);border-radius:16px;pointer-events:none}.finance-chat-staged{display:flex;align-items:center;gap:8px;margin:0 12px;padding:7px 8px 7px 11px;font-size:.78rem;color:var(--color-text-secondary);background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:10px}.finance-chat-staged span{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.finance-chat-staged button{display:flex;align-items:center;justify-content:center;padding:2px;border:none;border-radius:6px;background:transparent;color:var(--color-text-muted);cursor:pointer}.finance-chat-staged button:hover:not(:disabled){color:var(--color-text-primary);background:var(--color-border)}.finance-chat-password{display:flex;align-items:center;gap:8px;margin-top:6px;max-width:88%}.finance-chat-password input{flex:1;min-width:0;padding:8px 10px;font-size:.82rem;font-family:inherit;color:var(--color-text-primary);background:var(--color-surface-muted);border:1px solid var(--color-border-input);border-radius:9px}.finance-chat-password input:focus{outline:none;border-color:var(--color-primary-500);box-shadow:0 0 0 3px var(--color-focus-ring)}@media (max-width: 520px){.finance-chat-panel{right:12px;left:12px;bottom:80px;width:auto;max-height:calc(100vh - 120px)}.finance-chat-launcher{right:16px;bottom:16px}.finance-chat-field-row{flex-direction:column}}.deletion-banner{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 20px;background:var(--color-error-50);border-bottom:1px solid var(--color-error-border);color:var(--color-error-700);font-size:13px;line-height:1.5;transition:var(--theme-transition)}.deletion-banner svg{flex-shrink:0}.deletion-banner span{flex:1;min-width:200px}.deletion-banner-action{padding:6px 14px;border:1px solid currentColor;border-radius:8px;color:inherit;font-weight:600;text-decoration:none;white-space:nowrap;transition:all .2s ease}.deletion-banner-action:hover{background:var(--color-error-100)}@media (max-width: 768px){.deletion-banner{padding:12px 16px}}.dashboard-layout{display:flex;min-height:100vh;background:var(--color-app-background);transition:var(--theme-transition)}.dashboard-main{flex:1;margin-left:280px;display:flex;flex-direction:column;transition:margin-left .3s ease}.dashboard-topbar{background:var(--color-surface);border-bottom:1px solid var(--color-border);padding:1rem 2rem;position:sticky;top:0;z-index:100;display:none;transition:var(--theme-transition)}.menu-toggle-btn{background:none;border:none;color:var(--color-text-primary);cursor:pointer;padding:.5rem;border-radius:var(--radius-md);transition:all .2s ease;display:flex;align-items:center;justify-content:center}.menu-toggle-btn:hover{background:var(--color-neutral-100)}.dashboard-content-wrapper{flex:1;padding:2rem}@media (max-width: 968px){.dashboard-main{margin-left:0}.dashboard-topbar{display:block}.dashboard-content-wrapper{padding:1rem}}.navbar{position:fixed;top:0;left:0;right:0;z-index:50;background:#fffc;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid rgba(0,0,0,.05);transition:var(--theme-transition)}[data-theme=dark] .navbar{background:#0a0a0acc;border-bottom:1px solid rgba(255,255,255,.06)}.navbar-container{max-width:1280px;margin:0 auto;padding:1rem 1.5rem;display:flex;align-items:center;justify-content:space-between;gap:2rem}.navbar-logo{display:flex;align-items:center;gap:.5rem}.logo-text{font-size:1.25rem;font-weight:700;color:var(--color-text-primary);letter-spacing:-.02em}.navbar-links{display:flex;align-items:center;gap:2rem;flex:1;justify-content:center}.nav-link{font-size:.9375rem;font-weight:500;color:var(--color-text-secondary);transition:color .2s ease}.nav-link:hover{color:var(--color-text-primary)}.navbar-actions{display:flex;align-items:center;gap:.75rem}.btn-secondary{padding:.625rem 1.25rem;font-size:.9375rem;font-weight:600;color:var(--color-text-primary);background:transparent;border-radius:var(--radius-lg)}.btn-secondary:hover{background:var(--color-neutral-100)}.btn-primary{padding:.75rem 1.5rem;font-family:var(--font-sans);font-size:1rem;font-weight:600;color:var(--color-btn-primary-text);background:var(--color-btn-primary-bg);border:none;border-radius:var(--radius-lg);text-decoration:none;cursor:pointer;transition:all .2s ease;display:inline-block}.btn-primary:hover{background:var(--color-btn-primary-bg-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.menu-toggle{display:none;background:transparent;color:var(--color-text-primary);padding:.5rem}@media (max-width: 768px){.navbar-links{position:absolute;top:100%;left:0;right:0;flex-direction:column;background:var(--color-surface);padding:1.5rem;gap:1rem;border-bottom:1px solid var(--color-border);box-shadow:var(--shadow-lg);display:none}.navbar-links.active{display:flex}.navbar-actions{display:none}.menu-toggle{display:block}}.hero{padding:8rem 1.5rem 6rem;background:linear-gradient(to bottom,var(--color-surface) 0%,var(--color-bg-muted) 100%);transition:var(--theme-transition)}.hero-container{max-width:1280px;margin:0 auto;text-align:center;display:flex;flex-direction:column;align-items:center}.hero-badge{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;background:var(--color-neutral-950);color:var(--color-btn-primary-text);border-radius:var(--radius-2xl);font-size:.875rem;font-weight:500;margin-bottom:2rem;animation:fadeInUp .6s ease-out}.hero-title{font-size:clamp(2.5rem,5vw,4.5rem);font-weight:800;line-height:1.1;letter-spacing:-.03em;margin-bottom:1.5rem;color:var(--color-text-primary);animation:fadeInUp .6s ease-out .1s backwards}.hero-title-gradient{background:linear-gradient(135deg,var(--color-primary-600) 0%,var(--color-accent-purple) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-description{font-size:1.25rem;line-height:1.75;color:var(--color-text-secondary);max-width:42rem;margin-bottom:2.5rem;animation:fadeInUp .6s ease-out .2s backwards}.hero-actions{display:flex;gap:1rem;flex-wrap:wrap;justify-content:center;margin-bottom:4rem;animation:fadeInUp .6s ease-out .3s backwards}.hero-btn-primary{display:inline-flex;align-items:center;gap:.5rem;padding:1rem 2rem;font-size:1rem;font-weight:600;color:var(--color-btn-primary-text);background:var(--color-neutral-950);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg)}.hero-btn-primary:hover{background:var(--color-neutral-800);transform:translateY(-2px);box-shadow:var(--shadow-xl)}.hero-btn-secondary{padding:1rem 2rem;font-size:1rem;font-weight:600;color:var(--color-text-primary);background:var(--color-surface);border:2px solid var(--color-neutral-200);border-radius:var(--radius-xl)}.hero-btn-secondary:hover{border-color:var(--color-neutral-300);background:var(--color-neutral-50)}.hero-stats{display:flex;align-items:center;gap:3rem;padding:2rem 3rem;background:var(--color-surface);border-radius:var(--radius-2xl);box-shadow:var(--shadow-lg);animation:fadeInUp .6s ease-out .4s backwards}.stat-item{display:flex;flex-direction:column;gap:.25rem}.stat-value{font-size:2rem;font-weight:700;color:var(--color-text-primary);line-height:1}.stat-label{font-size:.875rem;color:var(--color-text-secondary);font-weight:500}.stat-divider{width:1px;height:2.5rem;background:var(--color-neutral-200)}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@media (max-width: 768px){.hero{padding:6rem 1rem 4rem}.hero-title{font-size:2.5rem}.hero-description{font-size:1.125rem}.hero-actions{flex-direction:column;width:100%}.hero-btn-primary,.hero-btn-secondary{width:100%;justify-content:center}.hero-stats{flex-direction:column;gap:1.5rem;padding:1.5rem}.stat-divider{width:100%;height:1px}}.features{padding:6rem 1.5rem;background:var(--color-surface)}.features-container{max-width:1280px;margin:0 auto}.features-header{text-align:center;margin-bottom:4rem}.features-title{font-size:clamp(2rem,4vw,3.5rem);font-weight:800;line-height:1.1;letter-spacing:-.02em;color:var(--color-text-primary);margin-bottom:1rem}.features-title-accent{background:linear-gradient(135deg,var(--color-primary-600) 0%,var(--color-accent-purple) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.features-description{font-size:1.125rem;color:var(--color-text-secondary);max-width:36rem;margin:0 auto}.features-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:2rem}.feature-card{padding:2rem;background:var(--color-surface);border:1px solid var(--color-neutral-200);border-radius:var(--radius-xl);transition:all .3s ease}.feature-card:hover{border-color:var(--color-neutral-300);box-shadow:var(--shadow-lg);transform:translateY(-4px)}.feature-icon{width:3rem;height:3rem;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-lg);margin-bottom:1.25rem}.feature-title{font-size:1.25rem;font-weight:700;color:var(--color-text-primary);margin-bottom:.75rem}.feature-description{font-size:.9375rem;line-height:1.6;color:var(--color-text-secondary)}@media (max-width: 768px){.features{padding:4rem 1rem}.features-grid{grid-template-columns:1fr;gap:1.5rem}.feature-card{padding:1.5rem}}.how-it-works{padding:6rem 1.5rem;background:var(--color-bg-muted)}.how-it-works-container{max-width:1280px;margin:0 auto}.how-it-works-header{text-align:center;margin-bottom:4rem}.how-it-works-title{font-size:clamp(2rem,4vw,3.5rem);font-weight:800;line-height:1.1;letter-spacing:-.02em;color:var(--color-text-primary)}.how-it-works-title-accent{background:linear-gradient(135deg,var(--color-accent-green) 0%,var(--color-primary-600) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.steps-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:2.5rem}.step-card{position:relative;padding:2.5rem;background:var(--color-surface);border-radius:var(--radius-2xl);box-shadow:var(--shadow-md);transition:all .3s ease}.step-card:hover{box-shadow:var(--shadow-xl);transform:translateY(-4px)}.step-number{position:absolute;top:1.5rem;right:1.5rem;font-size:3rem;font-weight:800;color:var(--color-neutral-100);line-height:1}.step-icon{width:4rem;height:4rem;display:flex;align-items:center;justify-content:center;background:var(--color-neutral-950);color:var(--color-btn-primary-text);border-radius:var(--radius-xl);margin-bottom:1.5rem}.step-title{font-size:1.5rem;font-weight:700;color:var(--color-text-primary);margin-bottom:.75rem}.step-description{font-size:1rem;line-height:1.6;color:var(--color-text-secondary)}@media (max-width: 768px){.how-it-works{padding:4rem 1rem}.steps-grid{grid-template-columns:1fr;gap:1.5rem}.step-card{padding:2rem}}.cta{padding:6rem 1.5rem;background:var(--color-surface)}.cta-container{max-width:1280px;margin:0 auto}.cta-content{text-align:center;padding:4rem 2rem;background:linear-gradient(135deg,var(--color-neutral-950) 0%,var(--color-neutral-800) 100%);border-radius:var(--radius-2xl);box-shadow:var(--shadow-2xl)}.cta-title{font-size:clamp(2rem,4vw,3.5rem);font-weight:800;line-height:1.1;letter-spacing:-.02em;color:var(--color-btn-primary-text);margin-bottom:1.5rem}.cta-description{font-size:1.125rem;line-height:1.6;color:#fffc;max-width:36rem;margin:0 auto 2.5rem}.cta-button{display:inline-flex;align-items:center;gap:.5rem;padding:1.125rem 2.5rem;font-size:1.0625rem;font-weight:600;color:var(--color-neutral-950);background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);margin-bottom:1rem}.cta-button:hover{transform:translateY(-2px);box-shadow:var(--shadow-xl)}.cta-note{font-size:.875rem;color:#fff9}@media (max-width: 768px){.cta{padding:4rem 1rem}.cta-content{padding:3rem 1.5rem}.cta-button{width:100%;justify-content:center}}.auth-layout{display:grid;grid-template-columns:1fr 1fr;min-height:100vh;background:var(--color-app-background)}.auth-container{display:flex;flex-direction:column;justify-content:center;padding:3rem;max-width:480px;margin:0 auto;width:100%}.auth-header{margin-bottom:2.5rem}.auth-back-button{display:flex;align-items:center;gap:.5rem;padding:.5rem 0;font-size:.9375rem;font-weight:500;color:var(--color-text-secondary);background:transparent;margin-bottom:2rem;transition:color .2s ease}.auth-back-button:hover{color:var(--color-text-primary)}.auth-logo{display:flex;align-items:center;gap:.75rem;font-family:var(--font-serif);font-size:1.5rem;font-weight:400;color:var(--color-text-primary);margin-bottom:2rem;text-decoration:none;transition:color .2s ease}.auth-logo:hover{color:var(--color-neutral-700)}.auth-title{font-family:var(--font-serif);font-size:2.5rem;font-weight:400;color:var(--color-text-primary);margin-bottom:.75rem;line-height:1.2}.auth-subtitle{font-family:var(--font-sans);font-size:1rem;color:var(--color-text-secondary);line-height:1.6}.auth-content{margin-bottom:2rem}.auth-footer{margin-top:auto;padding-top:2rem}.auth-footer p{font-size:.875rem;color:var(--color-text-muted);text-align:center}.auth-visual{background:linear-gradient(135deg,var(--color-neutral-950) 0%,var(--color-neutral-800) 100%);display:flex;align-items:center;justify-content:center;padding:3rem;position:relative;overflow:hidden}.auth-visual:before{content:"";position:absolute;top:-50%;right:-50%;width:100%;height:100%;background:radial-gradient(circle,rgba(14,165,233,.1) 0%,transparent 70%);pointer-events:none}.auth-visual-content{max-width:480px;position:relative;z-index:1}.auth-visual-title{font-family:var(--font-serif);font-size:3rem;font-weight:400;color:var(--color-btn-primary-text);margin-bottom:1.5rem;line-height:1.2}.auth-visual-text{font-family:var(--font-sans);font-size:1.125rem;color:#fffc;line-height:1.6;margin-bottom:3rem}.auth-visual-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}.visual-stat{text-align:center}.visual-stat-value{font-family:var(--font-serif);font-size:2.5rem;font-weight:400;color:var(--color-btn-primary-text);margin-bottom:.5rem;line-height:1}.visual-stat-label{font-family:var(--font-sans);font-size:.875rem;color:#ffffffb3;font-weight:500}@media (max-width: 1024px){.auth-layout{grid-template-columns:1fr}.auth-visual{display:none}.auth-container{max-width:100%;padding:2rem 1.5rem}}@media (max-width: 640px){.auth-title{font-size:2rem}.auth-container{padding:1.5rem 1rem}}.auth-form{display:flex;flex-direction:column;gap:1.1rem}.error-message{padding:.875rem 1rem;background:var(--color-error-bg);border:1px solid #fcc;border-radius:var(--radius-lg);color:#c33;font-family:var(--font-sans);font-size:.9375rem;line-height:1.5}.success-message-banner{padding:.875rem 1rem;background:var(--color-success-bg);border:1px solid #cfc;border-radius:var(--radius-lg);color:#363;font-family:var(--font-sans);font-size:.9375rem;line-height:1.5}.form-group{display:flex;flex-direction:column;gap:.375rem}.form-label{font-family:var(--font-sans);font-size:.9375rem;font-weight:600;color:var(--color-text-primary)}.form-label-row{display:flex;justify-content:space-between;align-items:center}.form-link{font-family:var(--font-sans);font-size:.875rem;font-weight:500;color:var(--color-primary-600);transition:color .2s ease}.form-link:hover{color:var(--color-primary-700)}.input-wrapper{position:relative;display:flex;align-items:center}.input-wrapper .form-input{padding-left:3.25rem}.input-icon{position:absolute;left:1rem;color:var(--color-text-muted);pointer-events:none}.form-input{width:100%;padding:.875rem 1rem .875rem 3.25rem;font-family:var(--font-sans);font-size:1rem;color:var(--color-text-primary);background:var(--color-surface);border:1.5px solid var(--color-neutral-200, #e5e7eb);border-radius:var(--radius-lg);transition:all .2s ease}.form-input::placeholder{color:var(--color-text-muted)}.form-input:focus{outline:none;border-color:var(--color-neutral-900, #111827);box-shadow:0 0 0 3px var(--color-focus-ring)}.input-action{position:absolute;right:1rem;color:var(--color-text-muted);background:transparent;padding:.25rem;transition:color .2s ease}.input-action:hover{color:var(--color-text-primary)}.form-hint{font-family:var(--font-sans);font-size:.875rem;color:var(--color-text-muted);margin-top:-.25rem}.checkbox-label{display:flex;flex-direction:row;align-items:center;gap:.5rem;font-family:var(--font-sans);font-size:.9375rem;color:var(--color-text-secondary);cursor:pointer}.checkbox-input{width:1.125rem;height:1.125rem;min-width:1.125rem;cursor:pointer;accent-color:var(--color-neutral-950);flex-shrink:0}.inline-link{color:var(--color-primary-600);font-weight:500;transition:color .2s ease}.inline-link:hover{color:var(--color-primary-700)}.auth-button{width:100%;padding:.875rem 1.5rem;font-family:var(--font-sans);font-size:1rem;font-weight:600;color:var(--color-btn-primary-text);background:var(--color-neutral-950);border-radius:var(--radius-lg);transition:all .2s ease}.auth-button:hover{background:var(--color-neutral-800);transform:translateY(-1px);box-shadow:var(--shadow-md)}.auth-button:disabled{opacity:.6;cursor:not-allowed;transform:none}.auth-button-secondary{width:100%;padding:.875rem 1.5rem;font-family:var(--font-sans);font-size:1rem;font-weight:600;color:var(--color-text-primary);background:var(--color-surface);border:1.5px solid var(--color-neutral-100);border-radius:var(--radius-lg);transition:all .2s ease}.auth-button-secondary:hover{border-color:var(--color-neutral-200);background:var(--color-neutral-50)}.divider{position:relative;text-align:center;margin:.5rem 0}.divider:before{content:"";position:absolute;top:50%;left:0;right:0;height:1px;background:var(--color-neutral-200)}.divider span{position:relative;display:inline-block;padding:0 1rem;font-family:var(--font-sans);font-size:.875rem;color:var(--color-text-muted);background:var(--color-app-background)}.social-button{width:100%;display:flex;align-items:center;justify-content:center;gap:.75rem;padding:.875rem 1.5rem;font-family:var(--font-sans);font-size:1rem;font-weight:600;color:var(--color-text-primary);background:var(--color-surface);border:1.5px solid var(--color-neutral-100);border-radius:var(--radius-lg);transition:all .2s ease}.social-button:hover{border-color:var(--color-neutral-200);background:var(--color-neutral-50)}.auth-footer-text{text-align:center;font-family:var(--font-sans);font-size:.9375rem;color:var(--color-text-secondary)}.auth-link{display:inline-flex;align-items:center;gap:.375rem;color:var(--color-primary-600);font-weight:600;transition:color .2s ease}.auth-link:hover{color:var(--color-primary-700)}.success-message{display:flex;flex-direction:column;align-items:center;text-align:center;padding:2rem 0}.success-icon{width:4rem;height:4rem;display:flex;align-items:center;justify-content:center;background:var(--color-accent-green);color:var(--color-btn-primary-text);border-radius:50%;margin-bottom:1.5rem}.success-text{font-family:var(--font-sans);font-size:1rem;color:var(--color-text-primary);margin-bottom:.75rem;line-height:1.6}.success-subtext{font-family:var(--font-sans);font-size:.9375rem;color:var(--color-text-secondary);line-height:1.6;max-width:28rem}@media (max-width: 640px){.auth-form{gap:.95rem}.form-input{padding:.75rem 1rem .75rem 2.75rem}.auth-button,.auth-button-secondary,.social-button{padding:.75rem 1.25rem}}:root{--onboarding-page-bg: var(--color-neutral-50)}.onboarding-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--spacing-3xl) var(--spacing-md);background:var(--onboarding-page-bg)}.onboarding-card{width:min(960px,100%);background:var(--color-bg-light);border:1.5px solid var(--color-neutral-200);border-radius:var(--radius-xl);padding:var(--spacing-xl);box-shadow:var(--shadow-lg)}.onboarding-header{margin-bottom:var(--spacing-lg)}.onboarding-header h1{font-size:2rem;margin:.25rem 0;font-family:var(--font-serif);color:var(--color-text-primary)}.onboarding-header .lede{color:var(--color-text-secondary);margin:0;font-family:var(--font-sans)}.eyebrow{text-transform:uppercase;letter-spacing:.08em;font-size:.75rem;color:var(--color-text-muted);margin:0;font-weight:600}.onboarding-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:var(--spacing-sm);margin-bottom:var(--spacing-md)}.step{display:flex;gap:var(--spacing-sm);padding:var(--spacing-sm);border-radius:var(--radius-lg);border:1.5px solid var(--color-neutral-200);background:var(--color-neutral-50);transition:border-color .2s ease,background .2s ease,transform .2s ease}.step.active{border-color:var(--color-neutral-900);background:var(--color-surface);box-shadow:var(--shadow-sm);transform:translateY(-1px)}.step.complete{border-color:var(--color-accent-green)}.step-number{width:2.25rem;height:2.25rem;border-radius:var(--radius-md);display:grid;place-items:center;font-weight:700;background:var(--color-neutral-900);color:var(--color-text-inverse)}.step-label{font-weight:600;margin:0;color:var(--color-text-primary)}.step-sub{margin:2px 0 0;color:var(--color-text-secondary);font-size:.875rem}.toast{padding:.75rem .875rem;border-radius:var(--radius-lg);margin-bottom:var(--spacing-sm);font-weight:600;border:1.5px solid transparent;font-family:var(--font-sans)}.toast-success{background:var(--color-success-bg);border-color:#bbf7d0;color:#166534}.toast-error{background:var(--color-error-bg);border-color:#fecdd3;color:var(--color-error-text)}.onboarding-form{display:flex;flex-direction:column;gap:var(--spacing-md)}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:var(--spacing-md)}.grid-3{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}.form-group label{font-weight:600;font-family:var(--font-sans);color:var(--color-text-primary)}.form-group input,.form-group select{background:var(--color-surface);border:1.5px solid var(--color-neutral-200);color:var(--color-text-primary);border-radius:var(--radius-md);padding:.75rem;font-size:1rem;transition:border-color .2s ease,box-shadow .2s ease}.actions{display:flex;justify-content:flex-end;gap:var(--spacing-sm);margin-top:var(--spacing-sm)}.actions.split{justify-content:space-between}.btn-primary,.btn-secondary{border-radius:var(--radius-lg);padding:.875rem 1.5rem;font-weight:600;font-family:var(--font-sans);cursor:pointer;transition:all .2s ease;border:1.5px solid transparent}.btn-primary{background:var(--color-neutral-900);color:var(--color-text-inverse)}.btn-primary:hover:not(:disabled){background:var(--color-neutral-800);transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-secondary{background:var(--color-surface);color:var(--color-text-primary);border-color:var(--color-neutral-200)}.btn-secondary:hover:not(:disabled){background:var(--color-neutral-50);transform:translateY(-1px);box-shadow:var(--shadow-sm)}.btn-primary:disabled,.btn-secondary:disabled{opacity:.7;cursor:not-allowed;box-shadow:none;transform:none}@media (max-width: 768px){.onboarding-shell{padding:var(--spacing-xl) var(--spacing-md)}.onboarding-card{padding:var(--spacing-lg)}.onboarding-steps{grid-template-columns:1fr}.actions{flex-direction:column}.actions.split{gap:var(--spacing-sm)}.btn-primary,.btn-secondary{width:100%;justify-content:center;text-align:center}}.dashboard{width:100%;max-width:60rem}.dashboard-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1.5rem}.dashboard-title{font-family:var(--font-serif);font-size:2.25rem;color:var(--color-text-primary);margin:0 0 .35rem}.dashboard-subtitle{font-family:var(--font-sans);font-size:1rem;color:var(--color-text-secondary);margin:0}.add-transaction-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.8rem 1.35rem;font-family:var(--font-sans);font-size:.9375rem;font-weight:600;color:var(--color-btn-primary-text);background:var(--color-btn-primary-bg);border:none;border-radius:var(--radius-lg);cursor:pointer;transition:all .2s ease;white-space:nowrap}.add-transaction-btn:hover{background:var(--color-btn-primary-bg-hover);transform:translateY(-1px);box-shadow:var(--shadow-md)}.dashboard-error{display:flex;align-items:center;gap:.6rem;margin-bottom:1.5rem;padding:.7rem .9rem;font-size:.875rem;color:var(--color-error-text);background:var(--color-error-bg);border:1px solid var(--color-error-border);border-radius:10px}.dashboard-error button{margin-left:auto;padding:.3rem .75rem;font:inherit;font-weight:600;color:var(--color-error-text);background:transparent;border:1px solid currentColor;border-radius:6px;cursor:pointer}.quick-action-btn{display:inline-flex;align-items:center;gap:.6rem;padding:.7rem 1.1rem;font-family:var(--font-sans);font-size:.9375rem;font-weight:600;color:var(--color-text-primary);background:var(--color-surface);border:1.5px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:all .2s ease}.quick-action-btn:hover{background:var(--color-neutral-100);border-color:var(--color-border-strong)}@keyframes ov-rise{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}.ov-rise{animation:ov-rise .3s cubic-bezier(.22,1,.36,1) both}@media (prefers-reduced-motion: reduce){.ov-rise{animation:none}}.ov-block{margin-top:2rem}.ov-block-head{display:flex;align-items:center;gap:.65rem;margin-bottom:.75rem}.ov-block-title{margin:0;font-family:var(--font-serif);font-size:1.375rem;font-weight:400;color:var(--color-text-primary)}.ov-count{display:inline-grid;place-items:center;min-width:1.4rem;height:1.4rem;padding:0 .4rem;font-size:.75rem;font-weight:700;color:var(--color-text-inverse);background:var(--color-accent-orange);border-radius:999px}.ov-block-head .ov-pill{margin-left:auto}.ov-card{padding:1.25rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl)}.ov-rule{height:1px;margin:1.15rem 0;background:var(--color-border);border:none}.ov-dot{display:inline-block;flex:0 0 auto;width:7px;height:7px;border-radius:50%}.ov-pill{display:inline-flex;align-items:center;gap:.3rem;padding:.22rem .6rem;font-size:.6875rem;font-weight:700;color:var(--color-text-secondary);background:color-mix(in srgb,currentColor 12%,transparent);border-radius:999px;white-space:nowrap}.ov-more{display:inline-flex;align-items:center;gap:.3rem;margin-top:.75rem;padding:.4rem 0;font:inherit;font-size:.875rem;font-weight:600;color:var(--color-primary-600);background:none;border:none;cursor:pointer}.ov-more:hover{text-decoration:underline}.ov-hero{position:relative;display:block;width:100%;padding:0;text-align:left;background:var(--color-neutral-900);border:none;border-radius:var(--radius-2xl);overflow:hidden;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}[data-theme=dark] .ov-hero{background:var(--color-neutral-800)}.ov-hero:hover{transform:translateY(-2px);box-shadow:var(--shadow-lg)}.ov-hero:active{transform:scale(.995)}.ov-hero-body{position:relative;display:block;padding:1.5rem 1.6rem 1.45rem}.ov-hero-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}.ov-eyebrow{font-size:.6875rem;font-weight:700;letter-spacing:.09em;color:#ffffff8c}.ov-hero-link{display:inline-flex;align-items:center;gap:.15rem;font-size:.8125rem;font-weight:600;color:#ffffffb8;white-space:nowrap}.ov-hero:hover .ov-hero-link{color:#fff}.ov-hero-figure{display:block;margin:.65rem 0 .35rem;font-family:var(--font-serif);font-size:clamp(2.1rem,5vw,3rem);line-height:1.05;color:#fff}.ov-hero-caption{display:block;font-size:.8125rem;color:#fff9}.ov-hero-split{display:block;margin-top:1.25rem}.ov-hero-stats{display:flex;justify-content:space-between;gap:1.5rem;margin-top:.6rem}.ov-hero-stat{display:flex;align-items:baseline;gap:.4rem;font-size:.875rem;color:#fff9}.ov-hero-stat.is-right{flex-direction:row-reverse}.ov-hero-stat strong{font-size:.9375rem;color:#fff}.ov-hero-stat-label{font-size:.75rem}.ov-hero-empty{display:block;margin-top:1.1rem;font-size:.875rem;color:#ffffff9e}.ov-alerts{display:grid;gap:.5rem;margin:0;padding:0;list-style:none}.ov-alert{display:flex;align-items:center;gap:.85rem;width:100%;padding:.9rem 1rem;text-align:left;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}.ov-alert:hover{transform:translateY(-1px);border-color:var(--color-border-strong);box-shadow:var(--shadow-sm)}.ov-alert-icon{display:grid;place-items:center;flex:0 0 auto;width:2.15rem;height:2.15rem;border-radius:.7rem}.ov-alert-body{flex:1;min-width:0}.ov-alert-body strong{display:block;font-size:.9375rem;line-height:1.35;color:var(--color-text-primary)}.ov-alert-body em{display:block;margin-top:.2rem;font-size:.8125rem;font-style:normal;line-height:1.4;color:var(--color-text-secondary)}.ov-alert-chevron{flex:0 0 auto;color:var(--color-text-muted)}.ov-allclear{display:flex;align-items:center;gap:.6rem;margin:0;padding:1rem;font-size:.9375rem;color:var(--color-text-secondary);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl)}.ov-allclear svg{flex:0 0 auto;color:var(--color-accent-green)}.ov-budget-head{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;margin-bottom:.6rem;font-size:.9375rem;color:var(--color-text-secondary)}.ov-budget-head strong{font-size:1.5rem;font-weight:700}.ov-budget-cap{font-size:.8125rem;color:var(--color-text-muted);white-space:nowrap}.ov-verdict{margin:1.35rem 0 0;font-size:.875rem;line-height:1.5;color:var(--color-text-secondary)}.ov-tiles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.75rem;margin-top:1.25rem;padding-top:1.25rem;border-top:1px solid var(--color-border)}.ov-tile{display:flex;flex-direction:column;gap:.2rem;min-width:0}.ov-tile-head{display:flex;align-items:center;gap:.35rem;font-size:.8125rem;font-weight:600;color:var(--color-text-secondary)}.ov-tile-value{font-size:1.25rem;font-weight:700;color:var(--color-text-primary);white-space:nowrap}.ov-tile-hint{font-size:.75rem;line-height:1.35;color:var(--color-text-muted)}.ov-delta{display:inline-flex;align-items:center;gap:.1rem;font-size:.75rem;font-weight:700}.ov-delta.positive{color:var(--color-accent-green)}.ov-delta.negative{color:var(--color-accent-red)}.ov-delta.neutral{color:var(--color-text-muted);font-weight:500}.ov-prompt{display:flex;align-items:center;gap:.8rem;width:100%;padding:0;font:inherit;text-align:left;color:var(--color-text-primary);background:none;border:none;cursor:pointer}.ov-prompt-icon{flex:0 0 auto;font-size:1.5rem}.ov-prompt span:nth-child(2){flex:1}.ov-prompt em{display:block;margin-top:.2rem;font-size:.8125rem;font-style:normal;line-height:1.4;color:var(--color-text-secondary)}.ov-duo{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem;align-items:stretch}.ov-tile-btn{display:flex;align-items:flex-start;gap:1rem;width:100%;font:inherit;text-align:left;cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease,transform .2s ease}.ov-tile-btn:hover{transform:translateY(-2px);border-color:var(--color-border-strong);box-shadow:var(--shadow-sm)}.ov-tile-body{flex:1;min-width:0}.ov-tile-body strong{display:block;font-size:.9375rem;font-weight:700;color:var(--color-text-primary)}.ov-tile-body em{display:block;margin-top:.3rem;font-size:.8125rem;font-style:normal;line-height:1.45;color:var(--color-text-secondary)}.ov-tile-foot{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.65rem;font-size:.8125rem;color:var(--color-text-primary)}.ov-ring-value{display:block;font-size:1rem;font-weight:700;line-height:1;color:var(--color-text-primary)}.ov-ring-caption{display:block;font-size:.5625rem;color:var(--color-text-muted)}.ov-tabs{display:flex;gap:.25rem;margin-bottom:.75rem;padding:.25rem;background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow-x:auto;scrollbar-width:none}.ov-tabs::-webkit-scrollbar{display:none}.ov-tab{flex:1;padding:.55rem .9rem;font:inherit;font-size:.875rem;font-weight:600;color:var(--color-text-secondary);background:none;border:none;border-radius:calc(var(--radius-lg) - .25rem);cursor:pointer;white-space:nowrap;transition:background .2s ease,color .2s ease}.ov-tab:hover{color:var(--color-text-primary)}.ov-tab.is-active{color:var(--color-text-primary);background:var(--color-surface);box-shadow:var(--shadow-sm)}.ov-pane-lead{margin:0 0 1rem;font-size:.875rem;line-height:1.5;color:var(--color-text-secondary)}.ov-pane-lead strong{color:var(--color-text-primary)}.ov-bars{display:grid;gap:1rem;margin:0;padding:0;list-style:none}.ov-bar-label{display:flex;align-items:baseline;gap:.45rem;margin-bottom:.4rem;font-size:.875rem;color:var(--color-text-primary)}.ov-bar-name{flex:1;min-width:0;overflow:hidden;font-weight:600;text-overflow:ellipsis;white-space:nowrap}.ov-bar-label strong{font-weight:700;white-space:nowrap}.ov-bar-share{min-width:2.4rem;font-size:.75rem;color:var(--color-text-muted);text-align:right}.ov-bar-track{display:block;height:8px;overflow:hidden;background:color-mix(in srgb,var(--color-text-primary) 8%,transparent);border-radius:999px}.ov-bar-fill{display:block;height:100%;border-radius:999px;transition:width .5s cubic-bezier(.22,1,.36,1)}.ov-bar-hint{display:block;margin-top:.3rem;font-size:.75rem;color:var(--color-text-muted)}.ov-category-icon{flex:0 0 auto}.ov-commitments{display:grid;gap:.15rem;margin:0;padding:0;list-style:none}.ov-commitments button{display:flex;align-items:center;gap:.6rem;width:100%;padding:.5rem .35rem;font:inherit;text-align:left;background:none;border:none;border-radius:.5rem;cursor:pointer}.ov-commitments button:hover{background:var(--color-surface-muted)}.ov-commitment-icon{flex:0 0 auto}.ov-commitment-label{flex:1;min-width:0;overflow:hidden;font-size:.875rem;font-weight:600;color:var(--color-text-primary);text-overflow:ellipsis;white-space:nowrap}.ov-commitment-when{font-size:.75rem;color:var(--color-text-muted);white-space:nowrap}.ov-commitment-when.is-soon{font-weight:700;color:var(--color-accent-orange)}.ov-commitment-amount{min-width:4.5rem;font-size:.8125rem;font-weight:700;color:var(--color-text-primary);text-align:right}.ov-activity{display:grid;gap:.75rem;margin:0;padding:0;list-style:none}.ov-activity li{display:flex;align-items:center;gap:.75rem}.ov-activity-icon{display:grid;place-items:center;flex:0 0 auto;width:2.35rem;height:2.35rem;border-radius:.8rem}.ov-activity-icon.income{color:var(--color-income);background:var(--color-income-bg)}.ov-activity-icon.expense{color:var(--color-expense);background:var(--color-expense-bg)}.ov-activity-body{flex:1;min-width:0}.ov-activity-body strong{display:block;overflow:hidden;font-size:.9375rem;color:var(--color-text-primary);text-overflow:ellipsis;white-space:nowrap}.ov-activity-body em{display:block;margin-top:.1rem;font-size:.75rem;font-style:normal;color:var(--color-text-muted)}.ov-activity-amount{font-size:.9375rem;font-weight:700;color:var(--color-text-primary);white-space:nowrap}.ov-activity-amount.income{color:var(--color-income)}.ov-empty{display:flex;flex-direction:column;align-items:center;gap:.9rem;padding:2rem 1rem;text-align:center;color:var(--color-text-secondary)}.ov-empty p{margin:0;font-size:.9rem}.meter-wrap{position:relative;padding-bottom:1.15rem}.meter{position:relative;width:100%;overflow:hidden;background:color-mix(in srgb,var(--color-text-primary) 8%,transparent);border-radius:999px}.meter-fill{display:block;height:100%;border-radius:999px}.meter-marker{position:absolute;top:-3px;bottom:-3px;width:2px;background:var(--color-text-primary);border-radius:2px;transform:translate(-1px)}.meter-marker-label{position:absolute;bottom:0;font-size:.6875rem;font-weight:600;color:var(--color-text-muted);transform:translate(-50%);white-space:nowrap}.split-bar{display:flex;gap:3px;width:100%;overflow:hidden;background:#ffffff24;border-radius:999px}.split-bar-fill{display:block;height:100%;border-radius:999px}.ring{position:relative;flex:0 0 auto}.ring-track{fill:none;stroke:color-mix(in srgb,var(--color-text-primary) 9%,transparent)}.ring-label{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-content:center;text-align:center}@keyframes ov-pulse{0%,to{opacity:1}50%{opacity:.55}}.ov-skeleton{background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:var(--radius-xl);animation:ov-pulse 1.4s ease-in-out infinite}.ov-skeleton-hero{height:12rem;border-radius:var(--radius-2xl)}.ov-skeleton-row{height:4.25rem}.ov-skeleton-card{height:14rem}.ov-skeleton-tile{height:8.5rem}.dashboard>.ov-skeleton,.dashboard>.ov-duo{margin-top:2rem}@media (prefers-reduced-motion: reduce){.ov-skeleton{animation:none}}@media (max-width: 760px){.dashboard{padding:1rem}.dashboard-header{flex-direction:column;align-items:stretch}.dashboard-title{font-size:1.75rem}.add-transaction-btn{justify-content:center}.ov-block{margin-top:1.6rem}.ov-duo{grid-template-columns:minmax(0,1fr)}.ov-tiles{grid-template-columns:minmax(0,1fr);gap:1rem}.ov-tile{display:grid;grid-template-columns:1fr auto;align-items:baseline;column-gap:.75rem}.ov-tile-value{grid-column:2;grid-row:1;text-align:right}.ov-tile-hint{grid-column:1 / -1}.ov-budget-head{flex-direction:column;align-items:flex-start;gap:.15rem}.ov-tab{flex:0 0 auto}}.transactions-page{width:100%}.transactions-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.page-title{font-family:var(--font-serif);font-size:2.5rem;color:var(--color-text-primary);margin:0 0 .5rem}.page-subtitle{font-family:var(--font-sans);font-size:1.125rem;color:var(--color-text-secondary);margin:0}.add-btn{display:flex;align-items:center;gap:.5rem;padding:.875rem 1.5rem;font-family:var(--font-sans);font-size:1rem;font-weight:600;color:var(--color-btn-primary-text);background:var(--color-neutral-900);border:none;border-radius:var(--radius-lg);cursor:pointer;transition:all .2s ease}.add-btn:hover{background:var(--color-neutral-800);transform:translateY(-1px);box-shadow:var(--shadow-md)}.transactions-filters{display:flex;gap:1rem;margin-bottom:1.5rem}.search-box{flex:1;display:flex;align-items:center;gap:.75rem;padding:.875rem 1rem;background:var(--color-surface);border:1.5px solid var(--color-neutral-200);border-radius:var(--radius-lg);color:var(--color-text-secondary)}.search-box input{flex:1;border:none;outline:none;font-family:var(--font-sans);font-size:.9375rem;color:var(--color-text-primary)}.search-box input::placeholder{color:var(--color-text-secondary)}.filter-btn{display:flex;align-items:center;gap:.5rem;padding:.875rem 1.5rem;font-family:var(--font-sans);font-size:.9375rem;font-weight:500;color:var(--color-text-primary);background:var(--color-surface);border:1.5px solid var(--color-neutral-200);border-radius:var(--radius-lg);cursor:pointer;transition:all .2s ease}.filter-btn:hover{background:var(--color-neutral-50);border-color:var(--color-neutral-300)}.transactions-table-wrapper{background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);overflow:hidden}.transactions-table{width:100%;border-collapse:collapse}.transactions-table thead{background:var(--color-neutral-50);border-bottom:1px solid var(--color-neutral-200)}.transactions-table th{padding:1rem 1.5rem;font-family:var(--font-sans);font-size:.875rem;font-weight:600;color:var(--color-text-secondary);text-align:left;text-transform:uppercase;letter-spacing:.05em}.transactions-table td{padding:1rem 1.5rem;font-family:var(--font-sans);font-size:.9375rem;color:var(--color-text-primary);border-bottom:1px solid var(--color-neutral-100)}.transactions-table tbody tr:last-child td{border-bottom:none}.transactions-table tbody tr:hover{background:var(--color-neutral-50)}.transaction-desc{display:flex;align-items:center;gap:.75rem}.transaction-type-icon{width:32px;height:32px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;flex-shrink:0}.transaction-type-icon.income{background:var(--color-income-bg);color:var(--color-income)}.transaction-type-icon.expense{background:var(--color-expense-bg);color:var(--color-expense)}.category-badge{display:inline-block;padding:.375rem .75rem;font-size:.8125rem;font-weight:500;background:var(--color-neutral-100);color:var(--color-text-secondary);border-radius:var(--radius-md)}.account-cell{color:var(--color-text-secondary)}.amount{font-weight:600;font-size:1rem}.amount.income{color:var(--color-income)}.amount.expense{color:var(--color-expense)}@media (max-width: 968px){.transactions-header{flex-direction:column;align-items:flex-start;gap:1rem}.add-btn{width:100%;justify-content:center}.transactions-filters{flex-direction:column}.transactions-table-wrapper{overflow-x:auto}.transactions-table{min-width:600px}}.settings-container{background:var(--color-surface);border-radius:12px;box-shadow:var(--shadow-sm);overflow:hidden;transition:var(--theme-transition)}.settings-message{padding:16px 20px;border-radius:8px;margin-bottom:24px;font-size:14px;font-weight:500;animation:slideDown .3s ease-out}.settings-message-success{background-color:var(--color-success-bg);color:var(--color-success-text);border:1px solid var(--color-success-border)}.settings-message-error{background-color:var(--color-error-bg);color:var(--color-error-text);border:1px solid var(--color-error-border)}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.settings-tabs{display:flex;border-bottom:1px solid var(--color-border);background:var(--color-surface-muted);padding:0 24px;gap:8px;transition:var(--theme-transition)}.settings-tab{display:flex;align-items:center;gap:8px;padding:16px 20px;background:transparent;border:none;color:var(--color-text-secondary);font-size:14px;font-weight:500;cursor:pointer;border-bottom:2px solid transparent;transition:all .2s ease;position:relative;top:1px}.settings-tab:hover{color:var(--color-text-primary);background:var(--color-focus-ring)}.settings-tab.active{color:var(--color-text-primary);border-bottom-color:var(--color-text-primary);background:var(--color-surface)}.settings-tab svg{width:20px;height:20px}.settings-content{padding:32px 24px}.settings-section{max-width:600px}.telegram-card{border:1px solid var(--color-border);border-radius:12px;padding:20px;background:var(--color-surface-muted);display:flex;flex-direction:column;gap:20px;transition:var(--theme-transition)}.telegram-row{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;flex-wrap:wrap}.telegram-actions{display:flex;gap:8px;align-items:center}.divider{height:1px;background:var(--color-divider)}.label{font-size:13px;font-weight:600;color:var(--color-text-primary);margin-bottom:6px}.value{font-size:14px;color:var(--color-text-primary);margin-bottom:4px}.value.mono{font-family:SFMono-Regular,Consolas,Liberation Mono,Menlo,monospace;letter-spacing:.2px}.hint{font-size:12px;color:var(--color-text-secondary);line-height:1.5}.settings-section-title{font-size:20px;font-weight:600;color:var(--color-text-primary);margin:0 0 8px}.settings-section-subtitle{font-size:14px;color:var(--color-text-secondary);margin:0 0 32px;line-height:1.5}.settings-form{display:flex;flex-direction:column;gap:24px}.settings-subsection-divider{margin:40px 0;height:1px;background:var(--color-divider)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}.form-group{display:flex;flex-direction:column;gap:8px}.form-group label{font-size:14px;font-weight:500;color:var(--color-text-secondary)}.label-row{display:flex;justify-content:space-between;align-items:center;gap:12px}.label-action-button{border:none;background:none;color:var(--color-link-action);font-size:12px;font-weight:500;cursor:pointer;padding:0}.label-action-button:hover{text-decoration:underline}.form-group input,.form-group select{padding:10px 14px;border:1px solid var(--color-border-input);border-radius:8px;font-size:14px;color:var(--color-text-primary);transition:all .2s ease;background:var(--color-surface)}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--color-text-primary);box-shadow:0 0 0 3px var(--color-focus-ring-strong)}.form-group input:disabled,.form-group select:disabled{background:var(--color-neutral-100);cursor:not-allowed;color:var(--color-text-muted)}.form-hint{font-size:13px;color:var(--color-text-secondary);line-height:1.4}.form-actions{display:flex;gap:12px;padding-top:8px}.btn-primary{padding:10px 24px;background:var(--color-btn-primary-bg);color:var(--color-btn-primary-text);border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-primary:hover:not(:disabled){background:var(--color-btn-primary-bg-hover);transform:translateY(-1px)}.btn-primary:active:not(:disabled){transform:translateY(0)}.btn-primary:disabled{background:var(--color-btn-disabled);cursor:not-allowed;opacity:.6}.btn-secondary{padding:10px 24px;background:var(--color-btn-secondary-bg);color:var(--color-btn-secondary-text);border:1px solid var(--color-btn-secondary-border);border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-secondary:hover:not(:disabled){background:var(--color-btn-secondary-hover)}.btn-secondary:disabled{opacity:.5;cursor:not-allowed}.danger-card{border:1px solid var(--color-error-border);border-radius:12px;padding:20px;background:var(--color-error-50);display:flex;flex-direction:column;gap:20px;transition:var(--theme-transition)}.danger-card-title{font-size:15px;font-weight:600;color:var(--color-error-700);margin:0 0 6px}.danger-list{margin:0 0 10px;padding-left:20px;font-size:13px;line-height:1.7;color:var(--color-text-secondary)}.btn-danger{padding:10px 24px;background:var(--color-error-500);color:#fff;border:none;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s ease}.btn-danger:hover:not(:disabled){filter:brightness(.92);transform:translateY(-1px)}.btn-danger:active:not(:disabled){transform:translateY(0)}.btn-danger:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 768px){.settings-tabs{padding:0 16px;overflow-x:auto}.settings-tab{padding:14px 16px;font-size:13px;white-space:nowrap}.settings-content{padding:24px 16px}.form-row{grid-template-columns:1fr}.settings-section-title{font-size:18px}}@media (max-width: 480px){.settings-tab{flex-direction:column;gap:4px;padding:12px;font-size:12px}.settings-tab svg{width:18px;height:18px}}.assets-page{width:100%}.assets-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.assets-title{font-family:var(--font-serif);font-size:2.5rem;color:var(--color-text-primary);margin:0 0 .5rem}.assets-subtitle{font-family:var(--font-sans);font-size:1.125rem;color:var(--color-text-secondary);margin:0}.add-asset-btn{padding:.875rem 1.5rem;font-family:var(--font-sans);font-size:1rem;font-weight:600;color:var(--color-btn-primary-text);background:var(--color-neutral-900);border:none;border-radius:var(--radius-lg);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:.5rem}.add-asset-btn:hover{background:var(--color-neutral-800);transform:translateY(-1px);box-shadow:var(--shadow-md)}.assets-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:1rem;margin-bottom:2rem}@media (min-width: 768px){.assets-stats{grid-template-columns:repeat(3,1fr);gap:1.5rem}}.asset-stat-card{background:var(--color-surface);padding:1.5rem;border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);transition:all .2s ease}.asset-stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.asset-stat-label{font-family:var(--font-sans);font-size:.875rem;font-weight:500;color:var(--color-text-secondary);margin:0 0 .5rem}.asset-stat-value{font-family:var(--font-serif);font-size:2rem;color:var(--color-text-primary);margin:0}.asset-stat-value.positive{color:var(--color-income)}.asset-stat-value.negative{color:var(--color-expense)}.asset-stat-change{font-family:var(--font-sans);font-size:.875rem;display:flex;align-items:center;gap:.25rem;margin-top:.5rem}.asset-stat-change.positive{color:var(--color-income)}.asset-stat-change.negative{color:var(--color-expense)}.assets-controls{display:flex;gap:1rem;margin-bottom:1.5rem}.assets-table-container{background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);overflow:hidden}.assets-table{width:100%;border-collapse:collapse}.assets-table thead{background:var(--color-neutral-50)}.assets-table th{padding:1rem 1.5rem;font-family:var(--font-sans);font-size:.875rem;font-weight:600;color:var(--color-text-primary);text-align:left;border-bottom:1px solid var(--color-neutral-200)}.assets-table tbody tr{border-bottom:1px solid var(--color-neutral-100);transition:background .2s ease}.assets-table tbody tr:hover{background:var(--color-neutral-50)}.assets-table tbody tr:last-child{border-bottom:none}.assets-table td{padding:1.25rem 1.5rem;font-family:var(--font-sans);font-size:.9375rem;color:var(--color-text-primary)}.asset-name-cell{display:flex;flex-direction:column;gap:.25rem}.asset-name-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.asset-name{font-weight:600;color:var(--color-text-primary)}.asset-inline-actions{display:flex;gap:.35rem;opacity:0;pointer-events:none;transition:opacity .15s ease}.assets-table tbody tr:hover .asset-inline-actions{opacity:1;pointer-events:auto}.asset-date{font-size:.8125rem;color:var(--color-text-secondary)}.gain-loss-cell{display:flex;flex-direction:column;gap:.25rem}.gain-loss-amount{font-weight:600}.gain-loss-percentage{font-size:.8125rem;display:flex;align-items:center;gap:.25rem}.gain-loss-cell.positive .gain-loss-amount,.gain-loss-cell.positive .gain-loss-percentage{color:var(--color-income)}.gain-loss-cell.negative .gain-loss-amount,.gain-loss-cell.negative .gain-loss-percentage{color:var(--color-expense)}.asset-class-tag{display:inline-flex;align-items:center;gap:.35rem;padding:.375rem .75rem;border-radius:999px;background:var(--color-neutral-200);color:var(--color-text-primary);font-weight:600;font-size:.875rem;border:1px solid var(--color-neutral-300);letter-spacing:.01em}.asset-class-tag--empty{background:var(--color-neutral-100);border-color:var(--color-neutral-200);color:var(--color-text-secondary)}.status-badge{display:inline-block;padding:.375rem .75rem;font-size:.8125rem;font-weight:600;border-radius:var(--radius-md);text-transform:capitalize}.status-active{background:var(--color-income-bg);color:var(--color-income)}.status-sold{background:var(--color-info-bg);color:var(--color-info)}.status-inactive{background:#9ca3af1a;color:var(--color-text-secondary)}.modal-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--color-surface-overlay);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem}.modal-content{background:var(--color-surface);border-radius:var(--radius-xl);max-width:600px;width:100%;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-lg)}.modal-header{display:flex;justify-content:space-between;align-items:center;padding:1.5rem;border-bottom:1px solid var(--color-neutral-200)}.modal-header h2{font-family:var(--font-serif);font-size:1.75rem;color:var(--color-text-primary);margin:0}.modal-close{background:none;border:none;font-size:2rem;color:var(--color-text-secondary);cursor:pointer;padding:0;width:32px;height:32px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-md);transition:all .2s ease}.modal-close:hover{background:var(--color-neutral-100);color:var(--color-text-primary)}.asset-form{padding:1.5rem}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem}.form-group input,.form-group select{padding:.75rem;font-family:var(--font-sans);font-size:1rem;color:var(--color-text-primary);background:var(--color-surface);border:1.5px solid var(--color-neutral-200);border-radius:var(--radius-md);transition:all .2s ease}.form-group input:focus,.form-group select:focus{outline:none;border-color:var(--color-neutral-900);box-shadow:0 0 0 3px var(--color-focus-ring)}.form-actions{display:flex;gap:1rem;margin-top:1.5rem;padding-top:1.5rem;border-top:1px solid var(--color-neutral-200)}@media (max-width: 1400px){.assets-table-container{overflow-x:auto}.assets-table{min-width:1200px}}@media (max-width: 1024px){.assets-header{flex-direction:column;align-items:flex-start;gap:1rem}.add-asset-btn{width:100%;justify-content:center}.assets-title{font-size:2.25rem}.assets-controls{flex-direction:column;width:100%}.search-bar{width:100%}.filter-toggle-btn{width:100%;justify-content:center}.filters-panel{grid-template-columns:1fr;padding:1.25rem}}@media (max-width: 768px){.form-row{grid-template-columns:1fr}.form-actions{flex-direction:column}.assets-table-container{background:transparent;box-shadow:none;border-radius:0;overflow:visible}.assets-table{display:block;width:100%}.assets-table thead{display:none}.assets-table tbody{display:flex;flex-direction:column;gap:.75rem}.assets-table tbody tr{display:grid;grid-template-columns:1fr auto;column-gap:.75rem;row-gap:.35rem;padding:1rem;background:var(--color-surface);border:1px solid var(--color-neutral-200);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm)}.assets-table tbody tr:hover{background:var(--color-neutral-50)}.assets-table td{padding:0;font-size:.9375rem}.assets-table td.asset-name-cell{grid-column:1 / -1;padding-bottom:.5rem;border-bottom:1px solid var(--color-neutral-100);margin-bottom:.35rem}.asset-inline-actions{opacity:1;pointer-events:auto}.assets-table td.asset-name-cell .asset-name-row{align-items:flex-start}.assets-table td:nth-child(2){grid-column:1;display:flex;flex-direction:column;gap:.15rem}.assets-table td:nth-child(2):before{content:"Class";font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-secondary);font-weight:600}.assets-table td.value-cell{grid-column:2;justify-self:end;text-align:right;display:flex;flex-direction:column;gap:.15rem}.assets-table td:nth-child(3):before{content:"Invested";font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-secondary);font-weight:600}.assets-table td:nth-child(4):before{content:"Current Value";font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-secondary);font-weight:600}.assets-table td.gain-loss-cell{grid-column:1 / -1;border-top:1px solid var(--color-neutral-100);padding-top:.5rem;margin-top:.25rem;flex-direction:row;justify-content:space-between;align-items:center}.gain-loss-cell:before{content:"Gain / Loss";font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-secondary);font-weight:600}.assets-table td.empty-state{grid-column:1 / -1;padding:1.5rem!important}}@media (max-width: 480px){.assets-title{font-size:1.75rem}.asset-stat-value{font-size:1.5rem}.asset-stat-card{padding:1rem}.assets-table tbody tr{padding:.875rem .75rem}}.asset-name-link{padding:0;font-family:inherit;font-size:inherit;font-weight:inherit;color:inherit;text-align:left;background:none;border:none;cursor:pointer}.asset-name-link:hover{text-decoration:underline}.dialog-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:var(--color-surface-overlay);display:flex;align-items:center;justify-content:center;z-index:1000;animation:fadeIn .2s ease-out}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.dialog-content{background:var(--color-surface);border-radius:12px;padding:24px;max-width:440px;width:90%;box-shadow:0 20px 25px -5px #0000001a,0 10px 10px -5px #0000000a;animation:slideUp .2s ease-out}@keyframes slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.dialog-header{display:flex;flex-direction:column;align-items:center;margin-bottom:20px}.dialog-icon-wrapper{width:48px;height:48px;border-radius:50%;background:var(--color-error-bg);display:flex;align-items:center;justify-content:center;margin-bottom:12px}.dialog-icon{color:var(--color-expense)}.dialog-title{font-size:20px;font-weight:600;color:var(--color-text-primary);margin:0;text-align:center}.dialog-body{margin-bottom:24px}.dialog-message{color:var(--color-text-secondary);font-size:14px;line-height:1.5;text-align:center;margin:0 0 12px}.dialog-item-name{background:var(--color-neutral-100);padding:12px;border-radius:8px;text-align:center;color:var(--color-text-primary);font-size:14px}.dialog-actions{display:flex;gap:12px}.dialog-btn{flex:1;padding:10px 16px;border-radius:8px;font-size:14px;font-weight:500;cursor:pointer;transition:all .2s;border:none}.dialog-btn:disabled{opacity:.6;cursor:not-allowed}.dialog-btn-cancel{background:var(--color-neutral-100);color:var(--color-text-primary)}.dialog-btn-cancel:hover:not(:disabled){background:var(--color-divider)}.dialog-btn-delete{background:var(--color-expense);color:#fff}.dialog-btn-delete:hover:not(:disabled){background:#b91c1c}.sharing-badges{display:flex;flex-wrap:wrap;gap:.375rem;margin-top:.25rem}.sharing-badge{display:inline-flex;align-items:center;gap:.25rem;padding:.125rem .4375rem;font-family:var(--font-sans);font-size:.6875rem;font-weight:500;line-height:1.4;border-radius:var(--radius-sm, .25rem);white-space:nowrap}.sharing-badge--private{color:var(--color-text-secondary);background:var(--color-neutral-100);border:1px solid var(--color-neutral-200)}.sharing-badge--shared{color:var(--color-primary-700, var(--color-primary-600));background:var(--color-primary-50);border:1px solid var(--color-primary-100, var(--color-primary-50))}.add-asset-page{width:100%;min-height:100vh;background:var(--color-app-background)}.add-asset-header{background:var(--color-surface);padding:1rem 2rem;border-bottom:1px solid var(--color-neutral-200)}.add-asset-container{max-width:900px;margin:0 auto;padding:2rem}.add-asset-title-section{margin-bottom:2rem}.add-asset-title{font-family:var(--font-serif);font-size:2.5rem;color:var(--color-text-primary);margin:0 0 .5rem}.add-asset-step{font-family:var(--font-sans);font-size:1rem;color:var(--color-text-secondary);margin:0}.asset-class-selection{background:var(--color-surface);padding:2rem;border-radius:var(--radius-xl);box-shadow:var(--shadow-sm)}.class-selection-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.class-selection-header h2{font-family:var(--font-serif);font-size:1.5rem;color:var(--color-text-primary);margin:0}.change-class-btn{font-family:var(--font-sans);font-size:.875rem;font-weight:500;color:var(--color-neutral-600);background:none;border:none;cursor:pointer;transition:color .2s ease}.change-class-btn:hover{color:var(--color-neutral-900)}.asset-class-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(140px,1fr));gap:1rem}.asset-class-card{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.75rem;padding:1.5rem 1rem;background:var(--color-surface);border:1.5px solid var(--color-neutral-200);border-radius:var(--radius-lg);cursor:pointer;transition:all .2s ease;font-family:var(--font-sans);font-size:.875rem;font-weight:500;color:var(--color-text-primary);text-align:center}.asset-class-card:hover{border-color:var(--color-neutral-400);background:var(--color-neutral-50);transform:translateY(-2px);box-shadow:var(--shadow-sm)}.asset-class-card.selected{border-color:var(--color-neutral-900);background:var(--color-focus-ring)}.asset-class-card svg{color:var(--color-neutral-700)}.asset-class-card:hover svg,.asset-class-card.selected svg{color:var(--color-neutral-900)}.asset-details-form{background:var(--color-surface);padding:2rem;border-radius:var(--radius-xl);box-shadow:var(--shadow-sm)}@media (max-width: 768px){.add-asset-container{padding:1rem}.add-asset-title{font-size:2rem}.asset-class-grid{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:.75rem}.asset-class-card{padding:1rem .75rem;font-size:.8125rem}.asset-class-card svg{width:20px;height:20px}.form-row{grid-template-columns:1fr}.form-actions{flex-direction:column}}.form-hint-link{padding:0;font:inherit;color:var(--color-primary-700, #1d4ed8);background:none;border:none;text-decoration:underline;cursor:pointer}.family-sharing{padding:1rem;margin-bottom:1.25rem;background:var(--color-neutral-50);border:1px solid var(--color-neutral-200);border-radius:var(--radius-md)}.family-sharing-toggle{display:flex;align-items:center;gap:.625rem;cursor:pointer}.family-sharing-toggle input[type=checkbox]{width:1rem;height:1rem;margin:0;accent-color:var(--color-primary-600);cursor:pointer}.family-sharing-toggle-label{display:inline-flex;align-items:center;gap:.5rem;font-family:var(--font-sans);font-size:.9375rem;font-weight:500;color:var(--color-text-primary)}.family-sharing .form-hint{display:block;margin-top:.375rem;font-size:.8125rem;color:var(--color-text-secondary)}.family-sharing-split{margin-top:1rem;padding-top:1rem;border-top:1px solid var(--color-neutral-200)}.family-sharing-split label{display:block;margin-bottom:.375rem;font-family:var(--font-sans);font-size:.875rem;font-weight:500;color:var(--color-text-primary)}.family-sharing-percent{display:flex;align-items:center;gap:.5rem}.family-sharing-percent input{width:6rem;padding:.5rem .75rem;font-family:var(--font-sans);font-size:.9375rem;color:var(--color-text-primary);background:var(--color-surface);border:1px solid var(--color-neutral-200);border-radius:var(--radius-md)}.family-sharing-percent span{font-size:.9375rem;color:var(--color-text-secondary)}.family-sharing-error{display:block;margin-top:.375rem;font-size:.8125rem;color:var(--color-error-text, #b91c1c)}.gold-valuation{margin:.25rem 0 1rem;padding:1rem;background:var(--color-surface-muted, rgba(0, 0, 0, .03));border:1.5px solid var(--color-neutral-400);border-radius:var(--radius-md)}.gold-valuation-head{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.gold-valuation-label{font-family:var(--font-sans);font-size:.8125rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-secondary)}.gold-refresh{display:inline-flex;align-items:center;gap:.375rem;padding:.25rem .5rem;font-family:var(--font-sans);font-size:.8125rem;color:var(--color-text-secondary);background:none;border:none;border-radius:var(--radius-sm, 6px);cursor:pointer}.gold-refresh:hover:not(:disabled){color:var(--color-text-primary);background:#0000000d}.gold-refresh:disabled{opacity:.6;cursor:default}.gold-refresh-spinning{animation:gold-refresh-spin 1s linear infinite}@keyframes gold-refresh-spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.gold-refresh-spinning{animation:none}}.gold-valuation-amount{margin-top:.375rem;font-family:var(--font-sans);font-size:1.75rem;font-weight:700;color:var(--color-text-primary);font-variant-numeric:tabular-nums}.gold-valuation-rate,.gold-valuation-gain,.gold-valuation-error{margin:.375rem 0 0;font-family:var(--font-sans);font-size:.8125rem;color:var(--color-text-secondary)}.gold-valuation-gain.is-gain{color:var(--color-success, #128f5b)}.gold-valuation-gain.is-loss{color:var(--color-danger, #c0392b)}.gold-valuation-error{color:var(--color-danger, #c0392b);font-style:italic}.view-asset-page{width:100%;min-height:100vh;background:var(--color-app-background)}.view-asset-header{background:var(--color-surface);padding:1rem 2rem;border-bottom:1px solid var(--color-neutral-200);display:flex;justify-content:space-between;align-items:center}.view-asset-container{max-width:1200px;margin:0 auto;padding:2rem}.view-asset-placeholder{text-align:center;padding:40px;color:var(--color-text-secondary)}.view-asset-error{padding:12px;background:var(--color-danger-50, #fee);color:var(--color-danger-700, #c00);border-radius:var(--radius-md);margin-bottom:1rem}.asset-summary-card{background:var(--color-surface);padding:2rem;border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);margin-bottom:2rem}.asset-summary-top{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap;margin-bottom:1.75rem}.asset-summary-name{font-family:var(--font-sans);font-size:1.5rem;font-weight:600;color:var(--color-text-primary);margin:0 0 .375rem}.asset-summary-class{font-size:.8125rem;color:var(--color-text-secondary)}.derived-badge{padding:.375rem .75rem;font-size:.75rem;font-weight:500;color:var(--color-primary-700, #1d4ed8);background:var(--color-primary-50, #e9f0ff);border:1px solid var(--color-primary-100, #cddcff);border-radius:var(--radius-md);white-space:nowrap}.asset-summary-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1.5rem}.asset-summary-item{display:flex;flex-direction:column;gap:.375rem}.asset-summary-label{font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary)}.asset-summary-value{font-size:1.25rem;font-weight:600;color:var(--color-text-primary);display:flex;align-items:baseline;gap:.5rem;flex-wrap:wrap}.asset-summary-value.muted{font-size:.9375rem;font-weight:500;color:var(--color-text-secondary)}.asset-summary-pct{display:inline-flex;align-items:center;gap:.25rem;font-size:.8125rem;font-weight:500}.positive{color:var(--color-success-700, #15803d)}.negative{color:var(--color-danger-700, #b91c1c)}.holdings-unsupported{background:var(--color-surface);padding:1.5rem 2rem;border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);color:var(--color-text-secondary);font-size:.9375rem}.holdings-card{background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);overflow:hidden}.holdings-card-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap;padding:1.5rem 2rem;border-bottom:1px solid var(--color-neutral-200)}.holdings-title{font-family:var(--font-sans);font-size:1.125rem;font-weight:600;color:var(--color-text-primary);margin:0 0 .25rem}.holdings-subtitle{font-size:.8125rem;color:var(--color-text-secondary);margin:0;max-width:46ch}.holdings-actions{display:flex;gap:.75rem;flex-wrap:wrap}.primary-btn,.secondary-btn,.cancel-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.5rem 1rem;font-family:var(--font-sans);font-size:.875rem;font-weight:500;border-radius:var(--radius-md);border:1px solid transparent;cursor:pointer;transition:all .2s ease}.primary-btn{color:var(--color-btn-primary-text);background:var(--color-neutral-900)}.primary-btn:hover:not(:disabled){background:var(--color-neutral-800)}.secondary-btn,.cancel-btn{color:var(--color-text-primary);background:var(--color-surface);border-color:var(--color-neutral-200)}.secondary-btn:hover:not(:disabled),.cancel-btn:hover:not(:disabled){background:var(--color-neutral-50)}.primary-btn:disabled,.secondary-btn:disabled,.cancel-btn:disabled{opacity:.6;cursor:not-allowed}.spinning{animation:view-asset-spin 1s linear infinite}@keyframes view-asset-spin{to{transform:rotate(360deg)}}.holding-form{padding:1.5rem 2rem;background:var(--color-neutral-50);border-bottom:1px solid var(--color-neutral-200)}.holding-form-row{display:flex;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.holding-field{display:flex;flex-direction:column;gap:.375rem;min-width:150px;position:relative}.holding-field.grow{flex:1}.holding-field label{font-size:.75rem;font-weight:500;color:var(--color-text-secondary)}.holding-field input{padding:.5rem .75rem;font-family:var(--font-sans);font-size:.9375rem;color:var(--color-text-primary);background:var(--color-surface);border:1px solid var(--color-neutral-200);border-radius:var(--radius-md)}.holding-field input:focus{outline:none;border-color:var(--color-neutral-900)}.holding-hint{font-size:.75rem;color:var(--color-text-secondary)}.holding-lookup-error{font-size:.8125rem;color:var(--color-danger-700, #b91c1c);margin-bottom:1rem}.scheme-search{display:flex;align-items:center;gap:.5rem;padding:0 .75rem;background:var(--color-surface);border:1px solid var(--color-neutral-200);border-radius:var(--radius-md);color:var(--color-text-secondary)}.scheme-search input{flex:1;border:none;padding:.5rem 0;background:transparent}.scheme-search input:focus{outline:none}.scheme-results{position:absolute;top:100%;left:0;right:0;z-index:20;margin:.25rem 0 0;padding:0;list-style:none;max-height:260px;overflow-y:auto;background:var(--color-surface);border:1px solid var(--color-neutral-200);border-radius:var(--radius-md);box-shadow:var(--shadow-md, 0 8px 24px rgba(0, 0, 0, .12))}.scheme-results button{display:flex;flex-direction:column;gap:.125rem;width:100%;padding:.625rem .875rem;text-align:left;background:none;border:none;cursor:pointer}.scheme-results button:hover{background:var(--color-neutral-50)}.scheme-name{font-size:.875rem;color:var(--color-text-primary)}.scheme-nav{font-size:.75rem;color:var(--color-text-secondary)}.holding-form-actions{display:flex;justify-content:flex-end;gap:.75rem}.holdings-empty{padding:2.5rem 2rem;text-align:center;color:var(--color-text-secondary);font-size:.9375rem}.holdings-table-wrap{overflow-x:auto}.holdings-table{width:100%;border-collapse:collapse;font-size:.9375rem}.holdings-table th,.holdings-table td{padding:.875rem 1rem;text-align:left;border-bottom:1px solid var(--color-neutral-200);white-space:nowrap}.holdings-table th{font-size:.75rem;font-weight:500;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary);background:var(--color-neutral-50)}.holdings-table th:first-child,.holdings-table td:first-child{padding-left:2rem}.holdings-table .num{text-align:right;font-variant-numeric:tabular-nums}.holdings-table .strong{font-weight:600;color:var(--color-text-primary)}.holdings-table tfoot td{font-weight:600;color:var(--color-text-primary);background:var(--color-neutral-50);border-bottom:none}.holding-name{display:block;color:var(--color-text-primary);white-space:normal;max-width:42ch}.holding-symbol{display:block;font-size:.75rem;color:var(--color-text-secondary)}.inline-input{width:96px;padding:.3125rem .5rem;font-family:var(--font-sans);font-size:.875rem;text-align:right;color:var(--color-text-primary);background:var(--color-surface);border:1px solid var(--color-neutral-300, var(--color-neutral-200));border-radius:var(--radius-sm, 6px)}.holding-row-actions{display:flex;gap:.375rem;justify-content:flex-end}.action-btn{display:inline-flex;align-items:center;justify-content:center;padding:.375rem;color:var(--color-text-secondary);background:none;border:none;border-radius:var(--radius-sm, 6px);cursor:pointer;transition:all .2s ease}.action-btn:hover:not(:disabled){background:var(--color-neutral-100, var(--color-neutral-50));color:var(--color-text-primary)}.action-btn.delete-btn:hover{color:var(--color-danger-700, #b91c1c)}@media (max-width: 768px){.view-asset-header,.view-asset-container{padding:1rem}.asset-summary-card,.holdings-card-header,.holding-form{padding:1.25rem}.holdings-table th:first-child,.holdings-table td:first-child{padding-left:1.25rem}}.scheme-results--static{position:static;max-height:300px;box-shadow:none}.suggestion-heading{display:block;padding:.5rem .875rem .25rem;font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--color-text-secondary);background:var(--color-neutral-50)}.import-note{padding:.75rem 2rem;font-size:.875rem;color:var(--color-text-secondary);background:var(--color-neutral-50);border-bottom:1px solid var(--color-neutral-200)}.import-preview{border-bottom:1px solid var(--color-neutral-200);background:var(--color-neutral-50)}.import-preview-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap;padding:1.25rem 2rem}.import-preview-title{font-family:var(--font-sans);font-size:1rem;font-weight:600;color:var(--color-text-primary);margin:0 0 .25rem}.import-preview-sub{font-size:.8125rem;color:var(--color-text-secondary);margin:0;max-width:60ch}.import-status{display:inline-block;padding:.1875rem .5rem;font-size:.75rem;font-weight:500;border-radius:var(--radius-sm, 6px);white-space:normal}.import-status--new{color:var(--color-success-700, #15803d);background:var(--color-success-50, #e9f7ef)}.import-status--update{color:var(--color-primary-700, #1d4ed8);background:var(--color-primary-50, #e9f0ff)}.import-status--unchanged{color:var(--color-text-secondary);background:var(--color-neutral-100, var(--color-neutral-50))}.import-status--unresolved{color:var(--color-warning-700, #c2410c);background:var(--color-warning-50, #fff3e8)}.coupon-card{margin-top:2rem}.tds-toggle{display:flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:500;color:var(--color-text-primary);cursor:pointer}.tds-toggle input{width:auto;margin:0;cursor:pointer}.income-months{display:flex;align-items:flex-end;gap:.5rem;padding:1.5rem 2rem 1rem;overflow-x:auto}.income-month{display:flex;flex:1 0 44px;flex-direction:column;align-items:center;gap:.375rem;min-width:44px}.income-bar-track{display:flex;align-items:flex-end;width:100%;height:90px}.income-bar{width:100%;min-height:2px;background:var(--color-success-700, #15803d);border-radius:4px 4px 0 0;transition:height .25s ease}.income-bar--empty{background:var(--color-neutral-200)}.income-month-label{font-size:.6875rem;color:var(--color-text-secondary)}.income-month-value{font-size:.6875rem;font-weight:600;color:var(--color-text-primary);font-variant-numeric:tabular-nums}.income-footer{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;padding:.875rem 2rem;font-size:.8125rem;color:var(--color-text-secondary);border-top:1px solid var(--color-neutral-200)}.tds-switch{display:inline-flex;align-items:center;gap:.5rem;padding:.375rem .75rem;background:var(--color-neutral-50);border:1px solid var(--color-neutral-200);border-radius:var(--radius-md)}.tds-switch-label{display:inline-flex;align-items:center;gap:.5rem;font-size:.875rem;font-weight:500;color:var(--color-text-primary);cursor:pointer;white-space:nowrap}.tds-switch-label input{margin:0;cursor:pointer}.tds-rate-input{width:58px;padding:.25rem .4375rem;font-family:var(--font-sans);font-size:.875rem;text-align:right;color:var(--color-text-primary);background:var(--color-surface);border:1px solid var(--color-neutral-200);border-radius:var(--radius-sm, 6px)}.tds-suffix{font-size:.8125rem;color:var(--color-text-secondary)}.gold-detail-card{background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);padding:1.5rem 2rem 2rem}.gold-detail-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;flex-wrap:wrap;margin-bottom:1.5rem}.liabilities-page{width:100%}.liabilities-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.liabilities-title{font-family:var(--font-serif);font-size:2.5rem;color:var(--color-text-primary);margin:0 0 .5rem}.liabilities-subtitle{font-family:var(--font-sans);font-size:1.125rem;color:var(--color-text-secondary);margin:0}.add-liability-btn{padding:.875rem 1.5rem;font-family:var(--font-sans);font-size:1rem;font-weight:600;color:var(--color-btn-primary-text);background:var(--color-neutral-900);border:none;border-radius:var(--radius-lg);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:.5rem}.add-liability-btn:hover{background:var(--color-neutral-800);transform:translateY(-1px);box-shadow:var(--shadow-md)}.liabilities-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin-bottom:2rem}.liability-stat-card{background:var(--color-surface);padding:1.5rem;border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);transition:all .2s ease}.liability-stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.liability-stat-label{font-family:var(--font-sans);font-size:.875rem;font-weight:500;color:var(--color-text-secondary);margin:0 0 .5rem}.liability-stat-value{font-family:var(--font-serif);font-size:2rem;color:var(--color-text-primary);margin:0}.liability-stat-value.negative{color:var(--color-expense)}.liability-stat-change{font-family:var(--font-sans);font-size:.875rem;display:flex;align-items:center;gap:.25rem;margin-top:.5rem;color:var(--color-text-secondary)}.liabilities-controls{display:flex;gap:1rem;margin-bottom:1.5rem}.search-bar{flex:1;position:relative;display:flex;align-items:center;background:var(--color-surface);border:1.5px solid var(--color-neutral-200);border-radius:var(--radius-lg);padding:0 1rem;transition:all .2s ease}.filters-panel{background:var(--color-surface);padding:1.5rem;border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);margin-bottom:1.5rem;display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem;align-items:end}.filter-group{display:flex;flex-direction:column;gap:.5rem}.filter-group label{font-family:var(--font-sans);font-size:.875rem;font-weight:600;color:var(--color-text-primary)}.filter-group select{padding:.75rem;font-family:var(--font-sans);font-size:.9375rem;color:var(--color-text-primary);background:var(--color-surface);border:1.5px solid var(--color-neutral-200);border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease}.filter-group select:focus{outline:none;border-color:var(--color-neutral-900);box-shadow:0 0 0 3px var(--color-focus-ring)}.liabilities-table-container{background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);overflow:hidden}.liabilities-table{width:100%;border-collapse:collapse}.liabilities-table thead{background:var(--color-neutral-50)}.liabilities-table th{padding:1rem 1.5rem;font-family:var(--font-sans);font-size:.875rem;font-weight:600;color:var(--color-text-primary);text-align:left;border-bottom:1px solid var(--color-neutral-200)}.liabilities-table tbody tr{border-bottom:1px solid var(--color-neutral-100);transition:background .2s ease}.liabilities-table tbody tr:hover{background:var(--color-neutral-50)}.liabilities-table tbody tr:last-child{border-bottom:none}.liabilities-table td{padding:1.25rem 1.5rem;font-family:var(--font-sans);font-size:.9375rem;color:var(--color-text-primary)}.liability-name-cell{display:flex;flex-direction:column;gap:.25rem}.liability-name-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.liability-name{font-weight:600;color:var(--color-text-primary)}.liability-inline-actions{display:flex;gap:.35rem;opacity:0;pointer-events:none;transition:opacity .15s ease}.owner-tag{display:inline-flex;align-items:center;margin-top:4px;padding:2px 8px;font-size:.72rem;font-weight:600;color:var(--color-primary-700, #1d4ed8);background:var(--color-primary-50, #e9f0ff);border:1px solid var(--color-primary-100, #cddcff);border-radius:20px;letter-spacing:.01em;width:fit-content}.liabilities-table tbody tr:hover .liability-inline-actions{opacity:1;pointer-events:auto}.value-cell{font-weight:600}.rate-cell{font-weight:600;color:#f59e0b}.date-cell{font-size:.9375rem}.date-info{display:flex;flex-direction:column;gap:.25rem}.date-value{font-weight:500;color:var(--color-text-primary)}.date-label{font-size:.8125rem;color:var(--color-text-secondary)}.tenure-cell{font-size:.9375rem}.tenure-info{display:flex;flex-direction:column;gap:.25rem}.tenure-value{font-weight:600;color:var(--color-text-primary)}.tenure-label{font-size:.8125rem;color:var(--color-text-secondary)}.view-btn{color:#8b5cf6}.view-btn:hover{background:#8b5cf61a}@media (max-width: 1400px){.liabilities-table-container{overflow-x:auto}.liabilities-table{min-width:1200px}}@media (max-width: 768px){.liabilities-header{flex-direction:column;align-items:flex-start;gap:1rem}.add-liability-btn{width:100%;justify-content:center}.liabilities-title{font-size:2rem}.liabilities-stats{grid-template-columns:1fr}.liabilities-controls{flex-direction:column;width:100%}.search-bar{width:100%}.filter-toggle-btn{width:100%;justify-content:center}.filters-panel{grid-template-columns:1fr}.liabilities-table-container{background:transparent;box-shadow:none;border-radius:0;overflow:visible}.liabilities-table{display:block;width:100%}.liabilities-table thead{display:none}.liabilities-table tbody{display:flex;flex-direction:column;gap:.75rem}.liabilities-table tbody tr{display:grid;grid-template-columns:1fr;row-gap:.5rem;padding:1rem;background:var(--color-surface);border:1px solid var(--color-neutral-200);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm)}.liabilities-table tbody tr:hover{background:var(--color-neutral-50)}.liabilities-table td{padding:0;font-size:.9375rem}.liabilities-table td.liability-name-cell{padding-bottom:.5rem;border-bottom:1px solid var(--color-neutral-100);margin-bottom:.35rem}.liability-inline-actions{opacity:1;pointer-events:auto}.liabilities-table td:nth-child(n+2){display:flex;flex-direction:column;gap:.15rem}.liabilities-table td:nth-child(2):before{content:"Loan Type"}.liabilities-table td:nth-child(3):before{content:"Outstanding"}.liabilities-table td:nth-child(4):before{content:"Interest Rate"}.liabilities-table td:nth-child(5):before{content:"Monthly EMI"}.liabilities-table td:nth-child(6):before{content:"Start Date"}.liabilities-table td:nth-child(7):before{content:"Tenure"}.liabilities-table td:nth-child(n+2):before{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-secondary);font-weight:600}.date-cell,.tenure-cell{border-top:1px solid var(--color-neutral-100);padding-top:.5rem}.liabilities-table td.empty-state{padding:1.5rem!important}}@media (max-width: 480px){.liabilities-title{font-size:1.75rem}.liability-stat-value{font-size:1.625rem}.liabilities-table tbody tr{padding:.875rem .75rem}}.value-owned-share{display:block;margin-top:.125rem;font-family:var(--font-sans);font-size:.75rem;font-weight:400;color:var(--color-text-secondary)}.add-liability-page{width:100%;min-height:100vh;background:var(--color-app-background)}.add-liability-header{background:var(--color-surface);padding:1rem 2rem;border-bottom:1px solid var(--color-neutral-200)}.add-liability-container{max-width:900px;margin:0 auto;padding:2rem}.add-liability-title-section{margin-bottom:2rem}.add-liability-title{font-family:var(--font-serif);font-size:2.5rem;color:var(--color-text-primary);margin:0 0 .5rem}.add-liability-subtitle{font-family:var(--font-sans);font-size:1rem;color:var(--color-text-secondary);margin:0}.liability-details-form{background:var(--color-surface);padding:2rem;border-radius:var(--radius-xl);box-shadow:var(--shadow-sm)}.form-section h2{font-family:var(--font-serif);font-size:1.5rem;color:var(--color-text-primary);margin:0 0 1.5rem}.form-group{margin-bottom:1rem}.form-group label{display:block;font-family:var(--font-sans);font-size:.875rem;font-weight:600;color:var(--color-text-primary);margin-bottom:.5rem}.form-group input,.form-group select,.form-group textarea{width:100%;padding:.75rem;font-family:var(--font-sans);font-size:1rem;color:var(--color-text-primary);background:var(--color-surface);border:1.5px solid var(--color-neutral-400);border-radius:var(--radius-md);transition:all .2s ease;box-shadow:0 0 0 2px #00000008}.form-hint{display:block;margin-top:.5rem;font-family:var(--font-sans);font-size:.8125rem;color:var(--color-text-secondary);font-style:italic}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:.75rem;margin-bottom:.75rem}.form-actions{display:flex;gap:1rem;margin-top:2rem;padding-top:2rem;border-top:1px solid var(--color-neutral-200)}.cancel-btn:hover{background:var(--color-neutral-200)}.submit-btn:hover{background:var(--color-neutral-800);transform:translateY(-1px);box-shadow:var(--shadow-md)}@media (max-width: 768px){.add-liability-container{padding:1rem}.add-liability-title{font-size:2rem}.form-row{grid-template-columns:1fr}.form-actions{flex-direction:column}}.calendar-picker{position:relative;width:100%}.calendar-picker--disabled{opacity:.55;pointer-events:none}.calendar-picker__trigger{width:100%;display:flex;align-items:center;gap:.625rem;padding:.75rem;font-family:var(--font-sans);font-size:1rem;color:var(--color-text-primary);background:var(--color-surface);border:1.5px solid var(--color-neutral-200, #e5e7eb);border-radius:var(--radius-md, .5rem);cursor:pointer;transition:border-color .2s ease,box-shadow .2s ease;text-align:left;line-height:1.5}.calendar-picker__trigger:hover:not(:disabled){border-color:var(--color-neutral-400, #a3a3a3)}.calendar-picker__trigger--active{border-color:var(--color-neutral-900, #111827);box-shadow:0 0 0 3px var(--color-focus-ring)}.calendar-picker__trigger--placeholder .calendar-picker__value{color:var(--color-text-muted, #94a3b8)}.calendar-picker__trigger:disabled{cursor:not-allowed}.calendar-picker__icon{color:var(--color-text-secondary, #64748b);flex-shrink:0;transition:color .2s ease}.calendar-picker__trigger--active .calendar-picker__icon{color:var(--color-neutral-900, #111827)}.calendar-picker__value{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.calendar-picker__clear{display:flex;align-items:center;justify-content:center;width:20px;height:20px;border-radius:var(--radius-full, 9999px);font-size:1.125rem;line-height:1;color:var(--color-text-muted, #94a3b8);transition:all .15s ease;flex-shrink:0}.calendar-picker__clear:hover{color:var(--color-text-primary, #0f172a);background:var(--color-neutral-100, #f5f5f5)}.calendar-dropdown{position:absolute;left:0;z-index:1000;width:320px;background:var(--color-surface);border:1.5px solid var(--color-neutral-200, #e5e7eb);border-radius:var(--radius-xl, 1rem);box-shadow:0 12px 36px -4px #0000001f,0 4px 12px #0000000f;padding:.75rem;animation:calendarSlideIn .18s ease-out}.calendar-dropdown--below{top:calc(100% + 6px)}.calendar-dropdown--above{bottom:calc(100% + 6px)}@keyframes calendarSlideIn{0%{opacity:0;transform:translateY(-6px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.calendar-dropdown__nav{display:flex;align-items:center;justify-content:space-between;gap:.25rem;margin-bottom:.5rem;padding:0 .125rem}.calendar-dropdown__nav-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;padding:0;background:transparent;border:none;border-radius:var(--radius-md, .5rem);color:var(--color-text-secondary, #64748b);cursor:pointer;transition:all .15s ease;flex-shrink:0}.calendar-dropdown__nav-btn:hover{background:var(--color-neutral-100, #f5f5f5);color:var(--color-text-primary, #0f172a)}.calendar-dropdown__month-label{flex:1;text-align:center;font-family:var(--font-sans);font-size:.9375rem;font-weight:600;color:var(--color-text-primary, #0f172a);background:transparent;border:none;border-radius:var(--radius-md, .5rem);padding:.375rem .5rem;cursor:pointer;transition:all .15s ease;white-space:nowrap}.calendar-dropdown__month-label:hover{background:var(--color-neutral-100, #f5f5f5)}.calendar-dropdown__month-label--static{cursor:default}.calendar-dropdown__month-label--static:hover{background:transparent}.calendar-dropdown__days-header{display:grid;grid-template-columns:repeat(7,1fr);margin-bottom:.25rem;padding:0 .125rem}.calendar-dropdown__day-label{text-align:center;font-family:var(--font-sans);font-size:.75rem;font-weight:600;color:var(--color-text-muted, #94a3b8);padding:.375rem 0;text-transform:uppercase;letter-spacing:.03em;-webkit-user-select:none;user-select:none}.calendar-dropdown__days-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:2px;padding:0 .125rem}.calendar-dropdown__day{display:flex;align-items:center;justify-content:center;width:100%;aspect-ratio:1;padding:0;font-family:var(--font-sans);font-size:.875rem;font-weight:500;color:var(--color-text-primary, #0f172a);background:transparent;border:none;border-radius:var(--radius-md, .5rem);cursor:pointer;transition:all .12s ease;position:relative}.calendar-dropdown__day:hover:not(:disabled):not(.calendar-dropdown__day--selected){background:var(--color-neutral-100, #f5f5f5)}.calendar-dropdown__day--other-month{color:var(--color-text-muted, #94a3b8);opacity:.5}.calendar-dropdown__day--today:not(.calendar-dropdown__day--selected){color:var(--color-neutral-900, #171717);font-weight:700;position:relative}.calendar-dropdown__day--today:not(.calendar-dropdown__day--selected):after{content:"";position:absolute;bottom:4px;left:50%;transform:translate(-50%);width:4px;height:4px;border-radius:var(--radius-full, 9999px);background:var(--color-neutral-900, #171717)}.calendar-dropdown__day--selected{background:var(--color-neutral-900, #171717);color:var(--color-btn-primary-text);font-weight:600}.calendar-dropdown__day--selected:hover{background:var(--color-neutral-800, #262626)}.calendar-dropdown__day--disabled{color:var(--color-text-muted, #94a3b8);opacity:.35;cursor:not-allowed}.calendar-dropdown__year-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;padding:.5rem .125rem}.calendar-dropdown__year{display:flex;align-items:center;justify-content:center;padding:.75rem .5rem;font-family:var(--font-sans);font-size:.9375rem;font-weight:500;color:var(--color-text-primary, #0f172a);background:transparent;border:1.5px solid transparent;border-radius:var(--radius-lg, .75rem);cursor:pointer;transition:all .15s ease}.calendar-dropdown__year:hover{background:var(--color-neutral-100, #f5f5f5)}.calendar-dropdown__year--current{border-color:var(--color-neutral-300, #d4d4d4);font-weight:600}.calendar-dropdown__year--selected{background:var(--color-neutral-900, #171717);color:var(--color-btn-primary-text);border-color:var(--color-neutral-900, #171717);font-weight:600}.calendar-dropdown__year--selected:hover{background:var(--color-neutral-800, #262626)}.calendar-dropdown__footer{display:flex;justify-content:center;padding-top:.5rem;margin-top:.25rem;border-top:1px solid var(--color-neutral-100, #f5f5f5)}.calendar-dropdown__today-btn{padding:.375rem 1rem;font-family:var(--font-sans);font-size:.8125rem;font-weight:600;color:var(--color-text-secondary, #64748b);background:transparent;border:none;border-radius:var(--radius-md, .5rem);cursor:pointer;transition:all .15s ease}.calendar-dropdown__today-btn:hover{background:var(--color-neutral-100, #f5f5f5);color:var(--color-text-primary, #0f172a)}@media (max-width: 768px){.calendar-dropdown{width:calc(100vw - 3rem);max-width:320px}}.view-liability-page{width:100%;min-height:100vh;background:var(--color-app-background)}.view-liability-header{background:var(--color-surface);padding:1rem 2rem;border-bottom:1px solid var(--color-neutral-200);display:flex;justify-content:space-between;align-items:center}.edit-button{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;font-family:var(--font-sans);font-size:.9375rem;font-weight:500;color:var(--color-btn-primary-text);background:var(--color-neutral-900);border:none;border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease}.edit-button:hover{background:var(--color-neutral-800);transform:translateY(-1px)}.view-liability-container{max-width:1200px;margin:0 auto;padding:2rem}.liability-header-section{background:var(--color-surface);padding:2rem;border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);margin-bottom:2rem}.liability-title-group{display:flex;align-items:center;gap:1rem;margin-bottom:1rem}.liability-title{font-family:var(--font-serif);font-size:2.5rem;color:var(--color-text-primary);margin:0}.liability-type-badge{padding:.5rem 1rem;background:var(--color-expense-bg);color:var(--color-expense);border-radius:var(--radius-md);font-family:var(--font-sans);font-size:.875rem;font-weight:600}.liability-meta{display:flex;gap:2rem;color:var(--color-text-secondary);font-family:var(--font-sans);font-size:.9375rem}.meta-item{display:flex;align-items:center;gap:.5rem}.metrics-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin-bottom:2rem}.metric-card{background:var(--color-surface);padding:1.5rem;border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);display:flex;gap:1rem;transition:all .2s ease}.metric-icon{width:48px;height:48px;border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;flex-shrink:0}.metric-card.outstanding .metric-icon{background:var(--color-expense-bg);color:var(--color-expense)}.metric-card.emi .metric-icon{background:var(--color-info-bg);color:var(--color-info)}.metric-card.interest .metric-icon{background:#f59e0b1a;color:#f59e0b}.metric-card.total-interest .metric-icon{background:#a855f71a;color:#a855f7}.metric-content{flex:1}.metric-label{font-family:var(--font-sans);font-size:.875rem;font-weight:500;color:var(--color-text-secondary);margin:0 0 .5rem}.metric-value{font-family:var(--font-serif);font-size:1.75rem;color:var(--color-text-primary);margin:0}.metric-hint{font-family:var(--font-sans);font-size:.75rem;color:var(--color-text-secondary);margin:.25rem 0 0}.progress-section{background:var(--color-surface);padding:2rem;border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);margin-bottom:2rem}.progress-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1rem}.progress-header h3{font-family:var(--font-serif);font-size:1.5rem;color:var(--color-text-primary);margin:0}.progress-percentage{font-family:var(--font-sans);font-size:1.125rem;font-weight:600;color:var(--color-income)}.progress-bar-container{width:100%;height:12px;background:var(--color-neutral-100);border-radius:999px;overflow:hidden;margin-bottom:1rem}.progress-bar-fill{height:100%;background:linear-gradient(90deg,#22c55e,#16a34a);border-radius:999px;transition:width .5s ease}.progress-stats{display:flex;gap:2rem}.progress-stat{display:flex;align-items:center;gap:.5rem;font-family:var(--font-sans);font-size:.9375rem;color:var(--color-text-secondary)}.icon-success{color:var(--color-income)}.icon-warning{color:#f59e0b}.financial-summary{background:var(--color-surface);padding:2rem;border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);margin-bottom:2rem}.financial-summary h3{font-family:var(--font-serif);font-size:1.5rem;color:var(--color-text-primary);margin:0 0 1.5rem}.summary-columns{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1.25rem}.summary-column{padding:1.25rem;background:var(--color-neutral-50);border-radius:var(--radius-lg);display:flex;flex-direction:column}.summary-column-title{font-family:var(--font-sans);font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-secondary);margin:0 0 1rem}.summary-rows{margin:0;display:flex;flex-direction:column;gap:.625rem}.summary-row{display:flex;align-items:baseline;justify-content:space-between;gap:1rem;font-family:var(--font-sans)}.summary-row dt{font-size:.875rem;color:var(--color-text-secondary)}.summary-row dd{margin:0;font-size:.9375rem;font-weight:600;color:var(--color-text-primary);font-variant-numeric:tabular-nums;text-align:right}.summary-row-total{margin-top:.375rem;padding-top:.75rem;border-top:1px solid var(--color-neutral-200)}.summary-row-total dt{font-weight:600;color:var(--color-text-primary)}.summary-row-total dd{font-family:var(--font-serif);font-size:1.25rem;font-weight:400}.summary-column-note{margin:auto 0 0;padding-top:1rem;font-family:var(--font-sans);font-size:.8125rem;color:var(--color-text-secondary)}.summary-row dd.interest-value{color:#f59e0b}.summary-row dd.total-value{color:var(--color-expense)}.summary-row dd.paid-value{color:var(--color-income)}.summary-row dd.remaining-value{color:var(--color-info)}.next-payment-card{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;flex-wrap:wrap;background:var(--color-surface);padding:1.5rem 2rem;border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);margin-bottom:2rem;border-left:4px solid var(--color-info)}.next-payment-label{margin:0 0 .25rem;font-family:var(--font-sans);font-size:.8125rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-secondary)}.next-payment-amount{margin:0;font-family:var(--font-serif);font-size:2rem;color:var(--color-text-primary)}.next-payment-split{margin:.375rem 0 0;font-family:var(--font-sans);font-size:.875rem;color:var(--color-text-secondary)}.mark-paid-button{display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;font-family:var(--font-sans);font-size:.9375rem;font-weight:600;color:var(--color-btn-primary-text);background:var(--color-neutral-900);border:none;border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease}.mark-paid-button:hover{background:var(--color-neutral-800);transform:translateY(-1px)}.liability-overdue{display:flex;align-items:center;gap:.625rem;padding:1rem 1.25rem;margin-bottom:2rem;background:#f59e0b1a;border:1px solid rgba(245,158,11,.3);border-radius:var(--radius-lg);font-family:var(--font-sans);font-size:.9375rem;color:var(--color-text-primary)}.liability-overdue>svg{flex-shrink:0;color:#f59e0b}.payment-schedule-section{background:var(--color-surface);padding:2rem;border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);margin-bottom:2rem}.payment-schedule-section h3{font-family:var(--font-serif);font-size:1.5rem;color:var(--color-text-primary);margin:0 0 1.5rem}.schedule-table-container{overflow-x:auto;border-radius:var(--radius-lg);border:1px solid var(--color-neutral-200)}.schedule-table{width:100%;min-width:900px;border-collapse:collapse;font-family:var(--font-sans);table-layout:fixed;display:table}.schedule-table tbody{display:table-row-group}.schedule-table tr{display:table-row}.schedule-table th,.schedule-table td{display:table-cell}.schedule-table thead{background:var(--color-neutral-50)}.schedule-table th{padding:1rem;text-align:left;font-size:.875rem;font-weight:600;color:var(--color-text-primary);border-bottom:2px solid var(--color-neutral-200)}.schedule-table th:nth-child(1),.schedule-table td.month-cell{width:8%;text-align:center}.schedule-table th:nth-child(2),.schedule-table td.date-cell{width:16%;text-align:left}.schedule-table th.numeric-col,.schedule-table td.amount-cell{text-align:right}.schedule-table tbody tr{border-bottom:1px solid var(--color-neutral-100);transition:background .2s ease}.schedule-table tbody tr:hover{background:var(--color-neutral-50)}.schedule-table td{padding:1rem;font-size:.9375rem;color:var(--color-text-primary);vertical-align:middle;white-space:nowrap}.numeric-col{text-align:right}.month-cell{font-weight:600;white-space:nowrap}.date-cell{color:var(--color-text-secondary);white-space:nowrap}.amount-cell{font-weight:600;white-space:nowrap;text-align:right}.amount-cell.principal{color:var(--color-info)}.amount-cell.interest{color:#f59e0b}.amount-cell.balance{color:var(--color-expense)}.additional-details{background:var(--color-surface);padding:2rem;border-radius:var(--radius-xl);box-shadow:var(--shadow-sm)}.details-section{display:grid;gap:1.5rem}.detail-item{padding:1.5rem;background:var(--color-neutral-50);border-radius:var(--radius-lg)}.detail-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1rem;color:var(--color-text-primary)}.detail-header h4{font-family:var(--font-sans);font-size:1.125rem;font-weight:600;margin:0}.detail-content{font-family:var(--font-sans);font-size:.9375rem;color:var(--color-text-secondary);line-height:1.6;margin:0}.tags-content{color:var(--color-info);font-weight:500}.timeline-content p{margin:.5rem 0;font-family:var(--font-sans);font-size:.9375rem;color:var(--color-text-secondary)}.timeline-content strong{color:var(--color-text-primary);font-weight:600}@media (max-width: 640px){.view-liability-container{padding:1rem}.liability-title{font-size:2rem}.liability-title-group{flex-direction:column;align-items:flex-start}.liability-meta{flex-direction:column;gap:.5rem}.metrics-grid{grid-template-columns:1fr}.progress-stats{flex-direction:column;gap:.75rem}.summary-columns{grid-template-columns:1fr}.next-payment-card{flex-direction:column;align-items:stretch}.mark-paid-button{justify-content:center}.schedule-table-container{overflow-x:auto}.schedule-table{min-width:720px;table-layout:fixed;display:table}.view-liability-header{flex-direction:column;gap:1rem;align-items:stretch}.edit-button{justify-content:center}}.liability-warning{display:flex;align-items:flex-start;gap:.875rem;padding:1rem 1.25rem;margin-bottom:1.5rem;background:#ef444414;border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-lg);color:var(--color-text-primary)}.liability-warning>svg{flex-shrink:0;margin-top:.125rem;color:var(--color-expense)}.liability-warning strong{display:block;margin-bottom:.25rem;font-size:.9375rem}.liability-warning p{margin:0;font-size:.875rem;line-height:1.5;color:var(--color-text-secondary)}.liability-settled{display:flex;align-items:center;gap:.625rem;padding:1rem 1.25rem;margin-bottom:1.5rem;background:var(--color-income-bg);border-radius:var(--radius-lg);font-weight:600;color:var(--color-income)}.section-subtitle{margin:-.5rem 0 1.25rem;font-size:.875rem;color:var(--color-text-secondary)}.summary-footnote{margin:1.25rem 0 0;padding-top:1.25rem;border-top:1px solid var(--color-neutral-100);font-size:.875rem;line-height:1.5;color:var(--color-text-secondary)}.schedule-table tbody tr.paid-row{background:#22c55e0a}.schedule-table td.action-cell{padding:.75rem 1rem;text-align:right;white-space:nowrap}.undo-payment-button{display:inline-flex;align-items:center;gap:.375rem;padding:.375rem .75rem;font-family:var(--font-sans);font-size:.8125rem;font-weight:500;color:var(--color-text-secondary);background:var(--color-surface);border:1px solid var(--color-neutral-200);border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease}.undo-payment-button:hover:not(:disabled){color:var(--color-expense);border-color:var(--color-expense)}.undo-payment-button:disabled{opacity:.6;cursor:default}.emi-dialog-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--color-surface-overlay);display:flex;align-items:center;justify-content:center;padding:1rem;z-index:1000}.emi-dialog{width:100%;max-width:440px;background:var(--color-surface);border-radius:var(--radius-xl);padding:1.75rem;box-shadow:var(--shadow-lg, 0 20px 25px -5px rgba(0, 0, 0, .1))}.emi-dialog-header{display:flex;align-items:center;gap:.75rem;margin-bottom:1.25rem;color:var(--color-text-primary)}.emi-dialog-header h3{margin:0;font-family:var(--font-serif);font-size:1.25rem}.emi-dialog-breakdown{padding:1rem;background:var(--color-neutral-50);border-radius:var(--radius-lg);display:flex;flex-direction:column;gap:.5rem}.emi-dialog-line{display:flex;justify-content:space-between;gap:1rem;font-family:var(--font-sans);font-size:.875rem;color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.emi-dialog-line-total{margin-top:.25rem;padding-top:.625rem;border-top:1px solid var(--color-neutral-200);font-weight:600;color:var(--color-text-primary)}.emi-dialog-fields{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1.25rem}.emi-dialog-field{display:flex;flex-direction:column;gap:.375rem}.emi-dialog-field label{font-family:var(--font-sans);font-size:.8125rem;font-weight:500;color:var(--color-text-secondary)}.emi-dialog-field input{padding:.625rem .75rem;font-family:var(--font-sans);font-size:.9375rem;color:var(--color-text-primary);background:var(--color-surface);border:1px solid var(--color-neutral-200);border-radius:var(--radius-md)}.emi-dialog-field input:focus{outline:none;border-color:var(--color-info)}.emi-dialog-hint{margin:.625rem 0 0;font-family:var(--font-sans);font-size:.8125rem;line-height:1.5;color:var(--color-text-secondary)}.emi-dialog-toggle{display:flex;align-items:center;gap:.625rem;margin-top:1rem;font-family:var(--font-sans);font-size:.875rem;color:var(--color-text-primary);cursor:pointer}.emi-dialog-error{margin:1rem 0 0;padding:.75rem;background:var(--color-expense-bg);color:var(--color-expense);border-radius:var(--radius-md);font-family:var(--font-sans);font-size:.875rem}.emi-dialog-actions{display:flex;justify-content:flex-end;gap:.75rem;margin-top:1.5rem}.emi-dialog-btn{padding:.625rem 1.25rem;font-family:var(--font-sans);font-size:.9375rem;font-weight:600;border-radius:var(--radius-md);border:none;cursor:pointer;transition:all .2s ease}.emi-dialog-btn:disabled{opacity:.6;cursor:default}.emi-dialog-btn-cancel{background:var(--color-neutral-100);color:var(--color-text-primary)}.emi-dialog-btn-confirm{background:var(--color-neutral-900);color:var(--color-btn-primary-text)}.emi-dialog-btn-confirm:hover:not(:disabled){background:var(--color-neutral-800)}@media (max-width: 640px){.emi-dialog-fields{grid-template-columns:1fr}}.networth-page{width:100%}.networth-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.networth-title{font-family:var(--font-serif);font-size:2.5rem;color:var(--color-text-primary);margin:0 0 .5rem}.networth-subtitle{font-family:var(--font-sans);font-size:1.125rem;color:var(--color-text-secondary);margin:0}.networth-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin-bottom:2rem}.networth-stat-card{background:var(--color-surface);padding:1.5rem;border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);transition:all .2s ease}.networth-stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.networth-stat-card.primary{background:var(--color-surface)}.networth-stat-card.clickable{cursor:pointer}.networth-stat-label{font-family:var(--font-sans);font-size:.875rem;font-weight:500;color:var(--color-text-secondary);margin:0 0 .5rem}.networth-stat-value{font-family:var(--font-serif);font-size:2rem;color:var(--color-text-primary);margin:0}.networth-stat-value.positive{color:var(--color-income)}.networth-stat-value.negative{color:var(--color-expense)}.networth-stat-change{font-family:var(--font-sans);font-size:.875rem;display:flex;align-items:center;gap:.25rem;margin-top:.5rem}.networth-stat-change.positive{color:var(--color-income)}.networth-stat-change.negative{color:var(--color-expense)}.networth-stat-meta{font-family:var(--font-sans);font-size:.875rem;color:var(--color-text-secondary);margin-top:.5rem;display:flex;align-items:center;gap:.25rem}.arrow-icon{opacity:0;transition:all .2s ease}.networth-stat-card.clickable:hover .arrow-icon{opacity:1;transform:translate(4px)}.breakdown-section{background:var(--color-surface);padding:2rem;border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);margin-bottom:2rem}.breakdown-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.breakdown-title{font-family:var(--font-serif);font-size:1.75rem;color:var(--color-text-primary);margin:0}.view-all-btn{display:flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;font-family:var(--font-sans);font-size:.9375rem;font-weight:500;color:var(--color-text-primary);background:var(--color-neutral-50);border:none;border-radius:var(--radius-lg);cursor:pointer;transition:all .2s ease}.view-all-btn:hover{background:var(--color-neutral-100);transform:translateY(-1px)}.breakdown-table-container{overflow-x:auto;border-radius:var(--radius-lg);border:1px solid var(--color-neutral-200)}.breakdown-cta{margin-top:1.5rem;display:flex;justify-content:center;width:100%}.breakdown-table{width:100%;border-collapse:collapse;font-family:var(--font-sans)}.breakdown-table thead{background:var(--color-neutral-50)}.breakdown-table th{padding:1rem;text-align:left;font-size:.875rem;font-weight:600;color:var(--color-text-primary);border-bottom:2px solid var(--color-neutral-200)}.breakdown-table tbody tr{border-bottom:1px solid var(--color-neutral-100);transition:background .2s ease}.breakdown-table tbody tr:hover{background:var(--color-neutral-50)}.breakdown-table td{padding:1rem;font-size:.9375rem;color:var(--color-text-primary)}.asset-name-cell{font-weight:500}.asset-name-row{display:flex;align-items:center;gap:.75rem}.asset-icon{color:var(--color-income)}.liability-icon{color:var(--color-expense)}.asset-name{font-weight:500}.count-cell{color:var(--color-text-secondary);font-weight:500}.value-cell{font-weight:600;text-align:right}.value-cell.positive{color:var(--color-income)}.value-cell.negative{color:var(--color-expense)}.percentage-cell{min-width:180px}.percentage-bar-container{display:flex;align-items:center;gap:.75rem}.percentage-bar{flex:1;height:8px;background:var(--color-neutral-100);border-radius:var(--radius-full);overflow:hidden}.percentage-fill{height:100%;border-radius:var(--radius-full);transition:width .5s ease}.percentage-fill.positive{background:linear-gradient(90deg,#22c55e,#16a34a)}.percentage-fill.negative{background:linear-gradient(90deg,#ef4444,#dc2626)}.percentage-text{font-size:.875rem;font-weight:600;color:var(--color-text-secondary);min-width:45px;text-align:right}.empty-state{text-align:center;padding:3rem 1rem;display:flex;flex-direction:column;align-items:center;gap:1rem}.breakdown-empty-state{background:var(--color-neutral-50);border-radius:var(--radius-lg);border:1px dashed var(--color-neutral-200)}.empty-state p{font-family:var(--font-sans);font-size:1rem;color:var(--color-text-secondary);margin:0 0 1rem}.add-btn{padding:.75rem 1.5rem;font-family:var(--font-sans);font-size:.9375rem;font-weight:500;color:var(--color-btn-primary-text);background:var(--color-neutral-900);border:none;border-radius:var(--radius-lg);cursor:pointer;transition:all .2s ease}.empty-state .add-btn{margin-top:.5rem}.breakdown-empty-state .add-btn{align-self:center}.add-btn:hover{background:var(--color-neutral-800);transform:translateY(-1px)}.loading-state{text-align:center;padding:4rem 2rem;font-family:var(--font-sans);font-size:1rem;color:var(--color-text-secondary)}@media (max-width: 768px){.networth-header{flex-direction:column;align-items:flex-start;gap:1rem}.networth-title{font-size:2rem}.networth-subtitle{font-size:1rem}.networth-stats{grid-template-columns:1fr}.networth-stat-value{font-size:1.75rem}.breakdown-section{padding:1.5rem 1rem}.breakdown-header{flex-direction:column;align-items:flex-start;gap:1rem}.view-all-btn{width:100%;justify-content:center}.breakdown-table-container{overflow:visible;border:none}.breakdown-table{display:block;width:100%}.breakdown-table thead{display:none}.breakdown-table tbody{display:flex;flex-direction:column;gap:.75rem}.breakdown-table tbody tr{display:grid;grid-template-columns:1fr;gap:.5rem;padding:1rem;border:1px solid var(--color-neutral-200);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);background:var(--color-surface)}.breakdown-table td{padding:0}.breakdown-table td.asset-name-cell{border-bottom:1px solid var(--color-neutral-100);padding-bottom:.5rem;margin-bottom:.35rem}.breakdown-table td:not(.asset-name-cell){display:flex;flex-direction:column;gap:.15rem}.breakdown-table td:not(.asset-name-cell):before{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--color-text-secondary);font-weight:600}.breakdown-table td.count-cell:before{content:"Count"}.breakdown-table td.value-cell:nth-of-type(1):before{content:"Total Value"}.breakdown-table td.value-cell:nth-of-type(2):before{content:"Monthly EMI"}.breakdown-section:nth-of-type(1) .breakdown-table td.value-cell:before{content:"Total Value"}.breakdown-section:nth-of-type(2) .breakdown-table td.value-cell:first-of-type:before{content:"Outstanding"}.breakdown-section:nth-of-type(2) .breakdown-table td.value-cell:last-of-type:before{content:"Monthly EMI"}.breakdown-section:nth-of-type(1) .percentage-cell:before{content:"% of Assets"}.breakdown-section:nth-of-type(2) .percentage-cell:before{content:"% of Liabilities"}.percentage-cell{border-top:1px solid var(--color-neutral-100);padding-top:.5rem}}@media (max-width: 480px){.networth-title{font-size:1.75rem}.networth-stat-value{font-size:1.5rem}.breakdown-table tbody tr{padding:.875rem .75rem}}.essentials-page{width:100%;margin:0 auto}.essentials-page-header{margin-bottom:1.5rem}.essentials-page-header h1{font-family:var(--font-serif);font-size:2.25rem;color:var(--color-text-primary);margin:0 0 .25rem}.essentials-page-header p{font-family:var(--font-sans);font-size:1rem;color:var(--color-text-secondary);margin:0}.health-score-section{background:var(--color-surface);border-radius:var(--radius-xl);border:1px solid var(--color-neutral-200);padding:1.25rem 2rem;margin-bottom:1.5rem}.health-score-header{display:flex;align-items:baseline;gap:1rem;margin-bottom:.75rem}.health-score-value{display:flex;align-items:baseline}.score-number{font-family:var(--font-serif);font-size:2rem;font-weight:600;color:var(--color-text-primary);line-height:1}.score-max{font-family:var(--font-sans);font-size:1rem;color:var(--color-text-muted);margin-left:2px}.score-label-text{font-family:var(--font-sans);font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-secondary);flex:1}.score-verdict{font-family:var(--font-sans);font-size:.875rem;font-weight:600}.health-score-bar{width:100%;height:10px;background:var(--color-neutral-100);border-radius:999px;overflow:hidden}.health-score-fill{height:100%;border-radius:999px;transition:width 1s cubic-bezier(.4,0,.2,1)}.metrics-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}.metric-card{background:var(--color-surface);border-radius:var(--radius-xl);border:1px solid var(--color-neutral-200);padding:1.5rem;cursor:pointer;transition:box-shadow .2s ease,transform .15s ease;display:flex;flex-direction:column;min-width:0;overflow:hidden}.metric-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.card-top{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:1.25rem;width:100%}.card-title-row{display:flex;align-items:center;gap:.5rem}.card-emoji{font-size:1.25rem}.card-title{font-family:var(--font-sans);font-size:1.125rem;font-weight:600;color:var(--color-text-primary)}.card-source{font-family:var(--font-sans);font-size:.75rem;color:var(--color-text-muted);margin:0}.status-dot-badge{display:inline-flex;align-items:center;gap:.375rem;font-family:var(--font-sans);font-size:.8125rem;font-weight:500;white-space:nowrap}.status-dot-badge:before{content:"";width:8px;height:8px;border-radius:50%;flex-shrink:0}.dot-green:before{background:var(--color-accent-green)}.dot-green{color:#059669}.dot-blue:before{background:var(--color-accent-blue)}.dot-blue{color:var(--color-link-action)}.dot-red:before{background:var(--color-expense)}.dot-red{color:var(--color-expense)}.dot-gray:before{background:var(--color-text-muted)}.dot-gray{color:#64748b}.card-row{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:.25rem;width:100%}.card-label{font-family:var(--font-sans);font-size:.6875rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted)}.card-value{font-family:var(--font-sans);font-size:.9375rem;font-weight:600;color:var(--color-text-primary)}.card-value-bold{font-family:var(--font-sans);font-size:1.125rem;font-weight:700;color:var(--color-text-primary)}.card-sub-text{font-family:var(--font-sans);font-size:.75rem;color:var(--color-text-muted);margin:0 0 1rem}.card-advice{font-family:var(--font-sans);font-size:.8125rem;color:var(--color-text-secondary);margin:.75rem 0 0;line-height:1.5}.card-formula{font-family:var(--font-sans);font-size:.8125rem;color:var(--color-text-muted);margin:0;line-height:1.5}.card-divider{height:1px;background:var(--color-neutral-200);margin:.75rem 0}.editable-value{display:flex;align-items:center;gap:.5rem;margin-bottom:.25rem}.edit-icon{color:var(--color-text-muted);cursor:pointer}.card-row-pair{display:flex;justify-content:space-between;margin-bottom:1rem;width:100%}.card-row-pair>div{display:flex;flex-direction:column;gap:.125rem}.savings-rate-hero,.debt-ratio-hero{margin-bottom:.25rem;width:100%}.big-percent{font-family:var(--font-serif);font-size:2.5rem;font-weight:700;line-height:1}.big-percent-label{font-family:var(--font-sans);font-size:.875rem;color:var(--color-text-secondary);margin-left:.5rem}.fi-box{display:flex;justify-content:space-between;align-items:center;background:var(--color-neutral-50);border:1px solid var(--color-neutral-200);border-radius:var(--radius-md);padding:.75rem 1rem;margin-top:1rem}.fi-box span:first-child{font-family:var(--font-sans);font-size:.75rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--color-text-secondary)}.fi-value{font-family:var(--font-sans);font-size:.9375rem;font-weight:700;color:var(--color-text-primary)}.net-worth-box{display:flex;justify-content:space-between;align-items:center;background:var(--color-neutral-900);color:var(--color-btn-primary-text);border-radius:var(--radius-md);padding:.75rem 1rem;margin-top:1rem}.net-worth-box span:first-child{font-family:var(--font-sans);font-size:.75rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase}.net-worth-value{font-family:var(--font-sans);font-size:.9375rem;font-weight:700}.labeled-progress{position:relative;margin-bottom:1.25rem;width:100%}.labeled-progress-track{width:100%;height:6px;background:var(--color-neutral-100);border-radius:999px;overflow:hidden}.labeled-progress-fill{height:100%;border-radius:999px;transition:width 1s cubic-bezier(.4,0,.2,1);min-width:3px}.labeled-progress-labels{position:relative;height:1.25rem;margin-top:.375rem}.labeled-progress-labels span{font-family:var(--font-sans);font-size:.6875rem;color:var(--color-text-muted);transform:translate(-50%)}.labeled-progress-labels span:first-child{transform:translate(0)}.labeled-progress-labels span:last-child{transform:translate(-100%)}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--color-surface-overlay);display:flex;align-items:center;justify-content:center;z-index:1000;padding:2rem}.modal-content{background:var(--color-surface);border-radius:var(--radius-xl);width:100%;max-width:700px;max-height:85vh;overflow-y:auto}.modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.5rem 1.5rem 0}.modal-header h2{font-family:var(--font-sans);font-size:1.25rem;font-weight:600;color:var(--color-text-primary);margin:0}.modal-close{background:none;border:none;cursor:pointer;color:var(--color-text-muted);padding:.25rem;border-radius:var(--radius-md);transition:background .15s}.modal-close:hover{background:var(--color-neutral-100)}.modal-body{padding:1.5rem}.modal-card-preview .metric-card{cursor:default;margin-bottom:1.5rem}.modal-card-preview .metric-card:hover{box-shadow:none;transform:none}.modal-details{display:flex;flex-direction:column;gap:1.25rem}.detail-section-title{font-family:var(--font-sans);font-size:1rem;font-weight:700;color:var(--color-text-primary);margin:0}.detail-table{background:var(--color-neutral-50);border-radius:var(--radius-lg);overflow:hidden;border:1px solid var(--color-neutral-200)}.detail-table-header{font-family:var(--font-sans);font-size:.6875rem;font-weight:600;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted);padding:.75rem 1rem .5rem}.detail-table-row{display:flex;justify-content:space-between;align-items:center;padding:.625rem 1rem;font-family:var(--font-sans);font-size:.875rem;color:var(--color-text-primary);border-top:1px solid var(--color-neutral-100)}.detail-table-row.header-row{background:var(--color-neutral-100);font-weight:600;font-size:.8125rem;border-top:none}.detail-table-row.highlight-row{background:#f59e0b0f}.detail-table-row.total-row{font-weight:700;border-top:2px solid var(--color-neutral-200)}.you-marker{color:#d97706;font-weight:600;font-size:.8125rem}.gap-warning-box{background:var(--color-warning-bg);border-radius:var(--radius-lg);padding:1rem 1.25rem}.gap-warning-label{font-family:var(--font-sans);font-size:.6875rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-warning-text);margin-bottom:.25rem}.gap-warning-amount{font-family:var(--font-serif);font-size:1.5rem;font-weight:700;color:var(--color-warning-text);margin-bottom:.25rem}.gap-warning-box p{font-family:var(--font-sans);font-size:.8125rem;color:var(--color-warning-text);margin:0;opacity:.8}.liquid-types-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-top:.5rem}.liquid-type-chip{font-family:var(--font-sans);font-size:.8125rem;color:var(--color-text-secondary);padding:.5rem .75rem;background:var(--color-neutral-50);border-radius:var(--radius-md);border:1px solid var(--color-neutral-200)}.coverage-tiers-grid{display:grid;grid-template-columns:1fr 1fr;gap:.5rem}.coverage-tier{background:var(--color-neutral-50);border-radius:var(--radius-md);padding:.75rem;border:1px solid var(--color-neutral-200)}.coverage-tier strong{font-family:var(--font-sans);font-size:.8125rem;color:var(--color-text-primary);display:block;margin-bottom:.125rem}.coverage-tier p{font-family:var(--font-sans);font-size:.75rem;color:var(--color-text-muted);margin:0}.tips-section{margin-top:.5rem}.tip-item{font-family:var(--font-sans);font-size:.8125rem;color:var(--color-text-secondary);line-height:1.6;margin:.25rem 0}.modal-advice{font-family:var(--font-sans);font-size:.875rem;color:var(--color-text-secondary);line-height:1.6;margin:0}.profile-missing-banner{margin-top:1.5rem;background:#0ea5e90d;border:1px dashed rgba(14,165,233,.3);border-radius:var(--radius-xl);padding:1.5rem;display:flex;align-items:center;gap:1.25rem}.profile-missing-banner .banner-icon{color:#0ea5e9;flex-shrink:0}.profile-missing-banner h3{font-family:var(--font-sans);font-size:1rem;color:var(--color-text-primary);margin:0 0 .25rem}.profile-missing-banner p{font-family:var(--font-sans);font-size:.875rem;color:var(--color-text-secondary);margin:0}.essentials-error{background:#ef44440a;border:1px solid rgba(239,68,68,.15);border-radius:var(--radius-xl);padding:2rem;text-align:center;color:var(--color-expense);max-width:600px;margin:0 auto}.essentials-retry-btn{margin-top:1rem;padding:.625rem 1.25rem;font-family:var(--font-sans);font-size:.875rem;font-weight:600;color:var(--color-btn-primary-text);background:var(--color-neutral-900);border:none;border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease}.essentials-retry-btn:hover{background:var(--color-neutral-800)}.skeleton-score-bar{height:80px;background:linear-gradient(110deg,#f0f0f0 8%,#f8f8f8 18%,#f0f0f0 33%);background-size:200% 100%;animation:essentials-shimmer 1.5s linear infinite;border-radius:var(--radius-xl);margin-bottom:1.5rem}.skeleton-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}.skeleton-card{height:280px;background:linear-gradient(110deg,#f0f0f0 8%,#f8f8f8 18%,#f0f0f0 33%);background-size:200% 100%;animation:essentials-shimmer 1.5s linear infinite;border-radius:var(--radius-xl)}@keyframes essentials-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}@media (max-width: 768px){.metrics-grid,.skeleton-grid{grid-template-columns:1fr}.health-score-header{flex-wrap:wrap}.modal-overlay{padding:1rem}.modal-content{max-height:90vh}.coverage-tiers-grid,.liquid-types-grid{grid-template-columns:1fr}}.insurance-edit-form{display:flex;flex-direction:column;gap:1.25rem}.form-group{display:flex;flex-direction:column;gap:.5rem}.form-group label{font-family:var(--font-sans);font-size:.75rem;font-weight:600;color:var(--color-text-secondary);text-transform:uppercase;letter-spacing:.05em}.form-group input{padding:.75rem;border-radius:var(--radius-md);border:1px solid var(--color-neutral-200);font-family:var(--font-sans);font-size:1rem;color:var(--color-text-primary);transition:border-color .2s}.form-group input:focus{outline:none;border-color:var(--color-neutral-900)}.animate-spin{animation:spin 1s linear infinite}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.save-insurance-btn:not(:disabled):hover{filter:brightness(1.1);transform:translateY(-1px)}.save-insurance-btn:disabled{opacity:.7;cursor:not-allowed}.renewal-banner{border-radius:var(--radius-xl);padding:1.25rem 1.5rem;margin-bottom:1.5rem;border:1px solid transparent}.renewal-banner.lapsed{background:var(--color-error-bg);border-color:var(--color-error-border);color:var(--color-error-text)}.renewal-banner.due-soon{background:var(--color-warning-bg);border-color:var(--color-warning-border);color:var(--color-warning-text)}.renewal-banner-head{display:flex;align-items:center;gap:.5rem;margin-bottom:.75rem}.renewal-banner-head h3{margin:0;font-family:var(--font-sans);font-size:1rem;font-weight:600}.renewal-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.35rem}.renewal-row{width:100%;display:flex;align-items:center;gap:.625rem;padding:.45rem .625rem;border:none;border-radius:var(--radius-md);background:#ffffff80;font-family:var(--font-sans);font-size:.875rem;color:inherit;cursor:pointer;text-align:left}.renewal-row:hover{background:#ffffffd9}.renewal-dot{width:8px;height:8px;border-radius:50%;flex-shrink:0;background:var(--color-accent-orange)}.renewal-dot.lapsed{background:var(--color-accent-red)}.renewal-insurer{font-weight:600}.renewal-type{color:inherit;opacity:.75;font-size:.8125rem}.renewal-when{margin-left:auto;font-size:.8125rem;opacity:.85;white-space:nowrap}.policy-modal{max-width:620px}.policy-error{background:var(--color-error-bg);color:var(--color-error-text);border:1px solid var(--color-error-border);border-radius:var(--radius-md);padding:.625rem .875rem;font-family:var(--font-sans);font-size:.8125rem;margin-bottom:1rem}.policy-hint{font-family:var(--font-sans);font-size:.875rem;line-height:1.5;color:var(--color-text-secondary);margin:0 0 1rem}.policy-totals{display:flex;gap:2rem;padding:.875rem 1rem;background:var(--color-surface-muted);border-radius:var(--radius-lg);margin-bottom:1rem}.policy-totals>div{display:flex;flex-direction:column;gap:.15rem}.policy-total-label{font-family:var(--font-sans);font-size:.75rem;color:var(--color-text-secondary)}.policy-total-value{font-family:var(--font-sans);font-size:1.125rem;font-weight:600;color:var(--color-text-primary)}.policy-list{list-style:none;margin:0 0 1rem;padding:0;display:flex;flex-direction:column;gap:.5rem}.policy-row{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;padding:.75rem .875rem;border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg)}.policy-row-main{display:flex;flex-direction:column;gap:.15rem;min-width:0}.policy-insurer{font-family:var(--font-sans);font-size:.9375rem;font-weight:600;color:var(--color-text-primary)}.policy-meta{font-family:var(--font-sans);font-size:.8125rem;color:var(--color-text-secondary)}.policy-renewal{font-family:var(--font-sans);font-size:.75rem;font-weight:500;color:var(--color-text-muted)}.policy-renewal.due_soon{color:var(--color-warning-text)}.policy-renewal.lapsed{color:var(--color-error-text)}.policy-row-actions{display:flex;gap:.35rem;flex-shrink:0}.policy-btn{font-family:var(--font-sans);font-size:.8125rem;font-weight:500;color:var(--color-text-secondary);background:var(--color-surface-muted);border:1px solid var(--color-neutral-200);border-radius:var(--radius-md);padding:.35rem .625rem;display:inline-flex;align-items:center;gap:.3rem;cursor:pointer;transition:all .15s ease}.policy-btn:hover:not(:disabled){color:var(--color-text-primary);border-color:var(--color-border-strong)}.policy-btn:disabled{opacity:.5;cursor:not-allowed}.policy-btn.primary{background:var(--color-text-primary);border-color:var(--color-text-primary);color:var(--color-text-inverse)}.policy-btn.primary:hover:not(:disabled){color:var(--color-text-inverse);opacity:.9}.policy-btn.danger:hover:not(:disabled){color:var(--color-error-text);border-color:var(--color-error-border);background:var(--color-error-bg)}.policy-add-btn{width:100%;font-family:var(--font-sans);font-size:.875rem;font-weight:500;color:var(--color-text-secondary);background:none;border:1px dashed var(--color-border-strong);border-radius:var(--radius-lg);padding:.75rem;display:flex;align-items:center;justify-content:center;gap:.4rem;cursor:pointer}.policy-add-btn:hover{color:var(--color-text-primary);background:var(--color-surface-muted)}.policy-form{border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg);padding:1rem}.policy-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1rem}.policy-form-actions{display:flex;justify-content:flex-end;gap:.5rem;margin-top:1rem}@media (max-width: 640px){.policy-row{flex-direction:column}.policy-totals{gap:1.25rem}}.card-warning{display:flex;align-items:center;gap:.375rem;font-family:var(--font-sans);font-size:.75rem;font-weight:500;color:var(--color-error-text);margin:.5rem 0 0}.policy-insurer svg{vertical-align:-2px;margin-right:.375rem;opacity:.65}.policy-row.ef-unavailable{border-color:var(--color-error-border);background:var(--color-error-bg)}.ef-type-toggle{display:flex;gap:.5rem;margin-bottom:.875rem}.ef-type-toggle button{flex:1;display:inline-flex;align-items:center;justify-content:center;gap:.375rem;padding:.5rem .75rem;font-family:var(--font-sans);font-size:.8125rem;font-weight:500;color:var(--color-text-secondary);background:transparent;border:1px solid var(--color-neutral-200);border-radius:var(--radius-md);cursor:pointer}.ef-type-toggle button.active{color:var(--color-text-primary);border-color:var(--color-text-primary);font-weight:600}.ef-type-toggle button:disabled{opacity:.45;cursor:not-allowed}.form-hint{font-family:var(--font-sans);font-size:.6875rem;line-height:1.4;color:var(--color-text-muted);margin:.3rem 0 0}.ef-source-summary{list-style:none;margin:0 0 .75rem;padding:0;display:flex;flex-direction:column}.ef-source-summary li{display:flex;align-items:baseline;justify-content:space-between;gap:.75rem;padding:.5rem 0;border-bottom:1px solid var(--color-neutral-200)}.ef-source-summary li:last-child{border-bottom:none}.ef-source-name{font-family:var(--font-sans);font-size:.8125rem;color:var(--color-text-primary);min-width:0}.ef-source-name em{font-style:normal;color:var(--color-text-muted)}.ef-source-amount{font-family:var(--font-sans);font-size:.8125rem;font-weight:600;color:var(--color-text-primary);white-space:nowrap}.ef-source-summary li.unavailable .ef-source-name,.ef-source-summary li.unavailable .ef-source-amount{color:var(--color-text-muted);text-decoration:line-through}.ef-source-summary li.unavailable .ef-source-amount{text-decoration:none;color:var(--color-error-text)}.goals-page{width:100%}.goals-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem}.goals-title{font-family:var(--font-serif);font-size:2.5rem;color:var(--color-text-primary);margin:0 0 .5rem}.goals-subtitle{font-family:var(--font-sans);font-size:1rem;color:var(--color-text-secondary);margin:0}.goals-error{background:var(--color-error-bg);color:var(--color-error-text);border:1px solid var(--color-error-border);border-radius:var(--radius-md);padding:.75rem 1rem;font-family:var(--font-sans);font-size:.875rem;margin-bottom:1.5rem}.goals-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;background:var(--color-surface);border:1px solid var(--color-neutral-200);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);padding:1.25rem 1.5rem;margin-bottom:2rem}.goals-summary-item{display:flex;flex-direction:column;gap:.35rem}.goals-summary-label{font-family:var(--font-sans);font-size:.8125rem;color:var(--color-text-secondary)}.goals-summary-value{font-family:var(--font-sans);font-size:1.375rem;font-weight:600;color:var(--color-text-primary)}.goals-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(380px,1fr));gap:1.5rem;margin-bottom:3rem}.goal-card{background:var(--color-surface);padding:1.5rem;border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);border:1px solid var(--color-neutral-200);display:flex;flex-direction:column}.goal-card-header{display:flex;align-items:center;gap:.875rem;margin-bottom:1.25rem}.goal-card-icon{width:40px;height:40px;flex-shrink:0;background:var(--color-neutral-100);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:1.25rem}.goal-card-heading{min-width:0;flex:1}.goal-card-title{margin:0;font-family:var(--font-sans);font-size:1.125rem;font-weight:600;color:var(--color-text-primary)}.goal-card-subtitle{margin:0;font-family:var(--font-sans);font-size:.8125rem;color:var(--color-text-secondary)}.goal-status-pill{font-family:var(--font-sans);font-size:.75rem;font-weight:600;padding:.2rem .6rem;border-radius:var(--radius-full, 999px);white-space:nowrap;background:var(--color-neutral-100);color:var(--color-text-secondary)}.goal-status-pill.achieved,.goal-status-pill.on-track{background:var(--color-success-bg);color:var(--color-success-text)}.goal-status-pill.behind{background:var(--color-warning-bg);color:var(--color-warning-text)}.goal-status-pill.overdue{background:var(--color-error-bg);color:var(--color-error-text)}.goal-progress-group{margin-bottom:1rem}.goal-progress-label{display:flex;justify-content:space-between;font-family:var(--font-sans);font-size:.875rem;color:var(--color-text-secondary);margin-bottom:.5rem}.goal-progress-bar{height:6px;background:var(--color-neutral-100);border-radius:999px;overflow:hidden}.goal-progress-fill{height:100%;border-radius:999px;background:var(--color-neutral-300);transition:width .3s ease}.goal-progress-fill.achieved,.goal-progress-fill.on-track{background:var(--color-income)}.goal-progress-fill.behind{background:var(--color-accent-orange)}.goal-progress-fill.overdue{background:var(--color-accent-red)}.goal-progress-fill.time{background:var(--color-accent-blue)}.goal-progress-details{display:flex;justify-content:space-between;gap:.5rem;font-size:.8125rem;color:var(--color-text-secondary);margin-top:.35rem}.goal-action-box{background:var(--color-info-bg);border-radius:var(--radius-md);padding:.75rem 1rem;font-family:var(--font-sans);font-size:.8125rem;line-height:1.4;color:var(--color-text-primary);display:flex;align-items:flex-start;gap:.5rem;margin-top:auto}.goal-action-box svg{flex-shrink:0;margin-top:1px}.goal-action-box.success{background:var(--color-income-bg)}.goal-action-box.warning{background:var(--color-warning-bg)}.goal-card-actions{display:flex;gap:.5rem;margin-top:1rem;flex-wrap:wrap}.goal-icon-btn{font-family:var(--font-sans);font-size:.8125rem;font-weight:500;color:var(--color-text-secondary);background:var(--color-surface-muted);border:1px solid var(--color-neutral-200);border-radius:var(--radius-md);padding:.35rem .75rem;display:inline-flex;align-items:center;gap:.35rem;cursor:pointer;transition:all .15s ease}.goal-icon-btn:hover:not(:disabled){color:var(--color-text-primary);border-color:var(--color-border-strong)}.goal-icon-btn:disabled{opacity:.5;cursor:not-allowed}.goal-icon-btn.primary{color:var(--color-primary-700);border-color:var(--color-primary-200);background:var(--color-primary-50)}.goal-icon-btn.danger:hover:not(:disabled){color:var(--color-error-text);border-color:var(--color-error-border);background:var(--color-error-bg)}.goal-count-chip{background:var(--color-primary-600);color:#fff;border-radius:999px;font-size:.6875rem;padding:0 .35rem;min-width:1.1rem;text-align:center}.goals-empty{font-family:var(--font-sans);color:var(--color-text-secondary)}.goals-empty-state{background:var(--color-surface);border:1px dashed var(--color-border-strong);border-radius:var(--radius-xl);padding:3rem 2rem;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.75rem;color:var(--color-text-secondary)}.goals-empty-state h3{margin:0;font-family:var(--font-sans);font-size:1.25rem;color:var(--color-text-primary)}.goals-empty-state p{margin:0;max-width:34rem;font-family:var(--font-sans);font-size:.9375rem;line-height:1.5}.goal-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--color-surface-overlay);display:flex;align-items:center;justify-content:center;padding:1.5rem;z-index:1000}.goal-modal{background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-xl);width:100%;max-width:760px;max-height:90vh;display:flex;flex-direction:column}.goal-modal.narrow{max-width:520px}.goal-modal-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding:1.25rem 1.5rem;border-bottom:1px solid var(--color-neutral-200)}.goal-modal-header h3{margin:0;font-family:var(--font-sans);font-size:1.125rem;font-weight:600;color:var(--color-text-primary)}.goal-modal-close{background:none;border:none;color:var(--color-text-secondary);cursor:pointer;padding:.25rem;display:flex}.goal-modal-close:hover{color:var(--color-text-primary)}.goal-modal-body{padding:1.5rem;overflow-y:auto}.goal-modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid var(--color-neutral-200)}.section-heading{margin:1.5rem 0 .75rem;font-family:var(--font-sans);font-size:.9375rem;font-weight:600;color:var(--color-text-primary)}.template-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}.template-chip{font-family:var(--font-sans);font-size:.8125rem;padding:.35rem .75rem;border-radius:999px;border:1px solid var(--color-neutral-200);background:var(--color-surface-muted);color:var(--color-text-secondary);cursor:pointer;display:inline-flex;align-items:center;gap:.35rem}.template-chip.active{border-color:var(--color-text-primary);background:var(--color-text-primary);color:var(--color-text-inverse)}.goal-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.25rem}.create-goal-header{display:flex;justify-content:space-between;align-items:center;gap:1rem}.hide-calc-btn{font-family:var(--font-sans);font-size:.8125rem;color:var(--color-text-primary);background:var(--color-neutral-50);border:1px solid var(--color-neutral-200);padding:.25rem .75rem;border-radius:999px;display:flex;align-items:center;gap:.25rem;cursor:pointer}.inflation-calc-box{background:var(--color-surface-muted);border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg);padding:1.25rem;margin-bottom:1.25rem}.inflation-calc-title{margin:0 0 1rem;font-family:var(--font-sans);font-size:.9375rem;font-weight:600;display:flex;align-items:center;gap:.5rem}.inflation-inputs{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem}.inflation-result{margin-top:1rem;padding-top:.875rem;border-top:1px dashed var(--color-neutral-300);display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;font-family:var(--font-sans);font-size:.875rem;color:var(--color-text-secondary)}.quick-chips{display:flex;gap:.5rem;margin-top:.5rem;flex-wrap:wrap}.calc-chip{font-family:var(--font-sans);font-size:.75rem;padding:.2rem .5rem;border-radius:var(--radius-md);background:var(--color-surface);border:1px solid var(--color-neutral-200);color:var(--color-text-secondary);cursor:pointer}.calc-chip.apply{background:var(--color-text-primary);border-color:var(--color-text-primary);color:var(--color-text-inverse);font-weight:500}.track-mode-options{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:.75rem}.track-mode-option{text-align:left;padding:.875rem 1rem;border-radius:var(--radius-lg);border:1px solid var(--color-neutral-200);background:var(--color-surface);cursor:pointer;display:flex;flex-direction:column;gap:.25rem}.track-mode-option.active{border-color:var(--color-primary-500);background:var(--color-primary-50)}.track-mode-label{font-family:var(--font-sans);font-size:.9375rem;font-weight:600;color:var(--color-text-primary)}.track-mode-hint{font-family:var(--font-sans);font-size:.75rem;line-height:1.4;color:var(--color-text-secondary)}.linked-assets{margin-top:1.25rem}.linked-assets-label{display:block;font-family:var(--font-sans);font-size:.875rem;font-weight:500;color:var(--color-text-primary);margin-bottom:.5rem}.linked-assets-list{display:flex;flex-direction:column;gap:.35rem;max-height:220px;overflow-y:auto;border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg);padding:.5rem}.linked-asset{display:flex;align-items:center;gap:.625rem;padding:.45rem .625rem;border-radius:var(--radius-md);font-family:var(--font-sans);font-size:.875rem;cursor:pointer}.linked-asset:hover{background:var(--color-surface-muted)}.linked-asset.checked{background:var(--color-primary-50)}.linked-asset-name{flex:1;color:var(--color-text-primary)}.linked-asset-value{color:var(--color-text-secondary);font-size:.8125rem}.contribution-form{display:grid;grid-template-columns:1fr 1fr;gap:1rem;align-items:end;margin-bottom:1.5rem}.contribution-form .form-group:last-of-type{grid-column:1 / -1}.contribution-form .primary-btn{grid-column:1 / -1;justify-content:center}.contribution-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.contribution-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.625rem .875rem;border:1px solid var(--color-neutral-200);border-radius:var(--radius-md)}.contribution-amount{display:block;font-family:var(--font-sans);font-size:.9375rem;font-weight:600;color:var(--color-text-primary)}.contribution-meta{display:block;font-family:var(--font-sans);font-size:.75rem;color:var(--color-text-secondary)}@media (max-width: 640px){.goals-grid{grid-template-columns:1fr}.goals-header{flex-direction:column}.contribution-form{grid-template-columns:1fr}}.goals-fire-link{display:flex;align-items:center;gap:1rem;width:100%;text-align:left;background:var(--color-surface);border:1px solid var(--color-neutral-200);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);padding:1.125rem 1.5rem;margin-bottom:2rem;cursor:pointer;color:var(--color-text-primary);transition:border-color .2s ease}.goals-fire-link:hover{border-color:var(--color-primary-600)}.goals-fire-link-icon{font-size:1.5rem;line-height:1.2}.goals-fire-link-text{display:flex;flex-direction:column;gap:.2rem;flex:1}.goals-fire-link-text strong{font-family:var(--font-sans);font-size:1rem;font-weight:600}.goals-fire-link-text span{font-family:var(--font-sans);font-size:.8125rem;color:var(--color-text-secondary)}.fire-page{width:100%}.fire-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem}.fire-title{display:flex;align-items:center;gap:.6rem;font-family:var(--font-serif);font-size:2.5rem;color:var(--color-text-primary);margin:0 0 .5rem}.fire-subtitle{font-family:var(--font-sans);font-size:1rem;color:var(--color-text-secondary);margin:0;max-width:46rem}.fire-error{background:var(--color-error-bg);color:var(--color-error-text);border:1px solid var(--color-error-border);border-radius:var(--radius-md);padding:.75rem 1rem;font-family:var(--font-sans);font-size:.875rem;margin-bottom:1.5rem}.fire-saved{font-family:var(--font-sans);font-size:.875rem;color:var(--color-success-text, var(--color-text-secondary));margin:-1rem 0 1.5rem}.fire-section-title{font-family:var(--font-serif);font-size:1.5rem;color:var(--color-text-primary);margin:0 0 .35rem}.fire-section-note{font-family:var(--font-sans);font-size:.875rem;color:var(--color-text-secondary);margin:0 0 1rem;max-width:46rem}.fire-explainer{background:var(--color-surface);border:1px solid var(--color-neutral-200);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);margin-bottom:1.5rem;overflow:hidden}.fire-explainer-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;gap:1rem;padding:1.125rem 1.5rem;background:transparent;border:none;cursor:pointer;color:var(--color-text-primary)}.fire-explainer-heading{font-family:var(--font-sans);font-size:1rem;font-weight:600}.fire-explainer-body{padding:0 1.5rem 1.5rem;max-width:52rem}.fire-explainer-body p{font-family:var(--font-sans);font-size:.9375rem;line-height:1.6;color:var(--color-text-secondary);margin:0 0 .875rem}.fire-explainer-body strong{color:var(--color-text-primary);font-weight:600}.fire-explainer-subhead{font-family:var(--font-sans);font-size:.875rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-text-secondary);margin:1.5rem 0 .625rem}.fire-explainer-list{list-style:none;margin:0 0 .875rem;padding:0;display:flex;flex-direction:column;gap:.75rem}.fire-explainer-list li{display:flex;align-items:flex-start;gap:.75rem;font-family:var(--font-sans);font-size:.9375rem;line-height:1.55;color:var(--color-text-secondary)}.fire-explainer-emoji{font-size:1.25rem;line-height:1.3}.fire-explainer-steps{margin:0 0 .875rem;padding-left:1.25rem;display:flex;flex-direction:column;gap:.4rem;font-family:var(--font-sans);font-size:.9375rem;line-height:1.55;color:var(--color-text-secondary)}.fire-explainer-caveat{border-left:2px solid var(--color-neutral-200);padding-left:.875rem;font-style:italic;margin-top:1.25rem!important}.fire-numbers{background:var(--color-surface);border:1px solid var(--color-neutral-200);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);padding:1.5rem;margin-bottom:2rem}.fire-numbers-head{margin-bottom:1.25rem}.fire-numbers-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;margin-bottom:1.25rem}.fire-field{display:flex;flex-direction:column;gap:.35rem}.fire-field-label{font-family:var(--font-sans);font-size:.875rem;font-weight:500;color:var(--color-text-primary)}.fire-field-hint{font-family:var(--font-sans);font-size:.75rem;color:var(--color-text-secondary)}.fire-input{width:100%;font-family:var(--font-sans);font-size:.9375rem;color:var(--color-text-primary);background:var(--color-surface);border:1px solid var(--color-neutral-200);border-radius:var(--radius-md);padding:.55rem .75rem}.fire-input:focus{outline:none;border-color:var(--color-primary-600)}.fire-targets-section{margin-bottom:3rem}.fire-variants{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:1rem}.fire-variant{display:flex;flex-direction:column;gap:.5rem;border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg);padding:1.125rem;background:var(--color-surface-muted)}.fire-variant.recommended{border-color:var(--color-primary-600);box-shadow:var(--shadow-sm);background:var(--color-surface)}.fire-variant-head{display:flex;align-items:flex-start;gap:.625rem}.fire-variant-icon{font-size:1.5rem;line-height:1.2}.fire-variant-label{font-family:var(--font-sans);font-size:1rem;font-weight:600;color:var(--color-text-primary);margin:0}.fire-variant-multiple{font-family:var(--font-sans);font-size:.75rem;color:var(--color-text-secondary)}.fire-badge{margin-left:auto;font-family:var(--font-sans);font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--color-primary-600);border:1px solid var(--color-primary-600);border-radius:999px;padding:.15rem .5rem;white-space:nowrap}.fire-variant-amount{font-family:var(--font-sans);font-size:1.5rem;font-weight:600;color:var(--color-text-primary);margin:.25rem 0 0}.fire-variant-meta,.fire-variant-summary,.fire-variant-rationale{font-family:var(--font-sans);font-size:.8125rem;color:var(--color-text-secondary);margin:0}.fire-variant-rationale{font-style:italic}.fire-variant-sip{display:flex;align-items:center;gap:.5rem;font-family:var(--font-sans);font-size:.8125rem;font-weight:500;color:var(--color-text-primary);background:var(--color-neutral-100);border-radius:var(--radius-md);padding:.5rem .75rem}.fire-variant-sip.affordable{background:var(--color-success-bg)}.fire-variant-btn{margin-top:auto;font-family:var(--font-sans);font-size:.8125rem;font-weight:600;color:#fff;background:var(--color-primary-600);border:none;border-radius:var(--radius-md);padding:.5rem .875rem;cursor:pointer;transition:opacity .2s ease}.fire-variant-btn:hover:not(:disabled){opacity:.9}.fire-variant-btn:disabled{opacity:.6;cursor:not-allowed}.fire-variant-btn.tracking{display:flex;align-items:center;justify-content:center;gap:.4rem;color:var(--color-text-primary);background:transparent;border:1px solid var(--color-neutral-200)}.fire-assumptions{font-family:var(--font-sans);font-size:.8125rem;color:var(--color-text-secondary);margin:1.25rem 0 0;max-width:46rem}@media (max-width: 640px){.fire-variants{grid-template-columns:1fr}.fire-header{flex-direction:column}}.sip-page{width:100%}.sip-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.5rem}.sip-title{font-family:var(--font-serif);font-size:2.5rem;color:var(--color-text-primary);margin:0 0 .5rem}.sip-subtitle{font-family:var(--font-sans);font-size:1rem;color:var(--color-text-secondary);margin:0}.sip-error{background:var(--color-error-bg);color:var(--color-error-text);border:1px solid var(--color-error-border);border-radius:var(--radius-md);padding:.75rem 1rem;font-family:var(--font-sans);font-size:.875rem;margin-bottom:1.5rem}.sip-hint{font-family:var(--font-sans);font-size:.875rem;color:var(--color-text-secondary)}.field-hint{display:block;margin-top:.35rem;font-family:var(--font-sans);font-size:.75rem;color:var(--color-text-muted);line-height:1.4}.sip-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:1rem;background:var(--color-surface);border:1px solid var(--color-neutral-200);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);padding:1.25rem 1.5rem;margin-bottom:1.25rem}.sip-summary-item{display:flex;flex-direction:column;gap:.35rem}.sip-summary-label{font-family:var(--font-sans);font-size:.8125rem;color:var(--color-text-secondary)}.sip-summary-value{font-family:var(--font-sans);font-size:1.375rem;font-weight:600;color:var(--color-text-primary);display:flex;align-items:center;gap:.4rem}.sip-summary-value.over{color:var(--color-accent-red)}.budget-edit-btn{background:none;border:none;color:var(--color-text-muted);cursor:pointer;padding:.15rem;display:flex}.budget-edit-btn:hover{color:var(--color-text-primary)}.budget-edit{display:flex;gap:.35rem;align-items:center}.budget-edit input{width:8rem}.sip-allocation{margin-bottom:1.5rem}.sip-allocation-bar{display:flex;height:10px;border-radius:999px;overflow:hidden;background:var(--color-neutral-100)}.sip-allocation-slice{height:100%;transition:width .3s ease}.sip-allocation-legend{display:flex;flex-wrap:wrap;gap:.75rem 1.25rem;margin-top:.75rem}.sip-legend-item{display:inline-flex;align-items:center;gap:.4rem;font-family:var(--font-sans);font-size:.8125rem;color:var(--color-text-secondary)}.sip-legend-item strong{color:var(--color-text-primary);font-weight:600}.swatch{width:10px;height:10px;border-radius:3px;display:inline-block;flex-shrink:0}.sip-projections{background:var(--color-surface);border:1px solid var(--color-neutral-200);border-radius:var(--radius-xl);padding:1.25rem 1.5rem;margin-bottom:2rem}.sip-section-title{margin:0;font-family:var(--font-sans);font-size:1rem;font-weight:600;color:var(--color-text-primary);display:flex;align-items:center;gap:.4rem}.sip-section-note{margin:.25rem 0 1rem;font-family:var(--font-sans);font-size:.8125rem;color:var(--color-text-secondary)}.sip-projection-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:1rem}.sip-projection-item{display:flex;flex-direction:column;gap:.2rem;padding:.75rem .875rem;background:var(--color-surface-muted);border-radius:var(--radius-lg)}.sip-projection-years{font-family:var(--font-sans);font-size:.75rem;color:var(--color-text-secondary)}.sip-projection-value{font-family:var(--font-sans);font-size:1.125rem;font-weight:600;color:var(--color-text-primary)}.sip-projection-meta{font-family:var(--font-sans);font-size:.75rem;color:var(--color-text-muted)}.sip-groups{display:flex;flex-direction:column;gap:1.5rem;margin-bottom:2.5rem}.sip-group-head{display:flex;align-items:center;gap:.5rem;margin:0 0 .75rem;font-family:var(--font-sans);font-size:.9375rem;font-weight:600;color:var(--color-text-primary)}.sip-group-icon{font-size:1rem}.sip-group-total{margin-left:auto;font-size:.875rem;font-weight:500;color:var(--color-text-secondary)}.sip-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.sip-row{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:.875rem 1rem;background:var(--color-surface);border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg)}.sip-row-main{display:flex;flex-direction:column;gap:.15rem;min-width:0}.sip-row-name{font-family:var(--font-sans);font-size:.9375rem;font-weight:600;color:var(--color-text-primary)}.sip-row-meta{font-family:var(--font-sans);font-size:.8125rem;color:var(--color-text-secondary)}.sip-row-actions{display:flex;gap:.35rem;flex-shrink:0}.sip-btn{font-family:var(--font-sans);font-size:.8125rem;font-weight:500;color:var(--color-text-secondary);background:var(--color-surface-muted);border:1px solid var(--color-neutral-200);border-radius:var(--radius-md);padding:.35rem .625rem;display:inline-flex;align-items:center;gap:.3rem;cursor:pointer;transition:all .15s ease}.sip-btn:hover:not(:disabled){color:var(--color-text-primary);border-color:var(--color-border-strong)}.sip-btn.primary{background:var(--color-text-primary);border-color:var(--color-text-primary);color:var(--color-text-inverse)}.sip-btn.danger:hover:not(:disabled){color:var(--color-error-text);border-color:var(--color-error-border);background:var(--color-error-bg)}.sip-empty-state{background:var(--color-surface);border:1px dashed var(--color-border-strong);border-radius:var(--radius-xl);padding:3rem 2rem;text-align:center;display:flex;flex-direction:column;align-items:center;gap:.75rem;color:var(--color-text-secondary);margin-bottom:2.5rem}.sip-empty-state h3{margin:0;font-family:var(--font-sans);font-size:1.25rem;color:var(--color-text-primary)}.sip-empty-state p{margin:0;max-width:34rem;font-family:var(--font-sans);font-size:.9375rem;line-height:1.5}.sip-calculator{background:var(--color-surface);border:1px solid var(--color-neutral-200);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);padding:1.5rem;margin-bottom:2.5rem}.sip-section-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;flex-wrap:wrap;margin-bottom:1.25rem}.sip-section-head h2{margin:0;font-family:var(--font-sans);font-size:1.125rem;font-weight:600;display:flex;align-items:center;gap:.5rem}.calc-mode-tabs,.sip-mode-tabs{display:inline-flex;gap:.25rem;padding:.25rem;background:var(--color-surface-muted);border-radius:var(--radius-full, 999px)}.calc-mode-tab,.sip-mode-tab{font-family:var(--font-sans);font-size:.8125rem;font-weight:500;border:none;background:none;color:var(--color-text-secondary);padding:.35rem .875rem;border-radius:999px;cursor:pointer}.calc-mode-tab.active,.sip-mode-tab.active{background:var(--color-surface);color:var(--color-text-primary);box-shadow:var(--shadow-sm)}.calc-inputs{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:1.25rem;margin-bottom:1.5rem}.quick-chips{display:flex;gap:.4rem;margin-top:.5rem;flex-wrap:wrap}.calc-chip{font-family:var(--font-sans);font-size:.75rem;padding:.2rem .5rem;border-radius:var(--radius-md);background:var(--color-surface-muted);border:1px solid var(--color-neutral-200);color:var(--color-text-secondary);cursor:pointer}.calc-chip:hover{color:var(--color-text-primary);border-color:var(--color-border-strong)}.calc-results{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:1rem;padding:1.25rem;background:var(--color-surface-muted);border-radius:var(--radius-lg);margin-bottom:1rem}.calc-result-item{display:flex;flex-direction:column;gap:.25rem}.calc-result-label{font-family:var(--font-sans);font-size:.75rem;color:var(--color-text-secondary)}.calc-result-value{font-family:var(--font-sans);font-size:1.25rem;font-weight:600;color:var(--color-text-primary)}.calc-result-value small{font-size:.75rem;font-weight:500;color:var(--color-income);margin-left:.25rem}.calc-result-item.primary .calc-result-value{font-size:1.625rem}.calc-result-item.gain .calc-result-value{color:var(--color-income)}.calc-split{display:flex;gap:2rem;flex-wrap:wrap;padding:.875rem 1.25rem;border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg);margin-bottom:1rem}.calc-split>div{display:flex;flex-direction:column;gap:.15rem}.calc-split-label{font-family:var(--font-sans);font-size:.75rem;color:var(--color-text-secondary)}.calc-split-value{font-family:var(--font-sans);font-size:1rem;font-weight:600;color:var(--color-text-primary)}.calc-note{font-family:var(--font-sans);font-size:.875rem;color:var(--color-text-secondary);margin:0 0 1rem}.calc-chart{display:flex;align-items:flex-end;gap:.35rem;height:180px;overflow-x:auto;padding-top:.5rem}.calc-bar-group{flex:1 0 18px;display:flex;flex-direction:column;align-items:center;height:100%;gap:.35rem}.calc-bar-stack{position:relative;width:100%;flex:1;display:flex;align-items:flex-end}.calc-bar{position:absolute;bottom:0;left:0;right:0;border-radius:4px 4px 0 0;transition:height .3s ease}.calc-bar.gains{background:var(--color-primary-500)}.calc-bar.invested{background:var(--color-primary-200)}.calc-bar-label{font-family:var(--font-sans);font-size:.6875rem;color:var(--color-text-muted)}.calc-legend{display:flex;gap:1.25rem;margin-top:.75rem;font-family:var(--font-sans);font-size:.8125rem;color:var(--color-text-secondary)}.calc-legend span{display:inline-flex;align-items:center;gap:.4rem}.calc-legend .swatch.invested{background:var(--color-primary-200)}.calc-legend .swatch.gains{background:var(--color-primary-500)}.sip-modal{max-width:680px}.sip-field-label{display:block;font-family:var(--font-sans);font-size:.875rem;font-weight:500;color:var(--color-text-primary);margin-bottom:.5rem}.sip-mode-tabs{margin-bottom:1rem}.sip-category-chips{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.5rem}.sip-category-chip{font-family:var(--font-sans);font-size:.8125rem;padding:.35rem .75rem;border-radius:999px;border:1px solid var(--color-neutral-200);background:var(--color-surface-muted);color:var(--color-text-secondary);cursor:pointer;display:inline-flex;align-items:center;gap:.35rem}.sip-category-chip.active{border-color:var(--color-text-primary);background:var(--color-text-primary);color:var(--color-text-inverse)}.sip-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.25rem;margin-bottom:1rem}.sip-modal-footer{display:flex;justify-content:flex-end;gap:.75rem;padding:1rem 1.5rem;border-top:1px solid var(--color-neutral-200)}@media (max-width: 640px){.sip-header{flex-direction:column}.sip-row{flex-direction:column;align-items:flex-start}}.sip-header-actions{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;justify-content:flex-end}.sip-export{display:flex;align-items:center;gap:.4rem;flex-wrap:wrap}.sip-export-hint{display:inline-flex;align-items:center;gap:.25rem;font-family:var(--font-sans);font-size:.6875rem;color:var(--color-text-muted)}.sip-export-error{font-family:var(--font-sans);font-size:.75rem;color:var(--color-error-text)}@media (max-width: 640px){.sip-header-actions{width:100%;justify-content:flex-start}.sip-export-hint{display:none}}.income-page{width:100%}.income-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:2rem}.income-title{font-family:var(--font-serif);font-size:2.5rem;color:var(--color-text-primary);margin:0 0 .5rem}.income-subtitle{font-family:var(--font-sans);font-size:1.125rem;color:var(--color-text-secondary);margin:0}.add-income-btn{padding:.875rem 1.5rem;font-family:var(--font-sans);font-size:1rem;font-weight:600;color:var(--color-btn-primary-text);background:var(--color-neutral-900);border:none;border-radius:var(--radius-lg);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:.5rem}.add-income-btn:hover{background:var(--color-neutral-800);transform:translateY(-1px);box-shadow:var(--shadow-md)}.income-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:1.5rem;margin-bottom:2rem}.income-stat-card{background:var(--color-surface);padding:1.5rem;border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);transition:all .2s ease}.income-stat-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.income-stat-label{font-family:var(--font-sans);font-size:.875rem;font-weight:500;color:var(--color-text-secondary);margin:0 0 .5rem}.income-stat-value{font-family:var(--font-serif);font-size:2rem;color:var(--color-text-primary);margin:0}.income-stat-value--monthly{color:var(--color-income)}.income-controls{display:flex;flex-direction:column;gap:1rem;margin-bottom:1.5rem}.controls-row{display:flex;width:100%;gap:1rem;flex-wrap:wrap;align-items:flex-start;justify-content:space-between}.search-bar{flex:1;min-width:250px;position:relative;display:flex;align-items:center;background:var(--color-surface);border:1.5px solid var(--color-neutral-200);border-radius:var(--radius-lg);padding:0 1rem;transition:all .2s ease}.search-bar:focus-within{border-color:var(--color-neutral-900);box-shadow:0 0 0 3px var(--color-focus-ring)}.search-bar svg{color:var(--color-text-secondary);flex-shrink:0}.search-bar input{flex:1;border:none;outline:none;padding:.875rem .75rem;font-family:var(--font-sans);font-size:1rem;color:var(--color-text-primary);background:transparent}.search-bar input::placeholder{color:var(--color-text-secondary)}.period-switcher{display:flex;align-items:center;gap:.75rem;background:var(--color-surface);border:1.5px solid var(--color-neutral-200);border-radius:var(--radius-xl);padding:.5rem;flex-wrap:wrap}.period-display{display:flex;flex-direction:column;gap:.35rem;padding:0 .5rem;align-items:center}.period-current{display:flex;flex-direction:column;align-items:center;text-align:center}.period-label{font-size:.7rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-secondary)}.period-title{font-family:var(--font-serif);font-size:1.05rem;color:var(--color-text-primary)}.period-dropdowns{display:flex;gap:.5rem}.period-dropdowns select{border:1px solid var(--color-neutral-200);border-radius:var(--radius-md);padding:.25rem .5rem;font-size:.85rem;background:var(--color-neutral-50)}.period-dropdowns select:focus{outline:none}.period-btn,.period-reset,.period-paddle{padding:.65rem 1rem;border-radius:var(--radius-lg);border:1px solid var(--color-neutral-200);background:var(--color-neutral-50);font-family:var(--font-sans);font-weight:600;font-size:.875rem;color:var(--color-text-primary);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:.5rem}.period-btn:hover,.period-reset:hover:not(:disabled),.period-paddle:hover{background:var(--color-neutral-100);border-color:var(--color-neutral-300)}.period-reset:disabled{opacity:.5;cursor:not-allowed}.recent-months{display:flex;flex-direction:column;gap:.5rem;min-width:220px}.recent-months p{margin:0;font-size:.875rem;font-weight:600;color:var(--color-text-secondary)}.recent-months-list{display:flex;gap:.5rem;flex-wrap:wrap}.month-chip{padding:.5rem .875rem;border-radius:999px;border:1px solid var(--color-neutral-200);background:var(--color-surface);font-family:var(--font-sans);font-size:.875rem;color:var(--color-text-primary);cursor:pointer;transition:all .2s ease}.month-chip:hover{border-color:var(--color-neutral-400)}.month-chip.active{background:var(--color-neutral-900);color:var(--color-btn-primary-text);border-color:var(--color-neutral-900)}.filter-toggle-btn{padding:.875rem 1.5rem;font-family:var(--font-sans);font-size:1rem;font-weight:500;color:var(--color-text-primary);background:var(--color-surface);border:1.5px solid var(--color-neutral-200);border-radius:var(--radius-lg);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;gap:.5rem}.filter-toggle-btn:hover,.filter-toggle-btn.active{background:var(--color-neutral-900);color:var(--color-btn-primary-text);border-color:var(--color-neutral-900)}.filters-panel{background:var(--color-surface);padding:1.75rem;border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);margin-bottom:1.5rem;display:flex;flex-direction:column;gap:1.5rem}.filters-header{display:flex;justify-content:space-between;gap:1rem;align-items:flex-start}.filters-header p{margin:0;font-size:1.125rem;font-family:var(--font-serif);color:var(--color-text-primary)}.filters-header span{display:block;margin-top:.125rem;font-size:.9rem;color:var(--color-text-secondary)}.filter-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:1.25rem}.filter-card{border:1px solid var(--color-neutral-200);border-radius:var(--radius-lg);padding:1rem;display:flex;flex-direction:column;gap:.75rem;background:var(--color-neutral-50)}.filter-card-header p{margin:0;font-weight:600;font-size:.95rem;color:var(--color-text-primary)}.filter-card-header span{font-size:.85rem;color:var(--color-text-secondary)}.filter-chip-row{display:flex;flex-wrap:wrap;gap:.5rem}.filter-chip{padding:.45rem .9rem;border-radius:999px;border:1px solid var(--color-neutral-200);background:var(--color-surface);font-size:.85rem;font-weight:500;cursor:pointer;color:var(--color-text-primary);transition:all .2s ease}.filter-chip:hover{border-color:var(--color-neutral-400);background:var(--color-neutral-50)}.filter-chip.active{border-color:var(--color-neutral-900);background:var(--color-neutral-900);color:var(--color-btn-primary-text);box-shadow:0 5px 12px #0f172a26}.clear-filters-btn{padding:.75rem 1.25rem;font-family:var(--font-sans);font-size:.9375rem;font-weight:500;color:var(--color-text-secondary);background:var(--color-neutral-50);border:1.5px solid var(--color-neutral-200);border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;white-space:nowrap}.clear-filters-btn:hover{background:var(--color-neutral-100);color:var(--color-text-primary)}.clear-filters-btn:disabled{opacity:.5;cursor:not-allowed}.income-table-container{background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);overflow:hidden}.income-table{width:100%;border-collapse:collapse}.income-table thead{background:var(--color-neutral-50)}.income-table th{padding:1rem 1.5rem;font-family:var(--font-sans);font-size:.875rem;font-weight:600;color:var(--color-text-primary);text-align:left;border-bottom:1px solid var(--color-neutral-200)}.income-table tbody tr{border-bottom:1px solid var(--color-neutral-100);transition:background .2s ease}.income-table tbody tr:hover{background:var(--color-neutral-50)}.income-table tbody tr:last-child{border-bottom:none}.income-table td{padding:1.25rem 1.5rem;font-family:var(--font-sans);font-size:.9375rem;color:var(--color-text-primary)}.date-cell{font-weight:500;color:var(--color-text-primary);display:flex;flex-direction:column;align-items:flex-start;gap:.35rem}.date-text{flex:1}.date-actions{display:flex;gap:.5rem;opacity:0;visibility:hidden;transition:opacity .2s ease,visibility .2s ease;align-self:flex-end}.income-table tbody tr:hover .date-actions,.date-cell:focus-within .date-actions{opacity:1;visibility:visible}.category-cell{display:flex;align-items:center;gap:.75rem}.category-icon{width:32px;height:32px;border-radius:var(--radius-md);background:var(--color-neutral-100);display:flex;align-items:center;justify-content:center;font-size:1rem}.description-cell{max-width:300px}.description-text{font-weight:500;color:var(--color-text-primary);margin-bottom:.25rem}.notes-text{font-size:.8125rem;color:var(--color-text-secondary);font-style:italic}.owner-tag{display:inline-flex;align-items:center;margin-top:4px;padding:2px 8px;font-size:.72rem;font-weight:600;color:var(--color-primary-700, #1d4ed8);background:var(--color-primary-50, #e9f0ff);border:1px solid var(--color-primary-100, #cddcff);border-radius:20px;letter-spacing:.01em}.amount-cell{display:flex;flex-direction:column;align-items:flex-end;gap:.2rem}.income-amount-value{font-weight:700;font-size:1rem;color:var(--color-income)}.income-amount-currency{font-size:.75rem;color:var(--color-text-secondary);font-weight:500;letter-spacing:.05em;text-transform:uppercase}.action-btn{padding:.5rem;background:transparent;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center}.edit-btn{color:var(--color-info)}.edit-btn:hover{background:var(--color-info-bg)}.delete-btn{color:var(--color-expense)}.delete-btn:hover{background:var(--color-expense-bg)}.empty-state{text-align:center;padding:3rem 1.5rem!important;color:var(--color-text-secondary);font-style:italic}@media (max-width: 768px){.income-header{flex-direction:column;align-items:flex-start;gap:1rem}.add-income-btn{width:100%;justify-content:center}.income-title{font-size:2rem}.income-subtitle{font-size:1rem}.income-stats{grid-template-columns:1fr;gap:1rem}.income-controls{flex-direction:column}.period-switcher{flex-wrap:wrap;gap:.5rem;justify-content:center}.recent-months{width:100%;min-width:unset}.recent-months-list{justify-content:center}.filter-toggle-btn{width:100%;justify-content:center}.filters-panel{padding:1.25rem 1rem}.filter-grid{grid-template-columns:1fr}.income-table-container{overflow:visible;background:transparent;box-shadow:none;border-radius:0}.income-table{display:block;width:100%}.income-table thead{display:none}.income-table tbody{display:flex;flex-direction:column;gap:.75rem}.income-table tbody tr{display:grid;grid-template-columns:1fr auto;grid-template-rows:auto auto;column-gap:.75rem;row-gap:.25rem;background:var(--color-surface);border:1px solid var(--color-neutral-200);border-radius:var(--radius-xl);padding:1rem;box-shadow:var(--shadow-sm);border-bottom:1px solid var(--color-neutral-200)}.income-table tbody tr:hover{background:var(--color-neutral-50)}.income-table td{padding:0;font-size:.9375rem}.income-table td.date-cell{grid-column:1 / -1;display:flex;align-items:center;justify-content:space-between;padding-bottom:.5rem;border-bottom:1px solid var(--color-neutral-100);margin-bottom:.25rem}.date-actions{opacity:1;visibility:visible}.income-table td:nth-child(2){grid-column:1;align-self:center}.income-table td.amount-cell{grid-column:2;grid-row:2;align-self:start;text-align:right;display:flex;flex-direction:column;align-items:flex-end}.income-table td.description-cell{grid-column:1 / -1;max-width:100%;margin-top:.375rem}.income-table td.empty-state{grid-column:1 / -1}}@media (max-width: 480px){.income-title{font-size:1.625rem}.income-subtitle{font-size:.875rem}.income-stat-value{font-size:1.625rem}.period-paddle,.period-reset{padding:.5rem .75rem;font-size:.8125rem}.month-chip{font-size:.8125rem;padding:.4rem .75rem}.income-table tbody tr{padding:.875rem .75rem}}.add-income-page{width:100%;min-height:100vh;background:var(--color-app-background)}.add-income-header{background:var(--color-surface);padding:1rem 2rem;border-bottom:1px solid var(--color-neutral-200)}.add-income-container{max-width:900px;margin:0 auto;padding:2rem}.add-income-title-section{margin-bottom:2rem}.add-income-title{font-family:var(--font-serif);font-size:2.5rem;color:var(--color-text-primary);margin:0 0 .5rem}.add-income-subtitle{font-family:var(--font-sans);font-size:1rem;color:var(--color-text-secondary);margin:0}.income-form-section{background:var(--color-surface);padding:2rem;border-radius:var(--radius-xl);box-shadow:var(--shadow-sm)}.income-form-section h2{font-family:var(--font-serif);font-size:1.5rem;color:var(--color-text-primary);margin:0 0 1.5rem}.form-group input:disabled,.form-group select:disabled,.form-group textarea:disabled{background:var(--color-neutral-50);cursor:not-allowed;opacity:.6}.form-group textarea{resize:vertical;min-height:100px;font-family:var(--font-sans)}.form-row .form-group{margin-bottom:0}.form-actions{display:flex;gap:1rem;margin-top:2rem;padding-top:1.5rem;border-top:1px solid var(--color-neutral-200)}.cancel-btn:disabled,.submit-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}@media (max-width: 768px){.add-income-header{padding:.75rem 1rem}.add-income-container{padding:1rem}.add-income-title{font-size:2rem}.income-form-section{padding:1.5rem 1rem}.form-group input,.form-group select,.form-group textarea{width:100%;box-sizing:border-box;font-size:.9375rem}.form-row{grid-template-columns:1fr;gap:0}.form-row .form-group{margin-bottom:1.5rem}.form-actions{flex-direction:column}.cancel-btn,.submit-btn{width:100%}}@media (max-width: 480px){.add-income-title{font-size:1.625rem}.add-income-subtitle{font-size:.875rem}.income-form-section{padding:1rem .75rem;border-radius:var(--radius-lg)}.form-group input,.form-group select,.form-group textarea{padding:.625rem .75rem;font-size:1rem}.cancel-btn,.submit-btn{padding:.75rem 1rem;font-size:.9375rem}}.add-expense-page{width:100%;min-height:100vh;background:var(--color-app-background)}.add-expense-header{background:var(--color-surface);padding:1rem 2rem;border-bottom:1px solid var(--color-neutral-200)}.back-button{display:flex;align-items:center;gap:.5rem;padding:.5rem 1rem;font-family:var(--font-sans);font-size:.9375rem;font-weight:500;color:var(--color-text-primary);background:none;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease}.back-button:hover{background:var(--color-neutral-50)}.add-expense-container{max-width:900px;margin:0 auto;padding:2rem}.add-expense-title-section{margin-bottom:2rem}.add-expense-title{font-family:var(--font-serif);font-size:2.5rem;color:var(--color-text-primary);margin:0 0 .5rem}.add-expense-subtitle{font-family:var(--font-sans);font-size:1rem;color:var(--color-text-secondary);margin:0}.expense-form-section{background:var(--color-surface);padding:2rem;border-radius:var(--radius-xl);box-shadow:var(--shadow-sm)}.entry-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:1.5rem}.entry-header h2{font-family:var(--font-serif);font-size:1.5rem;color:var(--color-text-primary);margin:0}.remove-entry-btn{padding:.5rem;background:transparent;border:none;color:var(--color-expense);cursor:pointer;border-radius:var(--radius-md);display:flex;align-items:center;gap:.5rem;font-family:var(--font-sans);font-size:.9375rem;font-weight:500;transition:all .2s ease}.remove-entry-btn:hover:not(:disabled){background:var(--color-expense-bg)}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1.5rem}.form-group{display:flex;flex-direction:column;gap:.5rem;margin-bottom:1.5rem}.form-group label{font-family:var(--font-sans);font-size:.875rem;font-weight:600;color:var(--color-text-primary)}.form-group input,.form-group select,.form-group textarea{padding:.75rem;font-family:var(--font-sans);font-size:1rem;color:var(--color-text-primary);background:var(--color-surface);border:1.5px solid var(--color-neutral-200);border-radius:var(--radius-md);transition:all .2s ease}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{outline:none;border-color:var(--color-neutral-900);box-shadow:0 0 0 3px var(--color-focus-ring)}.form-group textarea{resize:vertical;min-height:100px}.form-hint{font-family:var(--font-sans);font-size:.8125rem;color:var(--color-text-secondary);margin-top:.25rem}.add-category-inline-btn{padding:.75rem;background:var(--color-neutral-100);border:1px solid var(--color-neutral-300);border-radius:var(--radius-md);cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .2s ease}.add-category-inline-btn:hover:not(:disabled){background:var(--color-neutral-200)}.new-category-panel{padding:1rem;margin-top:.75rem;background:var(--color-neutral-50);border:1px solid var(--color-neutral-200);border-radius:var(--radius-md)}.icon-picker{display:flex;flex-wrap:wrap;gap:.5rem}.icon-option{padding:.25rem .5rem;font-size:1.25rem;border:1px solid var(--color-neutral-300);border-radius:var(--radius-md);background:var(--color-surface);cursor:pointer;transition:all .2s ease}.icon-option.selected{border-color:var(--color-neutral-900);background:var(--color-neutral-100)}.btn-create-category,.btn-cancel{padding:.5rem 1rem;font-family:var(--font-sans);font-size:.875rem;font-weight:500;border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease}.btn-create-category{background:var(--color-neutral-900);color:var(--color-btn-primary-text);border:none}.btn-create-category:disabled{opacity:.5;cursor:not-allowed}.btn-cancel{background:var(--color-surface);color:var(--color-neutral-700);border:1px solid var(--color-neutral-300)}.add-entry-btn{width:100%;padding:.875rem;margin-bottom:1.5rem;background:var(--color-surface);border:1.5px dashed #d1d5db;border-radius:var(--radius-lg);color:var(--color-text-primary);font-family:var(--font-sans);font-size:1rem;font-weight:500;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:.5rem;transition:all .2s ease}.add-entry-btn:hover:not(:disabled){border-color:var(--color-neutral-900)}.form-actions{display:flex;gap:1rem;padding-top:1.5rem;border-top:1px solid var(--color-neutral-200)}.cancel-btn,.submit-btn{flex:1;padding:.875rem 1.5rem;font-family:var(--font-sans);font-size:1rem;font-weight:600;border:none;border-radius:var(--radius-lg);cursor:pointer;transition:all .2s ease}.cancel-btn{color:var(--color-text-primary);background:var(--color-neutral-100)}.cancel-btn:hover:not(:disabled){background:var(--color-neutral-200)}.submit-btn{color:var(--color-btn-primary-text);background:var(--color-neutral-900)}.submit-btn:hover:not(:disabled){background:var(--color-neutral-800);transform:translateY(-1px);box-shadow:var(--shadow-md)}.cancel-btn:disabled,.submit-btn:disabled,.add-entry-btn:disabled,.remove-entry-btn:disabled{opacity:.5;cursor:not-allowed;transform:none}@media (max-width: 768px){.add-expense-container{padding:1rem}.add-expense-title{font-size:2rem}.expense-form-section{padding:1.5rem}.form-row{grid-template-columns:1fr}.form-actions{flex-direction:column}.cancel-btn,.submit-btn{width:100%}}.tag-picker{position:relative;width:100%}.tag-picker-control{display:flex;flex-wrap:wrap;align-items:center;gap:.375rem;min-height:42px;padding:.35rem .5rem;background:var(--color-surface);border:1px solid var(--color-border-input);border-radius:8px;cursor:text}.tag-picker-control:focus-within{border-color:var(--color-text-primary);box-shadow:0 0 0 3px var(--color-focus-ring)}.tag-picker-control.disabled{background:var(--color-surface-muted);cursor:not-allowed}.tag-picker-input{flex:1;min-width:120px;border:none!important;outline:none;background:transparent;padding:.25rem!important;font-size:.9rem;color:var(--color-text-primary);box-shadow:none!important}.tag-chip{display:inline-flex;align-items:center;gap:.25rem;padding:.15rem .5rem;font-size:.8rem;font-weight:500;color:var(--color-text-secondary);background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:999px;white-space:nowrap}.tag-chip-remove{display:inline-flex;align-items:center;padding:0;border:none;background:transparent;color:inherit;cursor:pointer;opacity:.6}.tag-chip-remove:hover{opacity:1}.tag-picker-dropdown{position:absolute;z-index:30;top:calc(100% + 4px);left:0;right:0;max-height:240px;overflow-y:auto;background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:8px;box-shadow:0 8px 24px #0f172a1f}.tag-picker-option{display:flex;align-items:center;justify-content:space-between;gap:.5rem;width:100%;padding:.5rem .75rem;border:none;background:transparent;font-size:.875rem;color:var(--color-text-primary);text-align:left;cursor:pointer}.tag-picker-option:hover{background:var(--color-surface-muted)}.tag-picker-count{font-size:.75rem;color:var(--color-text-muted)}.tag-picker-create{justify-content:flex-start;color:var(--color-text-secondary);border-top:1px solid var(--color-border)}.txn-page{width:100%;padding-bottom:2rem;--txn-accent: var(--color-link-action);--txn-accent-soft: rgba(37, 99, 235, .1)}[data-theme=dark] .txn-page{--txn-accent-soft: rgba(96, 165, 250, .16)}.txn-page-head{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.25rem}.txn-page-title{font-family:var(--font-serif);font-size:2.5rem;color:var(--color-text-primary);margin:0 0 .25rem}.txn-page-subtitle{font-family:var(--font-sans);font-size:1rem;color:var(--color-text-secondary);margin:0}.txn-add-btn{flex-shrink:0;display:flex;align-items:center;gap:.5rem;padding:.75rem 1.25rem;font-family:var(--font-sans);font-size:.9375rem;font-weight:600;color:var(--color-btn-primary-text);background:var(--color-neutral-900);border:none;border-radius:var(--radius-lg);cursor:pointer;transition:all .2s ease}.txn-add-btn:hover{background:var(--color-neutral-800);transform:translateY(-1px);box-shadow:var(--shadow-md)}.txn-lens-tabs{display:flex;gap:.375rem;padding:.25rem;margin-bottom:1.25rem;background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:var(--radius-full);width:fit-content;max-width:100%;overflow-x:auto;scrollbar-width:none}.txn-lens-tabs::-webkit-scrollbar{display:none}.txn-lens-tab{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem 1rem;white-space:nowrap;font-family:var(--font-sans);font-size:.875rem;font-weight:600;color:var(--color-text-secondary);background:transparent;border:none;border-radius:var(--radius-full);cursor:pointer;transition:all .2s ease}.txn-lens-tab:hover{color:var(--color-text-primary)}.txn-lens-tab.active{color:var(--color-btn-primary-text);background:var(--color-neutral-900)}.txn-error{padding:.75rem 1rem;margin-bottom:1rem;font-size:.875rem;color:var(--color-expense);background:var(--color-expense-bg);border-radius:var(--radius-lg)}.txn-hero{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1.5rem;padding:1.5rem;margin-bottom:1rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-2xl);box-shadow:var(--shadow-sm)}.txn-hero-main{min-width:0}.txn-hero-label{margin:0 0 .375rem;font-family:var(--font-sans);font-size:.6875rem;font-weight:700;letter-spacing:.08em;color:var(--color-text-muted)}.txn-hero-total{margin:0;font-family:var(--font-serif);font-size:2.75rem;line-height:1.1;letter-spacing:-.02em;color:var(--color-text-primary)}.txn-hero-caption{margin:.5rem 0 0;font-size:.875rem;color:var(--color-text-secondary)}.txn-hero-note{margin:.375rem 0 0;font-size:.875rem;font-weight:600}.txn-hero-note.positive{color:var(--color-income)}.txn-hero-note.negative{color:var(--color-expense)}.txn-hero-side{display:flex;flex-direction:column;align-items:flex-end;gap:.75rem}.txn-hero-actions{display:flex;gap:.5rem}.txn-icon-btn{position:relative;display:inline-flex;align-items:center;justify-content:center;width:2.5rem;height:2.5rem;color:var(--color-text-secondary);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:all .2s ease}.txn-icon-btn:hover{color:var(--color-text-primary);background:var(--color-surface-muted)}.txn-icon-btn.active{color:var(--color-btn-primary-text);background:var(--color-neutral-900);border-color:var(--color-neutral-900)}.txn-icon-badge{position:absolute;top:-.3125rem;right:-.3125rem;min-width:1.125rem;height:1.125rem;padding:0 .25rem;font-size:.6875rem;font-weight:700;line-height:1.125rem;color:#fff;background:var(--color-expense);border-radius:var(--radius-full)}.txn-hero-meta{display:flex;flex-wrap:wrap;gap:.5rem;justify-content:flex-end}.txn-meta-chip{display:flex;flex-direction:column;gap:.125rem;padding:.625rem .875rem;text-align:left;background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:all .2s ease}.txn-meta-chip.static{cursor:default}.txn-meta-chip:not(.static):hover{border-color:var(--color-border-strong);background:var(--color-surface)}.txn-meta-chip span{font-size:.6875rem;font-weight:600;letter-spacing:.03em;text-transform:uppercase;color:var(--color-text-muted)}.txn-meta-chip strong{font-size:1.0625rem;font-weight:700;color:var(--color-text-primary)}.txn-meta-chip strong.negative{color:var(--color-expense)}.txn-meta-chip small{font-size:.75rem;color:var(--color-text-secondary)}.txn-sticky-bar{position:sticky;top:0;z-index:20;padding:.5rem 0;margin-bottom:.25rem;background:var(--color-app-background);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.txn-month-strip{display:flex;gap:.5rem;overflow-x:auto;padding-bottom:.25rem;scrollbar-width:none}.txn-month-strip::-webkit-scrollbar{display:none}.txn-month-chip{flex-shrink:0;padding:.5rem 1rem;font-family:var(--font-sans);font-size:.8125rem;font-weight:500;white-space:nowrap;color:var(--color-text-secondary);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:all .18s ease}.txn-month-chip:hover{color:var(--color-text-primary);border-color:var(--color-border-strong)}.txn-month-chip.active{font-weight:700;color:var(--color-btn-primary-text);background:var(--color-neutral-900);border-color:var(--color-neutral-900)}.txn-search-bar{display:flex;align-items:center;gap:.5rem;margin-top:.5rem;padding:0 .75rem;height:2.75rem;background:var(--color-surface);border:1.5px solid var(--color-border-input);border-radius:var(--radius-lg)}.txn-search-bar:focus-within{border-color:var(--color-neutral-900)}.txn-search-icon{flex-shrink:0;color:var(--color-text-muted)}.txn-search-bar input{flex:1;min-width:0;height:100%;font-family:var(--font-sans);font-size:.9375rem;color:var(--color-text-primary);background:transparent;border:none;outline:none}.txn-search-bar input::-webkit-search-cancel-button{display:none}.txn-search-count{flex-shrink:0;padding:.125rem .5rem;font-size:.75rem;font-weight:700;color:var(--color-text-secondary);background:var(--color-surface-muted);border-radius:var(--radius-full)}.txn-search-clear{display:inline-flex;align-items:center;justify-content:center;width:1.375rem;height:1.375rem;color:var(--color-text-secondary);background:var(--color-surface-muted);border:none;border-radius:var(--radius-full);cursor:pointer}.txn-search-close{flex-shrink:0;padding:0 .25rem;font-family:var(--font-sans);font-size:.8125rem;font-weight:600;color:var(--txn-accent);background:none;border:none;cursor:pointer}.txn-filter-panel{display:flex;flex-direction:column;gap:1rem;padding:1.25rem;margin-bottom:1rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm)}.txn-filter-head{display:flex;justify-content:space-between;align-items:center;gap:1rem}.txn-filter-head p{margin:0;font-family:var(--font-sans);font-size:.9375rem;font-weight:700;color:var(--color-text-primary)}.txn-filter-head button{font-size:.8125rem;font-weight:600;color:var(--txn-accent);background:none;border:none;cursor:pointer}.txn-filter-head button:disabled{color:var(--color-text-muted);cursor:not-allowed}.txn-filter-group{display:flex;flex-direction:column;gap:.5rem}.txn-filter-label{font-size:.6875rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--color-text-muted)}.txn-pill-row{display:flex;flex-wrap:wrap;gap:.5rem}.txn-pill{padding:.4375rem .875rem;font-family:var(--font-sans);font-size:.8125rem;font-weight:500;color:var(--color-text-secondary);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-full);cursor:pointer;transition:all .18s ease}.txn-pill:hover{color:var(--color-text-primary);border-color:var(--color-border-strong)}.txn-pill.active{font-weight:600;color:var(--color-btn-primary-text);background:var(--color-neutral-900);border-color:var(--color-neutral-900)}.txn-category-strip{display:flex;gap:.5rem;overflow-x:auto;padding-bottom:.5rem;margin-bottom:.25rem;scrollbar-width:none}.txn-category-strip::-webkit-scrollbar{display:none}.txn-category-chip{flex-shrink:0;display:inline-flex;align-items:center;gap:.375rem;padding:.4375rem .75rem;font-family:var(--font-sans);white-space:nowrap;background:transparent;border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:all .16s ease}.txn-category-chip:hover{border-color:var(--color-border-strong)}.txn-category-chip.active{background:var(--txn-accent-soft);border-color:var(--txn-accent)}.txn-category-icon{font-size:.8125rem}.txn-category-name{font-size:.78125rem;font-weight:600;color:var(--color-text-primary)}.txn-category-chip.active .txn-category-name{color:var(--txn-accent)}.txn-category-total{font-size:.75rem;font-weight:700;color:var(--color-text-muted)}.txn-filter-summary{display:flex;align-items:center;gap:.5rem;padding:.25rem .25rem .5rem;color:var(--color-text-secondary)}.txn-filter-summary span{flex:1;font-size:.8125rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.txn-filter-summary button{font-size:.8125rem;font-weight:600;color:var(--txn-accent);background:none;border:none;cursor:pointer}.txn-list{display:flex;flex-direction:column;gap:.5rem}.txn-day-heading{display:flex;align-items:center;gap:.625rem;padding:.875rem .25rem .125rem}.txn-day-label{font-family:var(--font-sans);font-size:.8125rem;font-weight:700;color:var(--color-text-primary)}.txn-day-rule{flex:1;height:1px;background:var(--color-border)}.txn-day-total{font-size:.8125rem;font-weight:700;color:var(--color-text-muted)}.txn-row{display:flex;align-items:center;gap:.75rem;padding:.8125rem .875rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);cursor:pointer;transition:all .16s ease}.txn-row:hover{border-color:var(--color-border-strong);box-shadow:var(--shadow-sm)}.txn-row:focus-visible{outline:2px solid var(--txn-accent);outline-offset:2px}.txn-row-avatar{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:2.625rem;height:2.625rem;font-size:1.1875rem;color:var(--color-text-muted);background:var(--color-surface-muted);border-radius:var(--radius-lg)}.txn-row-body{flex:1;min-width:0}.txn-row-title{display:flex;align-items:center;gap:.375rem;font-family:var(--font-sans);font-size:.9375rem;font-weight:600;color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.txn-row-recurring{flex-shrink:0;color:var(--color-text-muted)}.txn-row-meta{display:flex;align-items:center;flex-wrap:wrap;gap:.125rem;margin-top:.1875rem;font-size:.78125rem;color:var(--color-text-secondary)}.txn-row-payment,.txn-row-owner{display:inline-flex;align-items:center;gap:.25rem}.txn-meta-dot{width:3px;height:3px;margin:0 .375rem;background:var(--color-text-muted);border-radius:50%}.txn-row-tags{display:flex;flex-wrap:wrap;align-items:center;gap:.25rem;margin-top:.3125rem}.txn-tag{padding:.0625rem .4375rem;font-size:.6875rem;color:var(--color-text-secondary);background:var(--color-surface-muted);border:1px solid transparent;border-radius:var(--radius-full)}.txn-row-right{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.txn-row-amount{display:inline-flex;align-items:baseline;gap:.25rem;font-family:var(--font-sans);font-size:1.0625rem;font-weight:700;letter-spacing:-.01em;color:var(--color-text-primary)}.txn-row-currency{font-size:.6875rem;font-weight:600;color:var(--color-text-muted)}.txn-row-actions{display:flex;gap:.25rem;opacity:0;transition:opacity .16s ease}.txn-row:hover .txn-row-actions,.txn-row:focus-within .txn-row-actions{opacity:1}.txn-row-action{display:inline-flex;align-items:center;justify-content:center;width:1.875rem;height:1.875rem;color:var(--color-text-secondary);background:var(--color-surface-muted);border:none;border-radius:var(--radius-md);cursor:pointer;transition:all .16s ease}.txn-row-action:hover{color:var(--txn-accent);background:var(--txn-accent-soft)}.txn-row-action.danger:hover{color:var(--color-expense);background:var(--color-expense-bg)}.txn-highlight{padding:0 .0625rem;color:inherit;background:#facc1559;border-radius:.1875rem}.txn-skeleton{display:flex;flex-direction:column;gap:.5rem}.txn-skeleton-row{height:4.25rem;background:var(--color-surface-muted);border:1px solid var(--color-border);border-radius:var(--radius-xl);animation:txn-pulse 1.4s ease-in-out infinite}.txn-skeleton-row:nth-child(2){animation-delay:.1s}.txn-skeleton-row:nth-child(3){animation-delay:.2s}.txn-skeleton-row:nth-child(4){animation-delay:.3s}.txn-skeleton-row:nth-child(5){animation-delay:.4s}@keyframes txn-pulse{0%,to{opacity:1}50%{opacity:.45}}.txn-empty{display:flex;flex-direction:column;align-items:center;text-align:center;padding:3rem 2rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-2xl)}.txn-empty-icon{display:flex;align-items:center;justify-content:center;width:4rem;height:4rem;margin-bottom:1.125rem;color:var(--color-text-muted);background:var(--color-surface-muted);border-radius:50%}.txn-empty h3{margin:0 0 .375rem;font-family:var(--font-sans);font-size:1rem;font-weight:700;color:var(--color-text-primary)}.txn-empty p{margin:0 0 1.25rem;max-width:26rem;font-size:.875rem;color:var(--color-text-secondary)}.txn-empty-btn{display:inline-flex;align-items:center;gap:.5rem;padding:.625rem 1.25rem;font-family:var(--font-sans);font-size:.875rem;font-weight:600;color:var(--color-btn-primary-text);background:var(--color-neutral-900);border:none;border-radius:var(--radius-lg);cursor:pointer}.txn-empty-btn.ghost{color:var(--color-text-primary);background:transparent;border:1.5px solid var(--color-border-strong)}@media (max-width: 968px){.txn-sticky-bar{top:4.5rem}}@media (max-width: 900px){.txn-hero{flex-direction:column;align-items:stretch}.txn-hero-side{align-items:stretch}.txn-hero-actions,.txn-hero-meta{justify-content:flex-start}.txn-meta-chip{flex:1 1 12rem}}@media (max-width: 640px){.txn-page-head{flex-direction:column;align-items:stretch}.txn-page-title{font-size:2rem}.txn-add-btn{justify-content:center}.txn-hero-total{font-size:2.25rem}.txn-row-actions{opacity:1}.txn-row-right{flex-direction:column;align-items:flex-end;gap:.375rem}}.insights-page{width:100%}.insights-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:2rem}.insights-title{font-family:var(--font-serif);font-size:2.5rem;color:var(--color-text-primary);margin:0 0 .5rem}.insights-subtitle{font-family:var(--font-sans);font-size:1.125rem;color:var(--color-text-secondary);margin:0}.insights-error{padding:12px 16px;background:var(--color-error-bg);color:#b91c1c;border-radius:var(--radius-lg);margin-bottom:1.5rem;font-size:.9375rem}.insights-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;min-height:400px;gap:1rem;color:var(--color-text-secondary)}.insights-loading-spinner{width:36px;height:36px;border:3px solid var(--color-neutral-200);border-top-color:var(--color-neutral-900);border-radius:50%;animation:spin .7s linear infinite}.insights-period-bar{display:flex;align-items:center;gap:.75rem;margin-bottom:2rem;flex-wrap:wrap}.period-paddle{display:flex;align-items:center;gap:.375rem;padding:.5rem .875rem;font-family:var(--font-sans);font-size:.875rem;font-weight:500;color:var(--color-text-primary);background:var(--color-surface);border:1.5px solid var(--color-neutral-200);border-radius:var(--radius-lg);cursor:pointer;transition:all .2s ease}.period-paddle:hover{background:var(--color-neutral-900);color:var(--color-btn-primary-text);border-color:var(--color-neutral-900)}.period-display-compact{display:flex;flex-direction:column;line-height:1.2;padding:0 .25rem}.period-label{font-size:.75rem;color:var(--color-text-muted);font-weight:500;text-transform:uppercase;letter-spacing:.04em}.period-title{font-family:var(--font-serif);font-size:1.125rem;color:var(--color-text-primary)}.period-chips{display:flex;gap:.5rem;flex-wrap:wrap;margin-left:.5rem}.period-chip{padding:.375rem .75rem;font-family:var(--font-sans);font-size:.8125rem;font-weight:500;color:var(--color-text-secondary);background:var(--color-surface);border:1.5px solid var(--color-neutral-200);border-radius:9999px;cursor:pointer;transition:all .2s ease}.period-chip:hover{border-color:var(--color-neutral-900);color:var(--color-text-primary)}.period-chip.active{background:var(--color-neutral-900);color:var(--color-btn-primary-text);border-color:var(--color-neutral-900)}.insights-kpi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1.5rem;margin-bottom:2rem}.insights-kpi-card{background:var(--color-surface);padding:1.5rem;border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);transition:all .2s ease;display:flex;flex-direction:column;gap:.375rem}.insights-kpi-card:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.kpi-label{font-family:var(--font-sans);font-size:.875rem;font-weight:500;color:var(--color-text-secondary);margin:0}.kpi-value{font-family:var(--font-serif);font-size:2rem;color:var(--color-text-primary);margin:0;line-height:1.1}.kpi-value--income{color:var(--color-income)}.kpi-value--expense{color:var(--color-expense)}.kpi-value--positive{color:var(--color-income)}.kpi-value--negative{color:var(--color-expense)}.kpi-delta{display:inline-flex;align-items:center;gap:.25rem;font-size:.8125rem;font-weight:500;font-family:var(--font-sans)}.kpi-delta.positive{color:var(--color-income)}.kpi-delta.negative{color:var(--color-expense)}.kpi-sub{font-size:.8125rem;color:var(--color-text-muted);font-family:var(--font-sans)}.kpi-badge{display:inline-flex;align-items:center;gap:.3rem;padding:.25rem .625rem;border-radius:9999px;font-size:.8125rem;font-weight:600;font-family:var(--font-sans);width:fit-content}.insights-two-col{display:grid;grid-template-columns:1fr 1fr;gap:1.5rem;margin-bottom:1.5rem}.insights-card{background:var(--color-surface);padding:1.5rem;border-radius:var(--radius-xl);box-shadow:var(--shadow-sm)}.insights-card--wide{margin-bottom:1.5rem}.insights-card-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:1.25rem}.insights-card-header h3{font-family:var(--font-serif);font-size:1.25rem;color:var(--color-text-primary);margin:0}.insights-card-sub{font-size:.8125rem;color:var(--color-text-muted);font-family:var(--font-sans)}.insights-empty{color:var(--color-text-muted);font-size:.9375rem;font-style:italic;text-align:center;padding:2rem 0;font-family:var(--font-sans)}.trend-chart{display:flex;align-items:flex-end;gap:.5rem;height:160px;padding-bottom:1.75rem;position:relative;margin-bottom:.75rem}.trend-col{flex:1;display:flex;flex-direction:column;align-items:center;gap:.375rem;height:100%;cursor:pointer;position:relative;border-radius:var(--radius-md);padding:0 2px;transition:background .15s ease}.trend-col:hover,.trend-col.active{background:var(--color-neutral-50)}.trend-bars{flex:1;width:100%;display:flex;align-items:flex-end;gap:2px}.trend-bar{flex:1;border-radius:3px 3px 0 0;min-height:3px;transition:height .4s ease}.trend-bar--income{background:var(--color-income)}.trend-bar--expense{background:var(--color-expense)}.trend-label{font-family:var(--font-sans);font-size:.7rem;color:var(--color-text-muted);white-space:nowrap;position:absolute;bottom:0}.trend-tooltip{position:absolute;bottom:calc(100% + 6px);left:50%;transform:translate(-50%);background:var(--color-neutral-900);color:var(--color-btn-primary-text);border-radius:var(--radius-md);padding:.5rem .75rem;display:flex;flex-direction:column;gap:.2rem;font-size:.75rem;font-family:var(--font-sans);white-space:nowrap;z-index:10;pointer-events:none}.trend-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:var(--color-neutral-900)}.trend-tooltip-income{color:#86efac}.trend-tooltip-expense{color:#fca5a5}.trend-tooltip-savings.positive{color:#86efac}.trend-tooltip-savings.negative{color:#fca5a5}.trend-legend{display:flex;align-items:center;gap:1rem;font-size:.8125rem;color:var(--color-text-secondary);font-family:var(--font-sans)}.legend-dot{display:inline-block;width:10px;height:10px;border-radius:50%;margin-right:.25rem}.legend-dot--income{background:var(--color-income)}.legend-dot--expense{background:var(--color-expense)}.budget-health-section{display:flex;flex-direction:column;gap:1.25rem}.budget-progress-wrap{display:flex;flex-direction:column;gap:.4rem}.budget-progress-labels{display:flex;justify-content:space-between;font-size:.875rem;font-family:var(--font-sans);color:var(--color-text-secondary);font-weight:500}.budget-progress-track{height:10px;background:var(--color-neutral-100);border-radius:9999px;overflow:hidden}.budget-progress-fill{height:100%;border-radius:9999px;transition:width .5s ease}.fill-ok{background:var(--color-income)}.fill-warning{background:var(--color-accent-orange)}.fill-danger{background:var(--color-expense)}.text-danger{color:var(--color-expense)!important}.text-warning{color:#f59e0b!important}.budget-stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.budget-stat{background:var(--color-neutral-50);padding:.875rem 1rem;border-radius:var(--radius-lg)}.budget-stat-label{font-family:var(--font-sans);font-size:.75rem;font-weight:500;color:var(--color-text-muted);margin:0 0 .25rem;text-transform:uppercase;letter-spacing:.03em}.budget-stat-value{font-family:var(--font-serif);font-size:1.25rem;color:var(--color-text-primary);margin:0}.budget-stat-value span{font-family:var(--font-sans);font-size:.8125rem;color:var(--color-text-muted);margin-left:2px}.category-list{display:flex;flex-direction:column;gap:.75rem}.category-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.category-row-left{display:flex;align-items:center;gap:.5rem;min-width:0;flex:1}.category-rank{font-size:.75rem;font-weight:600;color:var(--color-text-muted);font-family:var(--font-sans);min-width:24px}.category-icon-sm{font-size:1.125rem;line-height:1;flex-shrink:0}.category-info{display:flex;flex-direction:column;min-width:0}.category-name{font-size:.9375rem;font-weight:500;color:var(--color-text-primary);font-family:var(--font-sans);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.category-count{font-size:.75rem;color:var(--color-text-muted);font-family:var(--font-sans)}.category-row-right{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.category-amount{font-family:var(--font-serif);font-size:.9375rem;color:var(--color-text-primary);min-width:72px;text-align:right}.category-amount.income-amount{color:var(--color-income)}.category-bar-track{width:60px;height:6px;background:var(--color-neutral-100);border-radius:9999px;overflow:hidden}.category-bar-fill{height:100%;background:var(--color-expense);border-radius:9999px;transition:width .4s ease}.category-bar-fill.income-bar{background:var(--color-income)}.category-pct{font-size:.75rem;color:var(--color-text-muted);font-family:var(--font-sans);min-width:40px;text-align:right}.savings-rate-list{display:flex;flex-direction:column;gap:.75rem}.savings-rate-row{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;border-radius:var(--radius-lg);transition:background .15s ease;cursor:default}.savings-rate-row.active{background:var(--color-neutral-50)}.savings-rate-month{font-size:.8125rem;font-weight:500;color:var(--color-text-secondary);font-family:var(--font-sans);min-width:60px}.savings-rate-bar-track{flex:1;height:8px;background:var(--color-neutral-100);border-radius:9999px;overflow:hidden}.savings-rate-bar-fill{height:100%;border-radius:9999px;transition:width .4s ease}.savings-rate-pct{font-size:.875rem;font-weight:600;font-family:var(--font-sans);min-width:46px;text-align:right}.savings-rate-abs{font-size:.8125rem;color:var(--color-text-muted);font-family:var(--font-sans);min-width:60px;text-align:right}.payment-list{display:flex;flex-direction:column;gap:.875rem}.payment-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.payment-left{display:flex;align-items:center;gap:.5rem;min-width:0}.payment-pill{padding:.2rem .625rem;border-radius:9999px;font-size:.8125rem;font-weight:600;font-family:var(--font-sans);white-space:nowrap}.pm-upi{background:#ede9fe;color:#7c3aed}.pm-card{background:#dbeafe;color:#1d4ed8}.pm-cash{background:#dcfce7;color:#15803d}.pm-bank-transfer{background:var(--color-warning-bg);color:var(--color-warning-text)}.pm-unknown{background:var(--color-neutral-100);color:var(--color-text-secondary)}.payment-count{font-size:.75rem;color:var(--color-text-muted);font-family:var(--font-sans)}.payment-right{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.payment-bar-track{width:80px;height:6px;background:var(--color-neutral-100);border-radius:9999px;overflow:hidden}.payment-bar-fill{height:100%;background:var(--color-neutral-800);border-radius:9999px;transition:width .4s ease}.payment-amount{font-family:var(--font-serif);font-size:.9375rem;color:var(--color-text-primary);min-width:80px;text-align:right}.payment-pct{font-size:.75rem;color:var(--color-text-muted);font-family:var(--font-sans);min-width:40px;text-align:right}.mom-table-wrap{overflow-x:auto}.mom-table{width:100%;border-collapse:collapse}.mom-table thead{background:var(--color-neutral-50)}.mom-table th{padding:.875rem 1.25rem;font-family:var(--font-sans);font-size:.8125rem;font-weight:600;color:var(--color-text-primary);text-align:left;border-bottom:1px solid var(--color-neutral-200);text-transform:uppercase;letter-spacing:.04em}.mom-table tbody tr{border-bottom:1px solid var(--color-neutral-100);transition:background .15s ease;cursor:pointer}.mom-table tbody tr:last-child{border-bottom:none}.mom-table tbody tr:hover{background:var(--color-neutral-50)}.mom-table tbody tr.active{background:var(--color-info-bg)}.mom-table td{padding:1rem 1.25rem;font-family:var(--font-sans);font-size:.9375rem;color:var(--color-text-primary)}.mom-period{display:flex;align-items:center;gap:.5rem;font-weight:500}.mom-current-badge{padding:.125rem .5rem;background:var(--color-neutral-900);color:var(--color-btn-primary-text);border-radius:9999px;font-size:.6875rem;font-weight:600;font-family:var(--font-sans);letter-spacing:.03em;text-transform:uppercase}.mom-income{color:var(--color-income);font-weight:500}.mom-expense{color:var(--color-expense);font-weight:500}.mom-savings.positive{color:var(--color-income);font-weight:600}.mom-savings.negative{color:var(--color-expense);font-weight:600}.mom-rate{font-weight:700;font-size:.9375rem}@media (max-width: 768px){.insights-title{font-size:1.875rem}.insights-subtitle{font-size:1rem}.insights-kpi-grid{grid-template-columns:1fr 1fr;gap:1rem}.kpi-value{font-size:1.5rem}.insights-two-col{grid-template-columns:1fr}.insights-period-bar{gap:.5rem}.period-chips{margin-left:0;width:100%}.category-bar-track,.payment-bar-track{display:none}.budget-stats-grid{grid-template-columns:1fr}.trend-chart{height:120px}}@media (max-width: 480px){.insights-kpi-grid{grid-template-columns:1fr}}.rec-page{width:100%}.rec-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:2rem}.rec-title{font-family:var(--font-serif);font-size:2.5rem;color:var(--color-text-primary);margin:0 0 .5rem}.rec-subtitle{font-family:var(--font-sans);font-size:1.125rem;color:var(--color-text-secondary);margin:0;max-width:46ch}.rec-add-btn{padding:.875rem 1.5rem;font-family:var(--font-sans);font-size:1rem;font-weight:600;color:var(--color-btn-primary-text);background:var(--color-neutral-900);border:none;border-radius:var(--radius-lg);cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;gap:.5rem;white-space:nowrap}.rec-add-btn:hover{background:var(--color-neutral-800);transform:translateY(-1px);box-shadow:var(--shadow-md)}.rec-error{display:flex;align-items:center;gap:.625rem;padding:.875rem 1rem;margin-bottom:1.5rem;background:var(--color-error-bg);color:var(--color-error-text);border:1px solid var(--color-error-border);border-radius:var(--radius-lg);font-size:.9375rem}.rec-error span{flex:1}.rec-error button{background:none;border:none;color:inherit;cursor:pointer;display:flex;padding:.25rem}.rec-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin-bottom:2rem}.rec-stat{background:var(--color-surface);padding:1.5rem;border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);border:1px solid var(--color-border)}.rec-stat--total{background:var(--color-neutral-900);border-color:var(--color-neutral-900)}.rec-stat--total .rec-stat-label,.rec-stat--total .rec-stat-help{color:var(--color-neutral-500)}.rec-stat--total .rec-stat-value{color:var(--color-neutral-50)}.rec-stat-label{font-family:var(--font-sans);font-size:.8125rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--color-text-secondary);margin:0 0 .5rem}.rec-stat-value{font-family:var(--font-serif);font-size:1.875rem;line-height:1.15;color:var(--color-text-primary);margin:0 0 .375rem}.rec-stat-value--out{color:var(--color-expense)}.rec-stat-value--in{color:var(--color-income)}.rec-stat--total .rec-stat-value--out{color:var(--color-neutral-50)}.rec-stat-help{font-family:var(--font-sans);font-size:.875rem;color:var(--color-text-muted)}.rec-stat-help.is-warn{color:var(--color-warning-600);font-weight:600}.rec-stat-link{display:inline-flex;align-items:center;gap:.25rem;background:none;border:none;padding:0;font-family:var(--font-sans);font-size:.875rem;font-weight:500;color:var(--color-link-action);cursor:pointer}.rec-stat-link:hover{text-decoration:underline}.rec-tabs{display:flex;gap:.25rem;border-bottom:1px solid var(--color-border);margin-bottom:1.5rem;overflow-x:auto}.rec-tab{display:inline-flex;align-items:center;gap:.4375rem;padding:.75rem 1rem;background:none;border:none;border-bottom:2px solid transparent;margin-bottom:-1px;font-family:var(--font-sans);font-size:.9375rem;font-weight:600;color:var(--color-text-secondary);cursor:pointer;white-space:nowrap;transition:color .15s ease,border-color .15s ease}.rec-tab:hover{color:var(--color-text-primary)}.rec-tab.active{color:var(--color-text-primary);border-bottom-color:var(--color-text-primary)}.rec-tab-count{padding:.0625rem .4375rem;border-radius:var(--radius-full);background:var(--color-surface-muted);border:1px solid var(--color-border);font-size:.75rem;font-weight:600;color:var(--color-text-secondary)}.rec-table-wrap{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);overflow-x:auto}.rec-table{width:100%;border-collapse:collapse;font-family:var(--font-sans);font-size:.9375rem;min-width:760px}.rec-table th{padding:.875rem 1rem;text-align:left;font-size:.75rem;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--color-text-muted);background:var(--color-surface-muted);border-bottom:1px solid var(--color-border);white-space:nowrap}.rec-table td{padding:.875rem 1rem;color:var(--color-text-secondary);border-bottom:1px solid var(--color-divider);vertical-align:middle}.rec-table tbody tr:last-child td{border-bottom:none}.rec-table tbody tr:hover{background:var(--color-surface-muted)}.rec-table tbody tr.is-dormant td{opacity:.55}.rec-name{font-weight:600;color:var(--color-text-primary)}.rec-num{text-align:right}.rec-actions-head{text-align:center}.rec-amount{font-weight:700;font-variant-numeric:tabular-nums}.rec-amount--out{color:var(--color-expense)}.rec-amount--in{color:var(--color-income)}.rec-status{display:inline-block;padding:.1875rem .625rem;border-radius:var(--radius-full);font-size:.8125rem;font-weight:600;border:1px solid transparent;white-space:nowrap}.rec-status.is-active{background:var(--color-success-50);color:var(--color-success-700);border-color:var(--color-success-300)}.rec-status.is-paused{background:var(--color-warning-50);color:var(--color-warning-700);border-color:var(--color-warning-300)}.rec-status.is-ended{background:var(--color-surface-muted);color:var(--color-text-muted);border-color:var(--color-border)}.rec-actions{display:flex;gap:.25rem;justify-content:center}.rec-actions button{display:inline-flex;padding:.4375rem;background:none;border:1px solid transparent;border-radius:var(--radius-md);color:var(--color-text-secondary);cursor:pointer;transition:all .15s ease}.rec-actions button:hover:not(:disabled){background:var(--color-surface-muted);border-color:var(--color-border);color:var(--color-text-primary)}.rec-actions button:disabled{opacity:.4;cursor:not-allowed}.rec-actions button.rec-danger:hover:not(:disabled){background:var(--color-error-bg);border-color:var(--color-error-border);color:var(--color-error-text)}.rec-empty{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:3rem 2rem;text-align:center}.rec-empty h3{font-family:var(--font-serif);font-size:1.5rem;color:var(--color-text-primary);margin:0 0 .75rem}.rec-empty p{font-family:var(--font-sans);font-size:1rem;color:var(--color-text-secondary);max-width:52ch;margin:0 auto 1.5rem;line-height:1.6}.rec-skeleton-stat,.rec-skeleton-row{background:var(--color-skeleton);border-radius:var(--radius-xl);animation:rec-pulse 1.4s ease-in-out infinite}.rec-skeleton-stat{height:118px}.rec-skeleton-list{display:flex;flex-direction:column;gap:.5rem}.rec-skeleton-row{height:52px;border-radius:var(--radius-lg)}@keyframes rec-pulse{0%,to{opacity:1}50%{opacity:.55}}@media (prefers-reduced-motion: reduce){.rec-skeleton-stat,.rec-skeleton-row{animation:none}.rec-add-btn:hover{transform:none}}@media (max-width: 768px){.rec-header{flex-direction:column;align-items:stretch}.rec-title{font-size:2rem}.rec-subtitle{font-size:1rem}.rec-add-btn{justify-content:center}.rec-stats{grid-template-columns:1fr 1fr;gap:.75rem}.rec-stat{padding:1rem}.rec-stat-value{font-size:1.375rem}}.subs-page{width:100%}.subs-header{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:2rem}.subs-title{font-family:var(--font-serif);font-size:2.5rem;color:var(--color-text-primary);margin:0 0 .5rem}.subs-subtitle{font-family:var(--font-sans);font-size:1.125rem;color:var(--color-text-secondary);margin:0}.subs-add-btn{padding:.875rem 1.5rem;font-family:var(--font-sans);font-size:1rem;font-weight:600;color:var(--color-btn-primary-text);background:var(--color-neutral-900);border:none;border-radius:var(--radius-lg);cursor:pointer;transition:all .2s ease;display:inline-flex;align-items:center;gap:.5rem;white-space:nowrap}.subs-add-btn:hover{background:var(--color-neutral-800);transform:translateY(-1px);box-shadow:var(--shadow-md)}.subs-back{display:inline-flex;align-items:center;gap:.5rem;background:none;border:none;padding:.5rem 0;margin-bottom:1.25rem;font-family:var(--font-sans);font-size:.9375rem;font-weight:500;color:var(--color-text-secondary);cursor:pointer}.subs-back:hover{color:var(--color-text-primary)}.subs-error{display:flex;align-items:center;gap:.625rem;padding:.875rem 1rem;margin-bottom:1.5rem;background:var(--color-error-bg, #fee2e2);color:var(--color-error-text, #b91c1c);border:1px solid var(--color-error-border, #fca5a5);border-radius:var(--radius-lg);font-size:.9375rem}.subs-error span{flex:1}.subs-error button{background:none;border:none;color:inherit;cursor:pointer;display:flex;padding:.25rem}.subs-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin-bottom:2rem}.subs-stat{background:var(--color-surface);padding:1.5rem;border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);border-top:3px solid transparent;transition:all .2s ease}.subs-stat:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}.subs-stat.is-warn{border-top-color:var(--color-warning-500, #f59e0b)}.subs-stat.is-critical{border-top-color:var(--color-error-500, #ef4444)}.subs-stat-label{font-family:var(--font-sans);font-size:.875rem;font-weight:500;color:var(--color-text-secondary);margin:0 0 .5rem}.subs-stat-value{font-family:var(--font-serif);font-size:2rem;line-height:1.1;color:var(--color-text-primary);margin:0 0 .375rem;font-variant-numeric:tabular-nums}.subs-stat-value--sm{font-size:1.5rem}.subs-stat-help{font-family:var(--font-sans);font-size:.8125rem;color:var(--color-text-muted)}.subs-section{margin-bottom:2.5rem}.subs-section-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;flex-wrap:wrap;margin-bottom:1rem}.subs-section-title{font-family:var(--font-serif);font-size:1.5rem;color:var(--color-text-primary);margin:0}.subs-section-sub{font-family:var(--font-sans);font-size:.875rem;color:var(--color-text-muted);margin:.25rem 0 1rem}.subs-section-head .subs-section-sub{margin-bottom:0}.subs-none{font-family:var(--font-sans);font-size:.9375rem;color:var(--color-text-muted);padding:1.5rem 0;margin:0}.subs-filters{display:flex;gap:.5rem;flex-wrap:wrap}.subs-filter{padding:.4375rem .75rem;font-family:var(--font-sans);font-size:.8125rem;font-weight:500;color:var(--color-text-secondary);background:var(--color-surface);border:1px solid var(--color-border);border-radius:999px;cursor:pointer;transition:all .15s ease;display:inline-flex;align-items:center;gap:.375rem}.subs-filter span{font-size:.75rem;color:var(--color-text-muted);font-variant-numeric:tabular-nums}.subs-filter:hover{border-color:var(--color-border-strong)}.subs-filter.active{background:var(--color-neutral-900);border-color:var(--color-neutral-900);color:var(--color-btn-primary-text)}.subs-filter.active span{color:inherit;opacity:.7}.subs-logo{width:36px;height:36px;flex:none;border-radius:10px;display:grid;place-items:center;font-family:var(--font-sans);font-weight:600;font-size:.9375rem;color:#fff}.subs-logo--sm{width:28px;height:28px;font-size:.8125rem;border-radius:8px}.subs-logo--lg{width:56px;height:56px;font-size:1.5rem;border-radius:14px}.subs-timeline{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);overflow:hidden}.subs-tl-row{display:grid;grid-template-columns:92px auto 1fr auto auto;align-items:center;gap:.875rem;padding:.875rem 1.25rem;border-bottom:1px solid var(--color-border);cursor:pointer;transition:background .15s ease}.subs-tl-row:last-child{border-bottom:none}.subs-tl-row:hover,.subs-tl-row:focus-visible{background:var(--color-surface-muted)}.subs-tl-row.is-trial{background:var(--color-error-bg, #fee2e2)}.subs-tl-when{display:flex;flex-direction:column;gap:.125rem}.subs-tl-rel{font-family:var(--font-sans);font-size:.8125rem;font-weight:600;color:var(--color-text-secondary)}.subs-tl-when.is-soon .subs-tl-rel{color:var(--color-warning-600, #d97706)}.subs-tl-date{font-family:var(--font-sans);font-size:.75rem;color:var(--color-text-muted);font-variant-numeric:tabular-nums}.subs-tl-name{font-family:var(--font-sans);font-size:.9375rem;font-weight:600;color:var(--color-text-primary);min-width:0}.subs-tl-name span{display:block;font-weight:400;font-size:.8125rem;color:var(--color-text-muted)}.subs-tl-amount{font-family:var(--font-sans);font-size:.9375rem;font-weight:600;color:var(--color-text-primary);font-variant-numeric:tabular-nums;white-space:nowrap}.subs-group{margin-bottom:1.75rem}.subs-group-title{font-family:var(--font-sans);font-size:.75rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--color-text-muted);margin:0 0 .75rem}.subs-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:1rem}.subs-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);overflow:hidden;transition:all .2s ease}.subs-card:hover{box-shadow:var(--shadow-md);border-color:var(--color-border-strong)}.subs-card.is-busy{opacity:.6;pointer-events:none}.subs-card.status-paused,.subs-card.status-ended{opacity:.72}.subs-card-main{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:.875rem;padding:1rem 1.25rem;cursor:pointer}.subs-card-name{font-family:var(--font-sans);font-size:1rem;font-weight:600;color:var(--color-text-primary);min-width:0}.subs-card-name span{display:block;font-weight:400;font-size:.8125rem;color:var(--color-text-muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.subs-card-money{display:flex;flex-direction:column;align-items:flex-end;gap:.125rem}.subs-card-amount{font-family:var(--font-sans);font-size:1.0625rem;font-weight:600;color:var(--color-text-primary);font-variant-numeric:tabular-nums}.subs-card-amount.is-struck,.subs-detail-amount.is-struck{text-decoration:line-through;color:var(--color-text-muted)}.subs-card-equiv{font-family:var(--font-sans);font-size:.75rem;color:var(--color-text-muted);font-variant-numeric:tabular-nums}.subs-card-foot{display:flex;align-items:center;gap:.625rem;padding:.625rem 1.25rem;border-top:1px solid var(--color-border);background:var(--color-surface-muted)}.subs-card-next{flex:1;font-family:var(--font-sans);font-size:.8125rem;color:var(--color-text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.subs-card-actions{display:flex;gap:.25rem}.subs-icon-btn{width:30px;height:30px;display:grid;place-items:center;background:var(--color-surface);border:1px solid var(--color-border);border-radius:8px;color:var(--color-text-secondary);cursor:pointer;transition:all .15s ease}.subs-icon-btn:hover:not(:disabled){color:var(--color-text-primary);border-color:var(--color-border-strong)}.subs-icon-btn.is-danger:hover:not(:disabled){color:var(--color-error-text, #b91c1c);border-color:var(--color-error-border, #fca5a5)}.subs-icon-btn:disabled{opacity:.4;cursor:not-allowed}.subs-pill{font-family:var(--font-sans);font-size:.6875rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:.1875rem .5rem;border-radius:999px;border:1px solid var(--color-border);color:var(--color-text-muted);background:var(--color-surface);white-space:nowrap}.subs-pill.is-active{color:var(--color-success-700, #15803d);border-color:var(--color-success-300, #86efac);background:var(--color-success-50, #f0fdf4)}.subs-pill.is-trial{color:var(--color-error-text, #b91c1c);border-color:var(--color-error-border, #fca5a5);background:var(--color-error-bg, #fee2e2)}.subs-pill.is-confirm{color:var(--color-warning-600, #d97706);border-color:var(--color-warning-300, #fcd34d);background:var(--color-warning-50, #fffbeb)}.subs-pill.is-paused,.subs-pill.is-cancelled,.subs-pill.is-ended{color:var(--color-text-muted);background:var(--color-surface-muted)}.subs-detail-head{display:flex;align-items:center;gap:1.25rem;flex-wrap:wrap;margin-bottom:2rem}.subs-detail-id{flex:1;min-width:220px}.subs-detail-id .subs-title{font-size:2rem;margin-bottom:.25rem}.subs-detail-id .subs-subtitle{font-size:.9375rem;margin-bottom:.5rem}.subs-detail-price{display:flex;flex-direction:column;align-items:flex-end}.subs-detail-amount{font-family:var(--font-serif);font-size:2rem;color:var(--color-text-primary);font-variant-numeric:tabular-nums}.subs-detail-equiv{font-family:var(--font-sans);font-size:.8125rem;color:var(--color-text-muted)}.subs-price-changes{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);overflow:hidden}.subs-price-row{display:flex;align-items:center;gap:.75rem;padding:.875rem 1.25rem;border-bottom:1px solid var(--color-border)}.subs-price-row:last-child{border-bottom:none}.subs-price-row .is-up{color:var(--color-error-text, #b91c1c)}.subs-price-row .is-down{color:var(--color-success-700, #15803d);transform:scaleY(-1)}.subs-price-text{flex:1;font-family:var(--font-sans);font-size:.9375rem;color:var(--color-text-primary)}.subs-price-when{font-family:var(--font-sans);font-size:.8125rem;color:var(--color-text-muted);white-space:nowrap}.subs-bars{display:flex;align-items:flex-end;gap:3px;height:72px;padding:0 .25rem;margin-bottom:1rem}.subs-bar{flex:1;min-width:4px;max-width:22px;background:var(--color-neutral-900);border-radius:2px 2px 0 0;opacity:.75}.subs-ledger{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);overflow:hidden}.subs-ledger-row{display:grid;grid-template-columns:130px 1fr auto;gap:.75rem;align-items:center;padding:.75rem 1.25rem;border-bottom:1px solid var(--color-border)}.subs-ledger-row:last-child{border-bottom:none}.subs-ledger-date{font-family:var(--font-sans);font-size:.8125rem;color:var(--color-text-muted);font-variant-numeric:tabular-nums}.subs-ledger-desc{font-family:var(--font-sans);font-size:.9375rem;color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.subs-ledger-amount{font-family:var(--font-sans);font-size:.9375rem;font-weight:600;color:var(--color-text-primary);font-variant-numeric:tabular-nums}.subs-notes{font-family:var(--font-sans);font-size:.9375rem;color:var(--color-text-secondary);line-height:1.6;margin:0;white-space:pre-wrap}.subs-actionbar{display:flex;gap:.625rem;flex-wrap:wrap;padding-top:1.5rem;border-top:1px solid var(--color-border)}.subs-btn{display:inline-flex;align-items:center;gap:.4375rem;padding:.625rem 1rem;font-family:var(--font-sans);font-size:.875rem;font-weight:600;color:var(--color-text-primary);background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);cursor:pointer;transition:all .15s ease}.subs-btn:hover:not(:disabled){border-color:var(--color-border-strong);box-shadow:var(--shadow-sm)}.subs-btn:disabled{opacity:.5;cursor:not-allowed}.subs-btn.is-primary{background:var(--color-neutral-900);border-color:var(--color-neutral-900);color:var(--color-btn-primary-text)}.subs-btn.is-primary:hover:not(:disabled){background:var(--color-neutral-800)}.subs-btn.is-danger{color:var(--color-error-text, #b91c1c);border-color:var(--color-error-border, #fca5a5)}.subs-btn.is-danger-quiet{color:var(--color-text-muted)}.subs-btn.is-danger-quiet:hover:not(:disabled){color:var(--color-error-text, #b91c1c)}.subs-empty{background:var(--color-surface);border:1px dashed var(--color-border-strong);border-radius:var(--radius-xl);padding:3rem 2rem;text-align:center;max-width:34rem;margin:0 auto}.subs-empty h3{font-family:var(--font-serif);font-size:1.5rem;color:var(--color-text-primary);margin:0 0 .75rem}.subs-empty p{font-family:var(--font-sans);font-size:.9375rem;line-height:1.65;color:var(--color-text-secondary);margin:0 auto 1.5rem;max-width:30rem}.subs-sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:var(--color-surface-overlay);display:flex;align-items:center;justify-content:center;padding:1.5rem;z-index:1000;overflow-y:auto}.subs-sheet{background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-lg);width:100%;max-width:34rem;max-height:90vh;display:flex;flex-direction:column;overflow:hidden}.subs-sheet-head{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1.25rem 1.5rem;border-bottom:1px solid var(--color-border)}.subs-sheet-head h2{font-family:var(--font-serif);font-size:1.375rem;color:var(--color-text-primary);margin:0}.subs-form{padding:1.5rem;overflow-y:auto;display:flex;flex-direction:column;gap:1.25rem}.subs-form-error{padding:.75rem 1rem;background:var(--color-error-bg, #fee2e2);color:var(--color-error-text, #b91c1c);border-radius:var(--radius-lg);font-size:.875rem}.subs-field{display:flex;flex-direction:column;gap:.4375rem;position:relative;min-width:0}.subs-field-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem}.subs-field label{font-family:var(--font-sans);font-size:.875rem;font-weight:600;color:var(--color-text-primary)}.subs-field input,.subs-field select,.subs-field textarea{padding:.6875rem .875rem;font-family:var(--font-sans);font-size:.9375rem;color:var(--color-text-primary);background:var(--color-surface);border:1px solid var(--color-border-input);border-radius:var(--radius-lg);width:100%}.subs-field input:focus,.subs-field select:focus,.subs-field textarea:focus{outline:2px solid var(--color-neutral-900);outline-offset:-1px;border-color:transparent}.subs-field-help{font-family:var(--font-sans);font-size:.8125rem;color:var(--color-text-muted);margin:0}.subs-name-row{display:flex;align-items:center;gap:.625rem}.subs-amount-row{display:flex;align-items:center;gap:.5rem}.subs-amount-symbol{font-family:var(--font-sans);font-size:1.125rem;font-weight:600;color:var(--color-text-muted)}.subs-suggest{list-style:none;margin:0;padding:.25rem;position:absolute;top:100%;left:0;right:0;z-index:20;background:var(--color-surface-raised);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.subs-suggest button{display:flex;align-items:center;gap:.625rem;width:100%;padding:.5rem .625rem;background:none;border:none;border-radius:8px;cursor:pointer;text-align:left}.subs-suggest button:hover{background:var(--color-surface-muted)}.subs-suggest-name{font-family:var(--font-sans);font-size:.9375rem;font-weight:600;color:var(--color-text-primary)}.subs-suggest-meta{margin-left:auto;font-family:var(--font-sans);font-size:.75rem;color:var(--color-text-muted)}.subs-chips{display:flex;flex-wrap:wrap;gap:.5rem}.subs-chip{padding:.5rem .875rem;font-family:var(--font-sans);font-size:.875rem;font-weight:500;color:var(--color-text-secondary);background:var(--color-surface);border:1px solid var(--color-border);border-radius:999px;cursor:pointer;transition:all .15s ease}.subs-chip:hover{border-color:var(--color-border-strong)}.subs-chip.active{background:var(--color-neutral-900);border-color:var(--color-neutral-900);color:var(--color-btn-primary-text)}.subs-more-toggle{display:inline-flex;align-items:center;gap:.375rem;align-self:flex-start;background:none;border:none;padding:.25rem 0;font-family:var(--font-sans);font-size:.875rem;font-weight:600;color:var(--color-text-secondary);cursor:pointer}.subs-more-toggle svg{transition:transform .2s ease}.subs-more-toggle svg.is-open{transform:rotate(180deg)}.subs-more{display:flex;flex-direction:column;gap:1.25rem;padding-top:.25rem}.subs-toggle{display:flex;align-items:flex-start;gap:.625rem;cursor:pointer}.subs-toggle input{margin-top:.1875rem;width:1rem;height:1rem;flex:none}.subs-toggle strong{display:block;font-family:var(--font-sans);font-size:.9375rem;font-weight:600;color:var(--color-text-primary)}.subs-toggle small{display:block;font-family:var(--font-sans);font-size:.8125rem;color:var(--color-text-muted);line-height:1.5}.subs-sheet-foot{display:flex;justify-content:flex-end;gap:.625rem;padding-top:.5rem;border-top:1px solid var(--color-border);margin-top:.25rem;padding-top:1.25rem}.subs-skeleton-strip{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.5rem;margin-bottom:2rem}.subs-skeleton-card{height:118px;border-radius:var(--radius-xl);background:var(--color-surface-muted);animation:subs-pulse 1.4s ease-in-out infinite}.subs-skeleton-list{display:flex;flex-direction:column;gap:.75rem}.subs-skeleton-row{height:64px;border-radius:var(--radius-lg);background:var(--color-surface-muted);animation:subs-pulse 1.4s ease-in-out infinite}@keyframes subs-pulse{0%,to{opacity:1}50%{opacity:.55}}@media (prefers-reduced-motion: reduce){.subs-skeleton-card,.subs-skeleton-row{animation:none}.subs-add-btn:hover,.subs-stat:hover{transform:none}}@media (max-width: 768px){.subs-header{flex-direction:column;align-items:stretch}.subs-title{font-size:2rem}.subs-tl-row{grid-template-columns:auto 1fr auto;grid-template-areas:"logo name amount" "when when pill";row-gap:.5rem}.subs-tl-when{grid-area:when;flex-direction:row;gap:.375rem;align-items:baseline}.subs-logo{grid-area:logo}.subs-tl-name{grid-area:name}.subs-tl-amount{grid-area:amount}.subs-tl-row .subs-pill{grid-area:pill;justify-self:end}.subs-cards{grid-template-columns:1fr}.subs-ledger-row{grid-template-columns:100px 1fr auto}.subs-detail-price{align-items:flex-start}}.subs-confirm-bar{border:1px solid var(--color-warning-300, #fcd34d);background:var(--color-warning-50, #fffbeb);border-radius:var(--radius-xl);overflow:hidden}.subs-confirm-head{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding:.875rem 1.25rem;border-bottom:1px solid var(--color-warning-300, #fcd34d);font-family:var(--font-sans);font-size:.9375rem;font-weight:600;color:var(--color-warning-700, #b45309)}.subs-confirm-head small{font-weight:400;font-size:.8125rem;color:var(--color-text-secondary);flex-basis:100%}.subs-confirm-row{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap;padding:.75rem 1.25rem;border-bottom:1px solid var(--color-warning-100, #fef3c7);background:var(--color-surface)}.subs-confirm-row:last-child{border-bottom:none}.subs-confirm-name{flex:1;min-width:140px;font-family:var(--font-sans);font-size:.9375rem;font-weight:600;color:var(--color-text-primary)}.subs-confirm-name span{display:block;font-weight:400;font-size:.8125rem;color:var(--color-text-muted)}.subs-confirm-amount{font-family:var(--font-sans);font-size:1rem;font-weight:600;color:var(--color-text-primary);font-variant-numeric:tabular-nums}.subs-confirm-actions,.subs-confirm-edit{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.subs-confirm-edit input{width:7rem;padding:.5rem .625rem;font-family:var(--font-sans);font-size:.9375rem;color:var(--color-text-primary);background:var(--color-surface);border:1px solid var(--color-border-input);border-radius:var(--radius-lg)}.subs-detect{border:1px dashed var(--color-border-strong);border-radius:var(--radius-xl);background:var(--color-surface-muted);overflow:hidden}.subs-detect-head{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap;padding:.875rem 1.25rem;font-family:var(--font-sans);font-size:.9375rem;font-weight:600;color:var(--color-text-primary)}.subs-detect-head small{font-weight:400;font-size:.8125rem;color:var(--color-text-muted);flex-basis:100%}.subs-detect-card{margin:0 .75rem .75rem;background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);overflow:hidden}.subs-detect-main{display:flex;align-items:center;gap:.875rem;padding:.875rem 1rem}.subs-detect-name{flex:1;min-width:0;font-family:var(--font-sans);font-size:.9375rem;font-weight:600;color:var(--color-text-primary)}.subs-detect-name span{display:block;font-weight:400;font-size:.8125rem;color:var(--color-text-muted)}.subs-detect-amount{font-family:var(--font-sans);font-size:1rem;font-weight:600;color:var(--color-text-primary);font-variant-numeric:tabular-nums;white-space:nowrap}.subs-detect-foot{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap;padding:.625rem 1rem;border-top:1px solid var(--color-border);background:var(--color-surface-muted)}.subs-detect-evidence-toggle{background:none;border:none;padding:0;font-family:var(--font-sans);font-size:.8125rem;font-weight:500;color:var(--color-text-secondary);text-decoration:underline;cursor:pointer}.subs-detect-actions{display:flex;gap:.5rem;flex-wrap:wrap}.subs-detect-evidence{border-top:1px solid var(--color-border);padding:.5rem 1rem .75rem}.subs-detect-evidence-row{display:flex;justify-content:space-between;padding:.3125rem 0;font-family:var(--font-sans);font-size:.8125rem;color:var(--color-text-secondary);font-variant-numeric:tabular-nums}.subs-insights{display:flex;flex-direction:column;gap:.625rem}.subs-insight{display:flex;align-items:flex-start;gap:.75rem;width:100%;padding:.875rem 1rem;text-align:left;background:var(--color-surface);border:1px solid var(--color-border);border-left:3px solid var(--color-border-strong);border-radius:var(--radius-lg);cursor:pointer;transition:all .15s ease}.subs-insight:hover{box-shadow:var(--shadow-sm);border-color:var(--color-border-strong)}.subs-insight.sev-high{border-left-color:var(--color-error-500, #ef4444)}.subs-insight.sev-high svg{color:var(--color-error-text, #b91c1c)}.subs-insight.sev-medium{border-left-color:var(--color-warning-500, #f59e0b)}.subs-insight.sev-medium svg{color:var(--color-warning-600, #d97706)}.subs-insight svg{flex:none;margin-top:.125rem;color:var(--color-text-muted)}.subs-insight-text{display:flex;flex-direction:column;gap:.1875rem;min-width:0}.subs-insight-text strong{font-family:var(--font-sans);font-size:.9375rem;font-weight:600;color:var(--color-text-primary)}.subs-insight-text small{font-family:var(--font-sans);font-size:.8125rem;line-height:1.5;color:var(--color-text-secondary)}@media (max-width: 640px){.subs-confirm-row,.subs-detect-main{align-items:flex-start}.subs-confirm-actions,.subs-detect-actions{width:100%}}.family-page{width:100%}.family-header{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:2rem;flex-wrap:wrap;gap:1rem}.family-title{font-family:var(--font-serif);font-size:2.5rem;color:var(--color-text-primary);margin:0 0 .5rem}.family-subtitle{font-family:var(--font-sans);font-size:1.125rem;color:var(--color-text-secondary);margin:0}.family-empty{background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);padding:4rem 2rem;text-align:center;max-width:520px;margin:0 auto}.family-empty-icon{width:64px;height:64px;background:var(--color-neutral-100);border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;margin:0 auto 1.5rem;color:var(--color-text-secondary)}.family-empty h2{font-family:var(--font-serif);font-size:1.75rem;color:var(--color-text-primary);margin:0 0 .75rem}.family-empty p{font-size:1rem;color:var(--color-text-secondary);margin:0 0 2rem;line-height:1.6}.family-empty-actions{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}.family-setup-card{background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);padding:2rem;max-width:520px;margin:0 auto}.family-setup-card h2{font-family:var(--font-serif);font-size:1.5rem;color:var(--color-text-primary);margin:0 0 1.5rem}.family-layout{display:grid;grid-template-columns:1fr 380px;gap:1.5rem;align-items:start}.family-info-card{background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);padding:1.5rem;margin-bottom:1.5rem}.family-info-header{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem;margin-bottom:1.25rem}.family-info-name{font-family:var(--font-serif);font-size:1.75rem;color:var(--color-text-primary);margin:0 0 .25rem}.family-role-badge{display:inline-flex;align-items:center;padding:.25rem .75rem;border-radius:var(--radius-full);font-size:.8125rem;font-weight:600;text-transform:capitalize}.family-role-badge.viewer{background:var(--color-neutral-100);color:var(--color-text-secondary)}.family-invite-code-row{display:flex;align-items:center;gap:.75rem;background:var(--color-neutral-50);border:1.5px solid var(--color-neutral-200);border-radius:var(--radius-md);padding:.625rem 1rem;margin-top:.5rem}.family-invite-code-label{font-size:.8125rem;color:var(--color-text-secondary);white-space:nowrap}.family-invite-code-value{font-family:SFMono-Regular,Consolas,monospace;font-size:.875rem;color:var(--color-text-primary);flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.family-invite-code-actions{display:flex;gap:.5rem}.family-section{background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);overflow:hidden;margin-bottom:1.5rem}.family-section-header{display:flex;justify-content:space-between;align-items:center;padding:1.25rem 1.5rem;border-bottom:1px solid var(--color-neutral-200)}.family-section-title{font-family:var(--font-serif);font-size:1.25rem;color:var(--color-text-primary);margin:0}.family-member-row{display:flex;align-items:center;gap:1rem;padding:1rem 1.5rem;border-bottom:1px solid var(--color-neutral-100);transition:background .2s ease}.family-member-row:last-child{border-bottom:none}.family-member-row:hover{background:var(--color-neutral-50)}.family-member-avatar{width:40px;height:40px;border-radius:var(--radius-full);background:var(--color-neutral-900);color:var(--color-btn-primary-text);display:flex;align-items:center;justify-content:center;font-size:.9375rem;font-weight:600;flex-shrink:0}.family-member-info{flex:1;min-width:0}.family-member-name{font-weight:600;font-size:.9375rem;color:var(--color-text-primary);margin:0 0 .125rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.family-member-email{font-size:.8125rem;color:var(--color-text-secondary);margin:0;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.family-member-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.family-role-select{padding:.375rem .625rem;font-family:var(--font-sans);font-size:.8125rem;border:1.5px solid var(--color-neutral-200);border-radius:var(--radius-md);background:var(--color-surface);color:var(--color-text-primary);cursor:pointer;transition:border-color .2s ease}.family-role-select:focus{outline:none;border-color:var(--color-neutral-900)}.family-invite-card{background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);padding:1.5rem;margin-bottom:1.5rem}.family-invite-card h3{font-family:var(--font-serif);font-size:1.25rem;color:var(--color-text-primary);margin:0 0 1.25rem}.family-invite-link-box{display:flex;align-items:center;gap:.5rem;background:var(--color-neutral-50);border:1.5px solid var(--color-neutral-200);border-radius:var(--radius-md);padding:.625rem .875rem;margin-top:1rem}.family-invite-link-text{flex:1;font-size:.8125rem;color:var(--color-text-secondary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.family-invite-row{display:flex;align-items:center;gap:.75rem;padding:.875rem 1.5rem;border-bottom:1px solid var(--color-neutral-100)}.family-invite-row:last-child{border-bottom:none}.family-invite-email{flex:1;font-size:.9rem;color:var(--color-text-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.family-invite-expiry{font-size:.8125rem;color:var(--color-text-secondary);white-space:nowrap}.family-danger-card{background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);border:1.5px solid var(--color-error-border);padding:1.5rem}.family-danger-card h3{font-family:var(--font-serif);font-size:1.125rem;color:var(--color-error-text);margin:0 0 .5rem}.family-danger-card p{font-size:.875rem;color:var(--color-text-secondary);margin:0 0 1rem}.family-btn-primary{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-family:var(--font-sans);font-size:.9375rem;font-weight:600;color:var(--color-btn-primary-text);background:var(--color-neutral-900);border:none;border-radius:var(--radius-lg);cursor:pointer;transition:all .2s ease}.family-btn-primary:hover:not(:disabled){background:var(--color-neutral-800);transform:translateY(-1px);box-shadow:var(--shadow-md)}.family-btn-primary:disabled{opacity:.6;cursor:not-allowed}.family-btn-secondary{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-family:var(--font-sans);font-size:.9375rem;font-weight:500;color:var(--color-text-primary);background:var(--color-surface);border:1.5px solid var(--color-neutral-200);border-radius:var(--radius-lg);cursor:pointer;transition:all .2s ease}.family-btn-secondary:hover{background:var(--color-neutral-900);color:var(--color-btn-primary-text);border-color:var(--color-neutral-900)}.family-btn-danger{display:inline-flex;align-items:center;gap:.5rem;padding:.75rem 1.5rem;font-family:var(--font-sans);font-size:.9375rem;font-weight:600;color:var(--color-expense);background:var(--color-surface);border:1.5px solid var(--color-error-border);border-radius:var(--radius-lg);cursor:pointer;transition:all .2s ease}.family-btn-danger:hover{background:var(--color-expense);color:var(--color-btn-primary-text);border-color:var(--color-expense)}.family-icon-btn{padding:.375rem;background:transparent;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;display:flex;align-items:center;justify-content:center;color:var(--color-text-secondary)}.family-icon-btn:hover{background:var(--color-neutral-100);color:var(--color-text-primary)}.family-icon-btn.danger:hover{background:var(--color-expense-bg);color:var(--color-expense)}.family-alert{padding:.875rem 1.25rem;border-radius:var(--radius-md);margin-bottom:1.5rem;font-size:.9rem;font-weight:500}.family-alert-success{background:var(--color-success-bg);color:var(--color-success-text);border:1px solid var(--color-success-border)}.family-alert-error{background:var(--color-error-bg);color:var(--color-error-text);border:1px solid var(--color-error-border)}.family-loading{text-align:center;padding:4rem;color:var(--color-text-secondary);font-size:1rem}@media (max-width: 900px){.family-layout{grid-template-columns:1fr}}@media (max-width: 768px){.family-title{font-size:2rem}.family-header{flex-direction:column;align-items:flex-start}}.join-family-page{min-height:100vh;background:var(--color-neutral-50);display:flex;align-items:center;justify-content:center;padding:2rem}.join-family-card{background:var(--color-surface);border-radius:var(--radius-2xl);box-shadow:var(--shadow-lg);padding:3rem 2.5rem;width:100%;max-width:480px;text-align:center}.join-family-icon{width:72px;height:72px;background:var(--color-neutral-900);border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;margin:0 auto 1.5rem;color:var(--color-btn-primary-text)}.join-family-title{font-family:var(--font-serif);font-size:2rem;color:var(--color-text-primary);margin:0 0 .5rem}.join-family-subtitle{font-size:1rem;color:var(--color-text-secondary);margin:0 0 1rem}.join-family-family-name{font-family:var(--font-serif);font-size:1.5rem;color:var(--color-text-primary);background:var(--color-neutral-50);border:1.5px solid var(--color-neutral-200);border-radius:var(--radius-lg);padding:.875rem 1.5rem;margin:0 0 1.5rem}.join-family-meta{background:var(--color-neutral-50);border:1.5px solid var(--color-neutral-200);border-radius:var(--radius-lg);padding:1rem 1.5rem;margin-bottom:1.5rem;text-align:left;display:flex;flex-direction:column;gap:.75rem}.join-family-meta-row{display:flex;justify-content:space-between;align-items:center;gap:1rem}.join-family-meta-label{font-size:.875rem;color:var(--color-text-secondary);font-weight:500}.join-family-meta-value{font-size:.875rem;color:var(--color-text-primary);font-weight:500}.family-role-badge{display:inline-flex;align-items:center;padding:.25rem .75rem;border-radius:9999px;font-size:.8125rem;font-weight:600;text-transform:capitalize}.family-role-badge.admin{background:var(--color-warning-bg);color:var(--color-warning-text)}.family-role-badge.editor{background:#dbeafe;color:#1e40af}.family-role-badge.viewer{background:var(--color-neutral-100);color:#64748b}.join-family-actions{display:flex;flex-direction:column;gap:.75rem}.join-family-btn-primary{width:100%;padding:.875rem 1.5rem;font-family:var(--font-sans);font-size:1rem;font-weight:600;color:var(--color-btn-primary-text);background:var(--color-neutral-900);border:none;border-radius:var(--radius-lg);cursor:pointer;transition:all .2s ease}.join-family-btn-primary:hover:not(:disabled){background:var(--color-neutral-800);transform:translateY(-1px);box-shadow:var(--shadow-md)}.join-family-btn-primary:disabled{opacity:.6;cursor:not-allowed}.join-family-btn-secondary{width:100%;padding:.875rem 1.5rem;font-family:var(--font-sans);font-size:1rem;font-weight:500;color:var(--color-text-primary);background:var(--color-surface);border:1.5px solid var(--color-neutral-200);border-radius:var(--radius-lg);cursor:pointer;transition:all .2s ease}.join-family-btn-secondary:hover{background:var(--color-neutral-50);border-color:var(--color-neutral-900)}.join-family-alert{padding:.875rem 1.25rem;border-radius:var(--radius-md);margin-bottom:1.25rem;font-size:.9rem;font-weight:500;text-align:left}.join-family-alert--error{background:var(--color-error-bg);color:var(--color-error-text);border:1px solid var(--color-error-border)}.join-family-state{display:flex;flex-direction:column;align-items:center;gap:1rem;padding:1rem 0}.join-family-state h2{font-family:var(--font-serif);font-size:1.5rem;color:var(--color-text-primary);margin:0}.join-family-state p{font-size:1rem;color:var(--color-text-secondary);margin:0}.join-family-state--success h2{color:var(--color-success-text)}.join-family-state--error h2{color:var(--color-error-text)}@keyframes spin{to{transform:rotate(360deg)}}.join-family-spinner{animation:spin 1s linear infinite;color:var(--color-text-secondary)}@media (max-width: 480px){.join-family-card{padding:2rem 1.5rem}.join-family-title{font-size:1.75rem}}:root{--color-primary-50: #f0f9ff;--color-primary-100: #e0f2fe;--color-primary-200: #bae6fd;--color-primary-300: #7dd3fc;--color-primary-400: #38bdf8;--color-primary-500: #0ea5e9;--color-primary-600: #0284c7;--color-primary-700: #0369a1;--color-neutral-50: #fafafa;--color-neutral-100: #f5f5f5;--color-neutral-200: #e5e5e5;--color-neutral-300: #d4d4d4;--color-neutral-400: #a3a3a3;--color-neutral-500: #737373;--color-neutral-600: #525252;--color-neutral-700: #404040;--color-neutral-800: #262626;--color-neutral-900: #171717;--color-neutral-950: #0a0a0a;--color-bg-light: #ffffff;--color-bg-dark: #0a0a0a;--color-bg-muted: #f8fafc;--color-app-background: #f5f5f5;--color-surface: #ffffff;--color-surface-raised: #ffffff;--color-surface-muted: #f9fafb;--color-surface-overlay: rgba(0, 0, 0, .5);--color-text-primary: #0f172a;--color-text-secondary: #64748b;--color-text-muted: #94a3b8;--color-text-inverse: #ffffff;--color-accent-purple: #8b5cf6;--color-accent-green: #10b981;--color-accent-orange: #f97316;--color-accent-blue: #3b82f6;--color-accent-red: #ef4444;--color-success-bg: #d1fae5;--color-success-text: #065f46;--color-success-border: #a7f3d0;--color-error-bg: #fee2e2;--color-error-text: #991b1b;--color-error-border: #fecaca;--color-warning-bg: #fef3c7;--color-warning-text: #92400e;--color-warning-border: #fde68a;--color-income: #22c55e;--color-income-bg: rgba(34, 197, 94, .1);--color-expense: #ef4444;--color-expense-bg: rgba(239, 68, 68, .1);--color-info: #3b82f6;--color-info-bg: rgba(59, 130, 246, .1);--color-success-50: #f0fdf4;--color-success-100: #dcfce7;--color-success-300: #86efac;--color-success-500: #22c55e;--color-success-700: #15803d;--color-warning-50: #fffbeb;--color-warning-100: #fef3c7;--color-warning-300: #fcd34d;--color-warning-500: #f59e0b;--color-warning-600: #d97706;--color-warning-700: #b45309;--color-error-50: #fef2f2;--color-error-100: #fee2e2;--color-error-300: #fca5a5;--color-error-500: #ef4444;--color-error-700: #b91c1c;--color-danger-50: #fef2f2;--color-danger-700: #b91c1c;--color-info-50: #e6f7fb;--color-info-100: #c5ebf7;--color-info-700: #0369a1;--color-purple-50: #f3e9ff;--color-purple-100: #e1cffc;--color-purple-700: #7c3aed;--color-amber-50: #fff7e0;--color-amber-100: #fbe3a3;--color-amber-700: #a16207;--color-rose-50: #ffecec;--color-rose-100: #ffd0d0;--color-rose-700: #b91c1c;--color-border: #e5e5e5;--color-border-strong: #d4d4d4;--color-border-input: #d1d5db;--color-focus-ring: rgba(15, 23, 42, .08);--color-focus-ring-strong: rgba(15, 23, 42, .2);--color-btn-primary-bg: #0f172a;--color-btn-primary-bg-hover: #1e293b;--color-btn-primary-text: #ffffff;--color-btn-secondary-bg: #ffffff;--color-btn-secondary-text: #0f172a;--color-btn-secondary-border: #e5e5e5;--color-btn-secondary-hover: #fafafa;--color-btn-disabled: #9ca3af;--font-serif: "DM Serif Display", serif;--font-sans: "Outfit", -apple-system, BlinkMacSystemFont, "Segoe UI", "Roboto", sans-serif;--spacing-xs: .5rem;--spacing-sm: .75rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--spacing-3xl: 4rem;--spacing-4xl: 6rem;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.5rem;--radius-full: 9999px;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1), 0 2px 4px -1px rgba(0, 0, 0, .06);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1), 0 4px 6px -2px rgba(0, 0, 0, .05);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .1), 0 10px 10px -5px rgba(0, 0, 0, .04);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .25);--color-scrollbar-thumb: #c4c4c4;--color-scrollbar-track: transparent;--color-skeleton: #e5e7eb;--color-divider: #e5e7eb;--color-link-action: #2563eb;--color-avatar-gradient-from: #171717;--color-avatar-gradient-to: #404040;--theme-transition: background-color .3s ease, color .3s ease, border-color .3s ease, box-shadow .3s ease}[data-theme=dark]{--color-neutral-50: #1a1a1a;--color-neutral-100: #1e1e1e;--color-neutral-200: #2a2a2a;--color-neutral-300: #3a3a3a;--color-neutral-400: #555555;--color-neutral-500: #737373;--color-neutral-600: #a3a3a3;--color-neutral-700: #c4c4c4;--color-neutral-800: #e0e0e0;--color-neutral-900: #ededed;--color-neutral-950: #fafafa;--color-bg-light: #0f0f0f;--color-bg-dark: #fafafa;--color-bg-muted: #141414;--color-app-background: #0a0a0a;--color-surface: #141414;--color-surface-raised: #1a1a1a;--color-surface-muted: #111111;--color-surface-overlay: rgba(0, 0, 0, .7);--color-text-primary: #ededed;--color-text-secondary: #a1a1aa;--color-text-muted: #71717a;--color-text-inverse: #0a0a0a;--color-accent-purple: #a78bfa;--color-accent-green: #34d399;--color-accent-orange: #fb923c;--color-accent-blue: #60a5fa;--color-accent-red: #f87171;--color-success-bg: rgba(34, 197, 94, .15);--color-success-text: #4ade80;--color-success-border: rgba(34, 197, 94, .3);--color-error-bg: rgba(239, 68, 68, .15);--color-error-text: #fca5a5;--color-error-border: rgba(239, 68, 68, .3);--color-warning-bg: rgba(245, 158, 11, .15);--color-warning-text: #fcd34d;--color-warning-border: rgba(245, 158, 11, .3);--color-income: #4ade80;--color-income-bg: rgba(34, 197, 94, .15);--color-expense: #f87171;--color-expense-bg: rgba(239, 68, 68, .15);--color-info: #60a5fa;--color-info-bg: rgba(59, 130, 246, .15);--color-success-50: rgba(34, 197, 94, .12);--color-success-100: rgba(34, 197, 94, .18);--color-success-300: rgba(34, 197, 94, .4);--color-success-500: #22c55e;--color-success-700: #4ade80;--color-warning-50: rgba(245, 158, 11, .12);--color-warning-100: rgba(245, 158, 11, .18);--color-warning-300: rgba(245, 158, 11, .4);--color-warning-500: #f59e0b;--color-warning-600: #fbbf24;--color-warning-700: #fcd34d;--color-error-50: rgba(239, 68, 68, .12);--color-error-100: rgba(239, 68, 68, .18);--color-error-300: rgba(239, 68, 68, .4);--color-error-500: #ef4444;--color-error-700: #fca5a5;--color-danger-50: rgba(239, 68, 68, .12);--color-danger-700: #fca5a5;--color-info-50: rgba(59, 130, 246, .12);--color-info-100: rgba(59, 130, 246, .22);--color-info-700: #60a5fa;--color-purple-50: rgba(139, 92, 246, .12);--color-purple-100: rgba(139, 92, 246, .22);--color-purple-700: #a78bfa;--color-amber-50: rgba(245, 158, 11, .12);--color-amber-100: rgba(245, 158, 11, .22);--color-amber-700: #fcd34d;--color-rose-50: rgba(244, 63, 94, .12);--color-rose-100: rgba(244, 63, 94, .22);--color-rose-700: #fda4af;--color-border: #2a2a2a;--color-border-strong: #3a3a3a;--color-border-input: #3a3a3a;--color-focus-ring: rgba(255, 255, 255, .06);--color-focus-ring-strong: rgba(255, 255, 255, .15);--color-btn-primary-bg: #ededed;--color-btn-primary-bg-hover: #d4d4d4;--color-btn-primary-text: #0a0a0a;--color-btn-secondary-bg: #1a1a1a;--color-btn-secondary-text: #ededed;--color-btn-secondary-border: #2a2a2a;--color-btn-secondary-hover: #222222;--color-btn-disabled: #555555;--shadow-sm: 0 1px 2px 0 rgba(0, 0, 0, .3);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .4), 0 2px 4px -1px rgba(0, 0, 0, .3);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .4), 0 4px 6px -2px rgba(0, 0, 0, .3);--shadow-xl: 0 20px 25px -5px rgba(0, 0, 0, .5), 0 10px 10px -5px rgba(0, 0, 0, .3);--shadow-2xl: 0 25px 50px -12px rgba(0, 0, 0, .7);--color-scrollbar-thumb: #3a3a3a;--color-scrollbar-track: transparent;--color-skeleton: #2a2a2a;--color-divider: #2a2a2a;--color-link-action: #60a5fa;--color-avatar-gradient-from: #ededed;--color-avatar-gradient-to: #a3a3a3}*{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#root{min-height:100vh;background:var(--color-app-background);transition:var(--theme-transition)}body{margin:0;min-height:100vh;font-family:var(--font-sans);background:var(--color-app-background);color:var(--color-text-primary);line-height:1.5;overflow-x:hidden;transition:var(--theme-transition)}input,select,textarea{font-family:inherit;font-size:1rem;color:var(--color-text-primary);background:var(--color-surface);border:1.5px solid var(--color-border-input);border-radius:var(--radius-md);padding:.75rem;transition:border-color .2s ease,box-shadow .2s ease,background-color .3s ease}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--color-neutral-900);box-shadow:0 0 0 3px var(--color-focus-ring)}.app{width:100%;min-height:100vh;background:var(--color-app-background);transition:var(--theme-transition)}h1,h2,h3,h4,h5,h6{font-weight:700;line-height:1.2}button{font-family:inherit;cursor:pointer;border:none;outline:none;transition:all .2s ease}a{text-decoration:none;color:inherit;transition:all .2s ease}img{max-width:100%;height:auto;display:block}.title-text,.number-text{font-family:var(--font-serif);font-weight:400}.content-text{font-family:var(--font-sans);font-weight:400}h1,h2,h3,h4,h5,h6{font-family:var(--font-serif);font-weight:400}p,span,div{font-family:var(--font-sans)}.page-container{width:100%}.page-header{margin-bottom:2rem}.coming-soon{display:flex;align-items:center;justify-content:center;min-height:400px;background:var(--color-surface);border-radius:var(--radius-xl);box-shadow:var(--shadow-sm);transition:var(--theme-transition)}.coming-soon p{font-family:var(--font-sans);font-size:1.25rem;color:var(--color-text-secondary)}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:var(--color-scrollbar-track)}::-webkit-scrollbar-thumb{background:var(--color-scrollbar-thumb);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-neutral-400)}.amount-input-wrap{position:relative;display:flex;align-items:center}.amount-input-wrap .amount-input-symbol{position:absolute;left:.75rem;font-family:var(--font-sans);font-size:.9375rem;color:var(--color-text-secondary);pointer-events:none}.amount-input-wrap input{padding-left:1.9rem;width:100%}
