:root{--bg:#f6f6f4;--panel:#fff;--panel-2:#ececea;--ink:#1b1b18;--text:#5c5c55;--muted:#8d8d85;--border:#e3e3dd;--border-strong:#cfcfc8;--accent:#1b1b18;--on-accent:#f8f8f6;--code-bg:#efefec;--danger:#a3331f;--danger-bg:#f7e9e5;--shadow:0 1px 2px #1b1b180a;--sans:"Instrument Sans", system-ui, -apple-system, "Segoe UI", sans-serif;--mono:"JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--radius:12px}:root[data-theme=dark]{--bg:#141413;--panel:#1c1c1a;--panel-2:#242421;--ink:#e9e9e3;--text:#a6a69d;--muted:#6f6f68;--border:#2a2a27;--border-strong:#3b3b35;--accent:#e9e9e3;--on-accent:#141413;--code-bg:#23231f;--danger:#e29082;--danger-bg:#a0331f24;--shadow:0 1px 2px #0000004d;--shadow-lg:0 16px 40px -12px #0000008c}*{box-sizing:border-box}html,body,#root{height:100%}body{background:var(--bg);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-size:16px;line-height:1.55}button{cursor:pointer;font-family:inherit}:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.app{flex-direction:column;height:100svh;display:flex}.header{border-bottom:1px solid var(--border);background:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:blur(10px);z-index:5;flex:none;justify-content:space-between;align-items:center;gap:16px;padding:12px 16px;display:flex}.header__brand{align-items:center;gap:10px;min-width:0;display:flex}.header__dot{background:var(--accent);border-radius:50%;flex:none;width:9px;height:9px}.header__name{letter-spacing:-.01em;font-weight:600}.header__actions{align-items:center;gap:4px;display:flex}.status{font-family:var(--mono);color:var(--muted);background:var(--panel-2);border:1px solid var(--border);border-radius:999px;align-items:center;gap:6px;padding:5px 10px;font-size:11px;transition:color .12s;display:inline-flex}.status:hover:not(:disabled){color:var(--ink)}.status:disabled{cursor:default}.status__dot{background:var(--muted);border-radius:50%;flex:none;width:7px;height:7px}.status--connected .status__dot{background:#3a9d5d}.status--error .status__dot{background:var(--danger)}.status--checking .status__dot{animation:1.1s ease-in-out infinite status-pulse}@keyframes status-pulse{50%{opacity:.25}}.icon-btn{width:40px;height:40px;color:var(--text);background:0 0;border:none;border-radius:10px;justify-content:center;align-items:center;transition:background .12s,color .12s;display:inline-flex}.icon-btn:hover{background:var(--panel-2);color:var(--ink)}.icon-btn:disabled{opacity:.35;cursor:default;background:0 0}.icon-btn--sm{border-radius:7px;width:28px;height:28px}.list{overscroll-behavior:contain;flex:1;overflow-y:auto}.list__inner{flex-direction:column;max-width:780px;min-height:100%;margin:0 auto;padding:8px 20px 12px;display:flex}.empty{text-align:center;flex-direction:column;align-items:center;gap:6px;margin:auto 0;padding:64px 0;display:flex}.empty__title{letter-spacing:-.04em;margin:0;font-size:44px;font-weight:600}.empty .status{margin-top:8px;padding:6px 12px}.empty__sub{color:var(--text);margin:0}.empty__suggestions{flex-wrap:wrap;justify-content:center;gap:8px;max-width:520px;margin-top:28px;display:flex}.chip{border:1px solid var(--border-strong);color:var(--text);background:0 0;border-radius:999px;padding:8px 16px;font-size:14px;transition:border-color .12s,color .12s,background .12s}.chip:hover{border-color:var(--ink);color:var(--ink);background:var(--panel)}.msg{flex-direction:column;padding:16px 0;display:flex}.msg--user{align-items:flex-end}.msg__role{font-family:var(--mono);text-transform:uppercase;letter-spacing:.08em;color:var(--muted);margin-bottom:8px;font-size:11px}.msg__bubble{background:var(--accent);color:var(--on-accent);white-space:pre-wrap;overflow-wrap:anywhere;max-width:85%;box-shadow:var(--shadow);border-radius:16px 16px 4px;padding:10px 16px}.msg__body{overflow-wrap:anywhere;max-width:100%}.stream-cursor{vertical-align:text-bottom;background:var(--accent);width:7px;height:1.05em;margin-left:2px;animation:1.1s step-end infinite blink;display:inline-block}@keyframes blink{50%{opacity:0}}.markdown>:first-child{margin-top:0}.markdown>:last-child{margin-bottom:0}.markdown p{margin:0 0 12px}.markdown h1,.markdown h2,.markdown h3,.markdown h4{letter-spacing:-.02em;margin:24px 0 8px;font-weight:600;line-height:1.3}.markdown h1{font-size:22px}.markdown h2{font-size:19px}.markdown h3{font-size:17px}.markdown h4{font-size:16px}.markdown ul,.markdown ol{margin:0 0 12px;padding-left:22px}.markdown li{margin:4px 0}.markdown a{color:var(--ink);text-underline-offset:3px;text-decoration-thickness:1px}.markdown blockquote{border-left:2px solid var(--border-strong);color:var(--text);margin:0 0 12px;padding:2px 0 2px 16px}.markdown hr{border:none;border-top:1px solid var(--border);margin:20px 0}.markdown code{font-family:var(--mono);background:var(--code-bg);border:1px solid var(--border);border-radius:5px;padding:1px 5px;font-size:.86em}.markdown table{border-collapse:collapse;width:100%;margin:0 0 12px;font-size:14px;display:block;overflow-x:auto}.markdown th,.markdown td{border:1px solid var(--border);text-align:left;padding:7px 12px}.markdown th{background:var(--panel-2);font-weight:600}.markdown input[type=checkbox]{margin-right:8px}.code-block{border:1px solid var(--border);border-radius:var(--radius);background:var(--code-bg);margin:0 0 14px;overflow:hidden}.code-block__bar{border-bottom:1px solid var(--border);background:var(--panel);justify-content:space-between;align-items:center;padding:6px 8px 6px 14px;display:flex}.code-block__lang{font-family:var(--mono);color:var(--muted);text-transform:lowercase;font-size:11px}.code-block pre{margin:0;padding:14px;overflow-x:auto}.code-block code{font-family:var(--mono);color:var(--ink);white-space:pre;background:0 0;border:none;padding:0;font-size:13px;line-height:1.6}.error-banner{background:var(--danger-bg);width:calc(100% - 40px);max-width:780px;color:var(--danger);border:1px solid color-mix(in srgb, var(--danger) 30%, transparent);border-radius:var(--radius);flex:none;align-items:center;gap:12px;margin:0 auto 10px;padding:8px 8px 8px 16px;font-size:14px;display:flex}.error-banner__text{overflow-wrap:anywhere;flex:1;min-width:0}.error-banner__actions{flex:none;align-items:center;gap:6px;display:flex}.error-banner .btn{background:color-mix(in srgb, var(--danger) 10%, transparent);border-color:color-mix(in srgb, var(--danger) 35%, transparent);color:var(--danger)}.error-banner .btn:hover:not(:disabled){background:color-mix(in srgb, var(--danger) 18%, transparent)}.composer{padding:10px 16px max(12px, env(safe-area-inset-bottom));border-top:1px solid var(--border);background:color-mix(in srgb, var(--bg) 82%, transparent);-webkit-backdrop-filter:blur(10px);flex:none}.composer__box{background:var(--panel);border:1px solid var(--border-strong);max-width:780px;box-shadow:var(--shadow);border-radius:16px;align-items:flex-end;gap:8px;margin:0 auto;padding:8px 8px 8px 16px;transition:border-color .12s,box-shadow .12s;display:flex}.composer__box:focus-within{border-color:var(--ink);box-shadow:0 0 0 3px color-mix(in srgb, var(--ink) 10%, transparent), var(--shadow)}.composer__box textarea{resize:none;color:var(--ink);background:0 0;border:none;outline:none;flex:1;max-height:160px;padding:8px 0;font-family:inherit;font-size:16px;line-height:1.5}.composer__box textarea::placeholder{color:var(--muted)}.composer__box textarea:disabled{cursor:not-allowed}.composer__hint{text-align:center;max-width:780px;font-family:var(--mono);color:var(--muted);margin:8px auto 0;font-size:11px}.btn{border:1px solid var(--border-strong);color:var(--ink);background:0 0;border-radius:10px;justify-content:center;align-items:center;gap:6px;padding:9px 18px;font-size:14px;font-weight:500;transition:background .12s,border-color .12s,opacity .12s;display:inline-flex}.btn:hover{background:var(--panel-2)}.btn:disabled{opacity:.4;cursor:default}.btn--primary{background:var(--accent);color:var(--on-accent);border-color:#0000}.btn--primary:hover{background:var(--accent);filter:brightness(1.06)}.btn--send{background:var(--accent);width:42px;height:42px;color:var(--on-accent);border:none;border-radius:12px;flex:none;padding:0;transition:background .12s,opacity .12s}.btn--send:hover:not(:disabled){filter:brightness(1.06)}.btn--send:disabled{background:var(--panel-2);color:var(--muted);opacity:1}.btn--sm{border-radius:8px;flex:none;padding:6px 12px;font-size:13px}@media (width<=600px){.composer__hint{display:none}.msg{padding:12px 0}.empty__title{font-size:36px}}@media (prefers-reduced-motion:reduce){*,:before,:after{transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
