@import url('https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700;800;900&family=Fraunces:wght@600&display=swap');
:root{--ink:#222b40;--muted:#7b87a0;--line:#e0e6f3;--blue:#315df3;--purple:#7653b9}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 15% 0%,#eae3fa,transparent 60%),#f5f7fc;color:var(--ink);font:14px Nunito,sans-serif}button,input,select,textarea{font:inherit}button,a,input,select{touch-action:manipulation}button{cursor:pointer;min-height:44px;border:1px solid #d4defa;border-radius:10px;color:#4264bb;background:#f2f6ff;padding:10px 15px;font-weight:800}button:disabled{opacity:.5;cursor:wait}button:hover:not(:disabled){filter:brightness(.98)}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #b6a1e1;outline-offset:3px}.primary{background:linear-gradient(110deg,#435fe6,#119b91);border:0;color:#fff}.quiet{background:white;color:#7d8aa5;border-color:var(--line)}.danger{color:#c25363;border-color:#f2ccd4;background:#fff5f6}.success{color:#2a8e68;background:#ecfbf3;border-color:#bcebd4}a{color:#5573bd}h1,h2,h3{font-weight:900}h1{font-size:28px;letter-spacing:-.8px;margin:0 0 4px}h2{font-size:21px;margin:0 0 15px}h3{font-size:16px}.muted{color:var(--muted);line-height:1.7}.eyebrow{font-size:10px;letter-spacing:1.8px;font-weight:900;color:#8272aa}.admin-header{padding:25px 35px;display:flex;align-items:center;justify-content:space-between;gap:20px;background:#ffffffc7;border-bottom:1px solid white}.admin-brand{display:flex;align-items:center;gap:12px}.admin-brand img{width:51px;height:51px;border-radius:50%}.admin-brand .wordmark{font:600 26px Fraunces,serif;letter-spacing:-1px}.admin-brand p{margin:3px 0 0;color:#8a93a6;font-size:11px}.header-actions{display:flex;gap:10px;align-items:center}.staff-tag{font-size:9px;font-weight:900;background:#f0e9fb;color:#8661b4;border-radius:20px;padding:7px 11px}.admin-main{padding:25px 35px;max-width:1600px;margin:auto}.admin-tabs{display:flex;gap:10px;border-bottom:1px solid #dce2ef;padding-bottom:15px;margin-bottom:25px;overflow:auto}.admin-tabs button{white-space:nowrap;border:0;background:none;color:#8a95ad;padding:12px 18px}.admin-tabs button.active{background:#e5eaff;color:#4662db;box-shadow:inset 0 0 0 1px #cbd6ff}.page-heading{display:flex;align-items:start;justify-content:space-between;gap:20px;margin-bottom:24px}.page-heading p{margin:6px 0 0}.metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin:22px 0}.metric{background:#ffffffdb;border:1px solid white;border-radius:18px;padding:23px;box-shadow:0 6px 20px #2d3d7105}.metric span{display:block;color:#8794ae;font-size:11px;font-weight:800}.metric strong{display:block;font-size:34px;margin:10px 0 2px;color:#425a8b}.metric small{font-size:10px;color:#a0a8b8}.panel{background:#ffffffdf;border:1px solid white;border-radius:20px;padding:25px;margin:20px 0;box-shadow:0 5px 20px #2f41600a}.panel p{line-height:1.8}.split{display:grid;grid-template-columns:1.3fr 1fr;gap:20px}.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.filter-bar{display:flex;gap:12px;flex-wrap:wrap;margin:18px 0}.filter-bar input{flex:1;min-width:200px}input,select,textarea{border:1px solid #dfe5f0;border-radius:10px;background:#fff;padding:11px 13px;min-height:44px;color:#415169}textarea{min-height:110px;resize:vertical}input[type=checkbox]{min-height:0;width:18px;height:18px;accent-color:#6d68d5}label{display:block;color:#7788a5;font-size:11px;font-weight:800}label input,label select,label textarea{display:block;width:100%;margin:7px 0 0}.check-label{display:flex;align-items:center;gap:10px;font-size:13px;color:#6f7890}.check-label input{width:18px;margin:0}.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:17px}.form-grid .full{grid-column:1/-1}.subject-checks{display:flex;gap:25px;margin-top:9px}.table-wrap{overflow:auto;border:1px solid #e0e6f0;border-radius:14px;background:white}table{width:100%;border-collapse:collapse;white-space:nowrap;font-size:12px}th{text-align:left;color:#8c9bb3;font-size:9px;letter-spacing:.6px;background:#f6f8fc;padding:15px 16px}td{padding:15px 16px;border-top:1px solid #edf0f6;vertical-align:middle}td strong{display:block;font-size:13px}td small{display:block;color:#9ca7ba;margin-top:3px}td button{font-size:11px;padding:8px 12px}.pill{display:inline-block;font-size:10px;padding:5px 9px;border-radius:20px;background:#f0ebf8;color:#9779b4;font-weight:800}.pill.active{background:#e5f7ed;color:#459f76}.pill.paused,.pill.expired{background:#fff0df;color:#b18b55}.empty{text-align:center;padding:45px 20px;color:#9da6b7}.status-message{font-size:12px;color:#7487ac;min-height:18px;margin:10px 0}.error{color:#c25b76}.login-wrap{max-width:430px;margin:11vh auto;padding:30px}.login-brand{text-align:center}.login-brand img{width:75px;height:75px;border-radius:50%;border:5px solid white}.login-brand h1{font-family:Fraunces,serif;margin-top:12px}.login-form label{margin-top:20px}.login-form button{width:100%;margin-top:20px}.login-form .muted{font-size:11px}dialog{border:1px solid white;border-radius:23px;background:#f9fbff;color:var(--ink);width:calc(100% - 35px);max-width:940px;max-height:90vh;overflow:auto;padding:30px;box-shadow:0 25px 90px #1b2d5740}dialog::backdrop{background:#2c33485c;backdrop-filter:blur(5px)}.dialog-close{position:absolute;top:13px;right:13px;border:0;background:white;color:#92a1b9;padding:2px 11px;font-size:23px;min-height:40px}.dialog-heading{margin:5px 35px 24px 0}.dialog-heading p{margin:6px 0 0}.mini-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:20px 0}.mini-card{padding:15px;border:1px solid #e0e6f1;background:#fff;border-radius:12px}.mini-card small{display:block;color:#98a5bd;font-size:9px;font-weight:900;margin-bottom:8px}.mini-card strong{font-size:13px}.section-title{display:flex;align-items:center;justify-content:space-between;gap:15px}.credential-card{padding:20px;background:#eafbf0;border:1px solid #c8ebd6;border-radius:15px;margin:15px 0}.credential-card code{font-size:20px;color:#367c5a;font-weight:800}.access-row{display:flex;gap:10px;flex-wrap:wrap}.access-row input{width:95px}.access-row .reason{flex:1;min-width:150px}.work-sample{border-top:1px solid #e5eaf3;padding:15px 0;font-size:13px;white-space:pre-wrap;overflow-wrap:anywhere}.work-sample small{color:#a0adc2}.curriculum-list{max-height:550px;overflow:auto}.curriculum-list p{border-bottom:1px solid #edf1f6;padding:12px 0;margin:0;font-size:12px}.help-note{font-size:11px;color:#8fa1b9;background:#f0f5fc;border-left:3px solid #a0b2db;padding:12px 16px;line-height:1.8}.audit-list article{padding:15px 0;border-bottom:1px solid #e6ebf3}.audit-list p{margin:5px 0 0;font-size:11px;color:#899ab2}.admin-footer{padding:25px 35px;color:#a8afbf;font-size:10px;text-align:center}.metric-row{display:flex;justify-content:space-between;padding:13px 0;border-bottom:1px solid #edf0f5}.csv-preview{font-size:11px;max-height:200px;overflow:auto;white-space:pre-wrap}.roster-tabs{display:flex;gap:10px;margin:20px 0}.form-error{font-size:12px;color:#c16f83;min-height:20px}summary{cursor:pointer;min-height:35px;color:#6e85af}.grade-badge{font-size:11px;font-weight:900}.notice{padding:14px 18px;border:1px solid #e1e6f2;border-radius:13px;background:#f4f7fd;font-size:12px;color:#8b99b1;line-height:1.7}.small{font-size:11px}@media(max-width:900px){.metrics{grid-template-columns:1fr 1fr}.split{grid-template-columns:1fr}.admin-header,.admin-main{padding:22px}.mini-grid{grid-template-columns:1fr 1fr}.form-grid{grid-template-columns:1fr}.form-grid .full{grid-column:1}.page-heading{flex-direction:column}}@media(max-width:600px){.admin-brand .wordmark{font-size:21px}.admin-brand img{width:40px;height:40px}.admin-brand p{max-width:150px;line-height:1.5}.staff-tag{display:none}.header-actions{gap:7px}.header-actions button{padding:9px 11px;font-size:11px}.admin-header{padding:16px}.admin-main{padding:18px 15px}.admin-tabs{gap:0}.admin-tabs button{font-size:11px;padding:10px 13px}.metrics{gap:12px}.metric{padding:18px}.metric strong{font-size:29px}.panel{padding:18px}h1{font-size:25px}.mini-grid{grid-template-columns:1fr 1fr}.login-wrap{margin:6vh auto;padding:25px}.actions button{font-size:11px}dialog{padding:24px 19px}.access-row button{font-size:11px}.access-row input{font-size:12px}.page-heading .actions{width:100%}}
.dialog-close{min-height:44px;min-width:44px}.check-label{min-height:44px}.form-grid>*{min-width:0}select{max-width:100%}.admin-brand{min-width:0}.admin-brand>div{min-width:0}.header-actions{flex-shrink:0}@media(max-width:600px){.admin-brand .wordmark{font-size:18px;line-height:1.3}.admin-brand img{flex-shrink:0}}
