:root{--nav:#093f52;--blue:#1279b7;--ink:#112d47;--muted:#657e94;--border:#e1eaf1}*{box-sizing:border-box}body{margin:0;background:#f4f8fb;font-family:Inter,Arial,sans-serif;color:var(--ink);font-size:15px}a{color:inherit;text-decoration:none}aside{width:236px;background:linear-gradient(160deg,#083b4d,#0e5269);color:#e7f5fc;position:fixed;inset:0 auto 0 0;padding:35px 18px;display:flex;flex-direction:column}.brand{font-size:32px;font-weight:800;display:flex;gap:14px;align-items:center;padding:0 15px 44px;color:#35c6cf}.brand span{font-size:25px;color:white}.brand small{display:block;font-size:10px;letter-spacing:3px;margin-top:5px}.navlabel{font-size:10px;letter-spacing:1.8px;color:#85b0bf;margin:16px}.nav{padding:17px;border-radius:9px;margin:3px 0}.nav:hover{background:#17627a}.asidefooter{margin-top:auto;padding:20px;line-height:1.8;color:#9cc0cf}main{margin-left:236px}header{padding:18px 32px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:16px;background:#ffffffc9}header form{display:flex;gap:8px}header span{font-size:13px;color:var(--muted)}.content{max-width:1550px;margin:auto;padding:36px}.intro{margin:12px 0 30px}h1{font-size:36px;letter-spacing:-1.3px;margin:12px 0}h2{font-size:21px;margin:20px 0}h3{font-size:17px}.eyebrow{font-size:11px;letter-spacing:1.8px;font-weight:bold;color:var(--blue)}p{line-height:1.6}.intro p,.muted{color:var(--muted)}.card{background:white;border:1px solid var(--border);border-radius:14px;padding:24px;box-shadow:0 5px 18px #163b5510;margin-bottom:20px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.stats strong{display:block;font-size:38px;margin:18px 0 8px}.stats span{color:var(--muted)}.classes{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:18px}.classcard{border-top:4px solid #16b3b0;transition:transform .15s}.classcard:nth-child(2n){border-top-color:#ef993d}.classcard:hover{transform:translateY(-3px)}.classcard h2{font-size:32px}.badge{background:#ecf5fa;padding:7px 10px;border-radius:6px;font-size:12px}.link{color:var(--blue);font-size:13px;font-weight:bold}label{display:block;font-size:12px;font-weight:bold;color:var(--muted)}input,select,textarea,button{font:inherit;border:1px solid #cddde8;border-radius:7px;background:white;padding:11px;color:var(--ink)}input,textarea{display:block;width:100%;margin-top:7px}textarea{resize:vertical;line-height:1.7}select{max-width:100%}button{cursor:pointer;font-weight:bold;white-space:nowrap}button:hover{background:#eaf4f9}.primary{background:var(--blue);border-color:var(--blue);color:white;padding:13px 22px}.primary:hover{background:#08669b}.inline{display:flex;align-items:end;gap:18px;flex-wrap:wrap}.inline h3{margin-right:auto}.tablewrap{padding:0;overflow:auto}table{width:100%;border-collapse:collapse;white-space:nowrap}th{text-align:left;background:#edf5fa;font-size:12px;padding:18px}td{padding:14px;border-top:1px solid var(--border)}td select{min-width:125px;font-size:13px}td input{min-width:160px;margin:0}tbody tr:hover{background:#f1f9ff}.student{font-weight:bold;color:var(--blue)}.savebar{position:sticky;bottom:0;padding:18px;background:#fff;box-shadow:0 -5px 25px #17344d12;display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;gap:12px}.savebar span{font-size:12px;color:var(--muted)}.twocol{display:grid;grid-template-columns:1.1fr 1fr;gap:22px}article{border-bottom:1px solid var(--border);padding:15px 0}article p{font-size:14px}textarea+button{margin-top:18px}.notice{background:#e2f6ec;color:#167651;padding:16px;border-radius:9px}.error{background:#ffeded;color:#a12424;padding:12px;border-radius:9px}.login{max-width:440px}.login label{margin:20px 0}:focus-visible{outline:3px solid #edab49;outline-offset:3px}@media(max-width:1000px){aside{width:185px}main{margin-left:185px}.content{padding:22px}.twocol{grid-template-columns:1fr}.stats{gap:10px}header{flex-wrap:wrap;padding:16px}}@media(max-width:650px){aside{position:static;width:auto;padding:14px;flex-direction:row;align-items:center;gap:10px}.brand{padding:0;font-size:20px}.brand span{font-size:18px}.brand small,.navlabel,.asidefooter{display:none}.nav{font-size:12px;padding:8px}main{margin:0}.content{padding:18px}h1{font-size:27px}.stats{grid-template-columns:1fr}.stats .card{margin:0}.stats strong{font-size:28px;margin:10px 0}.classes{grid-template-columns:repeat(2,1fr)}header{padding:12px}.savebar{align-items:stretch;flex-direction:column}}
