/* ============================================================
   BASE TYPOGRAPHY + RESPONSIVE ROOT SIZE
   ============================================================ */
html {
    font-size: 14px;
    position: relative;
    min-height: 100%;
}

@media (min-width: 768px) {
    html {
        font-size: 16px;
    }
}

body {
    margin-bottom: 60px;
    background-color: var(--color-bg);
    color: var(--color-text);
    font-family: system-ui, -apple-system, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
}

/* ============================================================
   GLOBAL SPACING + LAYOUT
   ============================================================ */
.container {
    max-width: 960px;
}

section,
.page-section {
    margin-bottom: 3rem;
}

/* ============================================================
   FORMS + INPUTS
   ============================================================ */
.form-control,
.form-select,
textarea {
    background-color: var(--color-surface);
    color: var(--color-text);
    border-color: var(--color-card-border);
}

    .form-control:focus,
    .form-select:focus,
    textarea:focus {
        background-color: var(--color-surface);
        color: var(--color-text);
        border-color: var(--color-primary);
        box-shadow: 0 0 0 0.1rem var(--color-text-light), 0 0 0 0.25rem var(--color-primary);
    }

/* Floating label placeholder alignment */
.form-floating > .form-control-plaintext::placeholder,
.form-floating > .form-control::placeholder {
    color: var(--bs-secondary-color);
    text-align: end;
}

.form-floating > .form-control-plaintext:focus::placeholder,
.form-floating > .form-control:focus::placeholder {
    text-align: start;
}

/* ============================================================
   BUTTONS
   ============================================================ */
.btn-primary-theme {
    background-color: var(--color-primary);
    color: var(--color-text-light);
    border: none;
}

    .btn-primary-theme:hover,
    .btn-primary-theme:focus {
        background-color: var(--color-primary);
        opacity: 0.9;
        color: var(--color-text-light);
    }

#previewThemeToggle.form-check-input {
    cursor: pointer;
}

#previewThemeToggle:checked {
    background-color: var(--color-primary);
    border-color: var(--color-primary);
}

/* BASE CONTAINER */
.theme-switch {
    position: relative;
    display: inline-block;
    width: 48px; /* wider track */
    height: 24px; /* same height */
}

    /* Hide native checkbox */
    .theme-switch input {
        opacity: 0;
        width: 0;
        height: 0;
    }

    /* TRACK — always blue */
    .theme-switch .slider {
        position: absolute;
        inset: 0;
        background-color: #007bff;
        border-radius: 24px;
        border: 2px solid #007bff;
        cursor: pointer;
        transition: background-color 0.25s ease;
    }

        /* THUMB — always white, slightly smaller */
        .theme-switch .slider::before {
            content: "";
            position: absolute;
            width: 16px; /* smaller thumb */
            height: 16px;
            left: 3px; /* equal spacing */
            top: 50%;
            transform: translateY(-50%);
            background-color: white;
            border: 2px solid white;
            border-radius: 50%;
            transition: transform 0.25s ease;
        }

    /* CHECKED — only moves the thumb */
    .theme-switch input:checked + .slider::before {
        transform: translateX(24px) translateY(-50%);
        /* 48px track - 16px thumb - 3px padding - 3px padding = 24px travel */
    }


    /* Optional: make the transition feel even nicer
    .theme-switch .slider,
    .theme-switch .slider::before {
        box-sizing: border-box;
    }
 */
/* Optional spacing for preview
.preview-theme-switch {
    margin-left: 0.5rem;
}
 */
/* ============================================================
   LINKS
   ============================================================ */
a {
    color: var(--color-primary);
    text-decoration: none;
}

    a:hover {
        text-decoration: underline;
    }

.teams-icon {
    width: 22px;
    height: 22px;
    display: inline-block;
    vertical-align: middle;
}

/* ============================================================
   NAVBAR REFINEMENTS
   ============================================================ */
.navbar {
    border-bottom: 1px solid var(--color-card-border);
}

