:root{--mono:ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;--border:#d0d7de;--bg:#fff;--bg-alt:#f6f8fa;--text:#1f2328;--muted:#656d76;--accent:#0969da;font-size:14px}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{color:var(--text);background:var(--bg);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif}.app{flex-direction:column;height:100%;display:flex}.app-header{border-bottom:1px solid var(--border);background:var(--bg-alt);justify-content:space-between;align-items:center;padding:8px 16px;display:flex}.app-header h1{margin:0;font-size:15px}.app-header a{color:var(--accent);font-size:13px;text-decoration:none}.columns{flex:1;min-height:0;display:flex}.col{flex-direction:column;min-width:0;min-height:0;display:flex}.col-input{flex:none;width:42%}.col-output{flex:1}.col-divider{cursor:col-resize;background:var(--border);flex:0 0 5px;transition:background .15s}.col-divider:hover,body.dragging-col .col-divider{background:var(--accent)}body.dragging-col{cursor:col-resize;-webkit-user-select:none;user-select:none}.sql-input{flex-direction:column;height:100%;display:flex}.sql-input-label{color:var(--muted);border-bottom:1px solid var(--border);padding:6px 10px;font-size:12px}.sql-input-wrap{flex:1;min-height:0;position:relative}.sql-backdrop,.sql-textarea{font-family:var(--mono);tab-size:4;white-space:pre-wrap;word-wrap:break-word;border:0;margin:0;padding:10px;font-size:13px;line-height:1.5;position:absolute;inset:0;overflow:auto}.sql-backdrop{color:#0000;pointer-events:none;z-index:1}.sql-mirror{min-height:100%}.sql-highlight{color:#0000;background:#fff3bf;border-radius:2px;box-shadow:0 0 0 1px #f0c000}.sql-highlight-selected{background:#cfe4ff;box-shadow:0 0 0 1px #4c9aff}.sql-highlight-both{background:#ffe08a;box-shadow:0 0 0 1px #4c9aff}.sql-textarea{z-index:2;color:var(--text);resize:none;background:0 0;outline:none}.tabs{border-bottom:1px solid var(--border);background:var(--bg-alt);flex:none;display:flex}.tab{appearance:none;cursor:pointer;color:var(--muted);background:0 0;border:0;border-bottom:2px solid #0000;padding:8px 14px;font-size:13px}.tab-active{color:var(--text);border-bottom-color:var(--accent);font-weight:600}.output-body{flex-direction:column;flex:1;min-height:0;display:flex}.tab-panel{flex:1;min-height:0;overflow:auto}.detail-panel{background:var(--bg-alt);flex:1;min-height:0;overflow:auto}.row-divider{cursor:row-resize;background:var(--border);flex:0 0 5px;transition:background .15s}.row-divider:hover,body.dragging-row .row-divider{background:var(--accent)}body.dragging-row{cursor:row-resize;-webkit-user-select:none;user-select:none}.detail,.detail-empty{padding:10px}.detail-empty,.viz-empty{color:var(--muted);padding:12px;font-size:13px}.detail-title{align-items:baseline;gap:10px;margin-bottom:6px;display:flex}.detail-type{font-family:var(--mono);font-weight:700}.detail-loc{color:var(--muted);font-size:12px}.detail-json,.json-pre,.text-output,.error{font-family:var(--mono);white-space:pre-wrap;word-break:break-word;margin:0;font-size:12.5px}.error{color:#cf222e;padding:12px}.json-view{padding:10px}.json-toggle{color:var(--muted);align-items:center;gap:6px;margin-bottom:8px;font-size:12px;display:flex}.text-output{padding:12px}.viz{font-family:var(--mono);font-size:12.5px}.viz-toolbar{background:var(--bg);border-bottom:1px solid var(--border);z-index:1;gap:6px;padding:6px 8px;display:flex;position:sticky;top:0}.viz-btn{appearance:none;border:1px solid var(--border);background:var(--bg-alt);cursor:pointer;color:var(--text);border-radius:4px;padding:2px 8px;font-size:11.5px}.viz-btn:hover{border-color:var(--accent);color:var(--accent)}.viz-rows{padding:6px 8px}.viz-row{cursor:pointer;align-items:baseline;padding:1px 0;display:flex}.viz-toggle{appearance:none;cursor:pointer;width:16px;color:var(--muted);text-align:center;background:0 0;border:0;flex:none;padding:0;font-size:10px;line-height:1}.viz-toggle-empty{cursor:default}.viz-row:hover .viz-bar{background:#eef4ff}.viz-row-selected .viz-bar{background:#dbe9ff}.viz-bar{border-left:4px solid;border-radius:2px;align-items:baseline;gap:8px;max-width:100%;padding:2px 8px;display:inline-flex}.viz-type{white-space:nowrap;font-weight:700}.viz-label{color:var(--muted);white-space:nowrap;font-size:11.5px}.viz-summary{color:var(--text);opacity:.85;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}
