:root{--ink:#14213d;--muted:#64748b;--bg:#f4f7fb;--card:#fff;--accent:#5b21b6;--green:#087f5b;--red:#b42318;--line:#dbe3ee}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font:15px/1.5 system-ui,-apple-system,sans-serif}header{background:#10172a;color:#fff;padding:16px 5%;display:flex;align-items:center;justify-content:space-between}nav a{color:#dbeafe;text-decoration:none;margin-left:20px}.brand{font-size:19px;font-weight:750}main{max-width:1180px;margin:32px auto;padding:0 20px}.card{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:22px;box-shadow:0 3px 12px #0f172a0a;margin-bottom:18px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px}.stat strong{display:block;font-size:28px}h1{font-size:28px;margin:0 0 18px}h2{font-size:19px;margin-top:0}.muted{color:var(--muted)}button,.button{border:0;border-radius:9px;padding:10px 15px;background:var(--accent);color:#fff;font-weight:650;cursor:pointer;text-decoration:none;display:inline-block}.secondary{background:#e8eaf6;color:#28234b}.danger{background:var(--red)}input,select{border:1px solid #cbd5e1;border-radius:8px;padding:10px;background:#fff}label{display:block;font-weight:650;margin:10px 0 5px}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:12px 10px;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:12px;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}.pill{display:inline-block;padding:3px 9px;border-radius:99px;background:#fff4cc;color:#7a4d00;font-size:12px;font-weight:700}.approved{background:#dff7ea;color:#05603e}.actions{display:flex;gap:8px;flex-wrap:wrap}.flash{padding:12px;border-radius:8px;background:#dff7ea;margin-bottom:16px}.progress{height:10px;background:#e2e8f0;border-radius:8px;overflow:hidden}.progress span{display:block;height:100%;background:var(--accent)}.assignment-row{margin-bottom:10px;grid-template-columns:minmax(240px,2fr) 130px minmax(180px,1fr) auto}.assignment-row button{align-self:stretch}@media(max-width:800px){.assignment-row{grid-template-columns:1fr}}@media(max-width:700px){table thead{display:none}table,tr,td{display:block}tr{border-bottom:2px solid var(--line);padding:8px}td{border:0;padding:5px}header{align-items:flex-start;gap:12px;flex-direction:column}nav a{margin:0 14px 0 0}}
