:root,:root[data-theme=dark]{--bg: #0d0e13;--surface: #181923;--surface-raised: #20222e;--border: rgba(51, 65, 85, .5);--text: #e2e8f0;--text-secondary: #94a3b8;--accent: #6C5CE7;--accent-2: #B7AEF0;--accent-ink: #B7AEF0;--accent-contrast: #FFFFFF;--ok: #4ade80;--warn: #facc15;--warn-contrast: #0f172a;--danger: #f87171;--bar-track: #334155;--income: #3ecf8e;--expense: #f0997b;--savings: #6c5ce7;--shadow: 0 8px 24px rgba(0, 0, 0, .4);--neu-bg: #0d0e13;--neu-surface: #181923;--neu-shadow-dk: #060709;--neu-shadow-lt: #23252f;--neu-text: #F3F3F6;--neu-text-secondary: #9B9BA7;--neu-accent-ink: var(--accent-ink);--neu-track: #20222e}:root[data-theme=light]{--bg: #F1F1F5;--surface: #FFFFFF;--surface-raised: #F5F5F8;--border: rgba(148, 163, 184, .35);--text: #0f172a;--text-secondary: #64748b;--accent: #6C5CE7;--accent-2: #8E82E8;--accent-ink: #5A4BD4;--accent-contrast: #ffffff;--ok: #16a34a;--warn: #ca8a04;--warn-contrast: #ffffff;--danger: #dc2626;--bar-track: #e2e8f0;--income: #26a56e;--expense: #de7a54;--savings: #5a48d6;--shadow: 0 8px 24px rgba(15, 23, 42, .08);--neu-bg: #F1F1F5;--neu-surface: #FFFFFF;--neu-shadow-dk: #D6D6DE;--neu-shadow-lt: #FFFFFF;--neu-text: #1A1A22;--neu-text-secondary: #63636E;--neu-accent-ink: var(--accent-ink);--neu-track: #E6E6EC}:root{--neu-raised: 6px 6px 16px var(--neu-shadow-dk), -6px -6px 16px var(--neu-shadow-lt);--neu-raised-sm: 3px 3px 8px var(--neu-shadow-dk), -3px -3px 8px var(--neu-shadow-lt);--neu-inset: inset 5px 5px 10px var(--neu-shadow-dk), inset -5px -5px 10px var(--neu-shadow-lt);--neu-inset-sm: inset 2px 2px 5px var(--neu-shadow-dk), inset -2px -2px 5px var(--neu-shadow-lt);--radius-sm: 12px;--radius-md: 16px;--radius-lg: 20px;--radius-xl: 24px;--radius-card: 14px;--focus-ring: 0 0 0 3px color-mix(in srgb, var(--accent) 55%, transparent);--fs-kpi: clamp(18px, 4.5vw, 22px);--space-card: clamp(14px, 3.5vw, 20px);--success: var(--ok);--dur-fast: .14s;--dur: .2s;--ease: ease-out}*{box-sizing:border-box}html,body{margin:0;padding:0}body{background:var(--bg);color:var(--text);font-family:Hanken Grotesk Variable,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:15px;line-height:1.5}:root{--font-mono: "JetBrains Mono Variable", ui-monospace, SFMono-Regular, Menlo, Consolas, monospace}html,body{overscroll-behavior:none;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;text-size-adjust:100%}body{-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}input,textarea,select,[contenteditable=true],.selectable,.selectable *{-webkit-user-select:text;user-select:text;-webkit-touch-callout:default}button,a,[role=button],label,.nav-item,.row.clickable,.month-dot,.calendar-bill,.chip-option,.segment button{touch-action:manipulation}button{font:inherit;cursor:pointer}input,select,textarea{font:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(data:font/woff2;base64,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) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/hanken-grotesk-vietnamese-wght-normal-CHiFlh_0.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/hanken-grotesk-latin-ext-wght-normal-Dg-wlmqe.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Hanken Grotesk Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/hanken-grotesk-latin-wght-normal-CaVRRdDk.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(data:font/woff2;base64,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) format("woff2-variations");unicode-range:U+0460-052F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2) format("woff2-variations");unicode-range:U+0301,U+0400-045F,U+0490-0491,U+04B0-04B1,U+2116}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2) format("woff2-variations");unicode-range:U+0370-0377,U+037A-037F,U+0384-038A,U+038C,U+038E-03A1,U+03A3-03FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2) format("woff2-variations");unicode-range:U+0102-0103,U+0110-0111,U+0128-0129,U+0168-0169,U+01A0-01A1,U+01AF-01B0,U+0300-0301,U+0303-0304,U+0308-0309,U+0323,U+0329,U+1EA0-1EF9,U+20AB}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2) format("woff2-variations");unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono Variable;font-style:normal;font-display:swap;font-weight:100 800;src:url(/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2) format("woff2-variations");unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}.app{display:grid;grid-template-columns:230px 1fr;min-height:100vh}.app-main{padding:24px 32px 96px;max-width:1200px;width:100%;margin:0 auto;min-width:0}.sidebar{background:var(--surface);border-right:1px solid var(--border);padding:20px 12px;display:flex;flex-direction:column;gap:4px;position:sticky;top:0;height:100vh}.sidebar-title{font-size:18px;font-weight:700;padding:0 12px 12px;letter-spacing:-.02em}.sidebar .btn-primary{margin:0 8px 16px}.nav-item{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:8px;border:none;background:transparent;color:var(--text-secondary);font-size:14.5px;text-align:left;width:100%}.nav-item:hover{background:color-mix(in srgb,var(--text) 6%,transparent);color:var(--text)}.nav-item.active{background:color-mix(in srgb,var(--accent) 14%,transparent);color:var(--accent);font-weight:600}.nav-label{flex:1}.badge{background:var(--danger);color:#fff;font-size:11px;font-weight:700;border-radius:999px;min-width:18px;height:18px;display:inline-flex;align-items:center;justify-content:center;padding:0 5px}.badge-dot{width:8px;height:8px;border-radius:999px;background:var(--warn)}.tabbar,.fab,.fab-scan{display:none}@media(max-width:768px){.fab-scan{display:flex;position:fixed;right:16px;bottom:138px;width:52px;height:52px;border-radius:999px;background:var(--surface-raised);color:var(--text);border:1px solid var(--border);align-items:center;justify-content:center;box-shadow:var(--shadow);z-index:41}.app{grid-template-columns:1fr}.sidebar{display:none}.app-main{padding:16px 16px 96px}.tabbar{display:flex;position:fixed;bottom:0;left:0;right:0;background:var(--surface);border-top:1px solid var(--border);z-index:40}.tabbar .nav-item{flex-direction:column;gap:2px;font-size:10.5px;padding:8px 2px 10px;justify-content:center;position:relative}.tabbar .badge{position:absolute;top:4px;right:50%;transform:translate(16px)}.fab{display:flex;position:fixed;right:16px;bottom:72px;width:56px;height:56px;border-radius:999px;background:var(--accent);color:var(--accent-contrast);border:none;align-items:center;justify-content:center;box-shadow:var(--shadow);z-index:41}}.btn{border-radius:8px;border:1px solid var(--border);background:var(--surface-raised);color:var(--text);padding:8px 14px;font-size:14px;display:inline-flex;align-items:center;gap:6px;justify-content:center}.btn:hover{border-color:var(--text-secondary)}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-contrast);font-weight:600}.btn-primary:hover{filter:brightness(1.08);border-color:var(--accent)}.btn-danger{background:transparent;border-color:var(--danger);color:var(--danger)}.btn-sm{padding:4px 10px;font-size:13px;border-radius:6px}.btn-ghost{background:transparent;border-color:transparent;color:var(--text-secondary)}.btn-ghost:hover{color:var(--text);border-color:transparent;background:color-mix(in srgb,var(--text) 6%,transparent)}.icon-btn{background:transparent;border:none;color:var(--text-secondary);padding:4px;border-radius:6px;display:inline-flex}.icon-btn:hover{color:var(--text);background:color-mix(in srgb,var(--text) 8%,transparent)}.page-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:20px;flex-wrap:wrap}.page-title{font-size:22px;font-weight:700;margin:0;letter-spacing:-.02em}.card{background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:18px}.card-title{font-size:14px;font-weight:600;color:var(--text-secondary);margin:0 0 12px;display:flex;justify-content:space-between;align-items:center;gap:8px}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:16px}@media(max-width:900px){.grid-2{grid-template-columns:1fr}}.kpi-row{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:16px}@media(max-width:900px){.kpi-row{grid-template-columns:repeat(2,1fr)}}.kpi-label{font-size:12.5px;color:var(--text-secondary);margin-bottom:4px}.kpi-value{font-size:21px;font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.kpi-value.positive{color:var(--ok)}.kpi-value.negative{color:var(--danger)}.kpi-row.kpi-row-2{grid-template-columns:repeat(2,1fr)}.kpi-row.kpi-row-3{grid-template-columns:repeat(3,1fr)}.kpi-wide{margin-bottom:16px;display:flex;align-items:center;justify-content:space-between;gap:12px}.kpi-wide .kpi-label{margin-bottom:0}.progress{background:var(--bar-track);border-radius:999px;height:10px;overflow:hidden}.progress-fill{height:100%;border-radius:999px;transition:width .2s ease}.progress-fill.ok{background:var(--ok)}.progress-fill.warning{background:var(--warn)}.progress-fill.over{background:var(--danger)}.progress-fill.accent{background:var(--accent)}.chip{display:inline-flex;align-items:center;gap:4px;font-size:12px;font-weight:600;border-radius:999px;padding:2px 9px;white-space:nowrap}.chip-neutral{background:color-mix(in srgb,var(--text-secondary) 18%,transparent);color:var(--text)}.chip-ok{background:color-mix(in srgb,var(--ok) 22%,transparent);color:var(--ok)}.chip-warn{background:var(--warn);color:var(--warn-contrast)}.chip-danger{background:color-mix(in srgb,var(--danger) 25%,transparent);color:var(--danger)}.row-list{display:flex;flex-direction:column}.row{display:flex;align-items:center;gap:12px;padding:10px 4px;border-bottom:1px solid var(--border)}.row:last-child{border-bottom:none}.row.clickable{cursor:pointer;border-radius:8px;padding-left:8px;padding-right:8px}.row.clickable:hover{background:color-mix(in srgb,var(--text) 5%,transparent)}.row-icon{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:17px;flex-shrink:0}.row-main{flex:1;min-width:0}.row-title{font-size:14.5px;font-weight:500}.row-sub{font-size:12.5px;color:var(--text-secondary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.row-amount{font-variant-numeric:tabular-nums;font-weight:600;font-size:14.5px;white-space:nowrap}.row-actions{display:flex;align-items:center;gap:12px}.group-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:4px 0 6px;border-bottom:1px solid var(--border)}.month-dots{display:flex;gap:3px;margin-top:5px;flex-wrap:wrap}.month-dot{width:13px;height:13px;border-radius:50%;padding:0;border:none;cursor:pointer}.month-dot.paid{background:var(--ok)}.month-dot.unpaid{background:var(--warn)}.month-dot.none{background:var(--border);opacity:.4;cursor:default}.amount-expense{color:var(--expense)}.amount-income{color:var(--income)}.amount-savings{color:var(--savings)}.logo{display:inline-flex;align-items:center;gap:9px;min-width:0}.logo-mark{border-radius:8px;flex-shrink:0}.logo-stacked{flex-direction:column;gap:6px}.logo-word{font-weight:700;letter-spacing:.005em;line-height:1.15;white-space:nowrap}.logo-nurtiva{color:#a29bfe}.logo-economate{color:#6c5ce7}:root[data-theme=light] .logo-nurtiva{color:#7d6ef0}:root[data-theme=light] .logo-economate{color:var(--accent-ink)}.sidebar-title .logo-nurtiva{color:var(--text)}.sidebar-title .logo-economate{color:#a29bfe}:root[data-theme=light] .sidebar-title .logo-economate{color:var(--accent-ink)}.kpi-value,.row-amount,.amount-income,.amount-expense,.amount-savings,.donut-center-amount,.settle-status-line,.family-table td.ta-right,.recharts-cartesian-axis-tick-value{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.day-heading{font-size:12.5px;font-weight:600;color:var(--text-secondary);text-transform:capitalize;margin:16px 0 2px}.modal-overlay{position:fixed;top:0;right:0;bottom:0;left:0;background:#02061799;display:flex;align-items:flex-start;justify-content:center;padding:8vh 16px 16px;z-index:50;overflow-y:auto}.modal{background:var(--surface-raised);border:1px solid var(--border);border-radius:14px;box-shadow:var(--shadow);width:100%;max-width:480px;padding:20px}.modal-title{margin:0 0 16px;font-size:17px;font-weight:700}.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:20px;flex-wrap:wrap}.modal-actions .spacer{flex:1}.scan-choice{display:flex;flex-direction:column;gap:10px}.scan-choice .btn{justify-content:center;padding:12px}.field{margin-bottom:14px}.field-label{display:block;font-size:13px;font-weight:600;color:var(--text-secondary);margin-bottom:6px}.input{width:100%;background:var(--surface);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:9px 12px;font-size:15px}.input:focus{outline:2px solid var(--accent);outline-offset:0;border-color:transparent}.input-amount{font-size:22px;font-weight:700;font-variant-numeric:tabular-nums}.input-suffix{position:relative}.input-suffix .suffix{position:absolute;right:12px;top:50%;transform:translateY(-50%);color:var(--text-secondary);font-size:14px;pointer-events:none}.input-suffix select.suffix{pointer-events:auto;cursor:pointer;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:6px;padding:3px 6px}.field-error{color:var(--danger);font-size:12.5px;margin-top:4px}.segment{display:flex;background:var(--surface);border:1px solid var(--border);border-radius:9px;padding:3px;gap:2px}.segment button{flex:1;border:none;background:transparent;color:var(--text-secondary);padding:7px 10px;border-radius:7px;font-size:13.5px;font-weight:600}.segment button.active{background:var(--accent);color:var(--accent-contrast)}.chip-grid{display:flex;flex-wrap:wrap;gap:6px}.chip-option{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--border);background:var(--surface);color:var(--text);border-radius:999px;padding:6px 12px;font-size:13.5px}.chip-option:hover{border-color:var(--text-secondary)}.chip-option.selected{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 15%,transparent);color:var(--accent);font-weight:600}.toasts{position:fixed;bottom:20px;right:20px;display:flex;flex-direction:column;gap:8px;z-index:60}.toast{background:var(--surface-raised);border:1px solid var(--border);border-radius:10px;box-shadow:var(--shadow);padding:12px 14px;display:flex;align-items:center;gap:12px;max-width:380px;font-size:14px}.toast .btn-sm{flex-shrink:0}.banner{display:flex;align-items:center;gap:10px;background:color-mix(in srgb,var(--danger) 14%,var(--surface));border:1px solid color-mix(in srgb,var(--danger) 45%,transparent);border-radius:10px;padding:10px 14px;margin-bottom:18px;font-size:14px}.banner.banner-warn{background:color-mix(in srgb,var(--warn) 12%,var(--surface));border-color:color-mix(in srgb,var(--warn) 45%,transparent)}.banner-text{flex:1}.calendar{display:grid;grid-template-columns:repeat(7,1fr);gap:4px}.calendar-weekday{text-align:center;font-size:11.5px;font-weight:600;color:var(--text-secondary);padding:4px 0}.calendar-day{min-height:76px;border:1px solid var(--border);border-radius:8px;padding:4px;font-size:12px;display:flex;flex-direction:column;gap:3px;overflow:hidden}.calendar-day.outside{opacity:.35}.calendar-day.today{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent)}.calendar-day .day-number{font-size:11.5px;color:var(--text-secondary);font-weight:600}.calendar-bill{border-radius:5px;padding:1px 5px;font-size:10.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;text-align:left;border:none;cursor:pointer}.calendar-bill.state-overdue,.calendar-bill.state-dueToday{background:color-mix(in srgb,var(--danger) 28%,transparent);color:var(--danger)}.calendar-bill.state-dueSoon{background:var(--warn);color:var(--warn-contrast)}.calendar-bill.state-upcoming{background:color-mix(in srgb,var(--text-secondary) 20%,transparent);color:var(--text)}.calendar-bill.state-paid{background:color-mix(in srgb,var(--ok) 22%,transparent);color:var(--ok);text-decoration:line-through}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:24px}.login-card{width:100%;max-width:380px}.login-title{font-size:20px;font-weight:700;margin:0 0 2px;letter-spacing:-.02em}.login-card form{margin-top:16px}.login-info{background:color-mix(in srgb,var(--accent) 14%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 45%,transparent);color:var(--text);border-radius:8px;padding:9px 12px;font-size:13px;margin-bottom:12px}.link-button{background:none;border:none;padding:0;color:var(--accent);font:inherit;font-weight:600;text-decoration:underline;cursor:pointer}.receipt-preview{display:flex;gap:12px;align-items:flex-start}.receipt-thumb{border:1px solid var(--border);border-radius:8px;padding:0;background:var(--surface);overflow:hidden;width:72px;height:72px;flex-shrink:0;cursor:pointer}.receipt-thumb img{width:72px;height:72px;object-fit:cover;display:block}.receipt-actions{display:flex;flex-direction:column;gap:6px;align-items:flex-start}.lightbox{position:fixed;top:0;right:0;bottom:0;left:0;background:#020617d9;display:flex;align-items:center;justify-content:center;z-index:70;padding:24px;cursor:zoom-out}.lightbox img{max-width:100%;max-height:100%;border-radius:8px}.spin{animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.skeleton{position:relative;overflow:hidden;background:var(--bar-track);border-radius:6px}.skeleton:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;transform:translate(-100%);background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--text) 8%,transparent),transparent);animation:shimmer 1.4s ease-in-out infinite}@keyframes shimmer{to{transform:translate(100%)}}.skeleton-title{height:26px;width:180px;border-radius:8px}.skeleton-text{height:12px}.sk-tall{height:20px;margin-top:8px}.sk-w-15{width:15%}.sk-w-30{width:30%}.sk-w-40{width:40%}.sk-w-60{width:60%}.sk-w-70{width:70%}.skeleton-card{margin-top:16px}.skeleton-avatar{width:34px;height:34px;border-radius:9px;flex-shrink:0}.skeleton-row{display:flex;align-items:center;gap:12px;padding:12px 4px;border-bottom:1px solid var(--border)}.skeleton-row:last-child{border-bottom:none}.skeleton-row-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:6px}.page-transition{animation:page-enter var(--dur, .2s) var(--ease, ease-out)}@keyframes page-enter{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.empty{text-align:center;padding:36px 20px;color:var(--text-secondary)}.empty-icon{font-size:34px;margin-bottom:8px}.empty p{margin:0 0 14px;font-size:14.5px}.month-picker{display:inline-flex;align-items:center;gap:6px;font-weight:600;font-size:15px}.month-picker .label{min-width:130px;text-align:center;text-transform:capitalize}.muted{color:var(--text-secondary)}.small{font-size:12.5px}.flex{display:flex;align-items:center;gap:8px}.flex-between{display:flex;align-items:center;justify-content:space-between;gap:8px}.stack{display:flex;flex-direction:column;gap:12px}.family-row{display:flex;align-items:center;justify-content:space-between;gap:8px;flex-wrap:wrap}.family-row>span:first-child{min-width:0;overflow-wrap:anywhere}.section-title{font-size:13px;font-weight:700;color:var(--text-secondary);text-transform:uppercase;letter-spacing:.04em;margin:20px 0 8px}.section-title.danger{color:var(--danger)}:root[data-skin=neu]{--bg: var(--neu-bg);--surface: var(--neu-surface);--surface-raised: var(--neu-surface);--text: var(--neu-text);--text-secondary: var(--neu-text-secondary);--bar-track: var(--neu-track);--border: color-mix(in srgb, var(--neu-text-secondary) 16%, transparent)}:root[data-skin=neu] .card{background:var(--neu-surface);border:none;border-radius:var(--radius-lg);box-shadow:var(--neu-raised);padding:var(--space-card)}:root[data-skin=neu] .kpi-value{font-size:var(--fs-kpi)}:root[data-skin=neu] .btn{background:var(--neu-surface);border:none;border-radius:var(--radius-md);box-shadow:var(--neu-raised-sm);transition:box-shadow .14s ease,filter .14s ease}:root[data-skin=neu] .btn:hover{box-shadow:var(--neu-raised);filter:brightness(1.02)}:root[data-skin=neu] .btn:active{box-shadow:var(--neu-inset-sm);filter:none}:root[data-skin=neu] .btn-primary{background:var(--accent);color:var(--accent-contrast);box-shadow:var(--neu-raised-sm)}:root[data-skin=neu] .btn-primary:hover{box-shadow:var(--neu-raised);filter:brightness(1.06)}:root[data-skin=neu] .btn-danger{background:var(--neu-surface);color:var(--danger);box-shadow:var(--neu-raised-sm)}:root[data-skin=neu] .btn-sm{border-radius:var(--radius-sm)}:root[data-skin=neu] .btn-ghost,:root[data-skin=neu] .icon-btn{background:transparent;box-shadow:none}:root[data-skin=neu] .link-button{color:var(--accent-ink, var(--accent))}:root[data-skin=neu] .input{background:var(--neu-surface);border:none;border-radius:var(--radius-md);box-shadow:var(--neu-inset)}:root[data-skin=neu] .input:focus{box-shadow:var(--neu-inset);border-color:transparent}:root[data-skin=neu] .segment{background:var(--neu-surface);border:none;border-radius:var(--radius-md);box-shadow:var(--neu-inset-sm)}:root[data-skin=neu] .segment button{border-radius:var(--radius-sm)}:root[data-skin=neu] .segment button.active{background:var(--accent);color:var(--accent-contrast);box-shadow:var(--neu-raised-sm)}:root[data-skin=neu] .chip-option{background:var(--neu-surface);border:none;box-shadow:var(--neu-raised-sm)}:root[data-skin=neu] .chip-option:hover{box-shadow:var(--neu-raised)}:root[data-skin=neu] .chip-option.selected{background:var(--accent);color:var(--accent-contrast);box-shadow:var(--neu-raised-sm)}:root[data-skin=neu] .progress{background:var(--neu-track);box-shadow:var(--neu-inset-sm)}:root[data-skin=neu] .modal{background:var(--neu-surface);border:none;border-radius:var(--radius-xl);box-shadow:var(--neu-raised),0 24px 60px #02061773}:root[data-skin=neu] .toast{background:var(--neu-surface);border:none;border-radius:var(--radius-md);box-shadow:var(--neu-raised)}:root[data-skin=neu] .banner{border:none;border-radius:var(--radius-md)}:root[data-skin=neu] .sidebar{background:var(--neu-surface);border-right:none;box-shadow:var(--neu-raised);z-index:20}:root[data-skin=neu] .nav-item{border-radius:var(--radius-md);transition:box-shadow .14s ease}:root[data-skin=neu] .nav-item:hover{background:color-mix(in srgb,var(--neu-text) 6%,transparent)}:root[data-skin=neu] .nav-item.active{background:var(--neu-surface);color:var(--accent);box-shadow:var(--neu-inset-sm)}:root[data-skin=neu] .tabbar{background:var(--neu-surface);border-top:none;box-shadow:0 -6px 20px #0206172e}:root[data-skin=neu] .tabbar .nav-item.active{background:transparent;box-shadow:none;color:var(--accent)}:root[data-skin=neu] .fab{box-shadow:var(--neu-raised),0 8px 22px color-mix(in srgb,var(--accent) 38%,transparent)}:root[data-skin=neu] .calendar-day{border:none;border-radius:var(--radius-sm);background:var(--neu-surface);box-shadow:var(--neu-inset-sm)}:root[data-skin=neu] .calendar-day.today{box-shadow:var(--neu-inset-sm),inset 0 0 0 2px var(--accent)}:root[data-skin=neu] .app-header{position:sticky;top:0;z-index:30;display:flex;align-items:center;justify-content:flex-end;gap:10px;margin:calc(var(--space-card) * -1) calc(var(--space-card) * -1) 12px;padding:10px var(--space-card);padding-top:calc(10px + env(safe-area-inset-top));background:color-mix(in srgb,var(--neu-bg) 88%,transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}:root[data-skin=neu] .user-area{position:relative}:root[data-skin=neu] .user-chip{display:inline-flex;align-items:center;gap:9px;padding:6px 12px 6px 6px;border:none;border-radius:999px;background:var(--neu-surface);box-shadow:var(--neu-raised-sm);color:var(--text);min-height:44px}:root[data-skin=neu] .user-chip:hover{box-shadow:var(--neu-raised)}:root[data-skin=neu] .user-chip:active{box-shadow:var(--neu-inset-sm)}:root[data-skin=neu] .user-avatar{width:32px;height:32px;border-radius:999px;display:grid;place-items:center;background:var(--accent);color:var(--accent-contrast);font-weight:700;font-size:13px;flex-shrink:0;text-transform:uppercase}:root[data-skin=neu] .user-name{font-size:14px;font-weight:600;max-width:160px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}:root[data-skin=neu] .user-caret{color:var(--text-secondary);flex-shrink:0}:root[data-skin=neu] .scope-chip{padding:6px 12px;gap:7px}:root[data-skin=neu] .scope-name{font-size:14px;font-weight:600}:root[data-skin=neu] .user-menu{position:absolute;top:calc(100% + 8px);right:0;min-width:220px;padding:6px;background:var(--neu-surface);border-radius:var(--radius-md);box-shadow:var(--neu-raised),0 16px 40px #0206174d;z-index:60}:root[data-skin=neu] .user-menu-head{padding:8px 12px 10px;border-bottom:1px solid var(--border);margin-bottom:6px}:root[data-skin=neu] .user-menu-name{font-weight:600;font-size:14px}:root[data-skin=neu] .user-menu-mail{font-size:12.5px;color:var(--text-secondary);overflow:hidden;text-overflow:ellipsis}:root[data-skin=neu] .menu-item{display:flex;align-items:center;gap:9px;width:100%;padding:10px 12px;border:none;background:transparent;border-radius:var(--radius-sm);color:var(--text);text-align:left;font-size:14px;min-height:44px}:root[data-skin=neu] .menu-item:hover{background:color-mix(in srgb,var(--neu-text) 8%,transparent)}:root[data-skin=neu] .menu-item.danger{color:var(--danger)}:root[data-skin=neu] .skeleton-title,:root[data-skin=neu] .skeleton-avatar{box-shadow:var(--neu-inset-sm);background:var(--neu-track)}:root[data-skin] .rail-toggle{display:none}@media(min-width:1025px){:root[data-skin] .app{grid-template-columns:230px 1fr}}@media(min-width:640px)and (max-width:1024px){:root[data-skin] .app{grid-template-columns:76px 1fr}:root[data-skin] .app[data-rail=expanded]{grid-template-columns:230px 1fr}:root[data-skin] .sidebar{display:flex}:root[data-skin] .tabbar,:root[data-skin] .fab{display:none}:root[data-skin] .rail-toggle{display:inline-flex;align-self:center;margin-bottom:6px}:root[data-skin] .app:not([data-rail=expanded]) .nav-label,:root[data-skin] .app:not([data-rail=expanded]) .nav-newlabel,:root[data-skin] .app:not([data-rail=expanded]) .sidebar-title{display:none}:root[data-skin] .app:not([data-rail=expanded]) .nav-item{justify-content:center;padding:12px 0;position:relative}:root[data-skin] .app:not([data-rail=expanded]) .sidebar .btn-primary{padding:12px 0;justify-content:center}:root[data-skin] .app:not([data-rail=expanded]) .nav-item .badge,:root[data-skin] .app:not([data-rail=expanded]) .nav-item .badge-dot{position:absolute;top:5px;right:16px}}@media(max-width:639px){:root[data-skin] .app{grid-template-columns:1fr}:root[data-skin] .sidebar{display:none}:root[data-skin] .tabbar{display:flex;flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x proximity;scroll-behavior:smooth;-webkit-overflow-scrolling:touch;scrollbar-width:none;overscroll-behavior-x:contain;padding-bottom:env(safe-area-inset-bottom)}:root[data-skin] .tabbar::-webkit-scrollbar{display:none}:root[data-skin] .tabbar .nav-item{flex:0 0 auto;width:auto;scroll-snap-align:center;min-width:60px;min-height:44px;white-space:nowrap}:root[data-skin] .tabbar .nav-label{white-space:nowrap}:root[data-skin] .fab{display:flex;bottom:calc(72px + env(safe-area-inset-bottom))}:root[data-skin] .fab-scan{bottom:calc(148px + env(safe-area-inset-bottom))}:root[data-skin] .app-main{padding:16px 16px calc(148px + env(safe-area-inset-bottom))}:root[data-skin] .kpi-row{grid-template-columns:1fr 1fr}:root[data-skin] .grid-2{grid-template-columns:minmax(0,1fr)}:root[data-skin] .calendar{grid-template-columns:repeat(7,minmax(0,1fr))}:root[data-skin] .kpi-row>.card{min-width:0}:root[data-skin] .kpi-value{font-size:18px;overflow-wrap:anywhere}:root[data-skin] .card-title{flex-wrap:wrap}:root[data-skin] .app-main{overflow-x:hidden}:root[data-skin] .user-name,:root[data-skin] .scope-name{display:none}:root[data-skin] .user-chip{padding:6px}:root[data-skin] .scope-chip{padding:8px}:root[data-skin] .user-menu{min-width:200px}:root[data-skin] .chart-split{flex-direction:column;align-items:stretch}:root[data-skin] .chart-split>:first-child{width:100%!important}:root[data-skin] .page-transition{animation-name:page-enter-phone}}@keyframes page-enter-phone{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}@media(max-width:480px){:root[data-skin] .loan-row{flex-wrap:wrap;row-gap:8px}:root[data-skin] .loan-row .row-actions{flex:1 0 100%;justify-content:flex-end}}@media(max-width:639px)and (orientation:landscape){:root[data-skin] .tabbar{padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}:root[data-skin] .fab,:root[data-skin] .fab-scan{right:calc(16px + env(safe-area-inset-right))}}:root[data-skin] .sidebar .nav-item.active{background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent-ink, var(--accent));box-shadow:inset 3px 0 0 var(--accent);font-weight:600}:root[data-skin] .sidebar .nav-item.active:hover{background:color-mix(in srgb,var(--accent) 24%,transparent)}:root[data-skin] .app-header{justify-content:space-between;gap:12px}:root[data-skin] .app-title{font-size:20px;font-weight:700;letter-spacing:-.02em;color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}:root[data-skin] .app-header-actions{display:flex;align-items:center;gap:10px;flex-shrink:0}:root[data-skin] .search-pill{display:inline-flex;align-items:center;gap:8px;min-width:220px;padding:9px 14px;border-radius:999px;background:var(--neu-surface);box-shadow:var(--neu-inset-sm);color:var(--text-secondary);font-size:14px}@media(max-width:639px){:root[data-skin] .search-pill{display:none}:root[data-skin] .app-title{font-size:18px}:root[data-skin] .tabbar{display:flex;flex-wrap:nowrap;overflow:visible;padding-bottom:env(safe-area-inset-bottom)}:root[data-skin] .tabbar .nav-item{flex:1 1 0;width:auto;min-width:0;flex-direction:column;gap:3px;padding:8px 2px;min-height:52px;font-size:10.5px;justify-content:center;align-items:center;position:relative;color:var(--text-secondary)}:root[data-skin] .tabbar .nav-item .nav-label{flex:none;max-width:100%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}:root[data-skin] .tabbar .nav-item.active,:root[data-skin] .tabbar .nav-item.active .nav-label{color:var(--accent-ink)}:root[data-skin] .tabbar .nav-item .badge{position:absolute;top:3px;right:50%;transform:translate(14px)}:root[data-skin] .tabbar .nav-item .badge-dot{position:absolute;top:6px;right:50%;transform:translate(12px)}}:root[data-skin] .sheet-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:55;background:#0206178c;display:flex;align-items:flex-end}:root[data-skin] .sheet{width:100%;background:var(--neu-surface);border-radius:var(--radius-xl) var(--radius-xl) 0 0;box-shadow:0 -12px 40px #02061773;padding:10px 12px calc(16px + env(safe-area-inset-bottom));animation:sheet-up var(--dur) var(--ease)}@keyframes sheet-up{0%{transform:translateY(100%)}to{transform:translateY(0)}}:root[data-skin] .sheet-handle{width:40px;height:4px;border-radius:999px;background:var(--border);margin:4px auto 12px}:root[data-skin] .sheet-list{display:flex;flex-direction:column;gap:2px}:root[data-skin] .sheet-item{display:flex;align-items:center;gap:12px;width:100%;padding:14px 12px;border:none;background:transparent;border-radius:var(--radius-md);color:var(--text);font-size:15px;text-align:left;min-height:48px}:root[data-skin] .sheet-item:hover{background:color-mix(in srgb,var(--neu-text) 7%,transparent)}:root[data-skin] .sheet-item.active{color:var(--accent-ink);font-weight:600}:root[data-skin] .sheet-profile{display:flex;align-items:center;gap:12px;padding:12px;margin-bottom:12px;border:1px solid var(--border);border-radius:12px}:root[data-skin] .sheet-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}:root[data-skin] .sheet-tile{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:20px 8px;border:1px solid var(--border);border-radius:12px;background:transparent;color:var(--text);font-size:13.5px;min-height:88px}:root[data-skin] .sheet-tile svg{color:var(--accent-2)}:root[data-skin] .sheet-tile:hover{background:color-mix(in srgb,var(--accent) 8%,transparent)}:root[data-skin] .sheet-tile.active{border-color:color-mix(in srgb,var(--accent) 40%,var(--border));color:var(--accent-ink);font-weight:600}:root[data-skin] .sheet-logout{width:100%;margin-top:12px;justify-content:center;color:var(--danger);border-color:color-mix(in srgb,var(--danger) 35%,var(--border))}:root[data-skin] .tabbar .nav-item{position:relative}:root[data-skin] .tabbar .nav-item.active:before{content:"";position:absolute;top:0;left:22%;right:22%;height:3px;border-radius:0 0 3px 3px;background:var(--accent)}:root[data-skin] .card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-card);box-shadow:none}:root[data-skin] .page-toolbar{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin-bottom:16px;flex-wrap:wrap}:root[data-skin] .page-month,:root[data-skin] .page-caption{font-size:13px;color:var(--text-secondary);margin:0 0 16px}:root[data-skin] .page-month{text-transform:capitalize}:root[data-skin] .kpi-head{display:flex;align-items:center;gap:9px;margin-bottom:12px}:root[data-skin] .kpi-chip{width:34px;height:34px;border-radius:10px;display:grid;place-items:center;flex-shrink:0;background:color-mix(in srgb,var(--accent) 16%,transparent);color:var(--accent-2)}:root[data-skin] .kpi-head .kpi-label{margin:0}:root[data-skin] .kpi-card{position:relative;cursor:pointer;transition:border-color .15s ease,background .15s ease}:root[data-skin] .kpi-card:hover{border-color:color-mix(in srgb,var(--accent) 35%,var(--border))}:root[data-skin] .kpi-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}:root[data-skin] .kpi-card .kpi-head{padding-right:24px}:root[data-skin] .kpi-eye{position:absolute;top:8px;right:8px;width:24px;height:24px;display:grid;place-items:center;padding:0;border:0;border-radius:6px;background:transparent;color:#0f172a8c;cursor:pointer;transition:color .15s ease}:root[data-skin][data-theme=dark] .kpi-eye{color:#ffffff8c}:root[data-skin] .kpi-eye:hover{color:#0f172ae6}:root[data-skin][data-theme=dark] .kpi-eye:hover{color:#ffffffe6}:root[data-skin] .kpi-eye:focus-visible{outline:2px solid var(--accent);outline-offset:2px}:root[data-skin] .donut-center{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;align-content:center;text-align:center;pointer-events:none}:root[data-skin] .donut-center-amount{font-size:16px;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text)}:root[data-skin] .donut-center-sub{font-size:11.5px;color:var(--text-secondary)}:root[data-skin] .donut-pct{font-variant-numeric:tabular-nums}:root[data-skin] .hero-trend{display:flex;align-items:center;gap:8px;margin-top:8px}:root[data-skin] .trend-badge{display:inline-flex;align-items:center;gap:4px;padding:3px 9px;border-radius:999px;font-size:12px;font-weight:600;font-variant-numeric:tabular-nums}:root[data-skin] .trend-badge.trend-up{background:color-mix(in srgb,var(--income) 12%,transparent);color:var(--income)}:root[data-skin] .trend-badge.trend-down{background:color-mix(in srgb,var(--expense) 12%,transparent);color:var(--expense)}:root[data-skin] .trend-badge-sm{margin-top:8px;padding:2px 7px;font-size:11px;gap:3px}:root[data-skin] .kpi-chip-income{background:color-mix(in srgb,var(--income) 16%,transparent);color:var(--income)}:root[data-skin] .kpi-chip-expense{background:color-mix(in srgb,var(--expense) 16%,transparent);color:var(--expense)}:root[data-skin] .hero-budget{margin-top:12px}:root[data-skin] .hero-budget-label{margin-top:5px;text-align:right;font-variant-numeric:tabular-nums}:root[data-skin] .kpi-hero{margin-bottom:16px;background:color-mix(in srgb,var(--accent) 8%,var(--surface));border-color:color-mix(in srgb,var(--accent) 25%,var(--border))}:root[data-skin] .kpi-hero .kpi-value{font-size:28px;overflow-wrap:anywhere}@media(max-width:639px){:root[data-skin] .kpi-hero .kpi-value{font-size:24px}:root[data-skin] .donut-center-amount{font-size:13px}:root[data-skin] .donut-center-sub{font-size:10.5px}}@media(min-width:640px){:root[data-skin] .bills-grid{grid-template-columns:1.6fr 1fr}}:root[data-skin] .list-chip{width:34px;height:34px;border-radius:10px;display:inline-grid;place-items:center;flex-shrink:0;font-size:16px;background:color-mix(in srgb,var(--accent) 12%,transparent)}.login-screen.login-split{flex-direction:row;align-items:stretch;padding:0;gap:0}.login-hero{position:relative;overflow:hidden;flex:1;display:flex;flex-direction:column;justify-content:center;gap:22px;padding:56px 48px;background:linear-gradient(160deg,#17161f,#1e1b2e);color:#ffffffeb}.login-hero:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:radial-gradient(600px circle at 30% 35%,rgba(108,92,231,.28),transparent 65%);pointer-events:none}.login-hero>*{position:relative;max-width:420px}.login-hero-brand{display:flex;align-items:center;gap:10px;font-size:15px;font-weight:600;letter-spacing:.01em}.login-hero-brand img{border-radius:9px}.login-hero-headline{margin:0;font-size:30px;line-height:1.25;font-weight:700;color:#fff}.login-hero-headline-dim{color:#ffffff8c}.login-hero-props{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:14px}.login-hero-props li{display:flex;align-items:flex-start;gap:10px;font-size:14.5px;line-height:1.45;color:#ffffffd9}.login-hero-props svg{flex-shrink:0;margin-top:1px;color:#a29bfe}.login-hero-badge{display:inline-flex;align-items:center;gap:6px;align-self:flex-start;margin-top:14px;padding:5px 11px;border:1px solid rgba(162,155,254,.35);border-radius:999px;font-size:12px;color:#ffffffb3}.login-panel{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:24px;background:var(--bg)}.login-card{max-width:400px;width:100%}.login-mobile-brand,.login-mobile-extras{display:none}@media(max-width:767px){.login-hero{display:none}.login-screen.login-split{background:linear-gradient(170deg,#17161f,#1e1b2e 55%,#141319)}.login-panel{background:transparent}.login-mobile-brand{display:flex;flex-direction:column;align-items:center;gap:6px;margin-bottom:16px;text-align:center;color:#ffffffeb}.login-mobile-brand img{border-radius:10px}.login-mobile-brand>span:last-child{font-size:13px;color:#fff9}.login-mobile-extras{display:flex;flex-direction:column;align-items:center;gap:14px;margin-top:18px;max-width:400px;width:100%}.login-mobile-extras .login-hero-props{color:#ffffffd9;gap:10px}.login-mobile-extras .login-hero-props li{font-size:13.5px}.login-mobile-extras .login-hero-badge{align-self:center;margin-top:2px}}.family-grid{display:grid;grid-template-columns:minmax(0,1fr) 360px;gap:16px;align-items:start}.family-main,.family-rail{min-width:0}@media(max-width:1023px){.family-grid{grid-template-columns:minmax(0,1fr)}}:root[data-skin] .settle-head{display:flex;justify-content:space-between;align-items:flex-start;gap:8px;margin-bottom:12px}:root[data-skin] .settle-status{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px;padding:14px 16px;border:1px solid var(--border);border-radius:12px;background:color-mix(in srgb,var(--accent) 6%,var(--surface))}:root[data-skin] .settle-status-line{font-size:22px;font-weight:700;font-variant-numeric:tabular-nums}:root[data-skin] .settle-status-line.negative{color:var(--danger)}:root[data-skin] .settle-status-line.positive{color:var(--ok)}:root[data-skin] .member-card{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--border);border-radius:12px}:root[data-skin] .member-avatar{width:40px;height:40px;font-size:14px}:root[data-skin] .member-check{color:var(--ok);flex-shrink:0}:root[data-skin] .member-menu{position:relative}:root[data-skin] .switch{position:relative;width:40px;height:22px;flex-shrink:0;padding:0;border:1px solid var(--border);border-radius:999px;background:color-mix(in srgb,var(--text-secondary) 25%,transparent);cursor:pointer;transition:background .15s ease,border-color .15s ease}:root[data-skin] .switch-knob{position:absolute;top:2px;left:2px;width:16px;height:16px;border-radius:999px;background:#fff;transition:transform .15s ease}:root[data-skin] .switch.switch-on{background:var(--accent);border-color:var(--accent)}:root[data-skin] .switch.switch-on .switch-knob{transform:translate(18px)}:root[data-skin] .switch:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.table-scroll{overflow-x:auto}:root[data-skin] .family-table{width:100%;border-collapse:collapse}:root[data-skin] .family-table th{text-align:left;font-size:12px;font-weight:600;color:var(--text-secondary);padding:6px 10px 6px 0;border-bottom:1px solid var(--border);white-space:nowrap}:root[data-skin] .family-table td{padding:9px 10px 9px 0;border-bottom:1px solid var(--border);vertical-align:middle}:root[data-skin] .family-table tr:last-child td{border-bottom:0}.ta-right{text-align:right!important}.nowrap{white-space:nowrap}
