@import"https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Manrope:wght@400;500;600;700;800&family=JetBrains+Mono:wght@400;500;600;700&display=swap";:root{--font-display: "Space Grotesk", system-ui, sans-serif;--font-ui: "Manrope", system-ui, sans-serif;--font-mono: "JetBrains Mono", ui-monospace, monospace;--bg: #101216;--bg-grad: radial-gradient(1200px 800px at 85% -10%, #181c24 0%, #101216 55%);--elev-1: #161a20;--elev-2: #1b2027;--panel: #1a1e25;--panel-2: #21262e;--hover: rgba(255, 255, 255, .04);--hover-2: rgba(255, 255, 255, .07);--border: rgba(255, 255, 255, .08);--border-strong: rgba(255, 255, 255, .14);--border-faint: rgba(255, 255, 255, .05);--text: #e7eaf0;--text-dim: #9aa3b0;--text-faint: #646c79;--accent: #c9f25c;--accent-press: #b6e23f;--accent-soft: rgba(201, 242, 92, .14);--accent-soft-2: rgba(201, 242, 92, .22);--on-accent: #15180c;--focus: rgba(201, 242, 92, .55);--syn-key: #c4b5fd;--syn-string: #5ee6c5;--syn-number: #fca86b;--syn-bool: #ff8fa3;--syn-null: #7a8290;--syn-punct: #8b93a1;--ok: #5ee68a;--ok-soft: rgba(94, 230, 138, .14);--err: #ff7a85;--err-soft: rgba(255, 122, 133, .13);--warn: #ffcf6b;--add: #5ee68a;--add-soft: rgba(94, 230, 138, .12);--del: #ff7a85;--del-soft: rgba(255, 122, 133, .11);--mod: #6fb7ff;--mod-soft: rgba(111, 183, 255, .13);--mark: #c9f25c;--mark-on: #15180c;--mark-active: #ffcf6b;--chart-1: #c9f25c;--chart-2: #5ee6c5;--chart-3: #c4b5fd;--chart-4: #fca86b;--chart-5: #6fb7ff;--chart-track: rgba(255, 255, 255, .06);--shadow-1: 0 1px 2px rgba(0, 0, 0, .3);--shadow-2: 0 8px 30px rgba(0, 0, 0, .4);--shadow-pop: 0 16px 50px rgba(0, 0, 0, .55);--radius: 10px;--radius-sm: 7px;--radius-lg: 14px;--topbar-h: 56px;--rail-w: 76px;--status-h: 30px}:root[data-theme=light]{--bg: #f4f4ef;--bg-grad: radial-gradient(1200px 800px at 85% -10%, #ffffff 0%, #f1f1ea 60%);--elev-1: #ffffff;--elev-2: #ffffff;--panel: #ffffff;--panel-2: #f6f6f1;--hover: rgba(0, 0, 0, .035);--hover-2: rgba(0, 0, 0, .06);--border: rgba(20, 22, 28, .1);--border-strong: rgba(20, 22, 28, .18);--border-faint: rgba(20, 22, 28, .06);--text: #181b21;--text-dim: #5a626e;--text-faint: #939aa6;--accent: #6f8f00;--accent-press: #5d7a00;--accent-soft: rgba(111, 143, 0, .12);--accent-soft-2: rgba(111, 143, 0, .2);--on-accent: #ffffff;--focus: rgba(111, 143, 0, .4);--syn-key: #6d28d9;--syn-string: #0e7c66;--syn-number: #b45309;--syn-bool: #be123c;--syn-null: #94a3b8;--syn-punct: #8a93a1;--ok: #1f9d57;--ok-soft: rgba(31, 157, 87, .12);--err: #d6455d;--err-soft: rgba(214, 69, 93, .1);--warn: #b7791f;--add: #1f9d57;--add-soft: rgba(31, 157, 87, .1);--del: #d6455d;--del-soft: rgba(214, 69, 93, .09);--mod: #2563c9;--mod-soft: rgba(37, 99, 201, .1);--mark: #ffe14d;--mark-on: #2a2400;--mark-active: #ff9d3d;--chart-1: #6f8f00;--chart-2: #0e9b80;--chart-3: #7c3aed;--chart-4: #d97706;--chart-5: #2563c9;--chart-track: rgba(0, 0, 0, .06);--shadow-1: 0 1px 2px rgba(20, 22, 28, .06);--shadow-2: 0 10px 30px rgba(20, 22, 28, .1);--shadow-pop: 0 18px 50px rgba(20, 22, 28, .18)}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--font-ui);background:var(--bg);background-image:var(--bg-grad);color:var(--text);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow:hidden}::selection{background:var(--accent-soft-2);color:var(--text)}button{font-family:inherit;color:inherit;cursor:pointer;border:none;background:none}input,textarea,select{font-family:inherit;color:inherit}:focus-visible{outline:2px solid var(--focus);outline-offset:1px}::-webkit-scrollbar{width:11px;height:11px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--border-strong);border-radius:99px;border:3px solid transparent;background-clip:content-box}::-webkit-scrollbar-thumb:hover{background:var(--text-faint);background-clip:content-box}.app{display:grid;grid-template-columns:var(--rail-w) 1fr;grid-template-rows:var(--topbar-h) 1fr var(--status-h);grid-template-areas:"rail topbar" "rail main" "rail status";height:100vh;width:100vw}.rail{grid-area:rail;background:var(--elev-1);border-right:1px solid var(--border);display:flex;flex-direction:column;align-items:center;padding:14px 0 12px;gap:4px;z-index:20}.brand{width:40px;height:40px;border-radius:11px;display:grid;place-items:center;margin-bottom:14px;background:linear-gradient(150deg,var(--accent),var(--accent-press));box-shadow:0 6px 18px var(--accent-soft-2),inset 0 1px #fff6;flex:none}.brand svg{width:22px;height:22px}.rail-spacer{flex:1}.nav-btn{position:relative;width:56px;height:50px;border-radius:var(--radius);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:var(--text-dim);transition:background .15s,color .15s}.nav-btn svg{width:20px;height:20px}.nav-btn span{font-size:9.5px;font-weight:600;letter-spacing:.02em}.nav-btn:hover{background:var(--hover);color:var(--text)}.nav-btn.active{color:var(--accent);background:var(--accent-soft)}.nav-btn.active:before{content:"";position:absolute;left:-14px;top:50%;transform:translateY(-50%);width:3px;height:22px;border-radius:0 3px 3px 0;background:var(--accent)}.topbar{grid-area:topbar;display:flex;align-items:center;gap:12px;padding:0 16px;background:var(--elev-1);border-bottom:1px solid var(--border);z-index:15}.file-meta{display:flex;align-items:center;gap:10px;min-width:0}.file-name{font-family:var(--font-mono);font-size:13px;font-weight:600;color:var(--text);white-space:nowrap}.file-name .dot{color:var(--text-faint)}.file-name .ext{color:var(--accent);text-transform:lowercase}.fmt-select{height:28px;font-size:11.5px;padding:0 26px 0 9px}.pill{display:inline-flex;align-items:center;gap:6px;height:24px;padding:0 10px;border-radius:99px;font-size:11.5px;font-weight:600;border:1px solid var(--border);white-space:nowrap}.pill .led{width:7px;height:7px;border-radius:99px;flex:none}.pill.ok{color:var(--ok);background:var(--ok-soft);border-color:transparent}.pill.ok .led{background:var(--ok);box-shadow:0 0 8px var(--ok)}.pill.err{color:var(--err);background:var(--err-soft);border-color:transparent}.pill.err .led{background:var(--err);box-shadow:0 0 8px var(--err)}.topbar-spacer{flex:1}.searchbox{display:flex;align-items:center;gap:8px;height:36px;padding:0 10px 0 12px;width:300px;max-width:36vw;background:var(--panel);border:1px solid var(--border);border-radius:9px;transition:border-color .15s,box-shadow .15s}.searchbox:focus-within{border-color:var(--focus);box-shadow:0 0 0 3px var(--accent-soft)}.searchbox svg{width:15px;height:15px;color:var(--text-faint);flex:none}.searchbox input{flex:1;border:none;background:none;outline:none;font-size:13px;color:var(--text);min-width:0}.searchbox input::placeholder{color:var(--text-faint)}.search-count{font-family:var(--font-mono);font-size:11px;color:var(--text-faint);white-space:nowrap;-webkit-user-select:none;user-select:none}.search-nav{display:flex;gap:2px}.search-nav button{width:22px;height:22px;border-radius:6px;display:grid;place-items:center;color:var(--text-dim)}.search-nav button:hover{background:var(--hover-2);color:var(--text)}.btn{display:inline-flex;align-items:center;gap:7px;height:36px;padding:0 13px;border-radius:9px;font-size:12.5px;font-weight:600;color:var(--text-dim);background:var(--panel);border:1px solid var(--border);transition:background .14s,color .14s,border-color .14s,transform .05s;white-space:nowrap}.btn svg{width:15px;height:15px}.btn:hover{background:var(--panel-2);color:var(--text);border-color:var(--border-strong)}.btn:active{transform:translateY(1px)}.btn.icon{width:36px;padding:0;justify-content:center}.btn.accent{background:var(--accent);color:var(--on-accent);border-color:transparent;box-shadow:0 4px 14px var(--accent-soft-2)}.btn.accent:hover{background:var(--accent-press);color:var(--on-accent)}.btn.ghost{background:transparent;border-color:transparent}.btn.ghost:hover{background:var(--hover-2)}.btn-group{display:flex;align-items:center;gap:6px}.divider-v{width:1px;height:24px;background:var(--border);margin:0 2px}.menu-wrap{position:relative}.menu{position:absolute;top:calc(100% + 6px);right:0;min-width:210px;background:var(--elev-2);border:1px solid var(--border-strong);border-radius:12px;box-shadow:var(--shadow-pop);padding:6px;z-index:60;animation:pop .12s ease}@keyframes pop{0%{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}.menu-item{display:flex;align-items:center;gap:10px;width:100%;padding:9px 10px;border-radius:8px;font-size:13px;font-weight:500;color:var(--text-dim);text-align:left}.menu-item svg{width:16px;height:16px;color:var(--text-faint);flex:none}.menu-item:hover{background:var(--hover-2);color:var(--text)}.menu-item:hover svg{color:var(--accent)}.menu-label{font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--text-faint);padding:9px 10px 5px}.menu-sep{height:1px;background:var(--border);margin:5px 4px}.main{grid-area:main;position:relative;overflow:hidden;min-width:0}.view{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;overflow:hidden}.view-head{display:flex;align-items:center;gap:12px;padding:12px 18px;border-bottom:1px solid var(--border);flex:none;min-height:52px}.view-title{display:flex;align-items:center;gap:9px}.view-title h2{font-family:var(--font-display);font-size:15px;font-weight:600;letter-spacing:-.01em}.view-title .vt-ico{width:18px;height:18px;color:var(--accent)}.view-sub{font-size:12px;color:var(--text-faint)}.view-head-actions{margin-left:auto;display:flex;align-items:center;gap:8px}.view-body{flex:1;overflow:auto;min-height:0}.chip{display:inline-flex;align-items:center;gap:6px;height:26px;padding:0 10px;border-radius:7px;font-size:11.5px;font-weight:600;background:var(--panel);border:1px solid var(--border);color:var(--text-dim)}.chip svg{width:13px;height:13px}.chip b{color:var(--text);font-variant-numeric:tabular-nums}.status{grid-area:status;display:flex;align-items:center;gap:16px;padding:0 16px;background:var(--elev-1);border-top:1px solid var(--border);font-family:var(--font-mono);font-size:11px;color:var(--text-faint)}.status .st{display:flex;align-items:center;gap:6px;white-space:nowrap}.status .st b{color:var(--text-dim);font-weight:600}.status .grow{flex:1}.status .accent-t{color:var(--accent)}mark,.mk{background:var(--mark);color:var(--mark-on);border-radius:3px;padding:0 1px;box-shadow:0 0 0 1px var(--mark)}mark.active,.mk.active{background:var(--mark-active);box-shadow:0 0 0 2px var(--mark-active)}.editor-wrap{position:relative;flex:1;min-height:0}.err-banner{display:flex;align-items:center;gap:10px;padding:10px 16px;background:var(--err-soft);color:var(--err);border-bottom:1px solid var(--border);font-size:12.5px;font-weight:600}.err-banner svg{width:16px;height:16px;flex:none}.err-banner .loc{font-family:var(--font-mono);margin-left:auto;opacity:.8}.err-banner button{color:var(--accent);font-weight:700;font-size:12px}.tree-scroll{flex:1;overflow:auto;min-height:0;font-family:var(--font-mono);font-size:13px}.tree-viewport{position:relative;width:100%}.trow{position:absolute;left:0;right:0;display:flex;align-items:center;padding:0 14px;white-space:nowrap;cursor:default}.trow:hover{background:var(--hover)}.trow .twist{width:18px;height:100%;flex:none;display:grid;place-items:center;color:var(--text-faint);cursor:pointer}.trow .twist svg{width:12px;height:12px;transition:transform .12s}.trow .twist.closed svg{transform:rotate(-90deg)}.trow .twist.leaf{visibility:hidden}.tkey{color:var(--syn-key)}.tcolon{color:var(--syn-punct);margin:0 7px 0 1px}.tstring{color:var(--syn-string)}.tnumber{color:var(--syn-number)}.tbool{color:var(--syn-bool)}.tnull{color:var(--syn-null);font-style:italic}.tpunct{color:var(--syn-punct)}.tindex{color:var(--text-faint)}.tbadge{font-family:var(--font-ui);font-size:10px;font-weight:700;padding:1px 6px;border-radius:5px;margin-left:8px;color:var(--text-faint);background:var(--hover-2)}.tcount{color:var(--text-faint);font-size:11.5px;margin-left:6px}.tpreview{color:var(--text-faint);font-style:italic;margin-left:8px;opacity:.8}.row-actions{margin-left:auto;display:flex;align-items:center;gap:2px;opacity:0;transition:opacity .12s;flex:none}.trow:hover .row-actions{opacity:1}.copy-path{flex:none;width:22px;height:20px;border-radius:5px;display:grid;place-items:center;color:var(--text-faint);transition:background .12s,color .12s}.copy-path:hover{background:var(--hover-2);color:var(--accent)}.copy-path svg{width:13px;height:13px}.tindent{flex:none}.tguide{width:1px;align-self:stretch;background:var(--border-faint);flex:none}.grid-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:10px 18px;border-bottom:1px solid var(--border);flex:none}.grid-tabs{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0}.grid-tab{display:inline-flex;align-items:center;gap:6px;height:28px;padding:0 6px 0 10px;border-radius:8px;font-size:11.5px;font-weight:600;font-family:var(--font-mono);background:var(--panel);border:1px solid var(--border);color:var(--text-dim);max-width:220px;cursor:pointer;transition:background .14s,color .14s,border-color .14s}.grid-tab .lbl{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.grid-tab:hover{background:var(--panel-2);color:var(--text)}.grid-tab.on{background:var(--accent-soft);border-color:transparent;color:var(--accent)}.grid-tab .tab-x{display:grid;place-items:center;width:16px;height:16px;border-radius:4px;color:var(--text-faint);flex:none}.grid-tab .tab-x:hover{background:var(--hover-2);color:var(--err)}.grid-tab .tab-x svg{width:11px;height:11px}.grid-tab .tab-ico{width:12px;height:12px;flex:none;opacity:.7}.vgrid-cell.drillable{cursor:pointer;display:flex;align-items:center;gap:6px}.vgrid-cell.drillable:hover{color:var(--accent);text-decoration:underline}.vgrid-cell.drillable .drill-ico{width:12px;height:12px;flex:none;opacity:0;transition:opacity .12s}.vgrid-row:hover .vgrid-cell.drillable .drill-ico{opacity:.8}.grid-crumbs{display:flex;align-items:center;gap:4px;flex-wrap:wrap;padding:7px 18px;border-bottom:1px solid var(--border);flex:none;font-family:var(--font-mono);font-size:11.5px}.grid-crumbs .crumb-ico{width:13px;height:13px;color:var(--text-faint);margin-right:4px;flex:none}.crumb-wrap{display:inline-flex;align-items:center;gap:4px}.crumb-sep{color:var(--text-faint)}.crumb{padding:2px 6px;border-radius:5px;color:var(--text-dim);font-weight:600}.crumb:hover{background:var(--hover-2);color:var(--text)}.crumb.on{color:var(--accent);background:var(--accent-soft)}.grid-scroll{flex:1;overflow:auto;min-height:0;position:relative}.vgrid{position:relative;font-family:var(--font-mono);font-size:12.5px;width:max-content;min-width:100%}.vgrid-header{display:flex;position:sticky;top:0;z-index:6;background:var(--elev-2)}.vgrid-hcell{flex:none;border-right:1px solid var(--border);border-bottom:1px solid var(--border);padding:8px 12px;display:flex;flex-direction:column;gap:2px;overflow:hidden}.vgrid-hcell .th-name{display:flex;align-items:center;gap:6px;font-family:var(--font-mono);color:var(--text);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.vgrid-hcell .th-type{font-size:9.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase}.th-type.t-string{color:var(--syn-string)}.th-type.t-number{color:var(--syn-number)}.th-type.t-boolean{color:var(--syn-bool)}.th-type.t-object{color:var(--syn-key)}.th-type.t-array{color:var(--mod)}.th-type.t-null,.th-type.t-mixed{color:var(--text-faint)}.vgrid-rownum{position:sticky;left:0;z-index:7;background:var(--elev-2);color:var(--text-faint);text-align:right;font-size:11px;-webkit-user-select:none;user-select:none}.vgrid-body{position:relative}.vgrid-row{position:absolute;left:0;display:flex}.vgrid-row:hover .vgrid-cell{background:var(--hover)}.vgrid-row:hover .vgrid-rownum{background:var(--panel-2);color:var(--text-dim)}.vgrid-cell{flex:none;padding:7px 12px;border-right:1px solid var(--border);border-bottom:1px solid var(--border);color:var(--text);overflow:hidden;outline:none;cursor:pointer;display:flex;align-items:center;gap:6px}.vgrid-cell .cell-text{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.vgrid-cell:hover{background:var(--hover)}.vgrid-cell.v-number{color:var(--syn-number);font-variant-numeric:tabular-nums}.vgrid-cell.v-number .cell-text{text-align:right}.vgrid-cell.v-boolean{color:var(--syn-bool)}.vgrid-cell.v-null{color:var(--syn-null);font-style:italic}.vgrid-cell.v-object,.vgrid-cell.v-array{color:var(--mod);opacity:.9}.vgrid-cell.edited{box-shadow:inset 2px 0 0 var(--accent)}.vgrid-cell.selected{box-shadow:inset 0 0 0 2px var(--accent);background:var(--accent-soft)}.vgrid-cell .cell-drill{flex:none;width:18px;height:18px;display:grid;place-items:center;border-radius:4px;color:var(--text-faint);opacity:0}.vgrid-cell:hover .cell-drill{opacity:.85}.vgrid-cell .cell-drill:hover{background:var(--hover-2);color:var(--accent)}.vgrid-cell .cell-drill svg{width:12px;height:12px}.cell-inspector{position:absolute;top:0;right:0;bottom:0;width:clamp(340px,38vw,540px);background:var(--elev-2);border-left:1px solid var(--border-strong);box-shadow:var(--shadow-pop);z-index:40;display:flex;flex-direction:column;animation:ciIn .14s ease}@keyframes ciIn{0%{transform:translate(16px);opacity:0}to{transform:none;opacity:1}}.ci-resize{position:absolute;left:-3px;top:0;bottom:0;width:7px;cursor:ew-resize;z-index:2}.ci-resize:hover{background:var(--accent-soft)}.ci-head{display:flex;align-items:center;gap:6px;padding:11px 12px;border-bottom:1px solid var(--border)}.ci-head .cc-type{flex:none}.ci-title{font-family:var(--font-mono);font-size:13px;font-weight:600;color:var(--text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex:1}.ci-head .copy-path{opacity:1;margin-left:0}.ci-head .copy-path:disabled{opacity:.3;cursor:default}.ci-head .ci-close{margin-left:2px}.ci-sub{display:flex;align-items:center;gap:6px;padding:8px 12px 0}.ci-meta{font-size:11.5px;color:var(--text-faint);font-family:var(--font-mono);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ci-spacer{flex:1}.ci-toggle{font-family:var(--font-mono);font-size:11px;font-weight:600;height:22px;padding:0 8px;border-radius:6px;color:var(--text-dim);border:1px solid var(--border);background:var(--panel)}.ci-toggle:hover{color:var(--text);background:var(--panel-2)}.ci-toggle.on{color:var(--accent);border-color:transparent;background:var(--accent-soft)}.ci-body{flex:1;overflow:auto;padding:14px;min-height:0}.ci-string{font-family:var(--font-mono);font-size:13px;line-height:1.65;white-space:pre-wrap;word-break:break-word;color:var(--text)}.code-block{font-family:var(--font-mono);font-size:13px;line-height:1.6}.code-block .cb-line{display:flex}.code-block .cb-ln{flex:none;width:38px;padding-right:12px;text-align:right;color:var(--text-faint);-webkit-user-select:none;user-select:none}.code-block .cb-txt{white-space:pre}.code-block.wrap .cb-txt{white-space:pre-wrap;word-break:break-word}.code-block:not(.wrap){overflow-x:auto}.ci-textarea{width:100%;min-height:200px;resize:vertical;background:var(--panel);border:1px solid var(--border);border-radius:8px;padding:10px 12px;font-family:var(--font-mono);font-size:13px;line-height:1.6;color:var(--text);outline:none}.ci-textarea:focus{border-color:var(--focus);box-shadow:0 0 0 3px var(--accent-soft)}.ci-foot{display:flex;align-items:center;gap:8px;padding:10px 12px;border-top:1px solid var(--border)}.empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;gap:14px;color:var(--text-faint);text-align:center;padding:40px}.empty-state .es-ico{width:46px;height:46px;opacity:.5}.empty-state .es-ico svg{width:100%;height:100%}.empty-state h3{font-family:var(--font-display);font-size:16px;color:var(--text-dim);font-weight:600}.empty-state p{font-size:13px;max-width:360px;line-height:1.5}.src-select{height:32px;padding:0 30px 0 11px;border-radius:8px;background:var(--panel) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' fill='none' stroke='%239aa3b0' stroke-width='2' viewBox='0 0 24 24'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E") no-repeat right 10px center;border:1px solid var(--border);color:var(--text);font-size:12.5px;font-weight:600;font-family:var(--font-mono);-moz-appearance:none;appearance:none;-webkit-appearance:none;cursor:pointer}.analyze-body{padding:20px;display:flex;flex-direction:column;gap:20px}.stat-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px}.stat-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:14px 16px;display:flex;flex-direction:column;gap:5px}.stat-card .sc-label{font-size:11px;font-weight:600;color:var(--text-faint);text-transform:uppercase;letter-spacing:.05em;display:flex;align-items:center;gap:6px}.stat-card .sc-label svg{width:13px;height:13px}.stat-card .sc-value{font-family:var(--font-display);font-size:26px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums}.stat-card .sc-value.accent{color:var(--accent)}.stat-card .sc-sub{font-size:11.5px;color:var(--text-faint)}.section-label{font-family:var(--font-display);font-size:13px;font-weight:600;color:var(--text-dim);display:flex;align-items:center;gap:8px}.section-label .sl-line{flex:1;height:1px;background:var(--border)}.col-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:12px}.col-card{background:var(--panel);border:1px solid var(--border);border-radius:var(--radius);padding:14px;display:flex;flex-direction:column;gap:11px}.cc-head{display:flex;align-items:center;gap:8px}.cc-name{font-family:var(--font-mono);font-size:13px;font-weight:600;color:var(--text);flex:1;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.cc-type{font-size:9.5px;font-weight:700;padding:2px 7px;border-radius:5px;text-transform:uppercase;letter-spacing:.03em;background:var(--hover-2)}.cc-type.t-string{color:var(--syn-string)}.cc-type.t-number{color:var(--syn-number)}.cc-type.t-boolean{color:var(--syn-bool)}.cc-type.t-mixed,.cc-type.t-null{color:var(--text-faint)}.cc-type.t-object{color:var(--syn-key)}.cc-type.t-array{color:var(--mod)}.cc-fill{height:6px;border-radius:99px;background:var(--chart-track);overflow:hidden;display:flex}.cc-fill i{height:100%;display:block}.cc-meta{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:11.5px;color:var(--text-faint)}.cc-meta b{color:var(--text-dim);font-variant-numeric:tabular-nums;font-weight:600}.bars{display:flex;flex-direction:column;gap:6px}.bar-row{display:grid;grid-template-columns:90px 1fr 42px;align-items:center;gap:9px;font-size:11.5px}.bar-row .bl{color:var(--text-dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-family:var(--font-mono)}.bar-row .bt{height:9px;border-radius:99px;background:var(--chart-track);overflow:hidden}.bar-row .bt i{display:block;height:100%;border-radius:99px;background:var(--accent)}.bar-row .bv{text-align:right;color:var(--text-faint);font-variant-numeric:tabular-nums;font-family:var(--font-mono)}.histo{display:flex;align-items:flex-end;gap:3px;height:80px}.histo .hb{flex:1;background:var(--accent-soft-2);border-radius:3px 3px 0 0;min-height:2px;transition:background .15s}.histo .hb:hover{background:var(--accent)}.spark{display:flex;align-items:flex-end;gap:2px;height:34px}.spark i{flex:1;background:var(--chart-2);border-radius:2px 2px 0 0;min-height:2px;opacity:.8}.diff-summary{display:flex;gap:14px;padding:9px 16px;border-bottom:1px solid var(--border);flex:none;font-size:12px}.diff-summary .ds{display:flex;align-items:center;gap:6px;font-weight:600}.diff-summary .ds.add{color:var(--add)}.diff-summary .ds.del{color:var(--del)}.diff-summary .ds.mod{color:var(--mod)}.diff-summary .ds .sw{width:9px;height:9px;border-radius:3px}.diff-summary svg{width:14px;height:14px}.diff-pane-head{display:flex;align-items:center;gap:8px;padding:9px 14px;font-size:12px;font-weight:600;color:var(--text-dim)}.diff-pane-head .lab{font-family:var(--font-mono)}.diff-pane-head .diff-load{margin-left:auto;height:26px;padding:0 9px;font-size:11px}.diff-pane-head .diff-load svg{width:13px;height:13px}.diff-inputs{display:grid;grid-template-columns:1fr 1fr;height:170px;flex:none;border-bottom:1px solid var(--border)}.diff-ta{resize:none;border:none;outline:none;background:transparent;padding:12px 14px;font-family:var(--font-mono);font-size:12.5px;line-height:1.6;color:var(--text);width:100%}.diff-heads{display:grid;grid-template-columns:1fr 1fr;border-bottom:1px solid var(--border);flex:none}.diff-result{flex:1;overflow:auto;font-family:var(--font-mono);font-size:12.5px;line-height:1.65;padding:8px 0 60px}.dl{display:flex;padding:0 14px;white-space:pre-wrap;word-break:break-word}.dl .dl-gut{width:22px;flex:none;color:var(--text-faint);-webkit-user-select:none;user-select:none}.dl.add{background:var(--add-soft)}.dl.add .dl-gut{color:var(--add)}.dl.del{background:var(--del-soft)}.dl.del .dl-gut{color:var(--del)}.query-head{padding:14px 18px;border-bottom:1px solid var(--border);flex:none;display:flex;flex-direction:column;gap:10px}.query-input-row{display:flex;gap:10px;align-items:center}.query-input{flex:1;height:42px;padding:0 14px;background:var(--panel);border:1px solid var(--border);border-radius:10px;font-family:var(--font-mono);font-size:14px;color:var(--text);outline:none;transition:border-color .15s,box-shadow .15s}.query-input:focus{border-color:var(--focus);box-shadow:0 0 0 3px var(--accent-soft)}.query-input.bad{border-color:var(--err)}.query-examples{display:flex;gap:7px;flex-wrap:wrap;align-items:center}.query-examples .qe-lab{font-size:11px;color:var(--text-faint);font-weight:600}.qchip{font-family:var(--font-mono);font-size:11.5px;padding:4px 9px;border-radius:6px;background:var(--panel);border:1px solid var(--border);color:var(--syn-key)}.qchip:hover{border-color:var(--border-strong);background:var(--panel-2)}.query-status{padding:8px 18px;font-size:12px;color:var(--text-faint);border-bottom:1px solid var(--border);font-family:var(--font-mono);display:flex;align-items:center;gap:8px}.query-status svg{width:14px;height:14px}.query-status.bad{color:var(--err)}.query-status.good b{color:var(--accent)}.query-result{flex:1;overflow:auto;min-height:0}.code-pre{font-family:var(--font-mono);font-size:13px;line-height:1.6;padding:14px 18px 60px;white-space:pre}.tok-key{color:var(--syn-key)}.tok-string{color:var(--syn-string)}.tok-number{color:var(--syn-number)}.tok-bool{color:var(--syn-bool)}.tok-null{color:var(--syn-null);font-style:italic}.tok-punct{color:var(--syn-punct)}.toast-wrap{position:fixed;bottom:44px;left:50%;transform:translate(-50%);z-index:200;display:flex;flex-direction:column;gap:8px;align-items:center;pointer-events:none}.toast{display:flex;align-items:center;gap:10px;padding:11px 16px;border-radius:10px;background:var(--elev-2);border:1px solid var(--border-strong);box-shadow:var(--shadow-pop);font-size:13px;font-weight:600;color:var(--text);animation:toastIn .25s cubic-bezier(.2,.8,.2,1)}.toast svg{width:16px;height:16px;color:var(--accent)}.toast.ok svg{color:var(--ok)}.toast.err svg{color:var(--err)}.toast.fade{opacity:0;transform:translateY(8px);transition:opacity .3s,transform .3s}@keyframes toastIn{0%{opacity:0;transform:translateY(10px) scale(.96)}to{opacity:1;transform:none}}.hidden-file,.mobile-only{display:none}.dropzone-overlay{position:fixed;top:0;right:0;bottom:0;left:0;z-index:300;display:grid;place-items:center;background:color-mix(in srgb,var(--bg) 72%,transparent);-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);pointer-events:none;animation:pop .12s ease}.dropzone-card{display:flex;flex-direction:column;align-items:center;gap:10px;padding:32px 48px;border-radius:16px;border:2px dashed var(--accent);background:var(--elev-2);box-shadow:var(--shadow-pop);color:var(--text)}.dropzone-card svg{width:34px;height:34px;color:var(--accent)}.dropzone-card h3{font-family:var(--font-display);font-size:17px;font-weight:600}.dropzone-card p{font-size:12.5px;color:var(--text-faint)}@media (max-width: 860px){.app{grid-template-columns:1fr;grid-template-rows:var(--topbar-h) 1fr auto;grid-template-areas:"topbar" "main" "rail"}.rail{flex-direction:row;justify-content:space-around;align-items:center;border-right:none;border-top:1px solid var(--border);padding:6px 4px;gap:0;overflow-x:auto}.brand,.rail-spacer{display:none}.nav-btn{width:auto;flex:1;min-width:56px;height:46px;border-radius:8px}.nav-btn.active:before{display:none}.status{display:none}.searchbox{width:auto;flex:1;max-width:none}.desktop-only{display:none!important}.file-name{display:none}.diff-inputs,.diff-heads{grid-template-columns:1fr}.topbar{gap:8px;padding:0 10px}.view-head{flex-wrap:wrap;gap:8px;padding:10px 14px}.col-cards,.stat-cards{grid-template-columns:1fr}}
