:root { --navy:#102a43; --paper:#f7f3ea; --ink:#18313f; --coral:#e05b46; --mint:#b8e1d5; --line:#d6dddc; }
* { box-sizing:border-box; }
body { margin:0; min-height:100vh; color:var(--ink); background:var(--paper); font-family:Arial,Helvetica,sans-serif; }
button,input,select { font:inherit; }
.auth-shell { width:min(1100px,calc(100% - 32px)); min-height:680px; margin:clamp(18px,5vh,55px) auto; display:grid; grid-template-columns:1.05fr .95fr; overflow:hidden; border-radius:20px; background:white; box-shadow:0 25px 70px rgba(16,42,67,.16); }
.auth-intro { position:relative; overflow:hidden; display:flex; flex-direction:column; justify-content:space-between; padding:42px; color:white; background:var(--navy); }
.auth-intro::before { content:""; position:absolute; width:420px; height:420px; right:-210px; top:70px; border:1px solid rgba(255,255,255,.14); border-radius:50%; box-shadow:0 0 0 70px rgba(255,255,255,.03),0 0 0 140px rgba(255,255,255,.025); }
.brand { position:relative; z-index:1; display:flex; align-items:center; gap:11px; color:white; text-decoration:none; font-weight:700; }
.brand span { width:36px; height:36px; display:grid; place-items:center; border-radius:50%; color:var(--navy); background:var(--mint); font:bold 19px Georgia,serif; }
.auth-intro > div { position:relative; z-index:1; }
.eyebrow,.form-heading p { margin:0 0 10px; color:var(--coral); text-transform:uppercase; letter-spacing:.16em; font-size:.69rem; font-weight:700; }
.auth-intro .eyebrow { color:var(--mint); }
h1,h2 { margin:0; color:var(--navy); font-family:Georgia,serif; letter-spacing:-.035em; line-height:1.06; }
h1 { color:white; font-size:clamp(2.7rem,5vw,4.6rem); }
.auth-intro > div > p:last-child { max-width:470px; color:rgba(255,255,255,.7); font-size:1rem; line-height:1.6; }
.auth-intro ul { position:relative; z-index:1; display:grid; grid-template-columns:repeat(3,1fr); gap:12px; margin:0; padding:0; list-style:none; }
.auth-intro li { padding-left:12px; border-left:1px solid rgba(255,255,255,.22); }
.auth-intro li strong,.auth-intro li span { display:block; }
.auth-intro li strong { color:var(--mint); font:700 1.6rem Georgia,serif; }
.auth-intro li span { color:rgba(255,255,255,.62); font-size:.68rem; }
.auth-panel { padding:clamp(28px,5vw,58px); align-self:center; }
.tabs { display:flex; gap:4px; padding:4px; margin-bottom:35px; border-radius:9px; background:#eef1f1; }
.tabs button { flex:1; border:0; padding:10px; border-radius:7px; color:#667985; background:transparent; font-size:.82rem; font-weight:700; cursor:pointer; }
.tabs button.active { color:var(--navy); background:white; box-shadow:0 3px 12px rgba(16,42,67,.09); }
.auth-form { display:grid; gap:16px; }
.auth-form.hidden { display:none; }
.form-heading { margin-bottom:6px; }
.form-heading h2 { font-size:2.35rem; }
.auth-form label { display:grid; gap:6px; color:var(--navy); font-size:.78rem; font-weight:700; }
.auth-form input,.auth-form select { width:100%; border:1px solid var(--line); border-radius:8px; padding:12px; color:var(--ink); background:white; outline:none; }
.auth-form input:focus,.auth-form select:focus { border-color:var(--coral); box-shadow:0 0 0 3px rgba(224,91,70,.12); }
.auth-form small { color:#71828b; font-weight:400; line-height:1.4; }
.submit-button { display:flex; justify-content:space-between; align-items:center; border:0; border-radius:8px; padding:13px 16px; color:white; background:var(--navy); font-weight:700; cursor:pointer; box-shadow:0 8px 22px rgba(16,42,67,.16); }
.submit-button span { color:var(--mint); font-size:1.2rem; }
.submit-button:disabled { opacity:.6; cursor:wait; }
.form-error { min-height:18px; color:#a43d32; font-size:.78rem; }
.fine-print { margin:0; color:#74838a; text-align:center; font-size:.68rem; }
@media(max-width:760px){
  .auth-shell { width:100%; min-height:100vh; margin:0; grid-template-columns:1fr; border-radius:0; }
  .auth-intro { min-height:300px; padding:27px 22px; }
  .auth-intro > div { margin:48px 0 28px; }
  .auth-intro h1 { font-size:2.65rem; max-width:500px; }
  .auth-intro ul { display:none; }
  .auth-panel { width:100%; padding:30px 22px 48px; }
}

.teacher-entry{display:flex;justify-content:space-between;align-items:center;margin-top:24px;padding-top:18px;border-top:1px solid #dbe4e8;color:#245b83;font-weight:700;text-decoration:none}.teacher-entry:hover{text-decoration:underline}

.auth-footer{padding:0 22px 24px;text-align:center;color:#526878;font-size:.8rem;line-height:1.5}

.account-access-note{margin:8px 0 0;padding:14px;border-left:3px solid var(--mint);border-radius:5px;background:#f0f6f4;color:var(--ink);font-size:.875rem;line-height:1.55}
