:root{--bg: #0a0e1a;--bg-elev: #131a2a;--bg-card: #1a2238;--text: #e8ecf5;--text-dim: #8d95ad;--accent: #8b5cf6;--border: #1f2740;--ok: #22c55e;--warn: #f59e0b;--danger: #ef4444}*{box-sizing:border-box}html,body,#app{margin:0;height:100%}body{background:var(--bg);color:var(--text);font-family:-apple-system,BlinkMacSystemFont,PingFang SC,system-ui,sans-serif;-webkit-font-smoothing:antialiased}.login{display:grid;place-items:center;height:100vh}.login-card{background:var(--bg-elev);padding:32px;border-radius:16px;width:360px;border:1px solid var(--border)}.login-card h1{margin:0 0 6px;font-size:20px}.login-card p{margin:0 0 24px;color:var(--text-dim);font-size:13px}.login-card label{display:block;font-size:12px;color:var(--text-dim);margin:12px 0 6px}.login-card input{width:100%;background:var(--bg);border:1px solid var(--border);color:var(--text);padding:10px 12px;border-radius:8px;font-size:14px}.login-card button{width:100%;margin-top:20px;background:var(--accent);color:#fff;border:none;padding:12px;border-radius:8px;font-size:14px;font-weight:600;cursor:pointer}.login-error{color:var(--danger);font-size:12px;margin-top:12px;min-height:16px}.workspace{display:grid;grid-template-columns:320px 1fr;height:100vh}.sidebar{border-right:1px solid var(--border);background:var(--bg-elev);display:grid;grid-template-rows:auto auto 1fr;overflow:hidden}.sidebar-head{padding:16px;border-bottom:1px solid var(--border);display:flex;justify-content:space-between;align-items:center}.sidebar-head h2{margin:0;font-size:16px}.tabs{display:flex;gap:4px;padding:8px 12px;border-bottom:1px solid var(--border)}.tab{flex:1;background:transparent;color:var(--text-dim);border:1px solid transparent;padding:6px;border-radius:6px;cursor:pointer;font-size:12px}.tab.active{background:var(--bg);color:var(--text);border-color:var(--border)}.session-list{overflow-y:auto;padding:8px}.session-item{padding:10px 12px;border-radius:8px;cursor:pointer;border:1px solid transparent;margin-bottom:4px}.session-item:hover{background:var(--bg)}.session-item.active{background:var(--bg-card);border-color:var(--accent)}.session-row1{display:flex;justify-content:space-between;align-items:center}.session-nick{font-weight:600;font-size:14px}.vip{font-size:10px;background:linear-gradient(90deg,#fbbf24,#f59e0b);color:#1f1300;padding:1px 6px;border-radius:6px}.session-time{font-size:11px;color:var(--text-dim)}.session-row2{font-size:12px;color:var(--text-dim);margin-top:2px;display:flex;justify-content:space-between}.unread{background:var(--danger);color:#fff;padding:0 6px;border-radius:8px;font-size:10px;min-width:16px;text-align:center}.main{display:grid;grid-template-rows:auto 1fr auto;height:100vh;overflow:hidden}.empty{display:grid;place-items:center;color:var(--text-dim)}.chat-head{padding:14px 20px;border-bottom:1px solid var(--border);background:var(--bg-elev);display:flex;justify-content:space-between;align-items:center}.chat-head h3{margin:0;font-size:15px}.chat-head .meta{font-size:12px;color:var(--text-dim);margin-top:2px}.chat-area{overflow-y:auto;padding:16px 20px;display:flex;flex-direction:column;gap:8px}.msg{display:flex;gap:8px;max-width:80%}.msg.user{align-self:flex-start}.msg.agent{align-self:flex-end;flex-direction:row-reverse}.msg.system{align-self:center}.msg .bubble{padding:8px 12px;border-radius:12px;font-size:14px;line-height:1.45;white-space:pre-wrap;word-break:break-word}.msg.user .bubble{background:var(--bg-card)}.msg.agent .bubble{background:var(--accent);color:#fff}.msg.system .bubble{background:transparent;color:var(--text-dim);font-size:12px;border:1px dashed var(--border)}.msg img{max-width:220px;max-height:240px;border-radius:6px;display:block}.msg .who{font-size:10px;color:var(--text-dim);margin-bottom:2px}.composer{padding:12px;border-top:1px solid var(--border);background:var(--bg-elev);display:flex;gap:8px}.composer textarea{flex:1;background:var(--bg);color:var(--text);border:1px solid var(--border);border-radius:8px;padding:10px;font-size:14px;font-family:inherit;resize:none;min-height:44px;max-height:120px}.composer button{background:var(--accent);color:#fff;border:none;padding:10px 18px;border-radius:8px;cursor:pointer;font-weight:600}.logout{background:transparent;border:1px solid var(--border);color:var(--text-dim);padding:4px 10px;border-radius:6px;cursor:pointer;font-size:12px}.logout:hover{color:var(--text)}
