:root{--navy: #0b1b30;--navy-soft: #16304f;--blue: #1d6fe0;--blue-dark: #155ab5;--blue-wash: #eef5ff;--ink: #16233a;--body: #4a5a70;--muted: #74839a;--line: #e2e8f0;--line-strong: #cfd8e4;--surface: #ffffff;--canvas: #f4f7fb;--ok: #14855c;--warn: #9a6410;--danger: #b8322f;--radius: 12px;--shadow: 0 1px 2px rgb(16 33 60 / 5%), 0 8px 24px rgb(16 33 60 / 6%);font-family:Inter,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,sans-serif;color:var(--ink);background:var(--canvas);-webkit-font-smoothing:antialiased}*{box-sizing:border-box}html,body{overflow-x:hidden}body{margin:0;min-height:100vh;line-height:1.55}h1,h2,h3{margin:0;line-height:1.2;letter-spacing:-.02em}h1{font-size:1.9rem;font-weight:700}h2{font-size:1.15rem;font-weight:650}h3{font-size:1rem;font-weight:650}code,pre,.mono{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85em}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}.topbar{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;height:62px;padding:0 16px;background:var(--surface);border-bottom:1px solid var(--line);overflow:visible}.topbar>*{min-width:0}.brand{display:flex;align-items:center;gap:9px;font-size:1.05rem;font-weight:700;color:var(--navy);letter-spacing:-.02em}.brand:hover{text-decoration:none}.logo-svg{display:block;width:100%;height:auto}.logo-topbar{width:160px}.logo-topbar .logo-mark-bg{fill:transparent}.logo-topbar .logo-mark-lines{stroke:var(--navy)}.logo-topbar .logo-name{fill:var(--navy)}.logo-topbar .logo-tagline{fill:var(--body)}.topbar nav{display:flex;align-items:center;gap:6px;flex-shrink:0}.topbar nav a{display:inline-flex;align-items:center;gap:6px;padding:7px 12px;border-radius:8px;color:var(--body);font-size:.875rem;font-weight:500;white-space:nowrap}.topbar nav a:hover{background:var(--canvas);text-decoration:none}.topbar nav a.active{background:var(--blue-wash);color:var(--blue-dark);font-weight:600}.topbar-user{margin-left:8px;padding-left:14px;border-left:1px solid var(--line);color:var(--muted);font-size:.85rem;white-space:nowrap}.mobile-menu-toggle{display:none;align-items:center;gap:6px;padding:7px;border:1px solid var(--line-strong);border-radius:8px;background:var(--surface);color:var(--body);cursor:pointer;flex-shrink:0}.mobile-menu-toggle:hover{background:var(--canvas)}.mobile-menu{display:none;position:absolute;top:62px;right:16px;left:16px;flex-direction:column;gap:0;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow);z-index:30;padding:8px 0}.topbar nav.mobile-menu{display:none}.topbar nav.mobile-menu.open{display:flex;align-items:stretch}.mobile-menu a{display:flex;align-items:center;gap:10px;padding:10px 16px;font-size:.9rem;font-weight:500;color:var(--body);width:100%}.mobile-menu a:hover{background:var(--canvas);text-decoration:none}.mobile-menu a.active{background:var(--blue-wash);color:var(--blue-dark);font-weight:600}.mobile-menu .topbar-user{display:block;margin:0;padding:10px 16px;border:0;border-bottom:1px solid var(--line);font-size:.85rem;color:var(--muted)}.mobile-menu button.ghost{display:flex;align-items:center;gap:8px;width:100%;padding:10px 16px;justify-content:flex-start;border:0;background:none;color:var(--body);font:inherit;font-size:.9rem;font-weight:500;cursor:pointer;border-radius:0}.mobile-menu button.ghost:hover{background:var(--canvas)}.topbar .brand{flex-shrink:0;min-width:0}.topbar .brand span{flex-shrink:0}@media(max-width:640px){.topbar{padding:0 12px;gap:8px}.topbar nav.desktop-nav{display:none}.mobile-menu-toggle{display:flex}.topbar-user,.topbar button.ghost{display:none}.topbar nav.mobile-menu button.ghost{display:flex}}main{padding:32px 28px 72px}.boot{display:grid;place-items:center;min-height:70vh}.page{max-width:1120px;margin:0 auto}.page.narrow{max-width:720px}.page-head{display:flex;align-items:flex-start;justify-content:space-between;gap:24px;margin-bottom:28px}.head-actions{display:flex;align-items:center;gap:12px}.eyebrow{margin:0 0 6px;font-size:.68rem;font-weight:700;letter-spacing:.12em;color:var(--blue)}.muted{color:var(--muted)}.small{font-size:.8rem}.panel{padding:22px;margin-bottom:20px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);box-shadow:var(--shadow)}.panel-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}.panel-head h2{display:flex;align-items:center;gap:8px}.grid-two{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.stats{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-bottom:24px}.stat{display:flex;align-items:center;gap:14px;padding:18px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);color:var(--blue)}.stat div{display:flex;flex-direction:column}.stat strong{font-size:1.45rem;color:var(--ink);line-height:1.1}.stat span{font-size:.8rem;color:var(--muted)}.field{display:flex;flex-direction:column;gap:6px;margin-bottom:16px}.field>label,.field>label:first-child{font-size:.8rem;font-weight:600;color:var(--body)}.field-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}.form-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:8px}input:not([type=checkbox]):not([type=radio]),select,textarea{width:100%;padding:9px 11px;font:inherit;font-size:.9rem;color:var(--ink);background:var(--surface);border:1px solid var(--line-strong);border-radius:8px}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--blue);box-shadow:0 0 0 3px #1d6fe01f}input[type=checkbox],input[type=radio]{accent-color:var(--blue);cursor:pointer}textarea{resize:vertical}.sql{font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.85rem;line-height:1.6;background:#0d1b2e;border-color:#0d1b2e;color:#d5e6ff}.sql:focus{border-color:var(--blue);box-shadow:0 0 0 3px #1d6fe040}.engine-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.engine-grid.two{grid-template-columns:repeat(2,1fr)}.engine{display:flex;flex-direction:column;gap:3px;padding:14px 12px;text-align:left;background:var(--surface);border:1px solid var(--line-strong);border-radius:10px;cursor:pointer;transition:border-color .15s,background .15s}.engine strong{font-size:.9rem;color:var(--ink)}.engine small{font-size:.75rem;color:var(--muted)}.engine:hover{border-color:var(--blue)}.engine.selected{border-color:var(--blue);background:var(--blue-wash);box-shadow:0 0 0 1px var(--blue)}.search{position:relative;flex:1;max-width:320px}.search svg{position:absolute;top:50%;left:12px;transform:translateY(-50%);color:var(--muted)}.search input:not([type=checkbox]):not([type=radio]){padding-left:40px}.toolbar{display:flex;align-items:center;gap:16px;margin-bottom:18px}.notice{display:flex;align-items:flex-start;gap:8px;margin:0 0 16px;padding:11px 13px;font-size:.85rem;color:var(--body);background:var(--blue-wash);border:1px solid #d3e3fb;border-radius:9px}.notice svg{flex-shrink:0;margin-top:2px;color:var(--blue)}.primary,.secondary,.ghost{display:inline-flex;align-items:center;justify-content:center;gap:7px;padding:9px 16px;font:inherit;font-size:.875rem;font-weight:600;border:1px solid transparent;border-radius:8px;cursor:pointer;white-space:nowrap}.primary{color:#fff;background:var(--blue)}.primary:hover:not(:disabled){background:var(--blue-dark)}.secondary{color:var(--blue-dark);background:var(--blue-wash);border-color:#cfe0fb}.secondary:hover:not(:disabled){background:#e0ecfd}.ghost{color:var(--body);background:transparent}.ghost:hover:not(:disabled){background:var(--canvas)}.full{width:100%}button:disabled{opacity:.55;cursor:not-allowed}.link{display:inline-flex;align-items:center;gap:5px;padding:0;font:inherit;font-size:.83rem;font-weight:550;color:var(--blue);background:none;border:0;cursor:pointer}.link:hover{text-decoration:underline}.link.danger{color:var(--danger)}.back{margin-bottom:18px;color:var(--muted)}.copy-button{display:inline-flex;align-items:center;gap:5px;padding:6px 11px;font:inherit;font-size:.8rem;font-weight:600;color:var(--blue-dark);background:var(--blue-wash);border:1px solid #cfe0fb;border-radius:7px;cursor:pointer;white-space:nowrap}.copy-button:hover{background:#e0ecfd}.alert{display:flex;align-items:flex-start;gap:10px;margin-bottom:18px;padding:13px 15px;font-size:.875rem;border:1px solid;border-radius:10px}.alert svg{flex-shrink:0;margin-top:1px}.alert-error{color:#8a2320;background:#fdf1f0;border-color:#f3d3d1}.alert-success{color:#0f6b4a;background:#eefaf4;border-color:#c9ebda}.alert-info{color:#1a4f8f;background:var(--blue-wash);border-color:#cfe0fb}.alert-warning{color:#7d4f07;background:#fdf4e3;border-color:#f2d9a4}.alert-dismiss{margin-left:auto;padding:0 4px;font-size:1.15rem;line-height:1;color:inherit;background:none;border:0;cursor:pointer;opacity:.6}.alert-dismiss:hover{opacity:1}.empty-state{padding:44px 20px;text-align:center}.empty-state h3{margin-bottom:6px}.empty-state p{margin:0 0 18px;color:var(--muted);font-size:.9rem}.placeholder{padding:48px 12px;text-align:center}.spinner{display:flex;align-items:center;gap:10px;padding:20px 0;color:var(--muted);font-size:.875rem}.spinner-ring{width:15px;height:15px;border:2px solid var(--line-strong);border-top-color:var(--blue);border-radius:50%;animation:spin .7s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}.status{display:inline-flex;align-items:center;gap:6px;font-size:.78rem;font-weight:600;white-space:nowrap}.status i{width:7px;height:7px;border-radius:50%;background:var(--muted)}.status-connected{color:var(--ok)}.status-connected i{background:var(--ok)}.status-error{color:var(--danger)}.status-error i{background:var(--danger)}.status-unknown{color:var(--muted)}.badge{display:inline-block;padding:2px 7px;font-size:.68rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;border-radius:5px}.badge-ok{color:var(--ok);background:#e4f6ee}.badge-warn{color:var(--warn);background:#fdf3e2}.badge-muted{color:var(--muted);background:var(--canvas)}.tag{display:inline-block;padding:2px 7px;font-size:.68rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;color:var(--body);background:var(--canvas);border-radius:5px}table{width:100%;border-collapse:collapse;font-size:.85rem}th,td{padding:10px 12px;text-align:left;border-bottom:1px solid var(--line);vertical-align:top}th{font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);background:#fafbfd}tbody tr:last-child td{border-bottom:0}.table-scroll{overflow-x:auto}.db-list{list-style:none;margin:0;padding:0}.db-list li{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}.db-list li:last-child{border-bottom:0}.db-list div{display:flex;flex-direction:column}.db-list span{font-size:.8rem}.db-card{display:flex;flex-direction:column}.db-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:14px}.db-head h3{margin-bottom:5px}.db-facts{display:grid;gap:8px;margin:0 0 14px}.db-facts div{display:flex;gap:8px;font-size:.83rem}.db-facts dt{flex:0 0 82px;color:var(--muted)}.db-facts dd{margin:0;word-break:break-all}.db-error{margin:0 0 14px;padding:9px 11px;font-size:.8rem;color:#8a2320;background:#fdf1f0;border:1px solid #f3d3d1;border-radius:8px}.db-actions{display:flex;flex-wrap:wrap;gap:16px;margin-top:auto;padding-top:14px;border-top:1px solid var(--line)}.quick-links{display:grid;gap:4px}.quick-links a{display:flex;align-items:flex-start;gap:11px;padding:11px;border-radius:9px;color:var(--ink)}.quick-links a:hover{background:var(--canvas);text-decoration:none}.quick-links svg{flex-shrink:0;margin-top:2px;color:var(--blue)}.quick-links span{display:flex;flex-direction:column}.quick-links strong{font-size:.88rem}.quick-links small{font-size:.78rem;color:var(--muted)}.steps-list{margin:0;padding-left:20px}.steps-list li{margin-bottom:10px;color:var(--body);font-size:.9rem}.steps-list strong{color:var(--ink)}.schema-layout{display:grid;grid-template-columns:240px minmax(0,1fr);gap:20px;align-items:start}.schema-layout h3{display:flex;align-items:center;gap:8px;margin-bottom:14px}.schema-layout h3 span{margin-left:auto;font-size:.75rem;color:var(--muted)}.table-list{display:flex;flex-direction:column;gap:2px;max-height:460px;overflow-y:auto}.table-list button{padding:7px 10px;font:inherit;font-size:.85rem;text-align:left;color:var(--body);background:none;border:0;border-radius:7px;cursor:pointer}.table-list button:hover{background:var(--canvas)}.table-list button.active{color:var(--blue-dark);background:var(--blue-wash);font-weight:600}.list-label{margin:12px 0 4px;padding:0 10px;font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}.scope-picker{margin:0;padding:0;border:0;min-width:0}.scope-picker legend{padding:0 0 8px;font-size:.8rem;font-weight:600;color:var(--body)}.scope-picker:disabled{opacity:.6}.scope-option{display:flex;align-items:flex-start;gap:10px;padding:11px 13px;margin-bottom:8px;border:1px solid var(--line);border-radius:10px;cursor:pointer}.scope-option:hover{border-color:var(--blue);background:var(--blue-wash)}.scope-option:has(input:checked){border-color:var(--blue);background:var(--blue-wash);box-shadow:0 0 0 1px var(--blue)}.scope-option input{margin-top:2px}.scope-option svg{flex-shrink:0;margin-top:2px;color:var(--blue)}.scope-option>span:last-child{flex:1;min-width:0;display:flex;flex-direction:column}.scope-option strong{font-size:.86rem;color:var(--ink)}.scope-option small{font-size:.78rem;color:var(--muted)}.scope-list{margin-top:12px;padding:12px;background:var(--canvas);border-radius:10px}.scope-list-actions{display:flex;align-items:center;gap:14px;margin-bottom:8px}.scope-item{display:flex;align-items:center;gap:10px;padding:8px 4px;border-top:1px solid var(--line);cursor:pointer}.scope-item:hover{color:var(--blue-dark)}.scope-item input{flex-shrink:0}.scope-item-body{display:flex;flex-direction:column;flex:1;min-width:0}.scope-item-body strong{font-size:.85rem;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scope-item-body small{font-size:.76rem;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.scope-empty{display:flex;align-items:flex-start;gap:8px;margin:0;padding:12px 14px;font-size:.84rem;color:var(--warn);background:#fdf4e3;border:1px solid #f2d9a4;border-radius:10px}.scope-empty svg{flex-shrink:0;margin-top:2px}.scope-summary{display:inline-flex;align-items:center;flex-wrap:wrap;gap:6px;font-size:.8rem;color:var(--body)}.scope-summary svg{flex-shrink:0;color:var(--muted)}.scope-summary .link{font-size:.75rem}.scope-none{color:var(--danger);font-weight:600}.scope-editor{min-width:260px;padding:12px;background:var(--canvas);border:1px solid var(--line);border-radius:10px}.scope-editor-actions{display:flex;gap:8px;margin-top:10px}.safety-note{display:flex;align-items:flex-start;gap:8px;margin:10px 0 0;font-size:.82rem;color:#0f6b4a}.safety-note svg{flex-shrink:0;margin-top:2px}.query-layout{display:grid;grid-template-columns:minmax(320px,38%) minmax(0,1fr);gap:20px;align-items:start}.token-reveal{display:flex;align-items:flex-start;gap:10px;margin-top:8px}.token-reveal .token-value{flex:1;margin-top:0}.token-reveal .copy-button{flex-shrink:0}.token-value{display:block;padding:10px 12px;color:#d5e6ff;background:#0d1b2e;border-radius:8px;word-break:break-all;-webkit-user-select:all;user-select:all}.token-countdown{display:flex;align-items:center;gap:6px;margin:9px 0 0;font-size:.78rem;font-weight:600;font-variant-numeric:tabular-nums}.token-countdown-note{display:flex;align-items:flex-start;gap:6px;margin:5px 0 0;font-size:.78rem;opacity:.85}.token-countdown-note svg{flex-shrink:0;margin-top:1px}.copy-row{display:flex;align-items:flex-start;gap:10px}.copy-row .mono,.copy-row .config{flex:1;margin:0}.copy-row code{display:block;padding:9px 11px;background:var(--canvas);border-radius:8px;word-break:break-all}.config{max-height:260px;padding:13px 15px;overflow:auto;color:#d5e6ff;background:#0d1b2e;border-radius:8px;white-space:pre}.auth{display:grid;grid-template-columns:1.05fr .95fr;min-height:100vh}.auth-intro{display:flex;flex-direction:column;justify-content:center;padding:6vw 5vw;color:#fff;background:radial-gradient(circle at 20% 15%,rgb(38 108 200 / 45%),transparent 55%),linear-gradient(150deg,#06172a,#0d2b4d)}.auth-intro h1{margin:12px 0 18px;font-size:clamp(2.2rem,4vw,3.2rem);line-height:1.08}.auth-intro h1 span{color:#74b0ff}.auth-lede{max-width:34rem;margin:0;font-size:1rem;color:#b9cde6}.auth-highlights{list-style:none;margin:32px 0 0;padding:0;display:grid;gap:14px}.auth-highlights li{display:flex;align-items:flex-start;gap:10px;font-size:.88rem;color:#d3e2f4}.auth-highlights svg{flex-shrink:0;margin-top:2px;color:#74b0ff}.auth-panel{display:grid;place-items:center;padding:40px 24px}.auth-card{display:flex;flex-direction:column;gap:15px;width:min(400px,100%)}.logo-auth{width:220px;max-width:100%;border-radius:8px;background:var(--navy)}.logo-auth-intro{width:240px;max-width:100%;margin:0 0 16px}.auth-card h2{font-size:1.45rem}.auth-card p{margin:-8px 0 0}.auth-card label{display:flex;flex-direction:column;gap:6px;font-size:.8rem;font-weight:600;color:var(--body)}.recaptcha-widget{display:flex;justify-content:center;min-height:78px;overflow:hidden}.auth-switch{text-align:center;font-size:.85rem}@media(max-width:900px){.grid-two,.query-layout,.schema-layout,.auth,.field-row{grid-template-columns:1fr}.auth-intro{display:none}.stats{grid-template-columns:1fr}.engine-grid{grid-template-columns:repeat(2,1fr)}.page-head{flex-direction:column;gap:16px}.topbar nav a{padding:7px 9px}.topbar-user{display:none}}@media(max-width:560px){main{padding:24px 16px 56px}.topbar{padding:0 16px}.engine-grid{grid-template-columns:1fr}h1{font-size:1.6rem}}@media(prefers-reduced-motion:reduce){*{animation-duration:.01ms!important;transition-duration:.01ms!important}}
