[data-tool-id="regex"] .tool-workspace{display:block}[data-tool-id="regex"] .rx-wrap{display:flex;flex-direction:column;gap:1rem}.rx-bar{display:flex;align-items:center;gap:.75rem;flex-wrap:wrap}.rx-pattern-wrap{display:flex;align-items:center;gap:.3rem;flex:1;min-width:240px;background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:0 .75rem;transition:border-color .15s,background-color .15s}.rx-pattern-wrap:focus-within{border-color:var(--forge-border);background-color:var(--surface2)}.rx-slash{font-family:var(--font-mono);font-size:1.125rem;font-weight:600;color:var(--forge-primary);user-select:none;flex-shrink:0;line-height:1}.rx-pattern-input{flex:1;min-width:0;background:none;border:none;outline:none;font-family:var(--font-mono);font-size:.875rem;color:var(--text);padding:.65rem 0;caret-color:var(--text)}.rx-pattern-input::placeholder{color:var(--muted);opacity:.5}.rx-flag-str{font-family:var(--font-mono);font-size:.8125rem;color:var(--forge-primary);opacity:.7;flex-shrink:0;min-width:1.5ch;user-select:none}.rx-flags{display:flex;gap:2px}.rx-flag-btn{padding:.4rem .6rem;font-family:var(--font-mono);font-size:.8125rem;font-weight:600;line-height:1.25;background:transparent;border:1px solid var(--border);border-radius:var(--radius);color:var(--muted);cursor:pointer;transition:background-color .12s,border-color .12s,color .12s}.rx-flag-btn:hover{color:var(--text);border-color:var(--muted)}.rx-flag-btn.is-active{background-color:var(--forge-a15);border-color:var(--forge-border);color:var(--forge-primary)}.rx-bar-right{display:flex;align-items:center;gap:.5rem;flex-shrink:0}.rx-modes{display:flex;gap:2px}.rx-mode-btn{padding:.4rem .9rem;font-family:var(--font);font-size:.8125rem;font-weight:600;line-height:1.25;background:transparent;border:1px solid var(--border);border-radius:var(--radius);color:var(--muted);cursor:pointer;transition:background-color .12s,border-color .12s,color .12s}.rx-mode-btn:hover{color:var(--text);border-color:var(--muted)}.rx-mode-btn.is-active{background-color:var(--forge-primary);border-color:var(--forge-primary);color:var(--bg)}.rx-btn-ref{min-width:2rem;padding:.4rem .6rem;font-family:var(--font-mono);font-size:.875rem;font-weight:700;line-height:1.25;background:transparent;border:1px solid var(--border);border-radius:var(--radius);color:var(--muted);cursor:pointer;transition:background-color .12s,border-color .12s,color .12s}.rx-btn-ref:hover{color:var(--text);border-color:var(--muted)}.rx-btn-ref.is-active{background-color:var(--forge-a15);border-color:var(--forge-border);color:var(--forge-primary)}.rx-btn-code{white-space:nowrap;padding:.4rem .75rem;font-size:.8125rem;line-height:1.25}.rx-error{padding:.5rem .9rem;background-color:rgba(224,92,92,0.08);border:1px solid rgba(224,92,92,0.25);border-radius:var(--radius);font-family:var(--font-mono);font-size:.8125rem;color:#e05c5c}.rx-explain{display:flex;flex-direction:column;gap:.4rem;padding:.6rem .85rem;background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.rx-explain-tokens{display:flex;flex-wrap:wrap;gap:2px}.rx-explain-hint{font-size:.75rem;color:var(--muted);font-style:italic;transition:color .12s,opacity .12s;opacity:.7;min-height:1.1em}.rx-explain-hint.is-active{color:var(--text);font-style:normal;opacity:1}.rx-tok{display:inline-flex;align-items:center;font-family:var(--font-mono);font-size:.75rem;padding:.15rem .38rem;border-radius:3px;cursor:default;transition:filter .1s;line-height:1.4}.rx-tok:hover{filter:brightness(1.3)}.rx-tok-lit{background-color:rgba(160,160,160,0.10);color:var(--text)}.rx-tok-esc{background-color:rgba(100,149,237,0.18);color:#7ba4e8}.rx-tok-anc{background-color:rgba(167,120,220,0.18);color:#b885e0}.rx-tok-cls{background-color:rgba(122,158,106,0.20);color:#8fc47a}.rx-tok-grp{background-color:rgba(196,154,64,0.22);color:var(--forge-primary)}.rx-tok-gnc{background-color:rgba(196,154,64,0.10);color:rgba(196,154,64,0.65)}.rx-tok-gcl{background-color:rgba(196,154,64,0.10);color:rgba(196,154,64,0.65)}.rx-tok-lk{background-color:rgba(80,200,200,0.16);color:#5ec8c8}.rx-tok-q{background-color:rgba(224,130,90,0.18);color:#e07850}.rx-tok-dot{background-color:rgba(220,200,80,0.16);color:#d4c040}.rx-tok-alt{background-color:rgba(200,200,200,0.12);color:var(--text);font-weight:700}.rx-tok-ref{background-color:rgba(220,100,180,0.18);color:#e070c0}.rx-tok-err{background-color:rgba(224,92,92,0.18);color:#e05c5c;text-decoration:underline wavy #e05c5c}.rx-ref-panel{padding:1rem 1.25rem 1.25rem;background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius)}.rx-ref-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:0 2rem}.rx-ref-col{display:flex;flex-direction:column}.rx-ref-head{font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:var(--forge-primary);margin:1rem 0 .4rem}.rx-ref-col .rx-ref-head:first-child{margin-top:0}.rx-ref-list{display:grid;grid-template-columns:auto 1fr;column-gap:.75rem;row-gap:.1rem;margin:0}.rx-ref-list dt{font-family:var(--font-mono);font-size:.75rem;color:var(--forge-accent);white-space:nowrap;padding:.1rem 0}.rx-ref-list dd{font-size:.75rem;color:var(--muted);margin:0;padding:.1rem 0}.rx-workspace{display:grid;grid-template-columns:1fr 380px;gap:1.25rem;align-items:start}.rx-left,.rx-right{display:flex;flex-direction:column;gap:.75rem}.rx-stats{margin-left:auto;font-family:var(--font-mono);font-size:.75rem;color:var(--forge-primary);opacity:.85}.rx-editor-wrap{position:relative;background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius);transition:border-color .15s,background-color .15s}.rx-editor-wrap:focus-within{border-color:var(--forge-border);background-color:var(--surface2)}.rx-backdrop,.rx-textarea{font-family:var(--font-mono);font-size:.8125rem;line-height:1.65;padding:1rem 1.1rem;white-space:pre-wrap;overflow-wrap:break-word;word-break:break-word;tab-size:4}.rx-backdrop{position:absolute;inset:0;z-index:0;color:transparent;background:transparent;border:none;border-radius:inherit;pointer-events:none;overflow:auto;scrollbar-width:none}.rx-backdrop::-webkit-scrollbar{display:none}mark.rx-mark{color:transparent;background-color:rgba(196,154,64,0.25);border-radius:2px;outline:1px solid rgba(196,154,64,0.55);outline-offset:-1px}mark.rx-mark-zero{display:inline-block;width:2px;color:transparent;background-color:transparent;outline:2px solid rgba(196,154,64,0.75);outline-offset:-1px;border-radius:1px}.rx-textarea{position:relative;z-index:1;display:block;width:100%;box-sizing:border-box;min-height:500px;background:transparent;border:none;border-radius:inherit;color:var(--text);caret-color:var(--text);outline:none;resize:vertical;overflow:auto}.rx-textarea::placeholder{color:var(--muted);opacity:.45}#rx-results-panel,#rx-replace-panel{display:flex;flex-direction:column;gap:.75rem}.rx-match-list{display:flex;flex-direction:column;gap:.35rem;max-height:560px;overflow-y:auto}.rx-empty-state{padding:.75rem .25rem .25rem;display:flex;flex-direction:column;gap:.4rem}.rx-empty-title{font-size:.8125rem;color:var(--muted);margin:0}.rx-empty-hint{font-size:.75rem;color:var(--muted);opacity:.7;margin:0}.rx-examples{display:flex;flex-wrap:wrap;gap:.35rem;margin-top:.2rem}.rx-example-btn{padding:.25rem .65rem;font-family:var(--font-mono);font-size:.75rem;background:transparent;border:1px solid var(--border);border-radius:var(--radius);color:var(--muted);cursor:pointer;transition:background-color .12s,border-color .12s,color .12s}.rx-example-btn:hover{background-color:var(--forge-a8);border-color:var(--forge-border);color:var(--forge-primary)}.rx-empty-msg{font-size:.8125rem;color:var(--muted);padding:.25rem 0;margin:0}.rx-cap-note{font-size:.75rem;color:var(--muted);padding:.5rem .25rem .25rem;text-align:center;margin:0}.rx-card{background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius);overflow:hidden}.rx-card-head{display:flex;align-items:baseline;gap:.55rem;padding:.5rem .75rem;flex-wrap:wrap}.rx-card-head.has-sep{border-bottom:1px solid var(--border)}.rx-c-idx{font-family:var(--font-mono);font-size:.6875rem;font-weight:600;color:var(--forge-primary);opacity:.8;flex-shrink:0}.rx-c-pos{font-family:var(--font-mono);font-size:.6875rem;color:var(--muted);flex-shrink:0}.rx-c-val{font-family:var(--font-mono);font-size:.75rem;color:var(--text);word-break:break-all;overflow-wrap:anywhere;white-space:normal;min-width:0;background:none;border:none;padding:0}.rx-groups{width:100%;border-collapse:collapse;font-size:.75rem}.rx-groups tr+tr{border-top:1px solid var(--border)}.rx-g-num{font-family:var(--font-mono);color:var(--forge-accent);padding:.3rem .75rem;white-space:nowrap;width:1%;vertical-align:top}.rx-g-named{color:var(--muted);font-style:italic}.rx-g-val{padding:.3rem .75rem .3rem .25rem;color:var(--text);word-break:break-all;vertical-align:top}.rx-g-val code{font-family:var(--font-mono);font-size:.8125em;background:none;border:none;padding:0}.rx-undef{color:var(--muted)}.rx-replacement-input{width:100%;padding:.65rem 1rem;font-family:var(--font-mono);font-size:.8125rem;color:var(--text);background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius);outline:none;box-sizing:border-box;transition:border-color .15s,background-color .15s}.rx-replacement-input:focus{border-color:var(--forge-border);background-color:var(--surface2)}.rx-replacement-input::placeholder{color:var(--muted);opacity:.5}.rx-cast-lbl{margin-top:.25rem}.rx-preview{min-height:120px;max-height:300px;overflow-y:auto;font-family:var(--font-mono);font-size:.8125rem;line-height:1.65;padding:.75rem 1rem;background-color:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);white-space:pre-wrap;word-break:break-word}.rx-preview.is-error{color:#e05c5c}.rx-workspace.is-replace{grid-template-columns:1fr}.rx-workspace.is-replace .rx-right{display:none}.rx-preview{min-height:200px}@media (max-width:960px){.rx-workspace{grid-template-columns:1fr}.rx-match-list{max-height:360px}.rx-ref-grid{grid-template-columns:repeat(2,1fr)}}@media (max-width:600px){.rx-bar{gap:.5rem}.rx-bar-right{flex-wrap:wrap}.rx-pattern-wrap{min-width:0}.rx-ref-grid{grid-template-columns:1fr}.rx-textarea{min-height:300px}}