.sidebar[data-v-2bda49b9]{background:var(--bg-secondary);border-right:1px solid var(--border);z-index:10;flex-direction:column;flex-shrink:0;height:100%;transition:width .2s;display:flex;overflow:hidden}.sidebar-brand[data-v-2bda49b9]{align-items:center;gap:var(--space-sm);padding:var(--space-md) var(--space-sm);flex-shrink:0;height:52px;display:flex}.brand-logo[data-v-2bda49b9]{border-radius:var(--radius-md);flex-shrink:0;justify-content:center;align-items:center;width:40px;height:40px;display:flex}.brand-name[data-v-2bda49b9]{font-size:var(--font-size-base);color:var(--text-primary);white-space:nowrap;font-weight:600}.sidebar-nav[data-v-2bda49b9]{padding:0 var(--space-sm);scrollbar-width:thin;scrollbar-color:transparent transparent;flex-direction:column;flex:1;gap:2px;display:flex;overflow:hidden auto}.sidebar-nav[data-v-2bda49b9]::-webkit-scrollbar{width:6px;height:6px}.sidebar-nav[data-v-2bda49b9]::-webkit-scrollbar-track{background:0 0}.sidebar-nav[data-v-2bda49b9]::-webkit-scrollbar-thumb{background:0 0;border-radius:3px}.sidebar:hover .sidebar-nav[data-v-2bda49b9]{scrollbar-color:var(--bg-hover) transparent}.sidebar:hover .sidebar-nav[data-v-2bda49b9]::-webkit-scrollbar-thumb{background:var(--bg-hover)}.sidebar:hover .sidebar-nav[data-v-2bda49b9]::-webkit-scrollbar-thumb:hover{background:var(--text-muted)}.sidebar.collapsed .sidebar-brand[data-v-2bda49b9]{padding:var(--space-md) 0;justify-content:center}.sidebar.collapsed .sidebar-nav[data-v-2bda49b9]{padding:0}.sidebar.collapsed .nav-item[data-v-2bda49b9]{justify-content:center;padding:8px 0}.nav-item[data-v-2bda49b9]{align-items:center;gap:var(--space-md);padding:8px var(--space-sm);border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;white-space:nowrap;text-decoration:none;transition:background-color .15s,color .15s;display:flex}.nav-item[data-v-2bda49b9]:hover{background:var(--bg-hover);color:var(--text-primary)}.nav-item.active[data-v-2bda49b9]{color:var(--text-primary);background:#6366f124}.nav-icon[data-v-2bda49b9]{flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;display:flex}.nav-label[data-v-2bda49b9]{font-size:var(--font-size-sm);font-weight:500}.sidebar-footer[data-v-2bda49b9]{padding:var(--space-md) var(--space-sm);border-top:1px solid var(--border);flex-shrink:0;justify-content:space-around;display:flex}.footer-btn[data-v-2bda49b9]{border-radius:var(--radius-md);width:32px;height:32px;color:var(--text-secondary);justify-content:center;align-items:center;transition:background-color .15s,color .15s;display:flex}.footer-btn[data-v-2bda49b9]:hover{background:var(--bg-hover);color:var(--text-primary)}.footer-btn.active[data-v-2bda49b9]{color:var(--brand-primary);background:#6366f129}.footer-btn.active[data-v-2bda49b9]:hover{color:var(--brand-primary-dark);background:#6366f138}.app-root[data-v-a44a575d]{height:100%;display:flex}.app-main[data-v-a44a575d]{flex-direction:column;flex:1;min-width:0;display:flex;overflow:hidden}:root{--brand-primary:#6366f1;--brand-primary-dark:#4f46e5;--brand-primary-light:#818cf8;--tool-json:#10b981;--tool-converter:#8b5cf6;--tool-time:#3b82f6;--tool-diff:#f97316;--tool-base64:#ec4899;--tool-url:#14b8a6;--tool-regex:#f43f5e;--tool-jwt:#8b5cf6;--tool-hash:#06b6d4;--tool-uuid:#84cc16;--tool-color:#f59e0b;--tool-curl:#64748b;--tool-stats:#3b82f6;--tool-case:#8b5cf6;--tool-qr:#10b981;--tool-radix:#f97316;--tool-mermaid:#ff6b9d;--color-success:#10b981;--color-warning:#f59e0b;--color-error:#ef4444;--color-info:#3b82f6;--bg-primary:#fff;--bg-secondary:#f8fafc;--bg-tertiary:#f1f5f9;--bg-hover:#e2e8f0;--text-primary:#1e293b;--text-secondary:#64748b;--text-muted:#94a3b8;--border:#e2e8f0;--shadow-sm:0 1px 2px #0000000d;--shadow-md:0 2px 8px #00000014;--shadow-lg:0 4px 16px #0000001f;--space-xs:4px;--space-sm:8px;--space-md:12px;--space-lg:16px;--space-xl:24px;--radius-sm:4px;--radius-md:6px;--radius-lg:8px;--radius-xl:12px;--font-size-xs:11px;--font-size-sm:12px;--font-size-base:13px;--font-size-lg:14px;--font-size-xl:16px;--font-size-2xl:18px;--font-sans:-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "PingFang SC", "Microsoft YaHei", sans-serif;--font-mono:"SF Mono", SFMono-Regular, Monaco, "Cascadia Code", Consolas, "Courier New", monospace;--sidebar-collapsed:64px;--sidebar-expanded:200px}.dark{--bg-primary:#0f172a;--bg-secondary:#1e293b;--bg-tertiary:#334155;--bg-hover:#475569;--text-primary:#f8fafc;--text-secondary:#cbd5e1;--text-muted:#64748b;--border:#334155;--shadow-sm:0 1px 2px #0006;--shadow-md:0 2px 8px #00000080;--shadow-lg:0 4px 16px #0009}@media (prefers-color-scheme:dark){:root:not(.light){--bg-primary:#0f172a;--bg-secondary:#1e293b;--bg-tertiary:#334155;--bg-hover:#475569;--text-primary:#f8fafc;--text-secondary:#cbd5e1;--text-muted:#64748b;--border:#334155;--shadow-sm:0 1px 2px #0006;--shadow-md:0 2px 8px #00000080;--shadow-lg:0 4px 16px #0009}}*,:before,:after{box-sizing:border-box;margin:0;padding:0}html,body{height:100%;overflow:hidden}body{font-family:var(--font-sans);font-size:var(--font-size-base);color:var(--text-primary);background:var(--bg-primary);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#app{height:100%}::-webkit-scrollbar{width:8px;height:8px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:var(--border);border-radius:4px}::-webkit-scrollbar-thumb:hover{background:var(--bg-hover)}::selection{background:var(--brand-primary-light);color:#fff}button{font-family:inherit;font-size:inherit;cursor:pointer;color:inherit;background:0 0;border:none}input,textarea,select{font-family:inherit;font-size:inherit;color:inherit;background:0 0}input:focus,textarea:focus,select:focus,button:focus{outline:none}a{color:var(--brand-primary);text-decoration:none}.panel{background:var(--bg-secondary);border:1px solid var(--border);border-radius:var(--radius-lg);flex-direction:column;min-height:0;display:flex;overflow:hidden}.panel-header{justify-content:space-between;align-items:center;gap:var(--space-sm);padding:var(--space-sm) var(--space-md);border-bottom:1px solid var(--border);font-size:var(--font-size-sm);color:var(--text-secondary);background:var(--bg-tertiary);-webkit-user-select:none;user-select:none;display:flex}.panel-title{align-items:center;gap:var(--space-sm);color:var(--text-primary);font-weight:600;display:flex}.panel-body{flex:1;min-height:0;overflow:auto}:root{--tok-key:#0b6bcf;--tok-string:#a05a2c;--tok-number:#1a7f37;--tok-bool:#0a6f9b;--tok-punct:#6b7280}.dark{--tok-key:#9cdcfe;--tok-string:#ce9178;--tok-number:#b5cea8;--tok-bool:#569cd6;--tok-punct:#8a919e}@media (prefers-color-scheme:dark){:root:not(.light){--tok-key:#9cdcfe;--tok-string:#ce9178;--tok-number:#b5cea8;--tok-bool:#569cd6;--tok-punct:#8a919e}}.tok-key{color:var(--tok-key)}.tool-page{flex-direction:column;height:100%;min-height:0;display:flex}.split{gap:var(--space-lg);min-height:0;padding:var(--space-lg) var(--space-xl);flex:1;display:flex}.split>.panel{flex:1}.tok-string{color:var(--tok-string)}.tok-number{color:var(--tok-number)}.tok-bool{color:var(--tok-bool)}.tok-punct{color:var(--tok-punct)}:root{--f-keyword:#7c3aed;--f-string:#1a7f37;--f-number:#c2410c;--f-bool:#0e7490;--f-null:#0e7490;--f-key:#be123c;--f-comment:#64748b;--f-builtin:#2563eb;--f-decorator:#a16207;--f-tag:#be123c;--f-attr:#c2410c}.dark{--f-keyword:#c678dd;--f-string:#98c379;--f-number:#d19a66;--f-bool:#56b6c2;--f-null:#56b6c2;--f-key:#e06c75;--f-comment:#5c6370;--f-builtin:#61afef;--f-decorator:#e5c07b;--f-tag:#e06c75;--f-attr:#d19a66}@media (prefers-color-scheme:dark){:root:not(.light){--f-keyword:#c678dd;--f-string:#98c379;--f-number:#d19a66;--f-bool:#56b6c2;--f-null:#56b6c2;--f-key:#e06c75;--f-comment:#5c6370;--f-builtin:#61afef;--f-decorator:#e5c07b;--f-tag:#e06c75;--f-attr:#d19a66}}.f-tok.f-keyword{color:var(--f-keyword);font-weight:500}.f-tok.f-string{color:var(--f-string)}.f-tok.f-number{color:var(--f-number)}.f-tok.f-bool{color:var(--f-bool)}.f-tok.f-null{color:var(--f-null)}.f-tok.f-key{color:var(--f-key)}.f-tok.f-comment{color:var(--f-comment);font-style:italic}.f-tok.f-builtin{color:var(--f-builtin)}.f-tok.f-decorator{color:var(--f-decorator)}.f-tok.f-tag{color:var(--f-tag)}.f-tok.f-attr{color:var(--f-attr)}.f-tok.f-punct{color:var(--text-secondary)}
