/* Glassmorphism Variables */
:root {
    --glass-bg: rgba(255, 255, 255, 0.94);
    --glass-border: rgba(0, 61, 165, 0.12);
    --glass-shadow: 0 18px 60px rgba(0, 27, 68, 0.10);
    --primary-color: #003da5;
    --postal-yellow: #ffd100;
    --postal-yellow-dark: #e5b900;
    --postal-blue: #003da5;
    --postal-navy: #001b44;
    --postal-ink: #162033;
}

/* Base Styles */
body {
    -webkit-font-smoothing: antialiased;
    -moz-osx-font-smoothing: grayscale;
    color: var(--postal-ink);
}

.brand-logo-frame {
    width: 48px;
    height: 48px;
    display: grid;
    place-items: center;
    border-radius: 8px;
    background: var(--postal-yellow);
    box-shadow: 0 10px 26px rgba(0, 61, 165, 0.16);
}

.nav-pill {
    display: inline-flex;
    align-items: center;
    min-height: 32px;
    border-radius: 999px;
    border: 1px solid rgba(0, 61, 165, 0.14);
    background: #fff;
    padding: 0 14px;
    color: var(--postal-blue);
    font-size: 0.78rem;
    font-weight: 800;
}

/* Glass Panel Utility */
.glass-panel {
    background: var(--glass-bg);
    backdrop-filter: blur(10px);
    -webkit-backdrop-filter: blur(10px);
    border: 1px solid var(--glass-border);
    box-shadow: var(--glass-shadow);
    border-radius: 8px;
}

/* Glass Input Utility */
.glass-input {
    background: #fff;
    border: 1px solid #d8dee9;
    transition: border-color 0.2s ease, box-shadow 0.2s ease, background 0.2s ease;
}

.glass-input:focus {
    background: #fff;
    border-color: var(--primary-color);
    outline: none;
    box-shadow: 0 0 0 4px rgba(255, 209, 0, 0.28);
}

.mode-tabs {
    background: #eef3fb;
    border: 1px solid rgba(0, 61, 165, 0.08);
}

.advanced-summary {
    min-height: 44px;
    border-radius: 8px;
}

.btn-primary,
.btn-secondary {
    border-radius: 8px !important;
    transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease, border-color 0.18s ease;
}

.btn-primary {
    background: linear-gradient(180deg, var(--postal-yellow) 0%, var(--postal-yellow-dark) 100%);
    color: var(--postal-navy);
    border: 1px solid rgba(0, 27, 68, 0.14);
    box-shadow: 0 12px 26px rgba(0, 61, 165, 0.16), inset 0 1px 0 rgba(255, 255, 255, 0.55);
}

.btn-primary:hover {
    transform: translateY(-1px);
    box-shadow: 0 16px 34px rgba(0, 61, 165, 0.20), inset 0 1px 0 rgba(255, 255, 255, 0.65);
}

.btn-secondary {
    background: #fff;
    color: var(--postal-blue);
    border: 1px solid rgba(0, 61, 165, 0.18);
    box-shadow: 0 8px 20px rgba(0, 27, 68, 0.06);
}

.btn-secondary:hover {
    background: #f7faff;
    border-color: rgba(0, 61, 165, 0.35);
}

label .peer:checked + div {
    border-color: var(--postal-blue) !important;
    background: #eef5ff !important;
    box-shadow: 0 8px 22px rgba(0, 61, 165, 0.10);
}

body.night-theme nav {
    background: rgba(2, 6, 23, 0.82) !important;
    border-color: rgba(148, 163, 184, 0.18) !important;
}

body.night-theme .glass-panel {
    background: rgba(15, 23, 42, 0.74);
    border-color: rgba(148, 163, 184, 0.2);
    box-shadow: 0 18px 48px rgba(0, 0, 0, 0.28);
}

body.night-theme .glass-input {
    background: rgba(15, 23, 42, 0.82);
    border-color: rgba(148, 163, 184, 0.24);
    color: #f8fafc;
}

body.night-theme .glass-input:focus {
    background: rgba(15, 23, 42, 0.95);
}

