.al-practice{--grid-unit:.5rem;--grid-cell:1.5rem;--grid-major:6rem;--px:.25rem;--space-1:.25rem;--space-2:.5rem;--space-3:.75rem;--space-4:1rem;--space-5:1.25rem;--space-6:1.5rem;--space-7:2rem;--space-8:2.5rem;--space-9:3rem;--space-10:4rem;--space-12:6rem;--text-4xs:.625rem;--text-3xs:.6875rem;--text-2xs:.75rem;--text-xs:.875rem;--text-sm:1rem;--text-md:1.125rem;--text-lg:1.25rem;--text-xl:1.5rem;--text-2xl:1.75rem;--text-3xl:2.25rem;--text-4xl:2.75rem;--text-5xl:3.5rem;--control-h-lg:3rem;--control-h:2.5rem;--control-h-sm:2rem;--control-h-xs:1.5rem;--pad-compact:var(--space-2) var(--space-3);--pad-default:var(--space-3) var(--space-4);--pad-card-tight:var(--space-4);--pad-card:var(--space-6);--section-gap-tight:var(--space-5);--dot-sm:var(--space-2);--dot-md:var(--space-3);--avatar-sm:1.5rem;--avatar-md:2rem;--avatar-lg:var(--space-9);--mark-lg:2.75rem;--summary-toggle-h:1.125rem;--w-dropdown:22rem;--w-form:32rem;--w-form-lg:38rem;--w-panel:26rem;--panel-min-h:26rem;--nudge-1:1px;--nudge-2:2px;--icon-badge-sm:1.25rem;--icon-badge-md:1.5rem;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--navy:var(--al-navy);--navy-deep:#0a1757;--navy-soft:var(--al-ink);--navy-faint:var(--al-ink-soft);--coral:var(--al-danger);--coral-dark:#b30d33;--gold:var(--al-gold);--gold-deep:var(--al-gold-deep);--gold-on-ink:var(--al-gold);--white:#fff;--mist:var(--al-panel);--fog:var(--al-track);--sky:#2a78d6;--sky-deep:#1f68c0;--leaf:var(--al-success);--leaf-dark:#0b5e35;--amber:#e6b31a;--amber-dark:#8a6d1a;--text-strong:var(--navy);--text-muted:var(--navy-soft);--text-faint:var(--navy-faint);--text-on-accent:#fff;--text-on-ink:#fff;--surface-page:var(--white);--surface-alt:var(--mist);--surface-sunken:var(--fog);--surface-card:var(--white);--surface-ink:var(--navy);--surface-ink-hover:var(--navy-deep);--surface-hover-weak:#0510480a;--surface-hover:#0510480f;--surface-hover-strong:#05104814;--surface-grid:#0510480f;--header-bg:#ffffffd1;--scrim:#05104873;--line-soft:var(--al-gold-line);--line-strong:var(--al-gold-soft);--line-ink:var(--navy);--accent:var(--gold);--accent-strong:var(--gold-deep);--accent-text:var(--gold-deep);--accent-tint:#c2a24e1a;--accent-tint-strong:#c2a24e29;--accent-line:#c2a24e73;--accent-line-soft:#c2a24e40;--accent-ink:var(--navy);--accent-on-ink:var(--gold-on-ink);--accent-cool:var(--sky);--accent-cool-text:var(--sky-deep);--accent-cool-tint:#2a78d614;--accent-cool-tint-strong:#2a78d61f;--accent-cool-line:#2a78d64d;--success:var(--leaf);--success-dark:var(--leaf-dark);--success-bg:#2e9e5b1a;--success-border:#2e9e5b59;--success-surface:var(--leaf-dark);--warning:var(--amber);--warning-dark:var(--amber-dark);--warning-bg:#e6b31a1f;--warning-border:#e6b31a59;--danger:var(--coral);--danger-strong:var(--coral-dark);--danger-text:var(--coral-dark);--danger-tint:#ee405514;--danger-tint-strong:#ee40551f;--danger-line:#ee40554d;--danger-line-soft:#ee405526;--danger-bg:#ee40551a;--danger-surface:var(--coral-dark);--focus-ring:var(--gold);--focus-outline:none;--focus-shadow:0 0 0 3px var(--focus-ring);--selection-bg:#c2a24e40;--shadow-card:0 2px 14px #0510480f;--shadow-float:0 12px 32px #0510482e;--lang-python:#3776ab;--lang-typescript:#3178c6;--lang-bash:#4eaa25;--lang-sql:#336791;--console-bg:#051048;--console-border:#16267a;--console-text:#e9ecfb;--console-muted:#c9cff0;--console-dim:#8f98cb;--console-expected:#c9cff0;--console-fail:#ff8fa8;--console-fail-soft:#ffc2cf;--console-pass:#8fe0b0;--console-pass-soft:#c4eed6;--console-hover:#ffffff08;--console-inset:#ffffff0a;--console-fail-bg:#ee40552e;--console-fail-line:#ee405540;--console-pass-bg:#2e9e5b2e;--console-pass-bg-soft:#2e9e5b14;--console-pass-line:#2e9e5b40;--ide-ground:#051048;--ide-band:#0a1757;--ide-line:#16267a;--ide-text:#e9ecfb;--ide-soft:#c9cff0;--ide-dim:#8f98cb;--ide-ok:#8fe0b0;--ide-fail:#ff8fa8;--ide-warn:#f0c674;--project-actions-h:64px;--viz-1:var(--sky);--viz-1-soft:#9ec5f4;--viz-step-1:#86b6ef;--viz-step-2:#5598e7;--viz-step-3:#2a78d6;--viz-step-4:#1c5cab;--viz-step-5:#104281;--viz-step-ink:#fff;--cat-architecture:#00a0a8;--cat-architecture-tint:#00a0a81a;--cat-backend:#2a78d6;--cat-backend-tint:#2a78d61a;--cat-data:#0e7a54;--cat-data-tint:#1baf7a1f;--cat-devops:#eb6834;--cat-devops-tint:#eb68341a;--cat-frontend:#b84a74;--cat-frontend-tint:#e87ba41f;--cat-ai-ml:#4a3aa7;--cat-ai-ml-tint:#4a3aa71a;--cat-infra:#008300;--cat-infra-tint:#0083001a;--cat-tools:#8f6f10;--cat-tools-tint:#eda1001f;--cat-security:#a15c2e;--cat-security-tint:#a15c2e1f;--cat-other:#667085;--cat-other-tint:#6670851a;--font-sans:var(--al-font-body), system-ui, sans-serif;--font-display:var(--al-font-body), system-ui, sans-serif;--font-mono:var(--al-font-mono), ui-monospace, monospace;--weight-display:800;--weight-heading:700;--weight-label:700;--weight-nav:700;--case-label:uppercase;--case-tech:none;--track-tech:0;--track-wide:.04em;--track-loose:.04em;--track-label:.04em;--track-caps:.04em;--track-soft:0;--track-snug:0;--track-tight:0;--track-display:-.01em;--radius-hair:1px;--radius-xs:.25rem;--radius-sm:.5rem;--radius-md:.75rem;--radius-pill:999px;--px-radius:50%;--px-rx:.43;--dot-radius:50%;--ornament-display:none;--tabs-rule:inset 0 -1px 0 var(--line-soft);--field-focus-line:var(--accent-line);--field-focus-shadow:0 0 0 3px var(--accent-tint-strong);--header-h-narrow:7rem;--on-light-display:block;--on-dark-display:none;--brand-light-display:var(--on-light-display);--brand-dark-display:var(--on-dark-display);--brand-grid-display:none;--container-width:1280px;--header-h:0px;--section-gap:var(--space-7);--ground-image:radial-gradient(60% 32rem at 78% -4%, #8f6e2b0f, transparent 70%), radial-gradient(48% 26rem at 8% 2%, #2a78d60b, transparent 72%), radial-gradient(circle at 1px 1px, var(--surface-grid) 1px, transparent 0);--ground-size:auto, auto, 1.75rem 1.75rem;--ground-position:0 0, 0 0, 0 0;--ground-repeat:no-repeat, no-repeat, repeat;--ground-dots-image:radial-gradient(circle at 1px 1px, var(--surface-grid) 1px, transparent 0);--ground-dots-size:1.75rem 1.75rem;--mark-tick:0;--index-display:none;--field-display:none;--bar-overlay:linear-gradient(90deg, var(--accent-strong), var(--accent));--bar-track-overlay:linear-gradient(var(--line-soft), var(--line-soft));--bar-radius:var(--radius-pill);--bar-cell:100%;--bar-pitch:100%;--bar-cell-v:100%;--bar-pitch-v:100%;--stat-bar-h:3px;--btn-bg:var(--accent);--btn-fg:var(--text-on-accent);--btn-hover-bg:var(--accent-strong);--btn-active-transform:scale(.98);--tab-active-bg:transparent;--tab-active-fg:var(--accent-text);--tab-active-line:inset 0 -2px 0 var(--accent);--seg-bg:var(--surface-alt);--seg-line:transparent;--seg-pad:var(--space-1);--seg-gap:var(--space-1);--seg-tab-radius:var(--radius-xs);--seg-active-bg:var(--surface-page);--seg-active-fg:var(--accent-text);--seg-active-shadow:-5px 5px 25px 5px #00286008, inset 0 0 0 1px var(--line-soft);--toggle-active-bg:var(--accent-tint);--toggle-active-fg:var(--accent-text);--card-hover-transform:translateY(-4px);--card-hover-line:var(--line-soft);--card-hover-shadow:0 2px 4px #0028600f, 0 22px 40px -20px #0028606b, 0 0 0 1px var(--card-accent-tint,var(--accent-tint));--float-line:var(--line-soft);--header-rule:inset 0 -1px 0 var(--line-soft);--header-divider:transparent;--header-button-bg:var(--surface-page);--header-button-line:var(--line-soft);--brand-filter:none;--wordmark-color:var(--gold);--nav-fg:var(--text-strong);--nav-active-fg:var(--accent-text);--nav-indicator:var(--accent);--page-head-rule:none;--accent-word-color:var(--accent);--accent-word-weight:800;--ease-spring:cubic-bezier(.32, 1.28, .48, 1);--ease-out:cubic-bezier(.16, 1, .3, 1);--dur-fast:.12s;--dur-base:.2s;--dur-lift:.32s;font-family:var(--font-sans);color:var(--text-strong);font-size:15px;line-height:1.5rem}.al-practice .marks{position:relative}.al-practice .marks:after,.al-practice .card:after{content:"";pointer-events:none;border-radius:inherit;--tick-color:var(--text-strong);background:linear-gradient(var(--tick-color), var(--tick-color)) 0 0 / var(--mark-tick) 1px no-repeat, linear-gradient(var(--tick-color), var(--tick-color)) 0 0 / 1px var(--mark-tick) no-repeat, linear-gradient(var(--tick-color), var(--tick-color)) 100% 0 / var(--mark-tick) 1px no-repeat, linear-gradient(var(--tick-color), var(--tick-color)) 100% 0 / 1px var(--mark-tick) no-repeat, linear-gradient(var(--tick-color), var(--tick-color)) 0 100% / var(--mark-tick) 1px no-repeat, linear-gradient(var(--tick-color), var(--tick-color)) 0 100% / 1px var(--mark-tick) no-repeat, linear-gradient(var(--tick-color), var(--tick-color)) 100% 100% / var(--mark-tick) 1px no-repeat, linear-gradient(var(--tick-color), var(--tick-color)) 100% 100% / 1px var(--mark-tick) no-repeat;opacity:0;transition:opacity var(--dur-base) var(--ease-out), transform var(--dur-base) var(--ease-out);position:absolute;inset:-1px;transform:scale(1.02)}.al-practice .marks:after,.al-practice .card:hover:after,.al-practice .card:focus-within:after{opacity:1;transform:none}.al-practice .marks-static:after{transition:none}.al-practice button:disabled{opacity:.45;cursor:not-allowed;box-shadow:none}.al-practice input:not([type=checkbox]):not([type=radio]),.al-practice select,.al-practice textarea{font-family:var(--font-sans);font-size:var(--text-xs)}.al-practice input::placeholder,.al-practice textarea::placeholder{color:var(--text-faint)}.al-practice .mono,.al-practice .tech{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.al-practice .tech{font-size:var(--text-3xs);letter-spacing:var(--track-tech);text-transform:var(--case-tech);color:var(--text-muted);line-height:1rem}.al-practice .eyebrow{align-items:center;gap:var(--space-2);font-family:var(--font-mono);font-size:var(--text-3xs);letter-spacing:var(--track-tech);text-transform:var(--case-tech);color:var(--text-muted);font-variant-numeric:tabular-nums;margin:0;line-height:1rem;display:inline-flex}.al-practice .eyebrow-part{align-items:center;gap:var(--space-2);display:inline-flex}.al-practice .eyebrow-sep{width:var(--px);height:var(--px);border-radius:var(--px-radius);background:currentColor;flex:none;display:inline-block}.al-practice .filter-bar{gap:var(--space-2);flex-wrap:wrap;min-width:0;margin-left:auto;display:flex}.al-practice .filter-search{align-items:center;gap:var(--space-2);width:14rem;min-width:9rem;height:var(--control-h);padding:0 var(--space-3);border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface-card);color:var(--text-muted);transition:border-color var(--dur-fast) ease, box-shadow var(--dur-fast) ease;display:flex}.al-practice .filter-search input{min-width:0;height:100%;font-size:var(--text-xs);font-family:var(--font-sans);color:var(--text-strong);background:0 0;border:none;outline:none;flex:1}.al-practice .filter-search:focus-within{border-color:var(--line-ink);box-shadow:0 0 0 1px var(--line-ink)}.al-practice .filter-search-kbd{font-family:var(--font-mono);font-size:var(--text-4xs);padding:0 var(--space-1);border:1px solid var(--line-soft);border-radius:var(--radius-xs);color:var(--text-faint);line-height:1rem}.al-practice .menu-select{flex:none;position:relative}.al-practice .menu-select-toggle{height:var(--control-h);padding:0 var(--space-3);gap:var(--space-2);font-size:var(--text-xs);font-family:var(--font-sans);text-transform:none;letter-spacing:normal;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface-card);color:var(--text-strong);box-shadow:none;transition:background-color var(--dur-fast) ease, border-color var(--dur-fast) ease;align-self:auto;font-weight:500;line-height:1.5rem}.al-practice .menu-select-toggle:hover:not(:disabled){background:var(--surface-alt);border-color:var(--line-ink)}.al-practice .menu-select-toggle:focus-visible{border-color:var(--line-ink);box-shadow:0 0 0 1px var(--line-ink);outline:none}.al-practice .menu-select-toggle[aria-expanded=true]{border-color:var(--line-ink)}.al-practice .menu-select-toggle:disabled{opacity:.5;cursor:not-allowed}.al-practice .menu-select-sm .menu-select-toggle{height:var(--control-h-sm);padding:0 var(--space-2);font-size:var(--text-2xs)}.al-practice .menu-select-icon{color:var(--text-muted);flex:none}.al-practice .scope-switch{align-items:center;gap:var(--space-3);height:var(--control-h);padding:0 var(--space-3);border-radius:var(--radius-xs);color:var(--text-muted);font-family:var(--font-sans);font-size:var(--text-xs);letter-spacing:normal;text-transform:none;white-space:nowrap;transition:background-color var(--dur-fast) ease, color var(--dur-fast) ease;background:0 0;border:none;flex:none;font-weight:500;display:inline-flex}.al-practice .scope-switch:hover{background:var(--surface-hover-weak);color:var(--text-strong)}.al-practice .scope-switch:focus-visible{box-shadow:0 0 0 1px var(--line-ink);outline:none}.al-practice .scope-switch[aria-checked=true]{color:var(--text-strong);font-weight:600}.al-practice .scope-switch-track{border-radius:var(--radius-xs);background:var(--surface-sunken);width:1.875rem;height:1rem;box-shadow:inset 0 0 0 1px var(--line-strong);transition:background-color var(--dur-fast) ease, box-shadow var(--dur-fast) ease;flex:none;position:relative}.al-practice .scope-switch-knob{border-radius:var(--dot-radius);background:var(--text-faint);width:.625rem;height:.625rem;transition:transform var(--dur-fast) var(--ease-out), background-color var(--dur-fast) ease;position:absolute;top:3px;left:3px}.al-practice .scope-switch[aria-checked=true] .scope-switch-track{background:var(--surface-ink);box-shadow:none}.al-practice .scope-switch[aria-checked=true] .scope-switch-knob{background:var(--text-on-ink);transform:translate(.875rem)}.al-practice .scope-switch-count{font-family:var(--font-mono);font-size:var(--text-3xs);color:var(--text-faint);font-variant-numeric:tabular-nums}.al-practice .scope-switch-sm{height:var(--control-h-sm);padding:0 var(--space-2);gap:var(--space-2);font-size:var(--text-2xs)}.al-practice .page-head-actions .scope-switch{height:var(--control-h-sm);padding:0 var(--space-3);border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface-card);font-size:var(--text-2xs)}.al-practice .page-head-actions .scope-switch:hover{border-color:var(--line-ink);background:var(--surface-alt)}.al-practice .field .menu-select-toggle,.al-practice .field .menu-select{width:100%}.al-practice .menu-select-value{text-align:left;white-space:nowrap;text-overflow:ellipsis;flex:1;overflow:hidden}.al-practice .menu-select-placeholder{color:var(--text-faint)}.al-practice .menu-select-list{top:calc(100% + var(--space-1));z-index:20;scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent;min-width:100%;max-height:18rem;padding:var(--space-1);background:var(--surface-card);border:1px solid var(--float-line);border-radius:var(--radius-md);box-shadow:var(--shadow-float);text-align:left;animation:pop-in var(--dur-base) var(--ease-out) both;flex-direction:column;display:flex;position:absolute;right:0;overflow-y:auto}.al-practice .menu-select-heading{padding:var(--space-2) var(--space-3) var(--space-1);font-family:var(--font-mono);font-size:var(--text-4xs);letter-spacing:var(--track-tech);text-transform:var(--case-tech);color:var(--text-muted);margin:0;font-weight:500}.al-practice .menu-select-item{justify-content:flex-start;gap:var(--space-2);height:var(--control-h-sm);padding:0 var(--space-3);font-size:var(--text-2xs);font-family:var(--font-sans);text-transform:none;letter-spacing:normal;white-space:nowrap;border-radius:var(--radius-xs);color:var(--text-strong);box-shadow:none;background:0 0;border:none;align-self:auto;font-weight:500}.al-practice .menu-select-item:hover{background:var(--surface-hover)}.al-practice .menu-select-item.is-active{color:var(--text-strong);background:var(--surface-alt);font-weight:600}.al-practice .menu-select-check{width:14px;color:var(--accent-text);flex:none}.al-practice .link-button,.al-practice button{justify-content:center;align-items:center;gap:var(--space-2);font-family:var(--font-display);font-size:var(--text-2xs);font-weight:var(--weight-label);text-transform:var(--case-label);letter-spacing:var(--track-label);height:var(--control-h);padding:0 var(--space-5);border-radius:var(--radius-sm);border:1px solid var(--btn-bg);background:var(--btn-bg);color:var(--btn-fg);cursor:pointer;transition:background var(--dur-fast) ease, border-color var(--dur-fast) ease, color var(--dur-fast) ease, transform var(--dur-fast) var(--ease-out), box-shadow var(--dur-fast) ease;align-self:flex-start;line-height:1rem;text-decoration:none;display:inline-flex}.al-practice .link-button:hover,.al-practice button:hover{background:var(--btn-hover-bg);border-color:var(--btn-hover-bg)}.al-practice .link-button:active,.al-practice button:active{transform:var(--btn-active-transform)}.al-practice .btn-accent,.al-practice .btn-submit{background:var(--al-navy);border-color:var(--al-navy);color:var(--al-white);font-family:var(--al-font-brand);letter-spacing:1.6px;text-transform:uppercase;font-size:12.5px;font-weight:800}.al-practice .btn-accent:hover,.al-practice .btn-submit:hover{background:var(--ide-band);border-color:var(--ide-band)}.al-practice .btn-secondary{background:var(--al-card);border:1px solid var(--al-navy);color:var(--al-navy);padding:0 var(--space-4);font-family:var(--al-font-brand);letter-spacing:1.6px;text-transform:uppercase;font-size:12.5px;font-weight:800}.al-practice .btn-secondary:hover{background:var(--al-panel);border-color:var(--al-navy);color:var(--al-navy)}.al-practice .btn-ghost{color:var(--text-muted);height:var(--control-h-sm);padding:0 var(--space-2);border-radius:var(--radius-xs);background:0 0;border-color:#0000;align-self:center;font-weight:600}.al-practice .btn-ghost:hover{background:var(--surface-hover);color:var(--text-strong);border-color:#0000}.al-practice .btn-danger{background:var(--surface-card);border:1px solid var(--danger-line);color:var(--danger-strong)}.al-practice .btn-danger:hover{background:var(--danger-bg);border-color:var(--danger-text)}.al-practice .btn-danger-solid{background:var(--danger);border-color:var(--danger-text);color:var(--text-on-accent)}.al-practice .btn-danger-solid:hover{background:var(--danger-strong);border-color:var(--danger-strong)}.al-practice .btn-arrow .lucide-arrow-right{transition:transform var(--dur-base) var(--ease-out)}.al-practice .btn-arrow:hover .lucide-arrow-right{transform:translateX(var(--nudge-2))}.al-practice .back-link{align-items:center;gap:var(--space-2);margin-bottom:var(--space-5);font-family:var(--font-mono);font-size:var(--text-3xs);letter-spacing:var(--track-tech);text-transform:var(--case-tech);color:var(--text-muted);text-decoration:none;display:inline-flex}.al-practice .back-link svg{transition:transform var(--dur-base) var(--ease-out)}.al-practice .back-link:hover{color:var(--text-strong)}.al-practice .back-link:hover svg{transform:translateX(calc(-1 * var(--nudge-2)))}.al-practice .field{gap:var(--space-2);flex-direction:column;display:flex}.al-practice .field>label,.al-practice .field>.field-label-row>label{align-items:center;gap:var(--space-1);font-family:var(--font-mono);font-size:var(--text-4xs);color:var(--text-muted);text-transform:var(--case-tech);letter-spacing:var(--track-tech);flex-wrap:wrap;font-weight:500;line-height:1rem;display:flex}.al-practice .field-required-mark{color:var(--accent-text)}.al-practice .field-optional{margin-left:var(--space-2);font-size:var(--text-4xs);letter-spacing:var(--track-tech);color:var(--text-faint);font-weight:400}.al-practice .field-required-legend{align-items:center;gap:var(--space-1);font-size:var(--text-3xs);color:var(--text-muted);margin:0;line-height:1rem;display:flex}.al-practice .field-hint{font-family:var(--font-sans);font-size:var(--text-3xs);text-transform:none;letter-spacing:normal;color:var(--text-muted);margin:0;font-weight:400;line-height:1rem}.al-practice p.field-hint{margin:0}.al-practice .field input,.al-practice .field select,.al-practice .field textarea{box-sizing:border-box;height:var(--control-h);padding:0 var(--space-3);font-size:var(--text-xs);font-family:var(--font-sans);text-transform:none;letter-spacing:normal;border-radius:var(--radius-sm);border:1px solid var(--line-strong);background:var(--surface-card);color:var(--text-strong);transition:border-color var(--dur-fast) ease, box-shadow var(--dur-fast) ease;font-weight:400}.al-practice .field textarea{height:auto;min-height:9rem;padding:var(--pad-compact);resize:vertical;font-family:var(--font-mono)}.al-practice .auto-textarea{resize:none;overflow-y:hidden}.al-practice .field textarea.auto-textarea{resize:none;min-height:0;font-family:var(--font-sans);line-height:1.5rem}.al-practice .field-count{font-family:var(--font-mono);font-size:var(--text-4xs);font-variant-numeric:tabular-nums;color:var(--text-muted);align-self:flex-end;line-height:1rem}.al-practice .field-label-row{justify-content:space-between;align-items:baseline;gap:var(--space-3);display:flex}.al-practice .field-label-row>label{min-width:0}.al-practice .field-label-row .field-count{flex:none;align-self:baseline}.al-practice .field-count-near{color:var(--warning-dark)}.al-practice .field-count-over{color:var(--accent-strong);font-weight:700}.al-practice .field input:focus,.al-practice .field select:focus,.al-practice .field textarea:focus{border-color:var(--field-focus-line);box-shadow:var(--field-focus-shadow);outline:none}.al-practice .field input[aria-invalid=true],.al-practice .field textarea[aria-invalid=true]{border-color:var(--danger-text)}.al-practice .checkbox-group{gap:var(--space-4);flex-wrap:wrap;display:flex}.al-practice .checkbox-inline{align-items:center;gap:var(--space-2);font-size:var(--text-xs);text-transform:none;letter-spacing:normal;cursor:pointer;font-weight:400;display:inline-flex}.al-practice .checkbox-inline input[type=checkbox]{cursor:pointer;width:auto;height:auto;accent-color:var(--text-strong)}.al-practice .add-use-case-form{gap:var(--space-5);margin:0 0 var(--space-7);border:1px solid var(--line-soft);background:var(--surface-card);padding:var(--space-6);border-radius:var(--radius-sm);grid-template-columns:repeat(2,1fr);display:grid}.al-practice .add-use-case-form .field-full{grid-column:1/-1}.al-practice .add-use-case-actions{gap:var(--space-3);grid-column:1/-1;display:flex}.al-practice .btn-run{box-shadow:none;background:var(--al-card);border:1px solid var(--al-navy);color:var(--al-navy);font-family:var(--al-font-brand);letter-spacing:1.6px;text-transform:uppercase;font-size:12.5px;font-weight:800}.al-practice .btn-run:hover{box-shadow:none;background:var(--al-panel);border-color:var(--al-navy)}.al-practice .btn-hint{box-shadow:none;height:var(--control-h-sm);padding:0 var(--space-4);font-size:var(--text-2xs);text-transform:none;letter-spacing:normal;background:var(--surface-alt);border:1px solid var(--line-soft);color:var(--text-strong);align-self:auto;font-weight:500}.al-practice .btn-hint:hover{box-shadow:none;background:var(--surface-sunken);border-color:var(--line-strong)}.al-practice .btn-hint:disabled{opacity:.5;cursor:default}.al-practice .mode-toggle{height:var(--control-h-sm);box-sizing:border-box;border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface-card);display:inline-flex;overflow:hidden}.al-practice .mode-toggle button{background:var(--surface-card);color:var(--text-muted);height:100%;padding:0 var(--space-3);font-size:var(--text-2xs);box-shadow:none;border:none;border-radius:0}.al-practice .mode-toggle button+button{box-shadow:inset 1px 0 0 var(--line-soft)}.al-practice .mode-toggle button:hover{background:var(--surface-alt);color:var(--text-strong)}.al-practice .mode-toggle button.active{background:var(--toggle-active-bg);color:var(--toggle-active-fg);box-shadow:none}.al-practice .freeze-button{width:var(--control-h-sm);height:var(--control-h-sm);background:var(--accent-cool-tint);border:1px solid var(--accent-cool-line);border-radius:var(--radius-xs);box-sizing:border-box;color:var(--accent-cool-text);flex:none;justify-content:center;align-self:center;padding:0}.al-practice .freeze-button:hover{background:var(--accent-cool-tint-strong);border-color:var(--accent-cool);color:var(--accent-cool-text)}.al-practice .freeze-button.frozen,.al-practice .freeze-button.frozen:disabled{background:var(--success-bg);color:var(--success-dark);border-color:var(--success-border);opacity:1;cursor:default}.al-practice .freeze-button:disabled:not(.frozen){background:var(--surface-alt);color:var(--text-muted);border-color:var(--line-strong);opacity:1}.al-practice .form-page-centered{max-width:var(--w-form);margin:0 auto}.al-practice .field-row{gap:var(--space-5);display:flex}.al-practice .field-row .field{flex:1;min-width:0}.al-practice .field-row .field-wide{flex:1.8}.al-practice .icon-button{height:var(--control-h-sm);width:var(--control-h-sm);color:var(--text-strong);border:1px solid var(--line-soft);border-radius:var(--radius-xs);text-transform:none;letter-spacing:normal;box-shadow:none;background:0 0;justify-content:center;align-self:auto;align-items:center;padding:0;font-weight:500;text-decoration:none;display:inline-flex}.al-practice .icon-button:hover{box-shadow:none;background:var(--surface-hover);border-color:var(--line-ink)}.al-practice .icon-button-quiet{height:var(--icon-badge-sm);width:var(--icon-badge-sm);color:var(--text-faint);transition:color var(--dur-base) ease, background var(--dur-base) ease;border:none}.al-practice .icon-button-quiet:hover,.al-practice .icon-button-quiet:focus-visible{color:var(--accent-text);background:var(--accent-tint)}.al-practice .icon-button-danger{color:var(--danger-strong);border-color:var(--danger-line)}.al-practice .icon-button-danger:hover{box-shadow:none;background:var(--danger-tint);border-color:var(--danger-text)}.al-practice .icon-button-success{color:var(--success-dark);border-color:var(--success-border)}.al-practice .icon-button-success:hover{box-shadow:none;background:var(--success-bg);border-color:var(--success)}.al-practice .control-compact{height:var(--control-h-sm);padding:0 var(--space-3);align-self:center}.al-practice .filter-feedback{font-family:var(--font-mono);font-size:var(--text-3xs);letter-spacing:var(--track-tech);text-transform:var(--case-tech);color:var(--text-muted);font-variant-numeric:tabular-nums;margin:0 0 var(--space-4);min-height:1rem;line-height:1rem}.al-practice .filter-feedback strong{color:var(--text-strong)}.al-practice .density-toggle{height:var(--control-h)}.al-practice .density-toggle button{padding:0 var(--space-3)}.al-practice .filter-search-clear{border-radius:var(--radius-xs);width:1.25rem;height:1.25rem;box-shadow:none;color:var(--text-muted);background:0 0;border:none;flex:none;align-self:center;padding:0}.al-practice .filter-search-clear:hover{background:var(--surface-hover);color:var(--text-strong);box-shadow:none}.al-practice .source-row>.pill,.al-practice .source-row>.icon-button{flex:none}.al-practice .toolbar{border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface-card);align-items:stretch;gap:0;display:flex}.al-practice .toolbar>*+*{box-shadow:inset 1px 0 0 var(--line-soft)}.al-practice .toolbar .filter-search,.al-practice .toolbar .menu-select-toggle,.al-practice .toolbar .mode-toggle,.al-practice .toolbar .scope-switch{height:calc(var(--control-h) - 2px);background:0 0;border:none;border-radius:0}.al-practice .toolbar .scope-switch:hover{background:var(--surface-hover-weak)}.al-practice .toolbar .scope-switch:focus-visible{box-shadow:inset 0 -2px 0 var(--line-ink)}.al-practice .toolbar .filter-search{flex:1;width:auto;min-width:12rem}.al-practice .toolbar .filter-search:focus-within,.al-practice .toolbar .menu-select-toggle:focus-visible{box-shadow:inset 0 -2px 0 var(--line-ink)}.al-practice .toolbar .mode-toggle button{padding:0 var(--space-3)}.al-practice .toolbar .link-button{height:calc(var(--control-h) - 2px);border-radius:0 var(--radius-xs) var(--radius-xs) 0;border:none;align-self:stretch}.al-practice .status-pill,.al-practice .pill{align-items:center;gap:var(--space-2);border-radius:var(--radius-pill);height:auto;font-family:var(--font-sans);letter-spacing:normal;text-transform:none;white-space:nowrap;background:var(--al-gold-wash);color:var(--al-gold-deep);box-shadow:none;font-variant-numeric:tabular-nums;padding:3px 10px;font-size:12px;font-weight:800;line-height:1rem;display:inline-flex}.al-practice .status-pill{margin-left:auto}.al-practice .status-pill.fail{background:var(--al-danger-wash);color:var(--al-danger)}.al-practice .status-pill.ok{background:var(--al-success-wash);color:var(--al-success)}.al-practice .status-pill.warn{background:var(--al-gold-wash);color:var(--al-gold-deep)}.al-practice .status-banner{font-size:var(--text-xs);padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);margin:0 0 var(--space-4);font-weight:500}.al-practice .status-banner-pending{color:var(--warning-dark);background:var(--warning-bg);box-shadow:inset 2px 0 0 var(--warning), inset 0 0 0 1px var(--warning-border)}.al-practice .status-banner-rejected{color:var(--danger-strong);background:var(--danger-bg);box-shadow:inset 2px 0 0 var(--danger), inset 0 0 0 1px var(--danger-line)}.al-practice .level-dot-target{width:var(--control-h-xs);height:var(--control-h-xs);border-radius:var(--radius-xs);cursor:default;justify-content:center;align-items:center;text-decoration:none;display:inline-flex}.al-practice a.level-dot-target{cursor:pointer}.al-practice .level-dot-target:hover{background:var(--surface-hover)}.al-practice .level-dot{width:var(--dot-md);height:var(--dot-md);border-radius:var(--dot-radius);box-shadow:inset 0 0 0 1px var(--line-strong);flex:none}.al-practice .level-dot-done{background:var(--text-strong);box-shadow:none}.al-practice .level-dot-in-progress{background:linear-gradient(90deg, var(--text-strong) 50%, transparent 50%);box-shadow:inset 0 0 0 1px var(--text-strong)}.al-practice .level-dot-not-started{box-shadow:inset 0 0 0 1px var(--line-strong);background:0 0}.al-practice .level-dot-locked,.al-practice .level-dot-absent{box-shadow:none;border:1px dashed var(--line-strong);background:0 0}.al-practice .level-dot-absent{opacity:.5;border-style:dotted}.al-practice .category-tag{width:var(--icon-badge-sm);height:var(--icon-badge-sm);border-radius:var(--dot-radius);background:var(--card-accent-tint,var(--accent-tint));color:var(--card-accent,var(--accent));box-shadow:inset 0 0 0 1px var(--card-accent-tint,var(--accent-tint));cursor:default;flex:none;justify-content:center;align-items:center;display:inline-flex}.al-practice .stat{align-items:center;gap:var(--space-1);cursor:default;display:inline-flex}.al-practice .pill .dot{width:var(--px);height:var(--px);border-radius:var(--px-radius);background:currentColor;flex-shrink:0}.al-practice .pill-warning .dot{animation:2.4s ease-in-out infinite pill-pulse}.al-practice .pill-success{background:var(--success-bg);color:var(--success-dark);box-shadow:inset 0 0 0 1px var(--success-border)}.al-practice .pill-warning{background:var(--warning-bg);color:var(--warning-dark);box-shadow:inset 0 0 0 1px var(--warning-border)}.al-practice .pill-danger{background:var(--danger-bg);color:var(--danger-strong);box-shadow:inset 0 0 0 1px var(--danger-line)}.al-practice .pill-neutral{background:var(--surface-alt);color:var(--text-muted);box-shadow:inset 0 0 0 1px var(--line-soft)}.al-practice .pill-outline{color:var(--text-muted);box-shadow:inset 0 0 0 1px var(--line-strong);background:0 0}.al-practice .pill-ink{background:var(--surface-ink);color:var(--text-on-ink);box-shadow:none}.al-practice .muted-inline{font-size:var(--text-xs);color:var(--text-muted)}.al-practice .stat-tiles{gap:var(--space-4);margin-bottom:var(--section-gap);grid-template-columns:repeat(auto-fit,minmax(11rem,1fr));display:grid}.al-practice .stat-tile{gap:var(--space-1);padding:var(--pad-card-tight) var(--pad-card-tight) var(--space-6);overflow:hidden}.al-practice .stat-tile:before{content:"";height:var(--stat-bar-h);background:var(--bar-track-overlay), repeating-linear-gradient(90deg, var(--surface-hover) 0 var(--px), transparent var(--px) calc(var(--px) * 2));border-radius:var(--bar-radius);position:absolute;bottom:0;left:0;right:0;-webkit-mask:linear-gradient(currentColor,currentColor) 0 0/100% 100% no-repeat;mask:linear-gradient(currentColor,currentColor) 0 0/100% 100% no-repeat}.al-practice .stat-tile .stat-tile-bar{height:var(--stat-bar-h);width:calc(var(--tile-ratio,0) * 100%);background:var(--bar-overlay), repeating-linear-gradient(90deg, var(--text-strong) 0 var(--px), transparent var(--px) calc(var(--px) * 2));border-radius:var(--bar-radius);transition:width .6s var(--ease-out);position:absolute;bottom:0;left:0}.al-practice .stat-tile-value{font-family:var(--font-mono);font-size:var(--text-2xl);color:var(--text-strong);font-variant-numeric:tabular-nums;letter-spacing:var(--track-tight);font-weight:500;line-height:2rem}.al-practice .stat-tile-label{align-items:center;gap:var(--space-1);font-size:var(--text-2xs);color:var(--text-strong);font-weight:600;display:inline-flex}.al-practice .stat-tile-hint{font-family:var(--font-mono);font-size:var(--text-4xs);letter-spacing:var(--track-label);text-transform:var(--case-tech);color:var(--text-muted);font-variant-numeric:tabular-nums;line-height:1rem}.al-practice .stat-tile-gauge{align-items:center;gap:var(--space-4);flex-direction:row}.al-practice .stat-gauge{grid-template-columns:repeat(4, var(--space-3));grid-auto-rows:var(--space-3);gap:var(--nudge-2);flex:none;display:grid;position:relative}.al-practice .stat-gauge i{border-radius:var(--px-radius);background:var(--surface-hover-strong);display:block}.al-practice .stat-gauge i.is-on{background:var(--text-strong)}.al-practice .stat-gauge i.is-half{background:linear-gradient(90deg, var(--text-strong) 50%, var(--surface-hover-strong) 50%)}.al-practice .stat-gauge-value{font-family:var(--font-mono);font-size:var(--text-lg);font-variant-numeric:tabular-nums;color:var(--text-strong);font-weight:500}.al-practice .stat-gauge-caption{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.al-practice .status-pill .dot{width:var(--px);height:var(--px);background:currentColor}.al-practice .stat-tile-delta{align-items:center;gap:var(--space-1);margin-top:var(--space-2);font-size:var(--text-3xs);font-weight:500;font-family:var(--font-mono);font-variant-numeric:tabular-nums;color:var(--text-muted);display:inline-flex}.al-practice .stat-tile-delta-up{color:var(--success-dark)}.al-practice .stat-tile-delta a{color:var(--text-strong);text-underline-offset:2px;font-weight:600;text-decoration:underline}.al-practice .stat-tile-delta a:hover{color:var(--accent-text)}.al-practice .pill-new{background:var(--surface-ink);color:var(--text-on-ink);box-shadow:none}.al-practice .level-mark{min-width:var(--icon-badge-sm);height:var(--icon-badge-sm);border-radius:var(--radius-xs);background:var(--level-tint);color:var(--level-color);box-shadow:inset 0 0 0 1px var(--level-ring);font-family:var(--font-mono);font-size:var(--text-4xs);font-variant-numeric:tabular-nums;vertical-align:-.25em;flex:none;justify-content:center;align-items:center;padding:0 3px;font-weight:700;display:inline-flex}.al-practice .error{align-items:flex-start;gap:var(--space-2);margin:0 0 var(--space-4);padding:var(--space-2) var(--space-3);border-radius:var(--radius-xs);background:var(--danger-bg);box-shadow:inset 2px 0 0 var(--danger);color:var(--danger-strong);font-size:var(--text-xs);line-height:1.25rem;display:flex}.al-practice .spinner-icon{animation:.7s linear infinite spin;display:inline-block}.al-practice .spinner-icon-lg{margin:0 0 var(--space-4);color:var(--text-strong)}.al-practice .px-loader{grid-template-columns:repeat(3, var(--space-2));grid-auto-rows:var(--space-2);gap:var(--nudge-2);margin:0 0 var(--space-4);display:grid}.al-practice .px-loader i{border-radius:var(--px-radius);background:var(--text-strong);animation:1.2s ease-in-out infinite cell-blink;animation-delay:calc(var(--i) * 90ms);display:block}.al-practice .px-loader-inline{grid-template-columns:repeat(3, var(--px));grid-auto-rows:var(--px);gap:var(--nudge-1);margin:0}.al-practice .loading-card{text-align:center;padding:var(--space-9) var(--space-6);border:1px dashed var(--line-strong);border-radius:var(--radius-sm);background:var(--surface-card);color:var(--text-muted);font-size:var(--text-xs);flex-direction:column;align-items:center;display:flex}.al-practice .loading-card p{margin:0}.al-practice .empty-state{justify-content:center;align-items:center;gap:var(--space-2);padding:var(--space-8) var(--space-5);color:var(--text-muted);font-size:var(--text-xs);background:var(--surface-card);border:1px dashed var(--line-strong);border-radius:var(--radius-sm);text-align:center;flex-direction:column;display:flex}.al-practice .empty-state strong{color:var(--text-strong);font-size:var(--text-sm);font-weight:600}.al-practice .empty-state .px-field{color:var(--text-faint);margin-bottom:var(--space-2)}.al-practice .state-block{justify-content:center;align-items:center;gap:var(--space-3);text-align:center;min-height:15rem;padding:var(--space-9) var(--space-6);border:1px solid var(--line-soft);border-radius:var(--radius-md);background:var(--surface-card);margin-bottom:var(--space-7);flex-direction:column;display:flex;position:relative}.al-practice .state-block button,.al-practice .state-block .link-button{align-self:center}.al-practice .archived-notice{min-height:0;margin-top:var(--space-5);border-style:dashed;border-color:var(--text-faint);background:var(--surface-sunken)}.al-practice .archived-notice-contacts{align-items:center;gap:var(--space-2);flex-wrap:wrap;margin:0;display:inline-flex}.al-practice .archived-notice-role{font-family:var(--font-mono);font-size:var(--text-4xs);letter-spacing:var(--track-tech);text-transform:var(--case-tech);color:var(--text-faint)}.al-practice .archived-notice-contact{font-size:var(--text-2xs);color:var(--text-strong)}.al-practice .state-icon{width:var(--mark-lg);height:var(--mark-lg);border-radius:var(--dot-radius);background:var(--surface-alt);box-shadow:inset 0 0 0 1px var(--line-soft);color:var(--text-muted);justify-content:center;align-items:center;display:flex}.al-practice .state-block-error{border-color:var(--danger-line)}.al-practice .state-block-error .state-icon{background:var(--danger-bg);box-shadow:inset 0 0 0 1px var(--danger-line);color:var(--danger-text)}.al-practice .state-title{font-size:var(--text-md);letter-spacing:var(--track-tight);margin:0;font-weight:600}.al-practice .state-desc{font-size:var(--text-2xs);color:var(--text-muted);max-width:42ch;margin:0;line-height:1.25rem}.al-practice .state-code{display:var(--index-display);top:var(--space-3);left:var(--space-4);font-family:var(--font-mono);font-size:var(--text-4xs);letter-spacing:var(--track-tech);text-transform:var(--case-tech);color:var(--text-faint);position:absolute}.al-practice .course-reader>.loading-card{margin:0 var(--space-6)}.al-practice .context-attachments{gap:var(--space-2);flex-direction:column;display:flex}.al-practice .context-attachments-trigger{border:1px dashed var(--line-strong);color:var(--text-muted);text-transform:none;letter-spacing:normal;height:var(--control-h-sm);padding:0 var(--space-3);box-shadow:none;background:0 0;align-self:stretch;font-weight:600}.al-practice .context-attachments-trigger:hover{background:var(--accent-tint);border-color:var(--accent-line-soft);color:var(--accent-text)}.al-practice .context-attachment-chips{gap:var(--space-2);flex-wrap:wrap;display:flex}.al-practice .context-attachment-chip{align-items:center;gap:var(--space-2);height:1.75rem;padding-right:var(--space-2);border-radius:var(--radius-pill);background:var(--surface-alt);box-shadow:inset 0 0 0 1px var(--line-soft);font-size:var(--text-2xs);max-width:100%;display:flex}.al-practice .context-attachment-badge{height:100%;padding:0 var(--space-2);border-radius:var(--radius-pill) 0 0 var(--radius-pill);font-size:var(--text-2xs);letter-spacing:var(--track-soft);flex:none;align-items:center;font-weight:800;display:flex}.al-practice .context-attachment-badge.pdf{background:var(--accent-tint);color:var(--accent-strong)}.al-practice .context-attachment-badge.text{background:var(--surface-hover);color:var(--text-muted)}.al-practice .context-attachment-name{text-overflow:ellipsis;white-space:nowrap;min-width:0;color:var(--text-strong);flex:1;overflow:hidden}.al-practice .context-attachment-remove{width:var(--control-h-xs);height:var(--control-h-xs);border-radius:var(--radius-xs);color:var(--text-muted);text-transform:none;letter-spacing:normal;box-shadow:none;background:0 0;border:none;flex:none;align-self:auto;padding:0;font-weight:500}.al-practice .context-attachment-remove:hover{background:var(--danger-tint);color:var(--danger-text)}.al-practice .editor-toolbar{align-items:center;gap:var(--space-2);min-height:38px;padding:0 var(--space-2) 0 var(--space-4);background:var(--ide-band);color:var(--ide-soft);box-shadow:inset 0 -1px 0 var(--ide-line);flex-wrap:wrap;font-size:12px;display:flex}.al-practice .editor-file{font-family:var(--font-mono);color:var(--text-muted)}.al-practice .editor-reset{align-items:center;gap:var(--space-1);height:auto;box-shadow:none;padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);line-height:1.125rem;font-size:var(--text-2xs);text-transform:none;letter-spacing:normal;color:var(--text-muted);background:0 0;border:none;align-self:auto;margin-left:auto;font-weight:600;display:inline-flex}.al-practice .editor-reset:hover{background:var(--line-soft);color:var(--text-strong)}.al-practice .editor-form{gap:var(--space-3);flex-direction:column;display:flex}.al-practice .editor-list{gap:var(--space-2);flex-direction:column;display:flex}.al-practice .editor-narrow{max-width:16rem}.al-practice .editor-two{gap:var(--space-3);grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}.al-practice .editor-card{gap:var(--space-3);padding:var(--space-3) var(--space-4) var(--space-4);border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--surface-alt);flex-direction:column;display:flex}.al-practice .editor-card-open{border-color:var(--line-strong)}.al-practice .editor-card-head{align-items:center;gap:var(--space-2);min-height:var(--control-h-sm);display:flex}.al-practice .editor-card-name{min-width:0;font-size:var(--text-xs);color:var(--text-strong);flex:1;font-weight:600}.al-practice .editor-card-title{min-width:0;height:var(--control-h-sm);padding:0 var(--space-3);border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface-card);color:var(--text-strong);font-family:var(--font-sans);font-size:var(--text-xs);flex:1;font-weight:500}.al-practice .editor-num{width:var(--icon-badge-md);height:var(--icon-badge-md);border-radius:var(--radius-xs);background:var(--surface-ink);color:var(--text-on-ink);font-family:var(--font-mono);font-size:var(--text-4xs);letter-spacing:var(--track-tech);font-variant-numeric:tabular-nums;flex:none;place-items:center;line-height:1rem;display:grid}.al-practice .editor-num-quiet{background:var(--surface-card);color:var(--text-muted);box-shadow:inset 0 0 0 1px var(--line-soft)}.al-practice .editor-x,.al-practice .editor-chev{width:var(--icon-badge-md);height:var(--icon-badge-md);border:1px solid var(--line-soft);border-radius:var(--radius-xs);box-shadow:none;color:var(--text-faint);background:0 0;flex:none;align-self:center;place-items:center;padding:0;display:grid}.al-practice .editor-chev{border-color:#0000}.al-practice .editor-x:hover:not(:disabled){border-color:var(--accent-text);color:var(--accent-strong);background:var(--accent-tint)}.al-practice .editor-chev:hover{color:var(--text-strong);background:var(--surface-card)}.al-practice .editor-x:disabled{opacity:.35;cursor:default}.al-practice .editor-row{align-items:center;gap:var(--space-2);display:flex}.al-practice .editor-row input.editor-input{flex:1;min-width:0}.al-practice .field input.editor-input{width:100%}.al-practice .editor-row input.editor-input,.al-practice .field input.editor-input{height:var(--control-h-sm);padding:0 var(--space-3);border:1px solid var(--line-strong);border-radius:var(--radius-sm);background:var(--surface-card);color:var(--text-strong);font-family:var(--font-sans);font-size:var(--text-2xs);font-weight:400}.al-practice .editor-row input.editor-input-mono,.al-practice .field input.editor-input-mono{font-family:var(--font-mono)}.al-practice .editor-row-correct .editor-input{border-color:var(--line-ink)}.al-practice .editor-check{width:var(--icon-badge-md);height:var(--icon-badge-md);border:1px solid var(--line-strong);border-radius:var(--radius-xs);background:var(--surface-card);box-shadow:none;color:var(--text-on-ink);flex:none;align-self:center;place-items:center;padding:0;display:grid}.al-practice .editor-check[aria-checked=true]{background:var(--surface-ink);border-color:var(--surface-ink)}.al-practice .editor-check:hover:not([aria-checked=true]){border-color:var(--line-ink)}.al-practice .editor-tag{height:var(--icon-badge-sm);padding:0 var(--space-2);border-radius:var(--radius-xs);background:var(--surface-ink);color:var(--text-on-ink);font-family:var(--font-mono);font-size:var(--text-4xs);letter-spacing:var(--track-tech);text-transform:var(--case-tech);white-space:nowrap;flex:none;align-items:center;line-height:1rem;display:inline-flex}.al-practice .editor-add{justify-content:flex-start;align-self:stretch;align-items:center;gap:var(--space-2);width:100%;height:var(--control-h-sm);padding:0 var(--space-2);border:1px dashed var(--line-strong);border-radius:var(--radius-xs);box-shadow:none;color:var(--text-muted);font-family:var(--font-mono);font-size:var(--text-4xs);letter-spacing:var(--track-tech);text-transform:var(--case-tech);background:0 0;font-weight:500;display:flex}.al-practice .editor-add:hover{border-color:var(--line-ink);background:var(--surface-card);color:var(--text-strong)}.al-practice .editor-add-mark{width:var(--icon-badge-sm);height:var(--icon-badge-sm);border-radius:var(--radius-xs);background:var(--surface-alt);box-shadow:inset 0 0 0 1px var(--line-soft);color:var(--text-muted);place-items:center;display:grid}.al-practice .editor-add:hover .editor-add-mark{background:var(--surface-ink);color:var(--text-on-ink);box-shadow:none}.al-practice .editor-add-block{height:var(--control-h)}.al-practice .editor-item{align-items:center;gap:var(--space-2);height:var(--control-h);padding:0 var(--space-2) 0 var(--space-3);border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--surface-alt);display:flex}.al-practice .editor-item-open{min-width:0;height:auto;box-shadow:none;text-overflow:ellipsis;white-space:nowrap;text-align:left;color:var(--text-strong);line-height:1rem;font-family:var(--font-sans);font-size:var(--text-2xs);letter-spacing:normal;text-transform:none;background:0 0;border:none;flex:1;align-self:center;padding:0;font-weight:400;display:block;overflow:hidden}.al-practice .editor-item-open-mono{font-family:var(--font-mono);font-size:var(--text-3xs)}.al-practice .editor-item-open em{color:var(--text-faint);font-style:normal}.al-practice .editor-item-meta{align-items:center;gap:var(--space-1);font-family:var(--font-mono);font-size:var(--text-4xs);letter-spacing:var(--track-tech);text-transform:var(--case-tech);color:var(--text-faint);white-space:nowrap;flex:none;line-height:1rem;display:inline-flex}.al-practice .editor-cells{gap:var(--nudge-2);margin:0 var(--space-1);display:inline-flex}.al-practice .editor-cells i{width:var(--px);height:var(--px);background:currentColor}.al-practice .editor-cells-off i{opacity:.3}.al-practice .editor-section{align-items:center;gap:var(--space-3);margin-top:var(--space-1);display:flex}.al-practice .editor-section-label{align-items:center;gap:var(--space-1);font-family:var(--font-mono);font-size:var(--text-4xs);letter-spacing:var(--track-tech);text-transform:var(--case-tech);color:var(--text-muted);flex:none;line-height:1rem;display:inline-flex}.al-practice .editor-section-line{background:var(--line-soft);flex:1;height:1px}.al-practice .editor-affix{align-items:center;gap:var(--space-2);max-width:8rem;display:flex}.al-practice .editor-affix input.editor-input{flex:1;width:auto;min-width:0}.al-practice .editor-affix-unit{font-family:var(--font-mono);font-size:var(--text-2xs);color:var(--text-muted);flex:none}.al-practice .editor-switch{border:1px solid var(--line-strong);border-radius:var(--radius-xs);flex:none;display:inline-flex;overflow:hidden}.al-practice .editor-switch button{height:var(--icon-badge-md);padding:0 var(--space-2);box-shadow:none;color:var(--text-muted);font-family:var(--font-mono);font-size:var(--text-4xs);letter-spacing:var(--track-tech);text-transform:var(--case-tech);background:0 0;border:none;border-radius:0;font-weight:500}.al-practice .editor-switch button+button{border-left:1px solid var(--line-strong)}.al-practice .editor-switch button[aria-pressed=true]{background:var(--surface-ink);color:var(--text-on-ink)}.al-practice .editor-stepper{height:var(--icon-badge-md);border:1px solid var(--line-strong);border-radius:var(--radius-xs);flex:none;align-items:center;display:inline-flex;overflow:hidden}.al-practice .editor-stepper button{width:var(--icon-badge-md);height:100%;box-shadow:none;color:var(--text-muted);font-family:var(--font-mono);font-size:var(--text-2xs);background:0 0;border:none;border-radius:0;place-items:center;padding:0;display:grid}.al-practice .editor-stepper button:disabled{opacity:.35}.al-practice .editor-stepper output{border-left:1px solid var(--line-soft);border-right:1px solid var(--line-soft);min-width:1.75rem;height:100%;color:var(--text-strong);font-family:var(--font-mono);font-size:var(--text-2xs);font-variant-numeric:tabular-nums;place-items:center;display:grid}.al-practice .field textarea.auto-textarea.code-textarea{padding:var(--space-2) var(--space-3);border-color:var(--console-border);background:var(--console-bg);color:var(--console-text);font-family:var(--font-mono);font-size:var(--text-2xs);line-height:1.25rem}.al-practice .field textarea.code-textarea::placeholder{color:var(--console-muted)}.al-practice .drag-handle{height:var(--control-h-sm);width:var(--control-h-sm);box-shadow:none;color:var(--text-muted);cursor:grab;touch-action:none;background:0 0;border:none;flex-shrink:0;justify-content:center;align-self:center;align-items:center;padding:0;display:flex}.al-practice .drag-handle:hover{color:var(--text-strong);background:var(--surface-alt);border-radius:var(--radius-xs)}.al-practice .drag-handle:active{cursor:grabbing}.al-practice .editor-card-head .drag-handle,.al-practice .editor-item .drag-handle{width:var(--icon-badge-md);height:var(--icon-badge-md);margin-left:calc(-1 * var(--space-1))}.al-practice .result-toolbar{top:var(--header-h);z-index:4;align-items:center;gap:var(--space-4);padding:var(--pad-default);background:var(--surface-alt);box-shadow:inset 0 -1px 0 var(--line-soft);border-radius:var(--radius-md) var(--radius-md) 0 0;flex-wrap:wrap;display:flex;position:sticky}.al-practice .toolbar-controls{align-items:center;gap:var(--space-2);margin-left:auto;display:flex}.al-practice .pill-count,.al-practice .level-accordion-duration,.al-practice .level-bar-meta,.al-practice .course-progress-label{font-family:var(--font-mono);font-variant-numeric:tabular-nums}.al-practice .course-panel{margin-top:var(--space-4);scroll-margin-top:calc(var(--header-h) + var(--space-4));border:1px solid var(--line-soft);border-radius:var(--radius-md);background:var(--surface-card);box-shadow:var(--shadow-card)}.al-practice .course-layout{--toc-col:minmax(11rem, 240px);--companion-col:340px;grid-template-columns:var(--toc-col) minmax(0, 1fr);align-items:stretch;display:grid}.al-practice .course-layout.has-toc-folded{--toc-col:var(--control-h-lg)}.al-practice .course-toc{background:var(--surface-alt);border-right:1px solid var(--line-soft);border-bottom-left-radius:var(--radius-md);padding:var(--space-3) var(--space-4) var(--space-4)}.al-practice .course-toc-head{align-items:center;gap:var(--space-2);min-height:2.875rem;padding-bottom:var(--space-3);margin-bottom:var(--space-2);box-shadow:inset 0 -1px 0 var(--line-soft);display:flex}.al-practice .course-toc-head>.icon-button{margin-left:calc(-1 * var(--space-2))}.al-practice .course-toc-label{min-width:0;font-size:var(--text-4xs);letter-spacing:var(--track-tech);text-transform:var(--case-tech);color:var(--text-muted);flex:1;font-weight:700;line-height:1rem}.al-practice .course-toc-count{font-family:var(--font-mono);font-size:var(--text-4xs);font-variant-numeric:tabular-nums;color:var(--text-muted);line-height:1rem}.al-practice .course-toc-inner{top:calc(var(--header-h) + var(--space-4));flex-direction:column;gap:0;display:flex;position:sticky}.al-practice .course-toc-fold{align-items:center;gap:var(--space-2);padding:var(--space-3) 0 var(--space-3);background:var(--surface-alt);border-right:1px solid var(--line-soft);border-bottom-left-radius:var(--radius-md);scrollbar-width:none;flex-direction:column;display:flex;overflow-y:auto}.al-practice .course-toc-fold>.icon-button{margin-bottom:var(--space-4);flex:none;align-self:center}.al-practice .course-toc-fold>.toc-dot,.al-practice .course-toc-fold-count{flex:none}.al-practice .course-toc-fold .toc-dot{margin:var(--space-1) 0}.al-practice .course-toc-fold-count{writing-mode:vertical-rl;font-family:var(--font-mono);font-size:var(--text-4xs);font-variant-numeric:tabular-nums;letter-spacing:var(--track-loose);color:var(--text-muted);margin-top:auto;line-height:1rem}.al-practice .toc-dot{width:var(--dot-md);height:var(--dot-md);border-radius:var(--dot-radius);background:var(--surface-page);box-shadow:inset 0 0 0 1px var(--line-strong);cursor:pointer;text-transform:none;letter-spacing:0;border:none;flex:none;align-self:center;padding:0;line-height:0;transition:box-shadow .15s;position:relative}.al-practice .toc-dot:hover{box-shadow:inset 0 0 0 1px var(--line-strong), 0 0 0 3px var(--surface-hover)}.al-practice .toc-dot.done{background:var(--success);box-shadow:none}.al-practice .toc-dot.weak{box-shadow:inset 0 0 0 3px var(--warning)}.al-practice .toc-dot.current{border-radius:var(--dot-radius);background:var(--accent);box-shadow:none}.al-practice .toc-dot.writing{background:var(--warning-bg);box-shadow:inset 0 0 0 1px var(--warning-border)}.al-practice .toc-dot.unread:after{content:"";width:var(--dot-sm);height:var(--dot-sm);border-radius:var(--dot-radius);background:var(--accent);box-shadow:0 0 0 2px var(--surface-alt);position:absolute;top:-3px;right:-3px}.al-practice .toc-dot.locked{width:var(--dot-sm);height:var(--dot-sm);box-shadow:inset 0 0 0 1px var(--line-soft);cursor:default}.al-practice .toc-dot:disabled{cursor:default}.al-practice .toc-dot:focus-visible{box-shadow:inset 0 0 0 1px var(--line-strong), 0 0 0 3px var(--focus-ring);outline:none}.al-practice .course-progress-summary{gap:var(--space-1);margin-bottom:var(--space-2);flex-direction:column;display:flex}.al-practice .course-progress-bar{height:var(--space-2);border-radius:var(--bar-radius);background:var(--bar-track-overlay), repeating-linear-gradient(90deg, var(--surface-hover-strong) 0 var(--px), transparent var(--px) calc(var(--px) * 2));display:block;overflow:hidden}.al-practice .course-progress-bar-fill{border-radius:var(--bar-radius);background:var(--bar-overlay), repeating-linear-gradient(90deg, var(--bar-color,var(--text-strong)) 0 var(--px), transparent var(--px) calc(var(--px) * 2));height:100%;transition:width .5s var(--ease-out);display:block;position:relative;overflow:hidden}.al-practice .course-progress-label{font-size:var(--text-2xs);color:var(--text-muted);font-weight:600}.al-practice .toc-row-card{box-sizing:border-box;align-self:stretch;align-items:center;gap:var(--space-3);width:100%;color:var(--text-muted);box-shadow:none;text-transform:none;font-weight:600;font-size:var(--text-2xs);text-align:left;padding:var(--space-2) var(--space-2) var(--space-2) 0;cursor:pointer;background:0 0;border:none;border-radius:0;display:flex;position:relative}.al-practice .toc-row-card:hover,.al-practice .toc-row-card.active{color:var(--text-strong)}.al-practice .toc-row-card.active .toc-title{font-weight:700}.al-practice .toc-row-card.locked{cursor:default}.al-practice .toc-row-card.locked .toc-title{opacity:.6}.al-practice .toc-rail{width:var(--icon-badge-md);flex:none;align-self:stretch;place-items:center;display:grid;position:relative}.al-practice .toc-rail .toc-dot{z-index:1;box-shadow:inset 0 0 0 1px var(--line-strong), 0 0 0 3px var(--surface-alt)}.al-practice .toc-rail .toc-dot.done,.al-practice .toc-rail .toc-dot.current{box-shadow:0 0 0 3px var(--surface-alt)}.al-practice .toc-rail .toc-dot.weak{box-shadow:inset 0 0 0 3px var(--warning), 0 0 0 3px var(--surface-alt)}.al-practice .toc-rail .toc-dot.writing{box-shadow:inset 0 0 0 1px var(--warning-border), 0 0 0 3px var(--surface-alt)}.al-practice .toc-rail .toc-dot.locked{box-shadow:inset 0 0 0 1px var(--line-soft), 0 0 0 3px var(--surface-alt)}.al-practice .toc-rail .toc-dot:hover{box-shadow:inset 0 0 0 1px var(--line-strong), 0 0 0 3px var(--surface-hover)}.al-practice .toc-rail .toc-index-grip{z-index:1;box-shadow:inset 0 0 0 1px var(--line-soft), 0 0 0 3px var(--surface-alt)}.al-practice .toc-row-card:focus-visible{box-shadow:0 0 0 1px var(--line-ink);outline:none}.al-practice .toc-row-select{align-items:center;gap:var(--space-2);flex:1;min-width:0;display:flex}.al-practice .toc-index{width:var(--icon-badge-md);height:var(--icon-badge-md);border-radius:var(--radius-xs);background:var(--surface-page);color:var(--text-muted);box-shadow:inset 0 0 0 1px var(--line-soft);font-family:var(--font-mono);font-size:var(--text-4xs);flex-shrink:0;justify-content:center;align-self:center;align-items:center;font-weight:700;display:inline-flex}.al-practice .toc-index-writing,.al-practice .toc-row-card.active .toc-index-writing{background:var(--warning-bg);color:var(--warning-dark);box-shadow:inset 0 0 0 1px var(--warning-border)}.al-practice .toc-index-grip{cursor:grab;touch-action:none;border:none;padding:0;transition:background .15s,color .15s}.al-practice .toc-index-grip:hover{background:var(--surface-hover-strong);color:var(--text-strong)}.al-practice .toc-index-grip:active{cursor:grabbing}.al-practice .toc-title{min-width:0;font-size:var(--text-3xs);-webkit-line-clamp:2;line-clamp:2;text-overflow:ellipsis;-webkit-box-orient:vertical;flex:1;line-height:1rem;display:-webkit-box;overflow:hidden}.al-practice .toc-index-menu,.al-practice .toc-row-card.active .toc-index-menu,.al-practice .toc-index-menu:active{background:var(--accent-tint);box-shadow:inset 0 0 0 1px var(--accent-line);color:var(--accent-text);cursor:pointer}.al-practice .toc-index-menu:hover,.al-practice .toc-row-card.active .toc-index-menu:hover,.al-practice .toc-index-open,.al-practice .toc-row-card.active .toc-index-open{background:var(--accent-tint-strong);box-shadow:inset 0 0 0 1px var(--accent);color:var(--accent-text)}.al-practice .chapter-menu{z-index:60;gap:var(--nudge-1);padding:var(--space-1);border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--surface-card);box-shadow:var(--shadow-float);flex-direction:column;display:flex;position:fixed}.al-practice .chapter-menu-item{align-items:center;gap:var(--space-2);width:100%;height:var(--control-h-sm);padding:0 var(--space-2);border-radius:var(--radius-xs);box-shadow:none;color:var(--text-strong);font-family:var(--font-sans);font-size:var(--text-2xs);text-transform:none;letter-spacing:normal;text-align:left;cursor:pointer;background:0 0;border:none;align-self:auto;font-weight:500;line-height:1rem;display:flex}.al-practice .chapter-menu-item:hover:not(:disabled),.al-practice .chapter-menu-item:focus-visible{background:var(--surface-hover);outline:none}.al-practice .chapter-menu-item:disabled{opacity:.4;cursor:not-allowed}.al-practice .chapter-menu-danger{color:var(--danger-strong)}.al-practice .chapter-menu-danger:hover:not(:disabled),.al-practice .chapter-menu-danger:focus-visible{background:var(--danger-bg)}.al-practice .toc-item{align-items:center;gap:var(--space-1);display:flex;position:relative}.al-practice .toc-item:before{content:"";top:0;bottom:0;left:calc(var(--icon-badge-md) / 2 - 1px);background:var(--line-soft);width:2px;position:absolute}.al-practice .toc-item:first-child:before{top:50%}.al-practice .toc-item:last-of-type:before{bottom:50%}.al-practice .toc-item .toc-row-card{flex:1;min-width:0}.al-practice .course-toc .toc-add-button{box-sizing:border-box;justify-content:flex-start;align-self:stretch;align-items:center;gap:var(--space-3);width:100%;height:auto;margin-top:var(--space-2);padding:var(--pad-compact);border:1px dashed var(--line-strong);border-radius:var(--radius-xs);box-shadow:none;color:var(--text-muted);font-size:var(--text-3xs);text-transform:none;letter-spacing:normal;text-align:left;background:0 0;font-weight:600;line-height:1rem;display:flex}.al-practice .toc-add-mark{width:var(--icon-badge-md);height:var(--icon-badge-md);border-radius:var(--radius-xs);box-shadow:inset 0 0 0 1px var(--line-soft);flex-shrink:0;justify-content:center;align-self:center;align-items:center;display:inline-flex}.al-practice .course-toc .toc-add-button:hover{background:var(--surface-hover);border-color:var(--text-muted);color:var(--text-strong)}.al-practice .course-toc .toc-add-button:hover .toc-add-mark{box-shadow:inset 0 0 0 1px var(--line-strong)}.al-practice .course-page{min-width:0;padding:var(--space-6)}.al-practice .markdown-body{background:var(--surface-page);border:1px solid var(--line-soft);border-radius:var(--radius-sm);box-shadow:var(--shadow-card);padding:var(--space-7);font-family:var(--font-sans);color:var(--text-strong);line-height:1.5rem}.al-practice .course-reader .markdown-body{box-shadow:none;background:0 0;border:none;border-radius:0;padding:0}.al-practice .markdown-body>:first-child{margin-top:0}.al-practice .markdown-body>:last-child{margin-bottom:0}.al-practice .markdown-body h1,.al-practice .markdown-body h2,.al-practice .markdown-body h3{font-family:var(--font-display);color:var(--text-strong);font-weight:800}.al-practice .markdown-body h1{font-size:var(--text-xl);margin:0 0 var(--space-4);line-height:2rem}.al-practice .markdown-body h2{font-size:var(--text-lg);margin:var(--space-7) 0 var(--space-3);padding-bottom:var(--space-2);border-bottom:1px solid var(--line-strong);line-height:1.625rem}.al-practice .markdown-body h3{font-size:var(--text-sm);margin:var(--space-6) 0 var(--space-2);line-height:1.25rem}.al-practice .markdown-body p{margin:0 0 var(--space-4)}.al-practice .markdown-body strong{color:var(--text-strong)}.al-practice .markdown-body a{color:var(--accent-text)}.al-practice .markdown-body ul,.al-practice .markdown-body ol{margin:0 0 var(--space-4);padding-left:var(--space-5)}.al-practice .markdown-body li{margin-bottom:var(--space-1)}.al-practice .markdown-body li input[type=checkbox]{margin-right:var(--space-2);accent-color:var(--accent-text)}.al-practice .markdown-body hr{background:var(--line-soft);height:2px;margin:var(--space-6) 0;border:none}.al-practice .markdown-body code{line-height:0;font-family:var(--font-mono);background:var(--surface-alt);border:1px solid var(--line-soft);color:var(--accent-strong);padding:var(--space-1) var(--space-2);border-radius:var(--radius-sm);font-size:.85em}.al-practice .markdown-body pre{background:var(--console-bg);color:var(--console-text);padding:var(--space-4) var(--space-5);border-radius:var(--radius-sm);box-shadow:inset 0 0 0 1px var(--console-border);margin:0 0 var(--space-5);overflow-x:auto}.al-practice .markdown-body pre code{line-height:inherit;color:inherit;background:0 0;border:none;padding:0}.al-practice .al-code{margin:0}.al-practice .al-code-head{display:none}.al-practice .mermaid-diagram{background:var(--surface-sunken);box-shadow:inset 0 0 0 1px var(--line-soft);border-radius:var(--radius-sm);padding:var(--space-4) var(--space-5);margin:0 0 var(--space-5);justify-content:center;display:flex;overflow-x:auto}.al-practice .mermaid-diagram:empty{min-height:12rem}.al-practice .mermaid-diagram svg{max-width:100%}.al-practice .mermaid-diagram marker circle{fill:var(--surface-sunken)}.al-practice .markdown-body table{border-collapse:collapse;width:100%;margin:0 0 var(--space-5);font-size:var(--text-xs)}.al-practice .markdown-body th,.al-practice .markdown-body td{border:1px solid var(--line-soft);padding:var(--pad-compact);text-align:left}.al-practice .markdown-body th{background:var(--surface-alt);color:var(--text-strong);font-weight:700}.al-practice .course-reader,.al-practice .course-editor{scroll-behavior:smooth;height:100%;padding:0 0 var(--space-8);scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent;min-width:0;position:relative;overflow-y:auto}.al-practice .course-layout{min-height:var(--panel-min-h)}.al-practice .reader-fullscreen{width:var(--control-h-sm);height:var(--control-h-sm);border:1px solid var(--line-soft);border-radius:var(--radius-xs);background:var(--surface-page);color:var(--text-muted);cursor:pointer;flex:none;justify-content:center;align-items:center;padding:0;display:inline-flex}.al-practice .reader-fullscreen:hover{background:var(--surface-hover);border-color:var(--line-strong);color:var(--text-strong)}.al-practice .course-panel-immersive{z-index:50;border:none;border-radius:0;flex-direction:column;margin:0;display:flex;position:fixed;inset:0}.al-practice .course-panel-immersive .result-toolbar{border-radius:0;top:0}.al-practice .course-panel-immersive .reader-depth{top:3.5rem}.al-practice .course-panel-immersive .course-layout{flex:1;min-height:0}.al-practice .course-panel-immersive .course-page,.al-practice .course-panel-immersive .course-editor{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent;min-height:0;overflow-y:auto}.al-practice .course-panel-immersive .course-toc{border-bottom-left-radius:0;min-height:0;overflow-y:auto}.al-practice .course-layout>*{min-height:0}.al-practice .course-layout .course-toc{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent;overflow-y:auto}.al-practice .course-layout .course-toc-inner{position:static}.al-practice .course-layout>.course-page{scrollbar-width:thin;scrollbar-color:var(--line-strong) transparent;overflow-y:auto}.al-practice .reader-depth{top:calc(var(--header-h) + 3.5rem);z-index:4;background:var(--line-soft);height:2px;position:sticky}.al-practice .reader-depth>span{background:var(--text-strong);width:0;height:100%;transition:width .1s linear;display:block}.al-practice .reader-chapter{padding:0 var(--space-6) var(--space-6)}.al-practice .course-editor .reader-chapter:last-child{min-height:100%}.al-practice .course-editor{background-image:var(--ground-dots-image);background-size:var(--ground-dots-size)}.al-practice .course-editor .reader-chapter{padding-left:calc(var(--space-6) + var(--space-7) + var(--space-2))}.al-practice .course-editor .reader-chapter-head{margin-left:calc(-1 * (var(--space-6) + var(--space-7) + var(--space-2)));padding-left:var(--space-6);background:linear-gradient(var(--surface-card) 72%, transparent)}.al-practice .course-editor .reader-chapter-title-input{box-shadow:inset 0 -1px #0000}.al-practice .course-editor .reader-chapter-title-input:hover{box-shadow:inset 0 -1px 0 var(--line-strong);background:0 0;border-color:#0000}.al-practice .course-editor .reader-chapter-title-input:focus{background:var(--surface-card);box-shadow:inset 0 -2px 0 var(--line-ink);border-color:#0000}.al-practice .reader-chapter+.reader-chapter{box-shadow:inset 0 1px 0 var(--line-soft)}.al-practice .reader-chapter-head{z-index:3;align-items:center;gap:var(--space-3);margin:0 calc(-1 * var(--space-6));padding:var(--space-4) var(--space-6) var(--space-3);background:linear-gradient(var(--surface-card) 72%, transparent);display:flex;position:sticky;top:0}.al-practice .reader-chapter-number{width:var(--icon-badge-md);height:var(--icon-badge-md);border-radius:var(--dot-radius);background:var(--surface-sunken);color:var(--text-muted);font-family:var(--font-mono);font-size:var(--text-4xs);flex:none;place-items:center;font-weight:700;display:grid;position:relative}.al-practice .reader-chapter-current .reader-chapter-number{background:var(--accent);color:var(--text-on-accent)}.al-practice .reader-chapter-arrival{border-radius:inherit;pointer-events:none;animation:.45s ease-out both reader-chapter-arrival;position:absolute;inset:0}.al-practice .reader-chapter-title{min-width:0;font-size:var(--text-md);letter-spacing:var(--track-snug);flex:1;font-weight:700;line-height:1.5rem}.al-practice .reader-chapter-title-input{min-width:0;margin:calc(-1 * var(--space-1)) calc(-1 * var(--space-2));padding:var(--space-1) var(--space-2);font-family:inherit;font-size:var(--text-md);letter-spacing:var(--track-snug);color:var(--text-strong);border-radius:var(--radius-sm);background:0 0;border:1px solid #0000;flex:1;font-weight:700;line-height:1.5rem}.al-practice .reader-chapter-title-input::placeholder{color:var(--text-muted);font-weight:400}.al-practice .reader-chapter-title-input:hover{border-color:var(--line-soft);background:var(--surface-page)}.al-practice .reader-chapter-title-input:focus{border-color:var(--accent-text);background:var(--surface-page);box-shadow:0 0 0 1px var(--line-ink);outline:none}.al-practice .reader-chapter>*+*,.al-practice .reader-chapter>.panel,.al-practice .reader-chapter>.exercise-block{margin-top:var(--space-4)}.al-practice .reader-chapter>.reader-chapter-head+*{margin-top:0}.al-practice .reader-gate{align-items:flex-start;gap:var(--space-3);margin:0 var(--space-6);padding:var(--space-6);border:1px dashed var(--warning-border);border-radius:var(--radius-md);background:var(--warning-bg);flex-direction:column;display:flex}.al-practice .reader-gate-title{align-items:center;gap:var(--space-2);font-size:var(--text-xs);color:var(--warning-dark);font-weight:700;display:flex}.al-practice .reader-gate p{max-width:52ch;font-size:var(--text-2xs);color:var(--text-muted);line-height:1.25rem}.al-practice .level-completion{gap:var(--space-6);margin:0 var(--space-6);padding:var(--space-6);border:1px solid var(--success-border);border-radius:var(--radius-md);background:var(--success-bg);flex-direction:column;display:flex}.al-practice .level-completion-head{align-items:center;gap:var(--space-3);display:flex}.al-practice .level-completion-mark{width:var(--mark-lg);height:var(--mark-lg);border-radius:var(--radius-xs);background:var(--surface-card);color:var(--success-dark);flex:none;place-items:center;display:grid}.al-practice .level-completion-heading{gap:var(--nudge-2);flex-direction:column;min-width:0;display:flex}.al-practice .level-completion-heading h3{font-size:var(--text-lg);margin:0;line-height:1.75rem}.al-practice .level-completion-head>.pill{margin-left:auto}.al-practice .level-completion .stat-tiles{gap:var(--space-4);margin-bottom:0}.al-practice .level-completion .stat-tile{padding:var(--pad-card-tight)}.al-practice .level-completion-section{gap:var(--space-2);flex-direction:column;display:flex}.al-practice .level-completion .related-item{background:var(--surface-card);border:1px solid var(--line-soft)}.al-practice .level-completion .related-item:hover{background:var(--surface-hover-weak)}.al-practice .level-completion-actions{gap:var(--space-3);flex-wrap:wrap;display:flex}.al-practice .level-completion-actions .link-button{flex:14rem;align-self:stretch}.al-practice .level-completion-note{margin-top:var(--space-2)}.al-practice .toc-row-card-read .toc-index{background:var(--success-bg);color:var(--success-dark);box-shadow:none}.al-practice .feedback-form{gap:var(--space-5);margin:var(--section-gap-tight) 0 0;flex-direction:column;display:flex}.al-practice .feedback-form-title{font-size:var(--text-sm);margin:0;font-weight:700;line-height:1.375rem}.al-practice .feedback-field>.feedback-label{font-size:var(--text-2xs);text-transform:none;letter-spacing:normal;color:var(--text-strong);align-items:center;font-weight:700;line-height:1rem;display:flex}.al-practice .feedback-rating{gap:var(--space-2);display:inline-flex}.al-practice .feedback-rating-step{width:var(--control-h);height:var(--control-h);border:1px solid var(--line-strong);border-radius:var(--radius-xs);background:var(--surface-page);font-size:var(--text-xs);text-transform:none;letter-spacing:normal;color:var(--text-muted);box-shadow:none;padding:0;font-weight:700}.al-practice .feedback-rating-step:hover{border-color:var(--accent-line);color:var(--text-strong)}.al-practice .feedback-rating-step.is-picked{border-color:var(--accent-text);background:var(--accent-tint);color:var(--accent-strong)}.al-practice .feedback-rating-caption{min-height:1rem}.al-practice .feedback-choice{border:1px solid var(--line-strong);border-radius:var(--radius-xs);flex-wrap:wrap;width:max-content;max-width:100%;display:inline-flex;overflow:hidden}.al-practice .feedback-choice-option{height:var(--control-h);padding:0 var(--space-4);border:none;border-right:1px solid var(--line-strong);background:var(--surface-page);font-size:var(--text-2xs);color:var(--text-muted);box-shadow:none;border-radius:0;font-weight:700}.al-practice .feedback-choice-option:last-child{border-right:none}.al-practice .feedback-choice-option:hover{background:var(--surface-alt);color:var(--text-strong)}.al-practice .feedback-choice-option.is-picked{background:var(--accent-tint);color:var(--accent-strong)}.al-practice .feedback-form-actions{align-items:center;gap:var(--space-4);flex-wrap:wrap;display:flex}.al-practice .feedback-form-note{flex:1;min-width:14rem}.al-practice .feedback-given{align-items:center;gap:var(--space-3);margin:var(--section-gap-tight) 0 0;padding:var(--pad-default);text-align:center;display:flex}.al-practice .feedback-given-mark{width:var(--icon-badge-md);height:var(--icon-badge-md);border-radius:var(--radius-xs);background:var(--success-bg);color:var(--success-dark);flex:none;justify-content:center;align-items:center;display:inline-flex}.al-practice .feedback-given-text{gap:var(--nudge-2);flex-direction:column;display:flex}.al-practice .feedback-given-text b{font-size:var(--text-2xs);line-height:1.25rem}.al-practice .feedback-given-text em{font-style:normal;font-size:var(--text-2xs);color:var(--text-muted);line-height:1.25rem}.al-practice .quiz-body{gap:var(--space-5);flex-direction:column;display:flex}.al-practice .quiz-question-text{color:var(--text-strong);margin:0 0 var(--space-2);font-weight:700}.al-practice .quiz-choices{gap:var(--space-2);flex-direction:column;display:flex}.al-practice .quiz-choice{background:var(--surface-page);color:var(--text-strong);border:1px solid var(--line-soft);box-shadow:none;text-transform:none;text-align:left;height:auto;padding:var(--space-2) var(--space-4);border-radius:var(--radius-sm);align-self:stretch;font-weight:500;line-height:1.5rem}.al-practice .quiz-choice:hover{background:var(--surface-alt)}.al-practice .quiz-choice.selected{border-color:var(--accent-ink);background:var(--surface-hover)}.al-practice .quiz-choice.correct{border-color:var(--success);background:var(--success-bg);color:var(--success-dark)}.al-practice .quiz-choice.wrong{border-color:var(--danger-text);background:var(--danger-tint);color:var(--danger-strong)}.al-practice .quiz-explanation{margin:var(--space-2) 0 0;font-size:var(--text-xs);color:var(--text-muted);font-style:italic}.al-practice .quiz-submit{width:fit-content;margin:0 0 0 auto;display:block}.al-practice .exercise-block{margin-top:var(--space-6);background:var(--al-panel);border:1px solid var(--al-gold-line);box-shadow:none;border-radius:12px}.al-practice .exercise-header{align-items:center;gap:var(--space-3);flex-wrap:wrap;padding:22px 26px 0;display:flex}.al-practice .exercise-title{align-items:center;gap:var(--space-2);font-family:var(--font-display);font-weight:800;font-size:var(--text-sm);color:var(--text-strong);display:flex}.al-practice .exercise-icon{width:var(--icon-badge-md);height:var(--icon-badge-md);border-radius:var(--radius-sm);background:var(--accent-tint-strong);color:var(--accent-strong);flex-shrink:0;justify-content:center;align-items:center;display:flex}.al-practice .lang-chip{align-items:center;gap:var(--space-2);border-radius:var(--radius-pill);background:var(--al-card);border:1px solid var(--al-gold-line);color:var(--al-navy);padding:4px 11px;font-size:12.5px;font-weight:800;display:inline-flex}.al-practice .lang-dot{width:var(--dot-sm);height:var(--dot-sm);border-radius:var(--dot-radius);flex-shrink:0}.al-practice .lang-dot.python{background:var(--lang-python)}.al-practice .lang-dot.typescript{background:var(--lang-typescript)}.al-practice .lang-dot.bash{background:var(--lang-bash)}.al-practice .lang-dot.sql{background:var(--lang-sql)}.al-practice .exercise-body{flex-direction:column;gap:18px;padding:18px 26px 26px;display:flex}.al-practice .panel{margin-top:var(--space-6);background:var(--surface-page);border:1px solid var(--line-soft);border-radius:var(--radius-sm);box-shadow:var(--shadow-card);overflow:hidden}.al-practice .panel-header{align-items:center;gap:var(--space-3);padding:var(--space-4) var(--space-5);box-shadow:inset 0 -1px 0 var(--line-soft);display:flex}.al-practice .panel-icon{width:var(--icon-badge-md);height:var(--icon-badge-md);border-radius:var(--radius-sm);flex-shrink:0;justify-content:center;align-items:center;display:flex}.al-practice .panel-icon.accent{background:var(--accent-tint-strong);color:var(--accent-strong)}.al-practice .panel-icon.navy{background:var(--surface-hover-strong);color:var(--text-strong)}.al-practice .panel-title{font-family:var(--font-display);font-weight:800;font-size:var(--text-sm);color:var(--text-strong)}.al-practice .panel-meta{gap:var(--space-2);margin-left:auto;display:flex}.al-practice .panel-body{padding:var(--space-5)}.al-practice .exercise-statement{color:var(--al-navy);font-size:15px;line-height:1.5}.al-practice .exercise-statement>:first-child{margin-top:0}.al-practice .exercise-statement>:last-child{margin-bottom:0}.al-practice .exercise-statement code{line-height:0;font-family:var(--font-mono);background:var(--surface-alt);border:1px solid var(--line-soft);border-radius:var(--radius-sm);color:var(--accent-strong);padding:.1em .35em;font-size:.85em}.al-practice .exercise-statement pre{background:var(--surface-alt);border:1px solid var(--line-soft);border-radius:var(--radius-sm);padding:var(--space-3);overflow-x:auto}.al-practice .exercise-statement pre code{line-height:inherit;color:var(--text-strong);background:0 0;border:none;padding:0}.al-practice .exercise-statement ul,.al-practice .exercise-statement ol{padding-left:var(--space-5)}.al-practice .exercise-run-bar{background:var(--al-card);border-top:1px solid var(--al-gold-line);flex-wrap:wrap;align-items:center;gap:10px 12px;padding:12px 16px;display:flex}.al-practice .exercise-run-bar .btn-run,.al-practice .exercise-run-bar .btn-submit{height:36px;padding:0 var(--space-4);align-self:auto}.al-practice .test-row{border-top:1px solid var(--al-gold-line)}.al-practice .test-row:first-child{border-top:0}.al-practice .test-summary{justify-content:flex-start;align-items:center;gap:var(--space-3);cursor:pointer;width:100%;height:auto;line-height:1.375rem;font-family:var(--font-sans);color:var(--al-navy);text-align:left;text-transform:none;letter-spacing:normal;box-shadow:none;background:0 0;border:none;border-radius:0;align-self:auto;padding:10px 16px;font-size:14px;font-weight:400;display:flex}.al-practice .test-summary:hover{background:var(--al-panel);border:none}.al-practice .test-summary.no-toggle{cursor:default}.al-practice .test-summary.no-toggle:hover{background:0 0}.al-practice .test-icon{width:18px;height:18px;color:var(--al-white);border-radius:999px;flex-shrink:0;justify-content:center;align-items:center;display:flex}.al-practice .test-icon.fail{background:var(--al-danger)}.al-practice .test-icon.pass{background:var(--al-success)}.al-practice .test-label{font-weight:800}.al-practice .test-hint{min-width:0;color:var(--al-ink-soft);font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.al-practice .test-chevron{color:var(--al-ink-soft);flex-shrink:0;margin-left:auto;transition:transform .15s}.al-practice .test-row.open .test-chevron{transform:rotate(90deg)}.al-practice .test-detail{gap:var(--space-2);padding:0 16px 14px calc(16px + 18px + var(--space-3));display:grid}.al-practice .diff-grid{gap:var(--space-2);grid-template-columns:minmax(0,1fr) minmax(0,1fr);display:grid}.al-practice .diff-col,.al-practice .diff-error{border:1px solid var(--al-gold-line);background:var(--al-panel);color:var(--al-navy);font-family:var(--font-mono);white-space:pre-wrap;overflow-wrap:anywhere;border-radius:8px;padding:8px 10px;font-size:12.5px;line-height:18px}.al-practice .diff-error{background:var(--al-danger-wash);color:var(--al-danger);border-color:#e0103f4d}.al-practice .diff-label{font-family:var(--al-font-brand);letter-spacing:1.4px;text-transform:uppercase;color:var(--al-gold-deep);margin-bottom:4px;font-size:10.5px;font-weight:700;display:block}.al-practice .diff-label.is-error,.al-practice .diff-error .diff-label{color:var(--al-danger)}.al-practice .diff-actual.pass{border-color:#11824a4d}.al-practice .diff-actual.pass .diff-label{color:var(--al-success)}.al-practice .diff-line{min-height:18px;display:block}.al-practice .diff-line mark{background:var(--al-danger-wash);color:var(--al-danger);border-radius:3px;padding:0 1px;box-shadow:inset 0 -1px #e0103f73}.al-practice .diff-empty{color:var(--al-ink-soft);font-style:italic}.al-practice .project-block{margin-top:var(--space-6);background:var(--al-panel);border:1px solid var(--al-gold-line);box-shadow:none;border-radius:12px}.al-practice .project-band{border-top:1px solid var(--line-soft)}.al-practice .project-band-head{justify-content:flex-start;align-items:center;gap:var(--space-3);width:100%;min-height:var(--control-h);height:auto;padding:var(--space-2) var(--space-5);box-shadow:none;text-align:left;text-transform:none;letter-spacing:normal;color:var(--text-strong);cursor:default;background:0 0;border:none;border-radius:0;align-self:auto;font-weight:400;line-height:1.5rem;display:flex}.al-practice button.project-band-head{cursor:pointer}.al-practice button.project-band-head:hover{background:var(--surface-alt);box-shadow:none}.al-practice .project-band-label{font-family:var(--al-font-brand);letter-spacing:2px;text-transform:uppercase;color:var(--al-gold-deep);flex-shrink:0;font-size:12px;font-weight:700}.al-practice .project-band-summary{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-size:var(--text-2xs);color:var(--text-muted);flex:1;overflow:hidden}.al-practice .project-band-summary b{color:var(--text-strong);font-weight:600}.al-practice .project-band-chevron{color:var(--text-muted);flex-shrink:0;margin-left:auto}.al-practice .project-band-body{min-width:0}.al-practice .project-statement{gap:var(--space-5);padding:var(--space-2) var(--space-5) var(--space-6);flex-direction:column;display:flex}.al-practice .project-facets{gap:var(--space-4) var(--space-6);grid-template-columns:repeat(auto-fit,minmax(16rem,1fr));align-items:start;display:grid}.al-practice .project-facets>div{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.al-practice .project-dataset{gap:var(--space-2);padding-top:var(--space-4);border-top:1px dashed var(--line-strong);flex-direction:column;display:flex}.al-practice .project-dataset-name{font-size:var(--text-xs);color:var(--text-strong);margin:0;font-weight:700}.al-practice .project-dataset-text{font-size:var(--text-xs)}.al-practice .project-dataset-tables{font-family:var(--font-sans);font-variant-numeric:tabular-nums;font-size:var(--text-3xs);letter-spacing:var(--track-soft);color:var(--text-muted);margin:0}.al-practice .project-dataset-tables b{color:var(--text-strong);font-weight:700}.al-practice .project-brief-head{align-items:center;gap:var(--space-2);font-family:var(--font-display);font-size:var(--text-3xs);letter-spacing:var(--track-tech);text-transform:var(--case-label);color:var(--text-muted);margin:0;font-weight:700;display:flex}.al-practice .project-brief-list{padding-left:var(--space-5);font-size:var(--text-2xs);color:var(--text-strong);margin:0}.al-practice .project-brief-list li+li{margin-top:var(--space-1)}.al-practice .project-brief-text{font-size:var(--text-2xs);color:var(--text-muted);margin:0}.al-practice .project-resources{gap:var(--space-2);font-size:var(--text-2xs);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.al-practice .project-resources a,.al-practice .project-resources span{align-items:center;gap:var(--space-2);display:inline-flex}.al-practice .project-resource-text{margin-top:var(--space-2);font-size:var(--text-2xs)}.al-practice .project-deliverables{gap:var(--space-2);padding:var(--space-2) var(--space-5) var(--space-4);flex-direction:column;display:flex}.al-practice .project-deliverables-count{font-family:var(--font-sans);font-variant-numeric:tabular-nums;letter-spacing:0;text-transform:none;margin-left:auto;font-weight:400}.al-practice .project-deliverables-list{gap:var(--space-1);flex-direction:column;margin:0;padding:0;list-style:none;display:flex}.al-practice .project-deliverables-list .checkbox-inline{font-size:var(--text-2xs);align-items:flex-start;line-height:1.5rem}.al-practice .project-deliverables-list .checkbox-inline input{margin-top:var(--space-1)}.al-practice .project-deliverables-list .checkbox-inline.done{color:var(--text-muted);text-decoration:line-through}.al-practice .project-atelier{flex-direction:column;min-width:0;display:flex}.al-practice .project-tabs{padding:0 var(--space-5);box-shadow:inset 0 -1px 0 var(--al-gold-line), inset 0 1px 0 var(--al-gold-line);flex-wrap:wrap;gap:22px;display:flex}.al-practice .project-state-strip{box-shadow:inset 0 -1px 0 var(--line-soft);flex-wrap:wrap;display:flex}.al-practice .project-state-cell{gap:var(--nudge-1);padding:var(--space-2) var(--space-5);flex-direction:column;min-width:0;display:flex}.al-practice .project-state-cell+.project-state-cell{box-shadow:inset 1px 0 0 var(--line-soft)}.al-practice .project-state-key{font-family:var(--font-sans);color:var(--al-ink-soft);font-size:12px;font-weight:700}.al-practice .project-state-value{font-family:var(--font-sans);font-variant-numeric:tabular-nums;color:var(--al-navy);font-size:15px;font-weight:900}.al-practice .project-state-value.ok{color:var(--success-dark)}.al-practice .project-state-value.bad{color:var(--al-danger)}.al-practice .project-state-value.stale{color:var(--al-gold-deep)}.al-practice .project-state-value.idle{color:var(--text-faint);font-weight:400}.al-practice .project-files-pane{padding:var(--space-4) var(--space-5) var(--space-5)}.al-practice .project-data{gap:var(--space-5);flex-direction:column;display:flex}.al-practice .project-data-table{gap:var(--space-2);flex-direction:column;min-width:0;display:flex}.al-practice .project-data-head{align-items:baseline;gap:var(--space-3);padding-bottom:var(--space-2);border-bottom:1px solid var(--line-soft);display:flex}.al-practice .project-data-name{font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-strong);font-weight:700}.al-practice .project-data-count{font-family:var(--font-mono);font-size:var(--text-4xs);letter-spacing:var(--track-tech);color:var(--text-faint);margin-left:auto}.al-practice .project-data-scroll{border:1px solid var(--line-soft);border-radius:var(--radius-sm);overflow-x:auto}.al-practice .project-data-scroll table{border-collapse:collapse;width:100%;font-family:var(--font-mono);font-size:var(--text-3xs)}.al-practice .project-data-scroll th{text-align:left;white-space:nowrap;padding:var(--space-2) var(--space-3);border-bottom:1px solid var(--line-soft);background:var(--surface-sunken);color:var(--text-strong);font-weight:700}.al-practice .project-data-scroll th span{font-weight:400;font-size:var(--text-4xs);letter-spacing:var(--track-tech);color:var(--text-faint);display:block}.al-practice .project-data-scroll td{white-space:nowrap;padding:var(--nudge-1) var(--space-3);border-bottom:1px solid var(--line-soft);color:var(--text-muted);font-variant-numeric:tabular-nums}.al-practice .project-data-scroll tbody tr:last-child td{border-bottom:0}.al-practice .project-data-null{color:var(--text-faint);font-style:italic}.al-practice .project-data-more{font-family:var(--font-mono);font-size:var(--text-4xs);letter-spacing:var(--track-tech);color:var(--text-faint);margin:0}.al-practice .project-data-starters{gap:var(--space-2);padding-top:var(--space-4);border-top:1px dashed var(--line-strong);flex-direction:column;display:flex}.al-practice .project-data-starters-label{font-family:var(--font-mono);font-size:var(--text-4xs);letter-spacing:var(--track-tech);text-transform:var(--case-tech);color:var(--text-faint);margin:0}.al-practice .project-empty{font-size:var(--text-2xs);color:var(--text-muted);margin:0;font-style:italic}.al-practice .project-actions{z-index:5;min-height:var(--project-actions-h);border-top:1px solid var(--al-gold-line);background:var(--al-card);border-radius:0 0 11px 11px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px 16px;padding:12px 20px;display:flex;position:sticky;bottom:0;box-shadow:0 -8px 18px -12px #0510484d}.al-practice .project-actions-hint{font-size:var(--text-2xs);color:var(--text-muted)}.al-practice .project-reset{height:auto;box-shadow:none;line-height:1.5rem;font-size:var(--text-2xs);text-transform:none;letter-spacing:normal;color:var(--text-muted);text-underline-offset:3px;text-decoration:underline;-webkit-text-decoration-color:var(--line-strong);text-decoration-color:var(--line-strong);background:0 0;border:none;border-radius:0;align-self:auto;padding:0;font-weight:400}.al-practice .project-reset:hover{color:var(--accent-strong);background:0 0;text-decoration-color:currentColor}.al-practice .project-reset:disabled{opacity:.5;cursor:default}.al-practice .project-save-state{align-items:center;gap:var(--space-2);color:var(--al-ink-soft);font-size:12.5px;display:inline-flex}.al-practice .project-grid-withdrawn{font-size:var(--text-xs);color:var(--warning-dark);margin:0;font-weight:700}.al-practice .project-verdict{gap:var(--space-1) var(--space-5);padding:var(--space-2) 0 var(--space-3);font-size:var(--text-xs);grid-template-columns:auto minmax(0,1fr);align-items:center;display:grid}.al-practice .project-verdict p{margin:0}.al-practice .project-verdict-score{font-family:var(--font-display);font-size:var(--text-2xl);letter-spacing:var(--track-tight);font-variant-numeric:tabular-nums;color:var(--success-dark);grid-row:span 2;font-weight:800;line-height:1}.al-practice .project-verdict-score.fail{color:var(--danger-strong)}.al-practice .project-verdict-score span{font-size:var(--text-sm);margin-left:var(--nudge-2);vertical-align:.7em}.al-practice .project-verdict-gauge{padding-bottom:var(--space-4);align-items:center;display:flex}.al-practice .project-meter{height:var(--space-2);border-radius:var(--radius-pill);background:var(--line-soft);flex:1;position:relative}.al-practice .project-meter-fill{border-radius:var(--radius-pill);background:var(--success);position:absolute;inset:0 auto 0 0}.al-practice .project-meter-fill.fail{background:var(--danger)}.al-practice .project-meter-tick{top:calc(var(--space-1) * -1);bottom:calc(var(--space-1) * -1);background:var(--text-strong);border-radius:var(--radius-hair);width:2px;position:absolute}.al-practice .project-meter-tick-label{top:calc(100% + var(--space-1));font-family:var(--font-sans);font-variant-numeric:tabular-nums;font-size:var(--text-4xs);color:var(--text-muted);white-space:nowrap;position:absolute;left:50%;transform:translate(-50%)}.al-practice .project-verdict-summary{color:var(--text-strong);grid-column:2}.al-practice .project-marks{gap:var(--space-1);flex-direction:column;display:flex}.al-practice .project-mark{gap:var(--space-2) var(--space-4);padding:var(--space-2) var(--space-4);border-left:3px solid var(--success);grid-template-columns:minmax(0,1fr) auto;display:grid}.al-practice .project-mark.mid{border-left-color:var(--warning)}.al-practice .project-mark.low{border-left-color:var(--accent-text)}.al-practice .project-mark.none{border-left-color:var(--line-strong);background:var(--surface-alt)}.al-practice .project-mark.pending{border-left-color:var(--line-strong)}.al-practice .project-mark-head{align-items:baseline;gap:var(--space-2);flex-wrap:wrap;min-width:0;display:flex}.al-practice .project-mark-label{color:var(--text-strong);font-weight:700}.al-practice .project-mark.none .project-mark-label{color:var(--text-muted)}.al-practice .project-mark-score{align-items:center;gap:var(--space-2);place-self:start end;display:inline-flex}.al-practice .project-mark-pips{gap:var(--nudge-2);display:inline-flex}.al-practice .project-pip{width:var(--dot-sm);height:var(--dot-sm);border-radius:var(--dot-radius);background:var(--line-strong)}.al-practice .project-mark.high .project-pip.on{background:var(--success)}.al-practice .project-mark.mid .project-pip.on{background:var(--warning)}.al-practice .project-mark.low .project-pip.on{background:var(--accent)}.al-practice .project-mark-num{font-family:var(--font-sans);font-variant-numeric:tabular-nums;font-size:var(--text-2xs);color:var(--text-strong);font-weight:700}.al-practice .project-mark.none .project-mark-num{color:var(--text-muted)}.al-practice .project-mark>p{grid-column:1/-1;margin:0}.al-practice .project-mark-expectation,.al-practice .project-mark-absent{font-size:var(--text-2xs);color:var(--text-muted)}.al-practice .project-mark-why{color:var(--text-strong)}.al-practice .project-mark-evidence{align-items:flex-start;gap:var(--space-2);padding:var(--pad-compact);border-radius:var(--radius-xs);background:var(--surface-sunken);font-family:var(--font-mono);font-size:var(--text-3xs);color:var(--text-muted);line-height:1.6;display:flex}.al-practice .project-mark-evidence svg{margin-top:var(--nudge-2);flex-shrink:0}.al-practice .project-weight{padding:0 var(--space-1);border:1px solid var(--line-strong);border-radius:var(--radius-xs);font-family:var(--font-sans);font-variant-numeric:tabular-nums;font-size:var(--text-4xs);color:var(--text-muted);flex-shrink:0;font-weight:700}.al-practice .project-criteria{gap:var(--space-4);padding:var(--space-2) var(--space-5) var(--space-5);flex-direction:column;display:flex}.al-practice .project-conversation{gap:var(--space-3);padding:var(--space-4) var(--space-5) var(--space-5);flex-direction:column;display:flex}.al-practice .project-turn{grid-template-columns:var(--icon-badge-md) minmax(0, 1fr);gap:var(--space-3);align-items:start;display:grid}.al-practice .project-turn-index{width:var(--icon-badge-md);height:var(--icon-badge-md);border-radius:var(--radius-xs);background:var(--surface-alt);border:1px solid var(--line-soft);color:var(--text-muted);font-size:var(--text-3xs);flex-shrink:0;justify-content:center;align-items:center;font-weight:700;display:flex}.al-practice .project-turn.failed .project-turn-index{background:var(--danger-bg);border-color:var(--danger-line);color:var(--danger-strong)}.al-practice .project-turn-body{gap:var(--space-1);flex-direction:column;min-width:0;display:flex}.al-practice .project-turn-text{font-size:var(--text-2xs);color:var(--text-strong);margin:0}.al-practice .project-turn-outcome{font-size:var(--text-3xs);color:var(--text-muted);overflow-wrap:anywhere}.al-practice .project-turn-outcome.failed{color:var(--danger-strong)}.al-practice .project-turn-files{gap:var(--space-1) var(--space-2);flex-wrap:wrap;display:flex}.al-practice .project-turn-file{align-items:center;gap:var(--space-1);max-width:100%;height:var(--control-h-xs);padding:0 var(--space-2);border:1px solid var(--line-soft);border-radius:var(--radius-xs);background:var(--surface-page);box-shadow:none;font-family:var(--font-mono);font-size:var(--text-4xs);text-transform:none;letter-spacing:normal;color:var(--text-strong);text-overflow:ellipsis;white-space:nowrap;align-self:auto;font-weight:400;line-height:1rem;display:inline-flex;overflow:hidden}.al-practice .project-turn-file:hover{background:var(--surface-alt);border-color:var(--line-strong)}.al-practice .project-turn-file svg{color:var(--text-muted);flex-shrink:0}.al-practice .project-turn.pending .project-turn-index{border-color:var(--accent-cool-line);background:var(--accent-cool-tint);color:var(--accent-cool-text)}.al-practice .project-turn-working{align-items:center;gap:var(--space-2);display:flex}.al-practice .project-turn-clock{font-family:var(--font-sans);font-variant-numeric:tabular-nums;font-size:var(--text-3xs);color:var(--text-strong);font-weight:700}.al-practice .project-turn-track{min-width:var(--space-8);border-radius:var(--radius-pill);background:var(--line-soft);flex:1;height:2px;display:block;overflow:hidden}.al-practice .project-turn-shuttle{border-radius:var(--radius-pill);background:linear-gradient(90deg, transparent, var(--accent), var(--accent-cool), transparent);width:34%;height:100%;animation:1.15s ease-in-out infinite indeterminate-slide;display:block}.al-practice .project-turn-cost{font-size:var(--text-3xs);color:var(--text-muted);font-variant-numeric:tabular-nums}.al-practice .project-turn-answer{gap:var(--space-1);flex-direction:column;align-items:flex-start;display:flex}.al-practice .project-turn-answer-toggle{align-items:center;gap:var(--space-1);height:auto;box-shadow:none;font-size:var(--text-3xs);text-transform:none;letter-spacing:normal;color:var(--text-muted);background:0 0;border:none;align-self:flex-start;padding:0;font-weight:700;display:inline-flex}.al-practice .project-turn-answer-toggle:hover{color:var(--text-strong);background:0 0}.al-practice .project-turn-answer-toggle svg{transition:transform .16s}.al-practice .project-turn-answer-toggle svg.open{transform:rotate(90deg)}.al-practice .project-turn-answer-body{border-left:2px solid var(--line-soft);padding-left:var(--space-3);gap:var(--space-2);flex-direction:column;display:flex}.al-practice .project-turn-answer-body>p{font-size:var(--text-2xs);color:var(--text-strong);white-space:pre-wrap;overflow-wrap:anywhere;margin:0}.al-practice .project-turn-answer-warning{background:var(--warning-bg);border-radius:var(--radius-xs);padding:var(--space-2);color:var(--warning-dark);font-size:var(--text-3xs)}.al-practice .project-composer{bottom:calc(var(--project-actions-h) - 1px);z-index:4;gap:var(--space-2);margin:0 calc(-1 * var(--space-5));padding:var(--space-3) var(--space-5);border-top:1px solid var(--al-gold-line);background:var(--al-panel);flex-direction:column;display:flex;position:sticky}.al-practice .project-composer-frame{border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--surface-page);flex-direction:column;transition:border-color .15s,box-shadow .15s;display:flex}.al-practice .project-composer-frame:focus-within{border-color:var(--accent-text);box-shadow:0 0 0 1px var(--line-ink)}.al-practice .project-composer-frame.busy{background:var(--surface-alt)}.al-practice .project-composer-frame textarea.auto-textarea{background:0 0;border:none;border-radius:0;width:100%}.al-practice .project-composer-frame textarea.auto-textarea:focus{box-shadow:none;border-color:#0000}.al-practice .project-composer-foot{justify-content:space-between;align-items:center;gap:var(--space-3);padding:0 var(--space-2) var(--space-2) var(--space-3);display:flex}.al-practice .project-composer-hint{font-size:var(--text-3xs);color:var(--text-muted)}.al-practice .project-composer-send{height:var(--control-h-sm);width:var(--control-h-sm);flex:none;align-self:center;padding:0}.al-practice .project-composer-send:disabled{background:var(--surface-hover);color:var(--text-muted);cursor:default;transform:none}.al-practice .project-files{gap:var(--space-4);grid-template-columns:minmax(0,16rem) minmax(0,1fr);align-items:start;display:grid}.al-practice .project-file-list{margin:0;padding:0;list-style:none}.al-practice .project-file-dir{margin:var(--space-2) 0 var(--nudge-2);font-family:var(--font-mono);font-size:var(--text-4xs);color:var(--text-muted)}.al-practice .project-file-list>li:first-child .project-file-dir{margin-top:0}.al-practice .project-file-group{padding:0 0 0 var(--space-2);gap:var(--nudge-2);flex-direction:column;margin:0;list-style:none;display:flex}.al-practice .project-file{justify-content:flex-start;align-items:center;gap:var(--space-2);width:100%;height:auto;padding:var(--space-1) var(--space-2);border-radius:var(--radius-xs);box-shadow:none;cursor:pointer;font-family:var(--font-mono);font-size:var(--text-3xs);letter-spacing:0;text-transform:none;color:var(--text-muted);text-align:left;background:0 0;border:none;font-weight:400;line-height:1.5;display:flex}.al-practice .project-file:hover{background:var(--surface-alt);color:var(--text-strong)}.al-practice .project-file.active{background:var(--accent-tint);color:var(--accent-strong)}.al-practice .project-file-name{white-space:nowrap;min-width:0;display:flex}.al-practice .project-file-stem{text-overflow:ellipsis;overflow:hidden}.al-practice .project-file-dot{width:var(--dot-sm);height:var(--dot-sm);border-radius:var(--dot-radius);background:var(--accent-strong);flex-shrink:0;margin-left:auto}.al-practice .project-file-view{border:1px solid var(--line-soft);border-radius:var(--radius-sm);min-width:0;overflow:hidden}.al-practice .project-dock{border-top:1px solid var(--ide-line);background:var(--ide-ground)}.al-practice .project-dock-toggle{align-items:center;gap:var(--space-2);border:1px solid var(--al-gold-line);background:var(--al-card);height:36px;box-shadow:none;cursor:pointer;text-align:left;text-transform:none;letter-spacing:normal;font-family:var(--font-sans);color:var(--al-navy);border-radius:8px;align-self:auto;padding:0 12px;font-size:13px;font-weight:800;display:inline-flex}.al-practice .project-dock-toggle:hover{background:var(--al-panel);border-color:var(--al-gold);box-shadow:none}.al-practice .project-dock-toggle svg:last-child{color:var(--al-ink-soft)}.al-practice .project-dock-summary{color:var(--ide-soft);font-size:12px;font-weight:400}.al-practice .project-dock-summary.stale{color:var(--al-gold);font-weight:700}.al-practice .project-dock-body{background:var(--ide-ground);padding:12px 16px;overflow:auto}.al-practice .project-terminal{gap:var(--space-3);color:var(--ide-text);background:0 0;flex-direction:column;display:flex}.al-practice .project-terminal-step{grid-template-columns:var(--icon-badge-sm) minmax(0, 1fr);gap:var(--space-2) var(--space-3);align-items:center;display:grid}.al-practice .project-terminal-command{font-family:var(--font-mono);font-size:var(--text-3xs);color:var(--console-text);font-weight:700}.al-practice .project-terminal-output{font-family:var(--font-mono);color:var(--ide-soft);white-space:pre-wrap;grid-column:2;margin:0;font-size:12px;line-height:1.6;overflow-x:auto}.al-practice .project-note{padding:var(--space-5);border-top:1px solid var(--line-soft)}.al-practice .project-block>.error{padding:0 var(--space-5) var(--space-5);margin:0}.al-practice .confirm-backdrop{z-index:60;padding:var(--space-4);background:var(--scrim);-webkit-backdrop-filter:blur(2px);justify-content:center;align-items:center;display:flex;position:fixed;inset:0;overflow-y:auto}.al-practice .confirm-dialog{gap:var(--space-4);width:min(28rem,100%);padding:var(--pad-card);border:1px solid var(--float-line);border-radius:var(--radius-md);background:var(--surface-card);box-shadow:var(--shadow-float);animation:confirm-in var(--dur-base) var(--ease-out) both;flex-direction:column;display:flex}.al-practice .confirm-title{font-size:var(--text-md);letter-spacing:var(--track-tight);margin:0;font-weight:600;line-height:1.5rem}.al-practice .confirm-body{font-size:var(--text-xs);color:var(--text-muted);line-height:1.25rem}.al-practice .confirm-consequence{align-items:flex-start;gap:var(--space-2);padding:var(--space-3);border-radius:var(--radius-xs);background:var(--danger-bg);box-shadow:inset 2px 0 0 var(--danger);color:var(--danger-strong);font-size:var(--text-2xs);line-height:1.125rem;display:flex}.al-practice .confirm-consequence svg{margin-top:var(--nudge-1);flex:none}.al-practice .confirm-consequence-neutral{background:var(--surface-alt);color:var(--text-muted);box-shadow:inset 2px 0 0 var(--line-strong)}.al-practice .confirm-actions{justify-content:flex-end;gap:var(--space-2);display:flex}.al-practice .confirm-actions button{height:var(--control-h-sm);padding:0 var(--space-3)}.al-practice .site-nav-link-alerting{align-items:center;display:inline-flex}.al-practice .site-nav-alert{min-width:1rem;height:1rem;padding:0 var(--space-1);border-radius:var(--radius-xs);background:var(--accent);color:var(--text-on-accent);font-family:var(--font-mono);font-size:var(--text-4xs);font-variant-numeric:tabular-nums;cursor:default;justify-content:center;align-items:center;display:inline-flex}.al-practice .confirm-dialog .filter-search{width:auto}.al-practice .formation-tabs-trailing{align-items:center;gap:var(--space-3);align-self:center;margin-left:auto;display:flex}.al-practice .formation-tabs-trailing .level-switch{margin-left:0}.al-practice .formation-tab{height:42px;box-shadow:none;color:var(--al-navy);opacity:.7;gap:var(--space-2);white-space:nowrap;line-height:1rem;font-family:var(--al-font-brand);letter-spacing:2px;text-transform:uppercase;transition:opacity var(--dur-fast) ease, box-shadow var(--dur-fast) ease;background:0 0;border:none;border-radius:0;align-self:auto;padding:0;font-size:13px;font-weight:600;position:relative}.al-practice .formation-tab:hover{color:var(--al-navy);opacity:1;box-shadow:none;background:0 0;border:none}.al-practice .formation-tab-index{display:var(--index-display);font-family:var(--font-sans);font-variant-numeric:tabular-nums;font-size:var(--text-4xs);color:var(--text-faint)}.al-practice .formation-tab[aria-selected=true]{color:var(--al-navy);opacity:1;box-shadow:inset 0 -2px 0 var(--al-gold);background:0 0}.al-practice .formation-tab[aria-selected=true] .formation-tab-index{color:var(--accent-on-ink)}.al-practice .formation-tab-count{font-family:var(--font-sans);font-variant-numeric:tabular-nums;letter-spacing:0;color:var(--al-gold-deep);font-size:12px;font-weight:700}.al-practice .exercise-kicker{align-items:center;gap:var(--space-2);font-family:var(--al-font-brand);letter-spacing:3px;text-transform:uppercase;color:var(--al-gold-deep);font-size:17px;font-weight:800;line-height:1;display:inline-flex}.al-practice .exercise-kicker svg{color:var(--al-gold)}.al-practice .exercise-header .status-pill{margin-left:auto}.al-practice .project-header .project-title{color:var(--al-navy);flex-basis:100%;order:3;font-size:18px;font-weight:800;line-height:1.35}.al-practice .project-header{padding-bottom:14px}.al-practice .exercise-workbench{flex-direction:column;gap:12px;min-width:0;display:flex}.al-practice .exercise-ide{border:1px solid var(--al-gold-line);background:var(--al-card);border-radius:10px;flex-direction:column;min-width:0;display:flex;overflow:hidden}.al-practice .editor-file{font-family:var(--font-mono);color:var(--ide-text);font-size:12px;font-weight:600}.al-practice .editor-tools{align-items:center;gap:2px;margin-left:auto;display:inline-flex}.al-practice .editor-tool{height:28px;box-shadow:none;color:var(--ide-soft);font-family:var(--font-sans);letter-spacing:normal;text-transform:none;background:0 0;border:none;border-radius:6px;align-self:auto;align-items:center;gap:6px;padding:0 8px;font-size:12px;font-weight:700;display:inline-flex}.al-practice .editor-tool:hover{color:var(--al-white);background:#ffffff14;border:none}.al-practice .editor-tool[aria-pressed=true],.al-practice .editor-tool.is-strong{color:var(--al-gold)}.al-practice .editor-tool:disabled{opacity:.4}.al-practice .editor-undo{margin-left:var(--space-3);color:var(--ide-text);align-items:center;gap:4px;font-size:12px;display:inline-flex}.al-practice .code-editor{background:var(--ide-ground);flex-direction:column;display:flex}.al-practice .code-editor-surface{background:var(--ide-ground);min-height:0}.al-practice .resize-grip{background:var(--ide-band);border-top:1px solid var(--ide-line);cursor:ns-resize;touch-action:none;outline:none;flex-shrink:0;place-items:center;height:14px;display:grid}.al-practice .resize-grip span{width:36px;height:4px;transition:background var(--dur-fast) ease, width var(--dur-fast) ease;background:#c9cff073;border-radius:999px}.al-practice .resize-grip:hover span,.al-practice .resize-grip:focus-visible span,.al-practice .resize-grip.is-dragging span{background:var(--al-gold);width:52px}.al-practice .resize-grip:focus-visible{box-shadow:inset 0 0 0 2px var(--al-gold)}.al-practice .resize-grip.is-vertical{z-index:3;cursor:ew-resize;background:0 0;border-top:0;width:12px;height:auto;margin-left:-6px;position:relative}.al-practice .resize-grip.is-vertical:before{content:"";width:2px;transition:background-color var(--dur-fast) ease;background:0 0;position:absolute;top:0;bottom:0;left:5px}.al-practice .resize-grip.is-vertical span{border:1px solid var(--al-gold-line);background:var(--al-card);width:6px;height:44px;transition:background-color var(--dur-fast) ease, border-color var(--dur-fast) ease, height var(--dur-fast) ease;position:relative}.al-practice .resize-grip.is-vertical:hover:before,.al-practice .resize-grip.is-vertical:focus-visible:before,.al-practice .resize-grip.is-vertical.is-dragging:before{background:var(--al-gold)}.al-practice .resize-grip.is-vertical:hover span,.al-practice .resize-grip.is-vertical:focus-visible span,.al-practice .resize-grip.is-vertical.is-dragging span{border-color:var(--al-gold);background:var(--al-gold);width:6px;height:60px}.al-practice .resize-grip.is-vertical:focus-visible{box-shadow:none}.al-practice .exercise-run-note{color:var(--al-ink-soft);flex:280px;margin:0;font-size:13px;line-height:1.45}.al-practice .exercise-run-note b{color:var(--al-navy);font-weight:800}.al-practice .exercise-console{border-top:1px solid var(--al-gold-line);background:var(--al-card)}.al-practice .console-tabs{border-bottom:1px solid var(--al-gold-line);gap:22px;padding:0 16px;display:flex}.al-practice .console-tab{height:40px;box-shadow:none;color:var(--al-navy);opacity:.7;font-family:var(--al-font-brand);letter-spacing:2px;text-transform:uppercase;background:0 0;border:none;border-radius:0;align-self:auto;align-items:center;gap:8px;padding:0;font-size:12.5px;font-weight:600;display:inline-flex}.al-practice .console-tab:hover{opacity:1;background:0 0;border:none}.al-practice .console-tab[aria-selected=true]{opacity:1;box-shadow:inset 0 -2px 0 var(--al-gold)}.al-practice .console-count{font-family:var(--font-sans);letter-spacing:0;font-variant-numeric:tabular-nums;border-radius:999px;padding:1px 7px;font-size:11.5px;font-weight:800}.al-practice .console-count.ok{background:var(--al-success-wash);color:var(--al-success)}.al-practice .console-count.fail{background:var(--al-danger-wash);color:var(--al-danger)}.al-practice .console-empty{color:var(--al-ink-soft);margin:0;padding:14px 16px;font-size:14px}.al-practice .console-input{gap:10px;padding:14px 16px;display:grid}.al-practice .console-label{color:var(--al-navy);font-size:13px;font-weight:800}.al-practice textarea.console-stdin{border:1px solid var(--al-gold-line);background:var(--al-panel);width:100%;min-height:92px;color:var(--al-navy);font-family:var(--font-mono);resize:vertical;border-radius:8px;padding:8px 10px;font-size:13px;line-height:1.5}.al-practice textarea.console-stdin:focus{border-color:var(--al-gold);outline:none;box-shadow:0 0 0 3px #c2a24e40}.al-practice .console-input-bar{flex-wrap:wrap;align-items:center;gap:8px 12px;display:flex}.al-practice .console-input-bar .btn-run{align-self:auto;height:36px}.al-practice .console-hint{color:var(--al-ink-soft);font-size:12.5px}.al-practice .console-output{gap:4px;display:grid}.al-practice .console-output pre{background:var(--ide-ground);max-height:260px;color:var(--ide-text);font-family:var(--font-mono);white-space:pre-wrap;border-radius:8px;margin:0 0 6px;padding:10px 12px;font-size:12.5px;line-height:1.5;overflow:auto}.al-practice .console-output pre.is-error{background:var(--al-danger-wash);color:var(--al-danger)}.al-practice .exercise-success{background:var(--al-success-wash);color:var(--al-success);border:1px solid #11824a40;border-radius:10px;flex-wrap:wrap;align-items:center;gap:10px 12px;padding:12px 16px;font-size:14px;display:flex}.al-practice .exercise-success-icon{background:var(--al-success);width:26px;height:26px;color:var(--al-white);border-radius:999px;flex-shrink:0;place-items:center;display:inline-grid}.al-practice .exercise-success-text b{color:var(--al-success);font-weight:800}.al-practice .exercise-success .exercise-next{align-self:auto;height:36px;margin-left:auto}.al-practice .exercise-block.is-full{z-index:400;background:var(--al-page);border:0;border-radius:0;flex-direction:column;margin:0;display:flex;position:fixed;inset:0}.al-practice .exercise-block.is-full .exercise-header{border-bottom:1px solid var(--al-gold-line);background:var(--al-card);padding:14px 24px}.al-practice .exercise-block.is-full .exercise-body{grid-template-columns:minmax(260px, var(--exercise-statement-w,36%)) 0 minmax(min(420px, 50%), 1fr);flex:1;gap:0;min-height:0;padding:0;display:grid}.al-practice .exercise-block.is-full .exercise-statement{border-right:1px solid var(--al-gold-line);background:var(--al-panel);min-height:0;padding:22px 26px;overflow-y:auto}.al-practice .exercise-block.is-full .exercise-workbench{min-height:0;padding:16px 20px;overflow:hidden}.al-practice .exercise-block.is-full .exercise-ide{flex:1;min-height:0}.al-practice .exercise-block.is-full .code-editor{flex:1;min-height:160px}.al-practice .exercise-block.is-full .code-editor-surface{flex:1}.al-practice .exercise-block.is-full .exercise-console{max-height:36vh;overflow-y:auto}.al-practice .exercise-block.is-full .exercise-console.is-sized{flex:0 1 var(--exercise-console-h);min-height:120px;max-height:none}.al-practice .project-actions-run,.al-practice .project-actions-end{flex-wrap:wrap;align-items:center;gap:10px;display:inline-flex}.al-practice .project-actions-end{margin-left:auto}.al-practice .project-actions .btn-run,.al-practice .project-actions .btn-submit,.al-practice .project-actions .btn-secondary{align-self:auto;height:36px}.al-practice .project-actions-hint{color:var(--al-ink-soft);flex-basis:100%;font-size:12.5px}.al-practice .project-dock-head{align-items:center;gap:var(--space-3);min-height:38px;padding:0 var(--space-2) 0 var(--space-4);background:var(--ide-band);box-shadow:inset 0 -1px 0 var(--ide-line);flex-wrap:wrap;display:flex}.al-practice .project-dock-title{align-items:center;gap:var(--space-2);color:var(--al-white);font-size:13px;font-weight:800;display:inline-flex}.al-practice .project-terminal-command{color:var(--ide-text)}.al-practice .project-terminal .test-icon.pass{background:var(--al-success)}.al-practice .project-terminal .test-icon.fail{background:var(--al-danger)}.al-practice .terminal-line .tone-dim{color:var(--ide-dim)}.al-practice .terminal-line .tone-ok{color:var(--ide-ok);font-weight:600}.al-practice .terminal-line .tone-fail{color:var(--ide-fail);font-weight:600}.al-practice .terminal-line .tone-warn{color:var(--ide-warn);font-weight:600}.al-practice .project-dock.is-full,.al-practice .project-files.is-full{z-index:400;margin:0;position:fixed;inset:0}.al-practice .project-dock.is-full{flex-direction:column;display:flex}.al-practice .project-dock.is-full .project-dock-body{flex:1;min-height:0}.al-practice .project-files.is-full{grid-template-columns:minmax(160px, var(--project-file-list-w,16rem)) 0 minmax(min(420px, 50%), 1fr);background:var(--al-page);align-items:stretch;gap:0;padding:0}.al-practice .project-files.is-full .project-file-list{border-right:1px solid var(--al-gold-line);background:var(--al-panel);padding:16px;overflow-y:auto}.al-practice .project-files.is-full .project-file-view{border:0;border-radius:0;flex-direction:column;min-height:0;display:flex}.al-practice .project-files.is-full .code-editor{flex:1;min-height:0}.al-practice .project-files.is-full .code-editor-surface{flex:1}.al-practice .project-turn-answer-body .markdown-body{box-shadow:none;color:var(--al-navy);background:0 0;border:0;border-radius:0;padding:0;font-size:13.5px;line-height:1.55}.al-practice .project-turn-answer-body .markdown-body p{margin:0 0 8px}.al-practice .project-header .project-reset{margin-left:var(--space-2)}.al-practice .markdown-image-text{color:var(--al-ink-soft);font-style:italic}.al-practice .project-turn-answer-body .markdown-body>:first-child{margin-top:0}.al-practice .project-turn-answer-body .markdown-body>:last-child{margin-bottom:0}.al-practice .project-starters-hint{font-size:var(--text-3xs);color:var(--text-muted);margin:0}.al-practice .project-starters-sub{margin:var(--space-2) 0 var(--space-1);font-size:var(--text-3xs);color:var(--text-strong);font-weight:700}.al-practice span.project-turn-file{cursor:default}.al-practice .project-file-origin{padding:0 var(--space-1);border-radius:var(--radius-xs);font-family:var(--font-sans);font-size:var(--text-4xs);white-space:nowrap;background:var(--accent-tint);color:var(--accent-strong);flex-shrink:0;margin-left:auto;font-weight:700;line-height:1.5}.al-practice .project-file-dot+.project-file-origin{margin-left:var(--space-1)}.al-practice .project-file-origin.is-start{background:var(--accent-cool-tint);color:var(--accent-cool-text)}.al-practice .project-file-origin.is-agent{background:var(--success-bg);color:var(--success-dark)}.al-practice .project-carry{align-items:center;gap:var(--space-3);margin:0 var(--space-5) var(--space-3);padding:var(--space-3) var(--space-4);border:1px solid var(--line-soft);border-radius:var(--radius-sm);background:var(--accent-tint);color:var(--text-strong);font-size:var(--text-2xs);line-height:1.45;display:flex}.al-practice .project-carry svg{color:var(--accent-strong);flex-shrink:0}.al-practice .project-carry p{flex:1;margin:0}.al-practice .project-carry-link{height:auto;box-shadow:none;font-family:var(--font-sans);font-size:var(--text-3xs);letter-spacing:0;text-transform:none;text-underline-offset:3px;color:var(--text-strong);cursor:pointer;background:0 0;border:none;flex-shrink:0;padding:0;font-weight:700;text-decoration:underline}.al-practice .project-turn-activity{gap:var(--space-1);margin:var(--space-2) 0 0;padding:var(--space-2) var(--space-3);border-radius:var(--radius-sm);background:var(--surface-alt);box-shadow:inset 0 0 0 1px var(--line-soft);flex-direction:column;list-style:none;display:flex}.al-practice .project-turn-activity li{align-items:center;gap:var(--space-2);font-size:var(--text-3xs);color:var(--text-muted);grid-template-columns:3.5rem .5rem minmax(0,1fr);animation:.25s both project-activity-in;display:grid}.al-practice .project-turn-activity time{font-family:var(--font-mono);font-variant-numeric:tabular-nums;text-align:right;color:var(--text-faint)}.al-practice .project-turn-activity code{font-family:var(--font-mono);font-size:var(--text-4xs);color:var(--text-strong);overflow-wrap:anywhere}.al-practice .project-turn-activity-dot{width:var(--dot-sm);height:var(--dot-sm);border-radius:var(--dot-radius);background:var(--success)}.al-practice .project-turn-activity li.is-live .project-turn-activity-dot{background:var(--accent-strong);animation:1s ease-in-out infinite project-activity-pulse}@media (prefers-reduced-motion:reduce){.al-practice .project-turn-activity li,.al-practice .project-turn-activity li.is-live .project-turn-activity-dot{animation:none}}.al-practice .project-actions-note{font-size:var(--text-3xs);color:var(--text-muted)}@keyframes pop-in{0%{opacity:0;transform:translateY(calc(-1 * var(--space-1)))}to{opacity:1;transform:none}}@keyframes cell-blink{0%,to{opacity:.15}40%{opacity:1}}@keyframes indeterminate-slide{0%{transform:translate(-110%)}to{transform:translate(300%)}}@keyframes pill-pulse{0%,to{opacity:1}50%{opacity:.25}}@keyframes spin{to{transform:rotate(360deg)}}@keyframes confirm-in{0%{opacity:0;transform:translateY(var(--space-2))}to{opacity:1;transform:none}}@keyframes project-activity-in{0%{opacity:0;transform:translateY(3px)}}@keyframes project-activity-pulse{50%{opacity:.3}}
