:root{--accent:#a9c47f;--deep:#115740;--sage:var(--accent);--green:var(--deep);--text:#f3f5ef;--bg:#0b100e;--panel:color-mix(in srgb,#141c18 80%,transparent);--muted:#a8b7ae;--line:#ffffff22;--surface:#ffffff08;--control:#ffffff0d;--shadow:0 18px 60px #0003;--highlight:#ffffff18;color-scheme:dark}
:root[data-theme=light]{--sage:var(--deep);--text:#18251f;--bg:#f0f4ef;--panel:#ffffffa6;--muted:#506158;--line:#163f2929;--surface:#ffffff75;--control:#ffffffb0;--shadow:0 18px 60px #244c2810;--highlight:#ffffffd9;color-scheme:light}
body{color:var(--text);background:radial-gradient(ellipse at 8% 15%,color-mix(in srgb,var(--deep) 32%,transparent),transparent 48%),radial-gradient(ellipse at 90% 85%,color-mix(in srgb,var(--accent) 10%,transparent),transparent 45%),var(--bg);background-attachment:fixed}
button,input,select,dialog{color:var(--text)}button{background:var(--control);border-color:var(--line)}button:hover{background:color-mix(in srgb,var(--accent) 16%,var(--control))}input,select,.email-field,.password-field{background:var(--control);border-color:var(--line);color:var(--text)}input::placeholder{color:var(--muted);opacity:.8}select option{background:var(--bg);color:var(--text)}
aside,.card,dialog,.auth-card{background:var(--panel);backdrop-filter:blur(24px) saturate(140%);-webkit-backdrop-filter:blur(24px) saturate(140%);border:1px solid var(--line);box-shadow:inset 0 1px 0 var(--highlight),var(--shadow)}aside{border-radius:0}.card{border-radius:22px}.card,.auth-card{transition:background .25s,border-color .25s}.auth-card{padding:28px;border-radius:26px;max-width:480px}dialog{max-height:90dvh;overflow:auto;border-radius:26px}.signed-out #authLanding{background:transparent}.welcome-panel{background:linear-gradient(135deg,color-mix(in srgb,var(--deep) 80%,transparent),color-mix(in srgb,var(--deep) 25%,transparent));color:#f5f8f1}.welcome-copy p{color:#d1e3d5}.welcome-panel .kicker,.welcome-panel .brand small{color:var(--accent)}.welcome-footer{color:#c2d6ca}.welcome-panel:after{border-color:color-mix(in srgb,var(--accent) 14%,transparent);box-shadow:0 0 0 75px color-mix(in srgb,var(--accent) 4%,transparent),0 0 0 150px color-mix(in srgb,var(--accent) 3%,transparent)}.auth-panel{padding-top:85px}.role-choice button{background:var(--surface)}.role-choice button[aria-pressed=true]{background:color-mix(in srgb,var(--accent) 15%,var(--surface));border-color:var(--sage)}.email-field span,.auth-footer{color:var(--muted)}.setup-note,.pill,.iconbox{background:color-mix(in srgb,var(--accent) 14%,var(--surface));color:var(--sage)}.primary,.avatar{background:var(--accent);color:#101b14}.primary:hover{background:color-mix(in srgb,var(--accent) 85%,white)}nav a.active,.day.selected,.bubble.mine{background:var(--deep);color:#fff}.bubble{background:color-mix(in srgb,var(--accent) 12%,var(--panel))}.message-time{color:var(--muted)}.bubble.mine .message-time{color:#e0ece4}.error{color:#f3a58e}html[data-theme=light] .error{color:#9d361d}html[data-theme=light] aside .brand img{filter:brightness(.25)}.alert{background:color-mix(in srgb,var(--deep) 15%,var(--panel));border-color:var(--line)}.alert p{color:var(--muted)}
#settingsLauncher{position:fixed;right:24px;top:18px;z-index:12;display:flex;align-items:center;gap:9px;border-radius:30px;padding:10px 15px;background:var(--panel);backdrop-filter:blur(20px);box-shadow:inset 0 1px 0 var(--highlight)}body:not(.signed-out) #settingsLauncher{top:auto;bottom:18px;right:24px}#settingsLauncher svg{width:18px;height:18px;stroke:var(--sage)}#preferences{max-width:510px;width:calc(100% - 28px);padding:28px}#preferences h2{font-size:29px;margin:12px 0}#preferences>p{margin-top:0}#preferences h3{margin-top:20px}.theme-modes{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:13px 0 24px}.theme-modes button[aria-pressed=true],.palette-grid button[aria-pressed=true]{border-color:var(--sage);background:color-mix(in srgb,var(--accent) 14%,var(--surface))}.palette-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.palette-grid button{display:flex;flex-direction:column;align-items:center;gap:8px;font-size:12px;padding:14px 8px}.color-orb{height:32px;width:32px;border-radius:50%;background:linear-gradient(135deg,var(--swatch),var(--swatch-deep));box-shadow:inset 0 1px 3px #fff9,0 4px 12px #0002}.text-button{border:0;background:transparent;color:var(--sage);font-size:12px;padding:5px}.settings-section{border-top:1px solid var(--line);margin-top:24px;padding-top:4px}.settings-section .toolbar button{font-size:12px}.close{background:var(--surface)}button:disabled{cursor:default}#toast{background:var(--accent)}
@media(max-width:850px){.auth-card{padding:22px}.auth-panel{padding:24px 16px}.welcome-panel{padding-top:75px}#settingsLauncher{top:16px;right:16px}}@media(max-width:640px){body:not(.signed-out) #settingsLauncher{bottom:84px;right:16px;padding:12px}body:not(.signed-out) #settingsLauncher span{display:none}aside{background:var(--panel)}.auth-card h2{font-size:27px}.theme-modes button{padding:10px 6px;font-size:13px}#preferences{padding:22px}.card{border-radius:18px}}
@supports not (backdrop-filter:blur(1px)){.card,aside,dialog,.auth-card,#settingsLauncher{background:var(--bg)}}
@media(prefers-reduced-transparency:reduce){.card,aside,dialog,.auth-card,#settingsLauncher{background:var(--bg);backdrop-filter:none}}
.save-password-option{display:flex;align-items:center;gap:10px;margin-top:18px;cursor:pointer}.save-password-option input{width:18px;height:18px;margin:0;accent-color:var(--deep);flex-shrink:0}.save-password-help{font-size:11px;margin:8px 0 12px;line-height:1.6}
/* Private grade feedback and compact mobile account controls. */
#gradeForm textarea{width:100%;font:inherit;color:inherit;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px;resize:vertical}
@media(max-width:640px){nav a{padding:6px 7px}header{height:auto;min-height:74px;flex-wrap:wrap;gap:8px;padding:10px 0}header #breadcrumb{display:none}header>div{display:flex;align-items:center;gap:5px}header button{padding:8px}}
