@font-face{font-family:Hanken Grotesk;font-style:italic;font-weight:500;font-display:swap;src:url(../../../fonts/hanken-500-italic-latin-ext.woff2)format("woff2");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:Hanken Grotesk;font-style:italic;font-weight:500;font-display:swap;src:url(../../../fonts/hanken-500-italic-latin.woff2)format("woff2");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:Hanken Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(../../../fonts/hanken-400-latin-ext.woff2)format("woff2");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:Hanken Grotesk;font-style:normal;font-weight:400;font-display:swap;src:url(../../../fonts/hanken-400-latin.woff2)format("woff2");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:Hanken Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(../../../fonts/hanken-500-latin-ext.woff2)format("woff2");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:Hanken Grotesk;font-style:normal;font-weight:500;font-display:swap;src:url(../../../fonts/hanken-500-latin.woff2)format("woff2");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:Hanken Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(../../../fonts/hanken-600-latin-ext.woff2)format("woff2");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:Hanken Grotesk;font-style:normal;font-weight:600;font-display:swap;src:url(../../../fonts/hanken-600-latin.woff2)format("woff2");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:Hanken Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(../../../fonts/hanken-700-latin-ext.woff2)format("woff2");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:Hanken Grotesk;font-style:normal;font-weight:700;font-display:swap;src:url(../../../fonts/hanken-700-latin.woff2)format("woff2");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:Hanken Grotesk;font-style:normal;font-weight:800;font-display:swap;src:url(../../../fonts/hanken-800-latin-ext.woff2)format("woff2");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:Hanken Grotesk;font-style:normal;font-weight:800;font-display:swap;src:url(../../../fonts/hanken-800-latin.woff2)format("woff2");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{--bg:#07080f;--surface:#0e0f1a;--surface2:#161828;--surface3:#1e2035;--surface4:#252745;--glass-bg:#0e0f1a9e;--glass-border:#ffffff0f;--glass-sheen:#ffffff0a;--border:#252740;--border2:#2e3055;--border3:#383a62;--accent:#6c63ff;--accent-hover:#7b73ff;--accent-dim:#6c63ff1f;--accent-border:#6c63ff40;--accent-border2:#6c63ff59;--accent-strong:#6c63ff80;--accent-glow:#6c63ff2e;--green:#3dffa0;--green-dim:#3dffa01f;--green-border:#3dffa038;--red:#ff5c7a;--red-dim:#ff5c7a1f;--red-border:#ff5c7a40;--red-hover:#ff5c7a33;--yellow:#ffc947;--yellow-dim:#ffc9471f;--yellow-border:#ffc94740;--blue:#47c8ff;--blue-dim:#47c8ff1a;--blue-border:#47c8ff38;--purple:#b47aff;--purple-dim:#b47aff1f;--purple-border:#b47aff40;--cat-vivienda:#7c6af7;--cat-alimentacion:#ff5c7a;--cat-transporte:#ffc947;--cat-salud:#3dffa0;--cat-entretenimiento:#ff6ec7;--cat-educacion:#47c8ff;--cat-ropa:#c26af7;--cat-servicios:#ff9547;--cat-suscripciones:#6af7a0;--cat-restaurantes:#ff7a9a;--cat-viajes:#6af0f7;--cat-otros:#6070a0;--text:#e2e4f0;--text2:#9599b8;--text3:#6e7496;--overlay-bg:#07080fc7;--topbar-bg:#07080fe0;--shadow-sm:0 1px 4px #00000014;--shadow-card:0 12px 32px #00000052;--shadow-lg:0 8px 24px #0006;--shadow-xl:0 24px 72px #0000008c;--shadow-accent:0 8px 20px #6c63ff4d;--shadow-accent-sm:0 4px 14px #6c63ff2e;--shadow-accent-glow:0 4px 16px #6c63ff80;--radius-xs:6px;--radius-sm:10px;--radius:14px;--radius-lg:20px;--radius-xl:26px;--radius-pill:999px;--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:20px;--sp-6:24px;--sp-8:32px;--sp-10:40px;--sp-12:48px;--text-xs:11px;--text-sm:13px;--text-md:15px;--text-base:15px;--text-lg:18px;--text-xl:22px;--text-2xl:28px;--text-3xl:36px;--z-tooltip:10;--z-topbar:40;--z-sidebar:50;--z-modal:100;--z-backdrop:149;--z-drawer:150;--z-drawer-panel:151;--z-confirm:160;--z-nav:200;--z-modal-mob:210;--z-chart-tip:300;--z-palette:400;--transition-fast:.12s ease;--transition-base:.2s ease;--transition-slow:.32s ease}html.light{--bg:#f0f2f8;--surface:#fff;--surface2:#f5f6fc;--surface3:#eaecf5;--surface4:#dfe1f0;--glass-bg:#ffffffad;--glass-border:#0000000f;--glass-sheen:#ffffffa6;--border:#d8daea;--border2:#c8ccdf;--border3:#b8bcce;--accent-glow:#6c63ff1a;--accent-dim:#6c63ff14;--accent-border:#6c63ff38;--accent-border2:#6c63ff52;--green:#007a47;--green-dim:#007a471a;--green-border:#007a4733;--red:#cc1e3c;--red-dim:#cc1e3c1a;--red-border:#cc1e3c33;--red-hover:#cc1e3c1f;--yellow:#a05c00;--yellow-dim:#a05c001a;--yellow-border:#a05c0033;--blue:#0066b2;--blue-dim:#0066b214;--blue-border:#0066b233;--purple:#7c3aed;--purple-dim:#7c3aed1a;--purple-border:#7c3aed38;--cat-vivienda:#5b4fd6;--cat-alimentacion:#cc1e3c;--cat-transporte:#a05c00;--cat-salud:#007a47;--cat-entretenimiento:#b3257d;--cat-educacion:#0066b2;--cat-ropa:#7c3aed;--cat-servicios:#b35309;--cat-suscripciones:#0f7a4f;--cat-restaurantes:#b3264a;--cat-viajes:#0e7d8a;--cat-otros:#5a6285;--text:#1a1d2e;--text2:#4a4f72;--text3:#606280;--overlay-bg:#1e203c8c;--topbar-bg:#f0f2f8e6;--shadow-sm:0 1px 4px #0000000f;--shadow-card:0 4px 16px #00000014;--shadow-lg:0 8px 24px #0000001f;--shadow-xl:0 24px 72px #00000038;--shadow-accent:0 8px 20px #6c63ff2e;--shadow-accent-sm:0 4px 14px #6c63ff1a;--shadow-accent-glow:0 4px 16px #6c63ff47}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-text-size-adjust:100%;height:100%;font-size:16px}body{background:var(--bg);color:var(--text);letter-spacing:-.01em;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-feature-settings:" cv11" 1;min-height:100%;transition:background var(--transition-base), color var(--transition-base);font-family:Hanken Grotesk,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.55}h1,h2,h3,h4{letter-spacing:-.02em;font-weight:700;line-height:1.2}.tabular,[class*=-value],[class*=-amount],[class*=stat]{font-variant-numeric:tabular-nums}html.privacy [class*=-value],html.privacy [class*=-amount],html.privacy [class*=-amt],html.privacy [class*=-spent],html.privacy .summary-of,html.privacy .stat-hint,html.privacy .breakdown-item{filter:blur(7px);transition:filter var(--transition-base)}html.privacy .account-panel .row-value{filter:none}a{color:inherit;text-decoration:none}button{font:inherit;color:inherit;cursor:pointer;appearance:none;background:0 0;border:none}input,select,textarea{font:inherit;color:inherit}img,svg{max-width:100%;display:block}:focus-visible{outline:2px solid var(--accent);outline-offset:2px;border-radius:var(--radius-xs)}:focus:not(:focus-visible){outline:none}.skip-link{background:var(--accent);color:#fff;border-radius:0 0 var(--radius-sm) 0;font-size:var(--text-sm);z-index:var(--z-palette);transition:top var(--transition-fast);padding:8px 16px;font-weight:600;text-decoration:none;position:absolute;top:-40px;left:0}.skip-link:focus{top:0}::-webkit-scrollbar{width:6px;height:6px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border2);border-radius:var(--radius-pill)}::-webkit-scrollbar-thumb:hover{background:var(--border3)}::selection{background:var(--accent-dim);color:var(--text)}.sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}.app-shell{background:var(--bg);grid-template-rows:1fr;grid-template-columns:240px 1fr;min-height:100dvh;display:grid}.sidebar{background:linear-gradient(180deg, var(--glass-sheen), transparent 120px), var(--glass-bg);border-right:1px solid var(--glass-border);-webkit-backdrop-filter:blur(20px)saturate(160%);width:240px;height:100dvh;z-index:var(--z-sidebar);transition:transform var(--transition-slow), box-shadow var(--transition-slow);flex-direction:column;display:flex;position:sticky;top:0;overflow:hidden auto}.sidebar-logo{padding:var(--sp-6) var(--sp-5) var(--sp-4);border-bottom:1px solid var(--glass-border);flex-shrink:0}.sidebar-logo-text{letter-spacing:-.02em;color:var(--text);font-size:24px;font-weight:800;line-height:1}.sidebar-logo-text span{color:var(--accent)}.sidebar-logo-sub{font-size:var(--text-xs);color:var(--text3);margin-top:2px;font-weight:500}.sidebar-nav{padding:var(--sp-4) var(--sp-3);flex-direction:column;flex:1;gap:2px;display:flex}.nav-section{letter-spacing:.1em;text-transform:uppercase;color:var(--text3);padding:var(--sp-3) var(--sp-3) var(--sp-2);font-size:10px;font-weight:700}.nav-item{align-items:center;gap:var(--sp-3);padding:10px var(--sp-3);border-radius:var(--radius);font-size:var(--text-sm);color:var(--text2);text-align:left;width:100%;transition:background var(--transition-fast), color var(--transition-fast), border-color var(--transition-fast);background:0 0;border:1px solid #0000;font-weight:500;display:flex}.nav-item:hover{background:var(--surface2);color:var(--text);border-color:var(--border)}.nav-item.active{background:var(--accent-dim);color:var(--accent);border-color:var(--accent-border);font-weight:600}.nav-icon{text-align:center;flex-shrink:0;justify-content:center;align-items:center;width:20px;font-size:16px;display:flex}.nav-divider{background:var(--border);height:1px;margin:var(--sp-3) 0}.sidebar-footer{padding:var(--sp-3) var(--sp-3) calc(var(--sp-3) + env(safe-area-inset-bottom));border-top:1px solid var(--glass-border);flex-shrink:0}.sidebar-add-btn{width:100%;margin-bottom:var(--sp-3);justify-content:center}.sidebar-user{align-items:center;gap:var(--sp-3);padding:var(--sp-3) var(--sp-3);border-radius:var(--radius);background:var(--surface2);border:1px solid var(--border);display:flex}.sidebar-user.clickable{cursor:pointer;transition:background var(--transition-fast), border-color var(--transition-fast)}.sidebar-user.clickable:hover{background:var(--surface3);border-color:var(--accent-border)}.sidebar-user-avatar{border-radius:var(--radius-pill);background:var(--accent-dim);border:1px solid var(--accent-border);flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:15px;display:flex}.sidebar-user-info{flex:1;min-width:0}.sidebar-user-name{font-size:var(--text-sm);white-space:nowrap;text-overflow:ellipsis;color:var(--text);font-weight:600;overflow:hidden}.sidebar-user-role{font-size:var(--text-xs);color:var(--text3)}.sidebar-user-actions{gap:var(--sp-1);display:flex}.main-content{flex-direction:column;min-width:0;display:flex}.topbar{padding:0 var(--sp-6);background:var(--glass-bg);border-bottom:1px solid var(--glass-border);-webkit-backdrop-filter:blur(20px)saturate(160%);height:60px;box-shadow:inset 0 1px 0 var(--glass-sheen);z-index:var(--z-topbar);transition:box-shadow var(--transition-base), background var(--transition-base);justify-content:space-between;align-items:center;display:flex;position:sticky;top:0}.topbar.scrolled{box-shadow:inset 0 1px 0 var(--glass-sheen), 0 4px 20px #00000040}.topbar-left{align-items:center;gap:var(--sp-3);display:flex}.topbar-title{font-size:var(--text-lg);color:var(--text);letter-spacing:-.01em;font-weight:700}.topbar-right{align-items:center;gap:var(--sp-2);display:flex}.connection-badge{font-size:var(--text-xs);border-radius:var(--radius-pill);border:1px solid #0000;align-items:center;gap:5px;padding:3px 8px;font-weight:500;display:inline-flex}.connection-badge.online{background:var(--green-dim);color:var(--green);border-color:var(--green-border)}.connection-badge.offline{background:var(--yellow-dim);color:var(--yellow);border-color:var(--yellow-border)}.connection-dot{background:currentColor;border-radius:50%;width:6px;height:6px}.page{padding:var(--sp-6);flex:1;width:100%;max-width:1200px;margin:0 auto}.page-header{justify-content:space-between;align-items:center;gap:var(--sp-4);margin-bottom:var(--sp-6);display:flex}.page-title{font-size:var(--text-2xl);letter-spacing:-.02em;color:var(--text);font-weight:800}.page-sub{font-size:var(--text-sm);color:var(--text3);margin-top:2px}.grid-2{gap:var(--sp-4);grid-template-columns:repeat(2,1fr);display:grid}.grid-3{gap:var(--sp-4);grid-template-columns:repeat(3,1fr);display:grid}.grid-4{gap:var(--sp-4);grid-template-columns:repeat(4,1fr);display:grid}.grid-stats{gap:var(--sp-3);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));display:grid}.sidebar-month-btn{width:100%;padding:8px var(--sp-3);border-radius:var(--radius-sm);font-size:var(--text-xs);color:var(--text3);transition:background var(--transition-fast), color var(--transition-fast);background:0 0;border:1px solid #0000;justify-content:space-between;align-items:center;display:flex}.sidebar-month-btn:hover{background:var(--surface2);color:var(--text2)}.sidebar-month-btn.active{color:var(--accent);background:var(--accent-dim)}.sidebar-month-amt{font-weight:600;font-size:var(--text-xs)}.sidebar-month-amt.positive{color:var(--green)}.sidebar-month-amt.negative{color:var(--red)}.bottom-nav{display:none}#sidebar-backdrop{background:var(--overlay-bg);z-index:var(--z-backdrop);-webkit-backdrop-filter:blur(2px);cursor:default;appearance:none;border:none;border-radius:0;display:none;position:fixed;inset:0}.btn{justify-content:center;align-items:center;gap:var(--sp-2);border-radius:var(--radius);font-size:var(--text-sm);letter-spacing:.01em;transition:background var(--transition-fast), box-shadow var(--transition-fast), transform var(--transition-fast), border-color var(--transition-fast);white-space:nowrap;-webkit-user-select:none;user-select:none;padding:10px 18px;font-weight:600;display:inline-flex}.btn:active{transform:scale(.97)}.btn-primary{background:linear-gradient(120deg, var(--accent-hover) 0%, var(--accent) 40%, color-mix(in srgb, var(--accent) 65%, var(--purple)) 100%);color:#fff;box-shadow:var(--shadow-accent-sm);transition:background-position var(--transition-slow), box-shadow var(--transition-fast), transform var(--transition-fast);background-position:0%;background-size:200% 100%}.btn-primary:hover{box-shadow:var(--shadow-accent);background-position:100%}.btn-secondary{background:var(--surface3);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover{background:var(--surface4);border-color:var(--border2)}.btn-ghost{color:var(--text2);border:1px solid var(--border);background:0 0}.btn-ghost:hover{background:var(--surface2);color:var(--text);border-color:var(--border2)}.btn-danger{background:var(--red-dim);color:var(--red);border:1px solid var(--red-border)}.btn-danger:hover{background:var(--red-hover);border-color:var(--red)}.btn-sm{font-size:var(--text-xs);border-radius:var(--radius-sm);padding:6px 12px}.btn-lg{font-size:var(--text-md);padding:14px 24px}.btn-icon{border-radius:var(--radius-sm);width:36px;height:36px;padding:8px}.btn-icon.btn-lg{width:42px;height:42px;padding:10px}.card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-5);transition:border-color var(--transition-base), box-shadow var(--transition-base)}.card:hover{border-color:var(--border2)}.card-interactive:hover{border-color:var(--accent-border);box-shadow:var(--shadow-card)}.card-sm{padding:var(--sp-4);border-radius:var(--radius)}.card-lg{padding:var(--sp-8);border-radius:var(--radius-xl)}.stat-card{--stat-c1:var(--accent);--stat-c2:var(--purple);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:var(--sp-5);gap:var(--sp-2);transition:border-color var(--transition-base), box-shadow var(--transition-base), transform var(--transition-base);flex-direction:column;display:flex;position:relative;overflow:hidden}.stat-card:before{content:"";background:linear-gradient(90deg, var(--stat-c1), var(--stat-c2));opacity:.55;height:2px;transition:opacity var(--transition-base);position:absolute;top:0;left:0;right:0}.stat-card:after{content:"";pointer-events:none;background:radial-gradient(120% 70% at 50% 0%, color-mix(in srgb, var(--stat-c1) 9%, transparent), transparent 60%);opacity:0;transition:opacity var(--transition-base);position:absolute;inset:0}.stat-card:hover{border-color:color-mix(in srgb, var(--stat-c1) 35%, var(--border));box-shadow:var(--shadow-card), 0 4px 24px color-mix(in srgb, var(--stat-c1) 14%, transparent);transform:translateY(-2px)}.stat-card:hover:before,.stat-card:hover:after{opacity:1}.stat-green{--stat-c1:var(--green);--stat-c2:var(--blue)}.stat-red{--stat-c1:var(--red);--stat-c2:var(--purple)}.stat-yellow{--stat-c1:var(--yellow);--stat-c2:var(--red)}.stat-accent{--stat-c1:var(--accent);--stat-c2:var(--blue)}@media (prefers-reduced-motion:reduce){.stat-card:hover{transform:none}}.stat-label{font-size:var(--text-xs);color:var(--text3);text-transform:uppercase;letter-spacing:.08em;font-weight:600}.stat-value{color:var(--text);word-break:break-all;font-size:clamp(18px,4vw,26px);font-weight:700;line-height:1.15}.stat-sub{font-size:var(--text-xs);color:var(--text3)}.badge{border-radius:var(--radius-pill);font-size:var(--text-xs);letter-spacing:.02em;align-items:center;gap:4px;padding:2px 8px;font-weight:600;display:inline-flex}.badge-green{background:var(--green-dim);color:var(--green);border:1px solid var(--green-border)}.badge-red{background:var(--red-dim);color:var(--red);border:1px solid var(--red-border)}.badge-yellow{background:var(--yellow-dim);color:var(--yellow);border:1px solid var(--yellow-border)}.badge-blue{background:var(--blue-dim);color:var(--blue);border:1px solid var(--blue-border)}.badge-accent{background:var(--accent-dim);color:var(--accent);border:1px solid var(--accent-border)}.field{gap:var(--sp-2);flex-direction:column;display:flex}.field label{font-size:var(--text-xs);color:var(--text3);text-transform:uppercase;letter-spacing:.07em;font-weight:600}.field input,.field select,.field textarea{background:var(--surface2);border:1px solid var(--border);border-radius:var(--radius);font-size:var(--text-sm);color:var(--text);transition:border-color var(--transition-fast), box-shadow var(--transition-fast);appearance:none;width:100%;padding:10px 12px}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--accent-border2);box-shadow:0 0 0 3px var(--accent-dim);outline:none;animation:2.4s ease-in-out infinite focus-pulse}@keyframes focus-pulse{0%,to{box-shadow:0 0 0 3px var(--accent-dim), 0 0 10px 0 var(--accent-glow)}50%{box-shadow:0 0 0 4px var(--accent-dim), 0 0 20px 2px var(--accent-glow)}}@media (prefers-reduced-motion:reduce){.field input:focus,.field select:focus,.field textarea:focus{animation:none}}.field input::placeholder,.field textarea::placeholder{color:var(--text3)}.field select{background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' stroke='%236e7496' stroke-width='1.5' fill='none' stroke-linecap='round'/%3E%3C/svg%3E");background-position:right 12px center;background-repeat:no-repeat;padding-right:32px}.modal-overlay{background:var(--overlay-bg);padding:var(--sp-4);z-index:var(--z-modal);opacity:0;pointer-events:none;transition:opacity var(--transition-base);-webkit-backdrop-filter:blur(4px);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.modal-overlay.open{opacity:1;pointer-events:auto}.modal{background:var(--surface);border:1px solid var(--border2);border-radius:var(--radius-xl);padding:var(--sp-6);width:100%;max-width:440px;max-height:90vh;box-shadow:var(--shadow-xl);overflow-y:auto}.modal-header{margin-bottom:var(--sp-5);justify-content:space-between;align-items:center;display:flex}.modal-title{font-size:var(--text-lg);color:var(--text);font-weight:700}.drawer-overlay{background:var(--overlay-bg);z-index:var(--z-drawer);opacity:0;pointer-events:none;transition:opacity var(--transition-base);-webkit-backdrop-filter:blur(4px);position:fixed;inset:0}.drawer-overlay.open{opacity:1;pointer-events:auto}.drawer-panel{background:var(--surface);border-left:1px solid var(--border2);width:min(420px,100vw);z-index:var(--z-drawer-panel);transition:transform var(--transition-slow);box-shadow:var(--shadow-xl);position:fixed;top:0;bottom:0;right:0;overflow-y:auto;transform:translate(100%)}.drawer-panel.open{transform:translate(0)}.divider{background:var(--border);height:1px;margin:var(--sp-4) 0}#toast-container{bottom:calc(80px + env(safe-area-inset-bottom));z-index:var(--z-nav);gap:var(--sp-2);pointer-events:none;flex-direction:column;align-items:center;display:flex;position:fixed;left:50%;transform:translate(-50%)}.toast{background:var(--surface3);border:1px solid var(--border2);color:var(--text);border-radius:var(--radius-pill);font-size:var(--text-sm);box-shadow:var(--shadow-lg);pointer-events:auto;white-space:nowrap;padding:10px 18px;font-weight:500}.spinner{border:2px solid var(--border2);border-top-color:var(--accent);border-radius:50%;width:20px;height:20px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.empty-state{justify-content:center;align-items:center;gap:var(--sp-3);padding:var(--sp-12) var(--sp-6);color:var(--text3);text-align:center;flex-direction:column;display:flex}.empty-state-icon{opacity:.6;font-size:40px}.empty-state-title{font-size:var(--text-md);color:var(--text2);font-weight:600}.empty-state-desc{font-size:var(--text-sm)}.empty-icon{opacity:.6;font-size:40px}.empty-text{font-size:var(--text-md);color:var(--text2);font-weight:600}.progress-bar{background:var(--surface3);border-radius:var(--radius-pill);height:6px;overflow:hidden}.progress-fill{border-radius:var(--radius-pill);height:100%;transition:width .7s cubic-bezier(.16,1,.3,1)}.shimmer-fill{position:relative;overflow:hidden}.shimmer-fill:after{content:"";background:linear-gradient(90deg,#0000 0%,#ffffff40 50%,#0000 100%);animation:2.2s infinite shimmer-sweep;position:absolute;inset:0}@keyframes shimmer-sweep{0%{transform:translate(-100%)}to{transform:translate(200%)}}.shimmer-fill.complete:after{background:linear-gradient(90deg,#0000 0%,#fff6 50%,#0000 100%);animation-duration:1.4s}@media (prefers-reduced-motion:reduce){.shimmer-fill:after{display:none}}.sheet-overlay{background:var(--overlay-bg);-webkit-backdrop-filter:blur(4px);padding:var(--sp-4);z-index:var(--z-modal);justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.sheet{background:var(--surface);border:1px solid var(--border2);border-radius:var(--radius-xl);width:100%;max-width:460px;max-height:90vh;box-shadow:var(--shadow-xl);overflow-y:auto}.sheet-header{padding:var(--sp-5) var(--sp-5) 0;justify-content:space-between;align-items:center;display:flex}.sheet-title{font-size:var(--text-lg);color:var(--text);margin:0;font-weight:700}.sheet-close{color:var(--text3);cursor:pointer;border-radius:var(--radius);width:28px;height:28px;transition:color var(--transition-fast), background var(--transition-fast);background:0 0;border:none;justify-content:center;align-items:center;font-size:16px;display:flex}.sheet-close:hover{color:var(--text);background:var(--surface2)}.sheet-body{padding:var(--sp-5);gap:var(--sp-4);flex-direction:column;display:flex}.sheet-footer{justify-content:flex-end;gap:var(--sp-3);padding:0 var(--sp-5) var(--sp-5);display:flex}.sheet-row-2{gap:var(--sp-3);grid-template-columns:1fr 1fr;display:grid}.sheet-date-pair{gap:var(--sp-2);grid-template-columns:1fr 90px;display:grid}.sheet .optional{text-transform:none;letter-spacing:0;font-weight:400}.sheet-error{font-size:var(--text-sm);color:var(--red);padding:var(--sp-2) var(--sp-3);background:var(--red-dim);border-radius:var(--radius);border:1px solid var(--red-border)}@media (width<=600px){.sheet-row-2{grid-template-columns:1fr}}.sep{align-items:center;gap:var(--sp-3);color:var(--text3);font-size:var(--text-xs);display:flex}.sep:before,.sep:after{content:"";background:var(--border);flex:1;height:1px}.palette-overlay{z-index:var(--z-palette);background:var(--overlay-bg);-webkit-backdrop-filter:blur(8px);opacity:0;pointer-events:none;justify-content:center;align-items:flex-start;padding-top:12dvh;transition:opacity .15s;display:flex;position:fixed;inset:0}.palette-overlay.open{opacity:1;pointer-events:all}.palette{background:var(--surface);border:1px solid var(--border2);border-radius:18px;flex-direction:column;width:calc(100% - 32px);max-width:580px;max-height:72dvh;display:flex;overflow:hidden;box-shadow:0 24px 72px #0000008c}.palette-search{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:14px 18px;display:flex}.palette-search-icon{flex-shrink:0;font-size:17px}.palette-search input{color:var(--text);background:0 0;border:none;outline:none;flex:1;font-family:inherit;font-size:16px}.palette-search input::placeholder{color:var(--text3)}.palette-esc-hint{background:var(--surface3);border:1px solid var(--border);color:var(--text3);border-radius:5px;flex-shrink:0;padding:2px 6px;font-family:DM Mono,monospace;font-size:11px}.palette-section-header{letter-spacing:.08em;text-transform:uppercase;color:var(--text3);padding:8px 18px 4px;font-size:10px;font-weight:700}.palette-results{flex:1;overflow-y:auto}.palette-item{cursor:pointer;text-align:left;width:100%;font:inherit;color:inherit;background:0 0;border:none;align-items:center;gap:12px;padding:9px 18px;transition:background 80ms;display:flex}.palette-item:hover,.palette-item.selected{background:var(--surface2);border-left-color:var(--accent)}.palette-item-icon{background:var(--surface3);border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:34px;height:34px;font-size:18px;display:flex}.palette-item-body{flex-direction:column;flex:1;gap:2px;min-width:0;display:flex}.palette-item-name{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:14px;font-weight:600;overflow:hidden}.palette-item-meta{color:var(--text3);font-size:12px}.palette-item-amt{color:var(--red);flex-shrink:0;font-family:DM Mono,monospace;font-size:13px;font-weight:500}.palette-badge{background:var(--surface3);color:var(--text3);vertical-align:middle;border-radius:4px;margin-left:4px;padding:1px 5px;font-size:10px;display:inline-block}.palette-empty{color:var(--text3);justify-content:center;align-items:center;padding:40px;font-size:14px;display:none}.palette-footer{border-top:1px solid var(--border);color:var(--text3);flex-wrap:wrap;gap:16px;padding:9px 18px;font-size:11px;display:flex}.palette-footer kbd{background:var(--surface3);border:1px solid var(--border);color:var(--text2);border-radius:4px;margin:0 1px;padding:1px 5px;font-family:DM Mono,monospace;font-size:10px;display:inline-block}@media (width<=600px){.palette-overlay{align-items:flex-start;padding-top:8px}.palette{border-radius:0 0 18px 18px;max-height:85dvh}.palette-footer{display:none}}@media (width<=768px){.sidebar{height:100dvh;z-index:calc(var(--z-nav) + 5);box-shadow:none;position:fixed;top:0;left:0;transform:translate(-100%)}.sidebar.open{box-shadow:var(--shadow-xl);transform:translate(0)}#sidebar-backdrop.open{z-index:calc(var(--z-nav) + 4);display:block}.app-shell{grid-template-columns:1fr}.topbar{padding-top:env(safe-area-inset-top,0px);min-height:calc(56px + env(safe-area-inset-top,0px));height:auto;padding-left:var(--sp-4);padding-right:var(--sp-4);padding-bottom:var(--sp-3);z-index:var(--z-topbar);align-items:flex-end;position:fixed;top:0;left:0;right:0}.topbar.topbar-hidden{transform:translateY(-100%)}.topbar{transition:transform var(--transition-slow), box-shadow var(--transition-base)}.main-content{padding-top:calc(56px + env(safe-area-inset-top,0px))}.page{padding:var(--sp-4);padding-bottom:calc(80px + env(safe-area-inset-bottom))}.bottom-nav{padding-bottom:env(safe-area-inset-bottom);background:var(--glass-bg);border-top:1px solid var(--glass-border);-webkit-backdrop-filter:blur(16px);z-index:var(--z-nav);display:flex;position:fixed;bottom:0;left:0;right:0}.bottom-nav-item{padding:var(--sp-3) var(--sp-2);color:var(--text3);transition:color var(--transition-fast);text-align:center;cursor:pointer;background:0 0;border:none;flex-direction:column;flex:1;justify-content:center;align-items:center;gap:3px;font-size:10px;font-weight:600;display:flex}.bottom-nav-item.active{color:var(--accent)}.bottom-nav-icon{line-height:1;display:inline-flex}.grid-2,.grid-3,.grid-4{grid-template-columns:1fr}.grid-stats{grid-template-columns:repeat(2,1fr)}.stat-value{word-break:break-all;font-size:clamp(14px,3.5vw,20px)}.modal{border-radius:var(--radius-xl) var(--radius-xl) 0 0;max-height:85vh;margin-top:auto}.modal-overlay{align-items:flex-end;padding:0}.drawer-panel{border-left:none;border-top:1px solid var(--border2);width:100vw}.page-title{font-size:var(--text-xl)}}@media (width<=380px){.stat-value{font-size:13px}.grid-stats{gap:var(--sp-2);grid-template-columns:repeat(2,1fr)}}
