/* src/input.css */

/* --- PWA Enhancements --- */

/* Disable the "pull-to-refresh" gesture on touch devices */

html, body, #app-content  {
        overscroll-behavior-y: contain; }

body { font-family: 'Poppins', 'Inter', sans-serif; }

.fade-in { animation: fadeIn 0.5s ease-in-out; }

@keyframes fadeIn {
            from { opacity: 0; transform: translateY(-10px); }
            to { opacity: 1; transform: translateY(0); }
        }

.modal-backdrop {
            position: fixed; top: 0; left: 0; width: 100%; height: 100%;
            /* background-color: rgba(0,0,0,0.6); display: flex; */
            background-color: rgba(17, 24, 39, 0.7); /* This is like Tailwind's gray-900 at 70% opacity */
            backdrop-filter: blur(4px);
            -webkit-backdrop-filter: blur(4px); /* For Safari support */
            display: flex;
            justify-content: center;  
            align-items: center;
            z-index: 1000;
        }

@keyframes modalFadeIn {
  from { opacity: 0; transform: translateY(30px) scale(0.95); }
  to { opacity: 1; transform: translateY(0) scale(1); }
}

.modal-content {
            background-color: white;
            max-width: 500px;
            max-height: 90vh;
            overflow-y: auto;
            -webkit-overflow-scrolling: touch;
            position: relative;
            transition: all 0.3s ease-in-out;
            box-shadow: 0 20px 40px rgba(0,0,0,0.2);
            border-radius: 1rem;
            padding: 2rem;
            width: 90%;
            animation: modalFadeIn 0.4s ease-out;
            display: flex;
            flex-direction: column;
        }

.modal-content-video {
            max-width: 768px; /* Equivalent to Tailwind's 'md' breakpoint */
        }

.stat-input {
            width: 100%; padding: 0.5rem; border: 1px solid #d1d5db;
            border-radius: 0.375rem; text-align: center; font-weight: 600;
            transition: all 0.2s ease-in-out;
        }

.stat-input:focus {
             border-color: #FF6600;
        }

.stat-saved {
            background-color: #D1FAE5 !important;
            border-color: #10B981 !important;
        }

.btn-spinner {
            animation: spin 1s linear infinite;
            border-top-color: transparent;
            border-right-color: white;
            border-bottom-color: white;
            border-left-color: white;
        }

.btn-spinner-dark {
            border-right-color: #4B5563;
            border-bottom-color: #4B5563;
            border-left-color: #4B5563;
        }

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

.workout-section details summary {
            cursor: pointer;
            padding: 0.75rem 1rem;
            border: 1px solid;
            border-radius: 0.5rem;
            font-weight: 600;
            display: flex;
            justify-content: space-between;
            align-items: center;
            transition: background-color 0.2s;
        }

.workout-section details[open] summary {
            border-bottom-left-radius: 0;
            border-bottom-right-radius: 0;
        }

.workout-section-content {
            padding: 1rem;
            border: 1px solid;
            border-top: none;
            border-bottom-left-radius: 0.5rem;
            border-bottom-right-radius: 0.5rem;
        }

.summary-warmup { background-color: #FEF2F2; border-color: #FECACA; }

.summary-warmup:hover { background-color: #FEE2E2; }

.content-warmup { border-color: #FECACA; }

.summary-activation { background-color: #f5d0fe; border-color: #e9a8fb; }

.summary-activation:hover { background-color: #f2bcfb; }

.content-activation { border-color: #e9a8fb; }

.summary-circuit1 { background-color: #dbeafe; border-color: #bfdbfe; }

.summary-circuit1:hover { background-color: #c6dafc; }

.content-circuit1 { border-color: #bfdbfe; }

.summary-circuit2 { background-color: #dcfce7; border-color: #bbf7d0; }

.summary-circuit2:hover { background-color: #cbf9d7; }

.content-circuit2 { border-color: #bbf7d0; }

.summary-circuit3 { background-color: #fef3c7; border-color: #fde68a; }

.summary-circuit3:hover { background-color: #fdeda7; }

.content-circuit3 { border-color: #fde68a; }

/* --- Drag and Drop UX Styles --- */

/* This styles the placeholder where the item will be dropped */

.sortable-ghost {
  opacity: 0.4;
  background-color: #e0f2fe; /* A light, inviting blue */
  border: 2px dashed #0ea5e9; /* A clear, dashed sky-blue border */
}

/* This styles the actual item being dragged by the user */

.sortable-chosen {
  opacity: 0.95; /* Slightly transparent to see what's underneath */
  background-color: #ffffff;
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1); /* Tailwind's shadow-lg */
  transform: scale(1.02); /* Make it slightly larger */
  cursor: grabbing !important; /* Change cursor to indicate grabbing */
}

.exercise-item {
    transition: opacity 0.2s ease-in-out, transform 0.2s ease-in-out, box-shadow 0.2s ease-in-out;
}

.exercise-item .flex-grow {
    flex-shrink: 0;
}

.exercise-item {
  -webkit-user-select: none;
     -moz-user-select: none;
          user-select: none;
}

.exercise-item:hover {
  cursor: grab;
}

.exercise-item.dragging {
  cursor: grabbing;
}

/* On large screens (1024px and up), switch to the hover-to-show behavior */

@media (min-width: 1024px) {
    .drag-handle {
        opacity: 0; /* MODIFIED: Hide handle using opacity instead of display: none */
    }
    .group:hover .drag-handle {
        opacity: 1 !important;
    }
}

.swoop {
    transition: transform 0.25s ease-in-out;
}

.lifted {
    transform: scale(1.02);
    box-shadow: 0 8px 20px rgba(0,0,0,0.15);
}

.dragging {
  transform: scale(1.02);
  box-shadow: 0 8px 20px rgba(0, 0, 0, 0.15);
  cursor: grabbing !important;
  opacity: 0.5;
   border: 2px dashed #FF6600; /* Optional: adds a dashed border while dragging */

}

.drag-over-top {
            border-top: 3px solid #FF6600;
        }

.drag-over-bottom {
            border-bottom: 3px solid #FF6600;
        }

.card-content {
    /* We've added opacity to the transition */
    transition: max-height 0.3s ease-out, opacity 0.2s ease-out;
    overflow: hidden;
    max-height: 1000px; /* A large enough value for the content to be visible */
    opacity: 1;
}

.card-content.collapsed {
    max-height: 0 !important; /* Force collapse strongly */
    opacity: 0 !important;   /* Force fade strongly */
    padding-top: 0 !important;    /* NEW: Collapse padding */
    padding-bottom: 0 !important; /* NEW: Collapse padding */
}

/* --- Definitive Drag Handle Visibility Fix --- */

/* A small touch to make the drag handle more obviously interactive */

.drag-handle {
    cursor: grab;
    display: block; /* Show the handle by default (on mobile) */
    opacity: 0.6; /* Visible by default on all devices (or choose 1 for full visibility) */
}

/* For devices that CAN truly hover (desktops with a mouse) */

@media (hover: hover) {
    .drag-handle:hover { /* Only apply hover effect */
        opacity: 1; /* Show it fully only on hover */
    }
    /* Remove the .group:hover rule if you want the handle to be always visible and just brighten on its own hover */
    /* Or keep the .group:hover rule and adjust opacity as needed */
}

/* The @media (hover: none) block can stay as is, or remove it if using a single .drag-handle opacity */

@media (hover: none) {
    .drag-handle {
        opacity: 0.8 !important; /* Slightly more visible by default on touch */
    }
}

/* Hide the default arrow on details/summary */

summary::-webkit-details-marker {
    display: none;
}

summary {
    list-style: none; /* For Firefox */
}

/* Logic to show/hide our custom expand/collapse icons */

details .expand-icon { display: block; }

details .collapse-icon { display: none; }

details[open] .expand-icon { display: none; }

details[open] .collapse-icon { display: block; }

/* --- Aggressive Fix for Hiding Time Input Arrows --- */

/* First, try to remove all default browser styling from the input itself */

input[type="time"] {
    -webkit-appearance: none;
    -moz-appearance: none;
    appearance: none;
}

/* Then, specifically and aggressively target the icon in WebKit browsers */

input[type="time"]::-webkit-calendar-picker-indicator {
    position: absolute; /* Take it out of the flow */
    opacity: 0;        /* Make it invisible */
    width: 0;          /* Give it no size */
    height: 0;
    display: none !important; /* Force it not to display */
}

/* Also hide the up/down spin buttons for good measure */

input[type="time"]::-webkit-inner-spin-button {
   display: none;
   -webkit-appearance: none;
   margin: 0;
}

/* --- NEW: Styles for Undo Toast --- */

.toast {
    background-color: #ffffff; /* White background */
    color: #1f2937; /* Dark gray text */
    padding: 1rem;
    border-radius: 1rem; /* More rounded corners */
    display: flex;
    align-items: center;
    gap: 0.75rem;
    box-shadow: 0 10px 25px -5px rgba(0, 0, 0, 0.15), 0 8px 10px -6px rgba(0, 0, 0, 0.1);
    border: 1px solid #e5e7eb; /* Subtle gray border */
    animation: toast-in 0.5s cubic-bezier(0.21, 1.02, 0.73, 1);
    position: relative;
    overflow: hidden;
    min-width: 320px;
}

.toast-icon {
    flex-shrink: 0;
    color: #3b82f6; /* A pleasant blue for the info icon */
}

.toast-message {
    /* This new container will hold both parts of the message */
    display: flex;
    align-items: baseline; /* Aligns the text nicely */
    flex-grow: 1;
    min-width: 0; /* Crucial for making truncation work in a flex container */
}

.toast-message-name {
    /* Styles for the exercise name */
    font-weight: 600; /* Make the name slightly bolder */
    font-size: 0.875rem; /* Smaller text */
    white-space: nowrap; /* Prevent wrapping to a new line */
    overflow: hidden; /* Hide any part of the name that overflows */
    text-overflow: ellipsis; /* Add the "..." at the end */
    max-width: 180px; /* Adjust this value to control how much name is shown */
}

.toast-message-action {
    /* Styles for the "swapped." or "removed." text */
    font-size: 0.875rem; /* Smaller text */
    margin-left: 0.25rem; /* Adds a small space */
    flex-shrink: 0; /* Prevents this text from being pushed out */
}

.toast button {
    background-color: rgba(255, 255, 255, 0.1); /* Subtle transparent white */
    border: 1px solid rgba(255, 255, 255, 0.2);
    color: #000; /* black text */
    font-weight: 600; /* Semibold */
    cursor: pointer;
    padding: 0.25rem 0.50rem; /* 4px 8px */
    border-radius: 0.5rem; /* 8px */
    flex-shrink: 0;
    transition: all 0.2s ease-in-out;
}

.toast button:hover {
    background-color: rgba(249, 115, 22, 0.8); /* Your brand orange on hover */
    color: #ffffff; /* White text on hover */
    border-color: rgba(251, 146, 60, 0.8);
}

/* Progress Bar */

.toast-progress {
    position: absolute;
    bottom: 0;
    left: 0;
    height: 4px; /* A bit thicker */
    background-color: #F97316; /* Brand Orange */
    width: 100%;
    animation: shrink 4s linear forwards;
    animation-direction: reverse;
    border-bottom-left-radius: 0.75rem;
}

@keyframes toast-in {
    from {
        opacity: 0;
        transform: translateY(25px) scale(0.95);
    }
    to {
        opacity: 1;
        transform: translateY(0) scale(1);
    }
}

@keyframes shrink {
    from { width: 100%; }
    to { width: 0%; }
}

/* --- Style for Timer Animation --- */

@keyframes flash-green-bg {
  /* Define the start and end states */
  0%, 100% {
    background-color: #d1d5db; /* This is Tailwind's gray-300 */
  }
  50% {
    background-color: rgba(34, 197, 94, 0.7); /* A semi-transparent green */
  }
}

.timer-flash {
  animation: flash-green-bg 1s ease-in-out;
}

.mini-timer-display {
    width: 130px;
    height: 70px;
    font-size: 1.25rem; /* ~text-xl */
    transition: all 0.3s ease-in-out;
    border: 3px solid rgba(255, 255, 255, 0.5);
    flex-shrink: 0; /* Prevents the button from shrinking */
}

.mini-timer-menu {
    /* Start hidden and collapsed */
    width: 0;
    opacity: 0;
    transform: translateX(20px);
    transition: all 0.3s ease-in-out;
    pointer-events: none;
    padding: 0 40px 0 0; /* Pad right to make space for the overlapping button */
    margin-right: -40px; /* Overlap with the main button by half its width */
    white-space: nowrap; /* Prevent buttons from wrapping */
}

.mini-timer-menu.open {
    width: 240px; /* The width of the expanded control panel */
    opacity: 1;
    transform: translateX(0);
    pointer-events: auto;
    padding: 8px 48px 8px 8px; /* Adjust padding on reveal */
}

.mini-timer-btn {
    padding: 10px;
    font-size: 0.875rem; /* text-sm */
    font-weight: 600; /* font-semibold */
    color: white;
    border-radius: 9999px; /* rounded-full */
    transition: background-color 0.2s;
    width: 50px;
    text-align: center;
}

.mini-timer-btn:hover {
    background-color: rgba(255, 255, 255, 0.2);
}

/* Meditation Timer - Zen Style */

.preset-btn {
    /* MODIFIED: Softer border and text color for a more muted look */
    border-radius: 9999px;
    border-width: 1px;
    --tw-border-opacity: 1;
    border-color: rgb(209 213 219 / var(--tw-border-opacity, 1));
    --tw-bg-opacity: 1;
    background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1));
    padding-left: 1rem;
    padding-right: 1rem;
    padding-top: 0.5rem;
    padding-bottom: 0.5rem;
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 600;
    --tw-text-opacity: 1;
    color: rgb(107 114 128 / var(--tw-text-opacity, 1));
    transition-property: all;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 200ms;
}

.preset-btn:hover  {
        --tw-border-opacity: 1;
        border-color: rgb(120 113 108 / var(--tw-border-opacity, 1));
        --tw-text-opacity: 1;
        color: rgb(68 64 60 / var(--tw-text-opacity, 1)); }

.preset-btn.active-preset {
    /* MODIFIED: A warm, earthy tone for the active state */
    --tw-border-opacity: 1;
    border-color: rgb(68 64 60 / var(--tw-border-opacity, 1));
    --tw-bg-opacity: 1;
    background-color: rgb(68 64 60 / var(--tw-bg-opacity, 1));
    font-weight: 700;
    --tw-text-opacity: 1;
    color: rgb(255 255 255 / var(--tw-text-opacity, 1));
    --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
    --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
    box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow);
}

.action-btn {
    /* MODIFIED: Changed from rounded-full to rounded-xl for a soft square shape */
    border-radius: 0.75rem;
    padding-top: 0.75rem;
    padding-bottom: 0.75rem;
    padding-left: 1.5rem;
    padding-right: 1.5rem;
    font-weight: 700;
    transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
    transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
    transition-duration: 150ms;
}

.breathing-animation {
    animation: breathing 17s ease-in-out infinite;
}

@keyframes breathing {
    0%, 100% { 
        transform: scale(1.03); 
        opacity: 1; 
    }
    50% { 
        transform: scale(0.95); 
        opacity: 0.90; 
    }
}

/* Allows the meditation timer display to fade in and out smoothly */

#meditation-timer-display {
  transition: opacity 1.5s ease-in-out;
}

/* Square Progress Bar Styles */

.progress-bar {
    position: absolute;
    transform-origin: top left;
    transition: 0.5s linear; /* Smooths the animation start/stop */
}

#progress-top { width: 0; }

#progress-right { height: 0; }

#progress-bottom { width: 0; transform-origin: bottom right; }

#progress-left { height: 0; transform-origin: bottom left; }

.easter-egg-container  {
        pointer-events: none;
        position: fixed;
        inset: 0px;
        z-index: 9999;
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
        --tw-bg-opacity: 1;
        background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1));
        opacity: 0;
        transition-property: opacity;
        transition-duration: 1000ms;
        transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); }

.easter-egg-container.visible  {
        pointer-events: auto;
        opacity: 1; }

.easter-egg-gif  {
        position: absolute;
        inset: 0px;
        height: 100%;
        width: 100%;
        -o-object-fit: cover;
           object-fit: cover; }

.easter-egg-quote  {
        position: relative;
        z-index: 10;
        max-width: 36rem;
        border-radius: 0.5rem;
        background-color: rgb(0 0 0 / 0.3);
        padding: 2rem;
        text-align: center;
        font-family: ui-serif, Georgia, Cambria, "Times New Roman", Times, serif;
        font-size: 1.5rem;
        line-height: 2rem;
        font-style: italic;
        --tw-text-opacity: 1;
        color: rgb(255 255 255 / var(--tw-text-opacity, 1));
        --tw-backdrop-blur: blur(4px);
        backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); }

.autocomplete-dropdown {
    position: absolute;
    background-color: white;
    border: 1px solid #d1d5db; /* gray-300 */
    border-top: none;
    z-index: 998; /* Below modals but above other content */
    max-height: 180px;
    overflow-y: auto;
    border-bottom-left-radius: 0.375rem;
    border-bottom-right-radius: 0.375rem;
}

.autocomplete-item {
    padding: 0.75rem 1rem; /* p-3 */
    cursor: pointer;
    font-size: 0.875rem; /* text-sm */
}

.autocomplete-item:hover {
    background-color: #f3f4f6; /* gray-100 */
}

.autocomplete-item.highlighted {
    background-color: #3b82f6; /* orange-500 */
    color: white;
}

input[type="checkbox"]:checked {
  background-color: #FF6600;
  border-color: #FF6600;
}

input[type="checkbox"] {
  accent-color: #FF6600; /* modern browsers */
  -webkit-appearance: none;
     -moz-appearance: none;
          appearance: none;
  background-color: #fff;
  margin: 0;
  font: inherit;
  color: #fff;
  width: 1.25em;
  height: 1.25em;
  border: 2px solid #FF6600;
  border-radius: 0.25em;
  display: grid;
  place-content: center;
  cursor: pointer;
}

input[type="checkbox"]::before {
  content: "✔";
  transform: scale(0.8);
  color: white;
  font-size: 1rem;
  display: none;
}

input[type="checkbox"]:checked {
  background-color: #FF6600;
}

input[type="checkbox"]:checked::before {
  display: block;
}

input:focus {
  outline: none;
  border-color: #FF6600 !important;
}

input[type=range]::-webkit-slider-thumb {
  background-color: #FF6600;
}

input[type=range]::-moz-range-thumb {
  background-color: #FF6600;
}

input[type=range]::-ms-thumb {
  background-color: #FF6600;
}

input[type=range] {
  accent-color: #FF6600;
}

input[type="checkbox"] {
  transition: all 0.2s ease-in-out;
}

select:focus {
  outline: none;
  border-color: #FF6600 !important;
  box-shadow: 0 0 0 3px rgba(255, 102, 0, 0.4) !important;
}

/* --- Force Remove Focus Glow on All Inputs --- */

input:focus, select:focus {
    outline: none !important;
    box-shadow: none !important;
}

/* --- NEW: Styles for Workout Calendar --- */

.calendar-day {
    display: flex;
    justify-content: center;
    align-items: center;
    height: 36px;
    width: 100%;
    border-radius: 9999px; /* rounded-full */
    cursor: pointer;
    transition: background-color 0.2s;
    color: black; /* NEW: Set default text color for all days to black */
    position: relative;
    -webkit-user-select: none; /* Safari */
    -moz-user-select: none;    /* Firefox */     /* IE/Edge */
    user-select: none;         /* Standard */ 
}

.calendar-day:hover {
    background-color: #f3f4f6; /* gray-100 */
}

.calendar-day.other-month {
    color: #9ca3af; /* gray-400 */
}

.calendar-day.today {
    background-color: #ff6600; /* Your app's orange color */
    color: white;
    font-weight: 700;
}

.calendar-day.has-workout {
    background-color: #e6ffe6;  /* green-100 */
    color: #ff6600;             /* green-800 */
    font-weight: 600;
    border-radius: 6px;
    transition: all 0.2s ease-in-out;
}

.calendar-day.has-workout:hover {
    background-color: #ccffcc; /* green-200 */
    transform: scale(1.05);
}

.calendar-day.has-activity-only {
    background-color: #e6ffe6;  /* A light orange color */
    color: #000000;             /* A dark orange text color */
    font-weight: 600;
    border-radius: 6px;
    transition: all 0.2s ease-in-out;
}

.calendar-day.has-activity-only:hover {
    background-color: #ccffcc; /* A slightly darker orange for hover */
    transform: scale(1.05);
}

.calendar-day.missed-day {
    background-color: #fee2e2;  /* A light red color (Tailwind red-100) */
    color: #000000;             /* A dark red text color (Tailwind red-800) */
    /*font-weight: 600;*/
    border-radius: 6px;
    transition: all 0.2s ease-in-out;
}

.calendar-day.missed-day:hover {
    background-color: #fecaca; /* A slightly darker red for hover (Tailwind red-200) */
    transform: scale(1.05);
}

/* Make sure "today" style takes priority */

.calendar-day.today {
    background-color: #ff6600 !important;
    color: white !important;
    font-weight: 700;
}

.calendar-fade-in {
    animation: fadeIn 0.3s ease-in-out;
}

/* --- NEW: Styles for Daily View Modals --- */

.modal {
    display: none;
    justify-content: center;
    align-items: center;
    position: fixed;
    z-index: 1001;
    left: 0;
    top: 0;
    width: 100%;
    height: 100%;
    overflow: auto;
    background-color: rgba(0,0,0,0.4);
    backdrop-filter: blur(5px);
  

    /* REMOVE the 'display: flex;' and 'align-items: center;', 'justify-content: center;' from here.
       They will be set by JavaScript when the modal opens. */
}

.modal-content.is-navigating {
    opacity: 0;
    transition: opacity 0.2s ease-out;
}

.close-button {
    color: #000; 
    position: absolute;
    top: 0.75rem;
    Right: 0.75rem; /* Pull it a bit closer to the corner */
    cursor: pointer;
    padding: 0.5rem; /* Add padding to make click area larger */
    border-radius: 9999px; /* Make it circular/rounded */
    display: flex; /* Use flexbox to center the SVG */
    align-items: center;
    justify-content: center;
    transition: background-color 0.2s, color 0.2s; /* Smooth transitions */
}

.close-button:hover {
    transform: scale(1.1);
 }

.close-button:focus {
    color: #6b7280; /* Darker gray for hover state, adjust as desired */
    background-color: #f3f4f6; /* Tailwind gray-100 for a subtle background */
    outline: none; /* Remove default focus outline */
}

.custom-modal-backdrop {
    background-color: rgba(17, 24, 39, 0.7); /* Dark navy-blue tint */
    
    /* The "frosted glass" blur effect with mobile compatibility */ /* This is the key for Safari on iOS */
    backdrop-filter: blur(4px);
}

.fasting-timer-circle {
    width: 250px;
    height: 250px;
    margin: 1rem auto;
    position: relative; /* Needed for absolute positioning of text */
    display: flex; /* Center the content */
    justify-content: center;
    align-items: center;

}

#fasting-timer-canvas {
    position: absolute;
    top: 0;
    left: 0;
}

.fasting-timer-circle-content { 
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
    width: 100%;
}

#fasting-timer-time {
    font-family: 'Poppins', 'Inter', sans-serif;
    font-size: 2rem;
    font-weight: 800;
    letter-spacing: 0.05em;
    color: #000000;
    line-height: 1; /* Adjust line height for better vertical centering */
}

#fasting-timer-label {
    font-size: 1rem;
    color: #6b7280; /* gray-500 */
    text-transform: uppercase;
    margin-top: 0.25rem;
}

.fasting-bar  {
        pointer-events: none;
        position: absolute;
        bottom: 0px;
        height: 0.25rem;
        --tw-bg-opacity: 1;
        background-color: rgb(249 115 22 / var(--tw-bg-opacity, 1)); }

.fasting-detail-active {
    gap: 0 !important;
}

.fasting-detail-active .calendar-day:hover {
    transform: none !important;
}

.fasting-detail-active .has-workout,
.fasting-detail-active .has-activity-only,
.fasting-detail-active .missed-day {
    background-color: transparent !important;
    color: black !important;
}

fasting-detail-active .calendar-day.today {
    background-color: transparent !important;
    color: black !important; /* Orange text instead of a background */
}

.calendar-day.today {
    background-color: #ff6600 !important; /* Orange background */
    color: white !important;             /* White text */
}

.fasting-detail-active .calendar-day.today {
    background-color: transparent !important; /* NO background */
    color: #000000 !important;             /* Orange text instead */
}

.fasting-detail-active .has-fasting-activity {
    font-weight: 700 !important; /* font-bold */
}

.fasting-detail-active .fasting-dot {
    display: none !important;
}

.time-picker-wheel-container {
    position: relative;
    /* height: 192px; /* 4 items visible, 48px each (h-12) */
    border-radius: 0.5rem;
    background-color: #f9fafb; /* gray-50 */
}

.time-picker-wheel {
    scroll-snap-type: y mandatory;
    -webkit-overflow-scrolling: touch; /* For smoother scrolling on iOS */
}

.time-picker-item {
    scroll-snap-align: center;
    transition: all 0.1s ease-in-out;
}

/* Hide scrollbar for Chrome, Safari, Opera */

.time-picker-wheel::-webkit-scrollbar {
    display: none;
}

/* Hide scrollbar for IE and Edge */

.time-picker-wheel {
    -ms-overflow-style: none; /* IE and Edge */
    scrollbar-width: none; /* Firefox */
}

/* --- NEW: Styles for Autocomplete Dropdown in Quick Add --- */

.autocomplete-dropdown {
    /* Styles for the dropdown container */
    position: absolute; /* Ensures it sits directly below the input */
    top: 100%; /* Position right below the input */
    left: 0;
    right: 0;
    background-color: white;
    border: 1px solid #d1d5db; /* gray-300 */
    border-radius: 0.375rem; /* rounded-md */
    box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06); /* subtle shadow */
    z-index: 20; /* Higher than other content, but lower than modals */
    max-height: 12rem; /* h-48 equivalent, set a max height for scroll */
    overflow-y: auto;
}

.autocomplete-item {
    /* Styles for individual suggestion items */
    padding: 0.75rem 1rem; /* p-3 */
    font-size: 0.875rem; /* text-sm */
    color: #374151; /* gray-700 */
    cursor: pointer;
    transition: background-color 0.2s ease;
}

.autocomplete-item:hover {
    background-color: #f3f4f6; /* gray-100 */
}

.autocomplete-item.highlighted {
    /* Style for keyboard-navigated item */
    background-color: #ff6600; /* Your orange brand color */
    color: white;
}

/* Also hide the up/down spin buttons for good measure */

input[type="time"]::-webkit-inner-spin-button {
       display: none;
       -webkit-appearance: none;
       margin: 0;
    }

/* --- NEW: Hide Arrows on Number Inputs --- */

/* For Firefox */

/*input[type=number] {
      -moz-appearance: textfield;
    }*/

/* For Chrome, Safari, Edge, Opera */

input[type=number]::-webkit-inner-spin-button,
    input[type=number]::-webkit-outer-spin-button {
      -webkit-appearance: none;
      margin: 0;
    }

/* --- NEW: Styles for Activity Accordion --- */

.activity-details {
  max-height: 0;
  overflow: hidden;
  transition: max-height 0.3s ease-in-out, padding 0.3s ease-in-out;
  padding-left: 1rem;
  padding-right: 1rem;
}

.activity-details.expanded {
  max-height: 200px; /* A value large enough for your content */
  padding-top: 0.5rem;
  padding-bottom: 0.75rem;
}

.planned-workout-list {
  text-align: left;
  animation: fadeIn 0.3s ease-in-out;
  max-height: 225px; /* Adjust this value to show more or fewer items */
  overflow-y: auto;
}

.planned-workout-item {
  display: flex;
  padding: 0.75rem;
  border-bottom: 1px solid #e5e7eb; /* gray-200 */
}

.planned-workout-date {
  flex-shrink: 0;
  width: 70px;
  font-weight: 600;
  color: #ea580c; /* orange-600 */
}

.planned-workout-text {
  font-weight: 500;
  color: #374151; /* gray-700 */
}

.planned-workout-container {
  height: 225px; /* You can adjust this height */
  overflow-y: auto; /* This makes it scrollable */
  -webkit-overflow-scrolling: touch; /* For smooth scrolling on iOS */
}

#friends-list {
  max-height: 300px;
  overflow-y: auto;
  padding-right: 0.5rem; /* Adds a bit of space so the scrollbar doesn't overlap the content */
}

/* Styling for the friends list drag handle */

.friend-drag-handle {
  opacity: 0.6;
  transition: opacity 0.2s ease-in-out;
}

.friend-drag-handle:hover {
  opacity: 1;
}

/* For Webkit-based browsers (Chrome, Safari, Edge) */

.no-scrollbar::-webkit-scrollbar {
    display: none;
}

/* For IE, Edge, and Firefox */

.no-scrollbar {
    -ms-overflow-style: none;  /* IE and Edge */
    scrollbar-width: none;  /* Firefox */
}

/* --- HIDE ALL SCROLLBARS FOR A CLEANER UI --- */

/* This targets the scrollable containers with higher specificity */

#friends-list,
#equipment-filter,
#exercise-list,
#fasting-history-list,
#my-equipment-list,
#saved-workouts-list,
#exercise-library-list,
#recommendations-list,
#message-list,
#running-history-list,
.planned-workout-list {
  /* For Firefox */
  scrollbar-width: none;
  /* For Internet Explorer and Edge */
  -ms-overflow-style: none;
}

/* This targets the scrollable container in your custom workouts modal */

#customWorkoutOptionsModal .overflow-y-auto::-webkit-scrollbar {
    display: none; /* Hides the scrollbar for WebKit browsers like Chrome and Safari */
}