body.night-theme .text-gray-900,
body.night-theme .text-gray-800,
body.night-theme .text-gray-700,
body.night-theme .text-neutral-600 {
    color: #f8fafc !important;
}

body.night-theme .text-gray-600,
body.night-theme .text-gray-500,
body.night-theme .text-gray-400 {
    color: #cbd5e1 !important;
}

body.night-theme .bg-white,
body.night-theme .bg-white\/50,
body.night-theme .bg-white\/60,
body.night-theme .bg-white\/70,
body.night-theme .bg-gray-50,
body.night-theme .bg-gray-50\/80,
body.night-theme .bg-primary-50\/50 {
    background-color: rgba(15, 23, 42, 0.78) !important;
}

body.night-theme .border-gray-100,
body.night-theme .border-gray-200,
body.night-theme .border-white\/50 {
    border-color: rgba(148, 163, 184, 0.2) !important;
}

body.night-theme .placeholder-gray-400::placeholder {
    color: #94a3b8 !important;
}

/* Custom Scrollbar */
::-webkit-scrollbar {
    width: 8px;
}

::-webkit-scrollbar-track {
    background: rgba(0, 0, 0, 0.05);
}

::-webkit-scrollbar-thumb {
    background: rgba(0, 61, 165, 0.22);
    border-radius: 4px;
}

::-webkit-scrollbar-thumb:hover {
    background: rgba(0, 61, 165, 0.42);
}

/* Animations */
@keyframes fadeIn {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

@keyframes slideUp {
    from {
        opacity: 0;
        transform: translateY(20px);
    }

    to {
        opacity: 1;
        transform: translateY(0);
    }
}

.animate-fade-in {
    animation: fadeIn 0.6s ease-out forwards;
}

.animate-slide-up {
    animation: slideUp 0.6s ease-out forwards;
}

.gemini-loader-container {
    position: relative;
    width: 80px;
    height: 80px;
    display: flex;
    justify-content: center;
    align-items: center;
}

.gemini-loader {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    position: absolute;
    border: 3px solid rgba(0, 61, 165, 0.12);
    border-top-color: var(--postal-blue);
    border-right-color: var(--postal-yellow);
    border-bottom-color: var(--postal-blue);
    animation: gemini-spin 1.5s linear infinite;
    filter: drop-shadow(0 8px 16px rgba(0, 61, 165, 0.16));
}

.gemini-loader::before {
    content: '';
    position: absolute;
    top: 5px;
    left: 5px;
    right: 5px;
    bottom: 5px;
    border-radius: 50%;
    border: 2px solid transparent;
    border-top-color: var(--postal-yellow);
    border-right-color: var(--postal-blue);
    border-bottom-color: var(--postal-yellow);
    animation: gemini-spin 2s linear infinite reverse;
    opacity: 0.8;
}

.gemini-loader-core {
    z-index: 10;
}

@keyframes gemini-spin {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

.flatpickr-calendar {
    background: #fff !important;
    border: 1px solid rgba(0, 61, 165, 0.14) !important;
    box-shadow: 0 18px 44px rgba(0, 27, 68, 0.14) !important;
    border-radius: 8px !important;
    font-family: 'Inter', sans-serif !important;
    position: absolute !important;
    /* Ensure it floats correctly */
}

.flatpickr-calendar.arrowTop:before,
.flatpickr-calendar.arrowTop:after {
    border-bottom-color: rgba(255, 255, 255, 0.85) !important;
}

.flatpickr-day.selected,
.flatpickr-day.startRange,
.flatpickr-day.endRange,
.flatpickr-day.selected.inRange,
.flatpickr-day.startRange.inRange,
.flatpickr-day.endRange.inRange,
.flatpickr-day:hover,
.flatpickr-day:focus {
    background: var(--primary-color) !important;
    border-color: var(--primary-color) !important;
    color: white !important;
}

.flatpickr-months .flatpickr-month {
    background: transparent !important;
    color: #374151 !important;
    fill: #374151 !important;
}

.flatpickr-current-month .flatpickr-monthDropdown-months {
    background: transparent !important;
}

.flatpickr-weekdays {
    background: transparent !important;
}

.flatpickr-weekday {
    color: #6b7280 !important;
    font-weight: 600 !important;
}
