*{margin:0;padding:0;box-sizing:border-box}:root{--bg: #0b1419;--bg-elev: #111b21;--sidebar: #0d1a20;--sidebar-hover: #15252e;--border: rgba(255, 255, 255, .08);--border-strong: rgba(255, 255, 255, .14);--text: #e8eef2;--muted: #8aa0ad;--accent: #14b8a6;--accent-dim: #0d9488;--accent-ink: #042f2e;--user-bubble: linear-gradient(135deg, #0f766e, #14b8a6);--bot-bubble: #1a2830;--danger: #ef4444;--radius: 14px;--sidebar-w: 280px;--font: "Inter", "Segoe UI", system-ui, -apple-system, sans-serif;--safe-t: env(safe-area-inset-top, 0px);--safe-b: env(safe-area-inset-bottom, 0px);--safe-l: env(safe-area-inset-left, 0px);--safe-r: env(safe-area-inset-right, 0px);--app-h: 100dvh}html,body,#root{height:100%;height:var(--app-h);max-height:var(--app-h);overflow:hidden;width:100%;max-width:100%}body{font-family:var(--font);background:var(--bg);color:var(--text);overflow:hidden;overflow-x:hidden;-webkit-text-size-adjust:100%;text-size-adjust:100%;touch-action:manipulation}button,input,textarea,select{font:inherit;color:inherit}button{cursor:pointer;-webkit-tap-highlight-color:transparent}.app-shell{height:100%;height:var(--app-h);max-height:var(--app-h);display:flex;background:var(--bg);overflow:hidden}.sidebar{width:var(--sidebar-w);flex-shrink:0;background:var(--sidebar);border-right:1px solid var(--border);display:flex;flex-direction:column;height:100%;max-height:var(--app-h);z-index:30;transition:transform .22s ease;padding-bottom:var(--safe-b)}.sidebar-top{padding:max(14px,var(--safe-t)) 12px 10px;border-bottom:1px solid var(--border);display:flex;flex-direction:column;gap:10px;flex-shrink:0}.sidebar-brand{display:flex;align-items:center;gap:10px;padding:4px 6px;min-width:0}.sidebar-brand-text{min-width:0;flex:1}.sidebar-brand-text strong{font-size:.94rem;display:block;font-weight:700;color:#fff;letter-spacing:-.01em}.sidebar-brand-text span{font-size:.68rem;color:var(--muted);display:block;text-transform:uppercase;letter-spacing:.04em}.avatar-badge{width:36px;height:36px;border-radius:50%;background:linear-gradient(135deg,#0d9488,#2dd4bf);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1rem;color:var(--accent-ink);flex-shrink:0;box-shadow:0 0 0 2px #14b8a640}.sidebar-close{display:none;width:36px;height:36px;flex-shrink:0;border-radius:8px;border:1px solid var(--border);background:#ffffff0a;color:var(--text);font-size:1.2rem;align-items:center;justify-content:center}.sidebar-close:hover{background:#ffffff14}.btn-new-chat{display:flex;align-items:center;justify-content:center;gap:8px;width:100%;padding:10px 14px;border-radius:12px;border:1px solid rgba(20,184,166,.35);background:#14b8a61f;color:#99f6e4;font-weight:650;font-size:.88rem;transition:background .15s,transform .1s}.btn-new-chat:hover{background:#14b8a638;transform:translateY(-1px)}.chat-list{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:10px 8px;display:flex;flex-direction:column;gap:3px;min-height:0}.chat-list-label{font-size:.65rem;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);padding:6px 10px 4px;font-weight:700}.chat-item{display:flex;align-items:center;gap:6px;width:100%;padding:9px 10px;border:none;border-radius:10px;background:transparent;color:#c5d4dc;text-align:left;transition:background .12s;position:relative;cursor:pointer}.chat-item:hover{background:var(--sidebar-hover)}.chat-item.active{background:#14b8a629;color:#fff;box-shadow:inset 3px 0 0 var(--accent)}.chat-item-body{flex:1;min-width:0}.chat-item-title{font-size:.84rem;font-weight:550;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-item-meta{display:flex;align-items:center;gap:6px;font-size:.68rem;color:var(--muted);margin-top:2px}.chat-mode-badge{text-transform:uppercase;font-size:.6rem;font-weight:700;padding:1px 4px;border-radius:4px;background:#14b8a633;color:#5eead4}.chat-item-actions{display:flex;align-items:center;gap:2px;opacity:0;transition:opacity .15s}.chat-item:hover .chat-item-actions,.chat-item.active .chat-item-actions{opacity:1}.chat-action-btn{border:none;background:transparent;color:#94a3b8;padding:4px 5px;border-radius:6px;font-size:.78rem;display:flex;align-items:center;justify-content:center}.chat-action-btn:hover{background:#ffffff14;color:#fff}.chat-action-btn.delete:hover{background:#ef444433;color:#fca5a5}.chat-inline-input{width:100%;border:1px solid rgba(20,184,166,.45);background:#00000059;color:var(--text);border-radius:6px;padding:2px 6px;font-size:.82rem;outline:none}.sidebar-empty{padding:24px 14px;text-align:center;color:var(--muted);font-size:.82rem;line-height:1.45}.sidebar-foot{border-top:1px solid var(--border);padding:12px;display:flex;flex-direction:column;gap:6px;flex-shrink:0}.footer-info{display:flex;align-items:center;justify-content:space-between;font-size:.7rem;color:var(--muted)}.footer-tag{color:#5eead4;font-weight:600}.main{flex:1;min-width:0;min-height:0;display:flex;flex-direction:column;height:100%;max-height:var(--app-h);overflow:hidden;position:relative;background:radial-gradient(ellipse 70% 40% at 50% 0%,rgba(20,184,166,.06),transparent 55%),var(--bg)}.main-top{display:flex;align-items:center;gap:10px;padding:max(10px,var(--safe-t)) max(16px,var(--safe-r)) 10px max(16px,var(--safe-l));border-bottom:1px solid var(--border);min-height:52px;background:#0b1419bf;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);flex-shrink:0;z-index:5}.menu-btn{display:none;width:40px;height:40px;border-radius:10px;border:1px solid var(--border);background:var(--bg-elev);color:var(--text);font-size:1.15rem;align-items:center;justify-content:center;flex-shrink:0}.menu-btn:hover{background:var(--sidebar-hover)}.main-title-container{flex:1;min-width:0;display:flex;align-items:center;gap:8px}.main-title{font-size:.95rem;font-weight:650;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:var(--text)}.main-badge{font-size:.7rem;padding:3px 8px;border-radius:999px;font-weight:650;text-transform:uppercase;letter-spacing:.04em;background:#14b8a626;border:1px solid rgba(20,184,166,.3);color:#5eead4}.provider-status-badge{display:flex;align-items:center;gap:6px;font-size:.74rem;color:var(--muted);background:#ffffff0a;border:1px solid var(--border);padding:4px 10px;border-radius:999px}.status-dot{width:7px;height:7px;border-radius:50%;background:#10b981;box-shadow:0 0 6px #10b98199}.status-dot.warning{background:#f59e0b;box-shadow:0 0 6px #f59e0b99}.messages{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;overscroll-behavior:contain;padding:10px max(16px,var(--safe-r)) 8px max(16px,var(--safe-l));scroll-behavior:smooth;min-height:0}.messages-inner{max-width:820px;width:100%;margin:0 auto;display:flex;flex-direction:column;gap:16px;min-height:0}.welcome{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:10px 12px 12px;gap:6px;min-height:0}.welcome .avatar-large{width:50px;height:50px;border-radius:50%;background:linear-gradient(135deg,#0d9488,#2dd4bf);display:flex;align-items:center;justify-content:center;font-weight:800;font-size:1.45rem;color:var(--accent-ink);box-shadow:0 0 0 3px #14b8a640;margin-bottom:2px}.welcome h2{font-size:1.38rem;font-weight:700;letter-spacing:-.02em;color:#fff;margin:0;line-height:1.25}.welcome p{color:#a8bcc8;font-size:.86rem;max-width:500px;line-height:1.35;margin:0}.doorways-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px;width:100%;max-width:700px;margin-top:10px}.doorway-card{text-align:left;padding:9px 13px;border-radius:12px;border:1px solid rgba(255,255,255,.12);background:linear-gradient(165deg,#1e303af2,#122028fa);color:#eef5f8;cursor:pointer;box-shadow:0 3px 10px #0003;transition:background .15s,border-color .15s,transform .12s,box-shadow .15s;display:flex;flex-direction:column;gap:2px}.doorway-card:hover{background:linear-gradient(165deg,#14b8a638,#122830fa);border-color:#2dd4bf8c;transform:translateY(-2px);box-shadow:0 6px 16px #00000047}.doorway-title{font-size:.84rem;font-weight:700;color:#99f6e4;display:flex;align-items:center;gap:6px}.doorway-desc{font-size:.72rem;color:#9eb4c0;line-height:1.25}.row{display:flex;gap:12px;align-items:flex-start;animation:fadeUp .22s ease;position:relative;scroll-margin-top:24px}@keyframes fadeUp{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}.row.user{flex-direction:row-reverse}.msg-stack{display:flex;flex-direction:column;align-items:flex-end;gap:6px;max-width:min(720px,calc(100% - 44px));min-width:0}.row.agent .msg-stack{align-items:flex-start}.msg-avatar{width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-weight:750;font-size:.78rem;flex-shrink:0}.row.agent .msg-avatar{background:linear-gradient(135deg,#0d9488,#2dd4bf);color:var(--accent-ink)}.row.user .msg-avatar{background:#334155;color:#e2e8f0}.bubble{max-width:100%;width:fit-content;padding:14px 18px;border-radius:16px;line-height:1.6;font-size:.94rem;word-break:break-word;overflow-wrap:anywhere}.row.agent .bubble{background:var(--bot-bubble);border:1px solid var(--border);border-top-left-radius:6px;color:#e8eef2}.row.user .bubble{background:var(--user-bubble);color:#042f2e;font-weight:500;border-top-right-radius:6px}.bubble p{margin:0 0 .75em}.bubble p:last-child{margin-bottom:0}.bubble strong{font-weight:700}.bubble em{font-style:italic}.bubble h1,.bubble h2,.bubble h3,.bubble h4{margin:.8em 0 .4em;font-weight:700;color:#fff}.bubble h1{font-size:1.25rem}.bubble h2{font-size:1.12rem;color:#99f6e4}.bubble h3{font-size:1.02rem;color:#5eead4}.bubble ul,.bubble ol{margin:.4em 0 .8em 1.4em}.bubble li{margin:.25em 0}.bubble blockquote{border-left:3px solid var(--accent);padding-left:12px;margin:.6em 0;color:#9eb4c0;font-style:italic}.bubble-table-wrapper{width:100%;overflow-x:auto;margin:.8em 0;border-radius:8px;border:1px solid rgba(255,255,255,.1)}.bubble table{width:100%;border-collapse:collapse;font-size:.86rem;text-align:left}.bubble th{background:#00000059;padding:8px 12px;font-weight:700;border-bottom:1px solid rgba(255,255,255,.15);color:#99f6e4}.bubble td{padding:8px 12px;border-bottom:1px solid rgba(255,255,255,.06)}.bubble tr:last-child td{border-bottom:none}.code-block{margin:.8em 0;border-radius:10px;overflow:hidden;background:#081116;border:1px solid rgba(255,255,255,.1)}.code-header{display:flex;align-items:center;justify-content:space-between;padding:6px 12px;background:#ffffff0a;font-size:.72rem;color:var(--muted);border-bottom:1px solid rgba(255,255,255,.06)}.code-header button{border:none;background:transparent;color:#5eead4;font-size:.72rem;font-weight:600}.code-header button:hover{text-decoration:underline}.code-block pre{padding:12px;overflow-x:auto;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.84rem;line-height:1.45;color:#d1d5db}.bubble code:not(pre code){font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.86em;background:#00000040;padding:2px 6px;border-radius:4px;color:#5eead4}.msg-footer{display:flex;align-items:center;gap:8px;margin-top:4px}.copy-btn{border:1px solid var(--border);background:#111b21e6;color:#c5d4dc;font-size:.72rem;font-weight:600;padding:4px 10px;border-radius:6px;display:flex;align-items:center;gap:4px;transition:all .12s}.copy-btn:hover{border-color:#14b8a666;color:#99f6e4;background:#14b8a61a}.typing{display:inline-flex;gap:5px;align-items:center;padding:6px 4px}.typing i{width:7px;height:7px;border-radius:50%;background:#5eead4;animation:bounce 1.1s infinite ease-in-out}.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}@keyframes bounce{0%,80%,to{transform:translateY(0);opacity:.4}40%{transform:translateY(-5px);opacity:1}}.composer-wrap{padding:6px max(16px,var(--safe-r)) max(8px,calc(6px + var(--safe-b))) max(16px,var(--safe-l));background:linear-gradient(180deg,transparent 0%,rgba(11,20,25,.55) 18%,var(--bg) 42%),var(--bg);border-top:1px solid rgba(255,255,255,.06);flex-shrink:0}.composer-container{max-width:820px;width:100%;margin:0 auto;display:flex;flex-direction:column;gap:5px}.mode-row{display:flex;flex-direction:column;gap:4px}.mode-header{display:flex;align-items:center;justify-content:space-between;padding:0 4px}.mode-label{font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:#9eb4c0}.mode-reset-btn{border:none;background:transparent;color:#7f96a4;font-size:.68rem;font-weight:600;text-decoration:underline;padding:1px 4px}.mode-reset-btn:hover{color:#5eead4}.mode-chips{display:flex;flex-wrap:wrap;gap:6px;padding:3px;border-radius:12px;background:#00000047;border:1px solid rgba(255,255,255,.1)}.mode-chip{border:1px solid rgba(255,255,255,.12);background:#1a2a34;color:#d6e4eb;border-radius:999px;padding:6px 12px;min-height:32px;font-size:.78rem;font-weight:700;cursor:pointer;flex:1 1 auto;text-align:center;box-shadow:0 1px #ffffff0a;transition:all .12s ease}.mode-chip:hover{border-color:#2dd4bf73;background:#203640;color:#fff;transform:translateY(-1px)}.mode-chip.active{border-color:transparent;background:linear-gradient(135deg,#0d9488,#14b8a6);color:#042f2e;box-shadow:0 4px 14px #14b8a659}.mode-hint{font-size:.72rem;color:#9eb4c0;padding:0 4px;line-height:1.25}.attach-chip{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:12px;border:1px solid rgba(20,184,166,.45);background:#14b8a624;color:#99f6e4;font-size:.8rem;font-weight:600}.attach-chip-remove{margin-left:auto;border:none;background:transparent;color:#fecaca;cursor:pointer;font-size:.95rem;display:flex;align-items:center;justify-content:center}.attach-chip-remove:hover{color:#ef4444}.composer{display:flex;align-items:flex-end;gap:7px;padding:6px 8px 6px 12px;border-radius:20px;border:1px solid rgba(255,255,255,.14);background:#15232c;box-shadow:0 8px 24px #0000004d;transition:border-color .15s,box-shadow .15s;min-width:0}.composer:focus-within{border-color:#2dd4bf8c;box-shadow:0 8px 24px #00000059,0 0 0 3px #14b8a629}.composer textarea{flex:1;border:none;background:transparent;outline:none;resize:none;max-height:160px;min-height:26px;line-height:1.45;padding:5px 2px;color:var(--text);font-size:.92rem;overflow-y:auto}.composer textarea::placeholder{color:#7f96a4}.icon-btn{width:36px;height:36px;border-radius:50%;border:1px solid var(--border);background:#ffffff0a;color:#c5d4dc;display:flex;align-items:center;justify-content:center;flex-shrink:0;transition:background .12s,color .12s}.icon-btn:hover:not(:disabled){background:#14b8a626;color:#99f6e4;border-color:#14b8a659}.icon-btn:disabled{opacity:.4;cursor:not-allowed}.send-btn{width:38px;height:38px;border-radius:50%;border:none;background:linear-gradient(135deg,#0d9488,#2dd4bf);color:var(--accent-ink);font-size:1rem;font-weight:800;flex-shrink:0;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 14px #14b8a666;transition:opacity .12s,transform .12s,box-shadow .12s}.send-btn:hover:not(:disabled){transform:scale(1.05);box-shadow:0 6px 18px #14b8a680}.send-btn:disabled{opacity:.4;cursor:not-allowed;box-shadow:none;transform:none}.composer-hint{text-align:center;font-size:.68rem;color:#7f96a4;margin-top:2px}.toast{position:fixed;bottom:calc(88px + var(--safe-b));left:50%;transform:translate(-50%) translateY(12px);max-width:min(480px,calc(100% - 32px));padding:12px 18px;border-radius:12px;background:#7f1d1df2;border:1px solid rgba(248,113,113,.45);color:#fecaca;font-size:.85rem;font-weight:500;z-index:50;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s;box-shadow:0 12px 32px #0006}.toast.show{opacity:1;transform:translate(-50%) translateY(0);pointer-events:auto}.toast.info{background:#0d9488f2;border-color:#2dd4bf73;color:#e6fffa}.scrim{display:none;position:fixed;top:0;right:0;bottom:0;left:0;background:#000000a6;z-index:25;-webkit-tap-highlight-color:transparent}.scrim.show{display:block}@media (max-width: 1023px){.sidebar{position:fixed;left:0;top:0;bottom:0;width:min(var(--sidebar-w),calc(100vw - 56px));max-width:320px;transform:translate(-105%);box-shadow:8px 0 32px #0006;padding-left:var(--safe-l)}.sidebar.open{transform:translate(0)}.sidebar-close,.menu-btn{display:flex}.doorways-grid{grid-template-columns:1fr 1fr;gap:8px}}@media (max-width: 720px){.doorways-grid{grid-template-columns:1fr}.welcome h2{font-size:1.25rem}.welcome p{font-size:.82rem}.mode-chip{font-size:.74rem;padding:5px 8px;min-height:30px}.msg-stack{max-width:calc(100% - 38px)}.bubble{padding:10px 14px;font-size:.9rem}}@media (max-width: 400px){:root{--sidebar-w: 100%}.sidebar{width:100%;max-width:none}.mode-chip{font-size:.72rem;padding:6px}.mode-hint{display:none}}