/* Optional: For Firefox */

#customWorkoutOptionsModal .overflow-y-auto {
    scrollbar-width: none; /* Hides the scrollbar for Firefox */
}

/* This targets the scrollbar itself in WebKit-based browsers (Chrome, Safari) */

#friends-list::-webkit-scrollbar,
#running-history-list::-webkit-scrollbar,
#equipment-filter::-webkit-scrollbar,
#my-equipment-list::-webkit-scrollbar,
#exercise-list::-webkit-scrollbar,
#exercise-library-list::-webkit-scrollbar,
#fasting-history-list::-webkit-scrollbar,
#saved-workouts-list::-webkit-scrollbar,
#body-comp-history-list::-webkit-scrollbar,
#recommendations-list::-webkit-scrollbar,
.planned-workout-list::-webkit-scrollbar {
  display: none;
}

.hide-scrollbar {
  /* For Firefox */
  scrollbar-width: none;
  /* For Internet Explorer and Edge */
  -ms-overflow-style: none;
}

/* For Chrome, Safari, and other WebKit browsers */

.hide-scrollbar::-webkit-scrollbar {
  display: none;
}

@keyframes flyInFromBottom {
  from {
    opacity: 0.8;
    transform: translateY(40px) scale(0.95);
  }
  to {
    opacity: 1;
    transform: translateY(0) scale(1);
  }
}

.message-fly-in {
  animation: flyInFromBottom 0.3s cubic-bezier(0.25, 0.1, 0.25, 1);
}

@media (max-width: 767px) {
  .exercise-item-header {
    flex-direction: column; /* Stack the name and buttons vertically */
    align-items: stretch;   /* Make them both full-width */
    flex-wrap: wrap;          /* Allow buttons to wrap to a new line */

  }

.exercise-item-header .action-buttons {
    flex-wrap: wrap;          /* Allow buttons to wrap to a new line */
  }
}

/* --- NEW: Styles for Help Modal Accordion --- */

.help-accordion {
    border: 1px solid #e5e7eb; /* gray-200 */
    border-radius: 0.5rem; /* rounded-lg */
}

.help-accordion summary {
    font-weight: 600; /* font-semibold */
    padding: 0.75rem 1rem; /* p-3 px-4 */
    cursor: pointer;
    list-style: none; /* Removes default disclosure arrow */
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.help-accordion summary::-webkit-details-marker {
    display: none; /* Hides default arrow on Safari */
}

.help-accordion summary::after {
    content: '▼'; /* Custom arrow */
    font-size: 0.6em;
    transition: transform 0.2s;
}

.help-accordion[open] summary {
    background-color: #f9fafb; /* gray-50 */
    border-bottom: 1px solid #e5e7eb; /* gray-200 */
}

.help-accordion[open] summary::after {
    transform: rotate(180deg);
}

.help-accordion .accordion-content {
    padding: 1rem; /* p-4 */
    /* All the content you provided previously goes inside this div */
}

body {
    /* Adds padding to the top to avoid the notch/island */
    padding-top: env(safe-area-inset-top);

    /* It's also good practice to add bottom padding for the home bar */
    padding-bottom: env(safe-area-inset-bottom);
}

/* --- NEW: Styles for Responsive Video --- */

.video-container {
    position: relative;
    padding-bottom: 56.25%; /* 16:9 aspect ratio */
    height: 0;
    overflow: hidden;
    width: 100%;
    background-color: #000;
    border-radius: 0.5rem;
}

.video-container iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    -o-object-fit: cover;
       object-fit: cover; /* Ensures video fills the container without distortion */
}

