:root{--bg:#f8f7f2;--paper:#fff;--ink:#21342b;--muted:#758178;--line:#e6ebe5;--brand:#21614e;--deep:#154537;--mint:#edf5ee;--danger:#a54e45}*{box-sizing:border-box}html,body{min-height:100%}body{background:var(--bg);color:var(--ink);margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,sans-serif}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.55}a{color:inherit;text-decoration:none}.splash,.login-page{text-align:center;place-items:center;min-height:100svh;display:grid}.splash{color:var(--muted);gap:8px}.login-page{background:radial-gradient(circle at 80% 15%,#e4f0e5 0,transparent 34%),var(--bg);padding:24px}.login-card{border:1px solid var(--line);background:#ffffffeb;border-radius:30px;width:min(100%,440px);padding:42px;box-shadow:0 26px 70px -42px #15453773}.login-card>img{background:var(--mint);border-radius:50%;margin:auto}.eyebrow{color:var(--brand);letter-spacing:.15em;margin:20px 0 0;font-size:11px;font-weight:800}.login-card h1{color:var(--deep);letter-spacing:-.04em;margin:12px 0 0;font-size:30px}.login-card>p:not(.eyebrow){color:var(--muted);font-size:14px;line-height:1.8}.login-card form{text-align:left;gap:15px;margin-top:28px;display:grid}.login-card label{color:var(--brand);gap:8px;font-size:13px;font-weight:700;display:grid}.login-card input{width:100%;color:var(--ink);background:#fff;border:1px solid #dce5dc;border-radius:13px;outline:0;padding:13px 14px}.login-card input:focus,.composer textarea:focus{border-color:#8dbca0;box-shadow:0 0 0 3px #7bb19129}.login-card form>button,.send{background:var(--brand);color:#fff;border:0;border-radius:14px;min-height:48px;font-weight:750}.login-card>a{color:var(--brand);margin-top:22px;font-size:13px;font-weight:650;display:block}.app-shell{grid-template-columns:280px minmax(0,1fr);min-height:100svh;display:grid}.sidebar{border-right:1px solid var(--line);background:#fbfcf9;flex-direction:column;min-height:100svh;padding:22px 14px 16px;display:flex}.brand{color:var(--deep);letter-spacing:.02em;align-items:center;gap:10px;padding:4px 8px 24px;font-size:20px;font-weight:850;display:flex}.brand img{background:var(--mint);border-radius:11px}.new-chat{background:var(--mint);width:100%;color:var(--deep);text-align:left;border:1px solid #cce0d1;border-radius:13px;padding:12px;font-size:14px;font-weight:750}.history-title{color:var(--muted);margin:26px 9px 9px;font-size:12px;font-weight:750}.history{flex:1;overflow:auto}.history>p{color:var(--muted);margin:10px 9px;font-size:12px;line-height:1.65}.history-row{border-radius:10px;grid-template-columns:minmax(0,1fr) 28px;align-items:center;margin:2px 0;display:grid}.history-row.active{background:var(--mint)}.history-row>button:first-child{color:#45584d;text-align:left;text-overflow:ellipsis;white-space:nowrap;background:0 0;border:0;padding:10px 8px;font-size:13px;overflow:hidden}.delete-chat{color:#98a29a;background:0 0;border:0;border-radius:7px;width:26px;height:26px;font-size:19px}.delete-chat:hover{color:var(--danger);background:#fff}.account{border-top:1px solid var(--line);grid-template-columns:32px minmax(0,1fr) auto;align-items:center;gap:8px;padding:13px 8px 2px;display:grid}.avatar{background:var(--brand);color:#fff;border-radius:50%;place-items:center;width:30px;height:30px;font-size:13px;font-weight:800;display:grid}.account div{gap:2px;min-width:0;display:grid}.account strong{text-overflow:ellipsis;white-space:nowrap;font-size:12px;overflow:hidden}.account small{color:var(--muted);font-size:11px}.account button,.header-actions button{color:var(--muted);background:0 0;border:0;font-size:12px}.chat-main{grid-template-rows:auto minmax(0,1fr) auto auto;min-width:0;min-height:100svh;display:grid}.chat-header{border-bottom:1px solid var(--line);background:#f8f7f2e6;justify-content:space-between;align-items:center;gap:18px;padding:20px clamp(20px,4vw,48px);display:flex}.chat-header p{color:var(--brand);letter-spacing:.14em;margin:0;font-size:10px;font-weight:800}.chat-header h1{max-width:52vw;color:var(--deep);text-overflow:ellipsis;white-space:nowrap;margin:5px 0 0;font-size:18px;overflow:hidden}.header-actions{color:var(--muted);align-items:center;gap:13px;font-size:12px;display:flex}.header-actions button{color:var(--danger)}.message-area{padding:34px clamp(18px,6vw,96px);overflow:auto}.message-list{width:min(780px,100%);margin:auto}.message{margin-bottom:30px}.message-label{color:var(--muted);margin-bottom:8px;font-size:12px;font-weight:750}.message.user{justify-items:end;display:grid}.message.user .message-label{margin-right:5px}.bubble{border:1px solid var(--line);background:var(--paper);border-radius:18px;max-width:min(680px,92%);padding:14px 17px;box-shadow:0 8px 22px -19px #15453759}.message.user .bubble{background:var(--brand);color:#fff;border-color:#0000;border-bottom-right-radius:5px}.message.assistant .bubble{border-bottom-left-radius:5px}.message-text{white-space:pre-wrap;font-size:15px;line-height:1.9}.citation{color:var(--brand);background:#e4f1e7;border-radius:5px;margin:0 2px;padding:0 5px;font-size:11px;font-weight:800;line-height:1.7;text-decoration:none;display:inline-flex}.message.user .citation{color:#fff;background:#ffffff2e}.typing{align-items:center;gap:4px;margin-left:8px;display:inline-flex}.typing i{background:var(--brand);border-radius:50%;width:5px;height:5px;animation:1s infinite alternate pulse}.typing i:nth-child(2){animation-delay:.16s}.typing i:nth-child(3){animation-delay:.32s}@keyframes pulse{to{opacity:.22;transform:translateY(-2px)}}.message-actions{gap:8px;margin-top:9px;display:flex}.message-actions button,.subtle{color:var(--muted);background:0 0;border:0;border-radius:7px;padding:5px 8px;font-size:12px}.message-actions button:hover,.message-actions .selected{background:var(--mint);color:var(--brand)}.sources{max-width:680px;color:var(--muted);margin-top:10px;font-size:12px}.sources summary{cursor:pointer}.source-list{gap:7px;margin-top:9px;display:grid}.source-list a{border:1px solid var(--line);background:#fff;border-radius:10px;gap:2px;padding:10px;display:grid}.source-list a:hover{border-color:#9fc8aa}.source-list span{color:var(--brand);font-size:11px;font-weight:800}.source-list strong{color:var(--deep);font-size:12px}.source-list small{color:var(--muted);text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.welcome{text-align:center;width:min(650px,100%);margin:5vh auto}.welcome>img{background:var(--mint);border-radius:50%;margin:auto}.welcome h2{color:var(--deep);letter-spacing:-.045em;margin:12px 0;font-size:clamp(28px,4vw,42px)}.welcome>p:not(.eyebrow){max-width:550px;color:var(--muted);margin:0 auto;font-size:15px;line-height:1.9}.suggestions{gap:9px;max-width:520px;margin:30px auto 0;display:grid}.suggestions button{border:1px solid var(--line);color:#405248;text-align:left;background:#fff;border-radius:13px;padding:13px 15px;font-size:14px}.suggestions button:hover{background:var(--mint);border-color:#9fc8aa}.status,.error{width:min(780px,100%);color:var(--muted);margin:12px auto;font-size:13px}.error{color:var(--danger)}.composer{background:#fff;border:1px solid #dfe7df;border-radius:18px;grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:10px;width:min(860px,100% - 36px);margin:0 auto;padding:10px 11px 10px 16px;display:grid;box-shadow:0 14px 38px -30px #15453761}.composer textarea{resize:vertical;width:100%;max-height:180px;color:var(--ink);border:0;outline:0;font-size:15px;line-height:1.6}.composer>div{align-items:center;gap:4px;display:flex}.stop{color:var(--danger);background:#f8e9e6;border:0;border-radius:11px;padding:10px 12px;font-size:13px;font-weight:700}.send{border-radius:11px;min-width:70px;min-height:40px;padding:0 12px;font-size:13px}.notice{color:#929c94;text-align:center;width:min(860px,100% - 36px);margin:12px auto 20px;font-size:11px;line-height:1.55}@media (max-width:760px){.app-shell{display:block}.sidebar{border-right:0;border-bottom:1px solid var(--line);min-height:0;padding:12px}.brand{padding:2px 5px 10px}.new-chat{width:auto;padding:8px 10px;font-size:12px;display:inline-block}.history-title,.history{display:none}.account{border:0;padding:0;position:absolute;top:14px;right:14px}.account .avatar,.account small{display:none}.account strong{max-width:100px}.chat-header{padding:15px 18px}.chat-header h1{max-width:50vw;font-size:16px}.message-area{padding:22px 18px}.welcome{margin:3vh auto}.bubble{max-width:96%}.composer{width:calc(100% - 24px)}.subtle{display:none}.notice{width:calc(100% - 30px);margin-bottom:14px}.header-actions a{display:none}}
