/**
 * TH0 PD Slides - Training Readability Standards
 * Ensures all text meets minimum readability requirements for presentations
 *
 * Best practices for training presentations:
 * - Minimum body text: 16px
 * - Minimum secondary text: 14px
 * - Minimum labels/captions: 12px (absolute minimum for any visible text)
 * - Line height: 1.4-1.6 for readability
 */

:root {
    /* Minimum font sizes */
    --min-font-body: 16px;
    --min-font-secondary: 14px;
    --min-font-caption: 12px;

    /* Recommended line heights */
    --line-height-body: 1.5;
    --line-height-heading: 1.3;
}

/* ========================================
   GLOBAL MINIMUM FONT SIZE ENFORCEMENT
   ======================================== */

/* Ensure all text elements have minimum readable size */
.slide p,
.slide li,
.slide td,
.slide span:not(.icon),
.slide div:not(.icon) {
    font-size: max(var(--min-font-body), inherit);
    line-height: var(--line-height-body);
}

/* Card content - minimum 16px */
.card p,
.card li,
.diff-card ul,
.diff-card li,
.checklist-card li,
.tip-card p,
.pitfall-card .right,
.error-card .ai-response,
.error-card .truth {
    font-size: max(16px, inherit) !important;
    line-height: 1.5 !important;
}

/* Card titles - minimum 18px */
.card h4,
.diff-card h4,
.checklist-card h4,
.stat-card .label {
    font-size: max(18px, inherit) !important;
}

/* Labels and captions - minimum 14px (upgraded from 11-12px) */
.error-card .label,
.tip-card .label,
.pitfall-card .wrong,
.diff-card .badge,
.stat-card .source,
.slide .source,
.slide [class*="label"],
.slide small,
.slide .caption {
    font-size: max(14px, inherit) !important;
}

/* Code/monospace text - minimum 13px */
.slide code,
.slide pre,
.slide [style*="monospace"] {
    font-size: max(13px, inherit) !important;
}

/* Activity box text */
.activity-box p,
.demo-box p {
    font-size: max(18px, inherit) !important;
}

.activity-box h4,
.demo-box h4 {
    font-size: max(24px, inherit) !important;
}

/* ========================================
   PRESENTATION CARD STYLES
   Large fonts optimized for presentations
   These override any inline/embedded styles
   ======================================== */

/* FAQ card - large presentation fonts */
.faq-card .question {
    font-size: 36px !important;
    font-weight: 700 !important;
}

.faq-card .answer {
    font-size: 28px !important;
    line-height: 1.6 !important;
}

/* Misconception card - large presentation fonts */
.misconception-card .wrong {
    font-size: 30px !important;
    font-weight: 700 !important;
}

.misconception-card .right {
    font-size: 26px !important;
    line-height: 1.6 !important;
}

/* Age cards - presentation fonts */
.age-card h4 {
    font-size: 28px !important;
}

.age-card ul,
.age-card li {
    font-size: 22px !important;
    line-height: 1.8 !important;
}

/* Simple lists - presentation fonts */
.simple-list,
.simple-list li {
    font-size: 28px !important;
    line-height: 2 !important;
}

/* ========================================
   SPECIFIC OVERRIDES FOR SMALL TEXT
   ======================================== */

/* Stat card source citation - was 11px, now 14px */
.stat-card .source {
    font-size: 14px !important;
    opacity: 0.8;
}

/* Error card label - was 12px, now 14px */
.error-card .label {
    font-size: 14px !important;
}

/* Truth/correction text - was 14px, now 16px */
.error-card .truth {
    font-size: 16px !important;
}

/* Tip card content */
.tip-card p {
    font-size: 16px !important;
    line-height: 1.6 !important;
}

/* Pitfall card text */
.pitfall-card .wrong {
    font-size: 18px !important;
}

.pitfall-card .right {
    font-size: 16px !important;
}

/* Diff card list items */
.diff-card ul {
    font-size: 15px !important;
}

.diff-card li {
    font-size: 15px !important;
    line-height: 1.7 !important;
}

/* Badge text */
.diff-card .badge {
    font-size: 14px !important;
}

/* Checklist items */
.checklist-card ul {
    font-size: 16px !important;
}

.checklist-card li {
    font-size: 16px !important;
    line-height: 1.8 !important;
}

/* Module code tags (like TH0-AI-07) */
.slide [style*="font-family: monospace"] {
    font-size: 13px !important;
}

/* ========================================
   INLINE STYLE OVERRIDES
   These use higher specificity to override inline styles
   ======================================== */

/* Override any inline font-size smaller than 14px */
.slide [style*="font-size: 11px"],
.slide [style*="font-size: 12px"],
.slide [style*="font-size: 13px"] {
    font-size: 14px !important;
}

/* Override any inline font-size of 14px to 15px minimum for body text */
.slide-content [style*="font-size: 14px"]:not(.badge):not([class*="label"]) {
    font-size: 15px !important;
}

/* ========================================
   ACCESSIBILITY ENHANCEMENTS
   ======================================== */

/* Ensure sufficient contrast for muted text */
.slide .text-muted,
.slide [style*="color: var(--text-muted)"] {
    opacity: 1;
    color: #b8c5d6 !important; /* Slightly lighter than default muted for better contrast */
}

/* Minimum touch target for interactive elements */
.slide button,
.slide a,
.slide [onclick] {
    min-height: 44px;
    min-width: 44px;
}

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

@media (max-width: 1024px) {
    :root {
        --min-font-body: 15px;
        --min-font-secondary: 13px;
    }
}

@media (max-width: 768px) {
    :root {
        --min-font-body: 14px;
        --min-font-secondary: 12px;
    }
}

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

@media print {
    .slide p,
    .slide li {
        font-size: 12pt !important;
        line-height: 1.4 !important;
    }

    .card h4 {
        font-size: 14pt !important;
    }
}
