/* ============================================================
   BugAnalyzer - Custom Styles (Bootstrap 5 + Custom Theme)
   Nature / Earthy Design System with Teal-Green Primary Accent
   ============================================================ */

/* ─── Root Color Palette ─── */
:root {
    --global-palette1: #049f82;
    --global-palette2: #008f72;
    --global-palette3: #222;
    --global-palette4: #353535;
    --global-palette5: #454545;
    --global-palette6: #676767;
    --global-palette7: #e8e8e8;
    --global-palette8: #f7f7f7;
    --global-palette9: #fff;
    --global-palette11: #13612e;
    --global-palette12: #1159af;
    --global-palette13: #b82105;
    --global-palette14: #f7630c;
    --global-palette15: #f5a524;
    --global-palette9rgb: 255, 255, 255;
    --global-palette-highlight: #0cd3ae;
    --global-palette-highlight-alt: var(--global-palette2);
    --global-palette-highlight-alt2: var(--global-palette9);
    --global-palette-btn-bg: var(--global-palette1);
    --global-palette-btn-bg-hover: var(--global-palette2);
    --global-palette-btn: var(--global-palette9);
    --global-palette-btn-hover: var(--global-palette9);
    --global-body-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto,
        Oxygen-Sans, Ubuntu, Cantarell, "Helvetica Neue", sans-serif,
        "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
    --global-heading-font-family: inherit;
    --global-content-width: 1140px;
    --global-content-edge-padding: 1.5rem;

    /* Dark section color (navbar, header bars, footer) */
    --dark-section: #2d3a2e;

    /* Semantic aliases */
    --primary: var(--global-palette1);
    --primary-dark: var(--global-palette2);
    --danger: var(--global-palette13);
    --warning: var(--global-palette14);
    --warning-light: var(--global-palette15);
    --success: var(--global-palette11);
    --info: var(--global-palette12);
    --highlight: var(--global-palette-highlight);

    /* Harm levels */
    --harm-none: #22c55e;
    --harm-low: #84cc16;
    --harm-medium: var(--global-palette15);
    --harm-high: var(--global-palette13);
    --harm-critical: #7c3aed;
}


/* ============================================================
   BASE OVERRIDES
   ============================================================ */

body {
    font-family: var(--global-body-font-family);
    color: var(--global-palette4);
    background: var(--global-palette9);
    line-height: 1.6;
}

h1, h2, h3, h4, h5, h6 {
    font-family: var(--global-heading-font-family);
    color: var(--global-palette3);
    font-weight: 700;
}

a {
    color: var(--primary);
    text-decoration: none;
    transition: color .15s;
}
a:hover {
    color: var(--primary-dark);
}

img {
    max-width: 100%;
    height: auto;
}

::selection {
    background: rgba(4, 159, 130, .2);
    color: var(--global-palette3);
}


/* ============================================================
   BOOTSTRAP OVERRIDES
   ============================================================ */

/* --- Buttons --- */
.btn-primary {
    background-color: var(--primary) !important;
    border-color: var(--primary) !important;
    color: var(--global-palette9) !important;
    border-radius: 6px;
    font-weight: 600;
    padding: .5rem 1.25rem;
    transition: background-color .2s, border-color .2s, box-shadow .2s;
}
.btn-primary:hover,
.btn-primary:focus {
    background-color: var(--primary-dark) !important;
    border-color: var(--primary-dark) !important;
    box-shadow: 0 2px 8px rgba(4, 159, 130, .3);
}

.btn-danger {
    background-color: var(--danger) !important;
    border-color: var(--danger) !important;
    color: var(--global-palette9) !important;
    border-radius: 6px;
    font-weight: 600;
}

.btn-warning {
    background-color: var(--warning) !important;
    border-color: var(--warning) !important;
    color: var(--global-palette9) !important;
    border-radius: 6px;
    font-weight: 600;
}

.btn-success {
    background-color: var(--success) !important;
    border-color: var(--success) !important;
    color: var(--global-palette9) !important;
    border-radius: 6px;
    font-weight: 600;
}

.btn-info {
    background-color: var(--info) !important;
    border-color: var(--info) !important;
    color: var(--global-palette9) !important;
    border-radius: 6px;
    font-weight: 600;
}

.btn-outline-primary {
    color: var(--primary) !important;
    border-color: var(--primary) !important;
    border-radius: 6px;
    font-weight: 600;
    transition: background-color .2s, color .2s;
}
.btn-outline-primary:hover {
    background-color: var(--primary) !important;
    color: var(--global-palette9) !important;
}

.btn-dark {
    background-color: var(--dark-section) !important;
    border-color: var(--dark-section) !important;
    color: var(--global-palette9) !important;
    border-radius: 6px;
    font-weight: 600;
}
.btn-dark:hover {
    background-color: #1f2a20 !important;
    border-color: #1f2a20 !important;
}

