/* ==========================================================================
   ROBOVATIONS BLOCK SHARED STYLES
   ========================================================================== */

[class^="rv-"],
[class*=" rv-"] {
    box-sizing: border-box;
}

/* App Callout (shared across archive + single pages) */
.rv-app-callout {
    color: var(--rv-text-secondary);
    font-style: italic;
}

.rv-app-callout a {
    color: var(--rv-brand-accent);
    font-weight: 600;
    font-style: normal;
}

.rv-card {
    background: var(--rv-surface-primary);
    border: 1px solid var(--rv-border-primary);
    border-radius: var(--rv-card-radius);
    overflow: hidden;
}

[class$="--notice"] {
    padding: 16px 20px;
    background: var(--rv-overhyped-bg);
    border: 1px solid var(--rv-overhyped);
    border-radius: 8px;
    color: var(--rv-notice-text);
    font-size: var(--rv-text-md);
}

/* ==========================================================================
   UNIFIED BADGE SYSTEM
   Standard: 12px uppercase, 600 weight, 4px radius, no border.
   Matches the post-type badge pattern site-wide.
   Variant classes set only background + color via --rv-badge-*-bg/fg vars.
   ========================================================================== */

.rv-badge,
.rv-type-badge,
.rv-entry-type-badge,
.rv-progress-badge,
.rv-progress-category-badge,
.rv-outlook-section-badge,
.rv-status-pill,
.rv-net-impact-chip,
.rv-featured-badge,
.rv-sidebar-list__badge,
.rv-sidebar-list__rating {
    display: inline-block;
    font-size: var(--rv-text-xs);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    padding: 0.25rem 0.5rem;
    border-radius: 4px;
    white-space: nowrap;
    line-height: 1.4;
    border: none;
}

/* Default neutral appearance (overridden by variant classes) */
.rv-badge,
.rv-sidebar-list__badge {
    background: var(--rv-surface-tertiary);
    color: var(--rv-text-secondary);
}

.rv-sidebar-list__badge,
.rv-sidebar-list__rating {
    text-transform: none;
    letter-spacing: normal;
}

/* --- Entry Type Badges --- */
.rv-entry-type-badge {
    background: var(--rv-badge-news-bg);
    color: var(--rv-badge-news-fg);
}
.rv-entry-type-badge--announcement {
    background: var(--rv-badge-announcement-bg);
    color: var(--rv-badge-announcement-fg);
}
.rv-entry-type-badge--demo {
    background: var(--rv-badge-demo-bg);
    color: var(--rv-badge-demo-fg);
}
.rv-entry-type-badge--release {
    background: var(--rv-badge-release-bg);
    color: var(--rv-badge-release-fg);
}
.rv-entry-type-badge--update {
    background: var(--rv-badge-update-bg);
    color: var(--rv-badge-update-fg);
}
.rv-entry-type-badge--assessment_change {
    background: var(--rv-badge-assessment-bg);
    color: var(--rv-badge-assessment-fg);
}
.rv-entry-type-badge--news {
    background: var(--rv-badge-news-bg);
    color: var(--rv-badge-news-fg);
}

/* --- Progress Rating Badges --- */
.rv-progress-badge {
    background: var(--rv-surface-tertiary);
    color: var(--rv-text-secondary);
}
.rv-progress-badge--major-advance {
    background: var(--rv-progress-major-bg);
    color: var(--rv-progress-major-fg);
}
.rv-progress-badge--incremental {
    background: var(--rv-progress-incremental-bg);
    color: var(--rv-progress-incremental-fg);
}
.rv-progress-badge--lateral {
    background: var(--rv-progress-lateral-bg);
    color: var(--rv-progress-lateral-fg);
}
.rv-progress-badge--setback {
    background: var(--rv-progress-setback-bg);
    color: var(--rv-progress-setback-fg);
}

