body {
  font-family: 'Inter', sans-serif;
  margin: 0;
  overflow-x: hidden;
  background-color: #fce8ec;
  color: #171717;
}

h1, h2, h3, .brand-font {
  font-family: 'Outfit', sans-serif;
}

/* ================= ENTERPRISE SSO BACKGROUND ================= */
.sso-bg {
  position: fixed;
  inset: 0;
  z-index: -2;
  background: linear-gradient(135deg, #f5f5f5 0%, #fce8ec 100%);
  background-image:
    linear-gradient(to right, rgba(165, 0, 52, 0.04) 1px, transparent 1px),
    linear-gradient(to bottom, rgba(165, 0, 52, 0.04) 1px, transparent 1px);
  background-size: 40px 40px;
  overflow: hidden;
}

.sso-shape {
  position: absolute;
  background: linear-gradient(135deg, #ffffff 0%, #fce8ec 100%);
  border: 1px solid rgba(165, 0, 52, 0.05);
  border-radius: 60px;
  box-shadow: 0 20px 40px rgba(165, 0, 52, 0.03);
  animation: floatShape 25s infinite alternate ease-in-out;
}
.shape-1 { width: 800px; height: 800px; top: -200px; right: -150px; transform: rotate(-15deg); }
.shape-2 { width: 600px; height: 600px; bottom: -150px; left: -100px; transform: rotate(10deg); animation-delay: -5s; }

@keyframes floatShape {
  0% { transform: translateY(0) rotate(-15deg); }
  100% { transform: translateY(40px) rotate(-10deg); }
}

/* ================= PREMIUM GLASS DASHBOARD CARD ================= */
.dashboard-card {
  background: rgba(255, 255, 255, 0.95);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border: 1px solid rgba(255, 255, 255, 1);
  box-shadow:
    0 25px 50px -12px rgba(165, 0, 52, 0.08),
    0 0 0 1px rgba(255, 255, 255, 0.5) inset;
}

/* ================= ENHANCED RECOVERY CHIPS ================= */
.recovery-chip {
  background: #a50034;
  border: 1px solid #8e002b;
  transition: all 0.4s cubic-bezier(0.4, 0, 0.2, 1);
  box-shadow: 0 4px 10px rgba(165, 0, 52, 0.15);
}

.recovery-chip .chip-icon,
.recovery-chip .chip-title,
.recovery-chip .chip-arrow {
  color: #ffffff;
  transition: all 0.4s ease;
}

.recovery-chip .chip-desc {
  color: rgba(255, 255, 255, 0.8);
  transition: all 0.4s ease;
}

.recovery-chip:hover {
  background: #8e002b;
  transform: translateY(-4px) scale(1.02);
  box-shadow: 0 12px 24px rgba(165, 0, 52, 0.3);
}

.recovery-chip:hover .chip-desc {
  color: rgba(255, 255, 255, 1);
}

/* ================= ICON ANIMATION ================= */
@keyframes iconFloat {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
}
.animate-icon {
  animation: iconFloat 3s ease-in-out infinite;
}

/* ================= STAGGERED ANIMATIONS ================= */
@keyframes slideFadeUp {
  from { opacity: 0; transform: translateY(20px); }
  to { opacity: 1; transform: translateY(0); }
}

.anim-1 { animation: slideFadeUp 0.6s cubic-bezier(0.16, 1, 0.3, 1) 0.1s forwards; opacity: 0; }
.anim-2 { animation: slideFadeUp 0.6s cubic-bezier(0.16, 1, 0.3, 1) 0.2s forwards; opacity: 0; }
.anim-3 { animation: slideFadeUp 0.6s cubic-bezier(0.16, 1, 0.3, 1) 0.3s forwards; opacity: 0; }
.anim-4 { animation: slideFadeUp 0.6s cubic-bezier(0.16, 1, 0.3, 1) 0.4s forwards; opacity: 0; }
.anim-5 { animation: slideFadeUp 0.6s cubic-bezier(0.16, 1, 0.3, 1) 0.5s forwards; opacity: 0; }

/* ================= MODERN INPUTS & BUTTONS ================= */
.input-modern {
  background: #ffffff;
  border: 1px solid #d4d4d4;
  transition: all 0.3s ease;
}
.input-modern:focus {
  border-color: #a50034;
  box-shadow: 0 0 0 4px rgba(165, 0, 52, 0.1);
  outline: none;
}

.btn-primary {
  background: linear-gradient(135deg, #a50034 0%, #8e002b 100%);
  color: white;
  transition: all 0.3s ease;
  box-shadow: 0 4px 12px rgba(165, 0, 52, 0.2);
}
.btn-primary:hover {
  box-shadow: 0 6px 20px rgba(165, 0, 52, 0.3);
  transform: translateY(-2px);
}
.btn-primary:active {
  transform: translateY(1px);
}
.border-neutral-200 {
  --tw-border-opacity: 1;
  border-color: #a50034 !important;
}

::-webkit-scrollbar { width: 6px; }
::-webkit-scrollbar-track { background: transparent; }
::-webkit-scrollbar-thumb { background: #d4d4d4; border-radius: 10px; }

/* ================= PREMIUM AI LAUNCHER ================= */

.ai-launcher {
    position: fixed;
    right: 26px;
    bottom: 26px;
    width: 72px;
    height: 72px;
    padding: 0;
    border: 0;
    border-radius: 50%;
    background: transparent;
    cursor: pointer;
    z-index: 99999;
    isolation: isolate;
    -webkit-tap-highlight-color: transparent;
    transform-origin: center;
    animation: periodic-wave 4s infinite;
}

.ai-launcher:hover,
.ai-launcher.ai-is-open {
    animation: none;
}

@keyframes periodic-wave {
    0%, 100% { transform: rotate(0deg); }
    5% { transform: rotate(15deg) scale(1.1); }
    10% { transform: rotate(-10deg) scale(1.1); }
    15% { transform: rotate(15deg) scale(1.1); }
    20% { transform: rotate(-10deg) scale(1.1); }
    25% { transform: rotate(0deg) scale(1); }
}

.ai-launcher-orb {
    position: absolute;
    inset: 0;
    display: grid;
    place-items: center;
    overflow: hidden;
    border-radius: 50%;

    background:
        radial-gradient(
            circle at 28% 18%,
            rgba(255,255,255,.32),
            transparent 42%
        ),
        linear-gradient(
            145deg,
            #d61b58 0%,
            #a50034 48%,
            #57001e 100%
        );

    border: 1px solid rgba(255,255,255,.55);

    box-shadow:
        inset 0 2px 3px rgba(255,255,255,.28),
        inset 0 -5px 10px rgba(35,0,12,.25),
        0 10px 24px rgba(115,0,37,.28);

    transition: transform .25s ease;
}

.ai-launcher-halo {
    position: absolute;
    inset: -7px;
    border-radius: 50%;
    border: 1px solid rgba(165,0,52,.28);
    background: rgba(165,0,52,.055);
    pointer-events: none;
    animation: ai-halo 5s ease-out 3;
}

.ai-launcher-shine {
    position: absolute;
    inset: -35%;
    background: linear-gradient(
        110deg,
        transparent 38%,
        rgba(255,255,255,.35) 49%,
        transparent 60%
    );
    transform: translateX(-110%) rotate(-12deg);
    pointer-events: none;
    animation: ai-shine 6s ease-in-out 3;
}

.ai-launcher-icon {
    position: relative;
    width: 47px;
    height: 47px;
    pointer-events: none;
}

.ai-launcher-eyes {
    transform-box: fill-box;
    transform-origin: center;
    animation: ai-blink 6s ease-in-out 3;
}

.ai-launcher-badge {
    position: absolute;
    top: -3px;
    right: -3px;
    display: grid;
    place-items: center;
    min-width: 25px;
    height: 23px;
    padding: 0 5px;
    border: 2px solid #ffffff;
    border-radius: 8px;
    background: #350015;
    color: #ffffff;
    font: 800 10px/1 "Segoe UI", Arial, sans-serif;
    letter-spacing: .5px;
    box-shadow: 0 3px 8px rgba(0,0,0,.15);
    pointer-events: none;
}

.ai-launcher-label {
    position: absolute;
    right: 88px;
    top: 50%;
    width: 195px;
    padding: 12px 16px;
    border: 1px solid #ead6de;
    border-radius: 14px;
    background: #ffffff;
    box-shadow: 0 6px 20px rgba(80,0,25,.10);
    text-align: left;
    opacity: 0;
    transform: translate(8px, -50%);
    pointer-events: none;
    animation: ai-invitation 12s ease 1s 1 both;
}

.ai-launcher-label::after {
    content: "";
    position: absolute;
    right: -6px;
    top: calc(50% - 6px);
    width: 10px;
    height: 10px;
    background: #ffffff;
    border-top: 1px solid #ead6de;
    border-right: 1px solid #ead6de;
    transform: rotate(45deg);
}

.ai-launcher-label-heading {
    display: block;
    color: #a50034;
    font: 700 13px/1.4 "Segoe UI", Arial, sans-serif;
}

.ai-launcher-label-caption {
    display: block;
    margin-top: 3px;
    color: #74717a;
    font: 400 11px/1.4 "Segoe UI", Arial, sans-serif;
}

.ai-launcher:hover .ai-launcher-orb,
.ai-launcher:focus-visible .ai-launcher-orb {
    transform: translateY(-3px) scale(1.04);
}

.ai-launcher:hover .ai-launcher-label,
.ai-launcher:focus-visible .ai-launcher-label {
    animation: none;
    opacity: 1;
    transform: translate(0, -50%);
}

.ai-launcher:active .ai-launcher-orb {
    transform: scale(.96);
}

.ai-launcher:focus-visible {
    outline: 3px solid #a50034;
    outline-offset: 7px;
}

.ai-launcher.ai-is-open .ai-launcher-halo,
.ai-launcher.ai-is-open .ai-launcher-shine,
.ai-launcher.ai-is-open .ai-launcher-eyes {
    animation-play-state: paused;
}

.ai-launcher.ai-is-open .ai-launcher-label {
    display: none;
}

body.lgt-running .ai-launcher-halo,
body.lgt-running .ai-launcher-shine,
body.lgt-running .ai-launcher-eyes {
    animation-play-state: paused;
}

body.lgt-running .ai-launcher-label {
    display: none;
}

@keyframes ai-halo {
    0%, 15% {
        transform: scale(.95);
        opacity: 0;
    }
    30% {
        opacity: .7;
    }
    75%, 100% {
        transform: scale(1.3);
        opacity: 0;
    }
}

@keyframes ai-shine {
    0%, 65% {
        transform: translateX(-110%) rotate(-12deg);
        opacity: 0;
    }
    70% {
        opacity: 1;
    }
    90%, 100% {
        transform: translateX(110%) rotate(-12deg);
        opacity: 0;
    }
}

@keyframes ai-blink {
    0%, 44%, 48%, 100% {
        transform: scaleY(1);
    }
    46% {
        transform: scaleY(.12);
    }
}

@keyframes ai-invitation {
    0% {
        opacity: 0;
        transform: translate(8px, -50%);
    }
    8%, 82% {
        opacity: 1;
        transform: translate(0, -50%);
    }
    100% {
        opacity: 0;
        transform: translate(8px, -50%);
    }
}

@media (max-width: 480px) {
    .ai-launcher {
        right: 20px;
        bottom: 20px;
        width: 64px;
        height: 64px;
    }

    .ai-launcher-label {
        right: 78px;
        width: 180px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .ai-launcher,
    .ai-launcher *,
    .ai-launcher *::before,
    .ai-launcher *::after {
        animation: none !important;
        transition: none !important;
    }

    .ai-launcher-label {
        opacity: 1;
        transform: translate(0, -50%);
    }

    .ai-launcher-halo,
    .ai-launcher-shine {
        display: none;
    }
}

.ai-launcher .ai-launcher-icon {
    width: 58px;
    height: 58px;
    overflow: visible;
    animation: none !important;
    transform: none !important;
}

.ai-robot-character {
    transform-box: view-box;
    transform-origin: 32px 54px;
    animation: ai-character-dance 10s ease-in-out infinite;
}

.ai-robot-wave {
    transform-box: view-box;
    transform-origin: 44px 41px;
    animation: ai-character-wave 10s ease-in-out infinite;
}

@keyframes ai-character-dance {
    0%, 5% {
        transform: translateY(0) rotate(0deg);
    }

    10% {
        transform: translateY(-2px) rotate(-7deg);
    }

    15% {
        transform: translateY(-2px) rotate(7deg);
    }

    20% {
        transform: translateY(-4px) rotate(-5deg);
    }

    25% {
        transform: translateY(0) rotate(5deg);
    }

    30%, 100% {
        transform: translateY(0) rotate(0deg);
    }
}

@keyframes ai-character-wave {
    0%, 5% {
        transform: rotate(0deg);
    }

    9% {
        transform: rotate(-22deg);
    }

    13% {
        transform: rotate(12deg);
    }

    17% {
        transform: rotate(-22deg);
    }

    21% {
        transform: rotate(12deg);
    }

    25% {
        transform: rotate(-18deg);
    }

    30%, 100% {
        transform: rotate(0deg);
    }
}

.ai-launcher:hover .ai-robot-character,
.ai-launcher:focus-visible .ai-robot-character {
    animation-play-state: paused;
}

.ai-launcher.ai-is-open .ai-robot-character,
.ai-launcher.ai-is-open .ai-robot-wave,
body.lgt-running .ai-robot-character,
body.lgt-running .ai-robot-wave {
    animation-play-state: paused;
}

@media (prefers-reduced-motion: reduce) {
    .ai-launcher .ai-robot-character,
    .ai-launcher .ai-robot-wave {
        animation: none !important;
        transform: none !important;
    }
}

.ai-launcher {
    animation: premium-pulse 3s infinite;
}

.ai-launcher:hover {
    animation: none;
}