/**
 * Report Template Styles
 * Consistent styling for all report sections
 */

/* Bottom Line / Executive Summary */
.bottom-line {
    border: 2px solid var(--accent-gold);
    border-radius: 12px;
    padding: 24px;
    background: var(--bg-tertiary);
}

.bottom-line-grid {
    display: flex;
    gap: 20px;
}

.bottom-line-item {
    flex: 1;
    padding: 16px;
    background: var(--bg-primary);
    border-radius: 8px;
}

.bottom-line-label {
    font-size: 0.65rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--text-muted);
    margin-bottom: 8px;
}

.bottom-line-value {
    font-size: 1.2rem;
    font-weight: 600;
    color: var(--text-primary);
}

.bottom-line-value.mono {
    font-family: 'DM Mono', monospace;
    font-size: 1rem;
}

.bottom-line-value.state-critical { color: var(--accent-red); }
.bottom-line-value.state-stable { color: var(--accent-green); }
.bottom-line-value.signal-green { color: var(--accent-green); }
.bottom-line-value.signal-red { color: var(--accent-red); }
.bottom-line-value.signal-blue { color: var(--accent-blue); }

.bottom-line-subtext {
    font-size: 0.8rem;
    color: var(--text-secondary);
    margin-top: 6px;
}

/* Hinge Table */
.hinge-table {
    width: 100%;
    border-collapse: collapse;
}

.hinge-table th {
    text-align: left;
    padding: 12px 16px;
    background: var(--bg-tertiary);
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--text-muted);
    border-bottom: 1px solid var(--border);
}

.hinge-table td {
    padding: 12px 16px;
    border-bottom: 1px solid var(--border);
    vertical-align: top;
}

.hinge-component {
    display: flex;
    align-items: center;
    gap: 8px;
}

.hinge-component .symbol {
    font-family: 'Instrument Serif', serif;
    font-size: 1rem;
    color: var(--accent-gold);
}

.hinge-score {
    font-family: 'DM Mono', monospace;
    font-size: 1rem;
    font-weight: 600;
}

.hinge-score.score-positive { color: var(--accent-green); }
.hinge-score.score-negative { color: var(--accent-red); }
.hinge-score.score-neutral { color: var(--accent-gold); }

.hinge-status {
    display: inline-block;
    padding: 4px 10px;
    font-size: 0.7rem;
    font-weight: 600;
    text-transform: uppercase;
    border-radius: 4px;
}

.hinge-status.critical {
    background: rgba(255, 74, 106, 0.15);
    color: var(--accent-red);
}

.hinge-status.elevated {
    background: rgba(255, 140, 66, 0.15);
    color: var(--accent-orange);
}

.hinge-status.stable {
    background: rgba(0, 212, 170, 0.15);
    color: var(--accent-green);
}

.hinge-status.decaying {
    background: rgba(154, 106, 255, 0.15);
    color: var(--accent-purple);
}

.hinge-implication {
    font-size: 0.85rem;
    color: var(--text-secondary);
    line-height: 1.5;
}

/* Fragility Matrix */
.fragility-matrix {
    display: grid;
    grid-template-columns: 120px 1fr 1fr;
    gap: 2px;
    background: var(--border);
    border-radius: 12px;
    overflow: hidden;
}

.matrix-corner {
    background: var(--bg-primary);
}

.matrix-header {
    padding: 14px;
    text-align: center;
    font-size: 0.75rem;
    text-transform: uppercase;
    font-weight: 600;
    background: var(--bg-tertiary);
}

.matrix-header.negative { color: var(--accent-red); }
.matrix-header.positive { color: var(--accent-green); }

.matrix-row-label {
    padding: 14px;
    font-size: 0.75rem;
    text-transform: uppercase;
    font-weight: 600;
    background: var(--bg-tertiary);
    display: flex;
    align-items: center;
    justify-content: center;
}

.matrix-row-label.high { color: var(--accent-red); }
.matrix-row-label.low { color: var(--accent-green); }

.matrix-cell {
    padding: 20px;
    background: var(--bg-primary);
}

.matrix-cell h4 {
    font-size: 0.85rem;
    font-weight: 600;
    margin-bottom: 8px;
}

.matrix-cell p {
    font-size: 0.8rem;
    color: var(--text-secondary);
    line-height: 1.4;
}

.matrix-cell.active {
    background: rgba(212, 160, 18, 0.1);
    border: 2px solid var(--accent-gold);
}

.matrix-cell.opportunistic h4 { color: var(--accent-purple); }
.matrix-cell.sprint h4 { color: var(--accent-green); }
.matrix-cell.exit h4 { color: var(--accent-red); }
.matrix-cell.scale h4 { color: var(--accent-blue); }

.matrix-indicator {
    margin-top: 12px;
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.7rem;
    text-transform: uppercase;
    color: var(--accent-gold);
}

.matrix-indicator .dot {
    width: 8px;
    height: 8px;
    background: var(--accent-gold);
    border-radius: 50%;
    animation: pulse 1.5s infinite;
}

@keyframes pulse {
    0%, 100% { opacity: 1; }
    50% { opacity: 0.4; }
}

/* Trigger Events */
.trigger-events {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.trigger-event {
    display: grid;
    grid-template-columns: 48px 1fr 100px;
    gap: 16px;
    padding: 20px;
    background: var(--bg-tertiary);
    border-radius: 12px;
    border-left: 4px solid var(--accent-red);
    align-items: start;
}

.trigger-icon {
    font-size: 1.5rem;
    text-align: center;
}

.trigger-content h4 {
    font-size: 1rem;
    font-weight: 600;
    margin-bottom: 6px;
}

.trigger-content p {
    font-size: 0.85rem;
    color: var(--text-secondary);
    line-height: 1.5;
}

.trigger-threshold {
    text-align: center;
    padding: 12px;
    background: var(--bg-primary);
    border-radius: 8px;
}

.trigger-threshold-value {
    font-family: 'DM Mono', monospace;
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--accent-red);
}