details.meal-accordion > summary {
  list-style: none; /* Hides default arrow in Firefox */
}

details.meal-accordion > summary::-webkit-details-marker {
  display: none; /* Hides default arrow in Chrome/Safari */
}

details.meal-accordion[open] > summary .chevron-icon {
  transform: rotate(180deg);
}

.meal-accordion .meal-visibility-toggle {
    display: none;
}

.edit-mode-active .meal-accordion .meal-visibility-toggle {
    display: block;
}

body.no-scroll {
    overflow: hidden;
}

@keyframes rotate-back-and-forth {
  0% {
    transform: rotate(0deg);
  }
  50% {
    transform: rotate(-360deg); /* Counter-clockwise rotation */
  }
  100% {
    transform: rotate(0deg); /* Clockwise rotation back to start */
  }
}

/* Apply the new animation to the button's SVG icon */

[data-action="refresh-recommendations"] svg {
  animation: rotate-back-and-forth 17s ease-in-out infinite;
}

/* Styles for the main content area that holds the list OR the message */

/* This is based on your div with id="saved-workouts-list-container" */

#saved-workouts-list-container {
    /* Set a minimum height to ensure there's enough space for vertical centering.
       Adjust this value to move the text "higher" or "lower" within the card. */
    min-height: 250px; /* Example: adjust this value */

    /* Make it a flex container to manage its children (workout items or message wrapper) */
    display: flex;
    flex-direction: column; /* Stack children vertically */
    
    /* When there are no workouts, these will center the 'no-saved-workouts-message-wrapper' */
    justify-content: center; /* Centers content vertically */
    align-items: center;     /* Centers content horizontally */

    /* Keep your existing Tailwind classes, or apply similar: */
    /* .space-y-4 .pb-8 .mb-6 .max-h-[75vh] .overflow-y-auto .pr-2 */
    /* Ensure no extra padding/margins are pushing content down unnecessarily */
    padding-bottom: 0; /* Remove existing bottom padding for better vertical control */
    margin-bottom: 0;  /* Remove existing bottom margin */
    /* If you need padding for actual workout items, apply it to the workout items themselves,
       or dynamically add a class to #saved-workouts-list-container when there are items. */
}

/* Styles for the wrapper div around the "no saved workouts" paragraph */

#no-saved-workouts-message-wrapper {
    /* Inherit flex properties from parent #saved-workouts-list-container */
    /* Make this item grow to take available space and allow its child <p> to be centered */
    flex-grow: 1;
    width: 100%; /* Ensure it takes full width of its parent */
    
    /* Make this wrapper a flex container to center its child <p> tag */
    display: flex;
    justify-content: center; /* Horizontally center the paragraph */
    align-items: center;     /* Vertically center the paragraph */

    /* You used 'hidden' class in HTML, so this will be toggled by JS. */
    /* If not using Tailwind 'hidden', ensure display: none; by default here */
}

/* Styles for the actual paragraph text (optional, if you want to override Tailwind's text-gray-500) */

#no-saved-workouts {
    /* text-gray-500 is already set via Tailwind class */
    /* You can override font-size, line-height, etc. if needed */
    margin: 0; /* Remove any default paragraph margins */
    padding: 0;
}

/* Styles for the new user onboarding hint animation */

@keyframes pop-in-out {
    0%, 100% {
        transform: scale(1);
    }
    50% {
        transform: scale(1.25);
    }
}

.first-time-hint {
    animation: pop-in-out 1.5s ease-in-out infinite;
    /* Add a subtle shadow to make it stand out */
    box-shadow: 0 0 15px 5px rgba(255, 102, 0, 0.6); 
}

/* --- End of Onboarding Hint Styles --- */

/* Add this to your main stylesheet */

.exercise-note {
    font-size: 0.85rem;      /* Slightly smaller font */
    color: #6c757d;         /* A subtle gray color */
    margin-top: 4px;        /* Add a little space above */
    font-style: italic;     /* Italicize to indicate a note */
}

/* --- Custom Shepherd.js Onboarding Tour Styles --- */

/* This class is added by Shepherd to the highlighted element.
   It brings the element above the dark overlay. */

@keyframes shepherd-pulse {
  0%, 100% {
    box-shadow: 0 0 0 9999px rgba(0, 0, 0, 0.5), 0 0 0 0 rgba(249, 115, 22, 0.4);
  }
  50% {
    box-shadow: 0 0 0 9999px rgba(0, 0, 0, 0.5), 0 0 0 20px rgba(249, 115, 22, 0);
  }
}

shepherd-element.shepherd-custom .shepherd-highlight {
  border-radius: 0.75rem; /* Match your card's border-radius */
  animation: shepherd-pulse 2s infinite;
}

.shepherd-element {
  background: #ffffff;
  border-radius: 0.75rem; /* 12px, matches your native modals */
  box-shadow: 0 10px 15px -3px rgba(0, 0, 0, 0.1), 0 4px 6px -4px rgba(0, 0, 0, 0.1);
  max-width: 350px;
  border: 1px solid #e5e7eb; /* Adds a subtle border like your cards */
}

/* --- START: Header Polish --- */

.shepherd-header {
  background-color: #f9fafb; /* A very light gray (gray-50) */
  padding: 0.75rem 1rem;
  border-bottom: 1px solid #e5e7eb; /* gray-200 */
  border-top-left-radius: 0.75rem;
  border-top-right-radius: 0.75rem;
}

.shepherd-title {
  color: #1f2937; /* A darker gray for contrast (gray-800) */
  font-weight: 600; /* Semibold */
  font-size: 1.125rem; /* text-lg */
  text-align: center;
}

/* --- END: Header Polish --- */

.shepherd-cancel-icon {
  color: #9ca3af; /* gray-400 */
}

.shepherd-cancel-icon:hover {
  color: #374151; /* gray-700 */
}

.shepherd-text {
  color: #4b5563; /* gray-600 */
  padding: 1rem;
  font-size: 0.875rem; /* text-sm */
  text-align: center;
  line-height: 1.5;
}

.shepherd-footer {
  padding: 0 1rem 1rem 1rem;
  display: flex;
  justify-content: center; /* Center the buttons */
  gap: 0.5rem; /* Add space between buttons */
}

.shepherd-button {
  background: #f97316; /* orange-500 */
  color: #ffffff;
  border: 0;
  border-radius: 9999px; /* rounded-full */
  padding: 0.5rem 1.25rem;
  font-weight: 600;
  transition: background-color 0.2s;
}

.shepherd-button:not(.shepherd-button-secondary):hover {
  background: #ea580c; /* orange-600 */
}

.shepherd-button.shepherd-button-secondary {
  background: #e5e7eb; /* gray-200 */
  color: #374151; /* gray-700 */
}

.shepherd-button.shepherd-button-secondary:hover {
  background: #d1d5db; /* gray-300 */
}

.shepherd-arrow,
.shepherd-arrow:before {
  background: transparent;
}

#tour-click-blocker {
  top: 0;
  left: 0;
  width: 100vw;
  height: 100vh;
  background: transparent; /* It's invisible */
  z-index: 9998; /* Sits on top of the app, but below the Shepherd tour overlay */
  position: fixed;
  inset: 0;
  pointer-events: none; /* This is the key: it allows scrolling through the overlay */
}

/* --- Shepherd.js Click & Scroll Blocker --- */

.shepherd-highlight-no-click {
  /* This prevents any mouse events from passing through to the highlighted element */
  pointer-events: none;
}

body.shepherd-scroll-lock {
  overflow: hidden;
}

/*  Ensure Profile Actions Modal appears ON TOP of the tour --- */

#profileActionsModal {
  z-index: 10001 !important;
}

/* --- FIX: Improve Drag Handle on Touch Devices --- */

/* This targets devices that do not support hover (like tablets and phones) */

@media (hover: none) {
  .friend-drag-handle {
    /* Make the handle larger and always visible */
    opacity: 0.6 !important;
    width: 2rem;  /* 32px */
    height: 2rem; /* 32px */
    padding: 0.25rem; /* Add some padding */
  }
}

/* --- Fix for Centering Button Spinners --- */

.btn-spinner-wrapper {
  display: none; /* Hidden by default */
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  display: flex;
  justify-content: center;
  align-items: center;
}

.is-loading {
  position: relative; /* Needed to position the spinner correctly */
}

/* When the button is loading, hide the text... */

.is-loading .btn-text {
  visibility: hidden;
}

/* ...and show the spinner wrapper. */

.is-loading .btn-spinner-wrapper {
  display: flex;
}

/* --- NEW: High-Definition SVG Fasting Timer Circle --- */

#fasting-timer-svg .timer-background {
  fill: none;
  stroke: #e5e7eb; /* gray-200 */
  stroke-width: 8;
}

#fasting-timer-svg .timer-progress {
  fill: none;
  stroke: #4ade80; /* green-400 */
  stroke-width: 8;
  stroke-linecap: round;
  stroke-dasharray: 283; /* This is the circumference of the circle */
  stroke-dashoffset: 283; /* This starts the circle as "empty" */
  transition: stroke-dashoffset 0.1s linear; /* Makes the progress animation smooth */
}

#muscle-group-filter {
  -moz-text-align-last: center;
       text-align-last: center;
}

/* --- Habit Tracker Styles --- */

.habit-tracker-list {
  text-align: left;
  animation: fadeIn 0.3s ease-in-out;
  /* This constrains the height to match the planned workout list */
  max-height: 225px;
  overflow-y: auto;
  padding-right: 0.5rem; /* Add padding for the scrollbar */
}

.habit-item {
  padding: 0.75rem;
  border-bottom: 1px solid #e5e7eb; /* gray-200 */
}

.habit-tracker-list::-webkit-scrollbar {
    display: none; /* For Chrome, Safari, and Opera */
}

.habit-tracker-list {
    -ms-overflow-style: none;  /* For IE and Edge */
    scrollbar-width: none;  /* For Firefox */
}

.habit-input {
    resize: none; /* Hides the user-resizable handle */
    overflow: hidden; /* Prevents the scrollbar from flashing */
    min-height: 44px; /* Ensures a consistent minimum height */
}

.current-month-highlight label  {
        font-weight: 700;
        --tw-text-opacity: 1;
        color: rgb(234 88 12 / var(--tw-text-opacity, 1)); }

.input-success-flash {
  animation: success-flash 0.8s ease-out;
}

@keyframes success-flash {
  0% {
    border-color: #4ade80; /* green-400 */
    box-shadow: 0 0 8px rgba(74, 222, 128, 0.7);
  }
  100% {
    border-color: #d1d5db; /* gray-300 - or your default border color */
    box-shadow: none;
  }
}

#loading-spinner.fade-out {
  opacity: 0;
  transition: opacity 0.5s ease-out;
}

/* This is the fade-in animation for your main app content */

@keyframes fadeIn {
  from { opacity: 0; transform: translateY(10px); }
  to { opacity: 1; transform: translateY(0); }
}

/* This class will be added by JavaScript to fade the app content in */

#app-content.fade-in {
  animation: fadeIn 0.5s ease-in-out;
}

/* Keyframes for the header's entrance */

@keyframes headerEnter {
  from {
    opacity: 0;
    transform: scale(0.95); /* Start slightly smaller */
  }
  to {
    opacity: 1;
    transform: scale(1);
  }
}

/* Keyframes for the card container's entrance */

@keyframes cardsEnter {
  from {
    opacity: 0;
    transform: translateY(20px); /* Start slightly lower */
  }
  to {
    opacity: 1;
    transform: translateY(0);
  }
}

/* The 'glitch' keyframes and .glitch-effect class can remain unchanged */

@keyframes glitch {
  0%, 100% { transform: translate(0, 0); }
  20% { transform: translate(-2px, 2px); }
  40% { transform: translate(-2px, -2px); }
  60% { transform: translate(2px, 2px); }
  80% { transform: translate(2px, -2px); }
}

.glitch-effect {
  animation: glitch 0.3s cubic-bezier(0.25, 0.46, 0.45, 0.94) 2s infinite;
}

/* NEW: Animation for the loading screen to fade out */

@keyframes fadeOut {
  to { opacity: 0; }
}

/* NEW: Animation for the logo itself to shrink */

@keyframes shrinkLogo {
  to { transform: scale(0); }
}

/* This is the new trigger class for the loading spinner */

#loading-spinner.is-hiding {
  animation: fadeOut 0.5s ease-in forwards;
}

/* Target the logo inside the hiding spinner to make it shrink */

#loading-spinner.is-hiding img {
  animation: shrinkLogo 0.5s ease-in forwards;
}

/* --- ENHANCED: Polished Entrance Animations for App Content --- */

/* (This replaces your old .header-enter and .cards-enter animations) */

@keyframes contentEnter {
  from {
    opacity: 0;
    transform: scale(0.98) translateY(10px);
  }
  to {
    opacity: 1;
    transform: scale(1) translateY(0);
  }
}

.header-enter {
  /* Start slightly after the spinner begins hiding */
  animation: contentEnter 0.6s cubic-bezier(0.215, 0.61, 0.355, 1) 0.1s forwards;
  opacity: 0; /* Set initial state to prevent flashes */
}

.cards-enter {
  /* Stagger this to start even later for a layered effect */
  animation: contentEnter 0.6s cubic-bezier(0.215, 0.61, 0.355, 1) 0.2s forwards;
  opacity: 0; /* Set initial state */
}

/* --- Mnemo Game Styles --- */

mnemo-button {
    cursor: pointer;
    opacity: 0.6;     
    transition: all 0.2s ease-in-out;
    border: none; 
    box-shadow: 0 0 0 8px black;
}

.mnemo-button.lit {
    opacity: 1;
    transform: scale(1.03);
    box-shadow: 0 0 0 8px black, /* Keep the visible black "border" */
                0 0 25px rgba(255, 255, 255, 0.8); /* Add the bright white glow */
}

.modal-content-game {
    background-color: white !important;
    padding: 0 !important;
    border: 1px solid #4b5563; /* gray-600 */
}

.modal-backdrop-game {
    background-color: #000000 !important; /* Solid black background */
    backdrop-filter: none !important; /* Remove the default blur effect */
    -webkit-backdrop-filter: none !important;
}

.mci-dot {
    width: 8px;
    height: 8px;
    border-radius: 9999px;
    transition: background-color 0.3s ease;
    cursor: pointer;
}

