.cfg-embed.svelte-jx9s1{display:grid;grid-template-columns:280px 1fr;gap:1.5rem;border:1px solid var(--border);border-radius:12px;padding:1.5rem;margin:2.5rem 0;background:#ffffff03;font-family:var(--font-mono)}.panel-header.svelte-jx9s1{font-size:.65rem;text-transform:uppercase;letter-spacing:.1em;color:var(--fg-muted);margin-bottom:1rem;font-weight:700}.panel-header.sub.svelte-jx9s1{margin-top:1rem;border-top:1px solid var(--border);padding-top:1rem}.grammar-panel.svelte-jx9s1{border-right:1px solid var(--border);padding-right:1.5rem;display:flex;flex-direction:column}.productions-list.svelte-jx9s1{display:flex;flex-direction:column;gap:.5rem;flex:1}.prod-btn.svelte-jx9s1{display:flex;align-items:center;gap:.5rem;font-size:.9rem;background:#ffffff08;border:1px solid var(--border);padding:.6rem .8rem;border-radius:8px;color:var(--fg);cursor:pointer;text-align:left;transition:all .2s ease;font-family:var(--font-mono)}.prod-btn.svelte-jx9s1:hover:not(:disabled){background:#3b82f61a;border-color:var(--accent);transform:translate(4px)}.prod-btn.svelte-jx9s1:disabled{opacity:.15;cursor:not-allowed;filter:grayscale(1)}.non-terminal.svelte-jx9s1{color:#fbbf24;font-weight:600}.terminal.svelte-jx9s1{color:#10b981;font-weight:600}.epsilon.svelte-jx9s1{color:var(--fg-muted);font-style:italic}.arrow.svelte-jx9s1{color:var(--fg-muted);opacity:.5}.derivation-panel.svelte-jx9s1{display:flex;flex-direction:column;gap:1rem;min-width:0}.current-derivation.svelte-jx9s1{font-size:1.75rem;display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;min-height:4rem;padding:1.25rem;background:#ffffff05;border-radius:10px;border:1px solid var(--border)}.symbol-btn.svelte-jx9s1{background:transparent;border:none;padding:0 4px;border-radius:4px;font-family:inherit;font-size:inherit;cursor:pointer;transition:all .2s ease}.symbol-btn.non-terminal.svelte-jx9s1{color:#fbbf24;font-weight:600}.symbol-btn.non-terminal.svelte-jx9s1:hover:not(:disabled){background:#fbbf241a}.symbol-btn.active.svelte-jx9s1{background:#fbbf2433!important;box-shadow:0 0 0 2px #fbbf2466}.symbol-btn.terminal.svelte-jx9s1{color:#10b981;cursor:default}.panel-footer.svelte-jx9s1{display:flex;gap:.5rem;margin-top:1.5rem}.control-btn.svelte-jx9s1{flex:1;display:flex;align-items:center;justify-content:center;gap:.4rem;background:#ffffff08;border:1px solid var(--border);color:var(--fg-muted);padding:.5rem;font-size:.75rem;font-weight:600;border-radius:6px;cursor:pointer;transition:all .2s ease}.control-btn.svelte-jx9s1:hover:not(:disabled){background:#ffffff14;color:var(--fg);border-color:var(--fg-dark)}.control-btn.svelte-jx9s1:disabled{opacity:.2;cursor:not-allowed}.status-badge.svelte-jx9s1{font-size:.65rem;padding:.2rem .6rem;border-radius:4px;text-transform:uppercase;font-weight:700;width:fit-content}.status-badge.success.svelte-jx9s1{background:#10b98126;color:#10b981;border:1px solid #10b981}.history-list.svelte-jx9s1{display:flex;flex-direction:column;gap:.4rem;max-height:200px;overflow-y:auto;padding-right:.5rem}.history-row.svelte-jx9s1{display:flex;gap:.75rem;font-size:.9rem;opacity:.5;transition:opacity .2s ease}.history-row.final.svelte-jx9s1{opacity:1;font-weight:700}.step-num.svelte-jx9s1{color:var(--fg-muted);width:1.5rem;text-align:right}.step-symbols.svelte-jx9s1{display:flex;gap:.25rem}@media(max-width:850px){.cfg-embed.svelte-jx9s1{grid-template-columns:1fr}.grammar-panel.svelte-jx9s1{border-right:none;border-bottom:1px solid var(--border);padding-right:0;padding-bottom:1.5rem}}.pda-embed.svelte-wxo6g4{border:1px solid var(--border);border-radius:8px;padding:1rem;margin:1.25rem 0 1.5rem;background:#ffffff05;font-family:var(--font-sans)}.graph-wrap.svelte-wxo6g4{margin-top:.7rem;padding:.35rem;border:1px solid color-mix(in srgb,var(--border) 80%,transparent);border-radius:6px;background:#ffffff04}svg.svelte-wxo6g4{display:block;width:100%;height:auto;overflow:visible}.edge.svelte-wxo6g4{fill:none;stroke:#ffffff47;stroke-width:1.6;transition:stroke .15s ease}.active-edge.svelte-wxo6g4{stroke:color-mix(in srgb,var(--accent) 62%,#fff 38%);stroke-width:2.2}.edge-label.svelte-wxo6g4{font-size:15px;fill:var(--fg-muted);font-family:var(--font-mono);font-weight:600}.state.svelte-wxo6g4{fill:transparent;stroke:#ffffff5c;stroke-width:1.7;transition:all .15s ease}.state.current.svelte-wxo6g4{fill:color-mix(in srgb,var(--accent) 10%,transparent);stroke:color-mix(in srgb,var(--accent) 68%,#fff 32%)}.accept.svelte-wxo6g4{fill:none;stroke:#ffffff59;stroke-width:1.5}.state-label.svelte-wxo6g4{fill:var(--fg);font-size:16px;font-family:var(--font-mono);font-weight:700}.start-arrow.svelte-wxo6g4{stroke:#ffffff4d;stroke-width:1.6}.rules-panel.svelte-wxo6g4{margin-top:1.25rem;padding:1rem;background:#ffffff03;border:1px solid rgba(255,255,255,.05);border-radius:8px}.panel-header.svelte-wxo6g4{font-size:.8rem;color:var(--fg-muted);margin-bottom:.85rem;font-weight:600}.rules-list.svelte-wxo6g4{display:flex;flex-wrap:wrap;gap:.6rem}.rule-btn.svelte-wxo6g4{display:flex;align-items:center;gap:.5rem;background:#ffffff08;border:1px solid var(--border);padding:.6rem .9rem;border-radius:8px;color:var(--fg);cursor:pointer;font-family:var(--font-mono);font-size:.95rem;transition:all .2s ease}.rule-btn.svelte-wxo6g4:hover:not(:disabled){background:#3b82f61a;border-color:var(--accent);transform:translateY(-1px)}.rule-btn.svelte-wxo6g4:disabled{opacity:.15;cursor:not-allowed;filter:grayscale(1)}.p-input.svelte-wxo6g4{color:#fbbf24;font-weight:700}.p-pop.svelte-wxo6g4{color:#f87171;font-weight:700}.p-push.svelte-wxo6g4{color:#10b981;font-weight:700}.p-arrow.svelte-wxo6g4{opacity:.4;margin:0 2px}.p-target.svelte-wxo6g4{color:var(--fg-muted);font-size:.75rem;margin-left:2px}.no-rules.svelte-wxo6g4{font-size:.8rem;color:var(--fg-muted);font-style:italic}.controls.svelte-wxo6g4{margin-top:1.25rem;display:grid;gap:.5rem}.input-row.svelte-wxo6g4{display:grid;grid-template-columns:auto 1fr;gap:.6rem;align-items:center}.input-row.svelte-wxo6g4 label:where(.svelte-wxo6g4){font-size:.86rem;color:var(--fg-muted)}.input-row.svelte-wxo6g4 input:where(.svelte-wxo6g4){width:100%;border-radius:6px;border:1px solid var(--border);background:#ffffff05;color:var(--fg);padding:.42rem .58rem;font-family:var(--font-mono);font-size:.9rem}.button-row.svelte-wxo6g4{display:flex;flex-wrap:wrap;gap:.35rem}button.svelte-wxo6g4{border-radius:6px;border:1px solid var(--border);background:#ffffff05;color:var(--fg);padding:.34rem .56rem;font-size:.8rem;font-family:var(--font-mono);cursor:pointer;transition:all .15s ease}button.svelte-wxo6g4:hover:not(:disabled){border-color:color-mix(in srgb,var(--accent) 40%,var(--border) 60%);color:color-mix(in srgb,var(--accent) 50%,var(--fg) 50%)}button.svelte-wxo6g4:disabled{opacity:.2;cursor:not-allowed}button.ghost.svelte-wxo6g4{color:var(--fg-muted)}.quick-input.svelte-wxo6g4{display:flex;flex-wrap:wrap;gap:.35rem;padding-top:.15rem}button.sample.svelte-wxo6g4{font-size:.75rem;padding:.2rem .4rem}.trace.svelte-wxo6g4{margin-top:1rem;border-top:1px solid color-mix(in srgb,var(--border) 72%,transparent);padding-top:.75rem;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.5rem 1rem}.trace.svelte-wxo6g4 p:where(.svelte-wxo6g4){margin:0;font-size:.8rem;color:var(--fg-muted)}.trace.svelte-wxo6g4 strong:where(.svelte-wxo6g4){color:var(--fg)}.status-text.accepted.svelte-wxo6g4{color:#10b981;font-weight:800}.status-text.rejected.svelte-wxo6g4{color:#ef4444;font-weight:800}@media(max-width:900px){.input-row.svelte-wxo6g4,.trace.svelte-wxo6g4{grid-template-columns:1fr}}.static-tree-embed.svelte-a4r2xz{display:flex;justify-content:center;margin:4rem 0;width:100%}.viewport.svelte-a4r2xz{width:100%;overflow-x:auto;scrollbar-width:none;background:#ffffff03;border:1px solid rgba(255,255,255,.05);border-radius:20px;padding:3rem;display:flex;justify-content:center}.viewport.svelte-a4r2xz::-webkit-scrollbar{display:none}svg.svelte-a4r2xz{display:block;max-width:100%;height:auto}.edge.svelte-a4r2xz{stroke:#ffffff26;stroke-width:2.5}.node-solid-base.svelte-a4r2xz{fill:#151312}.node-bg.svelte-a4r2xz{fill:#1e1c1b;stroke:var(--border);stroke-width:2.5}.node-bg.terminal.svelte-a4r2xz{stroke:#10b981;fill:#10b98114}.node-label.svelte-a4r2xz{font-size:16px;font-weight:700;fill:#fbbf24;font-family:var(--font-mono)}.node-label.terminal.svelte-a4r2xz{fill:#10b981}
