:root{--yellow: #ffbe0b;--blue: #3a86ff;--pink: #ff006e;--orange: #d97706;--edge-color: #64748b;--entry-color: #0f172a;--edge-label-color: #334155;--edge-active-label-color: var(--orange);--muted-opacity: .22}:root.dark{--edge-color: #c0c4ca;--edge-label-color: #d0daf3}:root.dark .regex-internals-copy{border-color:#94a3b838;background:radial-gradient(circle at top right,rgba(58,134,255,.2),transparent 36%),linear-gradient(145deg,#0f172ae0,#1e293bf0)}:root.dark .regex-internals-description,:root.dark .collapsible-state{color:#cbd5e1}:root.dark .collapsible-panel{background:linear-gradient(hsl(var(--background)),hsl(var(--background))) padding-box,linear-gradient(90deg,var(--blue),var(--yellow),var(--orange)) border-box;box-shadow:0 22px 48px #02061759}.state-mapping-table{width:100%;border-collapse:collapse;border-width:2px;--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1));min-width:400px;max-width:500px;font-size:1.25rem;th{font-size:1.1rem}td,th{border-width:2px}td,th{border-color:#d1d5db66}td,th{text-align:center}tr{transition:background-color .18s ease-in,outline .2s ease-in;outline:3px dashed transparent}tbody tr[data-selected]{outline:3px dashed var(--yellow);background:#fef3c74d}}.distinguishability-matrix{border-width:1px;--tw-border-opacity: 1;border-color:rgb(226 232 240 / var(--tw-border-opacity, 1));min-width:-moz-fit-content;min-width:fit-content;max-width:none;table-layout:fixed;font-size:1rem;th,td{aspect-ratio:1/1;width:3rem;min-width:3rem;height:3rem;padding:0;font-weight:600;vertical-align:middle;text-align:center;border:1px solid #374151;transition:background-color .16s ease,box-shadow .16s ease,color .16s ease}thead th,tbody th{background:#94a3b81f}td[data-empty]{cursor:pointer}td[data-empty]:hover,td[data-empty]:focus-visible,th[data-equivalent-hover],td[data-equivalent-hover]{background:color-mix(in srgb,var(--blue) 14%,rgba(255,255,255,.94));box-shadow:inset 0 0 0 2px color-mix(in srgb,var(--blue) 72%,white)}td[data-empty]:focus-visible{outline:0}}.regex-section{margin-top:2.5rem;margin-bottom:2.5rem;margin-left:0;margin-right:0}.collapsible-panel{position:relative;overflow:hidden;border:2px solid transparent;border-radius:1rem;box-shadow:0 18px 40px #0f172a14;transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease;background:linear-gradient(hsl(var(--background)),hsl(var(--background))) padding-box,linear-gradient(90deg,var(--blue),var(--yellow),var(--orange)) border-box}.collapsible-panel:hover{transform:translateY(-1px);box-shadow:0 20px 48px #0f172a1f}.collapsible-trigger{display:flex;width:100%;align-items:flex-start;gap:1rem;padding:1.15rem 1.25rem;text-align:left;border:0;color:inherit;cursor:pointer}.collapsible-trigger:focus-visible{outline:2px solid var(--blue);outline-offset:-2px}.collapsible-copy{display:grid;gap:.5rem;min-width:0;flex:1}.collapsible-title-row{display:flex;align-items:center;justify-content:space-between;gap:.75rem;flex-wrap:wrap}.collapsible-state{padding:.24rem .65rem;border:1px solid rgba(148,163,184,.35);border-radius:100%;background:#ffffffa6;color:#475569;font-size:.78rem;font-weight:700}.collapsible-chevron{flex:0 0 auto;border:1px solid rgba(148,163,184,.35);border-radius:100%;transition:transform .22s ease,background-color .18s ease,border-color .18s ease}.collapsible-panel.is-open .collapsible-chevron{transform:rotate(180deg)}.collapsible-body-wrap{display:grid;grid-template-rows:0fr;opacity:.5;transition:grid-template-rows .24s cubic-bezier(.2,.7,.2,1),opacity .18s ease}.collapsible-panel.is-open .collapsible-body-wrap{grid-template-rows:1fr;opacity:1}.collapsible-body{min-height:0;overflow:hidden;padding:0 1.25rem}.collapsible-panel.is-open .collapsible-body{padding-bottom:1.25rem}.collapsible-body>:first-child{margin-top:0}.collapsible-body>:last-child{margin-bottom:0}.regex-input-container{margin-bottom:1.5rem}.regex-input,.test-input{font-family:Courier New,monospace;background:transparent;border:2px solid #374151;border-radius:8px;width:100%;padding:12px 16px;font-size:1.1rem;transition:border-color .2s ease;&:focus{outline:none;border-color:var(--regex-blue)}&.error{border-color:var(--regex-red)}}.regex-input{font-weight:600;min-height:60px;resize:vertical}.test-input{min-height:120px;resize:vertical}.regex-controls{margin-bottom:1.5rem;display:flex;gap:.75rem}.regex-btn{border-radius:.375rem;border-width:1px;padding:.5rem 1rem;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s}.regex-btn:hover{background-color:#f8fafc1a}.regex-btn:disabled{cursor:not-allowed;opacity:.5}.regex-btn{&.primary{--tw-border-opacity: 1;border-color:rgb(37 99 235 / var(--tw-border-opacity, 1))}&.primary{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity, 1))}&.primary{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}&.primary:hover{--tw-bg-opacity: 1;background-color:rgb(29 78 216 / var(--tw-bg-opacity, 1))}&.secondary{--tw-border-opacity: 1;border-color:rgb(156 163 175 / var(--tw-border-opacity, 1))}}.regex-matches>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.75rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem * var(--tw-space-y-reverse))}.match-item{border-radius:.5rem;border-width:2px;--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1));padding:1rem;transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.2s;&.has-match{border-color:var(--regex-green);background:#10b9811a}.match-text{font-family:Courier New,monospace;font-size:1rem;line-height:1.6;word-break:break-all}.match-highlight{background:#3b82f64d;border-radius:3px;padding:2px 0}.match-info{margin-top:.5rem}.match-info{font-size:.875rem;line-height:1.25rem}.match-info{opacity:.75}}.regex-explanation{margin-top:1.5rem;border-radius:.5rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1));padding:1rem;background-color:#f9fafb1a;.explanation-title{margin-bottom:.5rem}.explanation-title{font-size:1.125rem;line-height:1.75rem}.explanation-title{font-weight:600}.pattern-breakdown>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.5rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.5rem * var(--tw-space-y-reverse))}.pattern-breakdown{.pattern-item{display:flex}.pattern-item{align-items:flex-start}.pattern-item{gap:.75rem}.pattern-item{.pattern-token{border-radius:.25rem}.pattern-token{padding-left:.5rem;padding-right:.5rem}.pattern-token{padding-top:.25rem;padding-bottom:.25rem}.pattern-token{font-family:Geist Mono,monospace}.pattern-token{font-weight:600}.pattern-token{--tw-bg-opacity: 1;background-color:rgb(37 99 235 / var(--tw-bg-opacity, 1))}.pattern-token{--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity, 1))}.pattern-token{min-width:60px;text-align:center}.pattern-desc{flex:1 1 0%}}}.flags-info{margin-top:.75rem}.flags-info{font-size:.875rem;line-height:1.25rem}.flags-info{opacity:.75}}.regex-cheatsheet{margin-top:2rem;display:grid;grid-template-columns:repeat(1,minmax(0,1fr));gap:1rem}@media (min-width: 768px){.regex-cheatsheet{grid-template-columns:repeat(2,minmax(0,1fr))}}.regex-cheatsheet{.cheatsheet-section{border-radius:.5rem}.cheatsheet-section{border-width:1px}.cheatsheet-section{--tw-border-opacity: 1;border-color:rgb(209 213 219 / var(--tw-border-opacity, 1))}.cheatsheet-section{padding:1rem}.cheatsheet-section{.section-title{margin-bottom:.5rem}.section-title{font-weight:600}.section-title{color:var(--regex-purple)}.pattern-list>:not([hidden])~:not([hidden]){--tw-space-y-reverse: 0;margin-top:calc(.25rem * calc(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem * var(--tw-space-y-reverse))}.pattern-list{font-size:.875rem;line-height:1.25rem}.pattern-list{.pattern-example{display:flex}.pattern-example{justify-content:space-between}.pattern-example{.pattern{font-family:Geist Mono,monospace}.pattern{font-weight:600}.pattern{color:var(--regex-blue)}.description{opacity:.75}}}}}.error-message{margin-top:.5rem;border-radius:.5rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(248 113 113 / var(--tw-border-opacity, 1));padding:.75rem;background-color:#fef2f233;--tw-text-opacity: 1;color:rgb(248 113 113 / var(--tw-text-opacity, 1));font-size:.9rem}.success-message{margin-top:.5rem;border-radius:.5rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(74 222 128 / var(--tw-border-opacity, 1));padding:.75rem;background-color:#f0fdf433;--tw-text-opacity: 1;color:rgb(74 222 128 / var(--tw-text-opacity, 1));font-size:.9rem}.automaton-graph{opacity:0;transition:opacity .22s ease}.automaton-graph polygon:first-child{fill:transparent}.automaton-node{cursor:pointer;ellipse{transition:fill .16s ease,stroke .16s ease,stroke-width .16s ease,opacity .16s ease;stroke:var(--edge-color)}text{fill:currentcolor;transition:fill 90ms ease,opacity .12s ease}&.automaton-node-start{ellipse:first-of-type{stroke:var(--blue);stroke-width:2.5}}&.automaton-node-accepting{ellipse{stroke:var(--edge-color)}ellipse:last-of-type{stroke:var(--edge-active-label-color)}}&:hover,&.is-linked,&.is-active{ellipse:first-of-type{fill:#fef3c7}text{fill:#000!important}}&.is-linked{ellipse:first-of-type{stroke:var(--pink)}ellipse{stroke:1.5}}&:hover,&.is-active{ellipse:first-of-type{stroke:var(--orange)}ellipse{stroke-width:1.75}}&.is-muted{ellipse,text{opacity:var(--muted-opacity)}}}.automaton-edge{cursor:pointer;path,polygon,text{transition:stroke .16s ease,fill .16s ease,stroke-width .16s ease,opacity .16s ease}path,polygon{stroke:var(--edge-color)}text{fill:var(--edge-label-color)}&.is-active,&.is-hover{path,polygon{stroke:#ea580c;stroke-width:2.5}polygon{fill:#ea580c}text{fill:var(--edge-active-label-color);font-weight:700}}&.is-muted{path,polygon,text{opacity:var(--muted-opacity)}}}a.default{width:-moz-fit-content;width:fit-content;white-space:normal;border-radius:.375rem;font-weight:500;color:hsl(var(--primary-600));text-decoration-line:underline;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.1s}a.default:hover{color:hsl(var(--primary-400) / .9);text-decoration-thickness:2px}@keyframes spin{to{transform:rotate(360deg)}}.spinner{transform-origin:center;animation:spin 1s linear infinite}