.trigger-threshold-label {
    font-size: 0.6rem;
    text-transform: uppercase;
    color: var(--text-muted);
    margin-top: 4px;
}

/* Scenario Cards */
.scenario-cards {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 16px;
}

.scenario-card {
    background: var(--bg-tertiary);
    border-radius: 12px;
    padding: 20px;
}

.scenario-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
    padding-bottom: 12px;
    border-bottom: 1px solid var(--border);
}

.scenario-name {
    font-weight: 600;
}

.scenario-prob {
    font-family: 'DM Mono', monospace;
    font-size: 1.1rem;
    font-weight: 600;
    color: var(--accent-gold);
}

.scenario-desc {
    font-size: 0.85rem;
    color: var(--text-secondary);
    line-height: 1.5;
    margin-bottom: 12px;
}

.scenario-response {
    font-size: 0.85rem;
    padding: 12px;
    background: var(--bg-primary);
    border-left: 3px solid var(--accent-blue);
    border-radius: 0 8px 8px 0;
}

/* Action Items */
.action-items {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.action-item {
    display: grid;
    grid-template-columns: 80px 1fr 100px;
    gap: 16px;
    padding: 16px;
    background: var(--bg-tertiary);
    border-radius: 10px;
    align-items: start;
}

.action-priority {
    font-size: 0.7rem;
    font-weight: 700;
    text-transform: uppercase;
    padding: 6px 10px;
    border-radius: 4px;
    text-align: center;
}

.action-priority.immediate {
    background: rgba(255, 74, 106, 0.15);
    color: var(--accent-red);
}

.action-priority.short {
    background: rgba(255, 140, 66, 0.15);
    color: var(--accent-orange);
}

.action-priority.medium {
    background: rgba(74, 158, 255, 0.15);
    color: var(--accent-blue);
}

.action-priority.low {
    background: rgba(0, 212, 170, 0.15);
    color: var(--accent-green);
}

.action-content h4 {
    font-size: 0.95rem;
    font-weight: 600;
    margin-bottom: 4px;
}

.action-content p {
    font-size: 0.85rem;
    color: var(--text-secondary);
}

.action-timeline {
    font-size: 0.8rem;
    color: var(--text-muted);
    text-align: right;
}

/* Key Dates */
.key-dates {
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.key-date {
    display: flex;
    gap: 16px;
    padding: 16px;
    background: var(--bg-tertiary);
    border-radius: 10px;
}

.key-date-marker {
    width: 4px;
    background: var(--accent-gold);
    border-radius: 2px;
    flex-shrink: 0;
}

.key-date-content h4 {
    font-size: 0.95rem;
    font-weight: 600;
    color: var(--accent-gold);
    margin-bottom: 4px;
}

.key-date-content p {
    font-size: 0.85rem;
    color: var(--text-secondary);
}

/* Historical Analogs */
.analogs-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
    gap: 16px;
}

.analog-card {
    background: var(--bg-tertiary);
    border-radius: 12px;
    padding: 20px;
    border-left: 4px solid var(--accent-purple);
}

.analog-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
}

.analog-name {
    font-weight: 600;
    font-size: 1rem;
}

.analog-relevance {
    font-family: 'DM Mono', monospace;
    font-size: 0.85rem;
    color: var(--accent-purple);
    background: rgba(154, 106, 255, 0.15);
    padding: 4px 10px;
    border-radius: 4px;
}

.analog-outcome {
    font-size: 0.9rem;
    color: var(--text-secondary);
    line-height: 1.5;
    margin-bottom: 12px;
}

.analog-meta {
    display: flex;
    gap: 16px;
    font-size: 0.75rem;
    color: var(--text-muted);
}

/* Trigger Impact */
.trigger-impact {
    margin-top: 8px;
    font-size: 0.85rem;
    color: var(--accent-red);
}

/* Stakeholder Sections */
.stakeholder-section {
    margin-bottom: 28px;
}

.stakeholder-section:last-child {
    margin-bottom: 0;
}

.stakeholder-header {
    font-size: 0.85rem;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    margin-bottom: 16px;
    padding-bottom: 8px;
    border-bottom: 1px solid var(--border);
    display: flex;
    align-items: center;
    gap: 8px;
}

.stakeholder-header.investor { color: var(--accent-blue); }
.stakeholder-header.business { color: var(--accent-green); }
.stakeholder-header.policy { color: var(--accent-gold); }

/* Opportunity Grid */
.opportunity-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 16px;
}

.opportunity-card {
    background: var(--bg-tertiary);
    border-radius: 12px;
    padding: 20px;
}

.opp-action {
    font-weight: 700;
    font-size: 0.9rem;
    text-transform: uppercase;
    color: var(--accent-gold);
    margin-bottom: 8px;
}

.opp-instrument {
    font-size: 0.9rem;
    color: var(--text-primary);
    margin-bottom: 8px;
}

.opp-meta {
    display: flex;
    gap: 12px;
    margin-bottom: 8px;
}

.opp-timing {
    font-size: 0.75rem;
    color: var(--accent-blue);
    background: rgba(74, 158, 255, 0.15);
    padding: 4px 8px;
    border-radius: 4px;
}

.opp-rationale {
    font-size: 0.85rem;
    color: var(--text-secondary);
    line-height: 1.5;
}

/* Key Date Types */
.key-date.decision .key-date-marker { background: var(--accent-red); }
.key-date.checkpoint .key-date-marker { background: var(--accent-blue); }
.key-date.market .key-date-marker { background: var(--accent-green); }

.date-significance {
    display: block;
    font-size: 0.8rem;
    color: var(--text-muted);
    margin-top: 4px;
    font-style: italic;
}

