:root{--bg:#f4f6f8;--paper:#ffffff;--paper-soft:#f8fafc;--ink:#172033;--muted:#5c6b7a;--line:#d7dee7;--line-strong:#b9c6d3;--primary:#0f6f67;--primary-strong:#0a5650;--primary-soft:#e3f3f0;--assistant:#ffffff;--user:#0f6f67;--warning:#b45309;--warning-soft:#fff4df;--shadow:0 18px 45px rgba(23,32,51,0.09)}*{box-sizing:border-box}body,html{min-height:100%;margin:0}body{background:var(--bg);color:var(--ink);font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Microsoft YaHei,sans-serif}button,input,textarea{font:inherit}button{border:0}.page-shell{min-height:100svh;padding:6px}.chat-stage{width:100%;min-height:calc(100svh - 12px);margin:0 auto;display:block}.intro-panel{padding:12px 4px;display:flex;flex-direction:column;justify-content:center}.eyebrow,.toolbar-kicker{margin:0;color:var(--primary);font-size:13px;font-weight:700}.intro-panel h1{margin:12px 0 14px;font-size:34px;line-height:1.18;font-weight:800;letter-spacing:0}.intro-panel p{margin:0;color:var(--muted);font-size:16px;line-height:1.75}.status-list{margin-top:22px;display:grid;grid-gap:10px;gap:10px}.status-list span{width:-moz-fit-content;width:fit-content;max-width:100%;padding:7px 10px;color:#334155;font-size:14px;line-height:1.3}.chat-shell,.status-list span{border:1px solid var(--line);border-radius:8px;background:var(--paper)}.chat-shell{min-height:calc(100svh - 12px);height:calc(100svh - 12px);width:100%;box-shadow:var(--shadow);overflow:hidden;display:grid;grid-template-rows:auto minmax(0,1fr) auto}.chat-toolbar{width:100%;min-width:0;padding:12px 16px;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:12px;background:var(--paper-soft)}.chat-toolbar h2{margin:4px 0 0;font-size:21px;line-height:1.25}.toolbar-subtitle{margin:4px 0 0;color:var(--muted);font-size:14px;line-height:1.45}.model-pill{flex:0 0 auto;padding:7px 10px;border-radius:8px;background:var(--primary-soft);color:var(--primary-strong);font-size:14px;font-weight:700}.messages{width:100%;min-width:0;min-height:0;padding:20px 22px;overflow-y:auto;background:linear-gradient(#ffffff,#ffffff) padding-box,var(--paper)}.empty-state{min-height:100%;display:grid;place-items:center;align-content:center;grid-gap:12px;gap:12px;color:var(--muted);text-align:center}.empty-state svg{width:42px;height:42px;color:var(--primary)}.empty-state p{max-width:320px;margin:0;line-height:1.65}.message{display:flex;align-items:flex-start;gap:10px;margin-bottom:16px}.message.user{flex-direction:row-reverse}.avatar{width:34px;height:34px;flex:0 0 34px;border-radius:8px;display:grid;place-items:center;background:#eef2f6;color:#334155}.avatar svg{width:18px;height:18px}.message.user .avatar{background:var(--primary-soft);color:var(--primary-strong)}.bubble{max-width:min(88%,1120px);border:1px solid var(--line);border-radius:8px;padding:12px 14px;background:var(--assistant);color:var(--ink);line-height:1.72;overflow-wrap:anywhere}.message.user .bubble{max-width:min(760px,calc(100% - 44px));border-color:var(--primary);background:var(--user);color:#ffffff}.message.assistant .bubble{width:calc(100% - 44px);max-width:none}.markdown-body ol,.markdown-body p,.markdown-body pre,.markdown-body ul{margin:0 0 10px}.markdown-body :last-child{margin-bottom:0}.markdown-body ol,.markdown-body ul{padding-left:22px}.markdown-body li+li{margin-top:4px}.markdown-body code{border-radius:6px;padding:2px 5px;background:rgba(15,23,42,.08);font-family:Cascadia Mono,SFMono-Regular,Consolas,monospace;font-size:.92em}.message.user .markdown-body code{background:rgba(255,255,255,.18)}.markdown-body pre{max-width:100%;overflow-x:auto;padding:12px;border-radius:8px;background:#111827;color:#f8fafc}.loading-bubble{display:inline-flex;align-items:center;gap:8px;color:var(--muted)}.chat-input-zone{width:100%;min-width:0;border-top:1px solid var(--line);padding:10px 12px;background:var(--paper-soft)}.examples{min-width:0;display:flex;flex-wrap:nowrap;gap:8px;margin-bottom:8px;overflow-x:auto;padding-bottom:2px}.examples button{flex:0 0 auto;min-height:34px;border:1px solid var(--line);border-radius:8px;padding:7px 10px;background:var(--paper);color:#334155;cursor:pointer;line-height:1.35;text-align:left;white-space:nowrap}.examples button:hover:not(:disabled),.secondary-button:hover:not(:disabled){border-color:var(--line-strong);background:#eef3f7}.composer button:disabled,.examples button:disabled,.password-panel button:disabled{cursor:not-allowed;opacity:.62}.error-banner,.inline-error{margin:0 0 12px;border:1px solid #f2c57c;border-radius:8px;padding:9px 11px;background:var(--warning-soft);color:var(--warning);line-height:1.5}.composer{min-width:0;display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:end;grid-gap:10px;gap:10px}.composer textarea{min-width:0;width:100%;min-height:58px;max-height:140px;resize:vertical;border:1px solid var(--line-strong);border-radius:8px;padding:12px;background:#ffffff;color:var(--ink);line-height:1.6;outline:none}.composer textarea:focus,.password-panel input:focus{border-color:var(--primary);box-shadow:0 0 0 3px rgba(15,111,103,.14)}.composer-actions{display:flex;justify-content:flex-end;gap:8px}.composer button,.password-panel button{min-height:40px;border-radius:8px;padding:0 14px;display:inline-flex;align-items:center;justify-content:center;gap:8px;font-weight:700;cursor:pointer}.composer button svg,.password-panel button svg{width:18px;height:18px;flex:0 0 18px}.secondary-button{border:1px solid var(--line);background:var(--paper);color:#334155}.password-panel button,.primary-button{background:var(--primary);color:#ffffff}.password-panel button:hover:not(:disabled),.primary-button:hover:not(:disabled){background:var(--primary-strong)}.auth-shell{place-items:center;grid-template-rows:1fr;padding:24px}.auth-shell>p{margin:12px 0 0;color:var(--muted)}.password-panel{width:min(360px,100%);display:grid;grid-gap:12px;gap:12px}.auth-icon{width:46px;height:46px;border-radius:8px;display:grid;place-items:center;background:var(--primary-soft);color:var(--primary)}.auth-icon svg{width:24px;height:24px}.password-panel h2{margin:0;font-size:22px;line-height:1.25}.password-panel input{width:100%;min-height:42px;border:1px solid var(--line-strong);border-radius:8px;padding:0 12px;color:var(--ink);outline:none}.spin{animation:spin .9s linear infinite}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@media (max-width:860px){.page-shell{padding:6px}.chat-stage{min-height:calc(100svh - 12px)}.intro-panel{padding:4px 2px 0}.intro-panel h1{font-size:28px}.status-list{grid-template-columns:1fr;margin-top:14px}.chat-shell{height:calc(100svh - 12px);min-height:calc(100svh - 12px)}.bubble{max-width:calc(100% - 44px)}}@media (max-width:560px){.page-shell{padding:4px}.intro-panel h1{font-size:24px}.intro-panel p,.status-list span{font-size:14px}.chat-toolbar,.messages{padding:12px}.chat-shell{min-height:calc(100svh - 8px);height:calc(100svh - 8px)}.chat-toolbar{align-items:flex-start;flex-direction:column}.bubble{max-width:calc(100% - 44px)}.message.assistant .bubble{width:calc(100% - 44px)}.composer-actions{display:grid;grid-template-columns:1fr 1fr;grid-column:1/-1}.composer button{width:100%;padding:0 10px}}@media (max-height:700px) and (min-width:561px){.toolbar-subtitle{display:none}.composer textarea{min-height:52px}}