:root{--color-primary: #1a5f4a;--color-primary-light: #2d7a62;--color-primary-dark: #0f3d30;--color-primary-muted: #3d9277;--color-bg: #0a0f0d;--color-bg-elevated: #111916;--color-bg-card: #151f1a;--color-bg-hover: #1c2922;--color-text: #e8f0ec;--color-text-muted: #8fa89c;--color-text-dim: #5a7066;--color-accent: #4ade80;--color-accent-soft: rgba(74, 222, 128, .15);--color-income: #4ade80;--color-expense: #f87171;--color-pending: #fbbf24;--color-danger: #ef4444;--color-border: #243d32;--color-border-light: #1a2e24;--shadow-sm: 0 1px 2px rgba(0, 0, 0, .3);--shadow-md: 0 4px 12px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .5);--font-sans: "DM Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;--font-mono: "JetBrains Mono", "Fira Code", monospace;--spacing-xs: .25rem;--spacing-sm: .5rem;--spacing-md: 1rem;--spacing-lg: 1.5rem;--spacing-xl: 2rem;--spacing-2xl: 3rem;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 16px;--radius-full: 9999px}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:16px;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);line-height:1.6;min-height:100vh}.app{display:flex;flex-direction:column;min-height:100vh}.nav{display:flex;align-items:center;justify-content:space-between;padding:var(--spacing-md) var(--spacing-xl);background:var(--color-bg-elevated);border-bottom:1px solid var(--color-border-light);position:sticky;top:0;z-index:100}.nav-brand{display:flex;align-items:center;gap:var(--spacing-sm)}.brand-icon{font-size:1.5rem}.brand-name{font-size:1.25rem;font-weight:600;color:var(--color-accent);letter-spacing:-.02em}.nav-links{display:flex;gap:var(--spacing-xs)}.nav-links a{padding:var(--spacing-sm) var(--spacing-md);color:var(--color-text-muted);text-decoration:none;font-weight:500;border-radius:var(--radius-md);transition:all .2s ease}.nav-links a:hover{color:var(--color-text);background:var(--color-bg-hover)}.nav-links a.active{color:var(--color-accent);background:var(--color-accent-soft)}.main{flex:1;padding:var(--spacing-xl);max-width:1200px;margin:0 auto;width:100%}.page-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-xl)}.page-header h1{font-size:1.75rem;font-weight:600;letter-spacing:-.02em}.btn-primary{display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-sm) var(--spacing-lg);background:linear-gradient(135deg,var(--color-primary-light),var(--color-primary));color:#fff;font-weight:600;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;text-decoration:none}.btn-primary:hover:not(:disabled){background:linear-gradient(135deg,var(--color-primary-muted),var(--color-primary-light));transform:translateY(-1px);box-shadow:var(--shadow-md)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-secondary{display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-sm) var(--spacing-md);background:var(--color-bg-card);color:var(--color-text);font-weight:500;border:1px solid var(--color-border);border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease;text-decoration:none}.btn-secondary:hover:not(:disabled){background:var(--color-bg-hover);border-color:var(--color-primary-muted)}.btn-secondary:disabled{opacity:.6;cursor:not-allowed}.btn-danger{display:inline-flex;align-items:center;justify-content:center;padding:var(--spacing-sm) var(--spacing-md);background:transparent;color:var(--color-danger);font-weight:500;border:1px solid var(--color-danger);border-radius:var(--radius-md);cursor:pointer;transition:all .2s ease}.btn-danger:hover:not(:disabled){background:#ef44441a}.btn-danger:disabled{opacity:.6;cursor:not-allowed}.btn-link{color:var(--color-primary-muted);text-decoration:none;font-weight:500;transition:color .2s ease}.btn-link:hover{color:var(--color-accent)}.btn-back{background:none;border:none;color:var(--color-text-muted);cursor:pointer;font-size:1rem;padding:var(--spacing-sm);margin-right:var(--spacing-md)}.btn-back:hover{color:var(--color-text)}.balance-card{display:flex;flex-direction:column;padding:var(--spacing-lg);background:linear-gradient(135deg,var(--color-primary),var(--color-primary-dark));border-radius:var(--radius-lg);box-shadow:var(--shadow-lg)}.balance-label{font-size:.875rem;color:#ffffffb3;margin-bottom:var(--spacing-xs)}.balance-amount{font-size:2rem;font-weight:700;font-family:var(--font-mono);color:#fff;letter-spacing:-.02em}.section-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--spacing-md)}.section-header h2{font-size:1.125rem;font-weight:600;color:var(--color-text-muted)}.accounts-section,.transactions-section,.settings-section{margin-bottom:var(--spacing-2xl)}.accounts-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:var(--spacing-md)}.account-card{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md);background:var(--color-bg-card);border:1px solid var(--color-border-light);border-radius:var(--radius-md);transition:all .2s ease}.account-card:hover{border-color:var(--color-border);background:var(--color-bg-hover)}.account-info{display:flex;flex-direction:column;gap:var(--spacing-xs)}.account-name{font-weight:500}.account-type{font-size:.875rem;color:var(--color-text-muted)}.account-balance{font-family:var(--font-mono);font-weight:600;color:var(--color-accent)}.transactions-list{display:flex;flex-direction:column;gap:var(--spacing-xs)}.transaction-row{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md);background:var(--color-bg-card);border:1px solid var(--color-border-light);border-radius:var(--radius-md);transition:all .2s ease}.transaction-row:hover{border-color:var(--color-border);background:var(--color-bg-hover)}.transaction-row.detailed{flex-direction:column;align-items:stretch;gap:var(--spacing-sm)}.transaction-main{display:flex;justify-content:space-between;align-items:center}.transaction-info{display:flex;flex-direction:column;gap:2px}.transaction-name{font-weight:500;display:flex;align-items:center;gap:var(--spacing-sm)}.transaction-date,.transaction-meta{font-size:.8125rem;color:var(--color-text-muted)}.transaction-amount{font-family:var(--font-mono);font-weight:600}.transaction-amount.income{color:var(--color-income)}.transaction-amount.expense{color:var(--color-expense)}.transaction-categories{display:flex;gap:var(--spacing-xs);flex-wrap:wrap}.category-tag{font-size:.75rem;padding:2px 8px;background:var(--color-accent-soft);color:var(--color-primary-muted);border-radius:var(--radius-full)}.pending-badge{font-size:.6875rem;padding:2px 6px;background:#fbbf2433;color:var(--color-pending);border-radius:var(--radius-full);text-transform:uppercase;font-weight:600}.filters{display:flex;gap:var(--spacing-md);margin-bottom:var(--spacing-lg);flex-wrap:wrap}.search-input,.filter-select{padding:var(--spacing-sm) var(--spacing-md);background:var(--color-bg-card);border:1px solid var(--color-border);border-radius:var(--radius-md);color:var(--color-text);font-family:inherit;font-size:.9375rem;transition:all .2s ease}.search-input{flex:1;min-width:200px}.search-input:focus,.filter-select:focus{outline:none;border-color:var(--color-primary-muted);box-shadow:0 0 0 3px var(--color-accent-soft)}.filter-select{cursor:pointer}.transactions-count{font-size:.875rem;color:var(--color-text-muted);margin-bottom:var(--spacing-md)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-2xl);text-align:center}.empty-state.small{padding:var(--spacing-lg)}.empty-icon{font-size:4rem;margin-bottom:var(--spacing-lg);opacity:.8}.empty-state h2{font-size:1.5rem;margin-bottom:var(--spacing-sm)}.empty-state p{color:var(--color-text-muted);margin-bottom:var(--spacing-lg);max-width:400px}.no-results,.no-transactions{text-align:center;padding:var(--spacing-xl);color:var(--color-text-muted)}.link-account{max-width:500px;margin:0 auto}.link-content{display:flex;flex-direction:column;gap:var(--spacing-xl)}.link-info{text-align:center}.link-icon{font-size:3rem;margin-bottom:var(--spacing-md)}.link-info h2{font-size:1.5rem;margin-bottom:var(--spacing-sm)}.link-info p{color:var(--color-text-muted)}.link-actions{display:flex;justify-content:center}.link-security{display:flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:var(--spacing-md);background:var(--color-bg-card);border-radius:var(--radius-md);font-size:.875rem;color:var(--color-text-muted)}.link-security a{color:var(--color-primary-muted)}.link-security a:hover{color:var(--color-accent)}.settings-section h2{font-size:1.125rem;font-weight:600;margin-bottom:var(--spacing-md);color:var(--color-text-muted)}.linked-items{display:flex;flex-direction:column;gap:var(--spacing-sm)}.linked-item{display:flex;justify-content:space-between;align-items:center;padding:var(--spacing-md);background:var(--color-bg-card);border:1px solid var(--color-border-light);border-radius:var(--radius-md)}.item-info{display:flex;flex-direction:column;gap:2px}.item-name{font-weight:500}.item-accounts{font-size:.875rem;color:var(--color-text-muted)}.add-bank{margin-top:var(--spacing-sm)}.about-info{display:flex;flex-direction:column;gap:var(--spacing-sm)}.about-row{display:flex;justify-content:space-between;padding:var(--spacing-sm) 0;border-bottom:1px solid var(--color-border-light)}.about-label{color:var(--color-text-muted)}.about-link{color:var(--color-primary-muted);text-decoration:none}.about-link:hover{color:var(--color-accent)}.privacy-text{color:var(--color-text-muted);font-size:.9375rem;line-height:1.7}.error-message{display:flex;align-items:center;gap:var(--spacing-sm);padding:var(--spacing-md);background:#ef44441a;border:1px solid rgba(239,68,68,.3);border-radius:var(--radius-md);color:var(--color-danger);margin-bottom:var(--spacing-lg)}.loading{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:var(--spacing-2xl)}.spinner{width:40px;height:40px;border:3px solid var(--color-border);border-top-color:var(--color-accent);border-radius:50%;animation:spin .8s linear infinite;margin-bottom:var(--spacing-md)}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:768px){.nav{flex-direction:column;gap:var(--spacing-md);padding:var(--spacing-md)}.nav-links{width:100%;justify-content:center}.main{padding:var(--spacing-md)}.page-header{flex-direction:column;gap:var(--spacing-md);align-items:flex-start}.filters{flex-direction:column}.search-input{width:100%}}