/* Sources */
.sources-section {
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid var(--border);
}

.sources-title {
    font-size: 0.7rem;
    text-transform: uppercase;
    letter-spacing: 0.1em;
    color: var(--text-muted);
    margin-bottom: 12px;
}

.sources-list {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.source-tag {
    font-size: 0.8rem;
    padding: 6px 10px;
    background: var(--bg-tertiary);
    border-radius: 4px;
}

.source-tag a {
    color: var(--accent-blue);
    text-decoration: none;
}

.source-tag a:hover {
    text-decoration: underline;
}

/* Report Frontmatter */
.report-frontmatter {
    padding: 24px 32px;
    border-bottom: 1px solid var(--border);
    background: var(--bg-tertiary);
}

.report-frontmatter > div:first-child {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 32px;
}

/* Report Footer */
.report-footer {
    padding: 32px;
    border-top: 2px solid var(--accent-gold);
    margin-top: 32px;
    background: var(--bg-primary);
}

/* Action Matrix Intro */
.action-matrix-intro {
    color: var(--text-secondary);
    margin-bottom: 24px;
}

/* Action Category */
.action-category {
    margin-bottom: 28px;
}

/* Action Category Headers */
.action-category-header {
    font-size: 0.8rem;
    text-transform: uppercase;
    margin-bottom: 16px;
    display: flex;
    align-items: center;
    gap: 8px;
}

.action-category-header.category-etf { color: var(--accent-blue); }
.action-category-header.category-country { color: var(--accent-gold); }
.action-category-header.category-sector { color: var(--accent-green); }
.action-category-header.category-commodity { color: var(--accent-orange); }

.action-icon {
    width: 24px;
    height: 24px;
    border-radius: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
}

.action-icon.icon-etf { background: rgba(74, 158, 255, 0.15); }
.action-icon.icon-country { background: rgba(212, 160, 18, 0.15); }
.action-icon.icon-sector { background: rgba(0, 212, 170, 0.15); }
.action-icon.icon-commodity { background: rgba(255, 140, 66, 0.15); }

/* Action Grid (rows) */
.action-grid {
    display: grid;
    gap: 12px;
}

.action-row {
    background: var(--bg-tertiary);
    border-radius: 12px;
    padding: 20px;
    display: grid;
    grid-template-columns: 100px 160px 1fr;
    gap: 20px;
    align-items: center;
}

.action-entity {
    min-width: 0;
}

.entity-ticker {
    font-family: 'DM Mono', monospace;
    font-size: 1.3rem;
    color: var(--accent-blue);
    font-weight: 600;
}

.entity-name {
    font-size: 1.1rem;
    font-weight: 600;
}

.entity-type {
    font-size: 0.7rem;
    color: var(--text-muted);
    margin-top: 2px;
}

.action-signal {
    text-align: center;
}

.signal-badge {
    padding: 8px 12px;
    border-radius: 6px;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    display: inline-block;
}

.signal-badge.small {
    padding: 6px 10px;
    font-size: 0.7rem;
}

/* Signal Badge Colors */
.signal-badge.negative {
    background: rgba(255, 74, 106, 0.15);
    color: var(--accent-red);
}

.signal-badge.positive {
    background: rgba(0, 212, 170, 0.15);
    color: var(--accent-green);
}

.signal-badge.hedge {
    background: rgba(154, 106, 255, 0.15);
    color: var(--accent-purple);
}

.signal-badge.neutral {
    background: rgba(212, 160, 18, 0.15);
    color: var(--accent-gold);
}

.fx-note {
    font-size: 0.75rem;
    color: var(--text-muted);
    margin-top: 6px;
    font-style: italic;
}

.action-rationale {
    font-size: 0.9rem;
    color: var(--text-primary);
    line-height: 1.5;
}

/* Action Card Grid */
.action-card-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
    gap: 12px;
}

.action-card {
    background: var(--bg-tertiary);
    border-radius: 12px;
    padding: 20px;
}

.card-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 12px;
}

.card-entity {
    font-weight: 600;
    text-transform: capitalize;
}

.card-rationale {
    font-size: 0.85rem;
    color: var(--text-secondary);
    line-height: 1.5;
}

/* Exposure Grid */
.exposure-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
}

.exposure-box {
    background: var(--bg-tertiary);
    border-radius: 12px;
    padding: 20px;
}

.exposure-label {
    font-size: 0.7rem;
    text-transform: uppercase;
    color: var(--text-muted);
    margin-bottom: 12px;
}

.etf-chips, .sector-chips, .commodity-chips, .currency-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
}

.etf-chip {
    font-family: 'DM Mono', monospace;
    font-size: 0.9rem;
    padding: 8px 12px;
    background: rgba(74, 158, 255, 0.15);
    color: var(--accent-blue);
    border-radius: 6px;
    font-weight: 500;
}

.sector-chip {
    font-size: 0.85rem;
    padding: 6px 10px;
    background: var(--bg-primary);
    border-radius: 4px;
    color: var(--text-secondary);
}

.commodity-chip {
    font-size: 0.85rem;
    padding: 6px 10px;
    background: rgba(212, 160, 18, 0.15);
    border-radius: 4px;
    color: var(--accent-gold);
}

.currency-chip {
    font-family: 'DM Mono', monospace;
    font-size: 0.85rem;
    padding: 6px 10px;
    background: var(--bg-primary);
    border-radius: 4px;
    color: var(--text-secondary);
}

/* Direction Indicators */
.direction-indicators {
    margin-top: 20px;
    display: flex;
    gap: 16px;
}

.indicator {
    flex: 1;
    border-radius: 10px;
    padding: 16px;
    text-align: center;
}

.indicator.positive {
    background: rgba(0, 212, 170, 0.1);
    border: 1px solid rgba(0, 212, 170, 0.3);
}

