:root{--bg:#14161a;--bg-panel:#1b1e24;--bg-input:#101216;--border:#2a2e36;--fg:#d6dae2;--fg-dim:#8b93a1;--accent:#6fb3ff;--accent-dim:#3d6ea5;--warn:#ffb86c;--trap:#ff6b6b;--mono:ui-monospace, "Cascadia Code", "JetBrains Mono", Consolas, monospace}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--fg);font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif;font-size:14px}.app{flex-direction:column;height:100%;display:flex}.app-header{border-bottom:1px solid var(--border);background:var(--bg-panel);align-items:baseline;gap:12px;padding:8px 14px;display:flex}.app-header h1{letter-spacing:.5px;margin:0;font-size:16px}.app-sub{color:var(--fg-dim);font-size:12px}.banner{color:var(--warn);font-size:12px;font-family:var(--mono);background:#3a2f18;border-bottom:1px solid #5a4a20;padding:6px 14px}.app-main{flex:1;grid-template-columns:220px 1fr 1fr;min-height:0;display:grid}.case-list{border-right:1px solid var(--border);background:var(--bg-panel);padding:8px;overflow-y:auto}.case-list-title{color:var(--fg-dim);text-transform:uppercase;letter-spacing:1px;padding:2px 6px 6px;font-size:11px}.case-list section+section{margin-top:14px}.case-list ul{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.case-list button{text-align:left;width:100%;color:var(--fg);cursor:pointer;font:inherit;background:0 0;border:1px solid transparent;border-radius:6px;flex-direction:column;gap:2px;padding:6px 8px;display:flex}.case-list button:hover{background:#232730}.case-list button.selected{border-color:var(--accent-dim);background:#1d2a3a}.case-name{font-size:13px}.case-rfcs{color:var(--fg-dim);font-size:11px;font-family:var(--mono)}.editor{border-right:1px solid var(--border);background:var(--bg-input);min-width:0;min-height:0;display:flex}.editor-gutter{text-align:right;min-height:0;color:var(--fg-dim);border-right:1px solid var(--border);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;flex:0 0 44px;padding:10px 8px 10px 0;overflow:hidden}.editor-gutter pre{font:12px/1.5 var(--mono);margin:0}.editor-body{flex:1;min-width:0;position:relative}.editor-overlay{font:12px/1.5 var(--mono);white-space:pre;color:var(--fg);pointer-events:none;margin:0;padding:10px 12px;position:absolute;top:0;bottom:0;left:0;right:0;overflow:hidden}.editor-probe{visibility:hidden;white-space:pre;position:absolute}.editor-input{resize:none;color:transparent;width:100%;height:100%;caret-color:var(--fg);font:12px/1.5 var(--mono);white-space:pre;background:0 0;border:none;outline:none;padding:10px 12px;position:absolute;top:0;bottom:0;left:0;right:0;overflow:auto}.editor-input::-moz-selection{color:transparent;background:rgba(111,179,255,.25)}.editor-input::selection{color:transparent;background:rgba(111,179,255,.25)}.squiggle{-webkit-text-decoration-line:underline;text-decoration-line:underline;-webkit-text-decoration-style:wavy;text-decoration-style:wavy;-webkit-text-decoration-color:var(--trap);text-decoration-color:var(--trap);text-underline-offset:3px;-webkit-text-decoration-skip-ink:none;text-decoration-skip-ink:none;text-decoration-thickness:1px}.editor-tip{z-index:5;border:1px solid var(--border);background:var(--bg-panel);max-width:380px;color:var(--fg);font:11px/1.5 var(--mono);white-space:pre-wrap;pointer-events:none;border-radius:6px;padding:5px 8px;position:absolute;box-shadow:0 4px 14px rgba(0,0,0,.4)}.tok-keyword{color:#c678dd}.tok-number{color:#d19a66}.tok-string{color:#98c379}.tok-type{color:#e5c07b}.tok-function{color:#61afef}.tok-method{color:#56b6c2}.tok-variable{color:var(--fg)}.tok-parameter,.tok-property{color:#e06c75}.tok-enum{color:#e5c07b}.tok-enumMember{color:#56b6c2}.tok-class{color:#e5c07b}.tok-trait{color:#56b6c2}.tok-operator{color:#7f8b9b}.panes{flex-direction:column;min-width:0;display:flex}.pane-bar{border-bottom:1px solid var(--border);background:var(--bg-panel);gap:2px;padding:6px 8px 0;display:flex}.pane-bar button{font:inherit;color:var(--fg-dim);cursor:pointer;background:0 0;border:1px solid transparent;border-bottom:none;border-radius:6px 6px 0 0;padding:4px 12px;font-size:12px}.pane-bar button.active{color:var(--accent);background:var(--bg-input);border-color:var(--border)}.pane-bodies{background:var(--bg-input);flex:1;position:relative}.pane-body{font:12px/1.5 var(--mono);color:var(--fg);white-space:pre-wrap;word-break:break-word;margin:0;padding:10px 12px;display:none;position:absolute;top:0;bottom:0;left:0;right:0;overflow:auto}.pane-body.visible{display:block}.ast-pane{white-space:normal;word-break:normal}.ast-tree{font:12px/1.6 var(--mono)}.ast-controls{gap:8px;margin-bottom:8px;display:flex}.ast-controls button{font:11px var(--mono);border:1px solid var(--border);background:var(--bg-input);color:var(--fg);cursor:pointer;border-radius:6px;padding:2px 10px}.ast-controls button:hover{border-color:var(--accent,#7aa2f7)}.ast-head{align-items:baseline;gap:6px;padding:1px 0;display:flex}.ast-toggle{width:14px;color:var(--fg-dim,#888);cursor:pointer;font:11px var(--mono);text-align:left;background:0 0;border:none;padding:0}.ast-leaf{width:14px;color:var(--fg-dim,#888);text-align:center}.ast-kind{color:var(--fg)}.ast-kind .ast-name{color:var(--accent,#7aa2f7)}.ast-span{color:var(--fg-dim,#6b7089);margin-left:auto;padding-left:12px}.ast-body{border-left:1px solid var(--border);margin-left:6px;padding-left:6px}.ast-field{flex-wrap:wrap;align-items:baseline;gap:6px;display:flex}.ast-label{color:var(--fg-dim,#9aa5ce)}.ast-text{color:var(--fg)}.ast-item{width:100%;color:var(--fg);padding-left:12px}.status-bar{border-top:1px solid var(--border);background:var(--bg-panel);align-items:center;gap:10px;padding:8px 14px;display:flex}.status-bar button{font:inherit;border:1px solid var(--border);color:var(--fg);cursor:pointer;background:#232730;border-radius:6px;padding:5px 14px}.status-bar button.primary{border-color:var(--accent-dim);color:var(--accent)}.status-bar button:disabled{opacity:.45;cursor:default}.budget{color:var(--fg-dim);align-items:center;gap:6px;font-size:12px;display:flex}.budget input{background:var(--bg-input);border:1px solid var(--border);width:110px;color:var(--fg);font:12px var(--mono);border-radius:4px;padding:4px 6px}.stat{color:var(--fg-dim);font-size:12px;font-family:var(--mono);margin-left:auto}.stat+.stat{margin-left:0;padding-left:14px}.stat.trap{color:var(--trap)}.chip{font-size:12px;font-family:var(--mono);border:1px solid var(--border);white-space:nowrap;border-radius:999px;padding:3px 10px}.chip-pass{color:#7dd88a;background:#16241a;border-color:#2e5a38}.chip-fail{color:var(--trap);background:#2a1616;border-color:#6b2f2f}.diags{color:var(--warn);white-space:pre-wrap;background:#3a2f18;border:1px solid #5a4a20;border-radius:6px;margin:0 0 10px;padding:8px 10px}.diff{border-top:1px dashed var(--border);margin-top:10px;padding-top:8px}.diff-head{color:var(--trap);margin-bottom:6px;font-size:12px}.diff-body{white-space:pre-wrap;word-break:break-word;color:var(--fg-dim);margin:0}.boot-error{background:var(--bg);justify-content:center;align-items:center;height:100%;padding:24px;display:flex}.boot-error-box{background:var(--bg-panel);border:1px solid #6b2f2f;border-radius:10px;max-width:640px;padding:22px 26px}.boot-error-box h1{color:var(--trap);margin:0 0 12px;font-size:18px}.boot-error-box p{color:var(--fg);margin:10px 0}.boot-error-detail{color:var(--fg-dim);font:12px/1.5 var(--mono);background:var(--bg-input);border:1px solid var(--border);white-space:pre-wrap;word-break:break-word;border-radius:6px;padding:8px 10px}.boot-error-command{font:14px/1.6 var(--mono);background:var(--bg-input);border:1px solid var(--accent-dim);border-radius:6px;margin:12px 0;padding:10px 12px}.boot-error-command code{color:var(--accent)}.boot-error-note{color:var(--fg-dim);font-size:12px}.boot-error-note code{font-family:var(--mono)}