:root{color:#17202a;font-synthesis:none;text-rendering:optimizelegibility;background:#f6f8fb;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;line-height:1.5}*{box-sizing:border-box}body{min-width:320px;margin:0}a{color:inherit;text-decoration:none}button{font:inherit}.app-shell{grid-template-columns:260px minmax(0,1fr);min-height:100vh;display:grid}.sidebar{color:#f8fafc;background:#101820;flex-direction:column;gap:32px;padding:24px;display:flex}.brand{align-items:center;gap:12px;display:flex}.brand-mark{color:#101820;background:#48c7b6;border-radius:8px;place-items:center;width:40px;height:40px;font-weight:800;display:grid}.brand strong,.brand span{display:block}.brand span{color:#9fb1c3;font-size:13px}.nav-list{gap:8px;display:grid}.nav-item{color:#cbd5e1;cursor:pointer;text-align:left;background:0 0;border:0;border-radius:8px;align-items:center;gap:10px;width:100%;padding:10px 12px;font-size:14px;display:flex}.nav-item.active,.nav-item:hover{color:#fff;background:#1f2d3a}.workspace{gap:28px;padding:28px;display:grid}.topbar{justify-content:space-between;align-items:flex-start;gap:24px;display:flex}h1,h2,h3,p{margin:0}h1{letter-spacing:0;font-size:clamp(28px,4vw,42px);line-height:1.1}h2{font-size:22px}h3{font-size:16px}.topbar p,.section-heading p,.status-card p,.module-card p{color:#607084}.session-actions{flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:10px;display:flex}.primary-button,.secondary-button,.danger-button{cursor:pointer;border:0;border-radius:8px;align-items:center;gap:8px;min-height:40px;padding:0 16px;font-size:14px;font-weight:700;display:inline-flex}.primary-button{color:#fff;background:#1f6feb}.primary-button:disabled{cursor:wait;opacity:.65}.secondary-button:disabled{cursor:not-allowed;opacity:.55}.secondary-button{color:#243241;background:#e7edf4}.danger-button{color:#b42318;background:#fee4e2}.user-pill{background:#fff;border:1px solid #dbe4ee;border-radius:8px;align-items:center;gap:8px;min-height:40px;padding:0 12px;font-size:14px;display:flex}.status-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;display:grid}.status-card,.module-card,.status-panel{background:#fff;border:1px solid #dce5ef;border-radius:8px;box-shadow:0 12px 32px #1018200f}.status-card{gap:14px;min-width:0;padding:18px;display:flex}.status-card strong,.status-card span{display:block}.status-card p{overflow-wrap:anywhere}.card-icon{color:#0d7c6f;background:#e8f7f4;border-radius:8px;flex:none;place-items:center;width:40px;height:40px;display:grid}.label{color:#607084;letter-spacing:.08em;text-transform:uppercase;font-size:12px;font-weight:800}.module-section{gap:16px;display:grid}.section-heading{gap:4px;display:grid}.module-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.module-card{gap:18px;min-height:160px;padding:18px;display:grid}.module-card svg{color:#1f6feb}.pact-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.pact-card{align-content:start}.lti-card{min-height:190px}.tool-actions{flex-wrap:wrap;gap:8px;display:flex}.link-list{gap:6px;display:grid}.link-list a{color:#1f6feb;overflow-wrap:anywhere;font-size:14px;font-weight:700}.link-list span{color:#607084;font-size:14px}.admin-console{grid-template-columns:minmax(220px,.8fr) minmax(260px,1fr) minmax(280px,1.2fr);gap:14px;display:grid}.admin-panel{background:#fff;border:1px solid #dce5ef;border-radius:8px;gap:12px;min-width:0;padding:16px;display:grid}.admin-panel input:not([type=checkbox]){border:1px solid #cad6e2;border-radius:8px;width:100%;min-height:40px;padding:0 10px}.admin-panel select{background:#fff;border:1px solid #cad6e2;border-radius:8px;width:100%;min-height:40px;padding:0 10px}.admin-panel input:disabled{cursor:not-allowed;background:#eef3f8}.panel-title{align-items:center;gap:8px;display:flex}.panel-title svg{color:#1f6feb}.user-list{gap:8px;max-height:320px;display:grid;overflow:auto}.user-row{color:#17202a;cursor:pointer;text-align:left;background:#f6f8fb;border:1px solid #dce5ef;border-radius:8px;gap:2px;padding:10px;display:grid}.user-row.selected,.user-row:hover{border-color:#1f6feb}.user-row span{color:#607084;font-size:13px}.assignments-panel{align-content:start}.gradebook-console{grid-template-columns:minmax(220px,.8fr) minmax(260px,1fr) minmax(280px,1.2fr)}.gradebook-layout{grid-template-columns:repeat(3,minmax(260px,1fr));gap:14px;display:grid}.result-list{gap:8px;display:grid}.result-row{background:#f6f8fb;border:1px solid #dce5ef;border-radius:8px;justify-content:space-between;align-items:center;gap:16px;padding:10px;display:flex}.result-row span{color:#607084;font-size:13px;display:block}.checkbox-group{gap:8px;display:grid}.checkbox-group label{align-items:center;gap:8px;display:flex}.field-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.field-grid label{gap:6px;display:grid}.toggle-row{align-items:center;gap:8px;display:flex}.auth-callback{place-items:center;min-height:100vh;padding:24px;display:grid}.status-panel{max-width:520px;padding:28px}.view-skeleton{min-height:260px}.skeleton-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;display:grid}.skeleton-grid.overview{grid-template-columns:repeat(2,minmax(0,1fr))}.skeleton-grid.users{grid-template-columns:minmax(220px,.8fr) minmax(260px,1fr) minmax(280px,1.2fr)}.skeleton-card{background:#fff;border:1px solid #dce5ef;border-radius:8px;gap:14px;min-height:150px;padding:18px;display:grid}.skeleton-line,.skeleton-icon{background:linear-gradient(90deg,#e9eff5 25%,#f6f8fb 50%,#e9eff5 75%) 0 0/200% 100%;border-radius:8px;animation:1.2s ease-in-out infinite skeleton-pulse;display:block}.skeleton-line{width:100%;height:14px}.skeleton-line.short{width:58%}.skeleton-title{max-width:280px;height:24px}.skeleton-copy{max-width:420px}.skeleton-icon{width:40px;height:40px}@keyframes skeleton-pulse{0%{background-position:200% 0}to{background-position:-200% 0}}.eyebrow{color:#607084;letter-spacing:.08em;text-transform:uppercase;margin-bottom:10px;font-size:12px;font-weight:800}.error-text{color:#b42318;font-weight:700}@media (width<=900px){.app-shell{grid-template-columns:1fr}.sidebar{gap:18px}.nav-list{grid-template-columns:repeat(3,minmax(0,1fr))}.status-grid,.module-grid,.skeleton-grid,.skeleton-grid.overview,.skeleton-grid.users,.gradebook-layout,.admin-console{grid-template-columns:1fr}.topbar{display:grid}}@media (width<=560px){.workspace,.sidebar{padding:18px}.nav-list{grid-template-columns:1fr}.session-actions{justify-content:stretch;align-items:stretch}.primary-button,.secondary-button,.danger-button,.user-pill{justify-content:center;width:100%}.field-grid{grid-template-columns:1fr}}