.indicator.negative {
    background: rgba(255, 74, 106, 0.1);
    border: 1px solid rgba(255, 74, 106, 0.3);
}

.indicator.elevated {
    background: rgba(255, 140, 66, 0.1);
    border: 1px solid rgba(255, 140, 66, 0.3);
}

.indicator.normal {
    background: rgba(74, 158, 255, 0.1);
    border: 1px solid rgba(74, 158, 255, 0.3);
}

.indicator-label {
    font-size: 0.65rem;
    text-transform: uppercase;
    color: var(--text-muted);
    margin-bottom: 6px;
}

.indicator-value {
    font-family: 'DM Mono', monospace;
    font-size: 1.1rem;
    text-transform: uppercase;
}

.indicator.positive .indicator-value { color: var(--accent-green); }
.indicator.negative .indicator-value { color: var(--accent-red); }
.indicator.elevated .indicator-value { color: var(--accent-orange); }
.indicator.normal .indicator-value { color: var(--accent-blue); }

/* Country Exposure */
.country-exposure {
    margin-top: 20px;
}

.country-cards {
    display: flex;
    flex-wrap: wrap;
    gap: 12px;
}

.country-card {
    background: var(--bg-tertiary);
    border-radius: 8px;
    padding: 12px 16px;
    min-width: 150px;
}

.country-name {
    font-weight: 600;
    margin-bottom: 6px;
}

.country-etfs {
    font-family: 'DM Mono', monospace;
    font-size: 0.8rem;
    color: var(--accent-blue);
}

.country-currency {
    font-size: 0.75rem;
    color: var(--text-muted);
    margin-top: 4px;
}

