@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/outfit-latin-wght-5.3.0.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Outfit;font-style:normal;font-display:swap;font-weight:100 900;src:url(/fonts/outfit-latin-ext-wght-5.3.0.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:100 800;src:url(/fonts/jetbrains-mono-latin-wght-5.3.0.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:JetBrains Mono;font-style:normal;font-display:swap;font-weight:100 800;src:url(/fonts/jetbrains-mono-latin-ext-wght-5.3.0.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/fonts/space-grotesk-latin-700-5.3.0.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Space Grotesk;font-style:normal;font-display:swap;font-weight:700;src:url(/fonts/space-grotesk-latin-ext-700-5.3.0.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}html{-webkit-text-size-adjust:100%}:root{--font-display:"Space Grotesk", "Outfit", ui-sans-serif, system-ui, sans-serif;--font-ui:"Outfit", ui-sans-serif, system-ui, sans-serif;--font-mono:"JetBrains Mono", ui-monospace, SFMono-Regular, Menlo, monospace;--text-2xs:.6875rem;--text-xs:.75rem;--text-sm:.875rem;--text-base:1rem;--text-lg:1.125rem;--text-xl:1.375rem;--text-display:clamp(2rem, 4vw, 3.25rem);--leading-tight:1.2;--leading-body:1.5;--code-size:14px;--code-leading:1.6;--space-1:4px;--space-2:8px;--space-3:12px;--space-4:16px;--space-5:20px;--space-6:24px;--space-7:32px;--space-8:48px;--panel-padding:var(--space-5);--gutter:var(--space-4);--radius-sm:8px;--radius-md:12px;--radius-lg:16px;--radius-xl:20px;--radius-pill:999px;--radius-leaf:4px 12px 4px 12px;--control-sm:32px;--control-md:40px;--control-lg:44px;--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-drawer:cubic-bezier(.32, .72, 0, 1);--duration-press:.12s;--duration-ui:.18s;--duration-panel:.24s;--motion-distance:8px;--surface-page:#f7f0e5;--surface-panel:#fffaf1;--surface-sunken:#f3eadc;--surface-field:#fffdf9;--surface-selected:#14110f;--surface-code:#17130f;--surface-code-raised:#211c17;--surface-preview:#fff;--scrim:#14110f7a;--text-strong:#14110f;--text-body:#38291c;--text-muted:#6d6258;--text-faint:#7d7064;--text-on-selected:#fffaf1;--text-on-selected-muted:#d8cbbb;--border-subtle:#38291c24;--border-strong:#38291c47;--action-primary:#b8301f;--action-primary-hover:#9c2a1b;--action-primary-ink:#fffaf1;--focus-ring:#136f63;--status-success:#136f63;--status-success-surface:#e3f1ec;--on-status-success:#fffaf1;--status-danger:#982517;--status-danger-surface:#fde4de;--status-danger-border:color-mix(in srgb, var(--status-danger) 28%, transparent);--status-warning:#7a5200;--status-warning-surface:#fff4d6;--status-warning-border:color-mix(in srgb, var(--status-warning) 30%, transparent);--status-info:#14594f;--status-info-surface:#ecf7f2;--accent-gold:#f8b84e;--border-code:#322a24;--text-on-code:#f3eadc;--text-on-code-muted:#c9bcae;--text-on-code-faint:#a89a8c;--focus-ring-on-code:#7dd3c7;--code-command:#ffd38a;--code-input:#7dd3c7;--code-danger:#ffb3a7;--code-danger-surface:#2a1512;--code-success:#9fe0d4;--shadow-panel:0 1px 2px #38291c0f, 0 8px 24px #38291c0f;--shadow-overlay:0 24px 64px #14110f47;--shadow-signature:3px 3px 0 color-mix(in srgb, var(--accent-gold) 70%, transparent);--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;-webkit-tap-highlight-color:transparent;-webkit-text-size-adjust:100%;background:var(--surface-page);color:var(--text-body);font-family:var(--font-ui);font-size:100%;line-height:var(--leading-body)}[data-theme=dark]{--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--surface-page:#12100e;--surface-panel:#1a1714;--surface-sunken:#221d19;--surface-field:#221d19;--surface-selected:#f5efe7;--surface-code:#0f0d0b;--surface-code-raised:#1a1612;--scrim:#0009;--text-strong:#f5efe7;--text-body:#e5d8cb;--text-muted:#c2b8ad;--text-faint:#9f9185;--text-on-selected:#14110f;--text-on-selected-muted:#4a4038;--border-subtle:#f5efe71f;--border-strong:#f5efe742;--action-primary:#ff684f;--action-primary-hover:#ff806b;--action-primary-ink:#14110f;--focus-ring:#7dd3c7;--status-success:#7dd3c7;--status-success-surface:#13261f;--on-status-success:#14110f;--status-danger:#ffb3a7;--status-danger-surface:#2a1512;--status-warning:#ffd38a;--status-warning-surface:#2a2210;--status-info:#a5e5dc;--status-info-surface:#132320;--accent-gold:#ffd166;--border-code:#2a241f;--shadow-panel:0 1px 2px #0000004d, 0 8px 24px #00000038;--shadow-overlay:0 24px 64px #00000080}[data-color-mode=colorblind]{--action-primary:#0072b2;--action-primary-hover:#005a8f;--action-primary-ink:#fffaf1;--status-success:#005a8f;--status-success-surface:#e5f1f8;--status-danger:#8f4700;--status-danger-surface:#fdeedd;--accent-gold:#e69f00}[data-theme=dark][data-color-mode=colorblind]{--action-primary:#56b4e9;--action-primary-hover:#7cc6ef;--action-primary-ink:#14110f;--status-success:#56b4e9;--status-success-surface:#10222e;--status-danger:#f0b46b;--status-danger-surface:#2a1d0d;--accent-gold:#f0c05a}*{box-sizing:border-box}html{overscroll-behavior:none}body{background:var(--surface-page);min-width:320px;min-height:100dvh;margin:0;overflow-x:hidden}button,input,select,textarea{font:inherit;color:inherit}h1,h2,h3{color:var(--text-strong);margin:0}h2{align-items:center;gap:var(--space-2);font-size:var(--text-base);font-weight:600;line-height:var(--leading-tight);display:flex}h3{font-weight:600}a{color:var(--action-primary)}kbd,code{font-family:var(--font-mono)}:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}.eyebrow{margin:0 0 var(--space-1);color:var(--text-muted);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;font-weight:600}.helper-text,.sidebar-note{margin:var(--space-1) 0 0;color:var(--text-muted);font-size:var(--text-sm);line-height:var(--leading-body);overflow-wrap:anywhere}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}button{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--control-md);padding:0 var(--space-4);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-panel);color:var(--text-body);font-size:var(--text-sm);font-weight:600;line-height:var(--leading-tight);cursor:pointer;touch-action:manipulation;-webkit-user-select:none;user-select:none;transition:background-color var(--duration-ui) ease, border-color var(--duration-ui) ease, color var(--duration-ui) ease, transform var(--duration-press) var(--ease-out);display:inline-flex}button svg{flex:none}button:disabled,button[aria-disabled=true]{cursor:not-allowed;opacity:.55}button:active:not(:disabled):not([aria-disabled=true]){transform:scale(.97)}.checkpoint-menu summary:active,.mobile-project-menu summary:active{background:var(--surface-sunken)}.file-browser summary:active,.terminal-full-traceback summary:active{background:var(--surface-code-raised)}button.primary{background:var(--action-primary);color:var(--action-primary-ink);border-color:#0000}button.ghost{color:var(--text-body);background:0 0;border-color:#0000}button.danger-quiet{border-color:var(--status-danger-border);color:var(--status-danger);background:0 0}button:where(.active,[aria-pressed=true]):where(:not(.menu-toggle,.classroom-toggle)){border-color:var(--surface-selected);background:var(--surface-selected);color:var(--text-on-selected)}button.compact,button.sm{min-height:var(--control-sm);padding:0 var(--space-3);font-size:var(--text-xs)}button.lg{min-height:var(--control-lg);padding:0 var(--space-5);font-size:var(--text-base)}button.icon-button{width:var(--control-md);padding:0}@media (hover:hover) and (pointer:fine){button:where(:not(.primary,.ghost,.danger-quiet,.active,[aria-pressed=true])):hover:not(:disabled){background:var(--surface-sunken);border-color:var(--border-strong)}button.ghost:where(:not(.active,[aria-pressed=true])):hover:not(:disabled){background:var(--surface-sunken)}button.primary:hover:not(:disabled){background:var(--action-primary-hover);border-color:#0000}button.danger-quiet:hover:not(:disabled){background:var(--status-danger-surface);border-color:var(--status-danger-border)}}@media (pointer:coarse){button,button.compact,button.sm{min-height:var(--control-lg)}button.icon-button{width:var(--control-lg)}}input,select,textarea{font-size:var(--text-sm)}:where(select,textarea,input:not([type=checkbox],[type=radio],[type=range],[type=file])):where(:not(.monaco-editor *,.quick-input-widget *)){border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-field);color:var(--text-strong)}@media (width<=640px),(pointer:coarse){input,select,textarea{font-size:16px}}.workspace-select,.file-path-field input,.file-path-field textarea,.file-path-field select,.classroom-search input,.member-role-select,.classroom-review-filters select,.classroom-review-search-field{width:100%;min-height:var(--control-md);padding:var(--space-2) var(--space-3);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-field);color:var(--text-strong)}.file-path-field input,.file-path-field textarea{font-family:var(--font-mono)}.member-role-select{width:auto;min-width:126px}.panel{border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--surface-panel);box-shadow:var(--shadow-panel);overflow:hidden}.app-shell{width:min(1840px, calc(100vw - 2 * var(--gutter)));padding:var(--space-3) 0 var(--space-6);color:var(--text-body);--workspace-pane-height:clamp(360px, calc(100dvh - 280px), 820px);--editor-hint-height:0px;--editor-height:calc(var(--workspace-pane-height) - var(--editor-hint-height));margin:0 auto;position:relative}.skip-link,.skip-to-run{z-index:90;top:var(--space-2);left:var(--space-2);min-height:var(--control-lg);padding:0 var(--space-4);background:var(--surface-panel);color:var(--text-strong);box-shadow:var(--shadow-overlay);opacity:0;pointer-events:none;position:absolute;transform:translateY(-160%)}.skip-link:focus-visible,.skip-to-run:focus-visible{opacity:1;pointer-events:auto;transform:none}.skip-to-run{top:3.6rem;left:var(--space-3)}.app-bar{z-index:40;align-items:center;gap:var(--space-3);min-height:56px;margin-bottom:var(--space-3);padding:var(--space-2) var(--space-3) var(--space-2) var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--surface-panel);box-shadow:var(--shadow-panel);display:flex;position:relative}.wordmark{align-items:center;gap:var(--space-2);color:var(--text-strong);font-family:var(--font-display);font-size:var(--text-lg);letter-spacing:0;white-space:nowrap;flex:none;margin:0;font-weight:700;display:inline-flex}.wordmark-mark{border-radius:calc(var(--radius-sm) / 2);background:var(--accent-gold);width:10px;height:10px}.app-bar-project{align-items:center;gap:var(--space-2);min-width:0;padding-left:var(--space-3);border-left:1px solid var(--border-subtle);flex:auto;display:flex}.project-title-input{min-width:8rem;min-height:var(--control-md);padding:0 var(--space-2);border-radius:var(--radius-sm);color:var(--text-strong);font-size:var(--text-base);text-overflow:ellipsis;background:0 0;border:1px solid #0000;flex:0 22rem;font-weight:600}@media (hover:hover) and (pointer:fine){.project-title-input:hover:not(:disabled){border-color:var(--border-subtle)}}.project-title-input:focus{border-color:var(--border-strong);background:var(--surface-field)}.project-title-input:disabled{color:var(--text-body);opacity:1}.save-status{min-width:0;color:var(--text-muted);font-size:var(--text-xs);text-overflow:ellipsis;white-space:nowrap;flex:none;overflow:hidden}.app-bar-learning,.app-bar-actions{align-items:center;gap:var(--space-1);flex:none;display:flex}.app-bar-actions{gap:var(--space-2);padding-left:var(--space-2);border-left:1px solid var(--border-subtle)}.app-bar-button{padding:0 var(--space-3)}.classroom-toggle[aria-pressed=true]{border-color:var(--border-strong);background:var(--surface-sunken);color:var(--text-strong);box-shadow:inset 0 -2px 0 var(--action-primary)}.app-bar-account{align-items:center;display:flex}.auth-actions{align-items:center;gap:var(--space-2);min-width:0;display:flex}.cloud-pill{align-items:center;gap:var(--space-1);min-height:var(--control-sm);padding:0 var(--space-3);border:1px solid color-mix(in srgb, var(--status-success) 30%, transparent);border-radius:var(--radius-pill);background:var(--status-success-surface);color:var(--status-success);font-size:var(--text-xs);white-space:nowrap;font-weight:600;display:inline-flex}.cloud-pill.muted{border-color:var(--border-subtle);background:var(--surface-sunken);color:var(--text-muted)}.popover{position:relative}.popover-panel{z-index:70;top:calc(100% + var(--space-2));min-width:17rem;max-width:min(22rem, calc(100vw - 2 * var(--space-3)));padding:var(--space-1);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-panel);box-shadow:var(--shadow-overlay);color:var(--text-body);animation:hafa-enter var(--duration-ui) var(--ease-out);transform-origin:100% 0;position:absolute}.popover-end{right:0}.popover-start{left:0}.menu-section{gap:var(--space-1);padding:var(--space-2);display:grid}.menu-section+.menu-section{border-top:1px solid var(--border-subtle)}.menu-heading{margin:0 0 var(--space-1);color:var(--text-muted);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;font-weight:600}.menu-field{gap:var(--space-1);display:grid}.menu-help{color:var(--text-muted);font-size:var(--text-xs);line-height:var(--leading-body)}.menu-item{background:0 0;border-color:#0000;justify-content:flex-start;width:100%}.menu-item.danger-quiet{border-color:#0000}.menu-toggle{justify-content:space-between;width:100%}.menu-toggle:after{content:"";border:1px solid var(--border-strong);border-radius:var(--radius-pill);background:radial-gradient(circle at 9px 50%, var(--text-muted) 0 6px, transparent 6.5px), var(--surface-sunken);width:32px;height:18px}.menu-toggle[aria-pressed=true]:after{border-color:var(--action-primary);background:radial-gradient(circle at 23px 50%, var(--action-primary-ink) 0 6px, transparent 6.5px), var(--action-primary)}.menu-phone-only{display:none}.segmented{border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--surface-sunken);flex-wrap:wrap;gap:2px;padding:2px;display:flex}.segmented button{min-height:var(--control-sm);padding:0 var(--space-3);border-radius:calc(var(--radius-sm) - 2px);font-size:var(--text-xs);background:0 0;border-color:#0000;flex:auto}.source-usage{gap:var(--space-1);margin-top:var(--space-2);display:grid}.source-usage-summary{justify-content:space-between;gap:var(--space-3);color:var(--text-muted);font-size:var(--text-xs);display:flex}.source-usage-summary strong{color:var(--text-strong);font-variant-numeric:tabular-nums;white-space:nowrap;font-weight:600}.source-usage meter{width:100%;height:8px;accent-color:var(--status-success)}.checkpoint-menu{position:relative}.checkpoint-menu summary{align-items:center;gap:var(--space-2);min-height:var(--control-md);padding:0 var(--space-3);border-radius:var(--radius-sm);color:var(--text-body);cursor:pointer;font-size:var(--text-sm);-webkit-user-select:none;user-select:none;transition:background-color var(--duration-ui) ease;font-weight:600;list-style:none;display:inline-flex}.checkpoint-menu summary::-webkit-details-marker{display:none}@media (hover:hover) and (pointer:fine){.checkpoint-menu summary:hover{background:var(--surface-sunken)}}.checkpoint-menu[open] summary{background:var(--surface-sunken)}.checkpoint-menu summary small,.count-badge{min-width:1.4rem;height:1.4rem;padding:0 var(--space-1);border-radius:var(--radius-pill);background:var(--surface-sunken);color:var(--text-body);font-size:var(--text-2xs);font-variant-numeric:tabular-nums;place-items:center;font-weight:600;display:inline-grid}.checkpoint-menu[open] summary small{background:var(--surface-panel)}.checkpoint-popover{gap:var(--space-2);width:min(360px,100vw - 2rem);padding:var(--space-3);display:grid}.checkpoint-popover-header{justify-content:space-between;align-items:center;gap:var(--space-3);display:flex}.checkpoint-popover-header strong{color:var(--text-strong);font-weight:600}.checkpoint-list{gap:var(--space-1);scrollbar-width:thin;min-width:0;max-height:260px;display:grid;overflow-y:auto}.checkpoint-card{width:100%;min-height:48px;padding:var(--space-2) var(--space-3);text-align:left;justify-items:start;gap:2px;display:grid}.checkpoint-card span,.checkpoint-card small{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.checkpoint-card small{color:var(--text-muted);font-size:var(--text-xs);font-variant-numeric:tabular-nums;font-weight:400}.checkpoint-page{display:none}.empty-project-list{margin:var(--space-1) 0 0;color:var(--text-muted);font-size:var(--text-sm);text-align:center}.welcome-hero{justify-content:space-between;align-items:center;gap:var(--space-6);margin-bottom:var(--space-3);padding:var(--space-5) var(--space-8) var(--space-5) var(--space-6);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:linear-gradient(var(--border-subtle) 1px, transparent 1px) 0 0 / 24px 24px, linear-gradient(90deg, var(--border-subtle) 1px, transparent 1px) 0 0 / 24px 24px, radial-gradient(circle at 0% 0%, color-mix(in srgb, var(--accent-gold) 22%, transparent), transparent 22rem), var(--surface-panel);box-shadow:var(--shadow-panel);display:flex;position:relative;overflow:hidden}.welcome-copy{flex:auto;max-width:56rem}.welcome-hero h2{color:var(--text-strong);font-family:var(--font-display);font-size:var(--text-display);letter-spacing:-.01em;font-weight:700;line-height:1;display:block}.welcome-lede{max-width:40rem;margin:var(--space-3) 0 0;color:var(--text-muted);font-size:var(--text-base)}.welcome-actions{gap:var(--space-3);flex-wrap:wrap;flex:none;display:flex}.welcome-dismiss{top:var(--space-2);right:var(--space-2);position:absolute}.lesson-bar{align-items:center;gap:var(--space-3);margin-bottom:var(--space-3);padding:var(--space-1);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:var(--surface-panel);font-size:var(--text-sm);display:flex}.lesson-back{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--control-md);padding:0 var(--space-3);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-panel);color:var(--text-strong);font-weight:600;line-height:var(--leading-tight);touch-action:manipulation;transition:background-color var(--duration-ui) ease, border-color var(--duration-ui) ease, transform var(--duration-press) var(--ease-out);flex:none;text-decoration:none;display:inline-flex}.lesson-back:active{transform:scale(.97)}.lesson-label-short{display:none}.lesson-context{align-items:center;gap:var(--space-2);min-width:0;color:var(--text-muted);flex:auto;margin:0;display:flex}.school-badge{padding:2px var(--space-2);border:1px solid var(--border-subtle);border-radius:var(--radius-pill);background:var(--surface-sunken);color:var(--text-muted);font-size:var(--text-2xs);font-weight:600;line-height:var(--leading-body);white-space:nowrap;flex:none}.lesson-name{min-width:0;color:var(--text-strong);text-overflow:ellipsis;white-space:nowrap;font-weight:600;overflow:hidden}.lesson-submit{align-items:center;gap:var(--space-3);flex:none;display:flex}.lesson-hint{color:var(--text-muted);font-size:var(--text-xs);white-space:nowrap}.lesson-copy{min-width:0}@media (hover:hover) and (pointer:fine){.lesson-back:hover{background:var(--surface-sunken)}}@media (pointer:coarse){.lesson-back{min-height:var(--control-lg)}}@media (width<=1279px){.lesson-hint{display:none}}@media (width<=640px),(height<=500px) and (width<=950px) and (orientation:landscape){.lesson-bar{gap:var(--space-1) var(--space-2);margin:0 0 var(--space-2);padding:var(--space-2);grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}.lesson-context{padding:0 var(--space-1);font-size:var(--text-xs);order:-1;grid-column:1/-1}.lesson-submit{display:contents}.lesson-back,.lesson-copy{width:100%;min-height:var(--control-lg);padding:0 var(--space-2)}}@media (width<=640px) and (height<=700px){.lesson-context{display:none}}@media (width<=380px){.lesson-label-long{display:none}.lesson-label-short{display:inline}}.project-status{gap:var(--space-2);margin-bottom:var(--space-3);display:grid}.status-banner{align-items:center;gap:var(--space-2);padding:var(--space-2) var(--space-3);border:1px solid var(--status-tone-border,var(--border-subtle));border-radius:var(--radius-md);background:var(--status-tone-surface,var(--surface-sunken));color:var(--text-strong);font-size:var(--text-sm);margin:0;display:flex}.status-banner svg{color:var(--status-tone,var(--text-muted));flex:none}.status-banner span{flex:auto;min-width:0}[data-tone=info]{--status-tone:var(--status-info);--status-tone-surface:var(--status-info-surface);--status-tone-border:color-mix(in srgb, var(--status-info) 28%, transparent)}[data-tone=success]{--status-tone:var(--status-success);--status-tone-surface:var(--status-success-surface);--status-tone-border:color-mix(in srgb, var(--status-success) 30%, transparent)}[data-tone=warning]{--status-tone:var(--status-warning);--status-tone-surface:var(--status-warning-surface);--status-tone-border:var(--status-warning-border)}[data-tone=danger]{--status-tone:var(--status-danger);--status-tone-surface:var(--status-danger-surface);--status-tone-border:var(--status-danger-border)}.domain-move-banner{justify-content:space-between;align-items:center;gap:var(--space-4);margin-bottom:var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--status-warning-border);border-radius:var(--radius-lg);background:var(--status-warning-surface);color:var(--text-strong);display:flex}.domain-move-banner>div:first-child{gap:var(--space-1);display:grid}.domain-move-banner span{color:var(--text-body)}.domain-move-actions{align-items:center;gap:var(--space-3);flex:none;display:flex}.domain-move-actions a{white-space:nowrap;font-weight:600}.layout-grid{align-items:start;gap:var(--gutter);grid-template-columns:240px minmax(0,1fr);display:grid}.coding-stage{align-items:start;gap:var(--gutter);grid-template-columns:minmax(0,1fr);min-width:0;display:grid}.coding-stage.learning-open{grid-template-columns:minmax(0,1fr) minmax(340px,400px)}.sidebar-collapsed .layout-grid{grid-template-columns:56px minmax(0,1fr)}.main-workspace{min-width:0}.workspace{gap:var(--gutter);grid-template-columns:minmax(0,1.12fr) minmax(380px,.88fr);display:grid}.editor-expanded{--workspace-pane-height:clamp(480px, calc(100dvh - 160px), 900px)}.editor-expanded .workspace{grid-template-columns:minmax(0,1.65fr) minmax(320px,.55fr)}.project-sidebar{top:var(--space-3);min-width:0;padding:var(--space-4);position:sticky}.sidebar-header{justify-content:space-between;align-items:flex-start;gap:var(--space-2);display:flex}.sidebar-heading{min-width:0}.sidebar-kicker{align-items:center;gap:var(--space-1);color:var(--text-muted);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;margin:0 0 2px;font-weight:600;display:flex}.sidebar-header h2{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.sidebar-tools{align-items:center;gap:var(--space-1);display:flex}.sidebar-tools .icon-button{width:var(--control-sm);min-height:var(--control-sm)}.collapsed-sidebar-button{width:100%;display:none}.sidebar-collapsed .project-sidebar{padding:var(--space-2)}.sidebar-collapsed .sidebar-header,.sidebar-collapsed .sidebar-content{display:none}.sidebar-collapsed .collapsed-sidebar-button{display:inline-flex}.project-view-toggle{margin-top:var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--surface-sunken);grid-template-columns:1fr 1fr;gap:2px;padding:2px;display:grid}.project-view-toggle button{min-height:var(--control-sm);border-radius:calc(var(--radius-sm) - 2px);font-size:var(--text-xs);background:0 0;border-color:#0000}.project-view-toggle span{font-variant-numeric:tabular-nums;opacity:.8}.new-project-grid{gap:var(--space-2);margin:var(--space-3) 0;grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.project-search{align-items:center;gap:var(--space-2);min-height:var(--control-md);margin-bottom:var(--space-2);padding:0 2px 0 var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--surface-field);color:var(--text-muted);display:flex}.project-search:focus-within{outline:2px solid var(--focus-ring);outline-offset:2px}.project-search input{min-width:0;min-height:calc(var(--control-md) - 2px);color:var(--text-strong);font-size:var(--text-sm);background:0 0;border:0;outline:0;flex:auto;padding:0}.project-search input::-webkit-search-cancel-button{display:none}.project-search .icon-button{width:var(--control-sm);min-height:var(--control-sm)}.project-search-count{margin:0 0 var(--space-2);color:var(--text-muted);font-size:var(--text-xs)}@media (width<=640px),(pointer:coarse){.project-search,.project-search input{min-height:var(--control-lg)}.project-search input,.guide-search input{font-size:16px}}@media (width>=981px){.project-sidebar{flex-direction:column;max-height:calc(100dvh - 96px);display:flex}.app-shell:not(.sidebar-collapsed) .project-sidebar .sidebar-content{flex-direction:column;flex:0 auto;min-height:0;display:flex}.sidebar-content>.project-list{flex:0 auto;min-height:0;max-height:none}}.project-list{align-content:start;gap:var(--space-1);overscroll-behavior:contain;max-height:max(12rem,100dvh - 22rem);margin-right:calc(-1 * var(--space-2));padding-right:var(--space-2);scrollbar-width:thin;display:grid;overflow-y:auto}.project-card{width:100%;min-height:52px;padding:var(--space-2) var(--space-3);color:var(--text-strong);text-align:left;background:0 0;border-color:#0000;justify-content:stretch;justify-items:start;gap:2px;display:grid}.project-card-title{max-width:100%;font-weight:600;line-height:var(--leading-tight);overflow-wrap:anywhere;-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.project-card small{color:var(--text-faint);font-size:var(--text-xs);font-variant-numeric:tabular-nums;font-weight:400}.project-card.active{border-color:var(--border-subtle);background:var(--surface-sunken);color:var(--text-strong);box-shadow:inset 3px 0 0 var(--action-primary)}.project-card.active small{color:var(--text-muted)}.mobile-project-menu,.mobile-home-panel,.mobile-code-runbar,.mobile-bottom-nav,.mobile-editor-guide-button{display:none}.editor-panel{border-color:var(--border-code);background:var(--surface-code);color:var(--text-on-code);position:relative;overflow:hidden}.editor-panel :focus-visible,.output-panel :focus-visible,.terminal:focus-visible{outline-color:var(--focus-ring-on-code)}.file-tabs{justify-content:space-between;align-items:center;gap:var(--space-2);min-height:48px;padding:var(--space-1) var(--space-2);border-bottom:1px solid var(--border-code);background:var(--surface-code);display:flex}.file-tab-list{gap:var(--space-1);overscroll-behavior-x:contain;scrollbar-width:thin;flex:auto;min-width:0;display:flex;overflow-x:auto}.file-tab-list button{min-height:var(--control-sm);padding:0 var(--space-3);color:var(--text-on-code-muted);font-family:var(--font-mono);font-size:var(--text-xs);background:0 0;border-color:#0000;flex:none;font-weight:400}.file-tab-list button.active{border-color:var(--border-code);background:var(--surface-code-raised);color:var(--text-on-code);box-shadow:inset 0 -2px 0 var(--accent-gold)}.entry-dot{margin-left:var(--space-1);padding:1px var(--space-1);border-radius:var(--radius-pill);background:color-mix(in srgb, var(--code-success) 16%, transparent);color:var(--code-success);font-family:var(--font-ui);font-size:var(--text-2xs);text-transform:uppercase;font-weight:600}.file-tabs .ghost,.file-row-actions .icon-button,.terminal-footer .ghost{color:var(--text-on-code-muted)}.file-tabs .ghost,.file-tabs .icon-button{min-height:var(--control-sm)}.file-tabs .icon-button{width:var(--control-sm)}.editor-copy-button{gap:var(--space-1);padding:0 var(--space-2);font-size:var(--text-xs)}@media (hover:hover) and (pointer:fine){.editor-panel button.ghost:hover:not(:disabled),.file-tab-list button:hover:not(:disabled):not(.active),.terminal-footer button.ghost:hover:not(:disabled),.file-row-main:hover:not(:disabled){background:var(--surface-code-raised);color:var(--text-on-code)}}.editor-copy-error,.runner-copy-error{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-code);background:var(--code-danger-surface);color:var(--code-danger);font-size:var(--text-sm);margin:0}.run-empty-hint,.mobile-run-empty-hint{padding:var(--space-2) var(--space-4);border-bottom:1px solid var(--border-subtle);background:var(--status-info-surface);color:var(--status-info);font-size:var(--text-sm);overflow-wrap:anywhere;margin:0}.mobile-run-empty-hint{padding:0 var(--space-3) var(--space-2);border-bottom:1px solid var(--border-code);background:var(--surface-code);color:var(--code-command);font-size:var(--text-xs);display:none}.file-browser{border-bottom:1px solid var(--border-code);background:var(--surface-code);color:var(--text-on-code)}.file-browser summary{justify-content:space-between;align-items:center;gap:var(--space-3);min-height:36px;padding:0 var(--space-3);cursor:pointer;list-style:none;display:flex}.file-browser summary::-webkit-details-marker{display:none}.file-browser summary span{align-items:center;gap:var(--space-1);color:var(--text-on-code-muted);font-size:var(--text-xs);font-weight:600;display:inline-flex}.file-browser summary small{min-width:0;color:var(--text-on-code-faint);font-family:var(--font-mono);font-size:var(--text-xs);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.file-browser-actions{padding:var(--space-1) var(--space-3) 0;justify-content:flex-end;display:flex}.file-browser-actions button{border-color:var(--border-code);background:var(--surface-code-raised);color:var(--text-on-code)}.file-browser-list{gap:var(--space-1);max-height:150px;padding:var(--space-1) var(--space-3) var(--space-2);scrollbar-width:thin;display:grid;overflow:auto}.file-row{align-items:center;gap:var(--space-1);border-radius:var(--radius-sm);border:1px solid #0000;grid-template-columns:minmax(0,1fr) auto;min-height:36px;padding:2px;display:grid}.file-row.active{border-color:var(--border-code);background:var(--surface-code-raised)}.file-row-main{min-width:0;min-height:32px;padding:var(--space-1) var(--space-2);color:var(--text-on-code);text-align:left;background:0 0;border:0;justify-items:start;gap:2px;display:grid}.file-row-main span,.file-row-main small{text-overflow:ellipsis;white-space:nowrap;max-width:100%;overflow:hidden}.file-row-main span{font-family:var(--font-mono);font-size:var(--text-xs);font-weight:400}.file-row-main small{color:var(--text-on-code-faint);font-size:var(--text-xs);font-weight:400}.file-row-actions{flex:none;gap:2px;display:flex}.file-row-actions .icon-button{width:var(--control-sm);min-height:var(--control-sm)}.file-row-actions .danger-icon{color:var(--code-danger)}.editor-header{display:contents}.editor-placeholder{width:100%;height:var(--editor-height);background:var(--surface-code);color:var(--text-on-code);position:relative;overflow:hidden}.editor-placeholder-code{padding:var(--space-4) var(--space-4) var(--space-4) 0;font-family:var(--font-mono);font-size:inherit;line-height:var(--code-leading);white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.editor-placeholder-line{grid-template-columns:4.25em minmax(0,1fr);display:grid}.editor-placeholder-number{color:var(--text-on-code-faint);text-align:right;padding-right:1.6em}.editor-placeholder-status{right:var(--space-3);bottom:var(--space-3);align-items:center;gap:var(--space-2);padding:var(--space-1) var(--space-3);border:1px solid var(--border-code);border-radius:var(--radius-pill);background:var(--surface-code-raised);color:var(--text-on-code-muted);font-size:var(--text-xs);margin:0;display:flex;position:absolute}.editor-placeholder-status button{min-height:var(--control-sm)}.editor-keyboard-hint{justify-content:space-between;align-items:center;gap:var(--space-4);height:var(--editor-hint-height);padding:0 var(--space-3);border-top:1px solid var(--border-code);background:var(--surface-code);color:var(--text-on-code-faint);font-size:var(--text-xs);white-space:nowrap;margin:0;display:none;overflow:hidden}.editor-keyboard-hint kbd{padding:0 var(--space-1);border:1px solid var(--border-code);border-radius:calc(var(--radius-sm) / 2);background:var(--surface-code-raised);color:var(--text-on-code);font-size:var(--text-2xs);font-weight:600}@media (hover:hover) and (pointer:fine) and (width>=641px){.app-shell{--editor-hint-height:28px}.editor-keyboard-hint{display:flex}}.output-panel,.preview-panel{border-color:var(--border-subtle);transition:box-shadow .6s var(--ease-out);flex-direction:column;display:flex}.panel-header,.runner-header{justify-content:space-between;align-items:center;gap:var(--space-3);min-height:56px;padding:var(--space-2) var(--space-2) var(--space-2) var(--space-4);border-bottom:1px solid var(--border-subtle);display:flex}.runner-title{align-items:center;gap:var(--space-1) var(--space-3);flex-wrap:wrap;min-width:0;display:flex}.runner-title .helper-text{font-size:var(--text-xs);flex-basis:100%;margin:0}.runner-header button{white-space:nowrap}.run-status{align-items:center;gap:var(--space-1);padding:2px var(--space-2);border:1px solid var(--status-tone-border,var(--border-subtle));border-radius:var(--radius-pill);background:var(--status-tone-surface,var(--surface-sunken));color:var(--status-tone,var(--text-muted));font-size:var(--text-xs);font-variant-numeric:tabular-nums;white-space:nowrap;transition:color .2s var(--ease-out), background-color .2s var(--ease-out), border-color .2s var(--ease-out);margin:0;font-weight:600;display:inline-flex}.run-status[data-tone=running]{--status-tone:var(--text-body)}.run-status-detail{color:inherit;opacity:.85;font-weight:400}.output-panel.first-success{box-shadow:0 0 0 2px var(--status-success), var(--shadow-panel);transition:none}.terminal{min-height:calc(var(--workspace-pane-height) - 92px);padding:var(--space-4);background:var(--surface-code);color:var(--text-on-code);font-family:var(--font-mono);font-size:var(--code-size);line-height:var(--code-leading);flex:1 1 0;overflow-y:auto}.terminal pre{font:inherit;white-space:pre-wrap;word-break:break-word;margin:0}.terminal-line.command{color:var(--code-command)}.terminal-line.command:before{content:"$ ";color:var(--code-input)}.terminal-line.input{color:var(--code-input)}.terminal-line.input:before{content:"> ";color:var(--text-on-code-faint)}.terminal-line.stderr,.terminal-line.system{color:var(--code-danger)}.terminal-line.stderr.traceback{color:var(--text-on-code-faint)}.terminal-error-line{color:var(--code-danger);font-weight:600}.terminal-input-row{align-items:center;gap:var(--space-2);margin-top:var(--space-2);padding:var(--space-1) var(--space-1) var(--space-1) var(--space-3);border:1px solid color-mix(in srgb, var(--code-input) 40%, transparent);border-radius:var(--radius-sm);background:var(--surface-code-raised);display:flex}.terminal-input-row span{color:var(--text-on-code-faint);flex:none}.terminal-input-row:focus-within{outline:2px solid var(--focus-ring-on-code);outline-offset:2px}.terminal-input-row input{min-width:0;min-height:var(--control-lg);color:var(--text-on-code);font:inherit;background:0 0;border:0;outline:none;flex:auto;padding:0}.terminal-input-row input::placeholder{color:var(--text-on-code-faint)}.terminal-input-submit{min-height:var(--control-lg);background:var(--code-input);color:var(--surface-code);border-color:#0000}@media (hover:hover) and (pointer:fine){.terminal-input-submit:hover:not(:disabled){background:color-mix(in srgb, var(--code-input) 80%, white)}}.runner-progress{align-items:flex-start;gap:var(--space-3);color:var(--text-on-code-muted);font-family:var(--font-ui);display:flex}.runner-progress svg{flex:none;margin-top:3px}.runner-progress div,.runner-progress strong,.runner-progress span{display:block}.runner-progress strong{color:var(--text-on-code);font-size:var(--text-sm);font-weight:600}.runner-progress span{color:var(--text-on-code-faint);font-size:var(--text-xs);margin-top:2px}.runner-progress .runner-progress-elapsed{color:var(--code-command);font-variant-numeric:tabular-nums}.runner-steps{gap:var(--space-1);margin:var(--space-3) 0 0;font-size:var(--text-xs);padding:0;list-style:none;display:grid}.runner-steps li{align-items:center;gap:var(--space-2);color:var(--text-on-code-faint);display:flex}.runner-steps li:before{content:"";border-radius:var(--radius-pill);border:1px solid;width:8px;height:8px}.runner-steps li[data-state=current]{color:var(--text-on-code)}.runner-steps li[data-state=current]:before{border-color:var(--code-command);background:var(--code-command)}.empty-output{align-content:center;justify-items:center;gap:var(--space-2);min-height:calc(var(--workspace-pane-height) - 140px);color:var(--text-on-code-faint);font-family:var(--font-ui);font-size:var(--text-sm);text-align:center;display:grid}.empty-output p{max-width:30rem;margin:0}.empty-output strong{color:var(--text-on-code);font-weight:600}.terminal-trimmed-note{margin:0 0 var(--space-2);padding:var(--space-1) var(--space-2);border:1px dashed var(--border-code);border-radius:var(--radius-sm);color:var(--text-on-code-muted);font-family:var(--font-ui);font-size:var(--text-xs)}.terminal-full-traceback{margin-top:var(--space-3);color:var(--text-on-code-faint);font-size:var(--text-xs)}.terminal-full-traceback summary{min-height:32px;color:var(--text-on-code-muted);cursor:pointer;font-family:var(--font-ui)}.terminal-full-traceback pre{margin-top:var(--space-1);color:var(--text-on-code-faint)}.run-error-headline{z-index:1;top:calc(-1 * var(--space-4));align-items:flex-start;gap:var(--space-2);margin:calc(-1 * var(--space-4)) calc(-1 * var(--space-4)) var(--space-3);padding:var(--space-3) var(--space-4);border-bottom:1px solid color-mix(in srgb, var(--code-danger) 30%, transparent);background:var(--code-danger-surface);color:var(--code-danger);font-family:var(--font-ui);display:flex;position:sticky}.run-error-headline svg{flex:none;margin-top:3px}.run-error-headline strong{color:var(--text-on-code);font-family:var(--font-mono);font-size:var(--text-sm);font-weight:600;line-height:var(--leading-body);overflow-wrap:anywhere;display:block}.run-error-headline span{color:var(--text-on-code-muted);font-size:var(--text-xs);margin-top:2px;display:block}.terminal-footer{justify-content:space-between;align-items:center;gap:var(--space-3);min-height:36px;padding:0 var(--space-2) 0 var(--space-4);border-top:1px solid var(--border-code);background:var(--surface-code-raised);color:var(--text-on-code-faint);font-size:var(--text-xs);font-variant-numeric:tabular-nums;display:flex}.terminal-footer-detail{margin-left:auto}.terminal-footer .runner-copy-button{gap:var(--space-1);min-height:28px;padding:0 var(--space-2);border-color:var(--border-code);font-size:var(--text-xs);white-space:nowrap}.sql-result-stage{min-height:calc(var(--workspace-pane-height) - 180px);padding:var(--space-4);background:var(--surface-code);color:var(--text-on-code);flex:1 1 0;overflow:auto}.sql-result-stage .runner-progress,.sql-result-stage .empty-output{min-height:calc(var(--workspace-pane-height) - 226px)}.sql-result-stage .runner-progress{justify-content:center;align-items:center}.sql-workspace-map{align-items:center;gap:var(--space-4);padding:var(--space-3) var(--space-4);border-bottom:1px solid var(--border-subtle);background:var(--surface-sunken);color:var(--text-strong);grid-template-columns:minmax(0,1fr) auto;display:grid}.sql-table-region{border:1px solid var(--border-code);border-radius:var(--radius-sm);max-width:100%;overflow:auto}.sql-table-region table{border-collapse:collapse;min-width:100%;font-family:var(--font-mono);font-size:var(--text-xs);font-variant-numeric:tabular-nums;text-align:left}.sql-table-region caption{padding:var(--space-2) var(--space-3);background:var(--surface-code-raised);color:var(--text-on-code-muted);font-family:var(--font-ui);font-size:var(--text-xs);text-align:left;font-weight:600}.sql-table-region th,.sql-table-region td{padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--border-code);white-space:nowrap}.sql-table-region th{background:var(--surface-code-raised);color:var(--code-command);font-weight:600;position:sticky;top:0}.sql-table-region tbody tr:nth-child(2n){background:#fffaf109}.sql-null{color:var(--text-on-code-faint);font-style:italic}.sql-empty-result{padding:var(--space-4);color:var(--text-on-code-muted);text-align:center;margin:0}.sql-message{gap:var(--space-1);padding:var(--space-3) var(--space-4);border:1px solid color-mix(in srgb, var(--code-success) 30%, transparent);border-radius:var(--radius-sm);font-family:var(--font-ui);margin:0;display:grid}.sql-message.success{background:color-mix(in srgb, var(--code-success) 8%, transparent);color:var(--code-success)}.sql-message.error{border-color:color-mix(in srgb, var(--code-danger) 30%, transparent);background:var(--code-danger-surface);color:var(--code-danger)}.sql-message pre{font-family:var(--font-mono);overflow-wrap:anywhere;white-space:pre-wrap;margin:0}.preview-panel iframe{width:100%;height:calc(var(--workspace-pane-height) - 160px);background:var(--surface-preview);border:0;min-height:260px}.preview-console{border-top:1px solid var(--border-code);background:var(--surface-code);min-height:96px;max-height:160px;color:var(--text-on-code);font-family:var(--font-mono);font-size:var(--text-xs);overflow-y:auto}.preview-console-header{min-height:36px;padding:0 var(--space-3);background:var(--surface-code-raised);color:var(--text-on-code-muted);font-family:var(--font-ui);justify-content:space-between;align-items:center;font-weight:600;display:flex}.preview-console-header button{color:var(--text-on-code-muted)}.preview-console p{padding:var(--space-3);color:var(--text-on-code-faint);margin:0}.preview-console-line{padding:var(--space-2) var(--space-3);border-top:1px solid var(--border-code);white-space:pre-wrap;word-break:break-word;margin:0}.preview-console-line.warn{color:var(--code-command)}.preview-console-line.error{color:var(--code-danger)}.guide-code-section{margin-top:var(--space-4);border:1px solid var(--border-code);border-radius:var(--radius-md);background:var(--surface-code);color:var(--text-on-code);overflow:hidden}.guide-section-heading{justify-content:space-between;align-items:center;gap:var(--space-3);min-height:44px;padding:var(--space-1) var(--space-2) var(--space-1) var(--space-3);border-bottom:1px solid var(--border-code);background:var(--surface-code-raised);display:flex}.guide-section-heading>span{align-items:center;gap:var(--space-1);color:var(--text-on-code-muted);font-size:var(--text-xs);font-weight:600;display:inline-flex}.guide-copy-button{min-height:var(--control-sm);border-color:var(--border-code);color:var(--text-on-code);font-size:var(--text-xs);background:0 0}.guide-code-section pre{padding:var(--space-4);color:var(--text-on-code);font-family:var(--font-mono);font-size:var(--code-size);line-height:var(--code-leading);tab-size:4;white-space:pre;margin:0;overflow-x:auto}.guide-copy-error{padding:var(--space-2) var(--space-4);border-top:1px solid var(--border-code);background:color-mix(in srgb, var(--code-command) 12%, transparent);color:var(--code-command);font-size:var(--text-xs);margin:0}.error-text{color:var(--status-danger)}.muted{color:var(--text-muted)}.inline{align-items:center;gap:var(--space-2);display:inline-flex}.spin{animation:.9s linear infinite hafa-spin}.learning-sidecar{top:var(--space-3);height:min(820px, calc(100dvh - 2 * var(--space-3)));border-radius:var(--radius-lg);background:var(--surface-panel);min-width:0;animation:hafa-enter var(--duration-panel) var(--ease-out);grid-template-rows:auto auto minmax(0,1fr);display:grid;position:sticky;overflow:hidden}.learning-sidecar-header{align-items:start;gap:var(--space-3);padding:var(--space-4);border-bottom:1px solid var(--border-subtle);grid-template-columns:auto minmax(0,1fr) auto;display:grid}.learning-sidecar-mark{border-radius:var(--radius-leaf);background:var(--status-success);width:2.5rem;height:2.5rem;color:var(--on-status-success);box-shadow:var(--shadow-signature);place-items:center;display:grid}.learning-sidecar-header h2{font-size:var(--text-lg);font-weight:600}.learning-sidecar-header p:not(.eyebrow){margin:var(--space-1) 0 0;color:var(--text-muted);font-size:var(--text-xs);line-height:var(--leading-body);-webkit-line-clamp:2;-webkit-box-orient:vertical;display:-webkit-box;overflow:hidden}.learning-sidecar-tabs{margin:var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-sm);background:var(--surface-sunken);grid-template-columns:repeat(3,1fr);gap:2px;padding:2px;display:grid}.learning-sidecar-tabs button{min-width:0;min-height:var(--control-md);padding:0 var(--space-2);border-radius:calc(var(--radius-sm) - 2px);font-size:var(--text-sm);background:0 0;border-color:#0000}.learning-error-badge{border-radius:var(--radius-pill);background:var(--action-primary);min-width:1.15rem;min-height:1.15rem;color:var(--action-primary-ink);font-size:var(--text-2xs);place-items:center;line-height:1;display:inline-grid}.learning-sidecar-body,.learning-sidecar-body>[role=tabpanel]{min-height:0}.learning-sidecar-body{scrollbar-width:thin;overflow-y:auto}.learning-sidecar-backdrop{display:contents}.learning-sidecar.learning-sidecar-entered,.learning-sidecar-backdrop.learning-sidecar-entered{animation:none}.learning-sidecar-tab-placeholder{justify-content:center;align-items:center;gap:var(--space-2);min-height:var(--control-md);border-radius:calc(var(--radius-sm) - 2px);color:var(--text-muted);font-size:var(--text-sm);display:inline-flex}.learning-sidecar-tab-placeholder.active{background:var(--surface-panel);color:var(--text-strong);box-shadow:0 1px 2px #14110f1f}[data-theme=dark] .learning-sidecar-tab-placeholder.active{background:var(--surface-code-raised)}.learning-sidecar-skeleton{padding:var(--space-4)}.learning-sidecar-load-status{align-items:center;gap:var(--space-2);margin:0 0 var(--space-4);color:var(--text-muted);font-size:var(--text-sm);display:flex}.skeleton-lines{gap:var(--space-3);display:grid}.skeleton-lines span{border-radius:var(--radius-pill);background:var(--surface-sunken);height:.85rem;animation:1.4s ease-in-out infinite alternate hafa-skeleton}.skeleton-lines span:first-child{width:62%;height:1.15rem}.skeleton-lines span:nth-child(2){width:94%}.skeleton-lines span:nth-child(3){width:88%}.skeleton-lines span:nth-child(4){width:72%}.skeleton-lines span:nth-child(5){width:80%}.learning-sidecar-load-failed{gap:var(--space-3);justify-items:start;display:grid}.learning-sidecar-load-failed p{color:var(--text-body);font-size:var(--text-sm);line-height:var(--leading-body);margin:0}.practice-session-loading{justify-content:space-between;align-items:center;gap:var(--space-2) var(--space-3);min-height:72px;padding:var(--space-3) var(--space-4);color:var(--text-muted);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.practice-session-loading>span{align-items:center;gap:var(--space-2);display:inline-flex}@media (width<=1599px){.coding-stage.learning-open{grid-template-columns:minmax(0,1fr)}.learning-sidecar-backdrop{z-index:80;background:var(--scrim);animation:hafa-fade var(--duration-panel) var(--ease-out);justify-content:flex-end;display:flex;position:fixed;inset:0}.learning-sidecar{border-block:0;border-radius:var(--radius-lg) 0 0 var(--radius-lg);width:min(460px,100vw - 2rem);height:100dvh;max-height:none;box-shadow:var(--shadow-overlay);animation:hafa-drawer var(--duration-panel) var(--ease-drawer);border-right:0;outline:0;position:relative;top:0}}@media (width>=1101px) and (width<=1599px){.learning-sidecar-backdrop{background:#14110f38}}@media (width>=1600px){.coding-stage.learning-open .workspace{grid-template-columns:minmax(480px,1fr) minmax(380px,.8fr)}}.floating-dock{z-index:60;right:var(--space-4);bottom:var(--space-4);align-items:flex-end;gap:var(--space-2);width:min(360px, calc(100vw - 2 * var(--space-4)));pointer-events:none;--dock-lift:0px;transform:translateY(calc(-1 * var(--dock-lift)));transition:transform var(--duration-ui) var(--ease-out);flex-direction:column;display:flex;position:fixed}.floating-dock>*{pointer-events:auto}.toast{align-items:flex-start;gap:var(--space-2);width:100%;padding:var(--space-3) var(--space-2) var(--space-3) var(--space-3);border:1px solid var(--status-tone-border);border-radius:var(--radius-md);background:var(--status-tone-surface);color:var(--text-strong);box-shadow:var(--shadow-overlay);font-size:var(--text-sm);line-height:var(--leading-body);animation:hafa-enter-up var(--duration-ui) var(--ease-out);display:flex}.toast-icon{color:var(--status-tone);flex:none;margin-top:2px}.toast-message{min-width:0;max-height:calc(5 * var(--leading-body) * 1em);overscroll-behavior:contain;overflow-wrap:anywhere;flex:auto;overflow-y:auto}.toast-action{flex:none;margin:-4px 0}.toast-dismiss{width:var(--control-sm);min-height:var(--control-sm);color:var(--text-muted);margin:-4px 0}[data-color-mode=colorblind] .toast[data-tone=danger] .toast-message,[data-color-mode=colorblind] .form-error,[data-color-mode=colorblind] .error-text{text-underline-offset:.14em;font-weight:600;text-decoration:underline}.learning-coach-launcher{min-height:var(--control-lg);border-color:var(--status-danger-border);background:var(--status-danger-surface);color:var(--status-danger);box-shadow:var(--shadow-overlay)}[data-color-mode=colorblind] button.active,[data-color-mode=colorblind] button[aria-pressed=true],[data-color-mode=colorblind] .project-card.active,[data-color-mode=colorblind] .file-row.active,[data-color-mode=colorblind] .file-tab-list button.active{text-underline-offset:.16em;text-decoration:underline}[data-color-mode=colorblind] .preview-console-line.warn,[data-color-mode=colorblind] .preview-console-line.error{padding-left:var(--space-3);border-left:4px solid}.modal-backdrop{z-index:90;padding:var(--space-4);background:var(--scrim);animation:hafa-fade var(--duration-panel) var(--ease-out);place-items:center;display:grid;position:fixed;inset:0}.modal-sheet{width:min(440px,100%);padding:var(--space-5);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--surface-panel);box-shadow:var(--shadow-overlay);color:var(--text-body);animation:hafa-enter var(--duration-panel) var(--ease-out)}.modal-sheet h2{font-size:var(--text-lg)}.oss-footer{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-6) 0 var(--space-1);color:var(--text-muted);font-size:var(--text-sm);flex-wrap:wrap;display:flex}.oss-footer a{font-weight:600;text-decoration:none}.oss-footer a:focus-visible{color:var(--action-primary-hover);text-decoration:underline}@media (hover:hover) and (pointer:fine){.oss-footer a:hover{color:var(--action-primary-hover);text-decoration:underline}}@keyframes hafa-spin{to{transform:rotate(360deg)}}@keyframes hafa-fade{0%{opacity:0}}@keyframes hafa-enter{0%{opacity:0;transform:translateY(var(--motion-distance))}}@keyframes hafa-enter-up{0%{opacity:0;transform:translateY(var(--motion-distance))}}@keyframes hafa-skeleton{0%{opacity:.55}to{opacity:1}}@keyframes hafa-drawer{0%{opacity:0;transform:translateX(calc(2 * var(--motion-distance)))}}@media (prefers-reduced-motion:reduce){:root{--motion-distance:0px}html{scroll-behavior:auto}button,.run-status{transition-duration:.01ms}button:active:not(:disabled){transform:none}.output-panel,.output-panel.first-success,.floating-dock{transition:none}.learning-sidecar{animation-name:hafa-fade}.learning-sidecar.learning-sidecar-entered,.learning-sidecar-backdrop.learning-sidecar-entered,.skeleton-lines span{animation:none}}@media (width<=1279px){.app-bar-learning .app-bar-label,.app-bar-actions .app-bar-label{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app-bar-learning button,.app-bar-actions .app-bar-button{width:var(--control-md);padding:0}.checkpoint-menu summary{padding:0 var(--space-2)}}@media (width<=1179px){.workspace,.editor-expanded .workspace,.sidebar-collapsed .workspace{grid-template-columns:minmax(0,1fr)}.save-status{display:none}}@media (width<=980px){.layout-grid,.sidebar-collapsed .layout-grid{grid-template-columns:minmax(0,1fr)}.project-sidebar{position:static}.sidebar-collapsed .project-sidebar{padding:var(--space-4)}.sidebar-collapsed .sidebar-header{display:flex}.collapsed-sidebar-button,.sidebar-collapsed .collapsed-sidebar-button,.desktop-only,.project-sidebar .sidebar-content,.sidebar-collapsed .sidebar-content{display:none}.mobile-project-menu{display:block}.project-list{max-height:320px}.mobile-project-menu summary{justify-content:space-between;align-items:center;gap:var(--space-3);min-height:var(--control-lg);margin-top:var(--space-2);padding:0 var(--space-3);border:1px solid var(--border-strong);border-radius:var(--radius-sm);background:var(--surface-field);color:var(--text-strong);cursor:pointer;font-weight:600;list-style:none;display:flex}.mobile-project-menu summary::-webkit-details-marker{display:none}.mobile-project-menu summary span{text-overflow:ellipsis;white-space:nowrap;min-width:0;overflow:hidden}.mobile-project-menu summary small{color:var(--text-muted);font-size:var(--text-xs);white-space:nowrap}.mobile-project-content{gap:var(--space-2);padding-top:var(--space-3);display:grid}.welcome-hero{flex-direction:column;align-items:flex-start}}.instructor-panel{margin-bottom:var(--space-4)}.invite-accept-panel{align-items:center;gap:var(--space-4);margin-bottom:var(--space-4);padding:var(--space-4);justify-content:space-between;display:flex}.invite-auth-mode .invite-accept-panel-focused{margin:var(--space-4) auto 0;max-width:980px;min-height:220px;padding:var(--space-5)}.invite-auth-mode .mobile-home-panel,.invite-auth-mode .layout-grid,.invite-auth-mode .mobile-tabbar{display:none}.invite-auth-actions{gap:var(--space-2);flex-wrap:wrap;justify-content:flex-end;display:flex}.classroom-tabs{border-bottom:1px solid var(--border-subtle);gap:var(--space-2);padding:var(--space-4) var(--space-4) var(--space-4);flex-wrap:wrap;display:flex}.classroom-tabs button{border-radius:var(--radius-md);font-size:var(--text-sm);padding:var(--space-2) var(--space-3)}.classroom-tabs button.active{background:var(--surface-selected);color:var(--text-on-selected)}.invite-workflow{border-bottom:1px solid var(--border-subtle);gap:var(--space-2);padding:var(--space-4);display:grid}.classroom-settings{border-bottom:1px solid var(--border-subtle);gap:var(--space-3);padding:var(--space-4);display:grid}.classroom-review-panel{gap:var(--space-3);padding:var(--space-4);display:grid}.classroom-review-intro{align-items:start;gap:var(--space-4);justify-content:space-between;display:flex}.classroom-review-intro p{margin:var(--space-1) 0 0}.classroom-review-filters{gap:var(--space-3);grid-template-columns:repeat(5,minmax(120px,1fr)) minmax(180px,1.35fr);display:grid}.classroom-review-filters label{gap:var(--space-1);min-width:0;display:grid}.classroom-review-filters label>span:first-child{color:var(--text-muted);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;font-weight:700}.classroom-review-filters select,.classroom-review-search-field{background:var(--surface-field);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-strong);min-height:44px}.classroom-review-filters select{font:inherit;font-size:var(--text-xs);padding:var(--space-2) var(--space-3);width:100%;font-weight:600}.classroom-review-search-field{align-items:center;gap:var(--space-2);padding:0 var(--space-3);display:flex}.classroom-review-search-field svg{color:var(--text-muted);flex:none}.classroom-review-search-field input{color:var(--text-strong);font:inherit;font-size:var(--text-xs);background:0 0;border:0;outline:0;width:100%;min-width:0;padding:0;font-weight:600}.classroom-review-search-field:focus-within{border-color:var(--action-primary);box-shadow:0 0 0 2px var(--focus-ring)}.classroom-review-summary,.classroom-review-error{font-size:var(--text-xs);margin:0;font-weight:600}.classroom-review-summary{color:var(--text-muted)}.classroom-review-error{background:var(--status-danger-surface);border:1px solid var(--status-danger-border);border-radius:var(--radius-md);color:var(--status-danger);padding:var(--space-3) var(--space-3)}.classroom-review-list{gap:var(--space-2);max-height:min(58vh,620px);padding-right:2px;display:grid;overflow:auto}.classroom-review-card-main{min-width:0}.classroom-review-card-main>strong,.classroom-review-card-main>small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.classroom-review-card-main>small,.classroom-review-updated{color:var(--text-muted);font-size:var(--text-xs);font-weight:600}.classroom-review-badges{gap:var(--space-1);margin-top:var(--space-2);flex-wrap:wrap;display:flex}.classroom-review-badges span{background:var(--status-success-surface);border:1px solid color-mix(in srgb, var(--status-success) 30%, transparent);border-radius:var(--radius-pill);color:var(--status-success);font-size:var(--text-2xs);align-items:center;gap:var(--space-1);padding:var(--space-1) var(--space-2);font-weight:700;display:inline-flex}.classroom-review-badges .feedback-badge{background:var(--status-warning-surface);border-color:var(--status-warning-border);color:var(--status-warning)}.classroom-review-open{white-space:nowrap;min-height:44px}.classroom-settings-actions{gap:var(--space-3);flex-wrap:wrap;display:flex}.audit-event-list{border-top:1px solid var(--border-subtle);gap:var(--space-2);padding-top:var(--space-3);display:grid}.audit-event-row span{font-size:var(--text-sm);text-transform:capitalize;font-weight:600}.audit-event-row small{color:var(--text-muted)}.invite-form{align-items:end;gap:var(--space-3);grid-template-columns:minmax(220px,1fr) minmax(130px,.45fr) auto;display:grid}.invite-form .file-path-field{margin-top:0}.pending-invite-list{border-bottom:1px solid var(--border-subtle);gap:var(--space-2);padding:var(--space-3) var(--space-4);display:grid}.section-row{align-items:center;gap:var(--space-3);justify-content:space-between;display:flex}.section-row strong,.invite-row strong{font-family:var(--font-ui)}.section-row small,.invite-row small{color:var(--text-muted);font-size:var(--text-xs);font-weight:600;display:block}.invite-actions,.member-actions{align-items:center;gap:var(--space-2);flex-wrap:wrap;justify-content:flex-end;display:flex}.member-role-select{background:var(--surface-field);border:1px solid var(--border-subtle);border-radius:var(--radius-md);color:var(--text-strong);font-family:var(--font-ui);font-size:var(--text-sm);min-width:126px;padding:var(--space-2) var(--space-2);font-weight:600}.student-grid{gap:var(--space-3);padding:var(--space-4);grid-template-columns:repeat(auto-fit,minmax(220px,1fr));display:grid}.student-card strong,.student-card small{text-overflow:ellipsis;white-space:nowrap;min-width:0;display:block;overflow:hidden}.student-card small{color:var(--text-muted);font-size:var(--text-xs);font-weight:600}.student-card>span{color:var(--status-success);font-size:var(--text-xs);font-weight:700}.people-panel{gap:var(--space-3);padding:var(--space-4);display:grid}.classroom-search{align-items:center;gap:var(--space-2);display:flex}.classroom-search svg{color:var(--text-muted);flex:none}.member-list{gap:var(--space-2);max-height:min(58vh,560px);padding-right:2px;display:grid;overflow:auto}.member-main{min-width:0}.member-main strong,.member-main small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.member-main small{color:var(--text-muted);font-size:var(--text-xs);font-weight:600}.member-badges{gap:var(--space-1);margin-top:var(--space-1);flex-wrap:wrap;display:flex}.member-badges span{background:var(--status-success-surface);border:1px solid color-mix(in srgb, var(--status-success) 30%, transparent);border-radius:var(--radius-pill);color:var(--status-success);font-size:var(--text-2xs);padding:var(--space-1) var(--space-2);text-transform:capitalize;font-weight:700;line-height:1}.member-count{color:var(--status-success);font-size:var(--text-xs);white-space:nowrap;font-weight:700}.member-actions-readonly{color:var(--text-muted);font-size:var(--text-xs);justify-content:flex-end;font-weight:600}.member-project-list{gap:var(--space-2);flex-wrap:wrap;grid-column:1/-1;display:flex}.member-project-list:empty{display:none}.student-project-list{gap:var(--space-2);display:grid}.sql-runner-actions{align-items:center;gap:var(--space-2);flex:none;display:flex}.sql-runner-actions button{white-space:nowrap}.sql-workspace-map p{margin:0;line-height:1.4}.sql-workspace-map p:not(.eyebrow){color:var(--text-muted);font-size:var(--text-xs);margin-top:var(--space-1)}.sql-workspace-map p strong{color:var(--text-strong)}.sql-workspace-map-actions{gap:var(--space-2);flex-wrap:wrap;justify-content:flex-end;display:flex}.error-coach{background:var(--status-warning-surface);border-top:1px solid var(--status-warning-border);color:var(--text-strong);gap:var(--space-3);padding:var(--space-4);display:grid}.error-coach-heading{align-items:center;gap:var(--space-2) var(--space-3);flex-wrap:wrap;justify-content:space-between;display:flex}.error-coach-heading span,.error-coach-heading small{align-items:center;gap:var(--space-1);display:inline-flex}.error-coach-heading span{color:var(--status-warning);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;font-weight:700}.error-coach-heading small{color:var(--text-body)}.error-coach h3{font-size:var(--text-base);margin:0}.error-coach p{color:var(--text-body);margin:0;line-height:1.5}.error-coach ol{gap:var(--space-1);padding-left:var(--space-5);margin:0;display:grid}.error-coach li{padding-left:2px;line-height:1.4}.error-coach button{justify-self:start;min-height:44px}.language-guide{border:1px solid color-mix(in srgb, var(--action-primary) 34%, var(--border-subtle));border-radius:var(--radius-md);background:color-mix(in srgb, var(--surface-panel) 96%, transparent);width:min(1180px,100%);height:min(860px,100dvh - 2rem);box-shadow:var(--shadow-panel);outline:0;grid-template-rows:auto minmax(0,1fr);display:grid;position:relative;overflow:hidden}.language-guide:before,.language-guide:after{content:"";z-index:3;pointer-events:none;width:2.3rem;height:2.3rem;position:absolute}.language-guide:before{border-top:2px solid var(--action-primary);border-left:2px solid var(--action-primary);top:.7rem;left:.7rem}.language-guide:after{border-right:2px solid var(--action-primary);border-bottom:2px solid var(--action-primary);bottom:.7rem;right:.7rem}.guide-header{z-index:2;align-items:center;gap:var(--space-4);min-height:100px;padding:var(--space-4) var(--space-5) var(--space-4) var(--space-5);border-bottom:1px solid var(--border-subtle);background:var(--surface-panel);grid-template-columns:auto minmax(0,1fr) auto;display:grid;position:relative}.guide-heading-mark{border:1px solid color-mix(in srgb, var(--action-primary) 42%, var(--border-subtle));border-radius:var(--radius-md);background:var(--action-primary);width:3rem;height:3rem;color:var(--action-primary-ink);box-shadow:none;place-items:center;display:grid;transform:rotate(-2deg)}.guide-header h2{font-size:var(--text-xl)}.guide-header p:not(.eyebrow){max-width:74ch;margin:var(--space-1) 0 0;color:var(--text-muted);font-size:var(--text-sm);line-height:1.45}.guide-close-button{align-self:start}.guide-layout{grid-template-columns:282px minmax(0,1fr);min-height:0;display:grid}.guide-index{min-height:0;padding:var(--space-4);border-right:1px solid var(--border-subtle);background:linear-gradient(var(--border-subtle) 1px, transparent 1px), color-mix(in srgb, var(--accent-gold) 7%, var(--surface-panel));background-size:100% 2rem;grid-template-rows:auto auto minmax(0,1fr);align-content:start;display:grid}.guide-search{align-items:center;gap:var(--space-2);min-height:46px;padding:0 var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:color-mix(in srgb, var(--surface-panel) 92%, var(--surface-field));color:var(--text-muted);display:flex}.guide-search:focus-within{border-color:var(--action-primary);box-shadow:0 0 0 2px var(--focus-ring)}.guide-search input{width:100%;min-width:0;color:var(--text-strong);font-size:var(--text-sm);background:0 0;border:0;outline:0}.guide-result-count{margin:var(--space-3) 0 var(--space-2);color:var(--text-muted);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;font-weight:600}.guide-topic-list{align-content:start;gap:var(--space-1);min-height:0;padding-right:var(--space-1);scrollbar-width:thin;display:grid;overflow-y:auto}.guide-topic-list button{justify-content:stretch;align-items:center;gap:var(--space-2);width:100%;min-height:48px;padding:var(--space-2) var(--space-2);border-radius:var(--radius-md);color:var(--text-strong);box-shadow:none;text-align:left;background:0 0;border:1px solid #0000;grid-template-columns:2rem minmax(0,1fr);display:grid;transform:none}@media (hover:hover) and (pointer:fine){.guide-topic-list button:hover:not(:disabled,.active){border-color:var(--border-subtle);background:color-mix(in srgb, var(--surface-panel) 85%, var(--surface-field));box-shadow:none;transform:none}}.guide-topic-list button.active,.guide-topic-list button.active:not(:disabled){border-color:var(--surface-selected);background:var(--surface-selected);color:var(--text-on-selected);box-shadow:none}.guide-topic-list button span{font-family:var(--font-mono);font-size:var(--text-xs);opacity:.62}.guide-topic-list button strong{min-width:0;font-size:var(--text-sm);line-height:1.2}.guide-page{background:var(--surface-panel);scrollbar-width:thin;min-width:0;min-height:0;padding:clamp(1rem,2.7vw,2.15rem);overflow-y:auto}.guide-page-heading{justify-content:space-between;align-items:start;gap:var(--space-4);padding-bottom:var(--space-5);border-bottom:1px solid var(--border-subtle);display:flex}.guide-page-heading h3,.guide-empty-state h3{font-family:var(--font-ui);font-size:var(--text-xl);letter-spacing:0;margin:0;line-height:1}.guide-page-heading>div>p:not(.eyebrow){max-width:68ch;margin:var(--space-3) 0 0;color:var(--text-muted);line-height:1.6}.guide-page-heading p code,.guide-note p code{border:1px solid color-mix(in srgb, var(--action-primary) 25%, var(--border-subtle));border-radius:var(--radius-sm);padding:1px var(--space-1);background:color-mix(in srgb, var(--action-primary) 7%, var(--surface-panel));color:color-mix(in srgb, var(--action-primary) 76%, var(--text-strong));font-family:var(--font-mono);font-size:.88em;font-weight:600}.guide-topic-stamp{border:1px solid color-mix(in srgb, var(--action-primary) 40%, var(--border-subtle));max-width:13rem;padding:var(--space-2) var(--space-2);color:var(--action-primary);font-family:var(--font-mono);font-size:var(--text-2xs);letter-spacing:.08em;text-align:right;text-transform:uppercase;flex:none;font-weight:600;transform:rotate(1deg)}.guide-note pre{white-space:pre-wrap;overflow-wrap:anywhere;font-family:var(--font-mono);margin:0}.guide-notes-grid{gap:var(--space-3);margin-top:var(--space-3);grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);display:grid}.guide-note{min-width:0;padding:var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-md)}.guide-note>div{align-items:center;gap:var(--space-2);display:flex}.guide-note h4{font-family:var(--font-ui);font-size:var(--text-sm);margin:0}.guide-note p,.guide-note pre{margin:var(--space-2) 0 0;color:var(--text-muted);font-size:var(--text-xs);line-height:1.5}.guide-output-note{background:color-mix(in srgb, var(--status-success) 9%, var(--surface-panel))}.guide-output-note>div{color:var(--status-success)}.guide-mistake-note{background:color-mix(in srgb, var(--accent-gold) 15%, var(--surface-panel))}.guide-mistake-note>div{color:color-mix(in srgb, var(--action-primary) 82%, var(--status-warning))}.guide-page-footer{justify-content:space-between;align-items:center;gap:var(--space-4);margin-top:var(--space-4);padding-top:var(--space-4);border-top:1px dashed color-mix(in srgb, var(--action-primary) 45%, var(--border-subtle));display:flex}.guide-page-footer p{max-width:64ch;color:var(--text-muted);font-size:var(--text-xs);margin:0;line-height:1.45}.guide-page-footer p strong{color:var(--text-strong)}.guide-page-footer button{flex:none;min-height:44px}.guide-empty-state{place-content:center;justify-items:center;gap:var(--space-3);text-align:center;min-height:100%;color:var(--text-muted);display:grid}.guide-empty-state h3{color:var(--text-strong);font-size:var(--text-xl)}.guide-empty-state p{max-width:32rem;margin:0;line-height:1.55}.guide-footer-actions{gap:var(--space-2);flex:none;display:flex}.practice-lab{border:1px solid color-mix(in srgb, var(--status-success) 40%, var(--border-subtle));border-radius:var(--radius-md);background:color-mix(in srgb, var(--surface-panel) 97%, transparent);width:min(1120px,100%);max-height:min(820px,100dvh - 2rem);box-shadow:var(--shadow-panel);outline:0;grid-template-rows:auto minmax(0,1fr);display:grid;position:relative;overflow:hidden}.practice-lab-header{align-items:center;gap:var(--space-4);padding:var(--space-4) var(--space-5) var(--space-4);border-bottom:1px solid var(--border-subtle);background:var(--surface-panel);grid-template-columns:auto minmax(0,1fr) auto;display:grid}.practice-lab-header h2{font-size:var(--text-xl)}.practice-lab-header p:not(.eyebrow){max-width:68ch;margin:var(--space-1) 0 0;color:var(--text-muted);font-size:var(--text-sm)}.practice-lab-body{min-height:0;padding:var(--space-5);scrollbar-width:thin;overflow-y:auto}.practice-language-tabs{gap:var(--space-2);padding:2px 2px var(--space-2);scrollbar-width:thin;display:flex;overflow-x:auto}.practice-language-tabs button{min-height:42px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-md);flex:none}.practice-language-tabs button.active{background:var(--surface-selected);color:var(--text-on-selected);box-shadow:none}.practice-language-tabs small{opacity:.7;font-size:var(--text-2xs)}.practice-lab-toolbar{justify-content:space-between;align-items:end;gap:var(--space-4);margin:var(--space-3) 0 var(--space-4);display:flex}.practice-lab-toolbar h3{font-family:var(--font-ui);font-size:var(--text-xl);margin:0}.practice-lab-toolbar .guide-search{width:min(320px,100%)}.practice-tier-progress{gap:var(--space-3);margin-bottom:var(--space-3);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.practice-tier-progress button{gap:var(--space-2);min-width:0;min-height:64px;padding:var(--space-3) var(--space-3);border-radius:var(--radius-md);text-align:left;display:grid}.practice-tier-progress button.active{border-color:color-mix(in srgb, var(--status-success) 65%, var(--border-subtle));background:color-mix(in srgb, var(--status-success) 10%, var(--surface-panel));color:var(--text-strong)}.practice-tier-progress button>span{justify-content:space-between;align-items:center;gap:var(--space-2);display:flex}.practice-tier-progress small{color:var(--text-muted);font-size:var(--text-2xs)}.practice-tier-progress progress{border-radius:var(--radius-pill);background:color-mix(in srgb, var(--border-subtle) 72%, transparent);width:100%;height:.35rem;accent-color:var(--status-success);border:0;overflow:hidden}.practice-tier-progress progress::-webkit-progress-bar{border-radius:var(--radius-pill);background:color-mix(in srgb, var(--border-subtle) 72%, transparent)}.practice-tier-progress progress::-webkit-progress-value{border-radius:var(--radius-pill);background:var(--status-success)}.practice-filter-row{align-items:end;gap:var(--space-4);margin-bottom:var(--space-4);padding-bottom:var(--space-3);border-bottom:1px dashed var(--border-subtle);display:flex}.practice-filter-row fieldset{border:0;min-width:0;margin:0;padding:0}.practice-filter-row legend{margin-bottom:var(--space-1);color:var(--text-muted);font-size:var(--text-2xs);letter-spacing:.08em;text-transform:uppercase;font-weight:700}.practice-filter-row fieldset>div{gap:var(--space-1);padding:2px 2px var(--space-1);scrollbar-width:thin;display:flex;overflow-x:auto}.practice-filter-row button{min-height:38px;padding:var(--space-2) var(--space-3);border-radius:var(--radius-pill);font-size:var(--text-xs);flex:none}.practice-filter-row button.active{border-color:var(--text-strong);background:var(--text-strong);color:var(--surface-panel)}.practice-challenge-grid{gap:var(--space-3);grid-template-columns:repeat(3,minmax(0,1fr));display:grid}.practice-challenge-card{min-width:0;min-height:300px;padding:var(--space-4);border:1px solid var(--border-subtle);border-radius:var(--radius-md);background:linear-gradient(var(--border-subtle) 1px, transparent 1px), color-mix(in srgb, var(--surface-panel) 92%, var(--surface-field));background-size:100% 1.75rem;flex-direction:column;display:flex}.practice-challenge-card.complete{border-color:color-mix(in srgb, var(--status-success) 52%, var(--border-subtle));box-shadow:inset 0 4px 0 color-mix(in srgb, var(--status-success) 70%, transparent)}.practice-challenge-card.current{border-color:var(--action-primary);box-shadow:none}.practice-card-topline{align-items:center;gap:var(--space-2);display:flex}.practice-number{color:var(--action-primary);font-family:var(--font-mono);font-size:var(--text-xs);font-weight:700}.practice-difficulty,.practice-complete,.practice-current{border:1px solid var(--border-subtle);border-radius:var(--radius-pill);padding:var(--space-1) var(--space-2);color:var(--text-muted);font-size:var(--text-2xs);text-transform:uppercase;font-weight:700}.practice-complete{align-items:center;gap:var(--space-1);border-color:color-mix(in srgb, var(--status-success) 45%, var(--border-subtle));color:var(--status-success);margin-left:auto;display:inline-flex}.practice-current{border-color:color-mix(in srgb, var(--accent-gold) 62%, var(--border-subtle));color:var(--action-primary);margin-left:auto}.practice-complete+.practice-current{margin-left:0}.practice-challenge-card h3{margin:var(--space-5) 0 0;font-family:var(--font-ui);font-size:var(--text-xl);line-height:1.05}.practice-challenge-card>p{margin:var(--space-3) 0 0;color:var(--text-muted);font-size:var(--text-sm);line-height:1.5}.practice-concepts{gap:var(--space-1);margin:var(--space-3) 0 var(--space-4);flex-wrap:wrap;display:flex}.practice-concepts span{padding:var(--space-1) var(--space-2);border:1px dashed color-mix(in srgb, var(--action-primary) 40%, var(--border-subtle));color:var(--action-primary);font-size:var(--text-2xs);font-weight:600}.practice-challenge-card>button{width:100%;margin-top:auto}.practice-empty{place-content:center;justify-items:center;gap:var(--space-3);min-height:260px;color:var(--text-muted);grid-column:1/-1;display:grid}.practice-empty h3{color:var(--text-strong);margin:0}.practice-empty p{text-align:center;margin:0}.practice-session{margin-bottom:var(--space-4);border-color:color-mix(in srgb, var(--status-success) 40%, var(--border-subtle))}.practice-session.passed{border-color:var(--status-success)}.practice-session-heading{justify-content:space-between;align-items:center;gap:var(--space-4);min-height:72px;padding:var(--space-3) var(--space-4);display:flex}.practice-session-title,.practice-session-actions,.practice-session-mark{align-items:center;display:flex}.practice-session-title,.practice-session-actions{gap:var(--space-3)}.practice-session-mark{border-radius:var(--radius-md);background:var(--status-success);width:2.4rem;height:2.4rem;color:var(--on-status-success);flex:none;justify-content:center}.practice-session-title .eyebrow{margin-bottom:var(--space-1);color:var(--status-success);font-size:var(--text-xs)}.practice-chevron{transition:transform .18s}.practice-chevron.expanded{transform:rotate(180deg)}.practice-session-body{gap:var(--space-3) var(--space-4);padding:0 var(--space-4) var(--space-4);border-top:1px solid var(--border-subtle);grid-template-columns:minmax(0,1.15fr) minmax(260px,.85fr);display:grid}.practice-instructions{padding:var(--space-4) 0 0 var(--space-6);color:var(--text-strong);font-size:var(--text-sm);margin:0;line-height:1.55}.practice-instructions li+li{margin-top:var(--space-1)}.practice-hints{align-content:start;gap:var(--space-2);padding-top:var(--space-3);display:grid}.practice-hints p{align-items:start;gap:var(--space-2);color:var(--text-muted);font-size:var(--text-xs);margin:0;line-height:1.45;display:flex}.practice-hints p svg{color:var(--accent-gold);flex:none}.practice-hints button{justify-self:start}.practice-result{padding:var(--space-3);border:1px solid color-mix(in srgb, var(--action-primary) 35%, var(--border-subtle));border-radius:var(--radius-md);background:color-mix(in srgb, var(--action-primary) 7%, var(--surface-panel));grid-column:1/-1}.practice-result.success{border-color:color-mix(in srgb, var(--status-success) 46%, var(--border-subtle));background:color-mix(in srgb, var(--status-success) 8%, var(--surface-panel))}.practice-result-heading{align-items:center;gap:var(--space-2);color:var(--action-primary);display:flex}.practice-result.success .practice-result-heading{color:var(--status-success)}.practice-result ul{gap:var(--space-1);margin:var(--space-2) 0 0;padding:0;list-style:none;display:grid}.practice-result li{align-items:center;gap:var(--space-2);color:var(--text-muted);font-size:var(--text-xs);display:flex}.practice-result li.passed{color:var(--status-success);font-weight:600}.practice-output-comparison{gap:var(--space-1);margin-top:var(--space-3);color:var(--text-muted);font-size:var(--text-xs);display:grid}.practice-output-comparison code{color:var(--text-strong)}.practice-next-step{justify-content:space-between;align-items:center;gap:var(--space-4);margin-top:var(--space-3);padding-top:var(--space-3);border-top:1px dashed color-mix(in srgb, var(--status-success) 45%, var(--border-subtle));display:flex}.practice-next-step>div:first-child{gap:3px;min-width:0;display:grid}.practice-next-step span{color:var(--text-muted);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;font-weight:700}.practice-next-step strong{overflow-wrap:anywhere}.practice-next-actions{gap:var(--space-2);flex:none;display:flex}.practice-check-row{justify-content:space-between;align-items:center;gap:var(--space-4);padding-top:var(--space-3);border-top:1px dashed var(--border-subtle);grid-column:1/-1;display:flex}.practice-check-row p{color:var(--text-muted);font-size:var(--text-xs);margin:0}.learning-sidecar .guide-layout{grid-template-rows:auto minmax(0,1fr);grid-template-columns:1fr;min-height:100%;display:grid}.learning-sidecar .guide-index{gap:var(--space-1) var(--space-2);padding:var(--space-3);border-right:0;border-bottom:1px solid var(--border-subtle);grid-template-columns:minmax(0,1fr) auto;display:grid}.learning-sidecar .guide-result-count{font-size:var(--text-2xs);text-align:right;align-self:center;margin:0}.learning-sidecar .guide-topic-list{gap:var(--space-1);scroll-snap-type:x proximity;grid-column:1/-1;padding:0 0 2px;display:flex;overflow-x:auto}.learning-sidecar .guide-topic-list button{scroll-snap-align:start;grid-template-columns:auto auto;width:auto;min-width:max-content;min-height:42px}.learning-sidecar .guide-page{padding:var(--space-3);overflow:visible}.learning-sidecar .guide-page-heading{display:block}.learning-sidecar .guide-page-heading h3{font-size:var(--text-xl)}.learning-sidecar .guide-topic-stamp{max-width:100%;margin-top:var(--space-2);text-align:left;display:inline-block}.learning-sidecar .guide-notes-grid{grid-template-columns:1fr}.learning-sidecar .guide-page-footer{flex-direction:column;align-items:stretch}.learning-sidecar .guide-footer-actions{grid-template-columns:1fr;display:grid}.learning-sidecar .guide-footer-actions button{width:100%}.learning-sidecar .practice-lab-body{padding:var(--space-3);overflow:visible}.learning-sidecar .practice-lab-toolbar{margin-top:var(--space-2);flex-direction:column;align-items:stretch}.learning-sidecar .practice-lab-toolbar .guide-search{width:100%}.learning-sidecar .practice-filter-row{align-items:stretch;gap:var(--space-3);flex-direction:column}.learning-sidecar .practice-challenge-grid{grid-template-columns:1fr}.learning-sidecar .practice-challenge-card{min-height:270px}.learning-coach-panel{padding:var(--space-3)}.learning-coach-panel .error-coach{border:1px solid var(--status-warning-border);border-radius:var(--radius-md)}.learning-coach-context{margin:0 0 var(--space-3);color:var(--text-muted);font-size:var(--text-xs);font-weight:600}.learning-coach-empty{place-content:center;justify-items:center;gap:var(--space-3);min-height:330px;padding:var(--space-6);color:var(--text-muted);text-align:center;display:grid}.learning-coach-empty h3{color:var(--text-strong);font-family:var(--font-ui);font-size:var(--text-xl);margin:0}.learning-coach-empty p{max-width:28rem;margin:0;line-height:1.55}.modal-header{justify-content:space-between;gap:var(--space-4);align-items:start;display:flex}.modal-header .eyebrow{margin-bottom:var(--space-1)}.modal-action-grid,.confirm-actions{gap:var(--space-3);margin-top:var(--space-4);display:grid}.modal-action-grid button,.confirm-actions button{width:100%}.copy-project-sheet{width:min(520px,100%);max-height:calc(100dvh - 2rem);overflow:auto}.copy-destination-list{gap:var(--space-3);margin:var(--space-4) 0 0;border:0;padding:0;display:grid}.copy-destination-list legend{margin-bottom:var(--space-2);color:var(--text-muted);font-size:var(--text-xs);letter-spacing:.08em;text-transform:uppercase;font-weight:700}.copy-destination{align-items:start;gap:var(--space-3);min-height:58px;padding:var(--space-3) var(--space-3);border:1px solid var(--border-subtle);border-radius:var(--radius-lg);background:var(--surface-field);cursor:pointer;grid-template-columns:auto minmax(0,1fr);display:grid}.copy-destination.active{border-color:var(--action-primary);box-shadow:0 0 0 2px color-mix(in srgb, var(--action-primary) 18%, transparent)}.copy-destination input{width:1.1rem;height:1.1rem;accent-color:var(--action-primary);margin:2px 0 0}.copy-destination span{gap:var(--space-1);display:grid}.copy-destination small{color:var(--text-muted);line-height:1.35}.domain-move-instructions,.transfer-callout{background:var(--status-warning-surface);border:1px solid var(--status-warning-border);border-radius:var(--radius-lg);color:var(--text-strong);margin:var(--space-4) 0 0;padding:var(--space-3) var(--space-4);line-height:1.5}.domain-move-instructions ol{margin:var(--space-2) 0 0;padding-left:var(--space-5)}.domain-move-instructions a{color:var(--status-success);font-weight:600}.confirm-copy{color:var(--text-muted);margin:var(--space-3) 0 0;line-height:1.5}.file-path-field{gap:var(--space-1);margin-top:var(--space-4);display:grid}.file-path-field span{color:var(--text-muted);font-size:var(--text-xs);font-weight:700}.form-error{color:var(--status-danger);font-size:var(--text-sm);margin:var(--space-2) 0 0;font-weight:600}@media (width<=980px){.classroom-review-filters{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=640px),(height<=500px) and (width<=950px) and (orientation:landscape){.student-grid{padding:var(--space-3);grid-template-columns:1fr}.people-panel,.classroom-review-panel{padding:var(--space-3)}.classroom-review-intro{grid-template-columns:1fr;align-items:stretch;display:grid}.classroom-review-filters{grid-template-columns:1fr}.classroom-review-updated{white-space:normal}.classroom-review-open,.classroom-review-intro button{justify-content:center;width:100%}.member-count{white-space:normal}.member-project-list{display:grid}.invite-accept-panel,.invite-form,.section-row{grid-template-columns:1fr;align-items:stretch}.invite-accept-panel,.section-row{flex-direction:column}.invite-auth-actions,.invite-actions,.member-actions,.invite-row button,.member-actions button,.member-role-select{justify-content:stretch;width:100%}.sql-runner-actions{grid-template-columns:repeat(2,minmax(0,1fr));width:100%;display:grid}.sql-runner-actions button{min-width:0}.sql-workspace-map-actions{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.sql-workspace-map-actions button{min-width:0}.desktop-hero-actions{display:none}}.project-feedback{margin-bottom:var(--space-4);padding:var(--space-4)}.feedback-header{align-items:flex-start}.project-feedback-compact{margin-bottom:var(--space-2);padding:0}.project-feedback-compact>summary{border-radius:inherit;cursor:pointer;align-items:center;gap:var(--space-2);min-height:var(--control-lg);padding:var(--space-1) var(--space-2) var(--space-1) var(--space-3);list-style:none;display:flex}.project-feedback-compact>summary::-webkit-details-marker{display:none}.project-feedback-compact>summary:active{background:var(--surface-sunken)}.project-feedback-compact>summary h2{font-size:var(--text-sm);align-items:center;gap:var(--space-2);flex:auto;min-width:0;margin:0;display:inline-flex}.project-feedback-compact .feedback-count{min-height:1.75rem}.feedback-disclosure-icon{color:var(--text-muted);flex:none;transition:transform .16s}.project-feedback-compact[open] .feedback-disclosure-icon{transform:rotate(180deg)}.project-feedback-compact[open]>summary{border-bottom:1px solid var(--border-subtle);border-bottom-right-radius:0;border-bottom-left-radius:0}.feedback-compact-body{padding:var(--space-3)}.feedback-compact-body>.helper-text{margin:0}@media (prefers-reduced-motion:reduce){.feedback-disclosure-icon{transition:none}}.feedback-count{background:color-mix(in srgb, var(--status-success) 12%, var(--surface-panel));border:1px solid color-mix(in srgb, var(--status-success) 30%, var(--border-subtle));border-radius:var(--radius-pill);color:var(--status-success);font-size:var(--text-xs);min-height:2rem;padding:var(--space-1) var(--space-3);white-space:nowrap;align-items:center;font-weight:600;display:inline-flex}.feedback-list{gap:var(--space-3);margin-top:var(--space-4);max-height:24rem;padding-right:var(--space-1);display:grid;overflow:auto}.feedback-comment{background:color-mix(in srgb, var(--surface-panel) 90%, var(--status-success) 10%);border:1px solid var(--border-subtle);border-left:3px solid var(--status-success);border-radius:var(--radius-md);padding:var(--space-3)}.feedback-comment.resolved{border-left-color:var(--text-muted);opacity:.72}.feedback-comment>p{margin:var(--space-3) 0;white-space:pre-wrap;line-height:1.6}.feedback-comment-meta{align-items:flex-start;gap:var(--space-4);justify-content:space-between;display:flex}.feedback-comment-meta>div{align-items:center;gap:var(--space-2);flex-wrap:wrap;display:flex}.feedback-comment-meta span,.feedback-comment-meta time,.feedback-location{color:var(--text-muted);font-size:var(--text-xs)}.feedback-comment-meta span{border:1px solid var(--border-subtle);border-radius:var(--radius-pill);padding:2px var(--space-2);text-transform:capitalize}.feedback-location{font-family:var(--font-mono);font-weight:700}.feedback-form{border-top:1px solid var(--border-subtle);gap:var(--space-3);margin-top:var(--space-4);padding-top:var(--space-4);display:grid}.feedback-form label{gap:var(--space-2);display:grid}.feedback-form label>span{color:var(--text-muted);font-size:var(--text-xs);align-items:center;gap:var(--space-1);font-weight:600;display:inline-flex}.feedback-form textarea{resize:vertical;min-height:6.5rem}.feedback-reference-row{align-items:end;gap:var(--space-3);grid-template-columns:minmax(12rem,1fr) minmax(6rem,8rem) auto;display:grid}.feedback-reference-row>label{min-width:0}.feedback-reference-row select,.feedback-reference-row input{width:100%;min-width:0}.feedback-error{color:var(--status-danger);font-size:var(--text-sm);margin:0;font-weight:700}@media (width<=720px){.feedback-reference-row{grid-template-columns:1fr 7rem}.feedback-reference-row button{grid-column:1/-1;width:100%}.feedback-comment-meta{align-items:flex-start;gap:var(--space-2);flex-direction:column}}@media (width<=640px),(height<=500px) and (width<=950px) and (orientation:landscape){.language-guide{width:100vw;height:100dvh;box-shadow:none;border:0;border-radius:0}.language-guide:before,.language-guide:after{display:none}.guide-header{min-height:86px;padding:max(.7rem, env(safe-area-inset-top)) .75rem .7rem;grid-template-columns:auto minmax(0,1fr) auto}.guide-heading-mark{border-radius:var(--radius-md);width:2.45rem;height:2.45rem;box-shadow:none}.guide-header h2{font-size:var(--text-lg)}.guide-header p:not(.eyebrow){margin-top:var(--space-1);font-size:var(--text-xs);-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.25;display:-webkit-box;overflow:hidden}.guide-close-button{min-width:44px;min-height:44px}.guide-layout{grid-template-rows:auto minmax(0,1fr);grid-template-columns:1fr}.guide-index{gap:var(--space-1) var(--space-2);padding:var(--space-2) var(--space-3) var(--space-2);border-right:0;border-bottom:1px solid var(--border-subtle);background-size:100% 1.6rem;grid-template-rows:auto auto;grid-template-columns:minmax(0,1fr) auto}.guide-search{min-height:44px}.guide-result-count{font-size:var(--text-2xs);text-align:right;align-self:center;margin:0}.guide-topic-list{gap:var(--space-2);scroll-snap-type:x proximity;grid-column:1/-1;padding:0 0 2px;display:flex;overflow-x:auto}.guide-topic-list button{scroll-snap-align:start;grid-template-columns:auto auto;width:auto;min-width:max-content;min-height:42px}.guide-page{padding:.9rem .75rem calc(1rem + env(safe-area-inset-bottom))}.guide-page-heading{display:block}.guide-page-heading h3{font-size:var(--text-xl)}.guide-page-heading>div>p:not(.eyebrow){margin-top:var(--space-2);font-size:var(--text-sm);line-height:1.5}.guide-topic-stamp{max-width:100%;margin-top:var(--space-3);text-align:left;display:inline-block}.guide-notes-grid{grid-template-columns:1fr}.guide-page-footer{flex-direction:column;align-items:stretch}.guide-footer-actions{grid-template-columns:1fr;display:grid}.guide-page-footer button,.guide-footer-actions{width:100%}.practice-lab{width:100vw;height:100dvh;max-height:none;box-shadow:none;border:0;border-radius:0}.practice-lab-header{min-height:86px;padding:max(.7rem, env(safe-area-inset-top)) .75rem .7rem}.practice-lab-header .guide-heading-mark{width:2.45rem;height:2.45rem}.practice-lab-header h2{font-size:var(--text-lg)}.practice-lab-header p:not(.eyebrow){font-size:var(--text-xs);-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:1.25;display:-webkit-box;overflow:hidden}.practice-lab-body{padding:.7rem .7rem calc(1rem + env(safe-area-inset-bottom))}.practice-language-tabs{z-index:2;padding:var(--space-3) var(--space-3) var(--space-2);background:color-mix(in srgb, var(--surface-panel) 96%, transparent);margin:-.1rem -.7rem 0;position:sticky;top:-.7rem}.practice-lab-toolbar{margin-top:var(--space-2);flex-direction:column;align-items:stretch}.practice-lab-toolbar .guide-search{width:100%}.practice-tier-progress{gap:var(--space-2)}.practice-tier-progress button{min-height:68px;padding:var(--space-2)}.practice-filter-row{align-items:stretch;gap:var(--space-3);flex-direction:column}.practice-filter-row button{min-height:44px}.practice-challenge-grid{grid-template-columns:1fr}.practice-challenge-card{min-height:270px}.practice-session{margin-bottom:var(--space-3)}.practice-session-heading{padding:var(--space-3);align-items:flex-start}.practice-session-title{align-items:flex-start}.practice-session-actions .ghost.compact{min-height:44px;padding:var(--space-2) var(--space-2);font-size:var(--text-xs)}.practice-session-body{padding:0 var(--space-3) var(--space-3);grid-template-columns:1fr}.practice-check-row{flex-direction:column;align-items:stretch}.practice-check-row button{width:100%}.practice-next-step,.practice-next-actions{flex-direction:column;align-items:stretch}.practice-next-actions button{width:100%}.error-coach{padding:var(--space-3)}.error-coach button{width:100%;min-height:44px}.learning-sidecar .guide-page,.learning-sidecar .practice-lab-body,.learning-coach-panel{padding-bottom:calc(1rem + env(safe-area-inset-bottom))}}.share-confirm-copy p{margin:var(--space-2) 0;line-height:1.5}.share-confirm-copy strong{overflow-wrap:anywhere}.share-confirm-copy ul{margin:var(--space-2) 0;padding-left:var(--space-5);line-height:1.55}.segmented button.active,.segmented button[aria-pressed=true],.project-view-toggle button.active,.learning-sidecar-tabs button.active{border-color:var(--border-subtle);background:var(--surface-panel);color:var(--text-strong);box-shadow:0 1px 2px #14110f1f}[data-theme=dark] .segmented button.active,[data-theme=dark] .segmented button[aria-pressed=true],[data-theme=dark] .project-view-toggle button.active,[data-theme=dark] .learning-sidecar-tabs button.active{background:var(--surface-code-raised)}@media (width<=640px),(height<=500px) and (width<=950px) and (orientation:landscape){:root{--gutter:var(--space-2);--panel-padding:var(--space-4)}.app-shell{width:100%;padding:max(var(--space-2), env(safe-area-inset-top)) max(var(--space-2), env(safe-area-inset-right)) calc(76px + env(safe-area-inset-bottom)) max(var(--space-2), env(safe-area-inset-left));--nav-height:60px;--workspace-pane-height:max(260px, calc(100dvh - 252px - env(safe-area-inset-top) - env(safe-area-inset-bottom)))}.panel{border-radius:var(--radius-md)}.app-bar{gap:var(--space-2);min-height:52px;margin-bottom:var(--space-2);padding:var(--space-1) var(--space-1) var(--space-1) var(--space-3);border-radius:var(--radius-md)}.wordmark{font-size:var(--text-base)}.app-bar-project{padding-left:var(--space-2)}.project-title-input{min-width:0;padding:0 var(--space-1);flex:auto}.save-status,.app-bar-learning,.app-bar-account{display:none}.app-bar-actions{padding-left:var(--space-1);gap:2px}.app-bar-actions .app-bar-label{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app-bar-actions .app-bar-button,.app-bar .icon-button{width:var(--control-lg);min-height:var(--control-lg);padding:0}.project-title-input{min-height:var(--control-lg)}.app-bar-actions .share-button{background:0 0;border-color:#0000}.menu-phone-only{display:grid}.menu-phone-only .auth-actions,.menu-phone-only .auth-actions button,.menu-phone-only .cloud-pill{justify-content:center;width:100%}.popover-panel{top:auto;right:max(var(--space-2), env(safe-area-inset-right));bottom:calc(var(--nav-height) + var(--space-4) + env(safe-area-inset-bottom));left:max(var(--space-2), env(safe-area-inset-left));min-width:0;max-width:none;max-height:calc(100dvh - var(--nav-height) - 5rem - env(safe-area-inset-bottom));overscroll-behavior:contain;position:fixed;overflow-y:auto}.welcome-hero,.domain-move-banner .domain-move-actions a{display:none}.domain-move-banner{flex-direction:column;align-items:stretch}.layout-grid{display:block}.project-sidebar{padding:var(--space-3);position:static}.mobile-tab-home .layout-grid,.mobile-tab-code .project-sidebar,.mobile-tab-output .project-sidebar,.mobile-tab-history .project-sidebar,.mobile-tab-projects .main-workspace,.mobile-tab-code .output-panel,.mobile-tab-code .preview-panel,.mobile-tab-output .editor-panel,.mobile-tab-history .workspace,.mobile-tab-history .project-feedback,.mobile-tab-history .practice-session{display:none}.mobile-tab-history .checkpoint-page{gap:var(--space-3);padding:var(--space-4);display:grid}.mobile-home-panel{display:none}.mobile-tab-home .mobile-home-panel{align-content:start;gap:var(--space-5);padding:var(--space-5) var(--space-4);display:grid}.mobile-home-panel h2{margin-top:var(--space-1);font-family:var(--font-display);font-size:var(--text-xl);font-weight:700;line-height:var(--leading-tight);display:block}.mobile-home-actions{gap:var(--space-2);display:grid}.mobile-home-actions button{width:100%;min-height:var(--control-lg);justify-content:flex-start}.mobile-home-create>div{gap:var(--space-2);grid-template-columns:repeat(4,minmax(0,1fr));display:grid}.mobile-home-create button{min-width:0;padding:0 var(--space-1)}.mobile-home-stats{gap:var(--space-3);color:var(--text-muted);font-size:var(--text-xs);flex-wrap:wrap;margin:0;display:flex}.mobile-home-stats strong{color:var(--text-strong);font-variant-numeric:tabular-nums}.project-sidebar .sidebar-content{display:none}.mobile-project-menu{display:block}.mobile-tab-projects .mobile-project-menu summary{display:none}.mobile-tab-projects .project-sidebar{height:calc(100dvh - 76px - 60px - env(safe-area-inset-bottom) - env(safe-area-inset-top));flex-direction:column;min-height:0;display:flex;overflow:hidden}.mobile-tab-projects .mobile-project-content{gap:var(--space-3);min-height:0;padding-top:var(--space-3);flex-direction:column;flex:auto;display:flex;overflow:hidden}.mobile-tab-projects .project-list{flex:auto;min-height:0;max-height:none}.new-project-grid{grid-template-columns:repeat(4,minmax(0,1fr));margin:0}.new-project-grid button{min-width:0;padding:0 var(--space-1)}.project-card{min-height:56px}.workspace{display:block}.mobile-editor-guide-button{display:none}.file-tabs .mobile-editor-guide-button{border-color:var(--border-code);background:var(--surface-code-raised);color:var(--code-command);display:inline-flex}.editor-focus-button,.editor-copy-button span{display:none}.mobile-code-runbar{justify-content:space-between;gap:var(--space-2);padding:0 var(--space-2) var(--space-2);border-bottom:1px solid var(--border-code);background:var(--surface-code);display:flex}.mobile-code-runbar button{min-width:0;min-height:var(--control-lg)}.mobile-code-runbar button:not(.primary){border-color:var(--border-code);background:var(--surface-code-raised);color:var(--text-on-code)}.mobile-code-runbar .primary{flex:auto}.mobile-run-empty-hint{display:block}.app-shell.mobile-tab-code{--editor-height:auto;flex-direction:column;min-height:100dvh;display:flex}.mobile-tab-code .coding-stage,.mobile-tab-code .layout-grid,.mobile-tab-code .main-workspace,.mobile-tab-code .workspace,.mobile-tab-code .editor-panel{flex-direction:column;flex:auto;align-items:stretch;min-height:0;display:flex}.mobile-tab-code .editor-panel>section,.mobile-tab-code .editor-placeholder{flex:1 1 0;min-height:160px}.mobile-tab-code .oss-footer,.mobile-tab-output .oss-footer{display:none}.runner-header{padding:var(--space-2) var(--space-2) var(--space-2) var(--space-3)}.runner-title .helper-text{display:none}.terminal{padding:var(--space-3)}.sql-runner-actions{gap:var(--space-1)}.sql-workspace-map{gap:var(--space-2);grid-template-columns:1fr}.learning-sidecar-backdrop{display:block}.learning-sidecar{width:100vw;height:100dvh;box-shadow:none;border:0;border-radius:0}.learning-sidecar-header{padding:max(var(--space-3), env(safe-area-inset-top)) var(--space-3) var(--space-3)}.learning-sidecar-tabs{margin:var(--space-2) var(--space-3)}.learning-sidecar .guide-page,.learning-sidecar .practice-lab-body,.learning-coach-panel{padding-bottom:calc(var(--space-4) + env(safe-area-inset-bottom))}.modal-backdrop{padding:var(--space-2)}.modal-sheet{padding:var(--space-4)}.floating-dock{right:max(var(--space-2), env(safe-area-inset-right));left:max(var(--space-2), env(safe-area-inset-left));bottom:calc(var(--nav-height) + var(--space-4) + env(safe-area-inset-bottom));align-items:stretch;width:auto}.oss-footer{padding-bottom:var(--space-4);font-size:var(--text-xs)}.mobile-bottom-nav{z-index:50;right:max(var(--space-2), env(safe-area-inset-right));bottom:max(var(--space-2), env(safe-area-inset-bottom));left:max(var(--space-2), env(safe-area-inset-left));padding:var(--space-1);border:1px solid var(--border-code);border-radius:var(--radius-lg);background:var(--surface-code);box-shadow:var(--shadow-overlay);grid-template-columns:repeat(5,1fr);gap:2px;display:grid;position:fixed}.mobile-bottom-nav button{min-height:50px;padding:var(--space-1) 2px;border-radius:var(--radius-md);color:var(--text-on-code);font-size:var(--text-xs);background:0 0;border:0;justify-items:center;gap:2px;font-weight:600;display:grid}.mobile-bottom-nav button.active{background:var(--text-on-code);color:var(--surface-code)}}@media (hover:hover) and (pointer:fine) and (width<=640px){.mobile-bottom-nav button:hover:not(.active){background:var(--surface-code-raised)}}@media (height<=500px) and (width<=950px) and (orientation:landscape){.app-shell{--rail-width:72px;--nav-height:0px;--workspace-pane-height:max(160px, calc(100dvh - 26px - env(safe-area-inset-top) - env(safe-area-inset-bottom)));padding:max(var(--space-2), env(safe-area-inset-top)) max(var(--space-2), env(safe-area-inset-right)) max(var(--space-2), env(safe-area-inset-bottom)) calc(var(--rail-width) + var(--space-2) + max(var(--space-2), env(safe-area-inset-left)));--editor-hint-height:0px}.editor-keyboard-hint{display:none}.app-shell:has(.lesson-bar){--workspace-pane-height:max(140px, calc(100dvh - 78px - env(safe-area-inset-top) - env(safe-area-inset-bottom)))}.mobile-tab-code .app-bar,.mobile-tab-output .app-bar{display:none}.mobile-bottom-nav{top:max(var(--space-2), env(safe-area-inset-top));right:auto;bottom:max(var(--space-2), env(safe-area-inset-bottom));left:max(var(--space-2), env(safe-area-inset-left));width:var(--rail-width);grid-template-columns:1fr;grid-auto-rows:minmax(var(--control-lg), 1fr);align-content:stretch}.mobile-bottom-nav button{min-height:var(--control-lg);font-size:var(--text-2xs);align-content:center;padding:2px}.lesson-bar{margin:0 0 var(--space-2);box-shadow:none;background:0 0;border:0;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;padding:0}.lesson-context{padding:0 var(--space-1);order:0;grid-column:auto}.lesson-context .school-badge{display:none}.lesson-back,.lesson-copy{width:auto;min-height:var(--control-lg);padding:0 var(--space-3)}.lesson-bar .lesson-label-long{display:none}.lesson-bar .lesson-label-short{display:inline}.lesson-bar .lesson-copy{grid-column:3;justify-self:end}.editor-header{border-bottom:1px solid var(--border-code);background:var(--surface-code);flex-wrap:wrap;align-items:stretch;display:flex}.editor-header>.file-tabs,.editor-header>.file-browser,.editor-header>.mobile-code-runbar{border-bottom:0;min-height:52px}.editor-header>.file-tabs{flex:1 1 0;min-width:0}.editor-header>.file-browser{flex:none;align-items:center;display:flex}.editor-header>.file-browser[open]{border-top:1px solid var(--border-code);flex-basis:100%;order:1;display:block}.editor-header>.mobile-code-runbar{padding:0 var(--space-2) 0 0;flex:none;align-items:center}.file-browser:not([open]) summary{min-height:var(--control-lg);padding:0 var(--space-3)}.file-browser:not([open]) summary small{display:none}.editor-header button{min-height:var(--control-lg)}.editor-header button.icon-button{width:var(--control-lg)}.file-tabs>button,.mobile-code-runbar>button{flex-shrink:0}.file-tabs .mobile-editor-guide-button,.mobile-code-runbar button:not(.primary){width:var(--control-lg);gap:0;padding:0;font-size:0}.mobile-code-runbar .primary{padding:0 var(--space-4)}.mobile-tab-projects .project-sidebar{height:calc(100dvh - 76px - env(safe-area-inset-top) - env(safe-area-inset-bottom))}.mobile-tab-home .mobile-home-panel{grid-template-columns:1fr 1fr}.popover-panel{bottom:max(var(--space-2), env(safe-area-inset-bottom));left:calc(var(--rail-width) + var(--space-4) + env(safe-area-inset-left));max-height:calc(100dvh - var(--space-4) - env(safe-area-inset-top) - env(safe-area-inset-bottom))}.floating-dock{right:max(var(--space-2), env(safe-area-inset-right));bottom:max(var(--space-2), env(safe-area-inset-bottom));width:min(360px, calc(100vw - var(--rail-width) - 2 * var(--space-4)));align-items:flex-end;left:auto}}@media (width<=360px){.file-tab-list .entry-dot{display:none}.wordmark{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.app-bar-project{border-left:0;padding-left:0}.mobile-home-create>div,.new-project-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