.btn-outline-dark {
    color: var(--global-palette9) !important;
    border-color: var(--global-palette9) !important;
    background-color: var(--dark-section) !important;
    border-radius: 6px;
    font-weight: 600;
}
.btn-outline-dark:hover {
    background-color: #1f2a20 !important;
}

/* --- Utility color overrides --- */
.bg-primary { background-color: var(--primary) !important; }
.text-primary { color: var(--primary) !important; }
.text-green { color: var(--primary) !important; }
.text-dark-green { color: var(--dark-section) !important; }
.bg-dark-section { background-color: var(--dark-section) !important; }
.bg-section-gray { background-color: var(--global-palette8) !important; }
.fw-700 { font-weight: 700 !important; }

/* --- Forms --- */
.form-control:focus,
.form-select:focus {
    border-color: var(--primary);
    box-shadow: 0 0 0 .2rem rgba(4, 159, 130, .15);
}

/* --- Pagination --- */
.page-link {
    color: var(--primary);
}
.page-link:hover {
    color: var(--primary-dark);
    background-color: rgba(4, 159, 130, .06);
}
.page-item.active .page-link {
    background-color: var(--primary);
    border-color: var(--primary);
    color: var(--global-palette9);
}

/* --- Breadcrumbs --- */
.breadcrumb-item a { color: var(--primary); }
.breadcrumb-item.active { color: var(--global-palette6); }

/* --- Cards (Bootstrap default override) --- */
.card {
    background: var(--global-palette9);
    border: 1px solid var(--global-palette7);
    border-radius: 10px;
    box-shadow: 0 2px 8px rgba(0, 0, 0, .04);
}


/* ============================================================
   NAVIGATION BAR
   ============================================================ */

.navbar {
    background-color: var(--dark-section) !important;
    box-shadow: 0 2px 8px rgba(0, 0, 0, .15);
    padding: .75rem 0;
}
.navbar.sticky-top {
    position: sticky;
    top: 0;
    z-index: 1030;
}

.navbar-brand {
    font-size: 1.5rem;
    font-weight: 700;
    color: var(--global-palette9) !important;
    display: flex;
    align-items: center;
    gap: .5rem;
}
.navbar-brand .brand-bug {
    color: var(--primary);
    font-weight: 700;
}
.navbar-brand .brand-text {
    color: var(--global-palette9);
    font-weight: 400;
    font-size: 1.1rem;
}
.navbar-brand i,
.navbar-brand .bug-icon {
    color: var(--primary);
    font-size: 1.4rem;
}
.navbar-brand span {
    color: var(--global-palette9);
}

.nav-link {
    color: var(--global-palette9) !important;
    font-weight: 500;
    padding: .5rem 1rem !important;
    position: relative;
    transition: color .15s;
}
.nav-link::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 1rem;
    right: 1rem;
    height: 2px;
    background: var(--primary);
    transform: scaleX(0);
    transition: transform .2s;
}
.nav-link:hover::after {
    transform: scaleX(1);
}
.nav-link:hover {
    color: rgba(255, 255, 255, .85) !important;
}
.nav-link.active {
    color: var(--primary) !important;
}
.nav-link.active::after {
    transform: scaleX(1);
}

.navbar-toggler {
    border-color: rgba(255, 255, 255, .25);
    color: var(--global-palette9);
}
.navbar-toggler-icon {
    filter: invert(1);
}


/* ============================================================
   HERO SECTION
   ============================================================ */

.hero-section {
    position: relative;
    background: var(--dark-section);
    color: var(--global-palette9);
    padding: 5rem 0;
    overflow: hidden;
}
.hero-section::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(45, 58, 46, .85), rgba(45, 58, 46, .7));
    z-index: 1;
}
.hero-section .hero-bg {
    position: absolute;
    inset: 0;
    background-size: cover;
    background-position: center;
    z-index: 0;
}
.hero-section .container,
.hero-section > .container-fluid {
    position: relative;
    z-index: 2;
}
.hero-section h1 {
    font-size: 2.75rem;
    font-weight: 700;
    color: var(--global-palette9);
    line-height: 1.2;
    margin-bottom: 1rem;
}
.hero-section h1 .text-green,
.hero-section h1 .hero-green {
    color: var(--primary);
}
.hero-section p {
    font-size: 1.15rem;
    opacity: .85;
    color: var(--global-palette9);
    margin-bottom: 1.5rem;
}
.hero-section .btn-primary {
    padding: .75rem 1.75rem;
    font-size: 1rem;
}
.hero-section .btn-outline-dark,
.hero-section .btn-dark {
    padding: .75rem 1.75rem;
    font-size: 1rem;
}