.navbar-dark .navbar-toggler {
    border-color: rgba(255, 255, 255, 0.4);
}

/* ----------------------------------------------
   ACTIVE NAV INDICATOR — ROUNDED BAR
   ---------------------------------------------- */
/* Base nav link styling */
.nav-link-theme {
    position: relative;
    padding-bottom: 6px;
}

    /* Desktop/tablet active indicator — centered */
    .nav-link-theme.active::after {
        content: "";
        position: absolute;
        left: 50%;
        bottom: 0;
        transform: translateX(-50%);
        width: 60%;
        height: 4px;
        background-color: var(--color-text-light);
        border-radius: 4px;
        transition: all 0.25s ease;
    }

/* Dark theme override */
.page.dark .nav-link-theme.active::after {
    background-color: var(--color-text-light);
}

/* ----------------------------------------------
   MOBILE OVERRIDE — left‑aligned bar
   ---------------------------------------------- */
@media (max-width: 991.98px) {
    .nav-link-theme.active::after {
        left: 0;
        transform: none;
        width: 100%;
        height: 3px;
    }
}

/* ============================================================
   FOOTER REFINEMENTS
   ============================================================ */
footer {
    border-top: 1px solid var(--color-card-border);
}

/* ============================================================
   CARD REFINEMENTS
   ============================================================ */
.card-theme {
    transition: background-color 0.25s ease, border-color 0.25s ease;
}

.card-title {
    color: var(--card-title-color);
    font-weight: 600;
    margin-bottom: 0.5rem;
}

.card-header-row {
    display: flex;
    flex-direction: column;
    position: relative;
}

.card-desc {
    color: var(--card-title-color);
    font-weight: normal;
    margin-bottom: 0.5rem;
}

.process-label {
    align-self: flex-start;
    font-size: 0.75rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: var(--color-muted);
    margin-top: 0.25rem;
    margin-bottom: 0.25rem;
}

/* Card feedback */
.card-feedback {
    display: flex;
    justify-content: flex-end;
    gap: 0.75rem;
    margin-top: 1.25rem;
}

.thumb-btn {
    background: none;
    border: none;
    padding: 0;
    cursor: pointer;
}

.thumb-icon {
    width: 22px;
    height: 22px;
    fill: none;
    stroke: var(--color-text);
    stroke-width: 1.5px;
    transition: fill 0.15s ease, stroke 0.15s ease;
}

.thumb-btn.active .thumb-icon {
    fill: var(--color-primary);
    stroke: var(--color-primary);
}

.thumb-btn:hover .thumb-icon {
    stroke: var(--color-primary);
}

/* Card preview buttons */
.btn-outline-primary-theme {
    color: var(--bs-primary);
    border: 1px solid var(--bs-primary);
    background-color: transparent;
}

.page.dark .btn-outline-primary-theme {
    color: #fff;
    border-color: rgba(255,255,255,0.6);
    background-color: rgba(255,255,255,0.08);
}

.btn-outline-primary-theme:hover {
    background-color: var(--bs-primary);
    color: #fff;
}

.btn-group-preview {
    display: flex;
    gap: 0.75rem;
    flex-wrap: wrap;
}

.theme-preview-block h5 {
    margin-bottom: 0.5rem;
}

/* Card chart preview thumbs */
.analysis-thumb {
    cursor: pointer;
    text-align: center;
}

.analysis-thumb-title {
    margin-top: 0.5rem;
    font-weight: 600;
    color: var(--card-title-color);
}

.analysis-thumb-sub {
    font-weight: normal;
    color: var(--color-muted);
    font-size: 0.85rem;
}

.page.dark .analysis-thumb-title {
    color: var(--color-text-light);
}

.page.dark .analysis-thumb-sub {
    color: var(--color-text-light);
}

/* ---------------------------------------------------------
   ANALYZE & REVIEW — THEME-AWARE CHART IMAGE SWAPPING
   --------------------------------------------------------- */

