:root{--bg:#f6f7f5;--paper:#fff;--sunken:#f1f3f1;--ink:#1c2421;--muted:#65716c;--line:#e2e6e3;--line-strong:#cdd4d0;--accent:#17704f;--accent-ink:#fff;--wash:#e8f2ec;--danger:#c0392f;--shadow:0 1px 2px #141e190d, 0 4px 16px #141e190d;--shadow-lg:0 12px 48px #141e192e;--mono:ui-monospace, "SFMono-Regular", "JetBrains Mono", Consolas, monospace;--cat-number:#2f62c8;--cat-number-bg:#e8eefb;--cat-text:#7a45c2;--cat-text-bg:#f1eafb;--cat-dev:#a76008;--cat-dev-bg:#fbf0df;--cat-file:#0f7a6d;--cat-file-bg:#e0f3ef;color-scheme:light}@media (prefers-color-scheme:dark){:root{--bg:#111715;--paper:#18201d;--sunken:#141b18;--ink:#e5ece8;--muted:#9aa9a2;--line:#26322d;--line-strong:#34443d;--accent:#7fd1ab;--accent-ink:#0d1f16;--wash:#1d3329;--danger:#ff8a7f;--shadow:0 1px 2px #0000004d;--shadow-lg:0 16px 56px #0000008c;--cat-number:#8fb1f5;--cat-number-bg:#1c2740;--cat-text:#c3a2f2;--cat-text-bg:#2a2140;--cat-dev:#f0bd6d;--cat-dev-bg:#362a17;--cat-file:#7dd8c9;--cat-file-bg:#15322d;color-scheme:dark}}*{box-sizing:border-box}body{background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;line-height:1.65}a{color:inherit;text-decoration:none}a:hover{color:var(--accent)}button,input,select,textarea{font:inherit}button,a,input,select,textarea,label{touch-action:manipulation}button{cursor:pointer}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}kbd{font:500 11px var(--mono);border:1px solid var(--line-strong);color:var(--muted);background:var(--paper);white-space:nowrap;border-bottom-width:2px;border-radius:5px;padding:1px 6px}.site-header{z-index:10;background:color-mix(in srgb, var(--bg) 85%, transparent);backdrop-filter:blur(12px);border-bottom:1px solid var(--line);align-items:center;gap:24px;padding:12px max(24px,50% - 566px);display:flex;position:sticky;top:0}.brand{letter-spacing:-.5px;white-space:nowrap;font-size:20px;font-weight:750}.search-trigger{border:1px solid var(--line);background:var(--paper);width:260px;color:var(--muted);border-radius:8px;align-items:center;gap:8px;margin-left:auto;padding:7px 10px;font-size:14px;font-weight:400;display:flex}.search-trigger:hover{border-color:var(--line-strong)}.search-trigger-text{text-align:left;flex:1}main{max-width:1180px;min-height:75vh;margin:auto;padding:48px 24px 88px}h1{letter-spacing:-.035em;margin:12px 0 14px;font-size:clamp(30px,4.4vw,48px);line-height:1.2}h2{letter-spacing:-.02em;font-size:22px}h3{font-size:17px}p{max-width:64ch}.intro{color:var(--muted);margin:0;font-size:17px}.eyebrow{color:var(--accent);letter-spacing:.08em;margin:0;font-size:13px;font-weight:650}.hero{max-width:820px;margin-bottom:48px}.muted{color:var(--muted)}.sr-only{clip:rect(0, 0, 0, 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.button,button{border:1px solid var(--line-strong);background:var(--paper);color:var(--ink);border-radius:8px;justify-content:center;align-items:center;gap:6px;padding:8px 14px;font-size:14px;font-weight:550;line-height:1.4;display:inline-flex}.button:hover,button:hover{border-color:var(--muted);color:var(--ink)}.primary,.primary:hover{background:var(--accent);color:var(--accent-ink);border-color:var(--accent)}.primary:hover{filter:brightness(1.08)}.ghost{color:var(--muted);background:0 0;border-color:#0000;padding:4px 8px;font-size:13px}.ghost:hover{background:var(--sunken);border-color:#0000}button:disabled{opacity:.5;cursor:not-allowed}.actions{flex-wrap:wrap;gap:10px;margin:20px 0;display:flex}.glyph{width:44px;min-width:44px;height:44px;font:700 13px var(--mono);letter-spacing:-.02em;color:var(--tone,var(--accent));background:var(--tone-bg,var(--wash));border-radius:10px;place-items:center;display:grid}[data-cat=number]{--tone:var(--cat-number);--tone-bg:var(--cat-number-bg)}[data-cat=text]{--tone:var(--cat-text);--tone-bg:var(--cat-text-bg)}[data-cat=dev]{--tone:var(--cat-dev);--tone-bg:var(--cat-dev-bg)}[data-cat=file]{--tone:var(--cat-file);--tone-bg:var(--cat-file-bg)}.local-badge{background:var(--wash);color:var(--accent);letter-spacing:0;white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:3px 10px;font-size:12px;font-weight:600;display:inline-flex}.segmented{background:var(--sunken);border:1px solid var(--line);border-radius:9px;gap:2px;min-width:0;margin:0;padding:3px;display:inline-flex}.segmented label{margin:0;position:relative}.segmented input{opacity:0;cursor:pointer;margin:0;position:absolute;inset:0}.segmented span{color:var(--muted);white-space:nowrap;border-radius:6px;padding:5px 14px;font-size:14px;font-weight:550;display:block}.segmented input:checked+span{background:var(--paper);color:var(--ink);box-shadow:var(--shadow)}.segmented input:focus-visible+span{outline:2px solid var(--accent)}.crumbs{color:var(--muted);gap:8px;font-size:13px;display:flex}.crumbs a:hover{text-decoration:underline}.tool-heading{align-items:center;gap:16px;margin:18px 0 28px;display:flex}.tool-heading .glyph{border-radius:14px;width:56px;min-width:56px;height:56px;font-size:15px}.tool-heading h1{flex-wrap:wrap;align-items:center;gap:4px 12px;margin:0;font-size:clamp(26px,3.4vw,34px);display:flex}.tool-heading p{color:var(--muted);margin:2px 0 0}.toolbar{flex-wrap:wrap;align-items:center;gap:12px 16px;margin-bottom:14px;display:flex}.toolbar .spacer{flex:1}.explanation{border-top:1px solid var(--line);max-width:800px;margin-top:48px;padding-top:8px;font-size:15px}.explanation h2{font-size:17px}.explanation p{max-width:none}.panes{grid-template-columns:1fr 1fr;gap:16px;display:grid}.panel{background:var(--paper);border:1px solid var(--line);min-width:0;box-shadow:var(--shadow);border-radius:12px;flex-direction:column;display:flex;overflow:hidden}.panel:focus-within{border-color:var(--line-strong)}.panel-head{border-bottom:1px solid var(--line);align-items:center;gap:4px;min-height:44px;padding:6px 8px 6px 14px;display:flex}.panel-head label,.panel-head h2{color:var(--muted);letter-spacing:.02em;margin:0 auto 0 0;font-size:13px;font-weight:650}.panel textarea{resize:vertical;width:100%;min-height:320px;color:var(--ink);font:14px/1.7 var(--mono);overflow-wrap:anywhere;background:0 0;border:0;outline:0;flex:1;padding:14px}.panel textarea[readonly]{background:var(--sunken)}.panel-foot{border-top:1px solid var(--line);min-height:34px;color:var(--muted);justify-content:space-between;gap:12px;padding:6px 14px;font-size:12px;display:flex}.status{overflow-wrap:anywhere;max-width:none;margin:0}.status[data-error=true]{color:var(--danger)}.status[data-ok=true]{color:var(--accent)}.field{color:var(--muted);align-items:center;gap:8px;font-size:14px;display:flex}.field select,.field input[type=number]{border:1px solid var(--line-strong);background:var(--paper);color:var(--ink);border-radius:8px;padding:6px 10px}.field input[type=number]{width:76px}.dropzone{border:1.5px dashed var(--line-strong);background:var(--paper);text-align:center;border-radius:12px;flex-direction:column;justify-content:center;align-items:center;gap:6px;min-height:200px;padding:28px;transition:border-color .15s,background .15s;display:flex;position:relative}.dropzone input[type=file]{opacity:0;cursor:pointer;width:100%;position:absolute;inset:0}.dropzone:hover,.dropzone.dragging{border-color:var(--accent);background:var(--wash)}.dropzone:has(input:focus-visible){outline:2px solid var(--accent);outline-offset:2px}.dropzone-icon{background:var(--sunken);border-radius:12px;place-items:center;width:44px;height:44px;margin-bottom:4px;font-size:20px;display:grid}.dropzone strong{font-size:15px}.dropzone small{color:var(--muted);font-size:13px}.dropzone [data-file-name]{font:600 13px var(--mono);color:var(--accent);overflow-wrap:anywhere}.dropzone.has-file{border-style:solid}.palette{border:1px solid var(--line);background:var(--paper);width:min(600px,100vw - 32px);max-height:min(520px,100vh - 120px);color:var(--ink);box-shadow:var(--shadow-lg);border-radius:14px;margin:12vh auto auto;padding:0;overflow:hidden}.palette[open]{flex-direction:column;display:flex}.palette::backdrop{backdrop-filter:blur(2px);background:#0a100e66}.icon{flex:none}.palette-search{border-bottom:1px solid var(--line);color:var(--muted);align-items:center;gap:10px;padding:12px 16px;font-size:18px;display:flex}.palette-search input{color:var(--ink);background:0 0;border:0;outline:0;flex:1;font-size:16px}.palette-list{margin:0;padding:6px;list-style:none;overflow:auto}.palette-list a{border-radius:8px;align-items:center;gap:12px;padding:8px 10px;display:flex}.palette-list a[aria-selected=true],.palette-list a:hover{background:var(--sunken);color:var(--ink)}.palette-list .glyph{border-radius:8px;width:34px;min-width:34px;height:34px;font-size:11px}.palette-item-text{flex-direction:column;flex:1;min-width:0;display:flex}.palette-item-text strong{font-size:14px;font-weight:600}.palette-item-text small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.palette-recent{color:var(--muted);font-size:11px}.palette-empty{color:var(--muted);text-align:center;margin:0;padding:20px}.palette-hints{border-top:1px solid var(--line);color:var(--muted);gap:16px;padding:8px 16px;font-size:12px;display:flex}.palette-hints kbd{margin-right:2px}footer{border-top:1px solid var(--line);max-width:1180px;color:var(--muted);justify-content:space-between;gap:20px;margin:auto;padding:24px;font-size:13px;display:flex}.skip{z-index:20;background:var(--paper);padding:12px;position:absolute;top:-80px}.skip:focus{top:0}[hidden]{display:none!important}@media (width<=860px){.panes{grid-template-columns:1fr}.panel textarea{min-height:200px}.search-trigger{width:auto}}@media (width<=640px){.site-header{padding:10px 16px}.search-trigger kbd,.search-trigger-text{display:none}main{padding:32px 16px 56px}.hero{margin-bottom:32px}footer{flex-direction:column;padding:24px 16px}.palette-hints,.tool-heading .glyph{display:none}}.palette-search input::-webkit-search-cancel-button{appearance:none}.lang-switch a{color:var(--muted);font-size:14px;font-weight:550}.lang-switch a:hover{color:var(--accent)}.faq{border-top:1px solid var(--line)}.faq details{border-bottom:1px solid var(--line)}.faq summary{cursor:pointer;padding:12px 0;font-weight:600;list-style-position:inside}.faq summary::marker{color:var(--muted)}.faq details p{color:var(--muted);margin:0 0 14px}.not-found{margin:40px auto}:lang(en) h1{letter-spacing:-.02em}
