:root{--color-bg:#f8f9fa;--color-surface:#fff;--color-text:#1a1a2e;--color-text-muted:#6c757d;--color-border:#dee2e6;--color-input-bg:#f0f4ff;--color-value-bg:#f0f1f3;--color-primary:#4361ee;--color-primary-hover:#3a56d4;--color-success:#06d6a0;--color-success-bg:#d1fae5;--color-error:#ef476f;--color-error-bg:#fde8ec;--color-warning:#ffd166;--radius:8px;--radius-lg:12px;--shadow:0 1px 3px #00000014, 0 1px 2px #0000000f;--shadow-lg:0 4px 12px #0000001a;--font-mono:"SF Mono", "Fira Code", "JetBrains Mono", Consolas, monospace;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;--max-width:1400px}@media (prefers-color-scheme:dark){:root{--color-bg:#0f0f1a;--color-surface:#1a1a2e;--color-text:#e8e8f0;--color-text-muted:#9ca3af;--color-border:#2d2d44;--color-input-bg:#16162b;--color-value-bg:#1f1f2e;--color-primary:#6c8aff;--color-primary-hover:#8aa2ff;--color-success:#34d399;--color-success-bg:#064e3b;--color-error:#f87171;--color-error-bg:#450a0a;--shadow:0 1px 3px #0000004d;--shadow-lg:0 4px 12px #0006}}*{box-sizing:border-box;margin:0;padding:0}body{font-family:var(--font-sans);background:var(--color-bg);color:var(--color-text);min-height:100vh;line-height:1.6}.app{max-width:var(--max-width);margin:0 auto;padding:2rem 1.5rem}.header{text-align:center;margin-bottom:2rem}.header h1{letter-spacing:-.025em;font-size:1.75rem;font-weight:700}.subtitle{color:var(--color-text-muted);margin-top:.25rem;font-size:.95rem}.subtitle a{color:var(--color-primary);text-decoration:none}.subtitle a:hover{text-decoration:underline}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow);margin-bottom:1.5rem;padding:1.5rem}.single-column{flex-direction:column;gap:1.5rem;max-width:800px;margin:0 auto;display:flex}.single-column .card{margin-bottom:0}.card h2{margin-bottom:1rem;font-size:1.1rem;font-weight:600}.tabs-row{justify-content:space-between;align-items:center;margin-bottom:1rem;display:flex}.tabs{border:1px solid var(--color-border);border-radius:var(--radius);gap:0;width:fit-content;display:flex;overflow:hidden}.card-header{justify-content:space-between;align-items:center;min-height:2.125rem;margin-bottom:1rem;display:flex}.card-header h2{margin-bottom:0}.card-header-right,.card-header-left{align-items:center;gap:.75rem;display:flex}.clear-btn{border:1px solid var(--color-border);color:var(--color-text-muted);cursor:pointer;background:0 0;border-radius:100px;flex-shrink:0;justify-content:center;align-items:center;padding:.3rem .75rem;font-size:.75rem;font-weight:500;transition:all .15s;display:flex}.clear-btn:hover:not(:disabled){background:var(--color-bg);color:var(--color-text);border-color:var(--color-text-muted)}.clear-btn:disabled{opacity:.4;cursor:default}.card h3{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.05em;margin-bottom:.5rem;font-size:.9rem;font-weight:600}.tab{color:var(--color-text-muted);cursor:pointer;background:0 0;border:none;padding:.5rem 1.25rem;font-size:.875rem;font-weight:500;transition:all .15s}.tab:hover{color:var(--color-text);background:var(--color-bg)}.tab.active{background:var(--color-primary);color:#fff}.input{border:1.5px solid var(--color-border);border-radius:var(--radius);background:var(--color-input-bg);width:100%;color:var(--color-text);padding:.75rem 1rem;font-size:.9rem;transition:border-color .15s,box-shadow .15s}.input:hover{border-color:var(--color-text-muted)}.input:focus{border-color:var(--color-primary);outline:none;box-shadow:0 0 0 3px #4361ee26}.input::placeholder{color:var(--color-text-muted);opacity:.5}.input.mono{font-family:var(--font-mono);font-size:.85rem}label{color:var(--color-text-muted);margin-bottom:.25rem;font-size:.8rem;font-weight:500;display:block}.parts-grid{grid-template-columns:1fr 1fr;gap:.75rem;display:grid}.parts-grid .full-width{grid-column:1/-1}.options-details{margin-top:.75rem}.options-details summary{color:var(--color-text-muted);cursor:pointer;-webkit-user-select:none;user-select:none;padding:.25rem 0;font-size:.85rem;font-weight:500}.options-details summary:hover{color:var(--color-text)}.options-content{flex-direction:column;gap:.75rem;padding:.5rem 0 .75rem;display:flex}.checkbox-label{color:var(--color-text-muted);cursor:pointer;align-items:center;gap:.4rem;font-size:.8rem;font-weight:500;display:flex}.checkbox-label input[type=checkbox]{width:1rem;height:1rem;accent-color:var(--color-primary)}.error-msg{background:var(--color-error-bg);color:var(--color-error);border-radius:var(--radius);font-size:.85rem;font-family:var(--font-mono);white-space:pre-wrap;word-break:break-word;margin-top:.75rem;padding:.625rem .875rem}.parsed-output{border-top:1px solid var(--color-border);margin-top:1rem;padding-top:1rem}.parsed-list{grid-template-columns:repeat(3,1fr);gap:.5rem;font-size:.85rem;display:grid}.parsed-item{border-radius:var(--radius);background:0 0;border:none;flex-direction:row;align-items:center;gap:.5rem;min-width:0;padding:.25rem 0;display:flex}.parsed-item[data-component=hostname]{grid-column:1/3}.parsed-item[data-component=port]{grid-column:3/4}.parsed-item[data-component=pathname],.parsed-item[data-component=search],.parsed-item[data-component=hash]{grid-column:1/-1}.parsed-key{color:var(--color-text-muted);font-weight:500;font-family:var(--font-mono);text-transform:uppercase;letter-spacing:.03em;text-align:right;flex-shrink:0;min-width:5.5rem;font-size:.75rem}.parsed-val{font-family:var(--font-mono);color:var(--color-text);word-break:break-all;background:var(--color-value-bg);border-radius:4px;flex:1;min-width:0;min-height:1.6em;padding:.2rem .5rem;line-height:1.6}.parsed-val:empty:before{content:" "}.match-result{align-items:center;display:flex}.badge{letter-spacing:.01em;border-radius:100px;justify-content:center;align-items:center;gap:.375rem;min-width:7.5rem;padding:.375rem .875rem;font-size:.8rem;font-weight:600;display:inline-flex}.badge.matched{background:var(--color-success);color:#fff}.badge.not-matched{background:var(--color-error);color:#fff}.comparison-groups{border-top:1px dashed var(--color-border);flex-wrap:wrap;gap:.375rem;margin-top:.5rem;padding-top:.5rem;display:flex}.group-item{background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius);font-family:var(--font-mono);align-items:center;gap:.25rem;margin:.125rem .25rem .125rem 0;padding:.25rem .5rem;font-size:.8rem;display:inline-flex}.group-item .key{color:var(--color-primary);font-weight:600}.group-item .sep{color:var(--color-text-muted)}.group-item .value{color:var(--color-text)}.explanation-output{margin-top:1rem}.comparison-list{grid-template-columns:repeat(3,1fr);gap:.75rem;display:grid}.comparison-item[data-component=hostname]{grid-column:1/3}.comparison-item[data-component=port]{grid-column:3/4}.comparison-item[data-component=pathname],.comparison-item[data-component=search],.comparison-item[data-component=hash]{grid-column:1/-1}.comparison-item{border:1px solid var(--color-border);border-radius:var(--radius);padding:.75rem;position:relative}.comparison-item.pass{background-color:color-mix(in srgb, var(--color-success) 12%, transparent);border-color:color-mix(in srgb, var(--color-success) 30%, transparent)}.comparison-item.fail{background-color:color-mix(in srgb, var(--color-error) 12%, transparent);border-color:color-mix(in srgb, var(--color-error) 30%, transparent)}.comparison-item-header{justify-content:space-between;align-items:center;margin-bottom:.5rem;display:flex}.comparison-component{color:var(--color-text-muted);text-transform:uppercase;letter-spacing:.03em;font-size:.8rem;font-weight:600}.comparison-status{font-size:1rem}.comparison-status.pass{color:var(--color-success)}.comparison-status.fail{color:var(--color-error)}.comparison-row{align-items:baseline;gap:.5rem;margin-bottom:.25rem;display:flex}.comparison-row:last-child{margin-bottom:0}.comparison-label{text-transform:uppercase;letter-spacing:.05em;flex-shrink:0;min-width:4rem;font-size:.7rem;font-weight:600}.comparison-label.pattern-label{color:var(--color-primary)}.comparison-label.url-label{color:#e67e22}@media (prefers-color-scheme:dark){.comparison-label.url-label{color:#f0b27a}}.comparison-value{font-family:var(--font-mono);word-break:break-all;border-radius:4px;flex:1;min-width:0;padding:.2rem .5rem;font-size:.82rem;line-height:1.4}.comparison-value:empty:before{content:" "}.comparison-value.pattern-value{color:var(--color-primary);background:#4361ee14}.comparison-value.url-value{color:#c0690e;background:#e67e2214}@media (prefers-color-scheme:dark){.comparison-value.pattern-value{color:var(--color-primary);background:#6c8aff1f}.comparison-value.url-value{color:#f0b27a;background:#f0b27a1f}}.inline-examples{flex-direction:column;gap:.6rem;margin-top:1rem;padding-left:.25rem;display:flex}.example-chip{color:var(--color-primary);font-size:.75rem;font-family:var(--font-mono);cursor:pointer;text-align:left;border:none;border-bottom:1px dashed var(--color-primary);background:0 0;width:fit-content;margin-left:1em;padding:0;transition:all .15s}.example-chip:before{content:""}.inline-examples .example-chip{position:relative}.inline-examples .example-chip:before{content:"•";color:var(--color-text-muted);border-bottom:none;position:absolute;left:-1em}.example-chip:after{content:""}.example-chip:hover{opacity:.8;border-bottom-style:solid}.hidden{display:none!important}.footer{text-align:center;border-top:1px solid var(--color-border);color:var(--color-text-muted);margin-top:2rem;padding-top:1.5rem;font-size:.8rem}.footer a{color:var(--color-primary);text-decoration:none}.footer a:hover{text-decoration:underline}@media (width<=900px){.single-column{max-width:100%}.app{padding:1rem}.header h1{font-size:1.4rem}.parts-grid{grid-template-columns:1fr}.card{padding:1rem}}
