.bubble { display: flex; align-items: flex-start; gap: var(--spacing-sm, 10px); width: min(72vw, 280px); padding: var(--spacing-md, 12px) clamp(12px, 2.593vw, 14px); border-radius: var(--responsive-card-radius-sm, 20px); box-shadow: var(--shadow-input-box, 0 1px 2px rgba(0, 0, 0, 0.1)); } .bubbleAi { border-top-left-radius: 0; background: #ffffff; color: var(--color-text-foreground, #171717); } .bubbleUser { border-top-right-radius: 0; background: linear-gradient( to right, var(--color-button-gradient-start, #ff67e0), var(--color-button-gradient-end, #ff52a2) ); color: #ffffff; } .locked { border: 1px solid rgba(246, 87, 160, 0.2); background: linear-gradient(180deg, rgba(255, 244, 248, 0.95), rgba(255, 255, 255, 0.95)), #ffffff; color: #3c3b3b; } .playButton { display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; width: clamp(32px, 6.296vw, 34px); height: clamp(32px, 6.296vw, 34px); border: 0; border-radius: 50%; background: rgba(246, 87, 160, 0.14); color: #f657a0; cursor: pointer; } .bubbleUser .playButton { background: rgba(255, 255, 255, 0.22); color: #ffffff; } .locked .playButton { background: linear-gradient(135deg, #ff8fc7 0%, #f657a0 100%); color: #ffffff; } .playButton:disabled { cursor: not-allowed; opacity: 0.6; } .playButton:focus-visible { outline: 2px solid currentColor; outline-offset: 2px; } .body { display: flex; min-width: 0; flex: 1 1 auto; flex-direction: column; gap: var(--spacing-sm, 8px); } .wave { display: flex; align-items: center; gap: var(--responsive-inline-gap-xs, 4px); height: clamp(32px, 6.296vw, 34px); } .wave span { display: block; width: clamp(3px, 0.741vw, 4px); border-radius: 999px; background: currentColor; opacity: 0.72; } .wave span:nth-child(1) { height: clamp(10px, 2.222vw, 12px); } .wave span:nth-child(2) { height: clamp(18px, 4.074vw, 22px); } .wave span:nth-child(3) { height: clamp(24px, 5.556vw, 30px); } .wave span:nth-child(4) { height: clamp(15px, 3.333vw, 18px); } .wave span:nth-child(5) { height: clamp(21px, 4.815vw, 26px); } .error { margin: 0; color: var(--color-error, #ff4d4f); font-size: var(--responsive-micro, var(--font-size-sm, 12px)); line-height: 1.4; } .bubbleUser .error { color: #ffffff; } .hint { margin: 0; color: #3c3b3b; font-size: var(--responsive-body, 14px); line-height: 1.4; } .unlockButton { align-self: flex-start; margin-top: 2px; padding: clamp(8px, 1.667vw, 9px) clamp(12px, 2.593vw, 14px); border: 0; border-radius: 999px; background: linear-gradient(90deg, #ff67e0, #ff52a2); color: #ffffff; cursor: pointer; font-size: var(--responsive-body, 14px); font-weight: 700; } .unlockButton:disabled { cursor: not-allowed; opacity: 0.65; } .unlockButton:focus-visible { outline: 2px solid #f657a0; outline-offset: 3px; }