/* Styles for pages added in BeaconLens (sign-in, admin, school picker). */
:root { --navy:#1E2A33; --navy-hover:#161F26; --navy-soft:#E9EBEC; --accent:#2FA36B; --accent-hover:#288B5B; --accent-soft:#E0F1E9; --live:#25825A; --live-soft:#E0F1E9; }
.school-name { font-weight:600; font-size:14px; color:var(--navy); }
.school-switch { display:flex; gap:6px; align-items:center; }
.school-switch select { padding:6px 10px; border-radius:10px; border:1px solid var(--border); background:var(--surface); font:inherit; font-size:13px; }
.top-link { font-size:13px; font-weight:600; color:var(--navy); text-decoration:none; padding:6px 10px; border-radius:10px; }
.top-link:hover { background:var(--surface-2); }
.top-link.as-button { background:none; border:none; cursor:pointer; font-family:inherit; }

.auth-wrap { min-height:100vh; display:flex; align-items:center; justify-content:center; padding:24px; }
.auth-card { background:var(--surface); border:1px solid var(--border); border-radius:20px; padding:38px 34px; max-width:440px; width:100%; text-align:center; box-shadow:var(--shadow); }
.auth-card h1 { font-family:'Fraunces',Georgia,serif; font-style:italic; font-weight:600; color:var(--navy); font-size:28px; margin:6px 0 4px; }
.auth-card p { color:var(--text-muted); line-height:1.55; font-size:14px; }
.auth-card .brand-mark { width:56px; height:56px; margin:0 auto; }
.sso-btn { display:flex; width:100%; align-items:center; justify-content:center; gap:10px; padding:12px 16px; margin-top:12px; border-radius:12px; border:1px solid var(--border); background:var(--surface); font:inherit; font-weight:600; font-size:14px; color:var(--text); cursor:pointer; }
.sso-btn:hover { background:var(--surface-2); }
.sso-btn:disabled { opacity:.6; cursor:wait; }
.sso-btn svg { width:18px; height:18px; }
.status-box { border-radius:12px; padding:14px 16px; margin-top:18px; font-size:13.5px; text-align:left; }
.status-success { background:var(--success-soft); color:var(--success); }
.status-danger { background:var(--danger-soft); color:var(--danger); }

.admin-grid { display:grid; grid-template-columns:1fr; gap:16px; }
@media (min-width: 900px) { .admin-grid.two { grid-template-columns:1fr 1fr; } }
.admin-table { width:100%; border-collapse:collapse; font-size:13px; }
.admin-table th, .admin-table td { text-align:left; padding:8px 6px; border-bottom:1px solid var(--border); vertical-align:middle; }
.admin-table input[type=text], .admin-table input[type=email], .admin-table select { width:100%; padding:6px 8px; border:1px solid var(--border); border-radius:8px; font:inherit; font-size:13px; background:var(--surface); }
.admin-form { display:grid; gap:10px; }
.admin-form label { font-size:12.5px; font-weight:600; color:var(--text-muted); display:block; margin-bottom:4px; }
.admin-form input, .admin-form textarea, .admin-form select { width:100%; padding:9px 11px; border:1px solid var(--border); border-radius:10px; font:inherit; font-size:14px; background:var(--surface); }
.admin-form textarea { font-family:ui-monospace,Menlo,Consolas,monospace; font-size:12.5px; }
.inline-row { display:flex; gap:8px; flex-wrap:wrap; align-items:end; }
.inline-row > * { flex:1 1 140px; }
.notice { padding:10px 14px; border-radius:10px; font-size:13px; margin-bottom:14px; }
.notice.ok { background:var(--success-soft); color:var(--success); }
.notice.err { background:var(--danger-soft); color:var(--danger); }
.help { font-size:12px; color:var(--text-muted); margin-top:4px; }
