*{margin:0;padding:0;box-sizing:border-box}:root{--bg-gradient: linear-gradient(160deg, #667eea 0%, #764ba2 50%, #f093fb 100%);--glass-card-bg: rgba(255, 255, 255, .1);--glass-card-border: 1px solid rgba(255, 255, 255, .15);--glass-blur: blur(20px);--glass-hover-bg: rgba(255, 255, 255, .13);--sidebar-bg: rgba(0, 0, 0, .2);--sidebar-border: 1px solid rgba(255, 255, 255, .08);--topbar-bg: rgba(0, 0, 0, .15);--text-primary: #ffffff;--text-muted: rgba(255, 255, 255, .5);--text-positive: #86efac;--text-negative: #fca5a5;--font-family: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--sidebar-width: 260px;--card-radius: 20px;--tag-radius: 999px;--transition-fast: all .15s ease}body{font-family:var(--font-family);min-height:100vh;background:var(--bg-gradient);color:var(--text-primary);overflow-x:hidden}a{color:inherit;text-decoration:none}button{font-family:inherit}.color-picker-grid{display:grid;grid-template-columns:repeat(10,1fr);gap:6px;padding:8px;background:#ffffff0d;border-radius:12px;border:1px solid rgba(255,255,255,.1)}.color-swatch{width:28px;height:28px;border-radius:50%;cursor:pointer;border:2px solid transparent;transition:all .15s ease;display:flex;align-items:center;justify-content:center;position:relative}.color-swatch:hover{transform:scale(1.15);border-color:#ffffff80}.color-swatch.selected{border-color:#fff;box-shadow:0 0 8px #fff6;transform:scale(1.1)}.color-swatch.selected svg{width:14px;height:14px;color:#0009}.status-badge{display:inline-flex;align-items:center;gap:6px;padding:4px 12px;border-radius:999px;font-size:13px;font-weight:500}.status-badge.active{background:#22c55e26;color:#86efac;border:1px solid rgba(34,197,94,.3)}.status-badge.expired{background:#fbbf2426;color:#fbbf24;border:1px solid rgba(251,191,36,.3)}.status-badge.error{background:#ef444426;color:#fca5a5;border:1px solid rgba(239,68,68,.3)}.status-badge.revoked{background:#9ca3af26;color:#9ca3af;border:1px solid rgba(156,163,175,.3)}.status-badge.none{background:#ffffff14;color:#ffffff80;border:1px solid rgba(255,255,255,.1)}.orb{position:fixed;border-radius:50%;-webkit-backdrop-filter:blur(40px);backdrop-filter:blur(40px);pointer-events:none;z-index:-1}.orb-1{width:600px;height:600px;background:#ffffff0f;top:-200px;right:-100px;animation:float1 12s ease-in-out infinite}.orb-2{width:400px;height:400px;background:#ffffff0a;bottom:-100px;left:20%;animation:float2 14s ease-in-out infinite}@keyframes float1{0%,to{transform:translate(0)}50%{transform:translate(-40px,30px)}}@keyframes float2{0%,to{transform:translate(0)}50%{transform:translate(30px,-40px)}}.glass-card{background:var(--glass-card-bg);-webkit-backdrop-filter:var(--glass-blur);backdrop-filter:var(--glass-blur);border:var(--glass-card-border);border-radius:var(--card-radius);overflow:hidden;box-shadow:0 8px 32px #0000001a;transition:var(--transition-fast);margin-bottom:24px}.glass-card:hover{background:var(--glass-hover-bg);box-shadow:0 12px 40px #00000026}.glass-card-header{padding:18px 22px;border-bottom:1px solid rgba(255,255,255,.08);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}.glass-card-header h3{font-size:13px;font-weight:600;text-transform:uppercase;letter-spacing:.3px;opacity:.7}.glass-card-body{padding:22px}.glass-input{padding:8px 12px;background:#ffffff14;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.12);border-radius:8px;color:#fff;font-size:13px;font-family:inherit;transition:var(--transition-fast);min-width:120px}.glass-input:focus{outline:none;border-color:#ffffff59;background:#ffffff1f}.glass-input::placeholder{color:#ffffff4d}.glass-select{padding:8px 14px;background:#ffffff1a;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.15);border-radius:10px;color:#fff;font-size:13px;font-weight:500;font-family:inherit;cursor:pointer;transition:var(--transition-fast)}.glass-select:hover{background:#ffffff2e}.glass-select:focus{outline:none;border-color:#fff6}.glass-select option{background:#2d1b69;color:#fff}.glass-btn{padding:8px 16px;background:#ffffff1f;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.15);border-radius:8px;color:#fff;font-size:12px;font-weight:600;font-family:inherit;cursor:pointer;transition:var(--transition-fast)}.glass-btn:hover{background:#fff3}.glass-btn.active{background:#ffffff40;border-color:#fff6}.glass-btn.primary{background:#93c5fd40;border-color:#93c5fd59}.glass-btn.primary:hover{background:#93c5fd59}.glass-btn.danger{background:#f8717126;border-color:#f8717140}.glass-btn.danger:hover{background:#f8717140}.period-selector{display:flex;gap:4px}.period-btn{padding:5px 12px;background:#ffffff14;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#fff9;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s ease;font-family:inherit}.period-btn:hover{background:#ffffff24;color:#ffffffe6}.period-btn.active{background:#fff3;border-color:#ffffff59;color:#fff}.balance-metrics{display:flex;flex-direction:column;gap:10px;margin-top:16px}.metric-row{display:flex;justify-content:space-between;align-items:center;padding:10px 14px;background:#ffffff0f;border-radius:10px;border:1px solid rgba(255,255,255,.06)}.metric-label{font-size:12px;opacity:.6}.metric-value{font-size:13px;font-weight:600}.metric-value.positive{color:#86efac}.metric-value.negative{color:#fca5a5}.tag-chips-container{display:flex;flex-wrap:wrap;gap:8px;max-height:120px;overflow-y:auto;padding:4px 0}.tag-chips-container::-webkit-scrollbar{width:4px}.tag-chips-container::-webkit-scrollbar-thumb{background:#fff3;border-radius:2px}.tag-chip{display:inline-flex;align-items:center;gap:6px;padding:6px 14px;border-radius:999px;font-size:12px;font-weight:600;cursor:pointer;transition:all .15s ease;border:2px solid transparent;-webkit-user-select:none;user-select:none}.tag-chip:hover{transform:translateY(-1px);filter:brightness(1.1)}.tag-chip.selected{border-color:#fff;box-shadow:0 0 12px #ffffff4d;transform:scale(1.05)}.tag-chip .chip-check{font-size:10px;opacity:0;transition:opacity .15s}.tag-chip.selected .chip-check{opacity:1}.collapse-toggle{background:none;border:none;color:#ffffff80;font-size:16px;cursor:pointer;padding:4px 8px;transition:all .15s}.collapse-toggle:hover{color:#ffffffe6}.glass-card-body.collapsible{transition:max-height .3s ease,padding .3s ease,opacity .2s ease;overflow:hidden}.glass-card-body.collapsible.collapsed{max-height:0!important;padding-top:0;padding-bottom:0;opacity:0}.op-type-badge{display:inline-block;padding:3px 10px;border-radius:12px;font-size:11px;font-weight:600;white-space:nowrap}.csv-upload-zone{display:flex;flex-direction:column;gap:12px}.drop-zone{border:2px dashed rgba(255,255,255,.2);border-radius:12px;padding:40px 20px;text-align:center;transition:all .2s ease;cursor:pointer}.drop-zone:hover{border-color:#fff6;background:#ffffff0d}.drop-zone.drag-active{border-color:#93c5fd99;background:#93c5fd1a;transform:scale(1.01)}.drop-zone.uploading{opacity:.7;pointer-events:none}.upload-icon{font-size:48px;margin-bottom:12px}.drop-zone p{margin:8px 0;font-size:14px;opacity:.8}.upload-or{font-size:12px!important;opacity:.5!important;text-transform:uppercase;letter-spacing:1px}.upload-hint{font-size:11px!important;opacity:.5!important;margin-top:16px!important}.uploading-state{display:flex;flex-direction:column;align-items:center;gap:12px}.uploading-state p{font-size:14px;opacity:.8}.spinner{width:40px;height:40px;border:3px solid rgba(255,255,255,.2);border-top-color:#93c5fdcc;border-radius:50%;animation:spin .8s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.csv-error{background:#f8717126;border:1px solid rgba(248,113,113,.3);border-radius:8px;padding:10px 14px;color:#fca5a5;font-size:13px}.csv-preview{margin-top:20px;display:flex;flex-direction:column;gap:16px}.csv-summary{display:flex;gap:16px;padding:12px;background:#ffffff0d;border-radius:8px}.summary-item{display:flex;flex-direction:column;align-items:center;gap:4px;flex:1}.summary-count{font-size:24px;font-weight:700}.summary-label{font-size:11px;text-transform:uppercase;letter-spacing:.5px;opacity:.7}.summary-new .summary-count{color:#86efac}.summary-duplicate .summary-count{color:#fcd34d}.summary-error .summary-count{color:#fca5a5}.csv-preview-grid{display:flex;flex-direction:column;gap:2px;max-height:400px;overflow-y:auto;border:1px solid rgba(255,255,255,.1);border-radius:8px}.csv-preview-grid::-webkit-scrollbar{width:6px}.csv-preview-grid::-webkit-scrollbar-thumb{background:#fff3;border-radius:3px}.csv-preview-header{display:grid;grid-template-columns:60px 100px 1fr 100px 120px 120px;padding:10px 12px;background:#ffffff14;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;opacity:.7;position:sticky;top:0;z-index:1}.csv-preview-row{display:grid;grid-template-columns:60px 100px 1fr 100px 120px 120px;padding:8px 12px;font-size:13px;border-top:1px solid rgba(255,255,255,.05);align-items:center}.csv-preview-row.row-new{background:#86efac0d}.csv-preview-row.row-duplicate{background:#fcd34d0d}.csv-preview-row.row-error{background:#fca5a50d}.csv-preview-row .description{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:300px}.csv-preview-row .amount{text-align:right;font-weight:600;font-family:SF Mono,Fira Code,monospace}.csv-preview-row .amount.positive{color:#86efac}.csv-preview-row .amount.negative{color:#fca5a5}.csv-preview-row .status{font-size:12px;font-weight:500}.status-new{color:#86efac}.status-duplicate{color:#fcd34d}.status-error{color:#fca5a5}.csv-preview-actions{display:flex;justify-content:flex-end;padding-top:8px}.uncategorized-filter{display:flex;justify-content:center;margin:16px 0}.uncategorized-btn{padding:10px 20px;background:#ffffff14;border:1px solid rgba(255,255,255,.15);border-radius:10px;color:#fff;font-size:13px;font-weight:600;cursor:pointer;transition:all .2s ease;font-family:inherit}.uncategorized-btn:hover{background:#ffffff26;border-color:#ffffff4d}.uncategorized-btn.active{background:#fcd34d33;border-color:#fcd34d66;color:#fcd34d}.rule-editor{display:flex;flex-direction:column;gap:16px}.rule-editor-header{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:12px}.rule-editor-empty{display:flex;flex-direction:column;align-items:center;gap:12px;padding:40px 20px;text-align:center}.rule-editor-empty p{font-size:14px;opacity:.8}.rule-editor-empty .hint{font-size:12px!important;opacity:.5!important;max-width:400px}.rules-table{display:flex;flex-direction:column;gap:2px;border:1px solid rgba(255,255,255,.1);border-radius:8px;overflow:hidden}.rules-table-header{display:grid;grid-template-columns:100px 1fr 150px 100px 80px;padding:10px 12px;background:#ffffff14;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;opacity:.7}.rules-table-row{display:grid;grid-template-columns:100px 1fr 150px 100px 80px;padding:10px 12px;font-size:13px;border-top:1px solid rgba(255,255,255,.05);align-items:center;gap:8px}.rules-table-row .prefix{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-weight:500}.rules-table-row .count{text-align:center;font-weight:600;opacity:.8}.rules-table-row .actions{display:flex;justify-content:center}.tag-display{display:flex;align-items:center;gap:8px;cursor:pointer;padding:4px 8px;border-radius:6px;transition:background .15s}.tag-display:hover{background:#ffffff1a}.tag-display .edit-icon{font-size:10px;opacity:.5}.tag-select-dropdown{position:absolute;background:#1e143cfa;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border:1px solid rgba(255,255,255,.2);border-radius:8px;padding:8px;z-index:100;max-height:200px;overflow-y:auto;box-shadow:0 8px 32px #0006}.tag-option{padding:6px 10px;border-radius:4px;cursor:pointer;transition:background .15s}.tag-option:hover{background:#ffffff1a}.icon-btn{background:none;border:none;cursor:pointer;font-size:16px;padding:4px 8px;border-radius:4px;transition:background .15s}.icon-btn:hover{background:#ffffff1a}.icon-btn.delete:hover{background:#f8717133}.tag-badge{display:inline-flex;align-items:center;padding:4px 12px;border-radius:999px;font-size:12px;font-weight:600;color:#fff;border:1px solid;transition:all .15s ease}.tag-alimentation{background:#fdba748c;border-color:#fdba74a6}.tag-travail{background:#a5b4fc8c;border-color:#a5b4fca6}.tag-loisirs{background:#c4b5fd8c;border-color:#c4b5fda6}.tag-logement{background:#67e8f98c;border-color:#67e8f9a6}.tag-sante{background:#6ee7b78c;border-color:#6ee7b7a6}.tag-transport{background:#fda4af8c;border-color:#fda4afa6}.tag-factures{background:#a78bfa8c;border-color:#a78bfaa6}.tag-shopping{background:#f9a8d48c;border-color:#f9a8d4a6}.tag-epargne{background:#5eead48c;border-color:#5eead4a6}.tag-autre{background:#94a3b88c;border-color:#94a3b8a6}.app-layout{display:flex;min-height:100vh;position:relative;z-index:1}.sidebar-overlay{display:none;position:fixed;top:0;left:0;right:0;bottom:0;background:#00000080;z-index:99}.sidebar-overlay.visible{display:block}.sidebar{width:260px;background:var(--sidebar-bg);-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-right:var(--sidebar-border);display:flex;flex-direction:column;position:fixed;top:0;left:0;bottom:0;z-index:100;transition:transform .3s ease}.sidebar-brand{padding:24px 20px;border-bottom:var(--sidebar-border);display:flex;align-items:center;gap:12px}.sidebar-brand span{font-size:24px}.sidebar-brand h2{font-size:18px;font-weight:700;letter-spacing:-.5px}.sidebar-version{font-size:11px;color:#fff6;font-weight:400;margin-left:auto;letter-spacing:.2px}.sidebar-nav{flex:1;padding:12px 0;overflow-y:auto}.nav-item{display:flex;align-items:center;gap:12px;padding:12px 20px;color:#ffffff80;font-size:14px;font-weight:500;cursor:pointer;transition:var(--transition-fast);text-decoration:none;border-left:3px solid transparent}.nav-item:hover{color:#ffffffe6;background:#ffffff0d}.nav-item.active{color:#fff;background:#ffffff1a;border-left-color:#fffc}.nav-item .icon{font-size:18px;width:24px;text-align:center}.sidebar-footer{padding:16px 20px;border-top:var(--sidebar-border);display:flex;align-items:center;gap:10px}.avatar{width:36px;height:36px;border-radius:50%;background:#ffffff26;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid rgba(255,255,255,.2);display:flex;align-items:center;justify-content:center;font-size:14px;font-weight:600}.user-info{flex:1}.user-name{font-size:13px;font-weight:600}.user-email{font-size:11px;opacity:.5}.user-row{display:flex;align-items:center;gap:10px;flex:1}.btn-logout{display:flex;align-items:center;justify-content:center;padding:8px;background:transparent;border:none;border-radius:6px;color:#fff6;cursor:pointer;transition:all .15s ease;flex-shrink:0}.btn-logout:hover{background:#fca5a526;color:#fca5a5}.btn-logout svg{width:18px;height:18px;flex-shrink:0}.main{flex:1;margin-left:260px;display:flex;flex-direction:column;min-height:100vh;min-width:0}.topbar{background:var(--topbar-bg);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);padding:16px 32px;display:flex;align-items:center;justify-content:space-between;border-bottom:var(--sidebar-border);position:sticky;top:0;z-index:50}.topbar h1{font-size:22px;font-weight:700;letter-spacing:-.5px}.btn-hamburger{display:none;background:none;border:none;font-size:24px;cursor:pointer;color:#fff9}.content{padding:28px 32px;flex:1}.page-loading{display:flex;align-items:center;justify-content:center;height:60vh;font-size:16px;opacity:.7}.dashboard-grid{display:grid;grid-template-columns:1fr 2fr;gap:24px;margin-bottom:24px}.balance-hero .glass-card-body{text-align:center;padding:32px}.balance-amount{font-size:42px;font-weight:800;margin:12px 0;letter-spacing:-1px}.balance-meta{font-size:12px;opacity:.5}.tx-list{display:flex;flex-direction:column}.tx-item{display:flex;align-items:center;gap:16px;padding:12px 0;border-bottom:1px solid rgba(255,255,255,.04);transition:var(--transition-fast)}.tx-item:last-child{border-bottom:none}.tx-item:hover{background:#ffffff05}.tx-date{font-size:13px;opacity:.5;min-width:60px}.tx-desc{flex:1;font-size:14px;font-weight:500}.tx-amount{font-size:15px;font-weight:700;white-space:nowrap}.tx-amount.positive{color:var(--text-positive)}.tx-amount.negative{color:var(--text-negative)}.tx-tag-edit{background:none;border:none;cursor:pointer;font-size:14px;opacity:.4;transition:var(--transition-fast);padding:4px}.tx-tag-edit:hover{opacity:1}.tx-table{width:100%;border-collapse:collapse}.tx-table th{text-align:left;padding:12px 16px;font-size:11px;text-transform:uppercase;letter-spacing:.5px;opacity:.5;font-weight:600;border-bottom:1px solid rgba(255,255,255,.08)}.tx-table td{padding:14px 16px;font-size:14px;border-bottom:1px solid rgba(255,255,255,.04);vertical-align:middle}.tx-table tbody tr{transition:var(--transition-fast)}.tx-table tbody tr:hover{background:#ffffff0a}.tx-table .date{opacity:.5;font-size:13px;white-space:nowrap}.tx-table .desc{font-weight:500}.tx-table .amount{font-weight:700;text-align:right;white-space:nowrap}.tx-table .amount.positive{color:var(--text-positive)}.tx-table .amount.negative{color:var(--text-negative)}.filters{display:flex;flex-wrap:wrap;gap:12px;padding:18px 22px;border-bottom:1px solid rgba(255,255,255,.08);background:#00000014}.filter-group{display:flex;flex-direction:column;gap:4px}.filter-label{font-size:10px;text-transform:uppercase;letter-spacing:.5px;opacity:.5;font-weight:600}.filter-actions{display:flex;gap:8px;align-items:flex-end}.pagination{display:flex;align-items:center;justify-content:space-between;padding:16px 22px;border-top:1px solid rgba(255,255,255,.08)}.pagination-info{font-size:13px;opacity:.5}.pagination-controls{display:flex;align-items:center;gap:8px}.page-btn{width:36px;height:36px;display:flex;align-items:center;justify-content:center;background:#ffffff14;border:1px solid rgba(255,255,255,.1);border-radius:8px;color:#fff;font-size:13px;font-weight:500;cursor:pointer;transition:var(--transition-fast);font-family:inherit}.page-btn:hover{background:#ffffff26}.page-btn.active{background:#fff3;border-color:#ffffff4d;font-weight:700}.page-btn:disabled{opacity:.3;cursor:not-allowed}.controls{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.expenses-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}.top-ops{display:flex;flex-direction:column;gap:10px}.top-op{display:flex;align-items:center;gap:14px;padding:12px 16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.06);border-radius:12px;transition:var(--transition-fast)}.top-op:hover{background:#ffffff14}.top-op-rank{width:28px;height:28px;border-radius:8px;background:#ffffff1a;display:flex;align-items:center;justify-content:center;font-size:12px;font-weight:700}.top-op-desc{flex:1;font-size:14px;font-weight:500}.top-op-amount{font-size:15px;font-weight:700;color:var(--text-negative);white-space:nowrap}.forecast-grid{display:grid;grid-template-columns:1fr 340px;gap:24px}.slider-section{margin-bottom:20px}.slider-section-title{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;opacity:.5;margin-bottom:14px}.slider-row{display:flex;align-items:center;gap:14px;padding:12px 16px;background:#ffffff0a;border:1px solid rgba(255,255,255,.06);border-radius:12px;margin-bottom:10px;transition:var(--transition-fast)}.slider-row:hover{background:#ffffff12}.slider{flex:1;-webkit-appearance:none;-moz-appearance:none;appearance:none;height:6px;border-radius:3px;background:#ffffff26;outline:none}.slider::-webkit-slider-thumb{-webkit-appearance:none;width:20px;height:20px;border-radius:50%;background:#fff;cursor:pointer;box-shadow:0 2px 8px #0000004d}.slider::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:#fff;cursor:pointer;border:none;box-shadow:0 2px 8px #0000004d}.slider-value{min-width:100px;text-align:right;font-size:15px;font-weight:700}.slider-value.positive{color:var(--text-positive)}.slider-value.negative{color:var(--text-negative)}.scenario-list{display:flex;flex-direction:column;gap:8px}.scenario-item{display:flex;align-items:center;gap:12px;padding:12px 16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.08);border-radius:12px;transition:var(--transition-fast)}.scenario-item:hover{background:#ffffff14}.scenario-icon{font-size:18px}.scenario-name{flex:1;font-size:14px;font-weight:500}.scenario-actions{display:flex;gap:6px}.scenario-btn{padding:5px 12px;background:#ffffff1a;border:1px solid rgba(255,255,255,.12);border-radius:6px;color:#fff;font-size:11px;font-weight:600;cursor:pointer;transition:var(--transition-fast);font-family:inherit}.scenario-btn:hover{background:#ffffff2e}.scenario-btn.danger:hover{background:#f8717133;border-color:#f871714d;color:#fca5a5}.tag-list{display:flex;flex-direction:column;gap:10px}.tag-item{display:flex;align-items:center;gap:14px;padding:12px 16px;background:#ffffff0d;border:1px solid rgba(255,255,255,.06);border-radius:12px}.tag-count{font-size:12px;opacity:.5}.tag-actions{display:flex;gap:8px;margin-left:auto}.bank-list{display:flex;flex-direction:column;gap:10px}.bank-item{display:flex;align-items:center;gap:14px;padding:16px 20px;background:#ffffff0d;border:1px solid rgba(255,255,255,.08);border-radius:12px;transition:var(--transition-fast)}.bank-item:hover{background:#ffffff14}.bank-logo{font-size:28px}.bank-name{flex:1;font-size:15px;font-weight:500}.bank-alert{display:flex;align-items:center;gap:16px;padding:16px 24px;margin-bottom:24px;background:#fbbf2426;border:1px solid rgba(251,191,36,.3);border-radius:12px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);font-size:14px}.popup-overlay{position:fixed;top:0;left:0;right:0;bottom:0;background:#0006;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:1000;display:flex;align-items:center;justify-content:center}.popup{background:#1e143cf2;-webkit-backdrop-filter:blur(30px);backdrop-filter:blur(30px);border:1px solid rgba(255,255,255,.15);border-radius:20px;padding:28px;width:380px;max-width:90vw;box-shadow:0 20px 60px #0000004d}.popup h3{font-size:18px;font-weight:700;margin-bottom:16px}.popup-tags{display:flex;flex-direction:column;gap:6px;max-height:300px;overflow-y:auto;margin-bottom:16px}.popup-tag{display:flex;align-items:center;gap:10px;padding:10px 14px;background:#ffffff0f;border:1px solid rgba(255,255,255,.08);border-radius:10px;cursor:pointer;transition:var(--transition-fast);font-size:14px}.popup-tag:hover{background:#ffffff1f}.popup-actions{display:flex;gap:8px;justify-content:flex-end}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;opacity:.5;gap:12px}.empty-state p{font-size:14px}.login-page{min-height:100vh;display:flex;align-items:center;justify-content:center;background:var(--bg-gradient);position:relative}.login-container{display:grid;grid-template-columns:1fr 1fr;max-width:900px;width:90%;gap:0;border-radius:24px;overflow:hidden;box-shadow:0 20px 60px #0000004d;position:relative;z-index:1}.login-branding{background:#0000004d;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);padding:60px 40px;display:flex;align-items:center}.branding-content{display:flex;flex-direction:column;gap:16px}.branding-icon{font-size:48px}.branding-content h1{font-size:32px;font-weight:800;letter-spacing:-1px}.brand-version{font-size:11px;color:#ffffffb3;font-weight:500;letter-spacing:.3px;padding:1px 8px;background:#ffffff1a;border-radius:999px;border:1px solid rgba(255,255,255,.15);display:inline-block;align-self:flex-start}.branding-content p{font-size:15px;opacity:.7;line-height:1.6}.login-form-container{background:#ffffff14;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);padding:60px 40px;display:flex;align-items:center}.login-form-card{width:100%;margin:0;box-shadow:none;border:none;background:transparent;-webkit-backdrop-filter:none;backdrop-filter:none}.login-form-card:hover{background:transparent;box-shadow:none}.login-form-header{margin-bottom:32px}.login-form-header h2{font-size:24px;font-weight:700;margin-bottom:8px}.login-form-header p{font-size:14px;opacity:.5}.login-form{display:flex;flex-direction:column;gap:20px}.form-group{display:flex;flex-direction:column;gap:6px}.form-group label{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.5px;opacity:.6}.form-group .glass-input{width:100%;padding:12px 16px;font-size:15px}.login-error{padding:12px 16px;background:#f8717126;border:1px solid rgba(248,113,113,.3);border-radius:8px;font-size:13px;color:#fca5a5}.login-submit{width:100%;padding:14px;font-size:15px;font-weight:600;border-radius:12px}.login-submit:disabled{opacity:.5;cursor:not-allowed}@media (max-width: 1024px){.sidebar{transform:translate(-100%)}.sidebar.open{transform:translate(0)}.main{margin-left:0}.btn-hamburger{display:block}.content{padding:20px 16px}.topbar{padding:14px 16px}.dashboard-grid,.expenses-grid,.forecast-grid,.login-container{grid-template-columns:1fr}.login-branding{display:none}}
