:root{--navy-deep: #0b1b36;--navy-mid: #0f2748;--gold: #b4923f;--gold-light: #d4af5c;--ivory: #faf8f4;--white: #ffffff;--ink: #1a2233;--ink-muted: #5b6577;--border: #e4e0d6;--danger: #a3342b;--success: #1f6f4a;--font-display: "Playfair Display", Georgia, serif;--font-body: "Inter", -apple-system, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, monospace}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:var(--font-body);background:var(--ivory);color:var(--ink);-webkit-font-smoothing:antialiased}#root{min-height:100vh}h1,h2,h3{font-family:var(--font-display);color:var(--navy-deep);margin:0 0 .5em}a{color:var(--navy-mid)}.money{font-family:var(--font-mono);font-variant-numeric:tabular-nums}button{font-family:var(--font-body);cursor:pointer}input,select{font-family:var(--font-body)}.auth-shell{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(160deg,var(--navy-deep),var(--navy-mid));padding:24px}.auth-card{width:100%;max-width:420px;background:var(--white);border-radius:12px;padding:40px;box-shadow:0 20px 60px #0b1b3659}.auth-card h1{font-size:1.6rem;text-align:center}.auth-subtitle{text-align:center;color:var(--ink-muted);font-size:.9rem;margin-bottom:28px}.field{margin-bottom:18px}.field label{display:block;font-size:.85rem;font-weight:500;color:var(--ink);margin-bottom:6px}.field input,.field select{width:100%;padding:11px 12px;border:1px solid var(--border);border-radius:6px;font-size:.95rem;background:var(--ivory)}.field input:focus,.field select:focus{outline:2px solid var(--gold);outline-offset:1px;background:var(--white)}.field-hint{font-size:.78rem;color:var(--ink-muted);margin-top:4px}.btn-primary{width:100%;padding:12px;border:none;border-radius:6px;background:var(--navy-deep);color:var(--white);font-weight:600;font-size:.95rem;transition:background .15s}.btn-primary:hover:not(:disabled){background:var(--navy-mid)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.btn-gold{border:none;border-radius:6px;background:var(--gold);color:var(--navy-deep);font-weight:600;padding:10px 18px;transition:background .15s}.btn-gold:hover:not(:disabled){background:var(--gold-light)}.btn-secondary{border:1px solid var(--border);border-radius:6px;background:transparent;color:var(--ink);padding:10px 18px;font-weight:500}.btn-secondary:hover{border-color:var(--navy-mid)}.btn-link{border:none;background:none;color:var(--navy-mid);font-size:.85rem;padding:0;text-decoration:underline}.form-error{background:#fbeceb;border:1px solid var(--danger);color:var(--danger);border-radius:6px;padding:10px 14px;font-size:.85rem;margin-bottom:18px}.form-success{background:#eaf5ef;border:1px solid var(--success);color:var(--success);border-radius:6px;padding:10px 14px;font-size:.85rem;margin-bottom:18px}.auth-switch{text-align:center;margin-top:20px;font-size:.85rem;color:var(--ink-muted)}.app-shell{min-height:100vh;display:flex}.app-sidebar{width:240px;flex-shrink:0;background:var(--navy-deep);color:var(--ivory);padding:28px 20px;display:flex;flex-direction:column}.app-sidebar .brand{font-family:var(--font-display);font-size:1.15rem;color:var(--white);margin-bottom:36px}.app-sidebar .brand span{display:block;font-family:var(--font-body);font-size:.7rem;letter-spacing:.08em;text-transform:uppercase;color:var(--gold-light);margin-top:2px}.app-sidebar nav{display:flex;flex-direction:column;gap:4px;flex:1}.app-sidebar nav a,.app-sidebar nav button{display:block;text-align:left;padding:10px 12px;border-radius:6px;color:#faf8f4bf;text-decoration:none;font-size:.9rem;background:none;border:none;width:100%}.app-sidebar nav a:hover,.app-sidebar nav button:hover{background:#ffffff0f;color:var(--white)}.app-sidebar nav a.active{background:#b4923f2e;color:var(--gold-light);font-weight:500}.app-main{flex:1;padding:40px 48px;max-width:1100px}.page-header{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:28px}.page-header h1{font-size:1.8rem}.account-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px;margin-bottom:36px}.account-card{background:var(--white);border:1px solid var(--border);border-radius:10px;padding:22px;cursor:pointer;transition:border-color .15s,box-shadow .15s}.account-card:hover{border-color:var(--gold)}.account-card.selected{border-color:var(--gold);box-shadow:0 0 0 1px var(--gold)}.account-card .account-type{font-size:.72rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-muted)}.account-card .account-name{font-family:var(--font-display);font-size:1.15rem;margin:4px 0 14px;color:var(--navy-deep)}.account-card .account-balance{font-size:1.5rem;font-weight:500;color:var(--navy-deep)}.account-card .account-number{font-size:.78rem;color:var(--ink-muted);margin-top:10px}.empty-state{border:1px dashed var(--border);border-radius:10px;padding:32px;text-align:center;color:var(--ink-muted)}.ledger{background:var(--white);border:1px solid var(--border);border-radius:10px;overflow:hidden}.ledger-row{display:flex;justify-content:space-between;align-items:center;padding:14px 20px;border-bottom:1px solid var(--border)}.ledger-row:last-child{border-bottom:none}.ledger-row .ledger-desc{font-size:.92rem}.ledger-row .ledger-meta{font-size:.76rem;color:var(--ink-muted);margin-top:2px}.ledger-row .ledger-amount{font-size:.95rem;font-weight:500}.ledger-amount.credit{color:var(--success)}.ledger-amount.debit{color:var(--ink)}.status-pill{display:inline-block;font-size:.68rem;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding:2px 8px;border-radius:999px;margin-left:8px}.status-pill.posted,.status-pill.succeeded,.status-pill.approved,.status-pill.disbursed,.status-pill.closed,.status-pill.paid,.status-pill.verified{background:#eaf5ef;color:var(--success)}.status-pill.pending,.status-pill.processing,.status-pill.submitted,.status-pill.under_review,.status-pill.scheduled,.status-pill.unverified,.status-pill.pending_approval{background:#fbf3e3;color:#8a6416}.status-pill.failed,.status-pill.rejected,.status-pill.late,.status-pill.missed{background:#fbeceb;color:var(--danger)}.panel{background:var(--white);border:1px solid var(--border);border-radius:10px;padding:28px;max-width:480px}
