.jv-node[data-astro-cid-f5qttuxs]{cursor:pointer;user-select:none}.jv-node[data-astro-cid-f5qttuxs]:hover .jv-key[data-astro-cid-f5qttuxs]{color:var(--color-accent)}.jv-key[data-astro-cid-f5qttuxs]{color:var(--color-accent-2)}.jv-str[data-astro-cid-f5qttuxs]{color:var(--color-signal)}.jv-num[data-astro-cid-f5qttuxs]{color:var(--color-accent)}.jv-bool[data-astro-cid-f5qttuxs]{color:#ff9f4b}.jv-null[data-astro-cid-f5qttuxs]{color:var(--color-alert)}.jv-children[data-astro-cid-f5qttuxs]{padding-left:18px;border-left:1px solid var(--color-border);margin-left:4px}.jv-toggle[data-astro-cid-f5qttuxs]{color:var(--color-ink-ghost);font-size:.65rem;margin-right:4px;display:inline-block;width:10px}#md-preview h1,#md-preview h2,#md-preview h3,#md-preview h4{color:var(--color-accent);margin:.8em 0 .3em}#md-preview p{margin:.5em 0}#md-preview code{background:var(--color-surface-2);padding:1px 5px;border-radius:3px;font-family:var(--font-mono);font-size:.85em}#md-preview pre{background:var(--color-surface-2);padding:12px;border-radius:4px;overflow-x:auto}#md-preview pre code{background:none;padding:0}#md-preview a{color:var(--color-accent)}#md-preview blockquote{border-left:3px solid var(--color-accent);margin:8px 0;padding:4px 12px;color:var(--color-ink-ghost)}#md-preview ul,#md-preview ol{padding-left:20px;margin:.5em 0}#md-preview hr{border:none;border-top:1px solid var(--color-border);margin:16px 0}#md-preview table{border-collapse:collapse;width:100%}#md-preview th,#md-preview td{border:1px solid var(--color-border);padding:4px 8px}#md-preview th{background:var(--color-surface-2)}.td-add{background:#34d39933;color:#34d399}.td-del{background:#f8717133;color:#f87171;text-decoration:line-through}.td-eq{color:var(--color-ink-ghost)}.ts-credit{display:flex;align-items:center;gap:.375rem;margin-top:12px;padding:6px 0 2px;border-top:1px solid var(--color-border);flex-wrap:wrap}.ts-credit-text{font-family:var(--font-mono);font-size:.6rem;color:var(--color-ink-ghost);text-transform:uppercase;letter-spacing:.06em}.ts-credit-link{font-family:var(--font-mono);font-size:.6rem;color:var(--color-accent);text-decoration:none;text-transform:uppercase;letter-spacing:.06em}.ts-credit-link:hover{text-decoration:underline}.ts-credit-sep{font-family:var(--font-mono);font-size:.6rem;color:var(--color-border)}.ts-credit-cta{font-family:var(--font-mono);font-size:.6rem;color:var(--color-ink-ghost);text-decoration:none;text-transform:uppercase;letter-spacing:.06em;transition:color .12s}.ts-credit-cta:hover{color:var(--color-accent)}.ts-watermark{position:fixed;bottom:30px;right:18px;width:140px;height:auto;color:var(--color-accent);opacity:.07;pointer-events:none;z-index:0;filter:drop-shadow(0 0 8px var(--color-accent));animation:ts-watermark-pulse 5s ease-in-out infinite}@keyframes ts-watermark-pulse{0%,to{opacity:.05;filter:drop-shadow(0 0 6px var(--color-accent))}50%{opacity:.12;filter:drop-shadow(0 0 14px var(--color-accent))}}@media(max-width:480px){.ts-watermark{display:none}}@media(prefers-reduced-motion:reduce){.ts-credit-cta{transition:none}.ts-watermark{animation:none;opacity:.06}}.mobile-topbar{display:none}html.in-iframe .mobile-topbar{display:none!important}@media(max-width:768px){html:not(.in-iframe) .mobile-topbar{display:flex;align-items:center;gap:.75rem;padding:.5rem .75rem;background:var(--color-surface);border-bottom:1px solid var(--color-border);position:sticky;top:0;z-index:10;min-height:48px}.mobile-back{display:inline-flex;align-items:center;color:var(--color-accent);font-family:var(--font-mono);font-size:.85rem;text-decoration:none;padding:.5rem .625rem;border-radius:3px;min-height:44px;letter-spacing:.04em;flex-shrink:0}.mobile-back:hover{background:color-mix(in srgb,var(--color-accent) 10%,transparent)}.mobile-back:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}.mobile-tool-title{font-family:var(--font-mono);font-size:.85rem;color:var(--color-ink);letter-spacing:.02em;flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}body{padding:0}html:not(.in-iframe) body>.tool{padding:.875rem .875rem 1rem}html.in-iframe body{padding:10px 12px 16px}input[type=text],input[type=number],input[type=search],input[type=email],input[type=url],input[type=password],input[type=tel],input[type=file],select,textarea{font-size:16px}.grid-2,.grid-3{grid-template-columns:1fr}.out{overflow-wrap:anywhere;max-width:100%}.tabs{overflow-x:auto;flex-wrap:nowrap}.tab-btn{flex-shrink:0}.tbl-wrap{max-width:100%;overflow-x:auto}.ts-credit{padding-left:.875rem;padding-right:.875rem}.btn{min-height:38px;padding:.5rem .875rem;font-size:.75rem}.ts-credit-text,.ts-credit-link,.ts-credit-cta,.ts-credit-sep{font-size:.65rem}.stat-card{padding:8px}.stat-val{font-size:1rem;word-break:break-word}.out,.out.code,.mono{overflow-wrap:anywhere;word-break:break-word}}.out:has(.copy-btn){padding-right:56px}html,body{max-width:100%}body>.tool{max-width:100%}*,*:before,*:after{box-sizing:border-box}body{background:var(--color-bg);color:var(--color-ink);font-family:var(--font-body);font-size:.875rem;line-height:1.5;margin:0;padding:10px 12px 16px;min-height:100vh;overflow-y:auto;-webkit-font-smoothing:antialiased}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:var(--color-bg)}::-webkit-scrollbar-thumb{background:var(--color-border);border-radius:3px}::-webkit-scrollbar-thumb:hover{background:var(--color-ink-ghost)}.tool{display:flex;flex-direction:column;gap:8px}.sect{display:flex;flex-direction:column;gap:4px}.lbl{font-family:var(--font-mono);font-size:.65rem;text-transform:uppercase;letter-spacing:.1em;color:var(--color-ink-dim);font-weight:500}input[type=text],input[type=number],input[type=search],input[type=email],input[type=url],input[type=password],input[type=file],select,textarea{width:100%;background:var(--color-surface);border:1px solid var(--color-border);color:var(--color-ink);font-family:var(--font-mono);font-size:.8125rem;padding:6px 8px;border-radius:3px;outline:none;resize:vertical;transition:border-color .15s}input:focus,select:focus,textarea:focus{border-color:var(--color-accent)}input[type=file]{cursor:pointer;font-family:var(--font-body);font-size:.8rem}select option{background:var(--color-surface-2)}input[type=range]{width:100%;accent-color:var(--color-accent);background:none;border:none;padding:0}input[type=color]{width:40px;height:28px;padding:2px;cursor:pointer;border-radius:3px}input[type=checkbox]{accent-color:var(--color-accent);width:14px;height:14px;cursor:pointer}.out{background:var(--color-surface-2);border:1px solid var(--color-border);border-radius:3px;font-family:var(--font-mono);font-size:.8125rem;padding:8px 10px;white-space:pre-wrap;word-break:break-all;min-height:40px;position:relative;color:var(--color-ink);line-height:1.55}.out.scroll{max-height:280px;overflow-y:auto}.out.big{min-height:120px}.out.code{color:var(--color-signal)}.out:empty:before{content:attr(data-placeholder);color:var(--color-ink-ghost);font-style:normal}.btn{background:none;border:1px solid var(--color-accent);color:var(--color-accent);font-family:var(--font-mono);font-size:.6875rem;padding:5px 14px;border-radius:3px;cursor:pointer;text-transform:uppercase;letter-spacing:.08em;white-space:nowrap;transition:background .12s,color .12s;flex-shrink:0}.btn:hover{background:color-mix(in srgb,var(--color-accent) 12%,transparent)}.btn:active{background:color-mix(in srgb,var(--color-accent) 20%,transparent)}.btn-ghost{border-color:var(--color-border);color:var(--color-ink-dim)}.btn-ghost:hover{border-color:var(--color-ink-ghost);color:var(--color-ink)}.btn-alert{border-color:var(--color-alert);color:var(--color-alert)}.btn-alert:hover{background:color-mix(in srgb,var(--color-alert) 12%,transparent)}.btn-signal{border-color:var(--color-signal);color:var(--color-signal)}.btn-signal:hover{background:color-mix(in srgb,var(--color-signal) 12%,transparent)}.copy-btn{position:absolute;top:5px;right:5px;background:var(--color-surface-2);border:1px solid var(--color-border);color:var(--color-ink-ghost);font-family:var(--font-mono);font-size:.55rem;padding:2px 7px;border-radius:2px;cursor:pointer;text-transform:uppercase;letter-spacing:.06em;transition:border-color .12s,color .12s}.copy-btn:hover{border-color:var(--color-accent);color:var(--color-accent)}.row{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.row-top{display:flex;gap:8px;align-items:flex-start;flex-wrap:wrap}.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:8px}.grid-3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:8px}.grid-auto{display:grid;grid-template-columns:repeat(auto-fill,minmax(120px,1fr));gap:8px}.flex1{flex:1;min-width:0}.err{color:var(--color-alert);font-family:var(--font-mono);font-size:.75rem;display:none}.err.show{display:block}.status{font-family:var(--font-mono);font-size:.75rem;color:var(--color-ink-ghost)}.divider{border:none;border-top:1px solid var(--color-border);margin:4px 0}.tbl{width:100%;border-collapse:collapse;font-size:.8125rem}.tbl th{text-align:left;font-family:var(--font-mono);font-size:.6rem;text-transform:uppercase;letter-spacing:.1em;color:var(--color-ink-ghost);border-bottom:1px solid var(--color-border);padding:4px 8px;position:sticky;top:0;background:var(--color-bg)}.tbl td{padding:4px 8px;border-bottom:1px solid color-mix(in srgb,var(--color-border) 40%,transparent);vertical-align:top}.tbl tbody tr:hover td{background:var(--color-surface)}.tbl-wrap{overflow-y:auto;max-height:320px;border:1px solid var(--color-border);border-radius:3px}.tag{display:inline-block;font-family:var(--font-mono);font-size:.6rem;padding:1px 6px;border-radius:2px;background:color-mix(in srgb,var(--color-accent) 10%,transparent);color:var(--color-accent);white-space:nowrap}.tag-signal{background:color-mix(in srgb,var(--color-signal) 10%,transparent);color:var(--color-signal)}.tag-alert{background:color-mix(in srgb,var(--color-alert) 12%,transparent);color:var(--color-alert)}.tag-amber{background:color-mix(in srgb,var(--color-accent-2) 12%,transparent);color:var(--color-accent-2)}.tag-ghost{background:color-mix(in srgb,var(--color-border) 50%,transparent);color:var(--color-ink-dim)}.stat-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(90px,1fr));gap:6px}.stat-card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:3px;padding:8px 10px;text-align:center}.stat-val{font-family:var(--font-mono);font-size:1.1rem;color:var(--color-accent);line-height:1.2}.stat-label{font-family:var(--font-mono);font-size:.55rem;text-transform:uppercase;color:var(--color-ink-ghost);letter-spacing:.08em;margin-top:2px}.progress-bar{width:100%;height:5px;background:var(--color-border);border-radius:2px;overflow:hidden}.progress-fill{height:100%;border-radius:2px;transition:width .3s ease,background-color .3s ease}.acc{color:var(--color-accent)}.sig{color:var(--color-signal)}.alt{color:var(--color-alert)}.amb{color:var(--color-accent-2)}.dim{color:var(--color-ink-dim)}.ghost{color:var(--color-ink-ghost)}.mono{font-family:var(--font-mono)}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:4px;padding:10px 12px}.card-accent{border-color:var(--color-accent)}.card-signal{border-color:var(--color-signal)}.card-alert{border-color:var(--color-alert)}.score-wrap{display:flex;align-items:center;gap:12px}.score-num{font-family:var(--font-mono);font-size:2rem;font-weight:700;line-height:1}.tabs{display:flex;gap:0;border-bottom:1px solid var(--color-border);margin-bottom:6px}.tab-btn{font-family:var(--font-mono);font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;padding:5px 12px;background:none;border:none;border-bottom:2px solid transparent;color:var(--color-ink-ghost);cursor:pointer;margin-bottom:-1px}.tab-btn.active{color:var(--color-accent);border-bottom-color:var(--color-accent)}.tab-panel{display:none}.tab-panel.active{display:block}.list{display:flex;flex-direction:column;gap:4px}.list-item{display:flex;align-items:flex-start;gap:8px;padding:5px 8px;background:var(--color-surface);border:1px solid var(--color-border);border-radius:3px;font-size:.8125rem}.check-label{display:flex;align-items:center;gap:6px;cursor:pointer;font-size:.8125rem}.input-group{display:flex;align-items:center;gap:6px}.input-prefix{font-family:var(--font-mono);font-size:.75rem;color:var(--color-ink-ghost);white-space:nowrap;flex-shrink:0}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}@media(max-width:768px){.grid-2,.grid-3{grid-template-columns:1fr}.stat-grid{grid-template-columns:repeat(auto-fill,minmax(110px,1fr))}}
