:root{color-scheme:light;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;background:#f4f5f0;color:#20231f;--ink:#20231f;--muted:#6d726b;--line:#d9ded5;--panel:#ffffff;--soft:#eef1ea;--teal:#0c7c72;--teal-dark:#075d56;--coral:#c6533d;--amber:#c78d16;--blue:#466fc3;--shadow:0 18px 42px rgba(34,39,31,0.12)}*{box-sizing:border-box}#root,body,html{min-height:100%;margin:0}body{background:linear-gradient(90deg,rgba(12,124,114,.06) 0 1px,transparent 1px 100%) 0 0 /56px 56px,linear-gradient(180deg,rgba(198,83,61,.04) 0 1px,transparent 1px 100%) 0 0 /56px 56px,#f4f5f0}button,input,select,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}.app-shell{display:grid;grid-template-columns:280px minmax(0,1fr);min-height:100vh}.left-rail,.right-panel{background:rgba(255,255,255,.82);border-color:var(--line);border-style:solid;-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px)}.left-rail{gap:18px;padding:22px;border-width:0 1px 0 0}.left-rail,.right-panel{display:flex;flex-direction:column}.right-panel{position:fixed;top:0;right:0;z-index:20;gap:14px;width:min(440px,calc(100vw - 32px));height:100vh;padding:20px;border-width:0 0 0 1px;overflow-y:auto;transform:translateX(105%);transition:transform .18s ease;box-shadow:var(--shadow)}.panel-scrim{display:none}.panel-scrim.open{position:fixed;inset:0;z-index:19;display:block;border:0;border-radius:0;background:rgba(32,35,31,.28)}.panel-mobile-header{position:-webkit-sticky;position:sticky;top:-20px;z-index:1;display:flex;align-items:center;justify-content:space-between;min-height:54px;margin:-20px -20px 0;padding:12px 14px;border-bottom:1px solid var(--line);background:rgba(255,255,255,.96)}.right-panel.open{transform:translateX(0)}.brand-lockup{display:flex;align-items:center;gap:12px}.avatar,.brand-mark{display:inline-flex;align-items:center;justify-content:center;flex:0 0 auto}.brand-mark{width:42px;height:42px;border:1px solid #1d2520;border-radius:8px;color:#fff;background:#20231f}.brand-lockup h1{margin:0;font-size:20px;line-height:1.1;letter-spacing:0}.eyebrow{margin:0 0 3px;color:var(--teal-dark);font-size:12px;font-weight:800;letter-spacing:0;text-transform:uppercase}.ghost-button,.icon-button,.primary-command,.send-button,.stop-button{border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink)}.ghost-button,.primary-command{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:42px;padding:0 14px;font-weight:750;white-space:nowrap}.primary-command{border-color:#20231f;background:#20231f;color:#fff}.ghost-button:hover,.icon-button:hover{border-color:#aeb9ad;background:#f8faf5}.panel-section,.rail-section{display:grid;grid-gap:12px;gap:12px}.section-title{color:var(--muted);font-size:12px;font-weight:800;letter-spacing:0;text-transform:uppercase}.compact-status{margin-top:auto}.conversation-section{min-height:0}.conversation-list{display:grid;grid-gap:6px;gap:6px;max-height:min(48vh,460px);overflow-y:auto;padding-right:2px}.conversation-button{display:grid;grid-template-columns:minmax(0,1fr) 30px;align-items:center;grid-gap:6px;gap:6px;width:100%;min-height:54px;padding:8px 7px 8px 10px;border:1px solid transparent;border-radius:8px;background:transparent;color:var(--ink);text-align:left}.conversation-button.active,.conversation-button:hover{border-color:var(--line);background:rgba(255,255,255,.8)}.conversation-button span:first-child{min-width:0}.conversation-button strong,.conversation-button time{display:block}.conversation-button strong{overflow:hidden;font-size:13px;font-weight:800;line-height:1.35;text-overflow:ellipsis;white-space:nowrap}.conversation-button time,.empty-conversations{color:var(--muted);font-size:12px;font-weight:750}.conversation-delete{display:inline-flex;align-items:center;justify-content:center;width:30px;height:30px;border-radius:7px;color:var(--muted)}.conversation-delete:hover{background:#fff4ef;color:#9c3c29}.empty-conversations{padding:8px 2px}.status-line{display:flex;align-items:center;gap:9px;min-height:28px;color:var(--muted);font-size:14px;font-weight:750}.status-dot{width:10px;height:10px;border-radius:50%;background:var(--coral);box-shadow:0 0 0 4px rgba(198,83,61,.14)}.status-dot.online{background:var(--teal);box-shadow:0 0 0 4px rgba(12,124,114,.14)}.chat-workspace{display:grid;grid-template-rows:auto auto minmax(0,1fr) auto;min-width:0;max-height:100vh}.topbar{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:72px;padding:16px 22px;border-bottom:1px solid var(--line);background:rgba(244,245,240,.88);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.model-switch{display:grid;grid-gap:6px;gap:6px;min-width:0}.field span,.model-switch label{color:var(--muted);font-size:12px;font-weight:800}.select-wrap{position:relative;display:flex;align-items:center}.select-wrap select{width:min(520px,62vw);min-height:38px;padding:0 34px 0 12px;border:1px solid var(--line);border-radius:8px;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:#fff;color:var(--ink);font-weight:750}.select-wrap svg{position:absolute;right:11px;pointer-events:none}.topbar-actions{gap:10px}.error-banner,.topbar-actions{display:flex;align-items:center}.error-banner{grid-row:2;justify-content:space-between;gap:16px;margin:14px 22px 0;padding:12px 14px;border:1px solid rgba(198,83,61,.32);border-radius:8px;background:#fff4ef;color:#7a2d1e;font-size:13px;font-weight:700}.error-banner button{display:inline-flex;border:0;background:transparent;color:inherit}.message-stream{grid-row:3;display:flex;flex-direction:column;gap:18px;min-height:0;padding:24px clamp(18px,4vw,46px);overflow-y:auto}.message{display:grid;grid-template-columns:36px minmax(0,760px);grid-gap:12px;gap:12px;align-items:start}.message.user{grid-template-columns:minmax(0,760px) 36px;justify-content:end}.message.user .avatar{grid-column:2;grid-row:1;background:#20231f;color:#fff}.message.user .message-body{grid-column:1;grid-row:1;border-color:rgba(12,124,114,.24);background:#f7fffb}.avatar{width:36px;height:36px;background:#fff;color:var(--teal-dark)}.avatar,.message-body{border:1px solid var(--line);border-radius:8px}.message-body{min-width:0;padding:14px 15px;background:rgba(255,255,255,.92);box-shadow:0 1px 0 rgba(32,35,31,.04)}.message-meta{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px;color:var(--muted);font-size:12px;font-weight:800}.message-actions{gap:10px}.copy-button,.message-actions{display:inline-flex;align-items:center}.copy-button{gap:5px;min-height:28px;padding:0 8px;border:1px solid var(--line);border-radius:7px;background:#fff;color:var(--muted);font-size:12px;font-weight:800}.copy-button:hover{border-color:#aeb9ad;color:var(--ink)}.message-body p{margin:0;white-space:pre-wrap}.markdown-body,.message-body p{color:#272b25;font-size:15px;line-height:1.65;overflow-wrap:anywhere}.markdown-body>:first-child{margin-top:0}.markdown-body>:last-child{margin-bottom:0}.markdown-body blockquote,.markdown-body ol,.markdown-body p,.markdown-body pre,.markdown-body table,.markdown-body ul{margin:0 0 12px}.markdown-body ol,.markdown-body ul{padding-left:22px}.markdown-body li+li{margin-top:4px}.markdown-body code{padding:2px 5px;border:1px solid #dce2d8;border-radius:6px;background:#f4f6f1;font-family:SFMono-Regular,Consolas,Liberation Mono,monospace;font-size:.92em}.markdown-body pre{padding:12px;border:1px solid #dce2d8;border-radius:8px;background:#20231f;color:#f8faf5;overflow-x:auto}.markdown-body pre code{padding:0;border:0;background:transparent;color:inherit}.markdown-body blockquote{padding-left:12px;border-left:3px solid var(--teal);color:var(--muted)}.markdown-body table{width:100%;border-collapse:collapse;font-size:14px}.markdown-body td,.markdown-body th{padding:8px 10px;border:1px solid var(--line);text-align:left;vertical-align:top}.markdown-body th{background:#f4f6f1;font-weight:800}.attachment-tray,.message-attachments{display:flex;flex-wrap:wrap;gap:8px}.message-attachments{margin-bottom:10px}.image-thumb-button{display:inline-flex;padding:0;border:0;border-radius:8px;background:transparent}.image-thumb-button:focus-visible{outline:2px solid var(--teal);outline-offset:2px}.message-attachments img{width:132px;height:92px;object-fit:cover;border:1px solid var(--line);border-radius:8px}.image-preview-overlay{position:fixed;inset:0;z-index:40;display:flex;align-items:center;justify-content:center;padding:28px;background:rgba(32,35,31,.72)}.image-preview-dialog{position:relative;max-width:min(1100px,96vw);max-height:92vh}.image-preview-dialog img{display:block;max-width:100%;max-height:92vh;border:1px solid rgba(255,255,255,.28);border-radius:8px;background:#fff;box-shadow:0 24px 70px rgba(0,0,0,.34)}.image-preview-close{position:absolute;top:-14px;right:-14px;justify-content:center;width:38px;height:38px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--ink)}.image-preview-close,.typing-bars{display:inline-flex;align-items:center}.typing-bars{gap:6px;height:26px}.typing-bars span{width:7px;height:7px;border-radius:50%;background:var(--teal);animation:bounce .9s ease-in-out infinite}.typing-bars span:nth-child(2){animation-delay:.12s}.typing-bars span:nth-child(3){animation-delay:.24s}.composer{grid-row:4;margin:0 clamp(18px,4vw,46px) 22px;border:1px solid #cfd8ca;border-radius:8px;background:rgba(255,255,255,.96);box-shadow:var(--shadow)}.attachment-tray{padding:12px 12px 0}.composer-toolbar{display:flex;flex-wrap:wrap;gap:8px;padding:10px 10px 0}.tool-toggle{display:inline-flex;align-items:center;gap:7px;min-height:34px;padding:0 10px;border:1px solid var(--line);border-radius:999px;background:#fff;color:var(--muted);font-size:13px;font-weight:800}.tool-toggle:hover{border-color:#aeb9ad;color:var(--ink)}.tool-toggle.active{border-color:rgba(12,124,114,.45);background:#edf8f5;color:var(--teal-dark)}.attachment-preview{position:relative;width:84px;height:62px}.attachment-preview img{width:100%;height:100%;object-fit:cover;border:1px solid var(--line);border-radius:8px}.attachment-preview button{position:absolute;top:-6px;right:-6px;display:inline-flex;align-items:center;justify-content:center;width:22px;height:22px;border:1px solid var(--line);border-radius:50%;background:#fff;color:var(--ink)}.composer-row{display:grid;grid-template-columns:40px minmax(0,1fr) 44px;align-items:end;grid-gap:8px;gap:8px;padding:10px}.file-input{display:none}.icon-button,.send-button,.stop-button{display:inline-flex;align-items:center;justify-content:center;width:40px;height:40px}.send-button{border-color:var(--teal-dark);background:var(--teal);color:#fff}.stop-button{border-color:rgba(198,83,61,.55);background:#fff4ef;color:#9c3c29}.composer textarea{width:100%;min-height:40px;max-height:160px;padding:10px 4px;border:0;outline:0;resize:none;background:transparent;color:var(--ink);line-height:1.45}.panel-section{padding:14px;border:1px solid var(--line);border-radius:8px;background:rgba(255,255,255,.74)}.panel-heading{display:flex;align-items:center;gap:8px}.panel-heading h2{margin:0;font-size:15px;letter-spacing:0}.field{display:grid;grid-gap:6px;gap:6px}.field input,.field textarea{width:100%;border:1px solid var(--line);border-radius:8px;background:#fff;color:var(--ink)}.field input{min-height:38px;padding:0 10px}.field textarea{min-height:96px;padding:10px;resize:vertical}.spin{animation:rotate .8s linear infinite}@keyframes rotate{to{transform:rotate(1turn)}}@keyframes bounce{0%,80%,to{transform:translateY(0);opacity:.45}40%{transform:translateY(-5px);opacity:1}}@media (max-width:1160px){.app-shell{grid-template-columns:236px minmax(0,1fr)}.right-panel{width:min(360px,calc(100vw - 24px))}}@media (max-width:820px){.app-shell{grid-template-columns:1fr}.left-rail{display:none}.chat-workspace{max-height:none;min-height:100vh}.topbar{align-items:stretch;flex-direction:column;min-height:0}.select-wrap select{width:100%}.topbar-actions{justify-content:space-between}.message-stream{padding:18px 14px}.message,.message.user{grid-template-columns:34px minmax(0,1fr);justify-content:stretch}.message.user .avatar,.message.user .message-body{grid-column:auto;grid-row:auto}.message.user .avatar{order:0}.composer{margin:0 12px 14px}.composer-row{grid-template-columns:38px minmax(0,1fr) 42px}}