@keyframes rainbow-flash {
  0%, 100% { color: #ef4444; } /* Red */
  15% { color: #f97316; }      /* Orange */
  30% { color: #eab308; }      /* Yellow */
  45% { color: #22c55e; }      /* Green */
  60% { color: #3b82f6; }      /* Blue */
  75% { color: #6366f1; }      /* Indigo */
  90% { color: #8b5cf6; }      /* Violet */
}

#mnemo-game-launch-zone:hover svg {
    animation: rainbow-flash 1.5s linear infinite;
}

@keyframes soft-rainbow-pulse {
  0%, 100% {
    color: #f87171; /* Red-400 */
    transform: scale(1);
  }
  25% {
    color: #fbbf24; /* Amber-400 */
    transform: scale(1.1);
  }
  50% {
    color: #4ade80; /* Green-400 */
    transform: scale(1);
  }
  75% {
    color: #60a5fa; /* Blue-400 */
    transform: scale(1.1);
  }
}

@media (max-width: 768px) {
  #mnemo-game-launch-zone svg {
    /* Apply the animation: 4s duration, gentle ease-in-out timing, infinite loop */
    animation: soft-rainbow-pulse 4s ease-in-out infinite;
  }
}

.thought-cloud {
  position: relative;
  background: #ffffff;
  border: 2px solid rgba(255, 165, 0, 0.25);
  border-radius: 1.75rem;
  box-shadow: 0 4px 10px rgba(0, 0, 0, 0.05);
  padding: 1.75rem 1.75rem 1.5rem; /* tighten bottom padding */
  margin: 1.5rem 0 2rem;
  transition: all 0.3s ease;
}

details[open].thought-cloud {
  box-shadow: 0 6px 16px rgba(255, 165, 0, 0.18);
  border-color: rgba(255, 165, 0, 0.35);
}

/* Header section */

.thought-summary {
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  font-weight: 700;
  font-size: 1.125rem;
  color: #2f2f2f;
  cursor: pointer;
  margin-bottom: 0.75rem;
  line-height: 1.3;
}

.thought-summary::-webkit-details-marker,
.thought-summary::marker {
  display: none;
}

/* Body text */

.thought-content {
  text-align: center;
  font-size: 0.95rem;
  color: #4a4a4a;
  line-height: 1.55;
  margin: 0 auto;
  max-width: 100%;
}

/* Optional: subtle glow highlight behind the card */

.thought-cloud::before {
  content: "";
  position: absolute;
  inset: 0;
  border-radius: 1.75rem;
  box-shadow: 0 12px 25px rgba(255, 165, 0, 0.08);
  z-index: -1;
}

*, ::before, ::after  {
        --tw-border-spacing-x: 0;
        --tw-border-spacing-y: 0;
        --tw-translate-x: 0;
        --tw-translate-y: 0;
        --tw-rotate: 0;
        --tw-skew-x: 0;
        --tw-skew-y: 0;
        --tw-scale-x: 1;
        --tw-scale-y: 1;
        --tw-pan-x:  ;
        --tw-pan-y:  ;
        --tw-pinch-zoom:  ;
        --tw-scroll-snap-strictness: proximity;
        --tw-gradient-from-position:  ;
        --tw-gradient-via-position:  ;
        --tw-gradient-to-position:  ;
        --tw-ordinal:  ;
        --tw-slashed-zero:  ;
        --tw-numeric-figure:  ;
        --tw-numeric-spacing:  ;
        --tw-numeric-fraction:  ;
        --tw-ring-inset:  ;
        --tw-ring-offset-width: 0px;
        --tw-ring-offset-color: #fff;
        --tw-ring-color: rgb(59 130 246 / 0.5);
        --tw-ring-offset-shadow: 0 0 #0000;
        --tw-ring-shadow: 0 0 #0000;
        --tw-shadow: 0 0 #0000;
        --tw-shadow-colored: 0 0 #0000;
        --tw-blur:  ;
        --tw-brightness:  ;
        --tw-contrast:  ;
        --tw-grayscale:  ;
        --tw-hue-rotate:  ;
        --tw-invert:  ;
        --tw-saturate:  ;
        --tw-sepia:  ;
        --tw-drop-shadow:  ;
        --tw-backdrop-blur:  ;
        --tw-backdrop-brightness:  ;
        --tw-backdrop-contrast:  ;
        --tw-backdrop-grayscale:  ;
        --tw-backdrop-hue-rotate:  ;
        --tw-backdrop-invert:  ;
        --tw-backdrop-opacity:  ;
        --tw-backdrop-saturate:  ;
        --tw-backdrop-sepia:  ;
        --tw-contain-size:  ;
        --tw-contain-layout:  ;
        --tw-contain-paint:  ;
        --tw-contain-style:  ; }

::backdrop  {
        --tw-border-spacing-x: 0;
        --tw-border-spacing-y: 0;
        --tw-translate-x: 0;
        --tw-translate-y: 0;
        --tw-rotate: 0;
        --tw-skew-x: 0;
        --tw-skew-y: 0;
        --tw-scale-x: 1;
        --tw-scale-y: 1;
        --tw-pan-x:  ;
        --tw-pan-y:  ;
        --tw-pinch-zoom:  ;
        --tw-scroll-snap-strictness: proximity;
        --tw-gradient-from-position:  ;
        --tw-gradient-via-position:  ;
        --tw-gradient-to-position:  ;
        --tw-ordinal:  ;
        --tw-slashed-zero:  ;
        --tw-numeric-figure:  ;
        --tw-numeric-spacing:  ;
        --tw-numeric-fraction:  ;
        --tw-ring-inset:  ;
        --tw-ring-offset-width: 0px;
        --tw-ring-offset-color: #fff;
        --tw-ring-color: rgb(59 130 246 / 0.5);
        --tw-ring-offset-shadow: 0 0 #0000;
        --tw-ring-shadow: 0 0 #0000;
        --tw-shadow: 0 0 #0000;
        --tw-shadow-colored: 0 0 #0000;
        --tw-blur:  ;
        --tw-brightness:  ;
        --tw-contrast:  ;
        --tw-grayscale:  ;
        --tw-hue-rotate:  ;
        --tw-invert:  ;
        --tw-saturate:  ;
        --tw-sepia:  ;
        --tw-drop-shadow:  ;
        --tw-backdrop-blur:  ;
        --tw-backdrop-brightness:  ;
        --tw-backdrop-contrast:  ;
        --tw-backdrop-grayscale:  ;
        --tw-backdrop-hue-rotate:  ;
        --tw-backdrop-invert:  ;
        --tw-backdrop-opacity:  ;
        --tw-backdrop-saturate:  ;
        --tw-backdrop-sepia:  ;
        --tw-contain-size:  ;
        --tw-contain-layout:  ;
        --tw-contain-paint:  ;
        --tw-contain-style:  ; }

/* ! tailwindcss v3.4.17 | MIT License | https://tailwindcss.com */

/*
1. Prevent padding and border from affecting element width. (https://github.com/mozdevs/cssremedy/issues/4)
2. Allow adding a border to an element by just adding a border-width. (https://github.com/tailwindcss/tailwindcss/pull/116)
*/

*,
::before,
::after {
  box-sizing: border-box; /* 1 */
  border-width: 0; /* 2 */
  border-style: solid; /* 2 */
  border-color: #e5e7eb; /* 2 */
}

::before,
::after {
  --tw-content: '';
}

/*
1. Use a consistent sensible line-height in all browsers.
2. Prevent adjustments of font size after orientation changes in iOS.
3. Use a more readable tab size.
4. Use the user's configured `sans` font-family by default.
5. Use the user's configured `sans` font-feature-settings by default.
6. Use the user's configured `sans` font-variation-settings by default.
7. Disable tap highlights on iOS
*/

html,
:host {
  line-height: 1.5; /* 1 */
  -webkit-text-size-adjust: 100%; /* 2 */
  -moz-tab-size: 4; /* 3 */
  -o-tab-size: 4;
     tab-size: 4; /* 3 */
  font-family: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; /* 4 */
  font-feature-settings: normal; /* 5 */
  font-variation-settings: normal; /* 6 */
  -webkit-tap-highlight-color: transparent; /* 7 */
}

/*
1. Remove the margin in all browsers.
2. Inherit line-height from `html` so users can set them as a class directly on the `html` element.
*/

body {
  margin: 0; /* 1 */
  line-height: inherit; /* 2 */
}

/*
1. Add the correct height in Firefox.
2. Correct the inheritance of border color in Firefox. (https://bugzilla.mozilla.org/show_bug.cgi?id=190655)
3. Ensure horizontal rules are visible by default.
*/

hr {
  height: 0; /* 1 */
  color: inherit; /* 2 */
  border-top-width: 1px; /* 3 */
}

/*
Add the correct text decoration in Chrome, Edge, and Safari.
*/

abbr:where([title]) {
  -webkit-text-decoration: underline dotted;
          text-decoration: underline dotted;
}

/*
Remove the default font size and weight for headings.
*/

h1,
h2,
h3,
h4,
h5,
h6 {
  font-size: inherit;
  font-weight: inherit;
}

/*
Reset links to optimize for opt-in styling instead of opt-out.
*/

a {
  color: inherit;
  text-decoration: inherit;
}

/*
Add the correct font weight in Edge and Safari.
*/

b,
strong {
  font-weight: bolder;
}

/*
1. Use the user's configured `mono` font-family by default.
2. Use the user's configured `mono` font-feature-settings by default.
3. Use the user's configured `mono` font-variation-settings by default.
4. Correct the odd `em` font sizing in all browsers.
*/

code,
kbd,
samp,
pre {
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; /* 1 */
  font-feature-settings: normal; /* 2 */
  font-variation-settings: normal; /* 3 */
  font-size: 1em; /* 4 */
}

/*
Add the correct font size in all browsers.
*/

small {
  font-size: 80%;
}

/*
Prevent `sub` and `sup` elements from affecting the line height in all browsers.
*/

sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

sub {
  bottom: -0.25em;
}

sup {
  top: -0.5em;
}

/*
1. Remove text indentation from table contents in Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=999088, https://bugs.webkit.org/show_bug.cgi?id=201297)
2. Correct table border color inheritance in all Chrome and Safari. (https://bugs.chromium.org/p/chromium/issues/detail?id=935729, https://bugs.webkit.org/show_bug.cgi?id=195016)
3. Remove gaps between table borders by default.
*/

table {
  text-indent: 0; /* 1 */
  border-color: inherit; /* 2 */
  border-collapse: collapse; /* 3 */
}

/*
1. Change the font styles in all browsers.
2. Remove the margin in Firefox and Safari.
3. Remove default padding in all browsers.
*/

button,
input,
optgroup,
select,
textarea {
  font-family: inherit; /* 1 */
  font-feature-settings: inherit; /* 1 */
  font-variation-settings: inherit; /* 1 */
  font-size: 100%; /* 1 */
  font-weight: inherit; /* 1 */
  line-height: inherit; /* 1 */
  letter-spacing: inherit; /* 1 */
  color: inherit; /* 1 */
  margin: 0; /* 2 */
  padding: 0; /* 3 */
}

/*
Remove the inheritance of text transform in Edge and Firefox.
*/

button,
select {
  text-transform: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Remove default button styles.
*/

button,
input:where([type='button']),
input:where([type='reset']),
input:where([type='submit']) {
  -webkit-appearance: button; /* 1 */
  background-color: transparent; /* 2 */
  background-image: none; /* 2 */
}

/*
Use the modern Firefox focus style for all focusable elements.
*/

:-moz-focusring {
  outline: auto;
}

/*
Remove the additional `:invalid` styles in Firefox. (https://github.com/mozilla/gecko-dev/blob/2f9eacd9d3d995c937b4251a5557d95d494c9be1/layout/style/res/forms.css#L728-L737)
*/

:-moz-ui-invalid {
  box-shadow: none;
}

/*
Add the correct vertical alignment in Chrome and Firefox.
*/

progress {
  vertical-align: baseline;
}

/*
Correct the cursor style of increment and decrement buttons in Safari.
*/

::-webkit-inner-spin-button,
::-webkit-outer-spin-button {
  height: auto;
}

/*
1. Correct the odd appearance in Chrome and Safari.
2. Correct the outline style in Safari.
*/

[type='search'] {
  -webkit-appearance: textfield; /* 1 */
  outline-offset: -2px; /* 2 */
}

/*
Remove the inner padding in Chrome and Safari on macOS.
*/

::-webkit-search-decoration {
  -webkit-appearance: none;
}

/*
1. Correct the inability to style clickable types in iOS and Safari.
2. Change font properties to `inherit` in Safari.
*/

::-webkit-file-upload-button {
  -webkit-appearance: button; /* 1 */
  font: inherit; /* 2 */
}

/*
Add the correct display in Chrome and Safari.
*/

summary {
  display: list-item;
}

/*
Removes the default spacing and border for appropriate elements.
*/

blockquote,
dl,
dd,
h1,
h2,
h3,
h4,
h5,
h6,
hr,
figure,
p,
pre {
  margin: 0;
}

fieldset {
  margin: 0;
  padding: 0;
}

legend {
  padding: 0;
}

ol,
ul,
menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

/*
Reset default styling for dialogs.
*/

dialog {
  padding: 0;
}

/*
Prevent resizing textareas horizontally by default.
*/

textarea {
  resize: vertical;
}

/*
1. Reset the default placeholder opacity in Firefox. (https://github.com/tailwindlabs/tailwindcss/issues/3300)
2. Set the default placeholder color to the user's configured gray 400 color.
*/

input::-moz-placeholder, textarea::-moz-placeholder {
  opacity: 1; /* 1 */
  color: #9ca3af; /* 2 */
}

input::placeholder,
textarea::placeholder {
  opacity: 1; /* 1 */
  color: #9ca3af; /* 2 */
}

/*
Set the default cursor for buttons.
*/

button,
[role="button"] {
  cursor: pointer;
}

/*
Make sure disabled buttons don't get the pointer cursor.
*/

:disabled {
  cursor: default;
}

/*
1. Make replaced elements `display: block` by default. (https://github.com/mozdevs/cssremedy/issues/14)
2. Add `vertical-align: middle` to align replaced elements more sensibly by default. (https://github.com/jensimmons/cssremedy/issues/14#issuecomment-634934210)
   This can trigger a poorly considered lint error in some tools but is included by design.
*/

img,
svg,
video,
canvas,
audio,
iframe,
embed,
object {
  display: block; /* 1 */
  vertical-align: middle; /* 2 */
}

/*
Constrain images and videos to the parent width and preserve their intrinsic aspect ratio. (https://github.com/mozdevs/cssremedy/issues/14)
*/

img,
video {
  max-width: 100%;
  height: auto;
}

/* Make elements with the HTML hidden attribute stay hidden by default */

[hidden]:where(:not([hidden="until-found"])) {
  display: none;
}

.\!container  {
        width: 100% !important; }

.container  {
        width: 100%; }

@media (min-width: 640px)  {

        .\!container  {
                max-width: 640px !important; }

        .container  {
                max-width: 640px; } }

@media (min-width: 768px)  {

        .\!container  {
                max-width: 768px !important; }

        .container  {
                max-width: 768px; } }

@media (min-width: 1024px)  {

        .\!container  {
                max-width: 1024px !important; }

        .container  {
                max-width: 1024px; } }

@media (min-width: 1280px)  {

        .\!container  {
                max-width: 1280px !important; }

        .container  {
                max-width: 1280px; } }

@media (min-width: 1536px)  {

        .\!container  {
                max-width: 1536px !important; }

        .container  {
                max-width: 1536px; } }

.sr-only  {
        position: absolute;
        width: 1px;
        height: 1px;
        padding: 0;
        margin: -1px;
        overflow: hidden;
        clip: rect(0, 0, 0, 0);
        white-space: nowrap;
        border-width: 0; }

.pointer-events-none  {
        pointer-events: none; }

.pointer-events-auto  {
        pointer-events: auto; }

.visible  {
        visibility: visible; }

.collapse  {
        visibility: collapse; }

.fixed  {
        position: fixed; }

.absolute  {
        position: absolute; }

.relative  {
        position: relative; }

.inset-0  {
        inset: 0px; }

.inset-y-0  {
        top: 0px;
        bottom: 0px; }

.inset-y-1  {
        top: 0.25rem;
        bottom: 0.25rem; }

.-right-1  {
        right: -0.25rem; }

.-top-1  {
        top: -0.25rem; }

.-top-2  {
        top: -0.5rem; }

.-top-px  {
        top: -1px; }

.bottom-0  {
        bottom: 0px; }

.bottom-1  {
        bottom: 0.25rem; }

.bottom-2  {
        bottom: 0.5rem; }

.bottom-4  {
        bottom: 1rem; }

.bottom-5  {
        bottom: 1.25rem; }

.left-0  {
        left: 0px; }

.left-0\.5  {
        left: 0.125rem; }

.left-1  {
        left: 0.25rem; }

.left-1\/2  {
        left: 50%; }

.left-2  {
        left: 0.5rem; }

.left-3  {
        left: 0.75rem; }

.left-4  {
        left: 1rem; }

.left-6  {
        left: 1.5rem; }

.left-px  {
        left: 1px; }

.right-0  {
        right: 0px; }

.right-1  {
        right: 0.25rem; }

.right-1\.5  {
        right: 0.375rem; }

.right-2  {
        right: 0.5rem; }

.right-3  {
        right: 0.75rem; }

.right-4  {
        right: 1rem; }

.right-5  {
        right: 1.25rem; }

.top-0  {
        top: 0px; }

.top-0\.5  {
        top: 0.125rem; }

.top-1  {
        top: 0.25rem; }

.top-1\/2  {
        top: 50%; }

.top-10  {
        top: 2.5rem; }

.top-2  {
        top: 0.5rem; }

.top-24  {
        top: 6rem; }

.top-4  {
        top: 1rem; }

.top-5  {
        top: 1.25rem; }

.top-6  {
        top: 1.5rem; }

.top-full  {
        top: 100%; }

.top-px  {
        top: 1px; }

.z-10  {
        z-index: 10; }

.z-30  {
        z-index: 30; }

.z-40  {
        z-index: 40; }

.z-50  {
        z-index: 50; }

.z-\[1100\]  {
        z-index: 1100; }

.z-\[1200\]  {
        z-index: 1200; }

.z-\[9999\]  {
        z-index: 9999; }

.col-span-2  {
        grid-column: span 2 / span 2; }

.col-span-4  {
        grid-column: span 4 / span 4; }

.col-span-7  {
        grid-column: span 7 / span 7; }

.mx-2  {
        margin-left: 0.5rem;
        margin-right: 0.5rem; }

.mx-4  {
        margin-left: 1rem;
        margin-right: 1rem; }

.mx-auto  {
        margin-left: auto;
        margin-right: auto; }

.my-1  {
        margin-top: 0.25rem;
        margin-bottom: 0.25rem; }

.my-3  {
        margin-top: 0.75rem;
        margin-bottom: 0.75rem; }

.my-4  {
        margin-top: 1rem;
        margin-bottom: 1rem; }

.my-5  {
        margin-top: 1.25rem;
        margin-bottom: 1.25rem; }

.my-6  {
        margin-top: 1.5rem;
        margin-bottom: 1.5rem; }

.my-8  {
        margin-top: 2rem;
        margin-bottom: 2rem; }

.-ml-3  {
        margin-left: -0.75rem; }

.-mr-1  {
        margin-right: -0.25rem; }

.-mr-4  {
        margin-right: -1rem; }

.-mt-1  {
        margin-top: -0.25rem; }

.-mt-3  {
        margin-top: -0.75rem; }

.mb-0  {
        margin-bottom: 0px; }

.mb-1  {
        margin-bottom: 0.25rem; }

.mb-2  {
        margin-bottom: 0.5rem; }

.mb-3  {
        margin-bottom: 0.75rem; }

.mb-4  {
        margin-bottom: 1rem; }

.mb-6  {
        margin-bottom: 1.5rem; }

.mb-8  {
        margin-bottom: 2rem; }

.ml-1  {
        margin-left: 0.25rem; }

.ml-10  {
        margin-left: 2.5rem; }

.ml-2  {
        margin-left: 0.5rem; }

.ml-3  {
        margin-left: 0.75rem; }

.ml-4  {
        margin-left: 1rem; }

.ml-5  {
        margin-left: 1.25rem; }

.ml-6  {
        margin-left: 1.5rem; }

.ml-8  {
        margin-left: 2rem; }

.mr-2  {
        margin-right: 0.5rem; }

.mr-3  {
        margin-right: 0.75rem; }

.mr-4  {
        margin-right: 1rem; }

.mt-0  {
        margin-top: 0px; }

.mt-0\.5  {
        margin-top: 0.125rem; }

.mt-1  {
        margin-top: 0.25rem; }

.mt-1\.5  {
        margin-top: 0.375rem; }

.mt-2  {
        margin-top: 0.5rem; }

.mt-3  {
        margin-top: 0.75rem; }

.mt-4  {
        margin-top: 1rem; }

.mt-6  {
        margin-top: 1.5rem; }

.mt-60  {
        margin-top: 15rem; }

.mt-8  {
        margin-top: 2rem; }

.mt-auto  {
        margin-top: auto; }

.block  {
        display: block; }

.inline-block  {
        display: inline-block; }

.flex  {
        display: flex; }

.inline-flex  {
        display: inline-flex; }

.table  {
        display: table; }

.grid  {
        display: grid; }

.hidden  {
        display: none; }

.size-6  {
        width: 1.5rem;
        height: 1.5rem; }

.h-0  {
        height: 0px; }

.h-1  {
        height: 0.25rem; }

.h-10  {
        height: 2.5rem; }

.h-12  {
        height: 3rem; }

.h-16  {
        height: 4rem; }

.h-2  {
        height: 0.5rem; }

.h-20  {
        height: 5rem; }

.h-24  {
        height: 6rem; }

.h-3  {
        height: 0.75rem; }

.h-3\.5  {
        height: 0.875rem; }

.h-36  {
        height: 9rem; }

.h-4  {
        height: 1rem; }

.h-48  {
        height: 12rem; }

.h-5  {
        height: 1.25rem; }

.h-56  {
        height: 14rem; }

.h-6  {
        height: 1.5rem; }

.h-64  {
        height: 16rem; }

.h-7  {
        height: 1.75rem; }

.h-8  {
        height: 2rem; }

.h-full  {
        height: 100%; }

.max-h-48  {
        max-height: 12rem; }

.max-h-60  {
        max-height: 15rem; }

.max-h-64  {
        max-height: 16rem; }

.max-h-\[20vh\]  {
        max-height: 20vh; }

.max-h-\[240px\]  {
        max-height: 240px; }

.max-h-\[400px\]  {
        max-height: 400px; }

.max-h-\[40vh\]  {
        max-height: 40vh; }

.max-h-\[45vh\]  {
        max-height: 45vh; }

.max-h-\[50vh\]  {
        max-height: 50vh; }

.max-h-\[60vh\]  {
        max-height: 60vh; }

.max-h-\[70vh\]  {
        max-height: 70vh; }

.max-h-\[75vh\]  {
        max-height: 75vh; }

.min-h-screen  {
        min-height: 100vh; }

.w-0  {
        width: 0px; }

.w-1  {
        width: 0.25rem; }

.w-1\/2  {
        width: 50%; }

.w-1\/3  {
        width: 33.333333%; }

.w-1\/4  {
        width: 25%; }

.w-10  {
        width: 2.5rem; }

.w-11  {
        width: 2.75rem; }

.w-11\/12  {
        width: 91.666667%; }

.w-12  {
        width: 3rem; }

.w-16  {
        width: 4rem; }

.w-2  {
        width: 0.5rem; }

.w-20  {
        width: 5rem; }

.w-24  {
        width: 6rem; }

.w-28  {
        width: 7rem; }

.w-3  {
        width: 0.75rem; }

.w-3\.5  {
        width: 0.875rem; }

.w-3\/4  {
        width: 75%; }

.w-32  {
        width: 8rem; }

.w-4  {
        width: 1rem; }

.w-40  {
        width: 10rem; }

.w-48  {
        width: 12rem; }

.w-5  {
        width: 1.25rem; }

.w-6  {
        width: 1.5rem; }

.w-64  {
        width: 16rem; }

.w-7  {
        width: 1.75rem; }

.w-8  {
        width: 2rem; }

.w-9  {
        width: 2.25rem; }

.w-full  {
        width: 100%; }

.w-max  {
        width: -moz-max-content;
        width: max-content; }

.min-w-0  {
        min-width: 0px; }

.max-w-7xl  {
        max-width: 80rem; }

.max-w-md  {
        max-width: 28rem; }

.max-w-sm  {
        max-width: 24rem; }

.max-w-xs  {
        max-width: 20rem; }

.flex-1  {
        flex: 1 1 0%; }

.flex-shrink  {
        flex-shrink: 1; }

.flex-shrink-0  {
        flex-shrink: 0; }

.flex-grow  {
        flex-grow: 1; }

.-translate-x-1\/2  {
        --tw-translate-x: -50%;
        transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }

.-translate-y-1\/2  {
        --tw-translate-y: -50%;
        transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }

.-rotate-45  {
        --tw-rotate: -45deg;
        transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }

.scale-100  {
        --tw-scale-x: 1;
        --tw-scale-y: 1;
        transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }

.scale-110  {
        --tw-scale-x: 1.1;
        --tw-scale-y: 1.1;
        transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }

.scale-75  {
        --tw-scale-x: .75;
        --tw-scale-y: .75;
        transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }

.scale-95  {
        --tw-scale-x: .95;
        --tw-scale-y: .95;
        transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }

.transform  {
        transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }

@keyframes pulse  {

        50%  {
                opacity: .5; } }

.animate-pulse  {
        animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite; }

@keyframes spin  {

        to  {
                transform: rotate(360deg); } }

.animate-spin  {
        animation: spin 1s linear infinite; }

.\!cursor-default  {
        cursor: default !important; }

.cursor-default  {
        cursor: default; }

.cursor-grab  {
        cursor: grab; }

.cursor-not-allowed  {
        cursor: not-allowed; }

.cursor-pointer  {
        cursor: pointer; }

.select-none  {
        -webkit-user-select: none;
           -moz-user-select: none;
                user-select: none; }

.resize  {
        resize: both; }

.snap-y  {
        scroll-snap-type: y var(--tw-scroll-snap-strictness); }

.snap-mandatory  {
        --tw-scroll-snap-strictness: mandatory; }

.snap-center  {
        scroll-snap-align: center; }

.list-inside  {
        list-style-position: inside; }

.list-outside  {
        list-style-position: outside; }

.list-decimal  {
        list-style-type: decimal; }

.list-disc  {
        list-style-type: disc; }

.appearance-none  {
        -webkit-appearance: none;
           -moz-appearance: none;
                appearance: none; }

.grid-cols-1  {
        grid-template-columns: repeat(1, minmax(0, 1fr)); }

.grid-cols-2  {
        grid-template-columns: repeat(2, minmax(0, 1fr)); }

.grid-cols-3  {
        grid-template-columns: repeat(3, minmax(0, 1fr)); }

.grid-cols-4  {
        grid-template-columns: repeat(4, minmax(0, 1fr)); }

.grid-cols-7  {
        grid-template-columns: repeat(7, minmax(0, 1fr)); }

.flex-col  {
        flex-direction: column; }

.flex-wrap  {
        flex-wrap: wrap; }

.flex-nowrap  {
        flex-wrap: nowrap; }

.items-start  {
        align-items: flex-start; }

.items-end  {
        align-items: flex-end; }

.items-center  {
        align-items: center; }

.items-baseline  {
        align-items: baseline; }

.justify-start  {
        justify-content: flex-start; }

.justify-end  {
        justify-content: flex-end; }

.justify-center  {
        justify-content: center; }

.justify-between  {
        justify-content: space-between; }

.justify-around  {
        justify-content: space-around; }

.gap-1  {
        gap: 0.25rem; }

.gap-1\.5  {
        gap: 0.375rem; }

.gap-2  {
        gap: 0.5rem; }

.gap-3  {
        gap: 0.75rem; }

.gap-4  {
        gap: 1rem; }

.gap-8  {
        gap: 2rem; }

.gap-x-4  {
        -moz-column-gap: 1rem;
             column-gap: 1rem; }

.gap-x-6  {
        -moz-column-gap: 1.5rem;
             column-gap: 1.5rem; }

.gap-y-2  {
        row-gap: 0.5rem; }

.gap-y-3  {
        row-gap: 0.75rem; }

.space-x-1 > :not([hidden]) ~ :not([hidden])  {
        --tw-space-x-reverse: 0;
        margin-right: calc(0.25rem * var(--tw-space-x-reverse));
        margin-left: calc(0.25rem * calc(1 - var(--tw-space-x-reverse))); }

.space-x-10 > :not([hidden]) ~ :not([hidden])  {
        --tw-space-x-reverse: 0;
        margin-right: calc(2.5rem * var(--tw-space-x-reverse));
        margin-left: calc(2.5rem * calc(1 - var(--tw-space-x-reverse))); }

.space-x-2 > :not([hidden]) ~ :not([hidden])  {
        --tw-space-x-reverse: 0;
        margin-right: calc(0.5rem * var(--tw-space-x-reverse));
        margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse))); }

.space-x-4 > :not([hidden]) ~ :not([hidden])  {
        --tw-space-x-reverse: 0;
        margin-right: calc(1rem * var(--tw-space-x-reverse));
        margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse))); }

