:root{--paper:#f2f5f7;--panel:#fff;--ink:#15212b;--muted:#5c6b78;--line:#dfe6eb;--accent:#0e7c6b;--accent-ink:#0a5d50;--accent-soft:#e2f1ed;--signal:#b45309;--signal-soft:#fbefdd;--danger:#b3361f;--danger-soft:#fae8e3;--code-bg:#101a22;--code-ink:#bfe8dd;--code-key:#7fd8c4;--code-num:#f2c879;--radius:12px;--mono:"IBM Plex Mono", ui-monospace, monospace;--body:"Public Sans", system-ui, sans-serif;--display:"Archivo", "Public Sans", sans-serif}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{height:100%}body{font-family:var(--body);background:var(--paper);color:var(--ink);font-size:15px;line-height:1.5}button{cursor:pointer;font-family:inherit}button:disabled{cursor:not-allowed;opacity:.55}@media (prefers-reduced-motion:reduce){*{transition:none!important;animation:none!important}}#app{grid-template-rows:56px 1fr;height:100vh;display:grid}header{background:var(--panel);border-bottom:1px solid var(--line);align-items:center;gap:18px;padding:0 20px;display:flex}.wordmark{font-family:var(--mono);letter-spacing:-.02em;font-size:17px;font-weight:600}.wordmark .tt{color:var(--accent)}.wordmark .cursor{background:var(--accent);vertical-align:-2px;width:8px;height:16px;margin-left:2px;animation:1.2s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.tagline{color:var(--muted);font-size:12.5px}header .spacer{flex:1}.status{font-family:var(--mono);color:var(--muted);border:1px solid var(--line);background:var(--paper);border-radius:99px;align-items:center;gap:7px;padding:6px 10px;font-size:11.5px;display:flex}.dot{background:#c2cdd5;border-radius:50%;width:7px;height:7px}.dot.ok{background:var(--accent)}.dot.warn{background:var(--signal)}.iconbtn{border:1px solid var(--line);background:var(--panel);color:var(--ink);border-radius:99px;align-items:center;gap:7px;padding:7px 13px;font-size:12.5px;font-weight:600;display:flex}.iconbtn:hover{border-color:var(--accent);color:var(--accent-ink)}.iconbtn:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--accent);outline-offset:2px}main{grid-template-columns:292px 1fr;min-height:0;display:grid}aside{background:var(--panel);border-right:1px solid var(--line);flex-direction:column;min-height:0;display:flex}.side-section{padding:16px 16px 12px}.side-section.tight{padding-bottom:4px}.side-label{font-family:var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--muted);margin-bottom:10px;font-size:10.5px;font-weight:600}.source-card{border:1px dashed var(--line);border-radius:var(--radius);text-align:center;padding:14px}.source-card p{color:var(--muted);margin-bottom:10px;font-size:12.5px}.btn{border:none;border-radius:9px;padding:9px 14px;font-size:13px;font-weight:700}.btn-primary{background:var(--accent);color:#fff}.btn-primary:hover{background:var(--accent-ink)}.btn-ghost{color:var(--accent-ink);border:1px solid var(--line);background:0 0;margin-top:7px;font-weight:600}.btn-ghost:hover:not(:disabled){border-color:var(--accent)}.btn.wide{width:100%}.db-meta{flex-wrap:wrap;align-items:baseline;gap:8px;margin-bottom:4px;display:flex}.db-name{font-family:var(--mono);word-break:break-all;font-size:13px;font-weight:600}.db-rows{color:var(--muted);font-size:11.5px}#schema{flex:1;min-height:60px;padding:0 10px 12px;overflow-y:auto}.tbl{border:1px solid var(--line);background:var(--panel);border-radius:10px;margin:0 6px 8px;overflow:hidden}.tbl-head{width:100%;font-family:var(--mono);color:var(--ink);text-align:left;background:0 0;border:none;align-items:center;gap:8px;padding:9px 11px;font-size:12.5px;font-weight:600;display:flex}.tbl-head:hover{background:var(--paper)}.tbl-head .count{color:var(--muted);margin-left:auto;font-size:11px;font-weight:400}.tbl-head .chev{color:var(--muted);font-size:10px;transition:transform .15s}.tbl.open .chev{transform:rotate(90deg)}.tbl-cols{border-top:1px solid var(--line);background:var(--paper);padding:7px 11px 9px}.col-row{font-family:var(--mono);color:var(--ink);justify-content:space-between;padding:2.5px 0;font-size:11.5px;display:flex}.col-row .ctype{color:var(--muted)}.dico{border:1px solid var(--line);border-radius:var(--radius);background:var(--paper);margin:0 16px 16px;padding:12px 14px}.dico-top{justify-content:space-between;align-items:center;gap:10px;display:flex}.dico-title{font-size:13px;font-weight:700}.dico p{color:var(--muted);margin-top:5px;font-size:11.5px}.switch{flex:none;width:40px;height:22px;position:relative}.switch input{opacity:0;cursor:pointer;z-index:1;width:100%;height:100%;margin:0;position:absolute}.track{background:#c9d4db;border-radius:99px;transition:background .15s;position:absolute;inset:0}.knob{background:#fff;border-radius:50%;width:16px;height:16px;transition:left .15s;position:absolute;top:3px;left:3px;box-shadow:0 1px 2px #00000040}.switch input:checked~.track{background:var(--accent)}.switch input:checked~.track .knob{left:21px}.switch input:focus-visible~.track{outline:2px solid var(--accent);outline-offset:2px}.dico-actions{flex-direction:column;align-items:flex-start;gap:2px;margin:7px 0 4px;display:flex}.dico-link{color:var(--accent-ink);background:0 0;border:none;padding:2px 0;font-size:11.5px;text-decoration:underline}.chat-zone{flex-direction:column;min-height:0;display:flex}#thread{flex:1;padding:28px 0;overflow-y:auto}.thread-inner{max-width:780px;margin:0 auto;padding:0 28px}.hero{text-align:center;max-width:640px;margin:7vh auto 0;padding:0 28px}.hero h1{font-family:var(--display);letter-spacing:-.025em;font-size:40px;font-weight:800;line-height:1.1}.hero h1 em{color:var(--accent);font-style:normal}.hero p{color:var(--muted);max-width:480px;margin:14px auto 26px}.hero-actions{justify-content:center;gap:10px;display:flex}.hero-note{font-family:var(--mono);color:var(--muted);margin-top:26px;font-size:11.5px}.msg-user{justify-content:flex-end;margin:18px 0 6px;display:flex}.msg-user .bubble{background:var(--ink);color:#fff;border-radius:14px 14px 3px;max-width:78%;padding:10px 15px;font-size:14.5px}.dossier{background:var(--panel);border:1px solid var(--line);border-radius:var(--radius);margin:10px 0 22px;overflow:hidden}.dossier-head{border-bottom:1px solid var(--line);background:var(--paper);align-items:center;gap:9px;padding:10px 16px;display:flex}.agent-glyph{background:var(--accent);color:#fff;width:22px;height:22px;font-family:var(--mono);border-radius:6px;flex:none;justify-content:center;align-items:center;font-size:11px;font-weight:600;display:flex}.dossier-head .who{font-size:12.5px;font-weight:700}.dossier-head .meta{font-family:var(--mono);color:var(--muted);margin-left:auto;font-size:11px}.badge-demo{font-family:var(--mono);background:var(--signal-soft);color:var(--signal);border-radius:5px;padding:2px 7px;font-size:10.5px;font-weight:600}.rail-wrap{padding:6px 16px 0}.rail-toggle{font-family:var(--mono);color:var(--accent-ink);letter-spacing:.04em;background:0 0;border:none;align-items:center;gap:8px;padding:7px 0;font-size:11.5px;font-weight:600;display:flex}.rail-toggle .chev{font-size:10px;transition:transform .15s}.rail-wrap.open .rail-toggle .chev{transform:rotate(90deg)}.rail{margin:4px 0 10px;padding-left:26px;position:relative}.rail:before{content:"";background:var(--line);border-radius:2px;width:2px;position:absolute;top:10px;bottom:10px;left:8px}.turn-row{font-family:var(--mono);color:var(--muted);border-top:1px dashed var(--line);flex-wrap:wrap;align-items:baseline;gap:7px;padding:8px 0 2px;font-size:10.5px;display:flex}.turn-row:first-child{border-top:none;padding-top:2px}.turn-label{letter-spacing:.05em;text-transform:uppercase;color:var(--accent-ink);font-weight:700}.turn-in.grow{color:var(--signal);font-weight:600}.turn-cache{color:var(--accent-ink)}.cost-hint-btn{font-family:var(--mono);color:var(--accent-ink);background:0 0;border:none;flex:none;margin-left:10px;padding:0;font-size:10.5px;-webkit-text-decoration:underline dotted;text-decoration:underline dotted}.cost-hint-body{border-bottom:1px solid var(--line);background:var(--accent-soft);color:var(--ink);padding:10px 16px;font-size:12.5px;line-height:1.55}.dossier-head .meta .est{letter-spacing:.02em;font-size:9.5px}.node{padding:7px 0 11px;position:relative}.node:before{content:"";background:var(--panel);border:2.5px solid var(--accent);border-radius:50%;width:9px;height:9px;position:absolute;top:13px;left:-23px}.node.running:before{animation:1s ease-in-out infinite pulse}@keyframes pulse{50%{box-shadow:0 0 0 5px #0e7c6b2e}}.node-line{flex-wrap:wrap;align-items:baseline;gap:9px;display:flex}.node-tool{font-family:var(--mono);color:var(--accent-ink);font-size:12px;font-weight:600}.node-dur{font-family:var(--mono);color:var(--muted);font-size:10.5px}.node-arg{font-family:var(--mono);color:var(--muted);word-break:break-all;font-size:11.5px}.sqlblock{background:var(--code-bg);color:var(--code-ink);font-family:var(--mono);white-space:pre-wrap;border-radius:8px;margin-top:6px;padding:9px 12px;font-size:12px;line-height:1.55;overflow-x:auto}.sqlblock .kw{color:var(--code-key);font-weight:600}.node-result{margin-top:7px}.mini-table{border-collapse:collapse;font-family:var(--mono);width:100%;margin-top:6px;font-size:11.5px}.mini-table th{background:var(--paper);text-align:left;border:1px solid var(--line);color:var(--muted);padding:0;font-weight:600}.mini-table th .th-sort{text-align:left;width:100%;font:inherit;color:inherit;background:0 0;border:none;padding:4px 9px;display:block}.mini-table th .th-sort:hover{color:var(--accent-ink)}.sort-mark{font-size:9px}.mini-table td{border:1px solid var(--line);padding:4px 9px}.node-note{color:var(--muted);margin-top:4px;font-size:11.5px}.node.err .node-tool{color:var(--danger)}.node.err:before{border-color:var(--danger)}.errchip{background:var(--danger-soft);color:var(--danger);font-family:var(--mono);border-radius:5px;margin-top:5px;padding:2px 7px;font-size:11px;display:inline-block}.wire-toggle{font-family:var(--mono);color:var(--muted);background:0 0;border:none;padding:0 0 8px;font-size:10.5px;text-decoration:underline}.wire-toggle:hover{color:var(--accent-ink)}.wire-log{background:var(--code-bg);color:var(--code-ink);font-family:var(--mono);white-space:pre-wrap;word-break:break-all;border-radius:8px;max-height:260px;margin:0 0 12px;padding:10px 12px;font-size:10.5px;line-height:1.5;overflow:auto}.answer{padding:14px 18px 18px;font-size:15px}.answer p{margin-bottom:9px}.answer p:last-child{margin-bottom:0}.answer strong{font-weight:700}.answer code{font-family:var(--mono);background:var(--paper);border:1px solid var(--line);border-radius:5px;padding:1px 5px;font-size:13px}.answer .mini-table{margin:4px 0 10px;font-size:12.5px}.thinking{color:var(--muted);align-items:center;gap:10px;padding:14px 18px;font-size:13.5px;display:flex}.spin{border:2px solid var(--line);border-top-color:var(--accent);border-radius:50%;flex:none;width:14px;height:14px;animation:.8s linear infinite rot}@keyframes rot{to{transform:rotate(360deg)}}.sysmsg{margin:8px 0}.sysmsg .inner{background:var(--danger-soft);color:var(--danger);border-radius:10px;padding:11px 15px;font-size:13px}.sysmsg.info .inner{background:var(--accent-soft);color:var(--accent-ink)}.sysmsg .inner p{margin:0}.compare-grid{grid-template-columns:1fr 1fr;gap:0;display:grid}.compare-side{min-width:0;padding:12px 16px 16px}.compare-side+.compare-side{border-left:1px solid var(--line)}.compare-side-head{font-family:var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--accent-ink);align-items:center;gap:8px;margin-bottom:8px;font-size:11.5px;font-weight:600;display:flex}.compare-answer{margin-top:10px;font-size:14px}.compare-answer p{margin-bottom:8px}.compare-answer code{font-family:var(--mono);background:var(--paper);border:1px solid var(--line);border-radius:5px;padding:1px 5px;font-size:12.5px}.composer{border-top:1px solid var(--line);background:var(--panel);padding:14px 28px 12px}.composer-inner{max-width:780px;margin:0 auto}.chips{flex-wrap:wrap;gap:8px;margin-bottom:10px;display:flex}.chip{border:1px solid var(--line);background:var(--paper);color:var(--ink);border-radius:99px;padding:6px 13px;font-size:12.5px}.chip:hover:not(:disabled){border-color:var(--accent);color:var(--accent-ink)}.inputrow{align-items:flex-end;gap:10px;display:flex}.inputbox{border:1.5px solid var(--line);background:var(--paper);border-radius:14px;flex:1;align-items:flex-end;padding:4px 4px 4px 16px;transition:border-color .15s;display:flex}.inputbox:focus-within{border-color:var(--accent)}textarea{resize:none;font-family:var(--body);max-height:130px;color:var(--ink);background:0 0;border:none;flex:1;padding:9px 0;font-size:15px;line-height:1.45}textarea:focus{outline:none}.send{background:var(--accent);color:#fff;border:none;border-radius:11px;flex:none;width:40px;height:40px;margin:2px;font-size:16px}.send:disabled{background:#c2cdd5}.send:not(:disabled):hover{background:var(--accent-ink)}.privacy{text-align:center;color:var(--muted);margin-top:9px;font-size:11px}dialog{border:none;border-radius:16px;width:92%;max-width:520px;margin:auto;padding:0;box-shadow:0 24px 60px #0d1c2640}dialog::backdrop{background:#0d1c2666}.modal-body{padding:22px 24px}.modal-body h3{font-family:var(--display);margin-bottom:6px;font-size:19px;font-weight:800}.modal-body .sub{color:var(--muted);margin-bottom:16px;font-size:13px}.field label{margin:12px 0 5px;font-size:12.5px;font-weight:700;display:block}.field input,.field select{border:1.5px solid var(--line);width:100%;font-family:var(--mono);background:var(--paper);border-radius:9px;padding:9px 12px;font-size:13px}.field .hint{color:var(--muted);margin-top:5px;font-size:11.5px}.modal-actions{border-top:1px solid var(--line);background:var(--paper);border-radius:0 0 16px 16px;justify-content:flex-end;gap:9px;padding:14px 24px;display:flex}.modal-actions .btn-ghost{margin-top:0}.dico-content{font-family:var(--mono);background:var(--code-bg);color:var(--code-ink);white-space:pre-wrap;border-radius:10px;max-height:300px;padding:14px 16px;font-size:12px;line-height:1.7;overflow-y:auto}
