.onboarding-gate{background:var(--space-deep);justify-content:center;align-items:center;min-height:100dvh;padding:20px;display:flex;position:relative;overflow:hidden}.onboarding-gate:before{content:"";pointer-events:none;background:radial-gradient(at 30% 35%,#6366f12e 0%,#0000 45%),radial-gradient(at 65% 45%,#8b5cf624 0%,#0000 45%),radial-gradient(at 45% 70%,#ec489914 0%,#0000 40%),radial-gradient(at 75% 25%,#14b8a60f 0%,#0000 35%);width:180%;height:80%;animation:20s ease-in-out infinite gateGlowShift;position:absolute;top:-40%;left:-30%}.onboarding-gate:after{content:"";pointer-events:none;background:linear-gradient(#0000 0%,#6366f10a 50%,#8b5cf60f 100%);height:35%;position:absolute;bottom:0;left:0;right:0}@keyframes gateGlowShift{0%,to{opacity:.75;transform:scale(1)rotate(0)}33%{opacity:.9;transform:scale(1.04)rotate(.5deg)}66%{opacity:.8;transform:scale(.98)rotate(-.5deg)}}.onboarding-card{-webkit-backdrop-filter:blur(40px)saturate(1.2);border-radius:var(--radius-xl);text-align:center;background:#14123acc;border:1px solid #6366f126;width:100%;max-width:460px;padding:52px 44px;animation:.7s cubic-bezier(.16,1,.3,1) cardFloatUp;position:relative;box-shadow:0 8px 60px #05051499,0 0 60px #6366f10f,inset 0 1px #ffffff08}@keyframes cardFloatUp{0%{opacity:0;transform:translateY(30px)}to{opacity:1;transform:translateY(0)}}.onboarding-icon{justify-content:center;align-items:center;margin-bottom:24px;animation:2.5s ease-in-out infinite gentleBounce;display:flex}.tiger-logo-img{object-fit:contain;border-radius:50%;width:120px;height:120px;box-shadow:0 0 40px #6366f140,0 0 80px #8b5cf61f}@keyframes gentleBounce{0%,to{transform:translateY(0)}50%{transform:translateY(-8px)}}.onboarding-title{background:linear-gradient(135deg,#ededff 0%,#c4b5fd 45%,#a78bfa 70%,#818cf8 100%);-webkit-text-fill-color:transparent;letter-spacing:-.02em;-webkit-background-clip:text;background-clip:text;margin:0 0 14px;font-size:28px;font-weight:800}.onboarding-subtitle{color:var(--text-secondary);margin:0 0 36px;font-size:15px;line-height:1.8}.mode-selector{flex-direction:column;gap:12px;margin-bottom:24px;display:flex}.mode-option{border-radius:var(--radius-lg);cursor:pointer;text-align:left;background:#6366f108;border:2px solid #6366f124;align-items:flex-start;gap:14px;padding:18px;transition:all .25s;display:flex}.mode-option:hover{background:#6366f114;border-color:#6366f159}.mode-option.active{background:linear-gradient(135deg,#6366f11f,#8b5cf614);border-color:#6366f18c;box-shadow:0 0 24px #6366f11a}.mode-option-content h3{color:var(--text-primary);margin:0 0 4px;font-size:16px;font-weight:700}.mode-option-content p{color:var(--text-secondary);margin:0;font-size:13px;line-height:1.6}.mode-check{color:var(--nebula-indigo-light);flex-shrink:0;margin-top:2px;margin-left:auto;font-size:20px;font-weight:700}.mode-hint{color:var(--text-muted);margin:0;font-size:13px;line-height:1.6}.history-notice{border-radius:var(--radius-md);color:var(--text-secondary);text-align:left;background:#6366f114;border:1px solid #6366f133;align-items:center;gap:8px;margin-bottom:24px;padding:14px 18px;font-size:13px;line-height:1.6;display:flex}.passphrase-input-wrapper{margin-bottom:18px;position:relative}.passphrase-input{border-radius:var(--radius-lg);width:100%;color:var(--text-primary);box-sizing:border-box;background:#6366f10a;border:2px solid #6366f12e;outline:none;padding:15px 52px 15px 18px;font-size:16px;transition:all .25s}.passphrase-input:focus{background:#6366f10f;border-color:#6366f180;box-shadow:0 0 0 4px #6366f114}.passphrase-input::placeholder{color:var(--text-muted)}.toggle-visibility{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;align-items:center;padding:8px;font-size:13px;font-weight:600;transition:color .2s;display:flex;position:absolute;top:50%;right:10px;transform:translateY(-50%)}.toggle-visibility:hover{color:var(--nebula-indigo-light)}.match-role-selector{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-bottom:12px;display:grid}.match-role-btn{border-radius:var(--radius-md);min-height:48px;color:var(--text-secondary);cursor:pointer;background:#6366f108;border:2px solid #6366f124;font-size:15px;font-weight:700;transition:all .25s}.match-role-btn:hover:not(:disabled){color:var(--text-primary);background:#6366f114;border-color:#6366f159}.match-role-btn.active{border-color:var(--nebula-indigo);color:var(--text-primary);background:linear-gradient(135deg,#6366f12e,#8b5cf61a);box-shadow:0 0 24px #6366f11f}.match-role-btn:disabled{cursor:not-allowed;opacity:.4}.match-role-hint{color:var(--text-muted);margin:0 0 16px;font-size:12px;line-height:1.6}.nickname-input-wrapper{margin-bottom:18px}.nickname-input{border-radius:var(--radius-lg);width:100%;color:var(--text-primary);box-sizing:border-box;background:#6366f10a;border:2px solid #6366f12e;outline:none;padding:13px 16px;font-size:15px;transition:all .25s}.nickname-input:focus{border-color:#6366f180;box-shadow:0 0 0 4px #6366f114}.nickname-input::placeholder{color:var(--text-muted);font-size:14px}.onboarding-error{color:#fda4af;border-radius:var(--radius-md);background:#f43f5e1a;border:1px solid #f43f5e33;margin-bottom:18px;padding:12px 16px;font-size:14px;line-height:1.6}.onboarding-btn{background:var(--grad-btn);color:#fff;border-radius:var(--radius-full);cursor:pointer;letter-spacing:.01em;border:none;width:100%;margin-bottom:14px;padding:16px;font-size:16px;font-weight:700;transition:all .25s;box-shadow:0 4px 20px #6366f133}.onboarding-btn:hover:not(:disabled){background:var(--grad-btn-hover);transform:translateY(-2px);box-shadow:0 8px 30px #6366f159}.onboarding-btn:disabled{opacity:.5;cursor:not-allowed}.onboarding-btn.clear-btn{color:var(--text-secondary);border-radius:var(--radius-md);box-shadow:none;background:#6366f114;border:1px solid #6366f126;margin-top:14px;padding:14px;font-size:13px;font-weight:500}.onboarding-btn.clear-btn:hover{color:var(--text-primary);background:#6366f126;border-color:#6366f14d;transform:none}.confirm-overlay{-webkit-backdrop-filter:blur(10px);z-index:100;background:#050514b3;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.confirm-dialog{-webkit-backdrop-filter:blur(20px);border-radius:var(--radius-xl);background:#16143cf2;border:1px solid #6366f126;width:100%;max-width:440px;padding:36px;animation:.3s floatUp;box-shadow:0 20px 60px #050514b3,0 0 40px #6366f114}.confirm-dialog h3{color:var(--text-primary);margin:0 0 22px;font-size:20px;font-weight:700}.confirm-content{flex-direction:column;gap:14px;margin-bottom:28px;display:flex}.confirm-item{color:var(--text-secondary);align-items:flex-start;gap:10px;font-size:14px;line-height:1.6;display:flex}.confirm-item.warning{color:#fda4af}.confirm-actions{gap:12px;display:flex}.confirm-btn{border-radius:var(--radius-md);cursor:pointer;border:none;flex:1;padding:14px;font-size:14px;font-weight:700;transition:all .2s}.confirm-btn.primary{background:var(--grad-btn);color:#fff}.confirm-btn.primary:hover:not(:disabled){background:var(--grad-btn-hover);box-shadow:0 4px 24px #6366f14d}.confirm-btn.primary:disabled{opacity:.5;cursor:not-allowed}.confirm-btn.secondary{color:var(--text-secondary);background:#6366f114}.confirm-btn.secondary:hover{background:#6366f126}@media (width<=480px){.onboarding-card{border-radius:var(--radius-xl);padding:36px 24px}.onboarding-title{font-size:24px}.tiger-logo-img{width:100px;height:100px}}.top-status-bar{z-index:40;-webkit-backdrop-filter:blur(30px)saturate(1.2);border-bottom:1px solid var(--glass-border);background:#211827db;flex-shrink:0;justify-content:space-between;align-items:center;gap:10px;min-height:52px;padding:10px 18px;display:flex;position:sticky;top:0}.status-bar-left{flex-shrink:1;align-items:center;min-width:0;display:flex}.app-logo{color:var(--nebula-pink-light);align-items:center;gap:10px;display:flex}.app-logo svg{filter:drop-shadow(0 0 8px #f43f685c)}.app-name{color:var(--text-primary);letter-spacing:-.01em;white-space:nowrap;text-overflow:ellipsis;font-size:15px;font-weight:700;overflow:hidden}.my-nickname-display{color:var(--nebula-pink-light);background:#f43f681f;border:1px solid #f43f6838;border-radius:99px;flex-shrink:0;margin-left:8px;padding:3px 10px;font-size:11px;font-weight:600}.peer-nickname-display{color:var(--nebula-purple-light);background:linear-gradient(135deg,#f43f681f,#8b5cf614);border:1px solid #8b5cf633;border-radius:99px;flex-shrink:0;margin-left:6px;padding:3px 12px;font-size:11px;font-weight:600;animation:.3s fadeIn}.status-bar-center{flex:1;justify-content:center;align-items:center;gap:12px;min-width:0;display:flex}.connection-status{align-items:center;gap:5px;display:flex}.status-dot{border-radius:50%;flex-shrink:0;width:7px;height:7px}.status-dot.connecting{animation:1.5s ease-in-out infinite pulse}@keyframes pulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(1.3)}}.status-label{font-size:12px;font-weight:600}.encryption-status{color:var(--text-muted);align-items:center;gap:4px;font-size:11px;font-weight:500;display:flex}.encryption-status svg{color:var(--aurora-teal-light);opacity:.7}.privacy-mode-badge{color:var(--nebula-purple-light);border:1px solid var(--glass-border);background:#f43f680f;border-radius:99px;align-items:center;gap:5px;padding:3px 10px;font-size:11px;font-weight:600;display:flex}.privacy-dot{background:var(--nebula-indigo);border-radius:50%;width:5px;height:5px}.status-bar-right{flex-shrink:0;align-items:center;gap:2px;display:flex}.insight-nav-btn,.strategy-nav-btn,.theme-nav-btn,.settings-nav-btn{border-radius:var(--radius-sm);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;width:34px;height:34px;transition:all .2s;display:flex}.insight-nav-btn{color:var(--nebula-purple-light)}.insight-nav-btn:hover{background:#8b5cf626}.strategy-nav-btn{color:var(--aurora-cyan)}.strategy-nav-btn:hover{background:#22d3ee1a}.settings-nav-btn{color:var(--text-muted)}.theme-nav-btn{color:var(--nebula-pink-light)}.theme-nav-btn:hover{color:var(--nebula-pink);background:#f43f681f}.settings-nav-btn:hover{color:var(--nebula-pink-light);background:#f43f681f}.app[data-theme=light] .top-status-bar{background:#ffffffd1}.app[data-theme=light] .app-logo svg{filter:drop-shadow(0 0 8px #f43f682e)}@media (width<=768px){.top-status-bar{gap:6px;min-height:46px;padding:8px 12px}.status-bar-center{gap:6px}.encryption-status span,.privacy-mode-badge{display:none}.app-name{font-size:13px}.status-label{font-size:11px}.insight-nav-btn,.strategy-nav-btn,.theme-nav-btn,.settings-nav-btn{border-radius:8px;width:30px;height:30px}}@media (width<=380px){.my-nickname-display,.peer-nickname-display{display:none}.status-bar-center{justify-content:flex-end}}.connection-panel{-webkit-backdrop-filter:blur(20px)saturate(1.1);border-radius:var(--radius-lg);background:#16143c73;border:1px solid #6366f11a;margin:14px 18px;padding:18px 20px;box-shadow:0 4px 20px #0505144d}.dedicated-match-status{border-radius:var(--radius-md);color:var(--text-primary);background:linear-gradient(135deg,#6366f114,#8b5cf60a);border:1px solid #6366f133;flex-direction:column;gap:5px;margin-bottom:14px;padding:14px 16px;display:flex}.dedicated-match-status strong{color:var(--nebula-indigo-light);font-size:13px;font-weight:800}.dedicated-match-status span{color:var(--text-secondary);font-size:12px;line-height:1.5}.connection-panel.dedicated{flex-direction:column;gap:12px;display:flex}.connection-panel.dedicated .dedicated-match-status{margin-bottom:0}.status-title-row{justify-content:space-between;align-items:center;gap:12px;display:flex}.status-title-row .connecting-animation{flex:none}.invite-card{border-radius:var(--radius-md);background:#14b8a60d;border:1px solid #14b8a629;flex-direction:column;gap:12px;padding:14px 16px;display:flex}.invite-header{justify-content:space-between;align-items:flex-start;gap:12px;display:flex}.invite-header>div{flex-direction:column;gap:4px;min-width:0;display:flex}.invite-eyebrow{color:var(--aurora-teal-light);letter-spacing:.06em;font-size:11px;font-weight:800}.invite-header strong{color:var(--text-primary);font-size:13px;line-height:1.45}.role-chip{border-radius:var(--radius-sm);color:var(--aurora-teal-light);white-space:nowrap;background:#14b8a614;border:1px solid #14b8a62e;flex:none;padding:6px 9px;font-size:12px;font-weight:700}.invite-link-preview{border-radius:var(--radius-sm);color:var(--text-secondary);text-overflow:ellipsis;white-space:nowrap;background:#6366f10d;border:1px solid #6366f11f;padding:10px 12px;font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:12px;overflow:hidden}.invite-actions{flex-wrap:wrap;gap:8px;display:flex}.invite-copy{justify-content:center}.invite-copy:disabled{opacity:.5;cursor:not-allowed}.invite-qr{color:var(--text-muted);align-items:center;gap:12px;font-size:12px;line-height:1.5;display:flex}.invite-qr img{border-radius:var(--radius-sm);object-fit:contain;background:#fff;width:120px;height:120px;padding:8px}.manual-toggle{border-radius:var(--radius-sm);color:var(--text-secondary);cursor:pointer;background:#6366f10f;border:1px solid #6366f11f;align-self:flex-start;padding:8px 12px;font-size:12px;font-weight:700;transition:all .2s}.manual-toggle:hover{color:var(--nebula-indigo-light);border-color:#6366f166}.manual-connect{flex-direction:column;gap:14px;display:flex}.connection-label{color:var(--text-muted);letter-spacing:.05em;margin-bottom:10px;font-size:12px;font-weight:700;display:block}.my-id-section{margin-bottom:4px}.id-display{align-items:center;gap:8px;display:flex}.id-text{border-radius:var(--radius-md);color:var(--nebula-indigo-light);text-overflow:ellipsis;white-space:nowrap;background:#6366f10f;border:1px solid #6366f114;flex:1;padding:11px 16px;font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:14px;font-weight:600;overflow:hidden}.copy-btn{border-radius:var(--radius-md);color:var(--text-secondary);cursor:pointer;white-space:nowrap;background:#6366f10f;border:1.5px solid #6366f124;align-items:center;gap:4px;padding:11px 16px;font-size:13px;font-weight:600;transition:all .2s;display:flex}.copy-btn:hover{color:var(--nebula-indigo-light);background:#6366f11f;border-color:#6366f166}.divider{align-items:center;gap:12px;margin:18px 0;display:flex}.divider:before,.divider:after{content:"";background:#6366f11a;flex:1;height:1px}.divider span{color:var(--text-muted);font-size:12px;font-weight:500}.connect-section{margin-bottom:8px}.connection-form{gap:8px;display:flex}.connection-input{border-radius:var(--radius-md);color:var(--text-primary);background:#6366f10a;border:2px solid #6366f124;outline:none;flex:1;padding:11px 16px;font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:14px;transition:all .2s}.connection-input:focus{background:#6366f114;border-color:#6366f173;box-shadow:0 0 0 3px #6366f114}.connection-input::placeholder{color:var(--text-muted);font-family:inherit}.connect-btn{background:var(--grad-btn);color:#fff;border-radius:var(--radius-md);cursor:pointer;white-space:nowrap;border:none;padding:11px 22px;font-size:14px;font-weight:700;transition:all .2s}.connect-btn:hover:not(:disabled){background:var(--grad-btn-hover);box-shadow:var(--shadow-glow-indigo);transform:translateY(-1px)}.connect-btn:disabled{opacity:.5;cursor:not-allowed}.connection-hint{color:var(--text-muted);margin:14px 0 0;font-size:12px;line-height:1.6}.connection-panel.connected{background:linear-gradient(135deg,#14b8a60f,#16143c73);border-color:#14b8a640;justify-content:space-between;align-items:center;display:flex}.connected-info{align-items:center;gap:12px;display:flex}.connected-icon{color:var(--aurora-teal-light);filter:drop-shadow(0 0 6px #14b8a680)}.connected-details{flex-direction:column;gap:2px;display:flex}.connected-label{color:var(--aurora-teal-light);font-size:12px;font-weight:600}.connected-id{color:var(--text-primary);font-family:SF Mono,Fira Code,Cascadia Code,monospace;font-size:14px;font-weight:700}.disconnect-btn{color:#fda4af;border-radius:var(--radius-md);cursor:pointer;background:#f43f5e1f;border:none;align-items:center;gap:6px;padding:9px 18px;font-size:13px;font-weight:600;transition:all .2s;display:flex}.disconnect-btn:hover{background:#f43f5e33}.connection-panel.connecting{justify-content:center;align-items:center;gap:12px;padding:18px 20px;display:flex}.connecting-animation{gap:5px;display:flex}.connecting-animation .dot{background:var(--nebula-indigo);border-radius:50%;width:7px;height:7px;animation:1.4s ease-in-out infinite both bounce;box-shadow:0 0 8px #6366f180}.connecting-animation .dot:first-child{animation-delay:-.32s}.connecting-animation .dot:nth-child(2){animation-delay:-.16s}.connecting-animation .dot:nth-child(3){animation-delay:0s}@keyframes bounce{0%,80%,to{transform:scale(0)}40%{transform:scale(1)}}.connecting-text{color:var(--text-secondary);font-size:14px;font-weight:500}.connection-panel.failed{border-color:#f43f5e33}.failed-info{color:#fda4af;align-items:center;gap:8px;margin-bottom:14px;font-size:14px;font-weight:600;display:flex}.fail-hint{color:var(--text-muted);margin:14px 0 0;font-size:12px;line-height:1.6}@media (width<=480px){.connection-panel{border-radius:var(--radius-md);margin:8px 10px;padding:12px}.dedicated-match-status{gap:3px;padding:10px 12px}.status-title-row,.invite-header,.invite-qr{flex-direction:column;align-items:stretch}.status-title-row{gap:6px}.status-title-row .connecting-animation{align-self:flex-start}.invite-card{gap:10px;padding:11px 12px}.role-chip{align-self:flex-start;font-size:11px}.invite-link-preview{font-size:11px}.invite-actions{flex-direction:column}.invite-qr img{width:112px;height:112px}.dedicated-match-status strong{font-size:12px}.dedicated-match-status span,.fail-hint,.connection-hint{font-size:11px;line-height:1.45}.manual-toggle{padding:7px 10px;font-size:11px}.connection-form,.id-display{flex-direction:column;align-items:stretch}.copy-btn,.connect-btn{justify-content:center}}.message-list{scroll-behavior:smooth;background:0 0;flex-direction:column;flex:1;gap:12px;padding:20px 16px 80px;display:flex;overflow-y:auto}.message-list::-webkit-scrollbar{width:4px}.message-list::-webkit-scrollbar-track{background:0 0}.message-list::-webkit-scrollbar-thumb{background:#6366f126;border-radius:10px}.empty-state{text-align:center;flex-direction:column;flex:1;justify-content:center;align-items:center;padding:40px 20px;display:flex}.empty-icon{color:#6366f140;opacity:.5;margin-bottom:20px;animation:.6s floatUp}.empty-title{color:var(--text-secondary);margin:0 0 10px;font-size:18px;font-weight:700}.empty-desc{color:var(--text-muted);margin:0;font-size:14px;line-height:1.8}.message-row{flex-direction:column;max-width:72%;animation:.3s floatUp;display:flex}.message-row.me{align-self:flex-end;align-items:flex-end}.message-row.peer{align-self:flex-start;align-items:flex-start}.message-row.system{align-self:center;max-width:85%}.message-bubble{word-break:break-word;border-radius:20px;padding:12px 18px;font-size:15px;line-height:1.7;position:relative}.message-bubble.me{background:var(--grad-btn);color:#fff;border-bottom-right-radius:6px;box-shadow:0 4px 16px #6366f133}.message-bubble.peer{color:var(--text-primary);-webkit-backdrop-filter:blur(8px);background:#ededff12;border:1px solid #6366f11f;border-bottom-left-radius:6px;box-shadow:0 4px 16px #0a041240}.message-bubble.topic{border:2px solid #6366f14d}.topic-tag{color:inherit;background:#ffffff40;border-radius:8px;align-items:center;gap:4px;margin-bottom:6px;padding:3px 10px;font-size:11px;display:inline-flex}.message-bubble.peer .topic-tag{color:var(--nebula-pink);background:#6366f126}.message-text{white-space:pre-wrap}.message-footer{justify-content:flex-end;align-items:center;gap:6px;margin-top:6px;display:flex}.message-bubble.peer .message-footer{justify-content:flex-start}.message-time{opacity:.7;font-size:11px}.message-bubble.me .message-time{color:#fff9}.message-bubble.peer .message-time{color:var(--text-secondary)}.message-status{align-items:center;font-size:11px;display:flex}.message-status svg{width:12px;height:12px}.message-status .spin{animation:1s linear infinite spin}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.message-actions{gap:4px;margin-top:6px;display:flex}.msg-action-btn{cursor:pointer;border:none;border-radius:10px;align-items:center;gap:4px;padding:5px 12px;font-size:12px;font-weight:600;transition:all .2s;display:flex}.msg-action-btn.retry{color:#fbbf24;background:#fbbf2426}.msg-action-btn.retry:hover{background:#fbbf2440}.msg-action-btn.delete{color:#fda4af;background:#f43f5e26}.msg-action-btn.delete:hover{background:#f43f5e40}.system-bubble{color:var(--text-secondary);white-space:pre-wrap;background:#14123ab3;border:1px solid #6366f126;border-radius:16px;align-items:center;gap:8px;padding:10px 18px;font-size:13px;line-height:1.6;display:flex}.system-bubble svg{color:#6366f166;flex-shrink:0}.message-bubble.media{max-width:300px;padding:0;overflow:hidden}.message-bubble.media .message-footer{padding:6px 14px}.media-blur{cursor:pointer;background:linear-gradient(135deg,#0d0d28cc,#14123a99);border-radius:16px 16px 0 0;justify-content:center;align-items:center;width:280px;height:200px;transition:all .3s;display:flex;position:relative}.media-blur:hover{background:linear-gradient(135deg,#14123ae6,#6366f11a)}.blur-overlay{color:#6366f180;flex-direction:column;align-items:center;gap:10px;font-size:14px;font-weight:500;display:flex}.media-info{color:var(--text-secondary);background:#0d0d28b3;border-radius:8px;align-items:center;gap:4px;padding:3px 10px;font-size:11px;display:flex;position:absolute;bottom:10px;right:10px}.media-revealed{cursor:pointer;position:relative}.media-revealed img{object-fit:contain;cursor:zoom-in;border-radius:16px 16px 0 0;width:auto;max-width:280px;height:auto;max-height:340px;display:block}.reveal-hint{color:#fff;opacity:0;background:#00000080;border-radius:8px;padding:4px 12px;font-size:11px;transition:opacity .2s;position:absolute;bottom:10px;right:10px}.media-revealed:hover .reveal-hint{opacity:1}.media-collapse-btn{color:#fff;cursor:pointer;opacity:0;background:#00000080;border:none;border-radius:8px;padding:4px 10px;font-size:11px;transition:opacity .2s;position:absolute;top:10px;right:10px}.media-revealed:hover .media-collapse-btn{opacity:1}.image-viewer{z-index:120;cursor:zoom-out;background:#07071af0;justify-content:center;align-items:center;padding:24px;display:flex;position:fixed;inset:0}.image-viewer img{object-fit:contain;cursor:default;border-radius:12px;max-width:min(96vw,1200px);max-height:92dvh;box-shadow:0 20px 60px #00000080}.image-viewer-close{top:calc(16px + env(safe-area-inset-top,0));right:calc(16px + env(safe-area-inset-right,0));color:#fff;cursor:pointer;background:#ffffff1f;border:none;border-radius:50%;width:40px;height:40px;font-size:28px;line-height:1;position:fixed}.media-video{max-width:280px}.video-player{border-radius:16px 16px 0 0;width:100%;max-height:300px;display:block}.media-video .media-info{color:var(--text-muted);background:0 0;padding:10px 14px;font-size:12px;position:static}@media (width<=480px){.message-row{max-width:85%}.message-list{gap:10px;padding:12px 10px}.media-blur,.media-revealed img{max-width:220px;max-height:260px}.media-blur{width:220px;height:160px}.media-video{max-width:220px}.media-collapse-btn,.media-revealed .reveal-hint{opacity:1}.image-viewer{padding:12px}.image-viewer img{border-radius:8px;max-width:96vw;max-height:88dvh}}.message-bubble.sticker-bubble{box-shadow:none;background:0 0;border:none;padding:6px}.message-bubble.sticker-bubble.me,.message-bubble.sticker-bubble.peer{background:0 0}.sticker-bubble-svg{width:80px;height:80px;display:block}.sticker-heartbeat{animation:1s ease-in-out infinite stickerHeartbeatBig}.sticker-catpaw{animation:1.5s ease-in-out infinite stickerCatPawBig}.sticker-kiss{animation:1.2s ease-in-out infinite stickerKissBig}.sticker-hug{animation:1.8s ease-in-out infinite stickerHugBig}.sticker-rose{animation:2s ease-in-out infinite stickerRoseBig}.sticker-cry{animation:1.6s ease-in-out infinite stickerCryBig}.sticker-angry{animation:.8s ease-in-out infinite stickerAngryBig}.sticker-sleep{animation:2.5s ease-in-out infinite stickerSleepBig}.sticker-sparkle{animation:1s ease-in-out infinite stickerSparkleBig}.sticker-rainbow{animation:1.5s ease-in-out infinite stickerRainbowBig}.sticker-butterfly{animation:2s ease-in-out infinite stickerButterflyBig}.sticker-star{animation:1.2s ease-in-out infinite stickerStarBig}@keyframes stickerHeartbeatBig{0%,to{transform:scale(1)}15%{transform:scale(1.25)}30%{transform:scale(1)}45%{transform:scale(1.18)}60%{transform:scale(1)}}@keyframes stickerCatPawBig{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-5px)scale(1.08)}}@keyframes stickerKissBig{0%,to{transform:scale(1)rotate(0)}25%{transform:scale(1.12)rotate(-4deg)}75%{transform:scale(1.08)rotate(4deg)}}@keyframes stickerHugBig{0%,to{transform:scale(1)}50%{transform:scale(1.1)}}@keyframes stickerRoseBig{0%,to{transform:rotate(0)}50%{transform:rotate(5deg)scale(1.08)}}@keyframes stickerCryBig{0%,to{opacity:1;transform:translateY(0)}50%{opacity:.8;transform:translateY(3px)}}@keyframes stickerAngryBig{0%,to{transform:translate(0)}25%{transform:translate(-3px)}75%{transform:translate(3px)}}@keyframes stickerSleepBig{0%,to{transform:scale(1)rotate(0)}50%{transform:scale(.95)rotate(2deg)}}@keyframes stickerSparkleBig{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.12)}}@keyframes stickerRainbowBig{0%,to{transform:translateY(0)}50%{transform:translateY(-4px)}}@keyframes stickerButterflyBig{0%,to{transform:rotate(0)scale(1)}25%{transform:rotate(-3deg)scale(1.05)}75%{transform:rotate(3deg)scale(1.05)}}@keyframes stickerStarBig{0%,to{opacity:1;transform:rotate(0)scale(1)}50%{opacity:.8;transform:rotate(15deg)scale(1.15)}}.sticker-fallback{justify-content:center;align-items:center;font-size:48px;display:flex}.message-footer-sticker{justify-content:center;margin-top:2px;display:flex}.message-footer-sticker .message-time{color:var(--text-muted);font-size:11px}.effect-overlay{pointer-events:none;z-index:30;position:absolute;inset:0;overflow:hidden}.effect-catpaw-container{animation:.6s cubic-bezier(.34,1.56,.64,1) forwards catPawEnter,1.2s ease-in-out .6s infinite catPawFloat,.4s ease-in 2.2s forwards catPawExit;position:absolute;bottom:10%;left:50%;transform:translate(-50%)}.effect-catpaw-big{width:120px;height:120px}@keyframes catPawEnter{0%{opacity:0;transform:translate(-50%)translateY(100px)scale(.3)}to{opacity:1;transform:translate(-50%)translateY(0)scale(1)}}@keyframes catPawFloat{0%,to{transform:translate(-50%)translateY(0)}50%{transform:translate(-50%)translateY(-15px)}}@keyframes catPawExit{to{opacity:0;transform:translate(-50%)translateY(100px)scale(.3)}}.effect-sparkles{position:absolute;inset:-20px}.sparkle{font-size:24px;animation:.8s ease-out forwards sparklePop;position:absolute}.sparkle.s1{animation-delay:.3s;top:0;left:20%}.sparkle.s2{animation-delay:.5s;top:-10px;right:10%}.sparkle.s3{animation-delay:.7s;bottom:10px;right:20%}@keyframes sparklePop{0%{opacity:1;transform:scale(0)}to{opacity:0;transform:scale(1.5)translateY(-20px)}}.effect-watergun-container{animation:.5s cubic-bezier(.34,1.56,.64,1) forwards waterGunEnter,.3s ease-in-out .5s 3 waterGunShake,.4s ease-in 2s forwards waterGunExit;position:absolute;bottom:20%;right:-10%}.effect-watergun-big{width:140px;height:80px}@keyframes waterGunEnter{0%{opacity:0;transform:translate(100px)rotate(-20deg)}to{opacity:1;transform:translate(0)rotate(-5deg)}}@keyframes waterGunShake{0%,to{transform:rotate(-5deg)}50%{transform:rotate(8deg)}}@keyframes waterGunExit{to{opacity:0;transform:translate(100px)rotate(-20deg)}}.water-drops{position:absolute;inset:0}.drop{opacity:0;font-size:20px;animation:1s ease-out forwards waterDrop;position:absolute}.drop.d1{animation-delay:.6s;top:0;left:30%}.drop.d2{animation-delay:.8s;top:-10px;left:50%}.drop.d3{animation-delay:1s;top:5px;left:40%}.drop.d4{animation-delay:1.2s;top:-5px;left:25%}@keyframes waterDrop{0%{opacity:1;transform:translate(0)scale(.5)}to{transform:translate(var(--dx,20px), var(--dy,-60px)) scale(1);opacity:0}}.effect-hearts-container{position:absolute;inset:0}.falling-heart{font-size:28px;animation:2s linear forwards heartFall;position:absolute;top:-40px}@keyframes heartFall{0%{opacity:1;transform:translateY(0)rotate(0)scale(.5)}50%{opacity:.8;transform:translateY(50vh)rotate(180deg)scale(1.2)}to{opacity:0;transform:translateY(100vh)rotate(360deg)scale(.8)}}.effect-rose-container{animation:.8s cubic-bezier(.34,1.56,.64,1) forwards roseBloom,1s .8s roseStay,.5s 1.8s forwards roseFade;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.effect-rose-big{width:100px;height:100px}@keyframes roseBloom{0%{opacity:0;transform:translate(-50%,-50%)scale(0)}to{opacity:1;transform:translate(-50%,-50%)scale(1)}}@keyframes roseStay{0%,to{transform:translate(-50%,-50%)scale(1)}}@keyframes roseFade{to{opacity:0;transform:translate(-50%,-50%)scale(1.3)}}.rose-petals{position:absolute;inset:-40px}.petal{opacity:0;font-size:18px;animation:1.5s ease-out forwards petalSpread;position:absolute;top:50%;left:50%}.petal.p0{animation-delay:.3s}.petal.p1{animation-delay:.4s}.petal.p2{animation-delay:.5s}.petal.p3{animation-delay:.6s}.petal.p4{animation-delay:.7s}.petal.p5{animation-delay:.4s}.petal.p6{animation-delay:.5s}.petal.p7{animation-delay:.6s}@keyframes petalSpread{0%{opacity:1;transform:translate(-50%,-50%)scale(0)}to{transform:translate(calc(-50% + var(--px,40px)), calc(-50% + var(--py,-40px))) scale(1.2);opacity:0}}.effect-kiss-container{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.flying-kiss{opacity:0;font-size:36px;animation:1.8s ease-out forwards kissFly;position:absolute}.flying-kiss.k0{animation-delay:0s}.flying-kiss.k1{animation-delay:.2s}.flying-kiss.k2{animation-delay:.4s}.flying-kiss.k3{animation-delay:.3s}.flying-kiss.k4{animation-delay:.5s}.flying-kiss.k5{animation-delay:.1s}@keyframes kissFly{0%{opacity:1;transform:translate(0)scale(.5)}50%{transform:translate(calc(var(--kx,30px) * 1), calc(var(--ky,-40px) * 1)) scale(1.3);opacity:.8}to{transform:translate(calc(var(--kx,50px) * 2), calc(var(--ky,-80px) * 2)) scale(1.5);opacity:0}}.kiss-sparkles{position:absolute;inset:-30px}.effect-hug-container{animation:.7s cubic-bezier(.34,1.56,.64,1) forwards hugEnter,.6s ease-in-out .7s 2 hugWiggle,.4s ease-in 2s forwards hugExit;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%)}.effect-bear-big{width:140px;height:140px}@keyframes hugEnter{0%{opacity:0;transform:translate(-50%,-50%)scale(.2)rotate(-20deg)}to{opacity:1;transform:translate(-50%,-50%)scale(1)rotate(0)}}@keyframes hugWiggle{0%,to{transform:translate(-50%,-50%)scale(1)rotate(0)}25%{transform:translate(-50%,-50%)scale(1.1)rotate(-5deg)}75%{transform:translate(-50%,-50%)scale(1.1)rotate(5deg)}}@keyframes hugExit{to{opacity:0;transform:translate(-50%,-50%)scale(.2)rotate(20deg)}}.hug-hearts{position:absolute;inset:-30px}.heart{opacity:0;font-size:22px;animation:1.5s ease-out forwards heartRise;position:absolute}.heart.h1{animation-delay:.8s;top:50%;left:-20px}.heart.h2{animation-delay:1s;top:30%;right:-15px}.heart.h3{animation-delay:1.2s;top:60%;right:-10px}@keyframes heartRise{0%{opacity:1;transform:translateY(0)scale(.5)}to{opacity:0;transform:translateY(-40px)scale(1.2)}}@media (width<=480px){.effect-catpaw-big{width:90px;height:90px}.effect-watergun-big{width:110px;height:60px}.effect-rose-big{width:70px;height:70px}.effect-bear-big{width:100px;height:100px}.sticker-bubble-svg{width:60px;height:60px}.flying-kiss{font-size:28px}.falling-heart{font-size:22px}}.typing-indicator{padding:4px 12px;display:flex}.typing-bubble{background:#6366f126;border-radius:12px 12px 12px 4px;align-items:center;gap:4px;padding:8px 14px;display:inline-flex}.typing-dot{background:var(--nebula-indigo);border-radius:50%;width:7px;height:7px;animation:1.4s ease-in-out infinite typingBounce}.typing-dot:nth-child(2){animation-delay:.2s}.typing-dot:nth-child(3){animation-delay:.4s}@keyframes typingBounce{0%,60%,to{opacity:.4;transform:translateY(0)}30%{opacity:1;transform:translateY(-6px)}}.scroll-to-bottom-btn{background:var(--grad-btn);color:#fff;cursor:pointer;z-index:10;border:none;border-radius:20px;align-self:center;align-items:center;gap:6px;padding:8px 16px;font-size:13px;font-weight:600;transition:transform .15s,box-shadow .15s;animation:.2s scrollBtnFadeIn;display:flex;position:sticky;bottom:12px;box-shadow:0 4px 16px #6366f14d}.scroll-to-bottom-btn:hover{transform:translateY(-2px);box-shadow:0 6px 20px #6366f166}.scroll-to-bottom-btn.icon-only{padding:8px 10px}@keyframes scrollBtnFadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.video-blur{cursor:pointer;background:linear-gradient(135deg,#0d0d28cc,#14123a99);flex-direction:column;justify-content:center;align-items:center;gap:8px;min-height:80px;padding:20px;display:flex}.video-blur .blur-overlay{flex-direction:column;gap:6px}.video-blur .media-info{margin-top:4px}.app[data-theme=light] .message-bubble.peer{background:#ffffffc7;border-color:#e11d4f1a;box-shadow:0 6px 18px #e11d4f14}.app[data-theme=light] .system-bubble{background:#ffffffb3;border-color:#e11d4f1a}.app[data-theme=light] .media-blur,.app[data-theme=light] .video-blur{background:linear-gradient(135deg,#fff7f8eb,#efe7ffb8)}.app[data-theme=light] .image-viewer{background:#181016e6}.toast-container{z-index:10000;pointer-events:none;flex-direction:column;gap:8px;max-width:90%;display:flex;position:fixed;top:60px;left:50%;transform:translate(-50%)}.toast{color:#fff;cursor:pointer;pointer-events:auto;-webkit-backdrop-filter:blur(10px);white-space:nowrap;text-overflow:ellipsis;border-radius:12px;align-items:center;gap:8px;padding:10px 18px;font-size:14px;font-weight:500;animation:.3s toastSlideIn;display:flex;overflow:hidden;box-shadow:0 4px 16px #00000026}@keyframes toastSlideIn{0%{opacity:0;transform:translateY(-20px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}.toast-info{background:#8b5cf6eb}.toast-success{background:#10b981eb}.toast-error{background:#f43f5eeb}.toast-warning{color:#3d1a3d;background:#fbbf24eb}.toast-icon{flex-shrink:0;font-size:16px}.toast-message{text-overflow:ellipsis;overflow:hidden}.composer{z-index:40;padding:10px 16px;padding-bottom:calc(10px + env(safe-area-inset-bottom,0px));-webkit-backdrop-filter:blur(40px);border-top:1px solid var(--glass-border);background:#211827e6;flex-shrink:0;align-items:flex-end;gap:8px;display:flex;position:sticky;bottom:0}.composer-left{flex-shrink:0;position:relative}.composer-btn{width:40px;height:40px;color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:14px;justify-content:center;align-items:center;transition:all .2s;display:flex}.composer-btn:hover:not(:disabled){color:var(--nebula-indigo);background:#6366f11a;transform:scale(1.05)}.composer-btn:disabled{opacity:.3;cursor:not-allowed}.attach-menu{background:var(--space-mid);z-index:50;border:1px solid #6366f11f;border-radius:18px;flex-direction:column;gap:2px;min-width:150px;margin-bottom:8px;padding:8px;animation:.2s floatUp;display:flex;position:absolute;bottom:100%;left:0;box-shadow:0 8px 32px #0006}.attach-menu button{color:var(--text-secondary);cursor:pointer;background:0 0;border:none;border-radius:12px;align-items:center;gap:10px;padding:12px 16px;font-size:14px;font-weight:500;transition:all .2s;display:flex}.attach-menu button:hover{color:var(--nebula-indigo);background:#6366f11a}.composer-center{flex:1;min-width:0}.composer-input{width:100%;color:var(--text-primary);resize:none;box-sizing:border-box;background:#6366f10d;border:2px solid #6366f11f;border-radius:22px;outline:none;max-height:120px;padding:11px 16px;font-family:inherit;font-size:15px;line-height:1.5;transition:all .25s}.composer-input:focus{background:#6366f114;border-color:#6366f166;box-shadow:0 0 0 4px #6366f10f}.composer-input::placeholder{color:var(--text-muted)}.composer-input:disabled{cursor:not-allowed;opacity:.5;background:#6366f108}.composer-right{flex-shrink:0;align-items:center;gap:2px;display:flex}.emoji-wrapper{position:relative}.emoji-trigger{color:#fbbf24b3}.emoji-trigger:hover:not(:disabled){color:#fbbf24;background:#fbbf241a}.emoji-panel{background:var(--space-mid);z-index:60;border:1px solid #6366f11f;border-radius:20px;flex-direction:column;width:340px;max-height:420px;margin-bottom:8px;animation:.25s cubic-bezier(.16,1,.3,1) floatUp;display:flex;position:absolute;bottom:100%;right:-80px;overflow:hidden;box-shadow:0 12px 40px #0006}.emoji-tabs{background:#0d0d2899;border-bottom:1px solid #6366f114;flex-shrink:0;gap:2px;padding:10px 12px;display:flex}.emoji-tab{color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:10px;flex:1;padding:8px 10px;font-size:12px;font-weight:600;transition:all .2s}.emoji-tab:hover{color:var(--nebula-indigo)}.emoji-tab.active{color:var(--nebula-indigo);background:#6366f11a;box-shadow:0 1px 4px #6366f114}.emoji-grid{grid-template-columns:repeat(9,1fr);gap:4px;max-height:320px;padding:12px;display:grid;overflow-y:auto}.emoji-item{cursor:pointer;width:36px;height:36px;color:inherit;background:0 0;border:none;border-radius:10px;justify-content:center;align-items:center;font-size:20px;transition:all .15s;display:flex}.emoji-item:hover{background:#6366f11a;transform:scale(1.2)}.sticker-panel,.effect-panel{max-height:340px;padding:12px;overflow-y:auto}.sticker-hint{color:var(--text-muted);text-align:center;margin:0 0 12px;font-size:12px;line-height:1.4}.sticker-grid{grid-template-columns:repeat(4,1fr);gap:10px;display:grid}.sticker-item{cursor:pointer;background:0 0;border:none;border-radius:12px;flex-direction:column;align-items:center;gap:6px;padding:8px 4px;transition:all .2s;display:flex}.sticker-item:hover{background:#6366f114;transform:scale(1.08)}.sticker-anim{background:linear-gradient(135deg,#6366f11a,#8b5cf614);border-radius:12px;justify-content:center;align-items:center;width:48px;height:48px;padding:6px;transition:all .3s;display:flex}.sticker-anim svg{width:100%;height:100%}.sticker-heartbeat svg{animation:1s ease-in-out infinite stickerHeartbeat}.sticker-catpaw svg{animation:1.5s ease-in-out infinite stickerCatPaw}.sticker-kiss svg{animation:1.2s ease-in-out infinite stickerKiss}.sticker-hug svg{animation:1.8s ease-in-out infinite stickerHug}.sticker-rose svg{animation:2s ease-in-out infinite stickerRose}.sticker-cry svg{animation:1.6s ease-in-out infinite stickerCry}.sticker-angry svg{animation:.8s ease-in-out infinite stickerAngry}.sticker-sleep svg{animation:2.5s ease-in-out infinite stickerSleep}.sticker-sparkle svg{animation:1s ease-in-out infinite stickerSparkle}.sticker-rainbow svg{animation:1.5s ease-in-out infinite stickerRainbow}.sticker-butterfly svg{animation:2s ease-in-out infinite stickerButterfly}.sticker-star svg{animation:1.2s ease-in-out infinite stickerStar}@keyframes stickerHeartbeat{0%,to{transform:scale(1)}15%{transform:scale(1.3)}30%{transform:scale(1)}45%{transform:scale(1.2)}60%{transform:scale(1)}}@keyframes stickerCatPaw{0%,to{transform:translateY(0)scale(1)}30%{transform:translateY(-4px)scale(1.1)}60%{transform:translateY(0)scale(1)}}@keyframes stickerKiss{0%,to{transform:scale(1)rotate(0)}25%{transform:scale(1.15)rotate(-5deg)}75%{transform:scale(1.1)rotate(5deg)}}@keyframes stickerHug{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}@keyframes stickerRose{0%,to{transform:rotate(0)}25%{transform:rotate(5deg)scale(1.1)}75%{transform:rotate(-5deg)scale(1.05)}}@keyframes stickerCry{0%,to{opacity:1;transform:translateY(0)}50%{opacity:.8;transform:translateY(2px)}}@keyframes stickerAngry{0%,to{transform:translate(0)}25%{transform:translate(-2px)}75%{transform:translate(2px)}}@keyframes stickerSleep{0%,to{transform:scale(1)rotate(0)}50%{transform:scale(.95)rotate(2deg)}}@keyframes stickerSparkle{0%,to{opacity:1;transform:scale(1)}50%{opacity:.6;transform:scale(1.15)}}@keyframes stickerRainbow{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}@keyframes stickerButterfly{0%,to{transform:rotate(0)scale(1)}25%{transform:rotate(-3deg)scale(1.05)}75%{transform:rotate(3deg)scale(1.05)}}@keyframes stickerStar{0%,to{opacity:1;transform:rotate(0)scale(1)}50%{opacity:.8;transform:rotate(15deg)scale(1.2)}}.sticker-label{color:var(--text-muted);text-align:center;white-space:nowrap;font-size:10px;font-weight:500}.effect-grid{grid-template-columns:repeat(3,1fr);gap:10px;display:grid}.effect-item{cursor:pointer;background:0 0;border:2px solid #6366f11a;border-radius:14px;flex-direction:column;align-items:center;gap:6px;padding:10px 6px;transition:all .2s;display:flex}.effect-item:hover{background:linear-gradient(135deg,#6366f114,#8b5cf60f);border-color:#6366f166;transform:scale(1.05);box-shadow:0 4px 12px #6366f11f}.effect-preview{background:linear-gradient(135deg,#6366f11a,#8b5cf614);border-radius:12px;justify-content:center;align-items:center;width:44px;height:44px;padding:5px;transition:all .3s;display:flex}.effect-preview svg{width:100%;height:100%}.effect-preview-catpaw svg{animation:.8s ease-in-out infinite effectCatPaw}.effect-preview-watergun svg{animation:.6s ease-in-out infinite effectWatergun}.effect-preview-heartrain svg{animation:1.5s ease-in-out infinite effectHeartrain}.effect-preview-roseboom svg{animation:1.2s ease-in-out infinite effectRoseboom}.effect-preview-kissfly svg{animation:.9s ease-in-out infinite effectKissfly}.effect-preview-hugbear svg{animation:1.6s ease-in-out infinite effectHugbear}@keyframes effectCatPaw{0%,to{transform:translateY(0)scale(1)}50%{transform:translateY(-6px)scale(1.15)}}@keyframes effectWatergun{0%,to{transform:translate(0)}30%{transform:translate(3px)scale(1.1)}60%{transform:translate(-2px)}}@keyframes effectHeartrain{0%,to{opacity:1;transform:translateY(0)}50%{opacity:.7;transform:translateY(-4px)}}@keyframes effectRoseboom{0%{opacity:.5;transform:scale(.8)}50%{opacity:1;transform:scale(1.2)}to{opacity:.8;transform:scale(1)}}@keyframes effectKissfly{0%,to{transform:translate(0)scale(1)}50%{transform:translate(4px)scale(1.1)rotate(-5deg)}}@keyframes effectHugbear{0%,to{transform:scale(1)}50%{transform:scale(1.1)rotate(3deg)}}.custom-emoji-panel{max-height:340px;padding:12px;overflow-y:auto}.custom-emoji-upload{color:#6366f199;cursor:pointer;background:#6366f10a;border:2px dashed #6366f12e;border-radius:14px;justify-content:center;align-items:center;gap:8px;width:100%;margin-bottom:14px;padding:14px;font-size:14px;font-weight:600;transition:all .2s;display:flex}.custom-emoji-upload:hover{background:#6366f114;border-color:#6366f180}.custom-empty-hint{text-align:center;color:var(--text-muted);padding:20px;font-size:13px}.custom-emoji-grid{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.custom-emoji-item{aspect-ratio:1;position:relative}.custom-emoji-btn{cursor:pointer;background:#6366f10f;border:none;border-radius:12px;width:100%;height:100%;padding:0;transition:all .2s;overflow:hidden}.custom-emoji-btn:hover{transform:scale(1.08);box-shadow:0 4px 12px #6366f126}.custom-emoji-btn img{object-fit:contain;width:100%;height:100%}.custom-emoji-delete{color:#fff;cursor:pointer;opacity:0;background:#f43f5e;border:none;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;transition:opacity .2s;display:flex;position:absolute;top:-4px;right:-4px}.custom-emoji-item:hover .custom-emoji-delete{opacity:1}.send-btn{color:#6366f159;cursor:pointer;background:#6366f11a;border:none;border-radius:14px;justify-content:center;align-items:center;width:40px;height:40px;transition:all .2s;display:flex}.send-btn.active{background:var(--grad-btn);color:#fff;box-shadow:0 4px 16px #6366f14d}.send-btn.active:hover{background:linear-gradient(135deg, var(--nebula-pink), var(--nebula-purple));transform:scale(1.08);box-shadow:0 6px 24px #6366f166}.send-btn:disabled{cursor:not-allowed}.preview-overlay{-webkit-backdrop-filter:blur(8px);z-index:100;background:#00000080;justify-content:center;align-items:center;padding:20px;display:flex;position:fixed;inset:0}.preview-dialog{background:var(--space-mid);border:1px solid #6366f11f;border-radius:24px;width:100%;max-width:480px;max-height:90vh;animation:.3s floatUp;overflow-y:auto;box-shadow:0 20px 60px #00000080}.preview-header{border-bottom:1px solid #6366f114;justify-content:space-between;align-items:center;padding:18px 24px;display:flex}.preview-header h3{color:var(--text-primary);margin:0;font-size:17px;font-weight:700}.preview-close{width:32px;height:32px;color:var(--text-muted);cursor:pointer;background:0 0;border:none;border-radius:10px;justify-content:center;align-items:center;transition:all .2s;display:flex}.preview-close:hover{color:var(--nebula-indigo);background:#6366f11a}.preview-content{background:#0d0d2866;justify-content:center;align-items:center;padding:16px;display:flex}.preview-image,.preview-video{border-radius:14px;max-width:100%;max-height:300px}.preview-info{color:var(--text-secondary);justify-content:space-between;align-items:center;padding:12px 24px;font-size:13px;display:flex}.preview-actions{border-top:1px solid #6366f114;gap:10px;padding:18px 24px;display:flex}.preview-btn{cursor:pointer;border:none;border-radius:14px;flex:1;padding:13px;font-size:14px;font-weight:700;transition:all .2s}.preview-btn.cancel{color:var(--text-secondary);background:#6366f114}.preview-btn.cancel:hover{background:#6366f126}.preview-btn.send{background:var(--grad-btn);color:#fff}.preview-btn.send:hover{background:var(--grad-btn-hover);box-shadow:0 4px 16px #6366f14d}.strategy-trigger{color:#fbbf2499;position:relative}.strategy-trigger:hover:not(:disabled){color:#fbbf24;background:#fbbf241a}.strategy-trigger:after{content:"表达建议";color:#fbbf2480;white-space:nowrap;opacity:0;font-size:10px;font-weight:500;transition:opacity .2s;position:absolute;bottom:-18px;left:50%;transform:translate(-50%)}.strategy-trigger:hover:after{opacity:1}.recent-stickers{border-bottom:1px solid #6366f114;align-items:center;gap:10px;padding:8px 12px;display:flex}.recent-label{color:var(--text-muted);flex-shrink:0;font-size:11px;font-weight:600}.recent-items{flex:1;gap:6px;display:flex;overflow-x:auto}.recent-items::-webkit-scrollbar{display:none}.recent-item{cursor:pointer;background:#6366f10f;border:none;border-radius:8px;flex-shrink:0;justify-content:center;align-items:center;width:32px;height:32px;padding:0;transition:all .15s;display:flex;overflow:hidden}.recent-item:hover{background:#6366f126;transform:scale(1.15)}.recent-emoji{font-size:18px;line-height:1}.recent-gif{object-fit:cover;border-radius:6px;width:100%;height:100%}.emoji-cat-panel{flex-direction:column;display:flex;overflow:hidden}.emoji-cat-tabs{background:0 0;border-bottom:1px solid #6366f114;flex-shrink:0;gap:2px;padding:8px 12px;display:flex;overflow-x:auto}.emoji-cat-tabs::-webkit-scrollbar{display:none}.emoji-cat-tab{color:var(--text-muted);cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:8px;flex-shrink:0;padding:6px 10px;font-size:12px;font-weight:600;transition:all .2s}.emoji-cat-tab:hover{color:var(--nebula-indigo);background:#6366f10f}.emoji-cat-tab.active{color:var(--nebula-indigo);background:#6366f11a;box-shadow:0 1px 3px #6366f11a}.preview-save-policy{background:#0d0d2866;border-top:1px solid #6366f114;align-items:center;gap:10px;padding:12px 24px;display:flex}.policy-label{color:var(--text-primary);flex-shrink:0;font-size:13px;font-weight:600}.policy-select{color:var(--text-primary);cursor:pointer;appearance:none;background:#6366f10d url("data:image/svg+xml,%3Csvg width='10' height='6' viewBox='0 0 10 6' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1L5 5L9 1' stroke='%23808080' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") right 10px center no-repeat;border:2px solid #6366f126;border-radius:10px;outline:none;flex:1;padding:8px 30px 8px 12px;font-family:inherit;font-size:13px;transition:border-color .2s}.policy-select:focus{border-color:#6366f166}.app[data-theme=light] .composer{background:#ffffffe0}.app[data-theme=light] .composer-input{background:#fff7f8cc;border-color:#e11d4f1f}.app[data-theme=light] .composer-input:focus{background:#fff;border-color:#f43f6857;box-shadow:0 0 0 4px #f43f6814}.app[data-theme=light] .emoji-panel,.app[data-theme=light] .attach-menu,.app[data-theme=light] .preview-dialog{background:#fffffff5;box-shadow:0 18px 44px #e11d4f24}.app[data-theme=light] .emoji-tabs,.app[data-theme=light] .preview-content,.app[data-theme=light] .preview-save-policy{background:#fff7f8b8}@media (width<=480px){.composer{gap:5px;padding:10px}.emoji-panel{width:300px;right:-50px}.emoji-grid{grid-template-columns:repeat(7,1fr)}.emoji-cat-tabs{gap:0;padding:6px 8px}.emoji-cat-tab{padding:5px 8px;font-size:11px}.recent-stickers{gap:8px;padding:6px 10px}.strategy-trigger:after{display:none}}.drawer-overlay{-webkit-backdrop-filter:blur(8px);z-index:200;background:#00000073;justify-content:flex-end;display:flex;position:fixed;inset:0}.drawer-panel{background:linear-gradient(#1e191c 0%,#1a1a1a 100%);border-left:1px solid #ec489914;flex-direction:column;width:440px;max-width:100%;height:100%;animation:.3s cubic-bezier(.16,1,.3,1) slideInRight;display:flex;box-shadow:-4px 0 40px #0006}@keyframes slideInRight{0%{transform:translate(100%)}to{transform:translate(0)}}.drawer-header{border-bottom:1px solid #ec489914;flex-shrink:0;justify-content:space-between;align-items:center;gap:8px;padding:12px 20px;display:flex}.drawer-tabs{background:#ec48990f;border-radius:14px;flex:1;gap:2px;padding:4px;display:flex;overflow-x:auto}.drawer-tab{cursor:pointer;background:0 0;border:none;border-radius:12px;flex-direction:column;flex-shrink:0;align-items:center;gap:2px;padding:7px 12px;transition:all .2s;display:flex}.drawer-tab.active{background:#261f24;box-shadow:0 2px 8px #0003}.drawer-tab:hover:not(.active){background:#ec48990f}.drawer-tab-icon{color:#f5f0e873;font-size:10px;font-weight:800;line-height:1}.drawer-tab.active .drawer-tab-icon{color:#ec4899}.drawer-tab-label{color:#f5f0e859;font-size:11px;font-weight:600}.drawer-tab.active .drawer-tab-label{color:#ec4899}.drawer-close{color:#f5f0e859;cursor:pointer;background:0 0;border:none;border-radius:12px;flex-shrink:0;justify-content:center;align-items:center;width:36px;height:36px;transition:all .2s;display:flex}.drawer-close:hover{color:#ec4899;background:#ec48991a}.drawer-content{flex:1;padding:20px;overflow-y:auto}.drawer-section-title{color:#f5f0e8;align-items:center;gap:8px;margin:0 0 20px;font-size:18px;font-weight:700;display:flex}.drawer-section-title svg{color:#ec4899}.drawer-section-desc{color:#f5f0e873;margin:-10px 0 20px;font-size:13px;line-height:1.7}.insight-private-tag{color:#ec4899;background:#ec48991a;border-radius:20px;margin-left:auto;padding:2px 10px;font-size:11px;font-weight:600}.setting-group{margin-bottom:28px}.setting-group.danger{background:linear-gradient(135deg,#f43f5e14,#f43f5e0a);border:1px solid #f43f5e26;border-radius:20px;padding:20px}.setting-label{color:#f5f0e8;margin-bottom:10px;font-size:13px;font-weight:700;display:block}.setting-desc{color:#f5f0e866;margin:10px 0 0;font-size:13px;line-height:1.6}.mode-toggle{gap:8px;display:flex}.mode-toggle-btn{color:#f5f0e859;cursor:pointer;background:#ec48990a;border:2px solid #ec48991a;border-radius:14px;flex:1;padding:10px 16px;font-size:13px;font-weight:600;transition:all .2s}.mode-toggle-btn.active{color:#ec4899;background:linear-gradient(135deg,#ec48991a,#a855f714);border-color:#ec4899}.mode-toggle-btn:hover:not(.active){color:#ec4899;border-color:#ec48994d}.setting-row{flex-direction:column;gap:10px;display:flex}.setting-item{color:#f5f0e8;align-items:center;gap:8px;font-size:13px;display:flex}.danger-btn{color:#fda4af;cursor:pointer;background:#ec48990a;border:1.5px solid #f43f5e26;border-radius:14px;align-items:center;gap:8px;padding:12px 18px;font-size:13px;font-weight:600;transition:all .2s;display:flex}.danger-btn:hover{background:#f43f5e14;border-color:#f43f5e4d}.clear-confirm{margin-top:14px}.clear-warning{color:#fda4af;align-items:flex-start;gap:8px;margin:0 0 14px;font-size:13px;line-height:1.6;display:flex}.clear-input{box-sizing:border-box;color:#f5f0e8;background:#ec48990a;border:2px solid #f43f5e33;border-radius:14px;outline:none;width:100%;margin-bottom:12px;padding:12px 16px;font-size:14px}.clear-input:focus{border-color:#f43f5e66}.clear-actions{gap:8px;display:flex}.clear-btn{cursor:pointer;border:none;border-radius:14px;flex:1;padding:11px;font-size:13px;font-weight:700}.clear-btn.cancel{color:#f5f0e899;background:#ec48990f;border:1.5px solid #ec48991a}.clear-btn.confirm{color:#fff;background:linear-gradient(135deg,#f43f5e,#e11d48)}.clear-btn.confirm:hover:not(:disabled){background:linear-gradient(135deg,#e11d48,#be123c)}.clear-btn.confirm:disabled{opacity:.5;cursor:not-allowed}.privacy-notice{background:#fbbf240f;border:1px solid #fbbf2426;border-radius:18px;padding:18px}.privacy-notice h4{color:#fbbf24cc;align-items:center;gap:6px;margin:0 0 12px;font-size:14px;font-weight:700;display:flex}.privacy-notice ul{margin:0;padding:0;list-style:none}.privacy-notice li{color:#fbbf24a6;margin-bottom:6px;padding-left:16px;font-size:12px;line-height:1.7;position:relative}.privacy-notice li:before{content:"•";color:#fbbf2480;position:absolute;left:4px}.insight-empty{text-align:center;flex-direction:column;align-items:center;padding:40px 20px;display:flex}.insight-empty-icon{color:#ec48994d;opacity:.6;margin-bottom:16px}.insight-empty-title{color:#f5f0e866;margin:0 0 10px;font-size:17px;font-weight:700}.insight-empty-desc{color:#f5f0e840;margin:0 0 24px;font-size:14px;line-height:1.8}.insight-score-card{background:linear-gradient(135deg,#ec489914,#a855f70f);border:1px solid #ec48991f;border-radius:20px;margin-bottom:20px;padding:20px}.score-header{justify-content:space-between;align-items:center;margin-bottom:12px;display:flex}.score-label{color:#f5f0e8;font-size:14px;font-weight:700}.score-level{color:#ec4899;background:#ec48991a;border-radius:20px;padding:3px 12px;font-size:13px;font-weight:600}.score-bar-container{background:#ec48991a;border-radius:10px;height:10px;margin-bottom:8px;overflow:hidden}.score-bar{background:linear-gradient(90deg,#ec4899,#a855f7);border-radius:10px;height:100%;transition:width .6s cubic-bezier(.16,1,.3,1)}.score-value{color:#ec4899;text-align:right;font-size:28px;font-weight:800}.score-value span{color:#f5f0e859;font-size:14px;font-weight:500}.insight-stats-grid{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:20px;display:grid}.insight-stat{text-align:center;background:#261f2480;border:1px solid #ec489914;border-radius:16px;padding:16px}.stat-value{color:#f5f0e8;margin-bottom:4px;font-size:22px;font-weight:800}.stat-label{color:#f5f0e84d;font-size:12px;font-weight:500}.insight-section{margin-bottom:20px}.insight-subtitle{color:#f5f0e8;align-items:center;gap:6px;margin:0 0 12px;font-size:14px;font-weight:700;display:flex}.emotion-bars{flex-direction:column;gap:8px;display:flex}.emotion-bar-item{align-items:center;gap:10px;display:flex}.emotion-bar-label{color:#f5f0e866;flex-shrink:0;width:70px;font-size:12px;font-weight:500}.emotion-bar-track{background:#ec489914;border-radius:8px;flex:1;height:8px;overflow:hidden}.emotion-bar-fill{background:linear-gradient(90deg,#ec4899,#a855f7);border-radius:8px;height:100%;transition:width .5s}.emotion-bar-count{color:#f5f0e84d;text-align:right;flex-shrink:0;width:24px;font-size:12px}.topic-chips{flex-wrap:wrap;gap:8px;display:flex}.topic-chip{color:#ec4899;background:linear-gradient(135deg,#ec489914,#a855f70f);border:1px solid #ec489926;border-radius:20px;padding:7px 14px;font-size:13px;font-weight:600}.insight-traits{flex-direction:column;gap:8px;display:flex}.insight-trait{color:#f5f0e873;background:#ec48990a;border-radius:12px;align-items:center;gap:8px;padding:10px 14px;font-size:13px;display:flex}.trait-icon{font-size:16px}.insight-trait strong{color:#f5f0e8;margin:0 2px}.insight-privacy-badge{color:#f5f0e84d;background:#ec48990a;border-radius:12px;justify-content:center;align-items:center;gap:6px;margin-top:20px;padding:10px;font-size:11px;font-weight:500;display:flex}.insight-privacy-badge svg{color:#ec4899}.strategy-disclaimer{color:#fbbf24b3;background:#fbbf240f;border:1px solid #fbbf2426;border-radius:14px;align-items:flex-start;gap:8px;margin-bottom:20px;padding:12px 16px;font-size:12px;line-height:1.6;display:flex}.strategy-disclaimer svg{color:#fbbf2480;flex-shrink:0;margin-top:1px}.strategy-step{margin-bottom:8px}.strategy-step-title{color:#f5f0e8;flex-wrap:wrap;align-items:center;gap:10px;margin:0 0 16px;font-size:15px;font-weight:700;display:flex}.tone-badge{color:#ec4899;background:#ec489914;border-radius:20px;padding:3px 10px;font-size:12px;font-weight:600}.strategy-breadcrumb{align-items:center;gap:8px;margin-bottom:16px;font-size:13px;display:flex}.breadcrumb-link{color:#ec4899;cursor:pointer;background:#ec48990f;border:none;border-radius:10px;align-items:center;gap:4px;padding:4px 10px;font-size:12px;font-weight:600;display:flex}.breadcrumb-link:hover{background:#ec48991f}.breadcrumb-current{color:#f5f0e859;font-weight:500}.goal-grid{grid-template-columns:1fr 1fr;gap:10px;margin-bottom:16px;display:grid}.goal-btn{cursor:pointer;text-align:center;background:#ec489908;border:2px solid #ec48991a;border-radius:18px;flex-direction:column;align-items:center;gap:8px;padding:18px 12px;transition:all .2s;display:flex}.goal-btn:hover{background:#ec489914;border-color:#ec48994d;transform:translateY(-2px);box-shadow:0 4px 12px #ec489914}.goal-icon{font-size:28px}.goal-label{color:#f5f0e8;font-size:13px;font-weight:600;line-height:1.4}.custom-goal{margin-bottom:16px}.custom-goal-hint{color:#f5f0e84d;margin:0 0 8px;font-size:13px}.custom-goal-row{gap:8px;display:flex}.custom-goal-input{color:#f5f0e8;background:#ec48990a;border:2px solid #ec48991f;border-radius:14px;outline:none;flex:1;padding:10px 14px;font-size:13px;transition:border-color .2s}.custom-goal-input:focus{border-color:#ec489966}.custom-goal-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#ec4899,#a855f7);border:none;border-radius:14px;padding:10px 18px;font-size:13px;font-weight:600;transition:all .2s}.custom-goal-btn:hover{background:linear-gradient(135deg,#db2777,#9333ea)}.tone-grid{grid-template-columns:1fr 1fr;gap:10px;display:grid}.tone-btn{cursor:pointer;background:#ec489908;border:2px solid #ec48991a;border-radius:18px;flex-direction:column;align-items:center;gap:6px;padding:16px 12px;transition:all .2s;display:flex}.tone-btn:hover{background:#ec489914;border-color:#ec48994d;transform:translateY(-1px)}.tone-emoji{font-size:28px}.tone-label{color:#f5f0e8;font-size:14px;font-weight:700}.draft-list{flex-direction:column;gap:12px;margin-bottom:16px;display:flex}.draft-card{background:#261f2480;border:1.5px solid #ec489914;border-radius:16px;padding:16px;transition:all .2s}.draft-card:hover{border-color:#ec489933;box-shadow:0 2px 12px #0003}.draft-text{color:#f5f0e8;background:#ec48990a;border-radius:12px;margin-bottom:12px;padding:12px 16px;font-size:15px;line-height:1.7}.draft-actions{gap:8px;display:flex}.draft-action-btn{cursor:pointer;border:none;border-radius:12px;align-items:center;gap:6px;padding:8px 14px;font-size:12px;font-weight:600;transition:all .2s;display:flex}.draft-action-btn.insert{color:#fff;background:linear-gradient(135deg,#ec4899,#a855f7)}.draft-action-btn.insert:hover{background:linear-gradient(135deg,#db2777,#9333ea)}.draft-action-btn.insert.copied{background:#10b981}.draft-warning{color:#f5f0e859;background:#ec48990a;border-radius:12px;align-items:flex-start;gap:6px;padding:10px 14px;font-size:11px;line-height:1.5;display:flex}.draft-warning svg{color:#ec4899;flex-shrink:0;margin-top:1px}.strategy-context{background:#ec48990a;border-radius:14px;margin-top:20px;padding:12px 16px}.context-row{justify-content:space-between;align-items:center;display:flex}.context-label{color:#f5f0e859;font-size:12px;font-weight:700}.context-value{color:#f5f0e8;font-size:12px}.topic-cards-section{background:linear-gradient(135deg,#fbbf240f 0%,#ec48990a 100%);border:1px solid #fbbf2426;border-radius:14px;margin-top:20px;padding:14px}.topic-cards-header{color:#fbbf24b3;align-items:center;gap:8px;margin-bottom:10px;font-size:13px;font-weight:700;display:flex}.topic-random-btn{color:#fbbf24b3;cursor:pointer;background:#fbbf240f;border:1px solid #fbbf2433;border-radius:8px;align-items:center;gap:4px;margin-left:auto;padding:4px 10px;font-size:11px;font-weight:600;transition:all .2s;display:flex}.topic-random-btn:hover:not(:disabled){background:#fbbf241f;border-color:#fbbf2466}.topic-random-btn:disabled{opacity:.4;cursor:not-allowed}.topic-cat-tabs{gap:2px;margin-bottom:10px;display:flex;overflow-x:auto}.topic-cat-tabs::-webkit-scrollbar{display:none}.topic-cat-tab{color:#fbbf2480;cursor:pointer;white-space:nowrap;background:0 0;border:none;border-radius:8px;padding:5px 10px;font-size:11px;font-weight:600;transition:all .2s}.topic-cat-tab:hover{background:#fbbf241a}.topic-cat-tab.active{color:#fff;background:#f59e0b}.topic-card-list{flex-direction:column;gap:6px;max-height:200px;display:flex;overflow-y:auto}.topic-card-item{cursor:pointer;text-align:left;color:#f5f0e8;background:#261f2466;border:1px solid #fbbf241f;border-radius:10px;align-items:center;gap:8px;padding:10px 12px;font-size:12px;line-height:1.5;transition:all .15s;display:flex}.topic-card-item:hover:not(:disabled){background:#fbbf240f;border-color:#fbbf2466;transform:translate(2px)}.topic-card-item:disabled{opacity:.5;cursor:not-allowed}.topic-sensitivity-dot{border-radius:50%;flex-shrink:0;width:8px;height:8px}.topic-card-prompt{flex:1;min-width:0}.topic-send-icon{color:#f5f0e840;flex-shrink:0;transition:color .2s}.topic-card-item:hover .topic-send-icon{color:#f59e0b}.blocked-state{text-align:center;background:linear-gradient(135deg,#f43f5e14,#f43f5e0a);border:1px solid #f43f5e26;border-radius:20px;margin-bottom:16px;padding:24px 16px}.blocked-icon{margin-bottom:14px}.blocked-title{color:#fda4af;margin:0 0 10px;font-size:16px;font-weight:700}.blocked-text{color:#fda4afb3;margin:0 0 20px;font-size:13px;line-height:1.7}.blocked-actions{flex-wrap:wrap;justify-content:center;gap:8px;display:flex}.blocked-btn{cursor:pointer;border:none;border-radius:14px;padding:10px 20px;font-size:13px;font-weight:600;transition:all .2s}.blocked-btn.primary{color:#fff;background:linear-gradient(135deg,#ec4899,#a855f7)}.blocked-btn.primary:hover{background:linear-gradient(135deg,#db2777,#9333ea)}.blocked-btn.secondary{color:#f5f0e8;background:#ec48990f;border:1.5px solid #ec48991a}.blocked-btn.secondary:hover{background:#ec48991f}.progress-save-area{margin-bottom:20px}.progress-save-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#ec4899,#a855f7);border:none;border-radius:16px;justify-content:center;align-items:center;gap:8px;width:100%;padding:14px;font-size:15px;font-weight:700;transition:all .2s;display:flex}.progress-save-btn:hover{background:linear-gradient(135deg,#db2777,#9333ea);transform:translateY(-1px);box-shadow:0 4px 16px #ec489933}.progress-save-hint{color:#f5f0e840;text-align:center;margin:8px 0 0;font-size:11px;line-height:1.5}.progress-empty{text-align:center;color:#f5f0e84d;padding:40px 20px}.progress-empty-icon{color:#ec48994d;opacity:.6;margin-bottom:14px}.progress-empty p{margin:0 0 6px;font-size:14px}.progress-empty-desc{font-size:12px}.timeline{flex-direction:column;gap:0;padding-left:20px;display:flex;position:relative}.timeline:before{content:"";background:#ec48991f;border-radius:1px;width:2px;position:absolute;top:8px;bottom:8px;left:7px}.timeline-item{padding-bottom:20px;position:relative}.timeline-dot{background:#ec4899;border:2px solid #1a1a1a;border-radius:50%;width:12px;height:12px;position:absolute;top:6px;left:-16px;box-shadow:0 0 0 3px #ec489926}.timeline-card{background:#261f2499;border:1px solid #ec489914;border-radius:16px;padding:16px;position:relative}.timeline-header{justify-content:space-between;align-items:center;margin-bottom:10px;display:flex}.timeline-stage{color:#ec4899;font-size:14px;font-weight:700}.timeline-date{color:#f5f0e840;font-size:11px}.timeline-bullets p{color:#f5f0e8;margin:0 0 4px;font-size:13px;line-height:1.6}.timeline-risks{margin-top:8px}.risk-tag{color:#fda4af;font-size:11px;font-weight:600}.timeline-scores{flex-direction:column;gap:6px;margin-top:10px;display:flex}.mini-score{align-items:center;gap:8px;display:flex}.mini-score-label{color:#f5f0e84d;flex-shrink:0;width:32px;font-size:11px}.mini-score-bar{background:#ec489914;border-radius:6px;flex:1;height:6px;overflow:hidden}.mini-score-fill{background:linear-gradient(90deg,#ec4899,#a855f7);border-radius:6px;height:100%}.timeline-delete{color:#f5f0e833;cursor:pointer;opacity:0;background:0 0;border:none;border-radius:8px;justify-content:center;align-items:center;width:24px;height:24px;transition:all .2s;display:flex;position:absolute;top:12px;right:12px}.timeline-card:hover .timeline-delete{opacity:1}.timeline-delete:hover{color:#fda4af;background:#f43f5e1a}.progress-clear-all{color:#fda4af;cursor:pointer;background:#f43f5e0a;border:1.5px solid #f43f5e26;border-radius:14px;margin:20px auto 0;padding:10px 20px;font-size:13px;font-weight:600;display:block}.progress-clear-all:hover{background:#f43f5e14}.progress-preview-overlay{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:300;background:#0f0a1499;justify-content:center;align-items:center;display:flex;position:fixed;inset:0}.progress-preview-dialog{background:#261f24;border:1px solid #ec489914;border-radius:24px;width:90%;max-width:360px;padding:28px;box-shadow:0 20px 60px #0006}.progress-preview-dialog h4{color:#f5f0e8;margin:0 0 8px;font-size:17px;font-weight:700}.preview-note{color:#f5f0e859;margin:0 0 16px;font-size:12px}.preview-stage{color:#ec4899;background:#ec489914;border-radius:20px;margin-bottom:12px;padding:6px 16px;font-size:14px;font-weight:700;display:inline-block}.preview-bullet{color:#f5f0e8;margin:0 0 6px;font-size:13px}.preview-actions{gap:10px;margin-top:20px;display:flex}.preview-cancel-btn{color:#f5f0e8;cursor:pointer;background:#ec48990a;border:1.5px solid #ec48991a;border-radius:14px;flex:1;padding:12px;font-weight:600}.preview-save-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#ec4899,#a855f7);border:none;border-radius:14px;flex:1;padding:12px;font-weight:600}.sticker-preview-grid{grid-template-columns:repeat(6,1fr);gap:8px;display:grid}.sticker-preview-item{aspect-ratio:1;background:#ec48990f;border-radius:12px;justify-content:center;align-items:center;display:flex;overflow:hidden}.sticker-preview-emoji{font-size:28px}.sticker-preview-img{object-fit:contain;width:100%;height:100%}.sticker-manage-grid{grid-template-columns:repeat(4,1fr);gap:8px;display:grid}.sticker-manage-item{aspect-ratio:1;position:relative}.sticker-manage-img{object-fit:contain;background:#ec48990f;border-radius:12px;width:100%;height:100%}.sticker-manage-delete{color:#fff;cursor:pointer;opacity:0;background:#f43f5e;border:none;border-radius:50%;justify-content:center;align-items:center;width:20px;height:20px;font-size:12px;line-height:1;transition:opacity .2s;display:flex;position:absolute;top:-4px;right:-4px}.sticker-manage-item:hover .sticker-manage-delete{opacity:1}.memory-auth{text-align:center;padding:20px 10px}.memory-auth-icon{color:#ec4899;margin-bottom:14px}.memory-auth h4{color:#f5f0e8;margin:0 0 10px;font-size:16px;font-weight:700}.memory-auth-desc{color:#f5f0e859;margin:0 0 16px;font-size:13px;line-height:1.7}.memory-auth-list{text-align:left;margin:0 0 20px;padding:0;list-style:none}.memory-auth-list li{color:#f5f0e84d;font-size:12px;line-height:1.8}.memory-auth-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#ec4899,#a855f7);border:none;border-radius:16px;padding:12px 28px;font-size:14px;font-weight:700;transition:all .2s}.memory-auth-btn:hover{background:linear-gradient(135deg,#db2777,#9333ea)}.memory-import-area{margin-bottom:16px}.memory-import-btn{color:#ec4899;cursor:pointer;background:#ec48990a;border:2px dashed #ec489926;border-radius:16px;justify-content:center;align-items:center;gap:8px;width:100%;padding:14px;font-size:14px;font-weight:600;display:flex}.memory-import-btn:hover{background:#ec489914;border-color:#ec4899}.memory-list{flex-direction:column;gap:8px;display:flex}.memory-item{background:#ec48990a;border-radius:14px;align-items:center;gap:12px;padding:12px;display:flex}.memory-item-icon{color:#ec4899}.memory-item-info{flex-direction:column;gap:2px;display:flex}.memory-item-name{color:#f5f0e8;font-size:13px;font-weight:600}.memory-item-date{color:#f5f0e840;font-size:11px}.file-input-hidden{display:none}.dhdna-intro{margin-bottom:16px}.dhdna-intro p{color:#f5f0e859;margin:0 0 8px;font-size:13px}.dhdna-intro ul{margin:0;padding:0;list-style:none}.dhdna-intro li{color:#f5f0e840;font-size:12px;line-height:1.8}.dhdna-input-area{margin-bottom:16px}.dhdna-textarea{color:#f5f0e8;resize:vertical;box-sizing:border-box;background:#ec48990a;border:2px solid #ec48991f;border-radius:16px;outline:none;width:100%;margin-bottom:10px;padding:12px 16px;font-family:inherit;font-size:13px;line-height:1.6}.dhdna-textarea:focus{border-color:#ec489966}.dhdna-analyze-btn{color:#fff;cursor:pointer;background:linear-gradient(135deg,#a855f7,#8b5cf6);border:none;border-radius:14px;width:100%;padding:12px;font-size:14px;font-weight:700;transition:all .2s}.dhdna-analyze-btn:hover:not(:disabled){background:linear-gradient(135deg,#9333ea,#7c3aed)}.dhdna-analyze-btn:disabled{opacity:.5;cursor:not-allowed}.dhdna-result{margin-top:16px}.dhdna-result-header{margin-bottom:12px}.dhdna-confidence{color:#ec4899;background:#ec489914;border-radius:20px;padding:3px 10px;font-size:12px;font-weight:600}.dhdna-confidence[data-level=low]{color:#f59e0b;background:#fbbf2414}.dhdna-dimensions{flex-direction:column;gap:6px;margin-bottom:14px;display:flex}.dhdna-dim-row{align-items:center;gap:8px;display:flex}.dhdna-dim-name{color:#f5f0e84d;flex-shrink:0;width:70px;font-size:11px}.dhdna-dim-bar-track{background:#ec489914;border-radius:6px;flex:1;height:6px;overflow:hidden}.dhdna-dim-bar-fill{background:linear-gradient(90deg,#a855f7,#8b5cf6);border-radius:6px;height:100%}.dhdna-dim-score{color:#a855f7;text-align:right;flex-shrink:0;width:32px;font-size:11px;font-weight:700}.dhdna-summary{background:#ec48990a;border-radius:14px;padding:14px}.dhdna-summary p{color:#f5f0e8;margin:0 0 6px;font-size:13px;line-height:1.6}.dhdna-summary strong{color:#ec4899}.dhdna-risk{color:#fda4af;font-size:12px}@media (width<=480px){.drawer-panel{width:100%}.drawer-content{padding:14px}.drawer-tabs{gap:0;padding:3px}.drawer-tab{padding:6px 8px}.drawer-tab-label{font-size:10px}.goal-grid{grid-template-columns:1fr 1fr;gap:8px}.insight-stats-grid{gap:8px}.insight-stat{padding:12px}}.app[data-theme=light] .drawer-overlay{background:#3a1c2a2e}.app[data-theme=light] .drawer-panel{border-left-color:var(--glass-border);background:linear-gradient(#fffafcfa,#fff6faf5);box-shadow:-12px 0 36px #e11d4f1f}.app[data-theme=light] .drawer-header{border-bottom-color:var(--glass-border)}.app[data-theme=light] .drawer-tabs,.app[data-theme=light] .clear-btn.cancel,.app[data-theme=light] .sticker-preview-item,.app[data-theme=light] .sticker-manage-img,.app[data-theme=light] .memory-item,.app[data-theme=light] .dhdna-summary{background:#e11d4f0f}.app[data-theme=light] .drawer-tab.active{background:#ffffffe6;box-shadow:0 8px 22px #e11d4f1f}.app[data-theme=light] .drawer-tab-label,.app[data-theme=light] .drawer-tab-icon,.app[data-theme=light] .drawer-close,.app[data-theme=light] .setting-desc,.app[data-theme=light] .drawer-section-desc,.app[data-theme=light] .progress-save-hint,.app[data-theme=light] .preview-note,.app[data-theme=light] .memory-auth-desc,.app[data-theme=light] .dhdna-intro p,.app[data-theme=light] .dhdna-intro li{color:var(--text-muted)}.app[data-theme=light] .drawer-section-title,.app[data-theme=light] .setting-label,.app[data-theme=light] .setting-item,.app[data-theme=light] .insight-subtitle,.app[data-theme=light] .score-label,.app[data-theme=light] .stat-value,.app[data-theme=light] .timeline-bullets p,.app[data-theme=light] .preview-dialog h4,.app[data-theme=light] .preview-bullet,.app[data-theme=light] .memory-auth h4,.app[data-theme=light] .memory-item-name,.app[data-theme=light] .dhdna-summary p{color:var(--text-primary)}.app[data-theme=light] .drawer-tab.active .drawer-tab-label,.app[data-theme=light] .drawer-tab.active .drawer-tab-icon,.app[data-theme=light] .drawer-close:hover,.app[data-theme=light] .drawer-section-title svg,.app[data-theme=light] .insight-subtitle,.app[data-theme=light] .topic-chip,.app[data-theme=light] .preview-stage{color:var(--nebula-pink)}.app[data-theme=light] .mode-toggle-btn,.app[data-theme=light] .clear-input,.app[data-theme=light] .dhdna-textarea,.app[data-theme=light] .insight-stat,.app[data-theme=light] .timeline-card,.app[data-theme=light] .progress-preview-dialog{border-color:var(--glass-border);color:var(--text-primary);background:#ffffffb8}.app[data-theme=light] .privacy-notice{background:#f59e0b14}.app[data-theme=light] .mode-toggle-btn.active{color:var(--nebula-pink);background:linear-gradient(135deg,#e11d4f1f,#7c3aed14);border-color:#e11d4f73}.admin-shell{color:#1f2937;background:#f7f8fb;min-height:100vh}.admin-shell.login{place-items:center;padding:24px;display:grid}.admin-login-card,.admin-panel,.admin-empty-card,.admin-metric-card{background:#fff;border:1px solid #e5e7eb;border-radius:8px;box-shadow:0 18px 45px #0f172a14}.admin-login-card{width:min(460px,100%);padding:32px}.admin-eyebrow{color:#0f766e;letter-spacing:.08em;text-transform:uppercase;margin-bottom:8px;font-size:12px;font-weight:800}.admin-login-card h1,.admin-header h1{color:#111827;letter-spacing:0;margin:0 0 10px;font-size:28px}.admin-login-card p,.admin-header p,.admin-empty-card p{color:#6b7280;margin:0;line-height:1.7}.admin-input-row{grid-template-columns:1fr auto;gap:8px;margin-top:24px;display:grid}.admin-input-row input{border:1px solid #d1d5db;border-radius:8px;min-width:0;padding:12px 14px;font-size:14px}.admin-input-row button,.admin-primary-btn,.admin-secondary-btn{cursor:pointer;border:0;border-radius:8px;font-weight:700}.admin-input-row button{color:#3730a3;background:#eef2ff;padding:0 14px}.admin-primary-btn{color:#fff;background:#0f766e;width:100%;margin-top:14px;padding:13px 16px}.admin-primary-btn:disabled{opacity:.55;cursor:not-allowed}.admin-back-link{color:#4b5563;margin-top:16px;text-decoration:none;display:inline-block}.admin-error{color:#b91c1c;background:#fef2f2;border:1px solid #fecaca;border-radius:8px;margin-top:12px;padding:10px 12px;font-size:14px}.admin-shell.dashboard{padding:28px}.admin-header{justify-content:space-between;align-items:flex-start;gap:20px;margin-bottom:22px;display:flex}.admin-header-actions{flex-wrap:wrap;justify-content:flex-end;gap:10px;display:flex}.admin-secondary-btn{color:#374151;background:#e5e7eb;justify-content:center;align-items:center;min-height:38px;padding:0 14px;text-decoration:none;display:inline-flex}.admin-secondary-btn.danger{color:#991b1b;background:#fee2e2}.admin-primary-inline{color:#fff;cursor:pointer;background:#0f766e;border:0;border-radius:8px;min-height:40px;padding:0 16px;font-weight:800}.admin-primary-inline:disabled{cursor:not-allowed;opacity:.55}.admin-section-head{justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:16px;display:flex}.admin-section-head h2,.admin-section-head p{margin:0}.admin-section-head p{color:#6b7280;margin-top:6px;line-height:1.6}.admin-metric-grid,.admin-panel-grid{grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;margin-bottom:14px;display:grid}.admin-panel-grid{grid-template-columns:1.1fr .9fr}.admin-metric-card,.admin-panel,.admin-empty-card{padding:20px}.admin-metric-card span,.admin-metric-card em{color:#6b7280;font-size:13px;font-style:normal;display:block}.admin-metric-card strong{color:#111827;margin:8px 0 2px;font-size:32px;display:block}.admin-metric-card.primary{border-color:#99f6e4}.admin-progress-track{background:#e5e7eb;border-radius:999px;height:8px;margin-top:14px;overflow:hidden}.admin-progress-track div{border-radius:inherit;background:#0f766e;height:100%}.admin-panel{margin-bottom:14px}.admin-panel h2,.admin-empty-card h2{color:#111827;margin:0 0 14px;font-size:18px}.admin-bars{gap:12px;display:grid}.admin-bar-row{color:#4b5563;grid-template-columns:90px 1fr 28px;align-items:center;gap:10px;font-size:13px;display:grid}.admin-bar-row div{background:#e5e7eb;border-radius:999px;height:8px;overflow:hidden}.admin-bar-row i{border-radius:inherit;background:#14b8a6;height:100%;display:block}.admin-tags{flex-wrap:wrap;gap:8px;margin-bottom:16px;display:flex}.admin-tags span{color:#0f766e;background:#f0fdfa;border:1px solid #ccfbf1;border-radius:999px;padding:7px 10px;font-size:13px;font-weight:700}.admin-facts{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;display:grid}.admin-facts p{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;margin:0;padding:12px}.admin-facts strong,.admin-facts span{display:block}.admin-facts strong{color:#111827;font-size:20px}.admin-facts span{color:#6b7280;margin-top:2px;font-size:12px}.admin-summary-list{gap:10px;display:grid}.admin-summary-list article,.admin-message-samples p{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:12px}.admin-summary-list strong{color:#111827;margin-bottom:6px;display:block}.admin-summary-list p,.admin-message-samples p{color:#4b5563;margin:0;line-height:1.7}.admin-message-samples{gap:8px;display:grid}.dhdna-panel{margin-top:14px}.dhdna-layout{grid-template-columns:minmax(280px,.9fr) minmax(320px,1.3fr);gap:16px;display:grid}.dhdna-source-box,.dhdna-result-box{background:#f9fafb;border:1px solid #e5e7eb;border-radius:8px;padding:14px}.dhdna-source-box h3,.dhdna-result-box h3,.dhdna-columns h4{color:#111827;margin:0 0 12px}.dhdna-input,.dhdna-textarea{box-sizing:border-box;color:#111827;font:inherit;border:1px solid #d1d5db;border-radius:8px;width:100%;margin-bottom:10px;padding:11px 12px}.dhdna-textarea{resize:vertical;line-height:1.6}.dhdna-source-actions{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.dhdna-source-list{gap:8px;display:grid}.dhdna-source-list article{background:#fff;border:1px solid #e5e7eb;border-radius:8px;justify-content:space-between;align-items:flex-start;gap:10px;padding:10px;display:flex}.dhdna-source-list strong,.dhdna-source-list span{display:block}.dhdna-source-list span{color:#6b7280;margin-top:4px;font-size:12px}.dhdna-source-list button,.dhdna-strategy button{color:#374151;cursor:pointer;background:#fff;border:1px solid #d1d5db;border-radius:8px;padding:7px 9px;font-weight:700}.dhdna-muted,.dhdna-warning{color:#6b7280;margin:0;line-height:1.7}.dhdna-warning{color:#92400e;background:#fffbeb;border:1px solid #fde68a;border-radius:8px;margin:12px 0;padding:10px}.dhdna-profile-meta{flex-wrap:wrap;gap:8px;margin-bottom:12px;display:flex}.dhdna-profile-meta span{color:#3730a3;background:#eef2ff;border:1px solid #c7d2fe;border-radius:999px;padding:6px 9px;font-size:12px;font-weight:800}.dhdna-dimensions-grid{gap:8px;margin-bottom:16px;display:grid}.dhdna-dimension-row{grid-template-columns:96px 1fr 44px;align-items:center;gap:8px;font-size:13px;display:grid}.dhdna-dimension-row div{background:#e5e7eb;border-radius:999px;height:8px;overflow:hidden}.dhdna-dimension-row i{border-radius:inherit;background:#0f766e;height:100%;display:block}.dhdna-columns{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:12px;display:grid}.dhdna-columns>div{background:#fff;border:1px solid #e5e7eb;border-radius:8px;padding:12px}.dhdna-columns p,.dhdna-strategy p{color:#4b5563;margin:0 0 8px;line-height:1.7}.dhdna-strategy{border-top:1px solid #e5e7eb;padding-top:10px}.dhdna-strategy:first-of-type{border-top:0;padding-top:0}.dhdna-strategy div{gap:8px;display:flex}.dhdna-feedback-count{color:#6b7280;margin-top:12px;font-size:13px}@media (width<=900px){.admin-shell.dashboard{padding:18px}.admin-header{flex-direction:column}.admin-header-actions{justify-content:flex-start}.admin-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.admin-panel-grid{grid-template-columns:1fr}.admin-section-head{flex-direction:column}.dhdna-layout,.dhdna-columns{grid-template-columns:1fr}}@media (width<=560px){.admin-login-card{padding:24px}.admin-input-row{grid-template-columns:1fr}.admin-input-row button{min-height:40px}.admin-metric-grid,.admin-facts{grid-template-columns:1fr}.admin-bar-row{grid-template-columns:76px 1fr 24px}}.error-boundary{background:linear-gradient(135deg,#fce4ec 0%,#fce7f3 50%,#f3e8ff 100%);justify-content:center;align-items:center;height:100dvh;padding:20px;display:flex}.error-card{text-align:center;-webkit-backdrop-filter:blur(20px);background:#fffffff2;border-radius:24px;width:100%;max-width:400px;padding:40px 32px;box-shadow:0 8px 32px #db27771f}.error-icon{color:var(--pink-400,#f472b6);justify-content:center;margin-bottom:16px;display:flex}.error-title{color:#3d1a3d;margin-bottom:8px;font-size:20px;font-weight:700}.error-desc{color:#8b6b8b;margin-bottom:24px;font-size:14px;line-height:1.6}.error-details{text-align:left;color:#b8a0b8;margin-bottom:20px;font-size:12px}.error-details summary{cursor:pointer;color:#8b6b8b;margin-bottom:8px}.error-details pre{background:#fdf2f8;border-radius:8px;max-height:120px;padding:8px 12px;font-size:11px;line-height:1.4;overflow:auto}.error-actions{justify-content:center;gap:12px;display:flex}.error-btn{cursor:pointer;border:none;border-radius:12px;padding:10px 24px;font-size:14px;font-weight:600;transition:all .2s}.error-btn.primary{color:#fff;background:#ec4899}.error-btn.primary:hover{background:#db2777}.error-btn.secondary{color:#db2777;background:#fce7f3}.error-btn.secondary:hover{background:#fbcfe8}:root{--rose-50:#fff7f8;--rose-100:#ffe8ee;--rose-200:#ffcbd8;--rose-300:#fda4ba;--rose-400:#fb718e;--rose-500:#f43f68;--rose-600:#e11d4f;--lavender-100:#efe7ff;--lavender-300:#c7b2ff;--lavender-500:#8b5cf6;--lavender-600:#7c3aed;--mint-400:#2dd4bf;--amber-400:#fbbf24;--space-deep:#111118;--space-dark:#17131d;--space-mid:#211827;--space-slate:#2a2031;--nebula-indigo:var(--rose-500);--nebula-indigo-light:var(--rose-300);--nebula-purple:var(--lavender-500);--nebula-purple-light:var(--lavender-300);--nebula-pink:var(--rose-500);--nebula-pink-light:var(--rose-300);--nebula-rose:var(--rose-400);--aurora-teal:#14b8a6;--aurora-teal-light:var(--mint-400);--aurora-cyan:#38bdf8;--surface:#271d2f94;--surface-2:#31253abd;--surface-hover:#402e48d6;--glass-border:#fb718e29;--glass-border-strong:#fb718e47;--text-primary:#fff7fb;--text-secondary:#fff7fbad;--text-muted:#fff7fb6b;--text-inverse:#23131b;--shadow-card:0 12px 44px #110a1685;--shadow-glow-indigo:0 0 26px #f43f6842;--shadow-glow-purple:0 0 26px #8b5cf638;--shadow-glow-pink:0 0 24px #fb718e42;--grad-cosmic:linear-gradient(135deg, #f43f68, #c084fc, #8b5cf6);--grad-nebula:linear-gradient(135deg, #f43f6833, #c084fc29, #fbbf2414);--grad-surface:linear-gradient(180deg, #31253ab3, #1a131fc7);--grad-aurora:linear-gradient(135deg, #f43f6829, #8b5cf624, #2dd4bf14);--grad-btn:linear-gradient(135deg, #f43f68, #c084fc, #8b5cf6);--grad-btn-hover:linear-gradient(135deg, #e11d4f, #a855f7, #7c3aed);--radius-sm:10px;--radius-md:16px;--radius-lg:22px;--radius-xl:28px;--radius-full:999px}*{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;height:100%;overflow:hidden}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;color:var(--text-primary);background-color:#111118;background-image:radial-gradient(80% 58% at 50% 6%,#f43f682e 0%,#0000 58%),radial-gradient(58% 46% at 14% 72%,#8b5cf629 0%,#0000 56%),radial-gradient(48% 42% at 88% 40%,#fbbf2417 0%,#0000 54%),linear-gradient(165deg,#111118 0%,#17131d 48%,#241a2b 100%);background-position:0 0;background-repeat:repeat;background-size:auto;background-attachment:fixed;background-origin:padding-box;background-clip:border-box;font-family:Inter,-apple-system,BlinkMacSystemFont,PingFang SC,Hiragino Sans GB,Noto Sans SC,Microsoft YaHei,sans-serif;position:relative}body:before{content:"";pointer-events:none;z-index:0;opacity:.58;background-image:radial-gradient(1px 1px at 12% 18%,#ffffff73,#0000),radial-gradient(1px 1px at 28% 10%,#ffe8ee59,#0000),radial-gradient(1px 1px at 46% 24%,#ffffff47,#0000),radial-gradient(1px 1px at 66% 14%,#efe7ff61,#0000),radial-gradient(1px 1px at 84% 26%,#ffe8ee57,#0000),radial-gradient(1.5px 1.5px at 22% 62%,#fda4ba6b,#0000),radial-gradient(1.5px 1.5px at 72% 58%,#c7b2ff61,#0000);background-size:180% 180%;animation:70s linear infinite starDrift;position:fixed;inset:0}body:after{content:"";pointer-events:none;z-index:0;background:radial-gradient(34% 34% at 30% 32%,#f43f681f 0%,#0000 58%),radial-gradient(38% 38% at 66% 34%,#8b5cf61f 0%,#0000 58%),radial-gradient(32% 32% at 54% 74%,#fbbf2414 0%,#0000 54%);animation:34s ease-in-out infinite nebulaDrift;position:fixed;inset:-28%}.app{z-index:1;height:100dvh;height:var(--app-height,100dvh);max-width:820px;min-height:0;color:var(--text-primary);-webkit-backdrop-filter:blur(16px)saturate(1.25);border-left:1px solid var(--glass-border);border-right:1px solid var(--glass-border);background:linear-gradient(#1c1422a3 0%,#1c142275 52%,#261c2dad 100%);flex-direction:column;margin:0 auto;display:flex;position:relative;box-shadow:0 0 70px #f43f6814,inset 0 0 90px #ffffff06}.app[data-theme=light]{--space-deep:#fff7f8;--space-dark:#fff1f4;--space-mid:#fff;--space-slate:#ffe8ee;--surface:#ffffffc7;--surface-2:#fff7f8eb;--surface-hover:#ffe8eee6;--glass-border:#e11d4f1f;--glass-border-strong:#e11d4f38;--text-primary:#321923;--text-secondary:#321923ad;--text-muted:#32192370;--text-inverse:#fff7fb;--shadow-card:0 12px 36px #e11d4f1f;background:radial-gradient(70% 45% at 50% 0,#fda4ba42 0%,#0000 62%),radial-gradient(48% 36% at 12% 76%,#c7b2ff3d 0%,#0000 58%),linear-gradient(#ffffffc2,#fff7f8e0)}.app-main{flex:1;min-height:0;display:flex;overflow:hidden}.chat-area{background:linear-gradient(#fff0 0%,#f43f680a 56%,#8b5cf60f 100%);flex-direction:column;flex:1;min-height:0;display:flex;overflow:hidden}::-webkit-scrollbar{width:5px;height:5px}::-webkit-scrollbar-track{background:0 0}::-webkit-scrollbar-thumb{background:#f43f6838;border-radius:10px}::-webkit-scrollbar-thumb:hover{background:#f43f6861}::selection{color:#fff;background:#f43f6847}@keyframes starDrift{0%{background-position:0 0}25%{background-position:100% 25%}50%{background-position:50% 100%}75%{background-position:0 75%}to{background-position:0 0}}@keyframes nebulaDrift{0%,to{transform:translate(0,0)scale(1)}33%{transform:translate(1.5%,-1%)scale(1.04)}66%{transform:translate(-1%,1.5%)scale(1.03)}}@keyframes fadeIn{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}@keyframes floatUp{0%{opacity:0;transform:translateY(20px)scale(.95)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes heartbeat{0%,to{transform:scale(1)}25%{transform:scale(1.08)}50%{transform:scale(1)}75%{transform:scale(1.05)}}@keyframes sparkle{0%,to{opacity:0;transform:scale(0)}50%{opacity:1;transform:scale(1)}}@keyframes slideUp{0%{opacity:0;transform:translateY(100%)}to{opacity:1;transform:translateY(0)}}@keyframes shimmer{0%{background-position:-200%}to{background-position:200%}}@keyframes glow{0%,to{box-shadow:0 0 12px #f43f6833}50%{box-shadow:0 0 28px #f43f6861,0 0 50px #8b5cf61f}}@keyframes frequencyRipple{0%{box-shadow:0 0 #f43f6857}70%{box-shadow:0 0 0 10px #f43f6800}to{box-shadow:0 0 #f43f6800}}@media (width<=768px){html,body,#root{height:var(--app-height,100%);overflow:hidden}.app{width:100%;max-width:100%;height:auto;box-shadow:none;border-left:none;border-right:none;margin:0;position:absolute;inset:0}}
