/*
 * ============================================================
 * 14. BOD PRESENTATION MAKER MODULE
 * ============================================================
 *
 * Purpose:
 *   Styles for the BOD Presentation Maker — input form, slide preview
 *   cards, and generation history. Follows the Obsidian v3.0 palette
 *   with glassmorphism consistency.
 *
 * Invariants:
 *   - All backgrounds use design-system tokens (--bg-surface, --bg-elevated)
 *   - Slide cards match .menu-card glassmorphism pattern
 *   - 3-column metadata grid collapses to 1-column below 768px
 *
 * Extracted from style.css to reduce monolith size.
 *
 * How to undo:
 *   Move these styles back into style.css and remove the
 *   <link> in index.html.
 */

.bod-pres-container {
    display: flex;
    flex-direction: column;
    gap: var(--space-lg);
}

.bod-pres-meta-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    margin-bottom: 16px;
}

.bod-pres-label {
    display: block;
    font-size: 0.65rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--text-muted);
    margin-bottom: 6px;
}

.bod-pres-section-label {
    font-family: var(--font-display);
    font-size: 0.65rem;
    font-weight: 800;
    color: var(--primary);
    text-transform: uppercase;
    letter-spacing: 0.2em;
    margin-bottom: 16px;
}

.bod-pres-slides-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
    gap: 16px;
}

.bod-pres-slide-card {
    background: rgba(13, 17, 23, 0.6);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid var(--line-subtle);
    border-radius: 12px;
    padding: 20px;
    position: relative;
    transition: all 0.25s cubic-bezier(0.16, 1, 0.3, 1);
}

.bod-pres-slide-card:hover {
    border-color: var(--primary);
    transform: translateY(-3px);
    box-shadow: var(--shadow-stark), 0 0 20px rgba(var(--primary-rgb), 0.06);
}

.bod-pres-slide-header {
    display: flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 8px;
}

.bod-pres-slide-number {
    font-size: 0.6rem;
    font-weight: 800;
    color: var(--text-subtle);
    background: rgba(255, 255, 255, 0.05);
    padding: 2px 8px;
    border-radius: 4px;
    letter-spacing: 0.1em;
}

.bod-pres-slide-layout {
    font-size: 0.55rem;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.15em;
    color: var(--primary);
}

.bod-pres-slide-title {
    font-family: var(--font-display);
    font-weight: 700;
    font-size: 0.95rem;
    color: var(--text-display);
    margin-bottom: 8px;
    line-height: 1.3;
}

.bod-pres-slide-subtitle {
    font-size: 0.75rem;
    color: var(--text-muted);
    margin-bottom: 10px;
}

.bod-pres-slide-bullets {
    list-style: none;
    padding: 0;
    margin: 0;
}

.bod-pres-slide-bullets li {
    font-size: 0.75rem;
    color: var(--text-muted);
    padding: 3px 0 3px 16px;
    position: relative;
    line-height: 1.4;
}

.bod-pres-slide-bullets li::before {
    content: '▸';
    position: absolute;
    left: 0;
    color: var(--primary);
    font-size: 0.7rem;
}

.bod-pres-slide-notes {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid var(--line-subtle);
    font-size: 0.65rem;
    color: var(--text-subtle);
    font-style: italic;
    line-height: 1.4;
}

/* ── Layout-specific preview elements ── */

/* Stat callout metrics */
.bod-pres-metrics-row {
    display: flex;
    gap: 8px;
    margin-top: 8px;
}

.bod-pres-metric-card {
    flex: 1;
    background: rgba(255, 255, 255, 0.03);
    border-radius: 8px;
    padding: 10px 8px;
    text-align: center;
}

.bod-pres-metric-value {
    font-size: 1.4rem;
    font-weight: 800;
    line-height: 1.2;
    margin-bottom: 4px;
}

.bod-pres-metric-label {
    font-size: 0.65rem;
    color: var(--text-muted);
}

.bod-pres-trend {
    font-weight: 700;
}

.bod-pres-trend.trend-up {
    color: var(--success, #22c55e);
}

.bod-pres-trend.trend-down {
    color: var(--error, #ef4444);
}

/* Pull quote */
.bod-pres-quote-block {
    padding: 8px 0;
}

.bod-pres-quote-mark {
    font-size: 2rem;
    line-height: 1;
    opacity: 0.5;
}

.bod-pres-quote-text {
    font-size: 0.85rem;
    font-style: italic;
    color: var(--text-display);
    line-height: 1.5;
    margin: 4px 0 8px;
}

.bod-pres-quote-attr {
    font-size: 0.7rem;
    color: var(--text-subtle);
}

/* Comparison grid */
.bod-pres-comparison-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 10px;
    margin-top: 8px;
}

.bod-pres-col-head {
    font-size: 0.75rem;
    font-weight: 700;
    margin-bottom: 6px;
    color: var(--primary);
}

.bod-pres-col-item {
    font-size: 0.7rem;
    color: var(--text-muted);
    line-height: 1.4;
    padding: 1px 0;
}

/* Timeline row */
.bod-pres-timeline-row {
    display: flex;
    justify-content: center;
    gap: 6px;
    margin-top: 10px;
}

.bod-pres-timeline-node {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 4px;
    flex: 1;
    max-width: 80px;
}

.bod-pres-timeline-circle {
    width: 24px;
    height: 24px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.65rem;
    font-weight: 800;
    color: #fff;
}

.bod-pres-timeline-label {
    font-size: 0.6rem;
    color: var(--text-muted);
    text-align: center;
    line-height: 1.3;
}

/* Key takeaway hero */
.bod-pres-hero-msg {
    padding: 10px 12px;
    margin-top: 8px;
    font-size: 0.85rem;
    font-weight: 600;
    color: var(--text-display);
    line-height: 1.5;
    background: rgba(255, 255, 255, 0.02);
    border-radius: 0 8px 8px 0;
}

/* Agenda list */
.bod-pres-agenda-list {
    margin-top: 8px;
}

.bod-pres-agenda-item {
    display: flex;
    align-items: center;
    gap: 8px;
    font-size: 0.75rem;
    color: var(--text-muted);
    padding: 3px 0;
}

.bod-pres-agenda-num {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    font-size: 0.55rem;
    font-weight: 800;
    color: #fff;
    flex-shrink: 0;
}

/* Title slide gradient tint */
.bod-pres-slide-card[data-layout="title"] {
    background: linear-gradient(135deg, rgba(var(--primary-rgb), 0.05), transparent);
}

/* BOD Presenter history grid */
.bod-pres-history-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
    gap: 16px;
}