:root{font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:#152033;background:#f4f6f9;font-synthesis:none;line-height:1.45}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}code{font-family:SFMono-Regular,Consolas,monospace}.app-shell{min-height:100vh;display:grid;grid-template-columns:270px minmax(0,1fr)}.sidebar{position:sticky;top:0;height:100vh;overflow-y:auto;background:#111827;color:#fff;padding:24px 18px;display:flex;flex-direction:column;gap:24px}.brand{display:flex;gap:11px;align-items:center}.brand-mark{width:40px;height:40px;flex:0 0 auto;border-radius:12px;display:grid;place-items:center;background:linear-gradient(145deg,#74f2bd,#45c692);color:#073829;font-size:13px;font-weight:900;box-shadow:0 8px 25px #41d59f2e}.brand strong{display:block;font-size:16px;letter-spacing:-.01em}.brand span{display:block;color:#91a0b4;font-size:11px;margin-top:1px}.brand-large .brand-mark{width:48px;height:48px;font-size:15px}.brand-large strong{font-size:19px}.user-card{padding:12px;border:1px solid #283445;border-radius:13px;background:#182130;display:grid;grid-template-columns:38px minmax(0,1fr);gap:10px;align-items:center}.user-card strong,.user-card span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.user-card strong{font-size:12px}.user-card span{color:#8e9cb0;font-size:10px;margin-top:3px}.avatar{width:37px;height:37px;border-radius:11px;flex:0 0 auto;background:#e8edf3;display:grid;place-items:center;font-size:11px;font-weight:850;color:#415166}.avatar.dark{background:#273548;color:#85e8c0}.avatar.large{width:50px;height:50px;border-radius:14px;font-size:14px}.section-label{color:#7f8da1;font-size:10px;font-weight:800;letter-spacing:.13em;text-transform:uppercase}.sidebar-section{display:grid;gap:7px}.course-button{width:100%;border:1px solid transparent;border-radius:11px;color:#dce4ee;background:transparent;text-align:left;padding:10px 11px;display:grid;gap:2px}.course-button:hover{background:#172130}.course-button.selected{background:#202c3c;border-color:#34445a;box-shadow:inset 3px 0 #58d8a6}.course-button span{color:#68dbaa;font-size:9px;font-weight:800;letter-spacing:.08em}.course-button strong{font-size:12px}.course-button small{color:#8796aa;font-size:9px;text-transform:capitalize}.sidebar-action{color:#8ee5bd;border:1px dashed #3a5060;background:transparent;border-radius:10px;padding:9px;text-align:left;font-size:11px}.sidebar-empty{color:#7d8a9e;font-size:11px}.main-nav{display:grid;gap:5px;border-top:1px solid #253042;padding-top:18px}.main-nav button{display:flex;align-items:center;gap:10px;color:#9ba9bb;background:transparent;border:0;border-radius:9px;padding:9px 10px;text-align:left;font-size:12px}.main-nav button span{width:18px;color:#6d7c90;text-align:center}.main-nav button:hover,.main-nav button.active{background:#1c2736;color:#fff}.main-nav button.active span{color:#68dbaa}.sidebar-footer{margin-top:auto;display:grid;gap:10px}.sidebar-footer button{border:0;background:transparent;color:#8391a4;text-align:left;padding:0;font-size:10px}.connection{color:#79879a;font-size:9px;text-transform:capitalize}.connection i{display:inline-block;width:6px;height:6px;margin-right:5px;border-radius:50%;background:#36d399;box-shadow:0 0 0 3px #36d3991a}.main{padding:28px 32px 48px;min-width:0}.topbar{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:22px}.topbar h1{margin:2px 0 0;font-size:27px;line-height:1.15;letter-spacing:-.025em}.page-subtitle{color:#7b8796;font-size:11px;margin:5px 0 0}.eyebrow{margin:0;font-size:9px;letter-spacing:.13em;text-transform:uppercase;color:#778499;font-weight:850}.eyebrow.light{color:#78d6ae}.secondary,.primary,.text-button,.danger-link{border:0;background:none}.secondary{color:#3a4657;background:#fff;border:1px solid #dce2e9;border-radius:9px;padding:8px 12px;box-shadow:0 2px 8px #10182806;font-size:11px;font-weight:700}.secondary:hover{border-color:#bfc8d3}.secondary.wide{width:100%;padding:12px}.primary{color:#062f23;background:#61dba9;border-radius:9px;padding:11px 14px;font-weight:800}.primary:hover{background:#52d19d}.primary.compact{padding:8px 12px;font-size:11px;align-self:end}.text-button{color:#238163;padding:3px;font-size:10px;font-weight:800}.danger-link{color:#b54d58;font-size:10px;padding:4px}.panel{background:#fff;border:1px solid #e1e6ec;border-radius:15px;box-shadow:0 3px 14px #0f172a09;min-width:0}.panel-heading{min-height:66px;padding:15px 18px;display:flex;justify-content:space-between;align-items:center;gap:16px;border-bottom:1px solid #edf0f4}.panel-heading h2{margin:2px 0 0;font-size:15px;letter-spacing:-.01em}.content-stack{display:grid;gap:16px}.content-stack.two-column{grid-template-columns:minmax(290px,.8fr) minmax(420px,1.2fr);align-items:start}.full-column{grid-column:1 / -1}.loading-panel{padding:40px;color:#7a8796;text-align:center}.padded{padding:17px 18px}.muted{color:#84909e;font-size:11px}.empty{color:#7c8998;font-size:11px;padding:22px 18px;margin:0;text-align:center}.count-badge{color:#667487;background:#f0f3f6;border-radius:999px;padding:4px 8px;font-size:9px;font-weight:800}.metrics-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.metric{position:relative;overflow:hidden;padding:15px 17px}.metric:after{content:"";position:absolute;right:-12px;bottom:-20px;width:52px;height:52px;border-radius:50%;background:#f1f4f7}.metric.green:after{background:#dff7ec}.metric.amber:after{background:#fff0d2}.metric span{display:block;color:#748194;font-size:10px}.metric strong{display:block;margin-top:5px;font-size:24px;letter-spacing:-.04em}.overview-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:16px;align-items:stretch}.compact-list{display:grid}.compact-row{padding:11px 18px;display:grid;grid-template-columns:37px minmax(0,1fr) auto;gap:10px;align-items:center;border-top:1px solid #f0f2f5}.compact-row:first-child{border-top:0}.compact-row strong,.compact-row span{display:block}.compact-row strong{font-size:11px}.compact-row>div>span{color:#84909e;font-size:9px;margin-top:3px}.checklist{padding:7px 18px 14px;display:grid}.check-row{display:grid;grid-template-columns:26px minmax(0,1fr);gap:10px;align-items:center;padding:10px 0;border-bottom:1px solid #f0f2f5}.check-row:last-child{border-bottom:0}.check-row i{width:24px;height:24px;border-radius:8px;display:grid;place-items:center;background:#edf0f4;color:#7f8a98;font-size:11px;font-style:normal;font-weight:900}.check-row i.done{background:#daf6e9;color:#1d805d}.check-row strong,.check-row span{display:block}.check-row strong{font-size:10px}.check-row span{color:#8793a1;font-size:9px;margin-top:2px}.assignment-grid{padding:15px 18px 18px;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.assignment-card{border:1px solid #e6eaef;border-radius:11px;padding:13px;min-width:0}.assignment-card code{color:#26785e;font-size:9px;font-weight:800}.assignment-card>strong{display:block;margin-top:10px;font-size:11px}.assignment-card p{color:#748091;font-size:9px;line-height:1.5;height:28px;overflow:hidden}.assignment-card>span{color:#8994a2;font-size:9px}.row-title{display:flex;justify-content:space-between;gap:10px;align-items:center}.interpretation-note{border:1px solid #dfe5eb;border-left:3px solid #8390a0;background:#f8fafb;border-radius:9px;padding:11px 14px;display:flex;gap:10px;align-items:baseline;font-size:10px}.interpretation-note span{color:#687587}.status-label{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;color:#667385;background:#eef1f4;border-radius:999px;padding:3px 7px;font-size:8px;font-weight:850;text-transform:uppercase;letter-spacing:.04em}.status-label i{width:5px;height:5px;border-radius:50%;background:#95a0ae}.status-label.active,.status-label.open,.status-label.completed{color:#1c7857;background:#dff7eb}.status-label.active i,.status-label.open i,.status-label.completed i{background:#2fb77e}.status-label.invited,.status-label.draft{color:#89621a;background:#fff3d8}.status-label.invited i,.status-label.draft i{background:#d8a13a}.status-label.closed,.status-label.disabled,.status-label.archived,.status-label.abandoned{color:#657183;background:#edf0f4}.role-badge{text-transform:capitalize;font-size:9px;color:#4d5969}.inline-form{padding:15px 18px;display:grid;grid-template-columns:repeat(3,minmax(130px,1fr)) auto;gap:10px;align-items:end;border-bottom:1px solid #edf0f4}.inline-form.roster-form{grid-template-columns:1fr 1.3fr .8fr .7fr auto}.stack-form{display:grid;gap:13px}.stack-form label,.inline-form label{display:grid;gap:5px;color:#5f6b7b;font-size:9px;font-weight:800}input,select,textarea{width:100%;color:#253044;background:#fff;border:1px solid #d9e0e7;border-radius:8px;padding:9px 10px;outline:0;font-size:11px}input:focus,select:focus,textarea:focus{border-color:#56bf98;box-shadow:0 0 0 3px #56bf981c}textarea{min-height:78px;resize:vertical}.form-split{display:grid;grid-template-columns:.65fr 1.35fr;gap:10px}.form-panel{position:sticky;top:28px}.policy-preview{border:1px solid #dfe9e5;background:#f1faf6;border-radius:9px;padding:10px 11px}.policy-preview strong,.policy-preview span{display:block}.policy-preview strong{color:#286d56;font-size:9px}.policy-preview span{color:#648073;font-size:9px;margin-top:3px;line-height:1.45}.create-course-panel{margin-bottom:16px}.table-wrap{width:100%;overflow-x:auto}table{width:100%;border-collapse:collapse;font-size:10px}th{color:#7b8796;background:#fafbfc;padding:9px 13px;text-align:left;font-size:8px;text-transform:uppercase;letter-spacing:.07em}td{padding:11px 13px;border-top:1px solid #eef1f4;color:#5c6878}.person-cell{display:flex;align-items:center;gap:10px;min-width:0}.person-cell strong,.person-cell span{display:block}.person-cell strong{color:#263144;font-size:10px}.person-cell span{color:#8994a2;font-size:9px;margin-top:2px}.info-strip{color:#677587;background:#f7f9fb;border:1px solid #dfe5ec;border-radius:10px;padding:11px 14px;font-size:10px}.assignment-list{display:grid}.assignment-row{display:grid;grid-template-columns:94px minmax(0,1fr) 92px;gap:14px;align-items:center;padding:15px 18px;border-top:1px solid #eef1f4}.assignment-row:first-child{border-top:0}.assignment-code{color:#27795e;background:#eaf7f1;border-radius:8px;padding:8px;text-align:center;font:800 9px SFMono-Regular,Consolas,monospace}.assignment-main strong{font-size:11px}.assignment-main p{color:#768293;font-size:9px;margin:5px 0}.assignment-meta{display:flex;flex-wrap:wrap;gap:10px;color:#8994a1;font-size:8px;text-transform:capitalize}.session-layout{display:grid;grid-template-columns:290px minmax(0,1fr);gap:16px;align-items:start}.sessions-panel{overflow:hidden;position:sticky;top:28px}.session-list{display:grid;max-height:calc(100vh - 160px);overflow-y:auto}.session-row{width:100%;display:grid;grid-template-columns:37px minmax(0,1fr) 8px;gap:9px;align-items:center;text-align:left;padding:11px 14px;background:#fff;border:0;border-top:1px solid #f0f2f5}.session-row:hover,.session-row.selected{background:#f3faf7}.session-row.selected{box-shadow:inset 3px 0 #56cf9f}.session-copy strong,.session-copy span{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-copy strong{font-size:10px}.session-copy span{color:#84909f;font-size:8px;margin-top:3px}.status-dot{width:7px;height:7px;border-radius:50%;background:#aab2bd}.status-dot.active{background:#27c181;box-shadow:0 0 0 3px #27c1811f}.detail-panel{display:grid;gap:14px;min-width:0}.session-hero{padding:17px 19px;display:flex;justify-content:space-between;align-items:center;gap:20px}.session-hero h2{margin:2px 0;font-size:20px}.session-facts{display:flex;gap:24px;align-items:center}.session-facts>div{display:grid;gap:4px}.session-facts>div>span{color:#8792a0;font-size:8px;text-transform:uppercase}.session-facts strong{font-size:11px}.review-summary{padding:15px 18px;display:grid;grid-template-columns:120px minmax(0,1fr);gap:18px;align-items:center}.review-summary>div{border-right:1px solid #e7ebef}.review-summary span{display:block;color:#7e8a99;font-size:9px}.review-summary strong{display:block;font-size:25px;margin-top:3px}.review-summary small{color:#8a95a2;font-size:10px}.review-summary p{color:#536173;font-size:10px;line-height:1.55}.pill{color:#53606f;background:#eef1f4;border-radius:999px;padding:4px 8px;font-size:8px;font-weight:850;text-transform:uppercase;letter-spacing:.05em}.pill.medium{color:#815f00;background:#fff2cd}.pill.high{color:#9c3038;background:#ffe1e3}.pill.low{color:#216a4a;background:#ddf6e9}.findings{padding:0 18px 14px;display:grid;gap:8px}.finding{border:1px solid #e6eaef;border-radius:10px;padding:11px 12px}.finding-top{display:flex;align-items:center;justify-content:space-between;gap:10px;font-size:10px}.finding p{color:#667384;font-size:9px;line-height:1.5}.meta-row{display:flex;justify-content:space-between;gap:10px;color:#8c96a3;font-size:8px}.notice{margin:0 18px 17px;color:#677486;background:#f3f6f8;border-left:3px solid #7c8998;padding:10px 12px;font-size:9px;line-height:1.5}.timeline{max-height:390px;overflow:auto}.timeline-row{display:grid;grid-template-columns:82px 130px minmax(0,1fr);gap:10px;padding:9px 18px;align-items:center;border-top:1px solid #f0f2f5;font-size:9px}.timeline-row time{color:#8a95a2}.timeline-row code{color:#2e785f}.timeline-row span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#566374}.empty-state{min-height:330px;display:grid;place-items:center;text-align:center;padding:40px}.empty-state>div{max-width:360px}.empty-state h2{margin:12px 0 5px}.empty-state p{color:#7b8795;font-size:11px}.empty-icon{width:54px;height:54px;border-radius:16px;margin:auto;display:grid;place-items:center;background:#dff7ec;color:#197554;font-weight:900}.error-banner{color:#8f3039;background:#fff0f1;border:1px solid #efc6ca;border-radius:9px;padding:10px 12px;margin-bottom:15px;font-size:10px}.error-banner.inset{margin:13px 18px 0}.auth-page{min-height:100vh;display:grid;grid-template-columns:minmax(390px,1.05fr) minmax(420px,.95fr);background:#fff}.auth-story{position:relative;overflow:hidden;color:#fff;background:radial-gradient(circle at 10% 95%,rgba(66,210,158,.22),transparent 32%),linear-gradient(145deg,#111827,#18263b);padding:38px 46px;display:flex;flex-direction:column;justify-content:space-between}.auth-story:after{content:"";position:absolute;width:310px;height:310px;right:-150px;top:90px;border:1px solid rgba(113,226,183,.14);border-radius:50%;box-shadow:0 0 0 45px #71e2b706,0 0 0 90px #71e2b705}.auth-copy{max-width:550px;position:relative;z-index:1}.auth-copy h1{font-size:clamp(34px,4vw,57px);line-height:1.04;letter-spacing:-.045em;margin:12px 0 18px}.auth-copy>p:last-child{max-width:500px;color:#b1bece;font-size:14px;line-height:1.65}.principles{display:grid;grid-template-columns:repeat(3,1fr);gap:17px;position:relative;z-index:1}.principles div{border-top:1px solid #344359;padding-top:12px}.principles strong,.principles span{display:block}.principles strong{font-size:10px}.principles span{color:#8999ad;font-size:9px;line-height:1.45;margin-top:4px}.auth-panel{display:grid;place-items:center;padding:40px;background:#f7f8fa}.auth-card{width:min(390px,100%)}.auth-card h2{font-size:27px;letter-spacing:-.025em;margin:16px 0 5px}.subtle{color:#778495;font-size:11px;line-height:1.6;margin-bottom:20px}.mode-badge{color:#267659;background:#e0f7ed;border-radius:999px;padding:5px 8px;font-size:8px;font-weight:850;text-transform:uppercase;letter-spacing:.07em}.demo-logins{display:grid;gap:10px}.demo-logins .primary{text-align:left}.demo-logins .primary span{display:block;font-size:8px;font-weight:600;opacity:.7;margin-top:2px}.security-note{color:#8995a3;border-top:1px solid #e2e6eb;padding-top:15px;margin-top:20px;font-size:9px;line-height:1.5}.center-page{min-height:100vh;display:grid;place-items:center;padding:30px;background:#f4f6f9}.boundary-card{max-width:600px;padding:30px}.boundary-card h1{margin:28px 0 8px}.boundary-card>p{color:#667486;font-size:12px;line-height:1.65}.boundary-card .info-strip{margin:20px 0}.splash{min-height:100vh;display:flex;align-items:center;justify-content:center;gap:13px;color:#586577;background:#f4f6f9}.splash strong{font-size:12px}@media(max-width:1100px){.app-shell{grid-template-columns:230px minmax(0,1fr)}.main{padding:24px}.metrics-grid,.assignment-grid{grid-template-columns:repeat(2,1fr)}.overview-grid,.content-stack.two-column{grid-template-columns:1fr}.form-panel{position:static}.inline-form.roster-form{grid-template-columns:repeat(2,1fr)}.session-layout{grid-template-columns:250px minmax(0,1fr)}}@media(max-width:780px){.app-shell{display:block}.sidebar{position:static;width:100%;height:auto}.main-nav{grid-template-columns:repeat(2,1fr)}.main-nav button{justify-content:center}.sidebar-footer{margin-top:0}.main{padding:18px}.session-layout{grid-template-columns:1fr}.sessions-panel{position:static}.session-list{max-height:290px}.session-hero{align-items:flex-start;flex-direction:column}.inline-form,.inline-form.roster-form,.auth-page{grid-template-columns:1fr}.auth-story{min-height:440px;padding:28px}.auth-panel{padding:36px 24px}}@media(max-width:500px){.metrics-grid,.assignment-grid{grid-template-columns:1fr}.topbar{align-items:flex-start}.principles{grid-template-columns:1fr}.auth-story{min-height:600px}.session-facts{width:100%;justify-content:space-between}.review-summary{grid-template-columns:1fr}.review-summary>div{border-right:0;border-bottom:1px solid #e7ebef;padding-bottom:10px}.timeline-row{grid-template-columns:70px 1fr}.timeline-row span{grid-column:1 / -1}}
