html,body{height:100%;width:100%;background:#0a1628;overflow:hidden;-webkit-text-size-adjust:100%}.app{display:flex;flex-direction:column;width:100%;height:100vh;height:100dvh;max-height:100dvh;background:#0a1628;overflow:hidden;padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}.app .landing{flex:1;min-height:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:20px;background:radial-gradient(ellipse at center,rgba(212,175,55,.08) 0%,transparent 55%),#0a1628}.app .landing-cta{position:relative;isolation:isolate;border:none;cursor:pointer;padding:18px 42px;border-radius:999px;background:linear-gradient(180deg,#f3d77a,#d4af37 45%,#b8941f);color:#1a1408;font-size:18px;font-weight:700;letter-spacing:1.5px;font-family:inherit;box-shadow:0 0 0 1px #ffe8a059,0 12px 40px #d4af3747;overflow:visible;transition:transform .2s ease,filter .2s ease}.app .landing-cta:hover:not(:disabled){transform:translateY(-2px) scale(1.02);filter:brightness(1.06)}.app .landing-cta:active:not(:disabled){transform:scale(.98)}.app .landing-cta:disabled,.app .landing-cta.disabled{cursor:not-allowed;filter:grayscale(.35);opacity:.55}.app .landing-cta.compact{padding:8px 18px;font-size:13px}.app .landing-cta .landing-cta-label{position:relative;z-index:2}.app .landing-cta .landing-cta-glow{position:absolute;inset:-8px;border-radius:inherit;background:radial-gradient(circle,rgba(212,175,55,.35),transparent 70%);z-index:0;animation:cta-glow 2.4s ease-in-out infinite}.app .landing-cta .landing-cta-rings{position:absolute;inset:50% auto auto 50%;width:0;height:0;z-index:1;pointer-events:none}.app .landing-cta .landing-cta-rings span{position:absolute;left:50%;top:50%;width:120px;height:120px;margin:-60px 0 0 -60px;border-radius:50%;border:1px solid rgba(212,175,55,.45);animation:cta-ring 2.8s ease-out infinite}.app .landing-cta .landing-cta-rings span:nth-child(2){animation-delay:.7s}.app .landing-cta .landing-cta-rings span:nth-child(3){animation-delay:1.4s}.app .landing-hint{color:#ffffff73;font-size:13px;letter-spacing:.4px}.app .chat-waiting{flex:1;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;color:#ffffff73;font-size:14px;padding:24px;text-align:center}.app .chat-waiting-spinner{width:36px;height:36px;border-radius:50%;border:2px solid rgba(212,175,55,.2);border-top-color:#d4af37;animation:spin .9s linear infinite}.app .main-layout{display:flex;flex:1;min-height:0}.app .main-layout .digital-human-section{width:510px;min-width:0;display:flex;align-items:stretch;justify-content:center;background:radial-gradient(ellipse at center,rgba(212,175,55,.03) 0%,transparent 70%);position:relative}.app .main-layout .digital-human-section:after{content:"";position:absolute;right:0;top:10%;bottom:10%;width:1px;background:linear-gradient(to bottom,transparent,rgba(212,175,55,.08),transparent)}.app .main-layout .chat-section{flex:1;min-width:0;display:flex;flex-direction:column;background:#0a162899;border-left:1px solid rgba(212,175,55,.06)}@media(max-width:1100px){.app .main-layout .digital-human-section{width:min(42vw,420px)}}@media(max-width:768px){.app .landing{padding:24px 20px;padding-bottom:max(24px,env(safe-area-inset-bottom))}.app .landing-cta{width:min(100%,320px);padding:16px 24px;font-size:16px;letter-spacing:1px}.app .landing-hint{padding:0 12px;text-align:center;line-height:1.5}.app .main-layout{flex-direction:column}.app .main-layout .digital-human-section{width:100%;flex:0 0 min(34vh,260px);max-height:52vh}.app .main-layout .digital-human-section>*{width:100%;height:100%}.app .main-layout .digital-human-section:after{display:none}.app .main-layout .chat-section{width:100%;min-width:0;max-width:100%;flex:1;min-height:0;border-left:none;border-top:1px solid rgba(212,175,55,.06)}}@media(max-width:480px){.app .main-layout .digital-human-section{flex-basis:min(30vh,220px)}}@media(max-width:900px)and (orientation:landscape)and (max-height:500px){.app .main-layout{flex-direction:row}.app .main-layout .digital-human-section{width:38%;flex:0 0 38%;min-height:0;max-height:none}.app .main-layout .chat-section{border-left:1px solid rgba(212,175,55,.06);border-top:none}}@keyframes cta-glow{0%,to{opacity:.45;transform:scale(1)}50%{opacity:1;transform:scale(1.06)}}@keyframes cta-ring{0%{transform:scale(.55);opacity:.55}to{transform:scale(2.4);opacity:0}}.message-list{display:flex;flex-direction:column;gap:14px;padding:6px 0}.message-list .message-item{display:flex;gap:10px;align-items:flex-start}.message-list .message-item.msg-user{flex-direction:row-reverse}.message-list .message-item.msg-user .msg-bubble{background:#d4af37;color:#1a1a1a;border-radius:12px 4px 12px 12px}.message-list .message-item.msg-user .msg-bubble:before{right:-6px;border-width:6px 0 6px 6px;border-color:transparent transparent transparent #d4af37}.message-list .message-item.msg-user .msg-avatar{background:#d4af372e;border:1px solid rgba(212,175,55,.25)}.message-list .message-item.msg-assistant .msg-bubble{background:#2c3a4e;color:#ffffffeb;border-radius:4px 12px 12px}.message-list .message-item.msg-assistant .msg-bubble:before{left:-6px;border-width:6px 6px 6px 0;border-color:transparent #2c3a4e transparent transparent}.message-list .message-item.msg-assistant .msg-avatar{background:#64b5f61f;border:1px solid rgba(100,181,246,.18)}.message-list .message-item .msg-avatar{width:36px;height:36px;border-radius:6px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:18px;overflow:hidden}.message-list .message-item .msg-avatar img{width:100%;height:100%;object-fit:cover;display:block}.message-list .message-item .msg-bubble{position:relative;max-width:70%;padding:9px 13px;word-break:break-word}.message-list .message-item .msg-bubble:before{content:"";position:absolute;top:12px;width:0;height:0;border-style:solid}.message-list .message-item .msg-bubble .msg-text{margin:0;font-family:inherit;font-size:14px;line-height:1.6;white-space:pre-wrap;word-break:break-word}.message-list .message-item .msg-bubble .msg-thinking-content{display:inline-flex;align-items:center;min-height:18px}.message-list .message-item .msg-bubble .msg-thinking-content .thinking-dots{display:inline-flex;align-items:center;gap:5px;padding:4px 0}.message-list .message-item .msg-bubble .msg-thinking-content .thinking-dots .dot{width:7px;height:7px;border-radius:50%;background:#ffffff8c;animation:thinking-pulse 1.4s infinite ease-in-out}.message-list .message-item .msg-bubble .msg-thinking-content .thinking-dots .dot:nth-child(2){animation-delay:.2s}.message-list .message-item .msg-bubble .msg-thinking-content .thinking-dots .dot:nth-child(3){animation-delay:.4s}@keyframes thinking-pulse{0%,80%,to{opacity:.25;transform:scale(.75)}40%{opacity:1;transform:scale(1)}}@media(max-width:768px){.message-list{gap:10px}.message-list .message-item{gap:8px}.message-list .message-item .msg-avatar{width:32px;height:32px}.message-list .message-item .msg-bubble{max-width:78%;padding:8px 11px}.message-list .message-item .msg-bubble .msg-text{font-size:14px}}.chat-panel{display:flex;flex-direction:column;height:100%;width:100%;background:#0a162866;position:relative;overflow:hidden}.chat-panel .chat-header{padding:10px 16px;border-bottom:1px solid rgba(255,255,255,.06);display:flex;align-items:center;justify-content:space-between;flex-shrink:0;background:#0a162880;min-height:44px}.chat-panel .chat-header .header-left{display:flex;align-items:center;gap:12px;flex:1;min-width:0}.chat-panel .chat-header .header-left .panel-title{font-size:14px;font-weight:500;color:#fffc;flex-shrink:0}.chat-panel .chat-header .header-info{display:flex;align-items:center;gap:12px}.chat-panel .chat-header .header-info .panel-title{font-size:14px;font-weight:500;color:#fffc;flex-shrink:0}.chat-panel .chat-header .header-info .mode-switcher{display:inline-flex;align-items:stretch;background:#ffffff06;border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:2px;gap:2px;position:relative;box-shadow:inset 0 1px 2px #00000040}.chat-panel .chat-header .header-info .mode-switcher .mode-tab{flex:1;min-width:0;border:none;border-radius:6px;background:transparent;color:#ffffff8c;font-size:12px;font-weight:500;font-family:inherit;letter-spacing:.2px;cursor:pointer;padding:5px 10px;transition:color .2s ease,background .2s ease,box-shadow .2s ease;display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap;user-select:none;position:relative;font-variant-numeric:tabular-nums}.chat-panel .chat-header .header-info .mode-switcher .mode-tab .mode-icon{font-size:12px;line-height:1;opacity:.7;transition:opacity .2s ease,transform .2s ease}.chat-panel .chat-header .header-info .mode-switcher .mode-tab:hover:not(.active){color:#ffffffd9;background:#ffffff0a}.chat-panel .chat-header .header-info .mode-switcher .mode-tab:hover:not(.active) .mode-icon{opacity:.95}.chat-panel .chat-header .header-info .mode-switcher .mode-tab.active{background:linear-gradient(180deg,#6495ed4d,#6495ed2e);color:#eaf4ff;box-shadow:inset 0 0 0 1px #82aff559,0 1px 2px #3c6ec833}.chat-panel .chat-header .header-info .mode-switcher .mode-tab.active .mode-icon{opacity:1;color:#fff}.chat-panel .chat-header .header-info .mode-switcher .mode-tab:active:not(.active){background:#ffffff05}.chat-panel .chat-header>.mode-switcher{display:inline-flex;align-items:stretch;background:#ffffff06;border:1px solid rgba(255,255,255,.08);border-radius:8px;padding:2px;gap:2px;position:relative;box-shadow:inset 0 1px 2px #00000040;flex-shrink:0}.chat-panel .chat-header>.mode-switcher.disabled{opacity:.45;filter:grayscale(.35);pointer-events:none}.chat-panel .chat-header>.mode-switcher .mode-tab{flex:1;min-width:0;border:none;border-radius:6px;background:transparent;color:#ffffff8c;font-size:12px;font-weight:500;font-family:inherit;letter-spacing:.2px;cursor:pointer;padding:5px 10px;transition:color .2s ease,background .2s ease,box-shadow .2s ease;display:inline-flex;align-items:center;justify-content:center;gap:6px;white-space:nowrap;user-select:none;position:relative;font-variant-numeric:tabular-nums}.chat-panel .chat-header>.mode-switcher .mode-tab .mode-label-short{display:none}.chat-panel .chat-header>.mode-switcher .mode-tab .mode-icon{font-size:12px;line-height:1;opacity:.7;transition:opacity .2s ease,transform .2s ease}.chat-panel .chat-header>.mode-switcher .mode-tab:hover:not(.active):not(:disabled){color:#ffffffd9;background:#ffffff0a}.chat-panel .chat-header>.mode-switcher .mode-tab:hover:not(.active):not(:disabled) .mode-icon{opacity:.95}.chat-panel .chat-header>.mode-switcher .mode-tab:disabled{cursor:not-allowed;color:#ffffff47}.chat-panel .chat-header>.mode-switcher .mode-tab.active{background:linear-gradient(180deg,#6495ed4d,#6495ed2e);color:#eaf4ff;box-shadow:inset 0 0 0 1px #82aff559,0 1px 2px #3c6ec833}.chat-panel .chat-header>.mode-switcher .mode-tab.active .mode-icon{opacity:1;color:#fff}.chat-panel .chat-header>.mode-switcher .mode-tab:active:not(.active){background:#ffffff05}.chat-panel .chat-header .header-session-controls{display:flex;align-items:center;gap:8px;flex-shrink:0;min-width:max-content}.chat-panel .chat-header .header-session-controls .header-session-item{display:inline-flex;align-items:center;gap:5px;font-size:11px;color:#ffffff80;letter-spacing:.2px}.chat-panel .chat-header .header-session-controls .header-session-item .header-session-icon{font-size:10px;opacity:.7}.chat-panel .chat-header .header-session-controls .header-session-item .header-session-label{color:#ffffff59}.chat-panel .chat-header .header-session-controls .header-session-item .header-session-value{font-family:inherit;font-variant-numeric:tabular-nums}.chat-panel .chat-header .header-session-controls .header-session-divider{width:1px;height:12px;background:#ffffff14}.chat-panel .chat-header .session-toggle-btn{display:inline-flex;align-items:center;gap:5px;padding:3px 10px;height:24px;border-radius:6px;border:1px solid rgba(255,255,255,.08);background:#ffffff08;color:#ffffff80;font-size:11px;font-weight:500;font-family:inherit;letter-spacing:.3px;cursor:pointer;transition:color .2s ease,background .2s ease,border-color .2s ease;white-space:nowrap}.chat-panel .chat-header .session-toggle-btn:hover:not(:disabled){background:#64b5f60f;border-color:#64b5f640;color:#b4d2ffd9}.chat-panel .chat-header .session-toggle-btn:active:not(:disabled){background:#64b5f61a}.chat-panel .chat-header .session-toggle-btn.disabled{opacity:.4;cursor:not-allowed}.chat-panel .chat-header .session-toggle-btn.loading{opacity:.6;cursor:wait}.chat-panel .chat-header .session-toggle-btn.active{border-color:#ef44444d;background:#ef44440f;color:#ff8c8ce6}.chat-panel .chat-header .session-toggle-btn.active:hover:not(:disabled){background:#ef44441a;border-color:#ef444473;color:#ffa0a0}.chat-panel .chat-header .session-toggle-btn .toggle-btn-icon{font-size:10px;line-height:1;display:inline-flex;align-items:center;justify-content:center}.chat-panel .chat-header .session-toggle-btn .toggle-btn-label{letter-spacing:.3px}.chat-panel .chat-messages{flex:1;overflow-x:hidden;overflow-y:auto;padding:12px 16px;min-height:0;background:transparent}.chat-panel .chat-messages::-webkit-scrollbar{width:3px}.chat-panel .chat-messages::-webkit-scrollbar-track{background:#ffffff05}.chat-panel .chat-messages::-webkit-scrollbar-thumb{background:#d4af3733;border-radius:2px}.chat-panel .chat-messages .empty-state{display:flex;flex-direction:column;align-items:center;justify-content:center;height:100%;text-align:center;padding:20px}.chat-panel .chat-messages .empty-state .empty-icon{width:128px;height:128px;margin-bottom:16px;border-radius:16px;overflow:hidden}.chat-panel .chat-messages .empty-state .empty-icon img{width:100%;height:100%;object-fit:cover;display:block}.chat-panel .chat-messages .empty-state h4{font-size:16px;color:#ffffff80;margin-bottom:8px;font-weight:400}.chat-panel .chat-messages .empty-state p{color:#ffffff40;font-size:13px;line-height:1.6;max-width:240px;margin-bottom:16px}.chat-panel .chat-messages .empty-state .fallback-hint{color:#fbbf24e6;max-width:280px;margin-bottom:8px}.chat-panel .chat-messages .empty-state.is-busy h4{color:#fbbf24f2;font-weight:500}.chat-panel .chat-messages .empty-state.is-busy p{color:#ffffffa6;max-width:280px}.chat-panel .chat-messages .empty-state .empty-start-btn{display:inline-flex;align-items:center;justify-content:center;padding:10px 28px;border-radius:8px;border:1px solid rgba(100,181,246,.3);background:linear-gradient(180deg,#64b5f633,#64b5f61a);color:#c8e6fff2;font-size:14px;font-weight:500;font-family:inherit;letter-spacing:.5px;cursor:pointer;transition:all .2s ease;box-shadow:0 2px 8px #64b5f626}.chat-panel .chat-messages .empty-state .empty-start-btn:hover:not(:disabled){background:linear-gradient(180deg,#64b5f64d,#64b5f626);border-color:#64b5f680;color:#fff;box-shadow:0 4px 12px #64b5f640}.chat-panel .chat-messages .empty-state .empty-start-btn:active:not(:disabled){transform:scale(.98)}.chat-panel .chat-messages .empty-state .empty-start-btn.disabled{opacity:.4;cursor:not-allowed;box-shadow:none}.chat-panel .chat-input-area{padding:10px 14px 12px;border-top:1px solid rgba(255,255,255,.05);flex-shrink:0;background:#0a16284d}.chat-panel .chat-input-area.is-locked{opacity:.55;filter:grayscale(.4)}.chat-panel .chat-input-area.is-locked .text-input-wrap,.chat-panel .chat-input-area.is-locked .voice-listening{pointer-events:none}.chat-panel .chat-input-area .input-row{display:flex;align-items:flex-end}.chat-panel .chat-input-area .input-left{display:flex;align-items:center;gap:8px;flex-shrink:0;padding-bottom:4px}.chat-panel .chat-input-area .session-toggle{display:inline-flex;align-items:center;gap:6px;padding:4px 6px;border:1px solid rgba(255,255,255,.08);border-radius:22px;background:#ffffff08;cursor:pointer;transition:all .25s ease;height:36px}.chat-panel .chat-input-area .session-toggle.disabled{opacity:.4;cursor:not-allowed}.chat-panel .chat-input-area .session-toggle.loading{opacity:.6}.chat-panel .chat-input-area .session-toggle .toggle-track{width:34px;height:18px;border-radius:10px;background:#ffffff1f;position:relative;transition:background .25s ease;flex-shrink:0}.chat-panel .chat-input-area .session-toggle .toggle-thumb{position:absolute;top:2px;left:2px;width:14px;height:14px;border-radius:50%;background:#fffc;transition:transform .25s ease,background .25s ease}.chat-panel .chat-input-area .session-toggle .toggle-label{font-size:11px;color:#ffffff73;white-space:nowrap;min-width:28px}.chat-panel .chat-input-area .session-toggle.on{border-color:#4caf504d;background:#4caf5014}.chat-panel .chat-input-area .session-toggle.on .toggle-track{background:#4caf50}.chat-panel .chat-input-area .session-toggle.on .toggle-thumb{transform:translate(16px);background:#fff}.chat-panel .chat-input-area .session-toggle.on .toggle-label{color:#4caf50}.chat-panel .chat-input-area .session-toggle.off .toggle-label{color:#ffffff59}.chat-panel .chat-input-area .input-right{flex:1;display:flex;align-items:center;min-width:0}.chat-panel .chat-input-area .text-input-wrap{flex:1;min-width:0;min-height:36px;padding:0 6px 0 14px;border:1px solid rgba(255,255,255,.08);border-radius:18px;background:#ffffff0a;display:flex;align-items:center;gap:6px;transition:border-color .25s ease,background .25s ease}.chat-panel .chat-input-area .text-input-wrap:focus-within{border-color:#6495ed66;background:#6495ed0f}.chat-panel .chat-input-area .text-input-wrap.disabled{opacity:.4}.chat-panel .chat-input-area .text-input{flex:1;min-width:0;min-height:24px;max-height:80px;padding:6px 0;border:none;background:transparent;color:#ffffffe6;font-size:13px;line-height:1.5;resize:none;outline:none;transition:all .25s ease;font-family:inherit}.chat-panel .chat-input-area .text-input::placeholder{color:#ffffff40}.chat-panel .chat-input-area .text-input:disabled{cursor:not-allowed;color:#ffffff52}.chat-panel .chat-input-area .send-btn{width:28px;height:28px;border-radius:50%;border:none;background:linear-gradient(135deg,#6495ed,#4a7fd6);color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:12px;transition:background .25s ease,box-shadow .25s ease,transform .25s ease;flex-shrink:0}.chat-panel .chat-input-area .send-btn:hover:not(:disabled){transform:scale(1.08);box-shadow:0 2px 12px #6495ed66}.chat-panel .chat-input-area .send-btn:active:not(:disabled){transform:scale(.95)}.chat-panel .chat-input-area .send-btn:disabled{opacity:.3;cursor:not-allowed;background:#ffffff14}.chat-panel .chat-input-area .send-btn.loading{background:#6495ed40;cursor:wait;opacity:1}.chat-panel .chat-input-area .send-btn.loading .spinner{width:14px;height:14px;border:2px solid rgba(255,255,255,.25);border-top-color:#fff;border-radius:50%;animation:spin .8s linear infinite;display:inline-block}.chat-panel .chat-input-area .voice-listening{flex:1;min-width:0;min-height:36px;padding:6px 14px;border:1px solid rgba(255,255,255,.08);border-radius:18px;background:#ffffff08;display:flex;align-items:center;gap:10px;transition:border-color .25s ease,background .25s ease}.chat-panel .chat-input-area .voice-listening.disabled{opacity:.4}.chat-panel .chat-input-area .voice-listening.active{border-color:#64b5f666;background:#64b5f60f}.chat-panel .chat-input-area .voice-listening.processing{border-color:#ffc1074d;background:#ffc1070d}.chat-panel .chat-input-area .voice-listening .mic-icon{font-size:16px;flex-shrink:0;line-height:1}.chat-panel .chat-input-area .voice-listening .volume-bar{width:4px;height:18px;background:#ffffff14;border-radius:2px;overflow:hidden;flex-shrink:0;position:relative}.chat-panel .chat-input-area .voice-listening .volume-bar .volume-fill{position:absolute;bottom:0;left:0;width:100%;height:100%;background:linear-gradient(180deg,#64b5f6,#4a7fd6);border-radius:2px;transform:scaleY(.05);transform-origin:bottom;transition:transform .08s linear}.chat-panel .chat-input-area .voice-listening .listening-text{flex:1;min-width:0;font-size:12px;color:#ffffff80;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.chat-panel .chat-input-area .voice-listening .listening-pulse{width:8px;height:8px;border-radius:50%;background:#ef4444;flex-shrink:0;animation:pulse-dot 1.2s ease-in-out infinite;transition:background-color .2s ease}.chat-panel .chat-input-area .input-hint{text-align:center;font-size:10px;color:#ffffff40;letter-spacing:.3px;margin-top:6px}.chat-panel .chat-input-area .input-hint .hint-start-btn{display:inline-flex;align-items:center;justify-content:center;padding:4px 14px;border-radius:6px;border:1px solid rgba(100,181,246,.3);background:#64b5f61a;color:#b4dcffe6;font-size:11px;font-weight:500;font-family:inherit;letter-spacing:.5px;cursor:pointer;transition:all .2s ease}.chat-panel .chat-input-area .input-hint .hint-start-btn:hover:not(:disabled){background:#64b5f633;border-color:#64b5f680;color:#fff}.chat-panel .chat-input-area .input-hint .hint-start-btn:active:not(:disabled){transform:scale(.98)}.chat-panel .chat-input-area .input-hint .hint-start-btn.disabled{opacity:.4;cursor:not-allowed}@keyframes pulse-dot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.8)}}@keyframes spin{to{transform:rotate(360deg)}}@media(max-width:768px){.chat-panel .chat-header{flex-wrap:wrap;gap:8px;padding:8px 12px;min-height:0}.chat-panel .chat-header .header-left{width:100%;justify-content:space-between}.chat-panel .chat-header .header-left .panel-title{font-size:13px}.chat-panel .chat-header .header-session-controls .header-session-item:first-child,.chat-panel .chat-header .header-session-controls .header-session-divider:first-of-type{display:none}.chat-panel .chat-header>.mode-switcher{width:100%}.chat-panel .chat-header>.mode-switcher .mode-tab{padding:6px 8px;font-size:12px}.chat-panel .chat-header>.mode-switcher .mode-tab .mode-label-full{display:none}.chat-panel .chat-header>.mode-switcher .mode-tab .mode-label-short{display:inline}.chat-panel .chat-messages{padding:10px 12px;-webkit-overflow-scrolling:touch;overscroll-behavior:contain}.chat-panel .chat-messages .empty-state{padding:12px}.chat-panel .chat-messages .empty-state .empty-icon{width:72px;height:72px;border-radius:12px;margin-bottom:12px}.chat-panel .chat-messages .empty-state p{max-width:100%;font-size:13px}.chat-panel .chat-input-area{padding:8px 12px max(10px,env(safe-area-inset-bottom))}.chat-panel .chat-input-area .text-input{font-size:16px;max-height:96px}.chat-panel .chat-input-area .text-input-wrap,.chat-panel .chat-input-area .voice-listening{min-height:44px}.chat-panel .chat-input-area .send-btn{width:36px;height:36px;font-size:14px}.chat-panel .chat-input-area .listening-text{font-size:13px;white-space:normal;line-height:1.4}.chat-panel .chat-input-area .input-hint{font-size:11px;margin-top:4px}}.dh-loading{position:absolute;inset:0;z-index:5;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:28px;background:radial-gradient(ellipse at center,#0c28488c,#060c18d1 70%);backdrop-filter:blur(8px)}.dh-loading-core{position:relative;width:108px;height:108px;filter:drop-shadow(0 0 18px rgba(80,200,255,.25))}.dh-loading-ring{position:absolute;inset:0;border-radius:50%;border:1px solid transparent;pointer-events:none}.dh-loading-ring--outer{inset:0;border-top-color:#50dcfff2;border-right-color:#d4af3759;animation:dh-spin 2.4s linear infinite}.dh-loading-ring--mid{inset:12px;border-bottom-color:#d4af37e6;border-left-color:#50dcff40;animation:dh-spin-rev 1.8s linear infinite}.dh-loading-ring--inner{inset:26px;border:1px dashed rgba(80,220,255,.35);animation:dh-spin 6s linear infinite}.dh-loading-hex{position:absolute;left:50%;top:50%;width:28px;height:28px;margin:-14px 0 0 -14px;background:linear-gradient(135deg,#7af0ff,#3aa0ff 40%,#d4af37);clip-path:polygon(50% 0%,93% 25%,93% 75%,50% 100%,7% 75%,7% 25%);box-shadow:0 0 16px #7af0ffb3;animation:dh-pulse 1.6s ease-in-out infinite}.dh-loading-scan{position:absolute;left:50%;top:50%;width:2px;height:46px;margin:-46px 0 0 -1px;background:linear-gradient(to bottom,transparent,rgba(122,240,255,.95));transform-origin:bottom center;animation:dh-scan 2.2s linear infinite;border-radius:2px}.dh-loading-text{margin:0;font-size:15px;font-weight:500;letter-spacing:4px;color:#c8f0ffeb;text-shadow:0 0 12px rgba(80,200,255,.45);font-variant-numeric:tabular-nums}.dh-loading-dots{display:inline-block;min-width:1.5em;text-align:left}.dh-loading-dots span{opacity:0;color:#7af0ff;animation:dh-dot-seq 1.2s linear infinite}.dh-loading-dots span:nth-child(1){animation-name:dh-dot-1}.dh-loading-dots span:nth-child(2){animation-name:dh-dot-2}.dh-loading-dots span:nth-child(3){animation-name:dh-dot-3}@keyframes dh-dot-1{0%,8%{opacity:0}9%,to{opacity:1}}@keyframes dh-dot-2{0%,32%{opacity:0}33%,to{opacity:1}}@keyframes dh-dot-3{0%,65%{opacity:0}66%,to{opacity:1}}@keyframes dh-spin{to{transform:rotate(360deg)}}@keyframes dh-spin-rev{to{transform:rotate(-360deg)}}@keyframes dh-pulse{0%,to{transform:scale(.92);opacity:.85}50%{transform:scale(1.08);opacity:1}}@keyframes dh-scan{to{transform:rotate(360deg)}}.dh-error{position:absolute;inset:0;z-index:20;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;padding:24px;background:#060c18b8;backdrop-filter:blur(8px);text-align:center}.dh-error-title{margin:0;font-size:16px;font-weight:600;color:#fbbf24}.dh-error-text{margin:0;max-width:280px;font-size:14px;line-height:1.65;color:#ffffffe0}.dh-error-retry{margin-top:8px;padding:8px 20px;border:1px solid rgba(251,191,36,.45);border-radius:8px;background:#fbbf2426;color:#fde68a;font-size:13px;cursor:pointer}.dh-error-retry:hover{background:#fbbf2447}@media(max-width:768px){.dh-loading-text{letter-spacing:2px;font-size:14px}.dh-error{padding:16px}.dh-error-text{font-size:13px}.dh-error-retry{min-height:40px;padding:8px 18px}}.status-bar{display:flex;align-items:center;justify-content:space-between;padding:6px 16px;background:#0a1628cc;border-bottom:1px solid rgba(255,255,255,.03);backdrop-filter:blur(10px);flex-shrink:0;min-height:32px}.status-bar .status-left,.status-bar .status-right{display:flex;align-items:center;gap:12px}.status-bar .status-item{display:flex;align-items:center;gap:6px;font-size:11px;color:#ffffff59}.status-bar .status-item .status-dot{width:5px;height:5px;border-radius:50%;display:inline-block}.status-bar .status-item .status-dot.online{background:#4caf50;box-shadow:0 0 8px #4caf504d}.status-bar .status-item .status-dot.offline{background:#ff5252;opacity:.5}.status-bar .status-item .status-dot.active{background:#d4af37;box-shadow:0 0 8px #d4af3733}.status-bar .status-item .status-dot.breathing{animation:dot-breathing 1.6s ease-in-out infinite}.status-bar .status-item .breathing-text{animation:text-breathing 1.6s ease-in-out infinite}.status-bar .status-item .status-label{letter-spacing:.2px}.status-bar .status-item .status-value{font-family:inherit}.status-bar .status-divider{width:1px;height:14px;background:#ffffff0f}.status-bar .status-right .status-item:last-of-type{color:#d4af374d;font-weight:500;letter-spacing:.5px}.status-bar .status-action{border:1px solid rgba(255,255,255,.12);background:#ffffff0a;color:#ffffffbf;font-size:11px;font-family:inherit;letter-spacing:.3px;padding:3px 10px;height:24px;border-radius:6px;cursor:pointer;transition:background .2s ease,border-color .2s ease;white-space:nowrap}.status-bar .status-action:hover{background:#64b5f61f;border-color:#64b5f659}.status-bar .status-action.reconnect{border-color:#f59e0b66;color:#fbbf24}.status-bar .status-action.end{border-color:#ef444459;color:#fca5a5f2}@keyframes dot-breathing{0%,to{transform:scale(1);opacity:.6;box-shadow:0 0 2px #ff525266}50%{transform:scale(1.6);opacity:1;box-shadow:0 0 10px #ff5252e6,0 0 20px #ff525280,0 0 30px #ff525233}}@keyframes text-breathing{0%,to{opacity:.4}50%{opacity:1}}@media(max-width:768px){.status-bar{padding:6px 10px;padding-top:max(6px,env(safe-area-inset-top));gap:8px;min-height:40px}.status-bar .status-left,.status-bar .status-right{gap:8px}.status-bar .status-label{display:none}.status-bar .status-item{font-size:11px;gap:4px}.status-bar .status-action{height:32px;padding:0 10px;font-size:12px}}@media(max-width:480px){.status-bar .status-left .status-divider,.status-bar .status-left .status-item:last-child{display:none}}*{margin:0;padding:0;box-sizing:border-box}html,body{height:100%;width:100%;font-family:-apple-system,BlinkMacSystemFont,PingFang SC,Microsoft YaHei,Helvetica Neue,Arial,sans-serif;background:#0a1628;color:#fff;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow:hidden}#root{height:100%;width:100%}::-webkit-scrollbar{width:3px;height:3px}::-webkit-scrollbar-track{background:#ffffff05;border-radius:2px}::-webkit-scrollbar-thumb{background:#d4af3733;border-radius:2px}::-webkit-scrollbar-thumb:hover{background:#d4af374d}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes slideUp{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:fadeIn .3s ease-out}.slide-up{animation:slideUp .4s ease-out}::selection{background:#d4af3733;color:#d4af37}
