:root{font-family:Inter,Segoe UI,Arial,sans-serif;color:#293449;background:#f5f6f8;font-synthesis:none;font-size:14px}*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit}button{cursor:pointer;border:0;background:transparent;color:inherit;border-radius:6px}button:disabled{opacity:.38;cursor:default}button:hover:not(:disabled){background:#edf0f6}button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible,[tabindex]:focus-visible{outline:2px solid #6956d9;outline-offset:2px}button:active:not(:disabled){transform:translateY(1px)}.app-shell{max-width:1800px;margin:auto;padding:0 36px}.app-header{height:94px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e4e7ed}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:#25324a;font-size:22px;letter-spacing:-.8px}.brand strong{font-weight:700}.brand-mark{display:grid;place-items:center;width:44px;height:44px;background:#eeeafa;color:#7860ce;border:1px solid #ddd6f2;border-radius:12px;font-family:monospace;font-size:24px}.brand small{display:block;font-size:8px;letter-spacing:2px;margin-top:6px;color:#8992a2;font-weight:600}.header-right{display:flex;align-items:center;gap:8px;color:#7b8597;font-size:12px}.privacy-dot,.status-dot{width:6px;height:6px;background:#30a78a;border-radius:50%;display:inline-block}.version{border:1px solid #dfe3ea;border-radius:5px;padding:4px 7px;margin-left:17px;font:11px monospace}.intro{display:flex;justify-content:space-between;align-items:center;padding:38px 0 30px}.eyebrow{font-size:10px;letter-spacing:2px;color:#8b7bb5;font-weight:700}h1{font-size:30px;font-weight:650;letter-spacing:-1px;margin:10px 0}p{line-height:1.65}.intro p{color:#8490a1;margin:0;font-size:13px}.local-badge{border:1px solid #e0e4eb;border-radius:20px;background:#fff;padding:9px 13px;color:#7f8999;font-size:11px}.workspace{display:grid;grid-template-columns:minmax(250px,300px) minmax(360px,1fr) 250px;gap:16px;height:calc(100vh - 310px);min-height:540px;max-height:1000px}.panel{background:#fff;border:1px solid #e2e5ec;border-radius:12px;overflow:hidden;box-shadow:0 4px 14px #29344903;display:flex;flex-direction:column;min-width:0}.panel-heading{height:65px;flex-shrink:0;padding:0 18px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #edf0f4}.panel-heading>div{display:flex;align-items:center;gap:9px}h2{font-size:13px;font-weight:650;margin:0}.step{font-size:10px;color:#a8adba;font-family:monospace}.file-badge{font:9px monospace;letter-spacing:1px;color:#939aaa;background:#f4f5f8;padding:4px 6px;border-radius:4px}.input-actions{display:flex;justify-content:space-between;padding:12px 12px 8px;gap:3px}.input-actions button{font-size:10px;color:#8b82af;padding:5px}.input-actions button+button{color:#929aaa}.input-panel textarea{width:100%;resize:none;flex:1;min-height:140px;border:0;padding:12px 18px;color:#55627b;background:#fcfcfe;font:11px/1.85 Consolas,monospace;tab-size:2;white-space:pre;overflow:auto}.input-meta{display:flex;justify-content:space-between;background:#fcfcfe;border-bottom:1px solid #edf0f4;padding:8px 18px;color:#a3aaba;font:10px monospace}.input-footer{padding:17px}.primary{display:flex;align-items:center;justify-content:space-between;background:#7962cb;color:#fff;width:100%;padding:12px 15px;font-weight:600;font-size:12px;box-shadow:0 4px 8px #7962cb20}.primary:hover:not(:disabled){background:#6c55bc}.input-footer>p{font-size:10px;color:#9b9eac;text-align:center;margin:12px 0}.input-footer details{font-size:10px;color:#9198a6}.input-footer details p{margin-bottom:0}.error{padding:12px 16px;background:#fff0f0;color:#ab4356;font-size:12px}.error p{margin-bottom:0}.view-tabs{display:flex;background:#f4f5f8;padding:3px;border-radius:7px;gap:2px!important}.view-tabs button{font-size:10px;padding:6px 10px;color:#8e95a6}.view-tabs .active{background:#fff;color:#7563b9;box-shadow:0 1px 4px #27345310}.search-bar{display:flex;align-items:center;gap:8px;margin:16px 17px 12px;background:#f8f9fb;border:1px solid #e9ecf2;border-radius:7px;padding:8px 10px;color:#a2a9b8}.search-bar>span:first-child{font-size:20px;line-height:1}.search-bar input{width:100%;min-width:0;border:0;outline:0;background:transparent;font-size:11px;color:#4b5870}.search-bar input::placeholder{color:#a0a7b5}.search-bar button{padding:0 4px}.result-count{white-space:nowrap;font-size:10px}.viewer-toolbar{display:flex;justify-content:space-between;align-items:center;padding:3px 18px 12px;font-size:9px;letter-spacing:.7px;color:#737d90;border-bottom:1px solid #f0f1f5}.viewer-toolbar>span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.node-count{background:#f1f3f7;padding:3px 6px;margin-left:8px;border-radius:4px;letter-spacing:0}.viewer-toolbar button{font-size:10px;color:#8f97a7}.viewer-content{flex:1;min-height:0;overflow:auto}.viewer-bottom{display:flex;justify-content:space-between;gap:10px;border-top:1px solid #edf0f4;padding:12px 17px;font-size:9px;color:#737d90}.viewer-bottom .status-dot{margin-right:6px;background:#bec5cf}.viewer-bottom .ready{background:#38af91}.empty{text-align:center;display:flex;align-items:center;justify-content:center;flex-direction:column;height:100%;min-height:220px;padding:25px;color:#959eaf}.empty-icon{display:grid;place-items:center;background:#f3effa;border:1px solid #e8e0f6;border-radius:18px;font:32px monospace;color:#a695ca;width:75px;height:75px;margin-bottom:15px}.empty h3{font-size:16px;color:#667187;font-weight:500}.empty p{font-size:12px;margin:0 0 20px}.secondary{border:1px solid #e4def2;background:#f8f6fc;color:#8672b4;padding:10px 13px;font-size:11px}.tree{padding:10px 0;min-width:max-content}.tree-row{display:flex;align-items:center;gap:7px;min-height:36px;padding-right:14px;font:12px Consolas,monospace;cursor:pointer;border-left:2px solid transparent}.tree-row:hover{background:#f7f8fc}.tree-row.selected{background:#f2effa;border-left-color:#9d86d5}.tree-row.match .node-key{background:#fff0b9;color:#66532c;border-radius:3px}.disclosure{width:17px;height:24px;flex-shrink:0;padding:0;color:#9ca4b5;font:19px monospace}.disclosure:disabled{opacity:.35}.type-icon{font:10px monospace;width:18px;text-align:center;color:#91a2bc}.node-key{color:#5c6680;white-space:nowrap}.colon{color:#b8bfca}.node-value{max-width:260px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:#7b8496}.string{color:#55977e}.number{color:#c48a50}.boolean{color:#8c70bc}.null,.missing{color:#a5a9b5;font-style:italic}.inline-table{font:9px Segoe UI,sans-serif;background:#f2f0f8;color:#9b88bf;padding:4px 6px;margin-left:8px}.detail-symbol{font-size:16px;color:#afb5c1}.detail-body{padding:22px 18px;overflow:auto}.type-pill{display:inline-block;font:10px monospace;padding:5px 8px;border-radius:4px;background:#f0edf8;color:#8f7cae}.type-pill.string{background:#eaf5f0;color:#55977e}.detail-body h3{font-size:16px;margin:14px 0 25px;font-weight:600;overflow-wrap:anywhere}.detail-label{font-size:9px;letter-spacing:1.2px;color:#737d90;margin:24px 0 10px}.pointer{display:block;border:1px solid #e8ebf0;border-radius:6px;background:#fafbfc;padding:10px;font:11px/1.6 Consolas,monospace;overflow-wrap:anywhere;white-space:pre-wrap;color:#8790a2}.copy-button{font-size:10px;color:#9784ba;margin:8px 0 0;padding:5px 0}.value-preview{font:12px/1.7 Consolas,monospace;white-space:pre-wrap;overflow-wrap:anywhere;padding:12px;background:#f9fafc;border-radius:6px;max-height:240px;overflow:auto}.stat{display:flex;justify-content:space-between;border-top:1px solid #edf0f4;padding:16px 0;font-size:11px;color:#949cad}.stat strong{color:#657088}.full{width:100%;margin-top:12px}.detail-hint{font-size:11px;color:#a0a8b7;margin-top:24px}.detail-empty{padding:75px 20px;color:#a4acbb;text-align:center;font-size:11px}.detail-empty>span{font-size:40px;color:#d2cadd}.tip{margin:auto 16px 17px;padding:14px;background:#faf9fd;border:1px solid #f0ecf7;border-radius:7px;display:flex;gap:10px;font-size:10px;color:#a29ab1}.tip>span{font-size:20px;color:#a493c6}.tip strong{font-weight:600;color:#8e819f}.tip p{margin:5px 0 0;font-size:10px}.app-footer{display:flex;justify-content:space-between;padding:23px 0;color:#737d90;font-size:10px}.table-scroll{overflow:auto;height:100%}table{border-collapse:collapse;width:100%;font:11px Consolas,monospace;white-space:nowrap}caption{text-align:left;padding:13px 17px;color:#929cad;font:10px Segoe UI,sans-serif}th{background:#f7f8fc;text-align:left;position:sticky;top:0;z-index:1;border-top:1px solid #edf0f5;border-bottom:1px solid #e6eaf1}th button{padding:12px 15px;width:100%;text-align:left;font:11px Segoe UI,sans-serif;color:#67718a}td{padding:12px 15px;border-bottom:1px solid #eef0f5;max-width:260px}td>span{display:block;overflow:hidden;text-overflow:ellipsis;max-width:230px}tbody tr:hover{background:#faf9fd}.sort-arrow{margin-left:12px;color:#b4a6ce}.system{color:#aba0c3}.cell-link{font:inherit;color:#8a77b2;padding:0}.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}@media(min-width:1550px){.workspace{grid-template-columns:340px minmax(400px,1fr) 280px}.input-panel textarea{font-size:12px}.tree-row{font-size:13px}}@media(max-width:1150px){.app-shell{padding:0 20px}.workspace{grid-template-columns:250px minmax(320px,1fr)}.detail-panel{grid-column:1/-1;min-height:220px}.workspace{height:auto;max-height:none}.input-panel,.viewer-panel{height:620px}.detail-panel .detail-body{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:16px}.detail-body h3,.detail-label,.detail-body .value-preview{margin:0}.detail-body .pointer{max-width:240px}.detail-panel .tip{display:none}.detail-empty{padding:25px}.local-badge{display:none}}@media(max-width:680px){.app-header{height:80px}.header-right{font-size:0;gap:2px}.version{font-size:10px}.brand{font-size:19px}.intro{padding:28px 0 24px}h1{font-size:24px}.intro p{font-size:12px}.workspace{display:flex;flex-direction:column}.input-panel{height:430px}.viewer-panel{height:550px}.app-footer{gap:15px;line-height:1.7}.app-footer span:last-child{display:none}.panel-heading{padding:0 13px}.viewer-bottom{font-size:8px}.app-shell{padding:0 12px}.detail-panel{min-height:170px}}.notification{margin:0 0 18px;color:#6d6388;font-size:11px;border-left:2px solid #b5a5d6;padding:5px 10px}.tree{min-width:0;padding:10px 12px}.tree-row{padding-left:4px;width:max-content;min-width:100%}.node-children{margin-left:17px;padding-left:5px;border-left:1px solid #e7e5ef}.node-table{margin:6px 0 14px 19px;border:1px solid #ded7ef;border-radius:8px;overflow:hidden;background:#fff}.table-scroll{height:auto;max-width:100%;overflow:auto}.node-table>.table-scroll{max-height:620px}.table-scroll table{width:max-content;min-width:100%}.table-scroll td{vertical-align:top;max-width:none}.table-scroll .container-cell{padding:5px;min-width:240px}.container-cell>.json-node{max-width:580px}.container-cell .node-table{margin-left:6px}.container-cell .node-children{margin-left:8px}.container-cell .tree-row{font-size:11px}.node-table th{position:static}.node-table caption{font-size:10px;white-space:normal;overflow-wrap:anywhere;text-align:left}.scalar-cell{display:block;max-width:240px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:inherit;color:inherit;padding:0;text-align:left}.cell-selected{box-shadow:inset 0 0 0 2px #c4b2e8}.cell-match{background:#fff4c9}.inline-empty{padding:14px;color:#9098a6;font-size:11px}.inline-table.is-table{background:#e9e0f7;color:#7055a6}.embedded-badge{font-size:10px;color:#8b77b2;background:#f5f1fa;padding:6px 9px;border-radius:5px}.tree-actions{display:flex;gap:8px}.viewer-heading-actions{display:flex;gap:8px;align-items:center}.width-toggle{font-size:10px;color:#7d6c9d;padding:6px}.workspace.workspace-wide{grid-template-columns:minmax(0,1fr)}.workspace-wide>.input-panel,.workspace-wide>.detail-panel{display:none}.workspace-wide>.viewer-panel{height:100%;min-height:620px}.depth-controls{display:flex;align-items:center;flex-wrap:wrap;gap:8px;padding:9px 12px;background:#f8f5fc;border-bottom:1px solid #e6dff0;color:#827096;font:11px Segoe UI,sans-serif}.depth-controls button{border:1px solid #d9cde9;background:#fff;width:25px;height:25px;font-size:16px}.depth-controls strong{font-weight:600;color:#65517f}.depth-next{color:#92909f;font-size:10px}.node-table>.table-frame>.table-scroll{max-height:620px}
