:root{--bg: #0f1117;--panel: #171a23;--panel-2: #1f2330;--border: #2a2f3d;--text: #e6e8ee;--muted: #9aa3b2;--accent: #6aa3ff;--accent-press: #4d86e6;--danger: #ff6b6b;--warn: #f0b429;--mono: ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, monospace;--sans: system-ui, -apple-system, Segoe UI, Roboto, sans-serif}*{box-sizing:border-box}html,body,#root{height:100%;margin:0}body{background:var(--bg);color:var(--text);font-family:var(--sans);font-size:13px;-webkit-font-smoothing:antialiased}.app{display:flex;flex-direction:column;height:100%}.app-header{display:flex;align-items:baseline;gap:8px;padding:10px 16px;border-bottom:1px solid var(--border);background:var(--panel)}.app-header h1{margin:0;font-size:18px;letter-spacing:.5px}.subtitle{color:var(--muted);font-size:12px}.app-header .logout{margin-left:auto;background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:5px 12px;font-size:12px;cursor:pointer}.app-header .logout:hover{border-color:var(--accent)}.app-loading{margin:auto;padding:48px;color:var(--muted)}.login-form{width:320px;margin:64px auto;display:flex;flex-direction:column;gap:14px;padding:24px;background:var(--panel);border:1px solid var(--border);border-radius:10px}.login-form h2{margin:0;font-size:16px}.login-error{margin:0;color:var(--danger);font-size:12px}.app-body{display:flex;flex:1;min-height:0}.sidebar{width:380px;min-width:320px;border-right:1px solid var(--border);background:var(--panel);overflow-y:auto;padding:14px}.main{flex:1;min-width:0;display:flex;flex-direction:column;overflow:hidden}.query-form{display:flex;flex-direction:column;gap:14px}.field{display:flex;flex-direction:column;gap:5px}.field-head{display:flex;justify-content:space-between;align-items:center}.field label{color:var(--muted);font-size:11px;text-transform:uppercase;letter-spacing:.4px}.field-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}input,select,textarea{background:var(--panel-2);color:var(--text);border:1px solid var(--border);border-radius:6px;padding:7px 9px;font-size:13px;font-family:var(--sans);width:100%}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--accent)}input:disabled{opacity:.5}textarea{font-family:var(--mono);resize:vertical}.hint{margin:0;color:var(--muted);font-size:11px;line-height:1.4}.matcher-row{display:flex;align-items:center;gap:6px}.matcher-name{flex:1}.matcher-value{flex:1.3}.eq{color:var(--muted)}.icon-btn{background:transparent;border:1px solid var(--border);color:var(--muted);border-radius:6px;width:28px;height:30px;cursor:pointer;font-size:16px;line-height:1}.icon-btn:hover{color:var(--danger);border-color:var(--danger)}.link{background:none;border:none;color:var(--accent);cursor:pointer;font-size:12px;padding:0}.actions{margin-top:4px}.run{width:100%;background:var(--accent);color:#08111f;border:none;border-radius:6px;padding:9px 12px;font-size:14px;font-weight:600;cursor:pointer}.run:hover{background:var(--accent-press)}.run:disabled{opacity:.6;cursor:default}.error-banner{margin:12px;padding:10px 12px;background:#ff6b6b1f;border:1px solid var(--danger);border-radius:6px;color:#ffb3b3;font-family:var(--mono);font-size:12px;white-space:pre-wrap}.results{flex:1;min-height:0;display:flex;flex-direction:column}.results-empty{margin:auto;color:var(--muted)}.results-meta{display:flex;gap:16px;align-items:center;padding:8px 14px;border-bottom:1px solid var(--border);color:var(--muted);font-size:12px}.results-meta strong{color:var(--text)}.results-meta .warn{color:var(--warn)}.table-scroll{flex:1;overflow:auto}.data-table{border-collapse:collapse;font-family:var(--mono);font-size:12px;width:max-content;min-width:100%}.data-table th,.data-table td{border-bottom:1px solid var(--border);border-right:1px solid var(--border);padding:4px 8px;text-align:left;max-width:360px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.data-table thead th{position:sticky;top:0;background:var(--panel-2);z-index:1}.data-table th{display:table-cell}.col-name{display:block;color:var(--text);font-weight:600}.col-type{display:block;color:var(--muted);font-weight:400;font-size:10px}.data-table tbody tr:nth-child(2n){background:#ffffff05}.data-table tbody tr:hover{background:#6aa3ff14}
