:root { --navy:#0b2341; --blue:#1164d7; --ink:#15243a; --muted:#64748b; --line:#dbe3ec; --paper:#f4f7fb; }
* { box-sizing:border-box; } html { font-size:16px; min-height:100%; } body { margin:0; color:var(--ink); background:var(--paper); font-family:Inter,Segoe UI,system-ui,sans-serif; }
.auth-page { min-height:100vh; }.auth-shell { min-height:100vh; display:grid; grid-template-columns:minmax(360px,43%) 1fr; }
.brand-panel { color:white; padding:clamp(42px,7vw,96px); background:linear-gradient(145deg,#071b35 0%,#0c376c 68%,#1164d7 135%); display:flex; flex-direction:column; justify-content:center; position:relative; overflow:hidden; }
.brand-panel:after { content:""; position:absolute; width:430px; height:430px; border:1px solid #ffffff18; border-radius:50%; right:-220px; bottom:-150px; box-shadow:0 0 0 80px #ffffff08,0 0 0 160px #ffffff05; }
.brand-mark { width:52px; height:52px; border-radius:14px; background:#fff; color:var(--blue); display:grid; place-items:center; font-size:29px; font-weight:800; margin-bottom:38px; box-shadow:0 10px 35px #0003; }
.brand-mark.small { display:inline-grid; width:31px; height:31px; border-radius:8px; font-size:18px; margin:0 8px 0 0; vertical-align:middle; }.eyebrow { text-transform:uppercase; letter-spacing:.16em; font-size:.74rem; font-weight:800; color:#9fc9ff; margin:0 0 16px; }.eyebrow.dark { color:var(--blue); }
.brand-panel h1 { font-size:clamp(2.5rem,4.5vw,4.9rem); line-height:1.02; letter-spacing:-.045em; max-width:700px; margin:0 0 28px; }.brand-copy { color:#c3d4e8; max-width:530px; font-size:1.1rem; line-height:1.75; }.brand-foot { position:absolute; bottom:40px; color:#89a6c8; font-size:.85rem; }
.login-panel { display:grid; place-items:center; padding:40px; background:#fff; }.login-card { width:min(100%,430px); }.login-card h2,.context-wrap h1 { font-size:2rem; letter-spacing:-.03em; margin:0 0 8px; }.muted { color:var(--muted); margin:0 0 32px; }.mobile-brand { display:none; font-weight:750; margin-bottom:45px; }
.field { margin:0 0 20px; }.field label { display:block; font-size:.88rem; font-weight:700; margin-bottom:8px; }.field input { width:100%; border:1px solid var(--line); border-radius:10px; padding:13px 14px; outline:none; transition:.2s; }.field input:focus { border-color:var(--blue); box-shadow:0 0 0 3px #1164d718; }.field span { color:#b42318; font-size:.8rem; }
.check-row { display:flex; align-items:center; gap:9px; color:var(--muted); font-size:.88rem; margin:4px 0 24px; }.primary-button { border:0; color:white; background:var(--blue); border-radius:10px; padding:14px 18px; width:100%; display:flex; justify-content:space-between; font-weight:750; box-shadow:0 8px 20px #1164d733; }.primary-button:hover { background:#0b56bd; }.security-note { color:#94a3b8; text-align:center; font-size:.78rem; margin-top:25px; }.validation-summary-valid { display:none; }
.app-nav { background:var(--navy); padding:12px 20px; }.context-wrap { width:min(720px,calc(100% - 32px)); margin:80px auto; background:white; padding:42px; border-radius:18px; box-shadow:0 18px 50px #0b234110; }.context-grid { display:grid; gap:14px; }.context-card { border:1px solid var(--line); border-radius:12px; padding:17px; display:flex; gap:14px; cursor:pointer; }.context-card:has(input:checked) { border-color:var(--blue); background:#f4f8ff; }.context-card span span,.context-card small { display:block; color:var(--muted); }
.dashboard-hero { padding:55px 0 30px; }.dashboard-hero h1 { letter-spacing:-.04em; }.module-card { background:white; padding:24px; border-radius:14px; display:flex; align-items:center; gap:18px; box-shadow:0 8px 35px #0b23410d; }.module-card h2,.module-card p { margin:0; }.module-card p { color:var(--muted); }.module-icon { font-size:2rem; color:var(--blue); }.status-pill { margin-left:auto; background:#eef3f8; padding:6px 10px; border-radius:99px; color:var(--muted); font-size:.78rem; }
@media(max-width:800px){.auth-shell{display:block}.brand-panel{display:none}.login-panel{min-height:100vh;padding:28px}.mobile-brand{display:block}.context-wrap{margin:30px auto;padding:25px}.navbar-text{display:none}}
