body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-text-size-adjust:100%;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;margin:0}code{font-family:source-code-pro,Menlo,Monaco,Consolas,Courier New,monospace}@media (max-width:768px){.ant-table-wrapper{-webkit-overflow-scrolling:touch;overflow-x:auto}.ant-table-cell{white-space:nowrap}.ant-card-body{padding:12px!important}.ant-modal{margin:16px auto!important;max-width:calc(100vw - 32px)!important}.ant-form-item{margin-bottom:16px}.ant-typography h3,.ant-typography h4{font-size:18px!important}.ant-drawer-content-wrapper{max-width:85vw!important}.ant-layout-sider{display:none}}@supports (padding-bottom:env(safe-area-inset-bottom)){.ant-layout-content{padding-bottom:env(safe-area-inset-bottom)}}:root{--color-primary:#1677ff;--color-primary-hover:#4096ff;--color-accent-amber:#f59e0b;--color-accent-rose:#fb7185;--color-accent-admin-red:#dc2626;--color-success:#52c41a;--color-warning:#faad14;--color-error:#cf1322;--color-info:#1677ff;--space-xxs:4px;--space-xs:8px;--space-sm:12px;--space-md:16px;--space-lg:20px;--space-xl:24px;--space-xxl:32px;--space-xxxl:48px;--radius-xs:4px;--radius-sm:6px;--radius-md:8px;--radius-lg:12px;--radius-xl:16px;--radius-xxl:22px;--radius-pill:28px;--shadow-sm:0 1px 2px #0000000a;--shadow-md:0 1px 4px #00000014;--shadow-lg:0 6px 30px #00000026;--shadow-xl:0 12px 40px #0003;--shadow-glass:0 24px 80px #00000052;--shadow-glass-deep:0 24px 80px #0000006b;--color-bg-container:#fff;--color-fill-quaternary:#f5f5f5;--color-text:#333;--color-text-secondary:#595959;--color-text-tertiary:#999;--color-border:#d9d9d9;--color-border-secondary:#f0f0f0;--color-glass-card:#090e1ab8;--color-glass-card-deep:#090e1ac7;--color-text-on-glass:#fff;--color-text-on-glass-muted:#ffffffb8;--color-text-on-glass-dim:#ffffff94}.chat-float-btn{bottom:24px;height:48px!important;position:fixed!important;right:24px;width:48px!important;z-index:1000}.chat-float-btn .ant-float-btn-body .ant-float-btn-content{padding:0!important}.chat-float-btn .ant-float-btn-body .ant-float-btn-content .ant-float-btn-icon{font-size:22px!important}.chat-float-btn .ant-float-btn-body .ant-float-btn-content .ant-float-btn-description{font-size:11px!important;font-weight:700;line-height:1}.chat-panel{animation:chatSlideUp .3s ease;background:#fff;background:var(--color-bg-container,#fff);border-radius:12px;border-radius:var(--radius-lg,12px);bottom:88px;box-shadow:0 6px 30px #00000026;box-shadow:var(--shadow-lg,0 6px 30px #00000026);display:flex;flex-direction:column;height:520px;overflow:hidden;position:fixed;right:24px;width:400px;z-index:999}@keyframes chatSlideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.chat-header{align-items:center;background:linear-gradient(135deg,#1677ff,#4096ff);background:linear-gradient(135deg,var(--color-primary,#1677ff),var(--color-primary-hover,#4096ff));color:#fff;color:var(--color-text-on-glass,#fff);display:flex;flex-shrink:0;justify-content:space-between;padding:12px 16px;padding:var(--space-sm,12px) var(--space-md,16px)}.chat-header-title{align-items:center;display:flex;font-size:15px;font-weight:600;gap:8px;gap:var(--space-xs,8px)}.chat-header-actions{display:flex;gap:4px;gap:var(--space-xxs,4px)}.chat-header-actions .ant-btn{background:#0000!important;border:none!important;color:#ffffffd9!important}.chat-header-actions .ant-btn:hover{background:#ffffff26!important;color:#fff!important;color:var(--color-text-on-glass,#fff)!important}.chat-messages{-webkit-overflow-scrolling:touch;background:#f5f5f5;background:var(--color-fill-quaternary,#f5f5f5);display:flex;flex:1 1;flex-direction:column;gap:12px;gap:var(--space-sm,12px);overflow-y:auto;padding:16px;padding:var(--space-md,16px)}.chat-messages::-webkit-scrollbar{width:4px}.chat-messages::-webkit-scrollbar-thumb{background:#d9d9d9;background:var(--color-border,#d9d9d9);border-radius:2px}.chat-msg{display:flex;max-width:85%}.chat-msg.user{align-self:flex-end}.chat-msg.assistant{align-self:flex-start}.chat-bubble{border-radius:12px;border-radius:var(--radius-lg,12px);font-size:14px;line-height:1.5;padding:10px 14px;white-space:pre-wrap;word-break:break-word}.chat-msg.user .chat-bubble{background:#1677ff;background:var(--color-primary,#1677ff);border-bottom-right-radius:4px;border-bottom-right-radius:var(--radius-xs,4px);color:#fff;color:var(--color-text-on-glass,#fff)}.chat-msg.assistant .chat-bubble{background:#fff;background:var(--color-bg-container,#fff);border-bottom-left-radius:4px;border-bottom-left-radius:var(--radius-xs,4px);box-shadow:0 1px 2px #0000000f;box-shadow:var(--shadow-sm,0 1px 2px #0000000f);color:#333;color:var(--color-text,#333)}.chat-msg.assistant .chat-bubble.error{background:#fff2f0;border:1px solid #ffccc7;color:#ff4d4f;color:var(--color-error,#ff4d4f)}.chat-typing{align-items:center;align-self:flex-start;background:#fff;background:var(--color-bg-container,#fff);border-radius:12px;border-radius:var(--radius-lg,12px);border-bottom-left-radius:4px;border-bottom-left-radius:var(--radius-xs,4px);box-shadow:0 1px 2px #0000000f;box-shadow:var(--shadow-sm,0 1px 2px #0000000f);display:flex;gap:8px;gap:var(--space-xs,8px);padding:10px 14px}.chat-typing-dots{display:flex;gap:4px;gap:var(--space-xxs,4px)}.chat-typing-dots span{animation:chatBounce 1.4s ease-in-out infinite both;background:#999;background:var(--color-text-tertiary,#999);border-radius:50%;height:6px;width:6px}.chat-typing-dots span:first-child{animation-delay:-.32s}.chat-typing-dots span:nth-child(2){animation-delay:-.16s}.chat-typing-dots span:nth-child(3){animation-delay:0s}@keyframes chatBounce{0%,80%,to{opacity:.4;transform:scale(.6)}40%{opacity:1;transform:scale(1)}}.chat-input-area{align-items:flex-end;background:#fff;background:var(--color-bg-container,#fff);border-top:1px solid #f0f0f0;border-top:1px solid var(--color-border-secondary,#f0f0f0);display:flex;flex-shrink:0;gap:8px;gap:var(--space-xs,8px);padding:12px 16px;padding:var(--space-sm,12px) var(--space-md,16px)}.chat-input-area .ant-input{border-radius:8px;border-radius:var(--radius-md,8px);resize:none}.chat-input-area .ant-btn{border-radius:8px;border-radius:var(--radius-md,8px);flex-shrink:0}.chat-voice-btn{background:#fff!important;background:var(--color-bg-container,#fff)!important;border:1px solid #d9d9d9!important;border:1px solid var(--color-border,#d9d9d9)!important;color:#666!important;color:var(--color-text-secondary,#666)!important;flex-shrink:0;transition:all .3s}.chat-voice-btn:hover{border-color:#1677ff!important;border-color:var(--color-primary,#1677ff)!important;color:#1677ff!important;color:var(--color-primary,#1677ff)!important}.chat-voice-btn.listening{animation:voicePulse 1.5s infinite;background:#ff4d4f!important;background:var(--color-error,#ff4d4f)!important;border-color:#ff4d4f!important;border-color:var(--color-error,#ff4d4f)!important;color:#fff!important;color:var(--color-text-on-glass,#fff)!important}@keyframes voicePulse{0%{box-shadow:0 0 0 0 #ff4d4f66}70%{box-shadow:0 0 0 8px #ff4d4f00}to{box-shadow:0 0 0 0 #ff4d4f00}}@media (max-width:768px){.chat-float-btn{bottom:16px;right:16px}.chat-panel{animation:chatFadeIn .2s ease;border-radius:0;bottom:0;height:100%;left:0;position:fixed;right:0;top:0;width:100%}.chat-header{padding:max(12px,env(safe-area-inset-top)) 12px 12px}.chat-messages{gap:10px;padding:12px}.chat-msg{max-width:90%}.chat-bubble{font-size:15px}.chat-input-area{padding:10px 12px max(10px,env(safe-area-inset-bottom))}}@keyframes chatFadeIn{0%{opacity:0}to{opacity:1}}@media (min-width:769px) and (max-width:1024px){.chat-panel{height:480px;width:360px}}