.ds-btn{font:inherit;min-height:var(--ds-tap-min);min-width:var(--ds-tap-min);padding:var(--ds-space-2) var(--ds-space-3);border-radius:var(--ds-radius-control);border:1px solid transparent;font-size:var(--ds-font-size-small);font-weight:600;cursor:pointer}.ds-btn:disabled{opacity:.6;cursor:default}.ds-btn-primary{background:var(--ds-action-primary);border-color:var(--ds-action-primary);color:#fff}.ds-btn-secondary{background:transparent;border-color:var(--ds-border);color:var(--ds-text-subdued)}.ds-btn-destructive{background:var(--ds-critical);border-color:var(--ds-critical);color:#fff}.ds-btn-outline{background:transparent;border-color:var(--ds-border);color:var(--ds-text-subdued)}.ds-btn-plain{background:transparent;border-color:transparent;color:var(--ds-action-primary);min-height:0;min-width:0;padding:0}.ds-btn-full{width:100%}.ds-btn-icon{padding:0;width:var(--ds-tap-min);min-height:var(--ds-tap-min);display:inline-flex;align-items:center;justify-content:center}.ds-btn-icon svg{width:20px;height:20px}.ds-tabbar{position:fixed;bottom:0;left:0;right:0;display:flex;align-items:flex-end;justify-content:space-around;background:var(--ds-surface);border-top:1px solid var(--ds-border-subdued);padding:var(--ds-space-2) var(--ds-space-3) calc(var(--ds-space-2) + env(safe-area-inset-bottom));z-index:20}.ds-tab{flex:1;display:flex;flex-direction:column;align-items:center;gap:0;background:transparent;border:none;color:var(--ds-text-subdued);min-height:var(--ds-tap-min);padding:var(--ds-space-1) 0;cursor:pointer}.ds-tab-icon{display:flex;align-items:center;justify-content:center;padding:1px 14px;border-radius:var(--ds-radius-pill)}.ds-tab-icon svg{width:20px;height:20px}.ds-tab.active{color:var(--ds-action-primary)}.ds-tab.active .ds-tab-icon{background:#e8effc}.ds-tab-label{font-size:.72rem;font-weight:600}.ds-tab-fab{flex:0 0 56px;width:56px;height:56px;border-radius:50%;border:none;background:var(--ds-action-primary);color:#fff;display:flex;align-items:center;justify-content:center;margin-top:-28px;box-shadow:0 4px 12px #002a8d59;cursor:pointer}.ds-tab-fab svg{width:24px;height:24px}.ds-field-error{color:var(--ds-critical);font-size:var(--ds-font-size-small);margin-top:var(--ds-space-1)}.ds-field{display:flex;flex-direction:column;gap:var(--ds-space-1);font-size:var(--ds-font-size-small);color:var(--ds-text-subdued);flex:1;min-width:120px}.ds-field>input,.ds-field>select{font:inherit;font-size:var(--ds-font-size-body);min-height:48px;padding:var(--ds-space-2) var(--ds-space-3);border:1px solid var(--ds-border);border-radius:var(--ds-radius-control);background:var(--ds-surface);color:var(--ds-text);width:100%}.ds-field>select{appearance:none;-webkit-appearance:none;padding-right:2.25rem;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1.5 6 6.5 11 1.5' fill='none' stroke='%235b6b84' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right .75rem center}.ds-field>input[type=date]{padding-right:var(--ds-space-3)}.ds-field>input[type=date]::-webkit-calendar-picker-indicator{width:18px;height:18px;margin-right:.25rem;opacity:.55;cursor:pointer}.ds-empty{display:flex;flex-direction:column;gap:var(--ds-space-3);align-items:stretch}.ds-empty p{margin:0}.ds-empty-title{font-weight:600}.ds-empty-body{color:var(--ds-text-subdued);font-size:var(--ds-font-size-small)}.ds-segment{display:flex;gap:var(--ds-space-1);background:var(--ds-border-subdued);border-radius:var(--ds-radius-control);padding:var(--ds-space-1);margin-bottom:var(--ds-space-3)}.ds-segment button{flex:1;background:transparent;border-color:transparent;color:var(--ds-text-subdued);min-height:var(--ds-tap-min);font-weight:700;font-size:var(--ds-font-size-small);border-radius:8px;cursor:pointer}.ds-segment button.active{background:var(--ds-surface);border-color:var(--ds-border);color:var(--ds-action-primary);box-shadow:0 1px 2px #002a8d1f}ul.transaction-list>li.tx-row{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;grid-template-areas:"media main amount actions";column-gap:var(--ds-space-3);align-items:center;padding:var(--ds-space-3) 0}ul.transaction-list>li.tx-row.editing{grid-template-columns:auto minmax(0,1fr) auto;grid-template-areas:"media main amount" "edit edit edit";row-gap:var(--ds-space-2)}.tx-edit{grid-area:edit;display:flex;flex-direction:column;gap:var(--ds-space-2)}.tx-edit-fields{display:flex;gap:var(--ds-space-2)}.tx-edit-fields>*{flex:1;min-width:0}.tx-edit-actions{display:flex;gap:var(--ds-space-2)}.tx-edit-actions>*{flex:1}ul.transaction-list>li.tx-row>span:first-child{flex:none}ul.transaction-list>li.tx-row .ds-media{grid-area:media}.tx-tappable{cursor:pointer}.tx-row.tx-focused{background:#e8effc;border-radius:var(--ds-radius-control)}.ds-media{width:40px;height:40px;border-radius:50%;display:inline-flex;align-items:center;justify-content:center;font-weight:700;font-size:1.1rem;flex:none}.ds-media[data-tone=income]{background:#e6f4ea;color:var(--ds-success)}.ds-media[data-tone=expense]{background:#e8effc;color:var(--ds-action-primary)}.ds-media[data-tone=transfer],.ds-media[data-tone=muted]{background:var(--ds-border-subdued);color:var(--ds-text-subdued)}.ds-media svg{width:20px;height:20px}.tx-main{grid-area:main;display:flex;flex-direction:column;min-width:0}.tx-title{font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tx-sub{font-size:.8rem;color:var(--ds-text-subdued);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.tx-amount{grid-area:amount;font-variant-numeric:tabular-nums;font-weight:600;white-space:nowrap}.tx-actions{grid-area:actions;display:flex;gap:var(--ds-space-2);justify-content:flex-end;flex-wrap:wrap}:root{--ds-text: #0f1f3d;--ds-text-subdued: #5b6b84;--ds-surface: #ffffff;--ds-bg: #eef2f7;--ds-border: #d3dbe6;--ds-border-subdued: #e6ebf2;--ds-action-primary: #002a8d;--ds-action-primary-hover: #001f6b;--ds-action-secondary: #6c757d;--ds-critical: #c0392b;--ds-success: #1e8e3e;--ds-space-1: .25rem;--ds-space-2: .5rem;--ds-space-3: .75rem;--ds-space-4: 1rem;--ds-space-6: 1.5rem;--ds-radius-card: 16px;--ds-radius-control: 12px;--ds-radius-pill: 999px;--ds-font-size-body: 1rem;--ds-font-size-small: .85rem;--ds-font-size-hero: 2rem;--ds-font-size-amount: 1.75rem;--ds-tap-min: 44px;color-scheme:light;font-family:system-ui,-apple-system,sans-serif}:root{--bg: var(--ds-bg);--text: var(--ds-text);--card-bg: var(--ds-surface);--muted: var(--ds-text-subdued);--border: var(--ds-border);--border-light: var(--ds-border-subdued);--primary: var(--ds-action-primary);--primary-hover: var(--ds-action-primary-hover);--header-bg: var(--ds-action-primary);--header-text: var(--ds-surface);--error: var(--ds-critical);--positive: var(--ds-success);--shadow: 0 1px 3px rgb(0 42 141 / 10%);--over-bg: #fff5f5;--over-border: #e0a0a0}:root[data-theme=default],:root[data-theme=forest],:root[data-theme=sunset]{--primary: #002a8d;--primary-hover: #001f6b;--header-bg: #002a8d}.dark{--bg: #eef2f7;--text: #0f1f3d;--card-bg: #ffffff;--muted: #5b6b84;--border: #d3dbe6;--border-light: #e6ebf2;--shadow: 0 1px 3px rgb(0 42 141 / 10%);--over-bg: #fff5f5;--over-border: #e0a0a0;color-scheme:light}*{box-sizing:border-box}html{background:var(--bg);color:var(--text)}body{margin:0;background:var(--bg);color:var(--text)}.app-header,.bank-header{background:linear-gradient(135deg,var(--header-bg),#001f6b);color:var(--header-text);padding:1rem 1.5rem}.bank-header-top{display:flex;justify-content:space-between;align-items:center;gap:1rem;max-width:480px;margin:0 auto}.bank-greeting{font-size:.8rem;opacity:.8}.bank-email{font-weight:600;font-size:.95rem;word-break:break-all}.bank-logout{background:#fff;color:var(--primary);border-color:#fff;min-height:44px}.app-header h1,.bank-header h1{margin:0;font-size:1.25rem}main,.bank-main{max-width:480px;margin:0 auto;padding:1.5rem 1rem 5.5rem;width:100%}.dashboard{display:flex;flex-direction:column;gap:1rem}.cards{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}@media(max-width:900px){.cards{grid-template-columns:repeat(2,1fr)}}@media(max-width:640px){.cards{grid-template-columns:1fr}}.card{background:var(--card-bg);border-radius:8px;padding:1rem;box-shadow:var(--shadow);border:1px solid var(--border-light)}.stat{display:flex;flex-direction:column;gap:.25rem}.stat-label{font-size:.8rem;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.stat-value{font-size:1.4rem;font-weight:600;font-variant-numeric:tabular-nums;color:var(--text)}.negative{color:var(--error)}.positive{color:var(--positive)}.card h2{margin:0 0 .75rem;font-size:1rem;color:var(--text)}.form-row{display:flex;gap:.75rem;align-items:end;flex-wrap:wrap;margin-bottom:.75rem}.form-row label{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem;color:var(--muted);flex:1;min-width:120px}input,select,button{font:inherit;padding:.45rem .6rem;border:1px solid var(--border);border-radius:6px;background:var(--card-bg);color:var(--text)}button{background:var(--primary);border-color:var(--primary);color:#fff;cursor:pointer}button:disabled{opacity:.6;cursor:default}.error{color:var(--error);margin:.25rem 0 0}.transaction-list,.account-list{list-style:none;margin:0;padding:0}.transaction-list li{display:flex;justify-content:space-between;padding:.4rem 0;border-bottom:1px solid var(--border-light);font-variant-numeric:tabular-nums}.budget-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.75rem}.budget-list li{display:flex;flex-direction:column;gap:.25rem;padding:.5rem;border:1px solid var(--border-light);border-radius:6px;background:var(--card-bg)}.budget-list li.over-budget{border-color:var(--over-border);background:var(--over-bg)}.budget-category{font-weight:600}.budget-badge{font-size:.75rem;color:var(--error);font-weight:600;text-transform:uppercase}.budget-bar{height:8px;background:var(--border-light);border-radius:4px;overflow:hidden}.budget-bar-fill{height:100%;background:var(--primary)}.budget-bar-fill.over{background:var(--error)}.slot-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:.5rem}.slot-list li{display:flex;justify-content:space-between;align-items:center;gap:.5rem;padding:.4rem 0;border-bottom:1px solid var(--border-light);flex-wrap:wrap}.auth-page{display:flex;justify-content:center;padding:2rem 0}.auth-card{width:100%;max-width:420px;display:flex;flex-direction:column;gap:1rem}.auth-card h2{margin:0;font-size:1.15rem}.auth-subtitle{margin:0;color:var(--muted);font-size:.9rem}.auth-form{display:flex;flex-direction:column;gap:.75rem}.auth-form label{display:flex;flex-direction:column;gap:.25rem;font-size:.85rem;color:var(--muted)}.auth-switch{margin:0;text-align:center;font-size:.85rem;color:var(--muted)}.link-btn{background:none;border:none;color:var(--primary);cursor:pointer;padding:0;font:inherit;text-decoration:underline}.theme-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.75rem}.theme-card{display:flex;flex-direction:column;align-items:center;gap:.35rem;padding:.85rem .5rem;border-radius:8px;border:2px solid var(--border-light);background:var(--card-bg);cursor:pointer;text-align:center}.theme-card.active{border-width:2px;box-shadow:var(--shadow)}.theme-swatch{width:36px;height:36px;border-radius:50%;border:2px solid var(--border-light)}.theme-name{font-weight:600;font-size:.9rem;color:var(--text)}.theme-desc{font-size:.75rem;color:var(--muted)}.theme-check{font-size:.7rem;font-weight:600;color:var(--positive)}.switch{position:relative;display:inline-block;width:44px;height:24px}.switch input{opacity:0;width:0;height:0}.switch-slider{position:absolute;cursor:pointer;inset:0;background:var(--border);border-radius:999px;transition:background .2s}.switch-slider:before{content:"";position:absolute;height:18px;width:18px;left:3px;bottom:3px;background:#fff;border-radius:50%;transition:transform .2s}.switch input:checked+.switch-slider{background:var(--primary)}.switch input:checked+.switch-slider:before{transform:translate(20px)}.app-header>div:first-child{flex-wrap:wrap}.app-header>div:first-child span{word-break:break-all;min-width:0}@media(max-width:640px){.app-header{padding:.75rem 1rem}.app-header h1{font-size:1.05rem}.app-header nav{width:100%}.app-header nav button{flex:1}main{padding:1rem .75rem}.card{padding:.85rem}.form-row{flex-direction:column;align-items:stretch}.form-row label{min-width:0}.form-row input,.form-row select,.form-row button,.auth-form input,.auth-form select,.auth-form button{width:100%}.transaction-list li{flex-wrap:wrap;gap:.5rem}.transaction-list li>span:first-child{flex:1 1 100%}.transaction-list li input[style]{width:100%!important}.slot-list li{align-items:flex-start}.dashboard>div:first-child h2{font-size:1rem;text-align:center;min-width:0}.auth-page{padding:1rem 0}.auth-card{max-width:100%}.theme-grid{grid-template-columns:1fr}button{min-height:44px}}@media(max-width:480px){.stat-value{font-size:1.15rem}.budget-list li{padding:.4rem}}.card{border-radius:16px}.balance-hero{background:linear-gradient(135deg,#002a8d,#0040d0);color:#fff;border:none;padding:1.25rem 1.1rem}.balance-hero-label{font-size:.8rem;text-transform:uppercase;letter-spacing:.06em;opacity:.8}.balance-hero-value{font-size:2rem;font-weight:700;font-variant-numeric:tabular-nums;display:block;margin:.15rem 0 .6rem}.balance-hero-sub{margin:0;opacity:.85;font-size:.9rem}.account-chips{display:flex;gap:.5rem;flex-wrap:wrap}.account-chip{background:#ffffff2e;border-radius:999px;padding:.35rem .7rem;font-size:.8rem;font-variant-numeric:tabular-nums}.hero-actions{display:flex;gap:.5rem;margin-top:.9rem}.hero-actions button{flex:1;background:#fff;border-color:#fff;color:var(--primary);min-height:48px;font-weight:700;font-size:.85rem}.sheet-overlay{position:fixed;inset:0;background:#0f1f3d7f;display:flex;align-items:flex-end;justify-content:center;z-index:30}.sheet{background:var(--card-bg);border-radius:20px 20px 0 0;padding:.75rem 1rem 1.5rem;width:100%;max-width:480px;max-height:90vh;overflow-y:auto}.sheet-handle{width:40px;height:4px;border-radius:999px;background:var(--border);margin:0 auto .75rem}.sheet-close{width:100%;margin-top:.75rem;min-height:48px;background:transparent;border:1px solid var(--border);color:var(--muted);font-weight:600}.toast{position:fixed;left:50%;transform:translate(-50%);bottom:calc(84px + env(safe-area-inset-bottom));background:var(--text);color:var(--card-bg);border-radius:999px;padding:.6rem 1.1rem;font-size:.9rem;font-weight:600;box-shadow:0 4px 16px #00000040;z-index:40;max-width:calc(100vw - 2rem);text-align:center}.amount-field{flex:1.4!important}.ds-field>input.amount-input{font-size:var(--ds-font-size-amount);font-weight:700;text-align:center;font-variant-numeric:tabular-nums;min-height:56px}
