:root{--bg:#f4f7f7;--surface:#fff;--surface-2:#ecf2f2;--surface-inset:#f7fafa;--text:#0f1a1c;--text-2:#3b4a4e;--muted:#5f7276;--border:#d8e2e3;--border-strong:#b2c2c4;--accent:#0e6f79;--accent-hover:#0a565e;--accent-fg:#fff;--accent-soft:#e2f0f1;--danger:#b3261e;--success:#1f6f4a;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace;--s1:4px;--s2:8px;--s3:12px;--s4:16px;--s5:24px;--s6:32px;--s7:48px;--s8:64px;--w-prose:72ch;--w-tool:1080px;--w-directory:1400px;--w-shell:var(--w-directory);--gutter:var(--s6);--fs-display:clamp(2rem, 1.35rem + 2.1vw, 3.1rem);--fs-h1:clamp(1.5rem, 1.28rem + .7vw, 1.95rem);--fs-h2:1.3rem;--fs-h3:1.05rem;--fs-card:1rem;--fs-body:1rem;--fs-sm:.9375rem;--fs-xs:.8125rem;--fs-result:clamp(1.9rem, 1.5rem + 1.4vw, 2.5rem);--lh-tight:1.15;--lh-heading:1.25;--lh-body:1.6;--lh-prose:1.7;--dur-fast:.11s;--dur:.18s;--dur-slow:.26s;--ease:cubic-bezier(.32, .72, 0, 1);--r-sm:6px;--r:10px;--r-lg:14px;--r-xl:20px;--tap:44px;--shadow:0 1px 2px #0f1a1c0a, 0 12px 28px -20px #0f1a1c59;--ring:3px;--grad-fg:#fff;--grad-teal:linear-gradient(135deg, #0a5b64 0%, #12808c 100%);--grad-indigo:linear-gradient(135deg, #2f3d9e 0%, #5566d6 100%);--grad-plum:linear-gradient(135deg, #6b2f8a 0%, #9b4dc4 100%);--grad-amber:linear-gradient(135deg, #8a4712 0%, #a85a17 100%);--grad-rose:linear-gradient(135deg, #8c2650 0%, #c94070 100%);--grad-green:linear-gradient(135deg, #14563a 0%, #1f7a4d 100%);--grad-cyan:linear-gradient(135deg, #0a5566 0%, #0f7c93 100%);--grad-slate:linear-gradient(135deg, #33415c 0%, #56698c 100%);--grad-crimson:linear-gradient(135deg, #7a1f2f 0%, #bd3049 100%);--grad-rust:linear-gradient(135deg, #6e3113 0%, #bc5723 100%);--grad-magenta:linear-gradient(135deg, #6b1d49 0%, #b3357c 100%);--grad-olive:linear-gradient(135deg, #3d4611 0%, #6b7a1f 100%);--cat-teal:#12808c;--cat-indigo:#4457c4;--cat-plum:#8a3fb0;--cat-amber:#96500f;--cat-rose:#b8385f;--cat-green:#1f7a4d;--cat-cyan:#0f7c93;--cat-slate:#4b5d80;--cat-crimson:#b02b42;--cat-rust:#a94c1e;--cat-magenta:#a32f72;--cat-olive:#5f6d1b;--series-1:#0891b2;--series-2:#b45309;--series-3:#3b5bdb;--series-4:#b5179e;--series-5:#15803d;--series-other:#6b7d80;--series-grid:#e4ecec;--rail-w:256px;--rail-w-folded:60px;--rail-bg:#151b26;--rail-bg-2:#1e2733;--rail-text:#e8eef5;--rail-muted:#8494a8;--rail-accent:#5fd0da;--rail-edge:#ffffff17;--shadow-card:0 1px 2px #0f1a1c0d, 0 18px 40px -24px #0f1a1c73}@media (prefers-color-scheme:dark){:root:not([data-theme=light]){--bg:#0d1315;--surface:#141c1f;--surface-2:#1c262a;--surface-inset:#101819;--text:#e9efef;--text-2:#c2cfd1;--muted:#90a2a6;--border:#2a383c;--border-strong:#3d4e52;--accent:#4fc3ce;--accent-hover:#74d5de;--accent-fg:#05171a;--accent-soft:#12292d;--danger:#e0776c;--success:#6fbf95;--shadow:0 1px 2px #0006, 0 12px 28px -20px #000c;--cat-teal:#3fb3c0;--cat-indigo:#8b98ee;--cat-plum:#c48fe0;--cat-amber:#d9903f;--cat-rose:#ef7ba0;--cat-green:#5fbe8a;--cat-cyan:#46b8d0;--cat-slate:#94a6c8;--cat-crimson:#ef7583;--cat-rust:#e0894f;--cat-magenta:#e578b0;--cat-olive:#a8b84e;--series-1:#109cb0;--series-2:#cf6f11;--series-3:#5573e6;--series-4:#cc3d97;--series-5:#2f9e52;--series-other:#7c8f92;--series-grid:#24322f;--shadow-card:0 1px 2px #00000073, 0 18px 40px -24px #000000d9}}:root[data-theme=dark]{--bg:#0d1315;--surface:#141c1f;--surface-2:#1c262a;--surface-inset:#101819;--text:#e9efef;--text-2:#c2cfd1;--muted:#90a2a6;--border:#2a383c;--border-strong:#3d4e52;--accent:#4fc3ce;--accent-hover:#74d5de;--accent-fg:#05171a;--accent-soft:#12292d;--danger:#e0776c;--success:#6fbf95;--shadow:0 1px 2px #0006, 0 12px 28px -20px #000c;--cat-teal:#3fb3c0;--cat-indigo:#8b98ee;--cat-plum:#c48fe0;--cat-amber:#d9903f;--cat-rose:#ef7ba0;--cat-green:#5fbe8a;--cat-cyan:#46b8d0;--cat-slate:#94a6c8;--cat-crimson:#ef7583;--cat-rust:#e0894f;--cat-magenta:#e578b0;--cat-olive:#a8b84e;--series-1:#109cb0;--series-2:#cf6f11;--series-3:#5573e6;--series-4:#cc3d97;--series-5:#2f9e52;--series-other:#7c8f92;--series-grid:#24322f;--shadow-card:0 1px 2px #00000073, 0 18px 40px -24px #000000d9}
*,:before,:after{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{background-color:var(--bg);color:var(--text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;margin:0;font-size:16px;line-height:1.55}h1,h2,h3{letter-spacing:-.02em;text-wrap:balance;margin:0;line-height:1.2}h1{font-size:var(--fs-h1);font-weight:700}h2{font-size:var(--fs-h2);font-weight:650}h3{font-size:var(--fs-h3);font-weight:650}p{margin:0}a{color:var(--accent-hover);text-underline-offset:2px}code,pre{font-family:var(--font-mono)}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;padding:0;position:absolute;overflow:hidden}:focus-visible{outline:var(--ring) solid var(--accent);outline-offset:2px;border-radius:var(--r-sm)}input,select,textarea,button{font:inherit;color:inherit}input:not([type=button],[type=submit],[type=reset],[type=image],[type=checkbox],[type=radio],[type=range],[type=color],[type=file]),select,textarea{width:100%;min-height:var(--tap);padding:0 var(--s3);background-color:var(--surface);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--r-sm);transition:border-color .15s,box-shadow .15s}input:-webkit-autofill{-webkit-text-fill-color:var(--text);-webkit-box-shadow:0 0 0 1000px var(--surface) inset;box-shadow:0 0 0 1000px var(--surface) inset;caret-color:var(--text)}input:-webkit-autofill:hover{-webkit-text-fill-color:var(--text);-webkit-box-shadow:0 0 0 1000px var(--surface) inset;box-shadow:0 0 0 1000px var(--surface) inset;caret-color:var(--text)}input:-webkit-autofill:focus{-webkit-text-fill-color:var(--text);-webkit-box-shadow:0 0 0 1000px var(--surface) inset;box-shadow:0 0 0 1000px var(--surface) inset;caret-color:var(--text)}input:-webkit-autofill:active{-webkit-text-fill-color:var(--text);-webkit-box-shadow:0 0 0 1000px var(--surface) inset;box-shadow:0 0 0 1000px var(--surface) inset;caret-color:var(--text)}textarea{padding:var(--s3);resize:vertical;line-height:1.6}input:hover,select:hover,textarea:hover{border-color:var(--accent)}input:focus-visible,select:focus-visible,textarea:focus-visible{border-color:var(--accent);outline-offset:0}input::placeholder,textarea::placeholder{color:var(--muted)}select{appearance:none;padding-right:var(--s6);cursor:pointer;background-image:linear-gradient(45deg,#0000 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,#0000 50%);background-position:calc(100% - 19px) calc(50% + 2px),calc(100% - 14px) calc(50% + 2px);background-repeat:no-repeat;background-size:5px 5px,5px 5px}input[type=checkbox]{width:20px;height:20px;min-height:0;accent-color:var(--accent);cursor:pointer}label{font-size:var(--fs-sm);color:var(--text-2);font-weight:550}button{min-height:var(--tap);padding:0 var(--s4);background-color:var(--surface);color:var(--text);border:1px solid var(--border-strong);border-radius:var(--r-sm);cursor:pointer;font-weight:550;transition:background-color .15s,border-color .15s,transform 50ms}button:hover{background-color:var(--surface-2);border-color:var(--accent)}button:active{transform:translateY(1px)}.form-group,.input-group,.input-container{gap:var(--s2);flex-direction:column;display:flex}.result,.result-container{padding:var(--s4);background-color:var(--accent-soft);border:1px solid var(--border);border-radius:var(--r);gap:var(--s1);flex-direction:column;display:flex}.result h2,.result h3,.result-container h2,.result-container h3{letter-spacing:.08em;text-transform:uppercase;color:var(--muted);font-size:.78rem;font-weight:650}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important}}@media (max-width:900px),(pointer:coarse),(hover:none){input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),select,textarea{font-size:16px!important}input:not([type=checkbox]):not([type=radio]):not([type=range]):not([type=color]),select,textarea,button{min-height:var(--tap)}}
.tk-tool{width:100%;padding:var(--s5);background-color:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);box-shadow:var(--shadow);gap:var(--s4);flex-direction:column;margin:0 auto;display:flex}.tk-fields{gap:var(--s4) var(--s3);grid-template-columns:repeat(auto-fit,minmax(min(100%,180px),1fr));align-items:end;display:grid}.tk-field{gap:var(--s2);flex-direction:column;min-width:0;display:flex}.tk-field input,.tk-field select{font-variant-numeric:tabular-nums}.tk-input-suffix{align-items:center;display:flex;position:relative}.tk-input-suffix input{padding-right:38px}.tk-suffix{right:var(--s3);color:var(--muted);pointer-events:none;font-size:.85rem;font-weight:600;position:absolute}.tk-hint{color:var(--muted);font-size:.78rem;line-height:1.45}.result-good{background-color:var(--surface-2);border-left:3px solid var(--success)}.result-bad{background-color:var(--surface-2);border-left:3px solid var(--danger)}.result-warn{background-color:var(--surface-2);border-left:3px solid var(--accent)}.tk-headline{font-variant-numeric:tabular-nums;letter-spacing:-.03em;color:var(--text);font-size:clamp(1.8rem,5vw,2.2rem);font-weight:700}.tk-result-hint{color:var(--text-2);font-size:.88rem}.tk-error{color:var(--danger);font-size:.95rem;font-weight:550}.tk-status{color:var(--text-2);font-size:.85rem}.tk-empty{color:var(--muted);font-size:.95rem}.tk-breakdown{gap:var(--s1);margin:var(--s2) 0 0;padding:var(--s3) 0 0;border-top:1px solid var(--border);flex-direction:column;list-style:none;display:flex}.tk-breakdown li{justify-content:space-between;gap:var(--s1) var(--s3);color:var(--text-2);font-variant-numeric:tabular-nums;flex-wrap:wrap;font-size:.88rem;display:flex}.tk-stats{gap:var(--s2);grid-template-columns:repeat(auto-fit,minmax(132px,1fr));display:grid}.tk-stats>div{padding:var(--s3);background-color:var(--surface-inset);border:1px solid var(--border);border-radius:var(--r);flex-direction:column;gap:2px;display:flex}.tk-stats .k{letter-spacing:.04em;color:var(--muted);font-size:.72rem;font-weight:600}.tk-stats .v{font-variant-numeric:tabular-nums;color:var(--text);font-size:1.05rem;font-weight:650}.tk-note{padding:var(--s3) var(--s4);border-radius:var(--r-sm);font-size:.85rem;line-height:1.5}.tk-note-info{background-color:var(--surface-inset);border-left:3px solid var(--accent);color:var(--text-2)}.tk-note-warn{background-color:var(--surface-2);border-left:3px solid var(--danger);color:var(--text-2)}.tk-note-good{background-color:var(--surface-2);border-left:3px solid var(--success);color:var(--text-2)}.tk-head-controls{align-items:center;gap:var(--s2);flex-wrap:wrap;display:flex}.tk-currency select{min-height:34px;padding:0 var(--s2);max-width:190px;font-size:.85rem;font-weight:600}.tk-head{justify-content:space-between;align-items:center;gap:var(--s3);flex-wrap:wrap;display:flex}.tk-head h1{margin:0}.tk-mode{border:1px solid var(--border);border-radius:var(--r-sm);background-color:var(--surface-inset);gap:0;padding:3px;display:inline-flex}.tk-mode-option{min-height:34px;padding:0 var(--s4);border-radius:calc(var(--r-sm) - 2px);color:var(--muted);cursor:pointer;align-items:center;font-size:.85rem;font-weight:600;transition:background-color .15s,color .15s;display:flex}.tk-mode-option input{clip:rect(0 0 0 0);white-space:nowrap;border:0;width:1px;height:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}.tk-mode-option:hover{color:var(--text-2)}.tk-mode-option:has(input:checked){background-color:var(--surface);border:1px solid var(--border);color:var(--text)}.tk-mode-option:has(input:focus-visible){outline:var(--ring) solid var(--accent);outline-offset:1px}.tk-group{padding-top:var(--s2);border-top:1px solid var(--border);letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-size:.78rem;font-weight:650}.tk-actions{gap:var(--s2);margin-top:var(--s3);flex-wrap:wrap;display:flex}.tk-action{min-height:38px;padding:0 var(--s3);font-size:.85rem}.tk-action:disabled{opacity:.5;cursor:default}.tk-action:disabled:hover{background-color:var(--surface);border-color:var(--border-strong)}.tk-presets{gap:var(--s2);flex-direction:column;display:flex}.tk-presets-label{letter-spacing:.04em;text-transform:uppercase;color:var(--muted);font-size:.72rem;font-weight:600}.tk-presets-row{gap:var(--s2);flex-wrap:wrap;display:flex}.tk-preset{min-height:34px;padding:0 var(--s3);color:var(--text-2);border-radius:999px;font-size:.82rem;font-weight:550}.tk-working{margin-top:var(--s3);padding-top:var(--s3);border-top:1px solid var(--border)}.tk-working summary{color:var(--text-2);cursor:pointer;font-size:.85rem;font-weight:600}.tk-working summary:focus-visible{outline:var(--ring) solid var(--accent);outline-offset:2px}.tk-working ul{gap:var(--s2);margin:var(--s3) 0 0;flex-direction:column;padding:0;list-style:none;display:flex}.tk-working li{justify-content:space-between;gap:var(--s2) var(--s3);color:var(--text-2);font-variant-numeric:tabular-nums;flex-wrap:wrap;font-size:.82rem;display:flex}.tk-working li>span:first-child{color:var(--text);font-weight:600}.tk-choice{gap:var(--s2);grid-template-columns:repeat(auto-fit,minmax(160px,1fr));display:grid}.tk-choice button[aria-pressed=true]{background-color:var(--accent);border-color:var(--accent);color:var(--accent-fg);font-weight:650}.tk-choice button[aria-pressed=true]:hover{background-color:var(--accent-hover);border-color:var(--accent-hover)}.tk-choice-compact{grid-template-columns:repeat(auto-fit,minmax(140px,1fr))}.tk-choice-compact button{min-height:40px;padding:0 var(--s2);font-size:.85rem}.tk-swap{min-height:38px;padding:0 var(--s3);border-color:var(--border);color:var(--text-2);background-color:#0000;align-self:flex-start;font-size:.85rem}.tk-option{align-items:center;gap:var(--s2);min-height:var(--tap);padding:0 var(--s3);background-color:var(--surface-inset);border:1px solid var(--border);border-radius:var(--r-sm);display:flex}.tk-option label{cursor:pointer;flex:1}@media (max-width:900px),(pointer:coarse),(hover:none){.tk-preset,.tk-action,.tk-mode-option,.tk-currency select{min-height:var(--tap)}.tk-currency select{font-size:16px}.tk-presets,.tk-actions{gap:var(--s2)}}
.ad-rail{z-index:5;pointer-events:none;justify-content:center;width:160px;display:flex;position:fixed;top:0;bottom:0}.ad-rail--left{right:calc(50% + 560px + var(--s5));left:auto}.ad-rail--right{left:calc(50% + 560px + var(--s5));right:auto}.ad-rail__sticky{pointer-events:auto;align-self:flex-start;width:160px;position:sticky;top:84px}.ad-rail .ad-slot{width:160px;margin:0}@media (max-width:1539px){.ad-rail{display:none}}

.App{flex-direction:column;min-height:100vh;display:flex}.App-header{z-index:30;background-color:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0}.header-inner,.App-body,.footer-inner{width:100%;max-width:var(--w-shell);padding-inline:var(--gutter);margin-inline:auto}.header-inner{align-items:center;gap:var(--s3);padding-block:var(--s3);display:flex}.App-header .brand{align-items:center;gap:var(--s3);letter-spacing:-.015em;color:var(--text);padding:var(--s1) 0;flex:none;font-size:1rem;font-weight:650;text-decoration:none;display:flex}.App-header .brand:before{content:"F";background-color:var(--accent);width:22px;height:22px;color:var(--accent-fg);border-radius:5px;flex:none;place-items:center;padding-bottom:1px;font-size:13px;font-weight:700;line-height:1;display:grid}.header-nav{flex:auto;justify-content:flex-start;min-width:0;display:flex}.App-body{align-items:flex-start;gap:var(--s6);flex:1;display:flex;position:relative}.App{padding-left:var(--rail-w);transition:padding-left .16s}html[data-rail=folded]{--rail-w:var(--rail-w-folded)}@media (prefers-reduced-motion:reduce){.App{transition:none}}.App-main{min-width:0;max-width:var(--w-content,var(--w-directory));padding:0 0 var(--s8);flex:1}.App-main:has(>.page){--w-content:var(--w-prose)}.App-main:has(>.tool-container){--w-content:var(--w-tool)}.header-spacer{flex:1}.tool-container{width:100%}.App-footer{border-top:1px solid var(--border)}.footer-inner{justify-content:space-between;align-items:center;gap:var(--s3) var(--s5);padding-block:var(--s6);font-size:var(--fs-sm);color:var(--muted);flex-wrap:wrap;display:flex}.skip-link{z-index:100;padding:var(--s3) var(--s4);background-color:var(--surface);border:1px solid var(--accent);border-radius:var(--r-sm);color:var(--text);text-decoration:none;position:absolute;left:-9999px}.skip-link:focus{left:var(--s4);top:var(--s3)}.tool-loading{padding:var(--s7) 0;color:var(--muted)}.not-found{gap:var(--s3);max-width:560px;margin:var(--s7) auto;padding:var(--s6);background-color:var(--surface);border:1px solid var(--border);border-radius:var(--r-lg);flex-direction:column;display:flex}.not-found h1{font-size:1.4rem}.not-found p{color:var(--text-2)}@media (max-width:1100px){:root{--gutter:var(--s5)}}@media (max-width:900px){.App{padding-left:0}.App-body{display:block}.App-main{--w-content:none;max-width:none}}@media (max-width:640px){:root{--gutter:var(--s4)}.App-main{padding-bottom:var(--s7)}.footer-inner{padding-block:var(--s5)}}.App-main>.tool-container{margin-top:var(--s5)}:is(.App-main:has(.json-formatter),.App-main:has(.sql-formatter),.App-main:has(.yaml-json),.App-main:has(.text-diff),.App-main:has(.regex-tester)){--w-content:var(--w-directory)}.footer-links{gap:var(--s2) var(--s4);flex-wrap:wrap;display:flex}.footer-links a{color:var(--muted);text-decoration:none}.footer-links a:hover{color:var(--text);text-decoration:underline}.App.is-owner .header-inner,.App.is-owner .App-body,.App.is-owner .footer-inner,.App.is-owner .App-main{max-width:none}.App-header .search-trigger{justify-content:flex-start;gap:var(--s3);max-width:420px;height:38px;padding-inline:var(--s3);border-radius:var(--r-sm);background-color:var(--surface-inset);border:1px solid var(--border);color:var(--muted);transition:border-color var(--dur-fast) var(--ease), background-color var(--dur-fast) var(--ease);flex:auto}.App-header .search-trigger:hover{border-color:var(--border-strong);background-color:var(--surface)}.App-header .search-trigger .label{text-align:left;font-size:var(--fs-sm);flex:1}.App-header .search-trigger kbd{flex:none}@media (max-width:720px){.App-header .search-trigger{max-width:none;width:var(--tap);flex:none;justify-content:center;padding-inline:0}.App-header .search-trigger .label,.App-header .search-trigger kbd{display:none}}@media (max-width:420px){.header-inner{gap:var(--s2)}.App-header .brand{white-space:nowrap;text-overflow:ellipsis;flex:0 auto;min-width:0;overflow:hidden}.sidebar-toggle{width:var(--tap);justify-content:center;gap:0;padding-inline:0}.sidebar-toggle span{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}}@media (max-width:900px),(pointer:coarse),(hover:none){.footer-links{gap:var(--s1) var(--s2)}.footer-links a{min-height:var(--tap);padding-inline:var(--s2);margin-inline:calc(var(--s2) * -1);align-items:center;display:inline-flex}}
.theme-switcher{align-items:center;gap:var(--s2);min-height:40px;padding:0 var(--s3);border:1px solid var(--border);color:var(--text-2);background-color:#0000;border-radius:999px;font-size:.85rem;font-weight:550;display:inline-flex}.theme-switcher:hover{background-color:var(--surface-2);color:var(--text)}.theme-switcher svg{flex:none;width:16px;height:16px}@media (max-width:560px){.theme-switcher__face>span{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.theme-switcher{justify-content:center;width:40px;padding:0}}.theme-switcher__face{align-items:center;gap:var(--s2);display:inline-flex}.theme-switcher__face[data-when=dark]{display:none}@media (prefers-color-scheme:dark){:root:not([data-theme=light]) .theme-switcher__face[data-when=light]{display:none}:root:not([data-theme=light]) .theme-switcher__face[data-when=dark]{display:inline-flex}}:root[data-theme=light] .theme-switcher__face[data-when=light]{display:inline-flex}:root[data-theme=light] .theme-switcher__face[data-when=dark],:root[data-theme=dark] .theme-switcher__face[data-when=light]{display:none}:root[data-theme=dark] .theme-switcher__face[data-when=dark]{display:inline-flex}