.space-y-1 > :not([hidden]) ~ :not([hidden])  {
        --tw-space-y-reverse: 0;
        margin-top: calc(0.25rem * calc(1 - var(--tw-space-y-reverse)));
        margin-bottom: calc(0.25rem * var(--tw-space-y-reverse)); }

.space-y-2 > :not([hidden]) ~ :not([hidden])  {
        --tw-space-y-reverse: 0;
        margin-top: calc(0.5rem * calc(1 - var(--tw-space-y-reverse)));
        margin-bottom: calc(0.5rem * var(--tw-space-y-reverse)); }

.space-y-3 > :not([hidden]) ~ :not([hidden])  {
        --tw-space-y-reverse: 0;
        margin-top: calc(0.75rem * calc(1 - var(--tw-space-y-reverse)));
        margin-bottom: calc(0.75rem * var(--tw-space-y-reverse)); }

.space-y-4 > :not([hidden]) ~ :not([hidden])  {
        --tw-space-y-reverse: 0;
        margin-top: calc(1rem * calc(1 - var(--tw-space-y-reverse)));
        margin-bottom: calc(1rem * var(--tw-space-y-reverse)); }

.space-y-6 > :not([hidden]) ~ :not([hidden])  {
        --tw-space-y-reverse: 0;
        margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse)));
        margin-bottom: calc(1.5rem * var(--tw-space-y-reverse)); }

.space-y-8 > :not([hidden]) ~ :not([hidden])  {
        --tw-space-y-reverse: 0;
        margin-top: calc(2rem * calc(1 - var(--tw-space-y-reverse)));
        margin-bottom: calc(2rem * var(--tw-space-y-reverse)); }

.self-center  {
        align-self: center; }

.overflow-hidden  {
        overflow: hidden; }

.overflow-x-auto  {
        overflow-x: auto; }

.overflow-y-auto  {
        overflow-y: auto; }

.overflow-y-scroll  {
        overflow-y: scroll; }

.truncate  {
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap; }

.whitespace-normal  {
        white-space: normal; }

.whitespace-nowrap  {
        white-space: nowrap; }

.whitespace-pre-wrap  {
        white-space: pre-wrap; }

.text-nowrap  {
        text-wrap: nowrap; }

.break-words  {
        overflow-wrap: break-word; }

.rounded  {
        border-radius: 0.25rem; }

.rounded-2xl  {
        border-radius: 1rem; }

.rounded-full  {
        border-radius: 9999px; }

.rounded-lg  {
        border-radius: 0.5rem; }

.rounded-md  {
        border-radius: 0.375rem; }

.rounded-xl  {
        border-radius: 0.75rem; }

.rounded-b-lg  {
        border-bottom-right-radius: 0.5rem;
        border-bottom-left-radius: 0.5rem; }

.rounded-b-md  {
        border-bottom-right-radius: 0.375rem;
        border-bottom-left-radius: 0.375rem; }

.rounded-t-lg  {
        border-top-left-radius: 0.5rem;
        border-top-right-radius: 0.5rem; }

.rounded-t-xl  {
        border-top-left-radius: 0.75rem;
        border-top-right-radius: 0.75rem; }

.rounded-bl-full  {
        border-bottom-left-radius: 9999px; }

.rounded-bl-xl  {
        border-bottom-left-radius: 0.75rem; }

.rounded-br-full  {
        border-bottom-right-radius: 9999px; }

.rounded-br-xl  {
        border-bottom-right-radius: 0.75rem; }

.rounded-tl-full  {
        border-top-left-radius: 9999px; }

.rounded-tr-full  {
        border-top-right-radius: 9999px; }

.border  {
        border-width: 1px; }

.border-2  {
        border-width: 2px; }

.border-4  {
        border-width: 4px; }

.border-y  {
        border-top-width: 1px;
        border-bottom-width: 1px; }

.border-y-2  {
        border-top-width: 2px;
        border-bottom-width: 2px; }

.border-b  {
        border-bottom-width: 1px; }

.border-b-2  {
        border-bottom-width: 2px; }

.border-b-8  {
        border-bottom-width: 8px; }

.border-l-4  {
        border-left-width: 4px; }

.border-l-8  {
        border-left-width: 8px; }

.border-r-8  {
        border-right-width: 8px; }

.border-t  {
        border-top-width: 1px; }

.border-dashed  {
        border-style: dashed; }

.border-black  {
        --tw-border-opacity: 1;
        border-color: rgb(0 0 0 / var(--tw-border-opacity, 1)); }

.border-blue-600  {
        --tw-border-opacity: 1;
        border-color: rgb(37 99 235 / var(--tw-border-opacity, 1)); }

.border-cyan-600  {
        --tw-border-opacity: 1;
        border-color: rgb(8 145 178 / var(--tw-border-opacity, 1)); }

.border-gray-100  {
        --tw-border-opacity: 1;
        border-color: rgb(243 244 246 / var(--tw-border-opacity, 1)); }

.border-gray-200  {
        --tw-border-opacity: 1;
        border-color: rgb(229 231 235 / var(--tw-border-opacity, 1)); }

.border-gray-300  {
        --tw-border-opacity: 1;
        border-color: rgb(209 213 219 / var(--tw-border-opacity, 1)); }

.border-gray-400  {
        --tw-border-opacity: 1;
        border-color: rgb(156 163 175 / var(--tw-border-opacity, 1)); }

.border-gray-500  {
        --tw-border-opacity: 1;
        border-color: rgb(107 114 128 / var(--tw-border-opacity, 1)); }

.border-gray-700  {
        --tw-border-opacity: 1;
        border-color: rgb(55 65 81 / var(--tw-border-opacity, 1)); }

