@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-vietnamese-opsz-normal-Czevyj-6.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-ext-opsz-normal-CJcjJNj7.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Fraunces Variable;font-style:normal;font-display:swap;font-weight:100 900;src:url(/assets/fraunces-latin-opsz-normal-DihXLNYH.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(data:font/woff2;base64,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)format("woff2-variations");unicode-range:U+460-52F,U+1C80-1C8A,U+20B4,U+2DE0-2DFF,U+A640-A69F,U+FE2E-FE2F}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-cyrillic-wght-normal-Dvxsihut.woff2)format("woff2-variations");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-greek-wght-normal-DL7QRZyv.woff2)format("woff2-variations");unicode-range:U+370-377,U+37A-37F,U+384-38A,U+38C,U+38E-3A1,U+3A3-3FF}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-vietnamese-wght-normal-usUDDRr7.woff2)format("woff2-variations");unicode-range:U+102-103,U+110-111,U+128-129,U+168-169,U+1A0-1A1,U+1AF-1B0,U+300-301,U+303-304,U+308-309,U+323,U+329,U+1EA0-1EF9,U+20AB}@font-face{font-family:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-latin-ext-wght-normal-Ch3YOpNY.woff2)format("woff2-variations");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,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:Manrope Variable;font-style:normal;font-display:swap;font-weight:200 800;src:url(/assets/manrope-latin-wght-normal-DHIcAJRg.woff2)format("woff2-variations");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}:root{--chart-expenses:#e0492a;--chart-incomes:#2e8b5c;--chart-goals:#5b67e0;--chart-subs:#008e86;--chart-projects:#b7791f;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--salvia:#1e4d3a;--salvia-2:#2f6a51;--tomate:#ff5a36;--tomate-ink:#b23a1c;--tomate-soft:#ffe6de;--bg:#f1eee6;--bg-grad:none;--surface:#fbfaf6;--surface2:#f5f2ea;--surface3:#ece8dd;--border:#e2ddd0;--border-strong:#d3ccbc;--text:#14261e;--text-soft:#2e3f36;--text-muted:#56645c;--text-faint:#8c978f;--row-hover:#f2efe6;--accent:#ff5a36;--on-accent:#14261e;--link:#b23a1c;--primary:#1e4d3a;--primary-strong:#1e4d3a;--primary-light:#e3ece6;--brand-1:#1e4d3a;--brand-2:#2f6a51;--brand-grad:#2f6a51;--brand-ink:#163a2c;--side-bg:#1e4d3a;--side-fg:#c6d8cd;--side-on:#f6f2e8;--side-on-bg:#f6f2e81f;--side-hover:#f6f2e812;--side-border:transparent;--hero-bg:#1e4d3a;--on-hero:#f6f2e8;--hero-muted:#b4ccbf;--blob:#ff5a36;--blob-2:#2f6a51;--chip-on-bg:#1e4d3a;--chip-on-fg:#f6f2e8;--warn-bg:#fde9c8;--warn-fg:#7a4a00;--warn-ink:#5a3600;--warn-tile-bg:#fdf0da;--warn-tile-border:#f0d9ae;--ok-bg:#ddefe4;--ok-fg:#1e5a3a;--danger:#b23a1c;--danger-bg:#ffe6de;--success:#2f6a51;--warning:#8a5a00;--radius:24px;--radius-md:18px;--radius-sm:14px;--radius-xs:10px;--shadow:none;--shadow-lg:0 16px 40px #14261e29;--shadow-accent:0 10px 24px #14261e40;--ring:0 0 0 3px #1e4d3a2e;--sidebar-w:248px;--bottom-nav-h:76px;--fab-size:60px;--font:"Manrope Variable", "Manrope", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--font-display:"Fraunces Variable", "Fraunces", Georgia, "Times New Roman", serif}.dark{--chart-expenses:#f0522f;--chart-incomes:#3a9d6a;--chart-goals:#6f7bef;--chart-subs:#0e9d92;--chart-projects:#ba8420;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--tomate:#ff6a48;--tomate-ink:#ff9c80;--tomate-soft:#3a1d15;--salvia-2:#2a5f48;--bg:#0f1914;--surface:#16231c;--surface2:#13201a;--surface3:#1d2c24;--border:#26362d;--border-strong:#34473c;--text:#ede8dc;--text-soft:#cfd5cc;--text-muted:#a3b2a9;--text-faint:#6f7f76;--row-hover:#1b2b22;--accent:#ff6a48;--on-accent:#10180f;--link:#ff9c80;--primary:#8cc7a5;--primary-strong:#8cc7a5;--primary-light:#1e4d3a;--brand-grad:#4e9a72;--brand-ink:#2a5f48;--side-bg:#0b130f;--side-fg:#9fb2a7;--side-on:#ede8dc;--side-on-bg:#1e4d3a;--side-hover:#ede8dc0f;--side-border:#1e2c25;--hero-bg:#1e4d3a;--on-hero:#f6f2e8;--hero-muted:#a9c7b7;--blob:#ff6a48;--blob-2:#2a5f48;--chip-on-bg:#ede8dc;--chip-on-fg:#0f1914;--warn-bg:#3a2c12;--warn-fg:#f5c274;--warn-ink:#fbe3b8;--warn-tile-bg:#2a2213;--warn-tile-border:#43361a;--ok-bg:#16372a;--ok-fg:#7fd6a6;--danger:#ff9c80;--danger-bg:#3a1d15;--success:#7fd6a6;--warning:#f5c274;--shadow-lg:0 16px 40px #00000080;--shadow-accent:0 10px 24px #00000080;--ring:0 0 0 3px #8cc7a540}*{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%}body{font-family:var(--font);background:var(--bg);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;line-height:1.5}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:10px}::-webkit-scrollbar-thumb:hover{background:var(--text-faint)}h1,h2,h3{letter-spacing:-.01em;line-height:1.2}a{color:var(--link)}:focus-visible{outline:2px solid var(--primary);outline-offset:2px}.display{font-family:var(--font-display);letter-spacing:-.02em;font-weight:700}.brand-mark{flex:none;display:block}.brand-name{font-family:var(--font-display);letter-spacing:-.02em;font-size:22px;font-weight:700}.layout-desktop{min-height:100vh;display:flex}.desktop-sidebar{width:var(--sidebar-w);background:var(--side-bg);border-right:1px solid var(--side-border);scrollbar-width:none;flex-direction:column;flex-shrink:0;gap:24px;height:100vh;padding:24px 16px;display:flex;position:sticky;top:0;overflow-y:auto}.desktop-sidebar::-webkit-scrollbar{display:none}.header-brand{align-items:center;gap:12px;padding:0 8px;display:flex}.brand-logo{background:var(--accent);width:36px;height:36px;color:var(--on-accent);border-radius:11px;flex:none;justify-content:center;align-items:center;font-weight:800;display:flex}.header-title{font-family:var(--font-display);letter-spacing:-.02em;color:var(--side-on);font-size:22px;font-weight:700}.sidebar-addbtn{border-radius:14px;justify-content:center;width:100%;height:48px;font-size:15px;font-weight:800}.sidebar-section{flex-direction:column;gap:4px;display:flex}.sidebar-item{cursor:pointer;height:44px;color:var(--side-fg);text-align:left;width:100%;font-size:14px;font-weight:600;font-family:var(--font);background:0 0;border:none;border-radius:12px;align-items:center;gap:12px;padding:0 12px;transition:background .12s,color .12s;display:flex}.sidebar-item svg{flex:none}.sidebar-item>span:first-of-type{flex:1}.sidebar-item:hover{background:var(--side-hover);color:var(--side-on)}.sidebar-item.active{background:var(--side-on-bg);color:var(--side-on);font-weight:800}.nav-dot{background:var(--accent);border-radius:50%;flex:none;width:8px;height:8px}.sidebar-badge{background:var(--accent);min-width:22px;height:22px;color:var(--on-accent);border-radius:999px;justify-content:center;align-items:center;padding:0 7px;font-size:12px;font-weight:800;display:inline-flex}.desktop-main{flex-direction:column;flex:1;min-width:0;display:flex}.theme-btn{background:var(--surface);border:1px solid var(--border);cursor:pointer;min-width:44px;height:40px;font-family:var(--font);color:var(--text);border-radius:12px;justify-content:center;align-items:center;gap:4px;padding:0 12px;font-size:13px;font-weight:800;transition:background .12s,border-color .12s;display:flex}.theme-btn:hover{background:var(--surface2);border-color:var(--border-strong)}.sidebar-footer{border-top:1px solid #f6f2e81f;margin-top:auto;padding-top:12px}.dark .sidebar-footer{border-top-color:var(--side-border)}.sidebar-mini-stat{justify-content:space-between;padding:5px 12px;font-size:.78rem;display:flex}.sms-label{color:var(--side-fg)}.sms-value{font-variant-numeric:tabular-nums;color:var(--side-on);font-weight:700}.logout-item{margin-top:auto}.desktop-content{flex:1;width:100%;max-width:1280px;margin:0 auto;padding:32px}.layout-mobile{flex-direction:column;min-height:100vh;display:flex}.mobile-header{background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--border);z-index:100;justify-content:space-between;align-items:center;gap:8px;padding:12px 16px;display:flex;position:sticky;top:0}.mobile-header-left{align-items:center;gap:10px;min-width:0;display:flex}.mobile-header-title{font-family:var(--font-display);letter-spacing:-.02em;white-space:nowrap;text-overflow:ellipsis;font-size:22px;font-weight:700;overflow:hidden}.mobile-header-right{align-items:center;gap:6px;display:flex}.mobile-content{padding:16px 12px 0;padding-bottom:calc(var(--bottom-nav-h) + var(--fab-size) + 28px);flex:1}.mobile-bottom-nav{height:calc(var(--bottom-nav-h) + env(safe-area-inset-bottom,0px));padding:8px 12px calc(12px + env(safe-area-inset-bottom,0px));background:var(--surface);border-top:1px solid var(--border);z-index:200;position:fixed;bottom:0;left:0;right:0}.dark .mobile-bottom-nav{background:#0b130f}.bottom-nav-scroll{-webkit-overflow-scrolling:touch;scrollbar-width:none;gap:4px;height:100%;display:flex;overflow-x:auto}.bottom-nav-scroll::-webkit-scrollbar{display:none}.bottom-nav-item{cursor:pointer;min-width:56px;color:var(--text-muted);font-size:11px;font-weight:600;font-family:var(--font);background:0 0;border:none;border-radius:14px;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;padding:4px;transition:color .12s,background .12s;display:flex}.bottom-nav-item:hover{color:var(--text)}.bottom-nav-item.active{color:var(--primary);background:var(--primary-light);font-weight:800}.dark .bottom-nav-item.active{color:var(--text)}.mobile-fab{bottom:calc(var(--bottom-nav-h) + 20px + env(safe-area-inset-bottom,0px));width:var(--fab-size);height:var(--fab-size);background:var(--accent);color:var(--on-accent);cursor:pointer;box-shadow:var(--shadow-accent);z-index:201;border:none;border-radius:20px;justify-content:center;align-items:center;transition:transform .15s;display:flex;position:fixed;right:20px}.mobile-fab:hover{transform:translateY(-1px)}.mobile-fab:active{transform:scale(.96)}.sug-bar{background:var(--primary-light);border:1px solid color-mix(in srgb, var(--primary) 30%, transparent);color:var(--text);border-radius:12px;align-items:center;gap:8px;margin-top:8px;padding:8px 10px;font-size:12.5px;display:flex}.sug-bar .sug-icon{color:var(--accent);flex:none;display:flex}.sug-bar .sug-text{flex:1;line-height:1.35}.sug-bar .sug-text b{color:var(--primary)}.sug-bar button{flex-shrink:0}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:16px;padding:20px 22px}.card-header{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:8px;margin-bottom:14px;display:flex}.card h3{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:12px;font-weight:800}.card h4{font-size:14px;font-weight:800}.card-total{font-family:var(--font-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:1.35rem;font-weight:700}.form-row{grid-template-columns:1fr 1fr;gap:12px;margin-bottom:12px;display:grid}.form-row.three{grid-template-columns:1fr 1fr 1fr}.form-group{flex-direction:column;gap:6px;display:flex}.form-group label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:12px;font-weight:800}.form-group input:where(:not([type=checkbox]):not([type=radio])),.form-group select,.form-group textarea{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface2);min-height:44px;color:var(--text);font-size:14px;font-family:var(--font);width:100%;padding:10px 14px;transition:border-color .12s,box-shadow .12s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--primary);box-shadow:var(--ring);outline:none}.form-group textarea{resize:vertical;min-height:60px}.form-group input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent);cursor:pointer;flex:none;margin:0}.form-group label.invit-check{text-transform:none;letter-spacing:0;min-height:44px;color:var(--text);cursor:pointer;font-size:14px}.form-actions{flex-wrap:wrap;gap:10px;margin-top:16px;display:flex}.quick-tags{flex-wrap:wrap;gap:4px;margin-top:4px;display:flex}.btn{border-radius:var(--radius-sm);cursor:pointer;white-space:nowrap;height:44px;font-size:14px;font-weight:800;font-family:var(--font);border:1px solid #0000;justify-content:center;align-items:center;gap:8px;padding:0 18px;text-decoration:none;transition:background .14s,border-color .14s,color .14s,transform .14s;display:inline-flex}.btn:disabled{opacity:.55;cursor:default}.btn.primary{background:var(--accent);color:var(--on-accent)}.btn.primary:hover:not(:disabled){background:color-mix(in srgb, var(--accent) 88%, var(--text))}.btn.primary:active{transform:translateY(1px)}.btn.secondary{background:var(--brand-1);color:var(--on-hero)}.btn.danger{background:var(--danger-bg);color:var(--danger)}.btn.danger:hover:not(:disabled),.btn.danger-solid{background:var(--danger);color:var(--surface)}.btn.danger-solid:hover:not(:disabled){background:color-mix(in srgb, var(--danger) 85%, var(--text))}.btn.danger-solid:disabled{opacity:.45;cursor:not-allowed}.danger-zone{border-color:color-mix(in srgb, var(--danger) 35%, var(--border))}.danger-zone h3{color:var(--danger)}.delete-confirm .delete-warning{color:var(--text-soft);margin:0 0 16px;font-size:14px;line-height:1.5}.delete-confirm .form-group label{text-transform:none;letter-spacing:0;color:var(--text);font-size:14px}.btn.outline{background:var(--surface);border-color:var(--border-strong);color:var(--text);font-weight:700}.btn.outline:hover:not(:disabled){background:var(--surface2)}.btn.sm{border-radius:var(--radius-xs);height:34px;padding:0 12px;font-size:13px}.btn-tiny{border:1px solid var(--border-strong);cursor:pointer;color:var(--text-muted);font-size:.7rem;font-weight:700;font-family:var(--font);background:0 0;border-radius:8px;padding:3px 9px;transition:all .12s}.btn-tiny:hover{background:var(--surface2);color:var(--text)}.row-actions{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.table-wrap{border-radius:var(--radius-sm);overflow-x:auto}table{border-collapse:collapse;width:100%;font-size:14px}th,td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:12px 14px}th{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;background:var(--surface2);font-size:12px;font-weight:800}tbody tr{transition:background .1s}tbody tr:hover{background:var(--row-hover)}tbody tr:last-child td{border-bottom:none}tr.total-row{font-weight:800}tr.total-row td{border-top:2px solid var(--text);padding-top:12px}.td-amount{font-variant-numeric:tabular-nums;font-weight:800}.td-meta{color:var(--text-muted);margin-top:1px;font-size:12px;display:block}.cc-action{margin:3px 0 0 6px;text-decoration:none;display:inline-flex}.td-muted{color:var(--text-muted);font-size:13px}.td-icon{text-align:center;width:40px}.row-link{cursor:pointer}.row-link:hover td{background:var(--row-hover)}.stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:12px;margin-bottom:16px;display:grid}.stat{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow);cursor:pointer;flex-direction:column;justify-content:flex-end;gap:4px;padding:18px 20px;transition:border-color .15s,background .15s;display:flex}.stat:hover{border-color:var(--border-strong);background:var(--row-hover)}.stat .label{color:var(--text-muted);font-size:14px;font-weight:600}.stat .value{font-family:var(--font-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:28px;font-weight:700}.stat .value.positive{color:var(--success)}.stat .value.negative{color:var(--danger)}.stat .value.warning{color:var(--warning)}.stat .value.primary{color:var(--primary)}.progress-wrap{background:var(--surface3);border-radius:20px;height:8px;overflow:hidden}.progress-fill{background:var(--brand-grad);border-radius:20px;height:100%;transition:width .35s}.progress-fill.warning{background:#e0a43a}.progress-fill.danger{background:var(--accent)}.progress-fill.success{background:var(--success)}.bar-list{flex-direction:column;gap:10px;margin-top:10px;display:flex}.bar-row{align-items:center;gap:12px;display:flex}.bar-label{min-width:100px;font-size:13px;font-weight:600}.bar-value{text-align:right;font-variant-numeric:tabular-nums;min-width:140px;font-size:13px;font-weight:800}.search-box{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.search-input-wrap{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface2);min-width:160px;height:44px;color:var(--text-muted);flex:1;align-items:center;gap:10px;padding:0 14px;transition:box-shadow .12s,border-color .12s;display:flex}.search-input-wrap:focus-within{border-color:var(--primary);box-shadow:var(--ring)}.search-input-wrap input{color:var(--text);font-size:14px;font-family:var(--font);background:0 0;border:none;outline:none;flex:1;padding:9px 0}.search-box select{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);height:44px;color:var(--text);font-size:14px;font-weight:600;font-family:var(--font);cursor:pointer;padding:0 12px}.week-grid{grid-template-columns:repeat(auto-fill,minmax(104px,1fr));gap:10px;display:grid}.week-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);text-align:center;box-shadow:var(--shadow);padding:12px 8px;font-size:13px}.week-item .wk-num{font-size:14px;font-weight:800}.week-item .wk-meta{color:var(--text-muted);margin-top:3px;font-size:11px}.week-item .wk-amount{font-family:var(--font-display);font-variant-numeric:tabular-nums;margin-top:4px;font-size:16px;font-weight:700}.week-item .wk-amount.positive{color:var(--success)}.week-item .wk-amount.negative{color:var(--danger)}.sanity-list{list-style:none}.sanity-item{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:10px 0;font-size:14px;display:flex}.sanity-item:last-child{border:none}.sanity-ok{color:var(--success)}.sanity-warn{color:var(--warning)}.sanity-err{color:var(--danger)}.empty{text-align:center;color:var(--text-muted);flex-direction:column;align-items:center;gap:10px;padding:36px 16px;display:flex}.empty p{font-size:14px}.empty .empty-ico{opacity:.5}.empty .empty-ok{color:var(--success);display:flex}.h3-icon{align-items:center;gap:8px;display:flex}.h3-icon svg{color:var(--primary);flex:none}.msg-line{align-items:center;gap:6px;display:flex}.msg-line svg{flex:none}.td-link{align-items:center;gap:4px;display:flex}.delta{align-items:center;gap:3px;display:inline-flex}.icon-success{color:var(--success)}.icon-warning{color:var(--warning)}.icon-danger{color:var(--danger)}.tag{background:var(--surface2);height:24px;color:var(--text);border-radius:999px;align-items:center;padding:0 10px;font-size:12px;font-weight:700;display:inline-flex}.tag-ocio,.tag-leisure{color:#a3290f;background:#ffe6de}.tag-comida,.tag-food{color:#45621a;background:#edf5e1}.tag-bebida,.tag-drink{color:#15574f;background:#ddf1ee}.tag-transporte,.tag-transport{color:#274b72;background:#e4edf6}.tag-estancia,.tag-stay{color:#7a5206;background:#fbf0d9}.tag-ahorroinversion{color:#6e2a5b;background:#f4e4ef}.tag-productos{color:#93224a;background:#fce6ee}.tag-deporteejercicio{color:#45621a;background:#edf5e1}.tag-farmacia{color:#6e2a5b;background:#f4e4ef}.tag-fijo{color:#2e3f36;background:#ece8dd}.tag-puntual{color:#7a5206;background:#fbf0d9}.tag-viajes{color:#274b72;background:#e4edf6}.tag-inversion{color:#1e5a3a;background:#ddefe4}.tag-niveldevida{color:#15574f;background:#ddf1ee}.dark .tag{color:var(--text)}.dark .tag-ocio{color:#ffaf9a;background:#3a1d15}.dark .tag-comida,.dark .tag-deporteejercicio{color:#c6e29a;background:#223218}.dark .tag-bebida,.dark .tag-niveldevida{color:#8fe3d6;background:#133430}.dark .tag-transporte,.dark .tag-viajes{color:#b7cfea;background:#182838}.dark .tag-estancia,.dark .tag-puntual{color:#f2d395;background:#33280f}.dark .tag-ahorroinversion,.dark .tag-farmacia{color:#edb3da;background:#35192d}.dark .tag-productos{color:#f5b3ca;background:#3a1826}.dark .tag-fijo{color:#cfd5cc;background:#1d2c24}.dark .tag-inversion{color:#7fd6a6;background:#16372a}.pill{border-radius:999px;align-items:center;height:24px;padding:0 10px;font-size:12px;font-weight:700;display:inline-flex}.pill-ok{background:var(--ok-bg);color:var(--ok-fg)}.pill-warning{background:var(--warn-bg);color:var(--warn-fg)}.pill-danger{background:var(--danger-bg);color:var(--danger)}.modal-overlay{-webkit-backdrop-filter:blur(4px);z-index:1000;background:#0f191480;justify-content:center;align-items:center;padding:16px;animation:.16s fadeIn;display:flex;position:fixed;inset:0}.modal{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:580px;max-height:90vh;box-shadow:var(--shadow-lg);padding:0;animation:.22s cubic-bezier(.2,.8,.2,1) slideUp;overflow-y:auto}.modal-sm{max-width:460px}.modal-header{justify-content:space-between;align-items:center;gap:12px;padding:22px 24px 0;display:flex}.modal-header h2{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-size:24px;font-weight:700}.modal-close{background:var(--surface2);border:1px solid var(--border);cursor:pointer;width:40px;height:40px;color:var(--text-muted);border-radius:12px;flex:none;justify-content:center;align-items:center;font-size:20px;transition:all .12s;display:flex}.modal-close:hover{background:var(--surface3);color:var(--text)}.modal-body{padding:18px 24px 24px}.modal-details{margin:10px 0;font-size:14px}.modal-details summary{cursor:pointer;color:var(--text-muted);padding:6px 0;font-weight:700;list-style-position:inside}.modal-details summary:hover{color:var(--text)}.modal-details[open] summary{margin-bottom:10px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(24px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}.upcoming-grid{grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:12px;margin-top:10px;display:grid}.upcoming-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);box-shadow:var(--shadow);flex-direction:column;gap:6px;padding:18px;display:flex}.upcoming-card.urgent{border-color:var(--warn-tile-border);background:var(--warn-tile-bg)}.upcoming-name{font-size:15px;font-weight:800}.upcoming-amount{font-family:var(--font-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums;font-size:24px;font-weight:700}.upcoming-card.urgent .upcoming-amount,.upcoming-card.urgent .upcoming-meta{color:var(--warn-fg)}.upcoming-meta{color:var(--text-muted);font-size:13px}.upcoming-actions{margin-top:4px}.chart-container{width:100%;height:260px;margin-top:10px}.chart-container.chart-pie{height:290px}.chart-container.chart-small{height:200px}.recharts-cartesian-grid line{stroke:var(--border)}.recharts-text{fill:var(--text-muted);font-family:var(--font);font-size:12px}.recharts-default-tooltip{box-shadow:var(--shadow-lg);background:var(--surface)!important;border:1px solid var(--border)!important;border-radius:12px!important}.recharts-tooltip-label{font-weight:800;color:var(--text)!important}.recharts-legend-item-text{color:var(--text-soft)!important}.goals-grid{grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px;display:grid}.goal-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);flex-direction:column;gap:10px;padding:22px;transition:border-color .15s,background .15s;display:flex}.goal-card:hover{border-color:var(--border-strong)}.goal-card.goal-done{border-color:color-mix(in srgb, var(--success) 45%, var(--border))}.goal-card.goal-urgent{border-color:var(--warn-tile-border);background:var(--warn-tile-bg)}.goal-header{justify-content:space-between;align-items:center;gap:8px;display:flex}.goal-name{font-size:16px;font-weight:800}.goal-amounts{font-variant-numeric:tabular-nums;align-items:baseline;gap:6px;display:flex}.goal-current{font-family:var(--font-display);letter-spacing:-.02em;color:var(--text);font-size:30px;font-weight:700}.goal-sep{color:var(--text-faint);font-size:15px}.goal-target{color:var(--text-muted);font-size:15px;font-weight:700}.goal-progress{height:10px}.goal-meta{color:var(--text-muted);flex-wrap:wrap;gap:14px;font-size:13px;display:flex}.goal-cat{color:var(--primary);background:var(--primary-light);border-radius:999px;align-self:flex-start;padding:3px 10px;font-size:12px;font-weight:700;display:inline-block}.dark .goal-cat{color:var(--text)}.goal-notes{color:var(--text-muted);font-size:13px;font-style:italic}.hero-card,.balance-hero,.proj-hero{isolation:isolate;background:var(--hero-bg);color:var(--on-hero);border-radius:var(--radius);padding:24px 28px;position:relative;overflow:hidden}.hero-card:before,.balance-hero:before,.proj-hero:before{content:"";z-index:-1;background:var(--blob-2);border-radius:50%;width:170px;height:170px;position:absolute;top:-110px;right:120px}.hero-card:after,.balance-hero:after,.proj-hero:after{content:"";z-index:-1;background:var(--blob);border-radius:50%;width:200px;height:200px;position:absolute;top:-64px;right:-36px}.hero-label{color:var(--hero-muted);font-size:14px;font-weight:700}.hero-num{font-family:var(--font-display);letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:58px;font-weight:700;line-height:1}.hero-sub{color:var(--hero-muted);font-size:14px;font-weight:600}.hero-sub a{color:var(--on-hero);font-weight:800}.dashboard{flex-direction:column;gap:16px;display:flex}.dashboard .card{margin-bottom:0}.dash-grid{grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);align-items:start;gap:16px;display:grid}.dash-col{flex-direction:column;gap:16px;min-width:0;display:flex}button.xg-tile{font:inherit;color:inherit;text-align:left;cursor:pointer}button.xg-tile:hover{border-color:var(--border-strong);background:var(--row-hover)}.balance-hero{flex-direction:column;justify-content:flex-end;gap:6px;min-height:172px;display:flex}.balance-label{color:var(--hero-muted);font-size:14px;font-weight:700}.balance-amount{font-family:var(--font-display);font-variant-numeric:tabular-nums;letter-spacing:-.03em;margin:2px 0;font-size:58px;font-weight:700;line-height:1}.balance-currency{color:var(--hero-muted);font-size:22px;font-weight:600}.balance-sub{color:var(--hero-muted);font-size:14px;font-weight:600}.month-snapshot{gap:12px;margin-top:12px;display:flex}.ms-item{text-align:center;flex:1}.ms-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:12px;font-weight:800;display:block}.ms-value{font-family:var(--font-display);letter-spacing:-.02em;font-variant-numeric:tabular-nums;margin-top:3px;font-size:22px;font-weight:700;display:block}.ms-value.positive{color:var(--success)}.ms-value.negative{color:var(--danger)}.ms-total{border-left:1px solid var(--border)}.clickable{cursor:pointer;transition:border-color .15s,background .15s}.clickable:hover{border-color:var(--border-strong);background:var(--row-hover)}.recent-list{flex-direction:column;margin-top:6px;display:flex}.recent-item{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:12px 0;font-size:14px;display:flex}.recent-item:last-child{border:none}.recent-left{align-items:center;gap:12px;min-width:0;display:flex}.recent-text{flex-direction:column;gap:2px;min-width:0;display:flex}.recent-meta{color:var(--text-muted);font-size:12px}.recent-date{color:var(--text-muted);font-variant-numeric:tabular-nums;min-width:40px;font-size:12px;font-weight:700}.recent-date.urgent{color:var(--danger);font-weight:800}.recent-desc{white-space:nowrap;text-overflow:ellipsis;font-weight:700;overflow:hidden}.recent-amount{font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:800}.card-total.positive{color:var(--success)}.card-total.negative{color:var(--danger)}.chart-legend-row{color:var(--text-muted);flex-wrap:wrap;justify-content:center;gap:18px;margin-top:10px;font-size:13px;display:flex}.chart-legend-row .legend-dot{vertical-align:middle;border-radius:50%;width:10px;height:10px;margin-right:5px;display:inline-block}.comparison-grid{grid-template-columns:1fr 1fr;gap:18px;margin-top:10px;display:grid}.more-grid{grid-template-columns:1fr 1fr;gap:14px;padding:4px 0;display:grid}.more-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-md);cursor:pointer;color:var(--text);text-align:center;box-shadow:var(--shadow);font-family:var(--font);flex-direction:column;align-items:center;gap:8px;padding:24px 12px;transition:border-color .16s,background .16s;display:flex}.more-card:hover{border-color:var(--border-strong);background:var(--row-hover)}.more-icon{color:var(--primary);background:var(--primary-light);border-radius:16px;justify-content:center;align-items:center;width:52px;height:52px;display:flex}.dark .more-icon{color:var(--text)}.more-label{font-size:15px;font-weight:800}.more-desc{color:var(--text-muted);font-size:12px}.back-btn{background:var(--surface);border:1px solid var(--border);cursor:pointer;width:40px;height:40px;color:var(--text);border-radius:12px;flex:none;justify-content:center;align-items:center;margin-right:2px;transition:all .12s;display:flex}.back-btn:hover{background:var(--surface2);border-color:var(--border-strong)}.page-head{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:20px;display:flex}.page-title{font-family:var(--font-display);letter-spacing:-.03em;font-size:44px;font-weight:700;line-height:1}.page-sub{color:var(--text-muted);font-size:14px}.proj-hero{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:14px;min-height:150px;margin-bottom:16px;display:flex}.proj-hero .proj-name{font-family:var(--font-display);letter-spacing:-.02em;font-size:32px;font-weight:700;line-height:1.1}.proj-hero .proj-total{font-family:var(--font-display);letter-spacing:-.03em;font-variant-numeric:tabular-nums;font-size:44px;font-weight:700;line-height:1}.proj-hero .proj-meta{color:var(--hero-muted);font-size:14px;font-weight:600}.btn.on-hero{background:var(--on-hero);color:var(--hero-bg)}.btn.on-hero:hover{background:#fff}hr{border:none;border-top:1px solid var(--border);margin:14px 0}@media (width<=768px){.desktop-content{padding:12px}.form-row,.form-row.three{grid-template-columns:1fr}.stats{grid-template-columns:repeat(2,1fr)}.week-grid{grid-template-columns:repeat(auto-fill,minmax(84px,1fr))}.upcoming-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr))}.goals-grid,.comparison-grid{grid-template-columns:1fr}.bar-label{min-width:72px}.bar-value{min-width:100px}.more-grid{gap:10px}.more-card{padding:18px 10px}.more-icon{width:46px;height:46px}.card{border-radius:var(--radius-md);padding:18px}.page-title{font-size:32px}.hero-card,.balance-hero,.proj-hero{border-radius:22px;padding:20px}.hero-card:before,.balance-hero:before,.proj-hero:before{display:none}.hero-card:after,.balance-hero:after,.proj-hero:after{width:140px;height:140px;top:-50px;right:-40px}.hero-num,.balance-amount{font-size:42px;line-height:1.05}.proj-hero .proj-total{font-size:34px}.balance-hero{min-height:0}}@media (width<=480px){.stats{grid-template-columns:repeat(2,1fr);gap:8px}.stat{padding:14px}.stat .value{font-size:22px}}.landing{background:var(--bg);min-height:100vh;color:var(--text)}.landing-bar{justify-content:space-between;align-items:center;gap:12px;max-width:1120px;margin:0 auto;padding:20px 24px;display:flex}.landing-brand{align-items:center;gap:14px;display:flex}.landing-bar .landing-brand .brand-name{font-size:28px}.landing-brand.sm{font-family:var(--font-display);letter-spacing:-.02em;gap:8px;font-size:17px;font-weight:700}.landing-actions{align-items:center;gap:10px;display:flex}.landing-link{color:var(--text);border-radius:12px;padding:8px 12px;font-size:14px;font-weight:700;text-decoration:none}.landing-link:hover{background:var(--surface2)}.landing-hero{grid-template-columns:repeat(auto-fit,minmax(320px,1fr));align-items:center;gap:40px;max-width:1120px;margin:0 auto;padding:40px 24px 0;display:grid}.landing-eyebrow{letter-spacing:.08em;text-transform:uppercase;color:var(--link);margin-bottom:14px;font-size:13px;font-weight:800;display:inline-block}.landing-hero h1{font-family:var(--font-display);letter-spacing:-.03em;margin:0 0 18px;font-size:64px;font-weight:700;line-height:1}.landing-hero h1 em{color:var(--link);font-style:normal}.landing-lead{color:var(--text-muted);max-width:480px;margin:0 0 26px;font-size:17px;line-height:1.55}.landing-ctas{flex-wrap:wrap;gap:12px;display:flex}.btn.lg{border-radius:16px;height:52px;padding:0 24px;font-size:15px}.landing-note{color:var(--text-muted);margin-top:12px;font-size:13px}.landing-demo{cursor:pointer;text-align:left;background:var(--tomate-soft);max-width:100%;color:var(--text);border:1px solid color-mix(in srgb, var(--accent) 30%, transparent);font:inherit;border-radius:16px;align-items:center;gap:12px;margin-top:14px;padding:10px 16px 10px 10px;transition:background .12s,transform .12s;display:inline-flex}.landing-demo:hover:not(:disabled){background:color-mix(in srgb, var(--tomate-soft) 80%, var(--accent))}.landing-demo:disabled{opacity:.7;cursor:progress}.landing-demo-icon{background:var(--accent);width:36px;height:36px;color:var(--on-accent);border-radius:12px;flex:none;place-items:center;display:grid}.landing-demo-text{flex-direction:column;min-width:0;display:flex}.landing-demo-text strong{font-size:15px;font-weight:800}.landing-demo-text span{color:var(--text-muted);font-size:13px}.landing-mock{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-lg);padding:20px;transform:rotate(-1.5deg)}.landing-mock-top{justify-content:space-between;align-items:center;margin-bottom:14px;display:flex}.landing-mock-top .landing-note{margin:0}.landing-mock-hero{border-radius:20px;flex-direction:column;gap:4px;margin-bottom:8px;padding:20px;display:flex}.landing-mock-hero:before{display:none}.landing-mock-hero:after{width:140px;height:140px;top:-50px;right:-40px}.landing-mock-hero .hero-num{font-size:40px}.landing-mock-row{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:12px 2px;display:flex}.landing-mock-row:last-child{border-bottom:0}.landing-mock-text{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.landing-mock-row .xg-amount.income{color:var(--success)}.landing-section{text-align:center;max-width:1120px;margin:0 auto;padding:72px 24px 0}.landing-section.narrow{max-width:800px;padding-bottom:72px}.landing-section h2{font-family:var(--font-display);letter-spacing:-.03em;margin:0 0 32px;font-size:40px;font-weight:700;line-height:1.05}.landing-features{text-align:left;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;display:grid}.landing-feature{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:8px;padding:24px;display:flex}.landing-feature .more-icon{border-radius:14px;width:48px;height:48px;margin-bottom:6px}.landing-feature-title{font-size:16px;font-weight:800}.landing-feature-desc{color:var(--text-muted);font-size:14px;line-height:1.55}.landing-roadmap .landing-feature{border-style:dashed;border-color:var(--border-strong);background:0 0}.landing-roadmap-top{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.landing-soon{letter-spacing:.06em;text-transform:uppercase;background:var(--tomate-soft);color:var(--tomate-ink);white-space:nowrap;border-radius:99px;padding:4px 10px;font-size:11px;font-weight:800}.landing-download{text-align:center;flex-direction:column;align-items:center;gap:12px;padding:40px 32px;display:flex}.landing-download h2{color:var(--on-hero);margin:0}.landing-download p{color:var(--hero-muted);max-width:460px;margin:0 0 8px;font-size:15px;line-height:1.55}.landing-download-icon{background:#f6f2e824;border-radius:20px;justify-content:center;align-items:center;width:64px;height:64px;display:flex}.landing-download-info{color:var(--hero-muted);margin-top:6px;font-size:13px;line-height:1.7}.landing-footer{border-top:1px solid var(--border);text-align:center;color:var(--text-muted);padding:24px;font-size:14px}.landing-footer a{color:var(--link);font-weight:800;text-decoration:none}.landing-footer{flex-direction:column;align-items:center;gap:10px;display:flex}.legal-links{flex-wrap:wrap;justify-content:center;gap:6px 16px;font-size:13px;display:flex}.legal-links a{color:var(--text-muted);font-weight:700;text-decoration:none}.legal-links a:hover{color:var(--link);text-decoration:underline}.landing-footer .legal-links a{color:var(--text-muted);font-weight:700}.auth-legal{border-top:1px solid var(--border);margin-top:18px;padding-top:14px}.auth-consent{color:var(--text-muted);margin:4px 0 2px;font-size:12.5px;line-height:1.5}.auth-consent a{color:var(--link);font-weight:700}.settings-legal{justify-content:flex-start;font-size:14px}.settings-legal a{color:var(--link)}.legal-public{flex-direction:column;min-height:100vh;display:flex}.legal-public .landing-brand{color:inherit;text-decoration:none}.legal-public .landing-bar{width:100%}.legal-back{align-items:center;gap:6px;display:inline-flex}.legal-main{flex:1;width:100%;max-width:1080px;margin:0 auto;padding:8px 24px 56px}.legal-layout{grid-template-columns:220px minmax(0,1fr);align-items:start;gap:40px;display:grid}.legal-nav{flex-direction:column;gap:4px;display:flex;position:sticky;top:24px}.legal-nav a{color:var(--text-muted);border-radius:12px;padding:9px 12px;font-size:14px;font-weight:700;text-decoration:none;transition:background .12s,color .12s}.legal-nav a:hover{background:var(--surface2);color:var(--text)}.legal-nav a.active{background:var(--primary-light);color:var(--primary)}.legal-doc{max-width:720px;color:var(--text-soft);font-size:15.5px;line-height:1.65}.legal-doc h1{font-family:var(--font-display);letter-spacing:-.02em;color:var(--text);margin:0 0 6px;font-size:clamp(32px,5vw,44px);line-height:1.1}.legal-updated{color:var(--text-faint);margin:0 0 20px;font-size:13px}.legal-intro{color:var(--text);margin:0 0 8px;font-size:17px}.legal-doc section{padding-top:22px}.legal-doc h2{font-family:var(--font-display);letter-spacing:-.01em;color:var(--text);margin:0 0 8px;font-size:22px}.legal-doc p{margin:0 0 10px}.legal-doc ul{margin:0 0 12px;padding-left:20px}.legal-doc li{margin-bottom:6px}.legal-doc li::marker{color:var(--accent)}.legal-doc b{color:var(--text)}.legal-doc a{color:var(--link);font-weight:700}@media (width<=820px){.legal-layout{grid-template-columns:1fr;gap:16px}.legal-nav{flex-flow:wrap;gap:6px;position:static}.legal-nav a{background:var(--surface);border:1px solid var(--border);padding:7px 12px;font-size:13px}.legal-main{padding:4px 16px 40px}.legal-doc{font-size:15px}}.landing-notice{background:var(--ok-bg,var(--primary-light));width:calc(100% - 48px);max-width:1080px;color:var(--primary);border-radius:14px;align-items:center;gap:10px;margin:0 auto 8px;padding:12px 14px;font-size:14px;font-weight:700;display:flex}.landing-notice span{flex:1}.landing-notice button{color:inherit;cursor:pointer;background:0 0;border:0;border-radius:8px;padding:4px;display:flex}.landing-notice button:hover{background:color-mix(in srgb, currentColor 12%, transparent)}@media (width<=640px){.landing-bar{padding:16px}.landing-link{display:none}.landing-hero{gap:32px;padding:24px 16px 0}.landing-hero h1{font-size:44px}.landing-section{padding:56px 16px 0}.landing-section.narrow{padding-bottom:56px}.landing-section h2{font-size:32px}.landing-mock{transform:none}}.auth-page{background:var(--bg);justify-content:center;align-items:center;min-height:100vh;padding:20px;display:flex}.auth-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);width:100%;max-width:420px;padding:36px 32px;animation:.25s slideUp}.auth-top{justify-content:space-between;align-items:center;gap:12px;margin-bottom:28px;display:flex}.auth-brand{align-items:center;gap:10px;display:flex}.auth-card h1{font-family:var(--font-display);letter-spacing:-.03em;margin:0;font-size:36px;font-weight:700;line-height:1.05}.auth-card h1+form,.auth-card h1+p{margin-top:22px}.auth-card h2{color:var(--text-muted);margin:6px 0 24px;font-size:15px;font-weight:500}.auth-card p{color:var(--text-muted);font-size:14px}.auth-card form{flex-direction:column;gap:13px;display:flex}.auth-card label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-size:12px;font-weight:800}.auth-card input[type=email],.auth-card input[type=password],.auth-card input[type=text],.auth-card input[type=url]{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface2);height:46px;color:var(--text);font-size:15px;font-family:var(--font);width:100%;padding:0 14px;transition:border-color .12s,box-shadow .12s}.auth-card input:focus{border-color:var(--primary);box-shadow:var(--ring);outline:none}.auth-card .btn.primary{width:100%;height:48px;font-size:15px}.btn.google-btn{background:var(--surface);height:48px;color:var(--text);border:1px solid var(--border-strong);border-radius:var(--radius-sm);cursor:pointer;width:100%;font-size:15px;font-weight:700;font-family:var(--font);justify-content:center;align-items:center;gap:10px;margin-top:12px;transition:all .12s;display:flex}.btn.google-btn:hover{background:var(--surface2)}.demo-banner{border-radius:var(--radius-sm);background:var(--tomate-soft);color:var(--text);border:1px solid color-mix(in srgb, var(--accent) 30%, transparent);align-items:center;gap:12px;margin:0 0 20px;padding:10px 12px 10px 14px;display:flex}.demo-banner-icon{color:var(--tomate-ink);flex:none;display:flex}.demo-banner p{flex:1;min-width:0;margin:0;font-size:14px;line-height:1.4}.demo-banner .btn{flex:none}.demo-toast{z-index:1200;width:fit-content;max-width:560px;box-shadow:var(--shadow-lg,0 12px 32px #0003);background:var(--text);color:var(--bg);border-radius:14px;align-items:center;gap:10px;margin:0 auto;padding:12px 16px;font-size:14px;font-weight:600;animation:.18s ease-out demo-toast-in;display:flex;position:fixed;bottom:28px;left:16px;right:16px}.demo-toast svg{flex:none}.demo-toast button{cursor:pointer;font:inherit;color:var(--accent);white-space:nowrap;background:0 0;border:none;padding:0;font-weight:800}@keyframes demo-toast-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.layout-mobile .demo-banner{flex-wrap:wrap;margin-bottom:14px}.layout-mobile .demo-banner .btn{margin-left:30px}.layout-mobile .demo-toast{bottom:calc(var(--bottom-nav-h) + env(safe-area-inset-bottom,0px) + 16px)}.auth-card .auth-links{flex-direction:column;gap:6px;margin-top:4px;display:flex}.error{color:var(--danger);margin:4px 0;font-size:14px;font-weight:600}.success{color:var(--success);margin:4px 0;font-size:14px;font-weight:600}.auth-link{text-align:center;color:var(--text-muted);margin-top:16px;font-size:14px}.auth-link a{color:var(--link);font-weight:800;text-decoration:none}.loading-screen{min-height:100vh;color:var(--text-muted);flex-direction:column;justify-content:center;align-items:center;gap:12px;display:flex}.loading-screen h2{font-family:var(--font-display);color:var(--text);letter-spacing:-.02em;margin:0;font-size:28px;font-weight:700}.loading-spinner{border:3px solid var(--surface3);border-top-color:var(--accent);border-radius:50%;width:22px;height:22px;animation:.8s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.admin-panel{max-width:680px;margin:0 auto;padding:4px 0}.admin-header{margin-bottom:20px}.admin-header h2{font-family:var(--font-display);letter-spacing:-.03em;margin:0;font-size:36px;font-weight:700}.admin-section,.admin-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);margin-bottom:16px;padding:22px 24px}.admin-section h3,.admin-card h3{margin:0 0 12px;font-size:16px;font-weight:800}.admin-section .hint{color:var(--text-muted);margin:0 0 14px;font-size:13px;line-height:1.55}.admin-section .hint code{background:var(--surface2);border-radius:6px;padding:2px 7px;font-size:12px}.auth-form{flex-direction:column;gap:12px;display:flex}.auth-form>label:not(.checkbox-label){color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:-4px;font-size:12px;font-weight:800}.auth-form input[type=text],.auth-form input[type=password],.auth-form input[type=url],.auth-form input[type=email],.auth-form input[type=number]{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface2);height:44px;color:var(--text);box-sizing:border-box;width:100%;font-size:14px;font-family:var(--font);padding:0 14px;transition:border-color .12s,box-shadow .12s}.auth-form input:focus{border-color:var(--primary);box-shadow:var(--ring);outline:none}.checkbox-label{cursor:pointer;align-items:center;gap:8px;font-size:14px;font-weight:600;display:flex}.checkbox-label input,input[type=checkbox]{accent-color:var(--accent)}.user-card{cursor:pointer;width:100%;color:var(--side-on);font-family:var(--font);text-align:left;background:0 0;border:0;border-radius:14px;align-items:center;gap:10px;padding:10px;transition:background .14s;display:flex}.user-card:hover{background:var(--side-hover)}.user-avatar{object-fit:cover;border-radius:50%;flex:none;width:36px;height:36px}.user-avatar-fallback{background:var(--accent);color:var(--on-accent);justify-content:center;align-items:center;font-size:15px;font-weight:800;display:flex}.user-meta{flex-direction:column;flex:1;min-width:0;display:flex}.user-card-gear{color:var(--side-fg);flex:none;display:flex}.user-card:hover .user-card-gear,.user-card[aria-current=page] .user-card-gear{color:var(--side-on)}.user-card[aria-current=page]{background:var(--side-on-bg)}.user-name{white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:800;overflow:hidden}.user-email{color:var(--side-fg);white-space:nowrap;text-overflow:ellipsis;font-size:12px;overflow:hidden}.sidebar-logout{cursor:pointer;width:100%;color:var(--side-fg);font-family:var(--font);text-align:left;background:0 0;border:0;border-radius:12px;align-items:center;gap:12px;margin-top:4px;padding:10px 12px;font-size:14px;font-weight:600;transition:background .14s,color .14s;display:flex}.sidebar-logout:hover{background:var(--side-hover);color:var(--side-on)}.btn.outline.danger-text{color:var(--danger)}.settings-page{flex-direction:column;gap:16px;max-width:760px;display:flex}.settings-page .admin-section{margin-bottom:0}.prefs-form{flex-direction:column;gap:16px;display:flex}.prefs-form .amount-input-wrap{max-width:220px}.seg{gap:8px;display:flex}.seg button{white-space:nowrap;border:1px solid var(--border-strong);min-width:0;height:42px;color:var(--text);font:inherit;cursor:pointer;background:0 0;border-radius:12px;flex:1 1 0;justify-content:center;align-items:center;gap:8px;padding:0 8px;font-size:14px;font-weight:700;transition:background .12s,border-color .12s,color .12s;display:inline-flex}.seg button:hover{background:var(--surface2)}.seg button.on{background:var(--chip-on-bg);border-color:var(--chip-on-bg);color:var(--chip-on-fg)}.setup-modal{max-width:520px}.setup-head{flex-direction:column;align-items:flex-start;gap:10px;padding:28px 24px 4px;display:flex}.setup-head h2{font-family:var(--font-display);letter-spacing:-.03em;margin:6px 0 0;font-size:30px;font-weight:700;line-height:1.05}.setup-head p{color:var(--text-muted);font-size:14px;line-height:1.5}.setup-modal .form-actions .btn.primary{flex:1}.form-section{margin-bottom:16px}.form-section-title{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);align-items:center;gap:10px;margin-bottom:12px;font-size:12px;font-weight:800;display:flex}.form-section-title:after{content:"";background:var(--border);flex:1;height:1px}.field-error{color:var(--danger);margin-top:4px;font-size:13px;font-weight:600}.input-error{border-color:var(--danger)!important;box-shadow:0 0 0 3px color-mix(in srgb, var(--danger) 16%, transparent)!important}.form-group.required>label:after{content:" *";color:var(--danger)}.toggle-row{cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--text);align-items:center;gap:10px;padding:8px 2px;font-size:14px;font-weight:600;display:flex}.toggle-row input{accent-color:var(--accent);cursor:pointer;width:18px;height:18px}.amount-input-wrap{position:relative}.amount-input-wrap .cur{color:var(--text-muted);pointer-events:none;font-size:14px;font-weight:700;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.amount-input-wrap input{padding-left:30px}.amount-preview{background:var(--primary-light);border-radius:var(--radius-sm);color:var(--primary);justify-content:space-between;align-items:center;padding:12px 14px;font-size:14px;font-weight:700;display:flex}.dark .amount-preview{color:var(--text)}.form-hint{color:var(--text-muted);font-size:12px;line-height:1.5}.back-link{color:var(--text-muted);background:var(--surface2);border-radius:10px;align-items:center;gap:6px;padding:6px 10px;font-size:13px;font-weight:700;text-decoration:none;transition:color .15s,background .15s;display:inline-flex}.back-link:hover{color:var(--text);background:var(--surface3)}.persona-row{margin-bottom:10px;display:block}.persona-line{grid-template-columns:1fr 120px auto 34px;align-items:center;gap:8px;display:grid}.persona-line input{border:1px solid var(--border-strong);background:var(--surface2);height:40px;color:var(--text);font-size:14px;font-family:var(--font);border-radius:12px;min-width:0;padding:0 12px}.persona-line input:focus{border-color:var(--primary);box-shadow:var(--ring);outline:none}.persona-repay{align-items:center;gap:8px;margin-top:6px;padding-left:2px;display:flex}.persona-repay label{color:var(--text-muted);font-size:12px}.persona-repay select{border:1px solid var(--border-strong);background:var(--surface);height:32px;color:var(--text);font-size:13px;font-family:var(--font);border-radius:10px;padding:0 8px}.pp-tabs{flex-wrap:wrap;gap:8px;margin:4px 0 16px;display:flex}.pp-tabs button{border:1px solid var(--border-strong);height:36px;color:var(--text);cursor:pointer;font-size:13px;font-weight:700;font-family:var(--font);background:0 0;border-radius:999px;padding:0 14px}.pp-tabs button.on{background:var(--chip-on-bg);border-color:var(--chip-on-bg);color:var(--chip-on-fg)}.pp-head{justify-content:space-between;align-items:baseline;margin-bottom:8px;font-size:16px;display:flex}.pp-total{font-family:var(--font-display);letter-spacing:-.02em;font-size:22px;font-weight:700}.pp-total.negative{color:var(--danger)}.pp-total.positive{color:var(--success)}.pp-methods{grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px;display:grid}.role-toggle{gap:4px;display:flex}.role-toggle button{border:1px solid var(--border-strong);height:32px;color:var(--text-muted);cursor:pointer;font-size:12px;font-weight:700;font-family:var(--font);background:0 0;border-radius:10px;padding:0 10px}.role-toggle button.on.deb{background:var(--warn-bg);border-color:var(--warn-tile-border);color:var(--warn-fg)}.role-toggle button.on.inv{background:var(--ok-bg);border-color:color-mix(in srgb, var(--ok-fg) 30%, transparent);color:var(--ok-fg)}.btn.small{height:32px;padding:0 10px;font-size:12px}.btn.ghost.x{color:var(--text-muted);cursor:pointer;background:0 0;border:none;width:34px;padding:0;font-size:16px}.btn.ghost.x:hover{color:var(--danger)}.hint{color:var(--text-muted);font-size:12px}.muted{color:var(--text-muted)}.num{font-variant-numeric:tabular-nums}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.xg{flex-direction:column;gap:24px;display:flex}.xg-title{flex-direction:column;gap:4px;display:flex}.xg-title h1{font-family:var(--font-display);letter-spacing:-.03em;margin:0;font-size:44px;font-weight:700;line-height:1}.xg-title p{color:var(--text-muted);margin:0;font-size:14px}.page-title-block{margin-bottom:24px}.xg-tiles{grid-template-columns:1.6fr 1fr 1fr 1fr;gap:16px;display:grid}.xg-tile{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;justify-content:flex-end;gap:6px;min-width:0;padding:24px;display:flex;container-type:inline-size}.xg-tile-label{color:var(--text-muted);font-size:14px;font-weight:600}.xg-tile-value{font-family:var(--font-display);letter-spacing:-.02em;white-space:nowrap;text-overflow:ellipsis;font-size:min(32px,16cqi);font-weight:700;overflow:hidden}.xg-tile-sub{color:var(--text-muted);font-size:13px}.xg-tile.hero{background:var(--hero-bg);border-color:var(--hero-bg);min-height:172px;color:var(--on-hero);isolation:isolate;padding:24px 28px;position:relative;overflow:hidden}.xg-tile.hero:before{content:"";z-index:-1;background:var(--blob-2);border-radius:50%;width:170px;height:170px;position:absolute;top:-110px;right:120px}.xg-tile.hero:after{content:"";z-index:-1;background:var(--blob);border-radius:50%;width:200px;height:200px;position:absolute;top:-64px;right:-36px}.xg-tile.hero .xg-tile-label,.xg-tile.hero .xg-tile-sub{color:var(--hero-muted);font-weight:700}.xg-tile.hero .xg-tile-sub{font-size:14px;font-weight:600}.xg-tile.hero .xg-tile-value{letter-spacing:-.03em;font-size:min(58px,15cqi);line-height:1;overflow:visible}.xg-tile.warn{background:var(--warn-tile-bg);border-color:var(--warn-tile-border)}.xg-tile.warn .xg-tile-label,.xg-tile.warn .xg-tile-sub{color:var(--warn-fg)}.xg-tile.warn .xg-tile-value{color:var(--warn-ink)}.xg-tile-link{color:var(--warn-fg);font-size:13px;font-weight:800}.xg-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;display:flex;overflow:clip}.xg-toolbar{border-bottom:1px solid var(--border);flex-direction:column;gap:14px;padding:20px 24px;display:flex}.xg-toolbar-row{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.xg-toolbar-row.between{justify-content:space-between}.xg-search{border:1px solid var(--border-strong);border-radius:var(--radius-sm);min-width:220px;height:44px;color:var(--text-muted);background:var(--surface2);flex:1;align-items:center;gap:10px;padding:0 14px;display:flex}.xg-search:focus-within{border-color:var(--primary);box-shadow:var(--ring)}.xg-search input{min-width:0;font:inherit;color:var(--text);background:0 0;border:0;outline:none;flex:1;font-size:14px}.xg-select{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);height:44px;font:inherit;color:var(--text);cursor:pointer;padding:0 14px;font-size:14px;font-weight:600}.xg-select:focus{border-color:var(--primary);box-shadow:var(--ring);outline:none}.xg-chips{flex-wrap:wrap;gap:8px;display:flex}.xg-chip{height:36px;font:inherit;cursor:pointer;color:var(--text);border:1px solid var(--border-strong);background:0 0;border-radius:999px;flex-shrink:0;align-items:center;gap:7px;padding:0 14px;font-size:13px;font-weight:700;display:inline-flex}.xg-chip:hover{background:var(--surface2)}.xg-chip.on{background:var(--chip-on-bg);color:var(--chip-on-fg);border-color:var(--chip-on-bg)}.xg-dot{background:var(--cat-dot,currentColor);border-radius:50%;flex:none;width:8px;height:8px}.xg-check{color:var(--text);cursor:pointer;flex-shrink:0;align-items:center;gap:10px;font-size:14px;font-weight:600;display:flex}.xg-check input{width:18px;height:18px;accent-color:var(--accent);margin:0}.xg-grid{grid-template-columns:40px minmax(0,1fr) 150px 120px 130px 120px 96px;align-items:center;column-gap:16px;padding:0 24px;display:grid}.xg-head{background:var(--surface2);border-bottom:1px solid var(--border);letter-spacing:.05em;text-transform:uppercase;color:var(--text-muted);padding-top:12px;padding-bottom:12px;font-size:12px;font-weight:800}.xg-group{border-bottom:1px solid var(--border);color:var(--text-muted);font-variant-numeric:tabular-nums;justify-content:space-between;align-items:center;padding:10px 24px;font-size:13px;font-weight:700;display:flex}.xg-group .num{color:var(--text-muted);font-weight:700}.xg-row{border-bottom:1px solid var(--border);background:0 0;min-height:68px;padding-top:10px;padding-bottom:10px;transition:background .1s}.xg-row:hover{background:var(--row-hover)}.xg-row .xg-icon-btn{color:var(--text-muted);background:0 0;border-color:#0000}.xg-row:hover .xg-icon-btn,.xg-row .xg-icon-btn[aria-expanded=true]{border-color:var(--border-strong);background:var(--surface);color:var(--text)}.right{text-align:right}.xg-cell-desc{flex-direction:column;gap:4px;min-width:0;display:flex}.xg-desc{white-space:nowrap;text-overflow:ellipsis;color:var(--text);font-size:15px;font-weight:700;overflow:hidden}.xg-meta{color:var(--text-muted);align-items:center;gap:12px;min-width:0;font-size:13px;display:flex}.xg-note{white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.xg-cc{font:inherit;color:var(--link);cursor:pointer;background:0 0;border:0;flex-shrink:0;align-items:center;gap:4px;padding:0;font-size:13px;font-weight:800;text-decoration:none;display:inline-flex}.xg-cc:hover{text-decoration:underline}.xg-cat{background:var(--cat-bg);height:26px;color:var(--cat-fg);white-space:nowrap;text-overflow:ellipsis;border-radius:999px;align-items:center;gap:6px;max-width:100%;padding:0 10px;font-size:12px;font-weight:700;display:inline-flex;overflow:hidden}.xg-cat .xg-dot{width:7px;height:7px}.xg-method{color:var(--text-muted);font-size:14px}.xg-faint{color:var(--text-faint);font-size:14px}.xg-badge{white-space:nowrap;border-radius:999px;align-items:center;gap:6px;height:26px;padding:0 10px;font-size:12px;font-weight:700;display:inline-flex}.xg-badge.warn{background:var(--warn-bg);color:var(--warn-fg)}.xg-badge.ok{background:var(--ok-bg);color:var(--ok-fg)}.xg-badge.sm{height:auto;padding:2px 8px;font-size:11px}.xg-amount{flex-direction:column;align-items:flex-end;font-size:16px;font-weight:800;display:flex}.xg-own{color:var(--text-muted);font-size:11px;font-weight:600}.xg-actions{justify-content:flex-end;gap:4px;display:flex}.xg-icon-btn{cursor:pointer;border:1px solid var(--border);background:var(--surface);width:44px;height:40px;color:var(--text);border-radius:12px;flex:none;justify-content:center;align-items:center;display:flex}.xg-icon-btn.bordered{border-radius:14px;width:44px;height:44px}.xg-icon-btn.bordered[aria-expanded=true]{background:var(--chip-on-bg);color:var(--chip-on-fg);border-color:var(--chip-on-bg)}.xg-menu-anchor{position:relative}.xg-menu{z-index:50;background:var(--surface);border:1px solid var(--border);min-width:190px;box-shadow:var(--shadow-lg);border-radius:14px;flex-direction:column;padding:6px;display:flex;position:absolute;top:calc(100% + 4px);right:0}.xg-menu button{text-align:left;font:inherit;color:var(--text);cursor:pointer;background:0 0;border:0;border-radius:10px;padding:10px 12px;font-size:14px;font-weight:600}.xg-menu button:hover{background:var(--surface2)}.xg-menu button.danger{color:var(--danger)}.xg-footer{color:var(--text-muted);flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;padding:16px 24px;font-size:14px;display:flex}.xg-footer strong{color:var(--text)}.xg-pager{gap:8px;display:flex}.xg-btn{border:1px solid var(--border-strong);background:var(--surface);height:40px;font:inherit;color:var(--text);cursor:pointer;border-radius:12px;padding:0 16px;font-size:14px;font-weight:700}.xg-btn:disabled{color:var(--text-faint);cursor:default;border-color:var(--border);background:0 0;font-weight:600}.xg-muted{color:var(--text-muted);font-size:13px;font-weight:600}@media (width<=1180px){.xg-tiles{grid-template-columns:repeat(2,minmax(0,1fr))}.dash-grid{grid-template-columns:minmax(0,1fr)}.xg-grid{grid-template-columns:40px minmax(0,1fr) 130px 110px 120px 116px 96px;column-gap:12px}}@media (width<=768px){.xg-title h1{font-size:32px}.xg-tiles{gap:12px}.xg-tile{border-radius:var(--radius-md);padding:18px}.xg-tile-value{font-size:min(24px,16cqi)}.xg-tile.hero{border-radius:22px;grid-column:1/-1;min-height:0;padding:20px}.xg-tile.hero:before{display:none}.xg-tile.hero:after{width:140px;height:140px;top:-50px;right:-40px}.xg-tile.hero .xg-tile-value{font-size:min(42px,14cqi);line-height:1.05}.xg-tiles>.xg-tile:last-child:nth-child(2n){grid-column:1/-1}}.xg-compact{gap:0;margin:0 -12px}.xg-mhead{flex-direction:column;gap:16px;padding:4px 20px 16px;display:flex}.xg-mhead-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.xg-mhead-row.baseline{align-items:baseline}.xg-mhead h1{font-family:var(--font-display);letter-spacing:-.03em;margin:0;font-size:32px;font-weight:700}.xg-mhead-actions{gap:8px;display:flex}.xg-mhero{border-radius:22px;flex-direction:column;gap:6px;padding:20px;display:flex}.xg-mhero:before{display:none}.xg-mhero:after{width:140px;height:140px;top:-50px;right:-40px}.xg-mhero .hero-label{font-size:13px}.xg-mhero .hero-num{font-size:42px;line-height:1.05}.xg-mhero-row{flex-wrap:wrap;gap:16px;display:flex}.xg-mhero-row .hero-sub{font-size:13px}.xg-mpending{color:var(--warn-fg);background:var(--warn-bg);border-radius:999px;align-self:flex-start;align-items:center;gap:4px;padding:6px 10px 6px 12px;font-size:13px;font-weight:700;text-decoration:none;display:inline-flex}.xg-mhead .xg-chips{scrollbar-width:none;flex-wrap:nowrap;margin:0 -20px;padding:0 20px;overflow-x:auto}.xg-mhead .xg-chips::-webkit-scrollbar{display:none}.xg-mfilters{flex-direction:column;gap:10px;display:flex}.xg-mfilters .xg-select{width:100%}.xg-mgroup{color:var(--text-muted);text-transform:uppercase;letter-spacing:.05em;font-variant-numeric:tabular-nums;justify-content:space-between;padding:14px 24px 8px;font-size:12px;font-weight:800;display:flex}.xg-mcard{background:var(--surface);border:1px solid var(--border);border-radius:18px;margin:0 12px}.xg-mrow{border-bottom:1px solid var(--border);align-items:center;padding-right:6px;display:flex}.xg-mcard .xg-mrow:last-child{border-bottom:0}.xg-mrow-main{text-align:left;cursor:pointer;min-width:0;min-height:66px;font:inherit;color:inherit;background:0 0;border:0;flex:1;align-items:center;gap:12px;padding:12px 8px 12px 14px;display:flex}.xg-mrow-text{flex-direction:column;flex:1;gap:3px;min-width:0;display:flex}.xg-mrow-text .xg-meta{font-size:12px}.xg-mrow-end{flex-direction:column;flex-shrink:0;align-items:flex-end;gap:4px;display:flex}.xg-mrow .xg-amount{font-size:15px}.xg-initial{background:var(--cat-bg);width:40px;height:40px;color:var(--cat-fg);border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;font-size:15px;font-weight:800;display:flex}.xg-mrow .xg-icon-btn{width:36px;height:36px;color:var(--text-faint);background:0 0;border-color:#0000}.cat-c0{--cat-bg:#e8eafd;--cat-fg:#2f3a9e;--cat-dot:#6e7cf2}.cat-c1{--cat-bg:#ddf1ee;--cat-fg:#15574f;--cat-dot:#2f9c8f}.cat-c2{--cat-bg:#f4e4ef;--cat-fg:#6e2a5b;--cat-dot:#b45c9a}.cat-c3{--cat-bg:#ffe6de;--cat-fg:#a3290f;--cat-dot:#ff5a36}.cat-c4{--cat-bg:#edf5e1;--cat-fg:#45621a;--cat-dot:#7fa836}.cat-c5{--cat-bg:#fce6ee;--cat-fg:#93224a;--cat-dot:#d94f7c}.cat-c6{--cat-bg:#fbf0d9;--cat-fg:#7a5206;--cat-dot:#d9a13b}.cat-c7{--cat-bg:#e4edf6;--cat-fg:#274b72;--cat-dot:#5b87b8}.dark .cat-c0{--cat-bg:#23264a;--cat-fg:#c3c9ff;--cat-dot:#8b96f5}.dark .cat-c1{--cat-bg:#133430;--cat-fg:#8fe3d6;--cat-dot:#4cc2b2}.dark .cat-c2{--cat-bg:#35192d;--cat-fg:#edb3da;--cat-dot:#d07ab6}.dark .cat-c3{--cat-bg:#3a1d15;--cat-fg:#ffaf9a;--cat-dot:#ff6a48}.dark .cat-c4{--cat-bg:#223218;--cat-fg:#c6e29a;--cat-dot:#9bc25a}.dark .cat-c5{--cat-bg:#3a1826;--cat-fg:#f5b3ca;--cat-dot:#e8709a}.dark .cat-c6{--cat-bg:#33280f;--cat-fg:#f2d395;--cat-dot:#e6b75c}.dark .cat-c7{--cat-bg:#182838;--cat-fg:#b7cfea;--cat-dot:#7fa6d3}.adm{flex-direction:column;gap:18px;display:flex}.adm-stack{flex-direction:column;gap:16px;display:flex}.adm-stack>.card,.adm-stack>.admin-section,.adm-charts>.card,.adm-services>.card{margin:0}.adm-tabs{background:var(--surface2);border:1px solid var(--border);border-radius:16px;gap:6px;width:fit-content;max-width:100%;padding:4px;display:flex;overflow-x:auto}.adm-tabs button{white-space:nowrap;cursor:pointer;color:var(--text-muted);font:inherit;background:0 0;border:0;border-radius:12px;align-items:center;gap:8px;padding:9px 14px;font-size:14px;font-weight:700;display:inline-flex}.adm-tabs button:hover{color:var(--text)}.adm-tabs button.active{background:var(--surface);color:var(--text);box-shadow:var(--shadow)}.adm-toolbar{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.adm-seg{background:var(--surface2);border:1px solid var(--border);border-radius:12px;gap:4px;padding:3px;display:inline-flex}.adm-seg button{font:inherit;color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:0;border-radius:9px;padding:7px 12px;font-size:13px;font-weight:700}.adm-seg button.active{background:var(--chip-on-bg);color:var(--chip-on-fg)}.adm-seg-wrap{flex-wrap:wrap}.adm-select{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface);height:44px;color:var(--text);font:inherit;padding:0 12px;font-size:14px}.adm-search{max-width:420px}.link-btn{font:inherit;color:var(--link);cursor:pointer;text-align:left;background:0 0;border:0;padding:0;font-weight:700}.link-btn:hover{text-decoration:underline}.adm-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}.adm-kpis .xg-tile{justify-content:flex-start;min-height:0}.adm-kpis .xg-tile-sub{align-items:center;gap:4px;display:inline-flex}.adm-facts{flex-wrap:wrap;gap:8px;display:flex}.adm-fact{border:1px solid var(--border);background:var(--surface);color:var(--text-muted);border-radius:12px;align-items:baseline;gap:6px;padding:8px 12px;font-size:13px;display:inline-flex}.adm-fact b{color:var(--text);font-size:15px}.adm-charts{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.adm-charts>.adm-chart.wide{grid-column:1/-1}.adm-chart-head{flex-wrap:wrap;justify-content:space-between;align-items:baseline;gap:8px;margin-bottom:10px;display:flex}.adm-chart-head h3{margin:0}.adm-legend{color:var(--text-soft);flex-wrap:wrap;gap:6px 14px;margin:0 0 8px;font-size:12.5px;display:flex}.adm-legend span{align-items:center;gap:6px;display:inline-flex}.adm-legend i,.adm-tip i{border-radius:3px;flex:none;width:10px;height:10px;display:inline-block}.adm-tip{background:var(--surface);border:1px solid var(--border);box-shadow:var(--shadow-lg);color:var(--text);border-radius:12px;min-width:150px;padding:10px 12px;font-size:12.5px}.adm-tip-title{margin-bottom:6px;font-weight:800}.adm-tip-row{color:var(--text-soft);justify-content:space-between;align-items:center;gap:14px;padding:1px 0;display:flex}.adm-tip-row span{align-items:center;gap:6px;display:inline-flex}.adm-tip-row b{color:var(--text);font-variant-numeric:tabular-nums}.adm-tip-row.total{border-top:1px solid var(--border);margin-top:4px;padding-top:5px;font-weight:700}.adm-table-details summary{cursor:pointer;color:var(--link);font-size:14px;font-weight:700}.adm-table-details[open] summary{margin-bottom:12px}.adm-table-wrap{overflow-x:auto}.adm-table{border-collapse:collapse;width:100%;font-size:13.5px}.adm-table th{text-align:left;text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);border-bottom:1px solid var(--border);white-space:nowrap;padding:8px 10px;font-size:12px;font-weight:800}.adm-table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:10px}.adm-table tr:last-child td{border-bottom:0}.adm-table .num{text-align:right;font-variant-numeric:tabular-nums}.adm-table tr.clickable{cursor:pointer}.adm-table tr.clickable:hover,.adm-table tr.clickable:focus-visible{background:var(--row-hover);outline:none}.adm-users td:first-child{min-width:260px}.adm-user{align-items:center;gap:12px;display:flex}.adm-user .user-avatar{width:36px;height:36px}.adm-user-meta{flex-direction:column;gap:2px;min-width:0;display:flex}.adm-user-meta b{font-size:14px}.adm-user-meta>span:not(.adm-chips){color:var(--text-muted);text-overflow:ellipsis;font-size:12.5px;overflow:hidden}.adm-chips{flex-wrap:wrap;gap:4px;display:inline-flex}.adm-chip{background:var(--surface3);color:var(--text-soft);border-radius:99px;padding:2px 8px;font-size:11px;font-weight:800}.adm-chip.brand{background:var(--primary-light);color:var(--primary)}.adm-chip.danger{background:var(--danger-bg);color:var(--danger)}.adm-detail{max-width:560px}.adm-detail-email{color:var(--text-muted);margin:-4px 0 8px}.adm-dl{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 16px;margin:14px 0 6px;display:grid}.adm-dl div{min-width:0}.adm-dl dt{text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:11.5px;font-weight:800}.adm-dl dd{overflow-wrap:anywhere;margin:2px 0 0;font-size:14px}.adm-sub{text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted);margin:18px 0 8px;font-size:12px;font-weight:800}.adm-counts{flex-wrap:wrap;gap:8px;display:flex}.adm-counts span{background:var(--surface2);color:var(--text-muted);border-radius:10px;align-items:baseline;gap:5px;padding:6px 10px;font-size:13px;display:inline-flex}.adm-counts b{color:var(--text);font-size:15px}.adm-ticket-links{flex-direction:column;gap:6px;margin:0;padding:0;list-style:none;display:flex}.adm-ticket-links li{justify-content:space-between;align-items:center;gap:10px;display:flex}.adm-actions{flex-wrap:wrap;gap:8px;display:flex}.adm-danger{border:1px solid color-mix(in srgb, var(--danger) 35%, var(--border));border-radius:14px;margin-top:16px;padding:14px}.adm-danger label{color:var(--text-soft);margin-bottom:8px;font-size:13px;font-weight:700;display:block}.adm-danger-row{gap:8px;display:flex}.adm-danger-row input{border:1px solid var(--border-strong);background:var(--surface2);min-width:0;height:36px;color:var(--text);font:inherit;border-radius:10px;flex:1;padding:0 10px}.adm-status{white-space:nowrap;border-radius:99px;flex:none;padding:2px 8px;font-size:11px;font-weight:800}.adm-status.open{background:var(--warn-bg);color:var(--warn-fg)}.adm-status.answered{background:var(--ok-bg);color:var(--ok-fg)}.adm-status.closed{background:var(--surface3);color:var(--text-muted)}.adm-state{align-items:center;gap:6px;margin:0;font-size:14px;font-weight:700;display:inline-flex}.adm-state.ok{color:var(--ok-fg)}.adm-state.warn{color:var(--warn-fg)}.adm-state.err{color:var(--danger)}.adm-support{grid-template-columns:minmax(280px,380px) minmax(0,1fr);align-items:start;gap:16px;display:grid}.adm-support-list,.adm-support-thread{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-width:0;padding:14px}.adm-support-list{flex-direction:column;gap:10px;display:flex}.adm-empty{margin:12px 4px}.adm-ticket-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.adm-ticket-list button{text-align:left;cursor:pointer;width:100%;font:inherit;color:var(--text);background:0 0;border:0;border-radius:12px;flex-direction:column;gap:4px;padding:10px;display:flex}.adm-ticket-list button:hover{background:var(--row-hover)}.adm-ticket-list button.active{background:var(--primary-light)}.adm-ticket-top{justify-content:space-between;align-items:flex-start;gap:8px;display:flex}.adm-ticket-top b{font-size:14px;line-height:1.3}.adm-ticket-preview{color:var(--text-soft);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.adm-ticket-meta{color:var(--text-muted);align-items:center;gap:5px;font-size:12px;display:inline-flex}.adm-thread{flex-direction:column;gap:14px;display:flex}.adm-thread-head{align-items:flex-start;gap:10px;display:flex}.adm-thread-head>div{flex:1;min-width:0}.adm-thread-head h3{margin:0 0 4px;font-size:18px}.adm-thread-head .hint{margin:0;font-size:13px}.adm-thread-back{display:none}.adm-messages{flex-direction:column;gap:10px;margin:0;padding:0;list-style:none;display:flex}.adm-messages li{flex-direction:column;max-width:85%;display:flex}.adm-messages li.theirs{align-self:flex-start}.adm-messages li.mine{align-self:flex-end;align-items:flex-end}.adm-bubble{white-space:pre-wrap;overflow-wrap:anywhere;border-radius:16px;padding:10px 14px;font-size:14px;line-height:1.5}.adm-messages li.theirs .adm-bubble{background:var(--surface2);border:1px solid var(--border);border-bottom-left-radius:6px}.adm-messages li.mine .adm-bubble{background:var(--primary-light);color:var(--text);border-bottom-right-radius:6px}.adm-msg-meta{color:var(--text-muted);margin:3px 4px 0;font-size:11.5px}.adm-reply textarea{box-sizing:border-box;border:1px solid var(--border-strong);background:var(--surface2);width:100%;color:var(--text);font:inherit;resize:vertical;border-radius:14px;padding:10px 12px;font-size:14px}.adm-reply textarea:focus{border-color:var(--primary);box-shadow:var(--ring);outline:none}.adm-reply-actions{flex-wrap:wrap;gap:8px;margin-top:8px;display:flex}.adm-services{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:12px;display:grid}.adm-service{flex-direction:column;align-items:flex-start;gap:8px;display:flex}.adm-service h3{margin:0}.adm-service .adm-dl{grid-template-columns:1fr;gap:6px;width:100%;margin:2px 0}.adm-service .hint{margin:0}.adm-url{overflow-wrap:anywhere}.adm-errors td{font-size:13px}.adm-errors code,.adm-service code{font-size:12.5px}.adm-reqid{color:var(--text-muted);margin-top:2px;font-size:11.5px;display:block}.adm-errors td:first-child,.adm-errors td:nth-child(2){white-space:nowrap}.support-page{flex-direction:column;gap:16px;max-width:760px;display:flex}.support-form{flex-direction:column;gap:14px;display:flex}.support-form textarea,.support-form input{box-sizing:border-box;width:100%}.support-form textarea{border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface2);color:var(--text);font:inherit;resize:vertical;padding:10px 12px;font-size:14px}.support-list{flex-direction:column;gap:8px;margin:0;padding:0;list-style:none;display:flex}.support-list>li{border:1px solid var(--border);background:var(--surface);border-radius:14px}.support-item{cursor:pointer;width:100%;font:inherit;color:var(--text);text-align:left;background:0 0;border:0;border-radius:14px;justify-content:space-between;align-items:center;gap:10px;padding:12px 14px;display:flex}.support-item:hover{background:var(--row-hover)}.support-thread{flex-direction:column;gap:12px;padding:4px 14px 14px;display:flex}.landing-notice.warn{background:var(--warn-bg);color:var(--warn-fg)}.apk-served{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:16px;display:flex}.apk-version{font-family:var(--font-display);letter-spacing:-.02em;font-size:30px;font-weight:700;line-height:1.1}.apk-notes{color:var(--text-soft);white-space:pre-wrap;max-width:620px;margin:8px 0 0;font-size:14px}.apk-upload{grid-template-columns:minmax(0,2fr) minmax(0,1fr) minmax(0,1fr);align-items:end;gap:12px 14px;display:grid}.apk-upload .apk-notes-field,.apk-upload .checkbox-label,.apk-upload-actions,.apk-upload .msg-line{grid-column:1/-1}.apk-upload input:not([type=checkbox]),.apk-upload textarea{box-sizing:border-box;border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface2);width:100%;color:var(--text);font:inherit;padding:9px 12px;font-size:14px}.apk-upload input[type=file]{padding:7px 10px}.apk-upload-actions{flex-wrap:wrap;align-items:center;gap:12px;display:flex}.apk-progress{min-width:160px;max-width:360px;height:10px;accent-color:var(--accent);flex:1}.apk-warning{align-items:flex-start;gap:6px;margin:0 0 10px;display:flex}.apk-warning svg{color:var(--warn-fg);flex:none;margin-top:2px}.apk-table td{vertical-align:top}.apk-table td:first-child b{margin-bottom:4px;display:block}.apk-row-served{background:color-mix(in srgb, var(--primary-light) 55%, transparent)}.apk-notes-cell{max-width:280px}.apk-notes-cell>span{white-space:pre-wrap;font-size:13px}.apk-notes-cell .link-btn{color:var(--text-muted);vertical-align:middle;margin-left:6px}.apk-actions{white-space:nowrap;text-align:right}.apk-actions .btn+.btn{margin-left:6px}@media (width<=820px){.apk-upload{grid-template-columns:1fr}.apk-table thead{display:none}.apk-table tr{border-bottom:1px solid var(--border);grid-template-columns:1fr 1fr;gap:6px 10px;padding:12px 10px;display:grid}.apk-table td{border:0;padding:0}.apk-table td:first-child,.apk-table .apk-notes-cell,.apk-table .apk-actions{grid-column:1/-1;max-width:none}.apk-table td[data-label]:not(:first-child):before{content:attr(data-label);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:10.5px;font-weight:800;display:block}.apk-table td.num,.apk-actions{text-align:left}}@media (width<=1100px){.adm-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.adm-charts{grid-template-columns:1fr}}@media (width<=820px){.adm-tabs{flex-wrap:wrap;width:100%;overflow:visible}.adm-tabs button{flex:auto;justify-content:center;padding:9px 10px}.adm-kpis>.xg-tile:last-child:nth-child(2n){grid-column:auto}.adm-support{grid-template-columns:1fr}.adm-support.has-thread .adm-support-list,.adm-support:not(.has-thread) .adm-support-thread{display:none}.adm-thread-back{flex:none;width:34px;height:34px;display:flex}.adm-users thead{display:none}.adm-users tr{border-bottom:1px solid var(--border);grid-template-columns:1fr 1fr 1fr;gap:4px 10px;padding:12px 10px;display:grid}.adm-users td{border:0;padding:0;font-size:12.5px}.adm-users td:first-child{grid-column:1/-1;min-width:0;margin-bottom:4px}.adm-users td[data-label]:before{content:attr(data-label);text-transform:uppercase;letter-spacing:.05em;color:var(--text-muted);font-size:10.5px;font-weight:800;display:block}.adm-users td.num{text-align:left}.adm-dl{grid-template-columns:1fr}.adm-danger-row{flex-direction:column}}
