@import url('https://fonts.googleapis.com/css2?family=Archivo:wght@400;500;600;700&family=Roboto:wght@400;500;700&display=swap');
@import 'react-day-picker/style.css';

@tailwind base;
@tailwind components;
@tailwind utilities;

body {
  font-family: 'Roboto', Arial, Helvetica, sans-serif;
}

@keyframes booking-fade-in {
  from {
    opacity: 0;
    transform: translateY(16px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes online-pulse {
  0% {
    box-shadow: 0 0 0 0 rgba(52, 168, 83, 0.45);
  }
  70% {
    box-shadow: 0 0 0 8px rgba(52, 168, 83, 0);
  }
  100% {
    box-shadow: 0 0 0 0 rgba(52, 168, 83, 0);
  }
}
@keyframes float1 {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-7px);
  }
}

@keyframes float2 {
  0%, 100% {
    transform: translateY(0) translateX(0);
  }
  50% {
    transform: translateY(-5px) translateX(4px);
  }
}

@keyframes float3 {
  0%, 100% {
    transform: translateY(0);
  }
  50% {
    transform: translateY(-9px);
  }
}

@keyframes offline-orb-drift {
  0%, 100% {
    transform: translate(0, 0) scale(1);
  }
  33% {
    transform: translate(12px, -18px) scale(1.05);
  }
  66% {
    transform: translate(-8px, 10px) scale(0.97);
  }
}

@keyframes offline-shimmer {
  0% {
    background-position: 200% center;
  }
  100% {
    background-position: -200% center;
  }
}

@keyframes countdown-tick {
  0% {
    opacity: 0.4;
    transform: translateY(6px) scale(0.96);
  }
  100% {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

@keyframes offline-fade-up {
  from {
    opacity: 0;
    transform: translateY(20px);
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

@keyframes hire-gate-spin {
  to {
    transform: rotate(360deg);
  }
}

@keyframes hire-success-pop {
  0% {
    opacity: 0;
    transform: scale(0.85);
  }
  60% {
    transform: scale(1.05);
  }
  100% {
    opacity: 1;
    transform: scale(1);
  }
}

@keyframes offline-pulse-ring {
  0%, 100% {
    opacity: 0.35;
    transform: scale(1);
  }
  50% {
    opacity: 0.6;
    transform: scale(1.03);
  }
}

@layer components {
  .booking-page {
    @apply min-h-screen flex flex-col items-center justify-center px-4 py-10;
    background: #eef1f5;
  }

  .booking-card {
    @apply w-full bg-white overflow-hidden;
    max-width: 920px;
    border-radius: 16px;
    box-shadow: 0 2px 4px rgba(0, 0, 0, 0.06), 0 12px 32px rgba(0, 0, 0, 0.08);
    animation: booking-fade-in 0.5s ease-out;
  }

  .booking-dots {
    @apply relative overflow-hidden bg-white;
  }

  .animate-online-pulse {
    animation: online-pulse 1.8s ease-out infinite;
  }

  .offline-page-bg {
    background:
      radial-gradient(ellipse 120% 80% at 50% -30%, rgba(219, 10, 64, 0.35), transparent 55%),
      radial-gradient(ellipse 60% 50% at 100% 50%, rgba(0, 20, 137, 0.2), transparent 50%),
      radial-gradient(ellipse 50% 40% at 0% 80%, rgba(255, 201, 6, 0.08), transparent 45%),
      linear-gradient(165deg, #0a0f18 0%, #0d1024 35%, #001489 70%, #000B5C 100%);
  }

  .offline-glass {
    @apply rounded-3xl border border-white/10 bg-white/[0.07] shadow-[0_24px_80px_rgba(0,0,0,0.45)] backdrop-blur-xl;
  }

  .offline-glass-light {
    @apply rounded-2xl border border-white/20 bg-white/95 shadow-[0_20px_60px_rgba(0,0,0,0.25)] backdrop-blur-md;
  }

  .offline-countdown-digit {
    animation: countdown-tick 0.35s ease-out;
  }

  .offline-fade-up {
    animation: offline-fade-up 0.7s ease-out both;
  }

  .offline-orb {
    animation: offline-orb-drift 14s ease-in-out infinite;
  }

  .offline-shimmer-text {
    background: linear-gradient(
      90deg,
      rgba(255, 255, 255, 0.75) 0%,
      rgba(255, 255, 255, 1) 45%,
      rgba(255, 255, 255, 0.75) 100%
    );
    background-size: 200% auto;
    -webkit-background-clip: text;
    background-clip: text;
    color: transparent;
    animation: offline-shimmer 4s linear infinite;
  }

  .hire-gate-bg {
    background:
      radial-gradient(ellipse 100% 70% at 50% -20%, rgba(219, 10, 64, 0.32), transparent 55%),
      radial-gradient(ellipse 55% 45% at 100% 30%, rgba(0, 20, 137, 0.18), transparent 50%),
      radial-gradient(ellipse 45% 40% at 0% 70%, rgba(255, 201, 6, 0.06), transparent 45%),
      linear-gradient(165deg, #0a0f18 0%, #0d1024 40%, #001489 75%, #000B5C 100%);
  }

  .hire-gate-glass {
    @apply rounded-[1.75rem] border border-white/10 bg-white/[0.06] shadow-[0_32px_100px_rgba(0,0,0,0.5)] backdrop-blur-2xl;
  }

  .hire-gate-fade-up {
    animation: offline-fade-up 0.65s ease-out both;
  }

  .hire-gate-success {
    animation: hire-success-pop 0.55s ease-out both;
  }

  .hire-gate-ring {
    animation: hire-gate-spin 1.1s linear infinite;
  }
}

@layer utilities {
  .text-balance {
    text-wrap: balance;
  }
}

@layer base {
  :root {
    --background: 0 0% 100%;
    --foreground: 0 0% 3.9%;
    --card: 0 0% 100%;
    --card-foreground: 0 0% 3.9%;
    --popover: 0 0% 100%;
    --popover-foreground: 0 0% 3.9%;
    --primary: 0 0% 9%;
    --primary-foreground: 0 0% 98%;
    --secondary: 0 0% 96.1%;
    --secondary-foreground: 0 0% 9%;
    --muted: 0 0% 96.1%;
    --muted-foreground: 0 0% 45.1%;
    --accent: 0 0% 96.1%;
    --accent-foreground: 0 0% 9%;
    --destructive: 0 84.2% 60.2%;
    --destructive-foreground: 0 0% 98%;
    --border: 0 0% 89.8%;
    --input: 0 0% 89.8%;
    --ring: 346 91% 46%;
    --chart-1: 12 76% 61%;
    --chart-2: 173 58% 39%;
    --chart-3: 197 37% 24%;
    --chart-4: 43 74% 66%;
    --chart-5: 27 87% 67%;
    --radius: 0.5rem;
    --sidebar-background: 0 0% 98%;
    --sidebar-foreground: 240 5.3% 26.1%;
    --sidebar-primary: 240 5.9% 10%;
    --sidebar-primary-foreground: 0 0% 98%;
    --sidebar-accent: 240 4.8% 95.9%;
    --sidebar-accent-foreground: 240 5.9% 10%;
    --sidebar-border: 220 13% 91%;
    --sidebar-ring: 217.2 91.2% 59.8%;
  }
  .dark {
    --background: 0 0% 3.9%;
    --foreground: 0 0% 98%;
    --card: 0 0% 3.9%;
    --card-foreground: 0 0% 98%;
    --popover: 0 0% 3.9%;
    --popover-foreground: 0 0% 98%;
    --primary: 0 0% 98%;
    --primary-foreground: 0 0% 9%;
    --secondary: 0 0% 14.9%;
    --secondary-foreground: 0 0% 98%;
    --muted: 0 0% 14.9%;
    --muted-foreground: 0 0% 63.9%;
    --accent: 0 0% 14.9%;
    --accent-foreground: 0 0% 98%;
    --destructive: 0 62.8% 30.6%;
    --destructive-foreground: 0 0% 98%;
    --border: 0 0% 14.9%;
    --input: 0 0% 14.9%;
    --ring: 0 0% 83.1%;
    --chart-1: 220 70% 50%;
    --chart-2: 160 60% 45%;
    --chart-3: 30 80% 55%;
    --chart-4: 280 65% 60%;
    --chart-5: 340 75% 55%;
    --sidebar-background: 240 5.9% 10%;
    --sidebar-foreground: 240 4.8% 95.9%;
    --sidebar-primary: 224.3 76.3% 48%;
    --sidebar-primary-foreground: 0 0% 100%;
    --sidebar-accent: 240 3.7% 15.9%;
    --sidebar-accent-foreground: 240 4.8% 95.9%;
    --sidebar-border: 240 3.7% 15.9%;
    --sidebar-ring: 217.2 91.2% 59.8%;
  }
}

@layer base {
  * {
    @apply border-border;
  }
  body {
    @apply bg-background text-foreground;
  }
}
