:root { --ink:#102a43; --muted:#617386; --paper:#eef3f5; --white:#fff; --blue:#1356a0; --green:#087f7c; --error:#b42318; }
* { box-sizing:border-box; }
body { margin:0; min-height:100vh; color:var(--ink); background:var(--paper); font-family:"Manrope",Arial,sans-serif; }
.login-layout { min-height:100vh; display:grid; grid-template-columns:minmax(320px,1.05fr) minmax(420px,.95fr); }
.login-intro { position:relative; overflow:hidden; padding:clamp(44px,7vw,100px); background:linear-gradient(145deg,#0c355d 0%,#0b696e 100%); color:white; display:flex; flex-direction:column; justify-content:center; }
.login-intro::after { content:""; position:absolute; width:420px; height:420px; right:-170px; bottom:-160px; border:80px solid rgba(255,255,255,.07); border-radius:50%; }
.login-intro img { position:absolute; top:28px; left:clamp(36px,6vw,90px); width:190px; filter:brightness(0) invert(1); }
.eyebrow { margin:0 0 12px; color:#72d1cb; font-size:11px; font-weight:700; letter-spacing:.14em; }
.login-intro h1 { margin:0; font-family:"Newsreader",Georgia,serif; font-size:clamp(44px,6vw,76px); line-height:1; }
.login-intro > p:not(.eyebrow) { max-width:510px; margin:28px 0 0; color:#d7eaeb; font-size:16px; line-height:1.7; }
.ca-download { width:max-content; margin-top:22px; padding:10px 14px; border:1px solid rgba(255,255,255,.35); border-radius:6px; color:white; text-decoration:none; font-size:12px; font-weight:700; }
.ca-download:hover { background:rgba(255,255,255,.1); }
.login-panel { padding:32px; background:white; display:grid; place-items:center; }
.login-card { width:min(100%,430px); }
.login-card .eyebrow { color:var(--green); }
h2 { margin:0; font-family:"Newsreader",Georgia,serif; font-size:42px; }
.subtitle { margin:10px 0 32px; color:var(--muted); }
label { display:block; margin:18px 0; font-size:13px; font-weight:700; }
input { width:100%; height:52px; margin-top:8px; padding:0 15px; border:1px solid #ccd9e0; border-radius:7px; outline:none; font:inherit; }
input:focus { border-color:var(--blue); box-shadow:0 0 0 3px rgba(19,86,160,.12); }
.form-message { min-height:22px; margin:4px 0 12px; color:var(--error); font-size:13px; }
button { width:100%; height:54px; padding:0 20px; border:0; border-radius:7px; background:var(--ink); color:white; display:flex; align-items:center; justify-content:space-between; cursor:pointer; font:700 14px "Manrope",sans-serif; }
button:hover { background:var(--blue); }
button:disabled { opacity:.6; cursor:wait; }
.secondary-button { margin-top:10px; border:1px solid #ccd9e0; background:white; color:var(--blue); justify-content:center; }
.secondary-button:hover { border-color:var(--blue); background:#eef5fb; }
.guest-access { width:100%; height:46px; margin-top:10px; border-radius:7px; color:var(--muted); display:flex; align-items:center; justify-content:center; font:600 13px "Manrope",sans-serif; text-decoration:none; }
.guest-access:hover { background:#f3f7f9; color:var(--blue); }
.form-divider { margin:18px 0 8px; border-top:1px solid #dbe4e9; text-align:center; }
.form-divider span { position:relative; top:-10px; padding:0 12px; background:white; color:var(--muted); font-size:11px; }
.back-button { margin-top:12px; }
.hidden { display:none!important; }
@media (max-width:800px) { .login-layout { grid-template-columns:1fr; } .login-intro { min-height:300px; padding:100px 28px 40px; } .login-intro h1 { font-size:43px; } .login-intro img { left:24px; top:12px; width:150px; } .login-panel { padding:44px 24px; } }
