:root{--ink:#17203a;--muted:#71809b;--line:#e8edf5;--bg:#f5f7fb;--navy:#172554;--violet:#7158e5;--violet-dark:#5a41d1;--mint:#dbf7eb;--danger:#d9425d}*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;font-size:14px}.app-shell{min-height:100vh;display:flex}.sidebar{width:238px;background:#111b40;color:#cbd4ef;padding:26px 15px;position:fixed;inset:0 auto 0 0;display:flex;flex-direction:column;z-index:5}.brand{display:flex;gap:10px;align-items:center;font-size:18px;font-weight:800;color:white;padding:0 10px 38px}.brand>span:last-child span{color:#a999ff}.brand-mark{width:31px;height:31px;border-radius:9px;display:grid;place-items:center;background:linear-gradient(135deg,#9e8bff,#6047d8);font-size:11px}nav{display:grid;gap:6px}nav a{color:#b8c3e2;text-decoration:none;border-radius:9px;padding:12px 13px;font-size:14px}nav a.active,nav a:hover{color:#fff;background:#263360}.side-foot{font-size:12px;color:#8492b9;margin:auto 10px 2px;line-height:1.65}.side-foot small{color:#65749d}main{width:calc(100% - 238px);margin-left:238px;padding:34px clamp(18px,4vw,62px) 50px;max-width:1800px}header{display:flex;justify-content:space-between;align-items:center;margin-bottom:27px}h1,h2,p{margin:0}h1{font-size:28px;letter-spacing:-.6px}h2{font-size:16px}.eyebrow{font-size:10px;font-weight:800;letter-spacing:1.25px;color:#7986a4;margin-bottom:5px}.primary,.secondary,.row-actions button{border:0;cursor:pointer;font:inherit;border-radius:9px;padding:11px 16px;font-weight:700}.primary{background:var(--violet);color:white;box-shadow:0 7px 15px #7158e533}.primary:hover{background:var(--violet-dark)}.small{padding:9px 13px}.secondary{background:#edf0f7;color:#34415e}.menu-button{display:none}.hero{color:white;min-height:122px;border-radius:16px;padding:23px 26px;background:linear-gradient(110deg,#202b61,#785fe1);display:flex;align-items:center;justify-content:space-between;margin-bottom:18px;overflow:hidden}.hero .eyebrow{color:#b8c5ff}.hero strong{font-size:34px;display:block;letter-spacing:-1px}.hero span{font-size:12px;color:#d9dfff}.hero-art{font-size:65px;color:#bcb1ff66;transform:rotate(12deg)}.panel{background:white;border:1px solid var(--line);border-radius:14px}.filters{padding:13px;margin-bottom:18px}.filters form{display:flex;gap:10px}.search{border:1px solid var(--line);display:flex;align-items:center;border-radius:8px;padding:0 11px;flex:1;color:#8995ad}.search input,.filters select{border:0;outline:0;font:inherit;padding:10px 7px;min-width:0;width:100%;color:var(--ink)}.filters select{border:1px solid var(--line);border-radius:8px;width:170px;padding:0 10px}.clear{align-self:center;color:#6750cf;font-weight:700;text-decoration:none;padding:6px}.table-panel{overflow:hidden}.table-header{padding:20px 22px 16px;display:flex;justify-content:space-between;align-items:center}.table-header p{font-size:12px;color:var(--muted);margin-top:5px}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;min-width:940px}th{text-transform:uppercase;font-size:10px;letter-spacing:.8px;text-align:left;color:#8793ac;background:#fafbfe;padding:12px 22px;border-block:1px solid var(--line)}td{padding:14px 22px;border-bottom:1px solid var(--line);vertical-align:middle;font-size:13px}tbody tr:hover{background:#fbfcff}td b,td small{display:block}td small{color:var(--muted);font-size:11px;margin-top:4px;max-width:180px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.student{display:flex;align-items:center;gap:10px;min-width:180px}.student img,.avatar{width:34px;height:34px;border-radius:50%;object-fit:cover;flex:none}.avatar{display:grid;place-items:center;background:#e6e1ff;color:#614bd0;font-weight:800}.badge{display:inline-block;border-radius:999px;padding:5px 9px;font-size:11px;font-weight:800;background:#eef1f6;color:#68748e}.badge.pass{background:var(--mint);color:#14734c}.doc-link{color:#654fd1;text-decoration:none;font-size:12px;font-weight:800}.muted{color:#a7b0c2}.row-actions{display:flex;gap:6px}.row-actions button{padding:6px 8px;background:#eef1f7;color:#46526d;font-size:11px}.row-actions .delete{color:var(--danger);background:#fff0f2}.pagination{display:flex;justify-content:flex-end;padding:14px 20px;gap:5px}.pagination a{padding:7px 10px;text-decoration:none;color:#55617d;border-radius:6px}.pagination a.current{background:#ece8ff;color:#624bd1;font-weight:800}.notice{padding:13px 16px;border-radius:9px;margin:0 0 18px;font-weight:600}.notice.success{background:#e4f8ed;color:#137447}.notice.error{background:#ffebee;color:#b22c46}.modal{position:fixed;inset:0;background:#10172e99;display:none;align-items:center;justify-content:center;padding:20px;z-index:10}.modal.show{display:flex}.modal-card{background:white;border-radius:16px;width:min(920px,100%);max-height:92vh;overflow:auto;box-shadow:0 22px 70px #111a3d66}.modal-head{display:flex;justify-content:space-between;padding:22px 26px 17px;border-bottom:1px solid var(--line)}.icon-close{background:#eff1f6;border:0;width:31px;height:31px;font-size:23px;line-height:1;border-radius:8px;cursor:pointer;color:#526079}.form-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px;padding:23px 26px}label{display:grid;gap:6px;color:#526079;font-size:12px;font-weight:700}label input,label textarea{border:1px solid #dce3f0;border-radius:8px;padding:9px 10px;font:inherit;color:var(--ink);width:100%;background:#fff}label input:focus,label textarea:focus{outline:2px solid #a899ff66;border-color:#856ff0}label small{font-weight:500;color:#929db3}.full{grid-column:1/-1}.modal-footer{display:flex;justify-content:flex-end;gap:10px;padding:17px 26px;border-top:1px solid var(--line);position:sticky;bottom:0;background:white}.hidden{display:none}.locked{overflow:hidden}@media(max-width:900px){.sidebar{transform:translateX(-100%);transition:.2s}.sidebar.open{transform:translateX(0)}main{width:100%;margin-left:0;padding:24px 18px}.menu-button{display:block;border:0;background:#ebeff7;border-radius:8px;padding:9px;font-size:17px;margin-right:12px}header{justify-content:flex-start}header>div{margin-right:auto}.hero{min-height:105px}.form-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){h1{font-size:23px}header>.primary{display:none}.filters form{flex-wrap:wrap}.search{flex-basis:100%}.filters select{flex:1}.hero{border-radius:12px}.form-grid{grid-template-columns:1fr;padding:18px}.modal-head,.modal-footer{padding-inline:18px}.table-header{padding:17px}.full{grid-column:auto}}
