.starry-bg[data-v-28ec1669]{position:fixed;top:0;right:0;bottom:0;left:0;width:100vw;height:100vh;z-index:0;pointer-events:none}[data-theme=light] .starry-bg[data-v-28ec1669]{opacity:.45}.app-header[data-v-81b035ff]{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.brand[data-v-81b035ff]{display:flex;align-items:center;gap:10px}.logo[data-v-81b035ff]{filter:drop-shadow(0 2px 8px rgba(96,165,250,.45))}.brand-title[data-v-81b035ff]{font-size:16px;font-weight:700;letter-spacing:.3px}.brand-sub[data-v-81b035ff]{font-size:11px;color:var(--text-muted);margin-top:1px}.header-actions[data-v-81b035ff]{display:flex;align-items:center;gap:10px}.lang-select[data-v-81b035ff]{display:flex;align-items:center;gap:6px;color:var(--text-muted)}.ad-wrapper[data-v-7e57ed2b]{display:flex;align-items:center;justify-content:center;width:100%;padding:8px 0;overflow:hidden}.ad-placeholder[data-v-7e57ed2b]{font-size:12px;color:var(--text-muted);text-align:center;padding:12px;border:1px dashed var(--panel-border);border-radius:8px;width:100%}.ad-placeholder code[data-v-7e57ed2b]{color:var(--primary);font-family:monospace}.ad-error[data-v-7e57ed2b]{color:var(--danger);border-color:var(--danger)}.amazon-ad[data-v-7e57ed2b]{max-width:100%;overflow:hidden}.custom-ad[data-v-7e57ed2b]{width:100%;display:flex;justify-content:center}.app-footer[data-v-5af33534]{flex-shrink:0;border-top:1px solid var(--panel-border);background:var(--panel-bg);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:6px 16px 8px}.footer-note[data-v-5af33534]{text-align:center;font-size:10px;color:var(--text-muted);margin-top:4px}.view-switch[data-v-b335b509]{display:inline-flex;border:1px solid var(--panel-border);border-radius:6px;overflow:hidden}.view-switch button[data-v-b335b509]{padding:3px 10px;font-size:12px;background:transparent;color:var(--text-muted);border:none;cursor:pointer}.view-switch button.active[data-v-b335b509]{background:var(--primary);color:#fff}.line-preview[data-v-f1731002]{padding:0}.preview-line[data-v-f1731002]{display:flex;align-items:flex-start;padding:0 8px;min-height:18px}.preview-line.err-line[data-v-f1731002]{background:var(--danger-bg);border-left:3px solid var(--danger)}.ln[data-v-f1731002]{width:44px;text-align:right;color:var(--text-muted);-webkit-user-select:none;user-select:none;padding-right:10px;flex-shrink:0;font-family:monospace}.lc[data-v-f1731002]{margin:0;padding:0;flex:1;white-space:pre-wrap;word-break:break-all;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace}.validation-summary[data-v-f1731002]{border-top:1px solid var(--panel-border);padding-top:8px;font-size:13px}.ok[data-v-f1731002]{display:flex;align-items:center;gap:6px;color:var(--success);font-weight:600}.bad[data-v-f1731002]{display:flex;align-items:center;gap:6px;color:var(--danger);font-weight:600}.err-list[data-v-f1731002]{margin:6px 0 0;padding-left:20px;color:var(--danger);max-height:100px;overflow:auto}.diff-viewer[data-v-19d183f6]{border-top:1px solid var(--panel-border);margin-top:4px;padding-top:8px;display:flex;flex-direction:column;min-height:0;flex:1}.diff-summary[data-v-19d183f6]{display:flex;gap:16px;font-size:12px;padding:4px 10px;border-bottom:1px solid var(--panel-border)}.tag-added[data-v-19d183f6]{color:#4ade80}.tag-removed[data-v-19d183f6]{color:#f87171}.tag-unchanged[data-v-19d183f6]{color:var(--text-muted)}.diff-lines[data-v-19d183f6]{flex:1;min-height:0;overflow:auto;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,monospace;font-size:12.5px;line-height:1.5}.diff-line[data-v-19d183f6]{display:flex;align-items:flex-start;padding:0 8px;white-space:pre}.diff-line.insert[data-v-19d183f6]{background:#4ade801f}.diff-line.delete[data-v-19d183f6]{background:#f871711f}.line-no[data-v-19d183f6]{width:44px;text-align:right;padding-right:10px;color:var(--text-muted);-webkit-user-select:none;user-select:none;flex-shrink:0}.line-tag[data-v-19d183f6]{width:16px;text-align:center;color:var(--text-muted);-webkit-user-select:none;user-select:none;flex-shrink:0}.content[data-v-19d183f6]{margin:0;padding:0;flex:1;white-space:pre-wrap;word-break:break-all;font-family:inherit}.tab-bar[data-v-e047e642]{display:flex;gap:6px;flex-wrap:wrap}.tab-btn[data-v-e047e642]{display:inline-flex;align-items:center;gap:6px;padding:8px 14px;background:var(--panel-bg);color:var(--text-muted);border:1px solid var(--panel-border);border-radius:10px;cursor:pointer;font-size:13px;font-weight:500;transition:all .15s;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.tab-btn[data-v-e047e642]:hover{color:var(--text);border-color:var(--primary)}.tab-btn.active[data-v-e047e642]{background:var(--primary);color:#fff;border-color:var(--primary);box-shadow:0 4px 16px #60a5fa59}:root[data-theme=dark]{--bg-radial-start: #1b2735;--bg-radial-end: #090a0f;--panel-bg: rgba(15, 23, 42, .72);--panel-border: rgba(148, 163, 184, .18);--panel-inner: rgba(2, 6, 23, .55);--text: #e2e8f0;--text-muted: #94a3b8;--primary: #60a5fa;--primary-hover: #3b82f6;--danger: #f87171;--danger-bg: rgba(127, 29, 29, .35);--success: #4ade80;--code-bg: rgba(2, 6, 23, .85);--shadow: 0 8px 32px rgba(0, 0, 0, .55);--scroll-thumb: rgba(148, 163, 184, .4);--scroll-thumb-hover: rgba(148, 163, 184, .7);--syn-string: #9ece6a;--syn-number: #ff9e64;--syn-bool: #bb9af7;--syn-null: #7dcfff;--syn-key: #7aa2f7;--syn-keyword: #f7768e;--syn-comment: #565f89;--syn-punc: #89ddff;--syn-op: #89ddff;--syn-tag: #f7768e;--syn-name: #7dcfff;--syn-attr: #e0af68;--syn-builtin: #2ac3de}:root[data-theme=light]{--bg-radial-start: #dbeafe;--bg-radial-end: #f0f9ff;--panel-bg: rgba(255, 255, 255, .82);--panel-border: rgba(148, 163, 184, .35);--panel-inner: rgba(241, 245, 249, .95);--text: #0f172a;--text-muted: #64748b;--primary: #2563eb;--primary-hover: #1d4ed8;--danger: #dc2626;--danger-bg: rgba(254, 226, 226, .9);--success: #16a34a;--code-bg: rgba(248, 250, 252, .98);--shadow: 0 8px 32px rgba(15, 23, 42, .1);--scroll-thumb: rgba(100, 116, 139, .35);--scroll-thumb-hover: rgba(100, 116, 139, .6);--syn-string: #059669;--syn-number: #d97706;--syn-bool: #7c3aed;--syn-null: #0284c7;--syn-key: #1d4ed8;--syn-keyword: #be185d;--syn-comment: #94a3b8;--syn-punc: #0e7490;--syn-op: #0e7490;--syn-tag: #dc2626;--syn-name: #0369a1;--syn-attr: #b45309;--syn-builtin: #0891b2}*{box-sizing:border-box}html,body,#app{margin:0;min-height:100vh;overflow-x:hidden}body{font-family:system-ui,-apple-system,Segoe UI,PingFang SC,Microsoft YaHei,sans-serif;font-size:14px;color:var(--text);background:radial-gradient(ellipse at bottom,var(--bg-radial-start) 0%,var(--bg-radial-end) 100%);-webkit-font-smoothing:antialiased}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:var(--scroll-thumb);border-radius:6px}::-webkit-scrollbar-thumb:hover{background:var(--scroll-thumb-hover)}.app-shell{display:flex;flex-direction:column;height:100vh;position:relative;z-index:1;padding:12px 16px;gap:12px;box-sizing:border-box;overflow:hidden}.main-area{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden}.panel{flex:1;min-height:0;display:flex;flex-direction:column;background:var(--panel-bg);border:1px solid var(--panel-border);border-radius:14px;padding:14px;backdrop-filter:blur(12px) saturate(140%);-webkit-backdrop-filter:blur(12px) saturate(140%);box-shadow:var(--shadow);gap:10px;overflow:hidden}@media (max-height: 600px),(max-width: 900px){html,body,#app{height:auto;min-height:100vh;overflow-y:auto}.app-shell{height:auto;min-height:100vh;overflow:visible}.main-area{flex:none;min-height:560px;overflow:visible}.panel{flex:none;min-height:520px;max-height:72vh}}.panel-toolbar{display:flex;align-items:center;gap:10px;flex-wrap:wrap}.panel-toolbar .spacer{flex:1}.split{flex:1;min-height:0;display:grid;grid-template-columns:1fr 1fr;gap:10px}.pane{display:flex;flex-direction:column;min-height:0;border:1px solid var(--panel-border);border-radius:10px;background:var(--panel-inner);overflow:hidden}.pane-header{display:flex;align-items:center;gap:8px;padding:8px 10px;font-size:12px;color:var(--text-muted);border-bottom:1px solid var(--panel-border);background:#0000000d;flex-wrap:wrap}.pane-body{flex:1;min-height:0;overflow:auto;padding:8px 10px}.code-textarea{flex:1;width:100%;min-height:0;resize:none;border:none;outline:none;padding:12px;background:transparent;color:var(--text);font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;line-height:1.55;overflow:auto}.btn-primary{display:inline-flex;align-items:center;gap:6px;background:var(--primary);color:#fff;border:none;padding:8px 14px;border-radius:8px;cursor:pointer;font-weight:600;transition:background .15s}.btn-primary:hover:not(:disabled){background:var(--primary-hover)}.btn-primary:disabled{opacity:.6;cursor:not-allowed}.icon-btn{width:34px;height:34px;display:inline-flex;align-items:center;justify-content:center;background:var(--panel-inner);color:var(--text);border:1px solid var(--panel-border);border-radius:8px;cursor:pointer;transition:background .15s}.icon-btn:hover{background:var(--panel-border)}.copy-btn{margin-left:auto;display:inline-flex;align-items:center;gap:4px;font-size:12px;padding:3px 8px;color:var(--text-muted);background:transparent;border:1px solid var(--panel-border);border-radius:6px;cursor:pointer;transition:all .15s}.copy-btn:hover{color:var(--primary);border-color:var(--primary)}select{padding:6px 10px;background:var(--panel-inner);color:var(--text);border:1px solid var(--panel-border);border-radius:8px;font-size:13px;cursor:pointer;outline:none}.checkbox{display:inline-flex;align-items:center;gap:6px;font-size:13px;color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none}.counter{font-size:12px;color:var(--text-muted)}.alert-error{display:flex;align-items:flex-start;gap:8px;padding:10px 14px;background:var(--danger-bg);border:1px solid var(--danger);border-left:4px solid var(--danger);border-radius:8px;color:var(--danger);font-size:13px;font-weight:500;animation:shakeIn .35s ease-out;box-shadow:0 0 20px #f8717133}@keyframes shakeIn{0%{transform:translate(-6px);opacity:0}40%{transform:translate(4px);opacity:1}70%{transform:translate(-2px)}to{transform:translate(0)}}.empty-hint{display:flex;align-items:center;justify-content:center;height:100%;color:var(--text-muted);font-size:13px}.code-view{margin:0;padding:0;font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;line-height:1.6;white-space:pre-wrap;word-break:break-all;color:var(--text);background:transparent}.code-view code{font-family:inherit;background:transparent}.hljs{background:transparent;color:var(--text)}.hljs-comment,.hljs-quote{color:var(--syn-comment);font-style:italic}.hljs-keyword,.hljs-selector-tag,.hljs-section,.hljs-doctag,.hljs-meta .hljs-keyword{color:var(--syn-keyword);font-weight:600}.hljs-string,.hljs-regexp,.hljs-addition,.hljs-attribute,.hljs-meta .hljs-string{color:var(--syn-string)}.hljs-number,.hljs-symbol,.hljs-bullet,.hljs-link{color:var(--syn-number)}.hljs-literal{color:var(--syn-bool)}.hljs-built_in,.hljs-type,.hljs-class .hljs-title,.hljs-title.class_{color:var(--syn-builtin)}.hljs-attr,.hljs-property{color:var(--syn-key)}.hljs-punctuation{color:var(--syn-punc)}.hljs-operator{color:var(--syn-op)}.hljs-variable,.hljs-template-variable{color:var(--syn-bool)}.hljs-meta{color:var(--syn-attr)}.hljs-deletion{color:var(--danger)}.hljs-tag{color:var(--syn-tag)}.hljs-tag .hljs-name{color:var(--syn-name);font-weight:600}.hljs-tag .hljs-attr{color:var(--syn-attr)}.hljs-tag .hljs-string{color:var(--syn-string)}.hljs-literal.is-null{color:var(--syn-null);font-style:italic}.tree-node{font-family:JetBrains Mono,ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px;line-height:1.6}.tree-row{display:flex;align-items:center;gap:4px;padding:2px 4px;border-radius:4px;cursor:pointer}.tree-row:hover{background:#94a3b81a}.tree-row.leaf{cursor:default}.chev{color:var(--text-muted);flex-shrink:0}.chev-spacer{width:14px;flex-shrink:0}.tree-key{color:var(--syn-key);font-weight:500}.tree-preview{color:var(--text-muted)}.tree-children{padding-left:20px;border-left:1px dashed var(--panel-border);margin-left:10px}.tok-string{color:var(--syn-string)}.tok-number{color:var(--syn-number)}.tok-boolean{color:var(--syn-bool)}.tok-null{color:var(--syn-null);font-style:italic}
