.automata-editor{--bg:oklch(97% 0 0);--surface:oklch(100% 0 0);--fg:oklch(23.5% 0 0);--muted:oklch(55.9% .033 259.6);--border:oklch(93.3% .007 295.4);--accent:oklch(48.3% .205 266.6);--accent-soft:oklch(95% .03 266.6);--fg-soft:color-mix(in oklch, var(--fg) 5%, var(--surface));--font-display:"Avenir Next", "Helvetica Neue", sans-serif;--font-body:"IBM Plex Sans", "Segoe UI", sans-serif;--font-mono:"SFMono-Regular", Consolas, monospace;--shadow:0 8px 24px color-mix(in oklch, var(--fg) 10%, transparent);--radius-sm:4px;--radius-md:6px;--radius-lg:8px;height:100%;min-height:520px;color:var(--fg);background:var(--bg);font-family:var(--font-body);-webkit-font-smoothing:antialiased;isolation:isolate;flex-direction:column;font-size:13px;line-height:1.4;display:flex;position:relative;overflow:hidden}.automata-editor *,.automata-editor :before,.automata-editor :after{box-sizing:border-box}.automata-editor button,.automata-editor input{color:inherit;font:inherit}.automata-editor button{cursor:pointer}.automata-editor button,.automata-editor input{outline:none}.automata-editor button:focus-visible,.automata-editor input:focus-visible{box-shadow:0 0 0 2px var(--surface), 0 0 0 4px var(--accent)}.automata-editor svg{display:block}.automata-editor__header{z-index:20;border-bottom:1px solid var(--border);background:var(--surface);align-items:center;gap:8px;min-width:0;min-height:56px;padding:0 12px;display:flex;position:relative}.automata-editor__header-content{flex:auto;min-width:0}.automata-editor__header-content>.editor-header-card{display:grid}.automata-editor__header-panel-button,.automata-editor__icon-button,.automata-editor__tool-button{color:var(--fg);cursor:pointer;background:0 0;border:0;flex:none;place-items:center;display:inline-grid}.automata-editor__header-panel-button{order:initial;border-radius:var(--radius-sm);width:34px;height:34px;margin-left:0}.automata-editor__header-panel-button svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.automata-editor__header-panel-button:hover,.automata-editor__header-panel-button[aria-pressed=true],.automata-editor__icon-button:hover,.automata-editor__tool-button:hover:not(:disabled),.automata-editor__tool-button:focus-visible{background:var(--fg-soft)}.automata-editor__workspace{flex:auto;grid-template-columns:252px minmax(0,1fr) auto;min-height:0;display:grid;position:relative}.automata-editor__stage{grid-column:2;min-width:0;min-height:0;position:relative}.automata-editor__canvas-shell{background-color:var(--bg);background-image:radial-gradient(circle, color-mix(in oklch, var(--muted) 28%, transparent) 1px, transparent 1px);touch-action:none;background-size:20px 20px;height:100%;min-height:464px;position:relative;overflow:hidden}.automata-editor__canvas{touch-action:none;-webkit-user-select:none;user-select:none;outline:none;width:100%;height:100%;min-height:464px;display:block}.automata-editor__canvas-hint{z-index:4;border:1px solid var(--border);border-radius:var(--radius-sm);background:color-mix(in oklch, var(--surface) 92%, transparent);color:var(--muted);pointer-events:none;align-items:center;gap:8px;padding:7px 9px;font-size:11px;display:flex;position:absolute;top:14px;left:16px}.automata-editor__canvas--select{cursor:default}.automata-editor__canvas--hand{cursor:grab}.automata-editor__canvas--hand:active{cursor:grabbing}.automata-editor__canvas--add-state{cursor:copy}.automata-editor__canvas--connect{cursor:crosshair}.automata-editor__grid{pointer-events:all}.automata-editor__edges,.automata-editor__states{overflow:visible}.automata-editor__edge{color:var(--muted);cursor:pointer;outline:none}.automata-editor__edge-path{fill:none;stroke:color-mix(in oklch, var(--muted) 85%, var(--fg));stroke-width:1.5px;vector-effect:non-scaling-stroke;transition:stroke .14s,stroke-width .14s}.automata-editor__edge.is-active .automata-editor__edge-path{opacity:0}.automata-editor__edge-flow{fill:none;stroke:var(--accent);stroke-width:2.8px;stroke-linecap:round;stroke-dasharray:1 10;stroke-dashoffset:0;opacity:.68;vector-effect:non-scaling-stroke;pointer-events:none;animation:.9s linear infinite automata-editor-edge-flow}.automata-editor__arrow-active{fill:var(--accent);opacity:.68}.automata-editor__edge-hit{fill:none;stroke:#0000;stroke-width:16px;vector-effect:non-scaling-stroke;pointer-events:stroke}.automata-editor__edge-label{pointer-events:all;cursor:pointer}.automata-editor__edge-label rect{fill:var(--surface);stroke:var(--border);stroke-width:1px;vector-effect:non-scaling-stroke}.automata-editor__edge-label text{fill:var(--fg);font-family:var(--font-mono);font-size:12px;font-weight:500}.automata-editor__edge-label.has-rows{pointer-events:none}.automata-editor__edge-label-row{pointer-events:all;cursor:pointer;outline:none}.automata-editor__edge-label-row rect{fill:#0000;stroke:#0000;vector-effect:non-scaling-stroke}.automata-editor__edge-label-row text{fill:var(--fg);font-size:11px}.automata-editor__edge-label-row.is-active rect,.automata-editor__edge-label-row:focus-visible rect{fill:var(--accent-soft);stroke:var(--accent)}.automata-editor__edge-label-row.is-invalid text{fill:var(--fg);-webkit-text-decoration:underline wavy;text-decoration:underline wavy;-webkit-text-decoration-color:var(--muted);text-decoration-color:var(--muted)}.automata-editor__label-separator{fill:var(--muted)!important}.automata-editor__edge.is-selected,.automata-editor__edge:focus-visible{color:var(--accent)}.automata-editor__edge.is-selected .automata-editor__edge-path,.automata-editor__edge:focus-visible .automata-editor__edge-path{stroke-width:2.1px}.automata-editor__edge.is-selected .automata-editor__edge-label rect,.automata-editor__edge:focus-visible .automata-editor__edge-label rect{fill:var(--accent-soft);stroke:var(--accent)}.automata-editor__edge.is-active{color:var(--accent)}.automata-editor__edge.is-active .automata-editor__edge-path{stroke-width:2.3px}.automata-editor__edge.is-active .automata-editor__edge-label rect{fill:var(--accent-soft);stroke:color-mix(in oklch, var(--accent) 45%, var(--border))}.automata-editor__edge.is-selected.is-active .automata-editor__edge-label rect{stroke:var(--accent)}.automata-editor__edge.is-invalid{color:var(--fg)}.automata-editor__edge.is-invalid .automata-editor__edge-label rect{stroke:var(--fg);stroke-dasharray:3 2}.automata-editor__connection-preview{pointer-events:none}.automata-editor__connection-preview path{fill:none;stroke:var(--accent);stroke-width:1.5px;stroke-dasharray:6 4;vector-effect:non-scaling-stroke}.automata-editor__state{cursor:pointer;outline:none}.automata-editor__state-focus,.automata-editor__state-selection,.automata-editor__state-accepting,.automata-editor__state-body{vector-effect:non-scaling-stroke}.automata-editor__state-focus{fill:none;stroke:#0000;stroke-width:2px}.automata-editor__state-selection{fill:none;stroke:var(--accent);stroke-width:1px;stroke-dasharray:3 4}.automata-editor__state-body{fill:var(--surface);stroke:var(--muted);stroke-width:2px;transition:fill .14s,stroke .14s,stroke-width .14s}.automata-editor__state-accepting{fill:none;stroke:currentColor;stroke-width:1.7px}.automata-editor__state-label{fill:var(--fg);font-family:var(--font-mono);pointer-events:none;font-size:14px;font-weight:650}.automata-editor__state-output-divider{fill:none;stroke:var(--border);stroke-width:1px;vector-effect:non-scaling-stroke;pointer-events:none}.automata-editor__state-output{fill:var(--fg);font-family:var(--font-mono);pointer-events:none;font-size:13px;font-weight:650}.automata-editor__state-output.is-active{fill:var(--accent);font-weight:750}.automata-editor__state-output.is-invalid{-webkit-text-decoration:underline wavy;text-decoration:underline wavy;-webkit-text-decoration-color:var(--muted);text-decoration-color:var(--muted)}.automata-editor__state:not(.is-selected):hover .automata-editor__state-body,.automata-editor__state:focus-visible .automata-editor__state-body{stroke:var(--accent)}.automata-editor__state:focus-visible .automata-editor__state-focus{stroke:var(--accent);stroke-width:2px;stroke-dasharray:2 4}.automata-editor__state.is-selected .automata-editor__state-body{fill:var(--surface);stroke:var(--accent);stroke-width:2.5px}.automata-editor__state.is-active .automata-editor__state-body{fill:var(--accent-soft);stroke:var(--accent);stroke-width:2.6px}.automata-editor__state.is-active-source:not(.is-active-target) .automata-editor__state-body{fill:color-mix(in oklch, var(--accent-soft) 62%, var(--surface));stroke:color-mix(in oklch, var(--accent) 68%, var(--muted))}.automata-editor__state.is-active-target .automata-editor__state-body{fill:var(--accent-soft);stroke:var(--accent);animation:1.1s ease-out infinite automata-editor-state-arrival}.automata-editor__state.is-active .automata-editor__state-accepting,.automata-editor__state.is-active-target .automata-editor__state-accepting{stroke:var(--accent)}.automata-editor__state.is-invalid .automata-editor__state-body{fill:var(--surface);stroke:var(--fg);stroke-dasharray:5 3}.automata-editor__state.is-invalid .automata-editor__state-accepting{stroke:var(--fg)}.automata-editor__state.is-connecting .automata-editor__state-body{fill:var(--accent-soft);stroke:var(--accent);stroke-width:3px;stroke-dasharray:4 3}.automata-editor__start-arrow{fill:none;stroke:var(--muted);stroke-width:1.5px;vector-effect:non-scaling-stroke;pointer-events:none}.automata-editor__toolbar,.automata-editor__zoom{z-index:12;border:1px solid var(--border);border-radius:var(--radius-lg);background:var(--surface);box-shadow:var(--shadow);align-items:center;gap:2px;padding:5px;display:flex;position:absolute}.automata-editor__toolbar{bottom:18px;left:50%;transform:translate(-50%)}.automata-editor__zoom{box-shadow:0 3px 10px color-mix(in oklch, var(--fg) 7%, transparent);border-radius:7px;gap:2px;padding:4px;bottom:18px;right:14px}.automata-editor__tool-group{align-items:center;gap:2px;display:flex}.automata-editor__toolbar-divider,.automata-editor__zoom-divider{background:var(--border);width:1px;height:24px;margin:0 4px}.automata-editor__tool-button{border-radius:5px;width:40px;height:40px;position:relative}.automata-editor__tool-button svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.automata-editor__tool-button .automata-editor__tool-icon--large{width:24px;height:24px}.automata-editor__tool-button .automata-editor__connect-icon{width:24px}.automata-editor__tool-button[aria-pressed=true]{color:var(--surface);background:var(--accent)}.automata-editor__tool-button[aria-pressed=true]:hover{background:color-mix(in oklch, var(--accent) 90%, var(--fg))}.automata-editor__tool-button:disabled{color:color-mix(in oklch, var(--muted) 50%, var(--surface));cursor:default}.automata-editor__tool-button:disabled:hover{background:0 0}.automata-editor__tool-button:after{content:attr(data-tip);background:var(--fg);color:var(--surface);white-space:nowrap;opacity:0;pointer-events:none;border-radius:3px;padding:5px 7px;font-size:10px;transition:opacity .12s;position:absolute;bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.automata-editor__tool-button:hover:after,.automata-editor__tool-button:focus-visible:after{opacity:1}.automata-editor__simulate-button{grid-auto-flow:column;gap:7px;width:auto;padding:0 12px;font-weight:700}.automata-editor__simulate-button span{font-size:12px}.automata-editor__zoom .automata-editor__tool-button{border-radius:4px;width:32px;height:32px}.automata-editor__zoom-value{min-width:46px;color:var(--muted);font-family:var(--font-mono);text-align:center;font-size:10px}.automata-editor__sidebar{z-index:8;background:var(--surface);flex-direction:column;width:100%;min-width:0;display:flex;position:relative;overflow:hidden}.automata-editor__sidebar--left{border-right:1px solid var(--border);grid-column:1}.automata-editor__sidebar--right{border-left:1px solid var(--border);grid-column:3;width:284px}.automata-editor__sidebar-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;min-height:48px;padding:0 14px 0 16px;display:flex}.automata-editor__sidebar-header h2{color:var(--fg);font-family:var(--font-display);margin:0;font-size:13px;font-weight:700}.automata-editor__sidebar-content{flex:auto;min-height:0;padding:0;overflow:auto}.automata-editor__icon-button{border-radius:var(--radius-sm);width:34px;height:34px;color:var(--muted)}.automata-editor__icon-button svg{width:18px;height:18px}.automata-editor__empty-hint{max-width:280px;color:var(--muted);text-align:center;pointer-events:none;flex-direction:column;align-items:center;gap:7px;display:flex;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.automata-editor__empty-hint strong{color:var(--fg);font-family:var(--font-display);font-size:14px;font-weight:700}.automata-editor__empty-hint span{font-size:12px;line-height:1.45}.automata-editor__empty-orbit{border:1px dashed color-mix(in oklch, var(--accent) 60%, var(--border));width:42px;height:42px;color:var(--accent);background:var(--accent-soft);border-radius:50%;place-items:center;display:grid}.automata-editor__tool-hint{z-index:11;border:1px solid var(--border);border-radius:var(--radius-sm);max-width:min(340px,100% - 32px);color:var(--muted);background:color-mix(in oklch, var(--surface) 94%, transparent);text-align:center;pointer-events:none;padding:7px 9px;font-size:11px;position:absolute;bottom:76px;left:50%;transform:translate(-50%)}.automata-editor__transition-popup{z-index:14;pointer-events:auto;position:absolute}.automata-editor__transition-popup.is-above{transform:translate(-50%,calc(-100% - 12px))}.automata-editor__transition-popup.is-below{transform:translate(-50%,12px)}.automata-editor__gesture-notice{z-index:30;border:1px solid color-mix(in oklch, var(--accent) 30%, var(--border));border-radius:var(--radius-md);background:color-mix(in oklch, var(--surface) 98%, transparent);color:var(--muted);box-shadow:var(--shadow);align-items:center;gap:12px;padding:11px 12px 11px 15px;display:flex;position:fixed}.automata-editor__gesture-notice-copy{flex:auto;gap:3px;min-width:0;display:grid}.automata-editor__gesture-notice-copy strong{color:var(--fg);font-size:12px}.automata-editor__gesture-notice-copy span{font-size:11px;line-height:1.4}.automata-editor__gesture-notice>button{border:1px solid var(--accent);border-radius:var(--radius-sm);background:var(--accent);min-height:32px;color:var(--surface);cursor:pointer;flex:none;padding:0 10px;font-size:11px;font-weight:650}.automata-editor__gesture-notice>.automata-editor__gesture-notice-close{width:28px;min-height:28px;color:var(--muted);background:0 0;border-color:#0000;padding:0;font-size:18px;font-weight:400}.automata-editor__accessible-index,.automata-editor__live-region{clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;width:1px;height:1px;margin:-1px;position:absolute;overflow:hidden}.automata-editor__accessible-index button{font:inherit}@keyframes automata-editor-edge-flow{to{stroke-dashoffset:-22px}}@keyframes automata-editor-state-arrival{0%,to{stroke-width:2.6px}45%{stroke-width:3.5px}}@media (prefers-reduced-motion:reduce){.automata-editor__edge-path,.automata-editor__edge-flow,.automata-editor__state-body{transition:none;animation:none}.automata-editor__edge-flow,.automata-editor__arrow-active{stroke-dasharray:none;opacity:.62}}@media (width<=980px){.automata-editor__workspace{grid-template-columns:220px minmax(0,1fr) auto}.automata-editor__sidebar--right{width:min(284px,88vw);box-shadow:var(--shadow);position:absolute;top:0;bottom:0;right:0}.automata-editor__toolbar{max-width:calc(100% - 32px);overflow-x:auto}}@media (width<=700px){.automata-editor__workspace{grid-template-columns:190px minmax(0,1fr) auto}.automata-editor__canvas-shell,.automata-editor__canvas{min-height:420px}.automata-editor__zoom{bottom:72px;right:8px}.automata-editor__toolbar{bottom:12px}.automata-editor__tool-hint,.automata-editor__empty-hint{max-width:calc(100% - 24px)}}@media (width<=440px){.automata-editor__workspace{grid-template-columns:168px minmax(0,1fr) auto}.automata-editor__toolbar{justify-content:center;max-width:none;left:8px;right:8px;transform:none}.automata-editor__simulate-button span{display:none}}.editor-screen{--bg:oklch(97% 0 0);--surface:oklch(100% 0 0);--fg:oklch(23.5% 0 0);--muted:oklch(55.9% .033 259.6);--border:oklch(93.3% .007 295.4);--accent:oklch(48.3% .205 266.6);--accent-soft:oklch(95% .03 266.6);--fg-soft:color-mix(in oklch, var(--fg) 5%, var(--surface));--font-display:"Avenir Next", "Helvetica Neue", sans-serif;--font-body:"IBM Plex Sans", "Segoe UI", sans-serif;--font-mono:"SFMono-Regular", Consolas, monospace;--shadow:0 8px 24px color-mix(in oklch, var(--fg) 10%, transparent);color:var(--fg);background:var(--bg);font-family:var(--font-body);position:fixed;inset:0;overflow:hidden}.editor-header-card{width:100%;min-width:0;box-shadow:none;background:0 0;border:0;border-radius:0;grid-template-columns:minmax(0,1fr) auto minmax(0,auto) minmax(0,1fr);align-items:center;gap:12px;padding:0;display:grid}.editor-header-card .icon-button{border:1px solid var(--border);border-radius:var(--radius-sm,4px);width:36px;height:36px;color:var(--fg);cursor:pointer;background:0 0;flex:none;place-items:center;padding:0;display:inline-grid}.editor-header-card .icon-button:hover{background:var(--fg-soft)}.editor-brand-group{justify-self:start;align-items:center;gap:8px;min-width:0;display:flex}.editor-back-button{border:1px solid var(--border);border-radius:var(--radius-sm,4px);width:32px;height:32px;color:var(--fg);cursor:pointer;background:0 0;flex:0 0 32px;place-items:center;padding:0;display:grid}.editor-back-button svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.editor-back-button:hover{background:var(--fg-soft)}.brand-mark--small{object-fit:contain;flex:0 0 26px;width:26px;height:26px;margin:0 2px;display:block}.board-name-field{flex:0 auto;min-width:140px;max-width:min(36vw,360px);height:34px;display:inline-block;position:relative;overflow:hidden}.board-name-field:after,.board-name-field>input{font-family:var(--font-display);white-space:pre;padding:7px 8px;font-size:14px;font-weight:650;line-height:1.35}.board-name-field:after{content:attr(data-value) " ";visibility:hidden;pointer-events:none;display:block}.board-name-field>input{border-radius:var(--radius-sm,4px);width:100%;min-width:0;max-width:100%;height:34px;color:var(--fg);text-overflow:ellipsis;background:0 0;border:1px solid #0000;outline:none;position:absolute;inset:0;overflow:hidden}.board-name-field>input:hover{border-color:var(--border)}.board-name-field>input:focus{border-color:var(--accent);background:var(--surface);box-shadow:none}.editor-branding{min-width:0;color:var(--fg);cursor:pointer;text-align:left;background:0 0;border:0;align-content:center;justify-self:start;gap:1px;padding:0;display:grid}.editor-branding strong{font-family:var(--font-display);letter-spacing:-.02em;font-size:15px;font-weight:700;line-height:1.1}.editor-branding small{color:var(--muted);font-family:var(--font-body);font-size:10px;font-weight:500;line-height:1.1}.editor-board-name{justify-self:center;align-items:center;min-width:0;display:flex}.editor-name-pencil{width:22px;height:22px;color:var(--muted);pointer-events:none;place-items:center;display:grid;position:absolute;top:50%;right:7px;transform:translateY(-50%)}.editor-name-pencil svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:14px;height:14px}.board-name-field>input{padding-right:32px}.editor-header-meta{justify-self:end;align-items:center;gap:8px;min-width:0;display:flex}.editor-linked-lab{border:1px solid color-mix(in oklch, var(--accent) 30%, var(--border));background:var(--accent-soft);min-width:0;color:var(--accent);text-align:left;border-radius:4px;grid-template-columns:auto minmax(0,1fr) auto;align-items:baseline;gap:7px;padding:5px 8px;display:grid}.editor-linked-lab span{font-family:var(--font-mono);letter-spacing:.03em;white-space:nowrap;font-size:8px;font-weight:700}.editor-linked-lab strong{max-width:140px;color:var(--fg);text-overflow:ellipsis;white-space:nowrap;font-size:10px;font-weight:600;overflow:hidden}.editor-linked-lab b{font-family:var(--font-mono);font-size:9px}.editor-linked-lab:hover{border-color:var(--accent)}.save-state{color:var(--muted);white-space:nowrap;align-items:center;gap:6px;margin-left:0;font-size:12px;display:flex}.save-state:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.save-state--saving{animation:1s infinite alternate save-pulse}.save-state--failed{color:var(--fg)}@keyframes save-pulse{to{opacity:.45}}.document-menu{order:5;margin-left:0;position:relative}.document-menu summary{cursor:pointer;list-style:none}.document-menu summary::-webkit-details-marker{display:none}.document-menu__popover{z-index:40;border:1px solid var(--border);border-radius:var(--radius-md,6px);background:var(--surface);width:190px;box-shadow:var(--shadow);gap:2px;padding:7px;display:grid;position:absolute;top:calc(100% + 8px);right:0}.document-menu__popover button{border-radius:var(--radius-sm,4px);min-height:38px;color:var(--fg);cursor:pointer;text-align:left;background:0 0;border:0;align-items:center;gap:9px;padding:0 10px;font-size:12px;display:flex}.document-menu__popover button:hover{background:var(--fg-soft)}.document-menu__popover button.danger{color:var(--fg)}.document-menu__popover svg{width:17px}.side-content{align-content:start;gap:0;height:100%;display:grid;overflow-y:auto}.panel-status{border-bottom:1px solid var(--border);grid-template-columns:22px 1fr;align-items:start;gap:2px 8px;padding:16px;display:grid}.panel-status svg{width:20px;height:20px;color:var(--muted);grid-row:1/3}.panel-status-badge{border:1px solid var(--fg);width:20px;height:20px;color:var(--fg);border-radius:50%;grid-row:1/3;place-items:center;display:grid}.panel-status-badge svg{color:currentColor;width:14px;height:14px}.panel-status strong{font-size:13px}.panel-status span{color:var(--muted);font-size:11px;line-height:1.45}.panel-section{border-bottom:1px solid var(--border);padding:16px}.panel-section h3{color:var(--muted);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;justify-content:space-between;align-items:center;margin:0 0 12px;font-size:10px;font-weight:700;display:flex}.panel-section h3 span{min-width:20px;color:var(--muted);text-align:right;font-size:10px;font-weight:500}.panel-section label{color:var(--muted);gap:6px;font-size:11px;display:grid}.panel-section select{border:1px solid var(--border);border-radius:var(--radius-sm,4px);background:var(--surface);width:100%;min-height:34px;color:var(--fg);outline:none;padding:0 8px;font-size:12px}.panel-section select:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.panel-section input[type=text],.panel-section input:not([type]){border:1px solid var(--border);border-radius:var(--radius-sm,4px);background:var(--surface);width:100%;height:34px;color:var(--fg);outline:none;padding:0 9px;font-size:13px}.panel-section input[type=text]:focus,.panel-section input:not([type]):focus{border-color:var(--accent);box-shadow:none}.chip-list{flex-wrap:wrap;gap:6px;display:flex}.chip{border:1px solid var(--border);border-radius:var(--radius-sm,4px);background:var(--bg);height:28px;font-family:var(--font-mono);align-items:center;gap:8px;padding:0 7px 0 8px;font-size:12px;display:inline-flex}.chip button{width:16px;height:16px;color:var(--muted);cursor:pointer;background:0 0;border:0;place-items:center;padding:0;display:grid}.chip button:hover{color:var(--fg)}.chip svg{width:14px;height:14px}.inline-form{grid-template-columns:1fr 54px;gap:6px;margin-top:8px;display:grid}.inline-form input{border:1px solid var(--border);border-radius:var(--radius-sm,4px);background:var(--surface);min-width:0;height:34px;color:var(--fg);font-family:var(--font-mono);outline:none;padding:0 9px;font-size:12px}.inline-form input:focus{border-color:var(--accent)}.inline-form button{border:1px solid var(--border);border-radius:var(--radius-sm,4px);background:var(--surface);height:34px;color:var(--fg);cursor:pointer;font-size:11px;font-weight:650}.inline-form button:hover{border-color:color-mix(in oklch, var(--muted) 40%, var(--border));background:var(--fg-soft)}.form-error{color:var(--fg);margin-top:7px;font-size:11px;line-height:1.4;display:block}.issue-list{gap:7px;margin:0;padding:0;list-style:none;display:grid}.issue{color:var(--muted);grid-template-columns:14px 1fr;align-items:start;font-size:11px;display:grid}.issue--error{color:var(--fg)}.issue button{color:inherit;cursor:pointer;text-align:left;background:0 0;border:0;padding:0;font-size:11px;line-height:1.45}.object-list{gap:2px;display:grid}.object-list button{border-radius:var(--radius-sm,4px);width:100%;min-height:34px;color:var(--fg);cursor:pointer;text-align:left;background:0 0;border:0;grid-template-columns:22px 1fr auto;align-items:center;gap:7px;padding:0 8px;font-size:12px;display:grid}.object-list button:hover{background:var(--fg-soft)}.object-list button.active{color:var(--accent);background:var(--accent-soft)}.object-list small{color:var(--muted);font-family:var(--font-mono);font-size:10px}.state-dot{border:1.5px solid;border-radius:50%;width:15px;height:15px}.state-dot--accepting{box-shadow:inset 0 0 0 3px var(--surface), inset 0 0 0 4.5px currentColor}.property-section{gap:14px;display:grid}.output-record-editor{border-top:1px solid var(--border);gap:8px;padding:10px 0;display:grid}.output-record-editor:first-of-type{border-top:0}.record-remove{border:1px solid var(--border);border-radius:var(--radius-sm,4px);background:var(--surface);min-height:28px;color:var(--muted);justify-self:start;padding:0 8px;font-size:11px}.editor-action-notice{border:1px solid var(--border);border-radius:var(--radius-sm,4px);background:var(--surface);color:var(--fg);margin:12px;padding:9px 10px;font-size:11px;line-height:1.45}.check-row{cursor:pointer;align-items:start;grid-template-columns:18px 1fr!important;gap:8px!important}.check-row input{width:16px;height:16px;accent-color:var(--accent);margin:1px 0 0}.check-row span{gap:2px;display:grid}.check-row strong{color:var(--fg);font-size:12px}.check-row small{color:var(--muted);font-size:10px;line-height:1.4}.delete-button{border:1px solid var(--border);border-radius:var(--radius-sm,4px);background:var(--surface);width:calc(100% - 32px);min-height:36px;color:var(--fg);cursor:pointer;justify-content:center;align-items:center;gap:8px;margin:16px;font-size:11px;font-weight:650;display:flex}.delete-button:hover{border-color:var(--fg);background:var(--fg-soft)}.delete-button svg{width:17px}.connection-summary{grid-template-columns:1fr 24px 1fr;align-items:center;gap:7px;display:grid}.connection-summary span{border:1px solid var(--border);border-radius:var(--radius-sm,4px);background:var(--bg);color:var(--fg);text-align:center;text-overflow:ellipsis;font-family:var(--font-mono);white-space:nowrap;padding:8px;font-size:12px;overflow:hidden}.connection-summary b{color:var(--muted);text-align:center}.panel-placeholder{min-height:280px;color:var(--muted);text-align:center;flex-direction:column;justify-content:center;align-items:center;gap:7px;padding:25px;display:flex}.panel-placeholder svg{width:28px;height:28px;margin-bottom:7px}.panel-placeholder strong{color:var(--fg);font-family:var(--font-display);font-size:12px}.panel-placeholder span{max-width:180px;font-size:11px;line-height:1.45}.transition-popover{border:1px solid var(--border);border-radius:var(--radius-md,6px);background:color-mix(in oklch, var(--surface) 98%, transparent);min-width:168px;box-shadow:var(--shadow);gap:9px;padding:10px;display:grid}.transition-popover__title{color:var(--fg);font-size:12px;font-weight:700}.transition-popover--output{min-width:205px}.transition-popover__output-row{border-top:1px solid var(--border);grid-template-columns:minmax(70px,1fr) minmax(70px,1fr) 28px;align-items:end;gap:5px;padding-top:7px;display:grid}.transition-popover__output-row:first-of-type{border-top:0}.transition-popover__output-row label{color:var(--muted);gap:3px;font-size:10px;display:grid}.transition-popover__output-row select{border:1px solid var(--border);border-radius:var(--radius-sm,4px);background:var(--surface);width:100%;height:30px;color:var(--fg);font-family:var(--font-mono);padding:0 5px;font-size:11px}.transition-popover__output-row button{border:1px solid var(--border);border-radius:var(--radius-sm,4px);background:var(--surface);width:28px;height:30px;color:var(--muted);place-items:center;display:grid}.transition-popover__output-row button svg{width:14px;height:14px}.transition-popover__output-row.is-focused{background:var(--accent-soft)}.transition-popover__hint{color:var(--muted);font-size:10px;line-height:1.35}.transition-popover__choices{flex-wrap:wrap;gap:5px;display:flex}.transition-popover__choices button{border:1px solid var(--border);border-radius:var(--radius-sm,4px);background:var(--surface);min-width:32px;min-height:32px;color:var(--fg);cursor:pointer;font-family:var(--font-mono);padding:0 8px;font-size:12px;font-weight:650}.transition-popover__choices button:hover,.transition-popover__choices button:focus-visible{border-color:var(--accent)}.transition-popover__choices button.is-active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.transition-popover__field{color:var(--muted);gap:5px;font-size:11px;display:grid}.transition-popover__field input{border:1px solid var(--border);border-radius:var(--radius-sm,4px);background:var(--surface);width:180px;height:34px;color:var(--fg);font-family:var(--font-mono);outline:none;padding:0 8px;font-size:12px}.transition-popover__field input:focus{border-color:var(--accent)}.transition-popover__actions{justify-content:flex-end;gap:5px;display:flex}.transition-popover__actions button,.transition-popover__done{border:1px solid var(--border);border-radius:var(--radius-sm,4px);background:var(--surface);min-height:30px;color:var(--muted);cursor:pointer;padding:0 9px;font-size:11px;font-weight:650}.transition-popover__actions button:hover,.transition-popover__done:hover{background:var(--fg-soft)}.transition-popover__actions .transition-popover__save,.automata-editor .transition-popover__done{border-color:var(--accent);background:var(--accent);color:var(--surface)}.automata-editor .transition-popover__done:hover{background:color-mix(in oklch, var(--accent) 90%, var(--fg));color:var(--surface)}.simulation-tray{z-index:24;pointer-events:none;width:max-content;max-width:calc(100vw - 32px);margin:0;position:fixed;inset:auto auto 76px 50%;transform:translate(-50%)}.simulation-content{border:1px solid var(--border);border-radius:var(--radius-lg,8px);background:var(--surface);max-width:100%;color:var(--fg);box-shadow:var(--shadow);pointer-events:auto;grid-template-columns:auto auto;align-items:start;gap:10px 16px;padding:14px 16px;display:grid}.simulation-input{width:var(--simulation-input-width,220px);min-width:0;max-width:min(640px,100vw - 64px);color:var(--muted);gap:6px;font-size:10px;display:grid}.simulation-input__header{justify-content:space-between;align-items:baseline;gap:12px;min-width:0;display:flex}.simulation-input label{color:var(--muted);white-space:nowrap;font-size:10px}.simulation-input input{border:1px solid var(--border);border-radius:var(--radius-sm,4px);background:var(--surface);width:100%;height:40px;color:var(--fg);font-family:var(--font-mono);outline:none;padding:0 10px;font-size:13px}.simulation-input input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft)}.simulation-input__header small{color:var(--muted);text-align:right;white-space:nowrap;font-size:10px}.simulation-input__header small strong{color:var(--fg);font-weight:650}.simulation-actions{align-items:center;gap:6px;min-width:0;padding-top:20px;display:flex}.run-button{border:1px solid var(--accent);border-radius:var(--radius-sm,4px);background:var(--accent);height:38px;color:var(--surface);cursor:pointer;align-items:center;gap:7px;padding:0 16px;font-size:11px;font-weight:700;display:flex}.run-button:hover{background:color-mix(in oklch, var(--accent) 90%, var(--fg))}.run-button svg{width:16px}.simulation-actions .icon-button.bordered{border:1px solid var(--border);border-radius:var(--radius-sm,4px);background:var(--surface);width:38px;height:38px;color:var(--fg);cursor:pointer;margin-left:0}.simulation-actions .icon-button.bordered:hover:not(:disabled){background:var(--fg-soft)}.simulation-actions .icon-button:disabled{color:color-mix(in oklch, var(--muted) 50%, var(--surface));cursor:default}.simulation-actions .simulation-close{margin-left:4px}.simulation-settings{margin-left:4px;display:flex;position:relative}.simulation-settings__button{position:relative}.simulation-settings__button[aria-expanded=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.simulation-settings__popup{z-index:4;border:1px solid var(--border);border-radius:var(--radius-md,6px);background:var(--surface);width:164px;color:var(--fg);box-shadow:var(--shadow);gap:8px;padding:10px;display:grid;position:absolute;bottom:calc(100% + 8px);right:0}.simulation-settings__title{color:var(--fg);font-size:11px;font-weight:700}.simulation-settings__options{gap:3px;display:grid}.simulation-settings__option{border-radius:var(--radius-sm,4px);min-height:30px;color:var(--muted);cursor:pointer;font:inherit;text-align:left;background:0 0;border:1px solid #0000;padding:0 8px;font-size:11px}.simulation-settings__option:hover,.simulation-settings__option:focus-visible{border-color:var(--border);background:var(--fg-soft);color:var(--fg)}.simulation-settings__option.is-active{border-color:color-mix(in oklch, var(--accent) 50%, var(--border));background:var(--accent-soft);color:var(--accent);font-weight:650}.simulation-feedback{grid-column:1/-1;justify-content:flex-end;align-items:center;min-width:0;min-height:38px;display:flex;position:relative}.simulation-feedback>.simulation-result{width:100%}.simulation-result{border-radius:var(--radius-sm,4px);background:var(--fg-soft);min-height:38px;color:var(--muted);align-items:center;gap:10px;padding:0 12px;font-size:10px;line-height:1.3;display:flex}.simulation-result--idle svg,.simulation-result--error svg{flex:none;width:18px}.simulation-result--error{color:var(--fg)}.simulation-result--accepted,.simulation-result--rejected{background:var(--accent-soft);color:var(--fg)}.simulation-result>div{gap:3px;min-width:64px;display:grid}.simulation-result__phase{max-width:220px;min-width:148px!important}.simulation-result__phase small{color:var(--muted);font-size:9px;line-height:1.35}.simulation-result__explanation{max-width:260px;color:var(--fg);overflow-wrap:anywhere;white-space:normal;margin:0;font-size:12px;font-weight:500;line-height:1.45}.simulation-result--verdict .simulation-result__phase{max-width:260px;min-width:180px!important}.simulation-result strong{color:var(--fg);font-family:var(--font-mono);font-size:12px}.simulation-pause-button{border:1px solid var(--border);border-radius:var(--radius-sm,4px);background:var(--surface);height:38px;color:var(--fg);cursor:pointer;padding:0 12px;font-size:11px;font-weight:650}.simulation-pause-button:hover{background:var(--fg-soft)}.simulation-result--output{grid-template-columns:minmax(145px,1.2fr) repeat(4,minmax(58px,auto)) minmax(150px,1.4fr);align-items:stretch;gap:10px;padding:9px 11px;display:grid}.simulation-result--output>div{align-content:center;gap:3px;min-width:0;display:grid}.simulation-result--output>div>span,.simulation-output>span{color:var(--muted);font-size:9px}.simulation-result--output .simulation-result__phase{max-width:none;min-width:0!important}.simulation-result--output .simulation-result__phase>span{color:var(--accent);text-transform:uppercase;letter-spacing:.04em;font-size:9px;font-weight:700}.simulation-result--output .simulation-result__phase strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.simulation-result--output .simulation-result__phase p{color:var(--muted);margin:0;font-size:9px;line-height:1.3}.simulation-output{border-left:1px solid var(--border);grid-template-columns:auto minmax(0,1fr);align-items:center;min-width:0;padding-left:10px;gap:5px 8px!important;display:grid!important}.simulation-output>span{grid-column:1/-1}.simulation-output__symbols{gap:3px;min-width:0;display:flex;overflow-x:auto}.simulation-output__symbols span,.simulation-output__initial strong{border:1px solid var(--border);background:var(--surface);min-width:22px;height:24px;color:var(--fg);font-family:var(--font-mono);border-radius:3px;place-items:center;padding:0 5px;font-size:11px;display:grid}.simulation-output__initial{align-items:center;gap:5px;display:flex}.simulation-output__initial small{color:var(--muted);font-size:9px}.simulation-output__empty{color:var(--muted)!important;font-size:11px!important}.simulation-output__empty small{font-family:var(--font-body);margin-left:4px;font-size:9px;font-weight:400}.simulation-output__copy{color:var(--accent);cursor:pointer;background:0 0;border:0;grid-column:1/-1;justify-self:start;padding:0;font-size:9px;font-weight:650}.simulation-result--output>div>strong{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.simulation-result .verdict{align-items:center;gap:6px;margin-left:auto;display:flex}.simulation-result .verdict span{place-items:center;display:grid}.simulation-result .verdict svg{width:17px}.editor-screen .automata-editor__state.is-active .automata-editor__state-body{animation:.9s ease-in-out infinite simulation-state-pulse}@keyframes simulation-state-pulse{50%{opacity:.72}}.app-notice{z-index:100;border:1px solid var(--border);border-radius:var(--radius-md,6px);background:var(--fg);width:min(560px,100% - 32px);color:var(--surface);box-shadow:var(--shadow);justify-content:space-between;align-items:center;gap:16px;padding:11px 14px 11px 16px;font-size:12px;display:flex;position:fixed;bottom:20px;left:50%;transform:translate(-50%)}.app-notice button{color:inherit;cursor:pointer;background:0 0;border:0;text-decoration:underline}@media (width<=980px){.save-state{display:none}.simulation-tray{width:calc(100vw - 32px)}.simulation-content{grid-template-columns:minmax(180px,1fr) auto}.simulation-input{width:auto;max-width:none}.simulation-actions{justify-self:end}.simulation-feedback{grid-column:1/-1}}@media (width<=700px){.editor-branding strong{font-size:12px}.editor-branding small{display:none}.board-name-field{min-width:120px;max-width:42vw}.automata-editor__header-panel-button{margin-left:4px}.simulation-tray{bottom:66px}.simulation-content{grid-template-columns:1fr;max-height:55vh;overflow-y:auto}.simulation-actions{flex-wrap:wrap;justify-self:stretch;padding-top:0}.simulation-actions .run-button{flex:100%;justify-content:center}.simulation-feedback{grid-column:auto}.simulation-result--output{grid-template-columns:repeat(2,minmax(0,1fr))}.simulation-result--output .simulation-result__phase,.simulation-output{grid-column:1/-1}.simulation-output{border-top:1px solid var(--border);border-left:0;padding:8px 0 0}.simulation-result__phase{max-width:none}.simulation-result--verdict .simulation-result__phase{min-width:0!important}}@media (width<=420px){.editor-header-card--output{grid-template-columns:40px minmax(0,1fr) auto;gap:8px}.editor-header-card--output .editor-brand-group{grid-column:1;gap:0}.editor-header-card--output .editor-branding{display:none}.editor-header-card--output .editor-board-name{grid-column:2;justify-self:stretch}.editor-header-card--output .board-name-field{width:100%;min-width:0;max-width:none}.editor-header-card--output .editor-header-meta{grid-column:3}}@media (prefers-reduced-motion:reduce){.save-state,.editor-screen .automata-editor__state.is-active .automata-editor__state-body{animation:none}}.workspace-sidebar{z-index:15;background:var(--bg);border-right:1px solid var(--border);flex-direction:column;height:100vh;display:flex;position:sticky;top:0}.workspace-brand{border-bottom:1px solid var(--border);height:68px;color:var(--fg);font-family:var(--font-display);letter-spacing:-.02em;align-items:center;gap:11px;padding:0 18px;font-size:17px;font-weight:700;text-decoration:none;display:flex}.workspace-brand img{object-fit:contain;flex:0 0 30px;width:30px;height:30px;display:block}.workspace-brand-copy{gap:1px;min-width:0;display:grid}.workspace-brand-copy strong{font:inherit;line-height:1.1}.workspace-brand-copy small{color:var(--muted);font-family:var(--font-body);letter-spacing:0;font-size:10px;font-weight:500;line-height:1.1}.workspace-nav{gap:3px;padding:14px 10px;display:grid}.workspace-nav-label{color:var(--muted);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;margin:12px 10px 5px;font-size:10px}.workspace-nav-item{min-height:38px;color:var(--muted);border-radius:4px;align-items:center;gap:10px;padding:0 10px;font-weight:550;text-decoration:none;display:flex}.workspace-nav-item:not(.is-disabled){color:var(--fg)}.workspace-nav-item:hover{background:var(--surface);color:var(--fg)}.workspace-nav-item.active{background:var(--surface);color:var(--fg);box-shadow:inset 0 0 0 1px var(--border)}.workspace-nav-item>svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;flex:0 0 17px;width:17px;height:17px}.workspace-nav-item.is-disabled{cursor:default;opacity:.68}.workspace-nav-item.is-disabled:hover{color:var(--muted);background:0 0}.workspace-nav-soon{font-family:var(--font-mono);letter-spacing:.03em;text-transform:uppercase;margin-left:auto;font-size:8px}.workspace-sidebar-foot{border-top:1px solid var(--border);margin-top:auto;padding:12px}.workspace-profile{border-radius:4px;align-items:center;gap:9px;min-width:0;padding:8px;display:flex}.workspace-profile>span:last-child{min-width:0}.workspace-profile strong,.workspace-profile small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.workspace-profile strong{font-size:12px}.workspace-profile small{color:var(--muted);margin-top:1px;font-size:10px}.workspace-avatar{border:1px solid var(--border);background:var(--surface);width:28px;height:28px;font-family:var(--font-mono);border-radius:50%;flex:0 0 28px;place-items:center;font-size:10px;font-weight:700;display:grid}.workspace-topbar{z-index:10;border-bottom:1px solid var(--border);background:color-mix(in oklch, var(--surface) 94%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);align-items:center;gap:12px;height:68px;padding:0 clamp(20px,4vw,56px);display:flex;position:sticky;top:0}.workspace-mobile-menu{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);place-items:center;width:36px;height:36px;display:none}.workspace-mobile-menu svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;width:18px;height:18px}.workspace-search{width:min(430px,48vw);position:relative}.workspace-search svg{fill:none;width:16px;height:16px;stroke:var(--muted);stroke-width:1.8px;pointer-events:none;position:absolute;top:50%;left:11px;transform:translateY(-50%)}.workspace-search input{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);width:100%;height:38px;padding:0 12px 0 36px}.workspace-search input:hover{border-color:color-mix(in oklch, var(--muted) 38%, var(--border))}.workspace-search input:focus{border-color:var(--accent);background:var(--surface)}.workspace-topbar-spacer{flex:1}.workspace-help-button,.workspace-icon-button{border-radius:var(--radius);background:0 0;border:1px solid #0000;place-items:center;width:36px;height:36px;display:grid}.workspace-help-button:hover,.workspace-icon-button:hover{border-color:var(--border);background:var(--fg-soft)}.workspace-help-button svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.home-app .workspace-content,.material-catalog-page .workspace-content{padding:38px clamp(20px,4vw,56px) 64px}.workspace-primary-button{border:1px solid var(--fg);border-radius:var(--radius);background:var(--fg);min-height:38px;color:var(--surface);justify-content:center;align-items:center;gap:8px;padding:0 15px;font-weight:700;display:inline-flex}.workspace-primary-button:hover{background:color-mix(in oklch, var(--fg) 88%, var(--muted))}.workspace-primary-button svg{fill:none;stroke:currentColor;stroke-width:2px;width:17px;height:17px}@media (width<=760px){.workspace-sidebar{width:224px;box-shadow:var(--shadow);transition:transform .16s;position:fixed;left:0;transform:translate(-100%)}.workspace-sidebar.open{transform:translate(0)}.workspace-mobile-menu{display:grid}.workspace-topbar{padding-inline:14px}.workspace-search{flex:1;width:auto}.home-app .workspace-content,.material-catalog-page .workspace-content{padding:28px 16px 48px}}.dfa-material-page{--surface-raised:oklch(98.8% .003 260);--muted-2:oklch(65% .02 259.6);--border-strong:oklch(82% .016 265);--accent-hover:oklch(43% .205 266.6);--accent-faint:oklch(97.5% .014 266.6);--success:oklch(46% .13 150);--success-soft:oklch(95.5% .038 150);--danger:oklch(49% .19 28);--danger-soft:oklch(96% .035 28);--radius-xs:3px;--radius-sm:5px;--radius-md:8px;--header-h:56px;--shadow-sm:0 2px 8px color-mix(in oklch, var(--fg) 7%, transparent);--ease:.18s ease-out;grid-template-rows:var(--header-h) minmax(0, 1fr);background:var(--bg);width:100%;height:100vh;min-height:0;color:var(--fg);font-family:var(--font-body);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.55;display:grid;overflow:hidden}.dfa-material-page *,.dfa-material-page :before,.dfa-material-page :after{box-sizing:border-box}.dfa-material-page button,.dfa-material-page input{font:inherit;color:inherit}.dfa-material-page button{cursor:pointer}.dfa-material-page button:focus-visible,.dfa-material-page input:focus-visible,.dfa-material-page a:focus-visible{outline:2px solid var(--accent);outline-offset:2px;box-shadow:none}.dfa-material-page svg{display:block}.dfa-material-page .topbar{z-index:20;border-bottom:1px solid var(--border);background:var(--surface);justify-content:space-between;align-items:center;gap:16px;min-width:0;padding:0 20px;display:flex}.dfa-material-page .brand{color:var(--fg);font-family:var(--font-display);letter-spacing:-.01em;flex:none;align-items:center;gap:11px;font-size:15px;font-weight:700;text-decoration:none;display:flex}.dfa-material-back-button{border:1px solid var(--border);border-radius:var(--radius-sm);width:32px;height:32px;color:var(--fg);background:0 0;flex:0 0 32px;place-items:center;padding:0;display:grid}.dfa-material-back-button svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.dfa-material-back-button:hover{background:var(--bg)}.dfa-material-brand-copy{gap:1px;line-height:1.1;display:grid}.dfa-material-brand-copy strong{font:inherit}.dfa-material-brand-copy small{color:var(--muted);font-family:var(--font-body);font-size:10px;font-weight:500}.dfa-material-back,.dfa-material-progress,.view-switch{display:none}.dfa-material-board-head>div:first-child{flex-direction:column;align-items:flex-start;gap:5px;display:flex}.dfa-material-board-status{flex-direction:column;flex:none;align-items:flex-end;gap:5px;display:flex}.module-kicker,.dfa-material-kicker{color:var(--fg);font-family:var(--font-body);letter-spacing:0;text-transform:none;margin:0 0 2px;font-size:11px;font-weight:650;display:block}.module-title h2,.dfa-material-board-head h2{font-family:var(--font-display);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:16px;line-height:1.25;overflow:hidden}.module-title p,.dfa-material-board-head p{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin:2px 0 0;font-size:11px;overflow:hidden}.dfa-material-board-validity:before{display:none}.dfa-material-board-stage{min-height:250px}.dfa-material-board-caption{border-top:1px solid var(--border);min-height:35px;color:var(--muted);align-items:center;gap:8px;padding:0 13px;font-size:10px;display:flex}.dfa-material-board-dot{background:var(--accent);width:6px;height:6px;box-shadow:0 0 0 3px var(--accent-soft);border-radius:50%}.dfa-material-board-editor{border:0;height:100%;min-height:0}.dfa-material-board-editor .automata-editor__workspace{grid-template-columns:minmax(0,1fr);height:100%}.dfa-material-board-editor .automata-editor__stage{grid-column:1;height:100%;min-height:0}.dfa-material-board-editor .automata-editor__canvas-shell,.dfa-material-board-editor .automata-editor__canvas{height:100%;min-height:250px}.dfa-material-board-editor .automata-editor__canvas-hint{display:none}.dfa-material-board-editor .automata-editor__edge.is-active .automata-editor__edge-label rect{fill:var(--accent);stroke:var(--accent)}.dfa-material-board-editor .automata-editor__edge.is-active .automata-editor__edge-label text{fill:var(--surface)}.dfa-material-board-editor .automata-editor__state.is-active-source:not(.is-active-target) .automata-editor__state-body{fill:var(--surface);stroke:oklch(42% .02 260);stroke-width:2.3px}.dfa-material-board-editor .automata-editor__toolbar{bottom:12px}.dfa-material-board-editor .automata-editor__toolbar .automata-editor__tool-button{width:34px;height:34px}.dfa-material-board-editor .automata-editor__zoom{bottom:12px;right:10px}.dfa-material-trace-controls,.runner-control{align-content:start;gap:8px;min-width:0;display:grid}.dfa-material-page .primary-button{border-radius:var(--radius-sm);border:1px solid var(--accent);background:var(--accent);justify-content:center;align-items:center;gap:6px;min-height:36px;padding:0 12px;font-size:11px;font-weight:750;display:inline-flex;color:var(--surface)!important}.dfa-material-page .primary-button svg,.dfa-material-page .primary-button svg *{fill:currentColor;stroke:currentColor;width:14px;height:14px;color:var(--surface)!important}.mobile-board-return,.mobile-board-return.hidden{display:none}@media (height<=820px) and (width>=1001px){.learning-panel{padding:10px}.learning-grid{grid-template-rows:minmax(0,1fr) 244px;gap:10px}.module-header{padding:8px 11px}.trace-body{padding:8px 10px 10px}.lesson-intro{padding-top:22px}}@media (width<=1180px) and (width>=1001px){.workspace{grid-template-columns:minmax(400px,42%) minmax(0,58%)}.lesson-intro,.lesson-content,.section-nav-wrap{padding-left:24px;padding-right:24px}.section-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.module-title p,.dfa-material-board-head p{max-width:38ch}.trace-body{grid-template-columns:minmax(190px,.8fr) minmax(0,1.2fr)}}@media (width<=1000px){.dfa-material-page .topbar{padding:0 14px}.header-context{display:none}.view-switch{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);grid-template-columns:1fr 1fr;padding:3px;display:grid}.view-switch button{border-radius:var(--radius-xs);min-height:32px;color:var(--muted);background:0 0;border:0;padding:0 12px;font-size:11px;font-weight:700}.view-switch button.active{background:var(--surface);color:var(--accent);box-shadow:var(--shadow-sm)}.workspace{display:block;position:relative}.lesson-panel,.learning-panel{position:absolute;inset:0}.lesson-panel{border-right:0}.learning-panel,.workspace.board-view .lesson-panel{display:none}.workspace.board-view .learning-panel{display:block}.learning-grid{max-width:900px;margin:0 auto}.dfa-material-board-stage,.dfa-material-board-editor .automata-editor__canvas-shell,.dfa-material-board-editor .automata-editor__canvas{min-height:0}}@media (width<=640px){.dfa-material-page{height:auto;min-height:100%;display:block;overflow:visible}.dfa-material-page .topbar{height:56px;position:sticky;top:0}.dfa-material-brand-copy small,.header-actions .text-link{display:none}.view-switch{flex:1;max-width:220px}.workspace{flex-direction:column;height:auto;min-height:calc(100vh - 56px);display:flex;overflow:visible}.lesson-panel,.learning-panel{height:auto;position:static;overflow:visible;display:block!important}.lesson-scroll{height:auto;overflow:visible}.lesson-intro{padding:24px 18px 18px}.section-nav-wrap{padding:0 10px 8px;top:56px}.section-nav{scrollbar-width:none;display:flex;overflow-x:auto}.section-nav::-webkit-scrollbar{display:none}.segment-button{min-width:122px}.lesson-content{padding:0 18px 32px}.lesson-section{padding:26px 0}.section-heading{grid-template-columns:auto minmax(0,1fr)}.show-board{display:none}.section-body{margin-left:0}.learning-panel{padding:10px;scroll-margin-top:64px}.learning-grid{grid-template-rows:460px auto;height:auto;display:grid}.module-title p,.dfa-material-board-head p{white-space:normal}.module-actions .secondary-button span:first-child{display:none}.trace-body{grid-template-columns:1fr}.trace-module{min-height:430px}.mobile-board-return{z-index:30;border:1px solid var(--accent);border-radius:var(--radius-sm);background:var(--accent);color:#fff;min-height:44px;box-shadow:0 8px 20px color-mix(in oklch, var(--accent) 28%, transparent);align-items:center;gap:7px;padding:0 13px;font-size:11px;font-weight:750;display:inline-flex;position:fixed;bottom:14px;right:14px}.dfa-material-board-editor .automata-editor__canvas-shell,.dfa-material-board-editor .automata-editor__canvas{min-height:250px}}@media (width<=420px){.dfa-material-back{display:none}.dfa-material-page .topbar{justify-content:space-between}.dfa-material-board-validity{display:none}.dfa-material-progress{font-size:9px}.lesson-content{padding-left:14px;padding-right:14px}.input-row{grid-template-columns:minmax(0,1fr)}.primary-button{width:100%}}@media (hover:hover){.segment-button:hover{color:var(--fg);background:var(--bg)}.segment-button.active:hover{color:var(--accent);background:var(--accent-soft)}}@media (prefers-reduced-motion:reduce){.dfa-material-page *,.dfa-material-page :before,.dfa-material-page :after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.nfa-material-page{--surface-raised:oklch(98.8% .003 260);--muted-2:oklch(65% .02 259.6);--border-strong:oklch(82% .016 265);--accent-hover:oklch(43% .205 266.6);--accent-faint:oklch(97.5% .014 266.6);--success:oklch(46% .13 150);--success-soft:oklch(95.5% .038 150);--danger:oklch(49% .19 28);--danger-soft:oklch(96% .035 28);--radius-xs:3px;--radius-sm:5px;--radius-md:8px;--header-h:56px;--shadow-sm:0 2px 8px color-mix(in oklch, var(--fg) 7%, transparent);--ease:.18s ease-out;grid-template-rows:var(--header-h) minmax(0, 1fr);background:var(--bg);width:100%;height:100vh;min-height:0;color:var(--fg);font-family:var(--font-body);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.55;display:grid;overflow:hidden}.nfa-material-page *,.nfa-material-page :before,.nfa-material-page :after{box-sizing:border-box}.nfa-material-page button,.nfa-material-page input{font:inherit;color:inherit}.nfa-material-page button{cursor:pointer}.nfa-material-page button:focus-visible,.nfa-material-page input:focus-visible,.nfa-material-page a:focus-visible{outline:2px solid var(--accent);outline-offset:2px;box-shadow:none}.nfa-material-page svg{display:block}.nfa-material-page .topbar{z-index:20;border-bottom:1px solid var(--border);background:var(--surface);justify-content:space-between;align-items:center;gap:16px;min-width:0;padding:0 20px;display:flex}.nfa-material-page .brand{color:var(--fg);font-family:var(--font-display);letter-spacing:-.01em;flex:none;align-items:center;gap:11px;font-size:15px;font-weight:700;text-decoration:none;display:flex}.header-identity{align-items:center;gap:7px;min-width:0;display:flex}.header-material-context{align-items:center;gap:7px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.nfa-material-back-button{border:1px solid var(--border);border-radius:var(--radius-sm);width:32px;height:32px;color:var(--fg);background:0 0;flex:0 0 32px;place-items:center;padding:0;display:grid}.nfa-material-back-button svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.nfa-material-back-button:hover{background:var(--bg)}.nfa-material-brand-copy{gap:1px;line-height:1.1;display:grid}.nfa-material-brand-copy strong{font:inherit}.nfa-material-brand-copy small{color:var(--muted);font-family:var(--font-body);font-size:10px;font-weight:500}.header-context-dot{color:var(--muted);font-size:15px;line-height:1}.header-section{color:var(--muted);font-size:12px;font-weight:650}.header-actions{align-items:center;gap:8px;display:flex}.text-link,.icon-button,.segment-button,.primary-button,.secondary-button,.answer-button,.concept-row,.rule-row,.example-button,.mobile-board-return{background:0 0;border:0}.text-link{border-radius:var(--radius-sm);min-height:36px;color:var(--muted);align-items:center;gap:7px;padding:0 10px;font-size:12px;font-weight:650;text-decoration:none;display:inline-flex}.text-link:hover{background:var(--bg);color:var(--fg)}.text-link svg,.icon-button svg,.primary-button svg,.secondary-button svg,.mobile-board-return svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:17px;height:17px}.icon-button{border-radius:var(--radius-xs);width:34px;height:34px;color:var(--fg);place-items:center;display:inline-grid}.icon-button:hover{background:var(--bg)}.nfa-material-back,.nfa-material-progress,.view-switch{display:none}.workspace{grid-template-columns:minmax(460px,44%) minmax(0,56%);min-width:0;height:100%;min-height:0;display:grid;overflow:hidden}.lesson-panel{border-right:1px solid var(--border);background:var(--surface);min-width:0;height:100%;min-height:0;overflow:hidden}.lesson-scroll{overscroll-behavior:contain;scroll-behavior:smooth;min-width:0;height:100%;min-height:0;max-height:100%;overflow-y:auto}.lesson-intro{max-width:760px;margin:0 auto;padding:22px 36px 13px}.eyebrow{color:var(--fg);font-family:var(--font-body);letter-spacing:0;text-transform:none;margin:0 0 5px;font-size:12px;font-weight:650}.lesson-intro h1{font-family:var(--font-display);letter-spacing:-.035em;margin:0;font-size:clamp(26px,2vw,36px);line-height:1.08}.lesson-intro p{max-width:64ch;color:var(--muted);margin:7px 0 0;font-size:14px;line-height:1.45}.section-nav-wrap{z-index:12;background:linear-gradient(var(--surface) 78%, transparent);padding:0 36px 8px;position:sticky;top:0}.section-nav{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);grid-template-columns:repeat(4,minmax(0,1fr));gap:3px;max-width:760px;margin:0 auto;padding:3px;display:grid}.segment-button{border-radius:var(--radius-xs);min-width:0;min-height:34px;color:var(--muted);text-align:left;white-space:nowrap;transition:border-color var(--ease), background var(--ease), color var(--ease);border:1px solid #0000;align-items:center;gap:5px;padding:0 9px;font-size:11px;font-weight:650;line-height:1.2;display:inline-flex}.segment-button span{color:var(--muted-2);font:inherit;flex:none;display:inline}.segment-button span:after{content:"."}.segment-button.active{border-color:var(--border);background:var(--accent-soft);color:var(--accent)}.segment-button.active span{color:inherit}.lesson-content{max-width:760px;margin:0 auto;padding:0 36px 72px}.lesson-section{border-top:1px solid var(--border);min-width:0;padding:30px 0 34px;scroll-margin-top:62px}.lesson-section:first-child{border-top:0}.section-heading{grid-template-columns:auto minmax(0,1fr) auto;align-items:baseline;gap:8px;display:grid}.section-index{color:var(--fg);font-family:var(--font-display);letter-spacing:-.025em;font-size:23px;font-weight:700;line-height:1.15}.section-heading h2{font-family:var(--font-display);letter-spacing:-.025em;margin:0;font-size:23px;line-height:1.15}.show-board{border-radius:var(--radius-sm);min-height:36px;color:var(--accent);background:0 0;border:0;padding:0 8px;font-size:11px;font-weight:700}.show-board:hover{background:var(--accent-faint)}.section-body{margin:16px 0 0}.section-body>p{max-width:66ch;color:var(--muted);margin:0 0 12px}.section-body strong{color:var(--fg)}.sub-label{color:var(--fg);font-family:var(--font-body);letter-spacing:0;text-transform:none;margin:20px 0 8px;font-size:12px;font-weight:650}.sub-hint{color:var(--muted);font-size:12px;font-weight:400}.concept-list,.rule-list{gap:5px;display:grid}.concept-row,.rule-row{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);text-align:left;width:100%;min-height:48px;transition:border-color var(--ease), background var(--ease);grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:12px;padding:8px 11px;display:grid}.concept-row:hover,.rule-row:hover{border-color:var(--border-strong);background:var(--surface-raised)}.concept-row.active,.rule-row.active{border-color:color-mix(in oklch, var(--accent) 55%, var(--border));background:var(--accent-faint)}.row-copy strong,.row-copy span{display:block}.row-copy strong{font-size:12px}.row-copy span{color:var(--muted);margin-top:1px;font-size:11px;line-height:1.4}.row-symbol{min-width:36px;color:var(--accent);font-family:var(--font-mono);text-align:right;font-size:12px;font-weight:700}.sequence{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-raised);font-family:var(--font-mono);flex-wrap:wrap;align-items:center;gap:8px;margin:14px 0;padding:11px 12px;font-size:13px;display:flex}.sequence-state{border:1.5px solid var(--border-strong);background:var(--surface);border-radius:50%;place-items:center;width:34px;height:34px;font-weight:700;display:inline-grid}.nfa-material-page .sequence-state{white-space:nowrap;border-radius:999px;width:auto;min-width:34px;padding:0 8px}.sequence-arrow{color:var(--accent);font-size:12px}.input-inline{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-raised);align-items:center;gap:8px;margin:3px 0 12px;padding:5px 8px;display:inline-flex}.input-inline span{color:var(--muted);font-size:11px}.input-inline code{font-family:var(--font-mono);font-size:14px;font-weight:700}.quick-check{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);margin-top:16px;padding:12px}.quick-check h3{color:var(--fg);font-family:var(--font-body);letter-spacing:0;text-transform:none;margin:0;font-size:12px;font-weight:650}.quick-check h3 code{font-family:var(--font-mono);font-size:inherit}.quick-check p{margin:5px 0 9px;font-size:12px;font-weight:650;line-height:1.4}.answer-row{flex-wrap:wrap;gap:6px;display:flex}.answer-button{border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--surface-raised);min-height:32px;padding:0 10px;font-size:11px;font-weight:650}.answer-button:hover{border-color:var(--accent)}.answer-button.correct{border-color:var(--success);background:var(--success-soft);color:var(--success)}.answer-button.incorrect{border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}.answer-button.selected{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.check-feedback{color:var(--muted);margin:8px 0 0;font-size:11px;display:none}.check-feedback.visible{display:block}.learning-panel{background:var(--bg);min-width:0;height:100%;min-height:0;padding:14px;overflow:hidden}.learning-grid{grid-template-rows:minmax(0,1fr) clamp(244px,32%,278px);gap:12px;min-width:0;height:100%;min-height:0;display:grid}.module{border:1px solid var(--border);border-radius:var(--radius-md);background:var(--surface);min-width:0;min-height:0;box-shadow:var(--shadow-sm)}.artboard-module{grid-template-rows:auto minmax(0,1fr) auto;display:grid;overflow:hidden}.module-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:16px;min-width:0;padding:11px 13px;display:flex}.nfa-material-board-head>div:first-child{flex-direction:column;align-items:flex-start;gap:5px;display:flex}.nfa-material-board-status{flex-direction:column;flex:none;align-items:flex-end;gap:5px;display:flex}.module-title{min-width:0}.module-kicker,.nfa-material-kicker{color:var(--fg);font-family:var(--font-body);letter-spacing:0;text-transform:none;margin:0 0 2px;font-size:11px;font-weight:650;display:block}.module-title h2,.nfa-material-board-head h2{font-family:var(--font-display);text-overflow:ellipsis;white-space:nowrap;margin:0;font-size:16px;line-height:1.25;overflow:hidden}.module-title p,.nfa-material-board-head p{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;margin:2px 0 0;font-size:11px;overflow:hidden}.module-actions{flex:none;align-items:center;gap:8px;display:flex}.status-badge{border-radius:var(--radius-xs);background:var(--success-soft);min-height:26px;color:var(--success);white-space:nowrap;align-items:center;gap:6px;padding:0 8px;font-size:10px;font-weight:750;display:inline-flex}.status-badge:before{content:"";background:currentColor;border-radius:50%;width:6px;height:6px}.status-badge.invalid{background:var(--danger-soft);color:var(--danger)}.nfa-material-board-validity:before{display:none}.secondary-button{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);min-height:34px;color:var(--fg);justify-content:center;align-items:center;gap:7px;padding:0 10px;font-size:11px;font-weight:650;text-decoration:none;display:inline-flex}.secondary-button:hover{border-color:var(--border-strong);background:var(--surface-raised)}.canvas-wrap{background-color:var(--bg);background-image:radial-gradient(circle, color-mix(in oklch, var(--muted) 25%, transparent) 1px, transparent 1px);touch-action:none;background-size:20px 20px;min-width:0;min-height:0;position:relative;overflow:hidden}.canvas-wrap:after{content:"Lesson mode · read only";z-index:3;border:1px solid var(--border);border-radius:var(--radius-xs);background:color-mix(in oklch, var(--surface) 94%, transparent);color:var(--muted);pointer-events:none;padding:5px 7px;font-size:9px;position:absolute;bottom:12px;left:12px}.canvas-callout{z-index:4;border:1px solid var(--border);border-radius:var(--radius-sm);background:color-mix(in oklch, var(--surface) 95%, transparent);max-width:min(280px,45%);box-shadow:var(--shadow-sm);pointer-events:none;padding:8px 9px;position:absolute;top:12px;left:12px}.canvas-callout strong,.canvas-callout span{display:block}.canvas-callout strong{font-size:10px}.canvas-callout span{color:var(--muted);margin-top:2px;font-size:9px;line-height:1.4}.nfa-material-board-stage{min-height:250px}.nfa-material-board-caption{border-top:1px solid var(--border);min-height:35px;color:var(--muted);align-items:center;gap:8px;padding:0 13px;font-size:10px;display:flex}.nfa-material-board-dot{background:var(--accent);width:6px;height:6px;box-shadow:0 0 0 3px var(--accent-soft);border-radius:50%}.nfa-material-board-editor{border:0;height:100%;min-height:0}.nfa-material-board-editor .automata-editor__workspace{grid-template-columns:minmax(0,1fr);height:100%}.nfa-material-board-editor .automata-editor__stage{grid-column:1;height:100%;min-height:0}.nfa-material-board-editor .automata-editor__canvas-shell,.nfa-material-board-editor .automata-editor__canvas{height:100%;min-height:250px}.nfa-material-board-editor .automata-editor__canvas-hint{display:none}.nfa-material-board-editor .automata-editor__edge.is-active .automata-editor__edge-label rect{fill:var(--accent);stroke:var(--accent)}.nfa-material-board-editor .automata-editor__edge.is-active .automata-editor__edge-label text{fill:var(--surface)}.nfa-material-board-editor .automata-editor__state.is-active-source:not(.is-active-target) .automata-editor__state-body{fill:var(--surface);stroke:oklch(42% .02 260);stroke-width:2.3px}.nfa-material-board-editor .automata-editor__state.is-active-target:not(.is-active) .automata-editor__state-body{fill:var(--surface);stroke:color-mix(in oklch, var(--accent) 62%, var(--muted));stroke-width:2px;stroke-dasharray:4 3;animation:none}.nfa-material-board-editor .automata-editor__state.is-active-target:not(.is-active) .automata-editor__state-accepting{stroke:color-mix(in oklch, var(--accent) 62%, var(--muted))}.nfa-material-board-editor .automata-editor__toolbar{bottom:12px}.nfa-material-board-editor .automata-editor__toolbar .automata-editor__tool-button{width:34px;height:34px}.nfa-material-board-editor .automata-editor__zoom{bottom:12px;right:10px}.trace-module{grid-template-rows:auto minmax(0,1fr);display:grid;overflow:hidden}.trace-header{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:12px;padding:9px 12px;display:flex}.trace-heading h2{font-family:var(--font-display);margin:0;font-size:14px;line-height:1.2}.trace-heading p{color:var(--muted);margin:2px 0 0;font-size:10px}.verdict{border-radius:var(--radius-xs);background:var(--accent-soft);min-height:26px;color:var(--accent);align-items:center;gap:6px;padding:0 8px;font-size:10px;font-weight:750;display:inline-flex}.verdict.accepted{background:var(--success-soft);color:var(--success)}.verdict.rejected{background:var(--danger-soft);color:var(--danger)}.trace-body{grid-template-columns:minmax(210px,.78fr) minmax(0,1.22fr);gap:12px;min-width:0;min-height:0;padding:10px 12px 12px;display:grid}.nfa-material-trace-controls,.runner-control{align-content:start;gap:8px;min-width:0;display:grid}.input-label{color:var(--fg);letter-spacing:0;text-transform:none;justify-content:space-between;align-items:center;gap:8px;font-size:11px;font-weight:650;display:flex}.input-label span{color:var(--muted-2);letter-spacing:0;text-transform:none;font-weight:500}.input-row{grid-template-columns:minmax(0,1fr) auto;gap:6px;min-width:0;display:grid}.trace-input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-raised);width:100%;min-width:0;height:36px;font-family:var(--font-mono);padding:0 10px;font-size:13px}.trace-input:focus{border-color:var(--accent)}.nfa-material-page .primary-button{border-radius:var(--radius-sm);border:1px solid var(--accent);background:var(--accent);justify-content:center;align-items:center;gap:6px;min-height:36px;padding:0 12px;font-size:11px;font-weight:750;display:inline-flex;color:var(--surface)!important}.primary-button:hover{background:var(--accent-hover)}.nfa-material-page .primary-button svg,.nfa-material-page .primary-button svg *{fill:currentColor;stroke:currentColor;width:14px;height:14px;color:var(--surface)!important}.transport{grid-template-columns:repeat(3,36px) minmax(0,1fr);gap:5px;display:grid}.transport .icon-button{border:1px solid var(--border);background:var(--surface)}.transport .icon-button:disabled{cursor:not-allowed;color:var(--muted-2);background:var(--bg)}.step-count{color:var(--muted);font-family:var(--font-mono);justify-content:flex-end;align-items:center;font-size:9px;display:flex}.examples{scrollbar-width:none;align-items:center;gap:5px;min-width:0;display:flex;overflow-x:auto}.examples::-webkit-scrollbar{display:none}.examples-label{color:var(--muted);white-space:nowrap;margin-right:2px;font-size:9px}.example-button{border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--surface);white-space:nowrap;align-items:center;gap:6px;min-height:26px;padding:0 7px;font-size:10px;display:inline-flex}.example-button:hover,.example-button.active{border-color:var(--accent);color:var(--accent)}.example-button code{font-family:var(--font-mono);font-size:10px;font-weight:700}.trace-detail{grid-template-rows:auto auto;align-content:start;gap:9px;min-width:0;display:grid}.step-explanation{border-left:2px solid var(--accent);background:var(--accent-faint);min-height:58px;padding:8px 10px}.step-explanation strong,.step-explanation span{display:block}.step-explanation strong{overflow-wrap:anywhere;font-size:11px}.step-explanation span{color:var(--muted);margin-top:2px;font-size:10px;line-height:1.4}.trace-values{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px;display:grid}.trace-value{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-raised);min-width:0;min-height:58px;padding:7px 8px}.trace-value span,.trace-value strong{display:block}.trace-value span{color:var(--fg);font-family:var(--font-body);letter-spacing:0;text-transform:none;font-size:10px;font-weight:650}.trace-value strong{font-family:var(--font-mono);text-overflow:ellipsis;white-space:nowrap;margin-top:4px;font-size:13px;overflow:hidden}.mobile-board-return,.mobile-board-return.hidden{display:none}@media (height<=820px) and (width>=1001px){.learning-panel{padding:10px}.learning-grid{grid-template-rows:minmax(0,1fr) 244px;gap:10px}.module-header{padding:8px 11px}.trace-body{padding:8px 10px 10px}.lesson-intro{padding-top:22px}}@media (width<=1180px) and (width>=1001px){.workspace{grid-template-columns:minmax(400px,42%) minmax(0,58%)}.lesson-intro,.lesson-content,.section-nav-wrap{padding-left:24px;padding-right:24px}.section-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.module-title p,.nfa-material-board-head p{max-width:38ch}.trace-body{grid-template-columns:minmax(190px,.8fr) minmax(0,1.2fr)}}@media (width<=1000px){.nfa-material-page .topbar{padding:0 14px}.header-context{display:none}.view-switch{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);grid-template-columns:1fr 1fr;padding:3px;display:grid}.view-switch button{border-radius:var(--radius-xs);min-height:32px;color:var(--muted);background:0 0;border:0;padding:0 12px;font-size:11px;font-weight:700}.view-switch button.active{background:var(--surface);color:var(--accent);box-shadow:var(--shadow-sm)}.workspace{display:block;position:relative}.lesson-panel,.learning-panel{position:absolute;inset:0}.lesson-panel{border-right:0}.learning-panel,.workspace.board-view .lesson-panel{display:none}.workspace.board-view .learning-panel{display:block}.learning-grid{max-width:900px;margin:0 auto}.nfa-material-board-stage,.nfa-material-board-editor .automata-editor__canvas-shell,.nfa-material-board-editor .automata-editor__canvas{min-height:0}}@media (width<=640px){.nfa-material-page{height:auto;min-height:100%;display:block;overflow:visible}.nfa-material-page .topbar{height:56px;position:sticky;top:0}.nfa-material-brand-copy small,.header-actions .text-link,.nfa-material-page .view-switch{display:none}.view-switch{flex:1;max-width:220px}.workspace{flex-direction:column;height:auto;min-height:calc(100vh - 56px);display:flex;overflow:visible}.lesson-panel,.learning-panel{height:auto;position:static;overflow:visible;display:block!important}.lesson-scroll{height:auto;overflow:visible}.lesson-intro{padding:24px 18px 18px}.section-nav-wrap{padding:0 10px 8px;top:56px}.section-nav{scrollbar-width:none;display:flex;overflow-x:auto}.section-nav::-webkit-scrollbar{display:none}.segment-button{min-width:122px}.lesson-content{padding:0 18px 32px}.lesson-section{padding:26px 0}.section-heading{grid-template-columns:auto minmax(0,1fr)}.show-board{display:none}.section-body{margin-left:0}.learning-panel{padding:10px;scroll-margin-top:64px}.learning-grid{grid-template-rows:460px auto;height:auto;display:grid}.module-title p,.nfa-material-board-head p{white-space:normal}.module-actions .secondary-button span:first-child{display:none}.trace-body{grid-template-columns:1fr}.trace-module{min-height:430px}.mobile-board-return{z-index:30;border:1px solid var(--accent);border-radius:var(--radius-sm);background:var(--accent);color:#fff;min-height:44px;box-shadow:0 8px 20px color-mix(in oklch, var(--accent) 28%, transparent);align-items:center;gap:7px;padding:0 13px;font-size:11px;font-weight:750;display:inline-flex;position:fixed;bottom:14px;right:14px}.nfa-material-board-editor .automata-editor__canvas-shell,.nfa-material-board-editor .automata-editor__canvas{min-height:250px}}@media (width<=420px){.nfa-material-back{display:none}.nfa-material-page .topbar{justify-content:space-between}.nfa-material-board-validity{display:none}.nfa-material-progress{font-size:9px}.lesson-content{padding-left:14px;padding-right:14px}.input-row{grid-template-columns:minmax(0,1fr)}.primary-button{width:100%}}@media (hover:hover){.segment-button:hover{color:var(--fg);background:var(--bg)}.segment-button.active:hover{color:var(--accent);background:var(--accent-soft)}}@media (prefers-reduced-motion:reduce){.nfa-material-page *,.nfa-material-page :before,.nfa-material-page :after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.material-catalog-page{background:var(--surface);min-height:100vh;color:var(--fg);grid-template-columns:224px minmax(0,1fr);display:grid}.material-sidebar{z-index:15;background:var(--bg);border-right:1px solid var(--border);flex-direction:column;height:100vh;display:flex;position:sticky;top:0}.material-brand{border-bottom:1px solid var(--border);height:68px;color:var(--fg);font-family:var(--font-display);letter-spacing:-.02em;align-items:center;gap:11px;padding:0 18px;font-size:17px;font-weight:700;display:flex}.material-brand img{object-fit:contain;flex:0 0 30px;width:30px;height:30px;display:block}.material-nav{gap:3px;padding:14px 10px;display:grid}.material-nav-label{color:var(--muted);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;margin:12px 10px 5px;font-size:10px}.material-nav-item{min-height:38px;color:var(--muted);border-radius:4px;align-items:center;gap:10px;padding:0 10px;font-weight:550;display:flex}.material-nav-item:hover{background:var(--surface);color:var(--fg)}.material-nav-item.active{background:var(--surface);color:var(--fg);box-shadow:inset 0 0 0 1px var(--border)}.material-nav-item>svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:17px;height:17px}.material-nav-item.is-disabled{cursor:default;opacity:.68}.material-nav-item.is-disabled:hover{color:var(--muted);background:0 0}.material-nav-soon{font-family:var(--font-mono);letter-spacing:.03em;text-transform:uppercase;margin-left:auto;font-size:8px}.material-sidebar-foot{border-top:1px solid var(--border);margin-top:auto;padding:12px}.material-profile{border-radius:4px;align-items:center;gap:9px;min-width:0;padding:8px;display:flex}.material-profile strong,.material-profile small{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.material-profile strong{font-size:12px}.material-profile small{color:var(--muted);margin-top:1px;font-size:10px}.material-avatar{border:1px solid var(--border);background:var(--surface);width:28px;height:28px;font-family:var(--font-mono);border-radius:50%;flex:none;place-items:center;font-size:10px;font-weight:700;display:grid}.material-main{background:var(--surface);min-width:0}.material-topbar{z-index:10;border-bottom:1px solid var(--border);background:color-mix(in oklch, var(--surface) 94%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);align-items:center;gap:12px;height:68px;padding:0 clamp(20px,4vw,56px);display:flex;position:sticky;top:0}.material-mobile-menu{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);place-items:center;width:36px;height:36px;display:none}.material-search{width:min(430px,48vw);position:relative}.material-search svg{fill:none;width:16px;height:16px;stroke:var(--muted);stroke-width:1.8px;pointer-events:none;position:absolute;top:50%;left:11px;transform:translateY(-50%)}.material-search input{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);width:100%;height:38px;padding:0 12px 0 36px}.material-search input:hover{border-color:color-mix(in oklch, var(--muted) 38%, var(--border))}.material-search input:focus{border-color:var(--accent);background:var(--surface)}.material-topbar-spacer{flex:1}.material-help-button,.material-icon-button{border-radius:var(--radius);background:0 0;border:1px solid #0000;place-items:center;display:grid}.material-help-button{width:36px;height:36px}.material-help-button:hover,.material-icon-button:hover{border-color:var(--border);background:var(--fg-soft)}.material-help-button svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.material-primary-button{border:1px solid var(--fg);border-radius:var(--radius);background:var(--fg);min-height:38px;color:var(--surface);justify-content:center;align-items:center;gap:8px;padding:0 15px;font-weight:700;display:inline-flex}.material-primary-button:hover{background:color-mix(in oklch, var(--fg) 88%, var(--muted))}.material-primary-button svg{fill:none;stroke:currentColor;stroke-width:2px;width:17px;height:17px}.material-page-head{justify-content:space-between;align-items:end;gap:24px;margin-bottom:28px;display:flex}.material-page-head h1{font-family:var(--font-display);letter-spacing:-.035em;margin:0;font-size:clamp(30px,3vw,42px);line-height:1.08}.material-page-head p{color:var(--muted);margin:8px 0 0;font-size:15px}.material-topic-count{color:var(--muted);font-family:var(--font-mono);letter-spacing:.03em;margin-bottom:4px;font-size:11px}.material-filter-row{align-items:center;gap:5px;margin-bottom:32px;padding-bottom:2px;display:flex;overflow-x:auto}.material-filter-button{height:34px;color:var(--muted);white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:4px;padding:0 14px;font-size:12px;font-weight:650}.material-filter-button:hover{color:var(--fg);background:var(--fg-soft)}.material-filter-button.active{border-color:color-mix(in oklch, var(--accent) 12%, var(--border));background:var(--accent-soft);color:var(--accent)}.material-grid{grid-template-columns:repeat(3,minmax(220px,1fr));gap:22px;display:grid}.material-card{border:1px solid var(--border);background:var(--surface);text-align:left;border-radius:8px;flex-direction:column;min-width:0;min-height:320px;padding:30px;display:flex}.material-card-button{width:100%;color:inherit;font:inherit;cursor:pointer;transition:border-color .14s,box-shadow .14s,transform .14s}.material-card-button:hover{border-color:color-mix(in oklch, var(--muted) 42%, var(--border));box-shadow:var(--shadow);transform:translateY(-2px)}.material-card-button:focus-visible{box-shadow:0 0 0 2px var(--surface), 0 0 0 4px var(--accent);outline:0}.material-card-disabled{color:var(--fg)}.material-card-muted{opacity:1}.material-card-disabled .material-topic-icon,.material-card-disabled .material-card-copy strong{color:var(--muted)}.material-card-head{justify-content:space-between;align-items:flex-start;gap:10px;display:flex}.material-topic-icon{border:1px solid var(--border);background-color:var(--bg);background-image:radial-gradient(circle, color-mix(in oklch, var(--muted) 30%, transparent) 1px, transparent 1px);width:68px;height:68px;color:var(--fg);font-family:var(--font-mono);background-size:10px 10px;border-radius:6px;flex:0 0 68px;place-items:center;font-size:15px;font-weight:700;display:grid}.material-status{border:1px solid var(--border);min-height:28px;color:var(--muted);font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;white-space:nowrap;border-radius:999px;align-items:center;gap:7px;padding:0 10px;font-size:10px;font-weight:700;display:inline-flex}.material-status.is-available{border-color:color-mix(in oklch, var(--accent) 32%, var(--border));background:var(--accent-soft);color:var(--accent)}.material-status-dot{background:currentColor;border-radius:50%;width:6px;height:6px}.material-card-copy{margin-top:39px;display:block}.material-card-kicker{color:var(--muted);font-family:var(--font-body);letter-spacing:0;text-transform:none;margin-bottom:9px;font-size:13px;display:block}.material-card-copy strong{max-width:17ch;font-family:var(--font-display);letter-spacing:-.03em;font-size:24px;line-height:1.08;display:block}.material-card-description{color:var(--muted);margin-top:14px;font-size:15px;line-height:1.55;display:block}.material-empty{border-top:1px solid var(--border);text-align:center;color:var(--muted);gap:5px;padding:80px 20px;display:grid}.material-empty strong{color:var(--fg)}.material-dialog-backdrop{z-index:50;background:color-mix(in oklch, var(--fg) 28%, transparent);opacity:0;visibility:hidden;pointer-events:none;place-items:center;padding:20px;transition:opacity .14s,visibility .14s;display:grid;position:fixed;inset:0}.material-dialog-backdrop.open{opacity:1;visibility:visible;pointer-events:auto}.material-dialog{border:1px solid var(--border);background:var(--surface);width:min(440px,100%);box-shadow:0 20px 60px color-mix(in oklch, var(--fg) 20%, transparent);border-radius:8px;transition:transform .14s;transform:translateY(8px)}.material-dialog-backdrop.open .material-dialog{transform:translateY(0)}.material-dialog-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 18px;display:flex}.material-dialog-head h2{font-family:var(--font-display);margin:0;font-size:16px}.material-icon-button{width:34px;height:34px}.material-icon-button svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.material-dialog-body{padding:18px}.material-field{border:0;gap:6px;margin:0 0 16px;padding:0;display:grid}.material-field label,.material-field legend{color:var(--muted);font-size:11px}.material-field input{border:1px solid var(--border);background:var(--surface);border-radius:4px;width:100%;height:38px;padding:0 10px}.material-mode-options{grid-template-columns:1fr;gap:6px;display:grid}.material-mode-option{border:1px solid var(--border);background:var(--surface);text-align:left;border-radius:5px;align-content:center;gap:3px;min-height:56px;padding:10px;display:grid;position:relative}.material-mode-option:hover{background:var(--fg-soft)}.material-mode-option.active{border-color:var(--accent);background:var(--accent-soft)}.material-mode-option strong{font-family:var(--font-mono);font-size:11px}.home-mode-option .mode-category,.material-mode-option .mode-category{color:var(--muted);font-family:var(--font-body);letter-spacing:.04em;margin-right:5px;font-size:8px;font-weight:500;display:inline}.material-mode-option span{color:var(--muted);font-size:9px;line-height:1.35}.material-dialog-foot{border-top:1px solid var(--border);justify-content:flex-end;gap:7px;padding:12px 18px;display:flex}.material-secondary-button{border:1px solid var(--border);background:var(--surface);border-radius:4px;justify-content:center;align-items:center;min-height:36px;padding:0 13px;font-weight:650;display:inline-flex}.material-primary-button[type=submit]{min-height:36px}@media (width<=1120px){.material-grid{grid-template-columns:repeat(2,minmax(220px,1fr))}}@media (width<=760px){.material-catalog-page{grid-template-columns:1fr}.material-sidebar{width:224px;box-shadow:var(--shadow);transition:transform .16s;position:fixed;left:0;transform:translate(-100%)}.material-sidebar.open{transform:translate(0)}.material-mobile-menu{display:grid}.material-mobile-menu svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;width:18px;height:18px}.material-topbar{padding-inline:14px}.material-search{flex:1;width:auto}.material-new-button span{display:none}.material-new-button{width:38px;padding:0}.material-page-head{align-items:start}}@media (width<=540px){.material-grid{grid-template-columns:1fr;gap:15px}.material-card{min-height:300px;padding:24px}.material-card-copy strong{max-width:20ch;font-size:22px}.material-status{padding-inline:8px;font-size:9px}.material-page-head h1{font-size:30px}.material-topic-count{display:none}.material-mode-options{grid-template-columns:1fr}.material-mode-option{min-height:58px}}@media (prefers-reduced-motion:reduce){.material-card-button,.material-dialog-backdrop,.material-dialog{transition-duration:.01ms}}.lab-app{background:var(--bg);height:100dvh;min-height:100vh;color:var(--fg);flex-direction:column;display:flex;overflow:hidden}.lab-topbar{border-bottom:1px solid var(--border);background:var(--surface);flex:0 0 56px;grid-template-columns:minmax(0,1fr) minmax(0,1fr) minmax(0,1fr);align-items:center;min-width:0;height:56px;min-height:56px;padding:0 12px;display:grid}.lab-text-button{min-height:36px;color:var(--muted);background:0 0;border:0;align-items:center;gap:7px;padding:0 5px;font-size:12px;font-weight:650;display:inline-flex}.lab-text-button:hover{color:var(--fg)}.lab-topbar-left{place-self:stretch start;align-items:center;gap:24px;min-width:0;display:flex}.lab-brand-group{align-items:center;gap:8px;min-width:0;height:100%;display:flex}.lab-back-button{border:1px solid var(--border);width:32px;height:32px;color:var(--fg);background:0 0;border-radius:4px;flex:0 0 32px;place-items:center;padding:0;display:grid}.lab-back-button svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:2px;width:20px;height:20px}.lab-back-button:hover{background:var(--fg-soft)}.lab-branding{min-width:0;color:var(--fg);cursor:pointer;text-align:left;background:0 0;border:0;align-content:center;gap:1px;padding:0;display:grid}.lab-branding strong{font-family:var(--font-display);letter-spacing:-.02em;font-size:15px;font-weight:700;line-height:1.1}.lab-branding small{color:var(--muted);font-family:var(--font-body);font-size:10px;font-weight:500;line-height:1.1}.lab-type-chip{border:1px solid color-mix(in oklch, var(--accent) 34%, var(--border));background:var(--accent-soft);color:var(--accent);font-family:var(--font-mono);letter-spacing:.04em;white-space:nowrap;border-radius:4px;flex:none;padding:4px 7px;font-size:9px;font-weight:700}.lab-topbar-center{place-self:stretch center;align-items:center;gap:12px;min-width:0;display:flex}.lab-topbar-actions{justify-content:flex-end;align-self:stretch;align-items:center;gap:10px;display:flex}.lab-topbar-name-field{flex:0 auto;min-width:140px;max-width:min(32vw,360px);height:34px;display:inline-block;position:relative;overflow:hidden}.lab-topbar-name-field:after,.lab-topbar-name-field>input{font-family:var(--font-display);white-space:pre;padding:7px 8px;font-size:14px;font-weight:650;line-height:1.35}.lab-topbar-name-field:after{content:attr(data-value) " ";visibility:hidden;pointer-events:none;display:block}.lab-topbar-name-field>input{width:100%;min-width:0;max-width:100%;height:34px;color:var(--fg);text-overflow:ellipsis;background:0 0;border:1px solid #0000;border-radius:4px;outline:none;padding-right:32px;position:absolute;inset:0;overflow:hidden}.lab-topbar-name-field>input:hover{border-color:var(--border)}.lab-topbar-name-field>input:focus{border-color:var(--accent);background:var(--surface);box-shadow:none}.lab-name-pencil{width:22px;height:22px;color:var(--muted);pointer-events:none;place-items:center;display:grid;position:absolute;top:50%;right:7px;transform:translateY(-50%)}.lab-name-pencil svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;stroke-linejoin:round;width:14px;height:14px}.lab-save-state{color:var(--muted);font-family:var(--font-mono);flex:none;font-size:10px}.lab-save-state.is-stale{color:#9a3412}.lab-eyebrow{color:var(--accent);font-family:var(--font-mono);letter-spacing:.08em;font-size:9px;font-weight:700}.lab-tabbar{flex:0 0 0;display:none}.lab-workspace{background:var(--border);flex:1 1 0;grid-template-rows:minmax(0,1fr);min-height:0;display:grid}.lab-pane{background:var(--surface);min-width:0;min-height:0;overflow:hidden}.lab-pane--content,.lab-pane--dfa{flex-direction:column;display:flex;position:relative}.lab-divider{z-index:4;cursor:col-resize;background:0 0;width:7px;margin-left:-4px}.lab-divider:hover,.lab-divider:focus-visible{background:var(--accent);outline:0}.lab-board{background:var(--bg);flex-direction:column;height:100%;min-height:0;display:flex}.lab-board-head{z-index:2;border-bottom:1px solid var(--border);background:color-mix(in oklch, var(--surface) 90%, transparent);justify-content:space-between;align-items:center;min-height:38px;padding:0 12px;display:flex}.lab-board-heading{align-items:center;gap:9px;min-width:0;display:flex}.lab-board-title{font-family:var(--font-display);font-size:12px;font-weight:700}.lab-board-badge{border:1px solid var(--border);color:var(--muted);font-family:var(--font-mono);letter-spacing:.04em;border-radius:3px;padding:3px 6px;font-size:8px;font-weight:700}.lab-board-open{min-height:28px;color:var(--muted);white-space:nowrap;background:0 0;border:0;align-items:center;gap:5px;padding:0;font-size:10px;font-weight:650;display:inline-flex}.lab-board-open:hover{color:var(--accent)}.lab-board-canvas{flex:1;min-height:0}.lab-board-editor{border:0;border-radius:0;height:100%;min-height:220px}.lab-board-editor .automata-editor__workspace{grid-template-columns:minmax(0,1fr)}.lab-board-editor .automata-editor__stage{grid-column:1}.lab-board-editor .automata-editor__sidebar{display:none}.lab-board-editor .automata-editor__canvas-shell{border-radius:0}.lab-board-editor .automata-editor__canvas-hint{display:none}.lab-board--locked{background:color-mix(in oklch, var(--bg) 92%, var(--muted));place-items:center;padding:22px;display:grid}.lab-lock-card{border:1px solid var(--border);background:var(--surface);width:min(250px,100%);box-shadow:0 12px 28px color-mix(in oklch, var(--fg) 8%, transparent);text-align:center;border-radius:7px;place-items:center;gap:8px;padding:26px 18px;display:grid}.lab-lock-mark{border:1px solid var(--border);width:34px;height:34px;color:var(--muted);font-family:var(--font-mono);border-radius:50%;place-items:center;font-size:20px;display:grid}.lab-lock-mark svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7px;width:17px;height:17px}.lab-lock-card strong{font-family:var(--font-display);font-size:13px}.lab-lock-card p{color:var(--muted);margin:0;font-size:11px;line-height:1.45}.lab-lock-card .lab-board-badge{margin-top:4px}.lab-context{border-bottom:1px solid var(--border);background:var(--surface);flex:none;padding:17px 20px 14px}.lab-context-row{justify-content:space-between;align-items:start;gap:16px;display:flex}.lab-context-row>div{width:100%;min-width:0}.lab-context h1{font-family:var(--font-display);letter-spacing:-.02em;margin:0;font-size:19px;line-height:1.1}.lab-context-instruction{max-width:560px;margin-top:10px}.lab-context-instruction>strong{color:var(--fg);font-size:13px;font-weight:700;display:block}.lab-context-instruction p{color:var(--muted);margin:4px 0 0;font-size:14px;line-height:1.45}.lab-context small{color:var(--muted);margin-top:8px;font-size:10px;display:block}.lab-context-source{font-size:11px}.lab-context-source span{color:var(--muted);font-weight:500}.lab-theory{border:1px solid var(--border);background:oklch(97.5% .003 286);border-radius:5px;width:100%;margin-top:12px}.lab-theory-trigger{width:100%;min-height:38px;color:var(--fg);text-align:left;background:0 0;border:0;border-radius:5px;justify-content:space-between;align-items:center;gap:12px;padding:0 11px;font-size:12px;font-weight:700;display:flex}.lab-theory-trigger:hover{background:color-mix(in oklch, var(--surface) 52%, transparent)}.lab-theory-trigger:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.lab-theory-chevron{color:var(--muted);font-size:15px;line-height:1;transition:transform .16s}.lab-theory-trigger[aria-expanded=true] .lab-theory-chevron{transform:rotate(180deg)}.lab-context-concept{color:var(--muted);padding:0 11px 11px;font-size:13px;line-height:1.45}.lab-context-concept p{margin:0 0 8px}.lab-context-concept p:last-child{margin-bottom:0}.lab-context-mark{color:color-mix(in oklch, var(--accent) 36%, var(--muted));font-family:var(--font-mono);letter-spacing:.05em;flex:none;margin-top:1px;font-size:9px;font-weight:700}.lab-feedback{color:#9a3412;background:#fff7ed;border-left:2px solid #c2410c;margin-top:12px;padding:8px 10px;font-size:11px;line-height:1.35}.lab-feedback.is-correct{color:#166534;background:#f0fdf4;border-color:#15803d}.lab-table-scroll{background:var(--bg);flex:1;min-height:0;padding:19px 20px 24px;overflow:auto}.lab-table{border-collapse:separate;border-spacing:0;table-layout:fixed;border:1px solid var(--border);background:var(--surface);width:100%;min-width:420px}.lab-table th,.lab-table td{border-right:1px solid var(--border);border-bottom:1px solid var(--border);vertical-align:middle;text-align:left;min-width:112px;height:66px;padding:8px}.lab-table tr:last-child th,.lab-table tr:last-child td{border-bottom:0}.lab-table th:last-child,.lab-table td:last-child{border-right:0}.lab-table thead th{background:var(--fg-soft);height:36px;color:var(--muted);font-family:var(--font-mono);letter-spacing:.05em;text-transform:uppercase;padding:7px 9px;font-size:9px;font-weight:700}.lab-table thead tr:first-child th:first-child{width:164px}.lab-table tbody th{background:color-mix(in oklch, var(--surface) 88%, var(--bg));font-weight:500;position:relative}.lab-table tbody tr.is-active-row th{box-shadow:inset 3px 0 var(--accent)}.lab-table tbody tr.is-active-row td{background:var(--surface)}.lab-state-cell{grid-template-columns:26px minmax(0,1fr);align-items:center;gap:7px;display:grid}.lab-row-index{color:color-mix(in oklch, var(--fg) 74%, var(--muted));font-family:var(--font-mono);letter-spacing:.01em;font-size:11px;font-weight:700}.lab-select{min-width:0;position:relative}.lab-select-trigger,.lab-alphabet-select{border:1px solid var(--border);background:var(--surface);width:100%;min-height:36px;color:var(--muted);font-family:var(--font-mono);text-align:left;border-radius:4px;justify-content:space-between;align-items:center;gap:6px;padding:0 9px;font-size:10px;display:flex}.lab-select-trigger:hover:not(:disabled),.lab-alphabet-select:hover:not(:disabled){border-color:color-mix(in oklch, var(--accent) 52%, var(--border));color:var(--fg)}.lab-select-trigger.has-value,.lab-alphabet-select.has-value{border-color:color-mix(in oklch, var(--accent) 55%, var(--border));color:var(--fg)}.lab-select-trigger:disabled,.lab-alphabet-select:disabled{cursor:default;opacity:.52;background:color-mix(in oklch, var(--bg) 80%, var(--surface))}.lab-alphabet-select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%236b7280' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");background-position:right 9px center;background-repeat:no-repeat;background-size:12px;min-height:36px;padding-right:30px;font-size:10px;display:block}.lab-select-menu{z-index:20;border:1px solid var(--border);background:var(--surface);width:min(220px,44vw);min-width:180px;max-height:min(280px,50vh);box-shadow:0 12px 28px color-mix(in oklch, var(--fg) 14%, transparent);border-radius:6px;padding:6px;position:absolute;top:calc(100% + 6px);left:0;overflow-y:auto}.lab-option{min-height:34px;color:var(--fg);cursor:pointer;font-family:var(--font-mono);border-radius:4px;align-items:center;gap:8px;padding:4px 6px;font-size:10px;display:flex}.lab-option:hover,.lab-option.checked{background:var(--accent-soft)}.lab-option input{accent-color:var(--accent)}.lab-option span{align-items:baseline;gap:7px;min-width:0;display:flex}.lab-option small{color:var(--muted);font-family:var(--font-body);font-size:9px}.lab-option-done{border:0;border-top:1px solid var(--border);background:var(--surface);width:100%;min-height:32px;color:var(--accent);margin-top:5px;font-size:11px;font-weight:700;position:sticky;bottom:-6px}.lab-option-done:hover{background:var(--accent-soft)}.lab-submit-bar{border-top:1px solid var(--border);background:var(--surface);min-height:72px;box-shadow:0 -6px 18px color-mix(in oklch, var(--fg) 4%, transparent);flex:none}.lab-submit-progress{background:var(--accent-soft);height:3px;overflow:hidden}.lab-submit-progress span{background:var(--accent);height:100%;transition:width .22s;display:block}.lab-submit-content{justify-content:space-between;align-items:center;gap:14px;min-height:69px;padding:10px 20px;display:flex}.lab-submit-content>div{gap:2px;min-width:0;display:grid}.lab-submit-caption{color:var(--muted);font-family:var(--font-mono);font-size:9px}.lab-submit-bar strong{text-overflow:ellipsis;white-space:nowrap;font-size:11px;overflow:hidden}.lab-submit-button{border:1px solid var(--accent);background:var(--accent);min-height:38px;color:var(--surface);white-space:nowrap;border-radius:4px;justify-content:center;align-items:center;gap:9px;padding:0 13px;font-size:11px;font-weight:700;display:inline-flex}.lab-submit-button:hover{background:color-mix(in oklch, var(--accent) 87%, var(--fg))}.lab-topbar-actions .lab-text-button{min-height:32px;font-size:10px}.lab-restart-button{color:#9a3412}.lab-source-error{background:var(--bg);place-items:center;min-height:100vh;padding:24px;display:grid}.lab-source-error>div{border:1px solid var(--border);background:var(--surface);border-radius:7px;width:min(460px,100%);padding:28px}.lab-source-error span{color:var(--accent);font-family:var(--font-mono);letter-spacing:.08em;font-size:9px;font-weight:700}.lab-source-error h1{font-family:var(--font-display);margin:8px 0 6px;font-size:22px}.lab-source-error p{color:var(--muted);margin:0 0 18px;font-size:12px;line-height:1.5}.lab-source-error button{border:1px solid var(--border);background:var(--surface);border-radius:4px;min-height:36px;margin-right:8px;padding:0 12px;font-size:11px;font-weight:700}.lab-source-error button:first-of-type{border-color:var(--accent);background:var(--accent);color:var(--surface)}@media (width<=900px){.lab-topbar{flex-basis:56px;padding:0 12px}.lab-topbar-left{gap:12px}.lab-type-chip{display:none}.lab-topbar-name-field{min-width:110px}.lab-save-state{font-size:9px}.lab-tabbar{background:var(--border);flex:0 0 44px;grid-template-columns:repeat(3,1fr);gap:1px;padding:5px 8px 0;display:grid}.lab-tabbar button{background:var(--surface);color:var(--muted);border:0;border-bottom:2px solid #0000;font-size:11px;font-weight:700;position:relative}.lab-tabbar button.active{border-bottom-color:var(--accent);color:var(--accent)}.lab-tab-lock{color:var(--muted);margin-left:6px}.lab-tab-lock svg{fill:none;stroke:currentColor;stroke-linecap:round;stroke-linejoin:round;stroke-width:1.7px;vertical-align:-2px;width:12px;height:12px;display:inline-block}.lab-workspace{background:var(--surface);grid-template-columns:1fr}.lab-divider,.lab-pane{display:none}.lab-pane.is-mobile-active{display:flex}.lab-pane--content{display:none}.lab-pane--content.is-mobile-active{display:flex}.lab-board-editor{min-height:260px}.lab-context{max-height:42dvh;padding:14px 16px 12px;overflow-y:auto}.lab-context h1{font-size:17px}.lab-table-scroll{padding:14px 12px 20px}.lab-submit-bar{min-height:68px;padding-inline:14px}}@media (width<=500px){.lab-branding small{display:none}.lab-branding strong{font-size:12px}.lab-save-state{display:none}.lab-context-row{display:block}.lab-context-mark{margin-top:10px;display:block}.lab-submit-bar{align-items:end}.lab-submit-button{padding-inline:10px}.lab-topbar-actions .lab-text-button{text-overflow:ellipsis;white-space:nowrap;max-width:120px;overflow:hidden}}@media (prefers-reduced-motion:reduce){.lab-submit-progress span{transition:none}}.labs-app{background:var(--surface);grid-template-columns:224px minmax(0,1fr);min-height:100vh;display:grid}.labs-main{min-width:0}.labs-content{padding:clamp(28px,5vw,58px) clamp(20px,5vw,70px)}.labs-page-head{justify-content:space-between;align-items:end;gap:24px;margin-bottom:28px;display:flex}.labs-page-head h1{font-family:var(--font-display);letter-spacing:-.03em;margin:5px 0 0;font-size:clamp(28px,3vw,38px);line-height:1}.labs-page-head p{color:var(--muted);margin:8px 0 0;font-size:13px}.labs-create-button{min-height:36px}.labs-create-inline{border:1px solid var(--accent);background:var(--accent);min-height:36px;color:var(--surface);border-radius:4px;align-items:center;gap:9px;padding:0 13px;font-size:11px;font-weight:700;display:inline-flex}.labs-create-inline:hover{background:color-mix(in oklch, var(--accent) 88%, var(--fg))}.labs-list{gap:9px;max-width:780px;display:grid}.labs-card{border:1px solid var(--border);background:var(--surface);width:100%;min-height:76px;color:var(--fg);text-align:left;border-radius:6px;grid-template-columns:44px minmax(0,1fr) auto;align-items:center;gap:14px;padding:12px 15px;display:grid}.labs-card:hover{border-color:color-mix(in oklch, var(--accent) 50%, var(--border));box-shadow:var(--shadow)}.labs-card-icon{border:1px solid color-mix(in oklch, var(--accent) 35%, var(--border));background:var(--accent-soft);width:40px;height:40px;color:var(--accent);font-family:var(--font-mono);border-radius:5px;place-items:center;font-size:10px;font-weight:700;display:grid}.labs-card-copy{gap:4px;min-width:0;display:grid}.labs-card-copy strong{font-family:var(--font-display);text-overflow:ellipsis;white-space:nowrap;font-size:13px;overflow:hidden}.labs-card-copy small{color:var(--muted);font-size:10px}.labs-card-status{color:var(--accent);font-family:var(--font-mono);font-size:10px;font-weight:700}.labs-card-status.is-complete{color:#166534}.labs-empty{border:1px dashed var(--border);background:var(--bg);border-radius:7px;align-items:center;gap:28px;max-width:780px;min-height:210px;padding:34px;display:flex}.labs-empty-mark{color:color-mix(in oklch, var(--accent) 30%, var(--muted));font-family:var(--font-mono);letter-spacing:.1em;text-align:center;flex:none;font-size:13px;font-weight:700;line-height:1.4}.labs-empty-mark i{color:var(--accent);font-style:normal}.labs-empty strong{font-family:var(--font-display);font-size:15px}.labs-empty p{color:var(--muted);margin:5px 0 15px;font-size:12px}.lab-dialog-backdrop{z-index:40;background:color-mix(in oklch, var(--fg) 28%, transparent);opacity:0;visibility:hidden;pointer-events:none;place-items:center;padding:18px;transition:opacity .14s,visibility .14s;display:grid;position:fixed;inset:0}.lab-dialog-backdrop.open{opacity:1;visibility:visible;pointer-events:auto}.lab-dialog{border:1px solid var(--border);background:var(--surface);width:min(480px,100%);box-shadow:0 20px 60px color-mix(in oklch, var(--fg) 20%, transparent);border-radius:8px;overflow:hidden}.lab-dialog-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:start;gap:16px;padding:19px 20px 15px;display:flex}.lab-dialog-head h2{font-family:var(--font-display);letter-spacing:-.02em;margin:4px 0 0;font-size:17px}.lab-dialog-close{width:30px;height:30px;color:var(--muted);background:0 0;border:1px solid #0000;border-radius:4px;font-size:21px;line-height:1}.lab-dialog-close:hover{border-color:var(--border);color:var(--fg)}.lab-dialog-body{padding:18px 20px}.lab-dialog-intro{color:var(--muted);margin:0 0 14px;font-size:12px}.lab-source-list{gap:7px;display:grid}.lab-source-option{border:1px solid var(--border);cursor:pointer;border-radius:5px;grid-template-columns:16px minmax(0,1fr) auto;align-items:center;gap:10px;min-height:55px;padding:8px 10px;display:grid}.lab-source-option:hover,.lab-source-option.selected{border-color:color-mix(in oklch, var(--accent) 60%, var(--border));background:var(--accent-soft)}.lab-source-option input{accent-color:var(--accent)}.lab-source-option span{gap:2px;min-width:0;display:grid}.lab-source-option strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.lab-source-option small{color:var(--muted);font-size:9px}.lab-source-option em{border:1px solid color-mix(in oklch, var(--accent) 35%, var(--border));color:var(--accent);font-family:var(--font-mono);letter-spacing:.04em;text-transform:uppercase;border-radius:3px;padding:2px 4px;font-size:8px;font-style:normal;font-weight:700;display:inline-block}.lab-source-option b{color:var(--muted);font-family:var(--font-mono);font-size:12px}.lab-source-empty{color:var(--muted);text-align:center;padding:15px;font-size:11px}.lab-new-nfa{border:1px dashed var(--border);min-height:38px;color:var(--accent);text-align:left;background:0 0;border-radius:4px;margin-top:5px;font-size:11px;font-weight:700}.lab-new-nfa:hover{background:var(--accent-soft)}.lab-new-nfa span{color:var(--muted);margin-left:6px;font-size:10px;font-weight:400}.lab-name-field{color:var(--muted);gap:6px;font-size:11px;display:grid}.lab-name-field input{border:1px solid var(--border);background:var(--surface);border-radius:4px;min-height:38px;padding:0 10px}.lab-name-field input:focus{border-color:var(--accent);box-shadow:0 0 0 2px var(--accent-soft);outline:0}.lab-selected-source{border-left:2px solid var(--accent);background:var(--accent-soft);color:var(--muted);gap:3px;margin-top:17px;padding:10px;font-size:10px;display:grid}.lab-selected-source strong{color:var(--fg);font-size:12px}.lab-dialog-foot{border-top:1px solid var(--border);justify-content:flex-end;gap:7px;padding:12px 20px;display:flex}.lab-dialog-secondary,.lab-dialog-primary{border-radius:4px;min-height:36px;padding:0 12px;font-size:11px;font-weight:700}.lab-dialog-secondary{border:1px solid var(--border);background:var(--surface)}.lab-dialog-secondary:hover{background:var(--fg-soft)}.lab-dialog-primary{border:1px solid var(--accent);background:var(--accent);color:var(--surface)}.lab-dialog-primary:hover{background:color-mix(in oklch, var(--accent) 88%, var(--fg))}.lab-dialog-primary:disabled{cursor:default;opacity:.45}@media (width<=760px){.labs-app{grid-template-columns:1fr}.labs-content{padding:28px 16px 44px}.labs-page-head{align-items:start}.labs-page-head .labs-create-inline{display:none}}@media (width<=480px){.labs-empty{text-align:center;padding:28px;display:block}.labs-empty-mark{margin-bottom:16px}.labs-card{grid-template-columns:40px minmax(0,1fr)}.labs-card-status{grid-column:2}}.language-notation-shell{background:var(--surface);width:100%;height:100vh;min-height:0;color:var(--fg);font-family:var(--font-body);grid-template-rows:56px minmax(0,1fr);display:grid;position:fixed;inset:0;overflow:clip}.language-notation-page{overscroll-behavior-y:contain;background:var(--surface);min-height:0;color:var(--fg);font:14px/1.55 var(--font-body);-webkit-font-smoothing:antialiased;overflow-y:auto}.language-notation-page *,.language-notation-page :before,.language-notation-page :after{box-sizing:border-box}.language-notation-page button,.language-notation-page input,.language-notation-page select{font:inherit;color:inherit}.language-notation-page button{cursor:pointer}.language-notation-page button:focus-visible,.language-notation-page input:focus-visible,.language-notation-page select:focus-visible,.language-notation-page summary:focus-visible,.language-notation-page a:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.language-notation-shell .topbar{position:relative}.language-notation-shell .header-material-context{z-index:1}.ln-layout{width:min(100%,1160px);margin:0 auto;padding:0 24px 42px}.ln-layout-grid{grid-template-columns:212px minmax(0,760px);justify-content:center;align-items:start;gap:30px;display:grid}.ln-reading{width:min(100%,760px);margin:0 auto}.lesson-intro.ln-title-block{border-bottom:0;padding:22px 0 18px}.ln-title-block .eyebrow{color:var(--muted);font:650 12px/1.4 var(--font-body);letter-spacing:0;text-transform:none;margin:0 0 5px}.ln-title-block h1{font:650 clamp(26px, 2vw, 36px)/1.08 var(--font-display);letter-spacing:-.035em;margin:0}.ln-title-block>p:last-child{max-width:64ch;color:var(--muted);margin:7px 0 0;font-size:14px;line-height:1.45}.ln-material-sidebar{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);margin-top:27px;padding:10px 7px 7px;position:sticky;top:18px}.ln-sidebar-heading{color:var(--muted);margin:0 7px 7px;font-size:11px;font-weight:650}.ln-desktop-nav{grid-template-columns:1fr;gap:2px;display:grid}.ln-desktop-nav button{border-radius:var(--radius-xs);min-height:40px;color:var(--muted);text-align:left;white-space:normal;background:0 0;border:1px solid #0000;grid-template-columns:18px minmax(0,1fr);justify-content:flex-start;align-items:start;gap:6px;padding:8px 7px;font-size:11px;font-weight:600;line-height:1.3;display:grid}.ln-desktop-nav button span:first-child{color:var(--muted-2);font:inherit}.ln-desktop-nav button:hover{background:var(--bg);color:var(--fg)}.ln-desktop-nav button.active{border-color:var(--border);background:var(--accent-soft);color:var(--accent);box-shadow:none}.ln-desktop-nav button.active span:first-child{color:inherit}.ln-navigation{display:none}.ln-mobile-nav{gap:5px;font-size:11px;font-weight:650;display:grid}.ln-mobile-nav select{width:100%}.ln-material{padding-top:0}.ln-material-heading{margin:0;padding:20px 0 0}.ln-material-heading h2{font:650 23px/1.15 var(--font-display);letter-spacing:-.025em;margin:0;scroll-margin-top:24px}.ln-material-heading h2:focus{outline:none}.ln-basics-intro{color:var(--muted);margin:14px 0 0;font-size:14px}.ln-section{border-top:1px solid var(--border);margin:0;padding:24px 0}.ln-material-heading+.ln-section,.ln-material-heading+.ln-basics-intro+.ln-section{margin-top:5px}.ln-section h3,.ln-experiment h3,.ln-check h3,.ln-review h3,.ln-continue h3{font:650 19px/1.3 var(--font-display);letter-spacing:-.012em;margin:0 0 9px}.ln-section h4{font:650 15px/1.35 var(--font-display);margin:18px 0 7px}.ln-section p,.ln-experiment p,.ln-check p,.ln-review p,.ln-reflection p,.ln-continue p{color:var(--muted);margin:0 0 12px}.ln-section p:last-child,.ln-experiment p:last-child,.ln-check p:last-child,.ln-review p:last-child,.ln-reflection p:last-child,.ln-continue p:last-child{margin-bottom:0}.language-notation-page code{color:var(--fg);font:.96em var(--font-mono);white-space:normal;overflow-wrap:anywhere;background:0 0;border:0;border-radius:0;padding:0}.ln-section code,.ln-math,.ln-check code,.ln-experiment code{font-family:var(--font-mono)}.ln-math{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-raised);overflow-wrap:anywhere;gap:5px;margin:13px 0;padding:11px 13px;font-size:14px;display:grid}.ln-math>span:not(.ln-math-caption){font-size:14px}.ln-math-caption{color:var(--muted);font:10px var(--font-body)}.ln-live-math{background:var(--surface);gap:8px;margin:12px 0;padding:13px 15px}.ln-live-math>span:first-child{color:var(--muted);font-size:12px}.ln-live-math>span:nth-child(2){overflow-wrap:anywhere;align-items:center;gap:5px;min-height:39px;display:flex}.ln-live-math>span:nth-child(3){border-top:1px solid var(--border);color:var(--fg);font:650 18px/1.35 var(--font-mono);overflow-wrap:anywhere;padding-top:8px}.ln-live-math>span:nth-child(4){color:var(--muted);font:11px var(--font-body)}.ln-count-one>span:nth-child(2){gap:6px;min-height:44px}.ln-count-one .ln-block{min-width:34px;height:36px;font-size:18px}.ln-count-pair>span:first-child,.ln-count-shared>span:first-child{color:var(--muted);font-size:12px}.ln-count-pair>span:last-child,.ln-count-shared>span:last-child{border-top:1px solid var(--border);color:var(--fg);font:650 20px/1.35 var(--font-mono);overflow-wrap:anywhere;padding-top:9px}.ln-count-pair>span:nth-child(2).ln-block-row{grid-template-columns:repeat(2,minmax(0,1fr));display:grid}.ln-star-output>span:first-child{gap:6px;min-height:40px}.ln-star-output .ln-block{min-width:34px;height:36px;font-size:18px}.ln-star-output>span:nth-child(2),.ln-scope-output>span:last-child,.ln-combined-output>span:last-child{border-top:1px solid var(--border);color:var(--fg);font:650 18px/1.4 var(--font-mono);overflow-wrap:anywhere;padding-top:8px}.ln-scope-output>span,.ln-combined-output>span{display:block}.ln-match{border:1px solid var(--accent);background:var(--accent-soft);color:var(--fg);border-radius:2px;padding:0 2px;font-style:normal}.ln-inline-examples{flex-wrap:wrap;gap:3px;display:flex}.ln-string-display{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-raised);flex-wrap:wrap;align-items:center;gap:11px;min-height:56px;padding:10px;display:flex}.ln-string-display strong{min-width:45px;color:var(--fg);font:650 21px var(--font-mono);overflow-wrap:anywhere}.ln-string-display span{flex-wrap:wrap;gap:4px;display:flex}.ln-string-display i,.ln-block{border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--surface);min-width:26px;height:26px;font:normal 14px var(--font-mono);place-items:center;display:inline-grid}.ln-string-display small{color:var(--muted);font:11px var(--font-mono);margin-left:auto}.ln-button-row,.ln-preset-row,.ln-example-strip,.ln-radio-row{flex-wrap:wrap;align-items:center;gap:6px;margin:10px 0;display:flex}.ln-button-row button,.ln-small-button,.ln-secondary,.ln-material-footer button{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);min-height:34px;padding:0 10px;font-size:11px;font-weight:650}.ln-button-row button:hover,.ln-small-button:hover,.ln-secondary:hover,.ln-material-footer button:hover:not(:disabled){border-color:var(--border-strong);background:var(--surface-raised)}.ln-button-row button:disabled,.ln-material-footer button:disabled{cursor:not-allowed;opacity:.48}.ln-small-button.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.ln-notice,.ln-limit{color:var(--muted);font-size:11px!important}.ln-experiment{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-raised);margin:18px 0 24px;padding:16px}.ln-experiment .ln-experiment{border:0;border-top:1px solid var(--border);background:0 0;border-radius:0;margin:12px 0 0;padding:12px 0 0}.ln-experiment-head{justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:8px;display:flex}.ln-experiment-head h3{margin:0}.ln-limit{flex:none}.ln-compare{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin:14px 0 4px;display:grid;overflow:hidden}.ln-compare>div{align-content:start;gap:6px;min-width:0;padding:12px;display:grid}.ln-compare>div+div{border-left:1px solid var(--border)}.ln-compare span,.ln-compare small{color:var(--muted);font-size:11px}.ln-compare code{width:fit-content;color:var(--fg);font-size:16px}.ln-membership-rows{gap:0;margin:10px 0;display:grid}.ln-membership-row{border-top:1px solid var(--border);grid-template-columns:minmax(56px,.3fr) minmax(0,1fr);align-items:baseline;gap:12px;padding:8px 0;display:grid}.ln-membership-row span{font-size:12px}.ln-example-strip{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));align-items:stretch;display:grid}.ln-example-strip span{border-top:1px solid var(--border);font:12px/1.45 var(--font-body);padding:8px 0}.ln-block-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;padding:5px 0;display:grid}.ln-block-row b{min-width:0;font:11px var(--font-body);border:0;align-content:start;gap:3px;padding:0;display:grid}.ln-block-row i{color:var(--muted);font-size:10px;font-style:normal}.ln-block-row strong{font:18px/1.4 var(--font-mono);letter-spacing:.04em;overflow-wrap:anywhere}.ln-table-wrap{margin:12px 0;overflow-x:auto}.ln-table-wrap table{border-collapse:collapse;width:100%;font-size:12px}.ln-table-wrap caption{color:var(--muted);text-align:left;padding:7px 0}.ln-table-wrap th,.ln-table-wrap td{border-bottom:1px solid var(--border);text-align:left;vertical-align:top;padding:8px 8px 8px 0}.ln-table-wrap th{color:var(--fg);font:650 11px var(--font-body)}.ln-check{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);margin:16px 0 24px;padding:12px}.ln-check-label{font:650 12px/1.4 var(--font-body)!important;letter-spacing:0!important;margin:0 0 5px!important}.ln-question{font-size:12px;font-weight:650;line-height:1.4}.ln-choice-list{border:0;flex-wrap:wrap;gap:6px;margin:10px 0;padding:0;display:flex}.ln-choice{border-radius:var(--radius-xs);background:var(--surface-raised);white-space:normal;cursor:pointer;align-items:center;gap:8px;width:auto;max-width:100%;min-height:36px;padding:7px 10px;font-size:11px;font-weight:650;line-height:1.4;display:flex}.ln-choice input{accent-color:var(--accent);flex:none;margin:2px 0 0}.ln-choice span{min-width:0}.ln-choice.selected{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.ln-choice.correct{border-color:var(--success);background:var(--success-soft);color:var(--success)}.ln-choice.incorrect{border-color:var(--danger);background:var(--danger-soft);color:var(--danger)}.ln-primary{border-radius:var(--radius-sm);min-height:36px;padding:0 12px;font-size:11px;font-weight:750}.ln-submit-button{width:fit-content;min-height:34px;margin-top:4px}.ln-feedback{background:0 0;border:0;padding:0;color:var(--muted)!important;margin:8px 0 0!important;font-size:11px!important;font-weight:400!important}.ln-hint-row{margin:6px 0}.ln-hint-row p{margin:0 0 8px;font-size:12px}.ln-text-button{min-height:30px;color:var(--accent);text-underline-offset:3px;background:0 0;border:0;padding:4px 0;font-size:11px;font-weight:650}.ln-control-row{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-raised);flex-wrap:wrap;align-items:center;gap:14px;margin:13px 0 11px;padding:12px;display:flex}.ln-control-row>.ln-small-button{flex:none;margin:0}.ln-control-row .ln-button-row{margin:0}.ln-stepper{vertical-align:top;gap:5px;min-width:150px;margin:0;display:inline-grid}.ln-stepper>span{font-size:11px;font-weight:650}.ln-stepper>div{grid-template-columns:36px 40px 36px;align-items:center;gap:5px;display:grid}.ln-stepper button{border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--surface);width:36px;height:36px;font-size:18px}.ln-stepper button:disabled{opacity:.42;cursor:not-allowed}.ln-stepper output{border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--surface);text-align:center;min-width:40px;height:36px;font:650 14px var(--font-mono);place-items:center;display:grid}.ln-stepper small{color:var(--muted);font-size:10px}.ln-stepper-pair{flex-wrap:wrap;gap:14px;display:flex}.ln-pair-select{flex-wrap:wrap;align-items:end;gap:12px;display:flex}.ln-pair-select label,.ln-radio-row label{font-size:11px;font-weight:650}.ln-radio-row label,.ln-pair-select label,.ln-expression-choice label{align-items:center;gap:7px;min-height:34px;display:inline-flex}.ln-pair-select select,.ln-radio-row select,.ln-mobile-nav select,.ln-explorer select,.ln-operation-fields select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-raised);min-height:36px;padding:6px 9px;font-size:12px}.ln-expression-choice{flex-wrap:wrap;gap:6px;margin:10px 0;display:flex}.ln-expression-choice button{border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--surface-raised);min-height:34px;color:var(--fg);cursor:pointer;font:11px var(--font-mono);padding:0 10px}.ln-expression-choice button[aria-pressed=true]{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.ln-expression-choice button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.ln-scope-bracket{border-bottom:1px solid var(--accent);padding:0 5px 4px;display:inline-block}.ln-segment-note{color:var(--muted);margin:8px 0;font-size:12px}.ln-details{border-top:1px solid var(--border);margin:12px 0;padding:8px 0}.ln-details summary{cursor:pointer;font-weight:650}.ln-input-label{margin:8px 0 4px;font-size:11px;font-weight:650;display:block}.ln-input-row{flex-wrap:wrap;align-items:center;gap:9px;display:flex}.ln-input-row input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-raised);min-width:0;min-height:36px;font:12px var(--font-mono);flex:180px;padding:6px 9px}.ln-input-preview{min-width:76px;color:var(--muted);font:11px var(--font-mono);overflow-wrap:anywhere}.ln-live{min-height:0}.ln-explorer{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-raised);grid-template-columns:auto minmax(150px,240px);align-items:center;gap:8px 12px;margin:13px 0;padding:12px;display:grid}.ln-explorer label{font-size:11px;font-weight:650}.ln-explorer p{grid-column:1/-1;margin:0;font-size:11px}.ln-candidate-scroll{max-width:100%;overflow-x:auto}.ln-candidate-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:0;min-width:440px;margin-top:13px;display:grid;overflow:visible}.ln-candidate-grid>span{color:var(--fg);font:650 10px var(--font-body);padding:7px 6px}.ln-candidate-row{background:var(--surface);text-align:left;cursor:pointer;border:0;grid-column:1/-1;grid-template-columns:repeat(4,minmax(0,1fr));padding:0;display:grid}.ln-candidate-row>*{border-top:1px solid var(--border);overflow-wrap:anywhere;min-width:0;padding:7px 6px;font-size:11px}.ln-candidate-row.selected{background:var(--accent-soft)}.ln-operation-fields{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-raised);gap:0;margin:12px 0;padding:0 12px;display:grid}.ln-operation-fields label{border-bottom:1px solid var(--border);font:650 11px var(--font-mono);grid-template-columns:minmax(90px,.5fr) minmax(0,1fr);align-items:center;gap:10px;padding:9px 0;display:grid}.ln-operation-fields label:last-child{border-bottom:0}.ln-true-false{border:0;margin:10px 0;padding:0;display:block}.ln-true-false legend{margin-bottom:6px;padding:0;font-size:11px;font-weight:650}.ln-true-false label{align-items:center;min-height:32px;margin:0 6px 0 0;display:inline-flex}.ln-reading-steps{color:var(--muted);gap:7px;margin:10px 0;padding-left:22px;display:grid}.ln-review{border-top:1px solid var(--border);margin:24px 0;padding-top:18px}.ln-review>.ln-check{margin-left:0;margin-right:0}.ln-build-question{margin-bottom:9px!important}.ln-reflection{border-top:1px solid var(--border);padding:18px 0}.ln-reflection-sample{color:var(--muted);margin-top:8px!important}.ln-continue{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-raised);justify-content:space-between;align-items:center;gap:20px;margin:20px 0;padding:16px;display:flex}.ln-continue h3{margin:0 0 5px}.ln-continue p{margin:0;font-size:12px}.ln-continue .ln-primary{flex:none}.ln-material-footer{border-top:1px solid var(--border);justify-content:space-between;align-items:center;gap:10px;margin-top:24px;padding:14px 0 28px;display:flex}.ln-material-footer button{color:var(--fg)}.ln-material-footer span{color:var(--muted);font:11px var(--font-body)}.ln-three{grid-template-columns:repeat(3,1fr)}.ln-compare:has(>div:nth-child(2):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}.ln-sr-only{clip:rect(0,0,0,0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}@media (width<=1100px){.language-notation-shell .header-material-context{display:none}.ln-layout{padding-left:24px;padding-right:24px}.ln-layout-grid{display:block}.ln-material-sidebar{display:none}.ln-navigation{z-index:12;background:var(--surface);width:100%;margin:0 auto;padding:8px 0;display:block;position:sticky;top:0}.ln-material-heading h2{scroll-margin-top:88px}}@media (width<=640px){.language-notation-shell{height:auto;min-height:100%;display:block;position:relative;inset:auto;overflow:visible}.language-notation-shell .topbar{z-index:20;position:sticky;top:0}.language-notation-page{overflow:visible}.ln-layout{padding:0 18px 32px}.lesson-intro.ln-title-block{padding:24px 0 18px}.ln-navigation{padding:8px 0;top:56px}.ln-material-heading h2{scroll-margin-top:136px}}@media (width<=560px){.ln-compare{grid-template-columns:1fr}.ln-desktop-nav{display:none}.ln-mobile-nav{gap:5px;font-size:11px;font-weight:650;display:grid}.ln-mobile-nav select{width:100%}.ln-material-footer button{padding:0 8px}.ln-continue{flex-direction:column;align-items:flex-start}.ln-continue .ln-primary{width:100%}.ln-candidate-grid{--ln-candidate-columns:minmax(52px, 1.25fr) minmax(38px, .7fr) minmax(38px, .7fr) minmax(82px, 1.45fr);grid-template-columns:var(--ln-candidate-columns);min-width:0;font-size:10px}.ln-candidate-row{grid-template-columns:var(--ln-candidate-columns)}.ln-candidate-grid>span,.ln-candidate-row>*{padding:6px 4px}.ln-three{grid-template-columns:1fr}.ln-compare:has(>div:nth-child(2):last-child){grid-template-columns:1fr}.ln-compare>div+div{border-top:1px solid var(--border);border-left:0}.ln-control-row{align-items:flex-start;gap:10px 14px;padding:10px}.ln-control-row>.ln-stepper-pair{width:100%}.ln-stepper-pair{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.ln-stepper{min-width:0}.ln-experiment{padding:13px}.ln-explorer{grid-template-columns:minmax(0,1fr)}.ln-explorer p{grid-column:1}.ln-count-pair>span:nth-child(2).ln-block-row{grid-template-columns:1fr 1fr}.ln-live-math>span:nth-child(3),.ln-count-pair>span:last-child,.ln-count-shared>span:last-child{font-size:17px}}@media (prefers-reduced-motion:reduce){.language-notation-page *,.language-notation-page :before,.language-notation-page :after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}.exercise-catalog-page{background:var(--surface);min-height:100vh;color:var(--fg);grid-template-columns:224px minmax(0,1fr);display:grid}.exercise-catalog-main{min-width:0}.exercise-catalog-content{width:min(100%,980px);margin:0 auto;padding:34px clamp(20px,4vw,56px) 60px}.exercise-breadcrumb{min-height:22px;color:var(--muted);flex-wrap:wrap;align-items:center;gap:8px;font-size:13px;display:flex}.exercise-breadcrumb button{color:inherit;background:0 0;border:0;padding:0}.exercise-breadcrumb button:hover{color:var(--fg);text-decoration:underline}.exercise-catalog-heading{margin:15px 0 28px}.exercise-catalog-heading h1,.exercise-overview-heading h1,.exercise-results-content>h1,.exercise-message-content h1{font:650 clamp(28px, 3vw, 36px)/1.12 var(--font-display);letter-spacing:-.03em;margin:0}.exercise-catalog-heading p,.exercise-overview-heading p{max-width:64ch;color:var(--muted);margin:9px 0 0;font-size:15px;line-height:1.55}.exercise-overview-heading p{color:var(--fg)}.exercise-topic-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);grid-template-columns:46px minmax(0,1fr) auto;align-items:center;gap:18px;padding:20px;display:grid}.exercise-topic-mark{border:1px solid var(--border);border-radius:var(--radius);width:46px;height:46px;color:var(--fg);font:600 12px var(--font-mono);place-items:center;display:grid}.exercise-topic-copy{min-width:0}.exercise-topic-copy h2{font:650 19px/1.3 var(--font-display);letter-spacing:-.015em;margin:0}.exercise-topic-copy p{color:var(--muted);margin:5px 0 0;font-size:14px;line-height:1.5}.exercise-button{border:1px solid var(--border);border-radius:var(--radius);justify-content:center;align-items:center;gap:9px;min-height:40px;padding:0 14px;font-weight:650;display:inline-flex}.exercise-button-primary{border-color:var(--accent);background:var(--accent);color:var(--surface)}.exercise-button-primary:hover:not(:disabled){background:color-mix(in oklch, var(--accent) 90%, var(--fg))}.exercise-button-primary:disabled{cursor:not-allowed;opacity:.46}.exercise-button-secondary{background:var(--surface)}.exercise-button-secondary:hover:not(:disabled){background:var(--bg)}.exercise-button-secondary:disabled{cursor:default;opacity:.46}.exercise-button:focus-visible,.exercise-inline-action:focus-visible,.exercise-back:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.exercise-document-page,.exercise-message-page{--success:oklch(46% .13 150);--danger:oklch(49% .19 28);background:var(--surface);min-height:100vh;color:var(--fg)}.exercise-document-topbar{border-bottom:1px solid var(--border);background:var(--surface);justify-content:space-between;align-items:center;gap:16px;height:56px;padding:0 20px;display:flex;position:relative}.exercise-header-identity{align-items:center;gap:9px;min-width:0;display:flex}.exercise-header-back{border:1px solid var(--border);width:32px;height:32px;color:var(--fg);background:0 0;border-radius:5px;flex:0 0 32px;place-items:center;padding:0;display:grid}.exercise-header-back:hover{background:var(--bg)}.exercise-header-back svg{fill:none;stroke:currentColor;stroke-width:2px;stroke-linecap:round;stroke-linejoin:round;width:20px;height:20px}.exercise-header-brand{color:var(--fg);font-family:var(--font-display);text-align:left;background:0 0;border:0;gap:1px;padding:0;line-height:1.1;display:grid}.exercise-header-brand strong{font-size:15px}.exercise-header-brand small{color:var(--muted);font:500 10px/1.1 var(--font-body)}.exercise-header-context{color:var(--muted);align-items:center;gap:7px;font-size:12px;font-weight:650;display:flex;position:absolute;left:50%;transform:translate(-50%)}.exercise-header-context b{font-size:15px;font-weight:400}.exercise-overview-content{width:min(100%,860px);margin:0 auto;padding:25px 24px 54px}.exercise-overview-heading{margin:19px 0 25px}.exercise-how{border-top:1px solid var(--border);padding:18px 0 0}.exercise-how h2,.exercise-history-heading h2{font:650 18px/1.3 var(--font-display);margin:0}.exercise-how p{max-width:72ch;color:var(--fg);margin:7px 0 0;font-size:14px;line-height:1.6}.exercise-overview-actions{flex-wrap:wrap;gap:10px;margin:22px 0 34px;display:flex}.exercise-history{border-top:1px solid var(--border);padding-top:22px}.exercise-history-heading{justify-content:space-between;align-items:start;gap:18px;margin-bottom:13px;display:flex}.exercise-history-heading p{color:var(--muted);margin:4px 0 0;font-size:12px}.exercise-history-empty{color:var(--muted);margin:0;padding:15px 0}.exercise-history-table-wrap{overflow-x:auto}.exercise-history-table{border-collapse:collapse;width:100%;font-size:13px}.exercise-history-table th,.exercise-history-table td{border-bottom:1px solid var(--border);text-align:left;vertical-align:middle;padding:12px 10px 12px 0}.exercise-history-table th{color:var(--muted);font-size:11px;font-weight:600}.exercise-history-table th:first-child,.exercise-history-table td:first-child{padding-left:0}.exercise-inline-action{min-height:32px;color:var(--fg);text-align:left;background:0 0;border:0;align-items:center;gap:7px;padding:0;font-weight:650;display:inline-flex}.exercise-inline-action:hover{text-underline-offset:3px;text-decoration:underline}.exercise-storage-error,.exercise-save-error{border-top:1px solid var(--border);border-bottom:1px solid var(--border);flex-wrap:wrap;align-items:center;gap:12px 18px;margin:15px 0;padding:14px 0;display:flex}.exercise-storage-error p,.exercise-save-error p{flex:300px;margin:0;line-height:1.55}.exercise-storage-error{color:var(--fg)}.exercise-runner-content{width:min(100%,780px);margin:0 auto;padding:22px 24px 52px}.exercise-runner-content>.exercise-breadcrumb{margin-bottom:24px}.exercise-question-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:9px;margin:0 0 13px;font-size:13px;display:flex}.exercise-question-heading{max-width:38ch;font:650 clamp(24px, 3vw, 30px)/1.25 var(--font-display);letter-spacing:-.02em;margin:0;scroll-margin-top:14px}.exercise-question-heading:focus{outline:none}.exercise-question-context{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);overflow-wrap:anywhere;margin:16px 0 18px;padding:13px 15px;font-size:16px;line-height:1.5}.exercise-question-context code{white-space:pre-wrap;font:15px/1.6 var(--font-mono)}.exercise-guidance{color:var(--muted);margin:0 0 9px;font-size:14px}.exercise-options{border:0;gap:9px;margin:0;padding:0;display:grid}.exercise-option{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);cursor:pointer;align-items:center;gap:12px;min-height:52px;padding:11px 13px;line-height:1.5;display:flex}.exercise-option:hover{background:var(--bg)}.exercise-option.selected{border-color:color-mix(in oklch, var(--fg) 48%, var(--border));background:var(--bg)}.exercise-option input{width:17px;height:17px;accent-color:var(--accent);flex:0 0 17px;margin:0}.exercise-option span{overflow-wrap:anywhere;min-width:0;font-size:15px}.exercise-question-actions{flex-wrap:wrap;align-items:center;gap:12px;margin-top:18px;display:flex}.exercise-selection-hint{color:var(--muted);font-size:13px}.exercise-answer-feedback{border-top:1px solid var(--border);margin-top:22px;padding-top:17px}.exercise-verdict{margin:0 0 9px;font-size:19px;font-weight:700}.exercise-verdict.is-correct{color:var(--success)}.exercise-verdict.is-incorrect{color:var(--danger)}.exercise-solution{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);margin-top:16px;padding:16px}.exercise-solution h2{font:650 19px/1.3 var(--font-display);margin:0 0 10px}.exercise-solution p{margin:0 0 8px;line-height:1.55}.exercise-solution ol{gap:7px;margin:9px 0 0;padding-left:23px;line-height:1.55;display:grid}.exercise-after-answer{margin-top:22px}.exercise-review-answers{margin-bottom:15px}.exercise-review-answers p{margin:5px 0;line-height:1.55}.exercise-read-only-note{color:var(--muted);margin:19px 0;font-size:13px}.exercise-results-content{width:min(100%,860px);margin:0 auto;padding:25px 24px 55px}.exercise-results-content>.exercise-breadcrumb{margin-bottom:23px}.exercise-results-score{font:650 clamp(24px, 3vw, 32px)/1.25 var(--font-display);margin:9px 0 0}.exercise-results-intro{color:var(--muted);margin:7px 0 22px}.exercise-results-list{border-top:1px solid var(--border);margin:0;padding:0;list-style:none}.exercise-results-list li{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:14px;padding:12px 0;display:flex}.exercise-results-list li>div{grid-template-columns:minmax(86px,.7fr) minmax(150px,1.5fr) minmax(74px,.5fr);align-items:center;gap:12px;min-width:0;display:grid}.exercise-results-list li>div span{color:var(--muted);overflow-wrap:anywhere;font-size:13px}.exercise-message-page{background:var(--surface);min-height:100vh}.exercise-message-content{width:min(100%,760px);margin:0 auto;padding:42px 24px}.exercise-message-content .exercise-button{margin:22px 8px 0 0}@media (width<=760px){.exercise-catalog-page{grid-template-columns:minmax(0,1fr)}.exercise-catalog-content{padding:27px 16px 44px}.exercise-topic-card{grid-template-columns:40px minmax(0,1fr);gap:12px;padding:15px}.exercise-topic-mark{width:40px;height:40px}.exercise-topic-copy h2{font-size:17px}.exercise-topic-copy p{font-size:13px}.exercise-topic-card .exercise-button{grid-column:1/-1;justify-self:start}.exercise-overview-content,.exercise-results-content,.exercise-runner-content{padding-inline:16px}}@media (width<=520px){.exercise-document-topbar{gap:10px;padding-inline:12px}.exercise-header-context{display:none}.exercise-overview-content{padding-top:20px}.exercise-history-table thead{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}.exercise-history-table,.exercise-history-table tbody,.exercise-history-table tr,.exercise-history-table td{width:100%;display:block}.exercise-history-table tr{border-bottom:1px solid var(--border);grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:0 15px;padding:9px 0;display:grid}.exercise-history-table td{border:0;justify-content:space-between;gap:8px;padding:4px 0;font-size:12px;display:flex}.exercise-history-table td:before{content:attr(data-label);color:var(--muted);font-size:11px}.exercise-history-table td:last-child{grid-column:1/-1;justify-content:flex-start;padding-top:8px}.exercise-history-table td:last-child:before{display:none}.exercise-results-list li{flex-direction:column;align-items:flex-start}.exercise-results-list li>div{grid-template-columns:minmax(75px,.8fr) minmax(0,1.4fr);gap:5px 10px;width:100%}.exercise-results-list li>div span:last-child{grid-column:2}.exercise-runner-content>.exercise-breadcrumb{margin-bottom:17px}.exercise-question-context{padding:11px 12px}.exercise-option{align-items:flex-start;padding:10px 11px}.exercise-option input{margin-top:3px}.exercise-overview-actions{flex-direction:column;align-items:flex-start}}.output-material-page .workspace{grid-template-columns:minmax(460px,44%) minmax(0,56%)}.output-material-page .section-nav{grid-template-columns:repeat(2,minmax(0,1fr))}.output-material-page .segment-button{white-space:normal;height:auto;min-height:36px}.output-material-page .lesson-panel{background:var(--surface)}.output-material-page .section-body>p{max-width:68ch;color:var(--fg);margin:9px 0;font-size:13px;line-height:1.58}.output-material-page .section-body>p:first-child{margin-top:13px}.output-material-page .section-body code{font-family:var(--font-mono);font-size:.94em}.output-material-page .learning-panel{background:var(--surface)}.output-material-page .learning-grid{grid-template-rows:minmax(270px,.86fr) minmax(410px,1.14fr)}.om-board-card{grid-template-rows:auto minmax(0,1fr)}.om-board-header{align-items:flex-start}.om-board-header h2{font:650 16px/1.25 var(--font-display);margin:0}.om-board-header h2:focus{outline:2px solid var(--accent);outline-offset:4px;border-radius:2px}.om-board-header p{max-width:44ch;color:var(--muted);margin:4px 0 0;font-size:11px;line-height:1.4}.om-board-stage{background-color:var(--surface-raised);min-height:230px}.om-board-stage:after{content:none}.om-editor{border:0;height:100%;min-height:0}.om-editor .automata-editor__workspace{grid-template-columns:minmax(0,1fr);height:100%}.om-editor .automata-editor__stage{grid-column:1;height:100%;min-height:0}.om-editor .automata-editor__canvas-shell,.om-editor .automata-editor__canvas{height:100%;min-height:230px}.om-editor .automata-editor__toolbar{bottom:8px}.om-editor .automata-editor__tool-button{width:34px;height:34px}.om-editor .automata-editor__canvas-hint{display:none}.om-editor .automata-editor__state-output.is-active{fill:var(--accent);font-weight:800}.om-editor .automata-editor__edge-label-row.is-active rect{fill:var(--accent);stroke:var(--accent)}.om-editor .automata-editor__edge-label-row.is-active text{fill:var(--surface)}.om-trace-card{min-height:0}.om-trace-card .trace-body{grid-template-columns:minmax(205px,.8fr) minmax(0,1.2fr)}.om-input-limit{color:var(--muted);font:10px var(--font-mono);text-align:right;margin:-5px 0 0}.om-speed-row{color:var(--muted);justify-content:space-between;align-items:center;gap:8px;font-size:10px;display:flex}.om-speed-row select{border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--surface);min-height:28px;color:var(--fg);padding:2px 7px}.om-output-result{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-raised);gap:4px;min-width:0;padding:9px 10px;display:grid}.om-output-result-head{color:var(--muted);justify-content:space-between;align-items:center;gap:8px;font-size:10px;font-weight:650;display:flex}.om-output-result-head .text-link{min-height:24px;padding:0 5px;font-size:10px}.om-output-value{max-width:100%;color:var(--fg);font:700 18px/1.45 var(--font-mono);overflow-wrap:anywhere;display:block;overflow-x:auto}.om-output-result>span{color:var(--muted);font-size:10px}.om-output-events{gap:4px;min-width:0;padding:3px 0 4px;display:flex;overflow-x:auto}.om-event-cell{border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--surface);flex:0 0 44px;justify-items:center;gap:3px;min-width:44px;padding:5px 3px;display:grid}.om-event-cell.initial{background:var(--accent-soft);flex-basis:68px;min-width:68px}.om-event-cell span{color:var(--muted);text-align:center;font-size:8px}.om-event-cell code{color:var(--fg);font:11px var(--font-mono)}.om-event-cell strong{min-height:15px;color:var(--accent);font:700 12px var(--font-mono)}.om-event-cell.in-progress{border-color:var(--accent);background:var(--accent-faint)}.om-trace-card .trace-values{grid-template-columns:repeat(2,minmax(0,1fr))}.om-trace-card .trace-value{min-height:49px}.om-trace-card .trace-value strong{font-size:12px}.om-table-scroll{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:100%;max-width:100%;margin:13px 0;overflow-x:auto}.om-table{border-collapse:collapse;width:100%;font-size:11px;line-height:1.42}.om-table caption{color:var(--fg);text-align:left;padding:9px 10px 7px;font-size:11px;font-weight:700}.om-table th,.om-table td{border-top:1px solid var(--border);text-align:left;vertical-align:top;min-width:62px;padding:7px 9px}.om-table th{background:var(--surface-raised);color:var(--muted);font-size:10px;font-weight:650}.om-table td code{white-space:nowrap}.om-table tbody tr:nth-child(2n){background:color-mix(in oklch, var(--surface-raised) 55%, var(--surface))}.om-quick-check{margin-top:19px}.om-quick-check .check-feedback{font-weight:450;line-height:1.5}.om-replay{margin-top:4px}.om-prediction{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface-raised);margin:18px 0;padding:12px}.om-prediction h3{margin:0;font-size:13px}.om-prediction p{margin:7px 0;font-size:12px;line-height:1.5}.om-prediction .text-link{margin-top:8px}.om-concept-list{flex-wrap:wrap;align-items:center;gap:6px;margin:12px 0;display:flex}.om-concept-list>span{color:var(--muted);flex:0 0 100%;font-size:10px;font-weight:650}.om-concept-list button,.om-rule-list button{border:1px solid var(--border);border-radius:var(--radius-xs);background:var(--surface);min-height:31px;color:var(--fg);padding:4px 9px;font-size:10px;font-weight:650}.om-concept-list button.active,.om-rule-list button.active{border-color:var(--accent);background:var(--accent-soft);color:var(--accent)}.om-rule-options>p{color:var(--muted);margin:14px 0 6px;font-size:11px}.om-rule-list{flex-wrap:wrap;gap:6px;margin-bottom:14px;display:flex}.om-internal-link{margin:3px 0}.om-footer{border-top:1px solid var(--border);justify-content:space-between;gap:8px;padding:14px 0 32px;display:flex}.om-bit-sequence{font-family:var(--font-mono);gap:7px;display:grid}.om-bit-sequence>div{grid-template-columns:62px minmax(0,1fr);align-items:center;gap:8px;display:grid}.om-bit-sequence span{color:var(--muted);font:10px var(--font-body)}.om-bit-sequence strong{letter-spacing:.15em;font-size:14px}@media (height<=820px) and (width>=1001px){.output-material-page .learning-grid{grid-template-rows:minmax(240px,.85fr) minmax(390px,1.15fr)}.om-trace-card .trace-body{padding:7px 10px}}@media (width<=1180px) and (width>=1001px){.output-material-page .workspace{grid-template-columns:minmax(400px,42%) minmax(0,58%)}.om-trace-card .trace-body{grid-template-columns:minmax(180px,.8fr) minmax(0,1.2fr)}}@media (width<=1000px){.output-material-page .learning-panel,.output-material-page .workspace.board-view .lesson-panel{display:none}.output-material-page .workspace.board-view .learning-panel{min-height:calc(100vh - 56px);display:block;position:relative;inset:auto}.output-material-page .learning-grid{grid-template-rows:minmax(300px,54vh) auto;max-width:900px;height:auto;margin:0 auto}.output-material-page .om-trace-card{min-height:0}.output-material-page .om-trace-card .trace-body{grid-template-columns:1fr}.output-material-page .om-board-stage{min-height:300px}}@media (width<=640px){.output-material-page .learning-grid{grid-template-rows:minmax(290px,45vh) auto}.output-material-page .lesson-intro{padding:24px 18px 18px}.output-material-page .om-board-header{padding:9px 10px}.output-material-page .om-board-header p{white-space:normal}.output-material-page .om-board-stage{min-height:270px}.output-material-page .section-nav{scrollbar-width:none;display:flex;overflow-x:auto}.output-material-page .section-nav::-webkit-scrollbar{display:none}.output-material-page .segment-button{white-space:normal;min-width:122px}.output-material-page .header-material-context{white-space:nowrap;flex:0 auto;min-width:0;margin-left:auto;position:static;left:auto;transform:none}.output-material-page .header-section{font-size:10px}.output-material-page .topbar{gap:8px;padding-inline:10px}.output-material-page .view-switch{flex:none;max-width:none}.om-footer{flex-direction:column}.om-footer button{width:100%}.om-table{min-width:580px}.om-bit-sequence>div{grid-template-columns:58px minmax(0,1fr)}}@media (width<=420px){.output-material-page .header-material-context{display:none}.output-material-page .view-switch button{padding-inline:8px}}.rl-page{--rl-surface:#fff;--rl-text:var(--fg,oklch(23.5% 0 0));--rl-muted:var(--muted,oklch(55.9% .033 259.6));--rl-border:var(--border,oklch(93.3% .007 295.4));--rl-accent:var(--accent,oklch(48.3% .205 266.6));height:100vh;min-height:0;color:var(--rl-text);background:var(--bg,oklch(97% 0 0));font:14px/1.55 var(--font-body,"IBM Plex Sans", "Segoe UI", sans-serif);grid-template-rows:56px minmax(0,1fr);display:grid;overflow:hidden}.rl-page *,.rl-page :before,.rl-page :after{box-sizing:border-box}.rl-page button,.rl-page input{font:inherit}.rl-page button{color:inherit;cursor:pointer}.rl-page button:focus-visible,.rl-page input:focus-visible,.rl-page a:focus-visible{outline:2px solid var(--rl-accent);outline-offset:2px}.rl-header{z-index:5;border-bottom:1px solid var(--rl-border);background:var(--rl-surface);justify-content:space-between;align-items:center;gap:16px;min-width:0;padding:0 20px;display:flex;position:relative}.rl-header-brand{flex:none;align-items:center;gap:10px;display:flex}.rl-back{border:1px solid var(--rl-border);background:#fff;border-radius:5px;place-items:center;width:32px;height:32px;line-height:1;display:grid;font-size:22px!important}.rl-header-brand a{color:var(--rl-text);font-family:var(--font-display,"Avenir Next", sans-serif);font-size:14px;line-height:1.1;text-decoration:none;display:grid}.rl-header-brand small{color:var(--rl-muted);font:10px var(--font-body,"IBM Plex Sans", sans-serif);margin-top:3px}.rl-header-context{color:var(--rl-muted);white-space:nowrap;gap:8px;font-size:12px;display:flex;position:absolute;left:50%;transform:translate(-50%)}.rl-header-actions{flex:1;justify-content:flex-end;display:flex}.rl-progress{color:var(--rl-muted);white-space:nowrap;font-size:11px}.rl-view-switch{display:none}.rl-workspace{background:var(--rl-surface);grid-template-columns:minmax(450px,47%) minmax(0,53%);min-width:0;min-height:0;display:grid;overflow:hidden}.rl-workspace.reading-only{display:block;overflow:auto}.rl-workspace.reading-only .rl-lesson-panel{border:0;overflow:visible}.rl-lesson-panel{border-right:1px solid var(--rl-border);background:var(--rl-surface);min-width:0;min-height:0;overflow:hidden}.rl-lesson-scroll{overscroll-behavior:contain;height:100%;overflow:auto}.rl-lesson-intro,.rl-lesson-content{width:min(100%,800px);margin:0 auto;padding-left:36px;padding-right:36px}.rl-lesson-intro{padding-top:26px;padding-bottom:16px}.rl-eyebrow{margin:0 0 5px;font-size:12px;font-weight:650;color:var(--rl-text)!important}.rl-lesson-intro h1{color:var(--rl-text);font:700 clamp(26px, 2.2vw, 34px)/1.12 var(--font-display,"Avenir Next", sans-serif);letter-spacing:-.03em;margin:0}.rl-lesson-intro>p:last-child{max-width:64ch;color:var(--rl-text);margin:8px 0 0}.rl-section-nav{z-index:2;border-bottom:1px solid var(--rl-border);scrollbar-width:thin;background:#fffffff5;gap:4px;padding:8px max(18px,50% - 364px);display:flex;position:sticky;top:0;overflow-x:auto}.rl-section-nav button{min-height:36px;color:var(--rl-muted);white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:5px;flex:none;align-items:center;gap:7px;padding:0 10px;font-size:11px;font-weight:650;display:flex}.rl-section-nav button span{color:var(--rl-muted)}.rl-section-nav button.active{border-color:var(--rl-border);color:var(--rl-accent);background:oklch(95% .03 266.6)}.rl-section-nav button.active span{color:var(--rl-accent)}.rl-workspace.reading-only .rl-section-nav{grid-template-columns:repeat(2,minmax(0,1fr));padding-left:max(18px,50% - 364px);padding-right:max(18px,50% - 364px);display:grid}.rl-workspace.reading-only .rl-section-nav button{white-space:normal;text-align:left;justify-content:flex-start}.rl-lesson-content{padding-top:0;padding-bottom:50px}.rl-section{border-top:1px solid var(--rl-border);min-width:0;padding:28px 0 32px;scroll-margin-top:52px}.rl-section:first-child{border-top:0}.rl-section-heading{grid-template-columns:auto minmax(0,1fr) auto;align-items:baseline;gap:8px;display:grid}.rl-section-heading>span{color:var(--rl-text);font:700 22px/1.2 var(--font-display,"Avenir Next", sans-serif)}.rl-section-heading h2{color:var(--rl-text);font:700 21px/1.2 var(--font-display,"Avenir Next", sans-serif);letter-spacing:-.02em;margin:0}.rl-section-heading h2 code,.rl-section-nav button code{font:inherit}.rl-show-board{min-height:36px;color:var(--rl-accent);background:0 0;border:0;border-radius:4px;padding:0 8px;font-size:11px;font-weight:700}.rl-section-body{color:var(--rl-text);margin-top:14px}.rl-section-body p{color:var(--rl-text);margin:0 0 12px}.rl-section-body code,.rl-code code,.rl-interaction code,.rl-check code{color:var(--rl-text);font-family:var(--font-mono,"SFMono-Regular", Consolas, monospace);font-size:.94em}.rl-terminal-token{background:oklch(96% .03 266.6);color:var(--rl-accent)!important}.rl-nonterminal-token{background:oklch(96% .012 259.6);color:var(--rl-text)!important}.rl-derivation-history code,.rl-current-form code,.rl-production-line code{border-radius:3px;margin-right:3px;padding:2px 4px;display:inline-block}.rl-normalized-productions{gap:6px;margin-top:12px;display:grid}.rl-production-line{flex-wrap:wrap;align-items:center;gap:5px;min-height:32px;display:flex}.rl-production-callout{border:1px solid var(--rl-accent);color:var(--rl-text);background:#fff;border-radius:5px;margin:10px 0 14px;padding:11px 13px}.rl-production-callout code{color:var(--rl-text);font:650 13px var(--font-mono,Consolas, monospace);margin-left:4px}.rl-code{border:1px solid var(--rl-border);max-width:100%;color:var(--rl-text);white-space:pre-wrap;overflow-wrap:anywhere;background:#fafafa;border-radius:5px;margin:12px 0 16px;padding:12px 14px;overflow-x:auto}.rl-table-wrap{border:1px solid var(--rl-border);border-radius:5px;max-width:100%;margin:14px 0 18px;overflow-x:auto}.rl-table-wrap table{border-collapse:collapse;width:100%;color:var(--rl-text);font-size:12px}.rl-table-wrap caption{color:var(--rl-text);text-align:left;padding:10px 12px;font-weight:650}.rl-table-wrap th,.rl-table-wrap td{border-top:1px solid var(--rl-border);text-align:left;vertical-align:top;min-width:84px;padding:8px 10px}.rl-table-wrap th{background:#fafafa;font-weight:650}.rl-interaction,.rl-check{border:1px solid var(--rl-border);color:var(--rl-text);background:#fff;border-radius:6px;margin:18px 0;padding:14px}.rl-interaction h3,.rl-check legend{color:var(--rl-text);font:650 14px var(--font-body,"IBM Plex Sans", sans-serif);margin:0 0 7px;padding:0}.rl-interaction>p,.rl-check>p{color:var(--rl-text);margin:5px 0 10px}.rl-interaction label{color:var(--rl-text);font-weight:600}.rl-control-actions,.rl-choice-pills{flex-wrap:wrap;align-items:center;gap:8px;margin-top:9px;display:flex}.rl-control-actions input[type=range]{accent-color:var(--rl-accent);flex:1}.rl-count-result{background:#f7f7f8;border-radius:4px;align-items:center;gap:9px;min-height:44px;padding:8px 10px;display:flex;margin:9px 0 0!important}.rl-count-result strong{color:var(--rl-text)}.rl-button{border:1px solid var(--rl-accent);background:var(--rl-accent);border-radius:4px;justify-content:center;align-items:center;min-height:36px;padding:0 12px;font-size:12px;font-weight:650;display:inline-flex;color:#fff!important}.rl-button.secondary{border-color:var(--rl-border);background:#fff;color:var(--rl-text)!important}.rl-button:disabled{cursor:not-allowed;opacity:.48}.rl-text-button{background:0 0;border:0;border-radius:4px;min-height:36px;padding:0 8px;font-size:12px;font-weight:650;color:var(--rl-accent)!important}.rl-text-button:disabled{cursor:not-allowed;color:var(--rl-muted)!important}.rl-derivation-history{flex-wrap:wrap;gap:7px;margin:12px 0;padding:0;list-style:none;display:flex}.rl-derivation-history li{border:1px solid var(--rl-border);border-radius:4px;align-items:center;min-height:38px;padding:0 10px;display:inline-flex}.rl-derivation-history li[aria-current=step]{border-color:var(--rl-accent);background:oklch(95% .03 266.6)}.rl-note,.rl-fragment-caption{font-size:12px;color:var(--rl-text)!important}.rl-fragment-diagram,.rl-operation-diagram{width:min(100%,500px);height:auto;color:var(--rl-text);margin:12px auto;display:block;overflow:visible}.rl-fragment-diagram circle,.rl-operation-diagram circle,.rl-operation-diagram rect{fill:#fff;stroke:var(--rl-text);stroke-width:1.5px}.rl-fragment-diagram .rl-diagram-edge,.rl-operation-diagram .rl-diagram-edge{fill:none;stroke:currentColor;stroke-width:1.5px}.rl-fragment-diagram .rl-diagram-endpoint,.rl-fragment-diagram .rl-diagram-state-label,.rl-fragment-diagram .rl-diagram-edge-label,.rl-fragment-diagram .rl-diagram-empty-label,.rl-operation-diagram .rl-diagram-endpoint,.rl-operation-diagram .rl-diagram-state-label,.rl-operation-diagram .rl-diagram-edge-label,.rl-operation-diagram .rl-diagram-caption{fill:var(--rl-text);font:12px var(--font-mono,Consolas, monospace)}.rl-fragment-diagram .rl-diagram-empty-label,.rl-operation-diagram .rl-diagram-caption{font-family:var(--font-body,"IBM Plex Sans", sans-serif);font-size:11px}.rl-choice-pills button{border:1px solid var(--rl-border);background:#fff;border-radius:4px;min-width:42px;min-height:38px}.rl-choice-pills button.active{border-color:var(--rl-accent);background:oklch(95% .03 266.6)}.rl-check{padding:14px}.rl-check legend{float:left;width:100%}.rl-check legend+p{clear:both;padding-top:7px}.rl-check-options{gap:5px;margin:10px 0;display:grid}.rl-check-options label{border:1px solid var(--rl-border);min-height:38px;color:var(--rl-text);border-radius:4px;align-items:flex-start;gap:9px;padding:8px;display:flex}.rl-check-options input{accent-color:var(--rl-accent);margin:3px 0 0}.rl-check-options .is-correct{border-color:oklch(70% .13 150)}.rl-check-options .is-incorrect{border-color:oklch(70% .17 28)}.rl-check-button{margin-top:3px}.rl-feedback{border-radius:4px;padding:9px 10px;font-size:12px;color:var(--rl-text)!important;margin:10px 0 0!important}.rl-feedback.correct{background:oklch(96% .04 150)}.rl-feedback.incorrect{background:oklch(97% .025 28)}.rl-board-panel{background:var(--bg,#f7f7f8);min-width:0;min-height:0;padding:18px;overflow:auto}.rl-source-context{border:1px solid var(--rl-border);background:#fff;border-radius:5px;flex-wrap:wrap;align-items:baseline;gap:10px;margin:0 0 12px;padding:11px 13px;display:flex}.rl-source-context span{color:var(--rl-muted);font-size:11px;font-weight:650}.rl-source-context code{color:var(--rl-text);font:600 13px var(--font-mono,Consolas, monospace)}.rl-board-card{border:1px solid var(--rl-border);background:#fff;border-radius:6px;grid-template-rows:auto auto minmax(280px,1fr) auto;min-height:min(760px,100vh - 92px);display:grid;overflow:hidden}.rl-board-card>header{border-bottom:1px solid var(--rl-border);justify-content:space-between;align-items:flex-start;gap:12px;padding:15px 16px;display:flex}.rl-board-card>header h2{color:var(--rl-text);font:700 19px/1.2 var(--font-display,"Avenir Next", sans-serif);margin:1px 0 3px}.rl-board-card>header p{color:var(--rl-text);margin:0;font-size:12px}.rl-construction-controls{border-bottom:1px solid var(--rl-border);background:#fafafa;flex-wrap:wrap;align-items:center;gap:6px;padding:10px 13px;display:flex}.rl-construction-controls>span{color:var(--rl-text);margin-right:auto;font-size:11px;font-weight:650}.rl-board-canvas{background-image:radial-gradient(#d7d9dd 1px,#0000 1px);background-size:20px 20px;min-height:300px}.rl-board-editor .automata-editor__workspace{grid-template-columns:minmax(0,1fr);height:100%}.rl-board-editor .automata-editor__canvas-shell,.rl-board-editor .automata-editor__canvas{height:100%;min-height:0}.rl-simulator{border-top:1px solid var(--rl-border);background:#fff;padding:13px 15px}.rl-simulator-input{flex-wrap:wrap;align-items:center;gap:7px;display:flex}.rl-simulator-input label{font-size:12px;font-weight:650}.rl-simulator-input input{border:1px solid var(--rl-border);width:92px;min-height:34px;color:var(--rl-text);border-radius:4px;padding:4px 8px}.rl-trace-status,.rl-gnfa-note{color:var(--rl-text);margin:9px 0 0;font-size:12px}.rl-trace-status code{color:var(--rl-text);font-family:var(--font-mono,Consolas, monospace)}.rl-not-found{color:var(--rl-text);background:#fff;padding:60px 24px}.rl-mobile-board-return{display:none}.rl-example-selector{border:1px solid var(--rl-border);background:#fff;border-radius:5px;flex-wrap:wrap;align-items:center;gap:6px;margin-bottom:12px;padding:9px 11px;display:flex}.rl-example-selector span{color:var(--rl-muted);margin-right:auto;font-size:11px;font-weight:650}.rl-example-selector button{border:1px solid var(--rl-border);min-height:34px;color:var(--rl-text);background:#fff;border-radius:4px;padding:0 9px;font-size:11px}.rl-example-selector button.active{border-color:var(--rl-accent);color:var(--rl-accent);background:oklch(95% .03 266.6)}.rl-gnfa-result{border:1px solid var(--rl-border);color:var(--rl-text);background:#fff;border-radius:5px;margin:12px 0;padding:12px}.rl-boundary-examples{gap:12px;margin-top:18px;display:grid}.rl-boundary-examples>h2,.rl-boundary-examples>p{margin:0}.rl-boundary-examples .rl-board-card{grid-template-rows:auto minmax(240px,1fr) auto;min-height:490px}.rl-lesson-footer{border-top:1px solid var(--rl-border);background:#fff;justify-content:center;gap:10px;padding:18px;display:flex}@media (width<=1000px){.rl-page{grid-template-rows:56px minmax(0,1fr)}.rl-header{gap:8px;padding:0 12px}.rl-header-context{display:none}.rl-view-switch{flex:1;justify-content:center;gap:3px;display:flex}.rl-view-switch button{min-height:32px;color:var(--rl-muted);background:0 0;border:1px solid #0000;border-radius:4px;padding:0 12px;font-size:11px;font-weight:650}.rl-view-switch button.active{border-color:var(--rl-border);color:var(--rl-accent);background:#fff}.rl-workspace{display:block;position:relative}.rl-lesson-panel,.rl-board-panel{position:absolute;inset:0}.rl-board-panel,.rl-page.board-view .rl-lesson-panel{display:none}.rl-page.board-view .rl-board-panel{display:block}.rl-board-card{min-height:calc(100% - 4px)}}@media (width<=640px){.rl-page{height:auto;min-height:100vh;display:block;overflow:visible}.rl-header{height:56px;position:sticky;top:0}.rl-header-brand small,.rl-header-actions{display:none}.rl-progress{font-size:10px}.rl-workspace{flex-direction:column;height:auto;min-height:calc(100vh - 56px);display:flex;overflow:visible}.rl-workspace.reading-only{min-height:0;display:block}.rl-lesson-panel,.rl-board-panel{height:auto;position:static;overflow:visible}.rl-board-panel,.rl-page.board-view .rl-lesson-panel{display:none}.rl-page.board-view .rl-board-panel{display:block}.rl-lesson-scroll{height:auto;overflow:visible}.rl-lesson-intro,.rl-lesson-content{padding-left:17px;padding-right:17px}.rl-lesson-intro{padding-top:23px}.rl-section-nav{padding:7px 10px;top:56px}.rl-workspace.reading-only .rl-section-nav{padding-left:10px;padding-right:10px}.rl-section-nav button{min-height:40px}.rl-section{padding:23px 0}.rl-section-heading{grid-template-columns:auto minmax(0,1fr)}.rl-show-board{display:none}.rl-section-heading h2{font-size:19px}.rl-board-panel{padding:10px}.rl-board-card{grid-template-rows:auto auto 300px auto;min-height:530px}.rl-board-card>header{padding:12px}.rl-board-card>header .rl-text-button{display:none}.rl-board-canvas{min-height:260px}.rl-simulator{padding:10px}.rl-code{white-space:pre-wrap}}@media (width<=420px){.rl-progress{display:none}.rl-header-brand{gap:7px}}@media (prefers-reduced-motion:reduce){.rl-page *,.rl-page :before,.rl-page :after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}@font-face{font-family:IBM Plex Sans;src:url(/assets/IBMPlexSans-Regular-Latin1-BUjEsRx4.woff2)format("woff2");font-style:normal;font-weight:400;font-display:swap}@font-face{font-family:IBM Plex Sans;src:url(/assets/IBMPlexSans-Medium-Latin1-B2CuUu4P.woff2)format("woff2");font-style:normal;font-weight:500;font-display:swap}@font-face{font-family:IBM Plex Sans;src:url(/assets/IBMPlexSans-SemiBold-Latin1-CIhZjzyK.woff2)format("woff2");font-style:normal;font-weight:600;font-display:swap}@font-face{font-family:IBM Plex Sans;src:url(/assets/IBMPlexSans-Bold-Latin1-DZgTcuEb.woff2)format("woff2");font-style:normal;font-weight:700;font-display:swap}:root{--bg:oklch(97% 0 0);--surface:oklch(100% 0 0);--fg:oklch(23.5% 0 0);--muted:oklch(55.9% .033 259.6);--border:oklch(93.3% .007 295.4);--accent:oklch(48.3% .205 266.6);--accent-soft:oklch(95% .03 266.6);--fg-soft:color-mix(in oklch, var(--fg) 5%, var(--surface));--font-display:"Avenir Next", "Helvetica Neue", sans-serif;--font-body:"IBM Plex Sans", "Segoe UI", sans-serif;--font-mono:"SFMono-Regular", Consolas, monospace;--shadow:0 8px 26px color-mix(in oklch, var(--fg) 9%, transparent);--radius:6px;--ink:var(--fg);--paper:var(--surface);--canvas:var(--bg);--line:var(--border);--blue:var(--accent);--blue-soft:var(--accent-soft);--green:#166534;--red:#b91c1c;font-family:var(--font-body);color:var(--fg);background:var(--surface);font-synthesis:none;text-rendering:optimizelegibility}*{box-sizing:border-box}html{min-width:320px}html,body,#root{min-height:100%;margin:0}body{background:var(--surface);min-height:100vh;color:var(--fg);font-family:var(--font-body);-webkit-font-smoothing:antialiased;font-size:14px;line-height:1.45}button,input,select{color:inherit;font:inherit}button,select{cursor:pointer}a{color:inherit;text-decoration:none}svg{display:block}button:focus-visible,input:focus-visible,select:focus-visible,a:focus-visible{box-shadow:0 0 0 2px var(--surface), 0 0 0 4px var(--accent);outline:0}.visually-hidden{clip:rect(0, 0, 0, 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;position:absolute!important}.home-app{background:var(--surface);grid-template-columns:224px minmax(0,1fr);min-height:100vh;display:grid}.home-sidebar{background:var(--bg);border-right:1px solid var(--border);z-index:15;flex-direction:column;height:100vh;display:flex;position:sticky;top:0}.home-brand{border-bottom:1px solid var(--border);height:68px;font-family:var(--font-display);letter-spacing:-.01em;align-items:center;gap:11px;padding:0 18px;font-weight:700;display:flex}.home-brand-mark{object-fit:contain;flex:none;width:24px;height:24px;display:block}.home-nav{gap:3px;padding:14px 10px;display:grid}.home-nav-label{color:var(--muted);font-family:var(--font-mono);letter-spacing:.08em;text-transform:uppercase;margin:12px 10px 5px;font-size:10px}.home-nav-item{min-height:38px;color:var(--muted);border-radius:4px;align-items:center;gap:10px;padding:0 10px;font-weight:550;display:flex}.home-nav-item:hover{background:var(--surface);color:var(--fg)}.home-nav-item.active{background:var(--surface);color:var(--fg);box-shadow:inset 0 0 0 1px var(--border)}.home-nav-item>svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:17px;height:17px}.home-nav-item.is-disabled{cursor:default;opacity:.68}.home-nav-item.is-disabled:hover{color:var(--muted);background:0 0}.nav-placeholder-icon{text-align:center;width:17px;font-size:17px;line-height:1}.nav-soon{font-family:var(--font-mono);letter-spacing:.03em;text-transform:uppercase;margin-left:auto;font-size:8px}.home-sidebar-foot{border-top:1px solid var(--border);margin-top:auto;padding:12px}.home-profile{border-radius:4px;align-items:center;gap:9px;min-width:0;padding:8px;display:flex}.home-profile:hover{background:var(--surface)}.home-avatar{border:1px solid var(--border);background:var(--surface);width:28px;height:28px;font-family:var(--font-mono);border-radius:50%;flex:none;place-items:center;font-size:10px;font-weight:700;display:grid}.home-profile-copy{min-width:0}.home-profile-copy strong,.home-profile-copy span{text-overflow:ellipsis;white-space:nowrap;display:block;overflow:hidden}.home-profile-copy strong{font-size:12px}.home-profile-copy span{color:var(--muted);margin-top:1px;font-size:10px}.home-main{min-width:0}.home-topbar{border-bottom:1px solid var(--border);background:color-mix(in oklch, var(--surface) 94%, transparent);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);z-index:10;align-items:center;gap:12px;height:68px;padding:0 clamp(20px,4vw,56px);display:flex;position:sticky;top:0}.home-mobile-menu{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);place-items:center;width:36px;height:36px;display:none}.home-mobile-menu svg{fill:none;stroke:currentColor;stroke-width:1.8px;stroke-linecap:round;width:18px;height:18px}.home-search{width:min(430px,48vw);position:relative}.home-search svg{fill:none;width:16px;height:16px;stroke:var(--muted);stroke-width:1.8px;pointer-events:none;position:absolute;top:50%;left:11px;transform:translateY(-50%)}.home-search input{border:1px solid var(--border);border-radius:var(--radius);background:var(--bg);width:100%;height:38px;padding:0 12px 0 36px}.home-search input:hover{border-color:color-mix(in oklch, var(--muted) 38%, var(--border))}.home-search input:focus{border-color:var(--accent);background:var(--surface)}.home-topbar-spacer{flex:1}.home-icon-button{border-radius:var(--radius);background:0 0;border:1px solid #0000;place-items:center;width:36px;height:36px;display:grid}.home-icon-button:hover:not(:disabled){border-color:var(--border);background:var(--fg-soft)}.home-icon-button:disabled{cursor:default;opacity:.48}.home-icon-button svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:18px;height:18px}.home-primary-button{border:1px solid var(--accent);border-radius:var(--radius);background:var(--accent);min-height:38px;color:var(--surface);justify-content:center;align-items:center;gap:8px;padding:0 15px;font-weight:700;display:inline-flex}.home-primary-button:hover{background:color-mix(in oklch, var(--accent) 90%, var(--fg))}.home-primary-button svg{fill:none;stroke:currentColor;stroke-width:2px;width:17px;height:17px}.home-secondary-button{border:1px solid var(--border);background:var(--surface);border-radius:4px;justify-content:center;align-items:center;gap:8px;min-height:36px;padding:0 13px;font-weight:650;display:inline-flex}.home-secondary-button:hover{background:var(--fg-soft);border-color:color-mix(in oklch, var(--muted) 40%, var(--border))}.home-secondary-button svg{width:16px;height:16px}.home-import-button{min-height:36px;font-size:12px}.home-content{padding:0}.home-page-head{justify-content:space-between;align-items:end;gap:24px;margin-bottom:28px;display:flex}.home-page-title h1{font-family:var(--font-display);letter-spacing:-.025em;margin:0;font-size:clamp(26px,3vw,34px);line-height:1.1}.home-page-title p{color:var(--muted);margin:7px 0 0;font-size:13px}.home-view-controls{align-items:center;gap:6px;display:flex}.home-select{border:1px solid var(--border);background:var(--surface);border-radius:4px;height:34px;padding:0 28px 0 10px;font-size:11px}.home-view-toggle{border:1px solid var(--border);border-radius:4px;padding:2px;display:flex}.home-view-toggle button{width:29px;height:28px;color:var(--muted);background:0 0;border:0;border-radius:3px;place-items:center;display:grid}.home-view-toggle button:hover{color:var(--fg);background:var(--fg-soft)}.home-view-toggle button.active{background:var(--fg-soft);color:var(--fg)}.home-view-toggle svg{fill:none;stroke:currentColor;stroke-width:1.7px;stroke-linecap:round;stroke-linejoin:round;width:15px;height:15px}.home-filter-row{align-items:center;gap:5px;margin-bottom:20px;padding-bottom:2px;display:flex;overflow-x:auto}.home-filter-button{height:32px;color:var(--muted);white-space:nowrap;background:0 0;border:1px solid #0000;border-radius:4px;padding:0 12px;font-size:12px;font-weight:650}.home-filter-button:hover{color:var(--fg);background:var(--fg-soft)}.home-filter-button.active{background:var(--accent-soft);color:var(--accent);border-color:#0000}.draft-grid{grid-template-columns:repeat(3,minmax(220px,1fr));gap:22px;display:grid}.draft-card{border:1px solid var(--border);background:var(--surface);border-radius:7px;min-width:0;transition:border-color .14s,box-shadow .14s,transform .14s;overflow:hidden}.draft-card:hover{border-color:color-mix(in oklch, var(--muted) 42%, var(--border));box-shadow:var(--shadow);transform:translateY(-2px)}.draft-open{text-align:left;background:0 0;border:0;width:100%;padding:0;display:block}.draft-preview{aspect-ratio:16/10;background-color:var(--bg);background-image:radial-gradient(circle, color-mix(in oklch, var(--muted) 22%, transparent) 1px, transparent 1px);border-bottom:1px solid var(--border);background-size:13px 13px;display:block;position:relative;overflow:hidden}.draft-preview svg{width:100%;height:100%}.draft-preview .line{fill:none;stroke:color-mix(in oklch, var(--muted) 82%, var(--fg));stroke-width:1.6px;vector-effect:non-scaling-stroke}.draft-preview marker path{fill:color-mix(in oklch, var(--muted) 82%, var(--fg))}.draft-preview .node{fill:var(--surface);stroke:color-mix(in oklch, var(--muted) 82%, var(--fg));stroke-width:1.8px}.draft-preview .node-label,.draft-preview .edge-label{fill:var(--fg);font-family:var(--font-mono);text-anchor:middle;dominant-baseline:middle}.draft-preview .node-label{font-size:11px;font-weight:700}.draft-preview .edge-label{font-size:9px}.draft-preview .edge-label-box{fill:var(--surface);stroke:var(--border)}.draft-preview .preview-empty{fill:var(--muted);font-family:var(--font-interface);text-anchor:middle;font-size:12px}.draft-body{grid-template-columns:minmax(0,1fr);gap:12px;padding:14px;display:grid}.draft-copy{min-width:0}.draft-title{font-family:var(--font-display);text-overflow:ellipsis;white-space:nowrap;font-size:14px;font-weight:700;line-height:1.3;display:block;overflow:hidden}.draft-meta{color:var(--muted);flex-wrap:wrap;align-items:center;gap:7px;margin-top:6px;font-size:10px;display:flex}.mode-tag{border:1px solid var(--border);background:var(--bg);height:20px;color:var(--fg);font-family:var(--font-mono);letter-spacing:.04em;border-radius:3px;align-items:center;gap:5px;padding:0 6px;font-size:9px;font-weight:700;display:inline-flex}.draft-card{position:relative}.card-menu{width:30px;height:30px;color:var(--muted);cursor:pointer;background:0 0;border:1px solid #0000;border-radius:4px;place-items:center;list-style:none;display:grid}.card-menu::-webkit-details-marker{display:none}.card-menu svg{width:15px;height:15px}.draft-card:hover .card-menu{color:var(--fg)}.draft-card-menu{z-index:5;position:absolute;bottom:10px;right:10px}.draft-card-menu[open] .card-menu{border-color:var(--border);background:var(--fg-soft)}.draft-card-menu-popover{border:1px solid var(--border);border-radius:var(--radius-md,6px);background:var(--surface);width:140px;box-shadow:var(--shadow);gap:2px;padding:6px;display:grid;position:absolute;bottom:calc(100% + 6px);right:0}.draft-card-menu-popover button{border-radius:var(--radius-sm,4px);min-height:32px;color:var(--fg);cursor:pointer;text-align:left;background:0 0;border:0;padding:0 9px;font-size:12px}.draft-card-menu-popover button:hover{background:var(--fg-soft)}.draft-card-menu-popover button.danger{color:var(--fg)}.draft-grid.list-view{grid-template-columns:1fr;gap:12px}.list-view .draft-card{border-radius:6px;display:block}.list-view .draft-card:hover{background:var(--fg-soft);box-shadow:none;transform:none}.list-view .draft-open{grid-template-columns:180px minmax(0,1fr);align-items:stretch;display:grid}.list-view .draft-preview{aspect-ratio:auto;border-right:1px solid var(--border);border-bottom:0;width:180px;height:104px}.list-view .draft-body{align-items:center;padding:16px 18px}.list-view .draft-title{font-size:15px}.list-view .draft-meta{margin-top:8px}.home-empty{border-top:1px solid var(--border);text-align:center;color:var(--muted);gap:5px;padding:80px 20px;display:grid}.home-empty strong{color:var(--fg)}.home-dialog-backdrop{z-index:50;background:color-mix(in oklch, var(--fg) 28%, transparent);opacity:0;visibility:hidden;pointer-events:none;place-items:center;padding:20px;transition:opacity .14s,visibility .14s;display:grid;position:fixed;inset:0}.home-dialog-backdrop.open{opacity:1;visibility:visible;pointer-events:auto}.home-dialog{border:1px solid var(--border);background:var(--surface);width:min(440px,100%);box-shadow:0 20px 60px color-mix(in oklch, var(--fg) 20%, transparent);border-radius:8px;transition:transform .14s;transform:translateY(8px)}.home-dialog-backdrop.open .home-dialog{transform:translateY(0)}.home-dialog-head{border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;padding:16px 18px;display:flex}.home-dialog-head h2{font-family:var(--font-display);margin:0;font-size:16px}.home-dialog-body{padding:18px}.home-field{border:0;gap:6px;margin:0 0 16px;padding:0;display:grid}.home-field label,.home-field legend{color:var(--muted);font-size:11px}.home-field input{border:1px solid var(--border);background:var(--surface);border-radius:4px;width:100%;height:38px;padding:0 10px}.home-field input:hover{border-color:color-mix(in oklch, var(--muted) 38%, var(--border))}.home-field input:focus{border-color:var(--accent)}.home-mode-options{grid-template-columns:1fr;gap:6px;display:grid}.home-mode-option{border:1px solid var(--border);background:var(--surface);text-align:left;border-radius:5px;align-content:center;gap:3px;min-height:56px;padding:9px 10px;display:grid;position:relative}.home-mode-option:hover{background:var(--fg-soft)}.home-mode-option.active{border-color:var(--accent);background:var(--accent-soft)}.home-mode-option strong{font-family:var(--font-mono);font-size:11px}.home-mode-option>span{color:var(--muted);font-size:9px;line-height:1.35}.home-dialog-foot{border-top:1px solid var(--border);justify-content:flex-end;gap:7px;padding:12px 18px;display:flex}@media (width<=1120px){.draft-grid{grid-template-columns:repeat(2,minmax(220px,1fr))}.draft-grid.list-view{grid-template-columns:1fr}}@media (width<=760px){.home-app{grid-template-columns:1fr}.home-sidebar{width:224px;box-shadow:var(--shadow);transition:transform .16s;position:fixed;left:0;transform:translate(-100%)}.home-sidebar.open{transform:translate(0)}.home-mobile-menu{display:grid}.home-topbar{padding-inline:14px}.home-search{flex:1;width:auto}.home-topbar .home-primary-button span,.home-import-button span{display:none}.home-topbar .home-primary-button,.home-import-button{width:38px;padding:0}.home-content{padding:0}.home-page-head{align-items:start}.home-select{display:none}}@media (width<=540px){.draft-grid{grid-template-columns:1fr;gap:15px}.draft-grid.list-view{gap:10px}.list-view .draft-open{grid-template-columns:112px minmax(0,1fr)}.list-view .draft-preview{width:112px;height:84px}.list-view .draft-body{padding:10px 12px}.home-view-toggle{display:none}.home-page-title h1{font-size:26px}.home-mode-options{grid-template-columns:1fr}.home-mode-option{min-height:58px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important}}
