:root{--ink-950: #0c1015;--ink-900: #12171e;--ink-800: #1a212a;--ink-700: #232b36;--hairline: #2a3340;--hairline-soft: #1e2530;--text-hi: #e8edf2;--text-mid: #aeb9c4;--text-lo: #6f7b88;--wire: #5b8def;--wire-dim: #355389;--amber: #e2a23b;--amber-dim: #6b5326;--green: #4cba8c;--green-dim: #204a3b;--red: #e5626a;--red-dim: #5a2429;--paper: #e8dfc9;--paper-dim: #3a3728;--serif: "Source Serif 4", Georgia, "Times New Roman", serif;--mono: "IBM Plex Mono", "SFMono-Regular", Consolas, monospace;--radius-sm: 3px;--radius-md: 6px}*{box-sizing:border-box}html,body,#root{height:100%}body{margin:0;background:var(--ink-950);color:var(--text-hi);font-family:var(--serif);-webkit-font-smoothing:antialiased}button,input,select,textarea{font-family:inherit;color:inherit}:focus-visible{outline:2px solid var(--wire);outline-offset:2px}::selection{background:var(--wire-dim)}.thread,.sidebar{scrollbar-width:thin;scrollbar-color:var(--hairline) transparent}.thread::-webkit-scrollbar,.sidebar::-webkit-scrollbar{width:9px}.thread::-webkit-scrollbar-thumb,.sidebar::-webkit-scrollbar-thumb{background:var(--hairline);border-radius:999px;border:2px solid var(--ink-900)}.thread::-webkit-scrollbar-thumb:hover,.sidebar::-webkit-scrollbar-thumb:hover{background:var(--text-lo)}.app-shell{height:100vh;display:flex;flex-direction:column}.gate{min-height:100%;display:flex;align-items:center;justify-content:center;padding:32px 20px;position:relative;overflow:hidden;background:radial-gradient(1100px 600px at 15% -10%,#14202f 0%,transparent 60%),var(--ink-950)}.gate:before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;opacity:.5;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='420' height='420' viewBox='0 0 420 420'%3E%3Cg fill='none' stroke='%232a3340' stroke-width='1'%3E%3Cline x1='40' y1='60' x2='150' y2='40'/%3E%3Cline x1='150' y1='40' x2='230' y2='110'/%3E%3Cline x1='230' y1='110' x2='360' y2='70'/%3E%3Cline x1='150' y1='40' x2='140' y2='170'/%3E%3Cline x1='140' y1='170' x2='40' y2='230'/%3E%3Cline x1='140' y1='170' x2='260' y2='230'/%3E%3Cline x1='260' y1='230' x2='230' y2='110'/%3E%3Cline x1='260' y1='230' x2='380' y2='280'/%3E%3Cline x1='40' y1='230' x2='60' y2='360'/%3E%3Cline x1='260' y1='230' x2='190' y2='370'/%3E%3C/g%3E%3Cg fill='%232a3340'%3E%3Ccircle cx='40' cy='60' r='3'/%3E%3Ccircle cx='150' cy='40' r='3'/%3E%3Ccircle cx='230' cy='110' r='3'/%3E%3Ccircle cx='360' cy='70' r='3'/%3E%3Ccircle cx='140' cy='170' r='3'/%3E%3Ccircle cx='40' cy='230' r='3'/%3E%3Ccircle cx='260' cy='230' r='3'/%3E%3Ccircle cx='380' cy='280' r='3'/%3E%3Ccircle cx='60' cy='360' r='3'/%3E%3Ccircle cx='190' cy='370' r='3'/%3E%3C/g%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right -60px top -40px;background-size:640px 640px;-webkit-mask-image:radial-gradient(600px 500px at 85% 10%,black 0%,transparent 70%);mask-image:radial-gradient(600px 500px at 85% 10%,black 0%,transparent 70%)}.gate-card{width:100%;max-width:480px;position:relative}.gate-mark{display:flex;align-items:center;gap:10px;margin-bottom:28px}.gate-mark-glyph{width:34px;height:34px;border:1px solid var(--hairline);border-radius:var(--radius-sm);display:flex;align-items:center;justify-content:center;font-family:var(--mono);font-size:13px;color:var(--amber);background:var(--ink-900);box-shadow:0 0 0 1px transparent,0 4px 16px -6px #e2a23b59}.gate-title{font-family:var(--serif);font-size:27px;font-weight:600;letter-spacing:-.01em;margin:0 0 6px}.gate-sub{font-family:var(--serif);font-style:italic;color:var(--text-mid);font-size:15.5px;margin:0 0 28px;max-width:42ch;line-height:1.5}.field-grid{display:grid;grid-template-columns:2fr 1fr;gap:12px}.field{margin-bottom:14px}.field label{display:block;font-family:var(--mono);font-size:11px;color:var(--text-lo);margin-bottom:6px;letter-spacing:.02em}.field input,.field select{width:100%;background:var(--ink-900);border:1px solid var(--hairline);border-radius:var(--radius-sm);padding:9px 11px;font-family:var(--mono);font-size:13.5px;color:var(--text-hi);box-shadow:inset 0 1px 2px #00000040;transition:border-color .15s ease,box-shadow .15s ease}.field input::placeholder{color:var(--text-lo)}.field input:focus,.field select:focus{border-color:var(--wire);box-shadow:inset 0 1px 2px #00000040,0 0 0 3px var(--wire-dim)}.field input:disabled{opacity:.5}.gate-actions{display:flex;gap:10px;margin-top:22px;align-items:center}.btn{font-family:var(--mono);font-size:13px;border-radius:var(--radius-sm);border:1px solid transparent;padding:10px 16px;cursor:pointer;transition:background .15s ease,border-color .15s ease,color .15s ease,transform .08s ease;white-space:nowrap}.btn:disabled{opacity:.5;cursor:default}.btn:active:not(:disabled){transform:translateY(1px)}.btn-primary{background:linear-gradient(180deg,#6c9bf5 0%,var(--wire) 100%);color:#071223;font-weight:600;box-shadow:0 1px #ffffff26 inset,0 6px 16px -8px #5b8def99}.btn-primary:hover:not(:disabled){background:linear-gradient(180deg,#7ea6f6,#6f9bf3)}.btn-ghost{background:transparent;border-color:var(--hairline);color:var(--text-mid)}.btn-ghost:hover:not(:disabled){border-color:var(--text-lo);color:var(--text-hi)}.test-result{margin-top:16px;padding:11px 13px;border-radius:var(--radius-sm);font-family:var(--mono);font-size:12.5px;line-height:1.5;border:1px solid}.test-result.ok{background:var(--green-dim);border-color:#2f6e57;color:#b7ecd8}.test-result.fail{background:var(--red-dim);border-color:#7c343b;color:#f4c2c6}.gate-footnote{margin-top:20px;font-family:var(--mono);font-size:11px;color:var(--text-lo);line-height:1.6;border-top:1px solid var(--hairline-soft);padding-top:16px}.db-type-toggle{display:flex;gap:3px;padding:3px;margin-bottom:20px;background:var(--ink-900);border:1px solid var(--hairline);border-radius:var(--radius-md)}.db-type-option{flex:1;display:flex;align-items:center;justify-content:center;gap:7px;font-family:var(--mono);font-size:12.5px;padding:8px 12px;border:none;border-radius:calc(var(--radius-md) - 2px);background:transparent;color:var(--text-lo);cursor:pointer;transition:background .15s ease,color .15s ease}.db-type-option:hover:not(.active){color:var(--text-mid)}.db-type-option.active{background:var(--ink-800);color:var(--text-hi);box-shadow:inset 0 0 0 1px var(--hairline)}.db-type-option.active svg{color:var(--amber)}.checkbox-field{display:flex;align-items:center;gap:8px;font-family:var(--mono);font-size:12px;color:var(--text-mid);margin:4px 0 14px;cursor:pointer}.checkbox-field input{accent-color:var(--wire)}.topbar{display:flex;align-items:center;justify-content:space-between;padding:12px 20px;border-bottom:1px solid var(--hairline);background:var(--ink-900);flex:0 0 auto;gap:10px}.topbar-left{display:flex;align-items:center;gap:15px;flex:1}.sidebar-toggle{display:none;background:transparent;border:1px solid var(--hairline);color:var(--text-mid);width:36px;height:36px;border-radius:var(--radius-sm);cursor:pointer;font-size:16px;transition:color .15s ease,border-color .15s ease}.sidebar-toggle:hover{color:var(--text-hi);border-color:var(--text-lo)}.topbar-id{display:flex;align-items:center;gap:10px;font-family:var(--mono);font-size:13px}.topbar-id .db-dot{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 3px var(--green-dim)}.topbar-id .db-icon{display:flex;align-items:center;color:var(--amber);margin-left:-2px}.topbar-id .db-name{color:var(--text-hi);font-weight:500}.topbar-id .db-meta{color:var(--text-lo)}.workbench{flex:1 1 auto;display:flex;min-height:0}.sidebar{width:280px;flex:0 0 auto;border-right:1px solid var(--hairline);background:var(--ink-900);overflow-y:auto;padding:16px 0 40px}.sidebar-heading{font-family:var(--mono);font-size:11px;color:var(--text-lo);letter-spacing:.02em;padding:0 16px 10px}.table-item{border-bottom:1px solid var(--hairline-soft);position:relative}.table-item:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:var(--amber);transform:scaleY(0);transition:transform .15s ease}.table-item:has(.table-item-head.open):before{transform:scaleY(1)}.table-item-head{width:100%;display:flex;align-items:center;justify-content:space-between;gap:8px;background:transparent;border:none;padding:9px 16px;cursor:pointer;text-align:left;color:var(--text-hi);transition:background .12s ease}.table-item-head:hover{background:var(--ink-800)}.table-item-head .name{font-family:var(--mono);font-size:13px}.table-item-head .count{font-family:var(--mono);font-size:11px;color:var(--text-lo)}.table-item-head .chevron{color:var(--text-lo);font-size:10px;transition:transform .15s ease}.table-item-head.open .chevron{transform:rotate(90deg)}.column-list{padding:2px 16px 10px}.column-row{display:flex;align-items:baseline;gap:6px;padding:3px 0;font-family:var(--mono);font-size:12px}.column-row .col-name{color:var(--text-mid)}.column-row.pk .col-name{color:var(--amber)}.column-row .col-type{color:var(--text-lo);font-size:11px}.column-row .fk-arrow{color:var(--wire);font-size:11px}.sidebar-footer{padding:14px 16px 0;margin-top:8px}.conversation{flex:1 1 auto;display:flex;flex-direction:column;min-width:0}.thread{flex:1 1 auto;overflow-y:auto;padding:28px clamp(20px,6vw,96px) 12px}.thread-empty{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;color:var(--text-lo);text-align:center;padding:0 20px}.thread-empty p{font-family:var(--serif);font-style:italic;font-size:15px;max-width:46ch;margin:0;line-height:1.5}.example-chips{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;max-width:54ch}.example-chip{font-family:var(--mono);font-size:12px;color:var(--text-mid);background:var(--ink-900);border:1px solid var(--hairline);border-radius:999px;padding:7px 14px;cursor:pointer;transition:border-color .15s ease,color .15s ease,transform .08s ease}.example-chip:hover:not(:disabled){border-color:var(--wire-dim);color:var(--text-hi)}.example-chip:active:not(:disabled){transform:translateY(1px)}.example-chip:disabled{opacity:.5;cursor:default}.turn{margin-bottom:36px;animation:turn-enter .28s ease-out}@keyframes turn-enter{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.turn-question{display:flex;justify-content:flex-end;margin-bottom:16px}.turn-question-text{font-family:var(--serif);font-size:17px;line-height:1.5;color:var(--text-hi);max-width:62ch;padding:4px 0 4px 16px;border-right:2px solid var(--paper);text-align:right}.turn-answer{border-left:2px solid var(--hairline);padding-left:18px}.turn-answer.blocked,.turn-answer.errored{border-left-color:var(--red)}.turn-answer.clarification{border-left-color:var(--wire)}.pending-line{font-family:var(--mono);font-size:13px;color:var(--text-lo)}.pending-line:after{content:"";display:inline-block;width:6px;height:6px;margin-left:8px;border-radius:50%;background:var(--amber);animation:pulse 1.1s ease-in-out infinite;vertical-align:middle}@keyframes pulse{0%,to{opacity:.25}50%{opacity:1}}.sql-panel{background:var(--ink-900);border:1px solid var(--hairline);border-left:2px solid var(--amber);border-radius:0 var(--radius-md) var(--radius-md) 0;padding:13px 15px;margin-bottom:10px;overflow-x:auto}.sql-panel code{font-family:var(--mono);font-size:13px;line-height:1.6;color:#e6d5a8;white-space:pre-wrap;word-break:break-word}.explanation{font-family:var(--serif);font-style:italic;font-size:14px;color:var(--text-mid);line-height:1.55;margin:0 0 14px;max-width:68ch}.status-line{font-family:var(--mono);font-size:12px;color:var(--text-lo);margin-bottom:10px;display:flex;gap:10px;align-items:center}.status-line .truncated{color:var(--amber)}.banner{font-family:var(--mono);font-size:13px;line-height:1.6;padding:11px 13px;border-radius:var(--radius-sm);border:1px solid}.banner.blocked{background:var(--red-dim);border-color:#7c343b;color:#f4c2c6}.banner.error{background:var(--ink-800);border-color:var(--hairline);color:var(--text-mid)}.banner.clarification{background:var(--wire-dim);border-color:var(--wire);color:#d7e4fb}.banner .banner-label{color:var(--red);font-weight:600;margin-right:6px}.banner.error .banner-label{color:var(--text-lo)}.banner.clarification .banner-label{color:var(--wire)}.clarification-options{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}.clarification-option{border-color:var(--wire-dim)}.clarification-option:hover:not(:disabled){border-color:var(--wire);color:var(--text-hi)}.correction-note{margin-top:8px;padding-top:8px;border-top:1px solid var(--hairline-soft);font-family:var(--mono);font-size:11px;color:var(--amber)}.error-hint{margin-top:10px;padding:8px 11px;background:#e4626a1a;border:1px solid rgba(228,98,106,.2);border-radius:var(--radius-sm);font-family:var(--mono);font-size:12px;color:#e5a8ac;line-height:1.5}.results-wrap{overflow-x:auto;border:1px solid var(--hairline);border-radius:var(--radius-md)}table.results{border-collapse:collapse;width:100%;font-family:var(--mono);font-size:12.5px}table.results th{text-align:left;padding:8px 12px;background:var(--ink-800);color:var(--text-lo);font-weight:500;border-bottom:1px solid var(--hairline);white-space:nowrap}table.results td{padding:7px 12px;border-bottom:1px solid var(--hairline-soft);color:var(--text-hi);white-space:nowrap}table.results tr:last-child td{border-bottom:none}table.results td.null{color:var(--text-lo);font-style:italic}.results-empty{padding:14px;font-family:var(--mono);font-size:12.5px;color:var(--text-lo)}.composer{flex:0 0 auto;border-top:1px solid var(--hairline);background:var(--ink-900);padding:14px clamp(20px,6vw,96px) 18px}.composer-form{display:flex;gap:10px;align-items:flex-end}.composer textarea{flex:1 1 auto;resize:none;background:var(--ink-950);border:1px solid var(--hairline);border-radius:var(--radius-md);padding:11px 14px;font-family:var(--serif);font-size:15.5px;color:var(--text-hi);line-height:1.5;max-height:140px}.composer textarea:focus{border-color:var(--wire)}.composer textarea::placeholder{color:var(--text-lo);font-style:italic}.composer-hint{font-family:var(--mono);font-size:10.5px;color:var(--text-lo);margin-top:7px}.spinner{width:13px;height:13px;border:2px solid var(--ink-800);border-top-color:var(--wire);border-radius:50%;animation:spin .7s linear infinite;display:inline-block}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion: reduce){.spinner,.pending-line:after{animation:none}.turn{animation:none}}@media (max-width: 820px){.sidebar{width:220px}.field-grid{grid-template-columns:1fr}}@media (max-width: 820px){.sidebar-toggle{display:block}}@media (max-width: 640px){.sidebar-toggle{display:block}.workbench{flex-direction:column;position:relative}.sidebar{position:absolute;left:0;top:0;bottom:0;width:260px;max-height:none;border-right:1px solid var(--hairline);border-bottom:none;background:var(--ink-900);transform:translate(-100%);transition:transform .3s ease;z-index:50;box-shadow:2px 0 8px #00000080}.sidebar.mobile-open{transform:translate(0)}}
