:root{--bg:#f7f8fa;--surface:#fff;--surface-2:#f2f4f7;--border:#e4e7eb;--border-strong:#c9ced6;--text:#1f2328;--text-dim:#6b7280;--placeholder:#6b7280;--accent:#2f6feb;--accent-text:#fff;--accent-soft:#eaf1fe;--danger:#d1242f;--danger-soft:#fdecee;--ok:#1a7f37;--ok-soft:#e9f6ec;--json-bool:#8250df;--radius:6px;--radius-sm:4px;--font:-apple-system, BlinkMacSystemFont, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif;--mono:ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono", monospace}[data-theme=dark]{--bg:#0d1117;--surface:#161b22;--surface-2:#1c2129;--border:#2d333b;--border-strong:#444c56;--text:#e6edf3;--text-dim:#9099a4;--placeholder:#8b949e;--accent:#58a6ff;--accent-text:#0d1117;--accent-soft:#17253a;--danger:#ff7b72;--danger-soft:#2d1a1c;--ok:#3fb950;--ok-soft:#12261a;--json-bool:#d2a8ff}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;scrollbar-gutter:stable}body{background:var(--bg);color:var(--text);font-family:var(--font);margin:0;font-size:14px;line-height:1.6}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}a,button,input,label,select,textarea{touch-action:manipulation}.site-header{background:var(--surface);border-bottom:1px solid var(--border)}.site-header__inner{align-items:center;gap:20px;max-width:none;margin:0 auto;padding:10px 20px;display:flex}.logo{color:var(--text);align-items:baseline;gap:6px;font-size:16px;font-weight:600;display:flex}.logo:hover{text-decoration:none}.logo__mark{color:var(--accent);font-family:var(--mono)}.spacer{flex:1}.theme-label-dark,[data-theme=dark] .theme-label-light{display:none}[data-theme=dark] .theme-label-dark{display:inline}.tool-nav__inner{gap:18px;display:flex}.tool-nav__item{color:var(--text-dim);white-space:nowrap;border-bottom:2px solid #0000;flex:none;padding:3px 0 1px;font-size:13px;transition:color .15s,background-color .15s,border-color .15s}.tool-nav__item:hover{color:var(--text);text-decoration:none}.tool-nav__item.is-active{color:var(--accent);border-bottom-color:var(--accent);font-weight:500}.tool-nav__group{flex:none;position:relative}.tool-nav__group-btn{color:var(--text);font-family:inherit;font-weight:500;line-height:inherit;cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;border-radius:0}.tool-nav__group-btn:hover{color:var(--accent)}.tool-nav__group.is-active>.tool-nav__group-btn{color:var(--accent);border-bottom-color:var(--accent)}.tool-nav__group.is-open>.tool-nav__group-btn{color:var(--accent)}.tool-nav__sub{z-index:20;background:var(--surface);border:1px solid var(--border);visibility:hidden;opacity:0;min-width:180px;padding:4px 0;transition:opacity .12s,visibility .12s;position:absolute;top:100%;left:0}.tool-nav__group.is-open>.tool-nav__sub{visibility:visible;opacity:1}@media (hover:hover){.tool-nav__group:hover>.tool-nav__sub{visibility:visible;opacity:1}}.tool-nav__sub .tool-nav__item{border-bottom:0;padding:7px 14px;display:block}.tool-nav__sub .tool-nav__item:hover{color:var(--text);background:var(--surface-2)}.tool-nav__sub .tool-nav__item.is-active{color:var(--accent);background:var(--accent-soft);font-weight:500}.site-main{max-width:90%;margin:0 auto;padding:20px 20px 56px}.site-main--full{max-width:none}.page-head{text-align:center;flex-direction:column;align-items:center;gap:2px;max-width:900px;margin:0 auto 16px;display:flex}.page-head h1{margin:0;font-size:14px;font-weight:600}.page-head p{margin:0}.page-head p,.site-footer{color:var(--text-dim);font-size:12px}.site-footer{border-top:1px solid var(--border);text-align:center;max-width:none;margin:0 auto;padding:16px 20px}.search-box{gap:8px;margin:0 0 20px;display:flex}.search-box input{width:auto;color:var(--text);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);outline:none;flex:1;padding:8px 11px;font-family:inherit;font-size:14px}.search-box input:focus{border-color:var(--accent)}.search-box__clear{color:var(--text-dim);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);cursor:pointer;flex:none;padding:0 10px;font-size:16px;line-height:1}.search-box__clear:hover{color:var(--text);border-color:var(--border-strong)}[hidden]{display:none!important}.cat-group+.cat-group{margin-top:22px}.cat-group__head{color:var(--accent);margin:0 0 10px;font-size:14px;font-weight:600}.tool-grid{grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:12px;display:grid}.tool-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:var(--text);flex-direction:column;gap:4px;padding:12px 14px;display:flex}.tool-card:hover{border-color:var(--accent);text-decoration:none}.tool-card:hover .tool-card__name{color:var(--accent)}.tool-card__name{color:var(--text);font-size:13px;font-weight:600}.tool-card__desc{color:var(--placeholder);min-width:0;font-size:12px}.empty{text-align:center;color:var(--text-dim);padding:32px 0}.panel{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);margin-bottom:14px;overflow:hidden}.panel__head{border-bottom:1px solid var(--border);color:var(--text-dim);align-items:center;gap:8px;padding:7px 12px;font-size:13px;display:flex}.panel__title{color:var(--text);font-size:14px;font-weight:600}.panel__body{padding:12px}.panel__head .btn{padding:3px 8px;font-size:12px}.panel__head select{padding:2px 6px;font-size:12px}.split{grid-template-columns:1fr 1fr;gap:14px;display:grid}.split>.panel{margin-bottom:0}.json-view{max-height:66vh;font-family:var(--mono);font-size:13px;line-height:1.7;overflow:auto}.json-empty{color:var(--placeholder);font-size:13px}.j-node{display:block}.j-toggle{cursor:pointer;width:11px;color:var(--text-dim);-webkit-user-select:none;user-select:none;font-size:10px;display:inline-block}.j-node:not(.is-collapsed)>.j-head .j-toggle:before{content:"▾"}.j-node.is-collapsed>.j-head .j-toggle:before{content:"▸"}.j-node .j-fold,.j-node.is-collapsed>.j-children,.j-node.is-collapsed>.j-foot{display:none}.j-node.is-collapsed>.j-head .j-fold{display:inline}.j-children{border-left:1px dashed var(--border);margin-left:5px;padding-left:12px}.alert,.j-row{white-space:pre-wrap;word-break:break-word}.j-key{color:var(--accent)}.j-str{color:var(--ok)}.j-num{color:var(--danger)}.j-bool{color:var(--json-bool)}.j-null,.j-punc{color:var(--text-dim)}.row{flex-wrap:wrap;align-items:center;gap:8px;display:flex}.row+.row{margin-top:10px}.row--fields{gap:24px}.row--fields+.row--fields{margin-top:12px}.field{flex:none;align-items:center;gap:8px;display:flex}.btn{color:var(--text);background:var(--surface);border:1px solid var(--border-strong);border-radius:var(--radius-sm);cursor:pointer;padding:5px 12px;font-family:inherit;font-size:13px}.btn:hover:not(:disabled){border-color:var(--text-dim);background:var(--surface-2)}.btn:disabled{opacity:.45;cursor:not-allowed}.btn--primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text)}.btn--primary:hover:not(:disabled){background:var(--accent);opacity:.88}input[type=date],input[type=datetime-local],input[type=number],input[type=text],select,textarea{width:100%;font-size:13px;font-family:var(--mono);color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-sm);outline:none;padding:8px 10px}input[type=date]:focus,input[type=datetime-local]:focus,input[type=number]:focus,input[type=text]:focus,select:focus,textarea:focus{border-color:var(--accent)}textarea{resize:vertical;tab-size:2;line-height:1.55;display:block}select{font-family:var(--font);cursor:pointer}::placeholder{color:var(--placeholder);opacity:1}input[type=checkbox]{width:auto;accent-color:var(--accent);cursor:pointer;vertical-align:middle;margin:0 5px 0 0}label.inline{cursor:pointer;-webkit-user-select:none;user-select:none}.hint{color:var(--text-dim);font-size:12px}.alert{border-radius:var(--radius-sm);font-size:13px;font-family:var(--mono);margin:10px 0 14px;padding:8px 11px}.alert--error{background:var(--danger-soft);color:var(--danger);border:1px solid var(--danger)}.alert--ok{background:var(--ok-soft);color:var(--ok);border:1px solid var(--ok)}.kv{font-family:var(--mono);grid-template-columns:max-content 1fr;align-items:baseline;gap:5px 14px;font-size:13px;display:grid}.kv__k{color:var(--text-dim);white-space:nowrap}.kv__v,.list-row__title{word-break:break-all}.table-wrap{overflow-x:auto}.table{border-collapse:collapse;width:100%;font-family:var(--mono);font-size:13px}.table td,.table th{text-align:right;white-space:nowrap;border-bottom:1px solid var(--border);padding:5px 10px}.table th{color:var(--text-dim);font-size:12px;font-weight:500}.table td:first-child,.table th:first-child{text-align:left}.table tbody tr:last-child td{border-bottom:0}.drop{text-align:center;color:var(--placeholder);border:1px dashed var(--border-strong);border-radius:var(--radius);cursor:pointer;margin-bottom:14px;padding:18px}.drop.is-over,.drop:hover{border-color:var(--accent);color:var(--accent)}.drop input[type=file]{display:none}.copy-btn.is-done{color:var(--ok);border-color:var(--ok)}input[type=range]{width:150px;accent-color:var(--accent);cursor:pointer;vertical-align:middle}.list{flex-direction:column;display:flex}.list-row{border-bottom:1px solid var(--border);align-items:center;gap:10px;padding:8px 0;display:flex}.list-row:last-child{border-bottom:0}.list-row__main{flex:1;min-width:0}.list-row__title{font-family:var(--mono);line-height:1.45}.list-row__meta{font-family:var(--mono);color:var(--text-dim);margin-top:2px;font-size:12px}.list-row__thumb{-o-object-fit:cover;object-fit:cover;border:1px solid var(--border);background:var(--surface-2);flex:none;width:44px;height:44px}.delta-ok{color:var(--ok)}.delta-bad{color:var(--danger)}.meter{background:var(--surface-2);height:4px;margin-top:6px;overflow:hidden}.meter__fill{height:100%}@media (width<=640px){.site-main{padding:16px 14px 40px}.split{grid-template-columns:1fr}.site-header__inner{gap:10px;padding-left:14px;padding-right:14px}.tool-nav__inner{gap:10px}.tool-nav__item{font-size:12px}.logo{gap:4px;font-size:14px}.site-header .btn{padding:3px 8px;font-size:12px}input[type=date],input[type=datetime-local],input[type=number],input[type=text],select,textarea{font-size:16px}.tool-grid{grid-template-columns:1fr 1fr;gap:10px}.kv{grid-template-columns:1fr;gap:2px 0}.kv__k{margin-top:6px}}
