/* Tailwind CSS - Comprehensive local implementation */

/* Base styles */
* {
    box-sizing: border-box;
}

body {
    margin: 0;
    font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, sans-serif;
    line-height: 1.5;
    color: #374151;
    background-color: #f9fafb;
}

/* Utility classes */
.bg-gradient-to-br { background: linear-gradient(to bottom right, var(--tw-gradient-stops)); }
.from-teal-100 { --tw-gradient-from: #ccfbf1; --tw-gradient-stops: var(--tw-gradient-from), var(--tw-gradient-to, rgba(204, 251, 241, 0)); }
.to-blue-100 { --tw-gradient-to: #dbeafe; }
.min-h-screen { min-height: 100vh; }
.flex { display: flex; }
.items-center { align-items: center; }
.justify-center { justify-content: center; }
.max-w-md { max-width: 28rem; }
.w-full { width: 100%; }
.space-y-8 > * + * { margin-top: 2rem; }
.bg-white { background-color: #ffffff; }
.p-10 { padding: 2.5rem; }
.rounded-xl { border-radius: 0.75rem; }
.shadow-2xl { box-shadow: 0 25px 50px -12px rgba(0, 0, 0, 0.25); }

/* Text styles */
.text-6xl { font-size: 3.75rem; line-height: 1; }
.text-3xl { font-size: 1.875rem; line-height: 2.25rem; }
.text-sm { font-size: 0.875rem; line-height: 1.25rem; }
.font-extrabold { font-weight: 800; }
.text-center { text-align: center; }
.text-gray-900 { color: #111827; }
.text-gray-600 { color: #4b5563; }
.text-teal-600 { color: #0d9488; }

/* Flexbox utilities */
.flex { display: flex; }
.justify-center { justify-content: center; }
.items-center { align-items: center; }

/* Spacing */
.mt-6 { margin-top: 1.5rem; }
.mt-2 { margin-top: 0.5rem; }
.mt-8 { margin-top: 2rem; }
.mb-4 { margin-bottom: 1rem; }
.space-y-6 > * + * { margin-top: 1.5rem; }
.-space-y-px > * + * { margin-top: -1px; }

/* Form styles */
.appearance-none { appearance: none; }
.rounded-none { border-radius: 0; }
.relative { position: relative; }
.block { display: block; }
.w-full { width: 100%; }
.px-3 { padding-left: 0.75rem; padding-right: 0.75rem; }
.py-2 { padding-top: 0.5rem; padding-bottom: 0.5rem; }
.border { border-width: 1px; }
.border-gray-300 { border-color: #d1d5db; }
.placeholder-gray-500::placeholder { color: #6b7280; }
.text-gray-900 { color: #111827; }
.rounded-t-md { border-top-left-radius: 0.375rem; border-top-right-radius: 0.375rem; }
.rounded-b-md { border-bottom-left-radius: 0.375rem; border-bottom-right-radius: 0.375rem; }
.focus\:outline-none:focus { outline: 2px solid transparent; outline-offset: 2px; }
.focus\:ring-teal-500:focus { --tw-ring-color: #14b8a6; box-shadow: var(--tw-ring-inset) 0 0 0 calc(3px + var(--tw-ring-offset-width)) var(--tw-ring-color); }
.focus\:border-teal-500:focus { border-color: #14b8a6; }
.focus\:z-10:focus { z-index: 10; }
.sm\:text-sm { font-size: 0.875rem; line-height: 1.25rem; }

/* Button styles */
.group { position: relative; }
.relative { position: relative; }
.w-full { width: 100%; }
.flex { display: flex; }
.justify-center { justify-content: center; }
.py-2 { padding-top: 0.5rem; padding-bottom: 0.5rem; }
.px-4 { padding-left: 1rem; padding-right: 1rem; }
.border { border-width: 1px; }
.border-transparent { border-color: transparent; }
.text-sm { font-size: 0.875rem; line-height: 1.25rem; }
.font-medium { font-weight: 500; }
.rounded-md { border-radius: 0.375rem; }
.text-white { color: #ffffff; }
.bg-teal-600 { background-color: #0d9488; }
.hover\:bg-teal-700:hover { background-color: #0f766e; }
.focus\:outline-none:focus { outline: 2px solid transparent; outline-offset: 2px; }
.focus\:ring-2:focus { box-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color); }
.focus\:ring-offset-2:focus { --tw-ring-offset-width: 2px; }
.focus\:ring-teal-500:focus { --tw-ring-color: #14b8a6; }

/* Icon styles */
.absolute { position: absolute; }
.left-0 { left: 0; }
.inset-y-0 { top: 0; bottom: 0; }
.flex { display: flex; }
.items-center { align-items: center; }
.pl-3 { padding-left: 0.75rem; }
.text-teal-500 { color: #14b8a6; }
.group-hover\:text-teal-400:hover { color: #2dd4bf; }

/* Alert styles */
.bg-red-100 { background-color: #fee2e2; }
.border-red-400 { border-color: #f87171; }
.text-red-700 { color: #b91c1c; }
.bg-green-100 { background-color: #dcfce7; }
.border-green-400 { border-color: #4ade80; }
.text-green-700 { color: #15803d; }
.px-4 { padding-left: 1rem; padding-right: 1rem; }
.py-3 { padding-top: 0.75rem; padding-bottom: 0.75rem; }
.rounded { border-radius: 0.25rem; }
.relative { position: relative; }
.mb-4 { margin-bottom: 1rem; }
.border { border-width: 1px; }
.block { display: block; }
.sm\:inline { display: inline; }

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

/* Custom SanaSend styles */
:root {
    --teal-50: #f0fdfa;
    --teal-100: #ccfbf1;
    --teal-200: #99f6e4;
    --teal-300: #5eead4;
    --teal-400: #2dd4bf;
    --teal-500: #14b8a6;
    --teal-600: #0d9488;
    --teal-700: #0f766e;
    --teal-800: #115e59;
    --teal-900: #134e4a;
}

/* Ensure teal colors are used consistently */
.text-teal-600 {
    color: #0d9488 !important;
}

.bg-teal-600 {
    background-color: #0d9488 !important;
}

.border-teal-500 {
    border-color: #14b8a6 !important;
}

.focus\:ring-teal-500:focus {
    --tw-ring-color: #14b8a6 !important;
}

/* Custom component styles */
.qr-code-container {
    max-width: 300px;
    margin: 0 auto;
}

.status-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

.pulse-dot {
    width: 8px;
    height: 8px;
    border-radius: 50%;
    animation: pulse 2s cubic-bezier(0.4, 0, 0.6, 1) infinite;
}

@keyframes pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: .5; }
}

.sidebar {
    transition: transform 0.3s ease-in-out;
}

.sidebar-mobile {
    transform: translateX(-100%);
}

.sidebar-mobile.open {
    transform: translateX(0);
}

.user-tag {
    background: linear-gradient(135deg, #0d9488, #14b8a6);
    color: white;
    padding: 2px 8px;
    border-radius: 12px;
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.5px;
}