:root{color-scheme:light;--canvas:#f6f7f4;--surface:#ffffff;--sidebar:#ecefe9;--text:#1c211e;--muted:#6d756f;--line:#dce0da;--accent:#157f64;--accent-dark:#0d654f;--accent-soft:#dcefe8;--claude:#c4663d;--danger:#b34242;--shadow:0 14px 36px rgba(28,33,30,0.08)}*{box-sizing:border-box}body,html{margin:0;min-height:100%}body{background:var(--canvas);color:var(--text);font-family:Inter,Segoe UI,Microsoft YaHei,sans-serif;letter-spacing:0}button,input,select,textarea{font:inherit;letter-spacing:0}button{color:inherit}.loading-screen{min-height:100dvh;display:grid;place-items:center}.brand-mark{width:44px;height:44px;display:grid;place-items:center;background:var(--accent);color:white;border-radius:8px}.login-page{min-height:100dvh;display:grid;place-items:center;padding:32px 20px;background:var(--canvas)}.login-panel{width:100%;max-width:420px;padding:34px 36px 38px;border:1px solid var(--line);border-radius:8px;background:var(--surface);box-shadow:0 18px 54px rgba(28,33,30,.07)}.login-brand{display:flex;align-items:center;gap:12px;font-weight:700;font-size:17px}.login-brand .brand-mark{width:38px;height:38px}.login-heading{margin:52px 0 32px}.login-heading h1{margin:0 0 10px;font-size:30px;line-height:1.2}.login-heading p{margin:0;color:var(--muted);font-size:15px}.login-form{display:grid;grid-gap:20px;gap:20px}.login-form label{display:grid;grid-gap:8px;gap:8px;font-size:14px;font-weight:600}.input-shell{height:48px;display:flex;align-items:center;gap:10px;padding:0 14px;border:1px solid var(--line);border-radius:7px;background:var(--surface);color:var(--muted);transition:border-color .16s,box-shadow .16s}.input-shell:focus-within{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-soft)}.input-shell input{min-width:0;flex:1 1;border:0;outline:0;background:transparent;color:var(--text)}.input-shell input::placeholder{color:#9aa19c}.password-dot{width:18px;text-align:center;font-size:20px;line-height:1}.form-error{margin:-6px 0 0;color:var(--danger);font-size:13px}.primary-button{height:48px;border:0;border-radius:7px;background:var(--accent);color:white;font-weight:700;cursor:pointer}.primary-button:hover{background:var(--accent-dark)}.primary-button:disabled{opacity:.65;cursor:wait}.login-notice{margin:28px 0 0;padding-top:18px;border-top:1px solid var(--line);color:var(--muted);font-size:12px;text-align:center}.workspace{height:100dvh;display:flex;overflow:hidden;background:var(--surface)}.sidebar{width:280px;flex:0 0 280px;display:flex;flex-direction:column;padding:16px 12px 12px;background:var(--sidebar);border-right:1px solid var(--line)}.sidebar-header{height:42px;display:flex;align-items:center;justify-content:space-between;padding:0 8px}.workspace-brand{display:flex;align-items:center;gap:9px;color:var(--accent-dark);font-weight:750}.icon-button{width:36px;height:36px;display:grid;place-items:center;border:0;border-radius:6px;background:transparent;cursor:pointer;color:var(--muted)}.icon-button:hover{background:rgba(255,255,255,.75);color:var(--text)}.new-chat-button{height:42px;display:flex;align-items:center;gap:10px;margin:14px 0 18px;padding:0 13px;border:1px solid #cfd5ce;border-radius:7px;background:rgba(255,255,255,.65);cursor:pointer;font-weight:650}.new-chat-button:hover{background:white;border-color:#bfc7bf}.conversation-list{min-height:0;flex:1 1;overflow-y:auto}.list-label{padding:0 10px 8px;color:var(--muted);font-size:12px;font-weight:700}.conversation-row{display:flex;align-items:center;min-height:40px;border-radius:6px}.conversation-row.active,.conversation-row:hover{background:rgba(255,255,255,.76)}.conversation-main{min-width:0;flex:1 1;height:40px;display:flex;align-items:center;gap:9px;padding:0 10px;border:0;background:transparent;cursor:pointer;text-align:left}.conversation-main svg{flex:0 0 auto;color:var(--muted)}.conversation-main span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;font-size:14px}.delete-button{display:none;width:30px;height:30px;place-items:center;border:0;background:transparent;color:var(--muted);cursor:pointer}.conversation-row.active .delete-button,.conversation-row:hover .delete-button{display:grid}.delete-button:hover{color:var(--danger)}.account-row{display:flex;align-items:center;gap:10px;padding:12px 6px 2px;border-top:1px solid #d5dad4}.avatar{width:34px;height:34px;display:grid;place-items:center;flex:0 0 auto;border-radius:50%;background:#26332e;color:white;font-size:13px;font-weight:700}.account-name{min-width:0;flex:1 1;display:grid}.account-name span{overflow:hidden;text-overflow:ellipsis;font-size:13px;font-weight:700}.account-name small{color:var(--muted);font-size:11px}.chat-shell{min-width:0;flex:1 1;display:flex;flex-direction:column;background:var(--surface)}.chat-header{height:62px;flex:0 0 62px;display:flex;align-items:center;gap:10px;padding:0 22px;border-bottom:1px solid var(--line)}.header-title{min-width:0;flex:1 1;display:flex;align-items:baseline;gap:12px}.header-title strong{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:15px}.header-title span{display:flex;align-items:center;gap:6px;color:var(--muted);font-size:12px;white-space:nowrap}.header-title i,.model-select i{width:7px;height:7px;border-radius:50%;background:var(--accent)}.header-title i.claude,.model-select i.claude{background:var(--claude)}.messages{min-height:0;flex:1 1;overflow-y:auto}.messages.empty{display:grid;place-items:center}.empty-state{padding:30px;text-align:center}.empty-icon{width:54px;height:54px;display:grid;place-items:center;margin:0 auto 18px;border-radius:8px;background:var(--accent-soft);color:var(--accent-dark)}.empty-state h2{margin:0 0 8px;font-size:23px}.empty-state p{margin:0;color:var(--muted);font-size:14px}.message-column{width:min(820px,calc(100% - 44px));margin:0 auto;padding:34px 0 24px}.message{display:grid;grid-template-columns:32px minmax(0,1fr);grid-gap:13px;gap:13px;margin-bottom:28px}.message-avatar{width:32px;height:32px;display:grid;place-items:center;border-radius:6px;background:var(--accent);color:white;font-size:12px;font-weight:700}.message.user .message-avatar{background:#2c332f}.message-content{padding-top:5px;font-size:15px;line-height:1.75;white-space:pre-wrap;overflow-wrap:anywhere}.message.user .message-content{color:#303733}.message-image{display:block;max-width:min(520px,100%);max-height:420px;object-fit:contain;margin:0 0 10px;border:1px solid var(--line);border-radius:6px;background:#f3f5f2}.message-content.typing{display:flex;gap:4px;align-items:center;height:32px}.message-content.typing span{width:5px;height:5px;border-radius:50%;background:#89918c;animation:pulse 1.2s ease-in-out infinite}.message-content.typing span:nth-child(2){animation-delay:.16s}.message-content.typing span:nth-child(3){animation-delay:.32s}@keyframes pulse{0%,70%,to{opacity:.3;transform:translateY(0)}35%{opacity:1;transform:translateY(-3px)}}.composer-area{flex:0 0 auto;padding:12px 22px max(18px,env(safe-area-inset-bottom));background:var(--surface)}.composer{position:relative;width:min(820px,100%);margin:0 auto;border:1px solid #cfd5cf;border-radius:8px;background:white;box-shadow:var(--shadow);overflow:hidden}.image-preview{height:68px;display:grid;grid-template-columns:52px minmax(0,1fr) 30px;align-items:center;grid-gap:10px;gap:10px;padding:8px 12px;border-bottom:1px solid var(--line);background:#f7f8f6}.image-preview img{width:52px;height:52px;object-fit:cover;border-radius:5px}.image-preview span{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--muted);font-size:12px}.attachment-button,.image-preview button{width:30px;height:30px;display:grid;place-items:center;padding:0;border:0;border-radius:5px;background:transparent;color:var(--muted);cursor:pointer}.attachment-button:hover,.image-preview button:hover{background:#e9ece8;color:var(--text)}.attachment-button:disabled{opacity:.45;cursor:wait}.image-input{display:none}.composer textarea{width:100%;min-height:62px;max-height:180px;display:block;resize:none;padding:17px 58px 10px 17px;border:0;outline:0;background:transparent;color:var(--text);line-height:1.5}.composer textarea::placeholder{color:#929a94}.send-button{position:absolute;top:12px;right:12px;width:36px;height:36px;display:grid;place-items:center;border:0;border-radius:6px;background:var(--accent);color:white;cursor:pointer}.composer.has-image .send-button{top:80px}.send-button:hover{background:var(--accent-dark)}.send-button:disabled{background:#d7dbd8;color:#979e99;cursor:not-allowed}.composer-error{margin:0;padding:0 12px 8px;color:var(--danger);font-size:12px}.composer-footer{height:38px;gap:10px;padding:0 12px 8px}.composer-footer,.model-select{display:flex;align-items:center}.model-select{position:relative;gap:7px;height:30px;padding:0 8px;border-radius:5px;background:#f1f3f0;color:#465049}.model-select select{min-width:80px;max-width:190px;padding:0 18px 0 0;border:0;outline:0;-webkit-appearance:none;-moz-appearance:none;appearance:none;background:transparent;color:inherit;font-size:12px;font-weight:650;cursor:pointer}.model-select svg{position:absolute;right:6px;pointer-events:none}.provider-label{color:var(--muted);font-size:11px;text-transform:uppercase}.mobile-only,.sidebar-scrim{display:none}@media (max-width:720px){.login-page{display:block;padding:0;background:var(--surface)}.login-panel{min-height:100dvh;max-width:none;display:flex;flex-direction:column;justify-content:center;padding:32px 24px;border:0;box-shadow:none}.login-brand{position:absolute;top:28px}.login-heading{margin:0 0 30px}.login-heading h1{font-size:27px}.mobile-only{display:grid}.desktop-new{display:none}.sidebar{position:fixed;z-index:30;inset:0 auto 0 0;width:min(86vw,310px);transform:translateX(-101%);transition:transform .18s ease;box-shadow:14px 0 30px rgba(25,30,27,.16)}.sidebar.is-open{transform:translateX(0)}.sidebar-scrim{display:block;position:fixed;z-index:20;inset:0;border:0;background:rgba(23,27,25,.35)}.chat-header{height:56px;flex-basis:56px;padding:0 12px}.header-title{align-items:center}.header-title span{display:none}.message-column{width:calc(100% - 28px);padding-top:24px}.message{grid-template-columns:29px minmax(0,1fr);gap:10px;margin-bottom:24px}.message-avatar{width:29px;height:29px}.message-content{padding-top:2px;font-size:14px;line-height:1.7}.composer-area{padding:8px 10px max(10px,env(safe-area-inset-bottom))}.composer textarea{min-height:58px}}