:root{color:#17202a;font-family:Inter,PingFang SC,Microsoft YaHei,Arial,sans-serif;background:#eef2f5}*{box-sizing:border-box}body{margin:0}button,input,textarea{font:inherit}button{cursor:pointer}button:disabled{cursor:not-allowed;opacity:.6}.login-page{align-items:center;background:linear-gradient(135deg,#263849,#eef2f5);display:flex;min-height:100vh;justify-content:center;padding:24px}.login-panel{background:#fff;border-radius:8px;box-shadow:0 24px 80px #14233033;display:grid;gap:18px;max-width:420px;padding:32px;width:100%}.brand-row{align-items:center;display:flex;gap:14px}.brand-mark{align-items:center;background:#1aa06d;border-radius:8px;color:#fff;display:flex;font-weight:800;height:48px;justify-content:center;width:48px}.brand-row h1{font-size:24px;line-height:1.2;margin:0}.brand-row p{color:#66717c;margin:4px 0 0}.login-panel label{display:grid;gap:8px}.login-panel label span{color:#42505c;font-size:14px}.login-panel input{border:1px solid #ccd5dc;border-radius:6px;height:44px;padding:0 12px}.login-panel button{background:#1aa06d;border:0;border-radius:6px;color:#fff;height:44px}.error-text{color:#c0362c;margin:0}.desk-shell{display:grid;grid-template-columns:340px minmax(0,1fr);height:100vh}.session-pane{background:#243342;color:#fff;display:flex;flex-direction:column;min-width:0}.desk-header{align-items:center;border-bottom:1px solid rgba(255,255,255,.1);display:flex;justify-content:space-between;padding:18px}.desk-header div{display:grid;gap:4px}.desk-header span{color:#9fb2c0;font-size:13px}.ghost-button,.icon-button{background:#ffffff14;border:1px solid rgba(255,255,255,.14);border-radius:6px;color:#fff;height:34px;padding:0 12px}.icon-button{width:38px}.session-toolbar{align-items:center;display:flex;justify-content:space-between;padding:16px 18px 8px}.session-toolbar h2{font-size:18px;margin:0}.session-list{display:grid;gap:8px;overflow:auto;padding:8px 12px 18px}.session-item{background:#ffffff0f;border:1px solid transparent;border-radius:8px;color:#fff;display:grid;gap:6px;min-height:76px;padding:12px;position:relative;text-align:left}.session-item.active{background:#fff;color:#17202a}.customer-name{font-weight:700;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.last-message{color:#9fb2c0;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.session-item.active .last-message{color:#60707e}.badge{background:#d83d3d;border-radius:999px;color:#fff;font-size:12px;line-height:20px;min-width:20px;padding:0 6px;position:absolute;right:10px;text-align:center;top:10px}.empty-state,.no-chat{color:#9fb2c0;padding:32px 18px;text-align:center}.chat-pane{background:#f7f9fb;display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-width:0}.chat-header{align-items:center;background:#fff;border-bottom:1px solid #dde5eb;display:flex;min-height:72px;padding:16px 24px}.chat-header h1{font-size:20px;margin:0}.chat-header span{color:#6b7782;font-size:13px}.message-list{display:flex;flex-direction:column;gap:14px;overflow:auto;padding:24px}.message-row{display:flex}.message-row.from-agent{justify-content:flex-end}.message-bubble{background:#fff;border:1px solid #dce5ec;border-radius:8px;max-width:min(620px,76%);padding:10px 12px}.from-agent .message-bubble{background:#1aa06d;border-color:#1aa06d;color:#fff}.message-bubble.image-bubble{background:#fff;border-color:#dce5ec;color:#17202a;padding:8px}.chat-image{border-radius:6px;cursor:zoom-in;display:block;max-height:360px;max-width:min(420px,70vw);object-fit:contain}.message-bubble p{line-height:1.6;margin:0;white-space:pre-wrap;word-break:break-word}.message-bubble span{color:#7b8790;display:block;font-size:12px;margin-top:6px}.from-agent .message-bubble span{color:#ffffffbd}.composer{background:#fff;border-top:1px solid #dde5eb;display:grid;gap:12px;grid-template-columns:44px minmax(0,1fr) 96px;padding:16px}.file-input{display:none}.composer textarea{border:1px solid #ccd5dc;border-radius:8px;min-height:78px;padding:10px 12px;resize:none}.composer button{align-self:stretch;background:#1aa06d;border:0;border-radius:8px;color:#fff}.composer .attach-button{background:#eef3f6;color:#1aa06d;font-size:24px;font-weight:700;width:44px}.no-chat{align-self:center;color:#65727e;justify-self:center}.no-chat h1{color:#17202a;font-size:24px;margin:0 0 8px}.no-chat p{margin:0}@media (max-width: 820px){.desk-shell{grid-template-columns:1fr;grid-template-rows:42vh 58vh}.session-pane{min-height:0}.message-list{padding:16px}.composer{grid-template-columns:44px 1fr}.composer button[type=submit]{grid-column:1 / -1;height:44px}}
