:root{--blue:#0046c8;--ink:#101828;--muted:#667085;--line:#e4e7ec;--surface:#fff;--bg:#f4f7fb;--danger:#b42318;--success:#067647}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:16px/1.5 Carlito,Arial,sans-serif}.topbar{position:sticky;top:0;z-index:10;display:flex;align-items:center;gap:2rem;padding:.9rem max(1.25rem,calc((100vw - 1240px)/2));background:#07162e;color:#fff;box-shadow:0 4px 20px #07162e33}.brand{font-size:1.4rem;font-weight:800;letter-spacing:.04em}.brand span{color:#55a2ff}.topbar nav{display:flex;gap:1.2rem;flex:1}.topbar a,.link-button{color:#dbe8ff;text-decoration:none}.admin-user{display:flex;gap:1rem;align-items:center}.admin-user form{margin:0}.link-button{border:0;background:transparent;padding:0;cursor:pointer}.shell{width:min(1240px,calc(100% - 2rem));margin:2rem auto 5rem}.hero{padding:2rem;border-radius:24px;color:#fff;background:linear-gradient(135deg,#0046c8,#08285e);box-shadow:0 18px 50px #0046c833}.hero h1{margin:.2rem 0;font-size:clamp(2rem,5vw,3.6rem);line-height:1}.eyebrow{text-transform:uppercase;letter-spacing:.14em;font-size:.76rem;font-weight:800;margin:0;color:#75a7ff}.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:1rem;margin:1.5rem 0}.stats article,.panel,.login-card{background:var(--surface);border:1px solid var(--line);border-radius:18px;box-shadow:0 8px 25px #1018280c}.stats article{padding:1.25rem}.stats strong{display:block;font-size:2rem;color:var(--blue)}.stats span,.muted,small{display:block;color:var(--muted)}.panel{padding:1.5rem;margin:1.5rem 0;scroll-margin-top:5rem}.panel header h2{margin:.2rem 0 1rem}.editor,.item-card,.assignment{border:1px solid var(--line);border-radius:14px;padding:1rem;margin:.8rem 0;background:#fbfcff}summary{cursor:pointer;font-weight:700}.form-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;margin-top:1rem}.form-grid.compact{grid-template-columns:repeat(5,minmax(0,1fr))}label{display:grid;gap:.35rem;font-weight:700;font-size:.9rem}input,select{width:100%;min-height:42px;border:1px solid #cdd5df;border-radius:9px;padding:.65rem;background:#fff;color:var(--ink);font:inherit}button,.button{align-self:end;min-height:42px;border:0;border-radius:10px;padding:.7rem 1rem;background:var(--blue);color:#fff;font-weight:800;cursor:pointer;text-decoration:none;text-align:center}.cards{display:grid;gap:.8rem}.item-card{display:grid;grid-template-columns:1fr minmax(260px,1.4fr);gap:1rem}.item-card h3{margin:.4rem 0}.pill{display:inline-block;padding:.2rem .55rem;border-radius:999px;background:#eaf1ff;color:#194185;font-size:.75rem;font-weight:800}.check-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:.5rem;margin-bottom:1rem}.check-grid label,.checkbox{display:flex;align-items:center;gap:.5rem;font-weight:500}.check-grid input,.checkbox input{width:auto;min-height:auto}.table-wrap{overflow:auto;margin-top:1rem}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:.8rem;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:.78rem;text-transform:uppercase;color:var(--muted)}.inline{display:flex;gap:.4rem}.inline select{min-width:110px}.notice{padding:.9rem 1rem;border-radius:10px;font-weight:700}.notice.error{background:#fef3f2;color:var(--danger)}.notice.success{background:#ecfdf3;color:var(--success)}.login-page{min-height:100vh;display:grid;place-items:center;background:linear-gradient(135deg,#07162e,#0046c8)}.login-card{width:min(430px,calc(100% - 2rem));padding:2rem}.login-card h1{margin:.2rem 0}.login-card form{display:grid;gap:1rem;margin-top:1.5rem}.league-table{border:1px solid var(--line);border-radius:12px}.league-table .table-action{min-height:32px;padding:.35rem .7rem}.league-table .secondary-action{background:#eaf1ff;color:#194185}.league-table .edit-row td{padding:0 1rem 1rem;background:#f8faff}.league-table .edit-row .form-grid{margin-top:0;padding-top:1rem}.league-table .new-row td{text-align:center;background:#fbfcff}code{padding:.15rem .35rem;border-radius:5px;background:#eef2f7;color:#344054}@media(max-width:850px){.topbar nav{display:none}.stats{grid-template-columns:repeat(2,1fr)}.form-grid,.form-grid.compact,.check-grid,.item-card{grid-template-columns:1fr}.admin-user>span{display:none}}@media(max-width:450px){.stats{grid-template-columns:1fr}.shell{width:min(100% - 1rem,1240px)}.panel{padding:1rem}}
