:root{--bg: #ffffff;--bg-sunken: #f6f8fa;--bg-raised: #ffffff;--bg-hover: #eef1f4;--bg-select: #ddeaff;--border: #d6dde4;--border-strong: #b9c3cd;--text: #1c2128;--text-dim: #5b6977;--accent: #1f6feb;--accent-text: #ffffff;--danger: #c0392b;--danger-bg: #fdecea;--key: #8250df;--string: #0a7d4b;--number: #0550ae;--literal: #bc4c00;--comment: #7d8893;--shadow: 0 1px 3px rgba(16, 24, 40, .1);--row-height: 24px;--mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--sans: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Arial, sans-serif;color-scheme:light}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #0d1117;--bg-sunken: #010409;--bg-raised: #161b22;--bg-hover: #1c2330;--bg-select: #1f3a5f;--border: #2a313c;--border-strong: #3d4653;--text: #e6edf3;--text-dim: #9198a1;--accent: #4493f8;--accent-text: #0d1117;--danger: #ff7b72;--danger-bg: #3a1d1b;--key: #d2a8ff;--string: #7ee787;--number: #79c0ff;--literal: #ffa657;--comment: #8b949e;--shadow: 0 1px 3px rgba(0, 0, 0, .5);color-scheme:dark}}:root[data-theme=dark]{--bg: #0d1117;--bg-sunken: #010409;--bg-raised: #161b22;--bg-hover: #1c2330;--bg-select: #1f3a5f;--border: #2a313c;--border-strong: #3d4653;--text: #e6edf3;--text-dim: #9198a1;--accent: #4493f8;--accent-text: #0d1117;--danger: #ff7b72;--danger-bg: #3a1d1b;--key: #d2a8ff;--string: #7ee787;--number: #79c0ff;--literal: #ffa657;--comment: #8b949e;--shadow: 0 1px 3px rgba(0, 0, 0, .5);color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;height:auto}#root{height:100vh;height:100dvh;min-height:420px}body{background:var(--bg);color:var(--text);font-family:var(--sans);font-size:14px}.app{display:flex;flex-direction:column;height:100%}.toolbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:6px 10px;background:var(--bg-raised);border-bottom:1px solid var(--border)}.brand{display:flex;align-items:center;gap:7px;font-weight:650;margin-right:6px;white-space:nowrap}.brand svg{width:20px;height:20px}button,.file-button{font:inherit;color:var(--text);background:var(--bg-raised);border:1px solid var(--border);border-radius:6px;padding:4px 9px;cursor:pointer;white-space:nowrap}button:hover:not(:disabled),.file-button:hover{background:var(--bg-hover);border-color:var(--border-strong)}button:disabled{opacity:.45;cursor:default}button.primary{background:var(--accent);border-color:var(--accent);color:var(--accent-text);font-weight:600}button.icon{padding:4px 7px}.spacer{flex:1}.divider{width:1px;height:20px;background:var(--border);margin:0 2px}input[type=text],input[type=url],select{font:inherit;color:var(--text);background:var(--bg);border:1px solid var(--border);border-radius:6px;padding:4px 8px}input:focus-visible,button:focus-visible,select:focus-visible{outline:2px solid var(--accent);outline-offset:1px}.tabs{display:flex;gap:2px;padding:0 10px;background:var(--bg-raised);border-bottom:1px solid var(--border)}.tab{border:none;border-bottom:2px solid transparent;border-radius:0;background:none;padding:7px 14px;color:var(--text-dim)}.tab[aria-selected=true]{color:var(--text);border-bottom-color:var(--accent);font-weight:600}.main{flex:1;min-height:0;display:flex}.pane{flex:1;min-width:0;position:relative}.tree{position:absolute;inset:0;overflow:auto;font-family:var(--mono);font-size:13px;background:var(--bg)}.tree-inner{position:relative}.row{position:absolute;left:0;right:0;height:var(--row-height);line-height:var(--row-height);display:flex;align-items:center;white-space:nowrap;padding-right:12px;cursor:default}.row:hover{background:var(--bg-hover)}.row.selected{background:var(--bg-select)}.row.hit{box-shadow:inset 2px 0 0 var(--accent)}.twisty{width:16px;min-width:16px;text-align:center;color:var(--text-dim);cursor:pointer;user-select:none}.twisty:hover{color:var(--text)}.row .key{color:var(--key)}.row .idx{color:var(--text-dim)}.row .sep{color:var(--text-dim);margin-right:6px}.v-string{color:var(--string)}.v-number{color:var(--number)}.v-literal{color:var(--literal)}.v-container{color:var(--text-dim)}.v-comment{color:var(--comment);font-style:italic;margin-left:10px}.count{color:var(--text-dim);margin-left:8px;font-size:11px}.detail{width:340px;min-width:260px;border-left:1px solid var(--border);background:var(--bg-raised);padding:10px 12px;overflow:auto;font-size:13px}.detail h3{margin:0 0 8px;font-size:12px;text-transform:uppercase;letter-spacing:.04em;color:var(--text-dim)}.detail .field{margin-bottom:10px}.detail .field label{display:block;color:var(--text-dim);font-size:11px;margin-bottom:2px}.detail code{font-family:var(--mono);font-size:12px;background:var(--bg-sunken);border:1px solid var(--border);border-radius:5px;padding:4px 6px;display:block;word-break:break-all;max-height:220px;overflow:auto;white-space:pre-wrap}.editor{position:absolute;inset:0;overflow:auto}.cm-editor{height:100%;font-size:13px}.cm-editor.cm-focused{outline:none}.big-notice{padding:20px;max-width:640px;line-height:1.55}.search{display:flex;align-items:center;gap:6px;padding:6px 10px;background:var(--bg-sunken);border-bottom:1px solid var(--border)}.search input[type=text]{flex:1;min-width:120px;font-family:var(--mono)}.search .result{color:var(--text-dim);font-size:12px;white-space:nowrap}.status{display:flex;align-items:center;gap:14px;padding:4px 10px;background:var(--bg-raised);border-top:1px solid var(--border);color:var(--text-dim);font-size:12px;white-space:nowrap;overflow-x:auto}.status .error{color:var(--danger);font-weight:600}.status .ok{color:var(--string)}.toast{position:fixed;left:50%;bottom:28px;transform:translate(-50%);background:var(--bg-raised);border:1px solid var(--border-strong);border-radius:8px;box-shadow:var(--shadow);padding:9px 14px;max-width:min(560px,calc(100vw - 32px));z-index:50}.toast.error{border-color:var(--danger);background:var(--danger-bg);color:var(--danger)}.drop-hint{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:var(--bg-select);border:2px dashed var(--accent);font-weight:600;z-index:20}@media(max-width:900px){.detail{display:none}}.crumbs{display:flex;align-items:center;flex-wrap:nowrap;overflow-x:auto;gap:2px;padding:4px 10px;background:var(--bg-sunken);border-bottom:1px solid var(--border);font-family:var(--mono);font-size:12px;scrollbar-width:thin}.crumbs>span{display:inline-flex;align-items:center;white-space:nowrap}.crumb{border:none;background:none;padding:2px 6px;border-radius:4px;color:var(--text-dim);font-family:var(--mono);font-size:12px;cursor:pointer;max-width:24ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.crumb:hover{background:var(--bg-hover);color:var(--text)}.crumb[aria-current=true]{color:var(--text);font-weight:600}.crumb-sep{color:var(--border-strong);padding:0 1px}.crumb.copy{border:1px solid var(--border);max-width:none}.size-cell{margin-left:auto;display:inline-flex;align-items:center;gap:6px;padding-left:16px;color:var(--text-dim);font-size:11px;flex-shrink:0}.size-bar{display:inline-block;width:48px;height:5px;border-radius:3px;background:var(--border);overflow:hidden}.size-fill{display:block;height:100%;background:var(--accent);opacity:.55;min-width:1px}.size-text{display:inline-block;width:7ch;text-align:right;font-variant-numeric:tabular-nums}.tab-badge{margin-left:6px;padding:1px 6px;border-radius:9px;background:var(--bg-hover);color:var(--text-dim);font-size:11px;font-weight:600}.tree.diff{padding:0}.diff-head{position:sticky;top:0;z-index:2;display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:8px 12px;background:var(--bg-raised);border-bottom:1px solid var(--border)}.chip{border:1px solid var(--border);background:var(--bg-sunken);border-radius:999px;padding:2px 10px;font-size:12px;color:var(--text-dim);cursor:pointer}.chip.on{border-color:var(--border-strong);background:var(--bg-hover);color:var(--text);font-weight:600}.chip.added.on{color:var(--string)}.chip.removed.on{color:var(--danger)}.chip.changed.on{color:var(--number)}.diff-note{margin:0;padding:8px 12px;color:var(--text-dim);font-size:12px}.diff-table{width:100%;border-collapse:collapse;font-family:var(--mono);font-size:12px;table-layout:fixed}.diff-table th{text-align:left;padding:6px 10px;color:var(--text-dim);font-weight:600;font-family:var(--sans);border-bottom:1px solid var(--border);position:sticky;top:41px;background:var(--bg)}.diff-table td{padding:4px 10px;border-bottom:1px solid var(--border);vertical-align:top;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.diff-table tr:hover td{background:var(--bg-hover);cursor:pointer}.diff-table .d-path{width:34%;color:var(--key)}.d-added td:first-child{box-shadow:inset 3px 0 0 var(--string)}.d-removed td:first-child{box-shadow:inset 3px 0 0 var(--danger)}.d-changed td:first-child{box-shadow:inset 3px 0 0 var(--number)}.d-none{color:var(--text-dim);font-style:italic;font-family:var(--sans)}.sheet-back{position:fixed;inset:0;z-index:50;background:#10182873;display:flex;align-items:center;justify-content:center;padding:24px}.sheet{background:var(--bg);border:1px solid var(--border-strong);border-radius:10px;box-shadow:0 10px 40px #1018284d;width:min(900px,100%);max-height:100%;display:flex;flex-direction:column;overflow:hidden}.sheet-head{display:flex;align-items:center;gap:8px;padding:10px 12px;border-bottom:1px solid var(--border);background:var(--bg-raised)}.sheet-size{color:var(--text-dim);font-size:12px}.sheet-note{margin:0;padding:8px 12px;color:var(--text-dim);font-size:12px;border-bottom:1px solid var(--border)}.sheet-body{margin:0;padding:12px;overflow:auto;font-family:var(--mono);font-size:12px;line-height:1.5;white-space:pre;flex:1}.table-view{position:absolute;inset:0;display:flex;flex-direction:column;font-family:var(--mono);font-size:12px}.t-head{display:flex;align-items:center;gap:0;padding:0 8px;background:var(--bg-raised);border-bottom:1px solid var(--border);min-height:34px;overflow:hidden}.t-body{flex:1;overflow:auto;position:relative}.t-row{position:absolute;left:0;right:0;height:28px;line-height:28px;display:flex;padding:0 8px;border-bottom:1px solid var(--border);white-space:nowrap}.t-row:hover{background:var(--bg-hover);cursor:pointer}.t-num{width:56px;min-width:56px;color:var(--text-dim);text-align:right;padding-right:12px;font-variant-numeric:tabular-nums}.t-cell{width:180px;min-width:180px;padding-right:12px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.t-key{color:var(--key);font-weight:600}.t-foot{padding:6px 12px;border-top:1px solid var(--border);color:var(--text-dim);background:var(--bg-raised)}.schema{border-bottom:1px solid var(--border);background:var(--bg-sunken);max-height:44vh;overflow:auto}.schema-top{display:flex;align-items:center;gap:8px;padding:8px 12px}.schema-box{display:block;width:calc(100% - 24px);margin:0 12px 10px;min-height:84px;resize:vertical;font-family:var(--mono);font-size:12px;padding:8px;border:1px solid var(--border);border-radius:6px;background:var(--bg);color:var(--text)}.schema-note{margin:0;padding:0 12px 10px;font-size:12px;color:var(--text-dim)}.schema-list{margin:0;padding:0 0 8px;list-style:none;font-size:12px}.schema-list li{display:flex;gap:10px;align-items:baseline;padding:4px 12px;border-top:1px solid var(--border);cursor:pointer}.schema-list li:hover{background:var(--bg-hover)}.schema-list code{color:var(--key);font-family:var(--mono);min-width:22ch}.schema-keyword{color:var(--text-dim);min-width:14ch}.menu{position:relative;display:inline-flex}.menu-arrow{color:var(--text-dim);font-size:10px}.menu-list{position:absolute;top:calc(100% + 4px);right:0;z-index:40;min-width:260px;padding:4px;background:var(--bg-raised);border:1px solid var(--border-strong);border-radius:8px;box-shadow:0 8px 24px #1018282e;display:flex;flex-direction:column}.menu-item{border:none;background:none;text-align:left;padding:7px 10px;border-radius:6px;width:100%}.menu-item:hover:not(:disabled){background:var(--bg-hover)}.menu-item.sep{margin-top:5px;border-top:1px solid var(--border);padding-top:10px;border-radius:0 0 6px 6px}.status-links{display:flex;gap:12px}.status-links a{color:var(--text-dim);text-decoration:none}.status-links a:hover{color:var(--text);text-decoration:underline}@media(max-width:860px){.status-links{display:none}}.home{max-width:860px;margin:0 auto;padding:40px 20px 72px;font-size:16px;line-height:1.65;border-top:1px solid var(--border)}.home h1{font-size:1.9rem;line-height:1.25;margin:0 0 10px}.home h2{font-size:1.3rem;margin:2.2em 0 .7em;padding-top:.5em;border-top:1px solid var(--border)}.home h3{font-size:1.02rem;margin:1.4em 0 .3em}.home p{margin:0 0 .9em}.home-lede{font-size:1.08rem;color:var(--text-dim)}.home a{color:var(--accent)}.home code{font-family:var(--mono);font-size:.88em;background:var(--bg-sunken);border:1px solid var(--border);border-radius:4px;padding:1px 5px}.home-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:4px 28px}.home-grid h3{margin-top:1.1em;color:var(--accent)}.home-grid p{color:var(--text-dim);font-size:.95rem}.home-steps{padding-left:22px}.home-steps li{margin-bottom:.5em}.home-faq h3{margin-top:1.5em}.home-faq p{color:var(--text-dim)}.home-links{padding-left:22px}.home-links li{margin-bottom:.35em}.home-foot{display:flex;gap:20px;flex-wrap:wrap;margin-top:2.5em;padding-top:20px;border-top:1px solid var(--border);font-size:.95rem}.home-foot a{color:var(--text-dim);text-decoration:none}.home-foot a:hover{color:var(--text);text-decoration:underline}