.border-gray-800  {
        --tw-border-opacity: 1;
        border-color: rgb(31 41 55 / var(--tw-border-opacity, 1)); }

.border-green-600  {
        --tw-border-opacity: 1;
        border-color: rgb(22 163 74 / var(--tw-border-opacity, 1)); }

.border-orange-200  {
        --tw-border-opacity: 1;
        border-color: rgb(254 215 170 / var(--tw-border-opacity, 1)); }

.border-orange-300  {
        --tw-border-opacity: 1;
        border-color: rgb(253 186 116 / var(--tw-border-opacity, 1)); }

.border-orange-400  {
        --tw-border-opacity: 1;
        border-color: rgb(251 146 60 / var(--tw-border-opacity, 1)); }

.border-orange-500  {
        --tw-border-opacity: 1;
        border-color: rgb(249 115 22 / var(--tw-border-opacity, 1)); }

.border-orange-600  {
        --tw-border-opacity: 1;
        border-color: rgb(234 88 12 / var(--tw-border-opacity, 1)); }

.border-red-600  {
        --tw-border-opacity: 1;
        border-color: rgb(220 38 38 / var(--tw-border-opacity, 1)); }

.border-teal-200  {
        --tw-border-opacity: 1;
        border-color: rgb(153 246 228 / var(--tw-border-opacity, 1)); }

.border-teal-600  {
        --tw-border-opacity: 1;
        border-color: rgb(13 148 136 / var(--tw-border-opacity, 1)); }

.border-transparent  {
        border-color: transparent; }

.border-white  {
        --tw-border-opacity: 1;
        border-color: rgb(255 255 255 / var(--tw-border-opacity, 1)); }

.border-yellow-300  {
        --tw-border-opacity: 1;
        border-color: rgb(253 224 71 / var(--tw-border-opacity, 1)); }

.border-b-gray-200  {
        --tw-border-opacity: 1;
        border-bottom-color: rgb(229 231 235 / var(--tw-border-opacity, 1)); }

.border-l-transparent  {
        border-left-color: transparent; }

.border-r-transparent  {
        border-right-color: transparent; }

.border-t-transparent  {
        border-top-color: transparent; }

.border-t-white  {
        --tw-border-opacity: 1;
        border-top-color: rgb(255 255 255 / var(--tw-border-opacity, 1)); }

.bg-\[\#1f1f1f\]  {
        --tw-bg-opacity: 1;
        background-color: rgb(31 31 31 / var(--tw-bg-opacity, 1)); }

.bg-\[\#F5F3F0\]  {
        --tw-bg-opacity: 1;
        background-color: rgb(245 243 240 / var(--tw-bg-opacity, 1)); }

.bg-\[rgba\(17\2c 24\2c 39\2c 0\.7\)\]  {
        background-color: rgba(17,24,39,0.7); }

.bg-amber-100  {
        --tw-bg-opacity: 1;
        background-color: rgb(254 243 199 / var(--tw-bg-opacity, 1)); }

.bg-black  {
        --tw-bg-opacity: 1;
        background-color: rgb(0 0 0 / var(--tw-bg-opacity, 1)); }

.bg-black\/95  {
        background-color: rgb(0 0 0 / 0.95); }

.bg-blue-100  {
        --tw-bg-opacity: 1;
        background-color: rgb(219 234 254 / var(--tw-bg-opacity, 1)); }

.bg-blue-500  {
        --tw-bg-opacity: 1;
        background-color: rgb(59 130 246 / var(--tw-bg-opacity, 1)); }

.bg-blue-600  {
        --tw-bg-opacity: 1;
        background-color: rgb(37 99 235 / var(--tw-bg-opacity, 1)); }

.bg-cyan-100  {
        --tw-bg-opacity: 1;
        background-color: rgb(207 250 254 / var(--tw-bg-opacity, 1)); }

.bg-fuchsia-100  {
        --tw-bg-opacity: 1;
        background-color: rgb(250 232 255 / var(--tw-bg-opacity, 1)); }

.bg-gray-100  {
        --tw-bg-opacity: 1;
        background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1)); }

.bg-gray-200  {
        --tw-bg-opacity: 1;
        background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1)); }

.bg-gray-300  {
        --tw-bg-opacity: 1;
        background-color: rgb(209 213 219 / var(--tw-bg-opacity, 1)); }

.bg-gray-400  {
        --tw-bg-opacity: 1;
        background-color: rgb(156 163 175 / var(--tw-bg-opacity, 1)); }

.bg-gray-50  {
        --tw-bg-opacity: 1;
        background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1)); }

.bg-gray-500  {
        --tw-bg-opacity: 1;
        background-color: rgb(107 114 128 / var(--tw-bg-opacity, 1)); }

.bg-gray-600  {
        --tw-bg-opacity: 1;
        background-color: rgb(75 85 99 / var(--tw-bg-opacity, 1)); }

.bg-gray-800\/80  {
        background-color: rgb(31 41 55 / 0.8); }

.bg-green-100  {
        --tw-bg-opacity: 1;
        background-color: rgb(220 252 231 / var(--tw-bg-opacity, 1)); }

.bg-green-50  {
        --tw-bg-opacity: 1;
        background-color: rgb(240 253 244 / var(--tw-bg-opacity, 1)); }

.bg-green-500  {
        --tw-bg-opacity: 1;
        background-color: rgb(34 197 94 / var(--tw-bg-opacity, 1)); }

.bg-green-600  {
        --tw-bg-opacity: 1;
        background-color: rgb(22 163 74 / var(--tw-bg-opacity, 1)); }

.bg-indigo-100  {
        --tw-bg-opacity: 1;
        background-color: rgb(224 231 255 / var(--tw-bg-opacity, 1)); }

.bg-indigo-600  {
        --tw-bg-opacity: 1;
        background-color: rgb(79 70 229 / var(--tw-bg-opacity, 1)); }

.bg-lime-100  {
        --tw-bg-opacity: 1;
        background-color: rgb(236 252 203 / var(--tw-bg-opacity, 1)); }

.bg-orange-100  {
        --tw-bg-opacity: 1;
        background-color: rgb(255 237 213 / var(--tw-bg-opacity, 1)); }

.bg-orange-400  {
        --tw-bg-opacity: 1;
        background-color: rgb(251 146 60 / var(--tw-bg-opacity, 1)); }

.bg-orange-50  {
        --tw-bg-opacity: 1;
        background-color: rgb(255 247 237 / var(--tw-bg-opacity, 1)); }

.bg-orange-500  {
        --tw-bg-opacity: 1;
        background-color: rgb(249 115 22 / var(--tw-bg-opacity, 1)); }

.bg-orange-600  {
        --tw-bg-opacity: 1;
        background-color: rgb(234 88 12 / var(--tw-bg-opacity, 1)); }

.bg-pink-100  {
        --tw-bg-opacity: 1;
        background-color: rgb(252 231 243 / var(--tw-bg-opacity, 1)); }

.bg-purple-100  {
        --tw-bg-opacity: 1;
        background-color: rgb(243 232 255 / var(--tw-bg-opacity, 1)); }

.bg-red-100  {
        --tw-bg-opacity: 1;
        background-color: rgb(254 226 226 / var(--tw-bg-opacity, 1)); }

.bg-red-50  {
        --tw-bg-opacity: 1;
        background-color: rgb(254 242 242 / var(--tw-bg-opacity, 1)); }

.bg-red-500  {
        --tw-bg-opacity: 1;
        background-color: rgb(239 68 68 / var(--tw-bg-opacity, 1)); }

.bg-red-600  {
        --tw-bg-opacity: 1;
        background-color: rgb(220 38 38 / var(--tw-bg-opacity, 1)); }

.bg-rose-100  {
        --tw-bg-opacity: 1;
        background-color: rgb(255 228 230 / var(--tw-bg-opacity, 1)); }

.bg-sky-100  {
        --tw-bg-opacity: 1;
        background-color: rgb(224 242 254 / var(--tw-bg-opacity, 1)); }

.bg-sky-500  {
        --tw-bg-opacity: 1;
        background-color: rgb(14 165 233 / var(--tw-bg-opacity, 1)); }

.bg-sky-600  {
        --tw-bg-opacity: 1;
        background-color: rgb(2 132 199 / var(--tw-bg-opacity, 1)); }

.bg-slate-600  {
        --tw-bg-opacity: 1;
        background-color: rgb(71 85 105 / var(--tw-bg-opacity, 1)); }

.bg-stone-500  {
        --tw-bg-opacity: 1;
        background-color: rgb(120 113 108 / var(--tw-bg-opacity, 1)); }

.bg-teal-100  {
        --tw-bg-opacity: 1;
        background-color: rgb(204 251 241 / var(--tw-bg-opacity, 1)); }

.bg-teal-600  {
        --tw-bg-opacity: 1;
        background-color: rgb(13 148 136 / var(--tw-bg-opacity, 1)); }

.bg-transparent  {
        background-color: transparent; }

.bg-violet-100  {
        --tw-bg-opacity: 1;
        background-color: rgb(237 233 254 / var(--tw-bg-opacity, 1)); }

.bg-white  {
        --tw-bg-opacity: 1;
        background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)); }

.bg-white\/50  {
        background-color: rgb(255 255 255 / 0.5); }

.bg-white\/70  {
        background-color: rgb(255 255 255 / 0.7); }

.bg-yellow-100  {
        --tw-bg-opacity: 1;
        background-color: rgb(254 249 195 / var(--tw-bg-opacity, 1)); }

.bg-yellow-400  {
        --tw-bg-opacity: 1;
        background-color: rgb(250 204 21 / var(--tw-bg-opacity, 1)); }

.bg-yellow-50  {
        --tw-bg-opacity: 1;
        background-color: rgb(254 252 232 / var(--tw-bg-opacity, 1)); }

.bg-yellow-500  {
        --tw-bg-opacity: 1;
        background-color: rgb(234 179 8 / var(--tw-bg-opacity, 1)); }

.bg-opacity-90  {
        --tw-bg-opacity: 0.9; }

.bg-gradient-to-r  {
        background-image: linear-gradient(to right, var(--tw-gradient-stops)); }

.from-orange-500  {
        --tw-gradient-from: #f97316 var(--tw-gradient-from-position);
        --tw-gradient-to: rgb(249 115 22 / 0) var(--tw-gradient-to-position);
        --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to); }

