.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-3) var(--space-5);font-size:.95rem;font-weight:500;border:1px solid transparent;border-radius:var(--radius-md);cursor:pointer;transition:var(--transition);font-family:inherit}.btn:disabled{opacity:.5;cursor:not-allowed;pointer-events:none}.btn-primary{background:var(--brand-primary);color:#fff;box-shadow:var(--shadow-sm)}.btn-primary:active{transform:translateY(1px)}.btn-secondary{background:var(--bg-surface);color:var(--text-high);border:var(--border-subtle)}.btn-secondary:hover:not(:disabled){background:var(--bg-surface);border-color:var(--border-strong);filter:brightness(1.1)}.btn-danger{background:var(--status-danger-bg);color:var(--status-danger);border:1px solid var(--status-danger)}.btn-danger:hover:not(:disabled){background:var(--status-danger);color:#fff}.btn-icon{padding:var(--space-2);background:transparent;color:var(--text-low);border-radius:var(--radius-full)}.btn-icon:hover:not(:disabled){color:var(--text-high);background:var(--bg-surface)}.btn-icon.btn-danger-icon{color:var(--status-danger);opacity:.5}.btn-icon.btn-danger-icon:hover:not(:disabled){opacity:1;color:var(--status-danger);background:var(--status-danger-bg)}.btn.loading .spinner{width:18px;height:18px;border:2px solid rgba(255,255,255,.3);border-top-color:currentColor;border-radius:50%;animation:btn-spin .8s linear infinite}@keyframes btn-spin{to{transform:rotate(360deg)}}.login-screen{min-height:100vh;display:flex;align-items:center;justify-content:center;padding:var(--space-8)}.login-container{width:100%;max-width:400px;text-align:center}.login-logo{margin-bottom:var(--space-8)}.logo-icon{width:80px;height:80px;background:linear-gradient(135deg,var(--brand-primary),var(--brand-hover));border-radius:var(--radius-lg);display:flex;align-items:center;justify-content:center;margin:0 auto var(--space-6);box-shadow:var(--shadow-glow)}.logo-icon i{font-size:2.5rem;color:#fff}.login-logo h1{font-size:2rem;font-weight:700;margin-bottom:var(--space-2);color:var(--text-high)}.login-logo .subtitle{color:var(--text-low);font-size:1rem}.login-form{background:var(--bg-panel);padding:var(--space-8);border-radius:var(--radius-lg);box-shadow:var(--shadow-md)}.login-form .input-group{position:relative;margin-bottom:var(--space-6)}.login-form .input-group i{position:absolute;left:var(--space-4);top:50%;transform:translateY(-50%);color:var(--text-low)}.login-form .input-group input{width:100%;padding:.875rem 1rem .875rem 2.75rem;background:var(--bg-surface);border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text-high);font-size:1rem;transition:var(--transition)}.login-form .input-group input:focus{outline:none;border-color:var(--brand-primary);box-shadow:0 0 0 2px var(--brand-alpha)}.login-form .btn{width:100%}.error-message{display:flex;align-items:center;justify-content:center;gap:var(--space-2);color:var(--status-danger);font-size:.9rem;margin-bottom:var(--space-4);padding:var(--space-3);background:var(--status-danger-bg);border-radius:var(--radius-sm)}.login-hint{margin-top:var(--space-6);color:var(--text-low);font-size:.85rem}@media(max-width:480px){.login-screen{padding:var(--space-4)}.login-form{padding:var(--space-5);border-radius:var(--radius-md)}.login-logo h1{font-size:1.5rem}.logo-icon{width:60px;height:60px;margin-bottom:var(--space-4)}.logo-icon i{font-size:2rem}.login-logo{margin-bottom:var(--space-6)}.login-form .input-group{margin-bottom:var(--space-4)}}.date-range-filter{display:flex;flex-direction:column;gap:var(--space-3)}.date-presets{display:flex;flex-wrap:wrap;gap:var(--space-2)}.date-preset-chip{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-full);background:var(--bg-base);color:var(--text-low);font-size:var(--text-xs);font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap}.date-preset-chip:hover{border-color:var(--brand-primary);color:var(--text-high);background:var(--bg-surface)}.date-preset-chip.active{border-color:var(--brand-primary);background:var(--brand-alpha);color:var(--brand-primary);font-weight:600}.date-preset-chip i{font-size:.875rem}.date-custom-inputs{display:flex;align-items:flex-end;gap:var(--space-3);padding:var(--space-3);background:var(--bg-surface);border-radius:var(--radius-md);border:1px solid var(--border-subtle)}.date-input-group{display:flex;flex-direction:column;gap:var(--space-1)}.date-input-group label{font-size:var(--text-xs);color:var(--text-low);font-weight:500;text-transform:uppercase;letter-spacing:.05em}.date-input-group input[type=date]{padding:var(--space-2) var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--bg-base);color:var(--text-high);font-size:var(--text-sm);font-family:inherit}.date-input-group input[type=date]:focus{outline:none;border-color:var(--brand-primary);box-shadow:0 0 0 2px var(--brand-alpha)}.date-separator{color:var(--text-low);font-size:var(--text-lg);padding-bottom:var(--space-2)}@media(max-width:600px){.date-custom-inputs{flex-direction:column;align-items:stretch}.date-separator{text-align:center;padding:0}}.cat-breakdown{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-3)}.catb-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-2)}.catb-title{display:flex;align-items:center;gap:var(--space-2);margin:0;font-size:var(--text-sm);font-weight:600;color:var(--text-low);text-transform:uppercase;letter-spacing:.04em}.catb-title i{font-size:1rem;color:var(--brand-primary)}.catb-toggle{display:flex;gap:2px;padding:2px;background:var(--bg-surface);border-radius:var(--radius-sm);border:1px solid var(--border-subtle)}.catb-toggle-btn{padding:var(--space-1) var(--space-3);border:none;border-radius:calc(var(--radius-sm) - 1px);background:transparent;color:var(--text-low);font-size:var(--text-xs);font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap}.catb-toggle-btn:hover{color:var(--text-high)}.catb-toggle-btn.active{background:var(--brand-primary);color:#fff;box-shadow:0 1px 3px #00000040}.catb-body{display:flex;flex-direction:column;gap:var(--space-4);flex:1;min-height:0}.catb-donut-wrap{width:260px;height:260px;margin:var(--space-2) auto;position:relative;flex-shrink:0}.catb-donut-wrap canvas{width:100%!important;height:100%!important}.catb-bars{display:flex;flex-direction:column;gap:var(--space-2);overflow-y:auto;max-height:300px;scrollbar-width:thin;scrollbar-color:var(--border-subtle) transparent}.catb-bars::-webkit-scrollbar{width:4px}.catb-bars::-webkit-scrollbar-thumb{background:var(--border-subtle);border-radius:2px}.catb-row{animation:catb-slide-in .35s ease-out both}@keyframes catb-slide-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:translateY(0)}}.catb-row-header{display:flex;align-items:center;gap:var(--space-2);margin-bottom:4px}.catb-dot{flex-shrink:0;width:8px;height:8px;border-radius:2px}.catb-label{flex:1;min-width:0;font-size:var(--text-xs);font-weight:500;color:var(--text-high);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.catb-value{font-size:var(--text-xs);font-weight:600;color:var(--text-high);white-space:nowrap}.catb-pct{font-size:10px;font-weight:500;color:var(--text-low);min-width:34px;text-align:right}.catb-track{width:100%;height:6px;background:var(--bg-surface);border-radius:3px;overflow:hidden}.catb-fill{height:100%;border-radius:3px;transition:width .6s cubic-bezier(.22,1,.36,1);min-width:3px}.catb-empty{display:flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:200px;color:var(--text-low);font-size:var(--text-sm)}.catb-empty i{font-size:1.5rem;opacity:.4}.catb-detail-toggle{display:flex;align-items:center;justify-content:center;gap:var(--space-1);width:100%;padding:var(--space-2) 0;border:none;border-top:1px solid var(--border-subtle);background:transparent;color:var(--text-low);font-size:var(--text-xs);font-weight:500;cursor:pointer;transition:color .2s ease}.catb-detail-toggle:hover{color:var(--brand-primary)}.catb-detail-toggle i{font-size:1rem;transition:transform .2s ease}@media(min-width:960px){.catb-body{display:grid;grid-template-columns:220px 1fr;column-gap:var(--space-6);align-items:start}.catb-donut-wrap{grid-column:1;grid-row:1 / 3;width:220px;height:220px;margin:0}.catb-detail-toggle{display:none}.catb-bars{grid-column:2;grid-row:1;max-height:none;overflow:visible}}@media(max-width:480px){.catb-donut-wrap{width:200px;height:200px}}.dashboard-v2{display:flex;flex-direction:column;gap:var(--space-6)}.dashboard-header{display:flex;flex-direction:column;gap:var(--space-4)}.dashboard-title-row{display:flex;align-items:center;justify-content:space-between}.dashboard-title{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-xl);font-weight:700;color:var(--text-high);margin:0}.dashboard-title i{color:var(--brand-primary);font-size:1.4rem}.dashboard-title-actions{display:flex;align-items:center;gap:var(--space-3)}.scope-toggle{display:flex;align-items:center;gap:2px;padding:3px;background:var(--bg-surface);border-radius:var(--radius-md);border:1px solid var(--border-subtle)}.scope-chip{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-low);font-size:var(--text-xs);font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap}.scope-chip:hover{color:var(--text-high)}.scope-chip.active{background:var(--brand-primary);color:#fff;box-shadow:0 1px 3px #0003}.scope-chip i{font-size:.85rem}.dashboard-refresh{width:36px;height:36px;display:flex;align-items:center;justify-content:center;border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-card);color:var(--text-low);cursor:pointer;transition:all .2s ease}.dashboard-refresh:hover{border-color:var(--brand-primary);color:var(--brand-primary)}.dashboard-refresh.spinning i{animation:dash-spin .8s linear infinite}@keyframes dash-spin{to{transform:rotate(360deg)}}.dashboard-error{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--status-danger-bg);color:var(--status-danger);border-radius:var(--radius-md);font-size:var(--text-sm)}.dashboard-analysis{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6);align-items:start}.dashboard-analysis-left{display:flex;flex-direction:column;gap:var(--space-6)}.dashboard-analysis-right{padding:var(--space-5);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg)}.dashboard-body{display:grid;grid-template-columns:3fr 2fr;gap:var(--space-6);align-items:start}.dashboard-body-aside{display:flex;flex-direction:column;gap:var(--space-4)}.dashboard-body-aside:first-child{grid-column:1 / -1;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}.dashboard-app-placeholder{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);background:var(--bg-card);border:1px dashed var(--border-subtle);border-radius:var(--radius-lg);color:var(--text-low);font-size:var(--text-sm)}.dashboard-app-placeholder i{font-size:1.4rem;color:var(--brand-primary);opacity:.6}.dashboard-empty-apps{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-12) var(--space-6);text-align:center}.dashboard-empty-apps i{font-size:3rem;color:var(--text-low);opacity:.3}.dashboard-empty-apps h3{color:var(--text-high);font-size:var(--text-lg);font-weight:600;margin:0}.dashboard-empty-apps p{color:var(--text-low);font-size:var(--text-sm);margin:0}.patrimonio-card{position:relative;overflow:hidden;display:flex;flex-direction:column;align-items:center;text-align:center;gap:var(--space-1);padding:var(--space-14, 3.5rem) var(--space-8);background:linear-gradient(135deg,#4338ca,#6d28d9 55%,#9333ea);border-radius:var(--radius-xl);border:1px solid rgba(255,255,255,.12);color:#fff;box-shadow:0 0 0 1px #4f46e566,0 12px 40px #4f46e559,inset 0 1px #ffffff1f}.patrimonio-card:before{content:"";position:absolute;top:-50px;right:-50px;width:240px;height:240px;background:#ffffff0d;border-radius:50%;pointer-events:none}.patrimonio-card:after{content:"";position:absolute;bottom:-70px;left:30%;width:180px;height:180px;background:#ffffff0a;border-radius:50%;pointer-events:none}.patrimonio-main{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);position:relative;z-index:1}.patrimonio-label{display:flex;align-items:center;gap:var(--space-2);font-size:.68rem;font-weight:600;opacity:.65;letter-spacing:.12em;text-transform:uppercase}.patrimonio-label i{font-size:.85rem}.patrimonio-amount{font-size:3.4rem;font-weight:800;letter-spacing:-.04em;line-height:1;text-shadow:0 4px 16px rgba(0,0,0,.2)}.patrimonio-breakdown{display:flex;gap:var(--space-3);margin-top:var(--space-3);flex-wrap:wrap;justify-content:center}.pb-item{display:flex;align-items:center;gap:6px;font-size:var(--text-xs);font-weight:500;padding:5px 12px;background:#ffffff1a;border:1px solid rgba(255,255,255,.18);border-radius:999px;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);white-space:nowrap}.pb-item i{font-size:.8rem;opacity:.85}.patrimonio-icon-side{display:none}.graph-section{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);overflow:hidden}.graph-section-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:var(--space-3);padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--border-subtle)}.graph-section-title{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-base);font-weight:600;color:var(--text-high)}.graph-section-title i{color:var(--brand-primary);font-size:1.1rem}.graph-section-body{padding:var(--space-2) 0 var(--space-4)}.widget-placeholder{min-height:180px;display:flex;align-items:center;justify-content:center;background:var(--bg-card)!important;border:1.5px dashed var(--border-subtle)!important;border-radius:var(--radius-xl)!important;transition:border-color .2s}.widget-placeholder:hover{border-color:var(--brand-primary)!important}.widget-placeholder-inner{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);text-align:center;padding:var(--space-6)}.widget-placeholder-inner i{font-size:2.2rem;background:linear-gradient(135deg,var(--brand-primary),#9333ea);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text;opacity:.5}.widget-placeholder-inner h3{font-size:var(--text-sm);font-weight:600;color:var(--text-high);margin:0}.widget-placeholder-inner p{font-size:var(--text-xs);color:var(--text-low);margin:0;max-width:200px;line-height:1.5}@media(max-width:960px){.dashboard-body{grid-template-columns:1fr}.dashboard-body-aside,.dashboard-body-aside:first-child{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,320px),1fr))}}@media(max-width:700px){.dashboard-title-row{flex-wrap:wrap;gap:var(--space-3)}.patrimonio-card{align-items:center;gap:var(--space-4)}.patrimonio-icon-side{display:none}.graph-section-header{flex-direction:column;align-items:flex-start;padding:var(--space-4)}}@media(max-width:540px){.patrimonio-card{padding:var(--space-5) var(--space-4)}.patrimonio-amount{font-size:1.9rem}.pb-item{padding:4px 8px;font-size:.68rem}}@media(max-width:400px){.patrimonio-amount{font-size:1.6rem}.patrimonio-card{padding:var(--space-4) var(--space-3)}.patrimonio-breakdown{gap:var(--space-2)}.pb-item{padding:3px 6px;font-size:.62rem}.dashboard-title{font-size:1.1rem}}.widget-card{padding:0;overflow:hidden}.widget-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4);border-bottom:1px solid var(--border-subtle)}.widget-header h3{margin:0;font-size:var(--text-base);display:flex;align-items:center;gap:var(--space-2)}.widget-badge{background:var(--brand-primary);color:#fff;font-size:var(--text-xs);font-weight:700;padding:.15rem .5rem;border-radius:999px;min-width:22px;text-align:center}.widget-list{display:flex;flex-direction:column}.widget-list-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-subtle);transition:background .15s}.widget-list-item:last-child{border-bottom:none}.widget-list-item:hover{background:var(--bg-surface)}.widget-list-item-main{display:flex;flex-direction:column;gap:var(--space-1)}.widget-list-item-name{font-weight:500;color:var(--text-high);font-size:var(--text-sm)}.widget-list-item-date{color:var(--text-low);font-size:var(--text-xs)}.widget-list-item-amount{font-weight:600;font-size:var(--text-sm)}.widget-list-item-amount.positive{color:var(--status-success)}.widget-list-item-amount.negative{color:var(--text-high)}.widget-goal-item{padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-subtle);display:flex;flex-direction:column;gap:var(--space-2)}.widget-goal-item:last-child{border-bottom:none}.widget-goal-header{display:flex;justify-content:space-between;align-items:center}.widget-goal-progress-text{font-weight:600;font-size:var(--text-xs);color:var(--text-low)}.widget-goal-bar{height:6px;border-radius:3px;background:var(--bg-card);overflow:hidden}.widget-goal-bar-fill{height:100%;border-radius:3px;transition:width .6s ease}.widget-goal-footer{display:flex;justify-content:space-between;font-size:var(--text-xs);color:var(--text-low)}.dashboard-widgets{display:flex;flex-direction:column;gap:var(--space-4)}.net-worth-widget .widget-header{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);font-weight:600;font-size:var(--font-sm);color:var(--text-primary);border-bottom:1px solid var(--border-subtle)}.net-worth-widget .widget-header i{color:var(--accent);font-size:1.1em}@media(max-width:480px){.widget-header{padding:var(--space-3)}.widget-list-item{padding:var(--space-2) var(--space-3);flex-direction:column;align-items:flex-start;gap:var(--space-1)}.widget-list-item-amount{align-self:flex-end}.widget-goal-item{padding:var(--space-2) var(--space-3)}}.tokens-search-bar{display:flex;align-items:center;gap:var(--space-2);background:#ffffff09;border:1px solid rgba(255,255,255,.07);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);margin-bottom:var(--space-3);transition:border-color .2s ease}.tokens-search-bar:focus-within{border-color:#8b5cf673;background:#ffffff0d}.tokens-search-bar__icon{font-size:.9rem;color:var(--text-low);flex-shrink:0}.tokens-search-bar__input{flex:1;background:none;border:none;outline:none;font-size:.875rem;color:var(--text-base);font-family:inherit}.tokens-search-bar__input::placeholder{color:var(--text-low);opacity:.6}.tokens-search-bar__clear{display:flex;align-items:center;justify-content:center;width:20px;height:20px;background:#ffffff0f;border:none;border-radius:var(--radius-full);color:var(--text-low);cursor:pointer;font-size:.75rem;transition:background .15s ease,color .15s ease;flex-shrink:0}.tokens-search-bar__clear:hover{background:#ffffff1f;color:var(--text-high)}.tokens-table{width:100%}.tokens-header,.tokens-row{display:grid;grid-template-columns:2fr 1fr .9fr 1.4fr 1fr 1fr;gap:var(--space-3)}.tokens-header{padding:var(--space-2) var(--space-3);font-size:.6875rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-low);border-bottom:1px solid rgba(255,255,255,.06);margin-bottom:var(--space-1)}.col-header{display:flex;align-items:center;gap:2px;white-space:nowrap}.col-header--sortable{cursor:pointer;-webkit-user-select:none;user-select:none;transition:color .15s ease;justify-content:flex-end}.col-header--sortable:hover{color:var(--text-base)}.col-header--active{color:var(--brand-primary)!important}.sort-arrow{font-size:.625rem;opacity:.6;font-style:normal}.tokens-header .col-price,.tokens-header .col-change,.tokens-header .col-qty,.tokens-header .col-value,.tokens-header .col-allocation{text-align:right}.tokens-row{padding:var(--space-3);align-items:center;border-bottom:1px solid rgba(255,255,255,.03);transition:background .15s ease}.tokens-row:last-of-type{border-bottom:none}.tokens-row:hover{background:var(--bg-hover);border-radius:var(--radius-sm)}.col-token{display:flex;align-items:center;gap:var(--space-3)}.token-icon-wrap{width:36px;height:36px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;flex-shrink:0;position:relative;background:#ffffff0a}.token-icon-wrap i{font-size:1.125rem}.token-logo{width:28px;height:28px;border-radius:50%;object-fit:contain}.token-chain-dot{position:absolute;bottom:-1px;right:-1px;width:10px;height:10px;border-radius:50%;border:2px solid var(--bg-app)}.token-name-group{display:flex;flex-direction:column;gap:1px}.token-symbol{font-weight:600;font-size:.875rem;color:var(--text-high)}.token-chain-label{font-size:.6875rem;color:var(--text-low)}.col-price,.col-change,.col-qty,.col-value,.col-allocation{text-align:right}.price-value{font-size:.8125rem;color:var(--text-base)}.col-change{display:flex;align-items:center;justify-content:flex-end}.change-badge{display:inline-flex;align-items:center;justify-content:center;padding:.2rem .5rem;border-radius:999px;font-size:.72rem;font-weight:600;font-family:var(--font-mono);letter-spacing:-.01em;white-space:nowrap}.change-badge.positive{color:var(--status-success);background:#18c9641f;border:1px solid rgba(24,201,100,.22)}.change-badge.negative{color:var(--status-danger);background:#ef44441f;border:1px solid rgba(239,68,68,.22)}.change-badge--none{color:var(--text-low);opacity:.4;background:transparent;border:none;font-size:.875rem;font-family:inherit;font-weight:400}.qty-value{font-size:.8125rem;color:var(--text-base);font-family:var(--font-mono)}.value-amount{font-weight:600;font-size:.875rem;color:var(--text-high)}.col-allocation{display:flex;flex-direction:column;align-items:flex-end;gap:4px}.allocation-pct{font-size:.75rem;font-weight:600;color:var(--text-base);font-family:var(--font-mono);letter-spacing:-.01em}.allocation-bar{width:100%;height:3px;background:#ffffff12;border-radius:2px;overflow:hidden}.allocation-bar__fill{height:100%;background:linear-gradient(90deg,var(--brand-primary),#a78bfa);border-radius:2px;transition:width .4s cubic-bezier(.4,0,.2,1);min-width:2px}.tokens-footer{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-3) var(--space-1);border-top:1px solid rgba(255,255,255,.06);margin-top:var(--space-2)}.tokens-footer__count{font-size:.75rem;color:var(--text-low)}.tokens-footer__total{font-size:.875rem;font-weight:700;color:var(--text-high)}@media(max-width:768px){.tokens-header,.tokens-row{grid-template-columns:2fr 1fr .9fr 1.4fr 1fr}.tokens-header .col-qty,.tokens-row .col-qty{display:none}}@media(max-width:640px){.tokens-header,.tokens-row{grid-template-columns:2fr 1fr 1fr 1fr}.tokens-header .col-change,.tokens-row .col-change{display:none}}@media(max-width:480px){.tokens-header,.tokens-row{grid-template-columns:2fr 1fr 1fr}.tokens-header .col-price,.tokens-row .col-price{display:none}}@media(max-width:420px){.tokens-header,.tokens-row{grid-template-columns:1.5fr 1fr}.tokens-header .col-allocation,.tokens-row .col-allocation{display:none}}.defi-view{display:flex;flex-direction:column;gap:var(--space-6)}.defi-protocol{display:flex;flex-direction:column;gap:var(--space-3)}.defi-protocol__header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) 0}.defi-protocol__info{display:flex;align-items:center;gap:var(--space-3)}.defi-protocol__icon{width:36px;height:36px;border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:1.125rem}.defi-protocol__name{font-weight:600;font-size:1rem;color:var(--text-high);display:flex;align-items:center;gap:var(--space-2)}.defi-protocol__wallet{font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--brand-primary);background:#8b5cf61f;padding:1px 6px;border-radius:var(--radius-full);line-height:1.5}.defi-protocol__value{font-size:1rem;font-weight:700;color:var(--text-high)}.defi-status{display:flex;align-items:center;gap:var(--space-3);padding-bottom:var(--space-3);border-bottom:1px solid rgba(255,255,255,.06);flex-wrap:wrap}.defi-status__badge{font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);background:#ffffff0f;color:var(--text-base);line-height:1}.defi-status__hf{display:flex;align-items:center;gap:4px;font-size:.75rem;color:var(--text-low)}.defi-status__hf-dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.defi-status__hf-value{font-weight:700;font-family:var(--font-mono)}.defi-status__risk{font-size:.75rem;color:var(--text-low);margin-left:auto}.defi-status__risk strong{color:var(--text-high);font-weight:600}.defi-status__sep{margin:0 var(--space-2);opacity:.3}.hf-bar-wrapper{padding:var(--space-3) 0 var(--space-2);border-bottom:1px solid rgba(255,255,255,.05)}.hf-bar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-2)}.hf-bar-label{display:flex;align-items:center;gap:var(--space-2);font-size:.75rem;color:var(--text-low);font-weight:500}.hf-bar-label__badge{display:inline-flex;align-items:center;gap:3px;padding:1px 7px;border-radius:var(--radius-full);font-size:.6875rem;font-weight:600;letter-spacing:.02em}.hf-bar-value{font-size:1.1rem;font-weight:800;font-family:var(--font-mono);letter-spacing:-.02em}.hf-bar-track{position:relative;height:6px;background:#ffffff12;border-radius:6px;overflow:visible}.hf-bar-fill{height:100%;border-radius:6px;transition:width .8s cubic-bezier(.4,0,.2,1);min-width:4px;position:relative;box-shadow:0 0 6px currentColor}.hf-bar-marker{position:absolute;top:-3px;width:2px;height:12px;background:#ef4444b3;border-radius:1px;transform:translate(-50%)}.hf-bar-marker--warn{background:#f59e0bb3}.hf-bar-marker--safe{background:#10b98180}.hf-bar-zones{position:relative;height:14px;margin-top:4px}.hf-bar-zones span{position:absolute;transform:translate(-50%);font-size:.6rem;color:var(--text-low);opacity:.6;white-space:nowrap}.defi-section{margin-top:var(--space-2)}.defi-section__header{display:grid;grid-template-columns:2fr 1.5fr 1fr;gap:var(--space-3);padding:var(--space-2) var(--space-3);font-size:.6875rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-low);border-bottom:1px solid rgba(255,255,255,.04)}.defi-section__col-right,.defi-section__col-value{text-align:right}.defi-section__row{display:grid;grid-template-columns:2fr 1.5fr 1fr;gap:var(--space-3);padding:var(--space-3);align-items:center;border-bottom:1px solid rgba(255,255,255,.03);transition:background .15s ease}.defi-section__row:last-child{border-bottom:none}.defi-section__row:hover{background:var(--bg-hover);border-radius:var(--radius-sm)}.defi-section__token-cell{display:flex;align-items:center;gap:var(--space-2)}.defi-token-icon{width:24px;height:24px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;flex-shrink:0;background:#ffffff0a}.defi-token-icon .token-logo{width:20px;height:20px;border-radius:50%}.defi-section__token{font-weight:500;font-size:.875rem;color:var(--text-high)}.defi-section__balance{text-align:right;font-size:.8125rem;color:var(--text-base);font-family:var(--font-mono)}.defi-section__value{text-align:right;font-weight:600;font-size:.875rem;color:var(--text-high)}@media(max-width:768px){.defi-protocol__header{flex-direction:column;align-items:flex-start;gap:var(--space-2)}.defi-status{flex-wrap:wrap;gap:var(--space-2)}.defi-risk-alert__metrics{display:flex;flex-direction:column;gap:2px}.defi-risk-alert__sep{display:none}.defi-section__header,.defi-section__row{grid-template-columns:1.5fr 1fr}.defi-section__col-right,.defi-section__balance{display:none}}.defi-earnings{display:flex;flex-direction:column;gap:0;margin-top:var(--space-3);padding:var(--space-3);background:#ffffff05;border:1px solid rgba(255,255,255,.05);border-radius:var(--radius)}.defi-earnings__row{display:flex;align-items:center;justify-content:space-between;padding:var(--space-2) 0;border-bottom:1px solid rgba(255,255,255,.03)}.defi-earnings__row:last-child{border-bottom:none}.defi-earnings__row--total{border-top:1px solid rgba(255,255,255,.08);margin-top:var(--space-1);padding-top:var(--space-2)}.defi-earnings__row--earnings{background:#10b9810a;border-radius:var(--radius-sm);margin-top:var(--space-1);padding:var(--space-2) var(--space-2)}.defi-earnings__label{display:flex;align-items:center;gap:var(--space-2);font-size:.8125rem;color:var(--text-base);font-weight:500}.defi-earnings__label i{font-size:1rem;flex-shrink:0}.defi-earnings__value{font-size:.875rem;font-weight:600;color:var(--text-high);font-family:var(--font-mono, monospace)}.defi-earnings__value--debt{color:var(--status-danger)}.defi-earnings__value--net{font-size:1rem;font-weight:700}.defi-earnings__value.positive{color:var(--status-success)}.defi-earnings__value.negative{color:var(--status-danger)}.taxes-view{display:flex;flex-direction:column;gap:var(--space-5)}.taxes-header-row{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.taxes-title{font-size:.875rem;font-weight:600;color:var(--text-base);margin:0}.year-selector{display:flex;gap:var(--space-1)}.year-pill{padding:4px 12px;border-radius:99px;border:1px solid rgba(255,255,255,.08);background:transparent;color:var(--text-low);font-size:.75rem;font-weight:500;cursor:pointer;transition:all .15s ease}.year-pill:hover{border-color:#ffffff2e;color:var(--text-base)}.year-pill.active{background:var(--accent);border-color:var(--accent);color:#fff}.taxes-twin-cards{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.tax-card{position:relative;padding:var(--space-4);border-radius:var(--radius);border:1px solid rgba(255,255,255,.06);background:var(--bg-card);display:flex;flex-direction:column;gap:var(--space-2);min-height:120px}.tax-card--loading{align-items:center;justify-content:center}.tax-card__spinner{display:flex;align-items:center;justify-content:center;height:100%}.tax-card__badge{display:inline-flex;align-self:flex-start;padding:2px 8px;border-radius:99px;background:#ffffff12;color:var(--text-low);font-size:.6875rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em}.tax-card__badge--fiscal{background:#3b82f61f;color:var(--status-info)}.tax-card__label{font-size:.75rem;color:var(--text-low);text-transform:uppercase;letter-spacing:.06em}.tax-card__value{font-size:1.375rem;font-weight:700;color:var(--text-high);line-height:1.2}.tax-card__value.positive{color:var(--status-success)}.tax-card__value.negative{color:var(--status-danger)}.tax-card__sub{display:flex;align-items:center;justify-content:space-between;font-size:.75rem;color:var(--text-low)}.tax-card__pct.positive{color:var(--status-success);font-weight:600}.tax-card__pct.negative{color:var(--status-danger);font-weight:600}.tax-card__hint{font-size:.6875rem;color:var(--text-low);opacity:.6;margin-top:auto}.irpf-banner{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);background:#f59e0b0f;border:1px solid rgba(245,158,11,.15);border-radius:var(--radius)}.irpf-banner__icon{color:#f59e0b;font-size:1.25rem;flex-shrink:0;line-height:1}.irpf-banner__body{flex:1;display:flex;flex-direction:column;gap:3px}.irpf-banner__label{font-size:.75rem;color:var(--text-low);font-weight:500}.irpf-banner__brackets{display:flex;gap:var(--space-2);flex-wrap:wrap}.irpf-bracket{font-size:.6875rem;color:#f59e0b;font-weight:600;background:#f59e0b1a;padding:1px 6px;border-radius:4px}.irpf-banner__amount{display:flex;flex-direction:column;align-items:flex-end;gap:2px;flex-shrink:0}.irpf-banner__tax-label{font-size:.6875rem;color:var(--text-low)}.irpf-banner__tax-value{font-size:1rem;font-weight:700;color:#f59e0b}.manual-review-actions{display:flex;flex-direction:column;align-items:flex-end;gap:var(--space-2)}.manual-review-context{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.35rem}.manual-review-button{border:1px solid rgba(245,158,11,.2);background:#f59e0b14;color:#f59e0b;border-radius:999px;font-size:.6875rem;font-weight:600;padding:6px 10px;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease}.manual-review-button:hover:not(:disabled){background:#f59e0b24;border-color:#f59e0b59}.manual-review-button:disabled{opacity:.6;cursor:wait}.taxes-error{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3);background:#ef44440f;border:1px solid rgba(239,68,68,.15);border-radius:var(--radius-sm);font-size:.8125rem;color:var(--status-danger)}.taxes-coverage-banner{display:flex;align-items:flex-start;gap:var(--space-2);padding:var(--space-3);background:#10b9810f;border:1px solid rgba(16,185,129,.12);border-radius:var(--radius-sm);font-size:.75rem;color:var(--text-low)}.taxes-coverage-banner i{color:var(--status-success);font-size:.875rem;flex-shrink:0;margin-top:1px}.tax-engine-banner{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-3);background:#3b82f60f;border:1px solid rgba(59,130,246,.12);border-radius:var(--radius-sm)}.tax-engine-banner--busy{background:#f59e0b0f;border-color:#f59e0b2e}.tax-engine-banner--warn{background:#ef44440f;border-color:#ef444426}.tax-engine-banner__icon{color:var(--status-info);font-size:1rem;line-height:1;margin-top:2px}.tax-engine-banner--busy .tax-engine-banner__icon{color:#f59e0b}.tax-engine-banner--warn .tax-engine-banner__icon{color:var(--status-danger)}.tax-engine-banner__body{display:flex;flex-direction:column;gap:4px}.tax-engine-banner__title{font-size:.75rem;font-weight:600;color:var(--text-base)}.tax-engine-banner__meta{display:flex;flex-wrap:wrap;gap:var(--space-2);font-size:.75rem;color:var(--text-low)}.taxes-section{display:flex;flex-direction:column;gap:var(--space-3)}.taxes-section__title{display:flex;align-items:center;gap:var(--space-2);font-size:.75rem;font-weight:600;color:var(--text-low);text-transform:uppercase;letter-spacing:.08em}.taxes-section__title i{font-size:.875rem;color:var(--accent)}.taxes-info{display:flex;align-items:center;gap:var(--space-2);font-size:.75rem;color:var(--text-low);padding:var(--space-2) var(--space-3);background:#3b82f60f;border-radius:var(--radius-sm);border:1px solid rgba(59,130,246,.1)}.taxes-info i{color:var(--status-info);font-size:.875rem;flex-shrink:0}.disposal-table{width:100%}.disposal-header{display:grid;grid-template-columns:90px 1fr 110px 130px 100px;gap:var(--space-3);padding:var(--space-2) var(--space-3);font-size:.6875rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-low);border-bottom:1px solid rgba(255,255,255,.06);margin-bottom:var(--space-1)}.disposal-header .dcol-sell,.disposal-header .dcol-cost,.disposal-header .dcol-pnl{text-align:right}.disposal-row{display:grid;grid-template-columns:90px 1fr 110px 130px 100px;gap:var(--space-3);padding:var(--space-3);align-items:center;border-bottom:1px solid rgba(255,255,255,.03);transition:background .15s ease}.disposal-row:last-child{border-bottom:none}.disposal-row:hover{background:var(--bg-hover);border-radius:var(--radius-sm)}.disposal-date{font-size:.75rem;color:var(--text-low);white-space:nowrap}.disposal-asset{display:flex;flex-direction:column;gap:1px}.disposal-asset__symbol{font-weight:600;font-size:.875rem;color:var(--text-high)}.disposal-asset__qty{font-size:.6875rem;color:var(--text-low);font-family:var(--font-mono, monospace)}.dcol-sell,.dcol-cost{text-align:right;font-size:.8125rem;color:var(--text-base);display:flex;flex-direction:column;align-items:flex-end;gap:1px}.dcol-sub{font-size:.6875rem;color:var(--text-low)}.dcol-pnl{text-align:right;font-size:.875rem;font-weight:600}.dcol-pnl.positive{color:var(--status-success)}.dcol-pnl.negative{color:var(--status-danger)}.taxes-empty-disposals{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-6);text-align:center}.taxes-empty-disposals i{font-size:2rem;color:var(--text-low);opacity:.4}.taxes-empty-disposals p{font-size:.875rem;color:var(--text-low);margin:0}.taxes-empty-disposals span{font-size:.75rem;color:var(--text-low);opacity:.6;max-width:420px}.taxes-empty-disposals code{font-family:var(--font-mono, monospace);font-size:.6875rem;background:#ffffff0f;padding:1px 4px;border-radius:3px}.taxes-table{width:100%}.taxes-header{display:grid;grid-template-columns:2fr 1fr 1fr 1.2fr;gap:var(--space-3);padding:var(--space-2) var(--space-3);font-size:.6875rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-low);border-bottom:1px solid rgba(255,255,255,.06);margin-bottom:var(--space-1)}.taxes-header .col-cost,.taxes-header .col-current,.taxes-header .col-pnl{text-align:right}.taxes-row{display:grid;grid-template-columns:2fr 1fr 1fr 1.2fr;gap:var(--space-3);padding:var(--space-3);align-items:center;border-bottom:1px solid rgba(255,255,255,.03);transition:background .15s ease}.taxes-row:last-child{border-bottom:none}.taxes-row:hover{background:var(--bg-hover);border-radius:var(--radius-sm)}.col-asset{display:flex;align-items:center;gap:var(--space-3)}.tax-token-icon{width:28px;height:28px;border-radius:var(--radius-full);display:flex;align-items:center;justify-content:center;flex-shrink:0;background:#ffffff0a}.tax-token-icon .token-logo{width:24px;height:24px;border-radius:50%}.tax-asset-info{display:flex;flex-direction:column;gap:1px}.tax-asset-symbol{font-weight:600;font-size:.875rem;color:var(--text-high)}.tax-asset-chain{font-size:.6875rem;color:var(--text-low)}.tax-asset-flags{display:flex;flex-wrap:wrap;gap:6px;margin-top:4px}.tax-flag{display:inline-flex;align-items:center;padding:2px 6px;border-radius:999px;background:#ffffff0d;color:var(--text-low);font-size:.625rem;font-weight:600;letter-spacing:.02em}.tax-flag--warn{background:#f59e0b1f;color:#f59e0b}.tax-flag--danger{background:#ef44441f;color:var(--status-danger)}.tax-flag--ok{background:#10b9811f;color:var(--status-success)}.counterparty-table{width:100%}.counterparty-header{display:grid;grid-template-columns:1.5fr .8fr 1fr 1.2fr;gap:var(--space-3);padding:var(--space-2) var(--space-3);font-size:.6875rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-low);border-bottom:1px solid rgba(255,255,255,.06);margin-bottom:var(--space-1)}.counterparty-row{display:grid;grid-template-columns:1.5fr .8fr 1fr 1.2fr;gap:var(--space-3);padding:var(--space-3);align-items:center;border-bottom:1px solid rgba(255,255,255,.03);transition:background .15s ease}.counterparty-row:last-child{border-bottom:none}.counterparty-row:hover{background:var(--bg-hover);border-radius:var(--radius-sm)}.counterparty-info{display:flex;flex-direction:column;gap:2px}.counterparty-name{font-size:.875rem;font-weight:600;color:var(--text-high)}.counterparty-sub,.ccol-sub{font-size:.6875rem;color:var(--text-low)}.ccol-events,.ccol-coverage{display:flex;flex-direction:column;align-items:flex-end;text-align:right;font-size:.8125rem;color:var(--text-base)}.ccol-issues{display:flex;justify-content:flex-end}.counterparty-issues{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:6px}.col-cost,.col-current{text-align:right;font-size:.8125rem;color:var(--text-base)}.col-pnl{text-align:right;display:flex;flex-direction:column;align-items:flex-end;gap:1px}.pnl-value{font-weight:600;font-size:.8125rem}.pnl-pct{font-size:.6875rem;font-weight:500}.pnl-value.positive,.pnl-pct.positive{color:var(--status-success)}.pnl-value.negative,.pnl-pct.negative{color:var(--status-danger)}@media(max-width:768px){.taxes-twin-cards{grid-template-columns:1fr}.irpf-banner{flex-direction:column;align-items:flex-start}.irpf-banner__amount{align-items:flex-start}.disposal-header,.disposal-row{grid-template-columns:80px 1fr 90px 90px}.disposal-header .dcol-cost,.disposal-row .dcol-cost{display:none}.taxes-header,.taxes-row{grid-template-columns:1.5fr 1fr 1fr}.counterparty-header,.counterparty-row{grid-template-columns:1.2fr .8fr 1fr}.counterparty-header .ccol-issues,.counterparty-row .ccol-issues,.taxes-header .col-cost,.taxes-row .col-cost{display:none}}@media(max-width:480px){.disposal-header,.disposal-row{grid-template-columns:1fr 80px 80px}.disposal-header .dcol-date,.disposal-row .dcol-date{display:none}.taxes-header,.taxes-row{grid-template-columns:1.5fr 1fr}.counterparty-header,.counterparty-row{grid-template-columns:1fr 1fr}.counterparty-header .ccol-coverage,.counterparty-row .ccol-coverage,.taxes-header .col-current,.taxes-row .col-current{display:none}}.taxes-section__toggle{display:flex;align-items:center;gap:var(--space-2);width:100%;background:transparent;border:none;border-bottom:1px solid rgba(255,255,255,.05);padding:var(--space-3) 0;font-size:.8125rem;font-weight:600;color:var(--text-base);cursor:pointer;transition:color .15s ease}.taxes-section__toggle:hover{color:var(--text-high)}.taxes-section__toggle i{font-size:1rem;color:var(--text-low)}.taxes-section__count{margin-left:auto;font-size:.6875rem;font-weight:600;color:var(--accent);background:#3b82f61f;padding:1px 8px;border-radius:99px}.refetch-tools{display:flex;flex-direction:column;gap:var(--space-3);padding-top:var(--space-3)}.refetch-tools__info{display:flex;align-items:flex-start;gap:var(--space-2);font-size:.75rem;color:var(--text-low);padding:var(--space-2) var(--space-3);background:#3b82f60f;border-radius:var(--radius-sm);border:1px solid rgba(59,130,246,.1)}.refetch-tools__info i{font-size:.875rem;color:var(--status-info);flex-shrink:0;margin-top:1px}.refetch-tools__grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3)}.refetch-form{padding:var(--space-3);background:var(--bg-card);border:1px solid rgba(255,255,255,.06);border-radius:var(--radius);display:flex;flex-direction:column;gap:var(--space-2)}.refetch-form__title{font-size:.75rem;font-weight:600;color:var(--text-base);text-transform:uppercase;letter-spacing:.06em}.refetch-form__fields{display:flex;flex-wrap:wrap;gap:var(--space-2);align-items:center}.refetch-input{padding:6px 10px;background:#ffffff0d;border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-sm);color:var(--text-high);font-size:.8125rem;font-family:var(--font-mono, monospace);min-width:0;flex:1;transition:border-color .15s ease}.refetch-input:focus{outline:none;border-color:var(--accent)}.refetch-input::placeholder{color:var(--text-low);opacity:.5}.refetch-input--wide{flex:3;min-width:200px}.refetch-select{flex:0 0 auto;width:70px;cursor:pointer}.refetch-btn{display:inline-flex;align-items:center;gap:var(--space-1);padding:6px 14px;background:#ffffff12;border:1px solid rgba(255,255,255,.12);border-radius:var(--radius-sm);color:var(--text-base);font-size:.75rem;font-weight:600;cursor:pointer;transition:all .15s ease;white-space:nowrap}.refetch-btn:hover:not(:disabled){background:#ffffff1f;border-color:#fff3;color:var(--text-high)}.refetch-btn:disabled{opacity:.5;cursor:wait}.refetch-btn--accent{background:#3b82f61f;border-color:#3b82f633;color:var(--status-info)}.refetch-btn--accent:hover:not(:disabled){background:#3b82f633;border-color:#3b82f659}.refetch-result{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);font-size:.75rem;font-weight:500}.refetch-result--ok{background:#10b98114;border:1px solid rgba(16,185,129,.18);color:var(--status-success)}.refetch-result--error{background:#ef444414;border:1px solid rgba(239,68,68,.18);color:var(--status-danger)}.refetch-result i{font-size:.875rem;flex-shrink:0}.opening-lots{display:flex;flex-direction:column;gap:var(--space-3);padding-top:var(--space-3)}.opening-lots__actions{display:flex;gap:var(--space-2)}.lot-form{padding:var(--space-3);background:var(--bg-card);border:1px solid rgba(59,130,246,.15);border-radius:var(--radius);display:flex;flex-direction:column;gap:var(--space-3)}.lot-form__grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:var(--space-3)}.lot-form__field{display:flex;flex-direction:column;gap:4px}.lot-form__label{font-size:.6875rem;font-weight:600;color:var(--text-low);text-transform:uppercase;letter-spacing:.06em}.lot-form__submit{align-self:flex-start}.lots-table{width:100%}.lots-header{display:grid;grid-template-columns:80px 1.5fr 1fr 1fr 90px 40px;gap:var(--space-3);padding:var(--space-2) var(--space-3);font-size:.6875rem;text-transform:uppercase;letter-spacing:.08em;color:var(--text-low);border-bottom:1px solid rgba(255,255,255,.06);margin-bottom:var(--space-1)}.lots-row{display:grid;grid-template-columns:80px 1.5fr 1fr 1fr 90px 40px;gap:var(--space-3);padding:var(--space-3);align-items:center;border-bottom:1px solid rgba(255,255,255,.03);transition:background .15s ease}.lots-row:last-child{border-bottom:none}.lots-row:hover{background:var(--bg-hover);border-radius:var(--radius-sm)}.lot-wallet-badge{display:inline-flex;font-size:.625rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--brand-primary);background:#8b5cf61f;padding:2px 8px;border-radius:var(--radius-full)}.lot-asset-info{display:flex;flex-direction:column;gap:1px}.lot-asset-symbol{font-weight:600;font-size:.875rem;color:var(--text-high)}.lot-asset-chain{font-size:.6875rem;color:var(--text-low)}.lcol-amount{text-align:right;font-size:.8125rem;color:var(--text-base);font-family:var(--font-mono, monospace)}.lcol-price{text-align:right;font-size:.8125rem;color:var(--text-base)}.lcol-date{font-size:.75rem;color:var(--text-low);white-space:nowrap}.lot-delete-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:var(--radius-sm);border:1px solid rgba(239,68,68,.15);background:#ef44440f;color:var(--status-danger);cursor:pointer;transition:all .15s ease;font-size:.875rem}.lot-delete-btn:hover{background:#ef444424;border-color:#ef44444d}@media(max-width:768px){.refetch-tools__grid{grid-template-columns:1fr}.lot-form__grid{grid-template-columns:1fr 1fr}.lots-header,.lots-row{grid-template-columns:60px 1fr 1fr 40px}.lots-header .lcol-price,.lots-row .lcol-price,.lots-header .lcol-date,.lots-row .lcol-date{display:none}}.tx-list{display:flex;flex-direction:column;width:100%}.tx-row{display:grid;grid-template-columns:180px 1fr auto;gap:var(--space-4);padding:var(--space-3);align-items:center;border-bottom:1px solid rgba(255,255,255,.03);transition:background .15s ease}.tx-row:last-child{border-bottom:none}.tx-row:hover{background:var(--bg-hover);border-radius:var(--radius-sm)}.tx-row__left{display:flex;flex-direction:column;gap:2px}.tx-date{font-size:.75rem;color:var(--text-low);white-space:nowrap}.tx-hash{font-size:.6875rem;font-family:var(--font-mono);color:var(--brand-primary);text-decoration:none;transition:color .15s ease}.tx-hash:hover{color:var(--brand-hover)}.tx-row__center{display:flex;align-items:center;gap:var(--space-3);min-width:0}.tx-row__center>i{font-size:1.125rem;flex-shrink:0}.tx-action{display:flex;flex-direction:column;gap:1px;min-width:0}.tx-label{font-size:.8125rem;font-weight:600;color:var(--text-high)}.tx-desc{font-size:.6875rem;color:var(--text-low);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tx-row__right{text-align:right}.tx-amount{font-size:.8125rem;font-weight:600;font-family:var(--font-mono);color:var(--text-base);white-space:nowrap}.tx-amount.positive{color:var(--status-success)}@media(max-width:768px){.tx-row{grid-template-columns:1fr auto;gap:var(--space-2)}.tx-row__left{display:none}}@media(max-width:480px){.tx-row{grid-template-columns:1fr;gap:var(--space-1)}.tx-row__right{text-align:left;padding-left:calc(1.125rem + var(--space-3))}}.ch-container{padding:0 0 24px}.ch-header{display:flex;align-items:flex-start;justify-content:space-between;flex-wrap:wrap;gap:12px;margin-bottom:16px}.ch-title-block{display:flex;flex-direction:column;gap:4px}.ch-label{font-size:.8rem;color:var(--text-low);text-transform:uppercase;letter-spacing:.05em}.ch-change{font-size:1rem;font-weight:600}.ch-change.positive{color:var(--status-success)}.ch-change.negative{color:var(--status-danger)}.ch-change-pct{font-size:.85rem;font-weight:400;opacity:.8}.ch-controls{display:flex;align-items:center;gap:12px;flex-wrap:wrap}.ch-range-selector{display:flex;gap:2px;background:var(--bg-surface);border-radius:8px;padding:2px}.ch-range-btn{padding:4px 10px;border:none;background:transparent;color:var(--text-low);font-size:.78rem;border-radius:6px;cursor:pointer;transition:background .15s,color .15s}.ch-range-btn:hover{background:var(--bg-hover);color:var(--text-high)}.ch-range-btn.active{background:var(--brand-primary);color:#fff}.ch-assets-toggle{display:flex;align-items:center;gap:6px;font-size:.8rem;color:var(--text-low);cursor:pointer;-webkit-user-select:none;user-select:none}.ch-assets-toggle input[type=checkbox]{accent-color:var(--brand-primary);width:14px;height:14px}.ch-chart-wrapper{position:relative}.ch-svg{width:100%;height:auto;display:block;overflow:visible}.ch-mini-stats{display:grid;grid-template-columns:1fr 1fr 1fr;gap:var(--space-2, 8px);padding:10px 14px;margin-bottom:12px;background:#ffffff05;border:1px solid rgba(255,255,255,.05);border-radius:10px}.ch-mini-stat{display:flex;flex-direction:column;gap:2px}.ch-mini-stat--center{align-items:center;text-align:center}.ch-mini-stat--right{align-items:flex-end;text-align:right}.ch-mini-stat__label{font-size:.6875rem;color:var(--text-low);text-transform:uppercase;letter-spacing:.05em}.ch-mini-stat__value{font-size:.9rem;font-weight:700;color:var(--text-high);letter-spacing:-.01em;font-family:var(--font-mono, monospace)}.ch-mini-stat__value--high{color:var(--status-success)}.ch-mini-stat__value--low{color:var(--status-danger)}.ch-mini-stat__date{font-size:.65rem;color:var(--text-low);opacity:.6}.ch-tooltip{position:absolute;top:8px;pointer-events:none;background:var(--bg-surface);border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:8px 12px;min-width:140px;box-shadow:0 4px 16px #0006;z-index:10}.ch-tooltip-date{font-size:.72rem;color:var(--text-low);margin-bottom:4px}.ch-tooltip-total{font-size:.95rem;font-weight:700;color:var(--text-high);margin-bottom:6px}.ch-tooltip-asset{display:flex;align-items:center;gap:6px;font-size:.75rem;color:var(--text-low);padding:1px 0}.ch-tooltip-asset span:last-child{margin-left:auto;color:var(--text-high)}.ch-tooltip-dot{width:7px;height:7px;border-radius:50%;flex-shrink:0}.ch-legend{display:flex;flex-wrap:wrap;gap:12px;margin-top:8px;padding:0 4px}.ch-legend-item{display:flex;align-items:center;gap:6px;font-size:.78rem;color:var(--text-low)}.ch-legend-line{width:20px;height:2px;border-radius:2px;flex-shrink:0}.ch-breakdown{margin-top:20px;border:1px solid rgba(255,255,255,.06);border-radius:10px;overflow:hidden}.ch-breakdown-header{font-size:.75rem;color:var(--text-low);text-transform:uppercase;letter-spacing:.05em;padding:10px 14px;background:var(--bg-surface);border-bottom:1px solid rgba(255,255,255,.06)}.ch-breakdown-rows{display:flex;flex-direction:column}.ch-breakdown-row{display:flex;align-items:center;gap:8px;padding:8px 14px;border-bottom:1px solid rgba(255,255,255,.04);font-size:.85rem;transition:background .12s ease}.ch-breakdown-row:last-child{border-bottom:none}.ch-breakdown-row:hover{background:var(--bg-hover)}.ch-breakdown-row.debt{opacity:.65}.ch-breakdown-symbol{font-weight:600;color:var(--text-high);min-width:60px}.ch-breakdown-value{margin-left:auto;color:var(--text-high)}.ch-breakdown-badge{font-size:.68rem;background:#ef444426;color:var(--status-danger);border-radius:4px;padding:1px 5px}.ch-footer{display:flex;align-items:center;justify-content:space-between;margin-top:14px;padding-top:12px;border-top:1px solid rgba(255,255,255,.06)}.ch-footer-info{font-size:.75rem;color:var(--text-low)}.ch-loading,.ch-error,.ch-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:60px 24px;text-align:center;color:var(--text-low);font-size:.9rem}.ch-empty i,.ch-error i{font-size:2.4rem;opacity:.4}.ch-empty-sub{font-size:.8rem;max-width:400px;opacity:.7}.ch-spinner{width:28px;height:28px;border:2px solid rgba(255,255,255,.1);border-top-color:var(--brand-primary);border-radius:50%;animation:ch-spin .8s linear infinite}@keyframes ch-spin{to{transform:rotate(360deg)}}.ch-btn-primary{padding:8px 18px;background:var(--brand-primary);color:#fff;border:none;border-radius:8px;font-size:.85rem;font-weight:600;cursor:pointer;transition:opacity .15s}.ch-btn-primary:hover{opacity:.85}.ch-btn-primary:disabled{opacity:.5;cursor:not-allowed}.ch-btn-secondary{padding:6px 14px;background:transparent;color:var(--text-low);border:1px solid rgba(255,255,255,.1);border-radius:8px;font-size:.82rem;cursor:pointer;transition:border-color .15s,color .15s}.ch-btn-secondary:hover{border-color:var(--brand-primary);color:var(--brand-primary)}.ch-btn-ghost{display:flex;align-items:center;gap:5px;padding:5px 10px;background:transparent;color:var(--text-low);border:none;font-size:.78rem;cursor:pointer;border-radius:6px;transition:color .15s,background .15s}.ch-btn-ghost:hover{background:var(--bg-hover);color:var(--text-high)}.ch-btn-ghost:disabled{opacity:.5;cursor:not-allowed}@media(max-width:600px){.ch-header{flex-direction:column}.ch-controls{justify-content:flex-start}.ch-breakdown-rows{font-size:.8rem}}.currency-toggle{display:flex;align-items:center;gap:2px;background:var(--bg-surface);border-radius:var(--radius-full);padding:3px;border:1px solid rgba(255,255,255,.06);flex-shrink:0}.currency-toggle__btn{display:flex;align-items:center;gap:4px;padding:var(--space-1) var(--space-3);border:none;border-radius:var(--radius-full);background:transparent;color:var(--text-low);font-size:.75rem;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap;line-height:1.5}.currency-toggle__btn:hover{color:var(--text-base);background:#ffffff0a}.currency-toggle__btn.active{background:linear-gradient(135deg,#f59e0b,#d97706);color:#fff;font-weight:600;box-shadow:0 1px 4px #f59e0b4d}.currency-toggle__symbol{font-size:.875rem;font-weight:700;line-height:1}.currency-toggle__code{font-size:.6875rem;letter-spacing:.04em;text-transform:uppercase}.crypto-layout{display:flex;flex-direction:column;gap:var(--space-2);width:100%;max-width:1200px;margin:0 auto}.crypto-topbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);flex-wrap:wrap;padding-bottom:var(--space-2)}.crypto-topbar__left{display:flex;align-items:center;gap:var(--space-3)}.crypto-topbar__wallet-label{display:flex;align-items:center;gap:var(--space-2);font-size:.8125rem;color:var(--text-low);font-weight:500}.crypto-topbar__wallet-label i{font-size:1rem}.crypto-topbar__refresh{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:none;border-radius:var(--radius-full);background:transparent;color:var(--text-low);cursor:pointer;transition:var(--transition)}.crypto-topbar__refresh:hover{color:var(--text-high);background:var(--bg-hover)}.crypto-topbar__refresh:disabled{opacity:.5;cursor:not-allowed}.crypto-topbar__refresh .spin{animation:spin .8s linear infinite}.crypto-topbar__right{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.wallet-selector{display:flex;align-items:center;gap:2px;background:var(--bg-surface);border-radius:var(--radius-full);padding:3px;border:1px solid rgba(255,255,255,.06)}.wallet-pill{padding:var(--space-1) var(--space-3);border:none;border-radius:var(--radius-full);background:transparent;color:var(--text-low);font-size:.75rem;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap;line-height:1.5}.wallet-pill:hover{color:var(--text-base);background:#ffffff0a}.wallet-pill.active{background:var(--brand-primary);color:#fff;font-weight:600;box-shadow:0 1px 4px #8b5cf64d}.crypto-hero{padding:var(--space-4) 0 var(--space-2)}.crypto-hero__main{display:flex;flex-direction:column;gap:var(--space-2)}.crypto-hero__amount{font-size:2.5rem;font-weight:700;color:var(--text-high);letter-spacing:-.03em;line-height:1.1}.crypto-hero__meta{display:flex;align-items:center;gap:var(--space-4);flex-wrap:wrap}.crypto-hero__pnl{display:inline-flex;align-items:center;gap:4px;font-size:.9rem;font-weight:700;letter-spacing:-.01em}.crypto-hero__pnl.positive{color:var(--status-success)}.crypto-hero__pnl.negative{color:var(--status-danger)}.crypto-hero__pnl-arrow{font-size:.6rem;line-height:1}.crypto-hero__pnl-pct{font-weight:500;opacity:.85;font-size:.8125rem}.crypto-hero__pnl-label{font-size:.6875rem;font-weight:500;letter-spacing:.04em;text-transform:uppercase;opacity:.6;margin-left:1px}.crypto-hero__pnl--unavailable{color:var(--text-low);opacity:.45;gap:5px;font-size:.8125rem;font-weight:500}.crypto-hero__pnl-dash{font-size:1rem;line-height:1;letter-spacing:-.02em}.crypto-hero__sep{color:var(--text-low);opacity:.35;font-size:.75rem}.crypto-hero__breakdown-item{display:flex;align-items:center;gap:var(--space-1);font-size:.8125rem;color:var(--text-low)}.crypto-hero__breakdown-item .dot{width:6px;height:6px;border-radius:50%;flex-shrink:0}.dot--holdings{background:var(--status-info)}.dot--debt{background:var(--status-danger, #ef4444)}.crypto-hero__refresh-indicator{display:flex;align-items:center}.crypto-hero--skeleton{padding:var(--space-6) 0}.skeleton{background:linear-gradient(90deg,var(--bg-surface) 25%,rgba(255,255,255,.06) 50%,var(--bg-surface) 75%);background-size:200% 100%;animation:skeleton-shimmer 1.5s ease-in-out infinite;border-radius:var(--radius-sm)}.skeleton--amount{width:280px;height:44px;margin-bottom:var(--space-3)}.skeleton--breakdown{width:200px;height:14px}@keyframes skeleton-shimmer{0%{background-position:200% 0}to{background-position:-200% 0}}.crypto-tabs{border-bottom:1px solid rgba(255,255,255,.06);margin-bottom:var(--space-4)}.crypto-tabs__list{display:flex;gap:var(--space-6)}.crypto-tabs__item{position:relative;padding:var(--space-3) 0;border:none;background:none;color:var(--text-low);font-size:.875rem;font-weight:500;cursor:pointer;transition:color .2s ease;white-space:nowrap}.crypto-tabs__item:hover,.crypto-tabs__item.active{color:var(--text-high)}.crypto-tabs__item.active:after{content:"";position:absolute;bottom:-1px;left:0;right:0;height:2px;background:var(--brand-primary);border-radius:1px}.crypto-panel{width:100%}.crypto-panel-toolbar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);margin-bottom:var(--space-4);flex-wrap:wrap}.crypto-panel-toolbar__summary{font-size:.8125rem;color:var(--text-low)}.crypto-panel-toolbar__toggles{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.crypto-toggle-chip{display:inline-flex;align-items:center;gap:.45rem;padding:.45rem .7rem;border-radius:999px;border:1px solid rgba(255,255,255,.1);background:#ffffff08;color:var(--text-base);font-size:.75rem;cursor:pointer;transition:border-color .2s ease,background .2s ease,color .2s ease;-webkit-user-select:none;user-select:none}.crypto-toggle-chip:hover{border-color:#ffffff2e;background:#ffffff0f}.crypto-toggle-chip:has(input:checked){border-color:#8b5cf680;background:#8b5cf61f;color:var(--text-high)}.crypto-toggle-chip input{margin:0;accent-color:var(--brand-primary)}.crypto-detected-panel{margin-top:var(--space-5);padding:var(--space-4);border:1px solid rgba(255,255,255,.08);border-radius:var(--radius-lg);background:#ffffff05}.crypto-detected-panel__header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-3);margin-bottom:var(--space-3)}.crypto-detected-panel__header h3{margin:0 0 .2rem;font-size:.95rem}.crypto-detected-panel__header p{margin:0;font-size:.78rem;color:var(--text-low)}.crypto-detected-panel__refresh{border:1px solid rgba(255,255,255,.1);background:#ffffff0a;color:var(--text-base);border-radius:999px;padding:.45rem .8rem;cursor:pointer}.crypto-detected-list{display:grid;gap:var(--space-3)}.crypto-detected-card{display:flex;justify-content:space-between;gap:var(--space-3);align-items:center;padding:var(--space-3);border-radius:var(--radius-md);background:#ffffff08;flex-wrap:wrap}.crypto-detected-card__meta{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.crypto-detected-card__meta strong{color:var(--text-high)}.crypto-detected-card__meta span{font-size:.75rem;color:var(--text-low)}.crypto-detected-card__actions{display:flex;align-items:center;gap:.45rem;flex-wrap:wrap}.crypto-detected-card__actions button{border:1px solid rgba(255,255,255,.1);background:#ffffff0a;color:var(--text-base);border-radius:999px;padding:.35rem .65rem;cursor:pointer;font-size:.75rem}.crypto-detected-badge{display:inline-flex;align-items:center;padding:.18rem .45rem;border-radius:999px;background:#ffffff14;color:var(--text-base)!important}.crypto-detected-badge.ok{background:#18c96426}.crypto-detected-badge.warn{background:#ffb84d29}.crypto-detected-badge.danger{background:#ff5f5f29}.crypto-detected-badge.info{background:#4299e12e}.crypto-retry-btn{padding:var(--space-2) var(--space-4);border:var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-panel);color:var(--text-high);font-weight:500;cursor:pointer;transition:var(--transition)}.crypto-retry-btn:hover{background:var(--bg-surface)}.spinner--sm{width:10px;height:10px;border:2px solid rgba(255,255,255,.15);border-top-color:var(--status-success);border-radius:50%;animation:spin .8s linear infinite;flex-shrink:0}@media(max-width:768px){.crypto-hero__amount{font-size:1.75rem}.crypto-topbar{flex-direction:column;align-items:flex-start;gap:var(--space-2)}.crypto-tabs__list{gap:var(--space-4)}}@media(max-width:480px){.crypto-hero__amount{font-size:1.4rem}.crypto-tabs__list{gap:var(--space-3);overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.crypto-tabs__list::-webkit-scrollbar{display:none}.crypto-tabs__item{font-size:.8125rem}.wallet-selector{overflow-x:auto;scrollbar-width:none;max-width:100%;flex-shrink:1}.wallet-selector::-webkit-scrollbar{display:none}.crypto-panel-toolbar{flex-direction:column;align-items:flex-start}.crypto-hero__meta{flex-direction:column;align-items:flex-start;gap:var(--space-2)}.crypto-hero__sep{display:none}}.quick-client-modal-overlay{position:fixed;inset:0;background-color:#00000080;display:flex;justify-content:center;align-items:center;z-index:1200;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);animation:fadeIn .2s ease-out}.quick-client-modal{background-color:var(--bg-panel);border-radius:var(--radius-lg);width:90%;max-width:450px;box-shadow:var(--shadow-lg);border:var(--border-subtle);overflow:hidden;animation:scaleIn .2s ease-out;display:flex;flex-direction:column}@keyframes scaleIn{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}.qm-header{padding:var(--space-4);border-bottom:var(--border-subtle);display:flex;justify-content:space-between;align-items:center;background-color:var(--bg-panel)}.qm-header h3{margin:0;font-size:1.1rem;color:var(--text-high);display:flex;align-items:center;gap:.5rem}.qm-content{padding:var(--space-6);display:flex;flex-direction:column;gap:var(--space-4)}.qm-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem}.qm-actions{padding:var(--space-4);border-top:var(--border-subtle);display:flex;justify-content:flex-end;gap:var(--space-3);background-color:var(--bg-panel)}.quick-client-modal .form-group{margin-bottom:0}.quick-client-modal .form-group label{display:block;margin-bottom:var(--space-2);color:var(--text-low);font-size:.9rem}.quick-client-modal .form-input{width:100%;padding:var(--space-3);border-radius:var(--radius-md);border:var(--border-subtle);background-color:var(--bg-app);color:var(--text-high);font-size:1rem;transition:all .2s;box-sizing:border-box}.quick-client-modal textarea.form-input{resize:vertical;min-height:60px}.quick-client-modal .form-input:focus{outline:none;border-color:var(--brand-primary);box-shadow:0 0 0 2px var(--brand-alpha)}.quick-client-modal .btn{padding:.75rem 1.5rem;border-radius:8px;font-weight:500;cursor:pointer;border:none;transition:all .2s}.quick-client-modal .btn-cancel{background-color:transparent;color:var(--text-low);border:var(--border-subtle)}.quick-client-modal .btn-cancel:hover{background-color:var(--bg-surface);color:var(--text-high)}.quick-client-modal .btn-confirm{background-color:var(--brand-primary);color:#fff}.quick-client-modal .btn-confirm:hover{filter:brightness(1.1)}.quick-client-modal .btn:disabled{opacity:.6;cursor:not-allowed}.quick-client-modal .close-btn{background:transparent;border:none;color:var(--text-low);font-size:1.5rem;cursor:pointer;padding:var(--space-1);line-height:1;border-radius:var(--radius-sm);transition:var(--transition)}.quick-client-modal .close-btn:hover{color:var(--text-high);background-color:var(--bg-surface)}.quick-client-modal .required{color:var(--status-danger)}.form-error{margin:0 var(--space-6);padding:var(--space-3);background-color:var(--status-danger-bg);color:var(--status-danger);border-radius:var(--radius-sm);font-size:.9rem;display:flex;align-items:center;gap:var(--space-2)}@media(max-width:480px){.qm-row{grid-template-columns:1fr}.qm-content{padding:var(--space-4);gap:var(--space-3)}.qm-actions{padding:var(--space-3) var(--space-4);flex-direction:column-reverse}.qm-actions .btn{width:100%;justify-content:center}.form-error{margin:0 var(--space-4)}}.invoice-form-overlay{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-4);animation:fadeIn .2s ease-out}.invoice-form{background:var(--bg-panel);border-radius:var(--radius-lg);width:100%;max-width:800px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-xl);animation:slideUp .3s ease-out}.invoice-form::-webkit-scrollbar{width:8px}.invoice-form::-webkit-scrollbar-track{background:var(--bg-panel);border-radius:0 16px 16px 0}.invoice-form::-webkit-scrollbar-thumb{background:var(--border-subtle);border-radius:4px}.invoice-form .form-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-5) var(--space-6);border-bottom:var(--border-subtle);background:linear-gradient(135deg,var(--brand-primary) 0%,var(--brand-hover) 100%);border-radius:16px 16px 0 0}.invoice-form .form-header h2{margin:0;font-size:1.25rem;font-weight:600;color:#fff;display:flex;align-items:center;gap:var(--space-2)}.invoice-form .close-btn{background:#fff3;border:none;border-radius:8px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fff;font-size:1.25rem;transition:background .2s}.invoice-form .close-btn:hover{background:#ffffff4d}.invoice-form .form-error{margin:var(--space-4) var(--space-6) 0;padding:var(--space-3) var(--space-4);background:var(--status-danger-bg);border:1px solid var(--status-danger);border-radius:var(--radius-sm);color:var(--status-danger);display:flex;align-items:center;gap:var(--space-2);font-size:.875rem}.invoice-form form{padding:var(--space-6)}.invoice-form .form-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--space-4);margin-bottom:var(--space-4)}.invoice-form .form-group{display:flex;flex-direction:column;gap:var(--space-1)}.invoice-form .form-group.full-width{grid-column:1 / -1}.invoice-form label{font-size:.8rem;font-weight:600;color:var(--text-low);text-transform:uppercase;letter-spacing:.05em}.invoice-form label .required{color:var(--status-danger)}.invoice-form input[type=text],.invoice-form input[type=number],.invoice-form input[type=date],.invoice-form select,.invoice-form textarea{padding:.625rem .75rem;border:1px solid var(--border-subtle);border-radius:8px;background:var(--bg-surface);color:var(--text-high);font-size:.9rem;transition:border-color .2s,box-shadow .2s}.invoice-form input:focus,.invoice-form select:focus,.invoice-form textarea:focus{outline:none;border-color:var(--brand-primary);box-shadow:0 0 0 2px var(--brand-alpha)}.invoice-form textarea{resize:vertical;min-height:60px}.btn-quick-client{background:none;border:none;color:var(--brand-primary);cursor:pointer;font-size:.9rem;display:flex;align-items:center;gap:var(--space-1);padding:0;font-weight:500;transition:var(--transition)}.btn-quick-client:hover{color:var(--brand-hover);text-decoration:underline}.client-autocomplete{position:relative}.client-search{position:relative;display:flex;align-items:center}.client-search>i{position:absolute;left:var(--space-3);color:var(--text-low)}.client-search input{width:100%;padding-left:2.25rem!important}.client-search .rotating{position:absolute;right:var(--space-3);color:var(--brand-primary)}.selected-client{padding:.75rem;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--bg-surface)}.selected-client-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem;padding-bottom:.5rem;border-bottom:1px solid var(--border-subtle)}.selected-client-header .client-name{font-weight:600;font-size:.95rem;color:var(--text-high)}.selected-client-details{display:flex;flex-direction:column;gap:.3rem}.client-detail-item{display:flex;align-items:center;gap:.4rem;font-size:.82rem;color:var(--text-low);min-width:0}.client-detail-item i{font-size:.9rem;color:var(--brand-primary);flex-shrink:0;width:16px;text-align:center}.client-detail-item span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.change-client-btn{background:transparent;border:1px solid var(--border-subtle);border-radius:6px;padding:.375rem .625rem;font-size:.8rem;color:var(--text-low);cursor:pointer;display:flex;align-items:center;gap:var(--space-1);transition:all .2s;flex-shrink:0}.change-client-btn:hover{border-color:var(--brand-primary);color:var(--brand-primary)}.selected-client-actions{display:flex;align-items:center;gap:.35rem}.edit-client-btn{background:transparent;border:1px solid transparent;border-radius:6px;width:28px;height:28px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--text-low);font-size:.85rem;transition:all .2s}.edit-client-btn:hover{border-color:var(--brand-primary);color:var(--brand-primary);background:var(--brand-alpha)}.client-edit-inline{display:flex;flex-direction:column;gap:.4rem;padding:.5rem .5rem .5rem .65rem;border-left:3px solid var(--brand-primary);border-radius:0 var(--radius-sm) var(--radius-sm) 0;background:color-mix(in srgb,var(--brand-primary) 4%,var(--bg-surface));margin-top:.15rem}.client-edit-error{padding:.3rem .45rem;background:var(--status-danger-bg);border-radius:var(--radius-sm);color:var(--status-danger);font-size:.76rem;display:flex;align-items:center;gap:.25rem}.client-detail-item.readonly{opacity:.5;font-size:.78rem}.client-edit-row{display:grid;grid-template-columns:1fr 1fr;gap:.4rem}.client-edit-field{display:flex;flex-direction:column;gap:.15rem}.client-edit-field label{font-size:.68rem;font-weight:600;color:var(--text-low);display:flex;align-items:center;gap:.2rem;text-transform:uppercase;letter-spacing:.03em}.client-edit-field label i{font-size:.72rem;color:var(--brand-primary)}.client-edit-field input{padding:.3rem .4rem;border:1px solid var(--border-subtle);border-radius:5px;background:var(--bg-panel);color:var(--text-high);font-size:.8rem;transition:border-color .15s,box-shadow .15s}.client-edit-field input:focus{outline:none;border-color:var(--brand-primary);box-shadow:0 0 0 2px var(--brand-alpha)}.client-edit-field input::placeholder{color:var(--text-low);opacity:.5}.client-edit-actions{display:flex;justify-content:flex-end;gap:.4rem;padding-top:.3rem;margin-top:.1rem}.btn-cancel-edit{background:transparent;border:none;border-radius:5px;padding:.28rem .6rem;font-size:.76rem;color:var(--text-low);cursor:pointer;transition:color .15s}.btn-cancel-edit:hover{color:var(--text-high)}.btn-save-edit{background:var(--brand-primary);border:none;border-radius:5px;padding:.28rem .65rem;font-size:.76rem;font-weight:600;color:#fff;cursor:pointer;display:flex;align-items:center;gap:.25rem;transition:filter .15s}.btn-save-edit:hover:not(:disabled){filter:brightness(1.15)}.btn-save-edit:disabled{opacity:.5;cursor:not-allowed}.client-edit-success{display:flex;align-items:center;gap:.35rem;padding:.3rem .6rem;margin-top:.35rem;font-size:.75rem;font-weight:500;color:var(--success-color, #10b981);background:color-mix(in srgb,var(--success-color, #10b981) 8%,transparent);border-radius:4px;animation:fadeInOut 3s ease-in-out forwards}@keyframes fadeInOut{0%{opacity:0;transform:translateY(-4px)}10%{opacity:1;transform:translateY(0)}80%{opacity:1}to{opacity:0}}.kbd-hint{font-size:.65rem;color:var(--text-low, #6b7280);font-family:monospace;opacity:.6;margin-left:.15rem}.client-dropdown{position:absolute;top:100%;left:0;right:0;margin-top:4px;background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);box-shadow:var(--shadow-xl);max-height:200px;overflow-y:auto;z-index:100}.client-option{width:100%;padding:var(--space-3) var(--space-4);display:flex;align-items:center;justify-content:space-between;background:transparent;border:none;cursor:pointer;transition:background .15s;text-align:left}.client-option:hover{background:var(--brand-alpha)}.client-option .option-name{font-weight:500;color:var(--text-high)}.client-option .option-nif{font-size:.8rem;color:var(--text-low)}.client-dropdown .no-results{padding:var(--space-4);text-align:center;color:var(--text-low);font-size:.875rem;display:flex;flex-direction:column;align-items:center;gap:var(--space-2)}.client-dropdown .no-results i{font-size:1.5rem;opacity:.5}.line-items-section{margin:var(--space-6) 0;padding:var(--space-4);background:var(--brand-alpha);border-radius:var(--radius-md);border:1px solid var(--brand-alpha)}.line-items-section .section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4)}.line-items-section .section-header h3{margin:0;font-size:.9rem;font-weight:600;color:var(--text-high);display:flex;align-items:center;gap:var(--space-2)}.add-item-btn{background:var(--brand-primary);color:#fff;border:none;border-radius:6px;padding:.375rem .75rem;font-size:.8rem;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:var(--space-1);transition:transform .15s,box-shadow .15s}.add-item-btn:hover{transform:translateY(-1px);box-shadow:0 4px 12px var(--brand-alpha)}.line-items-header,.line-item{display:grid;grid-template-columns:1fr 80px 100px 100px 40px;gap:var(--space-2);padding:var(--space-2) 0}.line-items-header{font-size:.75rem;font-weight:600;color:var(--text-low);text-transform:uppercase;letter-spacing:.05em}.line-item{border-bottom:1px solid var(--border-subtle)}.line-item:last-child{border-bottom:none}.line-item input{padding:var(--space-2);font-size:.875rem}.line-item .col-total{display:flex;align-items:center;justify-content:flex-end;font-weight:500;color:var(--text-high);padding-right:var(--space-1)}.remove-item-btn{background:transparent;border:none;color:var(--text-low);cursor:pointer;width:32px;height:32px;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:all .15s}.remove-item-btn:hover:not(:disabled){background:var(--status-danger-bg);color:var(--status-danger)}.remove-item-btn:disabled{opacity:.3;cursor:not-allowed}.totals-section{margin:var(--space-4) 0;padding:var(--space-4);background:var(--bg-surface);border-radius:var(--radius-md);border:1px solid var(--border-subtle)}.total-row{display:flex;justify-content:space-between;padding:var(--space-2) 0;font-size:.9rem;color:var(--text-high)}.total-row.grand-total{border-top:2px solid var(--border-subtle);margin-top:var(--space-2);padding-top:var(--space-3);font-size:1.1rem;font-weight:700;color:var(--brand-primary)}.total-row.retention{color:var(--status-warning);font-style:italic}.invoice-form .form-actions{display:flex;justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-6);padding-top:var(--space-4);border-top:1px solid var(--border-subtle)}.invoice-form .btn-secondary,.invoice-form .btn-primary{padding:.75rem 1.25rem;border-radius:8px;font-size:.9rem;font-weight:500;cursor:pointer;display:flex;align-items:center;gap:var(--space-2);transition:all .2s}.invoice-form .btn-secondary{background:transparent;border:1px solid var(--border-subtle);color:var(--text-high)}.invoice-form .btn-secondary:hover{border-color:var(--text-low);background:#ffffff0d}.invoice-form .btn-primary{background:linear-gradient(135deg,var(--brand-primary) 0%,var(--brand-hover) 100%);border:none;color:#fff}.invoice-form .btn-primary:hover:not(:disabled){transform:translateY(-1px);box-shadow:var(--shadow-md)}.invoice-form .btn-primary:disabled{opacity:.6;cursor:not-allowed}@media(max-width:600px){.invoice-form{max-height:95vh;border-radius:12px 12px 0 0}.invoice-form-overlay{align-items:flex-end;padding:0}.line-items-header{display:none}.line-item{grid-template-columns:1fr;gap:var(--space-2);padding:var(--space-4) 0}.line-item .col-total{justify-content:flex-start}.invoice-form .form-actions{flex-direction:column-reverse}.invoice-form .btn-secondary,.invoice-form .btn-primary{width:100%;justify-content:center}}.invoice-detail-overlay{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:var(--space-4);animation:fadeIn .2s ease-out}.invoice-detail{background:var(--bg-panel);border-radius:var(--radius-lg);width:100%;max-width:700px;max-height:90vh;overflow-y:auto;box-shadow:var(--shadow-xl);animation:slideUp .3s ease-out}.invoice-detail .detail-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--border-subtle);background:linear-gradient(135deg,var(--brand-primary) 0%,var(--brand-hover) 100%);border-radius:16px 16px 0 0}.invoice-detail .header-left{display:flex;align-items:center;gap:var(--space-4)}.invoice-detail .header-left h2{margin:0;font-size:1.25rem;font-weight:600;color:#fff;font-family:var(--font-mono)}.invoice-detail .header-left .draft-label{font-family:inherit;font-style:italic;opacity:.8}.invoice-detail .status-badge{padding:.25rem .75rem;border-radius:20px;font-size:.7rem;font-weight:600;text-transform:uppercase;color:#fff}.invoice-detail .close-btn{background:#fff3;border:none;border-radius:8px;width:36px;height:36px;display:flex;align-items:center;justify-content:center;cursor:pointer;color:#fff;font-size:1.25rem;transition:background .2s}.invoice-detail .close-btn:hover{background:#ffffff4d}.invoice-detail .detail-content{padding:var(--space-6)}.invoice-detail .detail-section{margin-bottom:var(--space-6)}.invoice-detail .detail-section h3{margin:0 0 var(--space-3) 0;font-size:.85rem;font-weight:600;color:var(--text-low);text-transform:uppercase;letter-spacing:.05em;display:flex;align-items:center;gap:var(--space-2)}.invoice-detail .detail-section h3 i{color:var(--brand-primary)}.invoice-detail .client-details{background:var(--bg-surface);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4)}.invoice-detail .detail-row{display:flex;justify-content:space-between;padding:.375rem 0}.invoice-detail .detail-row .label{color:var(--text-low);font-size:.85rem}.invoice-detail .detail-row .value{color:var(--text-high);font-weight:500}.invoice-detail .detail-row .value.nif{font-family:var(--font-mono);color:var(--brand-primary)}.invoice-detail .info-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:var(--space-3)}.invoice-detail .info-item{background:var(--bg-surface);border-radius:var(--radius-sm);padding:var(--space-3) var(--space-4)}.invoice-detail .info-item .label{display:block;font-size:.75rem;color:var(--text-low);margin-bottom:var(--space-1)}.invoice-detail .info-item .value{font-weight:600;color:var(--text-high)}.invoice-detail .items-section{background:var(--brand-alpha);border-radius:var(--radius-md);padding:var(--space-4);border:1px solid var(--brand-alpha)}.invoice-detail .items-table{margin-top:var(--space-2)}.invoice-detail .items-header{display:grid;grid-template-columns:1fr 60px 80px 90px;gap:var(--space-2);font-size:.7rem;font-weight:600;color:var(--text-low);text-transform:uppercase;padding-bottom:var(--space-2);border-bottom:1px solid var(--border-subtle)}.invoice-detail .items-row{display:grid;grid-template-columns:1fr 60px 80px 90px;gap:var(--space-2);padding:var(--space-2) 0;border-bottom:1px solid rgba(255,255,255,.05);font-size:.875rem}.invoice-detail .items-row:last-child{border-bottom:none}.invoice-detail .item-desc{color:var(--text-high)}.invoice-detail .item-qty,.invoice-detail .item-price,.invoice-detail .item-total{text-align:right;color:var(--text-low)}.invoice-detail .item-total{color:var(--text-high);font-weight:500}.invoice-detail .totals-box{background:var(--bg-surface);border-radius:var(--radius-md);padding:var(--space-4);margin:var(--space-4) 0}.invoice-detail .total-line{display:flex;justify-content:space-between;padding:.375rem 0;font-size:.9rem;color:var(--text-high)}.invoice-detail .total-line.grand{border-top:2px solid var(--border-subtle);margin-top:var(--space-2);padding-top:var(--space-3);font-weight:700;font-size:1.1rem;color:var(--brand-primary)}.invoice-detail .total-line.retention{color:var(--status-warning);font-style:italic}.invoice-detail .notes-section{background:#f59e0b1a;border-radius:var(--radius-sm);padding:var(--space-4);border:1px solid rgba(245,158,11,.2)}.invoice-detail .notes-section p{margin:0;font-size:.9rem;color:var(--text-high);white-space:pre-wrap}.invoice-detail .firefly-info{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--status-success-bg);border-radius:var(--radius-sm);color:var(--status-success);font-size:.85rem;margin-top:var(--space-4)}.invoice-detail .detail-actions{display:flex;flex-wrap:wrap;gap:var(--space-3);padding:var(--space-4) var(--space-6);border-top:1px solid var(--border-subtle);background:var(--bg-surface);border-radius:0 0 16px 16px}.invoice-detail .action-btn{display:inline-flex;align-items:center;gap:.4rem;padding:.6rem 1rem;border:none;border-radius:var(--radius-sm);font-size:.85rem;font-weight:500;cursor:pointer;transition:all .2s;background:#ffffff1a;color:var(--text-high)}.invoice-detail .action-btn:hover:not(:disabled){transform:translateY(-1px)}.invoice-detail .action-btn:disabled{opacity:.5;cursor:not-allowed}.invoice-detail .action-btn.primary{background:var(--brand-primary);color:#fff}.invoice-detail .action-btn.success{background:var(--status-success);color:#fff}.invoice-detail .action-btn.danger{background:var(--status-danger-bg);color:var(--status-danger)}.invoice-detail .action-btn.danger:hover:not(:disabled){background:var(--status-danger);color:#fff}.invoice-detail .no-actions{color:var(--text-low);font-size:.85rem;font-style:italic}@media(max-width:600px){.invoice-detail{max-height:95vh;border-radius:12px 12px 0 0}.invoice-detail-overlay{align-items:flex-end;padding:0}.invoice-detail .items-header,.invoice-detail .items-row{grid-template-columns:1fr 50px 70px}.invoice-detail .items-header span:nth-child(3),.invoice-detail .items-row .item-price{display:none}.invoice-detail .detail-actions{flex-direction:column}.invoice-detail .action-btn{width:100%;justify-content:center}}.mark-paid-modal-overlay{position:fixed;inset:0;background-color:#000000bf;display:flex;justify-content:center;align-items:center;z-index:1100;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:fadeIn .2s ease-out}.mark-paid-modal{background-color:var(--bg-panel);border-radius:var(--radius-lg);width:90%;max-width:500px;box-shadow:var(--shadow-lg);border:var(--border-subtle);overflow:hidden;animation:slideUp .3s ease-out;display:flex;flex-direction:column}.modal-header{padding:var(--space-6);border-bottom:var(--border-subtle);display:flex;justify-content:space-between;align-items:center;background-color:var(--bg-panel)}.modal-header h3{margin:0;font-size:1.25rem;color:var(--text-high);display:flex;align-items:center;gap:.5rem}.modal-header h3 i{color:var(--status-success)}.modal-content{padding:var(--space-6)}.form-group{margin-bottom:1.5rem}.form-group label{display:block;margin-bottom:var(--space-2);color:var(--text-low);font-size:.9rem}.form-select,.form-input{width:100%;padding:var(--space-3);border-radius:var(--radius-md);border:var(--border-subtle);background-color:var(--bg-app);color:var(--text-high);font-size:1rem;transition:var(--transition)}.form-select:focus,.form-input:focus{outline:none;border-color:var(--brand-primary);box-shadow:0 0 0 2px var(--brand-alpha)}.account-option{display:flex;justify-content:space-between}.modal-actions{padding:var(--space-6);border-top:var(--border-subtle);display:flex;justify-content:flex-end;gap:var(--space-4);background-color:var(--bg-panel)}.mark-paid-modal .btn{padding:.75rem 1.5rem;border-radius:8px;font-weight:500;cursor:pointer;border:none;transition:all .2s}.btn-cancel{background-color:transparent;color:var(--text-low);border:var(--border-subtle)}.btn-cancel:hover{background-color:var(--bg-surface);color:var(--text-high)}.btn-confirm{background-color:var(--status-success);color:#fff}.btn-confirm:hover{filter:brightness(1.1)}.mark-paid-modal .btn:disabled{opacity:.6;cursor:not-allowed}.mark-paid-modal .close-btn{background:transparent;border:none;color:var(--text-low);font-size:1.5rem;cursor:pointer;padding:var(--space-1);line-height:1;border-radius:var(--radius-sm);transition:var(--transition)}.mark-paid-modal .close-btn:hover{color:var(--text-high);background-color:var(--bg-surface)}@media(max-width:480px){.modal-header,.modal-content{padding:var(--space-4)}.modal-actions{padding:var(--space-3) var(--space-4);flex-direction:column-reverse;gap:var(--space-2)}.mark-paid-modal .btn{width:100%;justify-content:center}}.toast-container{position:fixed;bottom:var(--space-6);left:50%;transform:translate(-50%);z-index:1000;display:flex;flex-direction:column;gap:var(--space-2);pointer-events:none}.toast{padding:var(--space-3) var(--space-5);border-radius:var(--radius-lg);color:#fff;font-weight:500;display:flex;align-items:center;gap:var(--space-2);box-shadow:var(--shadow-md);animation:toast-slide-up .3s ease-out;pointer-events:auto}.toast--success{background:var(--status-success)}.toast--error{background:var(--status-danger)}@keyframes toast-slide-up{0%{transform:translateY(1rem);opacity:0}to{transform:translateY(0);opacity:1}}.invoice-view-layout{position:relative}.highlight-border{border-color:var(--status-success);background:linear-gradient(135deg,var(--bg-panel),var(--status-success-bg))}.nav-tabs-container{display:flex;gap:var(--space-2);background:var(--bg-panel);padding:var(--space-1);border-radius:var(--radius-md);border:var(--border-subtle)}.nav-tab{flex:1;display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:transparent;border:none;border-radius:var(--radius-sm);color:var(--text-low);font-weight:500;cursor:pointer;transition:var(--transition)}.nav-tab:hover{color:var(--text-high)}.nav-tab.active{background:var(--bg-surface);color:var(--text-high)}.filters-bar{display:flex;gap:var(--space-3);flex-wrap:wrap}.filters-bar select{padding:var(--space-2) var(--space-3);background:var(--bg-panel);border:var(--border-subtle);border-radius:var(--radius-md);color:var(--text-high);font-size:.9rem}.filters-bar select:focus{border-color:var(--brand-primary)}.card.interactive{cursor:pointer}.card.interactive:hover{border-color:var(--brand-alpha);background:#ffffff05}.invoice-actions{display:flex;gap:var(--space-2);align-items:center}.btn-success-outline{color:var(--status-success)!important;border-color:var(--status-success)!important}.btn-success-outline:hover:not(:disabled){background:var(--status-success)!important;color:#fff!important}.fab-btn{position:fixed;bottom:var(--space-8);right:var(--space-8);width:56px;height:56px;border-radius:var(--radius-full);background:var(--brand-primary);color:#fff;font-size:1.5rem;display:flex;align-items:center;justify-content:center;border:none;box-shadow:var(--shadow-glow);cursor:pointer;transition:var(--transition);z-index:100}.fab-btn:hover{transform:scale(1.05);background:var(--brand-hover)}@media(max-width:768px){.invoice-card{flex-direction:column;align-items:flex-start}.invoice-details{flex-wrap:wrap;width:100%}.invoice-actions{margin-top:var(--space-4);width:100%;justify-content:flex-end}}@media(max-width:480px){.fab-btn{bottom:var(--space-5);right:var(--space-5);width:48px;height:48px;font-size:1.25rem}.nav-tabs-container{overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.nav-tabs-container::-webkit-scrollbar{display:none}.nav-tab{white-space:nowrap;font-size:.8rem;padding:var(--space-2) var(--space-3)}.filters-bar{flex-direction:column}.filters-bar select{width:100%}.invoice-actions{flex-wrap:wrap}}.section-subtitle{font-size:1.25rem;font-weight:600;color:var(--text-high)}.fiscal-quarter-selector{display:flex;gap:var(--space-2);background:var(--bg-panel);padding:var(--space-1);border-radius:var(--radius-md);border:var(--border-subtle)}.quarter-btn{padding:var(--space-2) var(--space-4);border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-low);font-weight:500;cursor:pointer;transition:var(--transition)}.quarter-btn:hover{background:var(--bg-surface);color:var(--text-high)}.quarter-btn.active{background:var(--brand-primary);color:#fff;box-shadow:var(--shadow-sm)}.fiscal-stat{display:flex;flex-direction:column;gap:var(--space-2)}.fiscal-stat.highlight{border-color:var(--brand-primary);background:linear-gradient(135deg,var(--bg-panel),rgba(139,92,246,.05))}.fiscal-stat h3{font-size:.85rem;font-weight:500;display:flex;align-items:center;gap:var(--space-2)}.fiscal-stat h3 i{font-size:1rem}.stat-val{font-size:1.75rem;font-weight:700;letter-spacing:-.01em}.stat-sub{font-size:.75rem}.model-card{display:flex;flex-direction:column}.model-card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-3)}.model-card-header h4{font-size:1.1rem;display:flex;align-items:center;gap:var(--space-2);margin:0}.badge-success{background:var(--status-success-bg);color:var(--status-success)}.badge-warning{background:var(--status-warning-bg);color:var(--status-warning)}.fiscal-actions{margin-top:var(--space-6);display:flex;justify-content:flex-start}.fiscal-ledger-preview{display:flex;flex-direction:column;gap:var(--space-4);border-color:#22c55e33;background:linear-gradient(180deg,rgba(34,197,94,.04),transparent 55%),var(--bg-panel)}.fiscal-ledger-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-4)}.fiscal-ledger-header h3{display:flex;align-items:center;gap:var(--space-2);margin:0}.fiscal-ledger-header p{margin:0}.fiscal-ledger-notes{display:flex;flex-direction:column;gap:var(--space-2)}.fiscal-ledger-notes p{margin:0;display:flex;align-items:center;gap:var(--space-2)}@media(max-width:768px){.fiscal-ledger-header{flex-direction:column;align-items:flex-start}.fiscal-quarter-selector{overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;max-width:100%}.fiscal-quarter-selector::-webkit-scrollbar{display:none}.stat-val{font-size:1.4rem}}@media(max-width:480px){.stat-val{font-size:1.15rem}.quarter-btn{padding:var(--space-2) var(--space-3);font-size:.8rem}.model-card-header{flex-direction:column;align-items:flex-start;gap:var(--space-2)}}.business-income-panel{width:100%}.business-income-grid{display:grid;grid-template-columns:minmax(320px,420px) minmax(0,1fr);gap:var(--space-5)}.business-income-form-card,.business-income-table-card{display:flex;flex-direction:column;gap:var(--space-4)}.business-income-card-header{display:flex;align-items:flex-start;justify-content:space-between;gap:var(--space-3)}.business-income-card-header h3{display:flex;align-items:center;gap:var(--space-2);margin:0}.business-income-card-header p{margin:0;color:var(--text-low);font-size:.92rem}.business-income-form{display:flex;flex-direction:column;gap:var(--space-4)}.business-income-form label{display:flex;flex-direction:column;gap:var(--space-2)}.business-income-form span{color:var(--text-low);font-size:.82rem;text-transform:uppercase;letter-spacing:.04em}.business-income-form input,.business-income-form select,.business-income-form textarea{width:100%;border:var(--border-subtle);background:var(--bg-surface);color:var(--text-high);border-radius:var(--radius-md);padding:var(--space-3);font:inherit}.business-income-form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.business-income-summary{display:flex;flex-direction:column;gap:var(--space-5)}.business-income-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-3)}.business-income-kpi{display:flex;flex-direction:column;gap:var(--space-2)}.business-income-kpi-label{color:var(--text-low);font-size:.8rem;text-transform:uppercase;letter-spacing:.04em}.business-income-kpi strong{font-size:1.25rem;color:var(--text-high)}.business-income-table{display:flex;flex-direction:column;gap:var(--space-3)}.business-income-row{display:grid;grid-template-columns:minmax(220px,1.3fr) minmax(240px,1fr) minmax(120px,.6fr);gap:var(--space-3);align-items:center;padding:var(--space-3) var(--space-4);border-radius:var(--radius-md);background:var(--bg-surface);border:var(--border-subtle)}.business-income-row-main,.business-income-row-meta,.business-income-row-amounts{display:flex;flex-direction:column;gap:.35rem}.business-income-row-main span,.business-income-row-amounts span{color:var(--text-low);font-size:.86rem}.business-income-row-meta{flex-direction:row;flex-wrap:wrap}.income-pill{display:inline-flex;align-items:center;justify-content:center;padding:.35rem .65rem;border-radius:999px;font-size:.78rem;font-weight:600;background:var(--brand-alpha);color:var(--brand-primary)}.income-pill-muted,.income-pill-draft{background:var(--bg-panel);color:var(--text-low)}.income-pill-accrued{background:var(--brand-alpha);color:var(--brand-primary)}.income-pill-collected{background:var(--status-success-bg);color:var(--status-success)}.income-pill-cancelled{background:var(--status-danger-bg);color:var(--status-danger)}.business-income-row-amounts{text-align:right;align-items:flex-end}@media(max-width:1100px){.business-income-grid{grid-template-columns:1fr}.business-income-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:768px){.business-income-form-row,.business-income-kpis,.business-income-row{grid-template-columns:1fr}.business-income-row-amounts{text-align:left;align-items:flex-start}}.business-selector{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);margin-bottom:var(--space-4)}.business-selector select{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-surface);color:var(--text-high);padding:.5rem .85rem;flex:1;max-width:300px}.business-selector-label{font-size:var(--text-sm);color:var(--text-low);display:flex;align-items:center;gap:var(--space-2)}.business-modal-backdrop{position:fixed;inset:0;background:#00000080;z-index:100;display:flex;align-items:center;justify-content:center}.business-modal{background:var(--bg-card);border-radius:var(--radius-lg);padding:var(--space-6);width:100%;max-width:520px;max-height:90vh;overflow-y:auto;box-shadow:0 25px 50px #00000040}.business-modal h3{margin:0 0 var(--space-4) 0;display:flex;align-items:center;gap:var(--space-2)}.business-modal-form{display:flex;flex-direction:column;gap:var(--space-4)}.business-modal-form label{display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-low)}.business-modal-form input{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-surface);color:var(--text-high);padding:.7rem .85rem}.business-modal-form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.business-modal-actions{display:flex;gap:var(--space-3);justify-content:flex-end;padding-top:var(--space-4);border-top:1px solid var(--border-subtle)}.business-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-4);margin-bottom:var(--space-4)}.business-card{border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-4);background:var(--bg-surface);cursor:pointer;transition:var(--transition);display:flex;flex-direction:column;gap:var(--space-2)}.business-card:hover{border-color:var(--brand-primary)}.business-card.active{border-color:var(--brand-primary);box-shadow:0 0 0 1px var(--brand-primary)}.business-card-header{display:flex;align-items:center;justify-content:space-between}.business-card-header h4{margin:0;display:flex;align-items:center;gap:var(--space-2)}.business-card-default{padding:.15rem .4rem;border-radius:999px;font-size:var(--text-xs);font-weight:600;background:#6366f124;color:var(--brand-primary)}.business-card-details{font-size:var(--text-sm);color:var(--text-low);display:flex;flex-direction:column;gap:var(--space-1)}@media(max-width:720px){.business-selector{flex-direction:column;align-items:stretch}.business-selector select{max-width:none}.business-modal-form-row,.business-list{grid-template-columns:1fr}}@media(max-width:480px){.business-modal{max-width:none;width:100%;max-height:100vh;border-radius:0;padding:var(--space-4)}.business-modal-backdrop{align-items:flex-end}.business-card-header{flex-direction:column;align-items:flex-start;gap:var(--space-2)}}.automation-card{display:flex;gap:var(--space-4);padding:var(--space-4);background:var(--bg-surface);border:var(--border-subtle);border-radius:var(--radius-lg);cursor:pointer;transition:var(--transition)}.automation-card:hover{border-color:var(--brand-primary);box-shadow:var(--shadow-sm)}.automation-card.selected{border-color:var(--brand-primary);background:var(--bg-panel)}.automation-card.disabled{opacity:.7}.automation-icon{display:flex;align-items:center;justify-content:center;width:48px;height:48px;border-radius:var(--radius-md);flex-shrink:0}.automation-icon i{font-size:1.5rem;color:#fff}.automation-info{flex:1;min-width:0}.automation-header{display:flex;justify-content:space-between;align-items:flex-start;gap:var(--space-2);margin-bottom:var(--space-1)}.automation-name{font-size:1rem;font-weight:600;color:var(--text-high);margin:0}.automation-controls{display:flex;align-items:center;gap:var(--space-2)}.toggle-switch{position:relative;display:inline-block;width:40px;height:22px}.toggle-slider{position:absolute;cursor:pointer;inset:0;background-color:var(--bg-panel);border:var(--border-subtle);border-radius:22px;transition:.3s}.toggle-slider:before{position:absolute;content:"";height:16px;width:16px;left:2px;bottom:1px;background-color:var(--text-low);border-radius:50%;transition:.3s}.toggle-switch input:checked+.toggle-slider{background-color:var(--status-success);border-color:var(--status-success)}.toggle-switch input:checked+.toggle-slider:before{background-color:#fff;transform:translate(18px)}.execute-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:transparent;border:none;border-radius:var(--radius-md);color:var(--text-low);cursor:pointer;transition:var(--transition)}.execute-btn:hover:not(:disabled){background:var(--brand-alpha);color:var(--brand-primary)}.execute-btn:disabled{cursor:not-allowed;opacity:.5}.execute-btn i{font-size:1.25rem}.automation-description{font-size:.875rem;color:var(--text-low);margin:0 0 var(--space-2) 0;line-height:var(--leading-relaxed)}.automation-meta{display:flex;flex-wrap:wrap;gap:var(--space-4)}.meta-item{display:flex;align-items:center;gap:var(--space-1);font-size:.75rem;color:var(--text-low)}.meta-item i{font-size:.875rem}@media(max-width:640px){.automation-card{flex-direction:column}.automation-icon{width:40px;height:40px}.automation-meta{flex-direction:column;gap:var(--space-1)}}.automation-logs{margin-top:var(--space-4);padding:var(--space-4);background:var(--bg-surface);border:var(--border-subtle);border-radius:var(--radius-lg)}.logs-title{display:flex;align-items:center;gap:var(--space-2);font-size:.875rem;font-weight:600;color:var(--text-high);margin:0 0 var(--space-3) 0}.logs-title i{color:var(--text-low)}.logs-loading,.logs-empty{display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-6);color:var(--text-low);font-size:.875rem}.logs-loading i,.logs-empty i{font-size:1.25rem}.spinning{animation:spin 1s linear infinite}.logs-list{display:flex;flex-direction:column;gap:var(--space-2);max-height:300px;overflow-y:auto}.log-item{display:flex;align-items:flex-start;gap:var(--space-3);padding:var(--space-2);background:var(--bg-panel);border-radius:var(--radius-md)}.log-status{flex-shrink:0;display:flex;align-items:center;justify-content:center;width:24px;height:24px}.log-status i{font-size:1.125rem}.log-item.success .log-status i{color:var(--status-success)}.log-item.error .log-status i{color:var(--status-danger)}.log-content{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}.log-date{font-size:.75rem;color:var(--text-low)}.log-message{font-size:.8125rem;color:var(--text-high);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.logs-list::-webkit-scrollbar{width:6px}.logs-list::-webkit-scrollbar-track{background:var(--bg-surface)}.logs-list::-webkit-scrollbar-thumb{background:var(--border-subtle);border-radius:3px}.logs-list::-webkit-scrollbar-thumb:hover{background:var(--text-low)}.mt-5{margin-top:var(--space-6)}.result-banner{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);font-size:.875rem;border-radius:var(--radius-md);font-weight:500}.result-banner.success{background:var(--status-success-bg);color:var(--status-success);border:1px solid var(--status-success)}.result-banner.error{background:var(--status-danger-bg);color:var(--status-danger);border:1px solid var(--status-danger)}.error-banner{background:var(--status-danger-bg);color:var(--status-danger);border:1px solid var(--status-danger);justify-content:space-between}.automations-content{max-width:800px;margin:0 auto}.section-title{display:flex;align-items:center;gap:var(--space-2);font-size:1.1rem;font-weight:600;margin-bottom:var(--space-4);color:var(--text-high)}.automations-list{display:flex;flex-direction:column;gap:var(--space-3)}.crypto-table-container{background:var(--bg-panel);border-radius:var(--radius-lg);border:1px solid var(--border-subtle);padding:var(--space-4)}.crypto-table-container h3{display:flex;align-items:center;gap:var(--space-2);font-size:1.25rem;font-weight:600;color:var(--text-high);margin:0 0 var(--space-4) 0}.crypto-table-container h3 i{color:var(--status-warning)}.table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.crypto-table{width:100%;border-collapse:collapse;min-width:480px}.crypto-table th{padding:var(--space-2) var(--space-3);text-align:left;font-size:.75rem;font-weight:600;color:var(--text-low);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border-subtle)}.crypto-table td{padding:var(--space-3);border-bottom:1px solid var(--border-subtle)}.crypto-table tbody tr:hover{background:var(--bg-surface)}.asset-cell{display:flex;align-items:center;gap:var(--space-3)}.asset-icon{font-size:1.5rem}.asset-info{display:flex;flex-direction:column}.asset-symbol{font-weight:600;color:var(--text-high)}.asset-name{font-size:.75rem;color:var(--text-low)}.loading-placeholder,.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8);color:var(--text-low);text-align:center}@media(max-width:640px){.crypto-table th,.crypto-table td{padding:var(--space-2) var(--space-2);font-size:var(--text-xs)}.crypto-table-container{padding:var(--space-3)}}.funds-table-container{background:var(--bg-panel);border-radius:var(--radius-lg);border:1px solid var(--border-subtle);padding:var(--space-4)}.section-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4)}.section-header h3{display:flex;align-items:center;gap:var(--space-2);font-size:1.25rem;font-weight:600;color:var(--text-high);margin:0}.section-header h3 i{color:var(--status-success)}.add-fund-form{display:flex;flex-direction:column;gap:var(--space-3);padding:var(--space-4);background:var(--bg-surface);border-radius:var(--radius-md);margin-bottom:var(--space-4)}.form-row{display:flex;gap:var(--space-3);flex-wrap:wrap}.form-row input{flex:1;min-width:140px;padding:var(--space-2) var(--space-3);background:var(--bg-app);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-high);font-size:.875rem}.form-row input::placeholder{color:var(--text-low)}.form-row input:focus{outline:none;border-color:var(--brand-primary);box-shadow:0 0 0 3px var(--brand-alpha)}.funds-table{width:100%;border-collapse:collapse;min-width:520px}.funds-table th{padding:var(--space-2) var(--space-3);text-align:left;font-size:.75rem;font-weight:600;color:var(--text-low);text-transform:uppercase;letter-spacing:.05em;border-bottom:1px solid var(--border-subtle)}.funds-table td{padding:var(--space-3);border-bottom:1px solid var(--border-subtle)}.funds-table tbody tr:hover{background:var(--bg-app)}.fund-cell{min-width:180px}.fund-info{display:flex;flex-direction:column}.fund-name{font-weight:600;color:var(--text-high)}.fund-ticker{font-size:.75rem;color:var(--text-low);font-family:var(--font-mono)}.mono{font-family:var(--font-mono)}.value{font-weight:600;color:var(--text-high)}.positive{color:var(--status-success)!important}.negative{color:var(--status-danger)!important}.percent{display:block;font-size:.75rem;opacity:.8}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8);color:var(--text-secondary);text-align:center}.empty-state i{font-size:3rem;margin-bottom:var(--space-3);opacity:.5}.form-error{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:#ef44441a;border:1px solid var(--color-error);border-radius:var(--radius-md);color:var(--color-error);font-size:var(--font-sm);margin-bottom:var(--space-2)}.loading-placeholder{padding:var(--space-6);text-align:center;color:var(--text-low)}@media(max-width:640px){.funds-table th,.funds-table td{padding:var(--space-2) var(--space-2);font-size:var(--text-xs)}.fund-cell{min-width:0}.form-row{flex-direction:column}.form-row input{min-width:100%;width:100%}.funds-table-container{padding:var(--space-3)}}.aave-widget{background:linear-gradient(135deg,#29b6f61a,#7e57c20d);border:1px solid rgba(41,182,246,.2);border-radius:var(--radius-lg);padding:var(--space-4);margin-bottom:var(--space-6);position:relative;overflow:hidden}.aave-widget:before{content:"";position:absolute;top:0;left:0;width:4px;height:100%;background:var(--status-info)}.aave-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4)}.aave-title{display:flex;align-items:center;gap:var(--space-2);color:var(--text-high);font-weight:600}.aave-title i{color:var(--status-info);font-size:1.25rem}.aave-content{display:flex;flex-direction:column;gap:var(--space-4)}.aave-main{display:grid;grid-template-columns:auto 1fr;gap:var(--space-4);align-items:start}.hf-meter{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-3);background:var(--bg-surface);border-radius:var(--radius-md);box-shadow:var(--shadow-sm);text-align:center;min-width:120px}.hf-value{font-size:2.5rem;font-weight:700;line-height:1;margin-bottom:var(--space-1)}.hf-label{font-size:.75rem;color:var(--text-low);text-transform:uppercase;letter-spacing:.05em}.hf-health{font-weight:500;margin-top:var(--space-2);padding:2px 8px;border-radius:12px;font-size:.75rem;display:flex;align-items:center;gap:4px}.liquidation-alert{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);border-radius:var(--radius-md);margin-bottom:var(--space-2)}.liquidation-alert.warning{background:linear-gradient(135deg,#f59e0b26,#f59e0b0d);border:1px solid rgba(245,158,11,.3)}.liquidation-alert.critical{background:linear-gradient(135deg,#ef444433,#ef44441a);border:1px solid rgba(239,68,68,.4);animation:pulse-danger 2s infinite}@keyframes pulse-danger{0%,to{box-shadow:0 0 #ef444466}50%{box-shadow:0 0 0 8px #ef444400}}.alert-icon{font-size:1.5rem}.liquidation-alert.warning .alert-icon{color:var(--status-warning)}.liquidation-alert.critical .alert-icon{color:var(--status-danger)}.alert-content{flex:1}.alert-title{font-weight:600;color:var(--text-high);margin-bottom:2px}.alert-value{font-size:1.1rem;color:var(--text-high)}.alert-value strong{font-size:1.25rem}.liquidation-alert.warning .alert-value strong{color:var(--status-warning)}.liquidation-alert.critical .alert-value strong{color:var(--status-danger)}.alert-sub{font-size:.75rem;color:var(--text-low);margin-top:2px}.aave-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-4)}.stat-item{display:flex;flex-direction:column}.stat-label{font-size:.75rem;color:var(--text-low);margin-bottom:var(--space-1)}.stat-value{font-size:1.1rem;font-weight:600;color:var(--text-high)}.stat-sub{font-size:.75rem;color:var(--text-low)}.hf-safe{color:var(--status-success)}.hf-warning{color:var(--status-warning)}.hf-danger{color:var(--status-danger)}.bg-safe{background:var(--status-success-bg);color:var(--status-success)}.bg-warning{background:var(--status-warning-bg);color:var(--status-warning)}.bg-danger{background:var(--status-danger-bg);color:var(--status-danger)}@media(max-width:768px){.aave-main{grid-template-columns:1fr}.hf-meter{padding:var(--space-4)}.aave-stats{grid-template-columns:repeat(2,1fr)}.liquidation-alert{flex-direction:column;text-align:center}}.portfolio-chart{background:var(--bg-panel);border:var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-4);margin-bottom:var(--space-6)}.chart-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:var(--space-4)}.chart-title{font-weight:600;color:var(--text-high);display:flex;align-items:center;gap:var(--space-2)}.chart-title i{color:var(--brand-primary)}.chart-content{display:grid;grid-template-columns:140px 1fr;gap:var(--space-6);align-items:center}.donut-chart{position:relative;width:120px;height:120px;border-radius:50%;display:flex;align-items:center;justify-content:center}.donut-hole{position:absolute;width:70px;height:70px;background:var(--bg-panel);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;z-index:1}.donut-hole .total-label{font-size:.65rem;color:var(--text-low);text-transform:uppercase}.donut-hole .total-value{font-size:.9rem;font-weight:700;color:var(--text-high)}.chart-legend{display:flex;flex-direction:column;gap:var(--space-3)}.legend-item{display:flex;align-items:center;gap:var(--space-3)}.legend-color{width:12px;height:12px;border-radius:3px;flex-shrink:0}.legend-color.crypto{background:var(--status-warning)}.legend-color.funds{background:var(--status-success)}.legend-info{display:flex;flex-direction:column;flex:1}.legend-label{font-size:.875rem;color:var(--text-low)}.legend-value{font-weight:600;color:var(--text-high)}.legend-percent{font-size:.875rem;color:var(--text-low);margin-left:auto}@media(max-width:480px){.chart-content{grid-template-columns:1fr;justify-items:center}.chart-legend{width:100%}}.tracking-wide{letter-spacing:.05em}.text-2xl{font-size:1.5rem;font-weight:700}.font-mono{font-family:var(--font-mono)}.summary-card{display:flex;align-items:center;flex-direction:row;gap:var(--space-4)}.summary-card .card-icon{display:flex;align-items:center;justify-content:center;width:56px;height:56px;border-radius:var(--radius-md);font-size:1.75rem;flex-shrink:0}.summary-card.total .card-icon{background:var(--brand-alpha);color:var(--brand-primary)}.summary-card.crypto .card-icon{background:var(--status-warning-bg);color:var(--status-warning)}.summary-card.funds .card-icon{background:var(--status-success-bg);color:var(--status-success)}.summary-card .card-content{display:flex;flex-direction:column;gap:var(--space-1);justify-content:center}.percent-badge{display:inline-block;padding:2px 8px;background:var(--bg-surface);border-radius:var(--radius-sm);font-size:.75rem;color:var(--text-low);font-family:var(--font-mono);width:fit-content;margin-top:2px}@media(max-width:768px){.summary-card .card-icon{width:44px;height:44px;font-size:1.4rem}.text-2xl{font-size:1.25rem}}@media(max-width:480px){.summary-card{flex-direction:column;align-items:flex-start;gap:var(--space-3)}.summary-card .card-icon{width:40px;height:40px;font-size:1.2rem}.text-2xl{font-size:1.1rem}}.admin-panel{padding:var(--space-6);max-width:800px;margin:0 auto}.admin-header{display:flex;align-items:center;gap:var(--space-4);margin-bottom:var(--space-8)}.admin-header .back-button{display:flex;align-items:center;gap:var(--space-1);background:none;border:none;color:var(--text-low);cursor:pointer;font-size:.9rem;padding:var(--space-2);border-radius:var(--radius-sm);transition:var(--transition)}.admin-header .back-button:hover{color:var(--text-high);background:var(--bg-panel)}.admin-header h1{display:flex;align-items:center;gap:var(--space-2);font-size:1.5rem;font-weight:700;color:var(--text-high)}.admin-header h1 i{color:var(--brand-primary)}.admin-error{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--status-danger-bg);color:var(--status-danger);border-radius:var(--radius-sm);margin-bottom:var(--space-4);font-size:.9rem}.admin-actions{margin-bottom:var(--space-6)}.admin-loading{display:flex;align-items:center;justify-content:center;gap:var(--space-3);padding:var(--space-12);color:var(--text-low)}.users-list{display:flex;flex-direction:column;gap:var(--space-3)}.user-card{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);background:var(--bg-panel);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);transition:var(--transition)}.user-card:hover{box-shadow:var(--shadow-md)}.user-card.admin{border-left:3px solid var(--brand-primary)}.user-avatar{width:48px;height:48px;border-radius:50%;background:linear-gradient(135deg,var(--brand-primary),var(--brand-hover));display:flex;align-items:center;justify-content:center;color:#fff;font-weight:700;font-size:1rem;flex-shrink:0}.user-info{flex:1;min-width:0}.user-name{font-weight:600;font-size:1rem;display:flex;align-items:center;gap:var(--space-2);color:var(--text-high)}.admin-badge{font-size:.7rem;font-weight:600;padding:.15rem .5rem;background:var(--brand-primary);color:#fff;border-radius:99px;text-transform:uppercase;letter-spacing:.05em}.user-email{font-size:.85rem;color:var(--text-low);margin-top:.15rem}.user-meta{display:flex;gap:var(--space-4);margin-top:var(--space-1);font-size:.8rem;color:var(--text-low)}.user-meta span{display:flex;align-items:center;gap:var(--space-1)}.user-meta i{font-size:.85rem}.user-actions{flex-shrink:0}.delete-btn{background:none;border:none;color:var(--text-low);cursor:pointer;padding:var(--space-2);border-radius:var(--radius-sm);font-size:1.1rem;transition:var(--transition)}.delete-btn:hover{color:var(--status-danger);background:var(--status-danger-bg)}.invite-form{background:var(--bg-panel);padding:var(--space-6);border-radius:var(--radius-lg);box-shadow:var(--shadow-sm);margin-bottom:var(--space-6);border:1px solid var(--brand-alpha)}.invite-form h3{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-1);font-size:1.1rem;color:var(--text-high)}.invite-form h3 i{color:var(--brand-primary)}.invite-hint{font-size:.85rem;color:var(--text-low);margin-bottom:var(--space-5)}.form-group{margin-bottom:var(--space-4)}.form-group label{display:block;font-size:.85rem;font-weight:600;margin-bottom:var(--space-1);color:var(--text-high)}.form-group input{width:100%;padding:.75rem;background:var(--bg-surface);border:1px solid transparent;border-radius:var(--radius-sm);color:var(--text-high);font-size:.95rem;transition:var(--transition)}.form-group input:focus{outline:none;border-color:var(--brand-primary);box-shadow:0 0 0 2px var(--brand-alpha)}.password-input-group{display:flex;gap:var(--space-2)}.password-input-group input{flex:1}.generate-btn{background:var(--bg-surface);border:1px solid transparent;color:var(--text-low);cursor:pointer;padding:0 var(--space-3);border-radius:var(--radius-sm);font-size:1.1rem;transition:var(--transition)}.generate-btn:hover{color:var(--brand-primary);border-color:var(--brand-primary)}.form-error{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--status-danger-bg);color:var(--status-danger);border-radius:var(--radius-sm);font-size:.85rem;margin-bottom:var(--space-3)}.form-success{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--status-success-bg);color:var(--status-success);border-radius:var(--radius-sm);font-size:.85rem;margin-bottom:var(--space-3)}.form-actions{display:flex;justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-4)}@media(max-width:600px){.user-card{flex-wrap:wrap}.user-meta{flex-wrap:wrap;gap:var(--space-2)}.form-actions{flex-direction:column}.form-actions .btn{width:100%}}.app-item{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);background:var(--bg-surface);border:var(--border-subtle);border-radius:var(--radius-sm);transition:var(--transition)}.app-item.enabled{border-color:var(--brand-alpha);background:linear-gradient(135deg,var(--bg-surface),var(--brand-alpha))}.app-item-info{display:flex;align-items:center;gap:var(--space-3)}.app-item-info>i{font-size:1.25rem;color:var(--text-low);min-width:1.5rem;text-align:center;transition:var(--transition)}.app-item.enabled .app-item-info>i{color:var(--brand-primary)}.app-item-name{display:block;font-size:.9rem;font-weight:600;color:var(--text-high)}.app-item-desc{display:block;font-size:.75rem;color:var(--text-low)}.toggle-switch{position:relative;width:44px;height:24px;cursor:pointer;flex-shrink:0}.toggle-switch input{opacity:0;width:0;height:0}.toggle-slider{position:absolute;inset:0;background:var(--bg-panel);border:var(--border-subtle);border-radius:24px;transition:background .3s ease}.toggle-slider:before{content:"";position:absolute;width:16px;height:16px;left:3px;bottom:3px;background:var(--text-low);border-radius:50%;transition:var(--transition)}.toggle-switch input:checked+.toggle-slider{background:var(--brand-primary);border-color:var(--brand-primary)}.toggle-switch input:checked+.toggle-slider:before{transform:translate(20px);background:#fff}.profile-overlay{position:fixed;inset:0;z-index:1000;display:flex;align-items:center;justify-content:center;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);animation:profile-fade-in .2s ease}@keyframes profile-fade-in{0%{opacity:0}to{opacity:1}}.profile-panel{width:90%;max-width:460px;max-height:85vh;overflow-y:auto;padding:var(--space-6);animation:profile-slide-up .25s ease}@keyframes profile-slide-up{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.profile-header{margin-bottom:var(--space-4)}.profile-email{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3) var(--space-4);background:var(--bg-surface);border-radius:var(--radius-md);font-size:.9rem;color:var(--text-base);margin-bottom:var(--space-6);border:var(--border-subtle)}.badge-primary{background:var(--brand-primary);color:#fff;text-transform:uppercase;letter-spacing:.05em;font-size:.65rem}.divider{border:none;border-top:var(--border-subtle);margin:var(--space-6) 0}.profile-form .quick-input{padding:var(--space-2) 0;font-size:1rem}@media(max-width:600px){.profile-panel{width:100%;max-width:none;max-height:100vh;border-radius:0;padding:var(--space-4)}.profile-overlay{align-items:flex-end}.profile-email{font-size:.8rem;padding:var(--space-2) var(--space-3)}}.bank-filters{display:flex;flex-direction:column;gap:var(--space-3);margin-bottom:var(--space-4)}.bank-filters-row{display:flex;align-items:center;gap:var(--space-3);flex-wrap:wrap}.bank-search-input{flex:1;min-width:200px;position:relative;display:flex;align-items:center}.bank-search-input>i:first-child{position:absolute;left:var(--space-3);color:var(--text-low);font-size:1rem;pointer-events:none}.bank-search-input input{width:100%;padding:var(--space-2) var(--space-4) var(--space-2) var(--space-8);background:var(--bg-surface);border:1px solid transparent;border-radius:var(--radius-md);color:var(--text-high);font-size:var(--text-sm);transition:var(--transition)}.bank-search-input input::placeholder{color:var(--text-low)}.bank-search-input input:focus{border-color:var(--brand-primary);box-shadow:0 0 0 2px var(--brand-alpha)}.bank-search-spinner{position:absolute;right:var(--space-3);color:var(--brand-primary)}.bank-filter-select select{padding:var(--space-2) var(--space-3);background:var(--bg-surface);border:1px solid transparent;border-radius:var(--radius-md);color:var(--text-high);font-size:var(--text-sm);cursor:pointer;transition:var(--transition);min-width:140px}.bank-filter-select select:hover{border-color:var(--border-strong)}.bank-filter-select select:focus{border-color:var(--brand-primary);box-shadow:0 0 0 2px var(--brand-alpha);outline:none}.bank-date-presets{display:flex;gap:var(--space-2);flex-wrap:wrap}.bank-date-chip{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);border:1px solid transparent;background:var(--bg-surface);color:var(--text-low);font-size:.75rem;font-weight:500;cursor:pointer;transition:var(--transition);white-space:nowrap}.bank-date-chip:hover{color:var(--text-high);border-color:var(--border-strong)}.bank-date-chip.active{background:var(--brand-primary);color:var(--text-inverse, #fff);border-color:var(--brand-primary);box-shadow:0 2px 8px rgba(var(--brand-rgb),.3)}.bank-date-chip i{font-size:.85rem}.bank-custom-dates{display:flex;gap:var(--space-3);margin-top:var(--space-2)}.bank-date-input{display:flex;align-items:center;gap:var(--space-2)}.bank-date-input label{font-size:var(--text-xs);color:var(--text-low);font-weight:500;white-space:nowrap}.bank-date-input input[type=date]{padding:var(--space-1) var(--space-2);background:var(--bg-surface);border:1px solid transparent;border-radius:var(--radius-md);color:var(--text-high);font-size:var(--text-xs);transition:var(--transition)}.bank-date-input input[type=date]:focus{border-color:var(--brand-primary);box-shadow:0 0 0 2px var(--brand-alpha)}.bank-filters-status{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3);flex-wrap:wrap}.bank-filters-badges{display:flex;gap:var(--space-2);flex-wrap:wrap}.bank-filter-badge{display:inline-flex;align-items:center;gap:var(--space-1);padding:2px var(--space-2);border-radius:var(--radius-full);background:var(--brand-alpha);color:var(--brand-hover);font-size:.7rem;font-weight:500}.bank-filter-badge button{background:none;border:none;color:var(--brand-hover);cursor:pointer;padding:0;display:flex;font-size:.85rem;opacity:.7;transition:var(--transition)}.bank-filter-badge button:hover{opacity:1}.bank-clear-btn{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:transparent;color:var(--text-low);font-size:.75rem;cursor:pointer;transition:var(--transition)}.bank-clear-btn:hover{color:var(--status-danger);border-color:var(--status-danger)}@media(max-width:640px){.bank-filters-row{flex-direction:column;align-items:stretch}.bank-search-input{min-width:100%}.bank-filter-select select{width:100%}.bank-date-presets{overflow-x:auto;flex-wrap:nowrap;-webkit-overflow-scrolling:touch;padding-bottom:var(--space-1)}}.bank-kpi-panel{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:var(--space-4);margin-bottom:var(--space-5)}.bank-kpi-panel.loading .bank-kpi{opacity:.6}.bank-kpi-empty{display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-4);color:var(--text-low);background:var(--bg-panel);border:1px dashed var(--border-subtle);border-radius:var(--radius-lg);font-size:var(--text-sm);margin-bottom:var(--space-4)}.bank-kpi-empty i{font-size:1.25rem;color:var(--brand-primary);opacity:.6}.bank-kpi{display:flex;align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5);border-radius:var(--radius-xl);border:1px solid var(--border-subtle);background:var(--bg-panel);transition:all .3s cubic-bezier(.4,0,.2,1);position:relative;overflow:hidden}.bank-kpi:before{content:"";position:absolute;inset:0;background:linear-gradient(145deg,rgba(255,255,255,.03) 0%,transparent 100%);pointer-events:none}.bank-kpi:hover{transform:translateY(-2px);border-color:var(--border-strong);box-shadow:0 4px 12px #0000001a}.bank-kpi-icon{display:flex;align-items:center;justify-content:center;width:42px;height:42px;border-radius:var(--radius-full);flex-shrink:0;font-size:1.25rem}.bank-kpi.income .bank-kpi-icon{background:linear-gradient(135deg,var(--status-success-bg),rgba(var(--status-success-rgb),.1));color:var(--status-success)}.bank-kpi.expense .bank-kpi-icon{background:linear-gradient(135deg,var(--status-danger-bg),rgba(var(--status-danger-rgb),.1));color:var(--status-danger)}.bank-kpi.net .bank-kpi-icon{background:var(--brand-alpha);color:var(--brand-primary)}.bank-kpi.net.negative .bank-kpi-icon{background:var(--status-danger-bg);color:var(--status-danger)}.bank-kpi.transfer .bank-kpi-icon{background:var(--status-info-bg);color:var(--status-info)}.bank-kpi-content{display:flex;flex-direction:column;gap:2px;min-width:0}.bank-kpi-label{font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;color:var(--text-low);font-weight:600}.bank-kpi-value{font-size:1.1rem;font-weight:700;font-family:var(--font-mono);line-height:1.2}.bank-kpi.income .bank-kpi-value{color:var(--status-success)}.bank-kpi.expense .bank-kpi-value{color:var(--status-danger)}.bank-kpi.net.positive .bank-kpi-value{color:var(--status-success)}.bank-kpi.net.negative .bank-kpi-value{color:var(--status-danger)}.bank-kpi.transfer .bank-kpi-value{color:var(--text-high)}.bank-kpi-count{font-size:.65rem;color:var(--text-low)}@media(max-width:640px){.bank-kpi-panel{grid-template-columns:1fr 1fr}}@media(max-width:480px){.bank-kpi-panel{grid-template-columns:1fr}.bank-kpi{padding:var(--space-3) var(--space-4);gap:var(--space-3)}.bank-kpi-icon{width:36px;height:36px;font-size:1.1rem}.bank-kpi-value{font-size:1rem}}.pagination{display:flex;align-items:center;justify-content:space-between;padding-top:var(--space-4);border-top:var(--border-subtle);flex-wrap:wrap;gap:var(--space-4);margin-top:var(--space-4)}.pagination-info{color:var(--text-low);font-size:.9rem}.pagination-controls{display:flex;align-items:center;gap:var(--space-3)}.page-info{font-size:.9rem;color:var(--text-low);white-space:nowrap}@media(max-width:600px){.pagination{flex-direction:column;align-items:stretch}.pagination-controls{justify-content:center}}.ob-panel{margin-top:1.5rem}.ob-panel-header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:1.25rem}.ob-panel-title{font-size:1.125rem;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:.5rem;margin:0}.ob-panel-title i{color:var(--brand-primary);font-size:1.25rem}.ob-panel-subtitle{font-size:.813rem;color:var(--text-muted);margin:.25rem 0 0}.ob-connections-grid{display:flex;flex-direction:column;gap:.75rem}.ob-card{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;background:var(--bg-panel);border:1px solid var(--border-color);border-radius:var(--radius-lg, 12px);transition:border-color .2s ease,box-shadow .2s ease}.ob-card:hover{border-color:var(--border-hover, var(--brand-primary));box-shadow:0 2px 8px #00000014}.ob-card.ob-status--active{border-left:3px solid var(--status-success, #22c55e)}.ob-card.ob-status--expiring{border-left:3px solid var(--status-warning, #f59e0b)}.ob-card.ob-status--expired,.ob-card.ob-status--error{border-left:3px solid var(--status-error, #ef4444)}.ob-card.ob-status--pending{border-left:3px solid var(--text-muted, #6b7280)}.ob-card.ob-status--revoked{border-left:3px solid var(--text-muted, #6b7280);opacity:.7}.ob-card-header{display:flex;align-items:center;gap:.875rem;flex:1;min-width:0}.ob-card-logo{flex-shrink:0;width:40px;height:40px;display:flex;align-items:center;justify-content:center}.ob-logo-img{width:100%;height:100%;object-fit:contain;border-radius:var(--radius-md, 8px)}.ob-logo-placeholder{width:40px;height:40px;display:flex;align-items:center;justify-content:center;background:var(--bg-surface);border-radius:var(--radius-md, 8px);color:var(--text-muted);font-size:1.25rem}.ob-card-info{min-width:0}.ob-bank-name{font-size:.938rem;font-weight:600;color:var(--text-primary);margin:0;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.ob-card-status{display:flex;align-items:center;gap:.375rem;font-size:.75rem;margin-top:.125rem}.ob-card-status.ob-status--active{color:var(--status-success, #22c55e)}.ob-card-status.ob-status--expiring{color:var(--status-warning, #f59e0b)}.ob-card-status.ob-status--expired,.ob-card-status.ob-status--error{color:var(--status-error, #ef4444)}.ob-card-status.ob-status--pending,.ob-card-status.ob-status--revoked{color:var(--text-muted)}.ob-card-status i{font-size:.875rem}.ob-account-count{display:block;font-size:.688rem;color:var(--text-muted);margin-top:.125rem}.ob-card-actions{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.ob-btn-disconnect{color:var(--text-muted)!important}.ob-btn-disconnect:hover{color:var(--status-error, #ef4444)!important}@keyframes ob-spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.ob-spin{animation:ob-spin 1s linear infinite}.ob-error-banner{display:flex;align-items:center;gap:.75rem;padding:.75rem 1rem;background:#ef444414;border:1px solid rgba(239,68,68,.2);border-radius:var(--radius-md, 8px);color:var(--status-error, #ef4444);font-size:.813rem;margin-bottom:1rem}.ob-error-banner i{font-size:1.125rem;flex-shrink:0}.ob-error-banner span{flex:1}.ob-loading{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:2rem;color:var(--text-muted);font-size:.875rem}.ob-loading i{font-size:1.25rem}.ob-empty{text-align:center;padding:2.5rem 1.5rem;background:var(--bg-surface);border:1px dashed var(--border-color);border-radius:var(--radius-lg, 12px)}.ob-empty-icon{font-size:2.5rem;color:var(--text-muted);opacity:.4;margin-bottom:.75rem;display:block}.ob-empty h4{color:var(--text-primary);font-size:1rem;font-weight:600;margin:0 0 .375rem}.ob-empty p{color:var(--text-muted);font-size:.813rem;margin:0 0 1rem;max-width:320px;margin-left:auto;margin-right:auto;line-height:1.5}@media(max-width:640px){.ob-panel-header{flex-direction:column}.ob-card{flex-direction:column;align-items:flex-start}.ob-card-actions{width:100%;justify-content:flex-end;padding-top:.5rem;border-top:1px solid var(--border-color)}}.bs-overlay{position:fixed;inset:0;background:#00000080;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;z-index:1000;padding:1rem;animation:bs-fade-in .15s ease-out}@keyframes bs-fade-in{0%{opacity:0}to{opacity:1}}.bs-modal{background:var(--bg-panel);border-radius:var(--radius-lg, 12px);width:100%;max-width:520px;max-height:80vh;display:flex;flex-direction:column;box-shadow:0 20px 60px #0000004d;animation:bs-slide-up .2s ease-out}@keyframes bs-slide-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.bs-modal-header{display:flex;align-items:center;justify-content:space-between;padding:1.25rem 1.5rem .75rem;border-bottom:1px solid var(--border-color)}.bs-modal-header h3{font-size:1.125rem;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:.5rem;margin:0}.bs-modal-header h3 i{color:var(--brand-primary)}.bs-search-container{position:relative;padding:.75rem 1.5rem}.bs-search-icon{position:absolute;left:2.25rem;top:50%;transform:translateY(-50%);color:var(--text-muted);font-size:1rem;pointer-events:none}.bs-search-input{width:100%;padding:.625rem 2.25rem .625rem 2.5rem;border:1px solid var(--border-color);border-radius:var(--radius-md, 8px);background:var(--bg-surface);color:var(--text-primary);font-size:.875rem;outline:none;transition:border-color .15s ease}.bs-search-input::placeholder{color:var(--text-muted)}.bs-search-input:focus{border-color:var(--brand-primary)}.bs-search-clear{position:absolute;right:2rem;top:50%;transform:translateY(-50%);background:none;border:none;color:var(--text-muted);cursor:pointer;padding:.25rem;display:flex;align-items:center}.bs-search-clear:hover{color:var(--text-primary)}.bs-modal-body{flex:1;overflow-y:auto;padding:.5rem 1.5rem 1.5rem}.bs-count{font-size:.75rem;color:var(--text-muted);margin:0 0 .75rem}.bs-list{display:flex;flex-direction:column;gap:.25rem}.bs-bank-item{display:flex;align-items:center;gap:.75rem;padding:.625rem .75rem;background:transparent;border:1px solid transparent;border-radius:var(--radius-md, 8px);cursor:pointer;transition:background .12s ease,border-color .12s ease;width:100%;text-align:left;color:var(--text-primary)}.bs-bank-item:hover:not(:disabled){background:var(--bg-surface);border-color:var(--border-color)}.bs-bank-item:disabled{opacity:.5;cursor:not-allowed}.bs-bank-item.bs-connecting{background:var(--bg-surface);border-color:var(--brand-primary)}.bs-bank-logo{width:36px;height:36px;flex-shrink:0;display:flex;align-items:center;justify-content:center}.bs-logo-img{width:100%;height:100%;object-fit:contain;border-radius:6px}.bs-logo-placeholder{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:var(--bg-surface);border-radius:6px;color:var(--text-muted);font-size:1.125rem}.bs-bank-info{flex:1;min-width:0;display:flex;flex-direction:column}.bs-bank-name{font-size:.875rem;font-weight:500;color:var(--text-primary);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.bs-bank-bic{font-size:.688rem;color:var(--text-muted);font-family:JetBrains Mono,monospace}.bs-badge-sandbox{display:inline-block;font-size:.625rem;font-weight:600;color:var(--status-warning, #f59e0b);background:#f59e0b1a;padding:.125rem .375rem;border-radius:4px;text-transform:uppercase;letter-spacing:.02em;margin-top:.125rem;width:fit-content}.bs-bank-action{flex-shrink:0;color:var(--text-muted);font-size:1.125rem}.bs-bank-item:hover .bs-bank-action{color:var(--brand-primary)}.bs-loading{display:flex;align-items:center;justify-content:center;gap:.5rem;padding:3rem 1rem;color:var(--text-muted);font-size:.875rem}.bs-error{display:flex;align-items:center;gap:.75rem;padding:1rem;background:#ef444414;border:1px solid rgba(239,68,68,.2);border-radius:var(--radius-md, 8px);color:var(--status-error, #ef4444);font-size:.813rem}.bs-error span{flex:1}.bs-no-results{text-align:center;padding:2rem 1rem;color:var(--text-muted)}.bs-no-results i{font-size:2rem;opacity:.3;display:block;margin-bottom:.5rem}.bs-no-results p{font-size:.813rem;margin:0}@media(max-width:640px){.bs-overlay{align-items:flex-end;padding:0}.bs-modal{max-width:100%;max-height:95vh;border-radius:var(--radius-lg, 12px) var(--radius-lg, 12px) 0 0}.bs-modal-header{padding:1rem 1.25rem .75rem}.bs-search-container{padding:.5rem 1.25rem}.bs-modal-body{padding:.25rem 1.25rem 1.25rem}}.bank-modal-overlay{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:var(--space-4)}.bank-modal{width:100%;max-width:520px;max-height:90vh;display:flex;flex-direction:column;background:var(--bg-app);border:1px solid var(--border-strong);border-radius:var(--radius-xl);box-shadow:0 20px 60px #00000059;overflow:hidden;animation:modal-enter .2s cubic-bezier(.4,0,.2,1)}@keyframes modal-enter{0%{opacity:0;transform:scale(.95) translateY(8px)}to{opacity:1;transform:scale(1) translateY(0)}}.bank-modal-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-subtle);background:#ffffff05}.bank-modal-title{display:flex;align-items:center;gap:var(--space-2)}.bank-modal-title i{font-size:1.3rem;color:var(--brand-primary)}.bank-modal-title h3{font-size:1rem;font-weight:700;color:var(--text-high);margin:0}.bank-modal-close{background:none;border:none;color:var(--text-low);cursor:pointer;font-size:1.3rem;padding:var(--space-1);border-radius:var(--radius-md);transition:var(--transition)}.bank-modal-close:hover{color:var(--text-high);background:var(--bg-surface)}.bank-modal-body{flex:1;overflow-y:auto;padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-4)}.bank-modal-error{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3);background:var(--status-danger-bg);border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-md);color:var(--status-danger);font-size:var(--text-sm);font-weight:500}.bank-modal-error i{font-size:1.1rem;flex-shrink:0}.bank-modal-field{display:flex;flex-direction:column;gap:var(--space-1)}.bank-modal-field label{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-low);display:flex;align-items:center;gap:var(--space-1)}.bank-modal-field label i{font-size:.85rem;color:var(--brand-primary)}.bank-modal-field .required{color:var(--status-danger)}.bank-modal-field input,.bank-modal-field select{padding:var(--space-2) var(--space-3);background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-high);font-size:var(--text-sm);transition:var(--transition);width:100%;box-sizing:border-box}.bank-modal-field input:focus,.bank-modal-field select:focus{outline:none;border-color:var(--brand-primary);box-shadow:0 0 0 2px var(--brand-alpha)}.bank-modal-field input::placeholder{color:var(--text-low);opacity:.6}.iban-input{font-family:var(--font-mono)!important;letter-spacing:.05em;font-size:.9rem!important}.field-hint{font-size:.68rem;color:var(--text-low);opacity:.7;margin-top:2px}.bank-modal-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-4)}.bank-modal-footer{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-3);padding:var(--space-4) var(--space-5);border-top:1px solid var(--border-subtle);background:#ffffff03}@media(max-width:640px){.bank-modal{max-width:100%;max-height:95vh;border-radius:var(--radius-lg)}.bank-modal-row{grid-template-columns:1fr}}.rules-overlay{position:fixed;inset:0;background:#0009;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:center;justify-content:center;padding:var(--space-4)}.rules-panel{width:100%;max-width:640px;max-height:85vh;display:flex;flex-direction:column;background:var(--bg-app);border:1px solid var(--border-strong);border-radius:var(--radius-xl);box-shadow:0 16px 48px #0000004d;overflow:hidden}.rules-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4) var(--space-5);border-bottom:1px solid var(--border-subtle)}.rules-title{display:flex;align-items:center;gap:var(--space-2)}.rules-title i{font-size:1.3rem;color:var(--brand-primary)}.rules-title h3{font-size:1rem;font-weight:700;color:var(--text-high);margin:0}.rules-close{background:none;border:none;color:var(--text-low);cursor:pointer;font-size:1.3rem;padding:var(--space-1);border-radius:var(--radius-md);transition:var(--transition)}.rules-close:hover{color:var(--text-high);background:var(--bg-surface)}.rules-tabs{display:flex;gap:var(--space-1);padding:var(--space-2) var(--space-5);border-bottom:1px solid var(--border-subtle)}.rules-tab{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-2) var(--space-3);border:none;background:none;color:var(--text-low);font-size:var(--text-sm);font-weight:500;cursor:pointer;border-radius:var(--radius-md);transition:var(--transition)}.rules-tab:hover{color:var(--text-high);background:var(--bg-surface)}.rules-tab.active{color:var(--brand-primary);background:var(--brand-alpha)}.rules-tab-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;padding:0 5px;border-radius:var(--radius-full);background:var(--brand-primary);color:#fff;font-size:.65rem;font-weight:700}.rules-content{flex:1;overflow-y:auto;padding:var(--space-4) var(--space-5)}.rules-create-form{padding:var(--space-3);background:var(--bg-surface);border:1px dashed var(--border-strong);border-radius:var(--radius-lg);margin-bottom:var(--space-4)}.rules-create-row{display:flex;align-items:flex-end;gap:var(--space-3);flex-wrap:wrap}.rules-create-field{flex:1;min-width:140px;display:flex;flex-direction:column;gap:var(--space-1)}.rules-create-field label{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-low)}.rules-create-field input,.rules-create-field select{padding:var(--space-2) var(--space-3);background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-high);font-size:var(--text-sm);transition:var(--transition)}.rules-create-field input:focus,.rules-create-field select:focus{outline:none;border-color:var(--brand-primary);box-shadow:0 0 0 2px var(--brand-alpha)}.rules-create-arrow{display:flex;align-items:center;color:var(--brand-primary);font-size:1.2rem;padding-bottom:4px}.rules-create-btn{white-space:nowrap}.rules-loading{display:flex;align-items:center;justify-content:center;gap:var(--space-2);padding:var(--space-8);color:var(--text-low);font-size:var(--text-sm)}.rules-empty{display:flex;flex-direction:column;align-items:center;gap:var(--space-2);padding:var(--space-8) var(--space-4);text-align:center}.rules-empty i{font-size:2rem;color:var(--brand-primary);opacity:.5}.rules-empty p{color:var(--text-high);font-weight:600;margin:0}.rules-empty span{color:var(--text-low);font-size:var(--text-sm)}.rules-list{display:flex;flex-direction:column;gap:var(--space-3)}.rules-system-note{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3);background:var(--brand-alpha);border-radius:var(--radius-md);color:var(--brand-primary);font-size:var(--text-xs);font-weight:500;margin:0 0 var(--space-3) 0}.rules-group{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden}.rules-group.system{opacity:.8}.rules-group-header{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--bg-surface);font-size:var(--text-sm);font-weight:600;color:var(--text-high)}.rules-group-header i{color:var(--brand-primary);font-size:.9rem}.rules-group-count{margin-left:auto;font-size:.65rem;padding:1px 6px;border-radius:var(--radius-full);background:var(--bg-panel);color:var(--text-low);font-weight:600}.rules-group-items{display:flex;flex-wrap:wrap;gap:var(--space-1);padding:var(--space-2) var(--space-3)}.rules-item{display:inline-flex;align-items:center;gap:var(--space-1);padding:2px var(--space-2);background:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:var(--radius-md);transition:var(--transition)}.rules-item:hover{border-color:var(--border-strong)}.rules-keyword{font-size:.72rem;font-family:var(--font-mono);color:var(--text-med);font-weight:500}.rules-delete-btn{background:none;border:none;color:var(--text-low);cursor:pointer;padding:2px;font-size:.85rem;border-radius:var(--radius-sm);transition:var(--transition);display:flex}.rules-delete-btn:hover{color:var(--status-danger);background:var(--status-danger-bg)}@media(max-width:640px){.rules-panel{max-height:95vh;border-radius:var(--radius-lg)}.rules-create-row{flex-direction:column;align-items:stretch}.rules-create-arrow{transform:rotate(90deg);justify-content:center}}.banks-dashboard{display:flex;flex-direction:column;gap:var(--space-6);height:100%;animation:fade-in .3s ease-out}.banks-layout{display:grid;grid-template-columns:clamp(260px,28vw,320px) 1fr;gap:var(--space-6);min-height:700px}.banks-layout.no-sidebar{grid-template-columns:1fr}.banks-tabs-container{display:flex;gap:var(--space-1);border-bottom:1px solid var(--border-subtle);padding-bottom:0;overflow-x:auto}.banks-tab{background:none;border:none;padding:var(--space-2) var(--space-4);color:var(--text-low);font-weight:500;font-size:.9rem;cursor:pointer;border-bottom:2px solid transparent;display:flex;align-items:center;gap:var(--space-2);transition:all .2s ease;white-space:nowrap}.banks-tab:hover{color:var(--text-base)}.banks-tab.active{color:var(--brand-primary);border-bottom-color:var(--brand-primary)}.banks-tab i{font-size:1.05rem}.accounts-view{animation:fade-in .25s ease-out}.accounts-view-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-6)}.accounts-view-title{font-size:var(--text-xl);font-weight:700;color:var(--text-high);margin:0}.accounts-view-subtitle{font-size:var(--text-sm);color:var(--text-low);margin:var(--space-1) 0 0 0}.accounts-view-empty{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-16) var(--space-8);text-align:center;color:var(--text-low)}.accounts-view-empty i{font-size:3rem;opacity:.3;margin-bottom:var(--space-4)}.accounts-view-empty h4{color:var(--text-high);margin:0 0 var(--space-2) 0}.accounts-view-empty p{margin:0 0 var(--space-6) 0;max-width:320px}.accounts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-4)}.account-card{background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);padding:var(--space-5);display:flex;flex-direction:column;gap:var(--space-4);transition:all .2s ease}.account-card:hover{border-color:var(--brand-primary);box-shadow:0 4px 12px #00000026}.account-card.negative{border-color:#ef444440}.account-card.deleting{opacity:.5;pointer-events:none}.account-card-header{display:flex;align-items:center;justify-content:space-between}.account-card-icon{width:40px;height:40px;border-radius:var(--radius-md);background:var(--brand-alpha);display:flex;align-items:center;justify-content:center;color:var(--brand-primary);font-size:1.2rem}.account-card-actions{display:flex;gap:var(--space-1);opacity:0;transition:opacity .15s ease}.account-card:hover .account-card-actions{opacity:1}.account-card-btn{background:none;border:1px solid var(--border-subtle);padding:var(--space-1) var(--space-2);border-radius:var(--radius-md);cursor:pointer;font-size:.85rem;color:var(--text-low);transition:all .15s ease}.account-card-btn.edit:hover{color:var(--brand-primary);border-color:var(--brand-primary);background:var(--brand-alpha)}.account-card-btn.delete:hover{color:var(--status-danger);border-color:var(--status-danger);background:#ef444414}.account-card-btn.delete.confirm-pending{color:var(--status-warning, #f59e0b);border-color:var(--status-warning, #f59e0b);background:#f59e0b1f;opacity:1;animation:pulse-warning .8s ease-in-out infinite}@keyframes pulse-warning{0%,to{box-shadow:0 0 #f59e0b66}50%{box-shadow:0 0 0 4px #f59e0b00}}.account-card-body{display:flex;flex-direction:column;gap:var(--space-1)}.account-card-name{font-size:var(--text-base);font-weight:600;color:var(--text-high);margin:0}.account-card-balance{font-size:var(--text-xl);font-weight:700;color:var(--text-high);font-variant-numeric:tabular-nums}.account-card-balance.negative{color:var(--status-danger)}.account-card-details{display:flex;flex-direction:column;gap:var(--space-2);padding-top:var(--space-3);border-top:1px solid var(--border-subtle)}.account-card-detail{display:flex;justify-content:space-between;align-items:center;font-size:var(--text-xs)}.detail-label{color:var(--text-low);font-weight:500;text-transform:uppercase;letter-spacing:.05em}.detail-value{color:var(--text-base);font-family:JetBrains Mono,monospace;font-size:.75rem}@keyframes fade-in{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.banks-header{display:flex;flex-direction:column;gap:var(--space-2)}.banks-header-title{display:flex;align-items:center;gap:var(--space-3)}.banks-header-title h2{font-size:var(--text-2xl);font-weight:700;color:var(--text-high);letter-spacing:-.02em}.banks-container{display:flex;gap:var(--space-6);flex-direction:column;align-items:stretch}@media(min-width:900px){.banks-container{flex-direction:row;align-items:stretch}}.banks-sidebar{flex:0 0 clamp(240px,25vw,300px);display:flex;flex-direction:column;gap:var(--space-3);background-color:transparent;padding:0;border:none}.banks-sidebar .section-title{font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.1em;color:var(--text-low);font-weight:600;padding-left:var(--space-2)}.banks-list{display:flex;flex-direction:column;gap:var(--space-2);list-style:none;padding:0;margin:0}.bank-item{display:flex;justify-content:space-between;align-items:center;padding:var(--space-3) var(--space-4);border-radius:var(--radius-lg);cursor:pointer;transition:all .2s cubic-bezier(.4,0,.2,1);border:1px solid transparent;background-color:var(--bg-surface)}.bank-item:hover{background-color:var(--bg-panel);border-color:var(--border-strong);transform:translate(4px)}.bank-item.active{background-color:var(--brand-alpha);border-color:var(--brand-primary);box-shadow:0 0 0 1px var(--brand-primary)}.bank-item-info{display:flex;flex-direction:column}.bank-item.active .bank-name{color:var(--text-high);font-weight:600}.bank-item.active .bank-balance{color:var(--text-base)}.bank-name{font-weight:500;color:var(--text-high);font-size:var(--text-sm)}.bank-balance{font-size:var(--text-xs);color:var(--text-low);margin-top:2px}.account-item{padding:var(--space-4);border-bottom:var(--border-subtle);cursor:pointer;transition:var(--transition);border-left:3px solid transparent}.account-item:hover{background:var(--bg-surface)}.account-item.active{background:var(--brand-alpha);border-left-color:var(--brand-primary)}.account-item.has-alert{background-color:var(--status-danger-bg);border-left-color:var(--status-danger)}.account-item.has-alert .account-balance{color:var(--status-danger)}.account-item.global-view{background-color:#ffffff08;margin-bottom:var(--space-1)}.account-item.global-view .account-name{color:var(--brand-primary);font-weight:700}.sidebar-divider{height:1px;background:var(--border-subtle);margin:var(--space-2) var(--space-4);opacity:.5}.banks-main-view{flex:1;display:flex;flex-direction:column;gap:var(--space-6);min-width:0}.bank-detail-header{display:flex;flex-direction:column;gap:var(--space-6);background:linear-gradient(145deg,var(--bg-surface) 0%,var(--bg-panel) 100%);border:1px solid var(--border-strong);border-radius:var(--radius-xl);padding:var(--space-6) var(--space-8);box-shadow:var(--shadow-md);justify-content:space-between}@media(min-width:768px){.bank-detail-header{flex-direction:row;align-items:center}}.bank-detail-title{display:flex;flex-direction:column;gap:var(--space-1)}.bank-detail-title h2{font-size:var(--text-lg);font-weight:500;color:var(--text-low);margin:0}.account-name{font-weight:600;color:var(--text-high);margin-bottom:var(--space-1);display:block}.account-balance{font-family:var(--font-mono);font-size:1.1rem;font-weight:700;color:var(--text-high)}.account-iban{font-size:.75rem;color:var(--text-low);margin-top:var(--space-1)}.big-balance{font-size:2.5rem;font-weight:700;color:var(--text-high);letter-spacing:-.03em;line-height:1}.bank-kpis{display:flex;gap:var(--space-4);flex-wrap:wrap}.kpi-box{display:flex;flex-direction:column;background-color:var(--bg-app);padding:var(--space-4) var(--space-5);border-radius:var(--radius-lg);border:1px solid var(--border-subtle);min-width:160px;box-shadow:inset 0 2px 4px #0000001a}.kpi-box.success .kpi-value{color:var(--status-success)}.kpi-box.danger .kpi-value{color:var(--status-danger)}.kpi-label{font-size:var(--text-xs);color:var(--text-low);text-transform:uppercase;letter-spacing:.05em;margin-bottom:var(--space-1)}.kpi-value{font-size:var(--text-lg);font-weight:600}.bank-transactions{background-color:var(--bg-panel);border:1px solid var(--border-subtle);border-radius:var(--radius-xl);padding:0;overflow:hidden;box-shadow:var(--shadow-sm);display:flex;flex-direction:column}.accounts-sidebar{background:var(--bg-panel);border-radius:var(--radius-lg);border:var(--border-subtle);display:flex;flex-direction:column;overflow:hidden;box-shadow:var(--shadow-sm)}.transactions-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-5) var(--space-6);border-bottom:1px solid var(--border-subtle);background-color:#ffffff05}.transactions-header h3{font-size:var(--text-base);color:var(--text-high);font-weight:600;margin:0}.transactions-header .badge{background-color:var(--bg-surface);color:var(--text-low);padding:2px 8px;border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:500;border:1px solid var(--border-subtle)}.table-wrapper{overflow-x:auto}.data-table{width:100%;border-collapse:collapse}.data-table th{text-align:left;padding:var(--space-3) var(--space-6);font-size:.7rem;color:var(--text-low);text-transform:uppercase;letter-spacing:.05em;font-weight:600;background-color:var(--bg-app);border-bottom:1px solid var(--border-subtle)}.data-table td{padding:var(--space-4) var(--space-6);font-size:var(--text-sm);color:var(--text-high);border-bottom:1px solid var(--border-subtle);vertical-align:middle}.data-table tbody tr{transition:background-color .15s ease}.data-table tbody tr:nth-child(2n){background-color:#ffffff03}.data-table tbody tr:hover{background-color:var(--bg-surface)}.data-table tr:last-child td{border-bottom:none}.transaction-row{border-bottom:var(--border-subtle);transition:var(--transition)}.transaction-row:hover{background:var(--bg-surface)}.transaction-date{color:var(--text-low);font-size:.85rem}.transaction-amount{font-family:var(--font-mono);font-weight:700}.transaction-amount.income{color:var(--status-success)}.transaction-amount.expense{color:var(--text-high)}.category-chip{display:inline-flex;align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);background:var(--bg-surface);border:1px solid var(--border-subtle);color:var(--text-high);font-size:var(--text-xs);font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap;max-width:180px}.category-chip-label{overflow:hidden;text-overflow:ellipsis;flex:1;min-width:0}.category-chip:hover{border-color:var(--brand-primary);background:var(--brand-alpha);color:var(--brand-hover)}.category-chip-edit-icon{font-size:.7rem;opacity:0;margin-left:var(--space-1);transition:opacity .15s ease;color:var(--text-low)}.category-chip:hover .category-chip-edit-icon{opacity:1;color:var(--brand-primary)}.category-chip.uncategorized{color:var(--status-warning);border-color:#f59e0b40;background:#f59e0b0f;border-style:dashed}.category-chip.uncategorized:hover{border-color:var(--status-warning);background:#f59e0b1f}.category-chip.uncategorized .category-chip-edit-icon{color:var(--status-warning)}.category-chip.updating{opacity:.6;pointer-events:none;color:var(--brand-primary)}.category-edit-select{background-color:var(--bg-surface);border:1px solid var(--brand-primary);box-shadow:0 0 0 2px var(--brand-alpha);color:var(--text-high);padding:var(--space-1) var(--space-2);border-radius:var(--radius-md);font-size:var(--text-xs);cursor:pointer;max-width:180px;outline:none;animation:chip-to-select .15s ease-out}@keyframes chip-to-select{0%{opacity:.5;transform:scaleY(.9)}to{opacity:1;transform:scaleY(1)}}.tx-description{display:flex;flex-direction:column;gap:2px}.tx-transfer-tag{display:inline-block;font-size:.65rem;color:var(--text-low);background-color:var(--bg-app);padding:1px 6px;border-radius:4px;border:1px solid var(--border-subtle);width:fit-content;text-transform:uppercase;letter-spacing:.02em}.desc-cell{display:flex;align-items:center;gap:var(--space-2);min-width:0}.desc-cell-icon{flex-shrink:0;font-size:.9rem}.desc-cell-text{display:inline-flex;align-items:center;gap:var(--space-1);color:var(--text-high);font-weight:500;cursor:pointer;border-radius:var(--radius-md);padding:2px var(--space-2);margin:-2px calc(-1 * var(--space-2));transition:all .15s ease;min-width:0}.desc-cell-text:hover{background:var(--brand-alpha);color:var(--brand-hover)}.desc-cell-text.updating{opacity:.6;pointer-events:none}.desc-cell-pencil{font-size:.65rem;opacity:0;color:var(--text-low);flex-shrink:0;transition:opacity .15s ease}.desc-cell-text:hover .desc-cell-pencil{opacity:.7;color:var(--brand-primary)}.desc-edit-input{flex:1;min-width:140px;max-width:300px;background-color:var(--bg-surface);border:1px solid var(--brand-primary);box-shadow:0 0 0 2px var(--brand-alpha);color:var(--text-high);padding:var(--space-1) var(--space-2);border-radius:var(--radius-md);font-size:.85rem;font-weight:500;font-family:inherit;outline:none;animation:chip-to-select .15s ease-out}.desc-cell-original-hint{font-size:.7rem;color:var(--brand-primary);opacity:.5;cursor:help;flex-shrink:0;transition:opacity .2s ease}.desc-cell-original-hint:hover{opacity:1}.kpi-card{background:var(--bg-panel);padding:var(--space-4);border-radius:var(--radius-md);border:var(--border-subtle)}.kpi-label{font-size:.75rem;text-transform:uppercase;color:var(--text-low);margin-bottom:var(--space-2);display:block;font-weight:600}.kpi-value{font-size:1.25rem;font-weight:700;font-family:var(--font-mono);color:var(--text-high)}.kpi-value.income{color:var(--status-success)}.kpi-value.expense{color:var(--status-danger)}.align-right{text-align:right}.text-success{color:var(--status-success)!important}.text-danger{color:var(--status-danger)!important}.text-warning{color:var(--status-warning)!important}.bank-empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-8) var(--space-6);background:linear-gradient(180deg,rgba(255,255,255,.02) 0%,transparent 100%);border-radius:var(--radius-xl);text-align:center;min-height:350px}.bank-empty-icon-wrap{width:64px;height:64px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-full);background:var(--brand-alpha);color:var(--brand-primary);margin-bottom:var(--space-4);box-shadow:0 0 0 8px rgba(var(--brand-rgb),.1)}.empty-icon{font-size:2rem}@keyframes float{0%{transform:translateY(0)}50%{transform:translateY(-8px)}to{transform:translateY(0)}}.floating{animation:float 4s ease-in-out infinite}.big-icon{font-size:3rem;opacity:.5;color:var(--brand-primary)}.account-count-badge{display:inline-flex;align-items:center;justify-content:center;min-width:20px;height:20px;border-radius:var(--radius-full);background:var(--brand-alpha);color:var(--brand-primary);font-size:.7rem;font-weight:600}.sidebar-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4);border-bottom:var(--border-subtle)}.sidebar-header h2{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);font-weight:600;color:var(--text-high);margin:0}.sidebar-header-actions{display:flex;align-items:center;gap:var(--space-2)}.sidebar-add-btn{display:flex;align-items:center;justify-content:center;width:28px;height:28px;border:1px dashed var(--border-strong);border-radius:var(--radius-md);background:transparent;color:var(--text-low);cursor:pointer;transition:var(--transition);font-size:1rem}.sidebar-add-btn:hover{color:var(--brand-primary);border-color:var(--brand-primary);background:var(--brand-alpha)}.account-balance-wrapper{display:flex;align-items:center;gap:var(--space-2);text-align:right}.account-edit-btn{display:flex;align-items:center;justify-content:center;width:24px;height:24px;border:none;border-radius:var(--radius-sm);background:transparent;color:var(--text-low);cursor:pointer;transition:var(--transition);font-size:.8rem;opacity:.35;flex-shrink:0}.account-item:hover .account-edit-btn{opacity:1}.account-edit-btn:hover{color:var(--brand-primary);background:var(--brand-alpha)}.account-card-visibility{display:flex;align-items:center;justify-content:space-between;padding-top:var(--space-3);border-top:1px solid var(--border-subtle);margin-top:var(--space-1)}.account-card-visibility-label{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--text-low);font-weight:500;text-transform:uppercase;letter-spacing:.05em}.account-card-visibility-label i{font-size:.9rem;opacity:.7}.account-visibility-toggle{position:relative;width:36px;height:20px;border:none;border-radius:10px;background:var(--bg-app);border:1px solid var(--border-strong);cursor:pointer;transition:all .25s cubic-bezier(.4,0,.2,1);padding:0;flex-shrink:0}.account-visibility-toggle.is-on{background:var(--brand-primary);border-color:var(--brand-primary);box-shadow:0 0 8px color-mix(in srgb,var(--brand-primary) 40%,transparent)}.toggle-thumb{position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:var(--text-low);transition:all .25s cubic-bezier(.4,0,.2,1)}.account-visibility-toggle.is-on .toggle-thumb{left:calc(100% - 16px);background:#fff}.account-card.account-card-hidden{opacity:.55;border-style:dashed;border-color:var(--border-subtle)}.account-card.account-card-hidden .account-card-balance{color:var(--text-low)}.accounts-hidden-hint{color:var(--text-low);font-style:italic}.accounts-visibility-summary{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-3) var(--space-4);background:var(--bg-surface);border:1px solid var(--border-subtle);border-radius:var(--radius-md);font-size:var(--text-sm);color:var(--text-low);margin-top:var(--space-2)}.accounts-visibility-summary i{font-size:1rem;opacity:.6}.loading-row{opacity:.6}.bank-transactions-card{background:var(--bg-panel);border:var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden}@media(max-width:768px){.banks-layout{grid-template-columns:1fr}.accounts-sidebar{max-height:200px;overflow-y:auto}.table-wrapper{-webkit-overflow-scrolling:touch}.data-table{min-width:560px}.data-table th,.data-table td{padding:var(--space-2) var(--space-4)}.bank-kpis{flex-direction:column;gap:var(--space-3)}.kpi-box{min-width:unset;width:100%}.big-balance{font-size:1.8rem}.bank-detail-header{padding:var(--space-4)}.account-card-actions{opacity:1}.banks-tabs-container{overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.banks-tabs-container::-webkit-scrollbar{display:none}.banks-header-title h2{font-size:1.25rem}}@media(max-width:640px){.data-table th,.data-table td{padding:var(--space-2) var(--space-3);font-size:var(--text-xs)}.banks-sidebar{flex-basis:auto}.bulk-action-bar{flex-direction:column;align-items:stretch;gap:var(--space-2)}.bulk-action-controls{flex-direction:column}.bulk-category-select{width:100%;min-width:unset}}.spin{animation:spin 1s linear infinite}.bulk-checkbox-th,.bulk-checkbox-td{width:40px;min-width:40px;max-width:40px;text-align:center;padding-left:var(--space-3)!important;padding-right:0!important}.bulk-checkbox{width:16px;height:16px;accent-color:var(--brand-primary);cursor:pointer;border-radius:var(--radius-sm)}.transaction-row.selected{background:var(--brand-alpha)!important;border-left:3px solid var(--brand-primary)}.transaction-row.selected:hover{background:rgba(var(--brand-rgb),.15)!important}.bulk-action-bar{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-3) var(--space-5);margin-top:var(--space-3);border-radius:var(--radius-lg);background:linear-gradient(135deg,rgba(var(--brand-rgb),.12),rgba(var(--brand-rgb),.06));border:1px solid var(--brand-primary);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);box-shadow:0 4px 24px rgba(var(--brand-rgb),.15);animation:slide-up .25s cubic-bezier(.4,0,.2,1)}@keyframes slide-up{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}.bulk-action-info{display:flex;align-items:center;gap:var(--space-2);color:var(--brand-primary);font-size:var(--text-sm);font-weight:500;white-space:nowrap}.bulk-action-info i{font-size:1.2rem}.bulk-action-controls{display:flex;align-items:center;gap:var(--space-2);flex-wrap:wrap}.bulk-category-select{padding:var(--space-1) var(--space-3);background:var(--bg-surface);border:1px solid var(--border-strong);border-radius:var(--radius-md);color:var(--text-high);font-size:var(--text-sm);cursor:pointer;min-width:180px;transition:var(--transition)}.bulk-category-select:focus{outline:none;border-color:var(--brand-primary);box-shadow:0 0 0 2px var(--brand-alpha)}.btn-sm{padding:var(--space-1) var(--space-3)!important;font-size:var(--text-sm)!important;gap:var(--space-1)}.transactions-toolbar{display:flex;flex-direction:column;gap:var(--space-3)}.csv-import-section{display:flex;align-items:center;gap:var(--space-3);padding:0 var(--space-1)}.csv-import-btn{display:inline-flex;align-items:center;gap:var(--space-2);white-space:nowrap;transition:all .2s ease}.csv-import-btn:hover:not(:disabled){border-color:var(--brand-primary);color:var(--brand-primary);background:var(--brand-alpha)}.csv-result-badge{display:inline-flex;align-items:center;padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:var(--text-xs);font-weight:500;animation:fade-in .3s ease-out}.csv-result-badge.success{color:var(--status-success);background:#22c55e14;border:1px solid rgba(34,197,94,.2)}.csv-result-badge.error{color:var(--status-danger);background:#ef444414;border:1px solid rgba(239,68,68,.2)}.cashflow-chart-container{width:100%;margin-top:var(--space-3);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);overflow:hidden}.cashflow-chart-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-subtle);gap:var(--space-3);flex-wrap:wrap}.cashflow-chart-title{display:flex;align-items:center;gap:var(--space-2);font-weight:600;font-size:var(--font-sm);color:var(--text-primary)}.cashflow-chart-title i{color:var(--text-low);font-size:1.1em}.cashflow-chart-tooltip{display:flex;align-items:center;gap:var(--space-2);font-size:var(--font-xs);flex-wrap:wrap}.cashflow-chart-period{font-weight:600;color:var(--text-primary)}.cashflow-tag{display:inline-flex;align-items:center;gap:2px;padding:2px 8px;border-radius:var(--radius-full);font-size:var(--font-xs);font-weight:500}.cashflow-tag.income{background:rgba(var(--success-rgb, 34, 197, 94),.15);color:var(--status-success)}.cashflow-tag.expense{background:rgba(var(--danger-rgb, 239, 68, 68),.15);color:var(--status-danger)}.cashflow-tag.savings-positive{background:rgba(var(--accent-rgb, 122, 139, 45),.15);color:var(--accent)}.cashflow-tag.savings-negative{background:rgba(var(--danger-rgb, 239, 68, 68),.1);color:var(--status-danger)}.cashflow-chart-legend{display:flex;gap:var(--space-4);padding:var(--space-2) var(--space-4);font-size:var(--font-xs);color:var(--text-low)}.cashflow-legend-item{display:flex;align-items:center;gap:var(--space-1)}.cashflow-legend-dot{width:8px;height:8px;border-radius:2px}.cashflow-legend-dot.income{background:var(--status-success)}.cashflow-legend-dot.expense{background:var(--status-danger)}.cashflow-chart-svg{display:block;cursor:crosshair}.cashflow-chart-axis-label{font-family:inherit;-webkit-user-select:none;user-select:none}.budget-month-nav{display:flex;align-items:center;gap:var(--space-3);margin-bottom:var(--space-4)}.budget-month-nav button{display:flex;align-items:center;justify-content:center;width:32px;height:32px;background:var(--bg-surface);border:none;border-radius:var(--radius-md);color:var(--text-base);cursor:pointer;transition:var(--transition)}.budget-month-nav button:hover{color:var(--text-high);background:#ffffff1a}.budget-month-label{font-size:1rem;font-weight:600;color:var(--text-high);min-width:120px;text-align:center;text-transform:capitalize}.budget-monthly-layout{display:grid;grid-template-columns:1fr 280px;gap:var(--space-6);align-items:start}@media(max-width:900px){.budget-monthly-layout{grid-template-columns:1fr}}.budget-table-card{background:var(--bg-panel);border-radius:var(--radius-lg);border:var(--border-subtle);overflow:hidden}.budget-group{border-bottom:var(--border-subtle)}.budget-group:last-child{border-bottom:none}.budget-group-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);background:#ffffff05;border-bottom:var(--border-subtle)}.budget-group-title{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-low)}.budget-group-total{font-size:.8rem;font-weight:600;color:var(--text-base);font-family:var(--font-mono)}.budget-table-header{display:grid;grid-template-columns:1fr 100px 100px 100px;padding:var(--space-2) var(--space-4);font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--text-low);border-bottom:var(--border-subtle);background:#ffffff05}.budget-table-header span:not(:first-child){text-align:right}.budget-row{position:relative;display:grid;grid-template-columns:1fr 100px 100px 100px;padding:var(--space-3) var(--space-4);align-items:center;transition:background .15s ease}.budget-row:hover{background:var(--bg-hover)}.budget-row.over-budget{background:#ef44440f}.budget-row-name{display:flex;align-items:center;gap:var(--space-2);font-size:.875rem;font-weight:500;color:var(--text-base)}.budget-row-name i{font-size:1rem;color:var(--text-low);min-width:1.1rem;text-align:center}.budget-row-value{text-align:right;font-size:.875rem;font-family:var(--font-mono);color:var(--text-base)}.budget-row-input{width:80px;text-align:right;background:var(--bg-surface);border:1px solid transparent;border-radius:var(--radius-sm);padding:2px 6px;font-size:.875rem;font-family:var(--font-mono);color:var(--text-high);transition:border-color .15s ease}.budget-row-input:focus{border-color:var(--brand-primary);outline:none;box-shadow:0 0 0 2px var(--brand-alpha)}.budget-progress-wrap{position:absolute;bottom:0;left:var(--space-4);right:var(--space-4);height:3px;background:#ffffff0a;border-radius:2px;overflow:hidden}.budget-progress-fill{height:100%;border-radius:2px;transition:width .4s ease,background .3s ease}.budget-progress-fill.on-track{background:var(--status-success)}.budget-progress-fill.warning{background:var(--status-warning)}.budget-progress-fill.over{background:var(--status-danger)}.budget-pill{display:inline-flex;align-items:center;padding:2px 8px;border-radius:var(--radius-full);font-size:.8rem;font-weight:600;font-family:var(--font-mono)}.budget-pill.positive{background:var(--status-success-bg);color:var(--status-success)}.budget-pill.negative{background:var(--status-danger-bg);color:var(--status-danger)}.budget-pill.zero{color:var(--text-low);background:transparent}.budget-sidebar{position:sticky;top:var(--space-6);background:var(--bg-panel);border-radius:var(--radius-lg);border:var(--border-subtle);padding:var(--space-5)}.budget-sidebar-hero{text-align:center;margin-bottom:var(--space-5);padding-bottom:var(--space-4);border-bottom:var(--border-subtle)}.budget-sidebar-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-low);margin-bottom:var(--space-2)}.budget-sidebar-amount{font-size:2rem;font-weight:700;font-family:var(--font-mono);line-height:1.1}.budget-sidebar-amount.positive{color:var(--status-success)}.budget-sidebar-amount.negative{color:var(--status-danger)}.budget-sidebar-amount.zero{color:var(--text-low)}.budget-sidebar-group{margin-bottom:var(--space-4)}.budget-sidebar-group-label{display:flex;align-items:center;justify-content:space-between;font-size:.75rem;color:var(--text-low);margin-bottom:var(--space-1)}.budget-sidebar-group-amount{font-family:var(--font-mono);font-weight:600;font-size:.75rem;color:var(--text-base)}.budget-sidebar-bar{height:6px;background:#ffffff0f;border-radius:3px;overflow:hidden}.budget-sidebar-bar-fill{height:100%;border-radius:3px;transition:width .4s ease}.cashflow-kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));gap:var(--space-4);margin-bottom:var(--space-6)}.cashflow-kpi-card{background:var(--bg-panel);border-radius:var(--radius-lg);border:var(--border-subtle);padding:var(--space-5);text-align:center;transition:var(--transition)}.cashflow-kpi-card:hover{border-color:#ffffff1a;box-shadow:var(--shadow-md)}.cashflow-kpi-value{font-size:1.75rem;font-weight:700;font-family:var(--font-mono);line-height:1.2;margin-bottom:var(--space-1)}.cashflow-kpi-value.income{color:var(--status-success)}.cashflow-kpi-value.expense{color:var(--status-danger)}.cashflow-kpi-value.savings-positive{color:var(--status-success)}.cashflow-kpi-value.savings-negative{color:var(--status-danger)}.cashflow-kpi-label{font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-low)}.cashflow-breakdown{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,400px),1fr));gap:var(--space-6)}.cashflow-breakdown-card{background:var(--bg-panel);border-radius:var(--radius-lg);border:var(--border-subtle);overflow:hidden}.cashflow-breakdown-header{display:flex;align-items:center;justify-content:space-between;padding:var(--space-4);border-bottom:var(--border-subtle)}.cashflow-breakdown-title{font-size:.875rem;font-weight:600;color:var(--text-high)}.cashflow-breakdown-total{font-size:.875rem;font-weight:700;font-family:var(--font-mono)}.cashflow-row{position:relative;display:flex;align-items:center;justify-content:space-between;padding:var(--space-3) var(--space-4);overflow:hidden}.cashflow-row-bg{position:absolute;top:0;left:0;height:100%;opacity:.12;transition:width .5s ease;pointer-events:none}.cashflow-row-bg.income{background:var(--status-success)}.cashflow-row-bg.expense{background:var(--status-danger)}.cashflow-row-content{position:relative;z-index:1;display:flex;align-items:center;justify-content:space-between;width:100%}.cashflow-row-name{font-size:.875rem;color:var(--text-base);font-weight:500}.cashflow-row-metrics{display:flex;flex-direction:column;align-items:flex-end;gap:1px}.cashflow-row-amount{font-size:.875rem;font-weight:600;font-family:var(--font-mono);color:var(--text-high)}.cashflow-row-pct{font-size:.7rem;color:var(--text-low)}.forecast-container{overflow-x:auto;border-radius:var(--radius-lg);border:var(--border-subtle);background:var(--bg-panel)}.forecast-helper-text{display:flex;align-items:center;gap:var(--space-2);margin-bottom:var(--space-4);color:var(--text-low);font-size:.8rem}.forecast-grid{display:grid;min-width:max-content}.forecast-category-col{position:sticky;left:0;z-index:10;background:var(--bg-panel);border-right:var(--border-subtle);min-width:180px}.forecast-header-row{display:contents}.forecast-header-cell{padding:var(--space-3) var(--space-2);font-size:.7rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-low);text-align:center;white-space:nowrap;border-bottom:var(--border-subtle);position:sticky;top:0;z-index:5;background:var(--bg-panel)}.forecast-header-cell.current{color:var(--brand-primary);border-bottom:2px solid var(--brand-primary)}.forecast-header-cell.actual-label{color:var(--text-low);font-size:.6rem}.forecast-header-cell.budget-label{color:var(--brand-primary);font-size:.6rem}.forecast-cat-label{padding:var(--space-3) var(--space-4);font-size:.875rem;font-weight:500;color:var(--text-base);border-bottom:var(--border-subtle);display:flex;align-items:center;gap:var(--space-2)}.forecast-cat-label.group{font-weight:600;color:var(--text-high);background:#ffffff05}.forecast-cell{padding:var(--space-2);text-align:center;border-bottom:var(--border-subtle);font-family:var(--font-mono);font-size:.8rem;min-width:110px}.forecast-cell.actual{color:var(--text-base);background:transparent}.forecast-cell.editable{color:var(--text-high)}.forecast-cell.zero{color:var(--text-low);opacity:.4}.forecast-cell-stack{display:flex;flex-direction:column;align-items:center;gap:6px}.forecast-cell-input{width:70px;text-align:center;background:var(--bg-surface);border:1px solid transparent;border-radius:var(--radius-sm);padding:4px 6px;font-size:.8rem;font-family:var(--font-mono);color:var(--text-high);transition:border-color .15s ease}.forecast-cell-input:focus{border-color:var(--brand-primary);outline:none;box-shadow:0 0 0 2px var(--brand-alpha)}.forecast-action-btn{display:inline-flex;align-items:center;justify-content:center;gap:4px;min-height:24px;padding:2px 6px;border:var(--border-subtle);border-radius:var(--radius-sm);background:var(--bg-surface);color:var(--text-low);font-size:.65rem;cursor:pointer;transition:var(--transition)}.forecast-action-btn:hover:not(:disabled){color:var(--text-high);border-color:var(--brand-primary);background:var(--brand-alpha)}.forecast-action-btn:disabled{opacity:.6;cursor:not-allowed}.budget-add-btn{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:transparent;border:1px dashed rgba(255,255,255,.15);border-radius:var(--radius-md);color:var(--text-low);font-size:.8rem;cursor:pointer;transition:var(--transition);width:100%;justify-content:center;margin-top:var(--space-2)}.budget-add-btn:hover{color:var(--brand-primary);border-color:var(--brand-primary);background:var(--brand-alpha)}.budget-empty{padding:var(--space-12) var(--space-4);text-align:center}.budget-empty i{font-size:3rem;color:var(--text-low);opacity:.35;margin-bottom:var(--space-4);display:block}.budget-empty h3{color:var(--text-high);margin-bottom:var(--space-2)}.budget-empty p{color:var(--text-low);font-size:.875rem;max-width:400px;margin:0 auto}.budget-empty .btn-primary{margin-top:var(--space-4);display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-5);background:var(--brand-primary);color:#fff;border:none;border-radius:var(--radius-md);font-size:.875rem;font-weight:600;cursor:pointer;transition:var(--transition)}.budget-empty .btn-primary:hover{background:var(--brand-hover);box-shadow:var(--shadow-glow)}@media(max-width:768px){.budget-table-header,.budget-row{grid-template-columns:1fr 80px 80px 80px}.budget-row-input{width:65px;font-size:.8rem}.cashflow-kpi-value{font-size:1.25rem}.forecast-cell{min-width:90px}.forecast-cell-input{width:55px}.forecast-action-btn span{display:none}}@media(max-width:640px){.budget-table-header,.budget-row{grid-template-columns:1fr 80px 80px}.budget-table-header span:nth-child(4),.budget-row>*:nth-child(4){display:none}.budget-row-input{width:55px;font-size:.75rem}.cashflow-kpi-value{font-size:1.1rem}.budget-sidebar{position:static}}@media(max-width:480px){.budget-table-header,.budget-row{grid-template-columns:1fr 70px 70px;padding:var(--space-2) var(--space-3)}.budget-group-header{padding:var(--space-2) var(--space-3)}.budget-month-nav{gap:var(--space-2)}.budget-month-label{min-width:100px;font-size:.875rem}.cashflow-kpi-card{padding:var(--space-4)}.cashflow-kpi-value{font-size:1rem}.budget-sidebar-amount{font-size:1.5rem}.forecast-category-col{min-width:140px}}.recurrentes-dashboard{display:flex;flex-direction:column;gap:var(--space-5)}.recurrentes-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-4)}.recurrentes-kpi{display:flex;flex-direction:column;gap:var(--space-2)}.recurrentes-kpi span{color:var(--text-low);font-size:var(--text-sm)}.recurrentes-kpi strong{font-size:var(--text-xl);color:var(--text-high)}.recurrentes-grid{display:grid;grid-template-columns:minmax(300px,360px) 1fr;gap:var(--space-5);align-items:start}.recurrentes-form-card,.recurrentes-content-card{padding:var(--space-5)}.recurrentes-section-header{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-4)}.recurrentes-section-header h3{display:flex;align-items:center;gap:var(--space-2);margin:0}.recurrentes-section-header p{margin:0;color:var(--text-low);font-size:var(--text-sm)}.recurrentes-form{display:flex;flex-direction:column;gap:var(--space-4)}.recurrentes-form label{display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-low)}.recurrentes-form input,.recurrentes-form select{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-surface);color:var(--text-high);padding:.7rem .85rem}.recurrentes-form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.recurrentes-alert{margin-top:var(--space-4);padding:var(--space-3);border-radius:var(--radius-md);background:var(--status-danger-bg);color:var(--status-danger);font-size:var(--text-sm)}.recurrentes-calendar,.recurrentes-list,.recurrentes-suggestions{display:flex;flex-direction:column;gap:var(--space-3);margin-top:var(--space-4)}.recurrentes-calendar-day,.recurrentes-row,.recurrentes-suggestion-row{border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-4);background:var(--bg-surface)}.recurrentes-calendar-day header,.recurrentes-row,.recurrentes-suggestion-row,.recurrentes-calendar-item,.recurrentes-detect-header{display:flex;align-items:center;justify-content:space-between;gap:var(--space-3)}.recurrentes-calendar-day header{margin-bottom:var(--space-3);padding-bottom:var(--space-3);border-bottom:1px solid var(--border-subtle)}.recurrentes-calendar-day header span,.recurrentes-row-main span,.recurrentes-suggestion-row span{color:var(--text-low);font-size:var(--text-sm)}.recurrentes-calendar-item+.recurrentes-calendar-item{margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px solid var(--border-subtle)}.recurrentes-row-main,.recurrentes-row-meta,.recurrentes-row-actions,.recurrentes-suggestion-row>div{display:flex;align-items:center;gap:var(--space-3)}.recurrentes-row-main{flex-direction:column;align-items:flex-start}.recurrentes-row-actions{margin-left:auto}.recurrentes-pill{padding:.25rem .6rem;border-radius:999px;font-size:var(--text-xs);font-weight:600}.recurrentes-pill.success{background:#22c55e24;color:var(--status-success)}.recurrentes-pill.warning{background:#f59e0b24;color:#b7791f}.recurrentes-pill.danger{background:#ef444424;color:var(--status-danger)}.recurrentes-pill.muted{background:var(--bg-card);color:var(--text-low)}@media(max-width:980px){.recurrentes-grid{grid-template-columns:1fr}.recurrentes-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:720px){.recurrentes-kpis,.recurrentes-form-row{grid-template-columns:1fr}.recurrentes-row,.recurrentes-suggestion-row,.recurrentes-detect-header{flex-direction:column;align-items:flex-start}.recurrentes-row-actions{margin-left:0;flex-wrap:wrap}}@media(max-width:480px){.recurrentes-kpi strong{font-size:var(--text-lg)}.recurrentes-calendar-item{flex-direction:column;align-items:flex-start;gap:var(--space-2)}.recurrentes-form-card,.recurrentes-content-card,.recurrentes-calendar-day,.recurrentes-row,.recurrentes-suggestion-row{padding:var(--space-3)}}.metas-dashboard{display:flex;flex-direction:column;gap:var(--space-5)}.metas-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-4)}.metas-kpi{display:flex;flex-direction:column;gap:var(--space-2)}.metas-kpi span{color:var(--text-low);font-size:var(--text-sm)}.metas-kpi strong{font-size:var(--text-xl);color:var(--text-high)}.metas-grid{display:grid;grid-template-columns:minmax(300px,360px) 1fr;gap:var(--space-5);align-items:start}.metas-form-card,.metas-content-card{padding:var(--space-5)}.metas-section-header{display:flex;flex-direction:column;gap:var(--space-2);margin-bottom:var(--space-4)}.metas-section-header h3{display:flex;align-items:center;gap:var(--space-2);margin:0}.metas-section-header p{margin:0;color:var(--text-low);font-size:var(--text-sm)}.metas-form{display:flex;flex-direction:column;gap:var(--space-4)}.metas-form label{display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-low)}.metas-form input,.metas-form select{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-surface);color:var(--text-high);padding:.7rem .85rem}.metas-form-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--space-3)}.metas-alert{margin-top:var(--space-4);padding:var(--space-3);border-radius:var(--radius-md);background:var(--status-danger-bg);color:var(--status-danger);font-size:var(--text-sm)}.metas-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--space-4);margin-top:var(--space-4)}.metas-goal-card{border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-4);background:var(--bg-surface);display:flex;flex-direction:column;gap:var(--space-3)}.metas-goal-header{display:flex;align-items:center;justify-content:space-between}.metas-goal-header h4{margin:0;display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-base)}.metas-goal-type{padding:.2rem .5rem;border-radius:999px;font-size:var(--text-xs);font-weight:600}.metas-goal-type.save{background:#22c55e24;color:var(--status-success)}.metas-goal-type.debt{background:#ef444424;color:var(--status-danger)}.metas-progress-container{display:flex;flex-direction:column;gap:var(--space-1)}.metas-progress-bar{height:8px;border-radius:4px;background:var(--bg-card);overflow:hidden}.metas-progress-fill{height:100%;border-radius:4px;transition:width .6s ease}.metas-progress-fill.save{background:linear-gradient(90deg,#34d399,#10b981)}.metas-progress-fill.debt{background:linear-gradient(90deg,#f87171,#ef4444)}.metas-progress-labels{display:flex;justify-content:space-between;font-size:var(--text-xs);color:var(--text-low)}.metas-goal-amounts{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-2);font-size:var(--text-sm)}.metas-goal-amounts>div{display:flex;flex-direction:column;gap:var(--space-1)}.metas-goal-amounts span{color:var(--text-low);font-size:var(--text-xs)}.metas-goal-amounts strong{color:var(--text-high)}.metas-goal-actions{display:flex;gap:var(--space-2);padding-top:var(--space-2);border-top:1px solid var(--border-subtle)}.metas-goal-actions .btn{flex:1;font-size:var(--text-xs)}.metas-transfer-form{display:flex;gap:var(--space-3);align-items:flex-end;padding:var(--space-3);background:var(--bg-surface);border-radius:var(--radius-md);border:1px solid var(--border-subtle)}.metas-transfer-form label{display:flex;flex-direction:column;gap:var(--space-1);font-size:var(--text-xs);color:var(--text-low);flex:1}.metas-transfer-form input{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-surface);color:var(--text-high);padding:.5rem;font-size:var(--text-sm)}.metas-debt-summary{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4);margin-top:var(--space-4)}.metas-debt-kpi{border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-4);background:var(--bg-surface);display:flex;flex-direction:column;gap:var(--space-2);text-align:center}.metas-debt-kpi span{color:var(--text-low);font-size:var(--text-sm)}.metas-debt-kpi strong{font-size:var(--text-xl);color:var(--status-danger)}.metas-simulator{display:flex;flex-direction:column;gap:var(--space-4);margin-top:var(--space-4)}.metas-simulator-controls{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4)}.metas-simulator-controls label{display:flex;flex-direction:column;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-low)}.metas-simulator-controls input{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-surface);color:var(--text-high);padding:.7rem .85rem}.metas-simulator-result{border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-5);background:var(--bg-surface);display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-4);text-align:center}.metas-simulator-result>div{display:flex;flex-direction:column;gap:var(--space-2)}.metas-simulator-result span{color:var(--text-low);font-size:var(--text-sm)}.metas-simulator-result strong{font-size:var(--text-lg);color:var(--text-high)}.metas-projection{border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-4);background:var(--bg-surface)}.metas-projection h4{margin:0 0 var(--space-3) 0;display:flex;align-items:center;gap:var(--space-2);color:var(--text-high)}.metas-projection-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--space-3)}.metas-projection-grid>div{display:flex;flex-direction:column;gap:var(--space-1)}.metas-projection-grid span{color:var(--text-low);font-size:var(--text-xs)}.metas-projection-grid strong{color:var(--text-high);font-size:var(--text-base)}@media(max-width:980px){.metas-grid{grid-template-columns:1fr}.metas-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.metas-simulator-controls,.metas-simulator-result,.metas-projection-grid{grid-template-columns:1fr}}@media(max-width:720px){.metas-kpis,.metas-form-row,.metas-debt-summary,.metas-cards{grid-template-columns:1fr}.metas-goal-actions{flex-direction:column}}@media(max-width:480px){.metas-transfer-form{flex-direction:column;align-items:stretch}.metas-goal-amounts{grid-template-columns:1fr}.metas-kpi strong{font-size:var(--text-lg)}.metas-projection-grid,.metas-simulator-result{grid-template-columns:1fr}}.reportes-dashboard{display:flex;flex-direction:column;gap:var(--space-5)}.reportes-period-controls{display:flex;align-items:center;justify-content:space-between;gap:var(--space-4);padding:var(--space-2) 0}.reportes-presets{display:flex;gap:var(--space-1);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:3px}.reportes-preset-btn{background:transparent;border:none;padding:var(--space-1) var(--space-3);border-radius:calc(var(--radius-md) - 2px);font-size:var(--text-xs);font-weight:600;color:var(--text-low);cursor:pointer;transition:all .2s ease;letter-spacing:.02em}.reportes-preset-btn:hover{color:var(--text-base);background:#ffffff0f}.reportes-preset-btn.active{color:var(--text-high);background:#6c63ff33;box-shadow:0 0 8px #6c63ff1a}.reportes-month-nav{display:flex;align-items:center;gap:var(--space-3)}.reportes-month-nav button{background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:var(--space-2) var(--space-3);color:var(--text-base);cursor:pointer;transition:var(--transition)}.reportes-month-nav button:hover:not(:disabled){border-color:var(--brand-primary);color:var(--brand-primary)}.reportes-month-nav button:disabled,.reportes-month-nav button.disabled{opacity:.3;cursor:not-allowed;pointer-events:none}.reportes-month-label{font-weight:600;font-size:var(--text-base);color:var(--text-high);min-width:140px;text-align:center}.reportes-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--space-4)}.reportes-kpi{display:flex;flex-direction:column;gap:var(--space-2)}.reportes-kpi span{color:var(--text-low);font-size:var(--text-sm)}.reportes-kpi-rate{align-items:center}.reportes-rate-ring{position:relative;width:60px;height:60px;display:flex;align-items:center;justify-content:center}.reportes-rate-svg{width:100%;height:100%;transform:rotate(-90deg)}.reportes-rate-bg{fill:none;stroke:#ffffff14;stroke-width:3;stroke-linecap:round}.reportes-rate-fill{fill:none;stroke-width:3;stroke-linecap:round;transition:stroke-dasharray .8s ease}.reportes-rate-value{position:absolute;font-size:var(--text-sm);font-weight:700;color:var(--text-high)}.reportes-kpi strong{font-size:var(--text-xl);color:var(--text-high)}.reportes-breakdown{padding:var(--space-5)}.reportes-breakdown h3{margin:0 0 var(--space-4) 0;display:flex;align-items:center;gap:var(--space-2)}.reportes-breakdown-header{display:flex;align-items:baseline;gap:var(--space-3);padding:var(--space-3) var(--space-3);background:#ffffff08;border:1px solid var(--border-subtle);border-radius:var(--radius-md);margin-bottom:var(--space-4)}.reportes-breakdown-header-label{font-size:var(--text-sm);color:var(--text-low);flex:1}.reportes-breakdown-header-amount{font-size:var(--text-lg);font-weight:700}.reportes-breakdown-header-sub{font-size:var(--text-xs);color:var(--text-low)}.reportes-export-btn{display:inline-flex;align-items:center;gap:var(--space-1);margin-left:auto;padding:4px 10px;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:transparent;color:var(--text-low);font-size:var(--text-xs);font-weight:600;cursor:pointer;transition:all .2s ease;letter-spacing:.02em;white-space:nowrap}.reportes-export-btn:hover{color:var(--text-high);border-color:#6c63ff80;background:#6c63ff14}.reportes-category-list{display:flex;flex-direction:column;gap:var(--space-1)}.reportes-category-group{display:flex;flex-direction:column;border-radius:var(--radius-md);overflow:hidden;border:1px solid var(--border-subtle);margin-bottom:var(--space-2)}.reportes-category-group:last-child{margin-bottom:0}.reportes-category-group-header{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);background:var(--bg-card);border-bottom:1px solid var(--border-subtle)}.reportes-category-group-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.reportes-category-group-label{font-size:var(--text-sm);font-weight:700;color:var(--text-high);flex:1}.reportes-category-group-pct{font-size:var(--text-xs);font-weight:600;color:var(--text-low);background:#ffffff0f;border:1px solid var(--border-subtle);border-radius:var(--radius-sm);padding:.1rem .4rem;white-space:nowrap;margin-right:var(--space-1)}.reportes-category-group-total{font-size:var(--text-sm);font-weight:700;color:var(--text-high);text-align:right}.reportes-category-row{display:grid;grid-template-columns:18px 1fr auto auto;gap:var(--space-3);align-items:center;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-subtle);width:100%;background:transparent;border-left:none;border-right:none;border-top:none;text-align:left;cursor:pointer;transition:background .15s ease}.reportes-category-row:hover{background:#ffffff0a}.reportes-category-row.is-expanded{background:#ffffff0d;border-bottom:none}.reportes-category-row-chevron{color:var(--text-low);font-size:14px;display:flex;align-items:center;justify-content:center;transition:color .15s ease}.reportes-category-row:hover .reportes-category-row-chevron{color:var(--text-base)}.reportes-drilldown{background:linear-gradient(135deg,#00000047,#0000002e);border-bottom:1px solid rgba(255,255,255,.06);border-left:3px solid rgba(108,99,255,.35);padding:var(--space-3) var(--space-4);margin-left:var(--space-2);border-radius:0 0 var(--radius-md) var(--radius-md);animation:drilldown-open .25s cubic-bezier(.16,1,.3,1);box-shadow:inset 0 2px 8px #00000026;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px)}@keyframes drilldown-open{0%{opacity:0;transform:translateY(-6px);max-height:0}to{opacity:1;transform:translateY(0);max-height:800px}}.reportes-drilldown-loading{display:flex;align-items:center;gap:var(--space-3);color:var(--text-low);font-size:var(--text-xs);padding:var(--space-3) 0;letter-spacing:.02em}.reportes-drilldown-empty{color:var(--text-low);font-size:var(--text-xs);padding:var(--space-3) 0;margin:0;font-style:italic;opacity:.8}.reportes-drilldown-header{display:grid;grid-template-columns:56px 1fr 170px 90px;gap:var(--space-3);padding:var(--space-2) var(--space-2);font-size:10px;color:var(--text-low);font-weight:700;text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid rgba(255,255,255,.08);margin-bottom:var(--space-1)}.reportes-drilldown-header span:last-child{text-align:right}.reportes-drilldown-row{display:grid;grid-template-columns:56px 1fr 170px 90px;gap:var(--space-3);padding:6px var(--space-2);align-items:center;border-radius:var(--radius-sm);transition:background .15s ease}.reportes-drilldown-row:nth-child(2n){background:#ffffff05}.reportes-drilldown-row:hover{background:#ffffff0d}.reportes-drilldown-date{font-size:var(--text-xs);color:var(--text-low);white-space:nowrap;font-variant-numeric:tabular-nums}.reportes-drilldown-desc{font-size:var(--text-xs);color:var(--text-base);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;line-height:1.4}.reportes-drilldown-amount{font-size:var(--text-xs);font-weight:600;white-space:nowrap;text-align:right;font-variant-numeric:tabular-nums}.reportes-drilldown-amount.withdrawal{color:var(--text-high)}.reportes-drilldown-amount.deposit{color:var(--status-success)}.reportes-drilldown-cat{display:flex;align-items:center;min-width:0}.drilldown-cat-chip{display:inline-flex;align-items:center;gap:5px;font-size:11px;line-height:1;color:var(--text-base);background:#ffffff0f;border:1px solid rgba(255,255,255,.1);border-radius:20px;padding:4px 10px;cursor:pointer;transition:all .2s ease;white-space:nowrap;max-width:160px;overflow:hidden;text-overflow:ellipsis}.drilldown-cat-chip:hover{background:#6c63ff26;border-color:#6c63ff66;box-shadow:0 0 8px #6c63ff1f}.drilldown-cat-chip .ri-pencil-line{font-size:10px;opacity:0;flex-shrink:0;transition:opacity .15s}.drilldown-cat-chip:hover .ri-pencil-line{opacity:.7}.drilldown-cat-chip.uncategorized{color:var(--status-warning, #f59e0b);border-color:#f59e0b40;background:#f59e0b0f}.drilldown-cat-chip.uncategorized:hover{background:#f59e0b1f;border-color:#f59e0b73;box-shadow:0 0 8px #f59e0b1a}.drilldown-cat-chip.uncategorized .ri-error-warning-fill{font-size:11px;margin-right:1px}.drilldown-cat-chip.updating{cursor:default;opacity:.55;pointer-events:none}.drilldown-cat-select{font-size:11px;line-height:1.3;background:var(--bg-card, #1e1e2a);color:var(--text-base);border:1px solid var(--accent-primary, #6C63FF);border-radius:20px;padding:4px 10px;max-width:160px;cursor:pointer;box-shadow:0 0 12px #6c63ff33;outline:none;animation:select-pop .15s ease}@keyframes select-pop{0%{transform:scale(.95);opacity:.7}to{transform:scale(1);opacity:1}}.drilldown-cat-select:focus{box-shadow:0 0 0 2px #6c63ff40,0 0 12px #6c63ff33}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.spin{display:inline-block;animation:spin .7s linear infinite;color:var(--accent-primary, #6C63FF)}.reportes-drilldown-row.updating{opacity:.5;pointer-events:none}.reportes-category-name{font-size:var(--text-sm);font-weight:500;color:var(--text-base)}.reportes-category-bar-wrap{width:100px;height:6px;border-radius:3px;background:#ffffff14;overflow:hidden}.reportes-category-bar{height:100%;border-radius:3px;transition:width .5s ease}.reportes-category-amount{font-weight:600;text-align:right;min-width:90px}.reportes-comparison{margin-top:var(--space-4);overflow-x:auto;-webkit-overflow-scrolling:touch}.reportes-comparison h3{position:sticky;left:0;min-width:max-content}.reportes-comparison-header{display:flex;align-items:center;padding:0;background:var(--bg-surface);border-radius:var(--radius-md) var(--radius-md) 0 0;border:1px solid var(--border-subtle);font-weight:600;font-size:var(--text-sm);color:var(--text-low);min-width:max-content}.reportes-comparison-row{display:flex;align-items:center;padding:0;border:1px solid var(--border-subtle);border-top:none;min-width:max-content}.reportes-comparison-row:last-child{border-radius:0 0 var(--radius-md) var(--radius-md)}.reportes-comparison-header>span,.reportes-comparison-row>span,.reportes-comparison-row>strong{flex:0 0 120px;min-width:120px;padding:var(--space-3) var(--space-3);white-space:nowrap}.reportes-comparison-header>span:first-child,.reportes-comparison-row>span:first-child,.reportes-comparison-row>strong:first-child{position:sticky;left:0;z-index:2;flex:0 0 140px;min-width:140px;background:var(--bg-panel);border-right:1px solid var(--border-subtle);box-shadow:4px 0 8px #00000040;overflow:hidden;text-overflow:ellipsis}.reportes-comparison-header>span:first-child{background:var(--bg-surface)}.reportes-comparison-header>span:last-child,.reportes-comparison-row>span:last-child{flex:0 0 80px;min-width:80px;text-align:right}.reportes-compare-cell{display:flex;flex-direction:column;gap:1px}.reportes-compare-value{font-variant-numeric:tabular-nums}.reportes-compare-delta{font-size:.7rem;font-weight:500;opacity:.85}.reportes-delta{font-weight:600;font-size:.8rem;white-space:nowrap}.reportes-delta.positive,.reportes-compare-delta.positive{color:var(--status-success)}.reportes-delta.negative,.reportes-compare-delta.negative{color:var(--status-danger)}.reportes-delta.neutral,.reportes-compare-delta.neutral{color:var(--text-low)}.reportes-distribucion{padding:var(--space-2) 0}.reportes-donut-toggle{display:flex;gap:var(--space-1);background:#ffffff0a;border:1px solid var(--border-subtle);border-radius:var(--radius-md);padding:3px;margin-bottom:var(--space-4);width:fit-content}.reportes-donut-toggle-btn{background:transparent;border:none;padding:var(--space-1) var(--space-4);border-radius:calc(var(--radius-md) - 2px);font-size:var(--text-sm);font-weight:600;color:var(--text-low);cursor:pointer;transition:all .2s ease}.reportes-donut-toggle-btn:hover{color:var(--text-base);background:#ffffff0f}.reportes-donut-toggle-btn.active{color:var(--text-high);background:#6c63ff33;box-shadow:0 0 8px #6c63ff1a}.reportes-donut-body{display:grid;grid-template-columns:240px 1fr;gap:var(--space-5);align-items:center;min-height:240px}.reportes-donut-canvas-wrap{width:240px;height:240px;position:relative}.reportes-donut-legend{display:flex;flex-direction:column;gap:var(--space-1)}.reportes-donut-legend-group{display:flex;flex-direction:column;border-radius:var(--radius-sm);overflow:hidden;transition:background .15s ease}.reportes-donut-legend-item{display:grid;grid-template-columns:10px 1fr auto auto auto;gap:var(--space-3);align-items:center;padding:var(--space-2) var(--space-3);width:100%;background:transparent;border:none;border-radius:var(--radius-sm);text-align:left;cursor:pointer;transition:background .15s ease}.reportes-donut-legend-item:hover,.reportes-donut-legend-item.is-hovered{background:#ffffff0f}.reportes-donut-legend-chevron{color:var(--text-low);font-size:14px;display:flex;align-items:center;transition:color .15s ease}.reportes-donut-legend-item:hover .reportes-donut-legend-chevron{color:var(--text-base)}.reportes-donut-detail{display:flex;flex-direction:column;gap:2px;padding:var(--space-2) var(--space-3) var(--space-3);background:#0000002e;border-left:3px solid rgba(108,99,255,.25);margin-left:var(--space-2);border-radius:0 0 var(--radius-sm) var(--radius-sm);animation:drilldown-open .2s cubic-bezier(.16,1,.3,1)}.reportes-donut-detail-row{display:grid;grid-template-columns:60px 1fr auto auto;gap:var(--space-3);align-items:center;padding:4px var(--space-2);border-radius:var(--radius-sm);transition:background .15s ease}.reportes-donut-detail-row:hover{background:#ffffff0a}.reportes-donut-detail-bar-wrap{height:4px;border-radius:2px;background:#ffffff0f;overflow:hidden;display:block}.reportes-donut-detail-bar{display:block;height:100%;border-radius:2px;transition:width .4s ease}.reportes-donut-detail-name{font-size:var(--text-xs);color:var(--text-base);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reportes-donut-detail-pct{font-size:var(--text-xs);color:var(--text-low);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}.reportes-donut-detail-amount{font-size:var(--text-xs);font-weight:600;color:var(--text-high);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;min-width:70px}.reportes-donut-legend-dot{width:10px;height:10px;border-radius:50%;flex-shrink:0}.reportes-donut-legend-label{font-size:var(--text-sm);color:var(--text-base);font-weight:500;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.reportes-donut-legend-value{font-size:var(--text-sm);font-weight:600;color:var(--text-high);text-align:right;font-variant-numeric:tabular-nums}.reportes-donut-legend-pct{font-size:var(--text-xs);color:var(--text-low);font-weight:600;min-width:40px;text-align:right;font-variant-numeric:tabular-nums}.reportes-compare-controls{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-3);background:var(--bg-card);border:1px solid var(--border-subtle);border-radius:var(--radius-md);margin-bottom:var(--space-4)}.reportes-compare-controls label{display:flex;align-items:center;gap:var(--space-2);font-size:var(--text-sm);color:var(--text-low)}.reportes-compare-controls input{border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--bg-surface);color:var(--text-high);padding:.4rem .6rem;width:140px}@media(max-width:980px){.reportes-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.reportes-comparison-header,.reportes-comparison-row{grid-template-columns:1fr;gap:var(--space-1)}.reportes-donut-body{grid-template-columns:1fr;justify-items:center}.reportes-donut-legend{width:100%}}@media(max-width:720px){.reportes-kpis{grid-template-columns:1fr}.reportes-category-row{grid-template-columns:1fr auto}.reportes-category-bar-wrap{display:none}.reportes-period-controls{flex-direction:column;gap:var(--space-2)}.reportes-donut-canvas-wrap{width:200px;height:200px}}@media(max-width:640px){.reportes-drilldown-header,.reportes-drilldown-row{grid-template-columns:56px 1fr 90px}.reportes-drilldown-header>span:nth-child(3),.reportes-drilldown-cat{display:none}.reportes-drilldown{padding:var(--space-2) var(--space-3);margin-left:0}.reportes-category-amount{min-width:70px}.reportes-month-label{min-width:100px;font-size:var(--text-sm)}.reportes-compare-controls{flex-direction:column;align-items:stretch;gap:var(--space-2)}.reportes-compare-controls input{width:100%}.reportes-presets{flex-wrap:wrap}}@media(max-width:480px){.reportes-month-nav button{padding:var(--space-1) var(--space-2)}.reportes-month-label{min-width:80px;font-size:.8rem}.reportes-breakdown{padding:var(--space-3)}.reportes-breakdown-header{flex-direction:column;gap:var(--space-2)}.reportes-category-row{grid-template-columns:1fr auto;padding:var(--space-2)}.reportes-category-row-chevron{display:none}.reportes-kpi strong{font-size:var(--text-lg)}.reportes-donut-canvas-wrap{width:160px;height:160px}}.hogar-dashboard{display:flex;flex-direction:column;gap:1.5rem;padding:0 .5rem}.hogar-header{display:flex;align-items:center;gap:1rem;justify-content:center}.hogar-title{font-size:1.35rem;font-weight:600;color:var(--text-primary);display:flex;align-items:center;gap:.5rem}.hogar-title i{color:var(--accent);font-size:1.4rem}.hogar-nav-btn{background:var(--surface-elevated);border:1px solid var(--border);border-radius:.5rem;color:var(--text-secondary);padding:.4rem .6rem;cursor:pointer;font-size:1.1rem;transition:all .15s ease}.hogar-nav-btn:hover:not(:disabled){background:var(--surface-hover);color:var(--text-primary)}.hogar-nav-btn:disabled{opacity:.3;cursor:not-allowed}.hogar-total-card{background:linear-gradient(135deg,var(--accent),hsl(var(--accent-hue, 220) 70% 55%));border-radius:1rem;padding:2rem;text-align:center;color:#fff;box-shadow:0 4px 20px #00000026}.hogar-total-label{font-size:.85rem;text-transform:uppercase;letter-spacing:.06em;opacity:.85;margin-bottom:.5rem}.hogar-total-amount{font-size:2.4rem;font-weight:700;line-height:1;margin-bottom:.5rem}.hogar-total-meta{font-size:.8rem;opacity:.7}.hogar-grid{display:grid;grid-template-columns:1fr 1fr;gap:1.25rem}@media(max-width:768px){.hogar-grid{grid-template-columns:1fr}}.hogar-card{padding:1.25rem}.hogar-card-header{display:flex;align-items:center;gap:.5rem;margin-bottom:1rem;padding-bottom:.75rem;border-bottom:1px solid var(--border)}.hogar-card-header i{color:var(--accent);font-size:1.1rem}.hogar-card-header h3{font-size:.95rem;font-weight:600;color:var(--text-primary);margin:0}.hogar-breakdown-list{display:flex;flex-direction:column;gap:.6rem}.hogar-breakdown-item{display:flex;justify-content:space-between;align-items:center;padding:.5rem 0;border-bottom:1px solid var(--border-subtle, var(--border))}.hogar-breakdown-item:last-child{border-bottom:none}.hogar-breakdown-label{color:var(--text-primary);font-size:.88rem;font-weight:500}.hogar-breakdown-value{color:var(--text-primary);font-weight:600;font-size:.9rem;font-variant-numeric:tabular-nums}.hogar-account-info{display:flex;align-items:center;gap:.5rem}.hogar-account-pct{color:var(--text-tertiary, var(--text-secondary));font-size:.75rem;background:var(--surface-elevated);padding:.1rem .4rem;border-radius:.3rem}.hogar-balance-card{margin-top:1rem;padding:1rem;background:var(--surface-elevated);border-radius:.75rem;border:1px solid var(--border)}.hogar-balance-header{display:flex;align-items:center;gap:.5rem;font-weight:600;font-size:.88rem;color:var(--text-primary);margin-bottom:.75rem}.hogar-balance-header i{color:var(--accent)}.hogar-balance-detail{display:flex;flex-direction:column;gap:.4rem}.hogar-balance-row{display:flex;justify-content:space-between;align-items:center;font-size:.85rem}.hogar-balance-name{color:var(--text-secondary)}.hogar-balance-diff{font-weight:600;font-variant-numeric:tabular-nums}.hogar-balance-diff.overpaid{color:var(--color-success, #22c55e)}.hogar-balance-diff.underpaid{color:var(--color-warning, #f59e0b)}.hogar-rules-card{grid-column:1 / -1}.hogar-rules-list{display:flex;flex-direction:column;gap:.5rem}.hogar-rule-item{display:flex;justify-content:space-between;align-items:center;padding:.6rem .75rem;background:var(--surface-elevated);border-radius:.5rem;border:1px solid var(--border);transition:background .15s ease}.hogar-rule-item:hover{background:var(--surface-hover)}.hogar-rule-info{display:flex;align-items:center;gap:.75rem}.hogar-rule-pattern{font-weight:600;font-size:.88rem;color:var(--text-primary);font-family:var(--font-mono, "SF Mono", "Fira Code", monospace)}.hogar-rule-hits{font-size:.75rem;color:var(--text-tertiary, var(--text-secondary));background:var(--surface-hover);padding:.15rem .5rem;border-radius:1rem}.hogar-rule-delete{background:none;border:none;color:var(--text-tertiary, var(--text-secondary));cursor:pointer;padding:.3rem;border-radius:.35rem;font-size:1rem;transition:all .15s ease}.hogar-rule-delete:hover{color:var(--color-error, #ef4444);background:#ef44441a}.hogar-empty{text-align:center;padding:1.5rem;color:var(--text-secondary);font-size:.88rem}.hogar-loading,.hogar-error{display:flex;align-items:center;justify-content:center;gap:.75rem;padding:3rem;color:var(--text-secondary);font-size:.95rem}.hogar-error{color:var(--color-error, #ef4444)}.hogar-loading i{font-size:1.3rem}.household-toggle-td{text-align:center;width:2.5rem}.household-toggle{background:none;border:none;cursor:pointer;padding:.25rem;border-radius:.35rem;color:var(--text-tertiary, var(--text-secondary));font-size:1rem;transition:all .15s ease;opacity:.4}.household-toggle:hover{opacity:1;color:var(--accent);background:rgba(var(--accent-rgb, 99, 102, 241),.1)}.household-toggle.active{opacity:1;color:var(--accent)}.household-toggle.active i{animation:household-pop .3s ease}@keyframes household-pop{0%{transform:scale(1)}50%{transform:scale(1.3)}to{transform:scale(1)}}@media(max-width:768px){.hogar-rules-card{grid-column:auto}.hogar-total-amount{font-size:1.8rem}.hogar-total-card{padding:1.5rem}}@media(max-width:480px){.hogar-dashboard{gap:1rem;padding:0}.hogar-header{flex-wrap:wrap;justify-content:center}.hogar-title{font-size:1.1rem}.hogar-total-amount{font-size:1.5rem}.hogar-total-card{padding:1.25rem;border-radius:.75rem}.hogar-card{padding:1rem}.hogar-rule-info{flex-direction:column;align-items:flex-start;gap:.35rem}.hogar-balance-row{flex-direction:column;align-items:flex-start;gap:.25rem}.hogar-rule-item{flex-direction:column;align-items:flex-start;gap:.5rem}}.theme-toggle{display:inline-flex;align-items:center;background:var(--bg-surface);border-radius:var(--radius-full);padding:2px;gap:2px}.theme-toggle-btn{display:flex;align-items:center;justify-content:center;width:30px;height:30px;border:none;border-radius:var(--radius-full);background:transparent;color:var(--text-low);cursor:pointer;transition:var(--transition);font-size:.875rem}.theme-toggle-btn:hover{color:var(--text-high);background:var(--bg-hover)}.theme-toggle-btn.active{background:var(--brand-primary);color:#fff;box-shadow:var(--shadow-sm)}.sidebar{position:fixed;top:0;left:0;height:100vh;width:240px;background:var(--bg-panel);border-right:var(--border-subtle);display:flex;flex-direction:column;z-index:200;transition:transform .3s cubic-bezier(.4,0,.2,1);overflow-y:auto;scrollbar-width:thin}.sidebar-logo{display:flex;align-items:center;gap:var(--space-3);padding:var(--space-5) var(--space-4);border-bottom:var(--border-subtle)}.sidebar-logo-icon{width:36px;height:36px;min-width:36px;background:linear-gradient(135deg,var(--brand-primary),var(--brand-hover));border-radius:var(--radius-md);display:flex;align-items:center;justify-content:center}.sidebar-logo-icon i{font-size:1.25rem;color:#fff}.sidebar-logo-text{font-size:1rem;font-weight:700;color:var(--text-high);letter-spacing:-.02em}.sidebar-nav{flex:1;padding:var(--space-2) 0;overflow-y:auto}.sidebar-section{padding:var(--space-1) 0}.sidebar-section+.sidebar-section{border-top:var(--border-subtle)}.sidebar-section-label{display:flex;align-items:center;gap:var(--space-1);padding:var(--space-3) var(--space-4) var(--space-1);font-size:.65rem;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--text-low);opacity:.8}.sidebar-section-emoji{font-size:.75rem;line-height:1}.sidebar-item{display:flex;align-items:center;gap:var(--space-3);width:100%;padding:.625rem var(--space-4);background:none;border:none;color:var(--text-base);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .15s ease;position:relative;text-align:left}.sidebar-item:hover{color:var(--text-high);background:#ffffff0a}.sidebar-item.active{color:var(--brand-primary);background:var(--brand-alpha)}.sidebar-item.active:before{content:"";position:absolute;left:0;top:50%;transform:translateY(-50%);width:3px;height:60%;background:var(--brand-primary);border-radius:0 3px 3px 0}.sidebar-item i{font-size:1.15rem;min-width:1.2rem;text-align:center}.sidebar-item i.spin{animation:sidebar-spin 1s linear infinite}.sidebar-item--danger:hover{color:var(--status-danger);background:var(--status-danger-bg)}.sidebar-bottom{padding:var(--space-2) 0;border-top:var(--border-subtle);margin-top:auto}.sidebar-hamburger{display:none;position:fixed;top:var(--space-3);left:var(--space-3);z-index:300;width:40px;height:40px;background:var(--bg-panel);border:1px solid var(--border-strong);border-radius:var(--radius-sm);color:var(--text-high);font-size:1.25rem;cursor:pointer;align-items:center;justify-content:center;transition:var(--transition);box-shadow:var(--shadow-sm)}.sidebar-hamburger:hover{background:var(--bg-surface)}.sidebar-overlay{display:none;position:fixed;inset:0;background:#00000080;z-index:190;-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px)}@keyframes sidebar-spin{to{transform:rotate(360deg)}}.shell-tabs{display:flex;gap:var(--space-1);padding:var(--space-2) var(--space-1);background:var(--bg-panel);border-radius:var(--radius-lg);margin-bottom:var(--space-6);border:var(--border-subtle)}.shell-tab{display:flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);background:transparent;border:none;border-radius:var(--radius-md);color:var(--text-low);font-size:.875rem;font-weight:500;cursor:pointer;transition:all .2s ease;white-space:nowrap}.shell-tab:hover{color:var(--text-base);background:var(--bg-hover)}.shell-tab.active{color:var(--text-high);background:var(--bg-surface);box-shadow:var(--shadow-sm)}.shell-tab i{font-size:1rem}.shell-content{min-height:300px}@media(max-width:768px){.sidebar{transform:translate(-100%)}.sidebar.expanded{transform:translate(0);box-shadow:4px 0 20px #0000004d}.sidebar-hamburger{display:flex}.sidebar-overlay{display:block}.shell-tabs{overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch}.shell-tabs::-webkit-scrollbar{display:none}}@media(max-width:480px){.shell-tab{padding:var(--space-2) var(--space-3);font-size:.8125rem}.shell-tab i{font-size:.875rem}.sidebar-hamburger{top:var(--space-2);left:var(--space-2);width:36px;height:36px;font-size:1.1rem}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}:root{--bg-app: #0f172a;--bg-panel: #1e293b;--bg-surface: #334155;--bg-hover: rgba(255, 255, 255, .05);--text-high: #f1f5f9;--text-base: #cbd5e1;--text-low: #94a3b8;--brand-primary: #8b5cf6;--brand-hover: #a78bfa;--brand-alpha: rgba(139, 92, 246, .15);--status-success: #10b981;--status-success-bg: rgba(16, 185, 129, .15);--status-danger: #ef4444;--status-danger-bg: rgba(239, 68, 68, .15);--status-warning: #f59e0b;--status-warning-bg: rgba(245, 158, 11, .15);--status-info: #3b82f6;--status-info-bg: rgba(59, 130, 246, .15);--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.25rem;--space-6: 1.5rem;--space-8: 2rem;--space-12: 3rem;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 16px;--radius-full: 9999px;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .1);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .2);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .3);--shadow-glow: 0 4px 20px var(--brand-alpha);--border-subtle: 1px solid rgba(255, 255, 255, .05);--border-strong: 1px solid rgba(255, 255, 255, .15);--transition: all .2s cubic-bezier(.4, 0, .2, 1);--font-family: "Inter", system-ui, -apple-system, sans-serif;--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace}html,body{font-family:var(--font-family);background:var(--bg-app);color:var(--text-base);line-height:1.5;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}html,body{overflow-x:hidden}#app{min-height:100vh}h1,h2,h3,h4,h5,h6{color:var(--text-high);font-weight:600;line-height:1.2}a{color:var(--brand-primary);text-decoration:none;transition:var(--transition)}a:hover{color:var(--brand-hover)}input,select,button,textarea{font-family:inherit;font-size:inherit;color:inherit;outline:none}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:var(--bg-panel)}::-webkit-scrollbar-thumb{background:var(--bg-surface);border-radius:var(--radius-full)}::-webkit-scrollbar-thumb:hover{background:#4b5563}.page-container{padding:var(--space-6);max-width:1400px;margin:0 auto;min-height:100vh}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-6);gap:var(--space-4);flex-wrap:wrap}.page-header-embedded{justify-content:flex-end;margin-bottom:var(--space-4)}.nav-tabs-embedded{margin:0;padding:0;border-bottom:none}.page-title{display:flex;align-items:center;gap:var(--space-2);font-size:1.5rem;font-weight:700;color:var(--text-high);margin:0}.page-title i{color:var(--brand-primary)}.grid-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,400px),1fr));gap:var(--space-6)}.grid-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:var(--space-4)}.grid-4{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,240px),1fr));gap:var(--space-4)}.state-container{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--space-12) var(--space-4);text-align:center;color:var(--text-low);gap:var(--space-3);width:100%}.state-container i{font-size:3rem;opacity:.5}.state-container.error i{color:var(--status-danger);opacity:1}.text-high{color:var(--text-high)}.text-base{color:var(--text-base)}.text-low{color:var(--text-low)}.text-primary{color:var(--brand-primary)}.bg-primary-alpha{background-color:var(--brand-alpha)}.text-success{color:var(--status-success)}.text-danger{color:var(--status-danger)}.text-warning{color:var(--status-warning)}.font-bold{font-weight:700}.font-medium{font-weight:500}.uppercase{text-transform:uppercase}.text-right{text-align:right}.text-center{text-align:center}.mb-1{margin-bottom:var(--space-1)}.mb-2{margin-bottom:var(--space-2)}.mb-3{margin-bottom:var(--space-3)}.mb-4{margin-bottom:var(--space-4)}.mb-6{margin-bottom:var(--space-6)}.mb-8{margin-bottom:var(--space-8)}.mt-1{margin-top:var(--space-1)}.mt-2{margin-top:var(--space-2)}.mt-4{margin-top:var(--space-4)}.mt-6{margin-top:var(--space-6)}.mt-8{margin-top:var(--space-8)}.mr-2{margin-right:var(--space-2)}.mr-3{margin-right:var(--space-3)}.ml-2{margin-left:var(--space-2)}.pb-2{padding-bottom:var(--space-2)}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.p-0{padding:0}.p-4{padding:var(--space-4)}.px-2{padding-left:var(--space-2);padding-right:var(--space-2)}.w-fit{width:fit-content}.w-full{width:100%}.block{display:block}.flex{display:flex}.flex-col{display:flex;flex-direction:column}.flex-1{flex:1}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.align-center{align-items:center}.border-b{border-bottom:var(--border-subtle)}.rounded{border-radius:var(--radius-md)}.rounded-sm{border-radius:var(--radius-sm)}.font-normal{font-weight:400}.italic{font-style:italic}.text-xs{font-size:.75rem}.text-sm{font-size:.875rem}.text-2xl{font-size:1.5rem}.bg-primary{background-color:var(--brand-primary)}.bg-surface{background-color:var(--bg-surface)}.mb-0{margin-bottom:0}.card{background:var(--bg-panel);border-radius:var(--radius-lg);padding:var(--space-5);box-shadow:var(--shadow-md);border:var(--border-subtle);transition:var(--transition)}.card:hover{border-color:#ffffff1a;box-shadow:var(--shadow-lg)}.card-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--space-4);gap:var(--space-3);flex-wrap:wrap}.card-header h3{font-size:1rem;font-weight:600;display:flex;align-items:center;gap:var(--space-2);color:var(--text-high)}.card-header h3 i{color:var(--brand-primary);font-size:1.25rem}.spinner{width:32px;height:32px;border:3px solid rgba(255,255,255,.1);border-top-color:var(--brand-primary);border-radius:var(--radius-full);animation:spin .7s linear infinite;flex-shrink:0}.badge{background:var(--bg-surface);padding:var(--space-1) var(--space-3);border-radius:var(--radius-full);font-size:.8rem;color:var(--text-low);font-weight:500}.positive{color:var(--status-success)}.negative{color:var(--status-danger)}.btn{display:inline-flex;align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-4);border:none;border-radius:var(--radius-md);font-size:.875rem;font-weight:500;cursor:pointer;transition:var(--transition);white-space:nowrap}.btn:disabled{opacity:.6;cursor:not-allowed}.btn-primary{background:var(--brand-primary);color:#fff}.btn-primary:hover:not(:disabled){background:var(--brand-hover);box-shadow:var(--shadow-glow)}.btn-secondary{background:var(--bg-surface);color:var(--text-base);border:var(--border-subtle)}.btn-secondary:hover:not(:disabled){background:#ffffff14;color:var(--text-high)}.btn-sm{padding:var(--space-1) var(--space-3);font-size:.8rem}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes fade-in{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fade-in .3s ease-out}@keyframes spin{to{transform:rotate(360deg)}}.rotating,.rotating i{animation:spin 1s linear infinite}@media(max-width:768px){.page-container{padding:var(--space-4)}.page-header{margin-bottom:var(--space-4)}.page-title{font-size:1.25rem}h1{font-size:1.75rem}h2{font-size:1.35rem}}@media(max-width:480px){.page-container{padding:var(--space-3) var(--space-2)}.page-title{font-size:1.1rem}.page-header{gap:var(--space-2)}.btn{min-height:40px;padding:var(--space-2) var(--space-4)}h1{font-size:1.5rem}h2{font-size:1.2rem}}[data-theme=light]{--bg-app: #f1f5f9;--bg-panel: #ffffff;--bg-surface: #e2e8f0;--bg-hover: rgba(0, 0, 0, .04);--bg-card: #ffffff;--text-high: #0f172a;--text-base: #334155;--text-low: #64748b;--text-primary: #0f172a;--brand-primary: #7c3aed;--brand-hover: #6d28d9;--brand-alpha: rgba(124, 58, 237, .1);--status-success: #059669;--status-success-bg: rgba(5, 150, 105, .1);--status-danger: #dc2626;--status-danger-bg: rgba(220, 38, 38, .1);--status-warning: #d97706;--status-warning-bg: rgba(217, 119, 6, .1);--status-info: #2563eb;--status-info-bg: rgba(37, 99, 235, .1);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1);--shadow-glow: 0 4px 20px var(--brand-alpha);--border-subtle: 1px solid rgba(0, 0, 0, .08);--border-strong: 1px solid rgba(0, 0, 0, .15)}@media(prefers-color-scheme:light){[data-theme=auto]{--bg-app: #f1f5f9;--bg-panel: #ffffff;--bg-surface: #e2e8f0;--bg-hover: rgba(0, 0, 0, .04);--bg-card: #ffffff;--text-high: #0f172a;--text-base: #334155;--text-low: #64748b;--text-primary: #0f172a;--brand-primary: #7c3aed;--brand-hover: #6d28d9;--brand-alpha: rgba(124, 58, 237, .1);--status-success: #059669;--status-success-bg: rgba(5, 150, 105, .1);--status-danger: #dc2626;--status-danger-bg: rgba(220, 38, 38, .1);--status-warning: #d97706;--status-warning-bg: rgba(217, 119, 6, .1);--status-info: #2563eb;--status-info-bg: rgba(37, 99, 235, .1);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .05);--shadow-md: 0 4px 6px -1px rgba(0, 0, 0, .1);--shadow-lg: 0 10px 15px -3px rgba(0, 0, 0, .1);--shadow-glow: 0 4px 20px var(--brand-alpha);--border-subtle: 1px solid rgba(0, 0, 0, .08);--border-strong: 1px solid rgba(0, 0, 0, .15)}}[data-theme=light] ::-webkit-scrollbar-track,[data-theme=light]::-webkit-scrollbar-track{background:#f1f5f9}[data-theme=light] ::-webkit-scrollbar-thumb,[data-theme=light]::-webkit-scrollbar-thumb{background:#cbd5e1}[data-theme=light] ::-webkit-scrollbar-thumb:hover,[data-theme=light]::-webkit-scrollbar-thumb:hover{background:#94a3b8}@media(prefers-color-scheme:light){[data-theme=auto] ::-webkit-scrollbar-track{background:#f1f5f9}[data-theme=auto] ::-webkit-scrollbar-thumb{background:#cbd5e1}}.btn-danger{background:var(--status-danger);color:#fff}.btn-danger:hover:not(:disabled){background:#dc2626;box-shadow:0 4px 14px #ef44444d}.confirm-modal-overlay{position:fixed;inset:0;background:#000000a6;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:2000;display:flex;align-items:center;justify-content:center;padding:var(--space-4);animation:fadeIn .15s ease-out}.confirm-modal{background:var(--bg-panel);border:var(--border-strong);border-radius:var(--radius-xl);padding:var(--space-6);width:100%;max-width:420px;box-shadow:0 24px 64px #0006;animation:slideUp .2s cubic-bezier(.4,0,.2,1);display:flex;flex-direction:column;gap:var(--space-4)}.confirm-modal-title{font-size:1rem;font-weight:700;color:var(--text-high);margin:0}.confirm-modal-message{font-size:.875rem;color:var(--text-base);line-height:1.6;margin:0}.confirm-modal-input-group{display:flex;flex-direction:column;gap:var(--space-2)}.confirm-modal-label{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;color:var(--text-low)}.confirm-modal-input{padding:var(--space-2) var(--space-3);background:var(--bg-surface);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius-md);color:var(--text-high);font-size:.875rem;transition:var(--transition);width:100%}.confirm-modal-input:focus{outline:none;border-color:var(--brand-primary);box-shadow:0 0 0 2px var(--brand-alpha)}.confirm-modal-input::placeholder{color:var(--text-low);opacity:.6}.confirm-modal-actions{display:flex;justify-content:flex-end;gap:var(--space-3);margin-top:var(--space-2)}@media(max-width:480px){.confirm-modal{max-width:100%;border-radius:var(--radius-lg)}.confirm-modal-actions{flex-direction:column-reverse}.confirm-modal-actions .btn{width:100%;justify-content:center}}.app-loading{min-height:100vh;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-4);color:var(--text-low)}.app-loading .spinner{width:40px;height:40px;border:3px solid var(--bg-surface);border-top-color:var(--brand-primary);border-radius:var(--radius-full);animation:app-spin .8s linear infinite}.app-layout{display:flex;min-height:100vh}.app-main{flex:1;margin-left:240px;min-height:100vh;transition:margin-left .3s cubic-bezier(.4,0,.2,1)}.main-content{max-width:1400px;margin:0 auto;padding:var(--space-6)}.content-grid{display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6)}.rotating i{animation:app-spin 1s linear infinite}@keyframes app-spin{to{transform:rotate(360deg)}}@media(max-width:900px){.content-grid{grid-template-columns:1fr}}@media(max-width:768px){.app-main{margin-left:0;padding-top:var(--space-12)}.main-content{padding:var(--space-4)}}@media(max-width:600px){.main-content{padding:var(--space-3) var(--space-2)}.content-grid{gap:var(--space-4)}}
