:root{--stride-blue:#0035f0;--stride-blue-hover:#0028cc;--stride-pill-border:#7d96ff;--ink:#111827;--ink-soft:#4b5563;--panel:#fff;--line:#dbe7f5;--danger:#9b2c2c;--success:#065f46;--radius:.625rem;--font-sans:"Poppins", "Son Pro", "Inter", ui-sans-serif, system-ui, sans-serif;font-family:var(--font-sans);color:var(--ink)}*,:before,:after{box-sizing:border-box}html{-webkit-font-smoothing:antialiased;height:100%}body{min-height:100vh;font-family:var(--font-sans);color:var(--ink);background:linear-gradient(#fff 0%,#cfeafe 50%,#fff 100%) fixed;margin:0}a{color:var(--stride-blue)}h1,h2,h3{letter-spacing:-.01em;margin:0 0 .4rem;font-weight:600}p{color:var(--ink-soft);margin:0;line-height:1.5}.app-frame{flex-direction:column;min-height:100vh;padding:2rem;display:flex}.app-main{flex:1;width:100%;max-width:1600px;margin:3rem auto 0}.stride-header-inner,.stride-footer-inner{justify-content:space-between;align-items:center;gap:1rem;width:100%;max-width:80rem;margin:0 auto;display:flex}.stride-header-left,.stride-header-right{align-items:center;gap:1rem;display:flex}.logo-link{align-items:center;text-decoration:none;display:inline-flex}.k12-logo{width:3rem;height:1.5rem}.school-pill{border:1px solid var(--stride-pill-border);color:var(--stride-blue);background:#ffffffd9;border-radius:999px;align-items:center;padding:.25rem .75rem;font-size:.8rem;font-weight:600;display:inline-flex}.school-pill-muted{color:var(--ink-soft);border-color:var(--line)}.stride-nav{flex-wrap:wrap;gap:.35rem;display:flex}.nav-link{color:var(--ink-soft);border-radius:999px;padding:.45rem .85rem;font-size:.9rem;font-weight:600;text-decoration:none}.nav-link:hover{color:var(--stride-blue);background:#0035f00f}.nav-link-active{background:var(--stride-blue);color:#fff}.logout-btn{appearance:none;border:1px solid var(--stride-blue);color:var(--ink-soft);font:inherit;cursor:pointer;background:0 0;border-radius:999px;align-items:center;gap:.4rem;padding:.4rem .85rem;font-size:.85rem;font-weight:600;display:inline-flex}.logout-btn:hover{background:#f9fafb}.logout-icon{width:1rem;height:1rem;color:var(--stride-blue)}.stride-footer{width:100%;margin-top:1.5rem;padding:.75rem;font-size:.875rem}.stride-footer-inner{flex-wrap:wrap}.stride-footer-left{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.powered-by{align-items:center;gap:.35rem;display:inline-flex}.legal-links{flex-wrap:wrap;gap:.75rem;margin:0;padding:0;list-style:none;display:flex}.legal-links a{color:var(--stride-blue);text-decoration:underline}.user-meta{color:var(--ink-soft);margin:0 0 1rem;font-size:.92rem}.panel{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);padding:1.25rem;box-shadow:0 10px 30px #0f172a0f}.hero{align-content:center;gap:1rem;max-width:40rem;min-height:55vh;padding:2rem 0;display:grid}.hero h1{color:var(--ink);font-size:clamp(2rem,4vw,3rem)}.stack{gap:1rem;display:grid}.row{flex-wrap:wrap;align-items:center;gap:.75rem;display:flex}.muted{color:var(--ink-soft);font-size:.92rem}.error{color:var(--danger);background:#fdecec;border:1px solid #f3c1c1;border-radius:10px;padding:.75rem 1rem}.success{color:var(--success);background:#e8f6ee;border:1px solid #b9dfc8;border-radius:10px;padding:.75rem 1rem}.button{appearance:none;background:var(--stride-blue);color:#fff;font:inherit;cursor:pointer;border:1px solid #0000;border-radius:999px;align-items:center;gap:.4rem;padding:.65rem 1.1rem;font-weight:600;text-decoration:none;display:inline-flex}.button:hover{background:var(--stride-blue-hover)}.button:disabled{opacity:.6;cursor:not-allowed}.button.secondary{border-color:var(--stride-blue);color:var(--stride-blue);background:0 0}table{border-collapse:collapse;width:100%}th,td{text-align:left;border-bottom:1px solid var(--line);vertical-align:top;padding:.75rem .4rem}th{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-soft);font-size:.75rem}label{gap:.35rem;font-size:.92rem;font-weight:600;display:grid}input,select{font:inherit;border:1px solid var(--line);background:#fbfdff;border-radius:10px;padding:.65rem .75rem}.form-grid{gap:.9rem;max-width:520px;display:grid}@media (width<=720px){.app-frame{padding:1rem}.stride-header-inner,.stride-footer-inner{flex-direction:column;align-items:flex-start}.stride-header-right{flex-wrap:wrap;width:100%}}
