*{margin:0;padding:0;box-sizing:border-box}html,body,#root{height:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif}.login-bg{min-height:100vh;display:flex;align-items:center;justify-content:center;background:linear-gradient(135deg,#1677ff,#0b1e3f)}.chat-container{display:flex;flex-direction:column;height:calc(100vh - 48px)}.chat-messages{flex:1;overflow-y:auto;padding:24px}.msg-row{display:flex;margin-bottom:16px}.msg-row.user{justify-content:flex-end}.msg-bubble{max-width:70%;padding:12px 16px;border-radius:12px;line-height:1.7;white-space:pre-wrap;word-break:break-word}.msg-row.user .msg-bubble{background:#1677ff;color:#fff;border-top-right-radius:4px}.msg-row.assistant .msg-bubble{background:#f5f5f5;color:#333;border-top-left-radius:4px}.msg-avatar{margin-right:10px;font-size:20px;line-height:40px}.msg-row.user .msg-avatar{order:2;margin-right:0;margin-left:10px}@media (max-width: 767px){.login-bg{padding:16px}.login-bg .ant-card{width:100%!important;max-width:400px}.ant-layout-content{padding:12px!important}.ant-table-wrapper{overflow-x:auto;-webkit-overflow-scrolling:touch}.msg-bubble{max-width:85%;font-size:15px}.header-role-tag{display:none!important}.ant-card .ant-statistic-title{font-size:12px}.desktop-sider{display:none!important}.mobile-menu-btn{display:inline-flex!important}}.mobile-menu-btn{display:none!important}@media (max-width: 767px){.chat-page-card{height:calc(100vh - 100px)!important}.chat-conv-sidebar{width:100%!important;border-right:none!important}.ant-modal{max-width:calc(100vw - 24px)!important;margin:12px auto!important}.ant-modal-content{padding:16px!important}.ant-card-head{flex-wrap:wrap;gap:4px}.ant-card-head-wrapper{flex-wrap:wrap}.ant-card-extra{margin-left:0!important}.ant-drawer-body{padding:12px!important}.trend-chart text{font-size:8px!important}}.cw-drawer .ant-drawer-body{padding:0!important;background:#fff}.cw-launcher{width:56px;height:56px;border-radius:50%;border:none;cursor:pointer;color:#fff;background:linear-gradient(135deg,#1677ff,#722ed1);box-shadow:0 6px 20px #2d6aff59;display:flex;align-items:center;justify-content:center;position:relative;transition:transform .18s ease,box-shadow .18s ease;animation:cw-pulse 2.6s infinite}.cw-launcher:hover{transform:scale(1.08);box-shadow:0 8px 24px #2d6aff73}.cw-launcher:active{transform:scale(.95)}@keyframes cw-pulse{0%{box-shadow:0 6px 20px #2d6aff59,0 0 #722ed159}70%{box-shadow:0 6px 20px #2d6aff59,0 0 0 14px #722ed100}to{box-shadow:0 6px 20px #2d6aff59,0 0 #722ed100}}@keyframes cw-pop{0%{opacity:0;transform:translateY(14px) scale(.97)}to{opacity:1;transform:translateY(0) scale(1)}}.cw-panel-card{animation:cw-pop .22s ease-out}.cw-row{display:flex;margin-bottom:14px;gap:8px;align-items:flex-start}.cw-row.user{justify-content:flex-end}.cw-avatar{flex:0 0 auto;width:30px;height:30px;border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:15px;background:#e8efff}.cw-row.user .cw-avatar{order:2;background:#eef0f6}.cw-bubble{max-width:78%;padding:10px 14px;border-radius:14px;line-height:1.65;font-size:14px;white-space:pre-wrap;word-break:break-word;box-shadow:0 1px 2px #0015290d}.cw-row.assistant .cw-bubble{background:#fff;color:#333;border:1px solid #eef0f3;border-top-left-radius:4px}.cw-row.user .cw-bubble{background:linear-gradient(135deg,#1677ff,#3b5bdb);color:#fff;border-top-right-radius:4px}.cw-chips{display:flex;flex-wrap:wrap;gap:8px;margin:4px 0 16px 38px}.cw-chip{border:1px solid #dbe7ff;background:#fff;color:#2f54eb;font-size:13px;line-height:1;padding:7px 13px;border-radius:999px;cursor:pointer;transition:all .15s ease}.cw-chip:hover{border-color:#1677ff;background:#f0f5ff;transform:translateY(-1px);box-shadow:0 2px 8px #1677ff2e}.cw-chip:active{transform:translateY(0)}.cw-typing{display:flex;align-items:center;gap:5px;min-height:34px}.cw-typing-dot{width:7px;height:7px;border-radius:50%;background:#a3aab5;animation:cw-dot 1.2s infinite ease-in-out}.cw-typing-dot:nth-child(2){animation-delay:.15s}.cw-typing-dot:nth-child(3){animation-delay:.3s}@keyframes cw-dot{0%,60%,to{transform:translateY(0);opacity:.4}30%{transform:translateY(-4px);opacity:1}}
