:root{--p-ink:#0b1e35;--p-muted:#637381;--p-line:#e5eaef;--p-surface:#fff}.portal-header{height:72px;display:flex;align-items:center;justify-content:space-between;padding:0 max(24px,calc((100vw - 1180px)/2));border-bottom:1px solid var(--p-line);background:#fff}.portal-brand{display:flex;align-items:center;gap:10px;color:var(--p-ink);font-weight:800;text-decoration:none}.portal-brand img{width:34px;height:34px;object-fit:contain}.portal-header nav{display:flex;align-items:center;gap:24px}.portal-header nav a{color:#435466;text-decoration:none;font-size:14px}.portal-logout{border:1px solid #ccd6df;background:#fff;border-radius:7px;padding:9px 14px;cursor:pointer;color:var(--p-ink)}.portal-main{max-width:1180px;margin:auto;padding:48px 24px 72px}.portal-hero{display:flex;align-items:end;justify-content:space-between;gap:24px;background:linear-gradient(120deg,#0b1520,#0d2a4a);color:#fff;padding:42px;border-radius:16px}.portal-hero h1{margin:4px 0 9px;font-size:clamp(28px,4vw,42px);color:#fff}.portal-hero p:not(.portal-eyebrow){margin:0;color:#d5e2ea}.portal-eyebrow,.portal-label{text-transform:uppercase;letter-spacing:.11em;font-size:11px;font-weight:800;margin:0;color:#60a5fa}.portal-cta{background:#f5a623;color:#0b1520;text-decoration:none;padding:12px 16px;border-radius:7px;white-space:nowrap;font-weight:700}.portal-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin:22px 0}.portal-kpis article,.portal-card{border:1px solid var(--p-line);background:var(--p-surface);border-radius:12px}.portal-kpis article{padding:20px}.portal-kpis span{display:block;color:var(--p-muted);font-size:13px}.portal-kpis strong{display:block;margin-top:8px;font-size:28px;color:var(--p-ink)}.portal-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}.portal-card{padding:24px;min-width:0}.portal-wide{grid-column:1/-1}.portal-card-head{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:18px}.portal-card h2{font-size:20px;color:var(--p-ink);margin:4px 0 0}.portal-card-head a{color:#0057a8;font-size:13px;font-weight:700}.portal-table table{width:100%;border-collapse:collapse}.portal-table td{border-top:1px solid var(--p-line);padding:12px 8px;color:#334e68;font-size:13px}.portal-table td:first-child{font-weight:700;color:var(--p-ink)}.portal-table td:nth-child(2){color:#0057a8;font-weight:700}.portal-list>div{padding:13px 0;border-top:1px solid var(--p-line);font-size:13px;color:#334e68}.portal-list>div:first-child{border-top:0}.portal-help{display:flex;align-items:center;justify-content:space-between;gap:24px;background:#e8f1fb;margin-top:22px;padding:28px 32px;border-radius:12px}.portal-help h2{margin:5px 0 0;font-size:20px;color:var(--p-ink)}.portal-help a{background:#0057a8;color:#fff;text-decoration:none;border-radius:7px;padding:11px 15px;font-weight:700}@media(max-width:700px){.portal-header nav a{display:none}.portal-main{padding:24px 16px}.portal-hero,.portal-help{padding:28px;align-items:flex-start;flex-direction:column}.portal-kpis{grid-template-columns:repeat(2,1fr)}.portal-grid{grid-template-columns:1fr}.portal-wide{grid-column:auto}.portal-table{overflow:auto}.portal-table table{min-width:520px}}

/* ── Semantic badge classes ── */
.badge-success{display:inline-flex;align-items:center;padding:3px 9px;border-radius:20px;font-size:11px;font-weight:700;background:rgba(21,128,61,.1);color:#15803d;border:1px solid rgba(21,128,61,.2)}
.badge-warning{display:inline-flex;align-items:center;padding:3px 9px;border-radius:20px;font-size:11px;font-weight:700;background:rgba(180,83,9,.1);color:#b45309;border:1px solid rgba(180,83,9,.2)}
.badge-error{display:inline-flex;align-items:center;padding:3px 9px;border-radius:20px;font-size:11px;font-weight:700;background:rgba(185,28,28,.1);color:#b91c1c;border:1px solid rgba(185,28,28,.2)}
.badge-info{display:inline-flex;align-items:center;padding:3px 9px;border-radius:20px;font-size:11px;font-weight:700;background:rgba(29,78,216,.1);color:#1d4ed8;border:1px solid rgba(29,78,216,.2)}

/* ── Table styles ── */
.table{width:100%;border-collapse:collapse;font-size:13px}
.table thead th{background:#0057a8;color:#fff;padding:10px 12px;text-align:left;font-weight:700;font-size:12px;letter-spacing:.04em;text-transform:uppercase;white-space:nowrap}
.table thead th:first-child{border-radius:8px 0 0 0}
.table thead th:last-child{border-radius:0 8px 0 0}
.table tbody td{padding:11px 12px;color:#334e68;border-bottom:1px solid var(--p-line)}
.table tbody tr:nth-child(even) td{background:#f6f9fc}
.table tbody tr:hover td{background:#e8f1fb}
.table tbody tr:last-child td{border-bottom:none}
.table-wrap{overflow-x:auto;border-radius:8px;border:1px solid var(--p-line)}

/* ── acct-card hover lift ── */
.acct-card{transition:box-shadow .18s,transform .18s}
.acct-card:hover{box-shadow:0 6px 24px rgba(0,87,168,.1);transform:translateY(-2px)}

/* ── KPI stat cards hover ── */
.portal-kpis article{transition:box-shadow .18s,transform .18s;cursor:default}
.portal-kpis article:hover{box-shadow:0 6px 24px rgba(0,87,168,.12);transform:translateY(-2px)}

/* ── Quick Actions card ── */
.quick-actions-card{border:1px solid var(--p-line);background:var(--p-surface);border-radius:12px;padding:24px;margin-bottom:18px}
.quick-actions-card h2{font-size:18px;color:var(--p-ink);margin:0 0 16px}
.quick-actions-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.qa-btn{display:flex;flex-direction:column;align-items:center;gap:8px;padding:18px 12px;border-radius:10px;border:1.5px solid var(--p-line);background:#f8fafc;color:var(--p-ink);text-decoration:none;font-size:13px;font-weight:600;text-align:center;cursor:pointer;transition:border-color .15s,background .15s,box-shadow .15s}
.qa-btn:hover{border-color:#0057a8;background:#e8f1fb;box-shadow:0 3px 12px rgba(0,87,168,.12);color:#0057a8}
.qa-btn i{font-size:22px;color:#0057a8}
@media(max-width:700px){.quick-actions-grid{grid-template-columns:repeat(2,1fr)}}

/* ── Sidebar nav hover highlight (backend) ── */
.nav-item:hover{color:#cbd5e1;background:rgba(255,255,255,.05);border-left:3px solid rgba(0,87,168,.6)}
.nav-item{border-left:3px solid transparent}
