.login-wrapper{min-height:100vh;display:flex}.login-left{color:#fff;background:linear-gradient(135deg,#052e16 0%,#166534 50%,#15803d 100%);flex:1;justify-content:center;align-items:center;padding:60px;display:flex}.login-brand{max-width:440px}.brand-logo{align-items:center;gap:12px;margin-bottom:40px;display:flex}.brand-logo span{letter-spacing:-.5px;font-size:1.5rem;font-weight:700}.login-brand h1{letter-spacing:-.5px;margin-bottom:16px;font-size:2rem;font-weight:700;line-height:1.3}.login-brand p{opacity:.85;margin-bottom:40px;font-size:1rem;line-height:1.7}.feature-list{flex-direction:column;gap:16px;display:flex}.feature-item{opacity:.9;align-items:center;gap:12px;font-size:.95rem;display:flex}.feature-icon{font-size:1.2rem}.login-right{background:var(--bg);justify-content:center;align-items:center;width:480px;padding:40px;display:flex}.login-card{width:100%;max-width:380px}.login-header{margin-bottom:32px}.login-header h2{color:var(--text);letter-spacing:-.5px;margin-bottom:8px;font-size:1.75rem;font-weight:700}.login-header p{color:var(--text-muted);font-size:.95rem}.error-banner{color:var(--error);background:#fef2f2;border:1px solid #fecaca;border-radius:8px;align-items:center;gap:8px;margin-bottom:24px;padding:12px 16px;font-size:.9rem;display:flex}.login-form{flex-direction:column;gap:20px;display:flex}.form-group input{border:1.5px solid var(--border);color:var(--text);background:var(--surface);border-radius:8px;outline:none;padding:12px 16px;font-size:.95rem;transition:border-color .2s,box-shadow .2s}.form-group input:focus{border-color:var(--primary);box-shadow:0 0 0 3px #2563eb1a}.login-btn{background:var(--primary);color:#fff;cursor:pointer;border:none;border-radius:8px;justify-content:center;align-items:center;min-height:48px;margin-top:4px;padding:13px;font-size:1rem;font-weight:600;transition:background .2s,transform .1s;display:flex}.login-btn:hover:not(:disabled){background:var(--primary-dark);transform:translateY(-1px)}.login-btn:disabled{opacity:.7;cursor:not-allowed}.spinner{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:20px;height:20px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.login-footer{text-align:center;color:var(--text-muted);margin-top:24px;font-size:.85rem}@media (width<=768px){.login-wrapper{flex-direction:column}.login-left{display:none}.login-right{width:100%;min-height:100vh}}.brand-name{letter-spacing:2px;color:#fff;font-size:1.4rem;font-weight:800}.brand-sub{opacity:.7;letter-spacing:.5px;margin-top:2px;font-size:.7rem}.branches-title{letter-spacing:2px;text-transform:uppercase;opacity:.5;margin-top:36px;margin-bottom:12px;font-size:.7rem}.branches-list{margin-top:32px}.branch-item{border-bottom:1px solid #ffffff14;align-items:center;gap:10px;padding:8px 0;font-size:.875rem;display:flex}.branch-item span{flex:1;font-weight:600}.branch-item small{opacity:.6;font-size:.75rem}.login-dept-badge{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:20px;margin-bottom:16px;padding:4px 12px;font-size:.75rem;font-weight:600;display:inline-block}.password-wrapper{align-items:center;display:flex;position:relative}.password-wrapper input{width:100%;padding-right:44px}.password-toggle{cursor:pointer;color:#6b7280;background:0 0;border:none;align-items:center;padding:0;display:flex;position:absolute;right:12px}.password-toggle:hover{color:#166534}.sidebar{color:#fff;z-index:100;background:#0f172a;flex-direction:column;width:240px;min-height:100vh;display:flex;position:fixed;top:0;bottom:0;left:0;overflow-y:auto}.sidebar-brand{border-bottom:1px solid #ffffff14;align-items:center;gap:10px;padding:20px 16px;display:flex}.sidebar-nav{flex-direction:column;gap:4px;padding:8px 12px;display:flex}.nav-item{color:#ffffffa6;cursor:pointer;border-radius:8px;align-items:center;gap:10px;padding:10px 12px;font-size:.9rem;font-weight:500;transition:all .15s;display:flex}.nav-item:hover{color:#fff;background:#ffffff14}.nav-item.active{color:#fff;background:#166534}.nav-icon{font-size:1rem}.sidebar-section-label{letter-spacing:1.5px;color:#ffffff4d;text-transform:uppercase;padding:16px 20px 6px;font-size:.62rem;font-weight:600}.branches-nav{flex-direction:column;gap:2px;padding:4px 12px 8px;display:flex}.branch-tag{color:#ffffff73;cursor:default;border-radius:6px;align-items:center;gap:8px;padding:7px 12px;font-size:.8rem;transition:all .15s;display:flex}.active-branch{background:#16653459;font-weight:600;color:#86efac!important}.sidebar-footer{border-top:1px solid #ffffff14;flex-direction:column;gap:12px;margin-top:auto;padding:16px 12px;display:flex}.user-info{align-items:center;gap:10px;display:flex}.user-avatar{text-transform:uppercase;background:#166534;border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;font-size:.9rem;font-weight:700;display:flex}.user-details{flex-direction:column;display:flex;overflow:hidden}.user-name{color:#fff;white-space:nowrap;text-overflow:ellipsis;font-size:.85rem;font-weight:600;overflow:hidden}.user-role{color:#ffffff80;text-transform:capitalize;font-size:.75rem}.logout-btn{color:#ffffffb3;cursor:pointer;text-align:left;background:#ffffff0f;border:none;border-radius:8px;width:100%;padding:8px;font-size:.85rem;transition:all .15s}.logout-btn:hover{color:#fca5a5;background:#dc262633}.layout{min-height:100vh;display:flex}.main-content{background:var(--bg);flex:1;min-height:100vh;margin-left:240px;overflow-y:auto}.dashboard{max-width:1200px;padding:32px}.dashboard-header{justify-content:space-between;align-items:flex-start;margin-bottom:28px;display:flex}.dashboard-header h1{color:var(--text);letter-spacing:-.3px;margin-bottom:4px;font-size:1.5rem;font-weight:700}.dashboard-header p{color:var(--text-muted);font-size:.875rem}.role-badge{color:#166534;text-transform:capitalize;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:20px;padding:6px 14px;font-size:.78rem;font-weight:600}.kpi-grid{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:24px;display:grid}.kpi-card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--border);align-items:center;gap:16px;padding:20px;transition:transform .2s;display:flex}.kpi-card:hover{transform:translateY(-2px)}.kpi-icon{background:var(--kpi-bg);border-radius:10px;flex-shrink:0;justify-content:center;align-items:center;width:46px;height:46px;font-size:1.3rem;display:flex}.kpi-info{flex-direction:column;gap:3px;min-width:0;display:flex}.kpi-label{color:var(--text-muted);font-size:.75rem;font-weight:500}.kpi-value{color:var(--kpi-color);white-space:nowrap;text-overflow:ellipsis;font-size:1.25rem;font-weight:700;overflow:hidden}.dashboard-grid{grid-template-columns:1.6fr 1fr;gap:20px;margin-bottom:24px;display:grid}.chart-card,.recent-card{background:var(--surface);border-radius:var(--radius);box-shadow:var(--shadow);border:1px solid var(--border);padding:24px}.chart-card h3,.recent-card h3{color:var(--text);margin-bottom:20px;font-size:.95rem;font-weight:600}.tx-list{flex-direction:column;display:flex}.tx-item{border-bottom:1px solid var(--border);align-items:center;gap:12px;padding:10px 0;display:flex}.tx-item:last-child{border-bottom:none}.tx-icon-wrap{border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:.85rem;font-weight:700;display:flex}.tx-icon-wrap.income{color:#166534;background:#f0fdf4}.tx-icon-wrap.expense{color:#dc2626;background:#fef2f2}.tx-info{flex-direction:column;flex:1;min-width:0;display:flex}.tx-title{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:.85rem;font-weight:500;overflow:hidden}.tx-date{color:var(--text-muted);margin-top:2px;font-size:.72rem}.tx-amount{flex-shrink:0;font-size:.875rem;font-weight:600}.tx-amount.income{color:#166534}.tx-amount.expense{color:#dc2626}.loading-list{flex-direction:column;gap:16px;padding-top:8px;display:flex}.skeleton-row{align-items:center;gap:12px;display:flex}.skeleton-circle{background:#f1f5f9;border-radius:50%;flex-shrink:0;width:32px;height:32px;animation:1.5s infinite shimmer}.skeleton-lines{flex-direction:column;flex:1;gap:6px;display:flex}.skeleton-line{background:#f1f5f9;border-radius:4px;height:10px;animation:1.5s infinite shimmer}.skeleton-line.short{width:60%}@keyframes shimmer{0%,to{opacity:1}50%{opacity:.4}}.empty-state.flat{padding:24px 16px}.empty-icon{margin-bottom:8px;font-size:2rem}.empty-state p{color:var(--text);margin-bottom:4px;font-size:.9rem;font-weight:500}.empty-state span{color:var(--text-muted);font-size:.8rem}.accounts-section{margin-bottom:24px}.section-header{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.section-header h3{color:var(--text);font-size:.95rem;font-weight:600}.account-count{color:var(--text-muted);background:var(--border);border-radius:20px;padding:2px 10px;font-size:.78rem}.accounts-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:16px;display:grid}.account-card{color:#fff;border-radius:var(--radius);box-shadow:var(--shadow);background:linear-gradient(135deg,#052e16,#166534);padding:22px;transition:transform .2s}.account-card:hover{transform:translateY(-2px)}.account-header{justify-content:space-between;align-items:flex-start;margin-bottom:16px;display:flex}.account-bank{font-size:.875rem;font-weight:600}.account-type-badge{text-transform:capitalize;background:#ffffff26;border-radius:20px;padding:2px 10px;font-size:.7rem}.account-balance{letter-spacing:-.5px;margin-bottom:6px;font-size:1.6rem;font-weight:700}.account-name{opacity:.7;margin-bottom:10px;font-size:.8rem}.account-status{font-size:.72rem}.account-status.active{color:#86efac}.account-status.inactive{color:#fff6}.branch-summary h3{color:var(--text);margin-bottom:16px;font-size:.95rem;font-weight:600}.branch-cards{grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:12px;display:grid}.branch-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;align-items:center;gap:10px;padding:14px 16px;display:flex;position:relative}.branch-active{background:#f0fdf4;border-color:#bbf7d0}.branch-icon{flex-shrink:0;font-size:1.3rem}.branch-name{color:var(--text);font-size:.85rem;font-weight:600}.branch-desc{color:var(--text-muted);margin-top:2px;font-size:.72rem}.branch-you{color:#166534;background:#dcfce7;border-radius:20px;padding:1px 8px;font-size:.65rem;font-weight:600;position:absolute;top:8px;right:10px}@media (width<=1024px){.kpi-grid{grid-template-columns:repeat(2,1fr)}.dashboard-grid{grid-template-columns:1fr}}@media (width<=600px){.dashboard{padding:16px}.kpi-grid{grid-template-columns:repeat(2,1fr);gap:10px}}.tx-page{max-width:1200px;padding:32px}.tx-header{justify-content:space-between;align-items:flex-start;margin-bottom:24px;display:flex}.tx-header h1{color:var(--text);margin-bottom:4px;font-size:1.5rem;font-weight:700}.tx-header p{color:var(--text-muted);font-size:.85rem}.btn-add:hover{background:#14532d;transform:translateY(-1px)}.tx-summary{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);align-items:center;gap:0;margin-bottom:20px;padding:18px 24px;display:flex}.summary-item{flex-direction:column;flex:1;gap:4px;display:flex}.summary-item span{color:var(--text-muted);font-size:.75rem;font-weight:500}.summary-item strong{color:var(--text);font-size:1.15rem;font-weight:700}.summary-item.income strong{color:#166534}.summary-item.expense strong{color:#dc2626}.summary-divider{background:var(--border);flex-shrink:0;width:1px;height:36px;margin:0 24px}.tx-filters{flex-wrap:wrap;align-items:center;gap:12px;margin-bottom:16px;display:flex}.search-input{border:1.5px solid var(--border);background:var(--surface);border-radius:8px;outline:none;flex:1;min-width:200px;padding:9px 14px;font-size:.875rem;transition:border-color .2s}.search-input:focus{border-color:#166534}.filter-tabs{gap:4px;display:flex}.filter-tab{border:1.5px solid var(--border);background:var(--surface);color:var(--text-muted);cursor:pointer;border-radius:6px;padding:8px 14px;font-size:.8rem;font-weight:500;transition:all .15s}.filter-tab:hover{color:#166534;border-color:#166534}.filter-tab.active{color:#fff;background:#166534;border-color:#166534}.status-filter{border:1.5px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;border-radius:8px;outline:none;padding:8px 12px;font-size:.875rem}.tx-table-wrap{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden}.tx-table{border-collapse:collapse;width:100%}.tx-table thead{background:#f8fafc}.tx-table th{text-align:left;color:var(--text-muted);text-transform:uppercase;letter-spacing:.5px;border-bottom:1px solid var(--border);padding:12px 16px;font-size:.75rem;font-weight:600}.tx-table td{border-bottom:1px solid var(--border);vertical-align:middle;padding:14px 16px}.tx-table tr:last-child td{border-bottom:none}.tx-table tbody tr:hover{background:#fafaf7}.tx-note{color:var(--text-muted);margin-top:2px;font-size:.72rem}.tx-category{color:var(--text-muted);font-size:.85rem}.tx-date-cell{color:var(--text-muted);white-space:nowrap;font-size:.82rem}.tx-amount-cell{white-space:nowrap;font-size:.9rem;font-weight:600}.tx-amount-cell.income{color:#166534}.tx-amount-cell.expense{color:#dc2626}.tx-amount-cell.transfer{color:#d97706}.status-badge{text-transform:capitalize;border-radius:20px;padding:3px 10px;font-size:.72rem;font-weight:600}.status-badge.pending{color:#d97706;background:#fffbeb}.status-badge.approved{color:#166534;background:#f0fdf4}.status-badge.rejected{color:#dc2626;background:#fef2f2}.action-btns{align-items:center;gap:6px;display:flex}.btn-approve{color:#166534;cursor:pointer;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:6px;width:28px;height:28px;font-size:.85rem;font-weight:700;transition:all .15s}.btn-approve:hover{color:#fff;background:#166534}.btn-reject{color:#dc2626;cursor:pointer;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;width:28px;height:28px;font-size:.85rem;font-weight:700;transition:all .15s}.btn-reject:hover{color:#fff;background:#dc2626}.btn-delete{color:#94a3b8;border:1px solid var(--border);cursor:pointer;background:#f8fafc;border-radius:6px;width:28px;height:28px;font-size:.8rem;transition:all .15s}.btn-delete:hover{color:#dc2626;background:#fef2f2;border-color:#fecaca}.tx-empty{text-align:center;color:var(--text-muted);padding:60px 20px}.tx-empty-icon{margin-bottom:12px;font-size:2.5rem}.tx-empty p{color:var(--text);margin-bottom:6px;font-size:.95rem;font-weight:500}.tx-empty span{font-size:.82rem}.loading-rows{flex-direction:column;gap:16px;padding:16px;display:flex}.skeleton-tx-row{align-items:center;gap:16px;display:flex}.sk{background:#f1f5f9;border-radius:4px;animation:1.5s infinite shimmer}.sk-icon{border-radius:50%;flex-shrink:0;width:32px;height:32px}.sk-text{flex:1;height:12px}.sk-text.short{flex:.5}.sk-text.shorter{flex:.3}.modal-header h2{color:var(--text);font-size:1.2rem;font-weight:700}.modal-close{background:var(--bg);border:1px solid var(--border);cursor:pointer;width:32px;height:32px;color:var(--text-muted);border-radius:6px;font-size:.85rem;transition:all .15s}.modal-close:hover{color:#dc2626;background:#fef2f2}.tx-form{flex-direction:column;gap:16px;display:flex}.form-group input,.form-group select,.form-group textarea{border:1.5px solid var(--border);color:var(--text);background:var(--surface);border-radius:8px;outline:none;padding:10px 12px;font-family:inherit;font-size:.875rem;transition:border-color .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#166534}.pending-notice{color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:8px;padding:10px 14px;font-size:.82rem}.modal-actions{justify-content:flex-end;gap:10px;margin-top:8px;display:flex}.btn-cancel{background:var(--bg);border:1.5px solid var(--border);cursor:pointer;color:var(--text-muted);border-radius:8px;padding:10px 20px;font-size:.875rem;transition:all .15s}.btn-cancel:hover{color:var(--text);border-color:#94a3b8}.btn-save{color:#fff;cursor:pointer;background:#166534;border:none;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-width:140px;padding:10px 24px;font-size:.875rem;font-weight:600;transition:background .15s;display:flex}.btn-danger{color:#fff;cursor:pointer;background:#dc2626;border:none;border-radius:8px;padding:10px 20px;font-size:.875rem;font-weight:600;transition:background .15s}.confirm-modal h3{margin-bottom:8px;font-size:1.1rem;font-weight:700}.confirm-modal p{color:var(--text-muted);margin-bottom:24px;font-size:.875rem}.spinner-sm{border:2px solid #ffffff4d;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.7s linear infinite spin}@media (width<=768px){.tx-page{padding:16px}.form-row{grid-template-columns:1fr}.tx-filters{flex-direction:column;align-items:stretch}.filter-tabs{flex-wrap:wrap}.tx-summary{flex-wrap:wrap;gap:16px}.summary-divider{display:none}}.acc-page{max-width:1200px;margin:0 auto;padding:2rem}.acc-header{justify-content:space-between;align-items:flex-start;margin-bottom:2rem;display:flex}.acc-header h1{color:#111827;margin:0 0 .25rem;font-size:1.8rem;font-weight:700}.acc-header p{color:#6b7280;margin:0;font-size:.9rem}.btn-add{color:#fff;cursor:pointer;background:#16a34a;border:none;border-radius:8px;padding:.6rem 1.2rem;font-size:.9rem;font-weight:600;transition:background .2s}.btn-add:hover{background:#15803d}.alert-error{color:#dc2626;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;margin-bottom:1rem;padding:.75rem 1rem;font-size:.9rem}.balance-hero{color:#fff;text-align:center;background:linear-gradient(135deg,#166534 0%,#16a34a 100%);border-radius:16px;margin-bottom:2rem;padding:2rem}.balance-hero-inner{flex-direction:column;align-items:center;gap:.5rem;display:flex}.balance-label{opacity:.85;text-transform:uppercase;letter-spacing:.05em;font-size:.9rem;font-weight:500}.balance-amount{letter-spacing:-.02em;font-size:2.8rem;font-weight:800}.balance-sub{opacity:.75;font-size:.85rem}.acc-grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.25rem;display:grid}.acc-card{background:#fff;border:1px solid #e5e7eb;border-radius:14px;flex-direction:column;gap:.4rem;padding:1.5rem;transition:transform .2s,box-shadow .2s;display:flex;box-shadow:0 1px 4px #0000000f}.acc-card:hover{transform:translateY(-2px);box-shadow:0 4px 16px #0000001a}.acc-card-top{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.acc-icon{font-size:2rem}.acc-type-badge{color:#374151;text-transform:uppercase;letter-spacing:.04em;background:#f3f4f6;border-radius:20px;padding:.25rem .6rem;font-size:.72rem;font-weight:600}.acc-name{color:#111827;font-size:1.1rem;font-weight:700}.acc-bank{color:#6b7280;font-size:.85rem}.acc-number{color:#9ca3af;letter-spacing:.1em;font-family:monospace;font-size:.8rem}.acc-balance{color:#166534;margin-top:.5rem;font-size:1.5rem;font-weight:800}.acc-note{color:#9ca3af;font-size:.8rem;font-style:italic}.acc-actions{border-top:1px solid #f3f4f6;gap:.5rem;margin-top:1rem;padding-top:1rem;display:flex}.btn-edit{color:#1d4ed8;cursor:pointer;background:#eff6ff;border:1px solid #bfdbfe;border-radius:6px;flex:1;padding:.4rem .75rem;font-size:.8rem;font-weight:600;transition:background .2s}.btn-edit:hover{background:#dbeafe}.btn-delete{color:#dc2626;cursor:pointer;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;flex:1;padding:.4rem .75rem;font-size:.8rem;font-weight:600;transition:background .2s}.btn-delete:hover{background:#fee2e2}.acc-empty{text-align:center;color:#6b7280;padding:4rem 2rem}.acc-empty-icon{margin-bottom:1rem;font-size:3rem}.acc-empty p{color:#374151;margin:0 0 .5rem;font-size:1.1rem;font-weight:600}.acc-empty span{font-size:.9rem}.skeleton-card{gap:.75rem;min-height:200px;animation:1.5s infinite pulse}.sk{background:#e5e7eb;border-radius:6px;height:14px}.sk-icon-lg{border-radius:10px;width:48px;height:48px}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.modal-overlay{z-index:1000;background:#00000073;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal{background:#fff;border-radius:16px;width:100%;max-width:560px;max-height:90vh;padding:2rem;overflow-y:auto;box-shadow:0 20px 60px #0003}.modal-header{justify-content:space-between;align-items:center;margin-bottom:1.5rem;display:flex}.modal-header h2{color:#111827;margin:0;font-size:1.3rem;font-weight:700}.modal-close{cursor:pointer;background:#f3f4f6;border:none;border-radius:50%;justify-content:center;align-items:center;width:32px;height:32px;font-size:1rem;transition:background .2s;display:flex}.modal-close:hover{background:#e5e7eb}.acc-form{flex-direction:column;gap:1rem;display:flex}.form-row{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.form-group{flex-direction:column;gap:.4rem;display:flex}.form-group label{color:#374151;font-size:.85rem;font-weight:600}.form-group input,.form-group select,.form-group textarea{color:#111827;background:#fff;border:1px solid #d1d5db;border-radius:8px;outline:none;padding:.6rem .8rem;font-family:inherit;font-size:.9rem;transition:border-color .2s}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:#16a34a;box-shadow:0 0 0 3px #16a34a1a}.modal-actions{gap:.75rem;margin-top:.5rem;display:flex}.btn-cancel{color:#374151;cursor:pointer;background:#f3f4f6;border:none;border-radius:8px;flex:1;padding:.7rem;font-size:.9rem;font-weight:600}.btn-save{color:#fff;cursor:pointer;background:#16a34a;border:none;border-radius:8px;flex:2;justify-content:center;align-items:center;padding:.7rem;font-size:.9rem;font-weight:600;transition:background .2s;display:flex}.btn-save:hover:not(:disabled){background:#15803d}.btn-save:disabled{opacity:.6;cursor:not-allowed}.btn-danger{color:#fff;cursor:pointer;background:#dc2626;border:none;border-radius:8px;flex:2;padding:.7rem;font-size:.9rem;font-weight:600;transition:background .2s}.btn-danger:hover{background:#b91c1c}.confirm-modal{text-align:center;max-width:360px}.confirm-icon{margin-bottom:1rem;font-size:3rem}.confirm-modal h3{color:#111827;margin:0 0 .5rem;font-size:1.2rem;font-weight:700}.confirm-modal p{color:#6b7280;margin:0 0 1.5rem;font-size:.9rem}.spinner-sm{border:2px solid #fff6;border-top-color:#fff;border-radius:50%;width:16px;height:16px;animation:.7s linear infinite spin;display:inline-block}@media (width<=600px){.acc-page{padding:1rem}.form-row{grid-template-columns:1fr}.balance-amount{font-size:2rem}}.admin-page{max-width:1200px;margin:0 auto;padding:2rem}.admin-header{justify-content:space-between;align-items:flex-start;margin-bottom:1.5rem;display:flex}.admin-header h1{color:#111827;margin:0 0 .25rem;font-size:1.8rem;font-weight:700}.admin-header p{color:#6b7280;margin:0;font-size:.9rem}.admin-badge{color:#92400e;background:#fef3c7;border:1px solid #fde68a;border-radius:20px;padding:.4rem 1rem;font-size:.85rem;font-weight:700}.alert-success{color:#166534;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:8px;margin-bottom:1.5rem;padding:.75rem 1rem;font-size:.9rem}.admin-tabs{border-bottom:2px solid #e5e7eb;flex-wrap:wrap;gap:.5rem;margin-bottom:2rem;padding-bottom:0;display:flex}.admin-tab{color:#6b7280;cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;border-radius:4px 4px 0 0;margin-bottom:-2px;padding:.6rem 1.2rem;font-size:.9rem;font-weight:600;transition:all .2s}.admin-tab:hover{color:#111827;background:#f9fafb}.admin-tab.active{color:#16a34a;background:#f0fdf4;border-bottom-color:#16a34a}.admin-loading{color:#6b7280;flex-direction:column;align-items:center;gap:1rem;padding:4rem;display:flex}.spinner-lg{border:3px solid #e5e7eb;border-top-color:#16a34a;border-radius:50%;width:40px;height:40px;animation:.8s linear infinite spin}.stats-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:1rem;margin-bottom:2rem;display:grid}.stat-card{background:#fff;border:1px solid #e5e7eb;border-radius:12px;align-items:center;gap:1rem;padding:1.25rem 1.5rem;transition:transform .2s;display:flex;box-shadow:0 1px 4px #0000000d}.stat-card:hover{transform:translateY(-2px)}.stat-icon{font-size:2rem}.stat-info{flex-direction:column;display:flex}.stat-label{color:#6b7280;text-transform:uppercase;letter-spacing:.04em;font-size:.78rem;font-weight:500}.stat-value{color:#111827;margin-top:.1rem;font-size:1.4rem;font-weight:800}.stat-card.blue{border-left:4px solid #3b82f6}.stat-card.green{border-left:4px solid #16a34a}.stat-card.emerald{border-left:4px solid #059669}.stat-card.red{border-left:4px solid #dc2626}.stat-card.purple{border-left:4px solid #7c3aed}.stat-card.orange{border-left:4px solid #ea580c}.stat-card.yellow{border-left:4px solid #d97706}.stat-card.gray{border-left:4px solid #6b7280}.overview-recent h3{color:#111827;margin:0 0 1rem;font-size:1rem;font-weight:700}.logs-list{flex-direction:column;gap:.5rem;display:flex}.log-item{background:#fff;border:1px solid #e5e7eb;border-radius:8px;flex-wrap:wrap;align-items:center;gap:.75rem;padding:.75rem 1rem;display:flex}.log-user{color:#374151;font-size:.85rem;font-weight:600}.log-details{color:#6b7280;flex:1;font-size:.83rem}.log-time{color:#9ca3af;white-space:nowrap;margin-left:auto;font-size:.78rem}.section-title{flex-wrap:wrap;align-items:center;gap:1rem;margin-bottom:1.25rem;display:flex}.section-title h3{color:#111827;margin:0;font-size:1.1rem;font-weight:700}.pending-hint{color:#6b7280;font-size:.85rem}.users-table-wrap,.pending-table-wrap,.logs-table-wrap{border:1px solid #e5e7eb;border-radius:12px;overflow-x:auto}.admin-table{border-collapse:collapse;background:#fff;width:100%}.admin-table thead tr{background:#f9fafb}.admin-table th{text-align:left;color:#6b7280;text-transform:uppercase;letter-spacing:.04em;border-bottom:1px solid #e5e7eb;padding:.75rem 1rem;font-size:.78rem;font-weight:700}.admin-table td{color:#374151;vertical-align:middle;border-bottom:1px solid #f3f4f6;padding:.85rem 1rem;font-size:.88rem}.admin-table tr:last-child td{border-bottom:none}.admin-table tr:hover td{background:#fafafa}.current-user-row td{background:#f0fdf4!important}.user-cell{align-items:center;gap:.6rem;display:flex}.user-avatar{color:#fff;background:linear-gradient(135deg,#16a34a,#059669);border-radius:50%;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;font-size:.85rem;font-weight:700;display:flex}.user-avatar.sm{width:26px;height:26px;font-size:.75rem}.you-badge{color:#1d4ed8;background:#dbeafe;border-radius:10px;padding:.1rem .4rem;font-size:.7rem;font-weight:700}.text-muted{color:#9ca3af}.role-badge{text-transform:uppercase;border-radius:20px;padding:.25rem .65rem;font-size:.75rem;font-weight:700}.role-badge.admin{color:#92400e;background:#fef3c7}.role-badge.member{color:#1d4ed8;background:#eff6ff}.role-badge.viewer{color:#6b7280;background:#f3f4f6}.role-select{cursor:pointer;color:#374151;border:1px solid #d1d5db;border-radius:6px;outline:none;padding:.35rem .6rem;font-size:.83rem}.role-select:focus{border-color:#16a34a}.type-badge{text-transform:uppercase;border-radius:20px;padding:.2rem .55rem;font-size:.72rem;font-weight:700}.type-badge.income{color:#166534;background:#f0fdf4}.type-badge.expense{color:#dc2626;background:#fef2f2}.type-badge.transfer{color:#1d4ed8;background:#eff6ff}.tx-type-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.tx-type-dot.income{background:#16a34a}.tx-type-dot.expense{background:#dc2626}.tx-type-dot.transfer{background:#3b82f6}.tx-title-cell{align-items:center;gap:.6rem;display:flex}.tx-name{color:#111827;font-size:.88rem;font-weight:600}.tx-note-sm{color:#9ca3af;font-size:.75rem}.amount-cell{font-weight:700}.amount-cell.income{color:#166534}.amount-cell.expense{color:#dc2626}.action-btns{gap:.5rem;display:flex}.btn-approve{color:#166534;cursor:pointer;white-space:nowrap;background:#f0fdf4;border:1px solid #bbf7d0;border-radius:6px;padding:.35rem .75rem;font-size:.8rem;font-weight:700;transition:background .2s}.btn-approve:hover{background:#dcfce7}.btn-approve:disabled{opacity:.5;cursor:not-allowed}.btn-reject{color:#dc2626;cursor:pointer;white-space:nowrap;background:#fef2f2;border:1px solid #fecaca;border-radius:6px;padding:.35rem .75rem;font-size:.8rem;font-weight:700;transition:background .2s}.btn-reject:hover{background:#fee2e2}.btn-reject:disabled{opacity:.5;cursor:not-allowed}.log-action-badge{text-transform:uppercase;letter-spacing:.03em;white-space:nowrap;border-radius:20px;padding:.2rem .6rem;font-size:.72rem;font-weight:700}.log-create{color:#166534;background:#f0fdf4}.log-update{color:#1d4ed8;background:#eff6ff}.log-delete{color:#dc2626;background:#fef2f2}.log-default{color:#6b7280;background:#f3f4f6}.target-badge{color:#374151;background:#f3f4f6;border-radius:6px;padding:.2rem .55rem;font-family:monospace;font-size:.78rem;font-weight:600}.log-details-cell{word-break:break-word;color:#6b7280;max-width:300px;font-size:.82rem}.empty-state{text-align:center;color:#6b7280;padding:4rem 2rem}.empty-state p{color:#374151;margin:.75rem 0 0;font-size:1rem;font-weight:600}@media (width<=600px){.admin-page{padding:1rem}.stats-grid{grid-template-columns:1fr 1fr}.admin-tabs{gap:.25rem}.admin-tab{padding:.5rem .75rem;font-size:.82rem}}.counter{color:var(--accent);background:var(--accent-bg);border:2px solid #0000;border-radius:5px;margin-bottom:24px;padding:5px 10px;font-size:16px;transition:border-color .3s}.counter:hover{border-color:var(--accent-border)}.counter:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.hero{position:relative}.hero .base,.hero .framework,.hero .vite{margin:0 auto;inset-inline:0}.hero .base{z-index:0;width:170px;position:relative}.hero .framework,.hero .vite{position:absolute}.hero .framework{z-index:1;height:28px;top:34px;transform:perspective(2000px)rotate(300deg)rotateX(44deg)rotateY(39deg)scale(1.4)}.hero .vite{z-index:0;width:auto;height:26px;top:107px;transform:perspective(2000px)rotate(300deg)rotateX(40deg)rotateY(39deg)scale(.8)}#center{flex-direction:column;flex-grow:1;place-content:center;place-items:center;gap:25px;display:flex}@media (width<=1024px){#center{gap:18px;padding:32px 20px 24px}}#next-steps{border-top:1px solid var(--border);text-align:left;display:flex}#next-steps>div{flex:1 1 0;padding:32px}@media (width<=1024px){#next-steps>div{padding:24px 20px}}#next-steps .icon{width:22px;height:22px;margin-bottom:16px}@media (width<=1024px){#next-steps{text-align:center;flex-direction:column}}#docs{border-right:1px solid var(--border)}@media (width<=1024px){#docs{border-right:none;border-bottom:1px solid var(--border)}}#next-steps ul{gap:8px;margin:32px 0 0;padding:0;list-style:none;display:flex}#next-steps ul .logo{height:18px}#next-steps ul a{color:var(--text-h);background:var(--social-bg);border-radius:6px;align-items:center;gap:8px;padding:6px 12px;font-size:16px;text-decoration:none;transition:box-shadow .3s;display:flex}#next-steps ul a:hover{box-shadow:var(--shadow)}#next-steps ul a .button-icon{width:18px;height:18px}@media (width<=1024px){#next-steps ul{flex-wrap:wrap;justify-content:center;margin-top:20px}#next-steps ul li{flex:calc(50% - 8px)}#next-steps ul a{box-sizing:border-box;justify-content:center;width:100%}}#spacer{border-top:1px solid var(--border);height:88px}@media (width<=1024px){#spacer{height:48px}}.ticks{width:100%;position:relative}.ticks:before,.ticks:after{content:"";border:5px solid #0000;position:absolute;top:-4.5px}.ticks:before{border-left-color:var(--border);left:0}.ticks:after{border-right-color:var(--border);right:0}:root{--primary:#166534;--primary-dark:#14532d;--primary-light:#f0fdf4;--accent:#d97706;--accent-light:#fffbeb;--success:#16a34a;--error:#dc2626;--warning:#d97706;--bg:#fafaf7;--surface:#fff;--border:#e5e7eb;--text:#1c1917;--text-muted:#6b7280;--text-faint:#9ca3af;--shadow:0 4px 24px #00000012;--radius:12px}