/* --- Progress Category Badges --- */
.rv-progress-category-badge {
    background: var(--rv-surface-tertiary);
    color: var(--rv-text-secondary);
}
.rv-progress-category-badge--hardware {
    background: var(--rv-badge-hardware-bg);
    color: var(--rv-badge-hardware-fg);
}
.rv-progress-category-badge--software {
    background: var(--rv-badge-software-bg);
    color: var(--rv-badge-software-fg);
}
.rv-progress-category-badge--autonomy {
    background: var(--rv-badge-autonomy-bg);
    color: var(--rv-badge-autonomy-fg);
}
.rv-progress-category-badge--safety {
    background: var(--rv-badge-safety-bg);
    color: var(--rv-badge-safety-fg);
}
.rv-progress-category-badge--commercial {
    background: var(--rv-badge-commercial-bg);
    color: var(--rv-badge-commercial-fg);
}

/* --- Outlook Section Badges --- */
.rv-outlook-section-badge {
    background: var(--rv-badge-other-bg);
    color: var(--rv-badge-other-fg);
}
.rv-outlook-section-badge--market_analysis {
    background: var(--rv-badge-market-bg);
    color: var(--rv-badge-market-fg);
}
.rv-outlook-section-badge--technology_trends {
    background: var(--rv-badge-tech-bg);
    color: var(--rv-badge-tech-fg);
}
.rv-outlook-section-badge--product_readiness {
    background: var(--rv-badge-readiness-bg);
    color: var(--rv-badge-readiness-fg);
}
.rv-outlook-section-badge--category_spotlight {
    background: var(--rv-badge-spotlight-bg);
    color: var(--rv-badge-spotlight-fg);
}
.rv-outlook-section-badge--predictions {
    background: var(--rv-badge-predictions-bg);
    color: var(--rv-badge-predictions-fg);
}
.rv-outlook-section-badge--other {
    background: var(--rv-badge-other-bg);
    color: var(--rv-badge-other-fg);
}

/* --- Status Pill (product status taxonomy) --- */
.rv-status-pill {
    background: var(--rv-surface-tertiary);
    color: var(--rv-text-secondary);
    text-decoration: none;
}

/* --- Net Impact Chip --- */
.rv-net-impact-chip {
    background: var(--rv-badge-neutral-bg);
    color: var(--rv-badge-neutral-fg);
}
.rv-net-impact--positive {
    background: var(--rv-badge-positive-bg);
    color: var(--rv-badge-positive-fg);
}
.rv-net-impact--negative {
    background: var(--rv-badge-negative-bg);
    color: var(--rv-badge-negative-fg);
}
.rv-net-impact--neutral {
    background: var(--rv-badge-neutral-bg);
    color: var(--rv-badge-neutral-fg);
}

/* --- Featured Badge --- */
.rv-featured-badge {
    background: var(--rv-badge-product-bg);
    color: var(--rv-badge-product-fg);
}

/* --- Sidebar List Progress Ratings --- */
.rv-sidebar-list__rating {
    background: var(--rv-surface-tertiary);
    color: var(--rv-text-secondary);
}
.rv-sidebar-list__rating.rv-progress--major-advance {
    background: var(--rv-progress-major-bg);
    color: var(--rv-progress-major-fg);
}
.rv-sidebar-list__rating.rv-progress--incremental {
    background: var(--rv-progress-incremental-bg);
    color: var(--rv-progress-incremental-fg);
}
.rv-sidebar-list__rating.rv-progress--lateral {
    background: var(--rv-progress-lateral-bg);
    color: var(--rv-progress-lateral-fg);
}
.rv-sidebar-list__rating.rv-progress--setback {
    background: var(--rv-progress-setback-bg);
    color: var(--rv-progress-setback-fg);
}

/* --- Category Badge --- */
.rv-badge--category {
    background: var(--rv-surface-tertiary);
    color: var(--rv-text-secondary);
}

/* --- Compact size modifier (use on archive cards) --- */
.rv-entry-type-badge--sm,
.rv-progress-badge--sm,
.rv-progress-category-badge--sm {
    font-size: var(--rv-text-2xs);
    padding: 0.125rem 0.375rem;
}

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

