:root{--ink:#10243f;--paper:#f4f0e8;--white:#fffdf8;--amber:#f2a900;--blue:#3156d3;--muted:#687487;--line:rgba(16,36,63,.14);--red:#b42318;--green:#16834f}
*{box-sizing:border-box}html{min-height:100%}body{min-height:100vh;margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif}a{color:inherit}.auth-top{height:78px;padding:0 clamp(20px,5vw,76px);display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);background:rgba(244,240,232,.94)}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-weight:800}.brand-mark{width:36px;height:36px;display:grid;place-items:center;background:var(--ink);color:#fff;font-size:12px;border-radius:50%}.back{font-size:13px;font-weight:800;color:var(--blue);text-decoration:none}.auth-shell{width:min(1080px,calc(100% - 40px));margin:52px auto 70px;display:grid;grid-template-columns:.9fr 1.1fr;box-shadow:0 22px 65px rgba(16,36,63,.12)}.auth-intro{background:var(--ink);color:#fff;padding:clamp(38px,6vw,74px);min-height:590px;display:flex;flex-direction:column}.eyebrow{text-transform:uppercase;letter-spacing:.16em;font-size:11px;font-weight:800;color:var(--amber);margin:0 0 26px}.auth-intro h1{font:500 clamp(43px,5vw,68px)/.98 Georgia,'Times New Roman',serif;letter-spacing:-.045em;margin:0}.auth-intro p{color:#b8c3d2;line-height:1.75;font-size:15px}.auth-points{margin-top:auto;border-top:1px solid rgba(255,255,255,.16)}.auth-points div{padding:17px 0;border-bottom:1px solid rgba(255,255,255,.16);font-size:13px}.auth-points span{color:var(--amber);font:700 10px monospace;margin-right:12px}.auth-card{background:var(--white);padding:clamp(34px,6vw,70px);min-height:590px}.tabs{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--line);margin-bottom:34px}.tab{border:0;background:none;padding:15px 8px;color:var(--muted);font-weight:800;cursor:pointer;border-bottom:3px solid transparent}.tab.active{color:var(--blue);border-color:var(--blue)}.panel{display:none}.panel.active{display:block}.panel h2,.student-card h1{font:500 35px/1.1 Georgia,'Times New Roman',serif;margin:0 0 10px}.lead{color:var(--muted);font-size:14px;line-height:1.6;margin:0 0 27px}.field{display:grid;gap:8px;margin:17px 0}.field label{font-size:12px;font-weight:800}.field input{width:100%;height:49px;border:1px solid var(--line);background:#fff;padding:0 14px;font-size:15px;color:var(--ink);border-radius:3px}.field input:focus{outline:3px solid rgba(49,86,211,.14);border-color:var(--blue)}.submit{width:100%;min-height:51px;border:0;border-radius:3px;background:var(--blue);color:#fff;font-weight:800;font-size:14px;cursor:pointer;margin-top:12px}.submit:hover{filter:brightness(.94)}.submit:disabled{opacity:.6;cursor:wait}.text-button{border:0;background:none;color:var(--blue);font-weight:800;cursor:pointer;padding:13px 0;font-size:12px}.message{display:none;padding:12px 14px;margin:18px 0;border-radius:3px;font-size:13px;line-height:1.5}.message.show{display:block}.message.error{background:#fee4e2;color:var(--red)}.message.success{background:#dcfae6;color:var(--green)}.fine{font-size:11px;color:var(--muted);line-height:1.55;margin-top:18px}.student-shell{width:min(980px,calc(100% - 40px));margin:55px auto}.student-card{background:var(--white);padding:clamp(30px,5vw,58px);border-top:5px solid var(--blue);box-shadow:0 18px 55px rgba(16,36,63,.1)}.student-head{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;border-bottom:1px solid var(--line);padding-bottom:26px}.logout{border:1px solid var(--ink);background:transparent;padding:11px 16px;font-weight:800;cursor:pointer}.resources{margin-top:30px}.resources h2{font:500 28px Georgia,serif}.resource-section{margin-top:28px}.resource-section h3{margin:0 0 13px;font:500 21px Georgia,serif;color:var(--ink)}.resource-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}.resource{border:1px solid var(--line);padding:18px;background:#fff}.empty{background:var(--paper);padding:24px;color:var(--muted);line-height:1.65}.loading{padding:40px 0;color:var(--muted)}
.resource{text-decoration:none;display:grid;gap:9px}.resource:hover{border-color:var(--blue);box-shadow:0 8px 24px rgba(16,36,63,.08)}.resource span{font-size:12px;color:var(--blue);font-weight:800}.resource small{color:var(--muted);line-height:1.5}.resource.pdf{border-left:4px solid var(--amber)}.resource.pdf button{justify-self:start;border:0;background:none;padding:0;color:var(--blue);font-weight:800;cursor:pointer}.resource-meta{display:flex;gap:9px;flex-wrap:wrap;font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}.top-actions{display:flex;align-items:center;gap:18px}.student-request{margin-top:30px;padding:24px;background:#eef2ff;border-left:4px solid var(--blue)}.student-request h2{font:500 26px Georgia,serif;margin:0 0 8px}.student-request p{color:var(--muted);line-height:1.55;margin:0}.compact{width:auto;min-width:145px;padding:0 20px}.admin-search{display:flex;gap:10px;margin:28px 0}.admin-search input{flex:1;min-width:0;height:49px;border:1px solid var(--line);padding:0 14px;font-size:15px}.admin-list{display:grid;gap:12px}.student-row{border:1px solid var(--line);background:#fff;padding:18px;display:flex;justify-content:space-between;gap:20px}.student-info{display:grid;gap:5px}.student-info span,.student-info small{color:var(--muted)}.student-info small{font-size:11px}.student-info .active-access{color:var(--green);font-weight:800}.row-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.row-actions button{border:0;background:var(--blue);color:#fff;padding:10px 12px;font-weight:800;cursor:pointer}.row-actions .secondary{background:var(--ink)}.row-actions .danger{background:var(--red)}.row-actions button:disabled{opacity:.6}
@media(max-width:760px){.auth-shell{grid-template-columns:1fr;margin-top:24px}.auth-intro{min-height:330px}.auth-card{min-height:auto}.auth-points{margin-top:32px}.student-head{display:block}.student-head .logout{margin-top:18px}.resource-grid{grid-template-columns:1fr}.top-actions{gap:10px}.top-actions .back{font-size:12px}.student-row{display:grid}.row-actions{justify-content:flex-start}.admin-search{display:grid}.compact{width:100%}}
