:root{--bg:#fbfcfd;--bg-panel:#fff;--bg-muted:#f4f5f7;--border:#e1e4e8;--border-strong:#c8cdd3;--text:#1f2328;--text-muted:#57606a;--accent:#336791;--accent-strong:#1f4060;--accent-soft:#e3eaf1;--sqlite:#0f80cc;--sqlite-soft:#e1f0fb;--pg-brand:#336791;--sqlite-brand:#003b57;--error:#b91c1c;--error-soft:#fef2f2;--error-line:#fecaca;--warn-soft:#fef3c7;--warn:#92400e;--warn-line:#fde68a;--shadow:0 1px 3px rgba(0,0,0,.06);--shadow-strong:0 4px 12px rgba(0,0,0,.08);--radius:8px;--space:16px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light dark}@media (prefers-color-scheme:dark){:root{--lightningcss-light: ;--lightningcss-dark:initial;--bg:#0d1117;--bg-panel:#161b22;--bg-muted:#1c222b;--border:#30363d;--border-strong:#484f58;--text:#e6edf3;--text-muted:#9198a1;--accent:#5a9bd4;--accent-strong:#8cc2f0;--accent-soft:rgba(90,155,212,.16);--sqlite:#4fb3f0;--sqlite-soft:rgba(79,179,240,.16);--pg-brand:#6e9cc4;--sqlite-brand:#48a7dc;--error:#ff7b72;--error-soft:rgba(248,81,73,.12);--error-line:rgba(248,81,73,.4);--warn-soft:rgba(210,153,34,.14);--warn:#e3b341;--warn-line:rgba(210,153,34,.42);--shadow:0 1px 3px rgba(0,0,0,.5);--shadow-strong:0 4px 12px rgba(0,0,0,.6)}}*{box-sizing:border-box}html,body{background:var(--bg);color:var(--text);margin:0;padding:0;font-family:ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,Arial,sans-serif;font-size:15px;line-height:1.5}code,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.875rem}main.app{gap:calc(var(--space) * 1.5);flex-direction:column;max-width:1500px;margin:0 auto;padding:28px 20px 48px;display:flex}.app-header{flex-direction:column;gap:10px;display:flex}.app-header-titles{flex-direction:column;gap:4px;display:flex}.app-title-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.topbar-actions{align-items:center;gap:4px;display:flex}.icon-link{width:2rem;height:2rem;color:var(--text);cursor:pointer;opacity:.7;background:0 0;border:0;justify-content:center;align-items:center;padding:0;text-decoration:none;transition:opacity .12s,color .12s,transform .12s;display:inline-flex}.icon-link>svg{flex:none}.icon-link:hover{opacity:1;color:var(--accent-strong)}.icon-link:disabled{opacity:.3;cursor:not-allowed}.icon-link:disabled:hover{opacity:.3;color:var(--text)}.heartbtn:hover{color:#e2264d;opacity:1}.heart-attention{transform-origin:50%;animation:1s ease-in-out .6s 3 pg2s-heart-pulse}@keyframes pg2s-heart-pulse{0%,to{color:var(--text);transform:scale(1)}50%{color:#e5102d;transform:scale(1.28)}}@media (prefers-reduced-motion:reduce){.heart-attention{animation:none}}.app-title{letter-spacing:-.01em;margin:0;font-size:2rem}.app-tagline{color:var(--text-muted);margin:0;font-size:1.05rem}.sample-picker{flex-wrap:wrap;align-items:center;gap:10px;display:flex}.sample-picker-label{color:var(--text-muted);font-size:.9rem;font-weight:500}.sample-badges{flex-wrap:wrap;gap:6px;display:flex}.sample-badge{border:1px solid var(--accent-soft);background:var(--accent-soft);color:var(--accent-strong);letter-spacing:.01em;cursor:pointer;white-space:nowrap;border-radius:999px;align-items:center;gap:6px;padding:4px 10px;font-size:.75rem;font-weight:600;transition:background .12s,border-color .12s,color .12s,transform 80ms;display:inline-flex}.sample-badge .badge-icon{flex-shrink:0}.sample-badge:hover{background:var(--accent);border-color:var(--accent);color:#fff}.sample-badge:active{transform:scale(.97)}.sample-badge.is-active{background:var(--accent);border-color:var(--accent);color:#fff}.editors-row{gap:var(--space);grid-template-columns:1fr 1fr;align-items:start;display:grid}@media (width<=880px){.editors-row{grid-template-columns:1fr}}.pane{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space);box-shadow:var(--shadow);flex-direction:column;gap:12px;min-width:0;display:flex}.pane-input{border-top:3px solid var(--accent)}.pane-output{border-top:3px solid var(--sqlite)}.pane-header{flex-direction:column;gap:4px;display:flex}.pane-title-row{justify-content:space-between;align-items:center;gap:var(--space);display:flex}.pane-title{color:var(--accent-strong);margin:0;font-size:1.1rem}.pane-output .pane-title{color:var(--sqlite)}.pane-actions{gap:8px;display:flex}.file-input{display:none}.field-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.04em;margin-bottom:6px;font-size:.7rem;display:block}.file-list{flex-direction:column;gap:4px;margin:0;padding:0;list-style:none;display:flex}.file-list li{border:1px solid var(--border);background:var(--bg-muted);cursor:grab;border-radius:6px;align-items:center;gap:8px;padding:4px 10px;font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;font-size:.75rem;display:flex}.file-list .drag-handle{color:var(--text-muted);flex-shrink:0}.file-list .file-order{color:var(--text-muted);text-align:right;min-width:1.4em}.file-list .file-name{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.file-list .file-remove{color:var(--text-muted);cursor:pointer;background:0 0;border:0;margin-left:auto;padding:0 2px;line-height:1}.file-list .file-remove:hover{color:var(--error)}.pane-status{color:var(--text-muted);margin:0;font-size:.85rem}.pane-placeholder{background:var(--bg-muted);color:var(--text-muted);border:1px dashed var(--border-strong);text-align:center;border-radius:6px;justify-content:center;align-items:center;min-height:220px;padding:18px;font-size:.9rem;display:flex}.editor{border:1px solid var(--border-strong);background:var(--bg-panel);--dxc-editor-focus-ring:none;border-radius:6px;min-height:360px;max-height:75vh;overflow:auto}.editor .dxc-editor:focus-within{box-shadow:none}.editor.editor-readonly{background:var(--bg-muted)}.dxc-editor-input{caret-color:var(--text)!important}.error-card{background:var(--error-soft);border:1px solid var(--error-line);border-radius:6px;flex-direction:column;gap:6px;padding:12px;display:flex}.error-header{align-items:center;gap:6px;display:flex}.error-icon{color:var(--error)}.error-badge{background:var(--error);color:#fff;letter-spacing:.02em;text-transform:uppercase;border-radius:999px;padding:2px 8px;font-size:.75rem;font-weight:600}.error-message{color:var(--error);white-space:pre-wrap;word-break:break-word;margin:0}.apply-error-card{background:var(--warn-soft);border:1px solid var(--warn-line);border-radius:6px;padding:10px 12px}.apply-error-header{color:var(--warn);margin-bottom:4px;font-weight:600}.apply-error-message{color:var(--warn);white-space:pre-wrap;word-break:break-word;margin:0 0 6px}.apply-error-hint{color:var(--text-muted);margin:0;font-size:.875rem}button{border:1px solid var(--border-strong);background:var(--bg-panel);color:var(--text);cursor:pointer;border-radius:6px;align-items:center;gap:4px;padding:6px 12px;font-size:.9rem;font-weight:500;transition:background .12s;display:inline-flex}button:hover:not(:disabled){background:var(--bg-muted)}button:disabled{cursor:not-allowed;opacity:.55}button.primary{background:var(--accent);border-color:var(--accent-strong);color:#fff}button.primary:hover:not(:disabled){background:var(--accent-strong)}.btn-icon{color:currentColor}.title-icon{color:var(--accent-strong);vertical-align:-2px;margin-right:8px}.pane-output .title-icon{color:var(--sqlite)}.summary-icon{color:var(--text-muted);vertical-align:-2px;margin-right:8px}.label-icon{color:var(--text-muted);vertical-align:-2px;margin-right:6px}.brand-logo{vertical-align:-.2em;width:1.1em;height:1.1em;margin-right:8px;display:inline-block}.brand-logo-postgres{color:var(--pg-brand)}.brand-logo-sqlite{color:var(--sqlite-brand)}.app-title .brand-logo{vertical-align:-.3em;width:1.4em;height:1.4em;margin:0 6px}.app-title .title-arrow{color:var(--text-muted);vertical-align:-2px;margin:0 4px}.app-title-text{margin-left:6px}.options-panel{background:var(--bg-muted);border:1px solid var(--border);border-radius:6px;padding:10px 14px}.options-panel summary{cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--text-muted);font-weight:500}.options-panel[open] summary{color:var(--text);margin-bottom:10px}.options-grid{flex-direction:column;gap:10px;display:flex}.options-row{gap:var(--space);grid-template-columns:200px 1fr;align-items:start;display:grid}.options-label{color:var(--text-muted);padding-top:4px;font-size:.875rem}.options-control{flex-direction:column;gap:4px;display:flex}.options-control label{align-items:center;gap:4px;display:inline-flex}.options-control input[type=text]{border:1px solid var(--border-strong);border-radius:4px;max-width:260px;padding:4px 8px;font-size:.9rem}.options-muted{color:var(--text-muted);font-size:.875rem;font-style:italic}.session-vars{gap:6px}.session-var-row{align-items:center;gap:4px;font-size:.875rem;display:inline-flex}.session-var-form{align-items:center;gap:4px;margin-top:4px;display:inline-flex}.session-var-form input{max-width:160px}.session-var-remove{margin-left:6px;padding:0 6px;font-size:.9rem;line-height:1}.panel{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);padding:var(--space);box-shadow:var(--shadow);gap:var(--space);flex-direction:column;display:flex}.panel-header{justify-content:space-between;align-items:center;gap:var(--space);display:flex}.panel-title{color:var(--accent-strong);margin:0;font-size:1.1rem}.query-panel-actions{align-items:center;gap:var(--space);display:flex}.sample-queries{flex-direction:column;gap:6px;display:flex}.sample-queries-label{color:var(--text-muted);font-size:.85rem;font-weight:500}.sample-queries-chips{flex-wrap:wrap;gap:6px;display:flex}.sample-query-chip{border:1px solid var(--accent-soft);background:var(--accent-soft);color:var(--accent-strong);cursor:pointer;border-radius:999px;align-items:center;gap:6px;padding:4px 12px;font-size:.85rem;font-weight:500;transition:background .12s,border-color .12s,color .12s,transform 80ms;display:inline-flex}.sample-query-chip .chip-icon{flex-shrink:0}.sample-query-chip:hover{background:var(--accent);border-color:var(--accent);color:#fff}.sample-query-chip:active{transform:scale(.97)}.sample-query-chip.negative{border-color:var(--error-line);background:var(--error-soft);color:var(--error)}.sample-query-chip.negative:hover{background:var(--error);border-color:var(--error);color:#fff}.dialect-toggle{gap:12px;font-size:.9rem;display:inline-flex}.dialect-toggle label{align-items:center;gap:4px;display:inline-flex}.query-display{flex-direction:column;gap:8px;display:flex}.query-rewrite{flex-direction:column;gap:6px;font-size:.875rem;display:flex}.query-rewrite-label{color:var(--text-muted);font-weight:500}.query-rewrite-viewer .editor{min-height:0;max-height:240px}.query-stats{color:var(--text-muted);margin:0;font-size:.875rem}.results-table-wrap{border:1px solid var(--border);border-radius:6px;max-height:400px;overflow:auto}.results-table{border-collapse:collapse;width:100%;font-size:.875rem}.results-table th,.results-table td{text-align:left;border-bottom:1px solid var(--border);white-space:nowrap;padding:6px 10px}.results-table th{background:var(--bg-muted);color:var(--accent-strong);font-weight:600;position:sticky;top:0}.results-table tbody tr:last-child td{border-bottom:none}.results-empty{color:var(--text-muted);margin:0;font-size:.875rem}.query-error{background:var(--error-soft);border:1px solid var(--error-line);border-radius:6px;padding:10px 12px}.query-error-header{align-items:center;gap:6px;margin-bottom:4px;display:flex}.query-error-badge{background:var(--error);color:#fff;text-transform:uppercase;letter-spacing:.02em;border-radius:999px;padding:2px 8px;font-size:.75rem;font-weight:600}.query-error-message{color:var(--error);white-space:pre-wrap;word-break:break-word;margin:0}.reverse-panel{background:var(--bg-panel);border:1px solid var(--border);border-radius:var(--radius);box-shadow:var(--shadow);padding:12px 16px}.reverse-panel summary{cursor:pointer;-webkit-user-select:none;user-select:none;color:var(--accent-strong);font-weight:500}.reverse-panel[open] summary{margin-bottom:12px}.reverse-panel-body{flex-direction:column;gap:12px;display:flex}.reverse-panel-actions{justify-content:flex-start;display:flex}.reverse-result{flex-direction:column;gap:6px;display:flex}.reverse-result-title{color:var(--accent-strong);margin:0;font-size:.95rem}.map-wrap{flex-direction:column;gap:6px;display:flex}.map-canvas{border:1px solid var(--border);background:var(--bg-muted);border-radius:6px;width:100%;max-width:720px;height:auto}.map-caption{color:var(--text-muted);margin:0;font-size:.875rem}.map-caption code{background:var(--bg-muted);border-radius:3px;padding:1px 4px}@keyframes fade-in-up{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}.editors-row>.pane,.panel,.reverse-panel,.map-wrap{animation:.4s ease-out backwards fade-in-up}.editors-row>.pane-output{animation-delay:80ms}.map-wrap{animation-delay:.12s}@media (prefers-reduced-motion:reduce){.editors-row>.pane,.panel,.reverse-panel,.map-wrap{animation:none}}