:root{color-scheme:dark;--bg: #0f1419;--bg-elevated: #171d24;--bg-input: #0c1015;--border: #2a3441;--border-soft: #1f2730;--text: #e7edf4;--text-muted: #8b98a8;--accent: #3d8bfd;--accent-hover: #5a9dff;--success: #3ecf8e;--error: #ff6b6b;--warning: #f0b429;--mono: "IBM Plex Mono", ui-monospace, monospace;--sans: "IBM Plex Sans", system-ui, sans-serif;--radius: 10px;--shadow: 0 12px 40px rgba(0, 0, 0, .35)}*,*:before,*:after{box-sizing:border-box}html,body{margin:0;height:100%;overflow:hidden;background:radial-gradient(circle at top left,#162032 0%,var(--bg) 45%);color:var(--text);font-family:var(--sans);line-height:1.5}#app{height:100vh;min-height:100vh}.layout{display:flex;flex-direction:column;height:100%;max-width:1400px;margin:0 auto;padding:1rem 1.5rem;min-height:0}.header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;margin-bottom:.85rem;flex-shrink:0}.header-brand h1{margin:0;font-size:1.75rem;font-weight:600;letter-spacing:-.02em}.header-brand p{margin:.25rem 0 0;color:var(--text-muted);font-size:.95rem}.header-link{color:var(--text-muted);text-decoration:none;font-size:.9rem;padding:.4rem .75rem;border:1px solid var(--border);border-radius:999px;transition:color .15s,border-color .15s}.header-link:hover{color:var(--text);border-color:var(--accent)}.main{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:1rem;align-items:stretch;flex:1;min-height:0}.panel{background:var(--bg-elevated);border:1px solid var(--border-soft);border-radius:var(--radius);box-shadow:var(--shadow);overflow:hidden;min-height:0;height:100%;display:flex;flex-direction:column}.panel-input{min-height:0}.input-body{flex:1 1 0;min-height:0;display:grid;grid-template-rows:minmax(0,1fr) auto}.input-body.schema-open{grid-template-rows:minmax(0,3fr) minmax(0,2fr)}.sql-body{min-height:0;position:relative}.sql-editor,.schema-editor{position:absolute;inset:0;width:100%;height:100%}.schema-section{display:flex;flex-direction:column;min-height:0;border-top:1px solid var(--border-soft);overflow:hidden}.schema-section:not(.schema-open) .schema-body{display:none}.schema-toggle{flex-shrink:0;width:100%;margin:0;padding:.65rem 1rem;border:none;border-bottom:1px solid transparent;background:transparent;color:var(--text-muted);font:inherit;font-size:.85rem;text-align:left;cursor:pointer}.schema-section.schema-open .schema-toggle{border-bottom-color:var(--border-soft)}.schema-toggle:hover{color:var(--text)}.schema-body{flex:1 1 0;min-height:0;position:relative}.panel-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.75rem;padding:.85rem 1rem;border-bottom:1px solid var(--border-soft);background:#ffffff05;flex-shrink:0}.panel-head h2{margin:0;font-size:.95rem;font-weight:600;text-transform:uppercase;letter-spacing:.06em;color:var(--text-muted)}.controls{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem}.field{display:flex;flex-direction:column;gap:.2rem;font-size:.75rem;color:var(--text-muted)}.field-inline{flex-direction:row;align-items:center;gap:.45rem}.field-check{flex-direction:row;align-items:center;gap:.35rem;cursor:pointer;user-select:none}select,input[type=text]{background:var(--bg-input);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:.35rem .55rem;font:inherit;font-size:.85rem}select{min-width:8rem}input[type=text]{min-width:12rem}.btn-primary{background:var(--accent);color:#fff;border:none;border-radius:6px;padding:.45rem .9rem;font:inherit;font-size:.85rem;font-weight:500;cursor:pointer;transition:background .15s}.btn-primary:hover:not(:disabled){background:var(--accent-hover)}.btn-primary:disabled{opacity:.6;cursor:wait}.editor{width:100%;min-height:0;resize:none;border:none;outline:none;padding:1rem;background:var(--bg-input);color:var(--text);font-family:var(--mono);font-size:.88rem;line-height:1.6;tab-size:2}.tabs{display:flex;gap:.25rem}.tab{background:transparent;color:var(--text-muted);border:1px solid transparent;border-radius:6px;padding:.3rem .6rem;font:inherit;font-size:.8rem;cursor:pointer}.tab:hover{color:var(--text)}.tab.active{color:var(--text);background:var(--bg-input);border-color:var(--border)}.status{margin:.75rem 1rem 0;padding:.55rem .75rem;border-radius:6px;font-size:.85rem;flex-shrink:0}.status-idle{background:#ffffff08;color:var(--text-muted)}.status-loading{background:#3d8bfd1f;color:#9ec5ff}.status-success{background:#3ecf8e1f;color:var(--success)}.status-error{background:#ff6b6b1f;color:var(--error)}.output{flex:1 1 0;min-height:0;padding:.75rem 1rem 1rem;overflow:auto}.placeholder{color:var(--text-muted);font-size:.9rem;margin:0}.table-wrap{overflow:auto;border:1px solid var(--border-soft);border-radius:8px}table{width:100%;border-collapse:collapse;font-size:.82rem}th,td{padding:.45rem .6rem;border-bottom:1px solid var(--border-soft);text-align:left;vertical-align:top;white-space:nowrap}th{position:sticky;top:0;background:#121820;color:var(--text-muted);font-weight:500}td{font-family:var(--mono);font-size:.8rem}tbody tr:hover{background:#ffffff05}.result-set-title,.section-title{margin:0 0 .5rem;font-size:.85rem;color:var(--text-muted)}.result-set-title:not(:first-child){margin-top:1rem}.badge{display:inline-block;padding:.1rem .45rem;border-radius:999px;font-family:var(--sans);font-size:.72rem;font-weight:500}.badge-static{background:#3ecf8e26;color:var(--success)}.badge-none{background:#8b98a826;color:var(--text-muted)}.badge-runtime,.badge-metadata,.badge-unknown{background:#f0b42926;color:var(--warning)}.msg-list{margin:0;padding-left:1.1rem}.msg-list li{margin-bottom:.35rem;font-size:.85rem}.msg-warning{color:var(--warning)}.msg-error{color:var(--error)}.msg-info{color:var(--text-muted)}.error-box,.json-box{margin:0;padding:.85rem;background:var(--bg-input);border:1px solid var(--border-soft);border-radius:8px;font-family:var(--mono);font-size:.78rem;line-height:1.5;overflow:auto;white-space:pre-wrap;word-break:break-word}.error-box{color:var(--error)}@media(max-width:960px){html,body{overflow:auto}#app,.layout{height:auto;min-height:100vh}.main{grid-template-columns:1fr;flex:none}.panel{height:auto;min-height:360px}.input-body,.input-body.schema-open{grid-template-rows:auto auto}.sql-body{min-height:220px}.schema-body{min-height:140px}.sql-editor,.schema-editor{position:static;height:100%;min-height:inherit}}