.rv-status-badge {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 4px 10px;
    border-radius: var(--rv-badge-radius);
    font-size: var(--rv-text-xs);
    font-weight: 600;
    white-space: nowrap;
}

.rv-status-badge--ready-now {
    background: var(--rv-ready-now-bg);
    color: var(--rv-ready-now);
    border: 1px solid var(--rv-ready-now-border);
}

.rv-status-badge--promising-progress {
    background: var(--rv-promising-bg);
    color: var(--rv-promising);
    border: 1px solid var(--rv-promising-border);
}

.rv-status-badge--overhyped {
    background: var(--rv-overhyped-bg);
    color: var(--rv-overhyped);
    border: 1px solid var(--rv-overhyped-border);
}

.rv-status-badge--wait {
    background: var(--rv-wait-bg);
    color: var(--rv-wait);
    border: 1px solid var(--rv-wait-border);
}

.rv-status-badge--not-recommended {
    background: var(--rv-not-recommended-bg);
    color: var(--rv-not-recommended);
    border: 1px solid var(--rv-not-recommended-border);
}

/* ==========================================================================
   SCORE DISPLAY UTILITIES
   ========================================================================== */

.rv-score {
    display: inline-flex;
    align-items: baseline;
    font-weight: 700;
}

.rv-score__value {
    font-size: 1.5em;
}

.rv-score__max {
    font-size: 0.75em;
    color: var(--rv-text-muted);
    margin-left: 2px;
}

.rv-score-bar {
    height: 8px;
    background: var(--rv-surface-secondary);
    border-radius: 4px;
    overflow: hidden;
}

.rv-score-bar__fill {
    height: 100%;
    border-radius: 4px;
    transition: width 0.6s ease-out;
}

.rv-score--excellent { color: var(--rv-score-excellent); }
.rv-score--good { color: var(--rv-brand-accent); }
.rv-score--average { color: var(--rv-score-average); }
.rv-score--poor { color: var(--rv-score-poor); }

/* ==========================================================================
   COMPARISON TABLE BASE STYLES
   ========================================================================== */

.rv-table {
    width: 100%;
    border-collapse: collapse;
    font-size: var(--rv-text-md);
}

.rv-table th,
.rv-table td {
    padding: 12px 16px;
    text-align: left;
    border-bottom: 1px solid var(--rv-border-primary);
}

.rv-table th {
    background: var(--rv-surface-secondary);
    font-weight: 600;
    color: var(--rv-text-secondary);
    font-size: var(--rv-text-xs);
    text-transform: uppercase;
    letter-spacing: 0.5px;
}

.rv-table tr:hover td {
    background: var(--rv-brand-accent-subtle);
}

.rv-table__highlight {
    background: rgba(34, 197, 94, 0.08);
}

/* ==========================================================================
   BREADCRUMBS (used on all singles + archives)
   ========================================================================== */

.rv-breadcrumbs {
    margin-bottom: 1rem;
}

.rv-breadcrumbs ol {
    display: flex;
    flex-wrap: wrap;
    list-style: none;
    padding: 0;
    margin: 0;
    gap: 0;
    font-size: var(--rv-text-md);
    color: var(--rv-text-muted);
}

.rv-breadcrumbs li:not(:last-child)::after {
    content: "/";
    margin: 0 0.5rem;
    color: var(--rv-text-muted);
}

.rv-breadcrumbs a {
    color: var(--rv-text-secondary);
    text-decoration: none;
}

.rv-breadcrumbs a:hover {
    color: var(--rv-brand-accent);
    text-decoration: underline;
}

.rv-breadcrumbs [aria-current="page"] {
    color: var(--rv-text-muted);
}

/* ==========================================================================
   STANDARDIZED SECTION SPACING — single templates
   ========================================================================== */

.rv-article-content > .wp-block-group,
.rv-article-content > .wp-block-columns,
.rv-tracker-main > .wp-block-group,
.rv-review-sidebar > .wp-block-group {
    margin-bottom: 2.5rem !important;
}

.rv-article-content > .wp-block-group:last-child,
.rv-tracker-main > .wp-block-group:last-child {
    margin-bottom: 0 !important;
}

