:root {
    /* Tailwind Zinc Colors */
    --zinc-50: #fafafa;
    --zinc-100: #f4f4f5;
    --zinc-200: #e4e4e7;
    --zinc-300: #d4d4d8;
    --zinc-400: #a1a1aa;
    --zinc-500: #71717a;
    --zinc-600: #52525b;
    --zinc-700: #3f3f46;
    --zinc-800: #27272a;
    --zinc-900: #18181b;
    --zinc-950: #09090b;

    /* Base Colors mapped to Bootstrap CSS variables */
    --bs-body-bg: var(--zinc-50);
    --bs-body-color: var(--zinc-900);
    --bs-primary: var(--zinc-800);
    --bs-primary-rgb: 39, 39, 42;
    --bs-border-color: var(--zinc-200);
}

[data-bs-theme="dark"] {
    --bs-body-bg: var(--zinc-950);
    --bs-body-color: var(--zinc-100);
    --bs-primary: var(--zinc-200);
    --bs-border-color: var(--zinc-800);
    --bs-tertiary-bg: var(--zinc-900);
}

body {
    font-family: 'Outfit', sans-serif;
    transition: background-color 0.3s ease, color 0.3s ease;
}

.top-bar {
    background-color: var(--bs-body-bg);
    border-bottom: 1px solid var(--bs-border-color);
    transition: background-color 0.3s ease, border-color 0.3s ease;
}

.footer {
    background-color: var(--bs-body-bg);
    border-top: 1px solid var(--bs-border-color);
}

/* Card Styling */
.card {
    background-color: var(--bs-body-bg);
    border-color: var(--bs-border-color);
    transition: transform 0.2s ease, box-shadow 0.2s ease, background-color 0.3s ease, border-color 0.3s ease;
    border-radius: 12px;
    overflow: hidden;
}

[data-bs-theme="dark"] .card {
    background-color: var(--zinc-900);
}

.card:hover {
    transform: translateY(-4px);
    box-shadow: 0 10px 20px rgba(0,0,0,0.08);
}

[data-bs-theme="dark"] .card:hover {
    box-shadow: 0 10px 20px rgba(0,0,0,0.4);
}

.card-img-top {
    height: 200px;
    object-fit: cover;
}

.card-title {
    font-weight: 600;
    font-size: 1.1rem;
}

.badge-source {
    background-color: var(--zinc-200);
    color: var(--zinc-800);
    font-weight: 500;
}

[data-bs-theme="dark"] .badge-source {
    background-color: var(--zinc-800);
    color: var(--zinc-200);
}

/* Form inputs */
.form-control, .form-select {
    background-color: var(--bs-body-bg);
    color: var(--bs-body-color);
    border-color: var(--bs-border-color);
}

[data-bs-theme="dark"] .form-control, [data-bs-theme="dark"] .form-select {
    background-color: var(--zinc-900);
    color: var(--zinc-100);
    border-color: var(--zinc-700);
}

.form-control:focus, .form-select:focus {
    background-color: var(--bs-body-bg);
    color: var(--bs-body-color);
    border-color: var(--zinc-400);
    box-shadow: 0 0 0 0.25rem rgba(113, 113, 122, 0.25);
}

[data-bs-theme="dark"] .form-control:focus, [data-bs-theme="dark"] .form-select:focus {
    background-color: var(--zinc-900);
    color: var(--zinc-100);
}

/* Search input specific */
.search-form .form-control {
    border-radius: 20px 0 0 20px;
}
.search-form .btn-search {
    border-radius: 0 20px 20px 0;
    background-color: transparent;
    color: var(--bs-body-color);
}

/* Primary buttons */
.btn-primary {
    background-color: var(--zinc-900);
    border-color: var(--zinc-900);
    color: var(--zinc-50);
}

.btn-primary:hover, .btn-primary:focus {
    background-color: var(--zinc-800);
    border-color: var(--zinc-800);
    color: var(--zinc-50);
}

[data-bs-theme="dark"] .btn-primary {
    background-color: var(--zinc-100);
    border-color: var(--zinc-100);
    color: var(--zinc-900);
}

[data-bs-theme="dark"] .btn-primary:hover, [data-bs-theme="dark"] .btn-primary:focus {
    background-color: var(--zinc-300);
    border-color: var(--zinc-300);
    color: var(--zinc-900);
}

/* Player/Embed container */
.embed-container {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 9;
    border-radius: 12px;
    background-color: var(--zinc-100);
    overflow: hidden;
}

.embed-container.is-vertical {
    aspect-ratio: 9 / 16;
    max-width: 400px; /* Prevent giant vertical videos on desktop */
    margin: 0 auto; /* Center the vertical video */
}

[data-bs-theme="dark"] .embed-container {
    background-color: var(--zinc-900);
}

.embed-container iframe, .embed-container object, .embed-container embed {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
}

/* Custom Black & White Pills */
.btn-pill-bw {
    border: 1px solid var(--zinc-900);
    color: var(--zinc-900);
    background-color: transparent;
    transition: all 0.2s ease;
}

.btn-pill-bw:hover, .btn-pill-bw:focus {
    background-color: var(--zinc-900);
    color: var(--zinc-50);
}

[data-bs-theme="dark"] .btn-pill-bw {
    border: 1px solid var(--zinc-200);
    color: var(--zinc-200);
}

[data-bs-theme="dark"] .btn-pill-bw:hover, [data-bs-theme="dark"] .btn-pill-bw:focus {
    background-color: var(--zinc-200);
    color: var(--zinc-900);
}
