*,:after,:before{box-sizing:border-box;margin:0;padding:0}:root{--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px);--safe-left:env(safe-area-inset-left,0px);--safe-right:env(safe-area-inset-right,0px)}html{-webkit-text-size-adjust:100%;height:100%;scroll-behavior:smooth}body{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;font-family:Plus Jakarta Sans,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif;min-height:100%;min-width:320px;overflow-x:hidden;text-rendering:optimizeLegibility}#root{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}::-webkit-scrollbar{height:6px;width:6px}::-webkit-scrollbar-track{background:#0000}::-webkit-scrollbar-thumb{background:#a0a0b440;border-radius:999px}::-webkit-scrollbar-thumb:hover{background:#a0a0b473}@media (hover:none){a:active,button:active{opacity:.85;transform:scale(.98)}}:root,[data-theme=dark]{--bg-primary:#0a0d14;--bg-secondary:#0f1420;--surface-blur:#121724bf;--surface-card:#181e30d9;--surface-hover:#212941e6;--surface-active:#ff4b7229;--ink-primary:#f3f5fa;--ink-secondary:#9da6bc;--ink-tertiary:#677189;--line:#ffffff14;--line-strong:#ffffff29;--accent:#ff4b72;--accent-secondary:#ff7b54;--accent-tertiary:#ffb26b;--accent-gradient:linear-gradient(135deg,#ff4b72,#ff7b54 50%,#ffa366);--accent-gradient-hover:linear-gradient(135deg,#ff3360,#ff683d 50%,#ff9550);--accent-glow:#ff4b7252;--user-bubble:linear-gradient(135deg,#ff4b72,#e65538);--assistant-bubble:#1a2033e0;--assistant-bubble-border:#ffffff17;--success:#2dd4bf;--success-bg:#2dd4bf1f;--error:#fb7185;--error-bg:#fb718524;--shadow-lg:0 24px 64px -12px #000000a6;--shadow-md:0 12px 32px -8px #00000073;--shadow-sm:0 4px 16px -2px #0000004d;--font-heading:"Outfit",sans-serif;--font-body:"Plus Jakarta Sans",sans-serif}[data-theme=light]{--bg-primary:#faf6f2;--bg-secondary:#f2ebe4;--surface-blur:#ffffffd9;--surface-card:#fffffff0;--surface-hover:#f7efe8eb;--surface-active:#e442651a;--ink-primary:#1c1724;--ink-secondary:#655d72;--ink-tertiary:#928a9f;--line:#4d31241a;--line-strong:#4d312433;--accent:#e44265;--accent-secondary:#e86443;--accent-tertiary:#f48b52;--accent-gradient:linear-gradient(135deg,#e44265,#e86443 60%,#f48b52);--accent-gradient-hover:linear-gradient(135deg,#d33256,#d85332 60%,#e5793e);--accent-glow:#e4426538;--user-bubble:linear-gradient(135deg,#e44265,#ea5c39);--assistant-bubble:#fffffff2;--assistant-bubble-border:#4d31241a;--success:#0d9488;--success-bg:#0d94881f;--error:#e11d48;--error-bg:#e11d481f;--shadow-lg:0 24px 64px -12px #50322824;--shadow-md:0 12px 32px -8px #5032281a;--shadow-sm:0 4px 16px -2px #5032280f}body{background-color:#0a0d14;background-color:var(--bg-primary);color:#f3f5fa;color:var(--ink-primary);font-family:Plus Jakarta Sans,sans-serif;font-family:var(--font-body);min-height:100vh;min-height:100dvh;transition:background-color .25s ease,color .25s ease}button{align-items:center;background:#0000;border:none;cursor:pointer;display:inline-flex;justify-content:center;transition:all .18s cubic-bezier(.16,1,.3,1)}button,input,textarea{font-family:inherit;outline:none}.app-shell{background:radial-gradient(circle at 10% 15%,#ff4b7252,#0000 38%),radial-gradient(circle at 90% 85%,#ff7b542e,#0000 42%),#0a0d14;background:radial-gradient(circle at 10% 15%,var(--accent-glow),#0000 38%),radial-gradient(circle at 90% 85%,#ff7b542e,#0000 42%),var(--bg-primary);display:flex;flex-direction:column;min-height:100vh;min-height:100dvh;overflow-x:hidden;position:relative}.background-ribbon{border-radius:999px;filter:blur(80px);opacity:.6;pointer-events:none;position:absolute;z-index:0}.ribbon-one{animation:floatOrb 18s ease-in-out infinite alternate;background:radial-gradient(circle,#ff4b72,#0000 70%);background:radial-gradient(circle,var(--accent),#0000 70%);height:440px;right:-100px;top:-120px;width:440px}.ribbon-two{animation:floatOrb 22s ease-in-out infinite alternate-reverse;background:radial-gradient(circle,#ff7b54,#0000 70%);background:radial-gradient(circle,var(--accent-secondary),#0000 70%);bottom:-100px;height:480px;left:-80px;width:480px}.ribbon-three{animation:floatOrb 26s ease-in-out infinite alternate;background:radial-gradient(circle,#a855f724,#0000 70%);height:320px;left:20%;top:45%;width:320px}@keyframes floatOrb{0%{transform:translate(0) scale(1)}50%{transform:translate(40px,-30px) scale(1.08)}to{transform:translate(-30px,40px) scale(.95)}}.global-header{justify-content:space-between;margin:0 auto;max-width:1320px;padding:18px clamp(16px,4vw,40px);position:relative;width:100%;z-index:10}.global-header,.header-brand{align-items:center;display:flex}.header-brand{gap:12px}.brand-text{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#ff4b72,#ff7b54 50%,#ffa366);background:var(--accent-gradient);-webkit-background-clip:text;font-family:Outfit,sans-serif;font-family:var(--font-heading);font-size:1.35rem;font-weight:700;letter-spacing:-.02em}.theme-toggle-btn{background:#181e30d9;background:var(--surface-card);border:1px solid #ffffff14;border:1px solid var(--line);border-radius:14px;box-shadow:0 4px 16px -2px #0000004d;box-shadow:var(--shadow-sm);color:#f3f5fa;color:var(--ink-primary);height:42px;width:42px}.theme-toggle-btn:hover{background:#212941e6;background:var(--surface-hover);border-color:#ff4b72;border-color:var(--accent);transform:translateY(-1px)}.auth-layout{grid-gap:clamp(28px,4vw,64px);align-items:center;display:grid;gap:clamp(28px,4vw,64px);grid-template-columns:1.15fr .85fr;margin:auto;max-width:1240px;padding:clamp(16px,3vw,36px) clamp(16px,4vw,36px) 48px;position:relative;width:100%;z-index:1}.auth-copy{display:flex;flex-direction:column;gap:20px}.brand-badge{background:#181e30d9;background:var(--surface-card);border:1px solid #ffffff14;border:1px solid var(--line);border-radius:999px;box-shadow:0 4px 16px -2px #0000004d;box-shadow:var(--shadow-sm);color:#f3f5fa;color:var(--ink-primary);font-size:.88rem;font-weight:600;gap:10px;padding:6px 16px;width:-webkit-fit-content;width:fit-content}.brand-badge,.eyebrow-chip{align-items:center;display:inline-flex}.eyebrow-chip{color:#ff4b72;color:var(--accent);font-size:.82rem;font-weight:700;gap:8px;letter-spacing:.12em;text-transform:uppercase}.auth-copy h1{color:#f3f5fa;color:var(--ink-primary);font-family:Outfit,sans-serif;font-family:var(--font-heading);font-size:clamp(2.3rem,5vw,4rem);font-weight:800;letter-spacing:-.03em;line-height:1.08}.auth-copy>p{color:#9da6bc;color:var(--ink-secondary);font-size:clamp(1rem,1.2vw,1.15rem);line-height:1.65;max-width:540px}.feature-grid{grid-gap:16px;display:grid;gap:16px;grid-template-columns:repeat(3,minmax(0,1fr));margin-top:12px}.feature-card{-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);background:#181e30d9;background:var(--surface-card);border:1px solid #ffffff14;border:1px solid var(--line);border-radius:20px;box-shadow:0 4px 16px -2px #0000004d;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:8px;padding:18px 16px;transition:transform .2s ease,border-color .2s ease}.feature-card:hover{border-color:#ffffff29;border-color:var(--line-strong);transform:translateY(-2px)}.feature-icon{font-size:1.35rem}.feature-card h2{color:#f3f5fa;color:var(--ink-primary);font-size:.98rem;font-weight:700;margin:0}.feature-card p{color:#9da6bc;color:var(--ink-secondary);font-size:.82rem;line-height:1.5;margin:0}.auth-switcher{background:#181e30d9;background:var(--surface-card);border:1px solid #ffffff14;border:1px solid var(--line);border-radius:16px;box-shadow:0 4px 16px -2px #0000004d;box-shadow:var(--shadow-sm);display:flex;gap:6px;margin-top:8px;padding:6px;width:-webkit-fit-content;width:fit-content}.auth-switcher button{border-radius:12px;color:#9da6bc;color:var(--ink-secondary);font-size:.92rem;font-weight:600;padding:10px 22px}.auth-switcher button:hover:not(:disabled){color:#f3f5fa;color:var(--ink-primary)}.auth-switcher button.active{background:linear-gradient(135deg,#ff4b72,#ff7b54 50%,#ffa366);background:var(--accent-gradient);box-shadow:0 4px 14px #ff4b7252;box-shadow:0 4px 14px var(--accent-glow);color:#fff}.auth-switcher button:disabled{cursor:not-allowed;opacity:.4}.auth-panel{position:relative;width:100%}.panel-orbit{border-radius:999px;filter:blur(40px);pointer-events:none;position:absolute}.panel-orbit-one{background:#ff4b7252;background:var(--accent-glow);bottom:-30px;height:180px;right:-30px;width:180px}.panel-orbit-two{background:#ff7b5433;height:140px;left:-20px;top:-20px;width:140px}.panel-shell{backdrop-filter:blur(28px);-webkit-backdrop-filter:blur(28px);background:#121724bf;background:var(--surface-blur);border:1px solid #ffffff29;border:1px solid var(--line-strong);border-radius:28px;box-shadow:0 24px 64px -12px #000000a6;box-shadow:var(--shadow-lg);padding:clamp(22px,3.5vw,36px);position:relative;z-index:1}.mobile-brand-row{align-items:center;display:none;gap:10px;margin-bottom:12px}.panel-header .eyebrow{color:#ff4b72;color:var(--accent);font-size:.76rem;font-weight:700;letter-spacing:.14em;margin-bottom:6px;text-transform:uppercase}.panel-header h2{color:#f3f5fa;color:var(--ink-primary);font-family:Outfit,sans-serif;font-family:var(--font-heading);font-size:clamp(1.6rem,2.5vw,2.1rem);font-weight:700;letter-spacing:-.02em;margin:0}.panel-sub{color:#9da6bc;color:var(--ink-secondary);font-size:.92rem;line-height:1.5;margin-top:6px}.auth-form{gap:18px;margin-top:24px}.auth-form,.input-group{display:flex;flex-direction:column}.input-group{gap:7px}.input-label{color:#f3f5fa;color:var(--ink-primary);font-size:.85rem;font-weight:600}.input-wrapper{align-items:center;display:flex;position:relative}.auth-form input{background:#181e30d9;background:var(--surface-card);border:1px solid #ffffff14;border:1px solid var(--line);border-radius:14px;color:#f3f5fa;color:var(--ink-primary);font-size:.95rem;padding:13px 16px;transition:all .18s ease;width:100%}.input-wrapper input{padding-right:48px}.auth-form input:focus{background:#212941e6;background:var(--surface-hover);border-color:#ff4b72;border-color:var(--accent);box-shadow:0 0 0 3px #ff4b7252;box-shadow:0 0 0 3px var(--accent-glow)}.password-toggle{align-items:center;border-radius:8px;color:#9da6bc;color:var(--ink-secondary);display:flex;height:32px;justify-content:center;position:absolute;right:12px;width:32px}.password-toggle:hover{background:#212941e6;background:var(--surface-hover);color:#f3f5fa;color:var(--ink-primary)}.verify-target-badge{background:#ff4b7229;background:var(--surface-active);border:1px solid #ffffff14;border:1px solid var(--line);border-radius:12px;color:#f3f5fa;color:var(--ink-primary);font-size:.86rem;padding:10px 14px}.verify-target-badge strong{color:#ff4b72;color:var(--accent)}.code-input{font-size:1.25rem!important;font-weight:700;letter-spacing:.25em;text-align:center}.age-verification-group{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#181e30d9;background:var(--surface-card);border:1px solid #ffffff14;border:1px solid var(--line);border-radius:18px;display:flex;flex-direction:column;gap:12px;padding:16px;transition:all .2s ease}.age-question-header{align-items:center;display:flex;justify-content:space-between}.age-badge-req{background:#ff4b7229;background:var(--surface-active);border:1px solid #ff4b7252;border:1px solid var(--accent-glow);border-radius:999px;color:#ff4b72;color:var(--accent);font-size:.72rem;font-weight:700;letter-spacing:.08em;padding:3px 8px;text-transform:uppercase}.age-question-sub{color:#f3f5fa;color:var(--ink-primary);font-size:.92rem;font-weight:600;line-height:1.4;margin:0}.age-options-grid{grid-gap:10px;display:grid;gap:10px;grid-template-columns:1fr 1fr}@media (max-width:480px){.age-options-grid{grid-template-columns:1fr}}.age-choice-btn{align-items:flex-start;background:#0f1420;background:var(--bg-secondary);border:1.5px solid #ffffff14;border:1.5px solid var(--line);border-radius:14px;cursor:pointer;display:flex;gap:10px;padding:12px 14px;text-align:left;transition:all .18s cubic-bezier(.16,1,.3,1);width:100%}.age-choice-btn:hover{background:#212941e6;background:var(--surface-hover);border-color:#ffffff29;border-color:var(--line-strong);transform:translateY(-1px)}.age-choice-btn.selected-yes{background:#ff4b7229;background:var(--surface-active);border-color:#ff4b72;border-color:var(--accent);box-shadow:0 0 0 2px #ff4b7252,0 4px 14px #ff4b7252;box-shadow:0 0 0 2px var(--accent-glow),0 4px 14px var(--accent-glow)}.age-choice-btn.selected-no{background:#fb718524;background:var(--error-bg);border-color:#fb7185;border-color:var(--error);box-shadow:0 0 0 2px #fb718533}.age-radio-ring{align-items:center;border:2px solid #677189;border:2px solid var(--ink-tertiary);border-radius:50%;display:flex;height:18px;justify-content:center;margin-top:2px;min-width:18px;transition:all .18s ease;width:18px}.selected-yes .age-radio-ring{border-color:#ff4b72;border-color:var(--accent)}.selected-no .age-radio-ring{border-color:#fb7185;border-color:var(--error)}.age-radio-inner{background:#ff4b72;background:var(--accent);border-radius:50%;height:8px;width:8px}.age-radio-inner.danger{background:#fb7185;background:var(--error)}.age-choice-text{display:flex;flex-direction:column;gap:2px}.age-choice-text strong{color:#f3f5fa;color:var(--ink-primary);font-size:.9rem;font-weight:700}.age-choice-text small{color:#9da6bc;color:var(--ink-secondary);font-size:.74rem;line-height:1.3}.age-restriction-notice{align-items:flex-start;background:#fb718524;background:var(--error-bg);border:1px solid #fb7185;border:1px solid var(--error);border-radius:12px;color:#f3f5fa;color:var(--ink-primary);display:flex;font-size:.83rem;gap:10px;line-height:1.45;padding:11px 13px}.age-notice-body strong{color:#fb7185;color:var(--error);margin-right:4px}.age-notice-icon{font-size:1.1rem;line-height:1}.primary-button{align-items:center;background:linear-gradient(135deg,#ff4b72,#ff7b54 50%,#ffa366);background:var(--accent-gradient);border-radius:14px;box-shadow:0 8px 24px #ff4b7252;box-shadow:0 8px 24px var(--accent-glow);color:#fff;display:inline-flex;font-size:1rem;font-weight:700;gap:10px;justify-content:center;padding:14px 22px}.primary-button:hover:not(:disabled){background:linear-gradient(135deg,#ff3360,#ff683d 50%,#ff9550);background:var(--accent-gradient-hover);box-shadow:0 12px 28px #ff4b7252;box-shadow:0 12px 28px var(--accent-glow);transform:translateY(-2px)}.primary-button:active:not(:disabled){transform:translateY(0)}.primary-button:disabled{cursor:not-allowed;opacity:.6;transform:none}.primary-button.danger{background:linear-gradient(135deg,#e11d48,#be123c);box-shadow:0 8px 24px #e11d4859}.primary-button.danger:hover:not(:disabled){background:linear-gradient(135deg,#f43f5e,#e11d48)}.submit-btn{margin-top:6px;width:100%}.ghost-button{background:#181e30d9;background:var(--surface-card);border:1px solid #ffffff14;border:1px solid var(--line);border-radius:12px;box-shadow:0 4px 16px -2px #0000004d;box-shadow:var(--shadow-sm);font-weight:600;padding:10px 16px}.ghost-button,.ghost-button:hover{color:#f3f5fa;color:var(--ink-primary)}.ghost-button:hover{background:#212941e6;background:var(--surface-hover);border-color:#ffffff29;border-color:var(--line-strong)}.ghost-button.icon-only{border-radius:12px;height:40px;padding:0;width:40px}.ghost-button.danger{color:#fb7185;color:var(--error)}.ghost-button.danger:hover{background:#fb718524;background:var(--error-bg);border-color:#fb7185;border-color:var(--error)}.ghost-button.active-tool,.ghost-button.sound-active{background:#ff4b7229;background:var(--surface-active);border-color:#ff4b72;border-color:var(--accent);color:#ff4b72;color:var(--accent)}.delete-active-btn{color:#fb7185!important;color:var(--error)!important}.delete-active-btn:hover{background:#fb718524!important;background:var(--error-bg)!important;border-color:#fb7185!important;border-color:var(--error)!important}.helper-line{color:#9da6bc;color:var(--ink-secondary);font-size:.88rem;margin-top:4px;text-align:center}.helper-line button{color:#ff4b72;color:var(--accent);font-weight:600;padding:2px 4px;text-decoration:underline}.banner{align-items:flex-start;border-radius:14px;display:flex;font-size:.88rem;gap:12px;line-height:1.45;margin-top:14px;padding:12px 16px}.banner-icon{font-size:1.1rem;line-height:1}.banner.success{background:#2dd4bf1f;background:var(--success-bg);border:1px solid #2dd4bf;border:1px solid var(--success);color:#2dd4bf;color:var(--success)}.banner.error{background:#fb718524;background:var(--error-bg);border:1px solid #fb7185;border:1px solid var(--error);color:#fb7185;color:var(--error)}.mini-spinner{animation:spin .7s linear infinite;border:2px solid #ffffff4d;border-radius:999px;border-top-color:initial;height:16px;width:16px}.btn-loading{align-items:center;display:inline-flex;gap:8px}@keyframes spin{to{transform:rotate(1turn)}}.chat-shell{background-color:#0a0d14;background-color:var(--bg-primary);display:grid;grid-template-columns:320px minmax(0,1fr);height:100vh;height:100dvh;max-height:100vh;max-height:100dvh;overflow:hidden;position:relative}.workspace-glow{border-radius:999px;filter:blur(90px);pointer-events:none;position:absolute;z-index:0}.workspace-glow-left{background:#ff4b7252;background:var(--accent-glow);height:320px;left:-80px;top:-80px;width:320px}.workspace-glow-right{background:#ff7b542e;bottom:-60px;height:360px;right:-60px;width:360px}.sidebar-backdrop{animation:fadeIn .2s ease;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);background:#000000a6;display:none;inset:0;position:fixed;z-index:90}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.chat-sidebar{backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);background:#121724bf;background:var(--surface-blur);border-right:1px solid #ffffff14;border-right:1px solid var(--line);display:flex;flex-direction:column;gap:14px;height:100%;overflow:hidden;padding:18px 16px;position:relative;z-index:10}.sidebar-header{justify-content:space-between}.sidebar-header,.user-profile-badge{align-items:center;display:flex;gap:12px}.user-profile-badge{overflow:hidden}.user-avatar-initial{align-items:center;background:linear-gradient(135deg,#ff4b72,#ff7b54 50%,#ffa366);background:var(--accent-gradient);border-radius:12px;box-shadow:0 4px 12px #ff4b7252;box-shadow:0 4px 12px var(--accent-glow);color:#fff;display:flex;flex-shrink:0;font-size:1.1rem;font-weight:700;height:40px;justify-content:center;width:40px}.user-meta{display:flex;flex-direction:column;overflow:hidden}.user-status-pill{color:#ff4b72;color:var(--accent);font-size:.68rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.user-email{color:#f3f5fa;color:var(--ink-primary);font-size:.88rem;font-weight:600;margin:0;max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.close-sidebar-btn{display:none}.new-chat-btn{border-radius:14px;font-size:.94rem;padding:12px 18px;width:100%}.sidebar-search-box{align-items:center;background:#181e30d9;background:var(--surface-card);border:1px solid #ffffff14;border:1px solid var(--line);border-radius:12px;color:#9da6bc;color:var(--ink-secondary);display:flex;gap:8px;padding:8px 12px;transition:all .18s ease}.sidebar-search-box:focus-within{border-color:#ff4b72;border-color:var(--accent);box-shadow:0 0 0 2px #ff4b7252;box-shadow:0 0 0 2px var(--accent-glow);color:#ff4b72;color:var(--accent)}.sidebar-search-box input{background:#0000;border:none;color:#f3f5fa;color:var(--ink-primary);flex:1 1;font-size:.86rem}.clear-search-btn,.sidebar-search-box input::placeholder{color:#677189;color:var(--ink-tertiary)}.clear-search-btn{border-radius:999px;height:20px;width:20px}.clear-search-btn:hover{background:#212941e6;background:var(--surface-hover);color:#f3f5fa;color:var(--ink-primary)}.session-list-section{display:flex;flex:1 1;flex-direction:column;gap:10px;min-height:0}.session-list-header{align-items:center;color:#677189;color:var(--ink-tertiary);display:flex;font-size:.72rem;font-weight:700;justify-content:space-between;letter-spacing:.1em;padding:0 4px}.session-count-tag{background:#181e30d9;background:var(--surface-card);border:1px solid #ffffff14;border:1px solid var(--line);border-radius:999px;padding:2px 8px}.session-list{display:flex;flex:1 1;flex-direction:column;gap:8px;overflow-x:hidden;overflow-y:auto;padding-right:4px}.empty-state-card,.loading-sessions{align-items:center;background:#181e30d9;background:var(--surface-card);border:1px dashed #ffffff14;border:1px dashed var(--line);border-radius:16px;color:#9da6bc;color:var(--ink-secondary);display:flex;flex-direction:column;font-size:.86rem;gap:8px;justify-content:center;padding:28px 16px;text-align:center}.empty-state-card small{color:#677189;color:var(--ink-tertiary);font-size:.76rem}.session-card-wrapper{align-items:center;background:#181e30d9;background:var(--surface-card);border:1px solid #ffffff14;border:1px solid var(--line);border-radius:16px;display:flex;gap:4px;overflow:hidden;transition:all .18s ease}.session-card-wrapper:hover{background:#212941e6;background:var(--surface-hover);border-color:#ffffff29;border-color:var(--line-strong);transform:translateX(2px)}.session-card-wrapper.active{background:#ff4b7229;background:var(--surface-active);border-color:#ff4b72;border-color:var(--accent);box-shadow:0 4px 16px #ff4b7252;box-shadow:0 4px 16px var(--accent-glow)}.session-card-wrapper:focus-within{border-color:#ff4b72;border-color:var(--accent);box-shadow:0 0 0 2px #ff4b7252;box-shadow:0 0 0 2px var(--accent-glow)}.session-card-main:focus-visible{outline:none}.session-card-main{align-items:center;color:#f3f5fa;color:var(--ink-primary);display:flex;flex:1 1;gap:12px;min-width:0;padding:12px 14px;text-align:left}.session-delete-btn{border-radius:10px;color:#677189;color:var(--ink-tertiary);flex-shrink:0;height:34px;margin-right:8px;opacity:.7;width:34px}.session-card-wrapper:hover .session-delete-btn{opacity:1}.session-delete-btn:hover{background:#fb718524;background:var(--error-bg);color:#fb7185;color:var(--error);opacity:1}.session-badge{align-items:center;background:#212941e6;background:var(--surface-hover);border-radius:10px;color:#ff4b72;color:var(--accent);display:flex;flex-shrink:0;font-size:.82rem;font-weight:700;height:32px;justify-content:center;width:32px}.session-card-wrapper.active .session-badge{background:linear-gradient(135deg,#ff4b72,#ff7b54 50%,#ffa366);background:var(--accent-gradient);color:#fff}.session-details{display:flex;flex:1 1;flex-direction:column;gap:3px;min-width:0}.session-headline{align-items:center;display:flex;gap:8px;justify-content:space-between;min-width:0}.session-headline strong,.session-title{color:#f3f5fa;color:var(--ink-primary);flex:1 1;font-size:.88rem;font-weight:600;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.msg-pill{background:#121724bf;background:var(--surface-blur);border-radius:6px;color:#677189;color:var(--ink-tertiary);font-size:.72rem;padding:1px 6px}.session-details small{color:#9da6bc;color:var(--ink-secondary);font-size:.76rem}.sidebar-footer{border-top:1px solid #ffffff14;border-top:1px solid var(--line);display:flex;flex-direction:column;gap:12px;padding-top:12px}.sidebar-notice{align-items:center;color:#677189;color:var(--ink-tertiary);display:flex;font-size:.76rem;gap:8px;line-height:1.4}.logout-button{border-radius:12px;font-size:.88rem;gap:8px;padding:10px 14px;width:100%}.chat-main{display:flex;flex-direction:column;height:100%;min-width:0;overflow:hidden;position:relative;z-index:1}.chat-topbar{backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:#121724bf;background:var(--surface-blur);border-bottom:1px solid #ffffff14;border-bottom:1px solid var(--line);flex-shrink:0;justify-content:space-between;padding:12px clamp(12px,2.5vw,24px);z-index:10}.chat-topbar,.topbar-left{align-items:center;display:flex}.topbar-left{gap:12px}.menu-btn{display:none;position:relative}.menu-badge{align-items:center;background:#ff4b72;background:var(--accent);border-radius:999px;color:#fff;display:flex;font-size:.68rem;font-weight:700;height:18px;justify-content:center;position:absolute;right:-4px;top:-4px;width:18px}.companion-identity{align-items:center;display:flex;gap:12px}.avatar-wrap{align-items:center;background:#181e30d9;background:var(--surface-card);border:1.5px solid #ff4b72;border:1.5px solid var(--accent);border-radius:999px;box-shadow:0 4px 14px #ff4b7252;box-shadow:0 4px 14px var(--accent-glow);display:flex;flex-shrink:0;justify-content:center;position:relative}.online-dot{animation:pulseDot 2s ease-in-out infinite;background:#10b981;border:2px solid #0a0d14;border:2px solid var(--bg-primary);border-radius:999px;bottom:0;box-shadow:0 0 8px #10b981;height:10px;position:absolute;right:0;width:10px}@keyframes pulseDot{0%,to{opacity:1;transform:scale(1)}50%{opacity:.8;transform:scale(1.2)}}.companion-meta{display:flex;flex-direction:column}.name-row{align-items:center;display:flex;gap:8px}.name-row h1{color:#f3f5fa;color:var(--ink-primary);font-family:Outfit,sans-serif;font-family:var(--font-heading);font-size:1.15rem;font-weight:700;letter-spacing:-.01em;margin:0}.status-badge{background:#10b98126;border-radius:999px;color:#10b981;font-size:.68rem;font-weight:700;padding:2px 7px}.companion-tagline{color:#9da6bc;color:var(--ink-secondary);font-size:.74rem;margin:0}.topbar-actions{align-items:center;display:flex;gap:6px}.close-chat-btn{align-items:center;background:#181e30d9;background:var(--surface-card);border:1px solid #ffffff14;border:1px solid var(--line);border-radius:10px;color:#9da6bc;color:var(--ink-secondary);cursor:pointer;display:inline-flex;font-size:.8rem;font-weight:600;gap:6px;padding:6px 10px;transition:all .16s ease}.close-chat-btn:hover{border-color:#ff4b72;border-color:var(--accent)}.close-chat-btn:hover,.esc-key-badge{background:#212941e6;background:var(--surface-hover);color:#ff4b72;color:var(--accent)}.esc-key-badge{border:1px solid #ffffff14;border:1px solid var(--line);border-radius:4px;font-family:inherit;font-size:.68rem;font-weight:700;letter-spacing:.04em;padding:1px 5px;text-transform:uppercase}.in-chat-search-bar{align-items:center;animation:slideDown .2s ease;background:#181e30d9;background:var(--surface-card);border-bottom:1px solid #ffffff14;border-bottom:1px solid var(--line);color:#9da6bc;color:var(--ink-secondary);display:flex;gap:10px;padding:10px clamp(14px,3vw,24px);z-index:9}@keyframes slideDown{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.in-chat-search-bar input{background:#0000;border:none;color:#f3f5fa;color:var(--ink-primary);flex:1 1;font-size:.92rem}.search-count-pill{background:#ff4b7229;background:var(--surface-active);border-radius:999px;color:#ff4b72;color:var(--accent);font-size:.78rem;font-weight:600;padding:3px 10px;white-space:nowrap}.close-search-btn{border-radius:8px!important;height:32px!important;width:32px!important}.chat-stage{display:flex;flex:1 1;flex-direction:column;min-height:0;overflow:hidden;position:relative}.banner.in-chat{margin:12px clamp(14px,3vw,24px) 0}.message-stream{flex:1 1;gap:18px;overflow-x:hidden;overflow-y:auto;padding:clamp(16px,3vw,24px);scroll-behavior:smooth}.message-stream,.welcome-hero{display:flex;flex-direction:column}.welcome-hero{align-items:center;animation:slideUpFade .3s ease;-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);background:#181e30d9;background:var(--surface-card);border:1px solid #ffffff14;border:1px solid var(--line);border-radius:28px;box-shadow:0 12px 32px -8px #00000073;box-shadow:var(--shadow-md);gap:14px;margin:auto;max-width:520px;padding:clamp(24px,4vw,36px) clamp(16px,3vw,28px);text-align:center}.welcome-hero h3{color:#f3f5fa;color:var(--ink-primary);font-family:Outfit,sans-serif;font-family:var(--font-heading);font-size:1.45rem;font-weight:700;margin:0}.welcome-hero p{color:#9da6bc;color:var(--ink-secondary);font-size:.94rem;line-height:1.6;margin:0}.starter-chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:8px;width:100%}.starter-chip{background:#212941e6;background:var(--surface-hover);border:1px solid #ffffff14;border:1px solid var(--line);border-radius:14px;color:#f3f5fa;color:var(--ink-primary);font-size:.84rem;font-weight:500;padding:10px 14px;text-align:left;transition:all .18s ease}.starter-chip:hover{background:#ff4b7229;background:var(--surface-active);border-color:#ff4b72;border-color:var(--accent);color:#ff4b72;color:var(--accent);transform:translateY(-1px)}.loading-state{align-items:center;color:#9da6bc;color:var(--ink-secondary);display:flex;font-size:.9rem;gap:10px;justify-content:center;padding:30px}.message-bubble-wrapper{align-items:flex-end;animation:messageEnter .22s ease;display:flex;gap:10px;max-width:100%;transition:filter .2s ease}.message-bubble-wrapper.highlight-match .message-bubble{border-color:#ff4b72!important;border-color:var(--accent)!important;box-shadow:0 0 0 3px #ff4b7252!important;box-shadow:0 0 0 3px var(--accent-glow)!important}@keyframes messageEnter{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.user-wrapper{justify-content:flex-end}.assistant-wrapper{justify-content:flex-start}.bubble-avatar{flex-shrink:0;margin-bottom:2px}.message-bubble{border-radius:20px;box-shadow:0 4px 16px -2px #0000004d;box-shadow:var(--shadow-sm);display:flex;flex-direction:column;gap:6px;max-width:min(78%,680px);padding:14px 18px;position:relative;word-break:break-word}.message-bubble.assistant{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#1a2033e0;background:var(--assistant-bubble);border:1px solid #ffffff17;border:1px solid var(--assistant-bubble-border);border-bottom-left-radius:4px;color:#f3f5fa;color:var(--ink-primary)}.message-bubble.user{background:linear-gradient(135deg,#ff4b72,#e65538);background:var(--user-bubble);border-bottom-right-radius:4px;box-shadow:0 8px 24px #ff4b7252;box-shadow:0 8px 24px var(--accent-glow);color:#fff}.bubble-header{align-items:center;display:flex;gap:12px;justify-content:space-between}.message-role{font-size:.72rem;font-weight:700;letter-spacing:.12em;text-transform:uppercase}.message-bubble.assistant .message-role{color:#ff4b72;color:var(--accent)}.message-bubble.user .message-role{color:#ffffffd9}.bubble-actions{align-items:center;display:flex;gap:8px}.copy-btn{align-items:center;background:#ffffff14;border-radius:6px;color:inherit;display:inline-flex;font-size:.7rem;gap:4px;opacity:.7;padding:2px 6px}.copy-btn:hover{background:#ffffff29;opacity:1}.bubble-time{font-size:.72rem;opacity:.65}.bubble-text{font-size:.95rem;line-height:1.6;margin:0;white-space:pre-wrap}.typing-bubble{padding:12px 18px}.typing-dots{align-items:center;display:flex;gap:5px;padding:6px 0 2px}.typing-dots span{animation:typingBounce 1.2s ease-in-out infinite;background:#ff4b72;background:var(--accent);border-radius:999px;height:7px;width:7px}.typing-dots span:nth-child(2){animation-delay:.2s}.typing-dots span:nth-child(3){animation-delay:.4s}@keyframes typingBounce{0%,60%,to{opacity:.4;transform:translateY(0)}30%{opacity:1;transform:translateY(-6px)}}.scroll-anchor{height:1px}.scroll-bottom-fab{background:#181e30d9;background:var(--surface-card);border:1px solid #ffffff14;border:1px solid var(--line);border-radius:999px;bottom:95px;box-shadow:0 12px 32px -8px #00000073;box-shadow:var(--shadow-md);color:#f3f5fa;color:var(--ink-primary);height:38px;position:absolute;right:24px;width:38px;z-index:15}.scroll-bottom-fab:hover{background:#212941e6;background:var(--surface-hover);border-color:#ff4b72;border-color:var(--accent);transform:translateY(-2px)}.composer-shell{backdrop-filter:blur(20px);-webkit-backdrop-filter:blur(20px);background:#121724bf;background:var(--surface-blur);border-top:1px solid #ffffff14;border-top:1px solid var(--line);display:flex;flex-direction:column;flex-shrink:0;gap:8px;padding:12px clamp(14px,3vw,24px) max(14px,env(safe-area-inset-bottom,14px));z-index:10}.composer-inner{align-items:flex-end;background:#181e30d9;background:var(--surface-card);border:1px solid #ffffff14;border:1px solid var(--line);border-radius:18px;box-shadow:0 4px 16px -2px #0000004d;box-shadow:var(--shadow-sm);display:flex;gap:10px;padding:8px 12px 8px 16px;position:relative;transition:all .18s ease}.composer-inner:focus-within{border-color:#ff4b72;border-color:var(--accent);box-shadow:0 0 0 3px #ff4b7252;box-shadow:0 0 0 3px var(--accent-glow)}.composer-inner textarea{background:#0000;border:none;color:#f3f5fa;color:var(--ink-primary);flex:1 1;font-size:.96rem;line-height:1.5;max-height:130px;min-height:24px;padding:6px 0;resize:none}.composer-inner textarea::placeholder,.send-button{color:#677189;color:var(--ink-tertiary)}.send-button{background:#212941e6;background:var(--surface-hover);border-radius:14px;flex-shrink:0;height:40px;width:40px}.send-button.ready{background:linear-gradient(135deg,#ff4b72,#ff7b54 50%,#ffa366);background:var(--accent-gradient);box-shadow:0 4px 14px #ff4b7252;box-shadow:0 4px 14px var(--accent-glow);color:#fff}.send-button.ready:hover{transform:scale(1.05)}.send-button:disabled{cursor:not-allowed;opacity:.5}.mini-spinner.light{border-color:#fff #ffffff59 #ffffff59}.composer-hints{align-items:center;color:#677189;color:var(--ink-tertiary);display:flex;font-size:.74rem;justify-content:space-between;padding:0 4px}.char-count{font-feature-settings:"tnum";font-variant-numeric:tabular-nums}.emoji-toggle-btn{align-items:center;background:#0000;border-radius:12px;color:#9da6bc;color:var(--ink-secondary);display:flex;flex-shrink:0;height:38px;justify-content:center;margin-bottom:1px;padding:0;transition:all .18s ease;width:38px}.emoji-toggle-btn:hover{background:#212941e6;background:var(--surface-hover);color:#ff4b72;color:var(--accent);transform:scale(1.08)}.emoji-toggle-btn.active{background:linear-gradient(135deg,#ff4b72,#ff7b54 50%,#ffa366);background:var(--accent-gradient);box-shadow:0 2px 10px #ff4b7252;box-shadow:0 2px 10px var(--accent-glow);color:#fff}.emoji-picker-popover{animation:emojiPopIn .2s cubic-bezier(.16,1,.3,1);backdrop-filter:blur(28px);-webkit-backdrop-filter:blur(28px);background:#181e30d9;background:var(--surface-card);border:1px solid #ffffff29;border:1px solid var(--line-strong);border-radius:20px;bottom:calc(100% + 8px);box-shadow:0 24px 64px -12px #000000a6,0 16px 36px #ff4b7252;box-shadow:var(--shadow-lg),0 16px 36px var(--accent-glow);display:flex;flex-direction:column;left:clamp(14px,3vw,24px);overflow:hidden;position:absolute;width:min(360px,calc(100vw - 32px));z-index:100}@keyframes emojiPopIn{0%{opacity:0;transform:translateY(12px) scale(.96)}to{opacity:1;transform:translateY(0) scale(1)}}.emoji-picker-header{align-items:center;background:#ffffff05;border-bottom:1px solid #ffffff14;border-bottom:1px solid var(--line);display:flex;gap:8px;justify-content:space-between;padding:10px 12px 8px}.emoji-category-tabs{-ms-overflow-style:none;align-items:center;display:flex;gap:6px;overflow-x:auto;padding-bottom:2px;scrollbar-width:none}.emoji-category-tabs::-webkit-scrollbar{display:none}.emoji-tab-btn{align-items:center;background:#181e30d9;background:var(--surface-card);border:1px solid #ffffff14;border:1px solid var(--line);border-radius:10px;color:#9da6bc;color:var(--ink-secondary);display:inline-flex;flex-shrink:0;font-size:.78rem;font-weight:600;gap:6px;padding:6px 10px;transition:all .16s ease;white-space:nowrap}.emoji-tab-btn:hover{background:#212941e6;background:var(--surface-hover);border-color:#ffffff29;border-color:var(--line-strong);color:#f3f5fa;color:var(--ink-primary)}.emoji-tab-btn.active{background:#ff4b7229;background:var(--surface-active);border-color:#ff4b72;border-color:var(--accent);box-shadow:0 2px 8px #ff4b7252;box-shadow:0 2px 8px var(--accent-glow);color:#ff4b72;color:var(--accent)}.emoji-tab-icon{font-size:1rem}.emoji-tab-label{font-size:.76rem}.emoji-picker-close-btn{align-items:center;border-radius:8px;color:#677189;color:var(--ink-tertiary);display:flex;flex-shrink:0;height:28px;justify-content:center;transition:all .16s ease;width:28px}.emoji-picker-close-btn:hover{background:#212941e6;background:var(--surface-hover);color:#f3f5fa;color:var(--ink-primary)}.emoji-grid-container{max-height:190px;overflow-x:hidden;overflow-y:auto;padding:12px 14px}.emoji-grid{grid-gap:8px;display:grid;gap:8px;grid-template-columns:repeat(5,1fr)}.emoji-item-btn{align-items:center;background:#0000;border:1px solid #0000;border-radius:12px;cursor:pointer;display:flex;font-size:1.55rem;justify-content:center;line-height:1;padding:8px 4px;transition:all .14s cubic-bezier(.16,1,.3,1);-webkit-user-select:none;user-select:none}.emoji-item-btn:hover{background:#212941e6;background:var(--surface-hover);border-color:#ffffff14;border-color:var(--line);transform:scale(1.22)}.emoji-item-btn:active{transform:scale(.92)}.emoji-picker-footer{background:#ffffff03;border-top:1px solid #ffffff14;border-top:1px solid var(--line);color:#677189;color:var(--ink-tertiary);font-size:.72rem;padding:6px 14px 8px;text-align:center}.modal-backdrop{animation:fadeIn .18s ease;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);background:#000000b3;inset:0;justify-content:center;padding:20px;position:fixed;z-index:1000}.modal-backdrop,.modal-card{align-items:center;display:flex}.modal-card{animation:modalPop .22s cubic-bezier(.16,1,.3,1);background:#181e30d9;background:var(--surface-card);border:1px solid #ffffff29;border:1px solid var(--line-strong);border-radius:24px;box-shadow:0 24px 64px -12px #000000a6;box-shadow:var(--shadow-lg);flex-direction:column;gap:14px;max-width:420px;padding:28px;text-align:center;width:100%}@keyframes modalPop{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.modal-icon.warning{align-items:center;background:#fb718524;background:var(--error-bg);border-radius:999px;box-shadow:0 0 20px #fb718524;box-shadow:0 0 20px var(--error-bg);color:#fb7185;color:var(--error);display:flex;font-size:1.5rem;height:52px;justify-content:center;width:52px}.modal-card h3{color:#f3f5fa;color:var(--ink-primary);font-family:Outfit,sans-serif;font-family:var(--font-heading);font-size:1.35rem;font-weight:700;margin:0}.modal-card p{color:#9da6bc;color:var(--ink-secondary);font-size:.92rem;line-height:1.55;margin:0}.modal-actions{align-items:center;display:flex;gap:12px;margin-top:8px;width:100%}.modal-cancel-btn,.modal-delete-btn{border-radius:12px;flex:1 1;padding:12px 18px}.modal-delete-btn{font-size:.95rem}.loading-shell{justify-content:center}.loading-card,.loading-shell{align-items:center;display:flex}.loading-card{-webkit-backdrop-filter:blur(24px);backdrop-filter:blur(24px);background:#121724bf;background:var(--surface-blur);border:1px solid #ffffff29;border:1px solid var(--line-strong);border-radius:28px;box-shadow:0 24px 64px -12px #000000a6;box-shadow:var(--shadow-lg);flex-direction:column;gap:16px;padding:36px 44px}.pulse-dot{animation:pulseDot 1.4s ease-in-out infinite;background:linear-gradient(135deg,#ff4b72,#ff7b54 50%,#ffa366);background:var(--accent-gradient);border-radius:999px;height:14px;width:14px}.loading-text{color:#f3f5fa;color:var(--ink-primary);font-size:.95rem;font-weight:500;margin:0}@media (max-width:1024px){.auth-layout{grid-template-columns:1fr;max-width:620px;padding-top:16px}.auth-copy h1{font-size:clamp(2.2rem,5.5vw,3.2rem)}.feature-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.chat-shell{grid-template-columns:1fr}.menu-btn{display:inline-flex}.sidebar-backdrop{display:block}.chat-sidebar{bottom:0;box-shadow:0 24px 64px -12px #000000a6;box-shadow:var(--shadow-lg);left:0;position:fixed;top:0;transform:translateX(-100%);transition:transform .28s cubic-bezier(.16,1,.3,1);width:min(320px,86vw);z-index:100}.chat-sidebar.open{transform:translateX(0)}.close-sidebar-btn{display:inline-flex}.desktop-only{display:none!important}}@media (max-width:768px){.global-header{padding:14px 18px}.auth-layout{gap:28px;padding:10px 16px 36px}.mobile-brand-row{display:flex}.brand-title{-webkit-text-fill-color:#0000;background:linear-gradient(135deg,#ff4b72,#ff7b54 50%,#ffa366);background:var(--accent-gradient);-webkit-background-clip:text;font-family:Outfit,sans-serif;font-family:var(--font-heading);font-size:1.35rem;font-weight:700}.brand-badge{display:none}.auth-copy h1{font-size:clamp(1.9rem,7vw,2.4rem)}.auth-copy>p{font-size:.94rem}.feature-grid{gap:10px;grid-template-columns:1fr}.feature-card{align-items:center;flex-direction:row;gap:12px;padding:12px 14px}.feature-icon{font-size:1.2rem}.auth-switcher{justify-content:stretch;width:100%}.auth-switcher button{flex:1 1;font-size:.86rem;padding:9px 10px}.panel-shell{border-radius:24px;padding:22px 18px}.chat-topbar{padding:10px 12px}.topbar-actions{gap:4px}.topbar-actions .ghost-button.icon-only{height:36px;width:36px}.companion-identity{gap:10px}.avatar-wrap{height:36px!important;width:36px!important}.name-row h1{font-size:1.05rem}.companion-tagline{font-size:.7rem}.message-stream{gap:14px;padding:14px 12px}.message-bubble{border-radius:18px;max-width:90%;padding:12px 14px}.bubble-text{font-size:.92rem}.composer-hints span:first-child{display:none}.composer-shell{padding:10px 12px max(12px,env(safe-area-inset-bottom,12px))}.composer-inner{border-radius:16px;padding:6px 8px 6px 14px}.send-button{border-radius:12px;height:36px;width:36px}.scroll-bottom-fab{bottom:84px;right:16px}}@media (max-width:420px){.auth-copy h1{font-size:1.75rem}.message-bubble{max-width:94%}.status-badge{display:none}}.speak-btn{align-items:center;background:#ff4b721f;border:1px solid #ff4b7238;border-radius:999px;color:#ff4b72;color:var(--accent);cursor:pointer;display:inline-flex;font-size:.72rem;font-weight:600;gap:5px;padding:3px 8px;transition:all .18s ease}.speak-btn:hover{background:#ff4b7238;border-color:#ff4b72;border-color:var(--accent);transform:translateY(-1px)}.speak-btn.playing{background:linear-gradient(135deg,#ff4b72,#ff7b54 50%,#ffa366);background:var(--accent-gradient);border-color:#0000;box-shadow:0 2px 10px #ff4b7252;box-shadow:0 2px 10px var(--accent-glow);color:#fff}.equalizer-bars{align-items:flex-end;display:inline-flex;gap:2px;height:12px}.equalizer-bars span{animation:eqPulse .7s ease-in-out infinite alternate;background:#fff;border-radius:2px;width:2px}.equalizer-bars span:first-child{animation-delay:.1s;height:5px}.equalizer-bars span:nth-child(2){animation-delay:.35s;height:11px}.equalizer-bars span:nth-child(3){animation-delay:.2s;height:7px}@keyframes eqPulse{0%{height:3px}to{height:12px}}.message-image-frame{background:#00000026;border:1px solid #ffffff29;border:1px solid var(--line-strong);border-radius:16px;box-shadow:0 4px 16px -2px #0000004d;box-shadow:var(--shadow-sm);cursor:pointer;margin:6px 0 8px;max-width:min(340px,100%);overflow:hidden;position:relative;transition:transform .2s ease,box-shadow .2s ease}.message-image-frame:hover{box-shadow:0 12px 32px -8px #00000073,0 0 16px #ff4b7252;box-shadow:var(--shadow-md),0 0 16px var(--accent-glow);transform:translateY(-2px)}.message-image-frame img{display:block;height:auto;max-height:320px;object-fit:cover;transition:transform .25s ease;width:100%}.message-image-frame:hover img{transform:scale(1.025)}.image-expand-overlay{-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);background:#0c101ad1;border:1px solid #ffffff26;border-radius:999px;bottom:8px;color:#fff;font-size:.72rem;font-weight:600;opacity:.9;padding:4px 10px;pointer-events:none;position:absolute;right:8px;transition:opacity .18s ease}.message-image-frame:hover .image-expand-overlay{opacity:1}.composer-tool-btn{align-items:center;background:#0000;border-radius:12px;color:#9da6bc;color:var(--ink-secondary);display:flex;flex-shrink:0;height:38px;justify-content:center;margin-bottom:1px;padding:0;transition:all .18s cubic-bezier(.16,1,.3,1);width:38px}.composer-tool-btn:hover{background:#212941e6;background:var(--surface-hover);color:#ff4b72;color:var(--accent);transform:scale(1.06)}.mic-btn{position:relative}.mic-btn.listening{background:#ff3360!important;box-shadow:0 0 16px #ff33608c;color:#fff!important}.mic-pulse-ring{animation:micRingPulse 1.2s cubic-bezier(.25,1,.5,1) infinite;border:2px solid #ff3360;border-radius:16px;inset:-6px;pointer-events:none;position:absolute}@keyframes micRingPulse{0%{opacity:.9;transform:scale(.92)}to{opacity:0;transform:scale(1.35)}}.attachment-preview-bar{align-items:center;animation:slideAttachment .18s ease-out;background:#181e30d9;background:var(--surface-card);border:1px solid #ff4b72;border:1px solid var(--accent);border-radius:14px;box-shadow:0 4px 16px -2px #0000004d,0 0 12px #ff4b7252;box-shadow:var(--shadow-sm),0 0 12px var(--accent-glow);display:flex;gap:12px;padding:8px 12px}@keyframes slideAttachment{0%{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}.attachment-preview-thumb{border:1px solid #ffffff29;border:1px solid var(--line-strong);border-radius:8px;flex-shrink:0;height:44px;overflow:hidden;position:relative;width:44px}.attachment-preview-thumb img{display:block;height:100%;object-fit:cover;width:100%}.remove-attachment-btn{align-items:center;background:#000000bf;border:none;border-radius:50%;color:#fff;cursor:pointer;display:flex;height:18px;justify-content:center;padding:0;position:absolute;right:2px;top:2px;transition:background .15s ease;width:18px}.remove-attachment-btn:hover{background:#ff3360}.attachment-info{display:flex;flex-direction:column;gap:2px;overflow:hidden}.attachment-name{color:#f3f5fa;color:var(--ink-primary);font-size:.82rem;font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.attachment-ready{color:#ff4b72;color:var(--accent);font-size:.72rem;font-weight:500}.lightbox-backdrop{align-items:center;animation:fadeIn .2s ease;backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);background:#000000e0;display:flex;inset:0;justify-content:center;padding:24px;position:fixed;z-index:10000}.lightbox-content{align-items:center;animation:zoomIn .22s cubic-bezier(.16,1,.3,1);display:flex;flex-direction:column;max-height:88vh;max-width:min(90vw,800px);position:relative}.lightbox-img{border:1px solid #ffffff29;border-radius:18px;box-shadow:0 24px 64px #000000d9;max-height:78vh;max-width:100%;object-fit:contain}.lightbox-close-btn{align-items:center;background:#ffffff29;border-radius:50%;color:#fff;cursor:pointer;display:flex;height:36px;justify-content:center;position:absolute;right:0;top:-46px;transition:all .18s ease;width:36px}.lightbox-close-btn:hover{background:#ffffff4d;transform:scale(1.1)}.lightbox-footer{margin-top:14px}.lightbox-link{background:#ffffff14;border:1px solid #ffffff1f;border-radius:999px;color:#ffb26b;color:var(--accent-tertiary);font-size:.86rem;font-weight:600;padding:6px 14px;text-decoration:none;transition:all .18s ease}.lightbox-link:hover{background:#ffffff29;color:#fff}@keyframes zoomIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}.reaction-trigger-btn{align-items:center;background:#ffffff14;border-radius:6px;color:inherit;cursor:pointer;display:inline-flex;justify-content:center;opacity:.7;padding:3px 6px;transition:all .16s cubic-bezier(.16,1,.3,1)}.reaction-trigger-btn:hover{background:#ffffff2e;color:#ff4b72;color:var(--accent);opacity:1;transform:scale(1.1)}.reaction-trigger-btn.active{background:#ff4b72;background:var(--accent);box-shadow:0 0 10px #ff4b7252;box-shadow:0 0 10px var(--accent-glow);color:#fff;opacity:1}.quick-reaction-bar{align-items:center;animation:reactionPop .18s cubic-bezier(.16,1,.3,1);backdrop-filter:blur(24px);-webkit-backdrop-filter:blur(24px);background:#181e30d9;background:var(--surface-card);border:1px solid #ffffff29;border:1px solid var(--line-strong);border-radius:999px;box-shadow:0 12px 32px -8px #00000073,0 0 20px #ff4b7252;box-shadow:var(--shadow-md),0 0 20px var(--accent-glow);display:flex;gap:6px;left:14px;padding:4px 10px;position:absolute;top:-42px;z-index:60}.message-bubble.user .quick-reaction-bar{left:auto;right:14px}@keyframes reactionPop{0%{opacity:0;transform:translateY(8px) scale(.9)}to{opacity:1;transform:translateY(0) scale(1)}}.quick-react-item{align-items:center;background:#0000;border-radius:50%;cursor:pointer;display:flex;font-size:1.25rem;height:32px;justify-content:center;padding:0;transition:transform .15s ease,background .15s ease;-webkit-user-select:none;user-select:none;width:32px}.quick-react-item:hover{background:#ff4b7238;transform:scale(1.35) translateY(-3px)}.quick-react-item.selected{background:#ff4b7259;box-shadow:0 0 8px #ff4b7252;box-shadow:0 0 8px var(--accent-glow)}.message-reactions-tray{align-items:center;display:flex;flex-wrap:wrap;gap:6px;margin-top:6px;padding-top:4px}.reaction-pill{align-items:center;animation:pillPop .18s cubic-bezier(.16,1,.3,1);background:#ff4b7224;border:1px solid #ff4b7259;border-radius:999px;color:#f3f5fa;color:var(--ink-primary);cursor:pointer;display:inline-flex;font-size:.8rem;font-weight:600;gap:4px;padding:3px 9px;transition:all .18s cubic-bezier(.16,1,.3,1);-webkit-user-select:none;user-select:none}.message-bubble.user .reaction-pill{background:#ffffff38;border-color:#fff6;color:#fff}.reaction-pill:hover{background:#ff4b7247;border-color:#ff4b72;border-color:var(--accent);transform:scale(1.12)}.reaction-emoji{font-size:.95rem;line-height:1}.reaction-count{font-size:.74rem;font-weight:700;opacity:.85}.add-reaction-pill{align-items:center;background:#ffffff14;border:1px dashed #ffffff29;border:1px dashed var(--line-strong);border-radius:50%;color:#9da6bc;color:var(--ink-secondary);cursor:pointer;display:inline-flex;font-size:.92rem;font-weight:700;height:24px;justify-content:center;padding:0;transition:all .16s ease;width:24px}.message-bubble.user .add-reaction-pill{border-color:#ffffff59;color:#fffc}.add-reaction-pill:hover{background:#ff4b7226;border-color:#ff4b72;border-color:var(--accent);color:#ff4b72;color:var(--accent);transform:scale(1.15)}@keyframes pillPop{0%{opacity:0;transform:scale(.7)}60%{opacity:1;transform:scale(1.15)}to{opacity:1;transform:scale(1)}}
/*# sourceMappingURL=main.95996237.css.map*/