/**
 * Murphy Software Labs - Domain Validation (Opportunity Validation) Styles
 * US-023: Opportunity Validation Feature
 *
 * Prefix:  dr-val-*
 * Naming:  BEM (block__element--modifier)
 * Vars:    Reuses --color-*, --space-*, --radius-*, --shadow-*, --transition-fast
 */

/* =============================================================================
   Share Panel
   ============================================================================= */
.dr-val-share-panel {
    background: var(--color-surface, #fff);
    border: 1px solid var(--color-border, #e5e7eb);
    border-radius: 8px;
    padding: 12px 16px;
    margin-top: 8px;
    box-shadow: var(--shadow-sm);
}

.dr-val-share-panel__url-row {
    display: flex;
    gap: 8px;
    margin-bottom: 8px;
}

.dr-val-share-panel__input {
    flex: 1;
    padding: 6px 10px;
    font-size: 0.8125rem;
    border: 1px solid var(--color-border, #e5e7eb);
    border-radius: 4px;
    background: var(--color-background, #f9fafb);
    color: var(--color-text, #374151);
    font-family: monospace;
}

.dr-val-share-panel__meta {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

/* =============================================================================
   Report Tab Navigation
   ============================================================================= */
.dr-val-tabs {
    display: flex;
    gap: 0;
    border-bottom: 2px solid var(--color-border, #e5e7eb);
    margin-bottom: var(--space-lg, 16px);
}

.dr-val-tabs__tab {
    position: relative;
    padding: 10px 20px;
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--color-text-muted, #6b7280);
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
    cursor: pointer;
    white-space: nowrap;
    transition: color 150ms, border-color 150ms;
}

.dr-val-tabs__tab:hover {
    color: var(--color-text, #374151);
}

.dr-val-tabs__tab--active {
    color: var(--color-primary, #3b82f6);
    border-bottom-color: var(--color-primary, #3b82f6);
    font-weight: 600;
}

.dr-val-tabs__panel {
    display: none;
}

.dr-val-tabs__panel--active {
    display: block;
}

@media (max-width: 767px) {
    .dr-val-tabs__tab {
        padding: 8px 14px;
        font-size: 0.75rem;
    }
}

/* =============================================================================
   Spinner Animation
   ============================================================================= */
@keyframes dr-val-spin {
    from {
        transform: rotate(0deg);
    }

    to {
        transform: rotate(360deg);
    }
}

.dr-val-spinner {
    width: 24px;
    height: 24px;
    border: 3px solid var(--color-border);
    border-top-color: var(--color-primary);
    border-radius: 50%;
    animation: dr-val-spin 0.75s linear infinite;
}

/* =============================================================================
   Trigger Button (on opportunity cards)
   ============================================================================= */
.dr-val-trigger {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-xs);
    padding: var(--space-xs) var(--space-sm);
    border: 1px solid var(--color-primary);
    border-radius: var(--radius-md);
    background: transparent;
    color: var(--color-primary);
    font-size: 0.8125rem;
    font-weight: 500;
    font-family: inherit;
    cursor: pointer;
    white-space: nowrap;
    transition: background var(--transition-fast),
        color var(--transition-fast),
        border-color var(--transition-fast),
        box-shadow var(--transition-fast);
}

.dr-val-trigger:hover {
    background: var(--color-primary);
    color: #fff;
}

.dr-val-trigger:focus {
    outline: none;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.25);
}

.dr-val-trigger:disabled {
    opacity: 0.5;
    cursor: not-allowed;
    border-color: var(--color-border);
    color: var(--color-text-muted);
    background: var(--color-secondary);
}

.dr-val-trigger--validating {
    pointer-events: none;
    border-color: var(--color-primary);
    color: var(--color-primary);
    background: transparent;
}

.dr-val-trigger--validating::before {
    content: '';
    display: inline-block;
    width: 14px;
    height: 14px;
    border: 2px solid currentColor;
    border-top-color: transparent;
    border-radius: 50%;
    animation: dr-val-spin 0.75s linear infinite;
    flex-shrink: 0;
}

/* =============================================================================
   Status Indicator (during processing)
   ============================================================================= */
.dr-val-status {
    display: flex;
    flex-direction: column;
    gap: var(--space-sm);
    padding: var(--space-md);
    background: var(--color-secondary);
    border-radius: var(--radius-md);
}

.dr-val-status__progress {
    height: 6px;
    background: var(--color-border);
    border-radius: 3px;
    overflow: hidden;
}

.dr-val-status__progress-fill {
    height: 100%;
    background: var(--color-primary);
    border-radius: 3px;
    transition: width 0.4s ease;
}

.dr-val-status__text {
    font-size: 0.8125rem;
    color: var(--color-text-muted);
}

/* =============================================================================
   Small Spinner Variant (for inline button use)
   ============================================================================= */
.dr-spinner--sm {
    width: 14px;
    height: 14px;
    border-width: 2px;
    margin: 0;
    display: inline-block;
    vertical-align: middle;
}

/* =============================================================================
   Button Group & Validation Progress (inside opportunity cards)
   ============================================================================= */
.dr-val-btn-group {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    flex-wrap: wrap;
}

.dr-val-btn--validating {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    color: var(--color-primary);
    border-color: var(--color-primary);
    cursor: wait;
}

.dr-val-btn--complete {
    color: var(--color-primary);
    border-color: var(--color-primary);
}

.dr-val-btn--complete:hover {
    background: var(--color-primary);
    color: #fff;
}

.dr-val-btn-revalidate {
    color: var(--color-text-muted);
    border-color: var(--color-border);
}

.dr-val-btn-revalidate:hover {
    color: var(--color-text);
    border-color: var(--color-text-muted);
    background: var(--color-secondary);
}

.dr-val-report-container {
    margin-top: var(--space-sm);
}

.dr-val-report-container:empty {
    display: none;
}

/* Per-source progress list shown during validation */
.dr-val-progress {
    display: flex;
    flex-direction: column;
    gap: 4px;
    padding: var(--space-sm) var(--space-md);
    background: var(--color-secondary);
    border-radius: var(--radius-md);
    margin-top: var(--space-sm);
}

.dr-val-progress__item {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    font-size: 0.8125rem;
    color: var(--color-text-muted);
    line-height: 1.6;
}

.dr-val-progress__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 16px;
    height: 16px;
    font-size: 0.6875rem;
    flex-shrink: 0;
}

.dr-val-progress__icon--done {
    color: var(--color-success);
    font-weight: 700;
}

.dr-val-progress__icon--fail {
    color: var(--color-error);
    font-weight: 700;
}

.dr-val-progress__icon--active {
    color: var(--color-primary);
    animation: dr-val-spin 1s linear infinite;
}

.dr-val-progress__icon--pending {
    color: var(--color-border);
}

.dr-val-progress__label {
    font-weight: 500;
    color: var(--color-text);
}

.dr-val-progress__error {
    font-size: 0.75rem;
    color: var(--color-error);
    margin-left: auto;
}

/* Error message shown on validation failure */
.dr-val-error {
    padding: var(--space-sm) var(--space-md);
    background: #fef2f2;
    border: 1px solid #fecaca;
    border-radius: var(--radius-md);
    color: var(--color-error);
    font-size: 0.8125rem;
    margin-top: var(--space-sm);
}

/* Loading state within report container */
.dr-val-loading {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: var(--space-sm);
    padding: var(--space-lg);
}

/* =============================================================================
   Report Container
   ============================================================================= */
.dr-val-report {
    /* No container styling — report lives inside dr-detail-grid on the dedicated page */
}

.dr-val-report__header {
    display: flex;
    align-items: center;
    gap: var(--space-lg);
    padding: var(--space-lg);
    border-bottom: 1px solid var(--color-border);
    flex-wrap: wrap;
}

/* Circular score gauge */
.dr-val-report__score {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 80px;
    height: 80px;
    border-radius: 50%;
    background: conic-gradient(var(--color-primary) calc(var(--score, 0) * 1%),
            var(--color-secondary) 0);
    flex-shrink: 0;
}

.dr-val-report__score::after {
    content: attr(data-score);
    display: flex;
    align-items: center;
    justify-content: center;
    width: 62px;
    height: 62px;
    border-radius: 50%;
    background: var(--color-surface);
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--color-text);
}

/* Verdict badge */
.dr-val-report__verdict {
    display: inline-block;
    padding: var(--space-xs) var(--space-sm);
    border-radius: var(--radius-sm);
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.dr-val-report__verdict--strong {
    background: #dcfce7;
    color: #16a34a;
}

.dr-val-report__verdict--moderate {
    background: #fef3c7;
    color: var(--color-warning);
}

.dr-val-report__verdict--weak {
    background: #fee2e2;
    color: var(--color-error);
}

/* Score breakdown mini bars in the header area */
.dr-val-report__breakdown {
    flex: 1;
    min-width: 200px;
    display: flex;
    flex-direction: column;
    gap: var(--space-xs);
}

.dr-val-report__meta {
    display: flex;
    gap: var(--space-md);
    flex-wrap: wrap;
    font-size: 0.8125rem;
    color: var(--color-text-muted);
    padding: var(--space-sm) var(--space-lg);
    border-bottom: 1px solid var(--color-border);
    background: var(--color-secondary);
}

/* =============================================================================
   Section Cards
   ============================================================================= */
.dr-val-section {
    padding: var(--space-lg);
    border-bottom: 1px solid var(--color-border);
}

.dr-val-section:last-child {
    border-bottom: none;
}

.dr-val-section__title {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
    font-size: 1rem;
    font-weight: 600;
    color: var(--color-text);
    margin: 0 0 var(--space-md);
}

.dr-val-section__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 22px;
    height: 22px;
    padding: 0 var(--space-xs);
    border-radius: 9999px;
    background: var(--color-secondary);
    color: var(--color-text-muted);
    font-size: 0.6875rem;
    font-weight: 600;
}

.dr-val-section__content {
    display: flex;
    flex-direction: column;
    gap: var(--space-md);
}

.dr-val-section__empty {
    text-align: center;
    padding: var(--space-lg);
    color: var(--color-text-muted);
    font-size: 0.875rem;
    font-style: italic;
}

.dr-val-section__loading {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: var(--space-sm);
    padding: var(--space-xl) 0;
    color: var(--color-text-muted);
}

.dr-val-empty {
    text-align: center;
    padding: var(--space-lg);
    color: var(--color-text-muted);
    font-size: 0.875rem;
}

/* =============================================================================
   Hot Thread Cards
   ============================================================================= */
.dr-val-thread-card {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    padding: var(--space-md) var(--space-lg);
    margin-bottom: var(--space-sm);
    display: grid;
    grid-template-columns: 1fr auto;
    grid-template-rows: auto auto auto;
    gap: 0 24px;
    transition: box-shadow var(--transition-fast),
        border-color var(--transition-fast);
}

.dr-val-thread-card:hover {
    box-shadow: var(--shadow-sm);
}

/* Removed :focus-within — caused distracting border flash when clicking comment toggles */

.dr-val-thread-card--highlighted {
    border-color: var(--color-primary);
    background: #eff6ff;
}

/* Left column: header row */
.dr-val-thread-card__header {
    grid-column: 1;
    grid-row: 1;
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 6px;
}

.dr-val-thread-card__header .dr-val-source-badge {
    flex-shrink: 0;
    margin-top: 2px;
}

.dr-val-thread-card__title {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--color-text);
    margin: 0;
    line-height: 1.4;
    flex: 1;
}

.dr-val-thread-card__title a {
    color: inherit;
    text-decoration: none;
}

.dr-val-thread-card__title a:hover {
    color: var(--color-primary);
    text-decoration: underline;
}

/* Left column: meta line */
.dr-val-thread-card__meta {
    grid-column: 1;
    grid-row: 2;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0;
    font-size: 0.75rem;
    color: var(--color-text-muted);
    margin-bottom: 4px;
}

.dr-val-thread-card__meta>span {
    display: inline-flex;
    align-items: center;
}

.dr-val-thread-card__meta>span:not(:last-child)::after {
    content: '\00B7';
    margin: 0 6px;
    color: var(--color-border, #d1d5db);
}

.dr-val-thread-card__meta .dr-val-verified-badge {
    margin-left: 0;
}

/* Right column: engagement stats + badges */
.dr-val-thread-card__engagement {
    grid-column: 2;
    grid-row: 1 / 3;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    justify-content: center;
    gap: 6px;
}

.dr-val-thread-card__metrics {
    font-size: 0.8rem;
    font-weight: 600;
    color: var(--color-text);
    text-align: right;
    white-space: nowrap;
}

/* Badges row within engagement column */
.dr-val-thread-card__engagement .dr-val-eng-badge,
.dr-val-thread-card__engagement .dr-val-intent-badge {
    white-space: nowrap;
}

/* Comments toggle: left-aligned, span full width of card grid */
.dr-val-comments-toggle,
.dr-val-comments-toggle:focus,
.dr-val-comments-toggle:focus-visible {
    grid-column: 1 / -1;
    justify-self: start;
    text-align: left;
    outline: none;
    box-shadow: none;
}

.dr-val-comments-list {
    grid-column: 1 / -1;
}

.dr-val-thread-card__body {
    grid-column: 1 / -1;
    font-size: 0.875rem;
    color: var(--color-text);
    line-height: 1.6;
}

/* Mobile: stack to single column */
@media (max-width: 600px) {
    .dr-val-thread-card {
        grid-template-columns: 1fr;
    }

    .dr-val-thread-card__engagement {
        grid-column: 1;
        grid-row: auto;
        flex-direction: row;
        flex-wrap: wrap;
        align-items: center;
        justify-content: flex-start;
        margin-top: 6px;
    }
}

/* =============================================================================
   Intent Badges
   ============================================================================= */
.dr-val-intent-badge {
    display: inline-block;
    padding: 2px var(--space-sm);
    border-radius: 9999px;
    font-size: 0.6875rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    white-space: nowrap;
    vertical-align: middle;
}

.dr-val-intent-badge--high {
    color: #fff;
    background: var(--color-success);
}

.dr-val-intent-badge--medium {
    color: #fff;
    background: var(--color-warning);
}

.dr-val-intent-badge--low {
    color: #666;
    background: #e5e7eb;
}

.dr-val-intent-badge--promo {
    color: #fff;
    background: var(--color-error);
}

/* =============================================================================
   Source Badges
   ============================================================================= */
.dr-val-source-badge {
    display: inline-block;
    padding: 2px var(--space-sm);
    border-radius: var(--radius-sm);
    font-size: 0.6875rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    white-space: nowrap;
    vertical-align: middle;
}

.dr-val-source-badge--reddit {
    background: #ff4500;
    color: #fff;
}

.dr-val-source-badge--x {
    background: #000;
    color: #fff;
}

.dr-val-source-badge--dataforseo {
    background: #2563eb;
    color: #fff;
}

.dr-val-source-badge--web {
    background: #6b7280;
    color: #fff;
}

/* =============================================================================
   Keyword Table
   ============================================================================= */
.dr-val-keyword-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.875rem;
}

.dr-val-keyword-table th {
    padding: var(--space-sm) var(--space-md);
    text-align: left;
    font-weight: 600;
    font-size: 0.75rem;
    color: var(--color-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.025em;
    background: var(--color-secondary);
    border-bottom: 1px solid var(--color-border);
}

.dr-val-keyword-table th:first-child {
    border-radius: var(--radius-sm) 0 0 0;
}

.dr-val-keyword-table th:last-child {
    border-radius: 0 var(--radius-sm) 0 0;
}

.dr-val-keyword-table td {
    padding: var(--space-sm) var(--space-md);
    border-bottom: 1px solid var(--color-border);
    color: var(--color-text);
    vertical-align: middle;
}

.dr-val-keyword-table tbody tr:last-child td {
    border-bottom: none;
}

.dr-val-keyword-table tbody tr:hover {
    background: var(--color-secondary);
}

/* =============================================================================
   PAA Questions List
   ============================================================================= */
.dr-val-paa-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.dr-val-paa-list__item {
    display: flex;
    align-items: flex-start;
    gap: var(--space-sm);
    padding: var(--space-sm) 0;
    border-bottom: 1px solid var(--color-border);
    font-size: 0.875rem;
    color: var(--color-text);
    line-height: 1.5;
}

.dr-val-paa-list__item:last-child {
    border-bottom: none;
}

.dr-val-paa-list__item::before {
    content: 'Q';
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 22px;
    height: 22px;
    border-radius: var(--radius-sm);
    background: var(--color-secondary);
    color: var(--color-text-muted);
    font-size: 0.6875rem;
    font-weight: 700;
    margin-top: 1px;
}

/* =============================================================================
   Content Gap Cards
   ============================================================================= */
.dr-val-gap-card {
    background: var(--color-surface, #fafafa);
    border: 1px solid var(--color-border, #e5e7eb);
    border-radius: var(--radius-md, 8px);
    padding: var(--space-md, 12px) var(--space-lg, 16px);
    transition: border-color var(--transition-fast, 150ms),
        box-shadow var(--transition-fast, 150ms);
}

.dr-val-gap-card:hover {
    box-shadow: var(--shadow-sm);
}

.dr-val-gap-card--strong {
    border-left: 3px solid var(--color-success, #22c55e);
}

/* Title: the question or topic */
.dr-val-gap-card__question,
.dr-val-gap-card__title {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--color-text, #374151);
    margin: 0 0 var(--space-xs, 4px);
    line-height: 1.45;
}

/* Body: evidence and suggestion text */
.dr-val-gap-card__evidence,
.dr-val-gap-card__body {
    font-size: 0.8125rem;
    color: var(--color-text-muted, #6b7280);
    line-height: 1.55;
    margin: 0;
}

/* =============================================================================
   Competitor Cards
   ============================================================================= */
.dr-val-competitor-card {
    border: 1px solid var(--color-border, #e5e7eb);
    border-radius: 8px;
    padding: var(--space-md, 12px) var(--space-lg, 16px);
    margin-bottom: var(--space-md, 12px);
    font-size: 0.875rem;
}

.dr-val-competitor-card:last-child {
    margin-bottom: 0;
}

.dr-val-competitor-card__domain {
    font-weight: 600;
    font-size: 0.9375rem;
    color: var(--color-text, #374151);
    word-break: break-all;
    margin-bottom: var(--space-sm, 8px);
}

.dr-val-competitor-card__domain a {
    color: var(--color-primary, #3b82f6);
    text-decoration: none;
}

.dr-val-competitor-card__domain a:hover {
    text-decoration: underline;
}

.dr-val-competitor-card__desc {
    font-size: 0.8125rem;
    color: var(--color-text-secondary, #4b5563);
    line-height: 1.5;
    margin: 0 0 var(--space-sm, 8px) 0;
}

.dr-val-competitor-card__cols {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-md, 12px);
}

.dr-val-competitor-card__col {
    border-radius: 6px;
    padding: var(--space-sm, 8px) var(--space-md, 12px);
}

.dr-val-competitor-card__col--strengths {
    background: rgba(220, 38, 38, 0.04);
    border: 1px solid rgba(220, 38, 38, 0.15);
}

.dr-val-competitor-card__col--weaknesses {
    background: rgba(22, 163, 74, 0.04);
    border: 1px solid rgba(22, 163, 74, 0.15);
}

.dr-val-competitor-card__col-label {
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: var(--space-xs, 4px);
}

.dr-val-competitor-card__col--strengths .dr-val-competitor-card__col-label {
    color: #dc2626;
}

.dr-val-competitor-card__col--weaknesses .dr-val-competitor-card__col-label {
    color: #16a34a;
}

.dr-val-competitor-card__col-list {
    margin: 0;
    padding-left: 16px;
    list-style: disc;
}

.dr-val-competitor-card__col-list li {
    margin-bottom: 3px;
    line-height: 1.45;
    font-size: 0.8125rem;
}

.dr-val-competitor-card__col--strengths .dr-val-competitor-card__col-list li {
    color: #b91c1c;
}

.dr-val-competitor-card__col--weaknesses .dr-val-competitor-card__col-list li {
    color: #15803d;
}

.dr-val-competitor-card__body {
    color: var(--color-text-secondary, #4b5563);
    line-height: 1.5;
    font-size: 0.875rem;
}

/* =============================================================================
   Review Product Cards
   ============================================================================= */
.dr-val-review-card {
    border: 1px solid var(--color-border, #e5e7eb);
    border-radius: var(--radius-md, 8px);
    padding: var(--space-md, 12px) var(--space-lg, 16px);
    margin-bottom: var(--space-sm, 8px);
}
.dr-val-review-card:last-child { margin-bottom: 0; }

.dr-val-review-card__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: var(--space-sm, 8px);
    margin-bottom: var(--space-xs, 4px);
}

.dr-val-review-card__title {
    font-weight: 600;
    font-size: 0.9375rem;
}
.dr-val-review-card__title a {
    color: var(--color-primary, #3b82f6);
    text-decoration: none;
}
.dr-val-review-card__title a:hover { text-decoration: underline; }

.dr-val-review-card__platform {
    font-size: 0.6875rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    padding: 2px 8px;
    border-radius: 4px;
    background: var(--color-bg-secondary, #f3f4f6);
    color: var(--color-text-secondary, #4b5563);
    white-space: nowrap;
    flex-shrink: 0;
}

.dr-val-review-card__stats {
    display: flex;
    gap: var(--space-md, 12px);
    font-size: 0.8125rem;
    color: var(--color-text-secondary, #4b5563);
    margin-bottom: var(--space-xs, 4px);
}

.dr-val-review-card__stat { white-space: nowrap; }
.dr-val-review-card__stat--pricing {
    font-weight: 500;
    color: var(--color-text, #111827);
}

.dr-val-review-card__desc {
    font-size: 0.8125rem;
    color: var(--color-text-secondary, #4b5563);
    line-height: 1.5;
    margin: 0;
}

/* =============================================================================
   Review Insight Cards
   ============================================================================= */
.dr-val-review-insight {
    border: 1px solid var(--color-border, #e5e7eb);
    border-radius: var(--radius-md, 8px);
    padding: var(--space-md, 12px) var(--space-lg, 16px);
    margin-bottom: var(--space-sm, 8px);
}
.dr-val-review-insight:last-child { margin-bottom: 0; }

.dr-val-review-insight__label {
    font-weight: 600;
    font-size: 0.8125rem;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-text-secondary, #4b5563);
    margin-bottom: var(--space-xs, 4px);
}

.dr-val-review-insight__list {
    margin: 0;
    padding-left: 18px;
    font-size: 0.8125rem;
    line-height: 1.6;
}
.dr-val-review-insight__list li { margin-bottom: 4px; }
.dr-val-review-insight__list li:last-child { margin-bottom: 0; }

.dr-val-review-insight__body {
    font-size: 0.8125rem;
    color: var(--color-text-secondary, #4b5563);
    line-height: 1.5;
    margin: 0;
}

/* =============================================================================
   Ship It Tab — CTA & Plan Styles
   ============================================================================= */
.dr-val-shipit-cta {
    text-align: center;
    padding: var(--space-2xl, 32px) var(--space-lg, 16px);
}
.dr-val-shipit-cta__icon {
    font-size: 2.5rem;
    margin-bottom: var(--space-sm, 8px);
}
.dr-val-shipit-cta__title {
    font-size: 1.25rem;
    font-weight: 700;
    margin: 0 0 var(--space-sm, 8px) 0;
}
.dr-val-shipit-cta__desc {
    color: var(--color-text-secondary, #4b5563);
    font-size: 0.9375rem;
    max-width: 500px;
    margin: 0 auto var(--space-lg, 16px) auto;
    line-height: 1.5;
}
.dr-val-shipit-cta__btn {
    display: inline-block;
    padding: var(--space-sm, 8px) var(--space-xl, 24px);
    background: var(--color-primary, #3b82f6);
    color: #fff;
    border: none;
    border-radius: var(--radius-md, 8px);
    font-size: 1rem;
    font-weight: 600;
    cursor: pointer;
    transition: background 0.15s;
}
.dr-val-shipit-cta__btn:hover {
    background: var(--color-primary-dark, #2563eb);
}

/* Section containers */
.dr-val-shipit-section {
    margin-bottom: var(--space-xl, 24px);
}
.dr-val-shipit-section__title {
    font-size: 1rem;
    font-weight: 700;
    margin: 0 0 var(--space-md, 12px) 0;
    color: var(--color-text, #111827);
}

/* Funnel recommendation */
.dr-val-shipit-funnel {
    border: 1px solid var(--color-border, #e5e7eb);
    border-radius: var(--radius-md, 8px);
    padding: var(--space-md, 12px) var(--space-lg, 16px);
}
.dr-val-shipit-funnel__header {
    display: flex;
    align-items: center;
    gap: var(--space-sm, 8px);
    margin-bottom: var(--space-sm, 8px);
}
.dr-val-shipit-funnel__badge {
    display: inline-block;
    padding: 2px 10px;
    background: var(--color-primary, #3b82f6);
    color: #fff;
    border-radius: 4px;
    font-size: 0.8125rem;
    font-weight: 700;
    letter-spacing: 0.03em;
}
.dr-val-shipit-funnel__name {
    font-weight: 600;
    font-size: 0.9375rem;
}
.dr-val-shipit-funnel__reasoning {
    color: var(--color-text-secondary, #4b5563);
    font-size: 0.875rem;
    line-height: 1.5;
    margin: 0;
}

/* One Thing grid */
.dr-val-shipit-onething {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--space-md, 12px);
}
.dr-val-shipit-onething__card {
    border: 1px solid var(--color-border, #e5e7eb);
    border-radius: var(--radius-md, 8px);
    padding: var(--space-md, 12px) var(--space-lg, 16px);
}
.dr-val-shipit-onething__label {
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--color-primary, #3b82f6);
    margin-bottom: var(--space-xs, 4px);
}
.dr-val-shipit-onething__value {
    font-size: 0.9375rem;
    font-weight: 600;
    margin-bottom: var(--space-xs, 4px);
}
.dr-val-shipit-onething__rationale {
    font-size: 0.8125rem;
    color: var(--color-text-secondary, #4b5563);
    line-height: 1.5;
    margin: 0 0 var(--space-sm, 8px) 0;
}
.dr-val-shipit-onething__first-action {
    font-size: 0.8125rem;
    color: var(--color-text-secondary, #4b5563);
    line-height: 1.4;
}
.dr-val-shipit-onething__skip-label {
    font-size: 0.75rem;
    font-weight: 600;
    color: var(--color-text-muted, #6b7280);
    margin-bottom: 2px;
}
.dr-val-shipit-onething__skip-list {
    margin: 0;
    padding-left: 16px;
    font-size: 0.75rem;
    color: var(--color-text-muted, #6b7280);
    line-height: 1.5;
}

/* MVP Scope */
.dr-val-shipit-scope {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-md, 12px);
}
.dr-val-shipit-scope__col {
    border: 1px solid var(--color-border, #e5e7eb);
    border-radius: var(--radius-md, 8px);
    padding: var(--space-md, 12px) var(--space-lg, 16px);
}
.dr-val-shipit-scope__col--build {
    border-color: #d1fae5;
    background: #f0fdf4;
}
.dr-val-shipit-scope__col--skip {
    border-color: #fecaca;
    background: #fef2f2;
}
.dr-val-shipit-scope__heading {
    font-size: 0.8125rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: var(--space-sm, 8px);
}
.dr-val-shipit-scope__col--build .dr-val-shipit-scope__heading { color: #065f46; }
.dr-val-shipit-scope__col--skip .dr-val-shipit-scope__heading { color: #991b1b; }
.dr-val-shipit-scope__list {
    list-style: none;
    margin: 0;
    padding: 0;
    font-size: 0.875rem;
    line-height: 1.6;
}
.dr-val-shipit-scope__list li { margin-bottom: 4px; }
.dr-val-shipit-scope__icon {
    display: inline-block;
    width: 18px;
    font-weight: 700;
}
.dr-val-shipit-scope__icon--check { color: #059669; }
.dr-val-shipit-scope__icon--x { color: #dc2626; }

/* Landing Page Blueprint */
.dr-val-shipit-landing {
    border: 1px solid var(--color-border, #e5e7eb);
    border-radius: var(--radius-md, 8px);
    overflow: hidden;
}
.dr-val-shipit-landing__preview {
    padding: var(--space-xl, 24px);
    text-align: center;
    background: var(--color-bg-secondary, #f9fafb);
    border-bottom: 1px solid var(--color-border, #e5e7eb);
}
.dr-val-shipit-landing__headline {
    font-size: 1.25rem;
    font-weight: 700;
    margin: 0 0 var(--space-xs, 4px) 0;
}
.dr-val-shipit-landing__subheadline {
    color: var(--color-text-secondary, #4b5563);
    font-size: 0.9375rem;
    margin: 0 0 var(--space-md, 12px) 0;
}
.dr-val-shipit-landing__cta-preview {
    display: inline-block;
    padding: var(--space-sm, 8px) var(--space-lg, 16px);
    background: var(--color-primary, #3b82f6);
    color: #fff;
    border-radius: var(--radius-md, 8px);
    font-weight: 600;
    font-size: 0.875rem;
}
.dr-val-shipit-landing__proof {
    padding: var(--space-md, 12px) var(--space-lg, 16px);
}
.dr-val-shipit-landing__proof-label {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--color-text-muted, #6b7280);
    margin-bottom: var(--space-xs, 4px);
}
.dr-val-shipit-landing__proof ul {
    margin: 0;
    padding-left: 18px;
    font-size: 0.8125rem;
    line-height: 1.6;
}

/* Pricing */
.dr-val-shipit-pricing {
    border: 1px solid var(--color-border, #e5e7eb);
    border-radius: var(--radius-md, 8px);
    padding: var(--space-md, 12px) var(--space-lg, 16px);
}
.dr-val-shipit-pricing__header {
    display: flex;
    align-items: baseline;
    gap: var(--space-sm, 8px);
    margin-bottom: var(--space-xs, 4px);
}
.dr-val-shipit-pricing__price {
    font-size: 1.25rem;
    font-weight: 700;
    color: var(--color-primary, #3b82f6);
}
.dr-val-shipit-pricing__model {
    font-size: 0.8125rem;
    color: var(--color-text-muted, #6b7280);
}
.dr-val-shipit-pricing__reasoning {
    font-size: 0.8125rem;
    color: var(--color-text-secondary, #4b5563);
    line-height: 1.5;
    margin: 0;
}

/* Launch Checklist */
.dr-val-shipit-checklist {
    display: flex;
    flex-direction: column;
    gap: var(--space-sm, 8px);
}
.dr-val-shipit-checklist__step {
    display: flex;
    gap: var(--space-md, 12px);
    align-items: flex-start;
    border: 1px solid var(--color-border, #e5e7eb);
    border-radius: var(--radius-md, 8px);
    padding: var(--space-sm, 8px) var(--space-md, 12px);
}
.dr-val-shipit-checklist__number {
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-primary, #3b82f6);
    color: #fff;
    border-radius: 50%;
    font-size: 0.8125rem;
    font-weight: 700;
}
.dr-val-shipit-checklist__action {
    font-size: 0.9375rem;
    font-weight: 600;
}
.dr-val-shipit-checklist__detail {
    font-size: 0.8125rem;
    color: var(--color-text-secondary, #4b5563);
    line-height: 1.4;
    margin: 2px 0 0 0;
}

/* Risks */
.dr-val-shipit-risks {
    display: flex;
    flex-direction: column;
    gap: var(--space-sm, 8px);
}
.dr-val-shipit-risk {
    border: 1px solid var(--color-border, #e5e7eb);
    border-radius: var(--radius-md, 8px);
    padding: var(--space-md, 12px) var(--space-lg, 16px);
}
.dr-val-shipit-risk__label {
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #dc2626;
    margin-bottom: 2px;
}
.dr-val-shipit-risk__label--mitigation {
    color: #059669;
    margin-top: var(--space-sm, 8px);
}
.dr-val-shipit-risk__text {
    font-size: 0.8125rem;
    color: var(--color-text-secondary, #4b5563);
    line-height: 1.5;
    margin: 0;
}

/* Spirit — core insight quote */
.dr-val-shipit-spirit {
    border-left: 4px solid var(--color-primary, #3b82f6);
    background: var(--color-bg-secondary, #f9fafb);
    border-radius: 0 var(--radius-md, 8px) var(--radius-md, 8px) 0;
    padding: var(--space-lg, 16px) var(--space-xl, 24px);
}
.dr-val-shipit-spirit__label {
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: var(--color-primary, #3b82f6);
    margin-bottom: var(--space-xs, 4px);
}
.dr-val-shipit-spirit__quote {
    font-size: 1.125rem;
    font-style: italic;
    font-weight: 500;
    line-height: 1.6;
    color: var(--color-text, #111827);
    margin: 0;
    padding: 0;
    border: none;
}

/* Funnel Pages — page-by-page funnel design */
.dr-val-shipit-funnel-pages {
    display: flex;
    flex-direction: column;
    gap: var(--space-sm, 8px);
}
.dr-val-shipit-funnel-page {
    border: 1px solid var(--color-border, #e5e7eb);
    border-radius: var(--radius-md, 8px);
    padding: var(--space-md, 12px) var(--space-lg, 16px);
}
.dr-val-shipit-funnel-page__header {
    display: flex;
    align-items: center;
    gap: var(--space-sm, 8px);
    margin-bottom: var(--space-xs, 4px);
}
.dr-val-shipit-funnel-page__number {
    flex-shrink: 0;
    width: 28px;
    height: 28px;
    display: flex;
    align-items: center;
    justify-content: center;
    background: var(--color-primary, #3b82f6);
    color: #fff;
    border-radius: 50%;
    font-size: 0.8125rem;
    font-weight: 700;
}
.dr-val-shipit-funnel-page__name {
    font-weight: 600;
    font-size: 0.9375rem;
}
.dr-val-shipit-funnel-page__purpose {
    font-size: 0.8125rem;
    color: var(--color-text-secondary, #4b5563);
    line-height: 1.5;
    margin: 0 0 var(--space-sm, 8px) 0;
}
.dr-val-shipit-funnel-page__content {
    margin: 0 0 var(--space-sm, 8px) 0;
    padding-left: 18px;
    font-size: 0.8125rem;
    line-height: 1.6;
}
.dr-val-shipit-funnel-page__content li { margin-bottom: 2px; }
.dr-val-shipit-funnel-page__free-locked {
    font-size: 0.8125rem;
    color: var(--color-text-secondary, #4b5563);
    padding: var(--space-xs, 4px) var(--space-sm, 8px);
    background: #fef3c7;
    border-radius: 4px;
    margin-bottom: var(--space-xs, 4px);
}
.dr-val-shipit-funnel-page__free-locked-label {
    font-weight: 600;
    color: #92400e;
}
.dr-val-shipit-funnel-page__cta {
    font-size: 0.8125rem;
    color: var(--color-text-secondary, #4b5563);
}

/* Scope Detail — categories and scenarios */
.dr-val-shipit-scope-detail {
    border: 1px solid var(--color-border, #e5e7eb);
    border-radius: var(--radius-md, 8px);
    padding: var(--space-md, 12px) var(--space-lg, 16px);
}
.dr-val-shipit-scope-detail__category {
    margin-bottom: var(--space-md, 12px);
}
.dr-val-shipit-scope-detail__category:last-child { margin-bottom: 0; }
.dr-val-shipit-scope-detail__name {
    font-size: 0.875rem;
    font-weight: 600;
    margin-bottom: var(--space-xs, 4px);
}
.dr-val-shipit-scope-detail__scenarios {
    display: flex;
    flex-direction: column;
    gap: 0;
    padding-left: 20px;
    list-style: none;
}
.dr-val-shipit-scope-detail__scenario {
    display: list-item;
    list-style-type: disc;
    font-size: 0.8125rem;
    line-height: 1.6;
    padding: 0;
    color: var(--color-text-secondary, #4b5563);
}
.dr-val-shipit-scope-detail__summary {
    margin-top: var(--space-md, 12px);
    padding-top: var(--space-sm, 8px);
    border-top: 1px solid var(--color-border, #e5e7eb);
    font-size: 0.8125rem;
    color: var(--color-text-muted, #6b7280);
    font-style: italic;
}

/* File Structure — code-block style */
.dr-val-shipit-file-structure {
    background: #1e293b;
    color: #e2e8f0;
    border-radius: var(--radius-md, 8px);
    padding: var(--space-lg, 16px);
    font-family: 'SF Mono', 'Fira Code', 'Cascadia Code', 'Courier New', monospace;
    font-size: 0.8125rem;
    line-height: 1.6;
}
.dr-val-shipit-file-structure__group {
    margin-bottom: var(--space-md, 12px);
}
.dr-val-shipit-file-structure__group:last-child { margin-bottom: 0; }
.dr-val-shipit-file-structure__group-label {
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #94a3b8;
    margin-bottom: var(--space-xs, 4px);
}
.dr-val-shipit-file-structure__item {
    padding-left: var(--space-md, 12px);
    color: #e2e8f0;
}
.dr-val-shipit-file-structure__item::before {
    content: '\251C\2500\2500 ';
    color: #64748b;
}
.dr-val-shipit-file-structure__summary {
    margin-top: var(--space-md, 12px);
    padding-top: var(--space-sm, 8px);
    border-top: 1px solid #334155;
    color: #94a3b8;
    font-size: 0.75rem;
}

/* Share-ability Strategy */
.dr-val-shipit-share {
    display: flex;
    flex-direction: column;
    gap: var(--space-sm, 8px);
}
.dr-val-shipit-share__card {
    border: 1px solid var(--color-border, #e5e7eb);
    border-radius: var(--radius-md, 8px);
    padding: var(--space-md, 12px) var(--space-lg, 16px);
}
.dr-val-shipit-share__mechanism {
    font-size: 0.875rem;
    font-weight: 600;
    margin-bottom: var(--space-xs, 4px);
}
.dr-val-shipit-share__description {
    font-size: 0.8125rem;
    color: var(--color-text-secondary, #4b5563);
    line-height: 1.5;
    margin: 0;
}

/* Growth Phases — roadmap */
.dr-val-shipit-phases {
    display: flex;
    flex-direction: column;
    gap: var(--space-md, 12px);
}
.dr-val-shipit-phase {
    border: 1px solid var(--color-border, #e5e7eb);
    border-radius: var(--radius-md, 8px);
    overflow: hidden;
}
.dr-val-shipit-phase__header {
    display: flex;
    align-items: center;
    gap: var(--space-sm, 8px);
    padding: var(--space-sm, 8px) var(--space-lg, 16px);
    background: var(--color-bg-secondary, #f9fafb);
    border-bottom: 1px solid var(--color-border, #e5e7eb);
}
.dr-val-shipit-phase__number {
    font-size: 0.8125rem;
    font-weight: 700;
    color: var(--color-primary, #3b82f6);
}
.dr-val-shipit-phase__name {
    font-size: 0.9375rem;
    font-weight: 600;
    flex: 1;
}
.dr-val-shipit-phase__timeline {
    font-size: 0.75rem;
    color: var(--color-text-muted, #6b7280);
    font-style: italic;
}
.dr-val-shipit-phase__body {
    padding: var(--space-md, 12px) var(--space-lg, 16px);
}
.dr-val-shipit-phase__row {
    font-size: 0.8125rem;
    color: var(--color-text-secondary, #4b5563);
    line-height: 1.5;
    margin-bottom: var(--space-xs, 4px);
}
.dr-val-shipit-phase__row:last-child { margin-bottom: 0; }
.dr-val-shipit-phase__gate {
    padding: var(--space-sm, 8px) var(--space-lg, 16px);
    background: #fffbeb;
    border-top: 1px solid #fde68a;
}
.dr-val-shipit-phase__gate-label {
    font-size: 0.6875rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #92400e;
    margin-bottom: 2px;
}
.dr-val-shipit-phase__gate-text {
    font-size: 0.8125rem;
    color: #78350f;
    line-height: 1.5;
    margin: 0;
}

/* Footer: regenerate + timestamp */
/* --- Ship It Sub-tab Navigation + Actions Row --- */
.dr-val-shipit-subtabs {
    display: flex;
    align-items: center;
    justify-content: space-between;
    border-bottom: 2px solid var(--color-border, #e5e7eb);
    margin-bottom: var(--space-md, 12px);
    position: sticky;
    top: 0;
    background: var(--color-bg-primary, #fff);
    z-index: 10;
}
.dr-val-shipit-subtabs__tabs {
    display: flex;
    gap: 0;
}
.dr-val-shipit-subtabs__actions {
    display: flex;
    gap: 6px;
    align-items: center;
    padding: 4px 0;
}
.dr-val-shipit-subtab {
    padding: 10px 16px;
    background: transparent;
    border: none;
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--color-text-secondary, #6b7280);
    cursor: pointer;
    transition: color 0.15s, border-color 0.15s;
    white-space: nowrap;
}
.dr-val-shipit-subtab:hover {
    color: var(--color-text-primary, #111827);
}
.dr-val-shipit-subtab--active {
    color: var(--color-primary, #2563eb);
    border-bottom-color: var(--color-primary, #2563eb);
    font-weight: 600;
}

/* --- Unified Action Buttons (right side of tab row) --- */
.dr-val-shipit-action-btn {
    display: inline-block;
    padding: 5px 12px;
    background: transparent;
    border: 1px solid var(--color-border, #e5e7eb);
    border-radius: var(--radius-md, 8px);
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--color-text-secondary, #4b5563);
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s, color 0.15s;
    text-decoration: none;
    white-space: nowrap;
}
.dr-val-shipit-action-btn:hover {
    background: var(--color-bg-secondary, #f3f4f6);
    border-color: var(--color-text-muted, #9ca3af);
    color: var(--color-text-primary, #111827);
    text-decoration: none;
}

/* --- Ship It Sub-panels (show/hide) --- */
.dr-val-shipit-subpanel {
    display: none;
}
.dr-val-shipit-subpanel--active {
    display: block;
}

@media (max-width: 768px) {
    .dr-val-shipit-subtabs {
        flex-direction: column;
        gap: 8px;
    }
    .dr-val-shipit-subtabs__tabs {
        flex-wrap: wrap;
    }
    .dr-val-shipit-subtabs__actions {
        flex-wrap: wrap;
        padding-bottom: 8px;
    }
}

/* --- Legacy footer (kept for backward compat, now unused) --- */
.dr-val-shipit-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-top: var(--space-md, 12px);
    border-top: 1px solid var(--color-border, #e5e7eb);
    margin-top: var(--space-md, 12px);
}
.dr-val-shipit-regen {
    padding: var(--space-xs, 4px) var(--space-md, 12px);
    background: transparent;
    border: 1px solid var(--color-border, #e5e7eb);
    border-radius: var(--radius-md, 8px);
    font-size: 0.8125rem;
    color: var(--color-text-secondary, #4b5563);
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
}
.dr-val-shipit-regen:hover {
    background: var(--color-bg-secondary, #f3f4f6);
    border-color: var(--color-text-muted, #9ca3af);
}
.dr-val-shipit-timestamp {
    font-size: 0.75rem;
    color: var(--color-text-muted, #6b7280);
}

/* --- Engineering Brief Button & Display --- */
.dr-val-shipit-brief {
    padding: var(--space-xs, 4px) var(--space-md, 12px);
    background: var(--color-primary, #2563eb);
    border: 1px solid var(--color-primary, #2563eb);
    border-radius: var(--radius-md, 8px);
    font-size: 0.8125rem;
    color: #fff;
    cursor: pointer;
    transition: background 0.15s, border-color 0.15s;
    margin-left: var(--space-sm, 8px);
}
.dr-val-shipit-brief:hover {
    background: var(--color-primary-dark, #1d4ed8);
    border-color: var(--color-primary-dark, #1d4ed8);
}
.dr-val-shipit-brief-display {
    margin-top: var(--space-lg, 16px);
    border: 1px solid var(--color-border, #e5e7eb);
    border-radius: var(--radius-md, 8px);
    overflow: hidden;
}
.dr-val-shipit-brief-display__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: var(--space-sm, 8px) var(--space-md, 12px);
    background: var(--color-bg-secondary, #f3f4f6);
    border-bottom: 1px solid var(--color-border, #e5e7eb);
}
.dr-val-shipit-brief-display__title {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--color-text-primary, #111827);
    margin: 0;
}
.dr-val-shipit-brief-copy {
    padding: var(--space-xs, 4px) var(--space-sm, 8px);
    background: transparent;
    border: 1px solid var(--color-border, #e5e7eb);
    border-radius: var(--radius-sm, 4px);
    font-size: 0.75rem;
    color: var(--color-text-secondary, #4b5563);
    cursor: pointer;
    transition: background 0.15s, color 0.15s;
}
.dr-val-shipit-brief-copy:hover {
    background: var(--color-bg-primary, #fff);
    color: var(--color-text-primary, #111827);
}
.dr-val-shipit-brief-display__content {
    padding: var(--space-md, 12px);
    margin: 0;
    white-space: pre-wrap;
    word-wrap: break-word;
    font-family: 'SFMono-Regular', Consolas, 'Liberation Mono', Menlo, monospace;
    font-size: 0.8125rem;
    line-height: 1.6;
    max-height: 600px;
    overflow-y: auto;
    background: var(--color-bg-primary, #fff);
    color: var(--color-text-primary, #111827);
}

/* =============================================================================
   Subsection Subtitles
   ============================================================================= */
.dr-val-subsection__subtitle {
    font-size: 0.8125rem;
    color: var(--color-text-muted, #6b7280);
    margin: -4px 0 var(--space-md, 12px) 0;
    line-height: 1.4;
}

/* =============================================================================
   SERP Inline Keyword Tags (inside domain cell)
   ============================================================================= */
.dr-val-serp-kw {
    margin-top: 6px;
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 4px;
}

.dr-val-serp-kw__label {
    font-size: 0.6875rem;
    font-weight: 500;
    color: var(--color-text-muted, #6b7280);
    margin-right: 2px;
    white-space: nowrap;
}

.dr-val-serp-kw__tags {
    display: inline-flex;
    flex-wrap: wrap;
    gap: 4px;
}

.dr-val-serp-kw__tag {
    display: inline-block;
    font-size: 0.6875rem;
    padding: 1px 7px;
    border-radius: 10px;
    background: var(--color-background, #f3f4f6);
    border: 1px solid var(--color-border, #e5e7eb);
    color: var(--color-text-secondary, #4b5563);
    white-space: nowrap;
    line-height: 1.4;
}

.dr-val-serp-kw__tag--more {
    font-style: italic;
    opacity: 0.7;
}

/* =========================================================
 * Verified badge + Top comments (Reddit enrichment)
 * ========================================================= */

.dr-val-verified-badge {
    display: inline-block;
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--color-success, #22c55e);
    background: rgba(34, 197, 94, 0.1);
    border: 1px solid rgba(34, 197, 94, 0.25);
    border-radius: 4px;
    padding: 1px 6px;
    margin-left: 6px;
    vertical-align: middle;
    cursor: help;
}

.dr-val-comments-toggle {
    display: inline-block;
    font-size: 0.75rem;
    color: var(--color-link, #3b82f6);
    background: none;
    border: none;
    padding: 4px 0;
    margin-top: 6px;
    cursor: pointer;
    text-decoration: underline;
    text-decoration-style: dotted;
}

.dr-val-comments-toggle:hover {
    color: var(--color-link-hover, #2563eb);
}

.dr-val-comments-list {
    margin-top: 8px;
    padding: 8px 0;
    border-top: 1px solid var(--color-border, #e5e7eb);
}

.dr-val-comment {
    padding: 6px 0;
    border-bottom: 1px solid var(--color-border-light, #f3f4f6);
}

.dr-val-comment:last-child {
    border-bottom: none;
}

.dr-val-comment__meta {
    display: block;
    font-size: 0.7rem;
    font-weight: 600;
    color: var(--color-text-muted, #6b7280);
    margin-bottom: 2px;
}

.dr-val-comment__body {
    font-size: 0.8rem;
    color: var(--color-text, #374151);
    margin: 0;
    line-height: 1.4;
}

/* =========================================================
 * Report Redesign: Executive Summary, layout overrides
 * ========================================================= */

.dr-val-executive-summary {
    display: flex;
    flex-direction: column;
    padding: 24px;
}

.dr-val-executive-summary__top {
    display: flex;
    gap: 32px;
}

.dr-val-executive-summary__context {
    flex: 3;
}

.dr-val-executive-summary__score {
    flex: 2;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding-left: 32px;
    border-left: 1px solid var(--color-border, #e5e7eb);
}

.dr-val-executive-summary__score-header {
    width: 100%;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
    margin-bottom: 12px;
}

/* Score typography (replaces SVG gauge) */
.dr-val-score-display {
    display: flex;
    align-items: baseline;
    gap: 4px;
}

.dr-val-score-display__number {
    font-size: 2.5rem;
    font-weight: 700;
    line-height: 1;
}

.dr-val-score-display__label {
    font-size: 0.875rem;
    color: var(--color-text-muted, #6b7280);
    font-weight: 400;
}

/* Breakdown inside score column — left-aligned below centered score */
.dr-val-executive-summary__score .dr-val-breakdown {
    margin-top: 16px;
    width: 100%;
}

.dr-val-executive-summary__score .dr-val-breakdown__title {
    display: none;
}

.dr-val-executive-summary__score .dr-val-breakdown__label {
    width: 90px;
    font-size: 0.75rem;
}

.dr-val-executive-summary__score .dr-val-breakdown__bar-wrap {
    height: 6px;
    min-width: 60px;
}

/* Evaluation heading above narrative in score column */
.dr-val-evaluation__inline-title {
    font-size: 0.75rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-text-muted, #6b7280);
    margin-top: 16px;
    margin-bottom: 4px;
}

/* Effort badge inline with label */
.dr-val-opp-detail__header-row {
    display: flex;
    align-items: center;
    justify-content: space-between;
}

.dr-val-opp-detail__header-row .dr-val-opp-detail__label {
    margin-bottom: 0;
}

.dr-val-executive-summary__evaluation {
    margin-top: 24px;
    padding-top: 24px;
    border-top: 1px solid var(--color-border, #e5e7eb);
}

.dr-val-executive-summary__interpretation {
    font-size: 0.85rem;
    color: var(--color-text-muted, #6b7280);
    margin-top: 12px;
    line-height: 1.5;
}

/* Opportunity detail blocks in Executive Summary */
.dr-val-opp-detail {
    margin-bottom: 12px;
}

.dr-val-opp-detail__label {
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-text-muted, #6b7280);
    margin-bottom: 2px;
}

.dr-val-opp-detail__value {
    font-size: 0.9rem;
    color: var(--color-text, #374151);
}

/* Effort level badges */
.dr-val-effort-badge {
    display: inline-block;
    font-size: 0.7rem;
    font-weight: 600;
    padding: 2px 8px;
    border-radius: 4px;
}

.dr-val-effort-badge--low {
    color: #16a34a;
    background: rgba(22, 163, 74, 0.1);
}

.dr-val-effort-badge--medium {
    color: #ca8a04;
    background: rgba(202, 138, 4, 0.1);
}

.dr-val-effort-badge--high {
    color: #dc2626;
    background: rgba(220, 38, 38, 0.1);
}

/* Community group headings in Audience & Demand */
.dr-val-community-group__heading {
    font-size: 0.9rem;
    font-weight: 600;
    color: var(--color-text, #374151);
    margin: 20px 0 8px;
    padding-bottom: 6px;
    border-bottom: 1px solid var(--color-border, #e5e7eb);
}

/* Sweet-spot keyword highlight in Market Opportunity */
.dr-val-keyword-sweet-spot {
    border-left: 3px solid #16a34a;
}

/* Content gap type label */
.dr-val-gap-card__label {
    display: inline-block;
    font-size: 0.625rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: var(--color-primary, #2563eb);
    margin-bottom: 4px;
}

.dr-val-gap-card__label--paa {
    color: var(--color-text-muted, #6b7280);
}

/* Competitor strengths = barriers (red), weaknesses = opportunities (green) */
.dr-val-competitor-row__list--strengths li {
    color: #dc2626;
}

.dr-val-competitor-row__list--weaknesses li {
    color: #16a34a;
}

/* Data sources grid */
.dr-val-sources-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(380px, 1fr));
    gap: 12px;
}

.dr-val-source-card {
    padding: 14px 16px;
    border: 1px solid var(--color-border, #e5e7eb);
    border-radius: var(--radius-md, 8px);
    background: var(--color-surface, #fff);
}

.dr-val-source-card__label {
    font-weight: 600;
    font-size: 0.9rem;
    margin-bottom: 2px;
    color: var(--color-text, #374151);
}

.dr-val-source-card__stats {
    font-size: 0.8125rem;
    color: var(--color-text-muted, #6b7280);
    margin-bottom: 8px;
}

.dr-val-source-card__desc {
    font-size: 0.775rem;
    color: var(--color-text-secondary, #4b5563);
    line-height: 1.5;
    margin: 0;
}

/* Methodology stats row */
.dr-val-methodology {
    display: flex;
    flex-wrap: wrap;
    gap: 24px;
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid var(--color-border, #e5e7eb);
}

.dr-val-methodology__stat {
    min-width: 100px;
}

.dr-val-methodology__label {
    font-size: 0.65rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-text-muted, #6b7280);
    margin-bottom: 2px;
}

.dr-val-methodology__value {
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--color-text, #374151);
}

/* Responsive: stack executive summary on mobile */
@media (max-width: 767px) {
    .dr-val-executive-summary__top {
        flex-direction: column;
    }

    .dr-val-executive-summary__score {
        order: -1;
        margin-bottom: 16px;
        padding-left: 0;
        border-left: none;
        border-bottom: 1px solid var(--color-border, #e5e7eb);
        padding-bottom: 16px;
    }

    .dr-val-score-display__number {
        font-size: 2rem;
    }

    .dr-val-sources-grid {
        grid-template-columns: 1fr;
    }
}

/* =========================================================
 * Inline scores: author, scores line, engagement badge, SERP links
 * ========================================================= */

/* thread-card__author and __scores are now part of __meta and __engagement rows */

.dr-val-eng-badge {
    display: inline-block;
    font-size: 0.65rem;
    font-weight: 600;
    padding: 1px 6px;
    border-radius: 3px;
    margin-left: 6px;
    vertical-align: middle;
}

.dr-val-eng-badge--high {
    color: #16a34a;
    background: rgba(22, 163, 74, 0.1);
}

.dr-val-eng-badge--moderate {
    color: #ca8a04;
    background: rgba(202, 138, 4, 0.1);
}

.dr-val-eng-badge--low {
    color: #6b7280;
    background: rgba(107, 114, 128, 0.1);
}

.dr-val-chip--link {
    text-decoration: none;
    cursor: pointer;
    transition: background-color 0.15s, color 0.15s;
}

.dr-val-chip--link:hover {
    background-color: var(--color-primary, #2563eb);
    color: #fff;
}

.dr-val-breakdown__label {
    cursor: help;
}

/* =========================================================
 * Depth selector dropdown
 * ========================================================= */

.dr-val-depth-select {
    font-size: 0.75rem;
    padding: 4px 8px;
    border: 1px solid var(--color-border, #d1d5db);
    border-radius: 4px;
    background: var(--color-bg, #fff);
    color: var(--color-text, #374151);
    cursor: pointer;
    margin-right: 6px;
    vertical-align: middle;
    height: 28px;
}

.dr-val-depth-select:focus {
    outline: 2px solid var(--color-link, #3b82f6);
    outline-offset: 1px;
}

/* Mobile: stack competitor columns */
@media (max-width: 767px) {
    .dr-val-competitor-card__cols {
        grid-template-columns: 1fr;
    }
}

/* =============================================================================
   Community Grid + Cards
   ============================================================================= */
.dr-val-community-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--space-md);
}

/* Tablet: 2 columns */
@media (min-width: 768px) {
    .dr-val-community-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* Desktop: 3 columns */
@media (min-width: 1024px) {
    .dr-val-community-grid {
        grid-template-columns: repeat(4, 1fr);
    }
}

.dr-val-community-card {
    background: var(--color-surface);
    border: 1px solid var(--color-border);
    border-radius: var(--radius-md);
    padding: var(--space-md);
    display: flex;
    flex-direction: column;
    gap: var(--space-sm);
    transition: box-shadow var(--transition-fast),
        border-color var(--transition-fast);
}

.dr-val-community-card:hover {
    box-shadow: var(--shadow-sm);
}

.dr-val-community-card:focus-within {
    border-color: var(--color-primary);
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.1);
}

.dr-val-community-card__name {
    font-size: 0.9375rem;
    font-weight: 600;
    color: var(--color-text);
    margin: 0;
}

.dr-val-community-card__stats {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-sm);
    font-size: 0.75rem;
    color: var(--color-text-muted);
}

.dr-val-community-card__link {
    display: inline-flex;
    align-items: center;
    gap: var(--space-xs);
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--color-primary);
    text-decoration: none;
    margin-top: auto;
    transition: color var(--transition-fast);
}

.dr-val-community-card__link:hover {
    color: var(--color-primary-hover);
    text-decoration: underline;
}

.dr-val-community-card__link:focus {
    outline: none;
    text-decoration: underline;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
    border-radius: var(--radius-sm);
}

/* =============================================================================
   Cost Display
   ============================================================================= */
.dr-val-cost-display {
    display: inline-flex;
    align-items: center;
    gap: var(--space-xs);
    padding: var(--space-xs) var(--space-sm);
    background: var(--color-secondary);
    border-radius: var(--radius-sm);
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--color-text-muted);
}

/* =============================================================================
   Source Status Footer
   ============================================================================= */
.dr-val-source-footer {
    display: flex;
    flex-wrap: wrap;
    gap: var(--space-sm);
    padding: var(--space-md) var(--space-lg);
    border-top: 1px solid var(--color-border);
    background: var(--color-secondary);
    font-size: 0.75rem;
}

.dr-val-source-footer__item {
    display: inline-flex;
    align-items: center;
    gap: var(--space-xs);
    padding: var(--space-xs) var(--space-sm);
    border-radius: var(--radius-sm);
    font-weight: 500;
    color: var(--color-text-muted);
    background: var(--color-surface);
    border: 1px solid var(--color-border);
}

.dr-val-source-footer__item--success {
    color: var(--color-success);
    border-color: #bbf7d0;
    background: #f0fdf4;
}

.dr-val-source-footer__item--failed {
    color: var(--color-error);
    border-color: #fecaca;
    background: #fef2f2;
}

/* =============================================================================
   Score Breakdown Bars
   ============================================================================= */
.dr-val-breakdown {
    display: flex;
    flex-direction: column;
    gap: var(--space-sm);
}

.dr-val-breakdown__row {
    display: flex;
    align-items: center;
    gap: var(--space-sm);
}

.dr-val-breakdown__label {
    flex-shrink: 0;
    width: 120px;
    font-size: 0.8125rem;
    color: var(--color-text);
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.dr-val-breakdown__bar {
    flex: 1;
    height: 8px;
    background: var(--color-secondary);
    border-radius: 4px;
    overflow: hidden;
}

.dr-val-breakdown__bar-fill {
    height: 100%;
    border-radius: 4px;
    background: var(--color-primary);
    transition: width 0.5s ease;
}

/* Color-coded bar fills based on score level */
.dr-val-breakdown__bar-fill--high {
    background: var(--color-success);
}

.dr-val-breakdown__bar-fill--medium {
    background: var(--color-warning);
}

.dr-val-breakdown__bar-fill--low {
    background: var(--color-error);
}

.dr-val-breakdown__value {
    flex-shrink: 0;
    width: 36px;
    text-align: right;
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--color-text);
}

/* =============================================================================
   Show More / Expandable
   ============================================================================= */
.dr-val-show-more {
    display: inline-flex;
    align-items: center;
    gap: var(--space-xs);
    background: none;
    border: none;
    padding: var(--space-sm) 0;
    font-size: 0.8125rem;
    font-weight: 500;
    font-family: inherit;
    color: var(--color-primary);
    cursor: pointer;
    transition: color var(--transition-fast);
}

.dr-val-show-more:hover {
    color: var(--color-primary-hover);
    text-decoration: underline;
}

.dr-val-show-more:focus {
    outline: none;
    text-decoration: underline;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.15);
    border-radius: var(--radius-sm);
}

.dr-val-show-more:disabled {
    color: var(--color-text-muted);
    cursor: not-allowed;
    text-decoration: none;
}

/* =============================================================================
   Tags / Chips (for related searches)
   ============================================================================= */
.dr-val-tag {
    display: inline-flex;
    align-items: center;
    padding: var(--space-xs) var(--space-sm);
    background: var(--color-secondary);
    border: 1px solid var(--color-border);
    border-radius: 9999px;
    font-size: 0.75rem;
    font-weight: 500;
    color: var(--color-text);
    text-decoration: none;
    cursor: pointer;
    transition: background var(--transition-fast),
        border-color var(--transition-fast),
        color var(--transition-fast);
}

.dr-val-tag:hover {
    background: var(--color-primary);
    border-color: var(--color-primary);
    color: #fff;
}

.dr-val-tag:focus {
    outline: none;
    box-shadow: 0 0 0 3px rgba(37, 99, 235, 0.2);
}

/* =============================================================================
   Responsive: Mobile-first adjustments
   ============================================================================= */

/* Report header stacks vertically on small screens */
@media (max-width: 767px) {
    .dr-val-report__header {
        flex-direction: column;
        align-items: flex-start;
        gap: var(--space-md);
    }

    .dr-val-report__meta {
        flex-direction: column;
        gap: var(--space-xs);
    }

    .dr-val-breakdown__label {
        width: 90px;
        font-size: 0.75rem;
    }

    .dr-val-source-footer {
        flex-direction: column;
        gap: var(--space-xs);
        padding: var(--space-sm) var(--space-md);
    }

    .dr-val-evaluation__dimension-label {
        font-size: 0.75rem;
    }

    .dr-val-evaluation__dimension-summary {
        font-size: 0.75rem;
    }
}

/* =============================================================================
   Breakdown Bar Wrap + Color Modifiers
   (Used by JS _renderBreakdown and _renderEvaluationDimensions)
   ============================================================================= */
.dr-val-breakdown__bar-wrap {
    flex: 1;
    height: 8px;
    background: var(--color-secondary, #e5e7eb);
    border-radius: 4px;
    overflow: hidden;
}

.dr-val-breakdown__bar-wrap .dr-val-breakdown__bar {
    height: 100%;
    border-radius: 4px;
    transition: width 0.5s ease;
}

.dr-val-breakdown__bar--green {
    background: #22c55e;
}

.dr-val-breakdown__bar--yellow {
    background: #eab308;
}

.dr-val-breakdown__bar--red {
    background: #ef4444;
}

/* =============================================================================
   Opportunity Evaluation Layer
   ============================================================================= */
.dr-val-evaluation {
    margin-top: var(--space-lg, 16px);
    display: flex;
    flex-direction: column;
    gap: var(--space-md, 12px);
}

.dr-val-evaluation__title {
    font-size: 0.875rem;
    font-weight: 600;
    color: var(--color-text, #111827);
    margin: 0 0 var(--space-xs, 4px) 0;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.dr-val-evaluation__narrative {
    font-size: 0.875rem;
    line-height: 1.6;
    color: var(--color-text, #374151);
    text-align: left;
    margin: var(--space-xs, 4px) 0 0 0;
    padding: var(--space-sm, 8px) var(--space-md, 12px);
    background: var(--color-surface, #fafafa);
    border: 1px solid var(--color-border, #e5e7eb);
    border-radius: 12px;
}

.dr-val-evaluation__context-blocks {
    display: flex;
    gap: 8px;
    margin: 0 0 var(--space-md, 12px) 0;
}

.dr-val-evaluation__context-block {
    flex: 1;
    border-radius: 6px;
    padding: 10px 12px;
    font-size: 0.8125rem;
}

.dr-val-evaluation__context-block--risks {
    background: rgba(239, 68, 68, 0.05);
    border: 1px solid rgba(239, 68, 68, 0.2);
}

.dr-val-evaluation__context-block--tailwinds {
    background: rgba(16, 185, 129, 0.05);
    border: 1px solid rgba(16, 185, 129, 0.2);
}

.dr-val-evaluation__context-block-title {
    font-size: 0.75rem;
    font-weight: 600;
    margin-bottom: 6px;
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.dr-val-evaluation__context-block--risks .dr-val-evaluation__context-block-title {
    color: #dc2626;
}

.dr-val-evaluation__context-block--tailwinds .dr-val-evaluation__context-block-title {
    color: #059669;
}

.dr-val-evaluation__context-block-list {
    margin: 0;
    padding: 0 0 0 14px;
    list-style: disc;
}

.dr-val-evaluation__context-block-list li {
    margin-bottom: 4px;
    line-height: 1.45;
    color: var(--color-text-secondary, #4b5563);
}

@media (max-width: 480px) {
    .dr-val-evaluation__context-blocks {
        flex-direction: column;
    }
}

.dr-val-evaluation__dimension {
    display: flex;
    flex-direction: column;
    gap: 4px;
}

.dr-val-evaluation__dimension-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
}

.dr-val-evaluation__dimension-label {
    font-size: 0.8125rem;
    font-weight: 500;
    color: var(--color-text, #111827);
}

.dr-val-evaluation__dimension-value {
    font-size: 0.8125rem;
    font-weight: 600;
    color: var(--color-text, #111827);
    min-width: 28px;
    text-align: right;
}

.dr-val-evaluation__dimension-summary {
    font-size: 0.8125rem;
    line-height: 1.5;
    color: var(--color-text-secondary, #6b7280);
    margin: 2px 0 0 0;
}

.dr-val-evaluation__evidence-label {
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--color-text-muted, #6b7280);
    margin-top: 8px;
}

.dr-val-evaluation__evidence-toggle {
    display: inline-flex;
    align-items: center;
    background: none;
    border: none;
    padding: 2px 0;
    font-size: 0.75rem;
    font-weight: 500;
    font-family: inherit;
    color: var(--color-primary, #3b82f6);
    cursor: pointer;
    transition: color 0.15s;
}

.dr-val-evaluation__evidence-toggle:hover {
    color: var(--color-primary-hover, #2563eb);
    text-decoration: underline;
}

.dr-val-evaluation__evidence-toggle::before {
    content: '\25B6';
    font-size: 0.625rem;
    margin-right: 4px;
    transition: transform 0.15s;
}

.dr-val-evaluation__evidence-toggle--open::before {
    transform: rotate(90deg);
}

.dr-val-evaluation__evidence-list {
    margin: 4px 0 0 16px;
    padding: 0;
    list-style: disc;
    font-size: 0.75rem;
    color: var(--color-text-secondary, #6b7280);
    line-height: 1.6;
}

.dr-val-evaluation__evidence-list li {
    margin-bottom: 2px;
}

/* (Signal toggle removed — breakdown now always visible in score column) */

/* =============================================================================
   Mobile Optimization — Share Page & Report Tabs
   Improves readability on < 600px viewports (phones)
   ============================================================================= */

/* Keyword table wrapper — always allow horizontal scroll */
.dr-val-keyword-table-wrap {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

@media (max-width: 600px) {

    /* ── Tab Bar: scrollable, smaller text ── */
    .dr-val-tabs {
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        scrollbar-width: none;
    }
    .dr-val-tabs::-webkit-scrollbar {
        display: none;
    }
    .dr-val-tabs__tab {
        padding: 8px 12px;
        font-size: 0.7rem;
    }

    /* ── Share Page Wrapper: tighter padding ── */
    .dr-share-page {
        padding: var(--space-sm, 8px) !important;
    }
    .dr-share-page .page-header h1 {
        font-size: 1.25rem;
    }
    .dr-share-page .card {
        padding: var(--space-sm, 8px) var(--space-md, 12px);
    }

    /* ── Keyword Tables: compact cells ── */
    .dr-val-keyword-table {
        font-size: 0.75rem;
    }
    .dr-val-keyword-table th,
    .dr-val-keyword-table td {
        padding: var(--space-xs, 4px) var(--space-sm, 8px);
    }

    /* ── Thread Cards: tighter layout ── */
    .dr-val-thread-card {
        padding: var(--space-sm, 8px) var(--space-md, 12px);
    }
    .dr-val-thread-card__title {
        font-size: 0.8125rem;
    }
    .dr-val-thread-card__metrics {
        font-size: 0.7rem;
        gap: 8px;
    }
    .dr-val-thread-card__scores {
        font-size: 0.7rem;
    }

    /* ── Community Cards: wrap stats ── */
    .dr-val-community-card {
        padding: var(--space-sm, 8px) var(--space-md, 12px);
    }
    .dr-val-community-card__stats {
        flex-wrap: wrap;
        gap: 4px 12px;
    }
    .dr-val-community-card__name {
        font-size: 0.875rem;
    }

    /* ── Competitor Analysis: readable lists ── */
    .dr-val-competitor-row {
        padding: var(--space-sm, 8px) var(--space-md, 12px);
    }
    .dr-val-competitor-row__domain {
        font-size: 0.875rem;
    }
    .dr-val-competitor-row__list {
        font-size: 0.8125rem;
        padding-left: 16px;
    }

    /* ── Content Gap Cards: compact ── */
    .dr-val-gap-card {
        padding: var(--space-sm, 8px) var(--space-md, 12px);
    }
    .dr-val-gap-card__title {
        font-size: 0.8125rem;
    }
    .dr-val-gap-card__body {
        font-size: 0.8125rem;
    }

    /* ── Source Status Footer: smaller items ── */
    .dr-val-source-footer__item {
        font-size: 0.75rem;
        padding: var(--space-xs, 4px) var(--space-sm, 8px);
    }

    /* ── Executive Summary: compressed score + evaluation ── */
    .dr-val-executive-summary__score {
        padding: var(--space-md, 12px);
    }
    .dr-val-evaluation__narrative {
        font-size: 0.8125rem;
        padding: var(--space-xs, 4px) var(--space-sm, 8px);
    }
    .dr-val-evaluation__context-block {
        padding: 8px;
        font-size: 0.75rem;
    }

    /* ── Ship It: responsive overrides ── */
    .dr-val-shipit-onething {
        grid-template-columns: 1fr;
    }
    .dr-val-shipit-scope {
        grid-template-columns: 1fr;
    }
    .dr-val-shipit-spirit__quote {
        font-size: 1rem;
    }
    .dr-val-shipit-phase__header {
        flex-wrap: wrap;
    }
    .dr-val-shipit-phase__timeline {
        width: 100%;
    }
    .dr-val-shipit-footer {
        flex-direction: column;
        gap: var(--space-sm, 8px);
        text-align: center;
    }
}