.btn-organic{position:relative;overflow:hidden;transform-style:preserve-3d}.btn-organic,.btn-organic:before{transition:all .25s cubic-bezier(.4,0,.2,1)}.btn-organic:before{content:"";position:absolute;top:50%;left:50%;width:0;height:0;background:radial-gradient(circle,rgba(255,255,255,.3) 0,transparent 70%);transform:translate(-50%,-50%);border-radius:50%}.btn-organic:hover:before{width:300px;height:300px}.dark .btn-organic:hover{box-shadow:0 8px 25px rgba(158,186,169,.15)}.button-success{background-color:rgb(34 197 94);color:white;transform:scale(1);transition:all var(--animation-gentle) var(--ease-gentle)}.button-success:hover{background-color:rgb(22 163 74);transform:scale(1.02)}.input-enhanced{transition:all var(--animation-gentle) var(--ease-gentle);border-radius:1.5rem}.input-enhanced:focus{outline:none;transform:translateY(-2px);box-shadow:0 8px 25px rgba(158,186,169,.2)}.form-input-enhanced{font-size:var(--text-base);line-height:var(--leading-normal);padding:var(--space-sm) var(--space-md);border-radius:var(--radius);border:2px solid hsl(var(--border)/.3);background-color:hsl(var(--background));color:hsl(var(--foreground));transition:all var(--animation-gentle) var(--ease-gentle);font-weight:var(--font-normal)}.form-input-enhanced:focus{outline:none;border-color:hsl(var(--primary));box-shadow:0 0 0 3px hsl(var(--primary)/.1);background-color:hsl(var(--background))}.form-input-error{border-color:rgb(239 68 68);background-color:rgb(254 242 242);color:rgb(185 28 28);animation:inputErrorShake .3s ease-in-out}.form-input-error:focus{border-color:rgb(239 68 68);box-shadow:0 0 0 3px rgba(239,68,68,.1)}.input-success{border-color:rgb(34 197 94);background-color:rgb(240 253 244);transition:all var(--animation-gentle) var(--ease-gentle)}.input-success:focus{border-color:rgb(34 197 94);box-shadow:0 0 0 3px rgba(34,197,94,.1)}.validation-progress{height:2px;background-color:hsl(var(--muted));border-radius:1px;overflow:hidden;margin-top:4px;opacity:0;transition:opacity var(--animation-gentle) var(--ease-gentle)}.validation-progress.show{opacity:1}.validation-progress:after{content:"";position:absolute;top:0;left:-100%;width:100%;height:100%;background-color:hsl(var(--primary));animation:validationProgress 1s var(--ease-gentle) forwards}.form-group-spaced{margin-bottom:var(--space-lg)}.form-group-spaced:last-child{margin-bottom:0}.required-indicator{color:rgb(239 68 68);font-weight:var(--font-medium);margin-left:2px}.validation-summary{padding:var(--space-md);border-radius:var(--radius);border:1px solid hsl(var(--border));background-color:hsl(var(--muted)/.3);margin-bottom:var(--space-lg)}.validation-summary.has-errors{border-color:rgb(239 68 68/.5);background-color:rgb(254 242 242);color:rgb(185 28 28)}.validation-summary.is-valid{border-color:rgb(34 197 94/.5);background-color:rgb(240 253 244);color:rgb(22 163 74)}.message-bubble{border-radius:1.5rem;box-shadow:0 4px 16px rgba(0,0,0,.06);overflow-wrap:anywhere;word-break:break-word;hyphens:auto}.dark .message-bubble{box-shadow:0 4px 16px rgba(0,0,0,.2)}.dark .resource-drawer-content,.resource-drawer-content{background-color:hsl(var(--background));color:hsl(var(--foreground))}.therapeutic-card{background-color:#DDE8E0;box-shadow:0 4px 16px rgba(0,0,0,.06);border-radius:1.5rem}.dark .therapeutic-card,.therapeutic-card{color:hsl(var(--therapeutic-card-foreground))}.dark .therapeutic-card{background-color:hsl(var(--therapeutic-card));box-shadow:0 4px 16px rgba(0,0,0,.2)}.card-enhanced{background:rgba(255,255,255,.9);backdrop-filter:blur(15px);border:1px solid hsl(var(--border));box-shadow:0 1px 3px rgba(158,186,169,.12),0 8px 32px rgba(158,186,169,.08),inset 0 1px 1px rgba(255,255,255,.8)}.dark .card-enhanced{background:rgba(45,55,72,.95);border:1px solid rgba(158,186,169,.3);box-shadow:0 8px 32px rgba(0,0,0,.4)}.prompt-card-hover{transition:transform var(--animation-instant) ease-out,box-shadow var(--animation-instant) ease-out}.prompt-card-hover:hover{transform:translateY(-2px);box-shadow:0 8px 25px rgba(0,0,0,.1)}.typing-indicator{animation:typingIndicator .25s ease-in-out infinite}.skeleton{background:linear-gradient(90deg,hsl(var(--muted)) 0,hsl(var(--muted)) 40%,rgba(255,255,255,.8) 50%,hsl(var(--muted)) 60%,hsl(var(--muted)) 100%);background-size:200% 100%;animation:shimmer 1s ease-in-out infinite;border-radius:.75rem;position:relative;overflow:hidden}.skeleton:after{position:absolute;top:0;right:0;bottom:0;left:0;transform:translateX(-100%);background:linear-gradient(90deg,transparent,rgba(255,255,255,.4),transparent);animation:loading-shimmer 2s ease-in-out infinite;content:""}@keyframes fadeIn{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}@keyframes gentleFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes simpleFadeIn{0%{opacity:0}to{opacity:1}}@keyframes messageEnter{0%{opacity:0;transform:translateY(30px) scale(.92)}40%{opacity:.7;transform:translateY(10px) scale(.96)}70%{opacity:.95;transform:translateY(-5px) scale(1.02)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes messageAppear{0%{opacity:0;transform:translateY(25px) scale(.94)}30%{opacity:.6;transform:translateY(12px) scale(.97)}70%{opacity:.9;transform:translateY(-2px) scale(1.01)}to{opacity:1;transform:translateY(0) scale(1)}}@keyframes messageSent{0%{opacity:.8;transform:scale(.98)}50%{opacity:1;transform:scale(1.01)}to{opacity:1;transform:scale(1)}}@keyframes messageSending{0%{opacity:.7;transform:scale(.98)}to{opacity:1;transform:scale(1)}}@keyframes sendButtonActive{0%{transform:scale(1)}50%{transform:scale(.95)}to{transform:scale(1)}}@keyframes btnPulseActive{0%,to{transform:scale(1);box-shadow:0 4px 16px rgba(158,186,169,.2)}50%{transform:scale(1.05);box-shadow:0 6px 20px rgba(158,186,169,.3)}}@keyframes typingIndicator{0%,60%,to{opacity:.3;transform:translateY(0)}30%{opacity:1;transform:translateY(-4px)}}@keyframes thinkingPulse{0%,to{transform:scale(1);box-shadow:0 4px 16px rgba(158,186,169,.2)}50%{transform:scale(1.05);box-shadow:0 6px 20px rgba(158,186,169,.35)}}@keyframes actionTextFade{0%{opacity:.7;transform:translateY(2px)}to{opacity:1;transform:translateY(0)}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}@keyframes loading-shimmer{to{transform:translateX(100%)}}@keyframes loadingPulse{0%,to{opacity:1;transform:scale(1)}50%{opacity:.7;transform:scale(1.02)}}@keyframes pageSlideIn{0%{opacity:0;transform:translateX(40px) scale(.92)}30%{opacity:.6;transform:translateX(25px) scale(.95)}70%{opacity:.9;transform:translateX(8px) scale(.98)}to{opacity:1;transform:translateX(0) scale(1)}}@keyframes pageSlideOut{0%{opacity:1;transform:translateX(0) scale(1)}50%{opacity:.5;transform:translateX(-15px) scale(.96)}to{opacity:0;transform:translateX(-30px) scale(.92)}}@keyframes pageEnter{0%{opacity:0;transform:translateX(35px) scale(.93)}40%{opacity:.7;transform:translateX(20px) scale(.96)}to{opacity:1;transform:translateX(0) scale(1)}}@keyframes pageExit{0%{opacity:1;transform:translateX(0) scale(1)}50%{opacity:.6;transform:translateX(-12px) scale(.97)}to{opacity:0;transform:translateX(-25px) scale(.94)}}@keyframes contentStagger{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes promptFadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}@keyframes dialogFadeIn{0%{opacity:0;transform:scale(.95) translateY(-10px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes backdropFadeIn{0%{opacity:0}to{opacity:1}}@keyframes popoverSlideIn{0%{opacity:0;transform:scale(.96) translateY(-5px)}to{opacity:1;transform:scale(1) translateY(0)}}@keyframes successGentle{0%{transform:scale(.8);opacity:0}50%{transform:scale(1.05)}to{transform:scale(1);opacity:1}}@keyframes successSparkle{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}@keyframes successStar{0%{transform:scale(.8);opacity:0}to{transform:scale(1);opacity:1}}@keyframes successHeart{0%{transform:scale(1)}to{transform:scale(1.05)}}@keyframes successToastEnter{0%{transform:translateY(-20px) scale(.9);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}@keyframes progressFill{0%{width:0}}@keyframes inputErrorShake{0%,to{transform:translateX(0)}25%{transform:translateX(-2px)}75%{transform:translateX(2px)}}@keyframes validationProgress{to{left:0}}@keyframes themeWave{0%{transform:translateX(-100%) translateY(-100%) rotate(45deg);opacity:0}50%{opacity:.3}to{transform:translateX(100vw) translateY(100vh) rotate(45deg);opacity:0}}@keyframes gentleThemePulse{0%{transform:scale(1);opacity:1}50%{transform:scale(1.02);opacity:.9}to{transform:scale(1);opacity:1}}@keyframes themeTransitionComplete{0%{opacity:0}50%{opacity:1}to{opacity:0}}.fade-in{animation:fadeIn var(--animation-gentle) var(--ease-gentle)}.message-appear{animation:messageAppear .25s cubic-bezier(.4,0,.2,1)}.message-enter{animation:messageEnter var(--animation-gentle) var(--ease-gentle)}.message-sent{animation:messageSent var(--animation-gentle) var(--ease-gentle)}.message-sending{animation:messageSending .15s ease-out}.prompt-fade-in{animation:promptFadeIn var(--animation-gentle) var(--ease-gentle)}.typing-indicator{animation:typingIndicator 1.4s infinite}.thinking-pulse{animation:thinkingPulse 2s ease-in-out infinite}.action-text-fade{animation:actionTextFade .15s ease-in-out}.thinking-dot-1{animation-delay:0s}.thinking-dot-2{animation-delay:.1s}.thinking-dot-3{animation-delay:.2s}.gentle-fade-in{animation:gentleFadeIn .25s cubic-bezier(.4,0,.2,1)}.loading-pulse{animation:loadingPulse var(--animation-gentle) cubic-bezier(.4,0,.6,1) infinite}.page-enter{animation:pageSlideIn .25s cubic-bezier(.4,0,.2,1)}.page-exit{animation:pageSlideOut .15s cubic-bezier(.4,0,.2,1)}.page-transition-enter{animation:pageEnter .25s cubic-bezier(.4,0,.2,1)}.page-transition-exit{animation:pageExit .15s cubic-bezier(.4,0,.2,1)}.content-stagger{animation:contentStagger .25s cubic-bezier(.4,0,.2,1)}.dialog-enter{animation:dialogFadeIn .15s cubic-bezier(.4,0,.2,1)}.dialog-backdrop-enter{animation:backdropFadeIn .15s ease-out}.popover-enter{animation:popoverSlideIn .15s cubic-bezier(.4,0,.2,1)}.success-gentle{animation:successGentle var(--animation-gentle) var(--ease-gentle) forwards}.success-sparkle{animation:successSparkle var(--animation-gentle) var(--ease-gentle) forwards}.success-star{animation:successStar .6s var(--ease-gentle) forwards}.success-heart{animation:successHeart 2s ease-in-out infinite alternate}.success-toast-enter{animation:successToastEnter .3s var(--ease-gentle) forwards}.progress-fill{animation:progressFill 1s var(--ease-gentle) forwards}.theme-wave-overlay.active{animation:themeWave 1.2s cubic-bezier(.23,1,.32,1) forwards}.performance-accelerated{will-change:transform,opacity;transform:translateZ(0);backface-visibility:hidden;perspective:1000px}.performance-smooth{animation-fill-mode:both;animation-timing-function:cubic-bezier(.25,.46,.45,.94)}.performance-layout-stable{contain:layout style paint}.performance-paint-optimized{contain:paint;isolation:isolate}.performance-transform{transform:translateZ(0)}.performance-content-visibility{content-visibility:auto;contain-intrinsic-size:100px}.animate-performance{animation-duration:.2s;animation-timing-function:ease-out;animation-fill-mode:both}