.to-yellow-400  {
        --tw-gradient-to: #facc15 var(--tw-gradient-to-position); }

.bg-clip-text  {
        -webkit-background-clip: text;
                background-clip: text; }

.fill-current  {
        fill: currentColor; }

.fill-none  {
        fill: none; }

.fill-red-500  {
        fill: #ef4444; }

.fill-yellow-400  {
        fill: #facc15; }

.stroke-current  {
        stroke: currentColor; }

.stroke-gray-400  {
        stroke: #9ca3af; }

.stroke-red-500  {
        stroke: #ef4444; }

.stroke-yellow-400  {
        stroke: #facc15; }

.object-contain  {
        -o-object-fit: contain;
           object-fit: contain; }

.object-cover  {
        -o-object-fit: cover;
           object-fit: cover; }

.p-1  {
        padding: 0.25rem; }

.p-1\.5  {
        padding: 0.375rem; }

.p-12  {
        padding: 3rem; }

.p-2  {
        padding: 0.5rem; }

.p-2\.5  {
        padding: 0.625rem; }

.p-3  {
        padding: 0.75rem; }

.p-4  {
        padding: 1rem; }

.p-6  {
        padding: 1.5rem; }

.p-8  {
        padding: 2rem; }

.px-0\.5  {
        padding-left: 0.125rem;
        padding-right: 0.125rem; }

.px-1  {
        padding-left: 0.25rem;
        padding-right: 0.25rem; }

.px-10  {
        padding-left: 2.5rem;
        padding-right: 2.5rem; }

.px-2  {
        padding-left: 0.5rem;
        padding-right: 0.5rem; }

.px-2\.5  {
        padding-left: 0.625rem;
        padding-right: 0.625rem; }

.px-3  {
        padding-left: 0.75rem;
        padding-right: 0.75rem; }

.px-4  {
        padding-left: 1rem;
        padding-right: 1rem; }

.px-5  {
        padding-left: 1.25rem;
        padding-right: 1.25rem; }

.px-6  {
        padding-left: 1.5rem;
        padding-right: 1.5rem; }

.py-0\.5  {
        padding-top: 0.125rem;
        padding-bottom: 0.125rem; }

.py-1  {
        padding-top: 0.25rem;
        padding-bottom: 0.25rem; }

.py-1\.5  {
        padding-top: 0.375rem;
        padding-bottom: 0.375rem; }

.py-16  {
        padding-top: 4rem;
        padding-bottom: 4rem; }

.py-2  {
        padding-top: 0.5rem;
        padding-bottom: 0.5rem; }

.py-2\.5  {
        padding-top: 0.625rem;
        padding-bottom: 0.625rem; }

.py-3  {
        padding-top: 0.75rem;
        padding-bottom: 0.75rem; }

.py-4  {
        padding-top: 1rem;
        padding-bottom: 1rem; }

.py-8  {
        padding-top: 2rem;
        padding-bottom: 2rem; }

.pb-0  {
        padding-bottom: 0px; }

.pb-1  {
        padding-bottom: 0.25rem; }

.pb-2  {
        padding-bottom: 0.5rem; }

.pb-4  {
        padding-bottom: 1rem; }

.pb-6  {
        padding-bottom: 1.5rem; }

.pl-10  {
        padding-left: 2.5rem; }

.pl-2  {
        padding-left: 0.5rem; }

.pl-3  {
        padding-left: 0.75rem; }

.pl-5  {
        padding-left: 1.25rem; }

.pl-6  {
        padding-left: 1.5rem; }

.pr-1  {
        padding-right: 0.25rem; }

.pr-10  {
        padding-right: 2.5rem; }

.pr-16  {
        padding-right: 4rem; }

.pr-2  {
        padding-right: 0.5rem; }

.pr-28  {
        padding-right: 7rem; }

.pr-4  {
        padding-right: 1rem; }

.pr-6  {
        padding-right: 1.5rem; }

.pr-8  {
        padding-right: 2rem; }

.pt-0\.5  {
        padding-top: 0.125rem; }

.pt-1  {
        padding-top: 0.25rem; }

.pt-12  {
        padding-top: 3rem; }

.pt-16  {
        padding-top: 4rem; }

.pt-2  {
        padding-top: 0.5rem; }

.pt-3  {
        padding-top: 0.75rem; }

.pt-4  {
        padding-top: 1rem; }

.pt-6  {
        padding-top: 1.5rem; }

.pt-8  {
        padding-top: 2rem; }

.text-left  {
        text-align: left; }

.text-center  {
        text-align: center; }

.text-right  {
        text-align: right; }

.align-middle  {
        vertical-align: middle; }

.font-mono  {
        font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; }

.text-2xl  {
        font-size: 1.5rem;
        line-height: 2rem; }

.text-3xl  {
        font-size: 1.875rem;
        line-height: 2.25rem; }

.text-4xl  {
        font-size: 2.25rem;
        line-height: 2.5rem; }

.text-5xl  {
        font-size: 3rem;
        line-height: 1; }

.text-6xl  {
        font-size: 3.75rem;
        line-height: 1; }

.text-\[10px\]  {
        font-size: 10px; }

.text-base  {
        font-size: 1rem;
        line-height: 1.5rem; }

.text-lg  {
        font-size: 1.125rem;
        line-height: 1.75rem; }

.text-sm  {
        font-size: 0.875rem;
        line-height: 1.25rem; }

.text-xl  {
        font-size: 1.25rem;
        line-height: 1.75rem; }

.text-xs  {
        font-size: 0.75rem;
        line-height: 1rem; }

.font-bold  {
        font-weight: 700; }

.font-extrabold  {
        font-weight: 800; }

.font-light  {
        font-weight: 300; }

.font-medium  {
        font-weight: 500; }

.font-normal  {
        font-weight: 400; }

.font-semibold  {
        font-weight: 600; }

.uppercase  {
        text-transform: uppercase; }

.lowercase  {
        text-transform: lowercase; }

.capitalize  {
        text-transform: capitalize; }

.italic  {
        font-style: italic; }

.not-italic  {
        font-style: normal; }

.leading-none  {
        line-height: 1; }

.leading-tight  {
        line-height: 1.25; }

.tracking-tight  {
        letter-spacing: -0.025em; }

.tracking-tighter  {
        letter-spacing: -0.05em; }

.tracking-wide  {
        letter-spacing: 0.025em; }

.tracking-wider  {
        letter-spacing: 0.05em; }

.tracking-widest  {
        letter-spacing: 0.1em; }

.text-amber-500  {
        --tw-text-opacity: 1;
        color: rgb(245 158 11 / var(--tw-text-opacity, 1)); }

.text-amber-600  {
        --tw-text-opacity: 1;
        color: rgb(217 119 6 / var(--tw-text-opacity, 1)); }

.text-amber-800  {
        --tw-text-opacity: 1;
        color: rgb(146 64 14 / var(--tw-text-opacity, 1)); }

.text-black  {
        --tw-text-opacity: 1;
        color: rgb(0 0 0 / var(--tw-text-opacity, 1)); }

.text-blue-400  {
        --tw-text-opacity: 1;
        color: rgb(96 165 250 / var(--tw-text-opacity, 1)); }

.text-blue-500  {
        --tw-text-opacity: 1;
        color: rgb(59 130 246 / var(--tw-text-opacity, 1)); }

.text-blue-600  {
        --tw-text-opacity: 1;
        color: rgb(37 99 235 / var(--tw-text-opacity, 1)); }

.text-blue-800  {
        --tw-text-opacity: 1;
        color: rgb(30 64 175 / var(--tw-text-opacity, 1)); }

.text-cyan-500  {
        --tw-text-opacity: 1;
        color: rgb(6 182 212 / var(--tw-text-opacity, 1)); }

.text-cyan-600  {
        --tw-text-opacity: 1;
        color: rgb(8 145 178 / var(--tw-text-opacity, 1)); }

.text-cyan-800  {
        --tw-text-opacity: 1;
        color: rgb(21 94 117 / var(--tw-text-opacity, 1)); }

.text-emerald-500  {
        --tw-text-opacity: 1;
        color: rgb(16 185 129 / var(--tw-text-opacity, 1)); }

.text-emerald-600  {
        --tw-text-opacity: 1;
        color: rgb(5 150 105 / var(--tw-text-opacity, 1)); }

.text-fuchsia-500  {
        --tw-text-opacity: 1;
        color: rgb(217 70 239 / var(--tw-text-opacity, 1)); }

.text-fuchsia-600  {
        --tw-text-opacity: 1;
        color: rgb(192 38 211 / var(--tw-text-opacity, 1)); }

.text-fuchsia-800  {
        --tw-text-opacity: 1;
        color: rgb(134 25 143 / var(--tw-text-opacity, 1)); }

.text-gray-100  {
        --tw-text-opacity: 1;
        color: rgb(243 244 246 / var(--tw-text-opacity, 1)); }

.text-gray-300  {
        --tw-text-opacity: 1;
        color: rgb(209 213 219 / var(--tw-text-opacity, 1)); }

.text-gray-400  {
        --tw-text-opacity: 1;
        color: rgb(156 163 175 / var(--tw-text-opacity, 1)); }

.text-gray-500  {
        --tw-text-opacity: 1;
        color: rgb(107 114 128 / var(--tw-text-opacity, 1)); }

.text-gray-600  {
        --tw-text-opacity: 1;
        color: rgb(75 85 99 / var(--tw-text-opacity, 1)); }

.text-gray-700  {
        --tw-text-opacity: 1;
        color: rgb(55 65 81 / var(--tw-text-opacity, 1)); }

.text-gray-800  {
        --tw-text-opacity: 1;
        color: rgb(31 41 55 / var(--tw-text-opacity, 1)); }

.text-gray-900  {
        --tw-text-opacity: 1;
        color: rgb(17 24 39 / var(--tw-text-opacity, 1)); }

.text-green-400  {
        --tw-text-opacity: 1;
        color: rgb(74 222 128 / var(--tw-text-opacity, 1)); }

.text-green-500  {
        --tw-text-opacity: 1;
        color: rgb(34 197 94 / var(--tw-text-opacity, 1)); }

.text-green-600  {
        --tw-text-opacity: 1;
        color: rgb(22 163 74 / var(--tw-text-opacity, 1)); }

.text-green-800  {
        --tw-text-opacity: 1;
        color: rgb(22 101 52 / var(--tw-text-opacity, 1)); }

.text-indigo-500  {
        --tw-text-opacity: 1;
        color: rgb(99 102 241 / var(--tw-text-opacity, 1)); }

.text-indigo-600  {
        --tw-text-opacity: 1;
        color: rgb(79 70 229 / var(--tw-text-opacity, 1)); }

.text-indigo-800  {
        --tw-text-opacity: 1;
        color: rgb(55 48 163 / var(--tw-text-opacity, 1)); }

.text-lime-500  {
        --tw-text-opacity: 1;
        color: rgb(132 204 22 / var(--tw-text-opacity, 1)); }

.text-lime-600  {
        --tw-text-opacity: 1;
        color: rgb(101 163 13 / var(--tw-text-opacity, 1)); }

.text-lime-800  {
        --tw-text-opacity: 1;
        color: rgb(63 98 18 / var(--tw-text-opacity, 1)); }

.text-orange-400  {
        --tw-text-opacity: 1;
        color: rgb(251 146 60 / var(--tw-text-opacity, 1)); }

.text-orange-500  {
        --tw-text-opacity: 1;
        color: rgb(249 115 22 / var(--tw-text-opacity, 1)); }

.text-orange-600  {
        --tw-text-opacity: 1;
        color: rgb(234 88 12 / var(--tw-text-opacity, 1)); }

.text-orange-700  {
        --tw-text-opacity: 1;
        color: rgb(194 65 12 / var(--tw-text-opacity, 1)); }

.text-orange-800  {
        --tw-text-opacity: 1;
        color: rgb(154 52 18 / var(--tw-text-opacity, 1)); }

.text-pink-500  {
        --tw-text-opacity: 1;
        color: rgb(236 72 153 / var(--tw-text-opacity, 1)); }

.text-pink-600  {
        --tw-text-opacity: 1;
        color: rgb(219 39 119 / var(--tw-text-opacity, 1)); }

.text-purple-500  {
        --tw-text-opacity: 1;
        color: rgb(168 85 247 / var(--tw-text-opacity, 1)); }

.text-purple-600  {
        --tw-text-opacity: 1;
        color: rgb(147 51 234 / var(--tw-text-opacity, 1)); }

.text-purple-800  {
        --tw-text-opacity: 1;
        color: rgb(107 33 168 / var(--tw-text-opacity, 1)); }

.text-red-400  {
        --tw-text-opacity: 1;
        color: rgb(248 113 113 / var(--tw-text-opacity, 1)); }

.text-red-500  {
        --tw-text-opacity: 1;
        color: rgb(239 68 68 / var(--tw-text-opacity, 1)); }

.text-red-600  {
        --tw-text-opacity: 1;
        color: rgb(220 38 38 / var(--tw-text-opacity, 1)); }

.text-red-800  {
        --tw-text-opacity: 1;
        color: rgb(153 27 27 / var(--tw-text-opacity, 1)); }

.text-rose-500  {
        --tw-text-opacity: 1;
        color: rgb(244 63 94 / var(--tw-text-opacity, 1)); }

.text-rose-600  {
        --tw-text-opacity: 1;
        color: rgb(225 29 72 / var(--tw-text-opacity, 1)); }

.text-rose-800  {
        --tw-text-opacity: 1;
        color: rgb(159 18 57 / var(--tw-text-opacity, 1)); }

.text-sky-500  {
        --tw-text-opacity: 1;
        color: rgb(14 165 233 / var(--tw-text-opacity, 1)); }

.text-sky-600  {
        --tw-text-opacity: 1;
        color: rgb(2 132 199 / var(--tw-text-opacity, 1)); }

.text-sky-800  {
        --tw-text-opacity: 1;
        color: rgb(7 89 133 / var(--tw-text-opacity, 1)); }

.text-teal-500  {
        --tw-text-opacity: 1;
        color: rgb(20 184 166 / var(--tw-text-opacity, 1)); }

.text-teal-600  {
        --tw-text-opacity: 1;
        color: rgb(13 148 136 / var(--tw-text-opacity, 1)); }

.text-teal-800  {
        --tw-text-opacity: 1;
        color: rgb(17 94 89 / var(--tw-text-opacity, 1)); }

.text-transparent  {
        color: transparent; }

.text-violet-500  {
        --tw-text-opacity: 1;
        color: rgb(139 92 246 / var(--tw-text-opacity, 1)); }

.text-violet-600  {
        --tw-text-opacity: 1;
        color: rgb(124 58 237 / var(--tw-text-opacity, 1)); }

.text-violet-800  {
        --tw-text-opacity: 1;
        color: rgb(91 33 182 / var(--tw-text-opacity, 1)); }

.text-white  {
        --tw-text-opacity: 1;
        color: rgb(255 255 255 / var(--tw-text-opacity, 1)); }

.text-yellow-400  {
        --tw-text-opacity: 1;
        color: rgb(250 204 21 / var(--tw-text-opacity, 1)); }

.text-yellow-500  {
        --tw-text-opacity: 1;
        color: rgb(234 179 8 / var(--tw-text-opacity, 1)); }

.text-yellow-600  {
        --tw-text-opacity: 1;
        color: rgb(202 138 4 / var(--tw-text-opacity, 1)); }

.text-yellow-700  {
        --tw-text-opacity: 1;
        color: rgb(161 98 7 / var(--tw-text-opacity, 1)); }

.text-yellow-800  {
        --tw-text-opacity: 1;
        color: rgb(133 77 14 / var(--tw-text-opacity, 1)); }

.placeholder-gray-400::-moz-placeholder  {
        --tw-placeholder-opacity: 1;
        color: rgb(156 163 175 / var(--tw-placeholder-opacity, 1)); }

.placeholder-gray-400::placeholder  {
        --tw-placeholder-opacity: 1;
        color: rgb(156 163 175 / var(--tw-placeholder-opacity, 1)); }

.opacity-0  {
        opacity: 0; }

.opacity-100  {
        opacity: 1; }

.opacity-50  {
        opacity: 0.5; }

.opacity-70  {
        opacity: 0.7; }

.shadow-lg  {
        --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
        --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
        box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }

.shadow-md  {
        --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
        --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
        box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }

.shadow-sm  {
        --tw-shadow: 0 1px 2px 0 rgb(0 0 0 / 0.05);
        --tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);
        box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }

.shadow-xl  {
        --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
        --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);
        box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }

.ring  {
        --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
        --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color);
        box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); }

.blur-sm  {
        --tw-blur: blur(4px);
        filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); }

.drop-shadow-sm  {
        --tw-drop-shadow: drop-shadow(0 1px 1px rgb(0 0 0 / 0.05));
        filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); }

.filter  {
        filter: var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow); }

.backdrop-blur-lg  {
        --tw-backdrop-blur: blur(16px);
        backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); }

.backdrop-blur-sm  {
        --tw-backdrop-blur: blur(4px);
        backdrop-filter: var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia); }

.transition  {
        transition-property: color, background-color, border-color, text-decoration-color, fill, stroke, opacity, box-shadow, transform, filter, backdrop-filter;
        transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
        transition-duration: 150ms; }

.transition-all  {
        transition-property: all;
        transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
        transition-duration: 150ms; }

.transition-colors  {
        transition-property: color, background-color, border-color, text-decoration-color, fill, stroke;
        transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
        transition-duration: 150ms; }

.transition-opacity  {
        transition-property: opacity;
        transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
        transition-duration: 150ms; }

.transition-shadow  {
        transition-property: box-shadow;
        transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
        transition-duration: 150ms; }

.transition-transform  {
        transition-property: transform;
        transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
        transition-duration: 150ms; }

.duration-100  {
        transition-duration: 100ms; }

.duration-1000  {
        transition-duration: 1000ms; }

.duration-150  {
        transition-duration: 150ms; }

.duration-200  {
        transition-duration: 200ms; }

.duration-300  {
        transition-duration: 300ms; }

.ease-in-out  {
        transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1); }

.placeholder\:text-sm::-moz-placeholder  {
        font-size: 0.875rem;
        line-height: 1.25rem; }

.placeholder\:text-sm::placeholder  {
        font-size: 0.875rem;
        line-height: 1.25rem; }

.placeholder\:text-xs::-moz-placeholder  {
        font-size: 0.75rem;
        line-height: 1rem; }

.placeholder\:text-xs::placeholder  {
        font-size: 0.75rem;
        line-height: 1rem; }

.after\:absolute::after  {
        content: var(--tw-content);
        position: absolute; }

.after\:left-\[2px\]::after  {
        content: var(--tw-content);
        left: 2px; }

.after\:top-0\.5::after  {
        content: var(--tw-content);
        top: 0.125rem; }

.after\:h-4::after  {
        content: var(--tw-content);
        height: 1rem; }

.after\:w-4::after  {
        content: var(--tw-content);
        width: 1rem; }

.after\:rounded-full::after  {
        content: var(--tw-content);
        border-radius: 9999px; }

.after\:border::after  {
        content: var(--tw-content);
        border-width: 1px; }

.after\:border-gray-300::after  {
        content: var(--tw-content);
        --tw-border-opacity: 1;
        border-color: rgb(209 213 219 / var(--tw-border-opacity, 1)); }

.after\:bg-white::after  {
        content: var(--tw-content);
        --tw-bg-opacity: 1;
        background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)); }

.after\:transition-all::after  {
        content: var(--tw-content);
        transition-property: all;
        transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
        transition-duration: 150ms; }

.after\:content-\[\'\'\]::after  {
        --tw-content: '';
        content: var(--tw-content); }

.hover\:-translate-y-1:hover  {
        --tw-translate-y: -0.25rem;
        transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }

.hover\:scale-105:hover  {
        --tw-scale-x: 1.05;
        --tw-scale-y: 1.05;
        transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }

.hover\:scale-110:hover  {
        --tw-scale-x: 1.1;
        --tw-scale-y: 1.1;
        transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }

.hover\:scale-150:hover  {
        --tw-scale-x: 1.5;
        --tw-scale-y: 1.5;
        transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }

.hover\:scale-\[1\.01\]:hover  {
        --tw-scale-x: 1.01;
        --tw-scale-y: 1.01;
        transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }

.hover\:scale-\[1\.03\]:hover  {
        --tw-scale-x: 1.03;
        --tw-scale-y: 1.03;
        transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }

.hover\:scale-\[1\.05\]:hover  {
        --tw-scale-x: 1.05;
        --tw-scale-y: 1.05;
        transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }

.hover\:scale-\[1\.10\]:hover  {
        --tw-scale-x: 1.10;
        --tw-scale-y: 1.10;
        transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }

.hover\:border-blue-500:hover  {
        --tw-border-opacity: 1;
        border-color: rgb(59 130 246 / var(--tw-border-opacity, 1)); }

.hover\:border-green-500:hover  {
        --tw-border-opacity: 1;
        border-color: rgb(34 197 94 / var(--tw-border-opacity, 1)); }

.hover\:border-orange-400:hover  {
        --tw-border-opacity: 1;
        border-color: rgb(251 146 60 / var(--tw-border-opacity, 1)); }

.hover\:border-orange-500:hover  {
        --tw-border-opacity: 1;
        border-color: rgb(249 115 22 / var(--tw-border-opacity, 1)); }

.hover\:bg-amber-200:hover  {
        --tw-bg-opacity: 1;
        background-color: rgb(253 230 138 / var(--tw-bg-opacity, 1)); }

.hover\:bg-blue-100:hover  {
        --tw-bg-opacity: 1;
        background-color: rgb(219 234 254 / var(--tw-bg-opacity, 1)); }

.hover\:bg-blue-200:hover  {
        --tw-bg-opacity: 1;
        background-color: rgb(191 219 254 / var(--tw-bg-opacity, 1)); }

.hover\:bg-blue-600:hover  {
        --tw-bg-opacity: 1;
        background-color: rgb(37 99 235 / var(--tw-bg-opacity, 1)); }

.hover\:bg-blue-700:hover  {
        --tw-bg-opacity: 1;
        background-color: rgb(29 78 216 / var(--tw-bg-opacity, 1)); }

.hover\:bg-cyan-200:hover  {
        --tw-bg-opacity: 1;
        background-color: rgb(165 243 252 / var(--tw-bg-opacity, 1)); }

.hover\:bg-fuchsia-200:hover  {
        --tw-bg-opacity: 1;
        background-color: rgb(245 208 254 / var(--tw-bg-opacity, 1)); }

.hover\:bg-gray-100:hover  {
        --tw-bg-opacity: 1;
        background-color: rgb(243 244 246 / var(--tw-bg-opacity, 1)); }

.hover\:bg-gray-200:hover  {
        --tw-bg-opacity: 1;
        background-color: rgb(229 231 235 / var(--tw-bg-opacity, 1)); }