/* ==========================================================================
   SOCIAL SHARE — inline share links
   ========================================================================== */

.rv-social-share {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    padding: 0;
}

.rv-social-share__label {
    font-size: var(--rv-text-xs);
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--rv-text-muted, #9ca3af);
}

.rv-social-share__link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 32px;
    height: 32px;
    border-radius: 6px;
    border: 1px solid var(--rv-border-primary, #e5e7eb);
    color: var(--rv-text-secondary, #6b7280);
    background: var(--rv-surface-primary, #fff);
    transition: color 0.15s, border-color 0.15s, background 0.15s;
    text-decoration: none;
}

.rv-social-share__link:hover {
    color: var(--rv-brand-accent, #2563eb);
    border-color: var(--rv-brand-accent, #2563eb);
    background: var(--rv-brand-accent-subtle, #eff6ff);
}

/* Dark mode */
html[data-theme="dark"] .rv-social-share__link {
    background: var(--rv-surface-primary);
    border-color: var(--rv-border-primary);
    color: var(--rv-text-secondary);
}

html[data-theme="dark"] .rv-social-share__link:hover {
    color: var(--rv-brand-accent);
    border-color: var(--rv-brand-accent);
    background: var(--rv-brand-accent-subtle);
}

@media (prefers-color-scheme: dark) {
    html:not([data-theme="light"]) .rv-social-share__link {
        background: var(--rv-surface-primary);
        border-color: var(--rv-border-primary);
        color: var(--rv-text-secondary);
    }
    html:not([data-theme="light"]) .rv-social-share__link:hover {
        color: var(--rv-brand-accent);
        border-color: var(--rv-brand-accent);
        background: var(--rv-brand-accent-subtle);
    }
}

/* ==========================================================================
   COMBINED SINGLE FOOTER — byline + share + links in one section
   Rendered by [rv_single_footer] shortcode across all single templates.
   ========================================================================== */

.rv-single-footer {
    border-top: 1px solid var(--rv-border-primary, #e2e8f0);
    padding: 1.5rem 0 2rem;
    margin-top: 2rem;
}

.rv-single-footer .rv-social-share {
    padding: 0;
    margin: 0;
}

.rv-single-footer__top {
    display: flex;
    flex-wrap: wrap;
    justify-content: space-between;
    align-items: center;
    gap: 1rem;
}

.rv-single-footer__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1.5rem;
}

.rv-single-footer__author {
    font-size: var(--rv-text-md, 0.875rem);
    color: var(--rv-text-secondary, #475569);
}

.rv-single-footer__date {
    font-size: var(--rv-text-md, 0.875rem);
    color: var(--rv-text-muted, #64748b);
}

.rv-single-footer__links {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 1.5rem;
    margin-top: 1rem;
}

.rv-single-footer__link {
    font-size: var(--rv-text-md, 0.875rem);
    font-weight: 600;
}

.rv-single-footer__link a {
    color: var(--rv-brand-accent, #2563eb);
    text-decoration: none;
}

.rv-single-footer__link a:hover {
    text-decoration: underline;
}

.rv-single-footer__correction {
    font-size: var(--rv-text-xs, 0.75rem);
    font-style: italic;
    color: var(--rv-text-muted, #64748b);
    margin-left: auto;
}

.rv-single-footer__correction a {
    color: var(--rv-text-muted, #64748b);
    text-decoration: none;
}

.rv-single-footer__correction a:hover {
    text-decoration: underline;
    color: var(--rv-brand-accent, #2563eb);
}

@media (max-width: 600px) {
    .rv-single-footer__top {
        flex-direction: column;
        align-items: flex-start;
    }

    .rv-single-footer__links {
        flex-direction: column;
        align-items: flex-start;
        gap: 0.75rem;
    }

    .rv-single-footer__correction {
        margin-left: 0;
    }
}

/* ==========================================================================
   STICKY SIDEBARS
   ========================================================================== */

/* Outlook TOC: column stretches, inner card is sticky (see single-outlook.css) */