/* Responsive */
@media (max-width: 768px) {
    .action-row {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .exposure-grid {
        grid-template-columns: 1fr;
    }

    .direction-indicators {
        flex-direction: column;
    }
}

/* ===========================================
   PRINT STYLES - High-End PDF Output
   =========================================== */
@media print {
    /* Force color printing and reset */
    * {
        -webkit-print-color-adjust: exact !important;
        print-color-adjust: exact !important;
        color-adjust: exact !important;
    }

    /* Base typography */
    html, body {
        background: #ffffff !important;
        color: #1a1a2e !important;
        font-size: 10pt !important;
        line-height: 1.5 !important;
        font-family: 'Plus Jakarta Sans', -apple-system, sans-serif !important;
    }

    /* Hide screen-only elements */
    nav, footer, .query-section, .trending-section, .results-section,
    .loading-overlay, .report-actions-header, .close-report, .report-btn {
        display: none !important;
    }

    /* Report modal - make static */
    .report-modal {
        position: static !important;
        background: #ffffff !important;
        padding: 0 !important;
        display: block !important;
        overflow: visible !important;
        height: auto !important;
    }

    .report-container {
        box-shadow: none !important;
        border: none !important;
        background: #ffffff !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    /* ===== HEADER ===== */
    .report-header {
        background: #ffffff !important;
        padding: 40pt 40pt 24pt 40pt !important;
        border-bottom: 2pt solid #c9a227 !important;
        margin-bottom: 0 !important;
    }

    .report-header h2 {
        font-size: 22pt !important;
        font-weight: 600 !important;
        color: #1a1a2e !important;
        margin: 8pt 0 !important;
        letter-spacing: -0.02em !important;
    }

    .report-prediction {
        font-size: 11pt !important;
        color: #c9a227 !important;
        font-weight: 500 !important;
        margin: 12pt 0 !important;
    }

    .report-meta {
        font-size: 9pt !important;
        color: #666 !important;
    }

    /* ===== FRONTMATTER ===== */
    .report-frontmatter {
        background: #f8f9fa !important;
        padding: 28pt 40pt !important;
        border-bottom: 1pt solid #e0e0e0 !important;
        page-break-after: always !important;
    }

    .report-frontmatter > div:first-child {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 32pt !important;
    }

    .report-frontmatter p {
        font-size: 9pt !important;
        line-height: 1.6 !important;
        color: #444 !important;
    }

    /* ===== REPORT BODY ===== */
    .report-body {
        padding: 32pt 40pt !important;
        background: #ffffff !important;
    }

    /* ===== SECTIONS ===== */
    .report-section {
        margin-bottom: 28pt !important;
        padding-bottom: 24pt !important;
        border-bottom: 1pt solid #e8e8e8 !important;
        page-break-inside: avoid !important;
    }

    .report-section:last-child {
        border-bottom: none !important;
    }

    .report-section-title {
        font-size: 13pt !important;
        font-weight: 600 !important;
        color: #1a1a2e !important;
        margin-bottom: 18pt !important;
        display: flex !important;
        align-items: center !important;
        gap: 10pt !important;
        page-break-after: avoid !important;
    }

    .report-section-title .num {
        font-family: 'DM Mono', monospace !important;
        font-size: 9pt !important;
        font-weight: 500 !important;
        padding: 4pt 10pt !important;
        background: #f5f5f5 !important;
        border: 1pt solid #c9a227 !important;
        border-radius: 4pt !important;
        color: #c9a227 !important;
    }

    /* ===== BOTTOM LINE / EXECUTIVE SUMMARY ===== */
    .bottom-line {
        border: 1.5pt solid #c9a227 !important;
        border-radius: 8pt !important;
        padding: 20pt !important;
        background: #fffdf5 !important;
    }

    .bottom-line-grid {
        display: flex !important;
        gap: 16pt !important;
    }

    .bottom-line-item {
        flex: 1 !important;
        padding: 14pt !important;
        background: #ffffff !important;
        border: 1pt solid #e8e8e8 !important;
        border-radius: 6pt !important;
    }

    .bottom-line-label {
        font-size: 7pt !important;
        text-transform: uppercase !important;
        letter-spacing: 0.08em !important;
        color: #888 !important;
        margin-bottom: 6pt !important;
    }

    .bottom-line-value {
        font-size: 14pt !important;
        font-weight: 600 !important;
        color: #1a1a2e !important;
    }

    .bottom-line-value.mono {
        font-family: 'DM Mono', monospace !important;
        font-size: 11pt !important;
    }

    .bottom-line-value.state-critical { color: #dc2626 !important; }
    .bottom-line-value.state-stable { color: #059669 !important; }
    .bottom-line-value.signal-green { color: #059669 !important; }
    .bottom-line-value.signal-red { color: #dc2626 !important; }
    .bottom-line-value.signal-blue { color: #2563eb !important; }

    .bottom-line-subtext {
        font-size: 8pt !important;
        color: #666 !important;
        margin-top: 4pt !important;
    }

    /* Hinge Score Colors */
    .hinge-score.score-positive { color: #059669 !important; }
    .hinge-score.score-negative { color: #dc2626 !important; }
    .hinge-score.score-neutral { color: #a67c00 !important; }

    .hinge-status.critical {
        background: #fef2f2 !important;
        color: #dc2626 !important;
        border: 1pt solid #fca5a5 !important;
    }

    .hinge-status.elevated {
        background: #fff7ed !important;
        color: #d97706 !important;
        border: 1pt solid #fed7aa !important;
    }

    .hinge-status.stable {
        background: #e8faf4 !important;
        color: #059669 !important;
        border: 1pt solid #86efac !important;
    }

    .hinge-status.decaying {
        background: #f5f3ff !important;
        color: #7c3aed !important;
        border: 1pt solid #c4b5fd !important;
    }

    /* ===== FRAGILITY MATRIX ===== */
    .fragility-matrix {
        display: grid !important;
        grid-template-columns: 100pt 1fr 1fr !important;
        border: 1pt solid #ddd !important;
        border-radius: 6pt !important;
        overflow: hidden !important;
        page-break-inside: avoid !important;
        gap: 1pt !important;
        background: #e8e8e8 !important;
    }

    .matrix-corner {
        background: #f8f9fa !important;
    }

    .matrix-header {
        padding: 12pt !important;
        text-align: center !important;
        font-size: 8pt !important;
        text-transform: uppercase !important;
        font-weight: 600 !important;
        background: #f8f9fa !important;
    }

    .matrix-header.negative { color: #dc2626 !important; }
    .matrix-header.positive { color: #059669 !important; }

    .matrix-row-label {
        padding: 12pt !important;
        font-size: 8pt !important;
        text-transform: uppercase !important;
        font-weight: 600 !important;
        background: #f8f9fa !important;
        display: flex !important;
        align-items: center !important;
        justify-content: center !important;
    }

    .matrix-row-label.high { color: #dc2626 !important; }
    .matrix-row-label.low { color: #059669 !important; }

    .matrix-cell {
        padding: 14pt !important;
        background: #ffffff !important;
    }

    .matrix-cell.active {
        background: #fffdf5 !important;
        border: 2pt solid #c9a227 !important;
    }

    .matrix-cell h4 {
        font-size: 9pt !important;
        font-weight: 600 !important;
        margin-bottom: 6pt !important;
    }

    .matrix-cell.opportunistic h4 { color: #7c3aed !important; }
    .matrix-cell.sprint h4 { color: #059669 !important; }
    .matrix-cell.exit h4 { color: #dc2626 !important; }
    .matrix-cell.scale h4 { color: #2563eb !important; }

    .matrix-cell p {
        font-size: 8pt !important;
        color: #666 !important;
        line-height: 1.4 !important;
    }

    .matrix-indicator {
        margin-top: 10pt !important;
        display: flex !important;
        align-items: center !important;
        gap: 6pt !important;
        font-size: 7pt !important;
        text-transform: uppercase !important;
        color: #c9a227 !important;
    }

    .matrix-indicator .dot {
        width: 6pt !important;
        height: 6pt !important;
        background: #c9a227 !important;
        border-radius: 50% !important;
        animation: none !important;
    }

    /* ===== HINGE TABLE ===== */
    .hinge-table {
        width: 100% !important;
        border-collapse: collapse !important;
        font-size: 9pt !important;
    }

    .hinge-table th {
        background: #f5f5f5 !important;
        padding: 10pt 12pt !important;
        border: 1pt solid #ddd !important;
        font-size: 7pt !important;
        text-transform: uppercase !important;
        letter-spacing: 0.05em !important;
        color: #666 !important;
        font-weight: 600 !important;
        text-align: left !important;
    }

    .hinge-table td {
        padding: 10pt 12pt !important;
        border: 1pt solid #e8e8e8 !important;
        background: #ffffff !important;
        vertical-align: top !important;
    }

    .hinge-status {
        display: inline-block !important;
        padding: 3pt 8pt !important;
        font-size: 7pt !important;
        font-weight: 600 !important;
        text-transform: uppercase !important;
        border-radius: 3pt !important;
    }

    /* ===== ACTION MATRIX ===== */
    .action-matrix-intro {
        color: #555 !important;
        margin-bottom: 20pt !important;
        font-size: 9pt !important;
    }

    .action-category {
        margin-bottom: 24pt !important;
    }

    .action-category-header {
        font-size: 9pt !important;
        font-weight: 600 !important;
        text-transform: uppercase !important;
        letter-spacing: 0.05em !important;
        margin-bottom: 14pt !important;
        padding-bottom: 8pt !important;
        border-bottom: 1pt solid #eee !important;
        page-break-after: avoid !important;
    }

    .action-category-header.category-etf { color: #2563eb !important; }
    .action-category-header.category-country { color: #a67c00 !important; }
    .action-category-header.category-sector { color: #059669 !important; }
    .action-category-header.category-commodity { color: #d97706 !important; }

    .action-icon {
        width: 18pt !important;
        height: 18pt !important;
        font-size: 10pt !important;
        border-radius: 3pt !important;
    }

    .action-icon.icon-etf { background: #e8f4fd !important; }
    .action-icon.icon-country { background: #fef9e7 !important; }
    .action-icon.icon-sector { background: #e8faf4 !important; }
    .action-icon.icon-commodity { background: #fff7ed !important; }

    .action-grid {
        display: flex !important;
        flex-direction: column !important;
        gap: 10pt !important;
    }

    .action-row {
        display: grid !important;
        grid-template-columns: 90pt 120pt 1fr !important;
        gap: 16pt !important;
        padding: 14pt 16pt !important;
        background: #f8f9fa !important;
        border: 1pt solid #e8e8e8 !important;
        border-radius: 6pt !important;
        border-left: 3pt solid #4a9eff !important;
        page-break-inside: avoid !important;
        align-items: start !important;
    }

    .action-entity {
        min-width: 0 !important;
    }

    .entity-ticker {
        font-family: 'DM Mono', monospace !important;
        font-size: 12pt !important;
        font-weight: 600 !important;
        color: #2563eb !important;
    }

    .entity-name {
        font-size: 11pt !important;
        font-weight: 600 !important;
        color: #1a1a2e !important;
    }

    .entity-type {
        font-size: 7pt !important;
        color: #888 !important;
        text-transform: uppercase !important;
        letter-spacing: 0.05em !important;
        margin-top: 3pt !important;
    }

    .action-signal {
        text-align: center !important;
    }

    .signal-badge {
        display: inline-block !important;
        padding: 6pt 10pt !important;
        font-size: 7pt !important;
        font-weight: 700 !important;
        text-transform: uppercase !important;
        letter-spacing: 0.03em !important;
        border-radius: 4pt !important;
        border: 1pt solid currentColor !important;
    }

    .signal-badge.negative {
        background: #fef2f2 !important;
        color: #dc2626 !important;
        border-color: #fca5a5 !important;
    }

    .signal-badge.positive {
        background: #e8faf4 !important;
        color: #059669 !important;
        border-color: #86efac !important;
    }

    .signal-badge.hedge {
        background: #f5f3ff !important;
        color: #7c3aed !important;
        border-color: #c4b5fd !important;
    }

    .signal-badge.neutral {
        background: #fef9e7 !important;
        color: #a67c00 !important;
        border-color: #f5d56e !important;
    }

    .fx-note {
        font-size: 7pt !important;
        color: #666 !important;
        font-style: italic !important;
        margin-top: 6pt !important;
    }

    .action-rationale {
        font-size: 9pt !important;
        color: #444 !important;
        line-height: 1.5 !important;
    }

    /* Action Cards */
    .action-card-grid {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 10pt !important;
    }

    .action-card {
        padding: 14pt !important;
        background: #f8f9fa !important;
        border: 1pt solid #e8e8e8 !important;
        border-radius: 6pt !important;
        page-break-inside: avoid !important;
    }

    .card-header {
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
        margin-bottom: 10pt !important;
    }

    .card-entity {
        font-size: 10pt !important;
        font-weight: 600 !important;
        color: #1a1a2e !important;
        text-transform: capitalize !important;
    }

    .card-rationale {
        font-size: 8pt !important;
        color: #555 !important;
        line-height: 1.5 !important;
    }

    /* ===== EXPOSURE GRID ===== */
    .exposure-grid {
        display: grid !important;
        grid-template-columns: 1fr 1fr !important;
        gap: 14pt !important;
    }

    .exposure-box {
        padding: 14pt !important;
        background: #f8f9fa !important;
        border: 1pt solid #e8e8e8 !important;
        border-radius: 6pt !important;
    }

    .exposure-label {
        font-size: 7pt !important;
        text-transform: uppercase !important;
        letter-spacing: 0.08em !important;
        color: #888 !important;
        margin-bottom: 10pt !important;
        font-weight: 600 !important;
    }

    .etf-chips, .sector-chips, .commodity-chips, .currency-chips {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 6pt !important;
    }

    .etf-chip {
        font-family: 'DM Mono', monospace !important;
        font-size: 9pt !important;
        font-weight: 600 !important;
        padding: 5pt 10pt !important;
        background: #e8f4fd !important;
        color: #2563eb !important;
        border: 1pt solid #b3d4fc !important;
        border-radius: 4pt !important;
    }

    .sector-chip {
        font-size: 8pt !important;
        padding: 5pt 10pt !important;
        background: #f5f5f5 !important;
        color: #444 !important;
        border: 1pt solid #ddd !important;
        border-radius: 4pt !important;
    }

    .commodity-chip {
        font-size: 8pt !important;
        padding: 5pt 10pt !important;
        background: #fef9e7 !important;
        color: #a67c00 !important;
        border: 1pt solid #f5d56e !important;
        border-radius: 4pt !important;
    }

    .currency-chip {
        font-family: 'DM Mono', monospace !important;
        font-size: 8pt !important;
        padding: 5pt 10pt !important;
        background: #f5f5f5 !important;
        color: #444 !important;
        border: 1pt solid #ddd !important;
        border-radius: 4pt !important;
    }

    /* Direction Indicators */
    .direction-indicators {
        display: flex !important;
        gap: 14pt !important;
        margin-top: 16pt !important;
    }

    .indicator {
        flex: 1 !important;
        padding: 14pt !important;
        text-align: center !important;
        border-radius: 6pt !important;
    }

    .indicator.positive {
        background: #e8faf4 !important;
        border: 1pt solid #86efac !important;
    }

    .indicator.negative {
        background: #fef2f2 !important;
        border: 1pt solid #fca5a5 !important;
    }

    .indicator.elevated {
        background: #fff7ed !important;
        border: 1pt solid #fed7aa !important;
    }

    .indicator.normal {
        background: #e8f4fd !important;
        border: 1pt solid #b3d4fc !important;
    }

    .indicator-label {
        font-size: 7pt !important;
        text-transform: uppercase !important;
        letter-spacing: 0.08em !important;
        color: #666 !important;
        margin-bottom: 6pt !important;
    }

    .indicator-value {
        font-family: 'DM Mono', monospace !important;
        font-size: 11pt !important;
        font-weight: 600 !important;
        text-transform: uppercase !important;
    }

    .indicator.positive .indicator-value { color: #059669 !important; }
    .indicator.negative .indicator-value { color: #dc2626 !important; }
    .indicator.elevated .indicator-value { color: #d97706 !important; }
    .indicator.normal .indicator-value { color: #2563eb !important; }

    /* Country Cards */
    .country-exposure {
        margin-top: 16pt !important;
    }

    .country-cards {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 10pt !important;
    }

    .country-card {
        padding: 12pt !important;
        background: #f8f9fa !important;
        border: 1pt solid #e8e8e8 !important;
        border-radius: 6pt !important;
        min-width: 120pt !important;
    }

    .country-name {
        font-size: 10pt !important;
        font-weight: 600 !important;
        color: #1a1a2e !important;
        margin-bottom: 6pt !important;
    }

    .country-etfs {
        font-family: 'DM Mono', monospace !important;
        font-size: 8pt !important;
        color: #2563eb !important;
    }

    .country-currency {
        font-size: 7pt !important;
        color: #888 !important;
        margin-top: 4pt !important;
    }

    /* ===== TRIGGER EVENTS ===== */
    .trigger-events {
        display: flex !important;
        flex-direction: column !important;
        gap: 10pt !important;
    }

    .trigger-event {
        display: grid !important;
        grid-template-columns: 32pt 1fr 80pt !important;
        gap: 14pt !important;
        padding: 14pt !important;
        background: #f8f9fa !important;
        border: 1pt solid #e8e8e8 !important;
        border-left: 3pt solid #ef4444 !important;
        border-radius: 6pt !important;
        page-break-inside: avoid !important;
        align-items: start !important;
    }

    .trigger-icon {
        font-size: 16pt !important;
        text-align: center !important;
    }

    .trigger-content h4 {
        font-size: 10pt !important;
        font-weight: 600 !important;
        color: #1a1a2e !important;
        margin-bottom: 6pt !important;
    }

    .trigger-content p {
        font-size: 8pt !important;
        color: #555 !important;
        line-height: 1.5 !important;
    }

    .trigger-threshold {
        text-align: center !important;
        padding: 10pt !important;
        background: #ffffff !important;
        border: 1pt solid #ddd !important;
        border-radius: 4pt !important;
    }

    .trigger-threshold-value {
        font-family: 'DM Mono', monospace !important;
        font-size: 11pt !important;
        font-weight: 600 !important;
        color: #ef4444 !important;
    }

    .trigger-threshold-label {
        font-size: 6pt !important;
        text-transform: uppercase !important;
        letter-spacing: 0.05em !important;
        color: #888 !important;
        margin-top: 4pt !important;
    }

    /* ===== SCENARIOS ===== */
    .scenario-cards {
        display: grid !important;
        grid-template-columns: 1fr 1fr 1fr !important;
        gap: 12pt !important;
    }

    .scenario-card {
        padding: 14pt !important;
        background: #f8f9fa !important;
        border: 1pt solid #e8e8e8 !important;
        border-radius: 6pt !important;
        page-break-inside: avoid !important;
    }

    .scenario-header {
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
        margin-bottom: 10pt !important;
        padding-bottom: 8pt !important;
        border-bottom: 1pt solid #eee !important;
    }

    .scenario-name {
        font-size: 9pt !important;
        font-weight: 600 !important;
        color: #1a1a2e !important;
    }

    .scenario-prob {
        font-family: 'DM Mono', monospace !important;
        font-size: 10pt !important;
        font-weight: 600 !important;
        color: #c9a227 !important;
    }

    .scenario-desc {
        font-size: 8pt !important;
        color: #555 !important;
        line-height: 1.5 !important;
        margin-bottom: 10pt !important;
    }

    .scenario-response {
        font-size: 8pt !important;
        padding: 10pt !important;
        background: #ffffff !important;
        border-left: 2pt solid #2563eb !important;
        color: #444 !important;
        line-height: 1.5 !important;
    }

    /* ===== ACTION ITEMS ===== */
    .action-items {
        display: flex !important;
        flex-direction: column !important;
        gap: 8pt !important;
    }

    .action-item {
        display: grid !important;
        grid-template-columns: 60pt 1fr 70pt !important;
        gap: 14pt !important;
        padding: 12pt !important;
        background: #f8f9fa !important;
        border: 1pt solid #e8e8e8 !important;
        border-radius: 6pt !important;
        align-items: start !important;
    }

    .action-priority {
        font-size: 7pt !important;
        font-weight: 700 !important;
        text-transform: uppercase !important;
        padding: 4pt 8pt !important;
        border-radius: 3pt !important;
        text-align: center !important;
    }

    .action-priority.high,
    .action-priority.immediate {
        background: #fef2f2 !important;
        color: #dc2626 !important;
        border: 1pt solid #fca5a5 !important;
    }

    .action-priority.medium,
    .action-priority.short {
        background: #fff7ed !important;
        color: #d97706 !important;
        border: 1pt solid #fed7aa !important;
    }

    .action-priority.low {
        background: #e8faf4 !important;
        color: #059669 !important;
        border: 1pt solid #86efac !important;
    }

    .action-content h4 {
        font-size: 9pt !important;
        font-weight: 600 !important;
        color: #1a1a2e !important;
        margin-bottom: 4pt !important;
    }

    .action-content p {
        font-size: 8pt !important;
        color: #555 !important;
        line-height: 1.5 !important;
    }

    .action-timeline {
        font-size: 8pt !important;
        font-weight: 500 !important;
        color: #666 !important;
        text-align: right !important;
    }

    /* ===== HISTORICAL ANALOGS ===== */
    .analogs-grid {
        display: grid !important;
        grid-template-columns: repeat(3, 1fr) !important;
        gap: 12pt !important;
    }

    .analog-card {
        background: #f8f9fa !important;
        border-radius: 6pt !important;
        padding: 14pt !important;
        border-left: 3pt solid #7c3aed !important;
    }

    .analog-header {
        display: flex !important;
        justify-content: space-between !important;
        align-items: center !important;
        margin-bottom: 8pt !important;
    }

    .analog-name {
        font-weight: 600 !important;
        font-size: 9pt !important;
        color: #1a1a2e !important;
    }

    .analog-relevance {
        font-family: 'DM Mono', monospace !important;
        font-size: 7pt !important;
        color: #7c3aed !important;
        background: #f5f3ff !important;
        padding: 2pt 6pt !important;
        border-radius: 3pt !important;
        border: 1pt solid #c4b5fd !important;
    }

    .analog-outcome {
        font-size: 8pt !important;
        color: #555 !important;
        line-height: 1.5 !important;
        margin-bottom: 8pt !important;
    }

    .analog-meta {
        display: flex !important;
        gap: 12pt !important;
        font-size: 7pt !important;
        color: #888 !important;
    }

    /* ===== STAKEHOLDER SECTIONS ===== */
    .stakeholder-section {
        margin-bottom: 20pt !important;
        page-break-inside: avoid !important;
    }

    .stakeholder-header {
        font-size: 9pt !important;
        text-transform: uppercase !important;
        letter-spacing: 0.05em !important;
        margin-bottom: 12pt !important;
        padding-bottom: 6pt !important;
        border-bottom: 1pt solid #e0e0e0 !important;
    }

    .stakeholder-header.investor { color: #2563eb !important; }
    .stakeholder-header.business { color: #059669 !important; }
    .stakeholder-header.policy { color: #a67c00 !important; }

    /* ===== OPPORTUNITY GRID ===== */
    .opportunity-grid {
        display: grid !important;
        grid-template-columns: repeat(3, 1fr) !important;
        gap: 10pt !important;
    }

    .opportunity-card {
        background: #f8f9fa !important;
        border-radius: 6pt !important;
        padding: 12pt !important;
        border: 1pt solid #e0e0e0 !important;
    }

    .opp-action {
        font-weight: 700 !important;
        font-size: 8pt !important;
        text-transform: uppercase !important;
        color: #a67c00 !important;
        margin-bottom: 6pt !important;
    }

    .opp-instrument {
        font-size: 8pt !important;
        color: #1a1a2e !important;
        margin-bottom: 6pt !important;
    }

    .opp-timing {
        font-size: 6pt !important;
        color: #2563eb !important;
        background: #e8f4fd !important;
        padding: 2pt 6pt !important;
        border-radius: 2pt !important;
        border: 1pt solid #bfdbfe !important;
    }

    .opp-rationale {
        font-size: 7pt !important;
        color: #666 !important;
        line-height: 1.4 !important;
        margin-top: 6pt !important;
    }

    /* ===== TRIGGER IMPACT ===== */
    .trigger-impact {
        margin-top: 6pt !important;
        font-size: 8pt !important;
        color: #dc2626 !important;
    }

    /* ===== KEY DATES ===== */
    .key-dates {
        display: flex !important;
        flex-direction: column !important;
        gap: 8pt !important;
    }

    .key-date {
        display: flex !important;
        gap: 12pt !important;
        padding: 12pt !important;
        background: #f8f9fa !important;
        border: 1pt solid #e8e8e8 !important;
        border-radius: 6pt !important;
    }

    .key-date-marker {
        width: 3pt !important;
        background: #c9a227 !important;
        border-radius: 2pt !important;
        flex-shrink: 0 !important;
    }

    .key-date-content h4 {
        font-size: 9pt !important;
        font-weight: 600 !important;
        color: #c9a227 !important;
        margin-bottom: 4pt !important;
    }

    .key-date-content p {
        font-size: 8pt !important;
        color: #555 !important;
        line-height: 1.5 !important;
    }

    /* ===== SOURCES ===== */
    .sources-section {
        margin-top: 20pt !important;
        padding-top: 16pt !important;
        border-top: 1pt solid #e8e8e8 !important;
    }

    .sources-title {
        font-size: 7pt !important;
        text-transform: uppercase !important;
        letter-spacing: 0.08em !important;
        color: #888 !important;
        margin-bottom: 10pt !important;
    }

    .sources-list {
        display: flex !important;
        flex-wrap: wrap !important;
        gap: 6pt !important;
    }

    .source-tag {
        font-size: 7pt !important;
        padding: 4pt 8pt !important;
        background: #f5f5f5 !important;
        border: 1pt solid #ddd !important;
        border-radius: 3pt !important;
    }

    .source-tag a {
        color: #2563eb !important;
        text-decoration: none !important;
    }

    /* ===== FOOTER ===== */
    .report-footer {
        padding: 28pt 40pt !important;
        background: #f8f9fa !important;
        border-top: 2pt solid #c9a227 !important;
        page-break-before: always !important;
        page-break-inside: avoid !important;
    }

    .report-footer p {
        font-size: 8pt !important;
        color: #555 !important;
        line-height: 1.5 !important;
    }

    /* ===== PAGE CONTROL ===== */
    h2, h3, h4 {
        page-break-after: avoid !important;
    }

    .report-section {
        page-break-inside: avoid !important;
    }

    /* Force new pages where needed */
    .report-frontmatter {
        page-break-after: always !important;
    }
}
