.login-page { align-items: center; display: flex; min-height: 100vh; padding: 1rem; }
.login-box { margin: auto; width: min(420px, 100%); }
.card-primary.card-outline { border-top: 3px solid #153f73; }
:root { --hw-blue: #153f73; --hw-blue-dark: #0d2c52; --bs-font-sans-serif: Arial, Helvetica, sans-serif; --bs-body-font-family: var(--bs-font-sans-serif); }
body { font-family: var(--bs-body-font-family); font-size: .95rem; }
button, input, optgroup, select, textarea { font-family: inherit; }
.offer-image { aspect-ratio: 16 / 9; background: #eef2f6; object-fit: cover; width: 100%; }
.offer-price { color: var(--hw-blue-dark); font-size: 1.35rem; font-weight: 700; }
.customer-navbar { background: linear-gradient(100deg, var(--hw-blue-dark), var(--hw-blue)); }
.portal-card { border: 1px solid #d5dfeb; border-radius: .65rem; overflow: hidden; }
.portal-card > .card-header { background: #edf3f8; border-bottom-color: #ccd8e5; }
.portal-card > .card-header .card-title { color: var(--hw-blue-dark); font-size: 1rem; font-weight: 700; }
.portal-table { --bs-table-bg: #fff; --bs-table-border-color: #e0e7ee; --bs-table-hover-bg: #eaf2fb; }
.portal-table > thead > tr > th { background: #dce8f4; color: #244564; font-size: .74rem; letter-spacing: .025em; text-transform: uppercase; white-space: nowrap; }
.portal-table > tbody > tr:nth-of-type(even) > * { background: #f5f8fb; }
.balance-card { background: linear-gradient(135deg, #fff, #edf4fb); border-top: 4px solid var(--hw-blue); }
.balance-label { color: #52677c; font-size: .8rem; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; }
.balance-value { color: var(--hw-blue-dark); font-size: 2rem; font-weight: 700; line-height: 1.2; margin-top: .35rem; }
