:root{--text:#64748b;--text-h:#0f172a;--bg:#f1f5f9;--surface:#fff;--border:#e2e8f0;--border-focus:#6366f1;--accent:#6366f1;--accent-bg:#6366f114;--accent-hover:#4f46e5;--green:#10b981;--green-bg:#10b9811a;--red:#ef4444;--red-bg:#ef444414;--editor-bg:#1e1e2e;--editor-text:#cdd6f4;--editor-border:#313244;--editor-gutter:#181825;--editor-placeholder:#585b70;--shadow-sm:0 1px 2px #0000000d;--shadow:0 1px 3px #0000001a, 0 1px 2px #0000000f;--shadow-md:0 4px 6px -1px #0000001a, 0 2px 4px -2px #0000001a;--radius:8px;--radius-sm:6px;--header-h:56px;--sans:system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;--mono:"JetBrains Mono", "Fira Code", ui-monospace, Consolas, monospace;font:16px/1.5 var(--sans);color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}@media (prefers-color-scheme:dark){:root{--text:#94a3b8;--text-h:#f1f5f9;--bg:#0f172a;--surface:#1e293b;--border:#334155;--border-focus:#818cf8;--accent:#818cf8;--accent-bg:#818cf81a;--accent-hover:#6366f1;--green:#34d399;--green-bg:#34d3991a;--red:#f87171;--red-bg:#f871711a;--editor-bg:#0f0f1a;--editor-text:#cdd6f4;--editor-border:#1e293b;--editor-gutter:#0a0a14;--editor-placeholder:#475569;--shadow-sm:0 1px 2px #0003;--shadow:0 1px 3px #0000004d;--shadow-md:0 4px 6px -1px #0000004d}}*{box-sizing:border-box;margin:0;padding:0}body{background:var(--bg)}#root,.layout{flex-direction:column;min-height:100vh;display:flex}.header{height:var(--header-h);background:var(--surface);border-bottom:1px solid var(--border);z-index:100;justify-content:space-between;align-items:center;padding:0 24px;display:flex;position:sticky;top:0}.header-left{align-items:center;gap:24px;display:flex}.logo{color:var(--accent);letter-spacing:-.5px;font-size:20px;font-weight:700;text-decoration:none}.layout-body{flex:1;min-height:0;display:flex}.main{flex:1;min-width:0;overflow:auto}.footer{color:var(--text);border-top:1px solid var(--border);background:var(--surface);justify-content:space-between;align-items:center;padding:16px 24px;font-size:13px;display:flex}.footer-links{align-items:center;gap:8px;display:flex}.footer-links a{color:var(--text);text-decoration:none;transition:color .15s}.footer-links a:hover{color:var(--accent)}.footer-sep{color:var(--border)}.sidebar{background:var(--surface);border-right:1px solid var(--border);width:220px;height:calc(100vh - var(--header-h));top:var(--header-h);flex-shrink:0;padding:12px 0;position:sticky;overflow-y:auto}.sidebar-item{color:var(--text);cursor:pointer;align-items:center;gap:8px;padding:7px 16px;font-size:13px;text-decoration:none;transition:background .15s,color .15s;display:flex}.sidebar-item:hover{background:var(--accent-bg);color:var(--accent)}.sidebar-item.active{background:var(--accent-bg);color:var(--accent);font-weight:600}.sidebar-icon{text-align:center;flex-shrink:0;width:20px;font-size:14px}.sidebar-divider{background:var(--border);height:1px;margin:8px 16px}.sidebar-group-title{text-transform:uppercase;letter-spacing:.8px;color:var(--text);cursor:pointer;-webkit-user-select:none;user-select:none;justify-content:space-between;align-items:center;padding:8px 16px 4px;font-size:11px;font-weight:700;display:flex}.sidebar-group-title:hover{color:var(--accent)}.sidebar-arrow{opacity:.5;font-size:12px}.home{max-width:960px;margin:0 auto;padding:40px 24px}.home-hero{text-align:center;margin-bottom:40px}.home-hero h1{color:var(--text-h);letter-spacing:-1px;margin-bottom:8px;font-size:36px;font-weight:700}.home-hero p{color:var(--text);margin-bottom:24px;font-size:17px}.home-search{max-width:480px;margin:0 auto;position:relative}.home-search-icon{color:var(--text);pointer-events:none;font-size:18px;position:absolute;top:50%;left:14px;transform:translateY(-50%)}.home-search input{border:1px solid var(--border);border-radius:var(--radius);background:var(--surface);width:100%;color:var(--text-h);outline:none;padding:12px 16px 12px 42px;font-size:15px;transition:border-color .15s,box-shadow .15s}.home-search input:focus{border-color:var(--border-focus);box-shadow:0 0 0 3px var(--accent-bg)}.home-search input::placeholder{color:var(--text);opacity:.6}.home-section{margin-bottom:36px}.home-section-title{color:var(--text);text-transform:uppercase;letter-spacing:1px;margin-bottom:16px;padding-left:2px;font-size:14px;font-weight:600}.category-grid{grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:12px;display:grid}.category-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px;transition:border-color .15s,box-shadow .15s}.category-card:hover{border-color:var(--accent);box-shadow:var(--shadow-md)}.category-name{color:var(--text-h);margin-bottom:4px;font-size:15px;font-weight:600}.category-count{color:var(--text);margin-bottom:12px;font-size:12px}.category-tools{flex-direction:column;gap:4px;display:flex}.category-tool-link{color:var(--accent);padding:2px 0;font-size:13px;text-decoration:none;transition:opacity .15s}.category-tool-link:hover{opacity:.8}.static-page{max-width:720px;margin:0 auto;padding:48px 24px}.static-page h1{color:var(--text-h);margin-bottom:24px;font-size:28px;font-weight:700}.static-page p{color:var(--text);margin-bottom:16px;font-size:15px;line-height:1.8}.tool-grid{grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:12px;display:grid}.tool-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);color:inherit;flex-direction:column;padding:20px;text-decoration:none;transition:border-color .15s,box-shadow .15s,transform .1s;display:flex}.tool-card:hover{border-color:var(--accent);box-shadow:var(--shadow-md);transform:translateY(-1px)}.tool-card-top{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.tool-icon{font-size:20px;font-family:var(--mono);border-radius:var(--radius-sm);background:var(--accent-bg);width:40px;height:40px;color:var(--accent);justify-content:center;align-items:center;font-weight:600;display:flex}.tool-category{color:var(--accent);background:var(--accent-bg);letter-spacing:.3px;border-radius:10px;padding:2px 8px;font-size:11px;font-weight:600}.tool-card h2{color:var(--text-h);margin-bottom:4px;font-size:15px;font-weight:600}.tool-card p{color:var(--text);flex:1;font-size:13px}.tool-arrow{color:var(--accent);opacity:0;margin-top:12px;font-size:14px;transition:opacity .15s,transform .15s}.tool-card:hover .tool-arrow{opacity:1;transform:translate(4px)}.workspace{height:calc(100vh - var(--header-h));background:var(--bg);flex-direction:column;display:flex}.workspace-header{background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:12px 20px;display:flex}.workspace-info{align-items:center;gap:12px;display:flex}.workspace-back{color:var(--text);border-radius:var(--radius-sm);padding:4px 8px;font-size:13px;text-decoration:none;transition:background .15s}.workspace-back:hover{background:var(--accent-bg)}.workspace-title{color:var(--text-h);font-size:16px;font-weight:600}.workspace-desc{color:var(--text);border-left:2px solid var(--border);margin-left:8px;padding-left:8px;font-size:13px}.workspace-status{letter-spacing:.3px;border-radius:10px;padding:3px 10px;font-size:11px;font-weight:600}.workspace-status.valid{color:var(--green);background:var(--green-bg)}.workspace-status.invalid{color:var(--red);background:var(--red-bg)}.workspace-status.idle{color:var(--text);background:var(--accent-bg)}.workspace-body{flex:1;grid-template-columns:minmax(0,1fr) minmax(0,1fr);min-height:0;display:grid}.workspace-panel{border-right:1px solid var(--border);flex-direction:column;min-height:0;display:flex}.workspace-panel:last-child{border-right:none}.panel-header{background:var(--surface);border-bottom:1px solid var(--border);flex-shrink:0;justify-content:space-between;align-items:center;padding:8px 16px;display:flex}.panel-label{color:var(--text);text-transform:uppercase;letter-spacing:.5px;font-size:12px;font-weight:600}.panel-body{flex:1;min-height:0;position:relative;overflow:auto}.panel-body>.code-editor-wrapper{min-height:200px}.editor-input{width:100%;height:100%;font-family:var(--mono);background:var(--editor-bg);color:var(--editor-text);resize:none;tab-size:2;border:none;outline:none;padding:16px;font-size:13px;line-height:1.6}.editor-input::placeholder{color:var(--editor-placeholder)}.code-editor-wrapper{border:1px solid var(--border);border-radius:var(--radius);background:#fafafa;width:100%;height:100%;min-height:200px;position:relative;overflow:hidden}.code-editor-wrapper:focus-within{border-color:var(--accent);box-shadow:0 0 0 2px #6366f11f}.code-editor-wrapper .monaco-editor,.code-editor-wrapper .monaco-editor .overflow-guard{border-radius:var(--radius)!important}.code-editor-wrapper .monaco-editor .margin{background:#fafafa}.code-editor-placeholder{pointer-events:none;z-index:1;color:#999;white-space:pre-wrap;word-break:break-word;align-items:flex-start;padding:12px 12px 12px 52px;font-family:Menlo,Monaco,Consolas,Courier New,monospace;font-size:14px;line-height:1.6;display:flex;position:absolute;inset:0}.code-editor-placeholder span{padding-top:0}.code-editor-loading{height:100%;min-height:200px;color:var(--text);border:1px solid var(--border);border-radius:var(--radius);background:#fafafa;justify-content:center;align-items:center;font-size:13px;display:flex}.editor-output{width:100%;height:100%;font-family:var(--mono);background:var(--editor-bg);color:var(--editor-text);white-space:pre-wrap;word-break:break-all;tab-size:2;padding:16px;font-size:13px;line-height:1.6;overflow:auto}.editor-output.error{color:var(--red);background:var(--editor-bg)}.editor-output.valid{color:var(--green)}.editor-output-placeholder{color:var(--editor-placeholder)}.line-output{font-family:var(--mono);background:var(--editor-bg);color:var(--editor-text);tab-size:2;height:100%;padding:8px 0;font-size:13px;line-height:1.6;overflow:auto}.line-output.error{color:var(--red)}.line-output-line{padding:0 16px;display:flex}.line-output-num{text-align:right;width:36px;color:var(--editor-placeholder);-webkit-user-select:none;user-select:none;flex-shrink:0;padding-right:16px;display:inline-block}.line-output-content{white-space:pre-wrap;word-break:break-all}.line-output-content.placeholder{color:var(--editor-placeholder)}.toolbar{align-items:center;gap:4px;display:flex}.toolbar-btn{border-radius:var(--radius-sm);width:32px;height:32px;color:var(--text);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;font-size:14px;transition:background .15s,color .15s;display:flex}.toolbar-btn:hover,.toolbar-btn.active{background:var(--accent-bg);color:var(--accent)}.toolbar-btn-text{gap:4px;width:auto;padding:0 10px;font-size:12px;font-weight:500}.toolbar-btn-sync{border:1px solid var(--border);background:var(--bg);gap:4px;width:auto;padding:0 10px;font-size:12px;font-weight:600}.toolbar-btn-sync:hover{border-color:var(--accent);background:var(--accent-bg)}.toolbar-btn-sync.active{border-color:var(--accent);background:var(--accent);color:#fff}.validator-result{height:100%;color:var(--green);flex-direction:column;justify-content:center;align-items:center;padding:24px;display:flex}.validator-icon{margin-bottom:8px;font-size:48px}.validator-message{font-size:16px;font-weight:600}.error-detail{height:100%;padding:20px;font-size:13px;line-height:1.6;overflow:auto}.error-detail-header{color:var(--red);align-items:center;gap:8px;margin-bottom:16px;font-size:16px;font-weight:700;display:flex}.error-detail-icon{font-size:18px}.error-detail-location{background:var(--red-bg);border-radius:var(--radius-sm);border:1px solid #ef444426;gap:16px;margin-bottom:16px;padding:10px 14px;display:flex}.error-detail-row{align-items:center;gap:6px;display:flex}.error-detail-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text);font-size:11px;font-weight:600}.error-detail-value{font-family:var(--mono);color:var(--red);font-weight:600}.error-detail-section{margin-bottom:14px}.error-detail-section-title{text-transform:uppercase;letter-spacing:.5px;color:var(--text);margin-bottom:6px;font-size:11px;font-weight:600}.error-detail-text{font-family:var(--mono);color:var(--text-h);background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);word-break:break-all;padding:8px 12px;font-size:12px}.error-detail-list{padding:0;list-style:none}.error-detail-list li{color:var(--text);padding:4px 0 4px 16px;font-size:12px;position:relative}.error-detail-list li:before{content:"•";color:var(--red);position:absolute;left:2px}.error-context{font-family:var(--mono);background:var(--editor-bg);border-radius:var(--radius-sm);padding:8px 0;font-size:12px;overflow-x:auto}.error-context-line{padding:1px 0;display:flex}.error-context-line.error-context-highlight{background:#ef444426}.error-context-num{text-align:right;width:36px;color:var(--editor-placeholder);-webkit-user-select:none;user-select:none;flex-shrink:0;padding-right:12px;display:inline-block}.error-context-content{color:var(--editor-text);white-space:pre}.error-context-highlight .error-context-content{color:var(--red);font-weight:600}.error-context-pointer{padding:1px 0;display:flex}.error-context-pointer .error-context-content{color:var(--red);font-weight:700}.ea-upload-area{flex-direction:column;justify-content:center;align-items:center;padding:48px 24px;display:flex}.ea-loading{color:var(--accent);margin-bottom:16px;font-size:16px}.ea-error{color:var(--red);margin-bottom:16px;font-size:14px}.ea-upload{width:100%;max-width:480px}.ea-dropzone{border:2px dashed var(--border);border-radius:var(--radius);text-align:center;cursor:pointer;padding:48px 24px;transition:border-color .2s,background .2s;position:relative}.ea-dropzone:hover{border-color:var(--accent);background:var(--accent-bg)}.ea-dropzone-icon{margin-bottom:12px;font-size:40px}.ea-dropzone-text{color:var(--text-h);margin-bottom:4px;font-size:16px;font-weight:600}.ea-dropzone-sub{color:var(--text);opacity:.6;font-size:13px}.ea-file-input{opacity:0;cursor:pointer;position:absolute;inset:0}.ea-upload-hint{text-align:center;color:var(--text);opacity:.5;margin-top:8px;font-size:12px}.ea-main{height:calc(100vh - var(--header-h) - 60px);grid-template-columns:280px 1fr;gap:0;display:grid;overflow:hidden}.ea-left-panel{border-right:1px solid var(--border);flex-direction:column;gap:16px;padding:16px;display:flex;overflow-y:auto}.ea-right-panel{flex-direction:column;gap:16px;padding:16px;display:flex;overflow-y:auto}.ea-section-title{text-transform:uppercase;letter-spacing:.8px;color:var(--text);margin-bottom:8px;font-size:11px;font-weight:700}.ea-reset-btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);cursor:pointer;padding:4px 12px;font-size:12px;transition:all .15s}.ea-reset-btn:hover{border-color:var(--red);color:var(--red)}.ea-dataset-info{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px}.ea-info-title{color:var(--text-h);word-break:break-all;margin-bottom:8px;font-size:14px;font-weight:600}.ea-info-stats{flex-wrap:wrap;gap:12px;display:flex}.ea-info-stat{flex-direction:column;gap:2px;display:flex}.ea-info-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text);opacity:.6;font-size:10px}.ea-info-value{color:var(--accent);font-size:16px;font-weight:700;font-family:var(--mono)}.ea-sheet-select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-h);cursor:pointer;outline:none;padding:4px 8px;font-size:12px}.ea-column-selector{flex-direction:column;gap:4px;display:flex}.ea-column-item{justify-content:space-between;align-items:center;padding:4px 0;display:flex}.ea-column-label{color:var(--text-h);cursor:pointer;align-items:center;gap:6px;font-size:13px;display:flex}.ea-column-label input{accent-color:var(--accent)}.ea-column-type{text-transform:uppercase;letter-spacing:.5px;border-radius:3px;padding:2px 6px;font-size:10px;font-weight:600}.ea-type-number{color:#89b4fa;background:#89b4fa26}.ea-type-text{color:#a6e3a1;background:#a6e3a126}.ea-type-date{color:#f9e2af;background:#f9e2af26}.ea-type-boolean{color:#cba6f7;background:#cba6f726}.ea-type-empty{color:#6c7086;background:#6c708626}.ea-chart-builder{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:12px;padding:12px;display:flex}.ea-builder-field label{text-transform:uppercase;letter-spacing:.5px;color:var(--text);margin-bottom:4px;font-size:11px;font-weight:600;display:block}.ea-builder-field select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);width:100%;color:var(--text-h);outline:none;padding:6px 10px;font-size:13px}.ea-builder-field select:focus{border-color:var(--accent)}.ea-y-checkboxes{flex-direction:column;gap:4px;display:flex}.ea-y-check{color:var(--text-h);cursor:pointer;align-items:center;gap:6px;font-size:13px;display:flex}.ea-y-check input{accent-color:var(--accent)}.ea-agg-options{flex-wrap:wrap;gap:6px;display:flex}.ea-agg-radio{color:var(--text-h);cursor:pointer;align-items:center;gap:4px;font-size:12px;display:flex}.ea-agg-radio input{accent-color:var(--accent)}.ea-chart-types{flex-wrap:wrap;gap:4px;display:flex}.ea-chart-type-btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);cursor:pointer;padding:4px 10px;font-size:12px;transition:all .15s}.ea-chart-type-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.ea-chart-type-btn:hover:not(.active){border-color:var(--accent);color:var(--accent)}.ea-chart-header{justify-content:space-between;align-items:center;display:flex}.ea-chart-title{color:var(--text-h);font-size:14px;font-weight:600}.ea-download-btns{gap:4px;display:flex}.ea-download-btns button{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);cursor:pointer;padding:4px 10px;font-size:11px;font-weight:600;transition:all .15s}.ea-download-btns button:hover{border-color:var(--accent);color:var(--accent)}.ea-chart-preview{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);min-height:300px;padding:16px}.ea-chart-empty{min-height:300px;color:var(--text);opacity:.5;flex-direction:column;justify-content:center;align-items:center;gap:8px;display:flex}.ea-chart-empty-icon{font-size:32px}.ea-data-summary{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:12px}.ea-summary-grid{flex-wrap:wrap;gap:12px;margin-bottom:12px;display:flex}.ea-summary-stat{flex-direction:column;gap:2px;display:flex}.ea-summary-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text);opacity:.6;font-size:10px}.ea-summary-value{color:var(--accent);font-size:16px;font-weight:700;font-family:var(--mono)}.ea-summary-warning .ea-summary-value{color:var(--red)}.ea-summary-table-wrap{overflow-x:auto}.ea-summary-table{border-collapse:collapse;width:100%;font-size:12px}.ea-summary-table th{text-align:left;border-bottom:1px solid var(--border);color:var(--text);text-transform:uppercase;letter-spacing:.5px;padding:6px 10px;font-size:11px;font-weight:600}.ea-summary-table td{border-bottom:1px solid var(--border);color:var(--text-h);font-family:var(--mono);padding:6px 10px}@media (width<=768px){.sidebar{display:none}.home-hero h1{font-size:28px}.workspace-body{grid-template-rows:1fr 1fr;grid-template-columns:1fr}.workspace-panel{border-right:none;border-bottom:1px solid var(--border)}.workspace-panel:last-child{border-bottom:none}.workspace-desc{display:none}.tool-grid,.category-grid{grid-template-columns:1fr}.ea-main{grid-template-columns:1fr;height:auto}}.editor-input::-webkit-scrollbar{width:8px;height:8px}.editor-output::-webkit-scrollbar{width:8px;height:8px}.panel-body::-webkit-scrollbar{width:8px;height:8px}.editor-input::-webkit-scrollbar-track{background:var(--editor-gutter)}.editor-output::-webkit-scrollbar-track{background:var(--editor-gutter)}.panel-body::-webkit-scrollbar-track{background:var(--editor-gutter)}.editor-input::-webkit-scrollbar-thumb{background:var(--editor-border);border-radius:4px}.editor-output::-webkit-scrollbar-thumb{background:var(--editor-border);border-radius:4px}.panel-body::-webkit-scrollbar-thumb{background:var(--editor-border);border-radius:4px}.editor-input::-webkit-scrollbar-thumb:hover{background:#585b70}.editor-output::-webkit-scrollbar-thumb:hover{background:#585b70}.panel-body::-webkit-scrollbar-thumb:hover{background:#585b70}.jwt-output{flex-direction:column;gap:16px;height:100%;padding:16px;display:flex;overflow:auto}.jwt-section{flex-shrink:0}.jwt-section .code-editor-wrapper{min-height:unset;height:auto;overflow:hidden}.jwt-section .line-output{height:auto;max-height:200px}.jwt-section-title{text-transform:uppercase;letter-spacing:.5px;color:var(--accent);margin-bottom:6px;font-size:11px;font-weight:600}.jwt-signature{font-family:var(--mono);color:var(--text);background:var(--editor-bg);border-radius:var(--radius-sm);word-break:break-all;padding:8px 12px;font-size:12px}.password-options{flex-direction:column;gap:16px;padding:16px;display:flex}.password-length label{color:var(--text-h);font-size:14px;font-weight:500}.password-length input[type=range]{width:100%;accent-color:var(--accent);margin-top:8px}.password-check{color:var(--text-h);cursor:pointer;align-items:center;gap:8px;font-size:14px;display:flex}.password-check input[type=checkbox]{accent-color:var(--accent);width:16px;height:16px}.password-result{flex-direction:column;justify-content:center;align-items:center;height:100%;padding:24px;display:flex}.password-text{font-family:var(--mono);color:var(--editor-text);word-break:break-all;text-align:center;background:var(--editor-bg);border-radius:var(--radius);width:100%;padding:16px 24px;font-size:20px;font-weight:600;line-height:1.4}.uuid-result{flex-direction:column;justify-content:center;align-items:center;height:100%;padding:24px;display:flex}.uuid-text{font-family:var(--mono);color:var(--editor-text);background:var(--editor-bg);border-radius:var(--radius);word-break:break-all;text-align:center;width:100%;padding:16px 24px;font-size:18px;font-weight:600}.uuid-history{background:var(--editor-bg);flex-direction:column;gap:2px;height:100%;padding:8px;display:flex}.uuid-history-item{font-family:var(--mono);border-radius:var(--radius-sm);color:#e2e8f0;cursor:pointer;padding:6px 12px;font-size:12px;transition:background .15s}.uuid-history-item:hover{background:#6366f11a}.hash-algo-tabs{gap:2px;display:flex}.hash-algo-tab{color:var(--text);cursor:pointer;font-size:11px;font-family:var(--mono);background:0 0;border:none;border-radius:4px;padding:2px 8px;transition:all .15s}.hash-algo-tab.active{background:var(--accent);color:#fff}.hash-algo-tab:hover:not(.active){background:var(--accent-bg)}.stats-grid{grid-template-columns:repeat(auto-fit,minmax(120px,1fr));align-content:start;gap:16px;height:100%;padding:24px;display:grid}.stat-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);text-align:center;padding:16px}.stat-value{color:var(--accent);font-size:28px;font-weight:700;font-family:var(--mono)}.stat-label{color:var(--text);text-transform:uppercase;letter-spacing:.5px;margin-top:4px;font-size:12px}.diff-stats{font-family:var(--mono);align-items:center;gap:8px;margin-right:8px;font-size:12px;font-weight:600;display:flex}.diff-stat-removed{color:var(--red)}.diff-stat-added{color:var(--green)}.diff-panel .panel-body{overflow:hidden;padding:0!important}.diff-editor{background:var(--editor-bg);border-radius:0 0 var(--radius) var(--radius);height:100%;display:flex;overflow:hidden}.diff-editor-gutter{background:var(--editor-gutter);border-right:1px solid var(--editor-border);-webkit-user-select:none;user-select:none;scrollbar-width:none;flex-shrink:0;width:44px;padding:10px 0;overflow:hidden auto}.diff-editor-gutter::-webkit-scrollbar{display:none}.diff-gutter-line{text-align:right;height:22px;line-height:22px;font-family:var(--mono);color:var(--editor-placeholder);padding:0 8px;font-size:12px}.diff-editor-body{flex:1;position:relative;overflow:hidden}.diff-overlay{pointer-events:none;white-space:pre-wrap;word-break:break-all;z-index:1;padding:10px 12px;position:absolute;inset:0;overflow:auto}.diff-overlay-line{min-height:22px;line-height:22px;font-family:var(--mono);color:#0000;border-radius:2px;padding:0 4px;font-size:13px}.diff-overlay-prefix{width:16px;display:inline-block}.diff-hl-removed{color:#0000;background:#ef444426}.diff-hl-added{color:#0000;background:#10b98126}.diff-overlay-placeholder{color:var(--editor-placeholder);opacity:.5}.diff-textarea{width:100%;height:100%;color:var(--editor-text);resize:none;font-family:var(--mono);white-space:pre-wrap;word-break:break-all;z-index:2;caret-color:var(--editor-text);background:0 0;border:none;outline:none;padding:10px 12px;font-size:13px;line-height:22px;position:absolute;inset:0}.diff-textarea::placeholder{color:#0000}.diff-textarea::selection{background:#6366f14d}.lorem-options{flex-direction:column;gap:16px;padding:16px;display:flex}.lorem-label{color:var(--text-h);font-size:14px;font-weight:500}.lorem-count-btns{gap:4px;display:flex}.ts-controls{flex-direction:column;gap:12px;padding:16px;display:flex}.ts-control-row{justify-content:space-between;align-items:center;gap:8px;display:flex}.ts-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text);font-size:12px;font-weight:600}.ts-input{border:1px solid var(--border);border-radius:var(--radius-sm);width:100%;font-family:var(--mono);background:var(--surface);color:var(--text-h);outline:none;padding:10px 12px;font-size:14px;transition:border-color .15s}.ts-input:focus{border-color:var(--border-focus)}.ts-input::placeholder{color:var(--text);opacity:.5}.ts-now-btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--accent);cursor:pointer;padding:4px 12px;font-size:12px;font-weight:600;transition:all .15s}.ts-now-btn:hover{background:var(--accent-bg);border-color:var(--accent)}.ts-unit-btns{gap:4px;display:flex}.ts-unit-btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);cursor:pointer;padding:6px 14px;font-size:12px;font-weight:500;transition:all .15s}.ts-unit-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.ts-select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-h);font-size:12px;font-family:var(--mono);cursor:pointer;outline:none;padding:6px 10px}.ts-select:focus{border-color:var(--border-focus)}.ts-empty{height:100%;color:var(--text);opacity:.5;justify-content:center;align-items:center;font-size:14px;display:flex}.ts-result{flex-direction:column;gap:0;padding:8px 0;display:flex}.ts-result-item{border-bottom:1px solid var(--border);align-items:baseline;padding:10px 16px;display:flex}.ts-result-item:last-child{border-bottom:none}.ts-result-label{text-transform:uppercase;letter-spacing:.5px;width:140px;color:var(--text);flex-shrink:0;font-size:11px;font-weight:600}.ts-result-value{color:var(--text-h);word-break:break-all;flex:1;font-size:14px}.ts-mono{font-family:var(--mono);font-size:13px}.panel-action{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--accent);cursor:pointer;padding:2px 8px;font-size:11px;font-weight:600;transition:all .15s}.panel-action:hover{background:var(--accent-bg);border-color:var(--accent)}.regex-input-area{flex-direction:column;display:flex;gap:0!important;padding:0!important}.regex-pattern-row{border-bottom:1px solid var(--border);align-items:center;gap:4px;padding:8px 12px;display:flex}.regex-delimiter{font-family:var(--mono);color:var(--accent);font-size:16px;font-weight:700}.regex-pattern-input{font-family:var(--mono);color:var(--text-h);background:0 0;border:none;outline:none;flex:1;padding:4px 8px;font-size:14px}.regex-pattern-input::placeholder{color:var(--text);opacity:.4}.regex-flags-display{font-family:var(--mono);color:var(--accent);font-size:14px;font-weight:600}.regex-flags-row{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:4px;padding:6px 12px;display:flex}.regex-flag-btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text);font-family:var(--mono);cursor:pointer;padding:4px 10px;font-size:12px;transition:all .15s}.regex-flag-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.regex-flag-label{font-family:var(--sans);opacity:.7;margin-left:4px;font-size:11px}.regex-text-input{border:none;border-bottom:1px solid var(--border);border-radius:0;flex:1;min-height:120px}.regex-replace-row{align-items:center;gap:8px;padding:8px 12px;display:flex}.regex-replace-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text);flex-shrink:0;font-size:11px;font-weight:600}.regex-replace-input{font-family:var(--mono);color:var(--text-h);background:0 0;border:none;outline:none;flex:1;padding:4px 0;font-size:13px}.regex-replace-input::placeholder{color:var(--text);opacity:.4}.regex-results{flex-direction:column;gap:16px;height:100%;padding:16px;display:flex;overflow-y:auto}.regex-highlight-label{text-transform:uppercase;letter-spacing:.5px;color:var(--text);margin-bottom:8px;font-size:11px;font-weight:600}.regex-highlight-box{background:var(--editor-bg);border-radius:var(--radius);padding:12px}.regex-highlight-text{font-family:var(--mono);color:var(--editor-text);white-space:pre-wrap;word-break:break-all;font-size:13px;line-height:1.6}.regex-match-mark{color:var(--editor-text);background:#6366f14d;border-radius:2px;padding:1px 2px}.regex-match-list{flex-direction:column;gap:4px;display:flex}.regex-match-item{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-sm);font-family:var(--mono);align-items:center;gap:8px;padding:6px 10px;font-size:12px;display:flex}.regex-match-num{color:var(--accent);min-width:24px;font-weight:700}.regex-match-value{color:var(--text-h);font-weight:600}.regex-match-pos{color:var(--text);opacity:.5;font-size:11px}.regex-match-groups{gap:4px;margin-left:auto;display:flex}.regex-group-tag{background:var(--accent-bg);color:var(--accent);border-radius:3px;padding:2px 6px;font-size:11px}.regex-replace-preview{background:var(--editor-bg);border-radius:var(--radius);padding:12px}.regex-replace-text{font-family:var(--mono);color:var(--editor-text);white-space:pre-wrap;word-break:break-all;font-size:13px;line-height:1.6}.regex-no-match{text-align:center;color:var(--text);opacity:.5;padding:24px;font-size:14px}.md-preview-body{overflow-y:auto;background:var(--surface)!important}.md-preview{font-family:var(--sans);color:var(--text-h);max-width:800px;padding:20px;font-size:15px;line-height:1.7}.md-preview h1,.md-preview h2,.md-preview h3,.md-preview h4,.md-preview h5,.md-preview h6{color:var(--text-h);margin-top:1.4em;margin-bottom:.6em;font-weight:700;line-height:1.3}.md-preview h1{border-bottom:2px solid var(--border);padding-bottom:.3em;font-size:1.8em}.md-preview h2{border-bottom:1px solid var(--border);padding-bottom:.2em;font-size:1.5em}.md-preview h3{font-size:1.25em}.md-preview p{margin:.8em 0}.md-preview a{color:var(--accent);text-decoration:none}.md-preview a:hover{text-decoration:underline}.md-preview strong{font-weight:700}.md-preview em{font-style:italic}.md-preview del{opacity:.6;text-decoration:line-through}.md-preview code{background:var(--accent-bg);color:var(--accent);font-family:var(--mono);border-radius:3px;padding:2px 6px;font-size:.9em}.md-preview pre{background:var(--editor-bg);color:var(--editor-text);border-radius:var(--radius);margin:1em 0;padding:14px;overflow-x:auto}.md-preview pre code{color:inherit;background:0 0;padding:0;font-size:13px;line-height:1.5}.md-preview blockquote{border-left:4px solid var(--accent);color:var(--text);background:var(--accent-bg);border-radius:0 var(--radius-sm) var(--radius-sm) 0;margin:1em 0;padding:.5em 1em}.md-preview ul,.md-preview ol{margin:.8em 0;padding-left:2em}.md-preview li{margin:.3em 0}.md-preview input[type=checkbox]{accent-color:var(--accent);margin-right:6px}.md-preview table{border-collapse:collapse;width:100%;margin:1em 0}.md-preview th,.md-preview td{border:1px solid var(--border);text-align:left;padding:8px 12px}.md-preview th{background:var(--accent-bg);font-weight:600}.md-preview hr{border:none;border-top:2px solid var(--border);margin:1.5em 0}.md-preview img{border-radius:var(--radius);max-width:100%}.md-toc{margin-left:8px}.md-toc-toggle{cursor:pointer;color:var(--accent);-webkit-user-select:none;user-select:none;font-size:11px;font-weight:600}.md-toc-list{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow-md);z-index:10;min-width:180px;max-height:300px;padding:8px;position:absolute;top:100%;right:0;overflow-y:auto}.md-toc-item{color:var(--text);white-space:nowrap;text-overflow:ellipsis;border-radius:3px;padding:4px 8px;font-size:12px;text-decoration:none;display:block;overflow:hidden}.md-toc-item:hover{background:var(--accent-bg);color:var(--accent)}.md-toc-h2{padding-left:16px}.md-toc-h3{padding-left:28px}.md-toc-h4{padding-left:40px}.color-controls{flex-direction:column;gap:12px;padding:16px;display:flex}.color-preview-row{align-items:center;gap:12px;display:flex}.color-picker-label{color:var(--text);white-space:nowrap;font-size:13px}.color-swatch{border-radius:var(--radius);border:2px solid var(--border);flex-shrink:0;width:48px;height:48px}.color-picker{cursor:pointer;border-radius:var(--radius);background:0 0;border:none;width:48px;height:48px;padding:0}.color-picker::-webkit-color-swatch-wrapper{padding:2px}.color-picker::-webkit-color-swatch{border-radius:var(--radius-sm);border:1px solid var(--border)}.color-format-btns{gap:4px;display:flex}.color-results{flex-direction:column;gap:16px;padding:16px;display:flex}.color-swatch-large{border-radius:var(--radius);border:2px solid var(--border);width:100%;height:80px}.color-values{flex-direction:column;gap:0;display:flex}.color-value-row{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:10px 0;display:flex}.color-value-row:last-child{border-bottom:none}.color-value-label{text-transform:uppercase;letter-spacing:.5px;width:48px;color:var(--text);flex-shrink:0;font-size:11px;font-weight:700}.color-value-text{color:var(--text-h);flex:1;font-size:14px}.csv-options{border-bottom:1px solid var(--border);flex-direction:column;gap:8px;padding:12px 16px;display:flex}.csv-option-row{align-items:center;gap:10px;display:flex}.csv-option-label{color:var(--text);white-space:nowrap;font-size:12px;font-weight:600}.csv-option-btns{flex-wrap:wrap;gap:4px;display:flex}.ts-warning{color:#92400e;border-radius:var(--radius-sm);white-space:pre-wrap;background:#fef3c7;align-items:flex-start;gap:8px;margin-bottom:8px;padding:10px 14px;font-size:12px;line-height:1.5;display:flex}.ts-warning-icon{flex-shrink:0;font-size:14px}.base-controls{border-bottom:1px solid var(--border);flex-direction:column;gap:8px;padding:12px 16px;display:flex}.base-control-row{align-items:center;gap:10px;display:flex}.base-control-label{color:var(--text);white-space:nowrap;min-width:72px;font-size:12px;font-weight:600}.base-select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--text-h);font-size:13px;font-family:var(--mono);cursor:pointer;outline:none;padding:6px 10px}.base-select:focus{border-color:var(--accent)}.base-control-hint{color:var(--text);opacity:.6;font-size:11px}.base-swap-row{justify-content:center}.base-swap-btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--surface);color:var(--accent);cursor:pointer;padding:4px 16px;font-size:13px;font-weight:600;transition:all .15s}.base-swap-btn:hover{background:var(--accent-bg);border-color:var(--accent)}.base-input{background:var(--editor-bg);width:100%;color:var(--editor-text);font-family:var(--mono);border-radius:var(--radius-sm);border:none;outline:none;padding:12px 16px;font-size:15px}.base-input::placeholder{color:var(--editor-placeholder)}.base-result{flex-direction:column;justify-content:center;align-items:center;gap:12px;height:100%;padding:32px 16px;display:flex}.base-result-value{color:var(--text-h);word-break:break-all;text-align:center;font-size:24px;font-weight:700;line-height:1.4}.base-result-meta{color:var(--text);opacity:.5;font-size:12px}.crc-options{border-bottom:1px solid var(--border);flex-direction:column;gap:8px;padding:12px 16px;display:flex}.crc-option-row{align-items:center;gap:10px;display:flex}.crc-option-label{color:var(--text);white-space:nowrap;min-width:56px;font-size:12px;font-weight:600}.crc-option-btns{flex-wrap:wrap;gap:4px;display:flex}.crc-result{flex-direction:column;justify-content:center;align-items:center;gap:16px;height:100%;padding:32px 16px;display:flex}.crc-variant-label{text-transform:uppercase;letter-spacing:.5px;color:var(--accent);font-size:12px;font-weight:600}.crc-value-row{align-items:center;gap:12px;display:flex}.crc-value-label{text-transform:uppercase;color:var(--text);opacity:.5;min-width:28px;font-size:11px;font-weight:600}.crc-value{color:var(--text-h);font-size:22px;font-weight:700}.breadcrumb{color:var(--text);align-items:center;gap:8px;padding:12px 0;font-size:13px;display:flex}.breadcrumb a{color:var(--accent);text-decoration:none;transition:color .15s}.breadcrumb a:hover{color:var(--accent-hover)}.breadcrumb-sep{color:var(--border);-webkit-user-select:none;user-select:none}.breadcrumb-category{color:var(--text)}.breadcrumb-current{color:var(--text-h);font-weight:500}.tool-guide{grid-template-columns:1fr 1fr;gap:16px;padding:24px 0;display:grid}.guide-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:20px}.guide-card-title{color:var(--text-h);margin-bottom:12px;font-size:14px;font-weight:600}.guide-card-text{color:var(--text);font-size:14px;line-height:1.7}.guide-steps{color:var(--text);margin:0;padding-left:20px;font-size:14px;line-height:2}.guide-steps li::marker{color:var(--accent);font-weight:600}.guide-features{color:var(--text);margin:0;padding-left:20px;font-size:14px;line-height:2}.guide-features li::marker{color:var(--green)}.guide-example{gap:12px;display:flex}.guide-example-block{flex:1;min-width:0}.guide-example-label{text-transform:uppercase;letter-spacing:.05em;color:var(--text);margin-bottom:6px;font-size:11px;font-weight:600}.guide-example-code{background:var(--editor-bg);color:var(--editor-text);border-radius:var(--radius-sm);font-family:var(--mono);white-space:pre-wrap;word-break:break-all;margin:0;padding:12px;font-size:12px;line-height:1.6;overflow-x:auto}.guide-faq{flex-direction:column;gap:12px;display:flex}.faq-item{border-bottom:1px solid var(--border);padding-bottom:12px}.faq-item:last-child{border-bottom:none;padding-bottom:0}.faq-question{color:var(--text-h);margin-bottom:4px;font-size:14px;font-weight:500}.faq-answer{color:var(--text);font-size:13px;line-height:1.6}.related-tools{padding:24px 0}.related-tools-title{color:var(--text-h);margin-bottom:12px;font-size:14px;font-weight:600}.related-tools-grid{grid-template-columns:repeat(4,1fr);gap:12px;display:grid}.related-tool-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);align-items:center;gap:10px;padding:12px;text-decoration:none;transition:border-color .15s,box-shadow .15s;display:flex}.related-tool-card:hover{border-color:var(--accent);box-shadow:var(--shadow-sm)}.related-tool-icon{background:var(--accent-bg);width:32px;height:32px;color:var(--accent);border-radius:var(--radius-sm);flex-shrink:0;justify-content:center;align-items:center;font-size:12px;font-weight:700;display:flex}.related-tool-info{min-width:0}.related-tool-name{color:var(--text-h);white-space:nowrap;text-overflow:ellipsis;font-size:13px;font-weight:500;overflow:hidden}.related-tool-desc{color:var(--text);white-space:nowrap;text-overflow:ellipsis;font-size:11px;overflow:hidden}@media (width<=768px){.tool-guide{grid-template-columns:1fr}.guide-example{flex-direction:column}.related-tools-grid{grid-template-columns:1fr 1fr}}@media (width<=480px){.related-tools-grid{grid-template-columns:1fr}}.api-workspace-body{flex-direction:column!important}.api-url-bar{align-items:center;gap:8px;margin-bottom:8px;display:flex}.api-method-select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);cursor:pointer;outline:none;width:100px;height:36px;padding:0 8px;font-size:13px;font-weight:700}.api-method-select:focus{border-color:var(--accent)}.api-url-input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);height:36px;font-size:13px;font-family:var(--mono);color:var(--text);outline:none;flex:1;padding:0 12px}.api-url-input:focus{border-color:var(--accent)}.api-send-btn{border-radius:var(--radius-sm);background:var(--accent);color:#fff;cursor:pointer;white-space:nowrap;border:none;height:36px;padding:0 20px;font-size:13px;font-weight:600}.api-send-btn:hover{opacity:.9}.api-send-btn:disabled{opacity:.5;cursor:not-allowed}.api-quick-actions{gap:8px;margin-bottom:8px;display:flex}.api-quick-btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);cursor:pointer;align-items:center;gap:4px;padding:4px 10px;font-size:11px;display:flex}.api-quick-btn:hover{border-color:var(--accent);color:var(--accent)}.api-quick-method{font-size:10px;font-weight:700;font-family:var(--mono)}.api-tabs{border-bottom:1px solid var(--border);gap:0;margin-bottom:8px;display:flex}.api-tab{color:var(--text);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;padding:6px 16px;font-size:12px;font-weight:500}.api-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.api-tab:hover{color:var(--accent)}.api-kv-section{flex-direction:column;gap:4px;display:flex}.api-kv-row{align-items:center;gap:6px;display:flex}.api-kv-input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);height:30px;font-size:12px;font-family:var(--mono);color:var(--text);outline:none;flex:1;padding:0 8px}.api-kv-input:focus{border-color:var(--accent)}.api-kv-input::placeholder{color:var(--editor-placeholder)}.api-kv-remove{border-radius:var(--radius-sm);color:#f93e3e;cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;width:24px;height:24px;font-size:12px;display:flex}.api-kv-remove:hover{background:#f93e3e15}.api-kv-add{border:1px dashed var(--border);border-radius:var(--radius-sm);color:var(--accent);cursor:pointer;background:0 0;margin-top:4px;padding:4px 10px;font-size:11px}.api-kv-add:hover{border-color:var(--accent)}.api-body-section .code-editor-wrapper{min-height:160px}.api-body-disabled{text-align:center;color:var(--editor-placeholder);border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--editor-bg);padding:20px;font-size:12px}.api-response-meta{align-items:center;gap:8px;margin-left:auto;display:flex}.api-status-badge{border-radius:10px;padding:2px 8px;font-size:11px;font-weight:600}.api-status-badge.success{color:#49cc90;background:#49cc9020}.api-status-badge.error{color:#f93e3e;background:#f93e3e20}.api-meta-item{color:var(--editor-placeholder);font-size:11px}.api-response-content{flex-direction:column;gap:8px;height:100%;display:flex}.api-response-headers{font-size:12px}.api-response-headers summary{cursor:pointer;color:var(--accent);-webkit-user-select:none;user-select:none;padding:4px 0;font-weight:500}.api-headers-list{flex-direction:column;gap:2px;padding:6px 0;display:flex}.api-header-item{font-family:var(--mono);gap:8px;font-size:11px;display:flex}.api-header-key{color:var(--accent);min-width:120px;font-weight:500}.api-header-value{color:var(--text);word-break:break-all}.api-response-body{flex-direction:column;flex:1;min-height:0;display:flex}.api-response-body .code-editor-wrapper{flex:1;min-height:200px}.api-response-actions{gap:6px;margin-bottom:6px;display:flex}.api-action-btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);cursor:pointer;padding:4px 10px;font-size:11px}.api-action-btn:hover{border-color:var(--accent);color:var(--accent)}.api-history-bar{border-top:1px solid var(--border);background:var(--bg);padding:8px 16px}.api-history-header{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.api-history-title{color:var(--text);text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:600}.api-history-clear{color:#f93e3e;cursor:pointer;background:0 0;border:none;font-size:11px}.api-history-list{gap:6px;padding-bottom:4px;display:flex;overflow-x:auto}.api-history-item{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);cursor:pointer;white-space:nowrap;flex-shrink:0;align-items:center;gap:6px;padding:4px 10px;font-size:11px;display:flex}.api-history-item:hover{border-color:var(--accent)}.api-history-method{font-size:10px;font-weight:700}.api-history-url{color:var(--text);text-overflow:ellipsis;max-width:200px;font-family:var(--mono);overflow:hidden}.api-history-status{font-size:10px;font-weight:600}.api-history-status.ok{color:#49cc90}.api-history-status.err{color:#f93e3e}.api-history-time{color:var(--editor-placeholder);font-size:10px}@media (width<=768px){.api-url-bar{flex-wrap:wrap}.api-method-select{width:80px}.api-url-input{min-width:0}.api-history-list{flex-direction:column}.api-history-item{width:100%}.api-history-url{max-width:120px}}.sql-workspace-body{flex-direction:column!important}.sql-options-panel{border-bottom:1px solid var(--border);background:var(--bg);flex-wrap:wrap;align-items:center;gap:16px;padding:8px 12px;display:flex}.sql-options-section{align-items:center;gap:6px;display:flex}.sql-options-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;white-space:nowrap;font-size:11px;font-weight:600}.sql-options-tabs{border:1px solid var(--border);border-radius:var(--radius-sm);gap:0;display:flex;overflow:hidden}.sql-opt-tab{background:var(--bg);color:var(--text-secondary);cursor:pointer;border:none;border-right:1px solid var(--border);white-space:nowrap;padding:3px 10px;font-size:11px}.sql-opt-tab:last-child{border-right:none}.sql-opt-tab:hover{background:var(--bg-hover)}.sql-opt-tab.active{background:var(--accent);color:#fff}.sql-checkbox-label{color:var(--text);cursor:pointer;white-space:nowrap;align-items:center;gap:4px;font-size:12px;display:flex}.sql-checkbox-label input[type=checkbox]{accent-color:var(--accent);cursor:pointer}.sql-examples{flex-wrap:wrap;gap:6px;display:flex}.sql-example-btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);cursor:pointer;white-space:nowrap;padding:3px 8px;font-size:11px}.sql-example-btn:hover{border-color:var(--accent);color:var(--accent)}.sql-output-actions{gap:6px;display:flex}.sql-action-btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);cursor:pointer;padding:3px 10px;font-size:11px}.sql-action-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}.sql-action-btn:disabled{opacity:.4;cursor:not-allowed}.sql-stats-bar{color:var(--text-secondary);border-top:1px solid var(--border);background:var(--bg);gap:16px;padding:6px 12px;font-size:11px;display:flex}@media (width<=768px){.sql-options-panel{flex-direction:column;align-items:flex-start;gap:8px}.sql-examples{width:100%}}.sql-mode-tabs{border-bottom:2px solid var(--border);background:var(--bg);gap:0;display:flex}.sql-mode-tab{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-bottom:2px solid #0000;margin-bottom:-2px;padding:10px 24px;font-size:13px;font-weight:600;transition:all .15s}.sql-mode-tab:hover{color:var(--text);background:var(--bg-hover)}.sql-mode-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.sql-gen-body{overflow:hidden;flex-direction:row!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;display:grid!important}.sql-gen-config{border-right:1px solid var(--border);background:var(--bg);border-bottom:none;flex-direction:column;gap:12px;min-height:0;padding:12px;display:flex;overflow-y:auto}.sql-gen-row{flex-wrap:wrap;align-items:flex-end;gap:12px;display:flex}.sql-gen-field{flex-direction:column;gap:4px;display:flex}.sql-gen-field-grow{flex:1;min-width:120px}.sql-gen-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:600}.sql-gen-input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);outline:none;min-width:0;padding:6px 10px;font-size:13px}.sql-gen-input:focus{border-color:var(--accent)}.sql-gen-select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);cursor:pointer;outline:none;padding:6px 10px;font-size:13px}.sql-gen-select:focus{border-color:var(--accent)}.sql-gen-columns{border:1px solid var(--border);border-radius:var(--radius-sm);overflow:hidden}.sql-gen-columns-header{background:var(--bg-hover);border-bottom:1px solid var(--border);color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;align-items:center;gap:8px;padding:6px 10px;font-size:11px;font-weight:600;display:flex}.sql-gen-columns-row{border-bottom:1px solid var(--border);align-items:center;gap:8px;padding:4px 10px;display:flex}.sql-gen-columns-row:last-of-type{border-bottom:none}.sql-gen-col-name{flex:2;min-width:100px}.sql-gen-col-type{flex:2;min-width:120px}.sql-gen-col-bool{text-align:center;width:60px}.sql-gen-col-val{flex:2;min-width:100px}.sql-gen-col-del{width:28px}.sql-gen-col-input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);outline:none;width:100%;padding:4px 8px;font-size:12px}.sql-gen-col-input:focus{border-color:var(--accent)}.sql-gen-col-select{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--text);cursor:pointer;outline:none;width:100%;padding:4px 8px;font-size:12px}.sql-gen-col-center{justify-content:center;width:60px;display:flex}.sql-gen-col-center input[type=checkbox]{accent-color:var(--accent);cursor:pointer}.sql-gen-del-btn{width:24px;height:24px;color:var(--text-secondary);cursor:pointer;border-radius:var(--radius-sm);background:0 0;border:none;justify-content:center;align-items:center;font-size:16px;display:flex}.sql-gen-del-btn:hover{color:#f93e3e;background:#f93e3e20}.sql-gen-add-btn{border:1px dashed var(--border);border-radius:var(--radius-sm);color:var(--accent);cursor:pointer;background:0 0;width:100%;margin-top:4px;padding:6px 12px;font-size:12px}.sql-gen-add-btn:hover{border-color:var(--accent);background:var(--bg-hover)}.sql-gen-actions{justify-content:center;padding-top:4px;display:flex}.sql-gen-generate-btn{border-radius:var(--radius-sm);background:var(--accent);color:#fff;cursor:pointer;border:none;padding:8px 32px;font-size:14px;font-weight:600;transition:opacity .15s}.sql-gen-generate-btn:hover{opacity:.9}.sql-gen-output-panel{flex:1;min-height:0}.sql-gen-history{border-top:1px solid var(--border);background:var(--bg);padding:8px 12px}.sql-gen-history-header{justify-content:space-between;align-items:center;margin-bottom:6px;display:flex}.sql-gen-history-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:600}.sql-gen-history-clear{color:#f93e3e;cursor:pointer;background:0 0;border:none;font-size:11px}.sql-gen-history-list{gap:6px;padding-bottom:4px;display:flex;overflow-x:auto}.sql-gen-history-item{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);cursor:pointer;white-space:nowrap;flex-shrink:0;align-items:center;gap:6px;padding:4px 10px;font-size:11px;display:flex}.sql-gen-history-item:hover{border-color:var(--accent)}.sql-gen-history-type{color:var(--accent);font-size:10px;font-weight:700}.sql-gen-history-table{color:var(--text)}.sql-gen-history-time{color:var(--text-secondary)}@media (width<=768px){.sql-gen-row{flex-direction:column}.sql-gen-field-grow{width:100%}.sql-gen-columns-header,.sql-gen-columns-row{flex-wrap:wrap}.sql-gen-col-name,.sql-gen-col-type,.sql-gen-col-val{flex:1;min-width:80px}.sql-mode-tab{padding:8px 16px;font-size:12px}}.sql-gen-subtabs{border-bottom:1px solid var(--border);background:var(--bg-hover);gap:0;display:flex}.sql-qb-body{overflow:hidden;flex-direction:row!important;grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;display:grid!important}.sql-qb-config{border-right:1px solid var(--border);background:var(--bg);border-bottom:none;flex-direction:column;flex-shrink:0;gap:0;min-height:0;display:flex;overflow-y:auto}.sql-qb-body .sql-gen-output-panel{flex:1;min-height:0}.sql-qb-row{border-bottom:1px solid var(--border);align-items:flex-end;gap:12px;padding:8px 12px;display:flex}.sql-qb-example-btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);color:var(--accent);cursor:pointer;white-space:nowrap;padding:6px 14px;font-size:12px}.sql-qb-example-btn:hover{border-color:var(--accent);background:var(--bg-hover)}.sql-qb-section{border-bottom:1px solid var(--border)}.sql-qb-section-header{cursor:pointer;-webkit-user-select:none;user-select:none;background:var(--bg);align-items:center;gap:8px;padding:6px 12px;transition:background .1s;display:flex}.sql-qb-section-header:hover{background:var(--bg-hover)}.sql-qb-section-toggle{color:var(--text-secondary);width:14px;font-size:12px}.sql-qb-section-title{color:var(--text);flex:1;font-size:12px;font-weight:600}.sql-qb-section-count{color:var(--accent);background:var(--bg-hover);text-align:center;border-radius:10px;min-width:18px;padding:1px 6px;font-size:10px;font-weight:700}.sql-qb-section-body{flex-direction:column;gap:4px;padding:4px 12px 8px;display:flex}.sql-qb-item-row{align-items:center;gap:6px;padding:2px 0;display:flex}.sql-qb-flex1{flex:1;min-width:60px}.sql-qb-flex2{flex:2;min-width:100px}.sql-qb-agg{flex-shrink:0;width:80px}.sql-qb-alias{flex-shrink:0;width:70px}.sql-qb-join-type{flex-shrink:0;width:110px}.sql-qb-eq{color:var(--text-secondary);text-align:center;flex-shrink:0;width:14px;font-size:13px;font-weight:700}.sql-qb-logic,.sql-qb-logic-placeholder{flex-shrink:0;width:65px}.sql-qb-op{flex-shrink:0;width:100px}.sql-qb-dir{flex-shrink:0;width:70px}@media (width<=768px){.sql-qb-item-row{flex-wrap:wrap}.sql-qb-flex1,.sql-qb-flex2{flex:1;min-width:80px}.sql-qb-agg,.sql-qb-alias,.sql-qb-join-type,.sql-qb-logic,.sql-qb-op,.sql-qb-dir{flex:1;width:auto;min-width:60px}.sql-qb-logic-placeholder{display:none}.sql-qb-config{max-height:50vh}}.jsv-body{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important}.jsv-panel-actions{gap:4px;display:flex}.jsv-actions-bar{border-top:1px solid var(--border);border-bottom:1px solid var(--border);background:var(--bg);justify-content:space-between;align-items:center;gap:12px;padding:8px 12px;display:flex}.jsv-templates{flex-wrap:wrap;align-items:center;gap:6px;display:flex}.jsv-templates-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:600}.jsv-results{border-bottom:1px solid var(--border)}.jsv-errors{padding:8px 12px}.jsv-errors-header{color:#f93e3e;align-items:center;gap:6px;margin-bottom:8px;font-size:13px;font-weight:600;display:flex}.jsv-errors-list{flex-direction:column;gap:6px;display:flex}.jsv-error-row{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);flex-direction:column;gap:2px;padding:6px 10px;display:flex}.jsv-error-path{color:var(--accent);font-family:monospace;font-size:12px;font-weight:700}.jsv-error-message{color:var(--text);font-size:12px}.jsv-error-received{color:var(--text-secondary);font-size:11px;font-style:italic}.jsv-hist-valid{color:#22c55e!important}.jsv-hist-invalid{color:#f93e3e!important}@media (width<=768px){.jsv-body{grid-template-rows:minmax(0,1fr) minmax(0,1fr)!important;grid-template-columns:minmax(0,1fr)!important}.jsv-actions-bar{flex-direction:column;align-items:stretch}.jsv-templates{justify-content:center}}.cron-body{grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;display:grid!important}.cron-builder-panel{border-right:1px solid var(--border);flex-direction:column;gap:12px;min-height:0;padding:12px;display:flex;overflow-y:auto}.cron-field{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);padding:10px}.cron-field-label{color:var(--text);margin-bottom:6px;font-size:12px;font-weight:700;display:block}.cron-field-modes{gap:2px;margin-bottom:8px;display:flex}.cron-mode-btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg-hover);color:var(--text-secondary);cursor:pointer;flex:1;padding:4px 6px;font-size:11px;transition:all .15s}.cron-mode-btn:hover{background:var(--border)}.cron-mode-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.cron-field-input{min-height:28px}.cron-field-hint{color:var(--text-secondary);font-size:12px;font-style:italic}.cron-specific-grid{flex-wrap:wrap;gap:3px;display:flex}.cron-specific-btn{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);min-width:32px;color:var(--text-secondary);cursor:pointer;padding:3px 6px;font-size:11px;transition:all .15s}.cron-specific-btn:hover{background:var(--bg-hover)}.cron-specific-btn.active{background:var(--accent);color:#fff;border-color:var(--accent)}.cron-range-row,.cron-step-row{color:var(--text-secondary);align-items:center;gap:6px;font-size:12px;display:flex}.cron-input{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);width:60px;color:var(--text);text-align:center;padding:4px 6px;font-size:12px}.cron-input:focus{border-color:var(--accent);outline:none}.cron-output-box{border:1px solid var(--accent);border-radius:var(--radius-sm);background:var(--bg);justify-content:space-between;align-items:center;margin-bottom:12px;padding:10px 14px;display:flex}.cron-expression{color:var(--accent);letter-spacing:1px;font-family:monospace;font-size:16px;font-weight:700}.cron-output-actions{gap:4px;display:flex}.cron-description{margin-bottom:12px}.cron-description-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:4px;font-size:11px;font-weight:600}.cron-description-text{color:var(--text);font-size:13px;line-height:1.4}.cron-reference{border:1px solid var(--border);border-radius:var(--radius-sm);margin-bottom:12px;padding:10px}.cron-reference-title{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:8px;font-size:11px;font-weight:600}.cron-reference-row{gap:0;margin-bottom:4px;display:flex}.cron-reference-field{flex-direction:column;flex:1;align-items:center;gap:2px;display:flex}.cron-ref-star{color:var(--accent);font-family:monospace;font-size:18px;font-weight:700}.cron-ref-name{color:var(--text-secondary);font-size:10px}.cron-reference-ranges{gap:0;display:flex}.cron-reference-ranges span{text-align:center;color:var(--text-secondary);flex:1;font-family:monospace;font-size:10px}.cron-templates{margin-bottom:4px}.cron-templates-label{color:var(--text-secondary);text-transform:uppercase;letter-spacing:.5px;margin-bottom:6px;font-size:11px;font-weight:600}.cron-templates-list{flex-wrap:wrap;gap:4px;display:flex}.cron-validator-input{letter-spacing:1px;border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);width:100%;min-height:80px;color:var(--text);resize:vertical;padding:10px;font-family:monospace;font-size:16px;font-weight:700}.cron-validator-input:focus{border-color:var(--accent);outline:none}@media (width<=768px){.cron-body{grid-template-rows:minmax(0,1fr) minmax(0,1fr)!important;grid-template-columns:minmax(0,1fr)!important}.cron-builder-panel{border-right:none;border-bottom:1px solid var(--border)}}.jdiff-options{align-items:center;gap:16px;display:flex}.jdiff-option{color:var(--text-secondary);cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;gap:4px;font-size:12px;display:flex}.jdiff-option input[type=checkbox]{accent-color:var(--accent)}.jdiff-result-area{border-bottom:1px solid var(--border)}.jdiff-stats{border-bottom:1px solid var(--border);background:var(--bg);align-items:center;gap:12px;padding:8px 12px;display:flex}.jdiff-stat{border-radius:var(--radius-sm);align-items:center;gap:4px;padding:4px 10px;font-size:12px;font-weight:600;display:flex}.jdiff-stat-added{color:#22c55e;background:#22c55e1a}.jdiff-stat-removed{color:#f93e3e;background:#f93e3e1a}.jdiff-stat-changed{color:#eab308;background:#eab3081a}.jdiff-stat-num{font-size:14px}.jdiff-stat-label{text-transform:uppercase;letter-spacing:.5px;font-size:11px}.jdiff-list{flex-direction:column;gap:6px;padding:8px 12px;display:flex}.jdiff-item{border:1px solid var(--border);border-radius:var(--radius-sm);background:var(--bg);padding:8px 10px}.jdiff-item-header{align-items:center;gap:6px;margin-bottom:4px;display:flex}.jdiff-type-badge{border-radius:4px;justify-content:center;align-items:center;width:20px;height:20px;font-family:monospace;font-size:12px;font-weight:700;display:inline-flex}.jdiff-type-added{color:#22c55e;background:#22c55e26}.jdiff-type-removed{color:#f93e3e;background:#f93e3e26}.jdiff-type-changed{color:#eab308;background:#eab30826}.jdiff-item-type{text-transform:uppercase;letter-spacing:.5px;font-size:11px;font-weight:600}.jdiff-item-added .jdiff-item-type{color:#22c55e}.jdiff-item-removed .jdiff-item-type{color:#f93e3e}.jdiff-item-changed .jdiff-item-type{color:#eab308}.jdiff-item-path{color:var(--accent);font-family:monospace;font-size:12px;font-weight:600}.jdiff-item-values{flex-direction:column;gap:2px;padding-left:26px;display:flex}.jdiff-value-row{align-items:baseline;gap:6px;font-size:12px;display:flex}.jdiff-value-label{color:var(--text-secondary);min-width:48px;font-weight:600}.jdiff-value-data{word-break:break-all;font-family:monospace}.jdiff-value-before .jdiff-value-data{color:#f93e3e;text-decoration:line-through}.jdiff-value-after .jdiff-value-data{color:#22c55e}.jdiff-hist-added{color:#22c55e;font-weight:600}.jdiff-hist-removed{color:#f93e3e;font-weight:600}.jdiff-hist-changed{color:#eab308;font-weight:600}.diff-hl-removed-bg{background:#ef444426!important}.diff-hl-added-bg{background:#10b98126!important}.diff-glyph-removed{background:#ef4444;border-radius:2px;margin-left:4px;width:4px!important}.diff-glyph-added{background:#10b981;border-radius:2px;margin-left:4px;width:4px!important}.jdiff-editor-body .panel-body{overflow:hidden;padding:0!important}
