﻿/* =========================================================
   Rigole Agenda - site.css
   ========================================================= */

:root {
    --agenda-primary: #7c3aed;
    --agenda-primary-dark: #6d28d9;
    --agenda-accent: #f97316;
    --agenda-bg: #f4f7fb;
    --agenda-surface: #ffffff;
    --agenda-surface-soft: #eef5ff;
    --agenda-text: #142033;
    --agenda-muted: #64748b;
    --agenda-border: #dbe3ef;
    --agenda-shadow: 0 16px 45px rgba(15, 23, 42, 0.08);
}

[data-bs-theme="dark"] {
    --agenda-bg: #0f141b;
    --agenda-surface: #1f2933;
    --agenda-surface-soft: #162033;
    --agenda-text: #f8fafc;
    --agenda-muted: #cbd5e1;
    --agenda-border: #3b4656;
    --agenda-primary: #7c3aed;
    --agenda-primary-dark: #6d28d9;
    --agenda-shadow: 0 18px 50px rgba(0, 0, 0, 0.35);
}

/* =========================================================
   Base
   ========================================================= */

html,
body {
    min-height: 100%;
}

body {
    background: var(--agenda-bg);
    color: var(--agenda-text);
}

a {
    color: var(--agenda-primary);
}

.text-muted {
    color: var(--agenda-muted) !important;
}

/* =========================================================
   Navbar
   ========================================================= */

.navbar {
    background: var(--agenda-surface) !important;
    border-bottom: 1px solid var(--agenda-border) !important;
}

    .navbar-brand,
    .navbar .nav-link {
        color: var(--agenda-text) !important;
    }

        .navbar .nav-link:hover,
        .navbar-brand:hover {
            color: var(--agenda-primary) !important;
        }

[data-bs-theme="dark"] .navbar-toggler {
    border-color: var(--agenda-border);
}

[data-bs-theme="dark"] .navbar-toggler-icon {
    filter: invert(1);
}

/* =========================================================
   Layout
   ========================================================= */

main.container {
    max-width: 1320px;
}

footer {
    color: var(--agenda-muted) !important;
    border-top-color: var(--agenda-border) !important;
}

/* =========================================================
   Hero
   ========================================================= */

.hero {
    background: linear-gradient(135deg, var(--agenda-surface), var(--agenda-surface-soft));
    color: var(--agenda-text);
    border: 1px solid var(--agenda-border);
    border-radius: 18px;
    padding: 1.25rem 1.5rem;
    box-shadow: var(--agenda-shadow);
}

    .hero h1,
    .hero p {
        color: var(--agenda-text);
    }

    .hero h1 {
        font-size: clamp(2rem, 4vw, 3rem);
        margin-bottom: .35rem;
    }

    .hero p {
        margin-bottom: 0;
    }

.eyebrow {
    color: var(--agenda-primary);
    font-size: 0.78rem;
    font-weight: 800;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

/* =========================================================
   Cards / panels
   ========================================================= */

.card {
    background: var(--agenda-surface);
    color: var(--agenda-text);
    border: 1px solid var(--agenda-border) !important;
}

.card-body {
    color: var(--agenda-text);
}

/* =========================================================
   Source chips
   ========================================================= */

.source-grid {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem;
}

.source-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.45rem;
    padding: 0.55rem 0.85rem;
    border: 1px solid var(--agenda-border);
    border-radius: 999px;
    background: #ffffff;
    color: #111827;
    cursor: pointer;
    user-select: none;
    box-shadow: 0 5px 14px rgba(15, 23, 42, 0.08);
}

    .source-chip input {
        display: none;
    }