/* Hero v2 variant (dark gradient) */
.hero-section-v2 {
    background: linear-gradient(135deg, #2d3a2e 0%, #1a2e1a 100%);
    color: var(--global-palette9);
    padding: 5rem 0;
    position: relative;
    overflow: hidden;
}
.hero-section-v2 h1 {
    font-size: 3rem;
    font-weight: 800;
    line-height: 1.2;
    color: var(--global-palette9);
}
.hero-section-v2 h1 .text-green { color: var(--primary); }
.hero-section-v2 .hero-subtitle {
    font-size: 1.125rem;
    opacity: .8;
    margin-top: 1rem;
}
.hero-section-v2 .btn-hero-primary {
    background: var(--primary);
    color: var(--global-palette9);
    border: none;
    padding: .75rem 1.75rem;
    border-radius: 6px;
    font-weight: 600;
    font-size: 1rem;
    transition: background-color .2s;
}
.hero-section-v2 .btn-hero-primary:hover { background: var(--primary-dark); }
.hero-section-v2 .btn-hero-secondary {
    background: var(--dark-section);
    color: var(--global-palette9);
    border: 1px solid rgba(255, 255, 255, .2);
    padding: .75rem 1.75rem;
    border-radius: 6px;
    font-weight: 600;
    font-size: 1rem;
    transition: background-color .2s;
}
.hero-section-v2 .btn-hero-secondary:hover { background: #3d4a3e; }

/* Hero floating card (AI Identified preview) */
.hero-card,
.ai-preview-card {
    background: var(--global-palette9);
    border-radius: 12px;
    padding: 1.5rem;
    box-shadow: 0 16px 48px rgba(0, 0, 0, .25);
    color: var(--global-palette4);
    max-width: 360px;
    margin: 0 auto;
}
.hero-card img,
.ai-preview-card img {
    border-radius: 8px;
    width: 100%;
    height: 180px;
    object-fit: cover;
    margin-bottom: .75rem;
}
.hero-card .ai-badge,
.ai-preview-card .ai-badge {
    display: inline-block;
    background: var(--primary);
    color: var(--global-palette9);
    font-size: .7rem;
    font-weight: 700;
    padding: .2rem .6rem;
    border-radius: 4px;
    text-transform: uppercase;
    letter-spacing: .05em;
    margin-bottom: .5rem;
}
.hero-card .insect-name,
.ai-preview-card .insect-name {
    font-weight: 700;
    font-size: 1.1rem;
    color: var(--global-palette3);
    margin-bottom: .15rem;
}
.hero-card .scientific-name,
.ai-preview-card .scientific-name {
    font-style: italic;
    color: var(--global-palette6);
    font-size: .85rem;
    margin-bottom: .5rem;
}
.hero-card .detail-row,
.ai-preview-card .detail-row {
    display: flex;
    justify-content: space-between;
    font-size: .8rem;
    color: var(--global-palette5);
    padding: .25rem 0;
    border-top: 1px solid var(--global-palette7);
}
.ai-preview-card .insect-placeholder {
    width: 100%;
    height: 180px;
    background: linear-gradient(135deg, #e8f5e9, #c8e6c9);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 1rem;
}
.ai-preview-card .insect-placeholder i {
    font-size: 4rem;
    color: var(--primary);
    opacity: .5;
}

@media (max-width: 768px) {
    .hero-section {
        padding: 3rem 0;
    }
    .hero-section h1 {
        font-size: 1.85rem;
    }
    .hero-section-v2 h1 {
        font-size: 2rem;
    }
    .hero-card,
    .ai-preview-card {
        margin-top: 2rem;
        max-width: 100%;
    }
}


/* ============================================================
   UPLOAD SECTION (BUG IDENTIFIER)
   ============================================================ */

.upload-section {
    background: var(--global-palette9);
    border-radius: 12px;
    padding: 2rem;
    box-shadow: 0 2px 12px rgba(0, 0, 0, .06);
}
.upload-section h2 {
    font-weight: 700;
    display: flex;
    align-items: center;
    gap: .5rem;
}
.upload-section h2 i {
    color: var(--primary);
}

.upload-zone {
    border: 3px dashed var(--primary);
    border-radius: 12px;
    padding: 3rem 2rem;
    text-align: center;
    background: var(--global-palette9);
    cursor: pointer;
    transition: background-color .2s, border-color .2s;
    position: relative;
}
.upload-zone:hover,
.upload-zone.dragover {
    border-color: var(--primary-dark);
    background: rgba(4, 159, 130, .04);
}
.upload-zone .upload-icon {
    font-size: 3rem;
    color: var(--primary);
    margin-bottom: 1rem;
}
.upload-zone p {
    color: var(--global-palette6);
    margin-bottom: 1rem;
}
.upload-zone input[type="file"] {
    position: absolute;
    inset: 0;
    opacity: 0;
    cursor: pointer;
}
.upload-zone .btn {
    margin: .25rem;
}

/* Upload zone v2 alias */
.upload-zone-v2 {
    border: 3px dashed var(--primary);
    border-radius: 12px;
    padding: 3rem 2rem;
    text-align: center;
    background: rgba(4, 159, 130, .03);
    cursor: pointer;
    transition: background-color .2s, border-color .2s;
    position: relative;
}
.upload-zone-v2:hover,
.upload-zone-v2.dragover {
    border-color: var(--primary-dark);
    background: rgba(4, 159, 130, .08);
}
.upload-zone-v2 .upload-icon {
    font-size: 3rem;
    color: var(--primary);
    margin-bottom: 1rem;
}
.upload-zone-v2 input[type="file"] {
    position: absolute;
    inset: 0;
    opacity: 0;
    cursor: pointer;
}

.upload-preview {
    max-height: 300px;
    border-radius: 8px;
    margin-top: 1rem;
    display: none;
}

/* Upload Progress */
.upload-progress {
    display: none;
    margin-top: 1rem;
}
.upload-progress .progress-bar {
    height: .5rem;
    background: var(--global-palette7);
    border-radius: 9999px;
    overflow: hidden;
}
.upload-progress .progress-fill {
    height: 100%;
    background: var(--primary);
    width: 0;
    transition: width .3s;
    border-radius: 9999px;
}


/* ============================================================
   HOW TO USE SECTION (STEP CARDS)
   ============================================================ */

.how-to-section {
    background: #f0f0f0;
    padding: 4rem 0;
}
.how-to-section h2 {
    text-align: center;
    margin-bottom: 2.5rem;
    color: var(--global-palette3);
}

.step-card {
    background: var(--global-palette9);
    border: 1px solid var(--global-palette7);
    border-radius: 10px;
    padding: 1.75rem;
    height: 100%;
    box-shadow: 0 2px 8px rgba(0, 0, 0, .04);
    text-align: left;
    transition: box-shadow .2s, transform .2s;
}
.step-card:hover {
    box-shadow: 0 6px 20px rgba(0, 0, 0, .08);
    transform: translateY(-2px);
}
.step-card .step-icon {
    width: 48px;
    height: 48px;
    background: var(--primary);
    color: var(--global-palette9);
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    margin-bottom: 1rem;
}
.step-card .step-label {
    font-size: .75rem;
    color: var(--global-palette6);
    text-transform: uppercase;
    letter-spacing: .05em;
    margin-bottom: .25rem;
    font-weight: 600;
}
.step-card h5 {
    font-weight: 700;
    margin-bottom: .5rem;
    color: var(--global-palette3);
}
.step-card p {
    color: var(--global-palette6);
    font-size: .9rem;
    margin-bottom: 0;
    line-height: 1.6;
}

/* Legacy step-number (green rounded-square to match new design) */
.step-number {
    width: 48px;
    height: 48px;
    background: var(--primary);
    color: var(--global-palette9);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-weight: 700;
    font-size: 1.25rem;
    margin-bottom: 1rem;
}

/* Step cards v2 alias */
.step-card-v2 {
    background: var(--global-palette9);
    border-radius: 10px;
    padding: 1.75rem;
    height: 100%;
    box-shadow: 0 1px 4px rgba(0, 0, 0, .06);
    transition: box-shadow .2s, transform .2s;
}
.step-card-v2:hover {
    box-shadow: 0 6px 20px rgba(0, 0, 0, .1);
    transform: translateY(-2px);
}
.step-card-v2 .step-icon {
    width: 48px;
    height: 48px;
    background: rgba(4, 159, 130, .1);
    color: var(--primary);
    border-radius: 10px;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 1.25rem;
    margin-bottom: 1rem;
}
.step-card-v2 .step-label {
    font-size: .7rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .1em;
    color: var(--primary);
    margin-bottom: .5rem;
}


/* ============================================================
   SECTION HEADER BARS (dark #2d3a2e full-width bars)
   ============================================================ */

.section-bar {
    background: var(--dark-section);
    color: var(--global-palette9);
    text-align: center;
    padding: 1.1rem 1.5rem;
    font-weight: 700;
    font-size: 1.35rem;
    margin: 0;
    width: 100%;
}
.section-bar h2,
.section-bar h3 {
    color: var(--global-palette9);
    margin: 0;
    font-weight: 700;
    font-size: inherit;
}


/* ============================================================
   SECTION HEADING (with green underline accent)
   ============================================================ */

.section-heading {
    font-size: 1.75rem;
    font-weight: 700;
    color: var(--global-palette3);
    margin-bottom: 1.5rem;
}
.section-heading::after {
    content: '';
    display: block;
    width: 60px;
    height: 3px;
    background: var(--primary);
    margin-top: .5rem;
}


/* ============================================================
   CONTENT SECTIONS (alternating backgrounds)
   ============================================================ */

.section-white {
    background: var(--global-palette9);
    padding: 3.5rem 0;
}
.section-gray {
    background: var(--global-palette8);
    padding: 3.5rem 0;
}
.content-container {
    max-width: var(--global-content-width);
    margin: 0 auto;
    padding: 0 var(--global-content-edge-padding);
}


/* ============================================================
   GREEN BORDER ACCENT BOX
   ============================================================ */

.green-border-box {
    border-left: 4px solid var(--primary);
    padding: 1.25rem 1.5rem;
    background: var(--global-palette9);
    border-radius: 0 8px 8px 0;
    margin-bottom: 1.5rem;
    box-shadow: 0 1px 4px rgba(0, 0, 0, .04);
}
.green-border-box h3,
.green-border-box h4,
.green-border-box h5 {
    color: var(--global-palette3);
    margin-bottom: .5rem;
}


/* ============================================================
   TAG PILLS
   ============================================================ */

.tag-pill {
    display: inline-block;
    padding: .2rem .65rem;
    border-radius: 9999px;
    font-size: .75rem;
    font-weight: 600;
    line-height: 1.5;
    white-space: nowrap;
    margin: .15rem .1rem;
}
.tag-green {
    background: var(--primary);
    color: var(--global-palette9);
}
.tag-orange {
    background: var(--warning);
    color: var(--global-palette9);
}
.tag-gray {
    background: var(--global-palette7);
    color: var(--global-palette4);
}
.tag-green-outline {
    background: transparent;
    color: var(--primary);
    border: 1px solid var(--primary);
}
.tag-success {
    background: var(--success);
    color: var(--global-palette9);
}
.tag-yellow {
    background: var(--warning-light);
    color: var(--global-palette9);
}


/* ============================================================
   RISK BADGES
   ============================================================ */

.risk-badge-high {
    display: inline-block;
    background: var(--danger);
    color: var(--global-palette9);
    padding: .25rem .75rem;
    border-radius: 6px;
    font-size: .75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .03em;
}
.risk-badge-medium {
    display: inline-block;
    background: var(--warning);
    color: var(--global-palette9);
    padding: .25rem .75rem;
    border-radius: 6px;
    font-size: .75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .03em;
}
.risk-badge-low {
    display: inline-block;
    background: var(--primary);
    color: var(--global-palette9);
    padding: .25rem .75rem;
    border-radius: 6px;
    font-size: .75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .03em;
}


/* ============================================================
   HARM LEVEL BADGES (legacy)
   ============================================================ */

.harm-badge {
    display: inline-flex;
    align-items: center;
    padding: .25rem .75rem;
    border-radius: 9999px;
    font-size: .75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .05em;
}
.harm-badge-none { background: #dcfce7; color: #166534; }
.harm-badge-low { background: #ecfccb; color: #3f6212; }
.harm-badge-medium { background: #fef3c7; color: #92400e; }
.harm-badge-high { background: #fee2e2; color: var(--danger); }
.harm-badge-critical { background: #ede9fe; color: #5b21b6; }


/* ============================================================
   CONFIDENCE BAR
   ============================================================ */

.confidence-bar {
    height: .5rem;
    background: var(--global-palette7);
    border-radius: 9999px;
    overflow: hidden;
}
.confidence-fill {
    height: 100%;
    border-radius: 9999px;
    transition: width .5s;
}
.confidence-fill.high { background: var(--harm-none); }
.confidence-fill.medium { background: var(--warning-light); }
.confidence-fill.low { background: var(--danger); }


/* ============================================================
   CHART TABLE (Poop Chart / Insect Identification Chart)
   ============================================================ */

.chart-table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    border-radius: 8px;
    overflow: hidden;
    background: var(--global-palette9);
    box-shadow: 0 2px 10px rgba(0, 0, 0, .06);
}
.chart-table thead th {
    background: var(--dark-section);
    color: var(--global-palette9);
    font-weight: 700;
    font-size: .85rem;
    text-transform: uppercase;
    letter-spacing: .03em;
    padding: .85rem 1rem;
    border: none;
    white-space: nowrap;
}
/* Green header variant (for insect identification chart) */
.chart-table.green-header thead th {
    background: var(--primary);
}
.chart-table tbody td {
    padding: .85rem 1rem;
    font-size: .875rem;
    vertical-align: middle;
    border-bottom: 1px solid var(--global-palette7);
    color: var(--global-palette4);
}
.chart-table tbody tr:last-child td {
    border-bottom: none;
}
.chart-table tbody tr:hover {
    background: rgba(4, 159, 130, .03);
}
.chart-table .insect-name-cell {
    font-weight: 700;
    color: var(--primary);
}
.chart-table .insect-emoji {
    font-size: 1.25rem;
    margin-right: .5rem;
}

/* Poop chart table (dark header variant kept for back-compat) */
.poop-chart-table thead th {
    background: var(--dark-section);
    color: var(--global-palette9);
    padding: .85rem 1rem;
    font-size: .85rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .03em;
}
.poop-chart-table tbody td {
    padding: .85rem 1rem;
    vertical-align: middle;
    border-bottom: 1px solid var(--global-palette7);
    font-size: .875rem;
}

/* Chart filter buttons */
.chart-filters {
    display: flex;
    gap: .5rem;
    margin-bottom: 1rem;
    flex-wrap: wrap;
}
.chart-filters .btn {
    border-radius: 6px;
    font-size: .85rem;
    padding: .4rem 1rem;
    font-weight: 600;
}
.chart-filters .btn.active {
    background: var(--primary);
    border-color: var(--primary);
    color: var(--global-palette9);
}

/* Filter buttons (standalone) */
.filter-btn {
    padding: .4rem 1rem;
    border-radius: 9999px;
    font-size: .85rem;
    font-weight: 600;
    border: 2px solid var(--global-palette7);
    background: var(--global-palette9);
    color: var(--global-palette5);
    cursor: pointer;
    transition: border-color .15s, color .15s, background-color .15s;
}
.filter-btn:hover {
    border-color: var(--primary);
    color: var(--primary);
}
.filter-btn.active {
    background: var(--primary);
    color: var(--global-palette9);
    border-color: var(--primary);
}


/* ============================================================
   PRODUCT CARDS
   ============================================================ */

.product-card {
    background: var(--global-palette9);
    border: 1px solid var(--global-palette7);
    border-radius: 10px;
    overflow: hidden;
    transition: box-shadow .2s, transform .2s;
    height: 100%;
}
.product-card:hover {
    box-shadow: 0 6px 20px rgba(0, 0, 0, .1);
    transform: translateY(-3px);
}
.product-card a {
    text-decoration: none;
    color: inherit;
}
.product-image img {
    width: 100%;
    height: 200px;
    object-fit: cover;
}
.product-info {
    padding: 1.25rem;
}
.product-name {
    font-weight: 700;
    color: var(--global-palette3);
    margin-bottom: .35rem;
    font-size: 1.05rem;
}
.product-rating .star { color: #d1d5db; }
.product-rating .star.filled { color: var(--warning-light); }
.product-price {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--primary);
    margin: .5rem 0;
}
.product-desc {
    color: var(--global-palette6);
    font-size: .875rem;
    margin-bottom: .75rem;
    line-height: 1.5;
}
.btn-affiliate {
    display: inline-block;
    background: var(--warning);
    color: var(--global-palette9);
    padding: .5rem 1rem;
    border-radius: 6px;
    font-weight: 600;
    font-size: .875rem;
    text-decoration: none;
    transition: background-color .2s;
}
.btn-affiliate:hover {
    background: var(--warning-light);
    color: var(--global-palette9);
}


/* ============================================================
   COMMON BUGS SECTION
   ============================================================ */

.bug-category-card {
    background: var(--global-palette9);
    border-radius: 10px;
    padding: 1.75rem;
    box-shadow: 0 2px 10px rgba(0, 0, 0, .05);
    height: 100%;
}
.bug-category-card h4 {
    font-weight: 700;
    color: var(--global-palette3);
    margin-bottom: .75rem;
}
.bug-category-card p {
    color: var(--global-palette6);
    font-size: .9rem;
    line-height: 1.6;
}


/* ============================================================
   INSECT CARD (listings)
   ============================================================ */

.insect-card {
    background: var(--global-palette9);
    border: 1px solid var(--global-palette7);
    border-radius: 10px;
    overflow: hidden;
    transition: box-shadow .2s, transform .2s;
    height: 100%;
}
.insect-card:hover {
    box-shadow: 0 6px 20px rgba(0, 0, 0, .1);
    transform: translateY(-2px);
}
.insect-card img {
    width: 100%;
    height: 180px;
    object-fit: cover;
}
.insect-card .card-body h3,
.insect-card .card-body h5 {
    font-weight: 700;
    color: var(--global-palette3);
}
.insect-card .card-body p {
    font-size: .875rem;
    color: var(--global-palette6);
    line-height: 1.5;
}


/* ============================================================
   FAQ ACCORDION
   ============================================================ */

.faq-item {
    border: 1px solid var(--global-palette7);
    border-radius: 8px;
    margin-bottom: .5rem;
    overflow: hidden;
    background: var(--global-palette9);
}
.faq-question {
    padding: 1.1rem 1.5rem;
    font-weight: 600;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: var(--global-palette9);
    transition: background-color .15s, color .15s;
    color: var(--global-palette3);
    font-size: 1rem;
    border: none;
    width: 100%;
    text-align: left;
}
.faq-question:hover {
    background: var(--global-palette8);
}
.faq-question .toggle-icon,
.faq-question .arrow {
    font-size: 1.25rem;
    font-weight: 700;
    transition: transform .2s;
    color: var(--global-palette6);
    flex-shrink: 0;
    margin-left: 1rem;
}

/* Active state: dark green header */
.faq-item.active .faq-question {
    background: var(--dark-section);
    color: var(--global-palette9);
}
.faq-item.active .faq-question .toggle-icon,
.faq-item.active .faq-question .arrow {
    color: var(--global-palette9);
    transform: rotate(180deg);
}
.faq-answer {
    padding: 0 1.5rem;
    max-height: 0;
    overflow: hidden;
    transition: max-height .3s, padding .3s;
    color: var(--global-palette5);
    line-height: 1.6;
}
.faq-item.active .faq-answer {
    padding: 1rem 1.5rem 1.25rem;
    max-height: 1000px;
}

/* FAQ v2 alias (same dark-green active style) */
.faq-item-v2 {
    border: 1px solid var(--global-palette7);
    border-radius: 8px;
    margin-bottom: .5rem;
    overflow: hidden;
}
.faq-item-v2 .faq-question {
    padding: 1.1rem 1.5rem;
    font-weight: 600;
    cursor: pointer;
    display: flex;
    justify-content: space-between;
    align-items: center;
    background: var(--global-palette9);
    transition: background-color .15s, color .15s;
    color: var(--global-palette3);
}
.faq-item-v2 .faq-question:hover { background: var(--global-palette8); }
.faq-item-v2.active .faq-question {
    background: var(--dark-section);
    color: var(--global-palette9);
}
.faq-item-v2 .faq-answer {
    padding: 0 1.5rem;
    max-height: 0;
    overflow: hidden;
    transition: max-height .3s, padding .3s;
    color: var(--global-palette5);
}
.faq-item-v2.active .faq-answer {
    padding: 1rem 1.5rem 1.25rem;
    max-height: 1000px;
}
.faq-item-v2 .faq-toggle {
    font-size: 1.25rem;
    transition: transform .2s;
}
.faq-item-v2.active .faq-toggle { transform: rotate(45deg); }


/* ============================================================
   EMERGENCY CTA
   ============================================================ */

.emergency-cta {
    background: linear-gradient(135deg, #fee2e2, #fef2f2);
    border: 2px solid #fecaca;
    border-radius: 12px;
    padding: 2rem;
    text-align: center;
    margin: 2rem 0;
}
.emergency-cta .cta-icon { font-size: 3rem; }
.emergency-cta h3 {
    color: var(--danger);
    font-size: 1.5rem;
    font-weight: 700;
    margin: .5rem 0;
}
.emergency-cta p {
    color: #7f1d1d;
    margin-bottom: 1rem;
}
.emergency-cta .cta-note {
    font-size: .75rem;
    color: var(--global-palette6);
    margin-top: .5rem;
}


/* ============================================================
   LEAD FORM
   ============================================================ */

.lead-form-container {
    background: var(--global-palette9);
    border: 1px solid var(--global-palette7);
    border-radius: 12px;
    padding: 2rem;
    box-shadow: 0 2px 8px rgba(0, 0, 0, .04);
}
.lead-form-container h3 {
    font-weight: 700;
    color: var(--global-palette3);
    margin-bottom: .5rem;
}


/* ============================================================
   NEWSLETTER FORM
   ============================================================ */

.newsletter-form-container {
    background: rgba(4, 159, 130, .06);
    border-radius: 10px;
    padding: 1.75rem;
}
.newsletter-form-container h4 {
    font-weight: 700;
    color: var(--global-palette3);
    margin-bottom: .25rem;
}


/* ============================================================
   REPORT CTA
   ============================================================ */

.report-cta {
    background: #f0fdf4;
    border: 1px solid #bbf7d0;
    border-radius: 10px;
    padding: 1.5rem;
}
.report-cta h4 {
    font-weight: 600;
    color: var(--success);
}


/* ============================================================
   STAT CARDS
   ============================================================ */

.stat-card {
    background: var(--global-palette9);
    border: 1px solid var(--global-palette7);
    border-radius: 10px;
    padding: 1.5rem;
    border-left: 4px solid var(--primary);
    box-shadow: 0 2px 8px rgba(0, 0, 0, .04);
}
.stat-card .stat-value {
    font-size: 2rem;
    font-weight: 700;
    color: var(--global-palette3);
}
.stat-card .stat-label {
    font-size: .875rem;
    color: var(--global-palette6);
}


/* ============================================================
   STATUS BADGES
   ============================================================ */

.status-badge {
    padding: .25rem .625rem;
    border-radius: 9999px;
    font-size: .75rem;
    font-weight: 600;
}
.status-published, .status-active, .status-converted { background: #dcfce7; color: var(--success); }
.status-draft { background: #f3f4f6; color: var(--global-palette6); }
.status-archived, .status-unsubscribed { background: #fee2e2; color: var(--danger); }
.status-new { background: #dbeafe; color: var(--info); }
.status-contacted { background: #fef3c7; color: #92400e; }
.status-closed { background: #f3f4f6; color: var(--global-palette6); }


/* ============================================================
   ADMIN LAYOUT
   ============================================================ */

.admin-sidebar {
    width: 250px;
    background: var(--dark-section);
    min-height: 100vh;
    position: fixed;
    left: 0;
    top: 0;
    padding-top: 1rem;
    z-index: 100;
}
.admin-sidebar a {
    display: block;
    padding: .75rem 1.5rem;
    color: #94a3b8;
    text-decoration: none;
    font-size: .875rem;
    transition: background-color .15s, color .15s;
}
.admin-sidebar a:hover,
.admin-sidebar a.active {
    color: var(--global-palette9);
    background: rgba(255, 255, 255, .1);
}
.admin-sidebar .sidebar-header {
    padding: 1rem 1.5rem;
    color: var(--highlight);
    font-weight: 700;
    font-size: 1.25rem;
    border-bottom: 1px solid rgba(255, 255, 255, .1);
    margin-bottom: .5rem;
}
.admin-sidebar .sidebar-section {
    padding: .5rem 1.5rem;
    color: var(--global-palette6);
    font-size: .75rem;
    text-transform: uppercase;
    letter-spacing: .05em;
    margin-top: .5rem;
}
.admin-content {
    margin-left: 250px;
    padding: 2rem;
}
.admin-topbar {
    background: var(--global-palette9);
    border-bottom: 1px solid var(--global-palette7);
    padding: 1rem 2rem;
    margin-left: 250px;
    display: flex;
    justify-content: space-between;
    align-items: center;
}

@media (max-width: 768px) {
    .admin-sidebar {
        width: 100%;
        position: relative;
        min-height: auto;
    }
    .admin-content,
    .admin-topbar {
        margin-left: 0;
    }
}


/* ============================================================
   DATA TABLES (Admin)
   ============================================================ */

.table thead th {
    background: var(--global-palette8);
    font-weight: 600;
    font-size: .875rem;
    color: var(--global-palette5);
    border-bottom: 2px solid var(--global-palette7);
}
.table td {
    font-size: .875rem;
    vertical-align: middle;
}


/* ============================================================
   AD CONTAINER
   ============================================================ */

.ad-container {
    margin: 1.5rem 0;
    text-align: center;
    min-height: 90px;
}


/* ============================================================
   INTERNAL LINKS SECTION
   ============================================================ */

.internal-links a {
    color: var(--primary);
    text-decoration: none;
    border-bottom: 1px dashed var(--primary);
}
.internal-links a:hover {
    border-bottom-style: solid;
    color: var(--primary-dark);
}


/* ============================================================
   FOOTER
   ============================================================ */

.site-footer {
    background: var(--dark-section);
    color: #b0b8b1;
    padding: 3.5rem 0 0;
}
.site-footer h5 {
    color: var(--global-palette9);
    font-weight: 700;
    margin-bottom: 1.25rem;
    text-transform: uppercase;
    font-size: .95rem;
    letter-spacing: .03em;
}
.site-footer p {
    color: #b0b8b1;
    font-size: .9rem;
    line-height: 1.6;
}
.site-footer a {
    color: #b0b8b1;
    text-decoration: none;
    transition: color .15s;
}
.site-footer a:hover {
    color: var(--primary);
}
.site-footer ul {
    list-style: none;
    padding: 0;
    margin: 0;
}
.site-footer ul li {
    margin-bottom: .5rem;
}
.site-footer ul li a {
    font-size: .9rem;
}
.site-footer .footer-brand {
    color: var(--highlight);
    font-size: 1.5rem;
    font-weight: 700;
}
.site-footer .social-icons {
    display: flex;
    gap: .75rem;
}
.site-footer .social-icons a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 8px;
    background: rgba(255, 255, 255, .1);
    color: var(--global-palette9);
    font-size: 1.1rem;
    transition: background-color .2s, color .2s;
}
.site-footer .social-icons a:hover {
    background: var(--primary);
    color: var(--global-palette9);
}

.footer-bottom {
    margin-top: 2.5rem;
    padding: 1.25rem 0;
    border-top: 2px solid var(--primary);
    text-align: center;
}
.footer-bottom p {
    color: #8a918b;
    font-size: .85rem;
    margin: 0;
}


/* ============================================================
   SCROLLBAR (Webkit)
   ============================================================ */

::-webkit-scrollbar {
    width: 8px;
}
::-webkit-scrollbar-track {
    background: var(--global-palette8);
}
::-webkit-scrollbar-thumb {
    background: #c4c4c4;
    border-radius: 4px;
}
::-webkit-scrollbar-thumb:hover {
    background: #a0a0a0;
}


/* ============================================================
   RESPONSIVE
   ============================================================ */

@media (max-width: 991.98px) {
    .section-bar {
        font-size: 1.15rem;
        padding: .85rem 1rem;
    }
    .step-card {
        margin-bottom: 1rem;
    }
}

@media (max-width: 767.98px) {
    .chart-table {
        display: block;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
    }
    .hero-section h1 {
        font-size: 1.75rem;
    }
    .section-bar {
        font-size: 1.05rem;
    }
    .upload-zone {
        padding: 2rem 1rem;
    }
    .green-border-box {
        padding: 1rem 1.25rem;
    }
    .site-footer {
        text-align: center;
    }
    .site-footer .social-icons {
        justify-content: center;
    }
}


/* ============================================================
   PRINT
   ============================================================ */

@media print {
    .navbar,
    .admin-sidebar,
    .admin-topbar,
    .ad-container,
    .newsletter-form-container,
    .lead-form-container,
    .site-footer {
        display: none !important;
    }
    .admin-content {
        margin-left: 0;
    }
    .section-bar {
        background: #333 !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }
}
