/*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
@layer properties{@supports (((-webkit-hyphens:none)) and (not (margin-trim:inline))) or ((-moz-orient:inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-rotate-x:initial;--tw-rotate-y:initial;--tw-rotate-z:initial;--tw-skew-x:initial;--tw-skew-y:initial;--tw-outline-style:solid;--tw-blur:initial;--tw-brightness:initial;--tw-contrast:initial;--tw-grayscale:initial;--tw-hue-rotate:initial;--tw-invert:initial;--tw-opacity:initial;--tw-saturate:initial;--tw-sepia:initial;--tw-drop-shadow:initial;--tw-drop-shadow-color:initial;--tw-drop-shadow-alpha:100%;--tw-drop-shadow-size:initial}}}@layer theme{:root,:host{--font-sans:"Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;--default-font-family:"Inter", ui-sans-serif, system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--default-mono-font-family:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", "Noto Sans", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring:where(:not(iframe)){outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab, currentcolor 50%, transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.fixed{position:fixed}.relative{position:relative}.static{position:static}.block{display:block}.hidden{display:none}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.italic{font-style:italic}.underline{text-decoration-line:underline}.outline{outline-style:var(--tw-outline-style);outline-width:1px}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}}:root{--radius:.5rem;--background:0 0% 100%;--foreground:24 9.8% 10%;--card:0 0% 100%;--card-foreground:24 9.8% 10%;--popover:0 0% 100%;--popover-foreground:24 9.8% 10%;--primary:24 9.8% 10%;--primary-foreground:60 9.1% 97.8%;--secondary:60 4.8% 95.9%;--secondary-foreground:24 9.8% 10%;--muted:60 4.8% 95.9%;--muted-foreground:25 5.3% 44.7%;--accent:60 4.8% 95.9%;--accent-foreground:24 9.8% 10%;--destructive:0 72.2% 50.6%;--destructive-foreground:0 0% 100%;--border:20 5.9% 90%;--input:20 5.9% 90%;--ring:24 5.4% 63.9%;--success:152 15% 38%;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}.dark{--background:20 14.3% 4.1%;--foreground:60 9.1% 97.8%;--card:24 9.8% 10%;--card-foreground:60 9.1% 97.8%;--popover:24 9.8% 10%;--popover-foreground:60 9.1% 97.8%;--primary:60 9.1% 97.8%;--primary-foreground:24 9.8% 10%;--secondary:12 6.5% 15.1%;--secondary-foreground:60 9.1% 97.8%;--muted:12 6.5% 15.1%;--muted-foreground:24 5.4% 63.9%;--accent:12 6.5% 15.1%;--accent-foreground:60 9.1% 97.8%;--destructive:0 62.8% 30.6%;--destructive-foreground:0 0% 98%;--border:12 6.5% 15.1%;--input:12 6.5% 15.1%;--ring:24 5.4% 63.9%;--success:152 15% 55%;--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark}html{font-family:var(--font-sans)}body{background:hsl(var(--background));min-width:320px;color:hsl(var(--foreground));font-feature-settings:"cv02", "cv03", "cv04", "cv11";font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0}*{box-sizing:border-box}button,input,select,textarea{font:inherit;color:inherit}button{cursor:pointer}:where(a,button,select,[tabindex]):focus-visible{outline:2px solid hsl(var(--ring));outline-offset:2px;border-radius:calc(var(--radius) - 2px)}::selection{background:hsl(var(--foreground) / .12)}@property --tw-rotate-x{syntax:"*";inherits:false}@property --tw-rotate-y{syntax:"*";inherits:false}@property --tw-rotate-z{syntax:"*";inherits:false}@property --tw-skew-x{syntax:"*";inherits:false}@property --tw-skew-y{syntax:"*";inherits:false}@property --tw-outline-style{syntax:"*";inherits:false;initial-value:solid}@property --tw-blur{syntax:"*";inherits:false}@property --tw-brightness{syntax:"*";inherits:false}@property --tw-contrast{syntax:"*";inherits:false}@property --tw-grayscale{syntax:"*";inherits:false}@property --tw-hue-rotate{syntax:"*";inherits:false}@property --tw-invert{syntax:"*";inherits:false}@property --tw-opacity{syntax:"*";inherits:false}@property --tw-saturate{syntax:"*";inherits:false}@property --tw-sepia{syntax:"*";inherits:false}@property --tw-drop-shadow{syntax:"*";inherits:false}@property --tw-drop-shadow-color{syntax:"*";inherits:false}@property --tw-drop-shadow-alpha{syntax:"<percentage>";inherits:false;initial-value:100%}@property --tw-drop-shadow-size{syntax:"*";inherits:false}#root{min-height:100vh}.app-shell{background:hsl(var(--muted) / .4);min-height:100vh;color:hsl(var(--foreground));display:flex}.sidebar{background:hsl(var(--card));width:252px;color:hsl(var(--muted-foreground));border-right:1px solid hsl(var(--border));z-index:5;flex-direction:column;flex:0 0 252px;padding:24px 14px 16px;display:flex;position:relative}.sidebar.guest-sidebar{display:none}.brand-row{color:hsl(var(--foreground));letter-spacing:-.3px;align-items:center;gap:10px;padding:2px 10px 26px;font-size:15px;font-weight:600;display:flex}.brand-dot{color:hsl(var(--muted-foreground))}.brand-mark{border-radius:var(--radius);background:hsl(var(--primary));width:26px;height:26px;color:hsl(var(--primary-foreground));place-items:center;display:grid}.close-menu,.menu-trigger{display:none}.workspace-select{border:1px solid hsl(var(--border));background:hsl(var(--card));border-radius:var(--radius);color:hsl(var(--foreground));cursor:pointer;align-items:center;gap:10px;margin-bottom:24px;padding:8px 10px;transition:background .15s;display:flex}.workspace-select:hover{background:hsl(var(--accent))}.workspace-select>div:nth-child(2),.profile>div{flex:1;min-width:0}.workspace-select strong,.profile strong{font-size:13px;font-weight:500;display:block}.workspace-select small,.profile small{color:hsl(var(--muted-foreground));margin-top:2px;font-size:11px;display:block}.workspace-select>svg{color:hsl(var(--muted-foreground))}.workspace-avatar{border-radius:calc(var(--radius) - 2px);background:hsl(var(--secondary));width:26px;height:26px;color:hsl(var(--secondary-foreground));place-items:center;font-size:10px;font-weight:600;display:grid}.nav-label{color:hsl(var(--muted-foreground));text-transform:uppercase;letter-spacing:.06em;padding:0 12px 8px;font-size:11px;font-weight:500}.nav-label.lower{margin-top:24px}.nav-item{width:100%;color:hsl(var(--muted-foreground));border-radius:calc(var(--radius) - 2px);text-align:left;background:0 0;border:0;align-items:center;gap:10px;padding:8px 12px;font-size:13px;font-weight:500;transition:background .15s,color .15s;display:flex}.nav-item:hover,.nav-item.active{background:hsl(var(--accent));color:hsl(var(--accent-foreground))}.nav-item em{background:hsl(var(--secondary));color:hsl(var(--secondary-foreground));border-radius:999px;margin-left:auto;padding:1px 8px;font-size:11px;font-style:normal;font-weight:500}.sidebar-bottom{margin-top:auto}.storage-card{background:hsl(var(--secondary));border-radius:var(--radius);margin:0 2px 18px;padding:13px}.storage-head{color:hsl(var(--foreground));justify-content:space-between;margin-bottom:10px;font-size:12px;font-weight:500;display:flex}.storage-head strong{color:hsl(var(--foreground));font-variant-numeric:tabular-nums;font-weight:600}.storage-track{background:hsl(var(--muted-foreground) / .2);border-radius:999px;height:4px;margin-bottom:8px;overflow:hidden}.storage-track i{background:hsl(var(--primary));border-radius:inherit;width:62%;height:100%;display:block}.storage-card small{color:hsl(var(--muted-foreground));font-size:11px}.profile{border-radius:var(--radius);align-items:center;gap:10px;padding:6px 8px;display:flex}.avatar{background:hsl(var(--primary));width:28px;height:28px;color:hsl(var(--primary-foreground));border:0;border-radius:999px;place-items:center;font-size:10px;font-weight:600;display:grid}.avatar-photo{background:hsl(var(--secondary));color:hsl(var(--secondary-foreground))}.profile>svg{color:hsl(var(--muted-foreground))}.profile-logout{color:hsl(var(--muted-foreground));border-radius:calc(var(--radius) - 2px);background:0 0;border:0;place-items:center;padding:5px;transition:background .15s,color .15s;display:grid}.profile-logout:hover{color:hsl(var(--foreground));background:hsl(var(--accent))}.content-area{flex:1;min-width:0}.topbar{border-bottom:1px solid hsl(var(--border));align-items:center;gap:20px;height:64px;padding:0 32px;display:flex}.breadcrumbs{color:hsl(var(--muted-foreground));align-items:center;gap:10px;font-size:14px;display:flex}.breadcrumbs b{color:hsl(var(--muted-foreground) / .6);font-weight:400}.breadcrumbs strong{color:hsl(var(--foreground));font-weight:500}.top-actions{align-items:center;gap:10px;margin-left:auto;display:flex}.search-box{width:220px;height:36px;color:hsl(var(--muted-foreground));border:1px solid hsl(var(--input));background:hsl(var(--card));border-radius:calc(var(--radius) - 2px);align-items:center;gap:8px;padding:0 12px;transition:box-shadow .15s,border-color .15s;display:flex}.search-box:focus-within{border-color:hsl(var(--ring));box-shadow:0 0 0 3px hsl(var(--ring) / .25)}.search-box input{width:100%;color:hsl(var(--foreground));background:0 0;border:0;outline:0;font-size:14px}.search-box input::placeholder{color:hsl(var(--muted-foreground))}.search-box kbd{font:11px var(--font-mono,ui-monospace, monospace);color:hsl(var(--muted-foreground));background:hsl(var(--muted));border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 4px);white-space:nowrap;padding:2px 6px;font-weight:500}.icon-button,.more-button{color:hsl(var(--muted-foreground));border-radius:calc(var(--radius) - 2px);background:0 0;border:0;place-items:center;padding:7px;transition:background .15s,color .15s;display:grid}.icon-button:hover,.more-button:hover{background:hsl(var(--accent));color:hsl(var(--foreground))}.view-switcher{background:hsl(var(--secondary));border-radius:var(--radius);align-items:center;gap:2px;padding:4px;display:flex;position:absolute;top:84px;right:32px}.view-switcher span{color:hsl(var(--muted-foreground));padding:0 6px;font-size:11px;font-weight:500}.view-switcher button{border-radius:calc(var(--radius) - 2px);color:hsl(var(--muted-foreground));background:0 0;border:0;padding:5px 10px;font-size:12px;font-weight:500;transition:color .15s}.view-switcher button:hover{color:hsl(var(--foreground))}.view-switcher button.selected{background:hsl(var(--card));color:hsl(var(--foreground));box-shadow:0 1px 2px 0 hsl(var(--foreground) / .06)}.top-login{border:1px solid hsl(var(--input));background:hsl(var(--card));border-radius:calc(var(--radius) - 2px);height:36px;color:hsl(var(--foreground));box-shadow:0 1px 2px 0 hsl(var(--foreground) / .04);padding:0 14px;font-size:13px;font-weight:500;transition:background .15s}.top-login:hover{background:hsl(var(--accent));color:hsl(var(--accent-foreground))}.primary-button,.outline-button,.light-button{border-radius:calc(var(--radius) - 2px);background:hsl(var(--primary));height:40px;color:hsl(var(--primary-foreground));box-shadow:0 1px 2px 0 hsl(var(--foreground) / .05);border:0;justify-content:center;align-items:center;gap:8px;padding:0 16px;font-size:14px;font-weight:500;transition:background .15s,box-shadow .15s,transform .15s;display:inline-flex}.primary-button:hover{background:hsl(var(--primary) / .9)}.primary-button:active{transform:translateY(1px)}.outline-button{background:hsl(var(--card));color:hsl(var(--foreground));border:1px solid hsl(var(--input));box-shadow:0 1px 2px 0 hsl(var(--foreground) / .04)}.outline-button:hover{background:hsl(var(--accent));color:hsl(var(--accent-foreground))}.light-button{background:hsl(var(--primary-foreground));color:hsl(var(--primary));box-shadow:0 1px 2px 0 hsl(var(--foreground) / .1)}.light-button:hover{background:hsl(var(--primary-foreground) / .9)}:where(button,a):focus-visible{outline:2px solid hsl(var(--ring));outline-offset:2px}.page-wrap{max-width:1220px;margin:0 auto;padding:48px 32px}.page-heading{justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:32px;display:flex}.eyebrow,.course-kicker{text-transform:uppercase;letter-spacing:.06em;color:hsl(var(--muted-foreground));margin:0 0 8px;font-size:12px;font-weight:500}.page-heading h1{letter-spacing:-.02em;color:hsl(var(--foreground));margin:0 0 6px;font-size:24px;font-weight:600;line-height:1.2}.lede{color:hsl(var(--muted-foreground));margin:0;font-size:14px}.stat-grid{grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:16px;display:grid}.metrics-note{color:hsl(var(--muted-foreground));margin:0 0 16px;font-size:12px;line-height:1.5}.stat-card,.panel{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);box-shadow:0 1px 2px 0 hsl(var(--foreground) / .04)}.stat-card{min-height:148px;padding:20px}.stat-icon{border-radius:calc(var(--radius) - 2px);background:hsl(var(--muted));width:32px;height:32px;color:hsl(var(--muted-foreground));place-items:center;margin-bottom:14px;display:grid}.stat-card p{color:hsl(var(--muted-foreground));margin:0 0 6px;font-size:13px}.stat-card>strong{letter-spacing:-.02em;color:hsl(var(--foreground));font-variant-numeric:tabular-nums;font-size:24px;font-weight:600}.stat-change{align-items:center;gap:7px;margin-top:12px;display:flex}.stat-change span{color:hsl(var(--success));font-variant-numeric:tabular-nums;font-size:12px;font-weight:500}.stat-change small{color:hsl(var(--muted-foreground));font-size:12px}.main-grid{grid-template-columns:1.62fr 1fr;gap:16px;margin-bottom:16px;display:grid}.panel{padding:22px}.panel-heading{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.panel-heading h2,.student-section-head h2{letter-spacing:-.01em;color:hsl(var(--foreground));margin:0 0 4px;font-size:15px;font-weight:600}.panel-heading p,.student-section-head p{color:hsl(var(--muted-foreground));margin:0;font-size:13px}.select-button{border:1px solid hsl(var(--input));border-radius:calc(var(--radius) - 2px);background:hsl(var(--card));height:32px;color:hsl(var(--foreground));white-space:nowrap;box-shadow:0 1px 2px 0 hsl(var(--foreground) / .04);align-items:center;gap:6px;padding:0 10px;font-size:12px;font-weight:500;transition:background .15s;display:inline-flex}.select-button:hover{background:hsl(var(--accent))}.chart-wrap{height:220px;margin-top:24px;display:flex}.chart-y{width:42px;color:hsl(var(--muted-foreground));font-variant-numeric:tabular-nums;flex-direction:column;justify-content:space-between;align-items:flex-start;padding-bottom:24px;font-size:11px;display:flex}.chart{flex:1;padding-bottom:24px;position:relative}.grid-lines{flex-direction:column;justify-content:space-between;display:flex;position:absolute;inset:0 0 24px}.grid-lines i{border-top:1px dashed hsl(var(--border))}.chart svg{width:100%;height:calc(100% - 24px);position:absolute;inset:0 0 24px;overflow:visible}.area{fill:hsl(var(--foreground) / .05)}.line{fill:none;stroke:hsl(var(--foreground));stroke-width:1.8px;vector-effect:non-scaling-stroke}.chart-x{color:hsl(var(--muted-foreground));font-variant-numeric:tabular-nums;justify-content:space-between;font-size:11px;display:flex;position:absolute;bottom:0;left:0;right:0}.donut-wrap{align-items:center;gap:24px;margin:29px 5px 24px;display:flex}.donut{background:conic-gradient(hsl(var(--foreground)) 0 68%, hsl(var(--muted-foreground) / .55) 68% 89%, hsl(var(--border)) 89% 100%);border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:130px;height:130px;display:flex;position:relative}.donut:before{content:"";background:hsl(var(--card));border-radius:50%;width:96px;height:96px;position:absolute}.donut strong,.donut small{position:relative}.donut strong{letter-spacing:-.03em;color:hsl(var(--foreground));font-variant-numeric:tabular-nums;font-size:28px;font-weight:600}.donut strong span{color:hsl(var(--muted-foreground));font-size:15px}.donut small{color:hsl(var(--muted-foreground));margin-top:-2px;font-size:12px}.legend{flex-direction:column;flex:1;gap:12px;display:flex}.legend span{color:hsl(var(--muted-foreground));align-items:center;gap:8px;font-size:13px;display:flex}.legend b{color:hsl(var(--foreground));font-variant-numeric:tabular-nums;margin-left:auto;font-size:13px;font-weight:600}.dot{border-radius:999px;width:8px;height:8px}.dot.orange{background:hsl(var(--foreground))}.dot.pale{background:hsl(var(--muted-foreground) / .55)}.dot.gray{background:hsl(var(--border))}.completion-footer{border-top:1px solid hsl(var(--border));color:hsl(var(--muted-foreground));grid-template-columns:1fr auto;gap:8px;padding-top:14px;font-size:13px;display:grid}.completion-footer strong{color:hsl(var(--foreground));font-variant-numeric:tabular-nums;font-size:13px;font-weight:600}.thin-progress{background:hsl(var(--muted-foreground) / .2);border-radius:999px;grid-column:1/-1;height:4px;overflow:hidden}.thin-progress i{background:hsl(var(--primary));border-radius:inherit;width:68%;height:100%;display:block}.courses-panel{padding-bottom:10px}.courses-panel table{min-width:850px}.courses-panel .panel-heading{margin-bottom:18px}.table-wrap{overflow-x:auto}table{border-collapse:collapse;width:100%;min-width:620px}th{text-align:left;color:hsl(var(--muted-foreground));padding:0 14px 10px;font-size:12px;font-weight:500}td{border-top:1px solid hsl(var(--border));color:hsl(var(--foreground));padding:12px 14px;font-size:14px}td:first-child{align-items:center;gap:12px;min-width:290px;display:flex}.course-thumb{border-radius:calc(var(--radius) - 2px);place-items:center;width:38px;height:38px;font-size:11px;font-weight:600;display:grid}.course-thumb img{object-fit:cover;border-radius:inherit;width:100%;height:100%}.course-thumb.coral,.learning-cover.coral,.course-thumb.blue,.learning-cover.blue,.course-thumb.lime,.learning-cover.lime{background:hsl(var(--secondary));color:hsl(var(--secondary-foreground));border:1px solid hsl(var(--border))}.course-name strong,.course-name small{display:block}.course-name strong{color:hsl(var(--foreground));font-size:14px;font-weight:500}.course-name small{color:hsl(var(--muted-foreground));margin-top:2px;font-size:12px}.status{border:1px solid hsl(var(--success) / .25);background:hsl(var(--success) / .07);color:hsl(var(--success));border-radius:999px;align-items:center;gap:6px;padding:2px 10px;font-size:12px;font-weight:500;display:inline-flex}.status i{background:currentColor;border-radius:999px;width:6px;height:6px}.status.draft{border-color:hsl(var(--border));background:hsl(var(--muted));color:hsl(var(--muted-foreground))}.status.draft i{background:currentColor}.student-count{color:hsl(var(--muted-foreground));font-variant-numeric:tabular-nums;align-items:center;gap:6px;font-size:13px;display:flex}.row-progress{align-items:center;gap:9px;min-width:125px;display:flex}.row-progress>div{background:hsl(var(--muted-foreground) / .2);border-radius:999px;width:80px;height:4px;overflow:hidden}.row-progress i{background:hsl(var(--primary));border-radius:inherit;height:100%;display:block}.row-progress span{color:hsl(var(--muted-foreground));font-variant-numeric:tabular-nums;font-size:12px}.status-action{color:hsl(var(--foreground));white-space:nowrap;border-radius:calc(var(--radius) - 2px);background:0 0;border:0;padding:4px 8px;font-size:13px;font-weight:500;transition:background .15s}.status-action:hover{background:hsl(var(--accent))}.status-action.danger-action{color:hsl(var(--destructive))}.status-action.danger-action:hover{background:hsl(var(--destructive) / .09)}.course-actions{align-items:center;gap:2px;display:flex}.table-empty{text-align:center;color:hsl(var(--muted-foreground));padding:4px 10px 14px;font-size:13px}.admin-notice{background:hsl(var(--success) / .07);border:1px solid hsl(var(--success) / .2);border-radius:var(--radius);color:hsl(var(--success));margin:0 0 14px;padding:10px 12px;font-size:13px}.view-all,.text-button{color:hsl(var(--muted-foreground));background:0 0;border:0;align-items:center;gap:6px;padding:13px 14px 2px;font-size:13px;font-weight:500;transition:color .15s;display:inline-flex}.view-all:hover,.text-button:hover{color:hsl(var(--foreground))}.student-page .page-heading{margin-bottom:33px}.student-hero{background:hsl(var(--primary));border-radius:calc(var(--radius) + 4px);min-height:260px;color:hsl(var(--primary-foreground));box-shadow:0 4px 16px -6px hsl(var(--foreground) / .3);justify-content:space-between;align-items:center;margin-bottom:40px;padding:38px 42px;display:flex;position:relative;overflow:hidden}.student-hero:after{content:"";border:1px solid hsl(var(--primary-foreground) / .12);border-radius:50%;width:360px;height:360px;position:absolute;top:-80px;right:100px}.student-hero h2{letter-spacing:-.03em;margin:0 0 12px;font-size:30px;font-weight:600;line-height:1.15}.student-hero p{color:hsl(var(--primary-foreground) / .7);margin:0 0 24px;font-size:14px}.student-hero .course-kicker{color:hsl(var(--primary-foreground) / .6);margin-bottom:12px}.hero-orbit{border:1px solid hsl(var(--primary-foreground) / .15);z-index:1;border-radius:50%;flex-direction:column;justify-content:center;align-items:center;width:210px;height:210px;margin-right:44px;display:flex;position:relative}.hero-orbit:before{content:"";border:1px solid hsl(var(--primary-foreground) / .2);border-radius:50%;width:127px;height:127px;position:absolute}.hero-orbit span{color:hsl(var(--primary-foreground));font-size:34px;font-weight:500}.hero-orbit small{color:hsl(var(--primary-foreground) / .55);font-size:11px}.orbit-ring{border:1px solid hsl(var(--primary-foreground) / .5);background:hsl(var(--primary));border-radius:50%;width:8px;height:8px;position:absolute}.ring-one{top:16px;left:29px}.ring-two{border-color:hsl(var(--primary-foreground) / .25);bottom:50px;right:12px}.student-section-head{justify-content:space-between;align-items:end;margin-bottom:16px;display:flex}.learning-grid{grid-template-columns:repeat(2,1fr);gap:16px;margin-bottom:34px;display:grid}.learning-card{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);box-shadow:0 1px 2px 0 hsl(var(--foreground) / .04);min-height:150px;transition:box-shadow .15s;display:flex;overflow:hidden}.learning-card:hover{box-shadow:0 4px 12px -2px hsl(var(--foreground) / .08)}.learning-card-button{text-align:left;width:100%;font:inherit;cursor:pointer;color:inherit;padding:0}.learning-cover{text-transform:uppercase;letter-spacing:.06em;justify-content:center;align-items:center;width:145px;font-size:11px;font-weight:600;display:flex;position:relative}.learning-play{background:hsl(var(--card));width:28px;height:28px;color:hsl(var(--foreground));box-shadow:0 1px 3px hsl(var(--foreground) / .15);border-radius:999px;place-items:center;display:grid;position:absolute;bottom:12px;left:12px}.learning-body{flex:1;padding:18px}.learning-body h3{letter-spacing:-.01em;color:hsl(var(--foreground));max-width:220px;margin:0 0 10px;font-size:15px;font-weight:600;line-height:1.3}.learning-meta{color:hsl(var(--muted-foreground));align-items:center;gap:6px;margin-bottom:16px;font-size:12px;display:flex}.learning-progress{align-items:center;gap:10px;display:flex}.learning-progress>div{background:hsl(var(--muted-foreground) / .2);border-radius:999px;flex:1;height:4px;overflow:hidden}.learning-progress i{background:hsl(var(--primary));height:100%;display:block}.learning-progress strong{color:hsl(var(--muted-foreground));font-variant-numeric:tabular-nums;font-size:12px;font-weight:500}.next-panel{margin-top:24px}.lesson-list{margin-top:12px}.next-lesson{border:0;border-top:1px solid hsl(var(--border));width:100%;color:hsl(var(--foreground));text-align:left;background:0 0;justify-content:space-between;align-items:center;gap:12px;padding:12px 0;display:flex}.next-lesson:hover{color:hsl(var(--primary))}.next-lesson strong,.next-lesson small{display:block}.next-lesson strong{font-size:14px;font-weight:600}.next-lesson small{color:hsl(var(--muted-foreground));margin-top:4px;font-size:12px}.dialog-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:20;background:#0c0a0980;place-items:center;padding:20px;animation:.15s ease-out fadeIn;display:grid;position:fixed;inset:0}.auth-dialog{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:calc(var(--radius) + 4px);width:min(100%,400px);color:hsl(var(--card-foreground));padding:28px;animation:.2s ease-out riseIn;position:relative;box-shadow:0 20px 50px -12px #0c0a094d}.dialog-close{color:hsl(var(--muted-foreground));border-radius:calc(var(--radius) - 2px);background:0 0;border:0;place-items:center;padding:6px;transition:background .15s,color .15s;display:grid;position:absolute;top:14px;right:14px}.dialog-close:hover{background:hsl(var(--accent));color:hsl(var(--foreground))}.auth-dialog>.brand-mark{margin-bottom:18px}.auth-dialog .eyebrow{margin-bottom:6px}.auth-dialog h2{letter-spacing:-.02em;margin:0 0 6px;font-size:20px;font-weight:600}.auth-copy{color:hsl(var(--muted-foreground));margin:0 0 20px;font-size:14px}.auth-dialog form label{color:hsl(var(--foreground));margin-bottom:14px;font-size:14px;font-weight:500;display:block}.auth-dialog form input{border:1px solid hsl(var(--input));border-radius:calc(var(--radius) - 2px);background:hsl(var(--card));width:100%;height:40px;color:hsl(var(--foreground));outline:none;margin-top:7px;padding:0 12px;font-size:14px;transition:border-color .15s,box-shadow .15s;display:block}.auth-dialog form input::placeholder{color:hsl(var(--muted-foreground))}.auth-dialog form input:focus{border-color:hsl(var(--ring));box-shadow:0 0 0 3px hsl(var(--ring) / .25)}.auth-submit{width:100%;margin-top:4px}.auth-submit:disabled,.catalog-card-foot button:disabled{opacity:.55;cursor:wait}.form-error{color:hsl(var(--destructive));background:hsl(var(--destructive) / .07);border:1px solid hsl(var(--destructive) / .2);border-radius:var(--radius);overflow-wrap:anywhere;margin:0 0 14px;padding:10px 12px;font-size:13px}.auth-switch{text-align:center;color:hsl(var(--muted-foreground));margin:16px 0 14px;font-size:13px}.auth-switch button{color:hsl(var(--foreground));text-underline-offset:4px;background:0 0;border:0;padding:0 3px;font-size:13px;font-weight:500;text-decoration:underline}.auth-footnote{text-align:center;color:hsl(var(--muted-foreground));font-size:11px;display:block}.catalog-welcome{background:hsl(var(--primary));border-radius:calc(var(--radius) + 4px);min-height:280px;color:hsl(var(--primary-foreground));box-shadow:0 4px 16px -6px hsl(var(--foreground) / .3);justify-content:space-between;align-items:center;margin-bottom:40px;padding:40px 44px;display:flex;position:relative;overflow:hidden}.catalog-welcome:after{content:"";border:1px solid hsl(var(--primary-foreground) / .12);border-radius:50%;width:400px;height:400px;position:absolute;top:-85px;right:96px}.catalog-welcome .eyebrow{color:hsl(var(--primary-foreground) / .6)}.catalog-welcome h1{letter-spacing:-.03em;margin:0 0 12px;font-size:36px;font-weight:600;line-height:1.1}.catalog-welcome .lede{color:hsl(var(--primary-foreground) / .7);margin-bottom:24px;font-size:15px}.catalog-art{z-index:1;border:1px solid hsl(var(--primary-foreground) / .15);border-radius:50%;place-items:center;width:210px;height:210px;margin-right:40px;display:grid;position:relative}.art-circle{border:1px solid hsl(var(--primary-foreground) / .25);width:130px;height:130px;color:hsl(var(--primary-foreground));background:hsl(var(--primary-foreground) / .05);border-radius:50%;place-items:center;display:grid}.art-note{color:hsl(var(--primary-foreground) / .5);letter-spacing:.08em;text-transform:uppercase;font-size:10px;font-weight:500;line-height:1.5;position:absolute;bottom:17px;right:-30px}.catalog-title{justify-content:space-between;align-items:end;gap:16px;margin-bottom:18px;display:flex}.catalog-title h2{letter-spacing:-.02em;color:hsl(var(--foreground));margin:0;font-size:20px;font-weight:600}.catalog-title .eyebrow{margin-bottom:6px}.catalog-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;display:grid}.catalog-card{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);box-shadow:0 1px 2px 0 hsl(var(--foreground) / .04);transition:box-shadow .18s;overflow:hidden}.catalog-card:hover{box-shadow:0 6px 18px -4px hsl(var(--foreground) / .1)}.catalog-cover{background:hsl(var(--secondary));height:150px;color:hsl(var(--muted-foreground));place-items:center;display:grid;position:relative;overflow:hidden}.catalog-cover img,.learning-cover img{object-fit:cover;width:100%;height:100%}.catalog-cover>span{letter-spacing:.1em;text-transform:uppercase;font-size:11px;font-weight:600}.catalog-cover i{color:inherit;opacity:.7;font-variant-numeric:tabular-nums;font-size:11px;font-style:normal;font-weight:500;position:absolute;top:11px;right:12px}.catalog-card-body{padding:18px}.catalog-card-body .course-kicker{font-size:11px}.catalog-card-body h3{letter-spacing:-.01em;min-height:40px;color:hsl(var(--foreground));margin:0 0 8px;font-size:15px;font-weight:600;line-height:1.3}.catalog-card-body>p{color:hsl(var(--muted-foreground));min-height:40px;margin:0 0 15px;font-size:13px;line-height:1.6}.catalog-card-foot{border-top:1px solid hsl(var(--border));justify-content:space-between;align-items:center;padding-top:13px;display:flex}.catalog-card-foot strong{color:hsl(var(--foreground));font-variant-numeric:tabular-nums;font-size:14px;font-weight:600}.catalog-card-foot button{color:hsl(var(--foreground));text-underline-offset:4px;text-decoration:underline;-webkit-text-decoration-color:hsl(var(--border));text-decoration-color:hsl(var(--border));background:0 0;border:0;border-radius:2px;align-items:center;gap:5px;padding:4px 0;font-size:13px;font-weight:500;transition:text-decoration-color .15s;display:inline-flex}.catalog-card-foot button:hover{-webkit-text-decoration-color:hsl(var(--foreground));text-decoration-color:hsl(var(--foreground))}.catalog-message{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);color:hsl(var(--muted-foreground));padding:24px;font-size:14px}.catalog-message button{color:hsl(var(--foreground));text-underline-offset:4px;background:0 0;border:0;margin-left:10px;font-size:13px;font-weight:500;text-decoration:underline}.catalog-back{margin-bottom:24px;padding:0}.empty-learning{text-align:center;background:hsl(var(--card));border:1px dashed hsl(var(--border));border-radius:var(--radius);margin:14px 0 28px;padding:48px 20px}.empty-icon{background:hsl(var(--muted));width:44px;height:44px;color:hsl(var(--muted-foreground));border-radius:50%;place-items:center;margin:0 auto 14px;display:grid}.empty-learning h3{letter-spacing:-.01em;color:hsl(var(--foreground));margin:0 0 6px;font-size:16px;font-weight:600}.empty-learning p{color:hsl(var(--muted-foreground));margin:0 0 18px;font-size:14px}.empty-learning .primary-button{width:max-content;margin:auto}.learning-room{background:hsl(var(--muted) / .4);min-height:calc(100vh - 64px)}.room-header{border-bottom:1px solid hsl(var(--border));background:hsl(var(--card));align-items:center;gap:25px;height:56px;padding:0 32px;display:flex}.room-back{color:hsl(var(--muted-foreground));white-space:nowrap;border-radius:calc(var(--radius) - 2px);background:0 0;border:0;align-items:center;gap:7px;padding:6px 8px;font-size:13px;font-weight:500;transition:background .15s,color .15s;display:flex}.room-back:hover{background:hsl(var(--accent));color:hsl(var(--foreground))}.room-course-name{color:hsl(var(--foreground));text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:500;overflow:hidden}.room-progress{color:hsl(var(--muted-foreground));font-variant-numeric:tabular-nums;align-items:center;gap:8px;margin-left:auto;font-size:12px;display:flex}.room-progress>div{background:hsl(var(--muted-foreground) / .2);border-radius:999px;width:100px;height:4px;overflow:hidden}.room-progress i{background:hsl(var(--primary));height:100%;display:block}.room-layout{grid-template-columns:285px minmax(0,1fr);min-height:calc(100vh - 120px);display:grid}.room-sidebar{background:hsl(var(--card));border-right:1px solid hsl(var(--border));padding:24px 14px}.room-course-summary{padding:0 8px 24px}.room-course-summary h2{letter-spacing:-.01em;color:hsl(var(--foreground));margin:0 0 14px;font-size:15px;font-weight:600;line-height:1.3}.room-course-summary .learning-progress{margin-top:14px}.room-chapter{border-top:1px solid hsl(var(--border));padding:14px 0}.room-chapter-title{text-align:left;width:100%;color:hsl(var(--muted-foreground));border-radius:calc(var(--radius) - 2px);background:0 0;border:0;justify-content:space-between;align-items:center;padding:6px 8px;display:flex}.room-chapter-title:hover{background:hsl(var(--accent))}.room-chapter-title small,.room-chapter-title strong{display:block}.room-chapter-title small{color:hsl(var(--muted-foreground) / .8);text-transform:uppercase;letter-spacing:.06em;margin-bottom:3px;font-size:11px;font-weight:500}.room-chapter-title strong{color:hsl(var(--foreground));font-size:13px;font-weight:500}.room-lesson-link{text-align:left;border-radius:calc(var(--radius) - 2px);width:100%;color:hsl(var(--muted-foreground));background:0 0;border:0;align-items:center;gap:9px;margin-top:3px;padding:8px 10px;font-size:13px;line-height:1.4;transition:background .15s,color .15s;display:flex}.room-chapter-title+.room-lesson-link{margin-top:6px}.room-lesson-link:hover{background:hsl(var(--accent));color:hsl(var(--accent-foreground))}.room-lesson-link.active{background:hsl(var(--secondary));color:hsl(var(--foreground));font-weight:500}.room-check{border:1px solid hsl(var(--input));color:#0000;background:hsl(var(--card));border-radius:999px;flex:0 0 17px;place-items:center;width:17px;height:17px;display:grid}.room-check.done{background:hsl(var(--success));border-color:hsl(var(--success));color:hsl(var(--card))}.room-empty{color:hsl(var(--muted-foreground));padding:12px 8px;font-size:13px}.room-main{width:min(100%,1000px);margin:0 auto;padding:44px clamp(24px,6vw,88px) 56px}.room-lesson-heading{margin-bottom:26px}.room-lesson-heading .course-kicker{font-size:11px}.room-lesson-heading h1{letter-spacing:-.02em;color:hsl(var(--foreground));margin:0;font-size:30px;font-weight:600;line-height:1.2}.lesson-content{flex-direction:column;gap:16px;min-height:180px;display:flex}.lesson-rich-text{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);color:hsl(var(--foreground));box-shadow:0 1px 2px 0 hsl(var(--foreground) / .04);overflow-wrap:break-word;padding:24px;font-size:15px;line-height:1.75}.lesson-rich-text>:first-child{margin-top:0}.lesson-rich-text>:last-child{margin-bottom:0}.lesson-rich-text p{margin:0 0 10px}.lesson-rich-text h2{letter-spacing:-.01em;margin:22px 0 10px;font-size:21px;font-weight:600}.lesson-rich-text h3{margin:18px 0 8px;font-size:17px;font-weight:600}.lesson-rich-text ul,.lesson-rich-text ol{margin:0 0 10px;padding-left:22px}.lesson-rich-text li{margin:3px 0}.lesson-rich-text blockquote{border-left:3px solid hsl(var(--border));color:hsl(var(--muted-foreground));margin:14px 0;padding:2px 16px}.lesson-rich-text code{background:hsl(var(--muted));border:1px solid hsl(var(--border));font-family:var(--font-mono);border-radius:4px;padding:1px 5px;font-size:.92em}.lesson-rich-text pre{background:hsl(var(--muted));border:1px solid hsl(var(--border));border-radius:8px;margin:0 0 10px;padding:12px;overflow-x:auto}.lesson-rich-text pre code{background:0 0;border:0;padding:0}.lesson-rich-text a{color:hsl(var(--ring));text-underline-offset:3px;text-decoration:underline}.lesson-rich-text hr{border:0;border-top:1px solid hsl(var(--border));margin:16px 0}.lesson-media-placeholder,.lesson-placeholder{background:hsl(var(--muted) / .5);border:1px dashed hsl(var(--border));border-radius:var(--radius);min-height:165px;color:hsl(var(--muted-foreground));flex-direction:column;justify-content:center;align-items:center;gap:8px;font-size:13px;display:flex}.lesson-media-placeholder strong{color:hsl(var(--foreground));font-size:14px;font-weight:500}.lesson-image{object-fit:contain;border-radius:var(--radius);border:1px solid hsl(var(--border));max-width:100%;max-height:650px;margin:auto;display:block}.lesson-video{aspect-ratio:16/9;border-radius:var(--radius);background:#111;width:100%;max-height:75vh;display:block}.lesson-code{border:1px solid hsl(var(--border));border-radius:var(--radius);box-shadow:0 1px 2px 0 hsl(var(--foreground) / .04);margin:0 0 10px;overflow:hidden}.lesson-code-head{color:#8b949e;font-family:var(--font-mono);background:#161b22;border-bottom:1px solid #30363d;justify-content:space-between;align-items:center;gap:12px;padding:8px 14px;font-size:12px;display:flex}.lesson-code-head button{color:#c9d1d9;cursor:pointer;background:0 0;border:1px solid #3d444d;border-radius:6px;align-items:center;gap:6px;padding:3px 10px;font-size:12px;transition:background .15s;display:inline-flex}.lesson-code-head button:hover{background:#21262d}.lesson-code pre{font-family:var(--font-mono);margin:0;padding:14px 16px;font-size:13px;line-height:1.6;overflow-x:auto}.lesson-code pre code{font-family:inherit;font-size:inherit;display:block}.code-editor-textarea{color:#c9d1d9;border:1px solid hsl(var(--border));width:100%;min-height:260px;font-family:var(--font-mono);resize:vertical;tab-size:2;background:#0d1117;border-radius:8px;padding:12px 14px;font-size:13px;line-height:1.6}.code-editor-textarea:focus-visible{outline:2px solid hsl(var(--ring));outline-offset:1px}.editor-code{grid-column:1/-1;gap:8px;display:grid}.lesson-download{border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--card));color:hsl(var(--foreground));box-shadow:0 1px 2px 0 hsl(var(--foreground) / .04);align-items:center;gap:10px;padding:14px 16px;font-size:14px;font-weight:500;text-decoration:none;transition:background .15s;display:flex}.lesson-download:hover{background:hsl(var(--accent))}.lesson-download span{flex:1}.lesson-download svg:last-child{color:hsl(var(--muted-foreground))}.lesson-complete-row{border-top:1px solid hsl(var(--border));color:hsl(var(--muted-foreground));justify-content:space-between;align-items:center;margin-top:30px;padding-top:18px;font-size:14px;display:flex}.primary-button.is-completed{background:hsl(var(--success))}.lesson-complete-label.is-done{color:hsl(var(--success));font-size:16px;font-weight:700}.primary-button.is-completed:hover{background:hsl(var(--success) / .9)}.room-empty-large{min-height:350px;color:hsl(var(--muted-foreground));flex-direction:column;justify-content:center;align-items:center;display:flex}.room-empty-large svg{color:hsl(var(--muted-foreground) / .7)}.room-empty-large h2{letter-spacing:-.01em;color:hsl(var(--foreground));margin:14px 0 6px;font-size:18px;font-weight:600}.room-empty-large p{margin:0;font-size:14px}.room-main>.form-error{margin-bottom:17px}.room-lesson-heading{justify-content:space-between;align-items:flex-end;gap:16px;display:flex}.room-lesson-title{flex:1;min-width:0}.room-lesson-note{color:hsl(var(--primary) / .75);flex:none}.notes-trigger{flex:none;height:36px;padding:0 12px}.notes-count{background:hsl(var(--primary));min-width:20px;height:20px;color:hsl(var(--primary-foreground));text-align:center;font-variant-numeric:tabular-nums;border-radius:999px;padding:0 6px;font-size:11px;font-weight:600;line-height:20px}.notes-drawer-root{z-index:60;pointer-events:none;position:fixed;inset:0}.notes-drawer-root.is-open{pointer-events:auto}.notes-backdrop{background:hsl(var(--foreground) / .28);opacity:0;transition:opacity .2s;position:absolute;inset:0}.notes-drawer-root.is-open .notes-backdrop{opacity:1}.notes-drawer{background:hsl(var(--card));border-left:1px solid hsl(var(--border));width:min(420px,100vw);box-shadow:-12px 0 32px -12px hsl(var(--foreground) / .18);flex-direction:column;transition:transform .25s cubic-bezier(.32,.72,0,1);display:flex;position:absolute;top:0;bottom:0;right:0;transform:translate(100%)}.notes-drawer-root.is-open .notes-drawer{transform:none}.notes-drawer-head{border-bottom:1px solid hsl(var(--border));justify-content:space-between;align-items:flex-start;gap:12px;padding:18px 18px 14px 22px;display:flex}.notes-drawer-head h2{letter-spacing:-.01em;color:hsl(var(--foreground));overflow-wrap:anywhere;margin:2px 0 0;font-size:16px;font-weight:600;line-height:1.35}.notes-form{flex-direction:column;gap:8px;display:flex}.notes-drawer>.notes-form{border-bottom:1px solid hsl(var(--border));padding:16px 22px}.notes-form textarea{border:1px solid hsl(var(--input));border-radius:calc(var(--radius) - 2px);background:hsl(var(--card));width:100%;color:hsl(var(--foreground));resize:vertical;outline:none;padding:10px 12px;font-size:14px;line-height:1.55;transition:border-color .15s,box-shadow .15s}.notes-form textarea:focus{border-color:hsl(var(--ring));box-shadow:0 0 0 3px hsl(var(--ring) / .25)}.notes-form-foot{justify-content:flex-end;align-items:center;gap:8px;display:flex}.notes-form-foot small{color:hsl(var(--muted-foreground));font-variant-numeric:tabular-nums;margin-right:auto;font-size:11px}.notes-form-foot .primary-button,.notes-form-foot .outline-button{height:34px;padding:0 12px;font-size:13px}.notes-form .form-error{margin:0}.notes-list{flex:1;padding:8px 22px 24px;overflow-y:auto}.note-item{border-bottom:1px solid hsl(var(--border));padding:14px 0}.note-item:last-child{border-bottom:0}.note-item-head{justify-content:space-between;align-items:center;gap:8px;min-height:30px;display:flex}.note-item-head time{color:hsl(var(--muted-foreground));font-size:12px}.note-item-actions{gap:2px;display:flex}.note-item-body{color:hsl(var(--foreground));white-space:pre-wrap;overflow-wrap:anywhere;margin:4px 0 0;font-size:14px;line-height:1.6}.note-item .form-error{margin:8px 0 0}.notes-empty{color:hsl(var(--muted-foreground));text-align:center;flex-direction:column;align-items:center;gap:8px;padding:40px 12px;font-size:13px;display:flex}@media (prefers-reduced-motion:reduce){.notes-backdrop,.notes-drawer{transition:none}}.room-lesson-actions{flex-wrap:wrap;gap:8px;display:flex}.room-lesson-reply{color:hsl(var(--ring));flex:none}.questions-drawer{width:min(460px,100vw)}.questions-privacy{color:hsl(var(--muted-foreground));margin:6px 0 0;font-size:12px}.question-status{white-space:nowrap;border:1px solid hsl(var(--border));background:hsl(var(--muted));color:hsl(var(--muted-foreground));border-radius:999px;align-items:center;padding:1px 8px;font-size:11px;font-weight:600;display:inline-flex}.question-status.is-pending{border-color:hsl(var(--ring) / .35);background:hsl(var(--ring) / .1);color:hsl(var(--ring))}.question-status.is-answered{border-color:hsl(var(--success) / .25);background:hsl(var(--success) / .07);color:hsl(var(--success))}.chat-log{background:hsl(var(--muted) / .35);flex-direction:column;flex:1;gap:12px;min-height:0;padding:18px 22px;display:flex;overflow-y:auto}.chat-empty{color:hsl(var(--muted-foreground));text-align:center;flex-direction:column;align-items:center;gap:8px;margin:auto 0;padding:32px 12px;font-size:13px;list-style:none;display:flex}.chat-message{border:1px solid hsl(var(--border));border-radius:var(--radius);background:hsl(var(--card));max-width:88%;box-shadow:0 1px 2px 0 hsl(var(--foreground) / .04);align-self:flex-start;padding:10px 14px}.chat-message.is-mine{background:hsl(var(--primary) / .06);border-color:hsl(var(--primary) / .18);align-self:flex-end}.chat-message header{justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:4px;display:flex}.chat-message header strong{color:hsl(var(--foreground));font-size:12px;font-weight:600}.chat-message header time{color:hsl(var(--muted-foreground));white-space:nowrap;font-size:11px}.chat-text{color:hsl(var(--foreground));white-space:pre-wrap;overflow-wrap:anywhere;margin:0;font-size:14px;line-height:1.6}.chat-rich.lesson-rich-text{box-shadow:none;overflow-wrap:anywhere;background:0 0;border:0;padding:0;font-size:14px;line-height:1.65}.chat-files{flex-wrap:wrap;gap:6px;margin:8px 0 0;padding:0;list-style:none;display:flex}.chat-file{border:1px solid hsl(var(--border));background:hsl(var(--card));max-width:100%;color:hsl(var(--foreground));border-radius:999px;align-items:center;gap:6px;padding:5px 10px;font-size:12px;display:inline-flex}.chat-file span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chat-file:hover:not(:disabled){background:hsl(var(--accent))}.chat-file:disabled{opacity:.6}.chat-pending-files{flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none;display:flex}.chat-pending-files li{background:hsl(var(--secondary));max-width:100%;color:hsl(var(--secondary-foreground));border-radius:999px;align-items:center;gap:4px;padding:3px 4px 3px 10px;font-size:12px;display:inline-flex}.chat-pending-files span{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.chat-pending-files button{width:20px;height:20px;color:inherit;background:0 0;border:0;border-radius:999px;place-items:center;display:grid}.chat-pending-files button:hover{background:hsl(var(--foreground) / .08)}.chat-composer{border-top:1px solid hsl(var(--border));background:hsl(var(--card));flex-direction:column;gap:8px;padding:14px 22px 18px;display:flex}.chat-composer textarea{border:1px solid hsl(var(--input));border-radius:calc(var(--radius) - 2px);background:hsl(var(--card));width:100%;color:hsl(var(--foreground));resize:vertical;outline:none;padding:10px 12px;font-size:14px;line-height:1.55;transition:border-color .15s,box-shadow .15s}.chat-composer textarea:focus{border-color:hsl(var(--ring));box-shadow:0 0 0 3px hsl(var(--ring) / .25)}.chat-composer-foot{align-items:center;gap:8px;display:flex}.chat-composer-foot small{min-width:0;color:hsl(var(--muted-foreground));font-variant-numeric:tabular-nums;flex:1;font-size:11px}.chat-composer-foot .primary-button{gap:6px;height:34px;padding:0 12px;font-size:13px}.chat-composer .form-error{margin:0}.chat-locked{border-top:1px solid hsl(var(--border));color:hsl(var(--muted-foreground));margin:0;padding:14px 22px 18px;font-size:13px}.rich-canvas.is-compact{min-height:110px;max-height:280px;overflow-y:auto}.segmented{border-radius:var(--radius);background:hsl(var(--secondary));gap:2px;margin-bottom:16px;padding:4px;display:inline-flex}.segmented button{border-radius:calc(var(--radius) - 2px);color:hsl(var(--muted-foreground));white-space:nowrap;background:0 0;border:0;padding:6px 12px;font-size:13px;font-weight:500}.segmented button:hover{color:hsl(var(--foreground))}.segmented button.is-active{background:hsl(var(--card));color:hsl(var(--foreground));box-shadow:0 1px 2px 0 hsl(var(--foreground) / .06)}.segmented.is-small{margin:0;display:flex;overflow-x:auto}.segmented.is-small button{flex:1;padding:5px 8px;font-size:12px}.questions-inbox{grid-template-columns:minmax(260px,340px) minmax(0,1fr);height:min(760px,100vh - 220px);min-height:480px;padding:0;display:grid;overflow:hidden}.questions-list-pane{border-right:1px solid hsl(var(--border));flex-direction:column;min-height:0;display:flex}.questions-filters{border-bottom:1px solid hsl(var(--border));flex-direction:column;gap:10px;padding:14px;display:flex}.questions-filter-row{align-items:center;gap:8px;display:flex}.questions-filter-row select{border:1px solid hsl(var(--input));border-radius:calc(var(--radius) - 2px);background:hsl(var(--card));min-width:0;height:34px;color:hsl(var(--foreground));flex:1;padding:0 10px;font-size:13px}.questions-list-pane>.form-error{margin:12px 14px 0}.questions-list{flex:1;min-height:0;overflow-y:auto}.question-row{border:0;border-bottom:1px solid hsl(var(--border));text-align:left;width:100%;color:hsl(var(--foreground));background:0 0;flex-direction:column;gap:3px;padding:12px 14px;display:flex}.question-row:hover{background:hsl(var(--accent) / .6)}.question-row.is-active{background:hsl(var(--accent));box-shadow:inset 3px 0 0 hsl(var(--primary))}.question-row-top,.question-row-foot{justify-content:space-between;align-items:center;gap:8px;display:flex}.question-row-top strong{text-overflow:ellipsis;white-space:nowrap;font-size:13px;font-weight:600;overflow:hidden}.question-row-top time,.question-row-foot small{color:hsl(var(--muted-foreground));white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}.question-row-lesson{color:hsl(var(--muted-foreground));text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.questions-thread-pane{min-width:0;min-height:0;display:flex}.questions-placeholder{flex:1}.question-thread{flex-direction:column;flex:1;min-width:0;min-height:0;display:flex}.question-thread-head{border-bottom:1px solid hsl(var(--border));align-items:center;gap:12px;padding:14px 18px;display:flex}.question-thread-title{flex-direction:column;flex:1;min-width:0;display:flex}.question-thread-title strong{font-size:14px;font-weight:600}.question-thread-title small,.question-thread-title span{color:hsl(var(--muted-foreground));text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.question-thread-actions{flex:none;align-items:center;gap:8px;display:flex}.questions-back{display:none}.question-thread .chat-log{padding:18px}.chat-composer.is-admin{padding:14px 18px 16px}.enabled-students .questions-filter-row{margin:16px 0 10px}.questions-search{border:1px solid hsl(var(--input));border-radius:calc(var(--radius) - 2px);background:hsl(var(--card));min-width:0;height:34px;color:hsl(var(--muted-foreground));flex:1;align-items:center;gap:6px;padding:0 10px;display:flex}.questions-search input{min-width:0;color:hsl(var(--foreground));background:0 0;border:0;outline:none;flex:1;font-size:13px}.enabled-list{margin:0;padding:0;list-style:none}.enabled-list li{border-top:1px solid hsl(var(--border));justify-content:space-between;align-items:center;gap:12px;padding:12px 0;display:flex}.enabled-list li>span{flex-direction:column;min-width:0;display:flex}.enabled-list strong{text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:500;overflow:hidden}.enabled-list small{color:hsl(var(--muted-foreground));text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.switch{cursor:pointer;flex:none;align-items:center;gap:10px;display:inline-flex;position:relative}.switch input{opacity:0;cursor:pointer;width:36px;height:20px;margin:0;position:absolute}.switch span{background:hsl(var(--input));border-radius:999px;width:36px;height:20px;transition:background .15s;position:relative}.switch span:after{content:"";background:hsl(var(--card));width:16px;height:16px;box-shadow:0 1px 2px hsl(var(--foreground) / .2);border-radius:999px;transition:transform .15s;position:absolute;top:2px;left:2px}.switch input:checked+span{background:hsl(var(--primary))}.switch input:checked+span:after{transform:translate(16px)}.switch input:focus-visible+span{box-shadow:0 0 0 3px hsl(var(--ring) / .35)}.switch input:disabled+span{opacity:.5}.switch em{width:88px;color:hsl(var(--muted-foreground));font-size:12px;font-style:normal}@media (width<=900px){.questions-inbox{grid-template-columns:minmax(0,1fr);height:calc(100vh - 180px)}.questions-inbox[data-pane=thread] .questions-list-pane,.questions-inbox[data-pane=list] .questions-thread-pane{display:none}.questions-list-pane{border-right:0}.questions-back{align-items:center;gap:4px;padding-left:0;display:inline-flex}.question-thread-head{flex-wrap:wrap}.question-thread-title{flex-basis:100%;order:3}.question-thread-actions{margin-left:auto}}@media (width<=720px){.chat-log,.chat-composer,.chat-locked{padding-left:16px;padding-right:16px}.chat-message{max-width:94%}.chat-composer-foot small{display:none}.room-lesson-actions{align-self:flex-start}.switch em{display:none}}@media (prefers-reduced-motion:reduce){.switch span,.switch span:after{transition:none}}.course-dialog{max-height:calc(100vh - 32px);overflow:auto}.course-dialog textarea{border:1px solid hsl(var(--input));border-radius:calc(var(--radius) - 2px);background:hsl(var(--card));width:100%;color:hsl(var(--foreground));resize:vertical;outline:none;margin-top:7px;padding:10px 12px;font-size:14px;line-height:1.5;transition:border-color .15s,box-shadow .15s;display:block}.course-dialog textarea:focus{border-color:hsl(var(--ring));box-shadow:0 0 0 3px hsl(var(--ring) / .25)}.course-cover-preview{object-fit:cover;border-radius:var(--radius);width:min(100%,280px);max-height:155px;margin:0 0 12px;display:block}.editor-page{background:hsl(var(--muted) / .4);grid-template-rows:auto auto minmax(0,1fr);height:calc(100dvh - 64px);display:grid;position:relative;overflow:hidden}.editor-topbar{background:hsl(var(--card));border-bottom:1px solid hsl(var(--border));align-items:center;gap:14px;min-height:60px;padding:10px 24px;display:flex}.editor-topbar .room-back{flex:none}.editor-topbar-sep{background:hsl(var(--border));flex:none;width:1px;height:24px}.editor-course{min-width:0}.editor-course .eyebrow{margin:0 0 1px;font-size:11px}.editor-course h1{letter-spacing:-.01em;color:hsl(var(--foreground));white-space:nowrap;text-overflow:ellipsis;margin:0;font-size:16px;font-weight:600;overflow:hidden}.editor-course-status{white-space:nowrap;flex:none;margin-left:auto}.editor-messages{padding:12px 24px 0}.editor-messages .form-error{align-items:flex-start;gap:10px;margin:0;display:flex}.editor-messages .form-error span{flex:1}.editor-messages .form-error button{color:inherit;opacity:.7;background:0 0;border:0;border-radius:4px;flex:none;place-items:center;padding:2px;display:grid}.editor-messages .form-error button:hover{opacity:1;background:hsl(var(--destructive) / .1)}.editor-toast{z-index:30;background:hsl(var(--primary));color:hsl(var(--primary-foreground));border-radius:var(--radius);box-shadow:0 8px 24px hsl(var(--foreground) / .16);align-items:center;gap:8px;padding:10px 14px;font-size:13px;font-weight:500;animation:.2s riseIn;display:inline-flex;position:fixed;bottom:24px;right:24px}.editor-loading{align-self:start;margin:24px}.editor-layout{grid-row:3;grid-template-rows:minmax(0,1fr);grid-template-columns:minmax(280px,320px) minmax(0,1fr);min-height:0;display:grid;overflow:hidden}.icon-action{border-radius:calc(var(--radius) - 2px);width:30px;height:30px;color:hsl(var(--muted-foreground));background:0 0;border:0;flex:none;place-items:center;transition:background .15s,color .15s,opacity .15s;display:inline-grid}.icon-action:hover:not(:disabled),.icon-action.is-active{background:hsl(var(--accent));color:hsl(var(--foreground))}.icon-action:disabled{opacity:.35;cursor:not-allowed}.icon-action.is-danger:hover:not(:disabled){background:hsl(var(--destructive) / .09);color:hsl(var(--destructive))}.compact-button{gap:6px;height:34px;padding:0 12px;font-size:13px}.primary-button:disabled,.outline-button:disabled{opacity:.5;cursor:not-allowed}.text-button{color:hsl(var(--muted-foreground));border-radius:calc(var(--radius) - 2px);background:0 0;border:0;padding:7px 8px;font-size:13px;font-weight:500;transition:background .15s,color .15s}.text-button:hover{color:hsl(var(--foreground));background:hsl(var(--accent))}.action-menu{flex:none;position:relative}.action-menu-list{z-index:20;background:hsl(var(--popover));min-width:180px;color:hsl(var(--popover-foreground));border:1px solid hsl(var(--border));border-radius:var(--radius);box-shadow:0 10px 30px hsl(var(--foreground) / .1);padding:4px;animation:.12s fadeIn;position:absolute;top:calc(100% + 4px);right:0}.action-menu-list button{border-radius:calc(var(--radius) - 3px);width:100%;color:hsl(var(--foreground));text-align:left;background:0 0;border:0;align-items:center;gap:9px;padding:7px 9px;font-size:13px;display:flex}.action-menu-list button svg{color:hsl(var(--muted-foreground))}.action-menu-list button:hover:not(:disabled){background:hsl(var(--accent))}.action-menu-list button:disabled{opacity:.4;cursor:not-allowed}.action-menu-list button.is-danger{color:hsl(var(--destructive));margin-top:4px;position:relative}.action-menu-list button.is-danger:before{content:"";border-top:1px solid hsl(var(--border));position:absolute;top:-3px;left:-4px;right:-4px}.action-menu-list button.is-danger svg{color:currentColor}.action-menu-list button.is-danger:hover:not(:disabled){background:hsl(var(--destructive) / .09)}.inline-rename{flex:1;align-items:center;gap:2px;min-width:0;display:flex}.inline-rename input{border:1px solid hsl(var(--ring));min-width:0;height:32px;box-shadow:0 0 0 3px hsl(var(--ring) / .2);border-radius:calc(var(--radius) - 2px);background:hsl(var(--card));color:hsl(var(--foreground));outline:none;flex:1;margin-right:4px;padding:0 9px;font-size:13px;font-weight:500}.inline-rename.is-large input{letter-spacing:-.01em;height:38px;font-size:17px;font-weight:600}.editor-outline{border-right:1px solid hsl(var(--border));background:hsl(var(--card));flex-direction:column;min-height:0;padding:18px 12px 24px;display:flex;overflow-y:auto}.outline-head{padding:0 8px 14px}.outline-head h2{letter-spacing:-.01em;color:hsl(var(--foreground));margin:0 0 2px;font-size:15px;font-weight:600}.outline-head span{color:hsl(var(--muted-foreground));font-variant-numeric:tabular-nums;font-size:12px}.outline-chapters{flex-direction:column;display:flex}.outline-chapter{border-top:1px solid hsl(var(--border));padding:14px 0}.outline-chapter-head{align-items:center;gap:2px;min-height:42px;display:flex}.outline-chapter-head .action-menu{opacity:0;transition:opacity .15s}.outline-chapter-head:hover .action-menu,.outline-chapter-head:focus-within .action-menu{opacity:1}.outline-chapter-head .action-menu:has([aria-expanded=true]){opacity:1}.outline-chapter-toggle{text-align:left;border-radius:calc(var(--radius) - 2px);background:0 0;border:0;flex:1;align-items:center;gap:8px;min-width:0;padding:6px 8px;transition:background .15s;display:flex}.outline-chapter-toggle:hover{background:hsl(var(--accent))}.outline-chapter-toggle>span{min-width:0}.outline-chapter-toggle small{text-transform:uppercase;letter-spacing:.06em;color:hsl(var(--muted-foreground) / .85);margin-bottom:2px;font-size:11px;font-weight:500;display:block}.outline-chapter-toggle strong{color:hsl(var(--foreground));white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;display:block;overflow:hidden}.outline-chevron{color:hsl(var(--muted-foreground));flex:none;transition:transform .15s}.outline-chevron.is-open{transform:rotate(90deg)}.outline-lessons{border-left:1px solid hsl(var(--border));flex-direction:column;gap:3px;margin-left:13px;padding:6px 0 2px 14px;display:flex}.outline-lesson{text-align:left;border-radius:calc(var(--radius) - 2px);width:100%;color:hsl(var(--muted-foreground));background:0 0;border:0;align-items:center;gap:9px;padding:7px 10px;font-size:13px;line-height:1.4;transition:background .15s,color .15s;display:flex}.outline-lesson:hover{background:hsl(var(--accent));color:hsl(var(--foreground))}.outline-lesson.active{background:hsl(var(--secondary));color:hsl(var(--foreground));box-shadow:inset 0 0 0 1px hsl(var(--border));font-weight:500}.outline-lesson-name{white-space:nowrap;text-overflow:ellipsis;flex:1;min-width:0;overflow:hidden}.outline-lesson-tag{letter-spacing:.02em;color:hsl(var(--muted-foreground));background:hsl(var(--muted));border:1px solid hsl(var(--border));border-radius:999px;flex:none;padding:0 7px;font-size:10px;font-weight:500;line-height:17px}.lesson-dot{border:1.5px solid hsl(var(--muted-foreground) / .6);border-radius:999px;flex:none;width:8px;height:8px}.lesson-dot.is-published{background:hsl(var(--success));border-color:hsl(var(--success))}.outline-foot{border-top:1px solid hsl(var(--border));gap:10px;margin-top:4px;padding-top:16px;display:grid}.outline-empty{color:hsl(var(--muted-foreground));gap:4px;padding:6px 8px 2px;font-size:13px;line-height:1.45;display:grid}.outline-empty strong{color:hsl(var(--foreground));font-weight:500}.quick-add{width:100%;color:hsl(var(--muted-foreground));border-radius:calc(var(--radius) - 2px);text-align:left;background:0 0;border:0;align-items:center;gap:8px;padding:7px 10px;font-size:13px;transition:background .15s,color .15s;display:flex}.quick-add:hover:not(:disabled){background:hsl(var(--accent));color:hsl(var(--foreground))}.quick-add:disabled{opacity:.5;cursor:not-allowed}.quick-add.is-chapter{border:1px dashed hsl(var(--input));color:hsl(var(--foreground));justify-content:center;padding:9px 10px;font-weight:500}.quick-add.is-chapter:hover:not(:disabled){border-color:hsl(var(--ring))}.quick-add-form{gap:8px;padding:6px 4px 4px;display:grid}.quick-add-form input{border:1px solid hsl(var(--input));border-radius:calc(var(--radius) - 2px);background:hsl(var(--card));width:100%;min-width:0;height:36px;color:hsl(var(--foreground));outline:none;padding:0 11px;font-size:13px;transition:border-color .15s,box-shadow .15s}.quick-add-form input:focus{border-color:hsl(var(--ring));box-shadow:0 0 0 3px hsl(var(--ring) / .25)}.quick-add-actions{align-items:center;gap:6px;display:flex}.quick-add-form .compact-button{height:30px}.editor-pane{min-height:0;overflow-y:auto}.editor-pane-bar{z-index:4;background:hsl(var(--card) / .92);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid hsl(var(--border));padding:14px 28px;position:sticky;top:0}.editor-back-outline{color:hsl(var(--muted-foreground));border-radius:calc(var(--radius) - 2px);background:0 0;border:0;align-items:center;gap:6px;margin:-4px 0 4px -8px;padding:6px 8px;font-size:13px;font-weight:500;display:none}.editor-back-outline:hover{background:hsl(var(--accent));color:hsl(var(--foreground))}.lesson-head{align-items:center;gap:16px;max-width:880px;margin:0 auto;display:flex}.lesson-head-text{flex:1;min-width:0}.lesson-head-text .eyebrow{margin:0 0 3px;font-size:11px}.lesson-title-row{align-items:center;gap:4px;min-width:0;display:flex}.editor-pane-title{letter-spacing:-.02em;color:hsl(var(--foreground));white-space:nowrap;text-overflow:ellipsis;min-width:0;margin:0;font-size:19px;font-weight:600;overflow:hidden}.title-edit{opacity:0}.lesson-title-row:hover .title-edit,.title-edit:focus-visible{opacity:1}.lesson-head-actions{flex:none;align-items:center;gap:8px;display:flex}.editor-pane-content{max-width:936px;margin:0 auto;padding:24px 28px 64px}.editor-pane-empty{text-align:center;min-height:100%;color:hsl(var(--muted-foreground));flex-direction:column;justify-content:center;align-items:center;padding:40px 24px;display:flex}.editor-pane-empty h3{letter-spacing:-.01em;color:hsl(var(--foreground));margin:0 0 6px;font-size:16px;font-weight:600}.editor-pane-empty p{max-width:340px;margin:0;font-size:13px;line-height:1.5}.editor-empty{color:hsl(var(--muted-foreground));font-size:13px}.block-list{gap:10px;margin-bottom:18px;display:grid}.block-card{background:hsl(var(--card));border:1px solid hsl(var(--border));border-radius:var(--radius);box-shadow:0 1px 2px 0 hsl(var(--foreground) / .04);transition:border-color .15s,box-shadow .15s}.block-card:hover{border-color:hsl(var(--ring) / .45)}.block-card.is-open{border-color:hsl(var(--ring) / .6);box-shadow:0 4px 16px hsl(var(--foreground) / .06)}.block-card.is-new{margin-bottom:18px}.block-card-head{align-items:center;gap:6px;padding:6px 8px 6px 6px;display:flex}.block-toggle{text-align:left;border-radius:calc(var(--radius) - 2px);min-width:0;color:hsl(var(--foreground));background:0 0;border:0;flex:1;align-items:center;gap:12px;padding:6px;display:flex}button.block-toggle:hover{background:hsl(var(--accent) / .6)}.block-icon{border-radius:calc(var(--radius) - 2px);background:hsl(var(--secondary));border:1px solid hsl(var(--border));width:34px;height:34px;color:hsl(var(--foreground));flex:none;place-items:center;display:grid}.block-text{flex:1;gap:1px;min-width:0;display:grid}.block-text strong{font-size:13px;font-weight:600}.block-summary{white-space:nowrap;text-overflow:ellipsis;color:hsl(var(--muted-foreground));font-size:12px;overflow:hidden}.block-dirty{color:#ae6e13;background:#f2a60d1f;border-radius:999px;flex:none;padding:2px 8px;font-size:11px;font-weight:500}.block-chevron{color:hsl(var(--muted-foreground));flex:none;transition:transform .15s}.block-chevron.is-open{transform:rotate(90deg)}.block-actions{opacity:0;flex:none;align-items:center;gap:2px;transition:opacity .15s;display:flex}.block-card:hover .block-actions,.block-card:focus-within .block-actions,.block-card.is-open .block-actions,.block-actions.is-visible{opacity:1}.block-card-body{border-top:1px solid hsl(var(--border));padding:16px}.block-picker{border:1px dashed hsl(var(--input));border-radius:var(--radius);background:hsl(var(--card) / .5);padding:14px}.block-picker.is-empty{background:hsl(var(--card));border-style:solid;border-color:hsl(var(--border));padding:36px 20px 22px}.block-picker-intro{text-align:center;margin-bottom:22px}.block-picker-intro h3{letter-spacing:-.01em;color:hsl(var(--foreground));margin:0 0 6px;font-size:16px;font-weight:600}.block-picker-intro p{max-width:400px;color:hsl(var(--muted-foreground));margin:0 auto;font-size:13px;line-height:1.5}.block-picker-label{text-transform:uppercase;letter-spacing:.06em;color:hsl(var(--muted-foreground));align-items:center;gap:6px;margin:0 0 10px 2px;font-size:12px;font-weight:500;display:flex}.block-picker-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;display:grid}.block-picker-option{border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 2px);background:hsl(var(--card));text-align:left;min-width:0;color:hsl(var(--foreground));align-items:center;gap:10px;padding:9px 10px;transition:background .15s,border-color .15s,transform .15s;display:flex}.block-picker-option:hover:not(:disabled){background:hsl(var(--accent));border-color:hsl(var(--ring) / .6)}.block-picker-option:active:not(:disabled){transform:translateY(1px)}.block-picker-option:disabled{opacity:.5;cursor:not-allowed}.block-picker-option .block-icon{background:hsl(var(--muted));width:30px;height:30px}.block-picker-option>span:last-child{min-width:0}.block-picker-option strong{font-size:13px;font-weight:500;display:block}.block-picker-option small{color:hsl(var(--muted-foreground));white-space:nowrap;text-overflow:ellipsis;font-size:11px;display:block;overflow:hidden}.editor-block-form{gap:12px;display:grid}.editor-block-form label{color:hsl(var(--foreground));gap:6px;font-size:13px;font-weight:500;display:grid}.editor-block-form label small{color:hsl(var(--muted-foreground));font-weight:400;line-height:1.4}.editor-block-form :where(input:not([type=file]),select,textarea){border:1px solid hsl(var(--input));border-radius:calc(var(--radius) - 2px);background:hsl(var(--card));width:100%;min-width:0;color:hsl(var(--foreground));outline:none;padding:8px 11px;font-size:14px;font-weight:400;transition:border-color .15s,box-shadow .15s}.editor-block-form :where(input,select):focus{border-color:hsl(var(--ring));box-shadow:0 0 0 3px hsl(var(--ring) / .25)}.editor-block-form label.field-inline{align-items:center;gap:10px;display:flex}.editor-block-form label.field-inline select{width:auto;min-width:180px}.field-count{color:hsl(var(--muted-foreground));justify-self:end;font-size:11px}.block-editor-actions{align-items:center;gap:8px;padding-top:4px;display:flex}.dropzone{border:1px dashed hsl(var(--input));border-radius:var(--radius);background:hsl(var(--muted) / .35);min-height:76px;color:hsl(var(--muted-foreground));cursor:pointer;align-items:center;padding:14px 18px;transition:background .15s,border-color .15s;position:relative;gap:14px!important;display:flex!important}.dropzone:hover{border-color:hsl(var(--ring));background:hsl(var(--accent) / .6)}.dropzone:focus-within{border-color:hsl(var(--ring));box-shadow:0 0 0 3px hsl(var(--ring) / .2)}.dropzone>svg{flex:none}.dropzone>span{gap:2px;min-width:0;display:grid}.dropzone strong{color:hsl(var(--foreground));overflow-wrap:anywhere;font-size:13px;font-weight:500}.dropzone small{font-size:12px}.dropzone input{clip:rect(0, 0, 0, 0);width:1px;height:1px;position:absolute;overflow:hidden}.file-current{border:1px solid hsl(var(--border));border-radius:calc(var(--radius) - 2px);background:hsl(var(--secondary));color:hsl(var(--foreground));font-size:13px;font-family:var(--font-mono);align-items:center;gap:8px;padding:9px 12px;display:flex}.file-current svg{color:hsl(var(--muted-foreground));flex:none}.file-current span{overflow-wrap:anywhere;min-width:0}.editor-advanced summary{cursor:pointer;color:hsl(var(--muted-foreground));width:fit-content;padding:2px 0;font-size:12px}.editor-advanced summary:hover{color:hsl(var(--foreground))}.editor-advanced[open] summary{margin-bottom:10px}.rich-shell{border:1px solid hsl(var(--input));border-radius:calc(var(--radius) - 2px);background:hsl(var(--card));transition:border-color .15s,box-shadow .15s;display:grid}.rich-shell:focus-within{border-color:hsl(var(--ring));box-shadow:0 0 0 3px hsl(var(--ring) / .2)}.rich-toolbar{border-bottom:1px solid hsl(var(--border));background:hsl(var(--muted) / .35);border-radius:calc(var(--radius) - 2px) calc(var(--radius) - 2px) 0 0;flex-wrap:wrap;align-items:center;gap:2px;padding:5px;display:flex;position:sticky;top:0}.rich-toolbar button{width:30px;height:30px;color:hsl(var(--muted-foreground));background:0 0;border:0;border-radius:6px;justify-content:center;align-items:center;display:inline-flex}.rich-toolbar button:hover:not(:disabled){background:hsl(var(--accent));color:hsl(var(--foreground))}.rich-toolbar button.is-active{background:hsl(var(--primary));color:hsl(var(--primary-foreground))}.rich-toolbar button:disabled{opacity:.35;cursor:not-allowed}.rich-sep{background:hsl(var(--border));flex:none;width:1px;height:18px;margin:0 4px}.rich-canvas{max-width:100%;min-height:260px;color:hsl(var(--foreground));overflow-wrap:break-word;cursor:text;padding:16px 18px;font-size:15px;line-height:1.75}.rich-canvas:focus-visible{outline:none}.rich-canvas>:first-child{margin-top:0}.rich-canvas p{margin:0 0 10px}.rich-canvas h2{letter-spacing:-.01em;margin:20px 0 8px;font-size:20px;font-weight:600}.rich-canvas h3{margin:16px 0 8px;font-size:17px;font-weight:600}.rich-canvas ul,.rich-canvas ol{margin:0 0 10px;padding-left:22px}.rich-canvas li{margin:2px 0}.rich-canvas li p{margin:0}.rich-canvas blockquote{border-left:3px solid hsl(var(--border));color:hsl(var(--muted-foreground));margin:12px 0;padding:2px 14px}.rich-canvas code{background:hsl(var(--muted));border:1px solid hsl(var(--border));font-family:var(--font-mono);border-radius:4px;padding:1px 5px;font-size:.92em}.rich-canvas pre{background:hsl(var(--muted));border:1px solid hsl(var(--border));border-radius:8px;margin:0 0 10px;padding:12px;overflow-x:auto}.rich-canvas pre code{background:0 0;border:0;padding:0}.rich-canvas a{color:hsl(var(--ring));text-underline-offset:3px;text-decoration:underline}.rich-canvas s{color:hsl(var(--muted-foreground))}.rich-canvas hr{border:0;border-top:1px solid hsl(var(--border));margin:14px 0}.rich-canvas p.is-editor-empty:first-child:before{content:attr(data-placeholder);float:left;height:0;color:hsl(var(--muted-foreground) / .75);pointer-events:none}.rich-foot{border-top:1px solid hsl(var(--border) / .7);color:hsl(var(--muted-foreground));justify-content:flex-end;gap:10px;padding:6px 12px;font-size:11px;display:flex}.rich-foot-warn{color:hsl(var(--destructive));font-weight:500}.editor-video{grid-column:1/-1;gap:10px;display:grid}.editor-video-progress{color:hsl(var(--muted-foreground));align-items:center;gap:10px;font-size:13px;display:flex}.editor-video-progress progress{appearance:none;background:hsl(var(--muted));border:none;border-radius:99px;flex:1;min-width:0;height:8px;overflow:hidden}.editor-video-progress progress::-webkit-progress-bar{background:hsl(var(--muted))}.editor-video-progress progress::-webkit-progress-value{background:hsl(var(--ring))}.editor-video-progress progress::-moz-progress-bar{background:hsl(var(--ring))}.editor-video-ok{color:hsl(var(--success));font-size:13px}.editor-video-error{color:hsl(var(--destructive));overflow-wrap:anywhere;font-size:13px}@media (width<=1050px){.sidebar{flex-basis:220px;width:220px}.topbar{padding:0 24px}.page-wrap{padding-left:24px;padding-right:24px}.view-switcher{right:24px}.stat-grid{grid-template-columns:repeat(2,1fr)}.main-grid{grid-template-columns:1fr}.completion-panel{min-height:260px}.hero-orbit{margin-right:0}}@media (width<=900px){.editor-layout{grid-template-columns:minmax(0,1fr)}.editor-page[data-pane=lesson] .editor-outline,.editor-page:not([data-pane=lesson]) .editor-pane{display:none}.editor-back-outline{display:inline-flex}.editor-pane-bar{padding:10px 16px 12px}.editor-pane-content{padding:16px 16px 50px}.editor-outline{border-right:0}.block-picker-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=720px){.sidebar{width:252px;box-shadow:4px 0 24px hsl(var(--foreground) / .08);transition:left .22s;position:fixed;top:0;bottom:0;left:-270px}.sidebar.is-open{left:0}.scrim{z-index:4;background:#0c0a0980;border:0;position:fixed;inset:0}.close-menu{color:hsl(var(--muted-foreground));background:0 0;border:0;margin-left:auto;padding:5px;display:block}.menu-trigger{color:hsl(var(--muted-foreground));border-radius:calc(var(--radius) - 2px);background:0 0;border:0;place-items:center;padding:4px;display:grid}.topbar{height:60px;padding:0 16px}.top-actions{gap:8px}.search-box{width:38px;padding:0 9px}.search-box input,.search-box kbd,.icon-button{display:none}.view-switcher{top:72px;right:16px}.page-wrap{padding:56px 16px 32px}.page-heading{flex-direction:column;align-items:flex-start;gap:18px;margin-bottom:26px}.page-heading h1{font-size:22px}.stat-grid{gap:10px}.stat-card{min-height:136px;padding:15px}.stat-card>strong{font-size:21px}.stat-change{display:block}.stat-change small{margin-top:4px;display:block}.panel{padding:16px}.panel-heading{flex-direction:column}.completion-panel .panel-heading{flex-direction:row}.donut-wrap{margin:22px 0}.student-hero{align-items:flex-start;min-height:310px;padding:26px 22px}.student-hero h2{font-size:26px}.hero-orbit{opacity:.5;width:180px;height:180px;position:absolute;bottom:-55px;right:-45px}.student-hero:after{display:none}.learning-grid{grid-template-columns:1fr}.learning-cover{width:117px}.learning-body h3{font-size:14px}.top-actions .avatar{display:grid}.auth-dialog{padding:26px 20px 22px}.catalog-welcome{align-items:flex-start;min-height:300px;padding:26px 22px}.catalog-welcome h1{font-size:30px}.catalog-art{opacity:.4;position:absolute;bottom:-55px;right:-85px}.catalog-grid{grid-template-columns:1fr}.catalog-cover{height:175px}.catalog-title h2{font-size:18px}.catalog-card-body h3,.catalog-card-body>p{min-height:0}.catalog-back{margin-bottom:18px}.learning-room{min-height:calc(100vh - 60px)}.room-header{gap:12px;height:52px;padding:0 12px}.room-course-name{max-width:37vw}.room-progress>div{width:52px}.room-layout{flex-direction:column;display:flex}.room-sidebar{border-right:0;border-bottom:1px solid hsl(var(--border));max-height:42vh;padding:14px 12px;overflow:auto}.room-course-summary{padding-bottom:10px}.room-course-summary h2{margin-bottom:10px;font-size:14px}.room-course-summary .learning-progress{margin-top:8px}.room-chapter{padding:7px 0}.room-main{padding:26px 16px 40px}.room-lesson-heading h1{font-size:24px}.room-lesson-heading{flex-direction:column;align-items:stretch}.notes-trigger{align-self:flex-start}.notes-drawer>.notes-form,.notes-list{padding-left:16px;padding-right:16px}.lesson-complete-row{flex-direction:column;align-items:flex-start;gap:12px}.lesson-complete-row .primary-button{width:100%}.lesson-rich-text{padding:16px;font-size:14px}.editor-page{height:calc(100dvh - 60px)}.editor-topbar{gap:10px;padding:8px 14px}.editor-topbar-sep,.editor-course-status{display:none}.editor-messages{padding:10px 14px 0}.editor-toast{justify-content:center;bottom:16px;left:16px;right:16px}.lesson-head{flex-direction:column;align-items:stretch;gap:10px}.lesson-head-actions .status{margin-right:auto}.block-summary{display:none}.block-card-head{flex-wrap:wrap}.editor-block-form label.field-inline{display:grid}.editor-block-form label.field-inline select{width:100%}.course-actions{flex-direction:column;align-items:flex-start;gap:0}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes riseIn{0%{opacity:0;transform:translateY(8px)scale(.98)}to{opacity:1;transform:translateY(0)scale(1)}}@media (hover:none){.outline-chapter-head .action-menu,.block-actions,.title-edit{opacity:1}}pre code.hljs{padding:1em;display:block;overflow-x:auto}code.hljs{padding:3px 5px}.hljs{color:#c9d1d9;background:#0d1117}.hljs-doctag,.hljs-keyword,.hljs-meta .hljs-keyword,.hljs-template-tag,.hljs-template-variable,.hljs-type,.hljs-variable.language_{color:#ff7b72}.hljs-title,.hljs-title.class_,.hljs-title.class_.inherited__,.hljs-title.function_{color:#d2a8ff}.hljs-attr,.hljs-attribute,.hljs-literal,.hljs-meta,.hljs-number,.hljs-operator,.hljs-selector-attr,.hljs-selector-class,.hljs-selector-id,.hljs-variable{color:#79c0ff}.hljs-meta .hljs-string,.hljs-regexp,.hljs-string{color:#a5d6ff}.hljs-built_in,.hljs-symbol{color:#ffa657}.hljs-code,.hljs-comment,.hljs-formula{color:#8b949e}.hljs-name,.hljs-quote,.hljs-selector-pseudo,.hljs-selector-tag{color:#7ee787}.hljs-subst{color:#c9d1d9}.hljs-section{color:#1f6feb;font-weight:700}.hljs-bullet{color:#f2cc60}.hljs-emphasis{color:#c9d1d9;font-style:italic}.hljs-strong{color:#c9d1d9;font-weight:700}.hljs-addition{color:#aff5b4;background-color:#033a16}.hljs-deletion{color:#ffdcd7;background-color:#67060c}