.source-dot {
    width: 0.85rem;
    height: 0.85rem;
    border-radius: 999px;
    background: var(--source-color, #666);
    box-shadow: 0 0 0 4px color-mix(in srgb, var(--source-color, #666) 18%, transparent);
}

.source-name {
    font-weight: 800;
}

.source-commune {
    font-size: 0.78rem;
    color: #475569;
}

.source-chip:has(input:not(:checked)) {
    opacity: 0.38;
    filter: grayscale(0.6);
}

.source-chip:hover {
    transform: translateY(-1px);
}

/* =========================================================
   Buttons
   ========================================================= */

.btn-primary {
    background: var(--agenda-primary);
    border-color: var(--agenda-primary);
}

    .btn-primary:hover {
        background: var(--agenda-primary-dark);
        border-color: var(--agenda-primary-dark);
    }

[data-bs-theme="dark"] .btn-outline-secondary {
    color: var(--agenda-muted);
    border-color: var(--agenda-border);
}

    [data-bs-theme="dark"] .btn-outline-secondary:hover {
        color: #ffffff;
        background: #334155;
        border-color: #475569;
    }

/* =========================================================
   FullCalendar global
   ========================================================= */

.fc {
    color: var(--agenda-text);
}

    .fc a {
        color: inherit;
    }

.fc-event {
    cursor: pointer;
}

.fc .fc-toolbar-title {
    color: var(--agenda-text);
    font-weight: 800;
}

.fc .fc-button {
    background: var(--agenda-primary) !important;
    border-color: var(--agenda-primary) !important;
    color: #ffffff !important;
    box-shadow: none !important;
}

    .fc .fc-button:hover,
    .fc .fc-button-active {
        background: var(--agenda-primary-dark) !important;
        border-color: var(--agenda-primary-dark) !important;
    }

    .fc .fc-button:disabled {
        background: #334155 !important;
        border-color: #334155 !important;
        opacity: 0.75;
    }

/* =========================================================
   FullCalendar month/week grid
   ========================================================= */

.fc-theme-standard .fc-scrollgrid,
.fc-theme-standard td,
.fc-theme-standard th {
    border-color: var(--agenda-border);
}

.fc-col-header-cell {
    background: color-mix(in srgb, var(--agenda-surface) 88%, var(--agenda-text) 12%);
}

.fc-col-header-cell-cushion {
    color: var(--agenda-text);
    font-weight: 800;
    text-decoration: none;
}

.fc-daygrid-day {
    background: var(--agenda-surface);
}

.fc-daygrid-day-number {
    color: var(--agenda-text);
    font-weight: 700;
    text-decoration: none;
}

.fc-day-other .fc-daygrid-day-number {
    color: var(--agenda-muted);
    opacity: 0.7;
}

.fc-day-today {
    background: color-mix(in srgb, var(--agenda-primary) 18%, var(--agenda-surface)) !important;
}

.fc-daygrid-event {
    border-radius: 5px;
    padding: 2px 4px;
}

/* =========================================================
   FullCalendar list view
   ========================================================= */

.fc-list {
    background: var(--agenda-surface);
    border-color: var(--agenda-border);
}

.fc-list-day-cushion {
    background: color-mix(in srgb, var(--agenda-primary) 20%, var(--agenda-surface)) !important;
    color: var(--agenda-text) !important;
}

.fc-list-day-text,
.fc-list-day-side-text {
    color: var(--agenda-text) !important;
    font-weight: 800;
    text-decoration: none;
}

.fc-list-event {
    background: var(--agenda-surface);
    color: var(--agenda-text);
}

    .fc-list-event td {
        color: var(--agenda-text);
        border-color: var(--agenda-border);
    }

    .fc-list-event:hover td,
    .fc-list-event:hover {
        background: color-mix(in srgb, var(--agenda-primary) 14%, var(--agenda-surface)) !important;
        color: var(--agenda-text) !important;
    }

.fc-list-event-title,
.fc-list-event-time {
    color: var(--agenda-text) !important;
}

.fc-list-event-dot {
    border-color: currentColor;
}

/* =========================================================
   Modals
   ========================================================= */

.modal-content {
    background: var(--agenda-surface);
    color: var(--agenda-text);
    border: 1px solid var(--agenda-border);
}

.modal-header {
    border-bottom-color: var(--agenda-border);
}

.modal-footer {
    border-top-color: var(--agenda-border);
}

[data-bs-theme="dark"] .btn-close {
    filter: invert(1) grayscale(100%);
}

/* =========================================================
   Forms
   ========================================================= */

.form-control {
    background: var(--agenda-surface);
    color: var(--agenda-text);
    border-color: var(--agenda-border);
}

    .form-control:focus {
        background: var(--agenda-surface);
        color: var(--agenda-text);
        border-color: var(--agenda-primary);
        box-shadow: 0 0 0 0.2rem color-mix(in srgb, var(--agenda-primary) 25%, transparent);
    }

/* =========================================================
   Responsive
   ========================================================= */

@media (max-width: 768px) {
    .hero {
        padding: 1.4rem;
        border-radius: 18px;
    }

        .hero h1 {
            font-size: 2rem;
        }

    .fc .fc-toolbar {
        flex-direction: column;
        gap: 0.75rem;
    }

    .fc .fc-toolbar-chunk {
        display: flex;
        justify-content: center;
        flex-wrap: wrap;
    }
}