:root{color:#0f172a;background:#f7f7f5;--novel-highlight-blue: #dbeafe;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh}button,input,select{font:inherit}button{cursor:pointer}.course-workspace-shell{--profile-surface: #ecebea;--profile-surface-hover: #e5e4e1;--profile-panel-bg: #ecebea;--profile-panel-border: #ddddd7;--profile-item-bg: #f3f2ef;--profile-item-hover-bg: #e3e2df;--profile-text: #0f172a;--profile-muted: #667085;--profile-accent: #2563eb;--profile-avatar-bg: #0f172a;--profile-avatar-text: #ffffff;display:grid;grid-template-columns:280px minmax(0,1fr);min-height:100vh;background:#f7f7f5}.course-sidebar{--sidebar-bg: #f7f7f5;--sidebar-border: #e2e2dd;--sidebar-strong: #0f172a;--sidebar-muted: #69758a;--sidebar-link: #475569;--sidebar-link-icon: #94a3b8;--sidebar-link-hover-bg: rgba(15, 23, 42, .045);--sidebar-link-hover: #0f172a;--sidebar-active-bg: #ecebea;--sidebar-active-border: transparent;--sidebar-active-text: #0f172a;--sidebar-active-icon: #0f172a;--sidebar-card-bg: rgba(255, 255, 255, .64);--sidebar-card-border: #e3e1da;--sidebar-control-bg: #ffffff;--sidebar-control-border: #d6dce6;--sidebar-control-text: #334155;--sidebar-utility-link: #1d4ed8;--sidebar-tone-bg: rgba(255, 255, 255, .56);--sidebar-tone-active-bg: #ffffff;--sidebar-tone-active-text: #0f172a;--sidebar-profile-bg: var(--sidebar-active-bg);--sidebar-profile-hover-bg: var(--sidebar-link-hover-bg);--sidebar-profile-border: var(--sidebar-card-border);display:flex;flex-direction:column;gap:18px;position:sticky;top:0;height:100vh;max-height:100vh;padding:36px 20px 28px;border-right:1px solid var(--sidebar-border);background:var(--sidebar-bg);overflow-y:auto;overscroll-behavior:contain}.course-sidebar--blue{--sidebar-bg: #e7f0fb;--sidebar-border: #c9dbef;--sidebar-strong: #0f2746;--sidebar-muted: #5f7692;--sidebar-link: #29486b;--sidebar-link-icon: #6c829c;--sidebar-link-hover-bg: rgba(37, 99, 235, .08);--sidebar-link-hover: #0f2746;--sidebar-active-bg: #dbe8f6;--sidebar-active-border: rgba(37, 99, 235, .18);--sidebar-card-bg: rgba(255, 255, 255, .58);--sidebar-card-border: rgba(96, 129, 166, .26);--sidebar-tone-bg: rgba(255, 255, 255, .48)}.course-sidebar--page{--sidebar-bg: #f7f7f5;--sidebar-border: #e2e2dd;--sidebar-strong: #0f172a;--sidebar-muted: #64748b;--sidebar-link: #334155;--sidebar-link-icon: #64748b;--sidebar-link-hover-bg: rgba(15, 23, 42, .055);--sidebar-link-hover: #0f172a;--sidebar-active-bg: #ecebea;--sidebar-active-border: transparent;--sidebar-active-text: #0f172a;--sidebar-active-icon: #2563eb;--sidebar-card-bg: rgba(255, 255, 255, .64);--sidebar-card-border: #e3e1da;--sidebar-control-bg: #ffffff;--sidebar-control-border: #cbd5e1;--sidebar-control-text: #334155;--sidebar-utility-link: #2563eb;--sidebar-tone-bg: rgba(255, 255, 255, .72);--sidebar-tone-active-bg: #ffffff;--sidebar-tone-active-text: #0f172a}.course-sidebar--blue-plus{--sidebar-bg: #2f5f95;--sidebar-border: #294f7f;--sidebar-strong: #ffffff;--sidebar-muted: #c7d6e8;--sidebar-link: #edf5ff;--sidebar-link-icon: #b8cbe0;--sidebar-link-hover-bg: rgba(255, 255, 255, .11);--sidebar-link-hover: #ffffff;--sidebar-active-bg: rgba(255, 255, 255, .18);--sidebar-active-border: rgba(255, 255, 255, .22);--sidebar-active-text: #ffffff;--sidebar-active-icon: #dbeafe;--sidebar-card-bg: rgba(15, 42, 72, .22);--sidebar-card-border: rgba(255, 255, 255, .16);--sidebar-control-bg: rgba(15, 42, 72, .2);--sidebar-control-border: rgba(255, 255, 255, .22);--sidebar-control-text: #f8fafc;--sidebar-utility-link: #dbeafe;--sidebar-tone-bg: rgba(15, 42, 72, .2);--sidebar-tone-active-bg: rgba(255, 255, 255, .18);--sidebar-tone-active-text: #ffffff}.course-sidebar--steel{--sidebar-bg: #dfe7f0;--sidebar-border: #c3cfda;--sidebar-strong: #111827;--sidebar-muted: #56687c;--sidebar-link: #304156;--sidebar-link-icon: #657589;--sidebar-link-hover-bg: rgba(15, 23, 42, .065);--sidebar-link-hover: #0f172a;--sidebar-active-bg: #d0dae5;--sidebar-active-border: rgba(15, 23, 42, .08);--sidebar-card-bg: rgba(255, 255, 255, .52);--sidebar-card-border: rgba(71, 85, 105, .18);--sidebar-control-bg: rgba(255, 255, 255, .62);--sidebar-tone-bg: rgba(255, 255, 255, .4)}.course-sidebar--soft-ink{--sidebar-bg: #35445a;--sidebar-border: #42536b;--sidebar-strong: #ffffff;--sidebar-muted: #c2ccd8;--sidebar-link: #edf2f7;--sidebar-link-icon: #b6c1cf;--sidebar-link-hover-bg: rgba(255, 255, 255, .09);--sidebar-link-hover: #ffffff;--sidebar-active-bg: rgba(255, 255, 255, .16);--sidebar-active-border: rgba(226, 232, 240, .2);--sidebar-active-text: #ffffff;--sidebar-active-icon: #cbd5e1;--sidebar-card-bg: rgba(15, 23, 42, .14);--sidebar-card-border: rgba(226, 232, 240, .14);--sidebar-control-bg: rgba(15, 23, 42, .16);--sidebar-control-border: rgba(226, 232, 240, .2);--sidebar-control-text: #f8fafc;--sidebar-utility-link: #dbeafe;--sidebar-tone-bg: rgba(15, 23, 42, .14);--sidebar-tone-active-bg: rgba(255, 255, 255, .16);--sidebar-tone-active-text: #ffffff}.course-sidebar--hex-334155,.course-sidebar--hex-364253,.course-sidebar--hex-2f3b4d{--sidebar-strong: #ffffff;--sidebar-muted: #cbd5e1;--sidebar-link: #f1f5f9;--sidebar-link-icon: #b6c2d0;--sidebar-link-hover-bg: rgba(255, 255, 255, .09);--sidebar-link-hover: #ffffff;--sidebar-active-bg: rgba(255, 255, 255, .16);--sidebar-active-border: rgba(226, 232, 240, .2);--sidebar-active-text: #ffffff;--sidebar-active-icon: #dbeafe;--sidebar-card-bg: rgba(15, 23, 42, .14);--sidebar-card-border: rgba(226, 232, 240, .14);--sidebar-control-bg: rgba(15, 23, 42, .16);--sidebar-control-border: rgba(226, 232, 240, .2);--sidebar-control-text: #f8fafc;--sidebar-utility-link: #dbeafe;--sidebar-tone-bg: rgba(15, 23, 42, .14);--sidebar-tone-active-bg: rgba(255, 255, 255, .16);--sidebar-tone-active-text: #ffffff}.course-sidebar--hex-334155{--sidebar-bg: #334155;--sidebar-border: #42536b}.course-sidebar--hex-364253{--sidebar-bg: #364253;--sidebar-border: #45546a}.course-sidebar--hex-2f3b4d{--sidebar-bg: #2f3b4d;--sidebar-border: #3f4c60}.course-sidebar--ink{--sidebar-bg: #263244;--sidebar-border: #35445a;--sidebar-strong: #f8fafc;--sidebar-muted: #aebbc9;--sidebar-link: #d6e0ea;--sidebar-link-icon: #a3b1c1;--sidebar-link-hover-bg: rgba(255, 255, 255, .08);--sidebar-link-hover: #ffffff;--sidebar-active-bg: rgba(255, 255, 255, .14);--sidebar-active-border: rgba(226, 232, 240, .18);--sidebar-active-text: #ffffff;--sidebar-active-icon: #93c5fd;--sidebar-card-bg: rgba(15, 23, 42, .18);--sidebar-card-border: rgba(226, 232, 240, .13);--sidebar-control-bg: rgba(15, 23, 42, .2);--sidebar-control-border: rgba(226, 232, 240, .18);--sidebar-control-text: #e5edf6;--sidebar-utility-link: #bfdbfe;--sidebar-tone-bg: rgba(15, 23, 42, .18);--sidebar-tone-active-bg: rgba(255, 255, 255, .14);--sidebar-tone-active-text: #ffffff}.course-sidebar-brand,.course-sidebar-course p,.course-card h2,.course-card p,.page-header h1,.page-header p,.module-title-field,.module-card p,.item-title-field,.section-label,.schedule-card h2,.schedule-card p,.agenda-day h3,.agenda-item p,.empty-state{margin:0}.course-sidebar-brand{display:inline-flex;width:fit-content;align-items:center;gap:10px;padding:0 12px;color:var(--sidebar-strong);font-size:15px;font-weight:850;line-height:1;text-decoration:none}.course-sidebar-brand img{width:34px;height:34px;flex:0 0 auto;border-radius:8px}.course-sidebar-course{display:grid;gap:4px;padding:12px 14px 10px}.course-sidebar-course p{color:var(--sidebar-strong);font-size:17px;font-weight:700;line-height:1.25}.course-nav{display:grid;gap:6px}.course-nav-link{display:flex;align-items:center;gap:12px;min-height:46px;padding:0 16px;border-radius:12px;color:var(--sidebar-link);font-size:15px;font-weight:700;text-decoration:none}.course-nav-link svg{color:var(--sidebar-link-icon);opacity:.72}.course-nav-link:is(button){width:100%;border:0;background:transparent;text-align:left}.course-nav-link:hover{background:var(--sidebar-link-hover-bg);color:var(--sidebar-link-hover)}.course-nav-link.active{background:var(--sidebar-active-bg);color:var(--sidebar-active-text);box-shadow:none}.course-nav-link.active svg{color:var(--sidebar-active-icon);opacity:1}.course-nav-link.active:hover{background:var(--sidebar-active-bg);color:var(--sidebar-active-text)}.course-nav-link.disabled,.course-nav-link.disabled:hover{cursor:not-allowed;color:#64748b;background:transparent}.course-workspace-content{position:relative;min-width:0}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.student-preview-area{position:absolute;top:30px;right:44px;z-index:25;display:flex;justify-content:flex-end}.student-preview-button{display:inline-flex;align-items:center;gap:7px;min-height:36px;padding:0 13px;border:1px solid var(--profile-panel-border);border-radius:999px;background:var(--profile-surface);color:var(--profile-muted);font-size:13px;font-weight:850;box-shadow:none}.student-preview-button:hover{background:var(--profile-surface-hover);color:var(--profile-text)}.student-preview-button.active{border-color:color-mix(in srgb,var(--profile-accent) 36%,var(--profile-panel-border));background:color-mix(in srgb,var(--profile-accent) 11%,var(--profile-surface));color:var(--profile-accent)}.course-profile-area{display:flex;justify-content:flex-end}.course-profile-area--sidebar{margin-top:auto;padding-top:18px}.course-profile-area--topbar{position:absolute;top:28px;right:44px;z-index:30}.course-profile-trigger{display:inline-flex;align-items:center;gap:10px;min-height:48px;max-width:min(320px,calc(100vw - 40px));padding:0 14px 0 10px;border:1px solid var(--profile-panel-border);border-radius:14px;background:var(--profile-surface);color:var(--profile-text);font:inherit;box-shadow:none}.course-profile-area--sidebar .course-profile-trigger{width:100%;max-width:none;justify-content:flex-start;border-color:var(--sidebar-profile-border);background:var(--sidebar-profile-bg);color:var(--sidebar-strong)}.course-profile-trigger:hover,.course-profile-trigger[data-state=open]{background:var(--profile-surface-hover)}.course-profile-area--sidebar .course-profile-trigger:hover,.course-profile-area--sidebar .course-profile-trigger[data-state=open]{background:var(--sidebar-profile-hover-bg)}.course-profile-avatar{display:inline-grid;width:32px;height:32px;flex:0 0 auto;place-items:center;overflow:hidden;border-radius:999px;background:var(--profile-avatar-bg);color:var(--profile-avatar-text);font-size:12px;font-weight:850;letter-spacing:0}.course-profile-avatar img{width:100%;height:100%;object-fit:cover}.course-profile-copy{display:grid;min-width:0;gap:2px;text-align:left}.course-profile-name{overflow:hidden;color:var(--profile-text);font-size:14px;font-weight:800;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}.course-profile-area--sidebar .course-profile-name{color:var(--sidebar-strong)}.course-profile-role{display:inline-flex;align-items:center;gap:5px;color:var(--profile-muted);font-size:11px;font-weight:800;line-height:1.1}.course-profile-area--sidebar .course-profile-role{color:var(--sidebar-muted)}.course-profile-trigger>svg:last-child{flex:0 0 auto;color:var(--profile-muted)}.course-profile-area--sidebar .course-profile-trigger>svg:last-child{margin-left:auto;color:var(--sidebar-muted)}.actions-menu-panel.profile-menu-panel{--profile-surface: #ecebea;--profile-surface-hover: #e5e4e1;--profile-panel-bg: #ecebea;--profile-panel-border: #ddddd7;--profile-item-bg: #f3f2ef;--profile-item-hover-bg: #e3e2df;--profile-text: #0f172a;--profile-muted: #667085;--profile-accent: #2563eb;--profile-avatar-bg: #0f172a;--profile-avatar-text: #ffffff;gap:12px;width:min(330px,calc(100vw - 32px));padding:12px;border-color:var(--profile-panel-border);background:var(--profile-panel-bg);color:var(--profile-text);box-shadow:0 18px 36px #0f172a21}.actions-menu-panel.profile-menu-panel--blue-gray{--profile-surface: #edf2f8;--profile-surface-hover: #e3ebf5;--profile-panel-bg: #edf2f8;--profile-panel-border: #d2deec;--profile-item-bg: #e3ebf5;--profile-item-hover-bg: #d9e4f1;--profile-text: #111827;--profile-muted: #667385;--profile-accent: #2563eb;--profile-avatar-bg: #1f2937;--profile-avatar-text: #ffffff}.actions-menu-panel.profile-menu-panel--codington-light{--profile-surface: #eef2f6;--profile-surface-hover: #e2e8f0;--profile-panel-bg: #eef2f6;--profile-panel-border: #d5dde8;--profile-item-bg: #e2e8f0;--profile-item-hover-bg: #d7dee9;--profile-text: #0f172a;--profile-muted: #475569;--profile-accent: #0284c7;--profile-avatar-bg: #0f172a;--profile-avatar-text: #ffffff}.actions-menu-panel.profile-menu-panel--codington-dark{--profile-surface: #1e293b;--profile-surface-hover: #27364a;--profile-panel-bg: #1e293b;--profile-panel-border: #334155;--profile-item-bg: #27364a;--profile-item-hover-bg: #334155;--profile-text: #f8fafc;--profile-muted: #94a3b8;--profile-accent: #38bdf8;--profile-avatar-bg: #38bdf8;--profile-avatar-text: #0b0e14}.profile-menu-user{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;padding:6px 6px 10px;border-bottom:1px solid var(--profile-panel-border)}.profile-menu-user div,.profile-menu-current-role div,.profile-role-option>span:nth-child(2){display:grid;gap:2px;min-width:0}.profile-menu-user strong,.profile-menu-current-role strong,.profile-role-option strong{overflow:hidden;color:var(--profile-text);font-size:14px;line-height:1.2;text-overflow:ellipsis;white-space:nowrap}.profile-menu-user span,.profile-menu-current-role span,.profile-role-option span span{overflow:hidden;color:var(--profile-muted);font-size:12px;font-weight:700;line-height:1.25;text-overflow:ellipsis;white-space:nowrap}.profile-menu-current-role{display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;align-items:center;padding:10px;border:1px solid var(--profile-panel-border);border-radius:12px;background:var(--profile-item-bg)}.profile-menu-current-role>svg{width:34px;height:34px;padding:8px;border-radius:10px;background:var(--profile-surface);color:var(--profile-accent)}.profile-preview-status{display:inline-flex;align-items:center;gap:8px;min-height:34px;padding:0 10px;border:1px solid color-mix(in srgb,var(--profile-accent) 26%,var(--profile-panel-border));border-radius:10px;background:color-mix(in srgb,var(--profile-accent) 9%,var(--profile-item-bg));color:var(--profile-accent);font-size:12px;font-weight:850}.dropdown-menu-item.profile-view-as-student{justify-content:center;min-height:40px;border:1px solid color-mix(in srgb,var(--profile-accent) 32%,var(--profile-panel-border));border-radius:10px;background:var(--profile-item-bg);color:var(--profile-accent);font-size:13px;font-weight:850}.dropdown-menu-item.profile-view-as-student[data-highlighted]{background:color-mix(in srgb,var(--profile-accent) 12%,var(--profile-item-hover-bg));color:var(--profile-accent)}.profile-menu-section{display:grid;gap:8px}.profile-menu-section-title{color:var(--profile-muted);font-size:11px;font-weight:850;letter-spacing:0;text-transform:uppercase}.profile-role-list{display:grid;gap:5px}.dropdown-menu-item.profile-role-option{display:grid;grid-template-columns:32px minmax(0,1fr) 16px;gap:9px;min-height:48px;padding:6px 8px;background:transparent;color:var(--profile-text)}.dropdown-menu-item.profile-role-option[data-highlighted]{background:var(--profile-item-hover-bg);color:var(--profile-text)}.dropdown-menu-item.profile-role-option.active{background:var(--profile-item-bg)}.profile-role-icon{display:inline-grid;width:32px;height:32px;place-items:center;border-radius:9px;background:var(--profile-surface);color:var(--profile-accent)}.profile-role-option>svg{justify-self:end;color:var(--profile-accent)}.profile-menu-footer{display:grid;padding-top:2px}.profile-sign-in-link{display:inline-flex;min-height:36px;align-items:center;justify-content:center;border-radius:10px;color:var(--profile-accent);font-size:13px;font-weight:850;text-decoration:none}.profile-sign-in-link:hover{background:var(--profile-item-hover-bg)}.dropdown-menu-item.profile-sign-out{justify-content:center}.builder-shell,.admin-page,.assignments-page,.courses-page,.exercises-page,.exercise-page,.item-editor-page,.schedule-page,.settings-page,.sign-in-page{min-height:100vh;padding:48px 44px}.page-inner{width:min(100%,1160px);margin:0 auto}.page-header{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-bottom:34px}.page-header>div:first-child{min-width:0;flex:1 1 360px}.eyebrow{margin:0 0 10px;color:#64748b;font-size:12px;font-weight:800;letter-spacing:0;text-transform:uppercase}.page-header h1{color:#101522;font-size:36px;line-height:1.05}.page-header p{max-width:720px;margin-top:12px;color:#5e6b80;font-size:17px;line-height:1.55}.page-header--ruled{align-items:center;margin-bottom:22px;padding-bottom:18px;border-bottom:1px solid #e2e2dd}.page-header--ruled h1{margin:0}.modules-page-header{display:block;margin-bottom:22px;padding-bottom:18px;border-bottom:1px solid #e2e2dd}.page-header>.modules-title-stack{flex:none}.modules-title-stack{display:grid;gap:10px;min-width:0}.modules-title-stack .eyebrow{margin-bottom:0}.modules-header-row{display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;min-width:0}.modules-header-row h1{margin:0}.schedule-title-stack{width:100%;min-width:0}.schedule-header-row{display:flex;min-width:0;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap}.schedule-header-row h1{margin:0}.header-actions{display:flex;align-items:center;gap:10px;flex-wrap:wrap;justify-content:flex-end;max-width:100%}.settings-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.9fr);gap:18px;align-items:start}.settings-panel{display:grid;gap:18px;padding:22px;border:1px solid #e1e5eb;border-radius:12px;background:#fff}.settings-panel-header{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:start}.settings-panel-icon{display:inline-grid;width:38px;height:38px;place-items:center;border-radius:10px;background:#f1f4f8;color:#475569}.settings-panel-header h2,.settings-panel-header p{margin:0}.settings-panel-header h2{color:#101522;font-size:18px;line-height:1.2}.settings-panel-header p{margin-top:4px;color:#64748b;font-size:13px;font-weight:650;line-height:1.45}.settings-field{display:grid;gap:7px;max-width:460px;color:#475569;font-size:13px;font-weight:800}.settings-field select{min-height:44px;width:100%;padding:0 36px 0 12px;border:1px solid #d7dde6;border-radius:10px;background:#fff;color:#111827;font:inherit;font-size:14px}.settings-field select:disabled{cursor:not-allowed;background:#f8fafc;color:#64748b}.settings-scheme-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:10px}.settings-scheme-option{--scheme-bg: #f7f7f5;--scheme-panel: #ffffff;--scheme-sidebar: #f7f7f5;--scheme-accent: #2563eb;display:grid;grid-template-columns:62px minmax(0,1fr) 18px;gap:12px;align-items:center;min-height:64px;padding:10px 12px;border:1px solid #e1e5eb;border-radius:10px;background:#fff;color:#334155;font-size:13px;font-weight:800;text-align:left}.settings-scheme-option:hover,.settings-scheme-option:focus-visible{border-color:#93c5fd}.settings-scheme-option.active{border-color:#b8c2d1;background:#f8fafc;color:#0f172a;box-shadow:inset 0 0 0 1px #d7dde6}.settings-scheme-option svg{justify-self:end;color:#475569}.settings-scheme-preview{display:grid;grid-template-columns:16px minmax(0,1fr);grid-template-rows:repeat(2,1fr);gap:5px;height:38px;padding:5px;border:1px solid #d6dee8;border-radius:8px;background:var(--scheme-bg)}.settings-scheme-preview span:first-child{grid-row:1 / -1;border-radius:4px;background:var(--scheme-sidebar)}.settings-scheme-preview span:nth-child(2),.settings-scheme-preview span:nth-child(3){border-radius:4px;background:var(--scheme-panel)}.settings-scheme-preview span:nth-child(2){box-shadow:inset 3px 0 0 var(--scheme-accent)}.settings-tone-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(146px,1fr));gap:10px}.settings-tone-option{--tone-bg: #eef3f8;--tone-border: #d6dee8;display:grid;grid-template-columns:24px minmax(0,1fr) 18px;gap:10px;align-items:center;min-height:48px;padding:0 12px;border:1px solid #e1e5eb;border-radius:10px;background:#fff;color:#334155;font-size:13px;font-weight:800;text-align:left}.settings-tone-option:hover,.settings-tone-option:focus-visible{border-color:#93c5fd}.settings-tone-option.active{border-color:#b8c2d1;background:#f8fafc;color:#0f172a;box-shadow:inset 0 0 0 1px #d7dde6}.settings-tone-option svg{justify-self:end;color:#475569}.settings-tone-swatch{width:24px;height:24px;border:1px solid var(--tone-border);border-radius:6px;background:var(--tone-bg);box-shadow:inset 0 0 0 1px #ffffff4d}.settings-tone-option--mist{--tone-bg: #eef3f8;--tone-border: #d6dee8}.settings-tone-option--page{--tone-bg: #f8fafc;--tone-border: #e2e8f0}.settings-tone-option--blue{--tone-bg: #e7f0fb;--tone-border: #c9dbef}.settings-tone-option--blue-plus{--tone-bg: #2f5f95;--tone-border: #294f7f}.settings-tone-option--steel{--tone-bg: #dfe7f0;--tone-border: #c3cfda}.settings-tone-option--soft-ink{--tone-bg: #35445a;--tone-border: #42536b}.settings-tone-option--ink{--tone-bg: #263244;--tone-border: #35445a}.settings-tone-option--hex-334155{--tone-bg: #334155;--tone-border: #42536b}.settings-tone-option--hex-364253{--tone-bg: #364253;--tone-border: #45546a}.settings-tone-option--hex-2f3b4d{--tone-bg: #2f3b4d;--tone-border: #3f4c60}.course-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}.course-card{display:grid;gap:18px;align-content:start;min-height:280px;padding:22px;border:1px solid #e1e5eb;border-radius:12px;background:#fff}.course-card-icon{display:inline-grid;width:48px;height:48px;place-items:center;border:1px solid #e4e8ef;border-radius:12px;background:#f8fafc;color:#475569}.course-card-body{display:grid;gap:8px}.course-card-meta{color:#64748b;font-size:12px;font-weight:800;text-transform:uppercase}.course-card h2{color:#101522;font-size:20px;line-height:1.2}.course-card p{color:#53627a;line-height:1.5}.course-card-stats{display:flex;gap:8px;flex-wrap:wrap;align-items:center}.course-card-stats span{display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:0 10px;border:1px solid #e4e8ef;border-radius:999px;background:#fff;color:#42526a;font-size:12px;font-weight:700}.course-card-action{align-self:end;justify-self:start}.exercise-hub-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-bottom:22px}.exercise-hub-stat-card,.exercise-path-card,.course-exercise-card{border:1px solid #e1e5eb;border-radius:12px;background:#fff}.exercise-hub-stat-card{display:flex;align-items:center;gap:10px;padding:12px}.exercise-hub-stats--quiet .exercise-hub-stat-card{background:#ffffffb8}.exercise-hub-stat-card>svg{color:#64748b}.exercise-hub-stat-card strong,.exercise-hub-stat-card span{display:block}.exercise-hub-stat-card strong{color:#111827;font-size:17px;line-height:1.1}.exercise-hub-stat-card span{margin-top:3px;color:#64748b;font-size:12px}.exercise-path-card{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:14px;padding:22px 24px}.exercise-path-card--primary{border-color:#d8e1ee}.focused-exercise-path-card{border-color:#cbd5e1;background:#fff}.student-exercise-focus-card{display:flex;align-items:center;justify-content:space-between;gap:18px;margin-bottom:24px;padding:18px;border:1px solid #e1e5eb;border-radius:12px;background:#fff}.student-exercise-focus-card h2,.student-exercise-focus-card p{margin:0}.student-exercise-focus-card h2{margin-top:2px;color:#111827;font-size:22px;line-height:1.2}.student-exercise-focus-card p:not(.eyebrow){margin-top:5px;color:#64748b;font-size:14px;font-weight:700}.student-exercise-focus-progress{display:grid;grid-template-columns:auto minmax(140px,240px) auto;align-items:center;gap:10px;margin-top:13px;color:#64748b;font-size:12px;font-weight:800}.student-exercise-focus-progress strong{color:#111827;font-size:15px}.student-exercise-focus-progress span{color:#64748b}.student-exercise-set-card{display:grid;gap:18px;margin-bottom:24px;padding:18px;border:1px solid #d9e2f2;border-radius:12px;background:#fff}.student-exercise-next-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px;align-items:center;padding:18px 20px;border:1px solid #c8dbfb;border-left:4px solid #2563eb;border-radius:10px;background:#f7fbff;color:inherit;text-decoration:none;transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease}.student-exercise-next-card:hover{border-color:#8db7f8;box-shadow:0 14px 34px #2563eb1a;transform:translateY(-1px)}.student-exercise-next-card--completed{border-color:#bbf7d0;border-left-color:#16a34a;background:#f7fdf9}.student-exercise-next-card--empty{border-left-color:#94a3b8;background:#f8fafc}.student-exercise-next-card--standalone{margin-bottom:24px}.student-exercise-next-copy{display:grid}.student-exercise-next-copy{gap:7px}.student-exercise-next-copy strong{color:#111827;font-size:21px;line-height:1.2}.student-exercise-next-trail{color:#475569;font-size:13px;font-weight:800}.student-exercise-set-sections{display:grid;gap:10px}.student-exercise-set-sections-header{display:flex;align-items:end;justify-content:space-between;gap:16px}.student-exercise-set-sections-header h3,.student-exercise-set-sections-header p,.student-exercise-set-summary strong,.student-exercise-set-summary span{margin:0}.student-exercise-set-sections-header h3{color:#111827;font-size:18px;line-height:1.25}.student-exercise-set-summary{display:grid;justify-items:end;gap:3px;text-align:right}.student-exercise-set-summary strong{color:#111827;font-size:14px}.student-exercise-set-summary span{color:#64748b;font-size:12px;font-weight:800}.student-exercise-set-section-list{display:grid;border:1px solid #e2e8f0;border-radius:8px;overflow:hidden;background:#fff}.student-exercise-set-section{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:58px;padding:12px 16px;color:inherit;text-decoration:none;transition:background-color .16s ease,color .16s ease}.student-exercise-set-section+.student-exercise-set-section{border-top:1px solid #e2e8f0}.student-exercise-set-section:hover{background:#f8fafc}.student-exercise-set-section--in_progress{background:#fbfdff}.student-exercise-set-section strong,.student-exercise-set-section small{display:block}.student-exercise-set-section strong{color:#111827;font-size:15px}.student-exercise-set-section small{color:#64748b;font-size:13px;line-height:1.35}.student-exercise-set-section-meta{display:inline-flex;align-items:center;justify-content:flex-end;gap:10px;color:#64748b;text-align:right;white-space:nowrap}.student-exercise-set-section-action,.course-exercise-topic-action{color:#1d4ed8;font-size:13px;font-weight:800}.exercise-status-chip{display:inline-flex;align-items:center;min-height:24px;padding:0 8px;border:1px solid #e2e8f0;border-radius:999px;background:#f8fafc;color:#64748b;font-size:12px;font-weight:800}.exercise-status-chip--in_progress{border-color:#bfdbfe;background:#eff6ff;color:#1d4ed8}.exercise-status-chip--completed{border-color:#bbf7d0;background:#ecfdf3;color:#15803d}.exercise-path-card h2,.exercise-path-card p{margin:0}.exercise-path-card h2{color:#111827;font-size:24px;line-height:1.15}.exercise-path-card p:not(.eyebrow){max-width:720px;margin-top:6px;color:#53627a;line-height:1.5}.focused-exercise-category-links{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.focused-exercise-category-link{display:inline-flex;align-items:center;gap:8px;min-height:32px;padding:0 10px;border:1px solid #dbe5f4;border-radius:999px;background:#fff;color:#1f2937;font-size:13px;font-weight:700;text-decoration:none}.focused-exercise-category-link:hover{border-color:#93c5fd;color:#1d4ed8}.focused-exercise-category-link span{color:#64748b;font-weight:800}.course-exercise-list{display:grid;gap:14px}.section-heading{display:flex;align-items:flex-end;justify-content:space-between;gap:16px}.section-heading h2,.section-heading p{margin:0}.section-heading h2{color:#111827;font-size:19px}.section-heading--compact h2{font-size:16px}.section-heading p{margin-top:4px;color:#64748b;font-size:14px}.course-exercise-card{display:grid;gap:14px;padding:18px}.focused-course-exercise-card{border-color:#b8c6dc}.course-exercise-card-main,.course-exercise-footer{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.course-exercise-location,.course-exercise-description,.course-exercise-card h3{margin:0}.course-exercise-location{color:#64748b;font-size:12px;font-weight:700}.course-exercise-card h3{margin-top:5px;color:#111827;font-size:19px;line-height:1.25}.course-exercise-description{max-width:760px;margin-top:7px;color:#53627a;line-height:1.5}.course-exercise-progress-box{display:grid;min-width:150px;gap:10px;justify-items:end;color:#64748b;font-size:12px}.course-exercise-progress-box strong{color:#111827;font-size:20px;line-height:1}.course-exercise-progress-box .progress-meter{width:130px;margin:0}.course-exercise-topic-list{display:grid;border:1px solid #e5e9f0;border-radius:8px;overflow:hidden;background:#fff}.course-exercise-topic{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:56px;padding:11px 14px;background:transparent;text-decoration:none;transition:background-color .16s ease}.course-exercise-topic+.course-exercise-topic{border-top:1px solid #e5e9f0}.course-exercise-topic:hover{background:#fafbfc}.course-exercise-topic--in_progress{background:#fbfdff}.course-exercise-topic strong,.course-exercise-topic span,.course-exercise-topic small{display:block}.course-exercise-topic strong{color:#111827;font-size:14px}.course-exercise-topic span,.course-exercise-topic small{color:#64748b;font-size:12px}.course-exercise-topic .exercise-status-chip{display:inline-flex}.course-exercise-topic-meta{display:inline-flex;align-items:center;justify-content:flex-end;gap:10px;color:#64748b;text-align:right;white-space:nowrap}.course-exercise-meta,.course-exercise-actions{display:flex;align-items:center;gap:8px;flex-wrap:wrap}.course-exercise-meta{color:#64748b;font-size:12px}.course-exercise-meta span+span:before{content:"·";margin-right:8px;color:#94a3b8}.builder-layout,.builder-main,.module-list{display:grid}.builder-layout,.builder-main{gap:14px}.module-list{gap:22px}.section-label{color:#4a5568;font-size:13px;font-weight:800;letter-spacing:0}.module-card{--module-card-radius: 12px;border:1px solid #dfe5ee;border-radius:var(--module-card-radius);background:#fff}.schedule-card{border:1px solid #e1e5eb;border-radius:12px;background:#fff}.module-card{overflow:visible}.module-card.dragging,.course-item-row.dragging{position:relative;z-index:20;opacity:.98;box-shadow:0 16px 34px #0f172a26;cursor:grabbing;will-change:transform}.module-topline{display:grid;grid-template-columns:auto 32px minmax(0,1fr) auto;gap:14px;align-items:center;min-height:76px;padding:16px 18px;border-bottom:1px solid #d5e3f5;border-radius:calc(var(--module-card-radius) - 1px) calc(var(--module-card-radius) - 1px) 0 0;background:#edf5ff}.module-card.collapsed .module-topline{border-bottom:0;border-radius:calc(var(--module-card-radius) - 1px)}.module-topline.read-only{grid-template-columns:32px minmax(0,1fr)}.module-topline>.icon-button{justify-self:center}.drag-handle,.icon-button{display:inline-grid;width:36px;height:36px;place-items:center;border:1px solid #d8dee8;border-radius:10px;background:#fff;color:#738095}.drag-handle{background:transparent;border-color:transparent;cursor:grab;touch-action:none;-webkit-user-select:none;user-select:none}.drag-handle:active{cursor:grabbing}.module-heading{display:grid;gap:6px;min-width:0}.module-title-field,.item-title-field{width:100%;min-width:0;border:1px solid transparent;border-radius:6px;background:transparent;color:#101522;font-weight:700}.module-title-field{min-height:34px;padding:0;font-size:20px}.module-title-text{margin:0;color:#101522;font-size:20px;line-height:1.25}.item-title-field{min-height:34px;padding:0 6px;font-size:15px}.module-title-field:focus,.item-title-field:focus,.date-input:focus,.menu-text-input:focus,.points-input:focus,.add-item-select:focus{border-color:#2563eb;outline:3px solid rgba(37,99,235,.14);background:#fff}.module-actions,.item-actions{display:flex;align-items:center;justify-content:flex-end;gap:8px}.course-item-row:not(.read-only) .item-actions{grid-column:-2 / -1}.module-body{display:grid;gap:0;border-radius:0 0 calc(var(--module-card-radius) - 1px) calc(var(--module-card-radius) - 1px)}.module-body.collapsed{display:none}.item-list{display:grid}.module-body>.item-list:only-child .course-item-row:last-child{border-radius:0 0 calc(var(--module-card-radius) - 1px) calc(var(--module-card-radius) - 1px)}.course-item-row{--item-accent: #64748b;--item-accent-soft: #f8fafc;--item-accent-border: #e7ebf1;--item-accent-text: #42526a;display:grid;grid-template-columns:auto auto minmax(180px,1fr) auto auto;gap:14px;align-items:center;min-height:64px;padding:12px 18px;border-bottom:1px solid #edf0f4;background:#fff}.course-item-row--page{--item-accent: #2563eb;--item-accent-soft: #eaf2ff;--item-accent-border: #cfdef6;--item-accent-text: #1d4ed8}.course-item-row--assignment{--item-accent: #b7791f;--item-accent-soft: #fff2d6;--item-accent-border: #f2d99d;--item-accent-text: #9a5b00}.course-item-row--exercise_set{--item-accent: #0f8a7b;--item-accent-soft: #e2f5f1;--item-accent-border: #bce7de;--item-accent-text: #087468}.course-item-row--heading{--item-accent: #74675a;--item-accent-soft: #f4f1ec;--item-accent-border: #e6ded3;--item-accent-text: #62564b;grid-template-columns:auto minmax(180px,1fr) auto auto}.course-item-row.read-only{grid-template-columns:auto minmax(180px,1fr) auto;cursor:default}.course-item-row--heading.read-only{grid-template-columns:minmax(0,1fr) auto}.course-item-row:hover{background:#fafbfc}.course-item-row:last-child{border-bottom:0}.item-icon{display:inline-grid;width:32px;height:32px;place-items:center;border:1px solid var(--item-accent-border);border-radius:10px;background:var(--item-accent-soft);color:var(--item-accent)}.item-icon.heading{background:var(--item-accent-soft);color:var(--item-accent);font-size:12px;font-weight:850;line-height:1}.item-icon-button{padding:0;border:1px solid var(--item-accent-border)}.item-icon-button:hover{box-shadow:inset 0 0 0 1px currentColor}.item-icon-button:focus-visible{outline:3px solid rgba(37,99,235,.2);outline-offset:2px}.item-main{min-width:0}.item-title-button{display:block;width:100%;padding:0;border:0;background:transparent;color:#101522;font-size:15px;font-weight:500;text-align:left}.item-title-text{display:block;color:#101522;font-size:15px;font-weight:750}.item-title-button:hover{color:#0f172a;text-decoration:underline;text-underline-offset:3px}.item-date-metadata{grid-column:-3 / -2;color:#66758c;font-size:13px;font-weight:400;line-height:1.25;text-align:right;white-space:nowrap}.course-item-row.read-only .item-date-metadata{grid-column:-2 / -1}.publish-state-icon{display:inline-grid;width:32px;height:32px;padding:0;place-items:center;border:0;border-radius:999px;background:transparent}.publish-state-icon.published{color:#16834a}.publish-state-icon.draft{color:#7a8799}.publish-state-icon.scheduled{color:#b7791f}button.publish-state-icon:hover{background:#f6f8fb}button.publish-state-icon:focus-visible{outline:3px solid rgba(37,99,235,.2);outline-offset:2px}.actions-menu-trigger{display:inline-grid;width:34px;height:34px;place-items:center;border:1px solid transparent;border-radius:10px;background:transparent;color:#778396}.actions-menu-trigger:hover,.actions-menu-trigger[data-state=open]{border-color:#d8dee8;background:#fff;color:#334155}.actions-menu-panel{z-index:50;display:grid;gap:10px;min-width:280px;padding:12px;border:1px solid #d8dee8;border-radius:12px;background:#fff;box-shadow:0 16px 34px #0f172a1f}.dropdown-menu-item{display:flex;align-items:center;gap:8px;min-height:34px;padding:0 8px;border-radius:7px;color:#334155;font-size:13px;font-weight:700;outline:none;cursor:pointer;-webkit-user-select:none;user-select:none}.dropdown-menu-item[data-highlighted]{background:#f6f8fb;color:#0f172a}.dropdown-menu-item.danger{color:#b91c1c}.dropdown-menu-item.danger[data-highlighted]{background:#fef2f2;color:#991b1b}.tooltip-content{z-index:70;max-width:240px;padding:7px 10px;border-radius:8px;background:#111827;color:#fff;font-size:12px;font-weight:700;line-height:1.3;box-shadow:0 14px 32px #0f172a3d}.tooltip-arrow{fill:#111827}.menu-field{display:grid;gap:5px}.menu-field span,.date-fieldset legend{color:#66758c;font-size:12px;font-weight:700}.date-field-group{display:grid;gap:14px}.date-fieldset{display:grid;gap:9px;min-width:0;padding:0;border:0}.date-fieldset legend{margin-bottom:7px;padding:0}.date-time-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}.date-input,.points-input,.menu-text-input,.add-item-select{min-height:34px;border:1px solid #d8dee8;border-radius:10px;background:#fff;color:#172033;font-size:13px}.date-input{width:100%;padding:0 8px}.date-input:disabled{background:#f6f8fb;color:#97a3b5}.points-input{width:90px;padding:0 8px}.menu-text-input{width:100%;padding:0 8px}.add-item-form{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:14px 20px 18px;border-top:1px solid #d7e0ea;border-radius:0 0 12px 12px;background:#e9edf3}.add-item-select{-webkit-appearance:none;-moz-appearance:none;appearance:none;min-width:170px;padding:0 40px 0 10px;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%2342526a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;background-size:18px}.button,.danger-button,.quiet-button{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;border-radius:10px;font-weight:700;white-space:nowrap}.button{border:1px solid #1d4ed8;padding:0 14px;background:#2563eb;color:#fff}.button.secondary{border-color:#e2e8f0;background:#fff;color:#0f172a}.quiet-button{border:1px solid #dfe5ee;padding:0 12px;background:#fff;color:#0f172a;font-weight:650}.danger-button{border:1px solid #fecaca;padding:0 10px;background:#fff1f2;color:#b91c1c}.button:hover,.icon-button:hover,.quiet-button:hover,.danger-button:hover,.view-toggle button:hover{filter:brightness(.985)}.empty-state{padding:16px;border:1px dashed #cbd5e1;border-radius:12px;background:#fff;color:#64748b;font-size:14px}.schedule-card{display:grid;gap:16px;padding:18px}.editor-dialog-note{display:inline-flex;align-items:center;gap:8px;margin-bottom:14px;color:#64748b;font-size:13px;font-weight:700}.lms-notion-editor{min-height:500px}.lms-editor-prose{min-height:500px;padding:22px;border:1px solid #d7dfeb;border-radius:8px;background:#fff;color:#172033;outline:none}.lms-editor-prose>*+*{margin-top:.85em}.lms-editor-prose h1,.lms-editor-prose h2,.lms-editor-prose h3,.lms-editor-prose p,.lms-editor-prose ul,.lms-editor-prose ol,.lms-editor-prose blockquote,.lms-editor-prose pre{margin-bottom:0}.lms-editor-prose h1{font-size:28px;line-height:1.18}.lms-editor-prose h2{font-size:22px;line-height:1.22}.lms-editor-prose p,.lms-editor-prose li{line-height:1.65}.lms-editor-prose ul,.lms-editor-prose ol{padding-left:24px}.lms-editor-prose blockquote{padding:10px 14px;border-left:4px solid #93c5fd;border-radius:0 8px 8px 0;background:#eff6ff;color:#1e3a8a}.lms-editor-prose pre{overflow-x:auto;padding:14px;border-radius:8px;background:#111827;color:#f8fafc}.lms-editor-inline-code{padding:2px 5px;border-radius:5px;background:#eef2ff;color:#3730a3}.lms-editor-link{color:#1d4ed8;text-decoration:underline;text-underline-offset:3px}.lms-editor-task-list{list-style:none;padding-left:0}.lms-editor-prose .is-editor-empty:first-child:before,.lms-editor-prose .is-empty:before{content:attr(data-placeholder);float:left;height:0;color:#94a3b8;pointer-events:none}.lms-editor-command-menu{z-index:90;max-height:320px;overflow-y:auto;min-width:280px;padding:8px;border:1px solid #d7dfeb;border-radius:8px;background:#fff;box-shadow:0 18px 38px #0f172a29}.lms-editor-command-empty{padding:8px;color:#64748b;font-size:13px}.lms-editor-command-item{display:flex;align-items:center;gap:10px;width:100%;padding:8px;border-radius:7px;color:#1f2937;text-align:left}.lms-editor-command-item[aria-selected=true],.lms-editor-command-item:hover{background:#eff6ff}.lms-editor-command-icon{display:inline-grid;width:34px;height:34px;place-items:center;border:1px solid #d7dfeb;border-radius:8px;color:#2563eb}.lms-editor-command-item strong,.lms-editor-command-item small{display:block}.lms-editor-command-item strong{font-size:13px}.lms-editor-command-item small{margin-top:2px;color:#64748b;font-size:12px}.lms-editor-bubble{display:inline-flex;gap:4px;padding:4px;border:1px solid #d7dfeb;border-radius:8px;background:#fff;box-shadow:0 12px 30px #0f172a2e}.lms-editor-bubble-button{display:inline-flex;align-items:center;gap:6px;min-height:30px;padding:0 9px;border:0;border-radius:6px;background:transparent;color:#334155;font-size:13px;font-weight:700}.lms-editor-bubble-button:hover{background:#eff6ff;color:#1d4ed8}.item-editor-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:24px}.back-link{display:inline-flex;align-items:center;gap:7px;margin-bottom:14px;color:#2563eb;font-size:14px;font-weight:700;text-decoration:none}.back-link:hover{text-decoration:underline;text-underline-offset:3px}.item-editor-title{width:min(100%,760px);border:0;background:transparent;color:#111827;font-size:34px;font-weight:700;line-height:1.1}.item-editor-title:focus{outline:0}.item-editor-status{display:inline-flex;align-items:center;gap:7px;min-height:40px;padding:0 10px;border:1px solid #d7dfeb;border-radius:999px;background:#fff;color:#475569;font-size:13px;font-weight:700;white-space:nowrap}.item-editor-layout{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:20px;align-items:start}.item-editor-main,.item-editor-panel{border:1px solid #d7dfeb;border-radius:8px;background:#fff}.item-editor-main{padding:18px}.exercise-set-editor-main{display:grid;gap:16px;padding:0;border:0;background:transparent}.exercise-setup-card{display:grid;gap:18px;padding:20px;border:1px solid #bfdbfe;border-radius:8px;background:#f8fbff}.exercise-setup-header{display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;align-items:start}.exercise-setup-icon{display:inline-flex;align-items:center;justify-content:center;width:46px;height:46px;border-radius:8px;background:#dbeafe;color:#2563eb}.exercise-setup-header h2,.exercise-category-summary h3{margin:0;color:#111827;font-weight:700}.exercise-setup-header h2{font-size:22px}.exercise-setup-header p,.exercise-category-summary p,.exercise-category-empty{margin:5px 0 0;color:#64748b;font-size:14px;line-height:1.45}.exercise-category-field{max-width:520px}.exercise-category-summary{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:14px;border:1px solid #d7dfeb;border-radius:8px;background:#fff}.exercise-category-summary h3{font-size:16px}.exercise-category-summary span{flex:0 0 auto;padding:5px 9px;border-radius:999px;background:#ecfdf5;color:#047857;font-size:12px;font-weight:700}.exercise-set-links{grid-template-columns:repeat(2,minmax(0,1fr))}.selected-exercise-set-list,.exercise-library-grid{display:grid;gap:12px}.exercise-library-card{display:grid;gap:16px;padding:18px;border:1px solid #d7dfeb;border-radius:8px;background:#fff}.exercise-library-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px}.exercise-library-header h2,.exercise-library-set-card h3{margin:0;color:#111827;font-weight:700}.exercise-library-header h2{font-size:20px}.exercise-library-header p,.exercise-library-set-card p{margin:5px 0 0;color:#64748b;font-size:14px;line-height:1.45}.exercise-library-search{display:inline-flex;align-items:center;gap:8px;min-width:240px;min-height:40px;padding:0 12px;border:1px solid #cbd5e1;border-radius:8px;background:#fff;color:#64748b}.exercise-library-search input{width:100%;border:0;background:transparent;color:#111827;font:inherit;outline:0}.exercise-library-grid{grid-template-columns:1fr}.exercise-library-set-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:15px;border:1px solid #d7dfeb;border-radius:8px;background:#fff}.exercise-library-set-preview{display:grid;gap:5px;min-width:0;padding:0;border:0;background:transparent;color:inherit;font:inherit;text-align:left}.exercise-library-set-preview:hover h3{color:#2563eb}.exercise-library-set-meta{color:#475569;font-size:13px;font-weight:700;text-transform:capitalize}.exercise-usage-note{color:#2563eb;font-size:12px;font-weight:700}.exercise-library-actions{display:flex;align-items:center;justify-content:flex-end}.selected-exercise-set-row{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:8px;align-items:center;padding:10px 12px;border:1px solid #d7dfeb;border-radius:8px;background:#fff}.selected-exercise-set-main{display:grid;gap:2px;min-width:0;padding:0;border:0;background:transparent;color:inherit;font:inherit;text-align:left}.selected-exercise-set-main strong{overflow:hidden;color:#111827;font-size:14px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.selected-exercise-set-main span{overflow:hidden;color:#64748b;font-size:12px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.quiet-button.danger{color:#b91c1c}.quiet-button:disabled,.quiet-button.disabled{cursor:not-allowed;opacity:.6}.selected-exercise-set-main,.exercise-library-set-preview,a.quiet-button,a.button{text-decoration:none}.student-item-title{margin:0;color:#111827;font-size:34px;line-height:1.12}.student-assignment-summary{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:18px}.student-assignment-summary span{display:inline-flex;min-height:28px;align-items:center;padding:0 10px;border-radius:999px;background:#eef2f7;color:#42526a;font-size:13px;font-weight:700}.student-item-content{max-width:820px}.assignment-detail-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:24px}.assignment-detail-header h1{margin:0;color:#111827;font-size:34px;line-height:1.12}.assignment-metadata-row{display:flex;flex-wrap:wrap;gap:6px 10px;margin:10px 0 0;color:#64748b;font-size:14px;font-weight:650}.assignment-metadata-row span{white-space:nowrap}.assignment-metadata-row span+span:before{content:"·";margin-right:10px;color:#94a3b8}.assignment-detail-actions,.assignment-submission-counts{display:flex;align-items:center;gap:10px}.assignment-submission-counts span{display:inline-flex;min-height:30px;align-items:center;padding:0 10px;border-radius:999px;background:#eef2f7;color:#475569;font-size:13px;font-weight:800;white-space:nowrap}.assignment-detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 292px;gap:28px;align-items:start}.assignment-detail-layout.student{grid-template-columns:minmax(0,1fr)}.assignment-detail-body{min-width:0}.assignment-summary-panel{display:grid;gap:0;overflow:hidden;border:1px solid #e2e8f0;border-radius:8px;background:#fff}.assignment-summary-panel section{display:grid;gap:12px;padding:15px 16px;border-bottom:1px solid #e2e8f0}.assignment-summary-panel section:last-child{border-bottom:0}.assignment-summary-panel h2,.assignment-summary-list,.assignment-summary-list dt,.assignment-summary-list dd{margin:0}.assignment-summary-panel h2{color:#475569;font-size:12px;font-weight:800;text-transform:uppercase}.assignment-summary-list{display:grid;gap:11px}.assignment-summary-list div{display:grid;gap:3px}.assignment-summary-list dt{color:#64748b;font-size:12px;font-weight:800;text-transform:uppercase}.assignment-summary-list dd{color:#111827;font-size:14px;font-weight:650}.assignment-summary-status{display:inline-flex;align-items:center;gap:7px}.assignment-summary-repo{display:grid;grid-template-columns:auto minmax(0,1fr);gap:5px 8px;align-items:center;color:#475569;font-size:13px;font-weight:700}.assignment-summary-repo svg{color:#64748b}.assignment-summary-repo a{overflow:hidden;color:#2563eb;text-decoration:none;text-overflow:ellipsis;white-space:nowrap}.assignment-summary-repo span{grid-column:2;color:#64748b;font-size:12px;font-weight:700}.assignment-submission-summary{margin:0;color:#334155;font-size:14px;font-weight:650;line-height:1.45}.button.full-width,.quiet-button.full-width{width:100%;justify-content:center}.assignment-source-card,.assignment-repo-card{display:grid;gap:14px;margin-bottom:18px;padding:16px;border:1px solid #e2e8f0;border-radius:8px;background:#fff}.assignment-repo-card{max-width:820px;margin-top:0;margin-bottom:0;background:#fbfcfe;box-shadow:none}.assignment-source-header,.assignment-repo-header{display:grid;grid-template-columns:auto minmax(0,1fr);gap:12px;align-items:center}.assignment-source-icon,.assignment-repo-icon{display:inline-grid;width:36px;height:36px;place-items:center;border-radius:8px;background:#f1f5f9;color:#475569}.assignment-source-header h2,.assignment-source-header p,.assignment-repo-header h2,.assignment-repo-header p{margin:0}.assignment-source-header h2,.assignment-repo-header h2{color:#111827;font-size:16px}.assignment-source-header p,.assignment-repo-header p{color:#64748b;font-size:13px;font-weight:650;line-height:1.45}.assignment-repo-checklist{display:grid;gap:8px;margin:0;padding:12px;border:1px solid #dbeafe;border-radius:8px;background:#eff6ff;list-style:none}.assignment-repo-checklist li{display:flex;gap:8px;align-items:center;color:#334155;font-size:13px;font-weight:750}.assignment-repo-checklist svg{flex:0 0 auto;color:#2563eb}.assignment-source-toggle{display:inline-grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px;justify-self:start;padding:4px;border:1px solid #d7dfeb;border-radius:8px;background:#f8fafc}.assignment-source-option{min-height:36px;cursor:pointer;border:0;border-radius:6px;background:transparent;color:#475569;font:inherit;font-size:13px;font-weight:800;padding:0 12px}.assignment-source-option.active{background:#fff;color:#111827;box-shadow:0 1px 3px #0f172a1f}.assignment-source-fields{display:grid;gap:12px}.assignment-source-fields label{display:grid;gap:6px;color:#475569;font-size:13px;font-weight:800}.assignment-source-fields input{width:100%;height:40px;border:1px solid #cfd8e6;border-radius:8px;background:#fff;color:#111827;font:inherit;font-size:14px;padding:0 11px}.assignment-source-fields input[aria-invalid=true]{border-color:#dc2626}.assignment-source-error{margin:0;color:#b91c1c;font-size:13px;font-weight:700}.assignment-source-preview{display:grid;gap:4px;padding:12px;border:1px solid #bfdbfe;border-radius:8px;background:#eff6ff}.assignment-source-preview strong{color:#111827}.assignment-source-preview span{overflow-x:auto;color:#475569;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:13px}.assignment-repo-command{display:flex;gap:10px;align-items:center;padding:9px;border:1px solid #e2e8f0;border-radius:8px;background:#fff}.assignment-repo-command code{min-width:0;flex:1;overflow-x:auto;color:#111827;font-size:13px}.assignment-repo-actions{display:flex;flex-wrap:wrap;gap:10px}.assignment-readme-card,.assignment-teacher-notes-card{max-width:820px;margin-top:18px;overflow:hidden;border:1px solid #e2e8f0;border-radius:8px;background:#fff;box-shadow:0 12px 28px #0f172a0b}.assignment-readme-header,.assignment-teacher-notes-header{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:13px 20px;border-bottom:1px solid #e2e8f0;background:#fff}.assignment-teacher-notes-header{grid-template-columns:minmax(0,1fr)}.assignment-readme-header h2,.assignment-readme-header p,.assignment-teacher-notes-header h2,.assignment-teacher-notes-header p{margin:0}.assignment-readme-header h2,.assignment-teacher-notes-header h2{color:#111827;font-size:14px;font-weight:800}.assignment-readme-header p,.assignment-teacher-notes-header p{color:#64748b;font-size:13px;font-weight:650;line-height:1.45}.assignment-readme-empty{margin:0;padding:20px 22px;color:#64748b;font-size:14px;font-weight:700;line-height:1.55}.github-readme-markdown{padding:30px 34px;color:#24292f;font-size:15px;line-height:1.5;word-break:break-word}.github-readme-markdown>*:first-child{margin-top:0}.github-readme-markdown>*:last-child{margin-bottom:0}.github-readme-markdown h1,.github-readme-markdown h2,.github-readme-markdown h3,.github-readme-markdown h4,.github-readme-markdown h5,.github-readme-markdown h6{margin:24px 0 16px;color:#24292f;font-weight:700;line-height:1.25}.github-readme-markdown h1,.github-readme-markdown h2{padding-bottom:.3em;border-bottom:1px solid #d8dee4}.github-readme-markdown h1{font-size:2em}.github-readme-markdown h2{font-size:1.5em}.github-readme-markdown h3{font-size:1.25em}.github-readme-markdown h4{font-size:1em}.github-readme-markdown p,.github-readme-markdown blockquote,.github-readme-markdown ul,.github-readme-markdown ol,.github-readme-markdown dl,.github-readme-markdown table,.github-readme-markdown pre,.github-readme-markdown details{margin-top:0;margin-bottom:16px}.github-readme-markdown a{color:#0969da;text-decoration:none}.github-readme-markdown a:hover{text-decoration:underline}.github-readme-markdown strong{font-weight:700}.github-readme-markdown ul,.github-readme-markdown ol{padding-left:2em}.github-readme-markdown li+li{margin-top:.25em}.github-readme-markdown li>p{margin-top:16px}.github-readme-markdown li>p:first-child{margin-top:0}.github-readme-markdown blockquote{padding:0 1em;border-left:.25em solid #d0d7de;color:#57606a}.github-readme-markdown hr{height:.25em;margin:24px 0;border:0;background:#d8dee4}.github-readme-markdown code,.github-readme-markdown kbd,.github-readme-markdown samp{border-radius:6px;background:#afb8c133;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-size:85%;padding:.2em .4em}.github-readme-code-block{position:relative;overflow:auto;margin-bottom:16px;border-radius:6px;background:#f6f8fa}.github-readme-copy-button{position:absolute;top:8px;right:8px;z-index:1;display:inline-grid;width:30px;height:30px;cursor:pointer;place-items:center;border:1px solid #d0d7de;border-radius:6px;background:#f6f8fa;color:#57606a;box-shadow:0 1px #1b1f240a}.github-readme-copy-button:hover{background:#fff;color:#24292f}.github-readme-copy-button:focus-visible{outline:2px solid #0969da;outline-offset:2px}.github-readme-code-block code{padding:0;background:transparent;font-size:inherit}.github-readme-table-wrapper{overflow-x:auto;margin-bottom:16px}.github-readme-table-wrapper table{display:table;width:max-content;max-width:100%;margin-bottom:0;border-spacing:0;border-collapse:collapse}.github-readme-markdown th,.github-readme-markdown td{padding:6px 13px;border:1px solid #d0d7de}.github-readme-markdown tr:nth-child(2n){background:#f6f8fa}.github-readme-markdown img{max-width:100%;box-sizing:content-box;background:#fff}.github-readme-markdown input[type=checkbox]{margin:0 .2em .25em -1.4em;vertical-align:middle}.github-readme-markdown .contains-task-list{list-style:none}.github-readme-markdown .task-list-item{list-style-type:none}.assignment-teacher-notes-content{padding:18px}.assignment-work-card,.assignment-feedback-card{max-width:820px;margin-top:18px;border:1px solid #e1e5eb;border-radius:12px;background:#fff}.assignment-work-card{display:grid;gap:18px;padding:18px}.assignments-page,.grades-page{padding:48px 24px 64px}.assignment-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:14px}.assignment-attention-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:16px;align-items:center;margin-top:24px;padding:22px 24px;border:1px solid #d8e1ee;border-radius:12px;background:#fff}.assignment-attention-icon{display:inline-grid;width:42px;height:42px;place-items:center;border:1px solid #dbeafe;border-radius:10px;background:#eff6ff;color:#2563eb}.assignment-attention-copy,.assignment-attention-copy h2,.assignment-attention-copy p{margin:0}.assignment-attention-copy h2{margin-top:3px;color:#111827;font-size:24px;line-height:1.15}.assignment-attention-row{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:11px}.assignment-attention-row a{color:#101522;font-size:15px;font-weight:850;text-decoration:none}.assignment-attention-row a:hover{color:#2563eb;text-decoration:underline;text-underline-offset:3px}.assignment-attention-meta,.assignment-attention-note{display:block;margin-top:3px;color:#64748b;font-size:13px;font-weight:750}.assignment-attention-action{white-space:nowrap}.assignment-summary-card,.assignments-empty-state,.assignments-table-card{border:1px solid #e1e5eb;border-radius:12px;background:#fff}.assignment-summary-card{display:flex;align-items:center;gap:10px;padding:12px;--assignment-card-accent: #64748b;--assignment-card-accent-bg: #f1f5f9;--assignment-card-accent-border: #e2e8f0}.assignment-summary-grid--quiet .assignment-summary-card{background:#ffffffb8}.assignment-summary-card--blue{--assignment-card-accent: #2563eb;--assignment-card-accent-bg: #eff6ff;--assignment-card-accent-border: #dbeafe}.assignment-summary-card--green{--assignment-card-accent: #15803d;--assignment-card-accent-bg: #ecfdf3;--assignment-card-accent-border: #bbf7d0}.assignment-summary-card--amber{--assignment-card-accent: #a16207;--assignment-card-accent-bg: #fffbeb;--assignment-card-accent-border: #f7e4b5}.assignment-summary-card>svg{width:32px;height:32px;flex:0 0 auto;padding:7px;border:1px solid var(--assignment-card-accent-border);border-radius:10px;background:var(--assignment-card-accent-bg);color:var(--assignment-card-accent)}.assignment-summary-card strong,.assignment-summary-card span{display:block}.assignment-summary-card strong{color:#111827;font-size:18px;line-height:1.05}.assignment-summary-card span{margin-top:4px;color:#64748b;font-size:12px;font-weight:750}.assignment-filter-bar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin:18px 0 14px}.assignment-filter-button{display:inline-flex;min-height:36px;align-items:center;gap:8px;padding:0 12px;border:1px solid #dbe3ee;border-radius:999px;background:#fff;color:#475569;font-size:13px;font-weight:800}.assignment-filter-button span{display:inline-grid;min-width:22px;height:22px;place-items:center;border-radius:999px;background:#f1f5f9;color:#64748b;font-size:11px}.assignment-filter-button:hover,.assignment-filter-button.active{border-color:#c8d6e8;background:#edf2f8;color:#111827}.assignment-filter-button.active span{background:#2563eb;color:#fff}.assignments-empty-state,.grades-empty-state,.students-empty-state{border-color:#e1e5eb;border-radius:12px}.assignments-empty-state{display:flex;gap:14px;align-items:flex-start;margin-top:22px;padding:18px;color:#64748b}.assignments-empty-state svg{flex:0 0 auto;color:#2563eb}.assignments-empty-state h2,.assignments-empty-state p,.assignments-table-header h2,.assignments-table-header p{margin:0}.assignments-empty-state h2{color:#111827;font-size:18px}.assignments-empty-state p{margin-top:4px;max-width:680px;line-height:1.5}.assignments-table-card{overflow:hidden}.assignments-table-header{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;padding:18px 20px;border-bottom:1px solid #e7edf4}.assignments-table-header h2{color:#111827;font-size:18px}.assignments-table-header p,.assignments-table-header>span{margin-top:4px;color:#64748b;font-size:13px}.assignments-table-scroll{overflow-x:auto}.assignments-table{width:100%;min-width:940px;border-collapse:collapse}.assignments-table th,.assignments-table td{padding:16px 18px;border-bottom:1px solid #edf0f4;text-align:left;vertical-align:middle}.assignments-table th,.grades-table thead th,.students-table thead th,.admin-roster-table thead th{background:#f8fafc;color:#5f6d82;font-size:12px;font-weight:850;letter-spacing:0;text-transform:uppercase}.grades-table th,.grades-table td,.students-table th,.students-table td,.admin-roster-table th,.admin-roster-table td{border-bottom-color:#edf0f4}.assignments-table tbody tr:last-child td{border-bottom:0}.assignments-table tbody tr:hover{background:#fbfcfe}.assignment-title-cell{display:grid;gap:7px;min-width:260px}.assignment-title-cell>a{width:fit-content;color:#101522;font-size:15px;font-weight:850;text-decoration:none}.assignment-title-cell>a:hover{color:#2563eb;text-decoration:underline;text-underline-offset:3px}.assignment-meta-row{display:flex;gap:7px;align-items:center;flex-wrap:wrap}.assignment-meta-row>span,.assignment-source-pill,.assignment-publish-badge,.assignment-lifecycle-badge{display:inline-flex;width:fit-content;align-items:center;gap:5px;min-height:24px;padding:0 8px;border:1px solid transparent;border-radius:999px;font-size:11px;font-weight:850;white-space:nowrap}.assignment-meta-row>span{background:#f1f5f9;color:#64748b}.assignment-source-pill{background:#eef2f7;color:#475569}.assignment-source-pill.github{background:#f3f4f6;color:#1f2937}.assignment-module-name{color:#42526a;font-size:13px;font-weight:750}.assignment-due-date,.assignment-submission-count{display:inline-flex;align-items:center;gap:8px;color:#334155;font-size:13px;font-weight:800;white-space:nowrap}.assignment-due-date svg,.assignment-submission-count svg{color:#64748b}.assignment-due-date small,.assignment-submission-count small{display:block;margin-top:2px;color:#64748b;font-size:11px;font-weight:750}.assignment-muted{color:#94a3b8;font-size:13px;font-weight:700}.assignment-status-stack{display:flex;gap:6px;align-items:center;flex-wrap:wrap}.assignment-lifecycle-badge.published{border-color:#e2e8f0;background:#eef2f7;color:#475569}.assignment-lifecycle-badge.draft{border-color:#e2e8f0;background:#f1f5f9;color:#64748b}.assignment-lifecycle-badge.review,.assignment-lifecycle-badge.submitted{border-color:#bfdbfe;background:#eff6ff;color:#1d4ed8}.assignment-lifecycle-badge.graded{border-color:#bbf7d0;background:#ecfdf3;color:#15803d}.assignment-lifecycle-badge.missing{border-color:#fed7aa;background:#fff7ed;color:#c2410c}.assignment-publish-badge{border-color:#e2e8f0;background:#f8fafc;color:#64748b}.assignment-publish-badge.published{border-color:#bbf7d0;background:#ecfdf3;color:#15803d}.assignment-publish-badge.scheduled{border-color:#fde68a;background:#fffbeb;color:#a16207}.assignment-row-action{display:inline-flex;align-items:center;justify-content:flex-end;gap:6px;color:#2563eb;font-size:13px;font-weight:850;text-decoration:none;white-space:nowrap}.assignment-row-action:hover{text-decoration:underline;text-underline-offset:3px}.assignments-filter-empty{padding:20px;color:#64748b;text-align:center}.grades-empty-state,.grades-table-card,.student-grade-card,.grade-summary-card{border:1px solid #e1e5eb;border-radius:12px;background:#fff}.grades-empty-state{display:flex;gap:14px;align-items:flex-start;margin-top:22px;padding:18px;color:#64748b}.grades-empty-state svg{flex:0 0 auto;color:#2563eb}.grades-empty-state h2,.grades-empty-state p,.grade-summary-content strong,.grade-summary-content span,.student-grade-card h2,.student-grade-meta-row,.student-grade-meta-row span,.grade-cell strong,.grade-feedback{margin:0}.grades-empty-state h2{color:#111827;font-size:18px}.grades-empty-state p{margin-top:4px;max-width:660px;line-height:1.5}.grades-summary-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:24px}.grade-summary-card{display:grid;position:relative;gap:12px;overflow:hidden;padding:16px 16px 16px 18px;--grade-card-accent: #2563eb;--grade-card-accent-bg: #eff6ff;--grade-card-accent-border: #dbeafe}.grade-summary-card:before{position:absolute;top:0;bottom:0;left:0;width:3px;background:var(--grade-card-accent);content:""}.grade-summary-card--green{--grade-card-accent: #2f7a50;--grade-card-accent-bg: #effaf4;--grade-card-accent-border: #d9f0e2}.grade-summary-card--amber{--grade-card-accent: #a16207;--grade-card-accent-bg: #fffbeb;--grade-card-accent-border: #f7e4b5}.grade-summary-topline{display:flex;gap:12px;align-items:center;min-width:0}.grade-summary-icon{display:inline-grid;flex:0 0 auto;width:42px;height:42px;place-items:center;border:1px solid var(--grade-card-accent-border);border-radius:10px;background:var(--grade-card-accent-bg);color:var(--grade-card-accent)}.grade-summary-content{display:grid;gap:5px;min-width:0}.grade-summary-content strong{color:#111827;font-size:27px;line-height:1;overflow-wrap:anywhere}.grade-summary-content span{color:#64748b;font-size:13px;font-weight:800}.grade-summary-progress{overflow:hidden;height:6px;border-radius:999px;background:#edf2f7}.grade-summary-progress span{display:block;width:var(--grade-progress, 0%);height:100%;border-radius:inherit;background:var(--grade-card-accent)}.grades-table-card{display:grid;gap:16px;margin-top:18px;padding:18px}.grades-table-scroll{overflow-x:auto}.grades-table{width:100%;min-width:820px;border-collapse:collapse;color:#111827}.grades-table th,.grades-table td{border-bottom:1px solid #e2e8f0;padding:14px 12px;text-align:left;vertical-align:top}.grades-table thead th{background:#f8fafc;color:#475569;font-size:12px;font-weight:850;letter-spacing:0;text-transform:uppercase}.grades-table thead th span,.grades-table tbody th strong{display:block;color:#111827;font-size:14px;letter-spacing:0;text-transform:none}.grades-table thead th small,.grades-table tbody th span{display:block;margin-top:3px;color:#64748b;font-size:12px;font-weight:700;letter-spacing:0;text-transform:none}.grade-item-header{display:grid;gap:6px;justify-items:start}.grade-item-type-badge{display:inline-flex;align-items:center;gap:5px;width:fit-content;min-height:22px;padding:0 8px;border:1px solid var(--grade-item-border);border-radius:999px;background:var(--grade-item-bg);color:var(--grade-item-color);font-size:11px;font-weight:800;letter-spacing:0;text-transform:none}.grade-item-icon{display:inline-grid;width:40px;height:40px;place-items:center;border:1px solid var(--grade-item-border);border-radius:10px;background:var(--grade-item-bg);color:var(--grade-item-color)}.grade-item-type-badge--assignment,.grade-item-icon--assignment{--grade-item-bg: #fff7e6;--grade-item-border: #f2dfb5;--grade-item-color: #9a5d05}.grade-item-type-badge--exercise,.grade-item-icon--exercise{--grade-item-bg: #eff6ff;--grade-item-border: #cfe0ff;--grade-item-color: #2563eb}.grade-item-type-badge--page,.grade-item-icon--page{--grade-item-bg: #f5f7fa;--grade-item-border: #dfe5ee;--grade-item-color: #53627a}.grades-table tbody tr:last-child th,.grades-table tbody tr:last-child td{border-bottom:0}.grade-cell{display:grid;gap:7px;min-width:120px}.grade-status-pill,.grade-feedback{display:inline-flex;width:fit-content;align-items:center;gap:5px;min-height:24px;padding:0 8px;border:1px solid transparent;border-radius:999px;font-size:12px;font-weight:700}.grade-status-pill.graded{border-color:#d8e7dd;background:#f3faf5;color:#3f6f4d}.grade-status-pill.submitted{border-color:#e6e0d3;background:#fbfaf7;color:#7a6550}.grade-status-pill.ungraded{border-color:#e1e7ef;background:#f8fafc;color:#64748b}.grade-feedback{border-color:#dbeafe;background:#eff6ff;color:#1d4ed8}.student-grades-list{display:grid;gap:14px;margin-top:18px}.student-grade-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto auto;gap:18px;align-items:center;padding:18px}.student-grade-card-main{min-width:0}.student-grade-card h2{color:#111827;font-size:18px}.student-grade-meta-row{display:flex;gap:8px;align-items:center;flex-wrap:wrap;margin-top:7px;color:#64748b;font-size:13px;font-weight:700}.students-page{padding:48px 24px 64px}.students-empty-state,.students-table-card,.student-summary-card{border:1px solid #e1e5eb;border-radius:12px;background:#fff}.students-empty-state{display:flex;gap:14px;align-items:flex-start;margin-top:22px;padding:18px;color:#64748b}.students-empty-state svg{flex:0 0 auto;color:#2563eb}.students-empty-state h1,.students-empty-state p,.student-summary-card strong,.student-summary-card p,.students-metric-stack strong,.students-metric-stack span{margin:0}.students-empty-state h1{color:#111827;font-size:22px}.students-empty-state p{margin-top:4px;max-width:620px;line-height:1.5}.students-summary-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-top:24px}.student-summary-card{display:flex;gap:12px;align-items:center;padding:16px}.student-summary-card>span{display:inline-grid;flex:0 0 auto;width:38px;height:38px;place-items:center;border-radius:8px;background:#eff6ff;color:#2563eb}.student-summary-card strong{display:block;color:#111827;font-size:24px;line-height:1}.student-summary-card p{margin-top:4px;color:#64748b;font-size:13px;font-weight:800}.students-table-card{display:grid;gap:16px;margin-top:18px;padding:18px}.students-table-scroll{overflow-x:auto}.students-table{width:100%;min-width:980px;border-collapse:collapse;color:#111827}.students-table th,.students-table td{border-bottom:1px solid #e2e8f0;padding:14px 12px;text-align:left;vertical-align:top}.students-table thead th{background:#f8fafc;color:#475569;font-size:12px;font-weight:850;letter-spacing:0;text-transform:uppercase}.students-table tbody th strong,.students-table tbody th span,.students-table tbody th small{display:block}.students-table tbody th strong{color:#111827;font-size:14px}.students-table tbody th span,.students-table tbody th small,.students-metric-stack span{margin-top:3px;color:#64748b;font-size:12px;font-weight:700}.students-table tbody th small{width:fit-content;padding:2px 8px;border:1px solid #e2e8f0;border-radius:999px;background:#eef2f7}.students-table tbody tr:last-child th,.students-table tbody tr:last-child td{border-bottom:0}.user-identity{display:flex!important;align-items:center;gap:10px;min-width:0}.user-identity>div{display:grid;gap:3px;min-width:0}.user-avatar{width:38px;height:38px;flex:0 0 auto;border-radius:999px;object-fit:cover}.user-avatar.fallback{display:inline-flex;align-items:center;justify-content:center;background:#dbeafe;color:#1d4ed8;font-size:14px;font-weight:900}.students-metric-stack{display:grid;gap:3px;min-width:130px}.students-metric-stack strong{color:#111827;font-size:14px}.students-last-activity{display:inline-flex;align-items:center;gap:6px;color:#64748b;font-size:13px;font-weight:700;white-space:nowrap}.students-row-actions{display:flex;flex-wrap:wrap;gap:8px;min-width:260px}.assignment-work-header{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center}.assignment-work-icon{display:inline-grid;width:40px;height:40px;place-items:center;border-radius:8px;background:#eff6ff;color:#2563eb}.assignment-work-header h2,.assignment-work-header p,.assignment-feedback-card p,.assignment-feedback-card strong,.assignment-review-summary span,.form-save-note{margin:0}.assignment-work-header h2{color:#111827;font-size:18px}.assignment-work-header p,.assignment-review-summary span{color:#64748b;font-size:13px;font-weight:700}.assignment-submission-form,.assignment-review-form{display:grid;gap:12px}.assignment-submission-form label,.assignment-review-form label{display:grid;gap:6px;color:#475569;font-size:13px;font-weight:700}.assignment-submission-form textarea,.assignment-submission-form input,.assignment-review-form textarea,.assignment-review-form input,.assignment-review-form select{width:100%;border:1px solid #cfd8e6;border-radius:8px;background:#fff;color:#111827;font:inherit;font-size:14px}.assignment-submission-form textarea,.assignment-review-form textarea{resize:vertical;min-height:96px;padding:10px 11px;line-height:1.5}.assignment-submission-form input,.assignment-review-form input,.assignment-review-form select{height:40px;padding:0 11px}.assignment-form-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px}.form-save-note{color:#2563eb;font-size:13px;font-weight:700}.form-save-note.error{color:#b91c1c}.form-save-note.success{color:#2563eb}.submission-status-badge{display:inline-flex;align-items:center;gap:6px;min-height:28px;padding:0 10px;border:1px solid #e2e8f0;border-radius:999px;background:#eef2f7;color:#475569;font-size:12px;font-weight:800;white-space:nowrap}.submission-status-badge.submitted{border-color:#bfdbfe;background:#eff6ff;color:#1d4ed8}.submission-status-badge.reviewed{border-color:#bbf7d0;background:#ecfdf3;color:#15803d}.submission-link-verification{display:inline-flex;width:max-content;align-items:center;gap:6px;min-height:28px;padding:0 10px;border:1px solid transparent;border-radius:999px;font-size:12px;font-weight:800}.submission-link-verification.public{border-color:#bbf7d0;background:#ecfdf3;color:#15803d}.submission-link-verification.not-accessible{border-color:#fecaca;background:#fef2f2;color:#b91c1c}.submission-link-verification.unchecked{border-color:#e2e8f0;background:#eef2f7;color:#475569}.assignment-feedback-card{display:grid;gap:10px;padding:14px;background:#f8fbff}.assignment-feedback-card div{display:flex;align-items:center;gap:8px;color:#15803d}.assignment-feedback-card span{justify-self:start;padding:4px 9px;border-radius:999px;background:#eaf5ee;color:#15803d;font-size:13px;font-weight:800}.assignment-feedback-card p{color:#334155;line-height:1.5}.assignment-review-section{gap:14px}.assignment-review-summary{display:flex;align-items:center;justify-content:space-between;gap:8px}.assignment-review-content{display:grid;gap:10px;padding:12px;border:1px solid #e2e8f0;border-radius:8px;background:#f8fafc}.assignment-review-content p{margin:0;color:#334155;font-size:13px;line-height:1.5}.assignment-review-content a{display:inline-flex;align-items:center;gap:6px;color:#2563eb;font-size:13px;font-weight:700;text-decoration:none}.assignment-review-shell,.assignment-speedgrader-page{min-height:100vh;background:#f5f7fb}.assignment-speedgrader-page{display:grid;grid-template-rows:auto minmax(0,1fr);color:#111827}.assignment-speedgrader-topbar{display:grid;grid-template-columns:minmax(0,1fr) auto auto;gap:22px;align-items:center;min-height:78px;padding:12px 24px;border-bottom:1px solid #e2e8f0;background:#fff}.assignment-speedgrader-title{display:flex;min-width:0;align-items:center;gap:22px}.assignment-speedgrader-title h1,.assignment-speedgrader-title p,.assignment-speedgrader-stats strong,.assignment-speedgrader-stats span,.speedgrader-top-switcher span,.submission-reader-card h2,.submission-reader-card h3,.submission-reader-card p,.submission-reader-meta,.submission-reader-meta dt,.submission-reader-meta dd,.submission-document-kicker,.submission-empty-work h2,.submission-empty-work p{margin:0}.assignment-speedgrader-title h1{overflow:hidden;color:#111827;font-size:20px;line-height:1.15;text-overflow:ellipsis;white-space:nowrap}.speedgrader-back-link{display:inline-flex;align-items:center;gap:8px;color:#475569;font-size:14px;font-weight:800;text-decoration:none;white-space:nowrap}.speedgrader-back-link:hover{color:#111827}.assignment-speedgrader-stats{display:flex;align-items:center;gap:20px}.assignment-speedgrader-stats div{display:grid;gap:2px;min-width:80px;text-align:center}.assignment-speedgrader-stats strong{color:#334155;font-size:18px;line-height:1}.assignment-speedgrader-stats span{color:#64748b;font-size:12px;font-weight:800}.speedgrader-top-switcher,.speedgrader-panel-switcher{display:flex;align-items:center;gap:8px}.speedgrader-top-switcher span{min-width:54px;color:#334155;font-size:15px;font-weight:800;text-align:center}.speedgrader-icon-button{display:inline-grid;width:36px;height:36px;place-items:center;border:1px solid #cfd8e6;border-radius:8px;background:#fff;color:#334155;cursor:pointer}.speedgrader-icon-button:disabled{color:#94a3b8;cursor:not-allowed;opacity:.7}.assignment-speedgrader-layout{display:grid;grid-template-columns:minmax(0,1fr) 390px;min-height:0;overflow:hidden}.speedgrader-workspace{min-width:0;overflow:auto}.speedgrader-review-panel{display:grid;align-content:start;gap:18px;overflow:auto;padding:18px;border-left:1px solid #cbd5e1;background:#fff}.speedgrader-student-card{display:grid;gap:12px;padding-bottom:18px;border-bottom:1px solid #e2e8f0}.speedgrader-student-select select{width:100%;height:42px;padding:0 34px 0 12px;border:1px solid #cfd8e6;border-radius:8px;background:#fff;color:#111827;font:inherit;font-size:14px;font-weight:800}.speedgrader-student-meta{display:flex;align-items:center;justify-content:space-between;gap:10px}.speedgrader-student-meta>span{overflow:hidden;color:#64748b;font-size:13px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.speedgrader-panel-switcher{justify-content:space-between}.speedgrader-review-panel .assignment-review-section{padding:0;border:0;background:transparent}.speedgrader-review-panel .assignment-review-form textarea{min-height:180px}.submission-reader-card{display:grid;grid-template-rows:auto minmax(0,1fr);min-height:100%}.submission-document-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:18px 24px;border-bottom:1px solid #dbe3ee;background:#fff}.submission-reader-card h2{color:#111827;font-size:22px;line-height:1.15}.submission-artifact-stage{display:flex;justify-content:center;overflow:auto;padding:34px 28px 56px;background:#f5f7fb}.submission-document-page{display:grid;align-content:start;gap:24px;width:min(100%,880px);min-height:720px;padding:54px clamp(34px,6vw,86px);border:1px solid #cbd5e1;background:#fff;box-shadow:0 20px 45px #0f172a14}.submission-document-kicker{display:flex;justify-content:space-between;gap:16px;color:#64748b;font-size:12px;font-weight:800;text-transform:uppercase}.submission-reader-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.submission-reader-meta div{display:grid;gap:3px;padding:12px;border-radius:8px;background:#f8fafc}.submission-reader-meta dt{color:#64748b;font-size:12px;font-weight:800;text-transform:uppercase}.submission-reader-meta dd{color:#111827;font-size:13px;font-weight:700}.submission-document-section{display:grid;gap:10px}.submission-document-section h3{color:#111827;font-size:15px}.submission-document-section p{color:#334155;font-size:16px;line-height:1.7;white-space:pre-wrap}.submission-document-section a{display:inline-flex;align-items:center;gap:7px;color:#2563eb;font-weight:800;text-decoration:none;word-break:break-all}.submission-link-stack{display:grid;gap:8px;justify-items:start}.submission-empty-work{display:grid;min-height:360px;place-content:center;justify-items:center;gap:10px;padding:32px;color:#64748b;text-align:center}.submission-empty-work svg{color:#94a3b8}.submission-empty-work h2{color:#111827;font-size:22px}.submission-empty-work p{max-width:360px;color:#64748b;line-height:1.5}.muted-copy{color:#64748b!important}.sign-in-page{display:grid;place-items:center;background:radial-gradient(circle at top left,rgba(37,99,235,.1),transparent 32%),#f5f7fb}.sign-in-panel{width:min(100%,980px)}.sign-in-header{max-width:620px;margin-bottom:24px}.sign-in-header h1,.sign-in-header p,.sign-in-card h2,.sign-in-card p,.admin-access-card h2,.admin-access-card p,.admin-stat-card strong,.admin-stat-card span{margin:0}.sign-in-header h1{color:#111827;font-size:36px;line-height:1.1}.sign-in-header p{margin-top:10px;color:#53627a;line-height:1.55}.sign-in-card-grid,.admin-stat-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:16px}.sign-in-card,.google-sign-in-card,.auth-callback-panel{border:1px solid #d7dfeb;border-radius:8px;background:#fff;box-shadow:0 10px 28px #0f172a0f}.admin-access-card,.admin-stat-card,.admin-table-card{border:1px solid #e1e5eb;border-radius:12px;background:#fff;box-shadow:none}.sign-in-card{display:grid;gap:14px;padding:18px}.google-sign-in-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:16px;margin-bottom:18px;padding:18px}.google-sign-in-card h2,.google-sign-in-card p,.google-sign-in-card span,.auth-callback-panel h1,.auth-callback-panel p{margin:0}.google-sign-in-card h2,.auth-callback-panel h1{color:#111827;font-size:22px;line-height:1.2}.google-sign-in-card p,.auth-callback-panel p{margin-top:5px;color:#53627a;line-height:1.5}.google-sign-in-card span{display:block;margin-top:7px;color:#64748b;font-size:13px;font-weight:700}.google-sign-in-actions{display:flex;align-items:center;gap:10px;justify-content:flex-end;flex-wrap:wrap}.google-sign-in-setup{grid-column:2 / -1;margin-top:-4px!important;color:#64748b!important;font-size:13px}.auth-callback-panel{display:grid;gap:12px;max-width:520px;padding:24px}.sign-in-card.active{border-color:#2563eb;box-shadow:0 14px 34px #2563eb1f}.sign-in-card-icon,.admin-stat-card>svg,.admin-access-card>svg{display:inline-grid;width:42px;height:42px;place-items:center;border-radius:8px;background:#eef4ff;color:#1d4ed8}.sign-in-card h2{color:#111827;font-size:19px;line-height:1.2}.sign-in-card div p,.sign-in-card div span{color:#64748b;font-size:13px;font-weight:700}.sign-in-card>p{color:#53627a;line-height:1.5}.admin-access-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:14px;padding:18px}.admin-access-card h2{color:#111827;font-size:18px}.admin-access-card p{margin-top:4px;color:#53627a}.admin-stat-card{display:flex;align-items:center;gap:12px;padding:16px}.admin-stat-card div{display:grid;gap:2px}.admin-stat-card strong{color:#111827;font-size:24px;line-height:1}.admin-stat-card span{color:#64748b;font-size:13px;font-weight:700}.admin-table-card{display:grid;gap:14px;margin-top:18px;padding:18px}.admin-dashboard-grid{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(280px,.65fr);gap:18px;align-items:start}.admin-dashboard-grid .admin-table-card{margin-top:18px}.admin-course-list{display:grid;border:1px solid #e1e7f0;border-radius:8px;overflow:hidden}.admin-course-row{display:grid;grid-template-columns:minmax(220px,1fr) auto auto auto;gap:14px;align-items:center;padding:12px;border-bottom:1px solid #e1e7f0}.admin-course-row:last-child{border-bottom:0}.admin-course-row div{display:grid;gap:3px}.admin-course-row strong{color:#111827}.admin-course-row span{color:#64748b;font-size:13px;font-weight:700}.admin-course-select{display:grid;gap:3px;border:0;padding:8px;border-radius:8px;background:transparent;text-align:left}.admin-course-select.active{background:#eff6ff}.admin-course-select:hover{background:#f8fafc}.admin-user-list{display:grid;border:1px solid #e1e7f0;border-radius:8px;overflow:hidden}.admin-user-row{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(170px,.8fr) auto;gap:12px;align-items:center;padding:12px;border-bottom:1px solid #e1e7f0}.admin-user-row:last-child{border-bottom:0}.admin-user-row div{display:grid;gap:3px}.admin-user-meta{color:#64748b;font-size:12px}.admin-user-meta strong{color:#334155;font-size:12px}.admin-user-row strong,.admin-roster-table strong{color:#111827}.admin-user-row span,.admin-roster-table span{color:#64748b;font-size:13px;font-weight:700}.admin-role-pill{display:inline-flex;min-height:28px;align-items:center;justify-content:center;border:1px solid #bfdbfe;border-radius:999px;padding:0 10px;background:#eef4ff;color:#1d4ed8;font-size:12px;font-weight:800}.admin-roster-heading{align-items:center}.admin-add-enrollment{display:grid;grid-template-columns:minmax(220px,1fr) minmax(170px,auto) auto;gap:12px;align-items:end;padding:14px;border:1px solid #e1e7f0;border-radius:8px;background:#f8fafc}.admin-add-enrollment label{display:grid;gap:6px;color:#53627a;font-size:13px;font-weight:800}.admin-add-enrollment select,.admin-roster-table select{min-height:38px;border:1px solid #d5ddea;border-radius:8px;padding:0 36px 0 10px;background-color:#fff;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='18' height='18' viewBox='0 0 24 24' fill='none' stroke='%2342526a' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 10px center;background-repeat:no-repeat;background-size:18px;color:#27364d;font:inherit;font-weight:700;-webkit-appearance:none;-moz-appearance:none;appearance:none}.admin-roster-table-scroll{overflow-x:auto;border:1px solid #e1e7f0;border-radius:8px}.admin-roster-table{width:100%;min-width:780px;border-collapse:collapse}.admin-roster-table th,.admin-roster-table td{padding:12px;border-bottom:1px solid #e1e7f0;text-align:left;vertical-align:middle}.admin-roster-table thead th{background:#f8fafc;color:#5f6d82;font-size:12px;font-weight:850;letter-spacing:0;text-transform:uppercase}.admin-roster-table tbody tr:last-child th,.admin-roster-table tbody tr:last-child td{border-bottom:0}.admin-roster-table th[scope=row]{display:grid;gap:3px;min-width:220px}.admin-reset-card{display:grid;gap:6px;margin-top:18px;padding:14px;border:1px solid #e1e5eb;border-radius:12px;background:#f8fafc;color:#334155}.admin-reset-card strong,.admin-reset-card p{margin:0}.admin-reset-card code{border-radius:6px;padding:2px 6px;background:#dbeafe;color:#1e3a8a;font-weight:800}.library-preview-problem-card{display:grid;grid-template-columns:auto minmax(0,1fr) auto;gap:12px;align-items:center;min-height:58px;padding:12px;border:1px solid #d7dfeb;border-radius:8px;background:#fff}.library-preview-problem-index{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:999px;background:#eff6ff;color:#2563eb;font-size:13px;font-weight:700}.library-preview-problem-copy{display:grid;gap:2px;min-width:0}.library-preview-problem-copy strong{overflow:hidden;color:#111827;font-size:14px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.library-preview-problem-copy small{overflow:hidden;color:#64748b;font-size:12px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.exercise-instructions-details{border:1px solid #d7dfeb;border-radius:8px;background:#fff}.exercise-instructions-details summary{cursor:pointer;padding:15px 18px;color:#111827;font-size:14px;font-weight:700}.exercise-instructions-details[open] summary{border-bottom:1px solid #e2e8f0}.exercise-instructions-body{padding:18px}.item-editor-panel{display:grid;gap:0;overflow:hidden}.item-editor-panel-section{display:grid;gap:12px;padding:16px;border-bottom:1px solid #e2e8f0}.item-editor-panel-section:last-child{border-bottom:0}.item-editor-panel-section h2{margin:0;color:#111827;font-size:14px;font-weight:700}.settings-note{margin:0;color:#64748b;font-size:13px;line-height:1.45}.assignment-link-stack{display:grid;gap:8px}.assignment-link-stack .button,.assignment-link-stack .quiet-button{width:100%;text-decoration:none}.module-outline-list{display:grid;gap:5px}.module-outline-item{display:flex;align-items:center;gap:8px;min-height:34px;padding:0 9px;border-radius:7px;color:#475569;font-size:13px;font-weight:700;text-decoration:none}.module-outline-item.active{background:#eff6ff;color:#1d4ed8}a.module-outline-item:hover{background:#f8fafc;color:#1d4ed8}.view-toggle{display:inline-flex;gap:4px;padding:4px;border:1px solid #d5ddea;border-radius:8px;background:#fff}.view-toggle button{display:inline-grid;width:38px;height:34px;place-items:center;border:0;border-radius:6px;background:transparent;color:#64748b}.view-toggle button.active{background:#2563eb;color:#fff}.schedule-card-header{display:flex;align-items:center;gap:12px}.schedule-card-header>svg{color:#2563eb}.schedule-card h2{color:#111827;font-size:19px}.schedule-card p{margin-top:2px;color:#64748b;font-size:13px}.agenda-list,.agenda-day{display:grid;gap:12px}.agenda-day h3{color:#111827;font-size:14px;text-transform:capitalize}.agenda-item{display:grid;grid-template-columns:48px minmax(0,1fr);gap:10px;align-items:start;padding:10px;border:1px solid #e1e7f0;border-radius:8px;background:#fbfcfe}.agenda-item.date-only{grid-template-columns:minmax(0,1fr)}.agenda-item>span{color:#4f5f78;font-size:12px;font-weight:700}.agenda-item p{color:#111827;font-size:13px;font-weight:700}.agenda-item small{color:#68778f;font-size:12px}.calendar-card{overflow:hidden}.calendar-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));border:1px solid #e1e5eb;border-radius:12px;overflow:hidden}.calendar-weekday{padding:10px;border-right:1px solid #e1e5eb;border-bottom:1px solid #e1e5eb;background:#f8fafc;color:#53627a;font-size:12px;font-weight:700}.calendar-weekday:nth-child(7){border-right:0}.calendar-day{min-height:118px;padding:8px;border-right:1px solid #e1e5eb;border-bottom:1px solid #e1e5eb;background:#fff}.calendar-day:nth-child(7n){border-right:0}.calendar-day.outside-month{background:#f8fafc;color:#94a3b8}.calendar-date{display:inline-flex;color:#334155;font-size:12px;font-weight:700}.calendar-events{display:grid;gap:4px;margin-top:8px}.calendar-event,.calendar-more{display:block;overflow:hidden;padding:3px 6px;border-radius:5px;background:#e8f1ff;color:#1d4ed8;font-size:11px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.calendar-event.due{background:#fff3d6;color:#a16207}.calendar-more{background:#eef2f7;color:#64748b}.exercise-page{min-height:100vh;padding:32px}.exercise-overview-card,.progress-table-card{display:grid;gap:18px;border:1px solid #e1e5eb;border-radius:12px;background:#fff;padding:20px}.exercise-overview-header{display:flex;align-items:flex-start;justify-content:space-between;gap:18px}.exercise-overview-header h2,.exercise-overview-header p{margin:0}.exercise-overview-header h2{color:#111827;font-size:22px}.exercise-overview-header p{margin-top:6px;color:#64748b;line-height:1.5}.exercise-progress-pill,.exercise-passed-pill{display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:0 12px;border-radius:999px;background:#ecfdf3;color:#166534;font-size:13px;font-weight:700;white-space:nowrap}.exercise-list{display:grid;gap:10px}.exercise-card-link{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:center;gap:12px;min-height:64px;padding:12px;border:1px solid #dbe3ee;border-radius:8px;color:#111827;text-decoration:none}.exercise-card-link:hover{border-color:#93c5fd;background:#fbfdff}.exercise-card-link strong,.exercise-card-link small{display:block}.exercise-card-link small{margin-top:3px;color:#64748b;font-size:12px;font-weight:700}.exercise-status-dot{display:inline-grid;width:38px;height:38px;place-items:center;border-radius:8px;background:#eef2f7;color:#64748b}.exercise-status-dot.in_progress{background:#eff6ff;color:#1d4ed8}.exercise-status-dot.passed{background:#dcfce7;color:#16a34a}.exercise-player-inner{width:min(100%,1400px);margin:0 auto}.exercise-player-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:18px}.exercise-player-header h1{margin:0;color:#111827;font-size:30px;line-height:1.1}.exercise-player-actions{display:flex;align-items:center;justify-content:flex-end;flex-wrap:wrap;gap:8px}.exercise-player-layout{display:grid;grid-template-columns:minmax(300px,.45fr) minmax(520px,.55fr);gap:18px;align-items:stretch;min-height:720px}.exercise-prompt-panel,.exercise-code-panel{border:1px solid #e1e5eb;border-radius:12px;background:#fff}.exercise-prompt-panel{overflow:auto;padding:24px;color:#334155;line-height:1.65}.exercise-prompt-panel h1,.exercise-prompt-panel h2,.exercise-prompt-panel h3{color:#111827;line-height:1.2}.exercise-prompt-panel pre{overflow-x:auto;padding:14px;border-radius:8px;background:#f8fafc;border:1px solid #e2e8f0}.exercise-code-panel{display:grid;grid-template-rows:minmax(420px,1fr) auto;overflow:hidden}.exercise-editor-frame{min-height:420px}.exercise-code-editor{height:100%}.exercise-result-panel{min-height:140px;max-height:240px;overflow:auto;padding:14px;border-top:1px solid #d7dfeb;background:#fbfcfe;color:#334155;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:13px}.exercise-result-panel.empty{display:flex;align-items:center;color:#64748b;font-family:inherit}.exercise-result-panel.pass{background:#f0fdf4}.exercise-result-panel.fail,.exercise-result-panel.error{background:#fff7ed}.exercise-result-header{display:flex;justify-content:space-between;gap:12px;margin-bottom:8px;font-family:inherit}.exercise-result-panel ul{margin:0;padding-left:18px}.progress-table{width:100%;border-collapse:collapse}.progress-table th,.progress-table td{padding:12px;border-top:1px solid #e2e8f0;text-align:left}.progress-table th{color:#64748b;font-size:12px;font-weight:700;text-transform:uppercase}.progress-table td{color:#334155;font-size:14px}.progress-table td strong,.progress-table td span{display:block}.progress-table td span{margin-top:2px;color:#64748b;font-size:12px}.progress-meter{display:inline-flex;width:110px;height:8px;margin-right:8px;overflow:hidden;border-radius:999px;background:#e2e8f0;vertical-align:middle}.progress-meter span{display:block;height:100%;background:#2563eb}.course-exercise-shell{min-height:100vh;background:#f8fafc}.exercise-fullscreen-page{display:flex;min-height:100vh;height:100vh;flex-direction:column;overflow:hidden;background:#fff;color:#0f172a}.exercise-top-nav{display:flex;min-height:64px;align-items:center;justify-content:space-between;gap:18px;border-bottom:1px solid #e2e8f0;background:#ffffffd1;padding:0 32px;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.exercise-top-nav-main,.exercise-top-nav-actions,.exercise-nav-stepper,.exercise-stepper-button,.exercise-nav-back{display:inline-flex;align-items:center}.exercise-top-nav-main{min-width:0;gap:18px}.exercise-nav-back{gap:7px;min-height:36px;padding:0 10px;border-radius:6px;color:#475569;font-size:14px;font-weight:700;text-decoration:none}.exercise-nav-back:hover,.exercise-stepper-button:hover:not(:disabled){background:#f1f5f9;color:#0f172a}.exercise-top-nav-title{display:grid;min-width:0;gap:2px}.exercise-top-nav-title span{overflow:hidden;color:#64748b;font-size:12px;font-weight:700;text-overflow:ellipsis;text-transform:uppercase;white-space:nowrap}.exercise-top-nav-title strong{overflow:hidden;color:#111827;font-size:16px;font-weight:700;text-overflow:ellipsis;white-space:nowrap}.exercise-top-nav-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px}.exercise-nav-progress{display:inline-flex;min-height:32px;align-items:center;border-radius:999px;background:#f1f5f9;color:#475569;padding:0 12px;font-size:13px;font-weight:700;white-space:nowrap}.exercise-nav-stepper{overflow:hidden;border:1px solid #e2e8f0;border-radius:6px;background:#fff}.exercise-stepper-button{gap:5px;min-height:34px;border:0;background:transparent;color:#334155;cursor:pointer;font:inherit;font-size:13px;font-weight:700;padding:0 10px;text-decoration:none}.exercise-stepper-button:disabled{color:#94a3b8;cursor:not-allowed}.exercise-stepper-count{min-width:48px;border-inline:1px solid #d7dfeb;color:#64748b;font-size:13px;font-weight:700;text-align:center}.exercise-fullscreen-empty{margin:32px;color:#64748b;font-weight:700}.exercise-overview-shell{display:grid;flex:1;min-height:0;grid-template-columns:minmax(320px,35%) minmax(0,65%);overflow:hidden}.exercise-overview-info{display:flex;min-height:0;flex-direction:column;gap:32px;overflow:auto;border-right:1px solid #e2e8f0;background:#fff;padding:32px}.exercise-overview-title-block{display:grid;gap:16px}.exercise-overview-info h1{margin:0;color:#0f172a;font-size:40px;font-weight:700;letter-spacing:0;line-height:1.08}.exercise-overview-meta{display:flex;flex-wrap:wrap;gap:8px}.exercise-overview-meta span{display:inline-flex;min-height:26px;align-items:center;border-radius:999px;background:#f1f5f9;color:#475569;font-size:13px;font-weight:700;padding:0 10px}.exercise-overview-description{color:#334155;font-size:15px;line-height:1.7}.exercise-overview-description h1,.exercise-overview-description h2,.exercise-overview-description h3{color:#0f172a;line-height:1.2}.exercise-overview-description code{border-radius:4px;background:#f1f5f9;color:#1e293b;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.92em;padding:2px 6px}.exercise-overview-list-panel{min-height:0;overflow:auto;background:#f8fafc;padding:32px}.exercise-list{width:min(100%,768px);margin:0 auto;gap:16px}.exercise-card-link{display:flex;min-height:82px;align-items:center;justify-content:space-between;gap:18px;border-color:#e2e8f0;border-radius:12px;background:#fff;padding:20px;transition:border-color .18s ease,box-shadow .18s ease,background-color .18s ease}.exercise-card-link:hover{border-color:#93c5fd;background:#fff;box-shadow:0 10px 24px #1e40af0f}.exercise-card-main{display:inline-flex;min-width:0;align-items:center;gap:16px}.exercise-card-link strong{color:#0f172a;font-size:18px;font-weight:700}.exercise-card-link:hover strong{color:#1d4ed8}.exercise-card-action{display:inline-flex;align-items:center;gap:5px;color:#2563eb;font-size:14px;font-weight:700;opacity:0;transform:translate(-6px);transition:opacity .18s ease,transform .18s ease;white-space:nowrap}.exercise-card-link:hover .exercise-card-action,.exercise-card-link:focus-visible .exercise-card-action,.exercise-card-link:has(.exercise-status-dot.passed) .exercise-card-action{opacity:1;transform:translate(0)}.exercise-player-inner{display:flex;width:100%;min-height:0;flex:1;margin:0;padding:0}.exercise-player-layout{display:grid;width:100%;min-height:0;flex:1;grid-template-columns:minmax(320px,35%) minmax(0,65%);gap:0;align-items:stretch}.exercise-prompt-panel,.exercise-code-panel{min-height:0}.exercise-prompt-panel,.exercise-code-panel{border:0;border-radius:0;box-shadow:none}.exercise-prompt-panel{overflow:auto;border-right:1px solid #e5e7eb;background:#f8fafc;color:#334155;padding:32px}.exercise-prompt-panel>.eyebrow{margin-top:0}.exercise-code-panel{display:grid;overflow:hidden;background:#fff;grid-template-rows:minmax(0,1fr) auto minmax(180px,.36fr)}.exercise-code-toolbar{display:flex;min-height:58px;align-items:center;justify-content:space-between;gap:12px;border-top:1px solid #e5e7eb;border-bottom:1px solid #e5e7eb;padding:10px 14px}.exercise-code-status{color:#64748b;font-size:13px;font-weight:700}.exercise-editor-frame{min-height:0}.exercise-result-panel{max-height:none;min-height:0;background:#fff;border-top:0}@media (max-width: 1080px){.course-workspace-shell,.assignment-speedgrader-topbar{grid-template-columns:1fr}.assignment-speedgrader-title{align-items:flex-start;flex-direction:column;gap:10px}.assignment-speedgrader-stats,.speedgrader-top-switcher{justify-content:flex-start}.assignment-speedgrader-layout{grid-template-columns:1fr;overflow:visible}.speedgrader-review-panel{border-left:0;border-top:1px solid #cbd5e1}.course-card-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.sign-in-card-grid,.admin-stat-grid,.admin-dashboard-grid{grid-template-columns:1fr}.assignment-summary-grid,.exercise-hub-stats,.students-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.settings-layout{grid-template-columns:1fr}.course-sidebar{position:static;height:auto;max-height:none;border-right:0;border-bottom:1px solid var(--sidebar-border);overflow:visible}.student-preview-area{position:static;padding:16px 18px 0}.course-profile-area--sidebar{padding-top:12px}.course-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.google-sign-in-card{grid-template-columns:1fr}.google-sign-in-actions{justify-content:flex-start}.google-sign-in-setup{grid-column:auto}}@media (max-width: 760px){.builder-shell,.admin-page,.assignments-page,.courses-page,.exercises-page,.exercise-page,.grades-page,.item-editor-page,.schedule-page,.settings-page,.sign-in-page,.students-page{padding:22px 18px}.page-header{flex-direction:column;margin-bottom:26px}.page-header h1{font-size:30px}.page-header p{font-size:15px}.header-actions{justify-content:flex-start}.admin-access-card,.admin-course-row,.admin-add-enrollment{grid-template-columns:1fr}.module-topline{grid-template-columns:auto 32px minmax(0,1fr)}.module-actions{grid-column:1 / -1;justify-content:flex-end}.course-item-row{grid-template-columns:auto auto minmax(0,1fr)}.course-item-row.read-only{grid-template-columns:auto minmax(0,1fr)}.course-item-row:not(.read-only) .item-actions{grid-column:1 / -1}.calendar-grid{min-width:720px}.calendar-card{overflow-x:auto}.item-editor-header,.item-editor-layout,.assignment-detail-layout{grid-template-columns:1fr}.item-editor-header,.assignment-detail-header{flex-direction:column}.assignment-detail-actions,.assignment-submission-counts{flex-wrap:wrap;justify-content:flex-start}.assignment-repo-command{align-items:stretch;flex-direction:column}.assignment-repo-actions{display:grid;grid-template-columns:1fr}.assignment-readme-header{grid-template-columns:1fr}.assignment-repo-actions .quiet-button,.assignment-readme-header .quiet-button{width:100%}.assignment-speedgrader-topbar{padding:14px 18px}.assignment-speedgrader-stats{flex-wrap:wrap}.submission-document-toolbar{align-items:flex-start;flex-direction:column;padding:16px 18px}.submission-artifact-stage{padding:18px}.submission-document-page{min-height:520px;padding:28px 20px}.submission-document-kicker{flex-direction:column;gap:6px}.submission-reader-meta{grid-template-columns:1fr}.exercise-category-summary,.exercise-set-links,.exercise-library-grid,.exercise-library-header{display:grid;grid-template-columns:1fr}.exercise-library-search{width:100%}.student-exercise-next-card{grid-template-columns:1fr}.exercise-player-header,.exercise-overview-header,.student-exercise-focus-card,.student-exercise-set-sections-header,.student-exercise-set-section,.exercise-path-card,.course-exercise-card-main,.course-exercise-footer,.course-exercise-topic{flex-direction:column;align-items:stretch}.student-exercise-set-summary{justify-items:start;text-align:left}.student-exercise-set-section-meta,.course-exercise-topic-meta{justify-content:flex-start;flex-wrap:wrap;text-align:left;white-space:normal}.exercise-player-layout{grid-template-columns:1fr;min-height:auto}.exercise-fullscreen-page{overflow:auto}.exercise-top-nav{align-items:flex-start;flex-direction:column;padding:12px 16px}.exercise-top-nav-main{width:100%;align-items:flex-start;flex-direction:column;gap:8px}.exercise-top-nav-actions{width:100%;justify-content:flex-start}.exercise-overview-shell{grid-template-columns:1fr;padding:24px 18px}.exercise-overview-info h1{font-size:34px}.exercise-overview-stats,.assignment-summary-grid,.grades-summary-grid,.students-summary-grid,.student-grade-card{grid-template-columns:1fr}.assignment-attention-card{grid-template-columns:1fr;align-items:stretch}.assignment-attention-action{justify-self:start}.assignments-table-card{overflow:hidden}.assignments-table-scroll{overflow-x:visible}.assignments-table{min-width:0;border-collapse:separate;border-spacing:0}.assignments-table thead{display:none}.assignments-table tbody{display:grid;gap:12px;padding:12px}.assignments-table tbody tr{display:grid;overflow:hidden;border:1px solid #e1e5eb;border-radius:12px;background:#fff}.assignments-table th,.assignments-table td{padding:12px 14px}.assignments-table tbody tr:last-child td,.assignments-table td{border-bottom:1px solid #edf0f4}.assignments-table td{display:grid;grid-template-columns:104px minmax(0,1fr);gap:12px;align-items:start}.assignments-table td:before{content:attr(data-label);color:#64748b;font-size:11px;font-weight:850;line-height:1.4;text-transform:uppercase}.assignments-table td:last-child{border-bottom:0}.assignments-table td[colspan]{display:block}.assignments-table td[colspan]:before{content:none}.assignment-title-cell{min-width:0}.assignment-row-action{justify-content:flex-start}.exercise-player-inner{padding:14px}.exercise-code-panel{min-height:640px}}@media (max-width: 540px){.course-card-grid,.assignment-summary-grid,.exercise-hub-stats,.course-nav{grid-template-columns:1fr}.student-preview-area{justify-content:stretch}.student-preview-button,.course-profile-trigger{width:100%}.course-item-row{grid-template-columns:auto minmax(0,1fr) auto;gap:8px 12px;align-items:start}.course-item-row>.item-icon{display:none}.course-item-row .drag-handle{grid-column:1;grid-row:1}.course-item-row .item-main{grid-column:2;grid-row:1;align-self:center}.course-item-row:not(.read-only) .item-date-metadata{grid-column:2 / -1;grid-row:2;text-align:left;white-space:normal}.course-item-row:not(.read-only) .item-actions{grid-column:3;grid-row:1}.course-item-row.read-only{grid-template-columns:minmax(0,1fr) auto}.course-item-row.read-only .item-main{grid-column:1}.course-item-row.read-only .item-date-metadata{grid-column:1 / -1}}
