:root{font-family:Inter,ui-sans-serif,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;font-size:15px;color:#342943;background:#faf7fb}*{box-sizing:border-box}body{margin:0;line-height:1.5}h1,h2,p{margin:0 0 .6rem}h1{font-size:2rem;letter-spacing:-.05rem}h2{font-size:1.17rem;letter-spacing:-.015rem}a{color:#6b398d}a:hover{text-decoration:underline}.wrap{width:min(1160px,calc(100% - 32px));margin:0 auto}.top{background:white;border-bottom:1px solid #ecdeec;box-shadow:0 2px 14px #5335680a}.top-inner{display:flex;justify-content:space-between;align-items:center;padding:16px 0;gap:20px}.brand,.account,.actions,.section-title{display:flex;align-items:center;gap:12px}.brand-mark{font-size:1.1rem;font-weight:900;letter-spacing:1px;background:#654579;color:white;padding:10px 12px;border-radius:11px}.brand strong{display:block;font-size:1.03rem}.brand small{display:block;color:#8b7c91}.account{font-size:.92rem}.account small{color:#8b7c91}.intro{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:33px 0 22px}.intro p{color:#82738a}.eyebrow{font-size:.73rem!important;letter-spacing:.12em;font-weight:800;color:#a06c90!important}.soft-pill{background:#f0e4f4;color:#6e4085;padding:7px 12px;border-radius:99px;white-space:nowrap;font-weight:700;font-size:.85rem}.grid-two{display:grid;grid-template-columns:1fr 1fr;gap:18px}.panel{background:white;border:1px solid #ecdeec;border-radius:18px;box-shadow:0 10px 25px #57436309;padding:25px;margin-bottom:18px}.panel>h2{margin-bottom:14px}.form{display:grid;gap:16px}.form label{display:grid;gap:5px;font-size:.89rem;font-weight:650}.form input:not([type=checkbox]),.form select,.inline-form input{width:100%;border:1px solid #d8cbdc;border-radius:10px;padding:11px 12px;color:#342943;background:#fff;font:inherit;min-width:0}.form input:focus,.form select:focus{outline:2px solid #c5a6df}.two-inputs{display:grid;grid-template-columns:1fr 1fr;gap:12px}.button{appearance:none;border:1px solid #654579;border-radius:10px;background:#654579;color:#fff;padding:11px 16px;font:inherit;font-weight:700;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center;gap:6px}.button:hover{background:#513568;color:#fff;text-decoration:none}.button.outline{background:white;color:#654579}.button.outline:hover{background:#f3eaf6}.button:disabled{opacity:.45;cursor:not-allowed}.button.tiny{padding:6px 10px;font-size:.83rem}.section-title{justify-content:space-between;margin-bottom:12px}.section-title h2{margin:0}.number{border-radius:99px;padding:3px 9px;background:#f5eaf4;color:#6a3d79;font-weight:800}.muted,.hint{color:#84758b}.hint{font-size:.88rem}.form-label{font-size:.89rem;font-weight:650}.checkboxes{display:flex;gap:12px;flex-wrap:wrap;padding-top:8px}.checkboxes label{display:flex;align-items:center;gap:4px;font-weight:500}.class-list{display:grid;gap:12px}.class-card{display:flex;gap:14px;padding:13px;background:#f9f5fa;border:1px solid #f0e8f1;border-radius:12px}.class-icon{font-size:1.35rem;background:white;border-radius:10px;padding:9px;height:max-content}.class-card strong{display:block}.class-card small{color:#877a8a}.upload-panel{border-color:#cbb2d3}.progress-track{width:100%;height:12px;border-radius:20px;background:#eee4ef;overflow:hidden}.progress-bar{width:0;height:100%;background:linear-gradient(90deg,#9c70bf,#6d9b79);transition:width .2s}.table-scroll{width:100%;overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:.86rem;min-width:600px}th{text-align:left;background:#faf6fb;color:#6d547a}td,th{padding:10px;border-bottom:1px solid #f0eaf0;vertical-align:top}.inline-form{display:flex;gap:7px}.inline-form input{max-width:210px}.status{border-radius:99px;padding:4px 8px;background:#f3e6cd;color:#74582d;font-size:.78rem}.status.complete{background:#e0f4e7;color:#287445}.small-panel{max-width:560px}.login{max-width:430px;margin:65px auto 110px}.login .panel{padding:35px}.login p{margin-bottom:20px}.flash{margin-top:14px;padding:12px 16px;border-radius:9px;background:#e7f3e8;color:#2b7147}.flash.error{background:#fae9e8;color:#963734}.footer{color:#a597a9;padding:18px 0 40px;font-size:.78rem}@media(max-width:760px){.grid-two{grid-template-columns:1fr}.intro{align-items:flex-start;flex-direction:column}.two-inputs{grid-template-columns:1fr}.panel{padding:18px}.account{font-size:.75rem}.actions{flex-wrap:wrap}}