.hover\:bg-gray-300:hover  {
        --tw-bg-opacity: 1;
        background-color: rgb(209 213 219 / var(--tw-bg-opacity, 1)); }

.hover\:bg-gray-50:hover  {
        --tw-bg-opacity: 1;
        background-color: rgb(249 250 251 / var(--tw-bg-opacity, 1)); }

.hover\:bg-gray-500:hover  {
        --tw-bg-opacity: 1;
        background-color: rgb(107 114 128 / var(--tw-bg-opacity, 1)); }

.hover\:bg-gray-600:hover  {
        --tw-bg-opacity: 1;
        background-color: rgb(75 85 99 / var(--tw-bg-opacity, 1)); }

.hover\:bg-green-100:hover  {
        --tw-bg-opacity: 1;
        background-color: rgb(220 252 231 / var(--tw-bg-opacity, 1)); }

.hover\:bg-green-200:hover  {
        --tw-bg-opacity: 1;
        background-color: rgb(187 247 208 / var(--tw-bg-opacity, 1)); }

.hover\:bg-green-500:hover  {
        --tw-bg-opacity: 1;
        background-color: rgb(34 197 94 / var(--tw-bg-opacity, 1)); }

.hover\:bg-green-600:hover  {
        --tw-bg-opacity: 1;
        background-color: rgb(22 163 74 / var(--tw-bg-opacity, 1)); }

.hover\:bg-green-700:hover  {
        --tw-bg-opacity: 1;
        background-color: rgb(21 128 61 / var(--tw-bg-opacity, 1)); }

.hover\:bg-indigo-200:hover  {
        --tw-bg-opacity: 1;
        background-color: rgb(199 210 254 / var(--tw-bg-opacity, 1)); }

.hover\:bg-indigo-600:hover  {
        --tw-bg-opacity: 1;
        background-color: rgb(79 70 229 / var(--tw-bg-opacity, 1)); }

.hover\:bg-lime-200:hover  {
        --tw-bg-opacity: 1;
        background-color: rgb(217 249 157 / var(--tw-bg-opacity, 1)); }

.hover\:bg-orange-100:hover  {
        --tw-bg-opacity: 1;
        background-color: rgb(255 237 213 / var(--tw-bg-opacity, 1)); }

.hover\:bg-orange-200:hover  {
        --tw-bg-opacity: 1;
        background-color: rgb(254 215 170 / var(--tw-bg-opacity, 1)); }

.hover\:bg-orange-500:hover  {
        --tw-bg-opacity: 1;
        background-color: rgb(249 115 22 / var(--tw-bg-opacity, 1)); }

.hover\:bg-orange-600:hover  {
        --tw-bg-opacity: 1;
        background-color: rgb(234 88 12 / var(--tw-bg-opacity, 1)); }

.hover\:bg-orange-700:hover  {
        --tw-bg-opacity: 1;
        background-color: rgb(194 65 12 / var(--tw-bg-opacity, 1)); }

.hover\:bg-pink-200:hover  {
        --tw-bg-opacity: 1;
        background-color: rgb(251 207 232 / var(--tw-bg-opacity, 1)); }

.hover\:bg-purple-200:hover  {
        --tw-bg-opacity: 1;
        background-color: rgb(233 213 255 / var(--tw-bg-opacity, 1)); }

.hover\:bg-red-100:hover  {
        --tw-bg-opacity: 1;
        background-color: rgb(254 226 226 / var(--tw-bg-opacity, 1)); }

.hover\:bg-red-200:hover  {
        --tw-bg-opacity: 1;
        background-color: rgb(254 202 202 / var(--tw-bg-opacity, 1)); }

.hover\:bg-red-500:hover  {
        --tw-bg-opacity: 1;
        background-color: rgb(239 68 68 / var(--tw-bg-opacity, 1)); }

.hover\:bg-red-600:hover  {
        --tw-bg-opacity: 1;
        background-color: rgb(220 38 38 / var(--tw-bg-opacity, 1)); }

.hover\:bg-rose-200:hover  {
        --tw-bg-opacity: 1;
        background-color: rgb(254 205 211 / var(--tw-bg-opacity, 1)); }

.hover\:bg-sky-600:hover  {
        --tw-bg-opacity: 1;
        background-color: rgb(2 132 199 / var(--tw-bg-opacity, 1)); }

.hover\:bg-slate-700:hover  {
        --tw-bg-opacity: 1;
        background-color: rgb(51 65 85 / var(--tw-bg-opacity, 1)); }

.hover\:bg-teal-600:hover  {
        --tw-bg-opacity: 1;
        background-color: rgb(13 148 136 / var(--tw-bg-opacity, 1)); }

.hover\:bg-violet-200:hover  {
        --tw-bg-opacity: 1;
        background-color: rgb(221 214 254 / var(--tw-bg-opacity, 1)); }

.hover\:bg-yellow-200:hover  {
        --tw-bg-opacity: 1;
        background-color: rgb(254 240 138 / var(--tw-bg-opacity, 1)); }

.hover\:bg-yellow-600:hover  {
        --tw-bg-opacity: 1;
        background-color: rgb(202 138 4 / var(--tw-bg-opacity, 1)); }

.hover\:text-blue-500:hover  {
        --tw-text-opacity: 1;
        color: rgb(59 130 246 / var(--tw-text-opacity, 1)); }

.hover\:text-gray-700:hover  {
        --tw-text-opacity: 1;
        color: rgb(55 65 81 / var(--tw-text-opacity, 1)); }

.hover\:text-gray-800:hover  {
        --tw-text-opacity: 1;
        color: rgb(31 41 55 / var(--tw-text-opacity, 1)); }

.hover\:text-gray-900:hover  {
        --tw-text-opacity: 1;
        color: rgb(17 24 39 / var(--tw-text-opacity, 1)); }

.hover\:text-orange-500:hover  {
        --tw-text-opacity: 1;
        color: rgb(249 115 22 / var(--tw-text-opacity, 1)); }

.hover\:text-orange-600:hover  {
        --tw-text-opacity: 1;
        color: rgb(234 88 12 / var(--tw-text-opacity, 1)); }

.hover\:text-red-500:hover  {
        --tw-text-opacity: 1;
        color: rgb(239 68 68 / var(--tw-text-opacity, 1)); }

.hover\:text-red-600:hover  {
        --tw-text-opacity: 1;
        color: rgb(220 38 38 / var(--tw-text-opacity, 1)); }

.hover\:text-red-700:hover  {
        --tw-text-opacity: 1;
        color: rgb(185 28 28 / var(--tw-text-opacity, 1)); }

.hover\:text-red-800:hover  {
        --tw-text-opacity: 1;
        color: rgb(153 27 27 / var(--tw-text-opacity, 1)); }

.hover\:text-sky-500:hover  {
        --tw-text-opacity: 1;
        color: rgb(14 165 233 / var(--tw-text-opacity, 1)); }

.hover\:text-teal-500:hover  {
        --tw-text-opacity: 1;
        color: rgb(20 184 166 / var(--tw-text-opacity, 1)); }

.hover\:shadow-lg:hover  {
        --tw-shadow: 0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -4px rgb(0 0 0 / 0.1);
        --tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);
        box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }

.hover\:shadow-md:hover  {
        --tw-shadow: 0 4px 6px -1px rgb(0 0 0 / 0.1), 0 2px 4px -2px rgb(0 0 0 / 0.1);
        --tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);
        box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }

.hover\:shadow-xl:hover  {
        --tw-shadow: 0 20px 25px -5px rgb(0 0 0 / 0.1), 0 8px 10px -6px rgb(0 0 0 / 0.1);
        --tw-shadow-colored: 0 20px 25px -5px var(--tw-shadow-color), 0 8px 10px -6px var(--tw-shadow-color);
        box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow); }

.focus\:border-orange-500:focus  {
        --tw-border-opacity: 1;
        border-color: rgb(249 115 22 / var(--tw-border-opacity, 1)); }

.focus\:bg-white:focus  {
        --tw-bg-opacity: 1;
        background-color: rgb(255 255 255 / var(--tw-bg-opacity, 1)); }

.focus\:outline-none:focus  {
        outline: 2px solid transparent;
        outline-offset: 2px; }

.focus\:ring-2:focus  {
        --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
        --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
        box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); }

.focus\:ring-blue-500:focus  {
        --tw-ring-opacity: 1;
        --tw-ring-color: rgb(59 130 246 / var(--tw-ring-opacity, 1)); }

.focus\:ring-indigo-500:focus  {
        --tw-ring-opacity: 1;
        --tw-ring-color: rgb(99 102 241 / var(--tw-ring-opacity, 1)); }

.focus\:ring-orange-400:focus  {
        --tw-ring-opacity: 1;
        --tw-ring-color: rgb(251 146 60 / var(--tw-ring-opacity, 1)); }

.focus\:ring-orange-500:focus  {
        --tw-ring-opacity: 1;
        --tw-ring-color: rgb(249 115 22 / var(--tw-ring-opacity, 1)); }

.focus\:ring-opacity-50:focus  {
        --tw-ring-opacity: 0.5; }

.focus\:ring-offset-2:focus  {
        --tw-ring-offset-width: 2px; }

.disabled\:scale-100:disabled  {
        --tw-scale-x: 1;
        --tw-scale-y: 1;
        transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }

.disabled\:cursor-not-allowed:disabled  {
        cursor: not-allowed; }

.disabled\:bg-gray-400:disabled  {
        --tw-bg-opacity: 1;
        background-color: rgb(156 163 175 / var(--tw-bg-opacity, 1)); }

.disabled\:bg-stone-300:disabled  {
        --tw-bg-opacity: 1;
        background-color: rgb(214 211 209 / var(--tw-bg-opacity, 1)); }

.disabled\:text-stone-500:disabled  {
        --tw-text-opacity: 1;
        color: rgb(120 113 108 / var(--tw-text-opacity, 1)); }

.group[open] .group-open\:rotate-180  {
        --tw-rotate: 180deg;
        transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }

.group:hover .group-hover\:opacity-0  {
        opacity: 0; }

.group:hover .group-hover\:opacity-100  {
        opacity: 1; }

.peer:checked ~ .peer-checked\:translate-x-full  {
        --tw-translate-x: 100%;
        transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }

.peer:checked ~ .peer-checked\:bg-blue-500  {
        --tw-bg-opacity: 1;
        background-color: rgb(59 130 246 / var(--tw-bg-opacity, 1)); }

.peer:checked ~ .peer-checked\:bg-orange-500  {
        --tw-bg-opacity: 1;
        background-color: rgb(249 115 22 / var(--tw-bg-opacity, 1)); }

.peer:checked ~ .peer-checked\:bg-pink-500  {
        --tw-bg-opacity: 1;
        background-color: rgb(236 72 153 / var(--tw-bg-opacity, 1)); }

.peer:checked ~ .peer-checked\:bg-purple-500  {
        --tw-bg-opacity: 1;
        background-color: rgb(168 85 247 / var(--tw-bg-opacity, 1)); }

.peer:checked ~ .peer-checked\:text-gray-400  {
        --tw-text-opacity: 1;
        color: rgb(156 163 175 / var(--tw-text-opacity, 1)); }

.peer:checked ~ .peer-checked\:text-orange-600  {
        --tw-text-opacity: 1;
        color: rgb(234 88 12 / var(--tw-text-opacity, 1)); }

.peer:checked ~ .peer-checked\:text-white  {
        --tw-text-opacity: 1;
        color: rgb(255 255 255 / var(--tw-text-opacity, 1)); }

.peer:checked ~ .peer-checked\:after\:translate-x-full::after  {
        content: var(--tw-content);
        --tw-translate-x: 100%;
        transform: translate(var(--tw-translate-x), var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y)); }

.peer:checked ~ .peer-checked\:after\:border-white::after  {
        content: var(--tw-content);
        --tw-border-opacity: 1;
        border-color: rgb(255 255 255 / var(--tw-border-opacity, 1)); }

.peer:focus ~ .peer-focus\:ring-2  {
        --tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);
        --tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);
        box-shadow: var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow, 0 0 #0000); }

.peer:focus ~ .peer-focus\:ring-orange-300  {
        --tw-ring-opacity: 1;
        --tw-ring-color: rgb(253 186 116 / var(--tw-ring-opacity, 1)); }

@media (min-width: 640px)  {

        .sm\:top-16  {
                top: 4rem; }

        .sm\:mb-0  {
                margin-bottom: 0px; }

        .sm\:inline  {
                display: inline; }

        .sm\:h-80  {
                height: 20rem; }

        .sm\:w-80  {
                width: 20rem; }

        .sm\:w-auto  {
                width: auto; }

        .sm\:min-w-\[300px\]  {
                min-width: 300px; }

        .sm\:grid-cols-2  {
                grid-template-columns: repeat(2, minmax(0, 1fr)); }

        .sm\:grid-cols-3  {
                grid-template-columns: repeat(3, minmax(0, 1fr)); }

        .sm\:flex-row  {
                flex-direction: row; }

        .sm\:items-center  {
                align-items: center; }

        .sm\:justify-end  {
                justify-content: flex-end; }

        .sm\:justify-between  {
                justify-content: space-between; }

        .sm\:gap-2  {
                gap: 0.5rem; }

        .sm\:space-x-2 > :not([hidden]) ~ :not([hidden])  {
                --tw-space-x-reverse: 0;
                margin-right: calc(0.5rem * var(--tw-space-x-reverse));
                margin-left: calc(0.5rem * calc(1 - var(--tw-space-x-reverse))); }

        .sm\:space-x-4 > :not([hidden]) ~ :not([hidden])  {
                --tw-space-x-reverse: 0;
                margin-right: calc(1rem * var(--tw-space-x-reverse));
                margin-left: calc(1rem * calc(1 - var(--tw-space-x-reverse))); }

        .sm\:space-y-0 > :not([hidden]) ~ :not([hidden])  {
                --tw-space-y-reverse: 0;
                margin-top: calc(0px * calc(1 - var(--tw-space-y-reverse)));
                margin-bottom: calc(0px * var(--tw-space-y-reverse)); }

        .sm\:p-8  {
                padding: 2rem; }

        .sm\:px-4  {
                padding-left: 1rem;
                padding-right: 1rem; }

        .sm\:text-sm  {
                font-size: 0.875rem;
                line-height: 1.25rem; }

        .sm\:placeholder\:text-sm::-moz-placeholder  {
                font-size: 0.875rem;
                line-height: 1.25rem; }

        .sm\:placeholder\:text-sm::placeholder  {
                font-size: 0.875rem;
                line-height: 1.25rem; } }

@media (min-width: 768px)  {

        .md\:col-span-2  {
                grid-column: span 2 / span 2; }

        .md\:mt-0  {
                margin-top: 0px; }

        .md\:h-7  {
                height: 1.75rem; }

        .md\:w-7  {
                width: 1.75rem; }

        .md\:w-auto  {
                width: auto; }

        .md\:max-w-md  {
                max-width: 28rem; }

        .md\:grid-cols-2  {
                grid-template-columns: repeat(2, minmax(0, 1fr)); }

        .md\:grid-cols-4  {
                grid-template-columns: repeat(4, minmax(0, 1fr)); }

        .md\:flex-row  {
                flex-direction: row; }

        .md\:items-start  {
                align-items: flex-start; }

        .md\:justify-start  {
                justify-content: flex-start; }

        .md\:justify-between  {
                justify-content: space-between; }

        .md\:space-y-0 > :not([hidden]) ~ :not([hidden])  {
                --tw-space-y-reverse: 0;
                margin-top: calc(0px * calc(1 - var(--tw-space-y-reverse)));
                margin-bottom: calc(0px * var(--tw-space-y-reverse)); }

        .md\:p-6  {
                padding: 1.5rem; }

        .md\:p-8  {
                padding: 2rem; }

        .md\:text-left  {
                text-align: left; }

        .md\:text-xl  {
                font-size: 1.25rem;
                line-height: 1.75rem; } }

@media (min-width: 1024px)  {

        .lg\:col-span-1  {
                grid-column: span 1 / span 1; }

        .lg\:col-span-2  {
                grid-column: span 2 / span 2; }

        .lg\:grid-cols-3  {
                grid-template-columns: repeat(3, minmax(0, 1fr)); } }

@media (prefers-color-scheme: dark)  {

        .dark\:text-gray-400  {
                --tw-text-opacity: 1;
                color: rgb(156 163 175 / var(--tw-text-opacity, 1)); }

        .dark\:text-gray-600  {
                --tw-text-opacity: 1;
                color: rgb(75 85 99 / var(--tw-text-opacity, 1)); } }