:root{--fn-bg: #080D16;--fn-bg-elevated: #0D1420;--fn-surface: #111925;--fn-surface-hover: #162131;--fn-border: #202A38;--fn-border-strong: #2C394B;--fn-text: #F3F6FB;--fn-text-secondary: #A8B2C1;--fn-text-muted: #6F7B8D;--fn-accent: #7C3AED;--fn-accent-hover: #6D28D9;--fn-accent-2: #2563EB;--fn-gradient: linear-gradient(135deg, #A855F7 0%, #7C3AED 45%, #2563EB 100%);--fn-positive: #10B981;--fn-negative: #F43F5E;--fn-warning: #F59E0B;--fn-info: #3B82F6;--fn-crypto: #F59E0B;--fn-font: "Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", sans-serif;--fn-font-mono: "JetBrains Mono", "SFMono-Regular", Consolas, monospace;--fn-text-xs: 12px;--fn-text-sm: 13px;--fn-text-base: 14px;--fn-text-md: 16px;--fn-text-lg: 20px;--fn-text-xl: 24px;--fn-text-2xl: 32px;--fn-text-3xl: 40px;--fn-space-1: 4px;--fn-space-2: 8px;--fn-space-3: 12px;--fn-space-4: 16px;--fn-space-5: 20px;--fn-space-6: 24px;--fn-space-8: 32px;--fn-space-10: 40px;--fn-space-12: 48px;--fn-radius-sm: 8px;--fn-radius-md: 12px;--fn-radius-lg: 16px;--fn-radius-xl: 20px;--fn-radius-pill: 999px;--fn-shadow-sm: 0 1px 2px rgba(0,0,0,.16);--fn-shadow-md: 0 12px 30px rgba(0,0,0,.2);--fn-shadow-focus: 0 0 0 3px rgba(124,58,237,.28);--fn-sidebar-w: 224px;--fn-content-max-w: 1600px;--fn-topbar-h: 72px;--fn-bottomnav-h: 64px;--fn-grid-gap: 16px;--fn-fast: .12s;--fn-normal: .18s;--fn-slow: .26s;--fn-ease: cubic-bezier(.2,.8,.2,1)}.fn-shell,.fn-login-page{color-scheme:dark}:root[data-theme=light]{--fn-bg: #F5F7FB;--fn-bg-elevated: #EEF2F7;--fn-surface: #FFFFFF;--fn-surface-hover: #F7F9FC;--fn-border: #E1E7EF;--fn-border-strong: #CAD3DF;--fn-text: #111827;--fn-text-secondary: #4B5563;--fn-text-muted: #8490A2;--fn-shadow-sm: 0 1px 2px rgba(15,23,42,.06);--fn-shadow-md: 0 12px 30px rgba(15,23,42,.1)}:root[data-theme=light] .fn-shell,:root[data-theme=light] .fn-login-page{color-scheme:light}@media (prefers-color-scheme: light){:root:not([data-theme=dark]){--fn-bg: #F5F7FB;--fn-bg-elevated: #EEF2F7;--fn-surface: #FFFFFF;--fn-surface-hover: #F7F9FC;--fn-border: #E1E7EF;--fn-border-strong: #CAD3DF;--fn-text: #111827;--fn-text-secondary: #4B5563;--fn-text-muted: #8490A2;--fn-shadow-sm: 0 1px 2px rgba(15,23,42,.06);--fn-shadow-md: 0 12px 30px rgba(15,23,42,.1)}:root:not([data-theme=dark]) .fn-shell,:root:not([data-theme=dark]) .fn-login-page{color-scheme:light}}*{box-sizing:border-box}html,body,#finova-root{height:100%}body.fn-body{margin:0;font-family:var(--fn-font);background:var(--fn-bg);color:var(--fn-text);font-size:var(--fn-text-base);-webkit-font-smoothing:antialiased}.fn-body ::selection{background:#7c3aed59}.fn-body button:focus-visible,.fn-body a:focus-visible,.fn-body input:focus-visible,.fn-body select:focus-visible,.fn-body [role=tab]:focus-visible{outline:2px solid var(--fn-accent);outline-offset:2px}.fn-tabular{font-variant-numeric:tabular-nums;font-family:var(--fn-font-mono)}@media (prefers-reduced-motion: reduce){.fn-body *{animation-duration:.001ms!important;transition-duration:.001ms!important}}.fn-shell{display:flex;min-height:100vh;background:var(--fn-bg)}.fn-sidebar{width:var(--fn-sidebar-w);flex:0 0 var(--fn-sidebar-w);background:var(--fn-bg);border-right:1px solid var(--fn-border);display:flex;flex-direction:column;position:sticky;top:0;height:100vh}.fn-brand{display:flex;align-items:center;gap:var(--fn-space-3);padding:var(--fn-space-6) var(--fn-space-5) var(--fn-space-4)}.fn-brand-mark{width:30px;height:30px;border-radius:var(--fn-radius-sm);background:var(--fn-gradient);color:#fff;font-weight:800;display:flex;align-items:center;justify-content:center;font-size:15px;box-shadow:var(--fn-shadow-sm)}.fn-brand-name{font-weight:700;font-size:var(--fn-text-lg);letter-spacing:-.01em}.fn-nav{display:flex;flex-direction:column;gap:2px;padding:var(--fn-space-2) var(--fn-space-3);flex:1;overflow-y:auto}.fn-nav-item{display:flex;align-items:center;gap:var(--fn-space-3);padding:10px var(--fn-space-3);border-radius:var(--fn-radius-md);background:transparent;border:none;color:var(--fn-text-secondary);font-family:var(--fn-font);font-size:var(--fn-text-sm);font-weight:500;cursor:pointer;text-align:left;width:100%;transition:background var(--fn-fast) var(--fn-ease),color var(--fn-fast) var(--fn-ease);position:relative}.fn-nav-item:hover{background:var(--fn-surface-hover);color:var(--fn-text)}.fn-nav-item.active{background:#7c3aed29;color:var(--fn-text)}.fn-nav-item.active svg{color:var(--fn-accent)}.fn-nav-item.soon{color:var(--fn-text-muted)}.fn-soon-dot{width:6px;height:6px;border-radius:50%;background:var(--fn-warning);margin-left:auto}.fn-sidebar-footer{padding:var(--fn-space-3);border-top:1px solid var(--fn-border)}.fn-user-chip{display:flex;align-items:center;gap:var(--fn-space-3);padding:var(--fn-space-2);border-radius:var(--fn-radius-md)}.fn-avatar{width:32px;height:32px;border-radius:50%;background:var(--fn-surface);border:1px solid var(--fn-border-strong);display:flex;align-items:center;justify-content:center;font-weight:700;font-size:var(--fn-text-sm);color:var(--fn-text);flex:0 0 auto}.fn-user-meta{flex:1;min-width:0}.fn-user-name{font-size:var(--fn-text-sm);font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fn-user-role{font-size:11px;color:var(--fn-text-muted);text-transform:capitalize}.fn-main{flex:1;min-width:0;display:flex;flex-direction:column}.fn-topbar{height:var(--fn-topbar-h);flex:0 0 var(--fn-topbar-h);display:flex;align-items:center;justify-content:space-between;padding:0 var(--fn-space-8);border-bottom:1px solid var(--fn-border);position:sticky;top:0;background:var(--fn-bg);z-index:5}.fn-page-title{font-size:var(--fn-text-xl);font-weight:700;margin:0;letter-spacing:-.01em;text-wrap:balance}.fn-page-subtitle{font-size:var(--fn-text-sm);color:var(--fn-text-muted);margin:2px 0 0}.fn-topbar-actions{display:flex;align-items:center;gap:var(--fn-space-2)}.fn-icon-btn{width:36px;height:36px;border-radius:var(--fn-radius-md);border:1px solid var(--fn-border);background:var(--fn-surface);color:var(--fn-text-secondary);display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background var(--fn-fast) var(--fn-ease),color var(--fn-fast) var(--fn-ease)}.fn-icon-btn:hover{background:var(--fn-surface-hover);color:var(--fn-text)}.fn-btn-primary{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 var(--fn-space-4);border-radius:var(--fn-radius-md);border:none;background:var(--fn-gradient);color:#fff;font-family:var(--fn-font);font-size:var(--fn-text-sm);font-weight:600;cursor:pointer;box-shadow:var(--fn-shadow-sm);transition:filter var(--fn-fast) var(--fn-ease),transform var(--fn-fast) var(--fn-ease)}.fn-btn-primary:hover{filter:brightness(1.08)}.fn-btn-primary:active{transform:translateY(1px)}.fn-btn-primary:disabled{opacity:.55;cursor:default;filter:none}.fn-btn-outline{display:inline-flex;align-items:center;gap:6px;height:34px;padding:0 var(--fn-space-3);border-radius:var(--fn-radius-md);border:1px solid var(--fn-border-strong);background:transparent;color:var(--fn-text);font-family:var(--fn-font);font-size:var(--fn-text-sm);font-weight:600;cursor:pointer}.fn-btn-outline:hover{background:var(--fn-surface-hover)}.fn-btn-outline:disabled{opacity:.5;cursor:not-allowed;background:transparent}.fn-btn-outline:disabled:hover{background:transparent}.fn-content{flex:1;padding:var(--fn-space-8);max-width:var(--fn-content-max-w);width:100%;margin:0 auto}.fn-card{background:var(--fn-surface);border:1px solid var(--fn-border);border-radius:var(--fn-radius-lg);padding:var(--fn-space-5);box-shadow:var(--fn-shadow-sm)}.fn-card-title{font-size:var(--fn-text-md);font-weight:700;margin:0 0 var(--fn-space-4);letter-spacing:-.005em}.fn-kpi-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--fn-grid-gap);margin-bottom:var(--fn-grid-gap)}.fn-kpi{background:var(--fn-surface);border:1px solid var(--fn-border);border-radius:var(--fn-radius-lg);padding:var(--fn-space-5);box-shadow:var(--fn-shadow-sm)}.fn-kpi-clickable{display:block;width:100%;text-align:left;font-family:var(--fn-font);cursor:pointer;transition:border-color var(--fn-fast) var(--fn-ease),background var(--fn-fast) var(--fn-ease)}.fn-kpi-clickable:hover{border-color:var(--fn-accent);background:var(--fn-surface-hover)}.fn-kpi-label{font-size:var(--fn-text-sm);color:var(--fn-text-muted);margin:0 0 var(--fn-space-3)}.fn-kpi-value{font-size:var(--fn-text-2xl);font-weight:700;margin:0;letter-spacing:-.01em}.fn-kpi-delta{font-size:12px;font-weight:600;margin-top:var(--fn-space-2);display:inline-flex;align-items:center;gap:4px}.fn-kpi-delta.pos{color:var(--fn-positive)}.fn-kpi-delta.neg{color:var(--fn-negative)}.fn-kpi-delta.neu{color:var(--fn-text-muted)}.fn-grid-2{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:var(--fn-grid-gap);margin-bottom:var(--fn-grid-gap)}.fn-grid-3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--fn-grid-gap)}.fn-table-wrap{overflow-x:auto}.fn-table{width:100%;border-collapse:collapse;font-size:var(--fn-text-sm)}.fn-table th{text-align:left;color:var(--fn-text-muted);font-weight:600;font-size:11px;text-transform:uppercase;letter-spacing:.04em;padding:0 var(--fn-space-3) var(--fn-space-3);border-bottom:1px solid var(--fn-border)}.fn-table td{padding:var(--fn-space-3);border-bottom:1px solid var(--fn-border);vertical-align:middle}.fn-table tr:last-child td{border-bottom:none}.fn-table tr:hover td{background:var(--fn-surface-hover)}.fn-num{text-align:right;font-variant-numeric:tabular-nums;font-family:var(--fn-font-mono)}.fn-pos{color:var(--fn-positive)}.fn-neg{color:var(--fn-negative)}.fn-pill{display:inline-flex;align-items:center;gap:4px;padding:2px 9px;border-radius:var(--fn-radius-pill);font-size:11px;font-weight:700}.fn-pill.expense{background:#f43f5e24;color:var(--fn-negative)}.fn-pill.income{background:#10b98124;color:var(--fn-positive)}.fn-pill.trip-status-planned{background:#6366f124;color:var(--fn-accent)}.fn-pill.trip-status-in_progress{background:#f59e0b29;color:#f59e0b}.fn-pill.trip-status-completed{background:#10b98124;color:var(--fn-positive)}.fn-empty{text-align:center;color:var(--fn-text-muted);padding:var(--fn-space-10) var(--fn-space-4);font-size:var(--fn-text-sm)}.fn-skel{background:linear-gradient(90deg,var(--fn-surface) 25%,var(--fn-surface-hover) 50%,var(--fn-surface) 75%);background-size:200% 100%;animation:fn-shimmer 1.3s infinite;border-radius:var(--fn-radius-sm)}@keyframes fn-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.fn-error-banner{background:#f43f5e1f;border:1px solid rgba(244,63,94,.35);color:var(--fn-negative);padding:var(--fn-space-3) var(--fn-space-4);border-radius:var(--fn-radius-md);font-size:var(--fn-text-sm);margin-bottom:var(--fn-space-4)}.fn-soon-page{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--fn-space-12) 0;color:var(--fn-text-muted);text-align:center;gap:var(--fn-space-2)}.fn-soon-page h2{color:var(--fn-text);font-size:var(--fn-text-lg);margin:0}.fn-bottomnav,.fn-more-sheet{display:none}.fn-login-page{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr;background:var(--fn-bg)}.fn-login-visual{background:var(--fn-bg-elevated);position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:center;padding:var(--fn-space-12)}.fn-login-visual:before{content:"";position:absolute;top:-20%;right:-20%;bottom:-20%;left:-20%;background:var(--fn-gradient);opacity:.18;filter:blur(80px)}.fn-login-visual h2{position:relative;font-size:var(--fn-text-3xl);font-weight:800;letter-spacing:-.02em;max-width:460px;text-wrap:balance}.fn-login-visual p{position:relative;color:var(--fn-text-secondary);max-width:420px}.fn-login-form-side{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--fn-space-8)}.fn-login-card{width:100%;max-width:380px}.fn-field{display:flex;flex-direction:column;gap:6px;margin-bottom:var(--fn-space-4)}.fn-field label{font-size:var(--fn-text-sm);font-weight:600;color:var(--fn-text-secondary)}.fn-field input,.fn-field textarea{padding:0 var(--fn-space-3);border-radius:var(--fn-radius-md);border:1px solid var(--fn-border-strong);background:var(--fn-surface);color:var(--fn-text);font-family:var(--fn-font);font-size:var(--fn-text-base)}.fn-field input{height:42px}.fn-field textarea{padding-top:var(--fn-space-3);padding-bottom:var(--fn-space-3);min-height:96px;resize:vertical}.fn-field input:focus,.fn-field textarea:focus{outline:none;border-color:var(--fn-accent);box-shadow:var(--fn-shadow-focus)}.fn-login-submit{width:100%;height:44px;justify-content:center;margin-top:var(--fn-space-2)}.fn-link-btn{background:none;border:none;color:var(--fn-accent);font-family:var(--fn-font);font-size:var(--fn-text-sm);font-weight:600;cursor:pointer;padding:0;text-align:left}.fn-link-btn:hover{text-decoration:underline}.fn-row-clickable{cursor:pointer}.fn-row-clickable:hover{background:var(--fn-surface-hover)}.fn-recovery-banner{margin-bottom:var(--fn-space-5);padding:var(--fn-space-4) var(--fn-space-5);background:#f59e0b1a;border:1px solid rgba(245,158,11,.35);border-radius:var(--fn-radius-lg)}.fn-recovery-banner-head{font-size:var(--fn-text-sm);font-weight:700;color:var(--fn-warning);margin-bottom:8px}.fn-recovery-banner p{margin:0 0 12px;font-size:12px;color:var(--fn-text-secondary)}.fn-recovery-banner-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.fn-recovery-banner-row code{flex:1;min-width:220px;background:var(--fn-bg);border:1px solid var(--fn-border);border-radius:var(--fn-radius-sm);padding:10px 14px;font-size:13px;color:var(--fn-warning);word-break:break-all;font-family:var(--fn-font-mono)}@media (max-width: 1100px){.fn-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fn-grid-2,.fn-grid-3{grid-template-columns:minmax(0,1fr)}}@media (max-width: 900px){.fn-login-page{grid-template-columns:1fr}.fn-login-visual{display:none}}@media (max-width: 768px){.fn-sidebar{display:none}.fn-content{padding:var(--fn-space-4);padding-bottom:calc(var(--fn-bottomnav-h) + var(--fn-space-6))}.fn-topbar{padding:0 var(--fn-space-4)}.fn-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.fn-bottomnav{display:flex;position:fixed;bottom:0;left:0;right:0;height:var(--fn-bottomnav-h);background:var(--fn-bg-elevated);border-top:1px solid var(--fn-border);z-index:20}.fn-bottomnav-item{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;background:none;border:none;color:var(--fn-text-muted);font-family:var(--fn-font);font-size:10px;cursor:pointer}.fn-bottomnav-item.active{color:var(--fn-accent)}.fn-more-sheet{display:block;position:fixed;top:0;right:0;bottom:0;left:0;background:#00000080;z-index:30}.fn-more-sheet-inner{position:absolute;left:0;right:0;bottom:0;background:var(--fn-bg-elevated);border-top:1px solid var(--fn-border);border-radius:var(--fn-radius-xl) var(--fn-radius-xl) 0 0;padding:var(--fn-space-3) var(--fn-space-4) var(--fn-space-8)}.fn-more-handle{width:40px;height:4px;border-radius:var(--fn-radius-pill);background:var(--fn-border-strong);margin:var(--fn-space-2) auto var(--fn-space-4)}.fn-more-item{width:100%;display:flex;align-items:center;gap:var(--fn-space-3);padding:var(--fn-space-3) var(--fn-space-2);background:none;border:none;color:var(--fn-text);font-family:var(--fn-font);font-size:var(--fn-text-base);cursor:pointer}.fn-soon-pill{margin-left:auto;font-size:10px;color:var(--fn-text-muted);background:var(--fn-surface);border:1px solid var(--fn-border);padding:2px 8px;border-radius:var(--fn-radius-pill)}}@media (max-width: 640px){.fn-kpi-grid{grid-template-columns:minmax(0,1fr)}.fn-topbar-actions .fn-icon-btn,.fn-btn-primary-label{display:none}.fn-owner-badge span{max-width:80px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}.fn-toolbar{display:flex;gap:var(--fn-space-3);align-items:center;flex-wrap:wrap;margin-bottom:var(--fn-space-5)}.fn-range-selector{display:inline-flex;gap:2px;padding:3px;background:var(--fn-surface);border:1px solid var(--fn-border);border-radius:var(--fn-radius-md)}.fn-range-btn{border:none;background:transparent;color:var(--fn-text-muted);font-family:var(--fn-font);font-size:var(--fn-text-sm);font-weight:600;padding:6px 12px;border-radius:var(--fn-radius-sm);cursor:pointer}.fn-range-btn.active{background:var(--fn-accent);color:#fff}.fn-segmented-tabs{display:flex;gap:var(--fn-space-2);border-bottom:1px solid var(--fn-border);margin-bottom:var(--fn-space-6);overflow-x:auto}.fn-segmented-tab{border:none;background:transparent;color:var(--fn-text-muted);font-family:var(--fn-font);font-size:var(--fn-text-sm);font-weight:600;padding:10px 4px;margin-right:var(--fn-space-5);cursor:pointer;border-bottom:2px solid transparent;white-space:nowrap}.fn-segmented-tab.active{color:var(--fn-text);border-bottom-color:var(--fn-accent)}.fn-grouped-tabs{margin-bottom:var(--fn-space-5)}.fn-grouped-tabs-groups{display:inline-flex;gap:2px;padding:3px;background:var(--fn-surface);border:1px solid var(--fn-border);border-radius:var(--fn-radius-md);margin-bottom:var(--fn-space-3)}.fn-grouped-tabs-group{border:none;background:transparent;color:var(--fn-text-muted);font-family:var(--fn-font);font-size:var(--fn-text-sm);font-weight:600;padding:7px 16px;border-radius:var(--fn-radius-sm);cursor:pointer;white-space:nowrap}.fn-grouped-tabs-group.active{background:var(--fn-accent);color:#fff}.fn-grouped-tabs-items{overflow-x:visible;flex-wrap:wrap;row-gap:2px;margin-bottom:var(--fn-space-6)}@media (max-width: 640px){.fn-grouped-tabs-groups{display:flex;width:100%}.fn-grouped-tabs-group{flex:1;text-align:center;padding:7px 6px}}.fn-progress-metric{display:flex;flex-direction:column;gap:8px}.fn-progress-metric-head{display:flex;justify-content:space-between;font-size:var(--fn-text-sm)}.fn-progress-track{height:10px;border-radius:var(--fn-radius-pill);background:var(--fn-bg-elevated);overflow:hidden}.fn-progress-fill{height:100%;border-radius:var(--fn-radius-pill);transition:width var(--fn-normal) var(--fn-ease)}.fn-progress-fill.ok{background:var(--fn-positive)}.fn-progress-fill.warning{background:var(--fn-warning)}.fn-progress-fill.exceeded{background:var(--fn-negative)}.fn-progress-status{font-size:12px;font-weight:600}.fn-owner-selector{position:relative}.fn-owner-badge{display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 var(--fn-space-3);border-radius:var(--fn-radius-md);border:1px solid var(--fn-border-strong);background:var(--fn-surface);color:var(--fn-text);font-family:var(--fn-font);font-size:var(--fn-text-sm);font-weight:600;cursor:default;white-space:nowrap}.fn-owner-badge-interactive{cursor:pointer}.fn-owner-badge-interactive:hover{background:var(--fn-surface-hover)}.fn-owner-badge svg:first-child{color:var(--fn-text-secondary);flex:0 0 auto}.fn-owner-badge-interactive svg:last-child{color:var(--fn-text-muted);flex:0 0 auto}.fn-owner-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:30}.fn-owner-dropdown{position:absolute;top:calc(100% + 6px);left:0;min-width:200px;z-index:31;background:var(--fn-surface);border:1px solid var(--fn-border);border-radius:var(--fn-radius-md);box-shadow:var(--fn-shadow-md);padding:6px;display:flex;flex-direction:column;gap:2px}.fn-owner-dropdown-item{display:block;width:100%;text-align:left;border:none;background:transparent;color:var(--fn-text);font-family:var(--fn-font);font-size:var(--fn-text-sm);font-weight:500;padding:8px 10px;border-radius:var(--fn-radius-sm);cursor:pointer}.fn-owner-dropdown-item:hover{background:var(--fn-surface-hover)}.fn-owner-dropdown-item.active{color:var(--fn-accent);font-weight:700}.fn-month-cursor-label{min-width:140px;text-align:center;text-transform:capitalize}.fn-progress-status.ok{color:var(--fn-positive)}.fn-progress-status.warning{color:var(--fn-warning)}.fn-progress-status.exceeded{color:var(--fn-negative)}.fn-insight-card{background:var(--fn-surface);border:1px solid var(--fn-border);border-radius:var(--fn-radius-lg);padding:var(--fn-space-4)}.fn-insight-label{font-size:var(--fn-text-sm);color:var(--fn-text-muted);margin:0 0 6px}.fn-insight-value{font-size:var(--fn-text-lg);font-weight:700;margin:0}.fn-insight-hint{font-size:12px;color:var(--fn-text-muted);margin:6px 0 0}.fn-donut-wrap{display:flex;align-items:center;gap:var(--fn-space-6);flex-wrap:wrap}.fn-donut-svg-wrap{position:relative;flex:0 0 auto}.fn-donut-center-label{fill:var(--fn-text-muted);font-size:11px;font-family:var(--fn-font)}.fn-donut-center-value{fill:var(--fn-text);font-size:15px;font-weight:700;font-family:var(--fn-font-mono)}.fn-donut-center-pct{fill:var(--fn-text-secondary);font-size:10px;font-family:var(--fn-font)}.fn-donut-legend{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px;flex:1;min-width:200px}.fn-donut-legend li{display:flex;align-items:center;gap:8px;font-size:var(--fn-text-sm);padding:5px 6px;margin:0 -6px;border-radius:var(--fn-radius-sm);transition:background var(--fn-fast) var(--fn-ease)}.fn-donut-legend li.active{background:var(--fn-surface-hover)}.fn-legend-dot{width:9px;height:9px;border-radius:50%;flex:0 0 auto}.fn-legend-label{flex:1}.fn-legend-value{color:var(--fn-text-secondary)}.fn-donut-slice-g{transition:opacity var(--fn-fast) var(--fn-ease),filter var(--fn-fast) var(--fn-ease)}.fn-donut-wrap circle{transition:transform var(--fn-fast) var(--fn-ease);outline:none}.fn-donut-slice-clickable{cursor:pointer}.fn-donut-slice-focusable{cursor:default}.fn-donut-legend-clickable{cursor:pointer;outline:none}.fn-donut-legend-focusable{cursor:default;outline:none}.fn-donut-legend-clickable:hover,.fn-donut-legend-focusable:hover{background:var(--fn-surface-hover)}.fn-donut-tooltip{position:absolute;transform:translate(-50%,-50%);display:flex;flex-direction:column;gap:2px;background:var(--fn-bg-elevated);border:1px solid var(--fn-border-strong);border-radius:var(--fn-radius-sm);padding:6px 10px;font-size:11px;white-space:nowrap;pointer-events:none;box-shadow:var(--fn-shadow-md);z-index:6}.fn-donut-tooltip strong{font-size:12px;color:var(--fn-text)}.fn-donut-tooltip span{color:var(--fn-text-muted)}.fn-source-note{font-size:11px;color:var(--fn-text-muted);margin:8px 0 0}.fn-search-input{width:100%;height:38px;padding:0 14px;border-radius:var(--fn-radius-md);border:1px solid var(--fn-border-strong);background:var(--fn-surface);color:var(--fn-text);font-family:var(--fn-font);font-size:var(--fn-text-sm)}.fn-market-group-title{font-size:13px;text-transform:uppercase;letter-spacing:.05em;color:var(--fn-text-secondary)}.fn-market-index-label{font-size:12px;font-weight:700;color:var(--fn-text);margin-bottom:6px}.fn-market-row{display:flex;justify-content:space-between;padding:6px 4px}.fn-tv-chart-box{position:relative;border-radius:var(--fn-radius-md);overflow:hidden;border:1px solid var(--fn-border);background:var(--fn-surface)}.fn-tv-chart-loading{position:absolute;top:0;right:0;bottom:0;left:0;z-index:1}.fn-tv-chart-error{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;color:var(--fn-text-muted);font-size:12px;text-align:center;padding:0 12px}.fn-chart-endpoints{display:flex;justify-content:space-between;font-size:12px;color:var(--fn-text-muted);margin-top:8px}.fn-modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#0000008c;display:flex;align-items:center;justify-content:center;z-index:100;padding:var(--fn-space-4)}.fn-modal-card{background:var(--fn-surface);border:1px solid var(--fn-border);border-radius:var(--fn-radius-lg);padding:var(--fn-space-6);width:100%;max-width:440px;max-height:90vh;overflow-y:auto;box-shadow:var(--fn-shadow-md)}.fn-btn-danger{display:inline-flex;align-items:center;gap:6px;height:36px;padding:0 var(--fn-space-4);border-radius:var(--fn-radius-md);border:none;background:var(--fn-negative);color:#fff;font-family:var(--fn-font);font-size:var(--fn-text-sm);font-weight:600;cursor:pointer}.fn-btn-danger:hover{filter:brightness(1.08)}.fn-btn-danger:disabled{opacity:.5;cursor:not-allowed;filter:none}.fn-budget-cards{display:none}.fn-budget-card{background:var(--fn-surface);border:1px solid var(--fn-border);border-radius:var(--fn-radius-lg);padding:var(--fn-space-4);display:flex;flex-direction:column;gap:10px}.fn-budget-card-head{display:flex;justify-content:space-between;align-items:center;font-size:var(--fn-text-sm);font-weight:600}.fn-budget-card-amounts{display:flex;justify-content:space-between;font-size:12px;color:var(--fn-text-muted)}.fn-goals-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--fn-grid-gap)}.fn-goal-card{background:var(--fn-surface);border:1px solid var(--fn-border);border-radius:var(--fn-radius-lg);padding:var(--fn-space-5);display:flex;flex-direction:column;gap:var(--fn-space-3)}.fn-goal-card-head{display:flex;align-items:center;gap:var(--fn-space-3)}.fn-goal-icon{font-size:22px;line-height:1}.fn-goal-title{flex:1;min-width:0}.fn-goal-name{font-weight:700;font-size:var(--fn-text-base);margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fn-goal-category{font-size:11px;color:var(--fn-text-muted);text-transform:capitalize}.fn-goal-amounts{display:flex;justify-content:space-between;font-size:var(--fn-text-sm)}.fn-goal-amounts strong{font-variant-numeric:tabular-nums;font-family:var(--fn-font-mono)}.fn-goal-forecast{font-size:12px;color:var(--fn-text-muted);display:flex;align-items:center;gap:6px}.fn-goal-forecast.warn{color:var(--fn-warning)}.fn-goal-forecast.ok{color:var(--fn-positive)}.fn-goal-actions{display:flex;gap:8px;margin-top:auto}.fn-settings-layout{display:grid;grid-template-columns:220px minmax(0,1fr);gap:var(--fn-space-6);align-items:start}.fn-settings-nav{display:flex;flex-direction:column;gap:2px;position:sticky;top:var(--fn-space-4)}.fn-settings-nav-item{display:flex;align-items:center;gap:var(--fn-space-3);padding:10px var(--fn-space-3);border-radius:var(--fn-radius-md);background:none;border:none;color:var(--fn-text-secondary);font-family:var(--fn-font);font-size:var(--fn-text-sm);cursor:pointer;text-align:left;width:100%}.fn-settings-nav-item:hover{background:var(--fn-surface-hover);color:var(--fn-text)}.fn-settings-nav-item.active{background:#7c3aed29;color:var(--fn-text);font-weight:600}.fn-settings-nav-item.active svg{color:var(--fn-accent)}.fn-settings-section-title{font-size:var(--fn-text-lg);font-weight:700;margin:0 0 4px}.fn-settings-section-subtitle{font-size:var(--fn-text-sm);color:var(--fn-text-muted);margin:0 0 var(--fn-space-5)}.fn-unavailable{display:flex;gap:var(--fn-space-3);align-items:flex-start;background:var(--fn-bg-elevated);border:1px dashed var(--fn-border-strong);border-radius:var(--fn-radius-md);padding:var(--fn-space-4);color:var(--fn-text-muted)}.fn-unavailable svg{flex:0 0 auto;margin-top:1px;color:var(--fn-text-muted)}.fn-unavailable-title{font-weight:600;color:var(--fn-text-secondary);margin:0 0 4px;font-size:var(--fn-text-sm)}.fn-unavailable-text{margin:0;font-size:12px;line-height:1.5}.fn-unavailable-ref{margin:6px 0 0;font-size:11px;font-family:var(--fn-font-mono);color:var(--fn-text-muted)}.fn-toggle{display:inline-flex;align-items:center;gap:var(--fn-space-3);cursor:pointer}.fn-toggle.disabled{cursor:not-allowed;opacity:.55}.fn-toggle input{position:absolute;opacity:0;width:1px;height:1px}.fn-toggle-track{width:40px;height:22px;border-radius:var(--fn-radius-pill);background:var(--fn-border-strong);position:relative;transition:background var(--fn-fast) var(--fn-ease);flex:0 0 auto}.fn-toggle-thumb{position:absolute;top:2px;left:2px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform var(--fn-fast) var(--fn-ease)}.fn-toggle input:checked+.fn-toggle-track{background:var(--fn-accent)}.fn-toggle input:checked+.fn-toggle-track .fn-toggle-thumb{transform:translate(18px)}.fn-toggle input:focus-visible+.fn-toggle-track{outline:2px solid var(--fn-accent);outline-offset:2px}.fn-toggle-label{font-size:var(--fn-text-sm)}.fn-settings-row{display:flex;align-items:center;justify-content:space-between;gap:var(--fn-space-3);padding:var(--fn-space-3) 0;border-bottom:1px solid var(--fn-border)}.fn-settings-row:last-child{border-bottom:none}.fn-settings-row-label{font-size:var(--fn-text-sm);font-weight:600}.fn-settings-row-hint{font-size:12px;color:var(--fn-text-muted);margin:2px 0 0}.fn-list-row{display:flex;align-items:center;gap:var(--fn-space-3);padding:var(--fn-space-3);border:1px solid var(--fn-border);border-radius:var(--fn-radius-md);margin-bottom:8px;font-size:var(--fn-text-sm)}.fn-list-row-main{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;display:inline-flex;align-items:center;gap:4px}.fn-list-row-main svg{flex-shrink:0}@media (max-width: 900px){.fn-settings-layout{grid-template-columns:minmax(0,1fr)}.fn-settings-nav{position:static;flex-direction:row;overflow-x:auto;border-bottom:1px solid var(--fn-border);padding-bottom:var(--fn-space-2)}.fn-settings-nav-item{flex:0 0 auto;white-space:nowrap}}@media (max-width: 768px){.fn-budget-table-wrap{display:none}.fn-budget-cards{display:flex;flex-direction:column;gap:var(--fn-space-3)}}