/* PARTICIPATION — THUMB */
.page.light img[data-chart="participation-thumb"] {
    content: url("/img/charts/light-participation-thumb.svg");
}

.page.dark img[data-chart="participation-thumb"] {
    content: url("/img/charts/dark-participation-thumb.svg");
}

/* PARTICIPATION — FULL (modal) */
.page.light .analysis-thumb[data-chart="participation-full"] {
    --chart-full: url("/img/charts/light-participation-full.svg");
}

.page.dark .analysis-thumb[data-chart="participation-full"] {
    --chart-full: url("/img/charts/dark-participation-full.svg");
}

/* SENTIMENT — THUMB */
.page.light img[data-chart="sentiment-thumb"] {
    content: url("/img/charts/light-sentiment-thumb.svg");
}

.page.dark img[data-chart="sentiment-thumb"] {
    content: url("/img/charts/dark-sentiment-thumb.svg");
}

/* SENTIMENT — FULL (modal) */
.page.light .analysis-thumb[data-chart="sentiment-full"] {
    --chart-full: url("/img/charts/light-sentiment-full.svg");
}

.page.dark .analysis-thumb[data-chart="sentiment-full"] {
    --chart-full: url("/img/charts/dark-sentiment-full.svg");
}

/* ISSUES — THUMB */
.page.light img[data-chart="issues-thumb"] {
    content: url("/img/charts/light-issues-thumb.svg");
}

.page.dark img[data-chart="issues-thumb"] {
    content: url("/img/charts/dark-issues-thumb.svg");
}

/* ISSUES — FULL (modal) */
.page.light .analysis-thumb[data-chart="issues-full"] {
    --chart-full: url("/img/charts/light-issues-full.svg");
}

.page.dark .analysis-thumb[data-chart="issues-full"] {
    --chart-full: url("/img/charts/dark-issues-full.svg");
}

/* Card images */
.howitworks-img {
    width: 100%;
    height: auto;
    max-width: 400px;
    max-height: 100px;
    border-radius: 18px;
    display: block;
    margin: 0 auto;
}

/* Accents */
.step-text {
    font-size: 0.95rem;
    line-height: 1.35;
}

/* ============================================================
   HERO SECTION REFINEMENTS
   ============================================================ */
.hero-theme {
    padding: 80px 0;
    transition: background-color 0.25s ease;
}

.svg-icon-column {
    display: inline-block;
    flex-shrink: 0;
    position: relative;
    padding-bottom: 4px;
}

@media (max-width: 768px) {
    .svg-icon-column {
        display: none !important;
    }
}

/* Mobile pager bar */
.mobile-pager {
    position: fixed;
    bottom: 0;
    left: 0;
    right: 0;
    height: 56px;
    padding: 0 20px;
    display: none;
    justify-content: space-between;
    align-items: center;
    background: rgba(0, 0, 0, 0.1);
    backdrop-filter: blur(10px);
    border-top: 1px solid rgba(0, 0, 0, 0.1);
    z-index: 999;
}

/* Icon buttons */
.pager-icon,
.scroll-top-btn {
    display: flex;
    justify-content: center;
    align-items: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    background: rgba(0, 0, 0, 0.05);
    color: #005bbb;
    text-decoration: none;
    border: none;
}

    .pager-icon:hover,
    .scroll-top-btn:hover {
        background: rgba(0, 0, 0, 0.12);
    }

.pager-disabled {
    visibility: hidden;
}

/* Material icon style */
.material-icon {
    font-family: "Material Icons";
    font-size: 28px;
    line-height: 1;
}

/* Only show on mobile */
/* Show pager on all phones, portrait or landscape */
@media (max-width: 991.98px) {
    .mobile-pager {
        display: flex;
    }
}

/* ============================================================
   UTILITY HELPERS
   ============================================================ */
.rounded-soft {
    border-radius: 12px;
}

.shadow-soft {
    box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
}


