:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:#ffffffde;background-color:#242424;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}a{font-weight:500;color:#646cff;text-decoration:inherit}a:hover{color:#535bf2}body{margin:0;min-width:320px;min-height:100vh}.terminal-leaf ellipse{fill:#add8e6!important;stroke:#1976d2!important}.epsilon-leaf ellipse{fill:#90ee90!important;stroke:#388e3c!important}.variable-node ellipse{fill:#fff!important;stroke:#333!important}.graph-view-content g.node text{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,sans-serif!important}.graph-view-content g.edge text{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,sans-serif!important}#root{width:100%;height:100vh}h1{font-size:3.2em;line-height:1.1}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}@media (prefers-color-scheme: light){:root{color:#213547;background-color:#fff}a:hover{color:#747bff}button{background-color:#f9f9f9}}.menu-bar{display:flex;background-color:#f8f9fa;border-bottom:1px solid #dee2e6;padding:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;font-size:14px}.menu-trigger{background:none;border:none;padding:8px 16px;cursor:pointer;color:#333;font-size:14px;font-family:inherit;transition:background-color .15s ease}.menu-trigger:hover{background-color:#e9ecef}.menu-trigger[data-expanded]{background-color:#007bff;color:#fff}.menu-content{background:#fff;border:1px solid #dee2e6;border-radius:4px;box-shadow:0 4px 12px #00000026;padding:4px;min-width:max-content;width:max-content;z-index:1000;font-size:14px;overflow:hidden;box-sizing:border-box;position:relative;outline:none}.menu-item{display:flex;align-items:center;justify-content:space-between;padding:8px 12px;margin:1px 2px;border-radius:2px;cursor:pointer;background:none;border:none;width:calc(100% - 4px);text-align:left;color:#333;font-size:14px;font-family:inherit;transition:background-color .15s ease;min-height:32px;white-space:nowrap;box-sizing:border-box}.menu-item:hover:not([disabled]):not(:focus){background-color:#f8f9fa;color:#333}.menu-item:focus{background-color:#007bff;color:#fff;outline:none}.menu-item[disabled]{color:#6c757d;cursor:not-allowed}.menu-separator{height:1px;background-color:#dee2e6;margin:4px 0}.menu-indicator{margin-right:8px;width:16px;display:inline-block;text-align:center;font-size:12px}.menu-content .menu-content{margin-left:4px}.menu-trigger:focus-visible{outline:2px solid #007bff;outline-offset:-2px}.menu-item:focus-visible{background-color:#007bff!important;color:#fff!important;outline:none}.menu-content *{outline:none}.menu-content:focus{outline:none}.menu-item[data-expanded]{background-color:#007bff!important;color:#fff!important}.menu-item>span{display:block;width:100%;min-width:max-content}.selected-item{font-weight:700}.menu-shortcut{font-size:12px;color:#6c757d;margin-left:20px}.menu-item:hover .menu-shortcut{color:#495057}.menu-item:focus .menu-shortcut{color:#fffc}.theme-submenu{max-height:calc(100vh - 80px);overflow-y:auto;overflow-x:hidden;scrollbar-width:thin;scrollbar-color:#dee2e6 transparent}.theme-section-header{padding:8px 12px 4px;font-size:12px;font-weight:600;color:#6c757d;text-transform:uppercase;letter-spacing:.5px;background:none;cursor:default;-webkit-user-select:none;user-select:none;margin-top:4px}.theme-submenu::-webkit-scrollbar{width:8px}.theme-submenu::-webkit-scrollbar-track{background:transparent}.theme-submenu::-webkit-scrollbar-thumb{background:#dee2e6;border-radius:4px}.theme-submenu::-webkit-scrollbar-thumb:hover{background:#adb5bd}.model-indicator{display:flex;align-items:center;padding:8px 16px;margin-left:24px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.model-type-label{color:#495057;font-size:16px;font-weight:600;letter-spacing:.5px}.header-bar[data-type=dfa] .model-type-label{color:#28a745}.header-bar[data-type=nfa] .model-type-label{color:#17a2b8}.header-bar[data-type=regex] .model-type-label{color:#e67e22}.header-bar[data-type=cfg] .model-type-label{color:#6f42c1}.header-bar[data-type=tm] .model-type-label{color:#dc3545}.code-editor-container{height:100%;width:100%;display:flex;flex-direction:column;border:1px solid var(--border-color, #ddd);border-radius:4px;overflow:hidden}.code-editor{flex:1;height:100%;min-height:200px}.code-editor .cm-editor{height:100%}.code-editor .cm-scroller{font-family:Consolas,Monaco,Courier New,monospace;font-size:14px}.code-editor .cm-focused{outline:none}.code-editor .cm-editor.cm-focused{outline:2px solid var(--focus-color, #0066cc);outline-offset:-1px}.panzoom-container{width:100%;height:100%;overflow:hidden;border:1px solid #ccc;position:relative;box-shadow:inset 0 0 2px #0000001a}.panzoom-element{width:100%;height:100%;display:flex;align-items:center;justify-content:center;position:relative}.panzoom-element svg{width:100%;height:100%}.panzoom-controls{position:absolute;top:5px;right:5px;z-index:10;display:flex;gap:5px}.panzoom-control-btn{padding:5px 10px;background:#dcdcdc;border:1px solid #ccc;cursor:pointer;border-radius:6px}.panzoom-control-btn:hover{background:#f0f0f0;border-color:#999}.automaton-table-component{padding:20px;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif}.error-message{background-color:#fee;border:1px solid #f00;border-radius:4px;padding:15px;margin-bottom:20px;color:#c00}.error-text{font-family:Consolas,Monaco,Courier New,monospace;font-size:13px;line-height:1.4;margin:10px 0 0;white-space:pre-wrap;overflow-x:auto;background-color:#fff8f8;padding:10px;border-radius:4px;border:1px solid #fcc;color:#000}.automaton-content{display:flex;flex-direction:column;gap:8px}.input-status-line{display:flex;align-items:center;gap:15px;flex-wrap:wrap;margin-bottom:8px}.position-label{font-weight:500;color:#495057;white-space:nowrap}.transition-info{font-size:14px;color:#6c757d;font-style:italic}.input-display{background-color:#f8f9fa;padding:8px 12px;border-radius:6px;border:1px solid #dee2e6}.input-processed{font-family:Consolas,Monaco,Courier New,monospace;font-size:16px;font-weight:700;padding:6px 10px;background-color:#fff;border:1px solid #ced4da;border-radius:4px;letter-spacing:1px;white-space:nowrap;min-width:100px}.acceptance-status{font-weight:500;white-space:nowrap}.accepted{color:#28a745;font-weight:700}.rejected{color:#dc3545;font-weight:700}.transition-table-container{overflow-x:auto;border:1px solid #dee2e6;border-radius:8px;display:inline-block}.transition-table{width:auto;border-collapse:collapse;background-color:#fff;table-layout:auto}.transition-table thead{background-color:#e9ecef}.transition_header_entry{background-color:#ddd;padding:6px 8px;text-align:left;font-weight:700;border:1px solid #bbb;font-size:13px}.transition_header_entry:first-child{width:1px;white-space:nowrap}.state-cell{width:1px;white-space:nowrap;padding:1px 4px;vertical-align:middle}.transition_header_entry:not(:first-child){width:auto;text-align:left}.transition-cell{padding:0 1px;vertical-align:middle;text-align:left;width:auto}.transition-table tbody tr{border-bottom:1px solid #dee2e6}.transition-table-entry{display:block;padding:3px 6px;border-radius:6px;font-family:Consolas,Monaco,Courier New,monospace;font-size:13px;width:100%;text-align:left;box-sizing:border-box}.state-entry{border:2px solid #6c757d;background-color:#f8f9fa;font-weight:700;white-space:nowrap;box-shadow:0 1px 2px #0000001a}.state-entry.accepting{border-color:#28a745;background-color:#f8fff8;box-shadow:0 1px 2px #28a74533}.state-entry.accepting.current{background-color:#b3ffb3;border-color:#1e7e34;box-shadow:0 3px 6px #1e7e3466}.state-entry.rejecting{border-color:#dc3545;background-color:#fff8f8;box-shadow:0 1px 2px #dc354533}.state-entry.rejecting.current{background-color:#ffb3b3;border-color:#b71c1c;box-shadow:0 3px 6px #b71c1c66}.state-entry.current{background-color:#e3f2fd;border-color:#007bff;box-shadow:0 2px 4px #007bff4d}.transition-entry{border:1px solid #6c757d;background-color:#f8f9fa;box-shadow:0 1px 2px #0000001a}.transition-entry.current{background-color:#e3f2fd;border-color:#007bff;font-weight:700;box-shadow:0 2px 4px #007bff4d}.current-states{font-size:14px;color:#6c757d;white-space:nowrap}.state-set{font-weight:600;color:#007bff}.no-transition{color:#adb5bd;font-style:italic;padding:6px 12px}.regex-info{display:flex;flex-direction:column;gap:20px}.regex-section{background-color:#f8f9fa;padding:15px;border-radius:8px;border:1px solid #dee2e6}.regex-section h3{margin:0 0 10px;font-size:16px;font-weight:600;color:#495057}.regex-display{font-family:Consolas,Monaco,Courier New,monospace;font-size:18px;background-color:#fff;padding:12px;border:1px solid #ced4da;border-radius:4px;color:#495057;word-wrap:break-word;overflow-wrap:break-word}.alphabet-display{font-family:Consolas,Monaco,Courier New,monospace;font-size:14px;background-color:#fff;padding:8px 12px;border:1px solid #ced4da;border-radius:4px;color:#6c757d}.substitution-table-container{background-color:#fff;border:1px solid #ced4da;border-radius:4px;overflow-x:auto}.substitution-table{width:100%;border-collapse:collapse}.substitution-table thead{background-color:#e9ecef}.expression-header,.subexpressions-header{background-color:#ddd;padding:12px;text-align:left;font-weight:700;border:1px solid #bbb;font-size:14px;color:#495057}.expression-header{border-right:1px solid #bbb;width:1px;white-space:nowrap}.substitution-row:nth-child(2n){background-color:#f8f9fa}.expression-cell,.subexpressions-cell{padding:8px 12px;vertical-align:top;text-align:left;border-bottom:1px solid #dee2e6}.expression-cell{border-right:1px solid #dee2e6;width:1px;white-space:nowrap}.expression-cell code,.subexpressions-cell code{font-family:Consolas,Monaco,Courier New,monospace;font-size:14px;color:#333;background-color:transparent;white-space:nowrap}.inline-alphabet{font-family:Consolas,Monaco,Courier New,monospace;font-size:16px;color:#333;background-color:#f8f9fa;padding:4px 8px;border-radius:3px;font-weight:400}.tm-tapes-container{background-color:#f8f9fa;padding:6px 8px;border-radius:4px;border:1px solid #dee2e6;overflow-x:auto}.tm-tapes-container h3{margin:0 0 4px;font-size:13px;font-weight:600;color:#495057}.tm-step-counter{margin-left:8px;font-weight:400;font-size:12px;color:#6c757d}.tm-tapes-table{width:auto;border-collapse:separate;border-spacing:1px;background-color:#fff}.tape_cell{min-width:20px;height:20px;text-align:center;vertical-align:middle;border:1px solid #6c757d;background-color:#fff;font-family:Consolas,Monaco,Courier New,monospace;font-size:14px;font-weight:700;border-radius:5px;padding:0;white-space:nowrap}.tape_cell.current{border-color:#007bff;background-color:#e3f2fd;box-shadow:0 2px 4px #007bff4d}.tm-transitions-table{width:auto;border-collapse:separate;border-spacing:2px}.tm-transitions-table .transition-entry{display:table-cell;width:1px;white-space:nowrap}@media (max-width: 768px){.input-status-line{flex-direction:column;align-items:flex-start;gap:8px}.input-processed{font-size:14px;letter-spacing:.5px}.transitions-container{flex-direction:column}.tm-tapes-table{border-spacing:1px}.tape_cell{font-size:12px;min-width:25px;height:25px;padding:2px 4px}.tm-transitions-table{border-spacing:2px}.tm-transitions-table .transition-entry{font-size:12px;padding:4px 8px;white-space:normal;word-break:break-word}}.cfg-parse-tree{background-color:#f8f9fa;padding:15px;border-radius:8px;border:1px solid #dee2e6;display:flex;flex-direction:column;flex:1;min-height:0}.cfg-parse-tree h3{margin:0 0 10px;font-size:16px;font-weight:600;color:#495057}.parse-tree-display{background-color:#fff;border:1px solid #ced4da;border-radius:4px;padding:12px;overflow:auto;max-height:calc(70vh - 100px);max-width:100%}.parse-tree-display pre{margin:0;font-family:Consolas,Monaco,Courier New,monospace;font-size:14px;line-height:1.4;color:#333;white-space:pre;max-height:inherit;overflow:visible}.app{height:100vh;display:flex;flex-direction:column;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;overflow:hidden}.header-bar{display:flex;align-items:center;background-color:#f8f9fa;border-bottom:1px solid #dee2e6}.main-content{flex:1;display:flex;flex-direction:column;padding:16px;gap:16px;min-height:0}.input-controls{display:flex;flex-wrap:wrap;align-items:center;gap:12px;padding:12px;background-color:#f8f9fa;border:1px solid #dee2e6;border-radius:4px}.input-controls .acceptance-status{font-weight:500;font-size:14px}.input-controls .tm-output{margin-left:12px;font-weight:500;font-size:14px;color:#495057}.input-controls .output-string{font-family:Consolas,Monaco,Courier New,monospace;font-weight:600;color:#007bff;background-color:#e3f2fd;padding:2px 6px;border-radius:3px}.input-controls .max-steps-reached{font-weight:600;color:#fd7e14;background-color:#fff3cd;padding:2px 6px;border-radius:3px;border:1px solid #ffeaa7}.input-controls .accepted{color:#28a745;font-weight:700}.input-controls .rejected{color:#dc3545;font-weight:700}.input-controls input[type=text]{padding:6px 12px;border:1px solid #ced4da;border-radius:4px;font-size:14px;font-family:Consolas,Monaco,Courier New,monospace}.step-controls{display:flex;gap:4px}.step-controls button{padding:6px 12px;border:1px solid #ced4da;background-color:#fff;border-radius:4px;cursor:pointer;font-size:12px;font-family:Consolas,Monaco,Courier New,monospace}.step-controls button:hover{background-color:#e9ecef}.step-controls button:disabled{opacity:.6;cursor:not-allowed}.run-button{margin-left:8px;padding:6px 12px;border:1px solid #007bff;background-color:#007bff;color:#fff;border-radius:4px;cursor:pointer;font-size:12px;font-family:Consolas,Monaco,Courier New,monospace;font-weight:700}.run-button:hover{background-color:#0056b3;border-color:#0056b3}.split-content{flex:1;min-height:0;display:flex;flex-direction:column}[data-corvu-resizable-root]{width:100%;height:100%;display:flex}[data-corvu-resizable-panel]{display:flex;flex-direction:column;min-width:0}[data-corvu-resizable-handle]{flex-basis:10px!important;width:10px!important;min-width:10px!important;max-width:10px!important;flex-shrink:0!important;flex-grow:0!important;box-sizing:border-box!important;padding:0!important;margin:0!important;border:none!important;display:flex;align-items:center;justify-content:center;cursor:col-resize;background-color:#dee2e6}[data-corvu-resizable-root] [data-corvu-resizable-handle]{flex-basis:10px!important;width:10px!important;min-width:10px!important;max-width:10px!important}[data-corvu-resizable-handle]:hover .resize-handle,[data-corvu-resizable-handle][data-dragging] .resize-handle{background-color:#007bff}.resize-handle{width:1px;height:100%;background-color:#6c757d;transition:background-color .15s ease}.editor-section,.results-section{height:100%;display:flex;flex-direction:column;border:1px solid #dee2e6;border-radius:4px;background-color:#fff;min-width:0;min-height:0;overflow:hidden}.results-section>div{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}.results-section .automaton-component{height:100%;display:flex;flex-direction:column;overflow:hidden}.results-section .automaton-component .automaton-content{flex:1;display:flex;flex-direction:column;min-height:0;overflow:hidden}.results-section .automaton-component .table-view-content{flex:1;overflow-y:auto;overflow-x:auto}.results-section .automaton-component .graph-view-content{flex:1;display:flex;flex-direction:column;overflow:hidden}.editor-section>.code-editor-container{flex:1;margin:0;height:100%;min-height:0}.editor-section textarea{flex:1;border:none;padding:16px;font-family:Consolas,Monaco,Courier New,monospace;font-size:14px;resize:none;outline:none}.results-section .placeholder{flex:1;padding:16px;color:#6c757d}.results-section .placeholder p{margin:8px 0}@media (max-width: 768px){.split-content{flex-direction:column}.input-controls{flex-direction:column;align-items:stretch}.input-controls input[type=text]{width:100%}}
