.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.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: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,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}.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 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}.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__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-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__phase{max-width:none}.simulation-result--verdict .simulation-result__phase{min-width:0!important}}@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}.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%)}.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}.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)}.dfa-material-back,.dfa-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}.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)}.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}.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-title{min-width:0}.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}.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)}.dfa-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}.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}.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}.dfa-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)}.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}.primary-button:hover{background:var(--accent-hover)}.dfa-material-page .primary-button svg,.dfa-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,.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}}.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:repeat(3,1fr);gap:7px;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:76px;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}.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}}@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:repeat(3,1fr);gap:7px;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:76px;padding: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}}
