/* ═══════════════════════════════════════════════════════════════
   Standard Report Styles (mirrors ReportStyleCatalog.cs)
   ═══════════════════════════════════════════════════════════════ */
:root {
    --report-font-sans: 'Inter', 'Segoe UI', Roboto, Arial, sans-serif;
    --report-font-mono: Consolas, 'Courier New', monospace;
    --report-font-size-body: 12px;
    --report-text-strong: #1e293b;
    --report-text-default: #334155;
    --report-text-muted: #64748b;
    --report-text-subtle: #94a3b8;
    --report-text-soft: #475569;
    --report-border-default: #e2e8f0;
    --report-border-soft: #f1f5f9;
    --report-row-zebra: #f8fafc;
    --report-surface-page: #f8fafc;
    --report-surface-card: #ffffff;
    --report-surface-header: #0f172a;
    --report-surface-header-alt: #1e293b;
    --report-success: #1e293b;
    --report-danger: #dc2626;
    --report-warning: #d97706;
    --report-info: #1d4ed8;
    --report-danger-soft: #fef2f2;
    --report-danger-strong: #b91c1c;
    --report-warning-soft: #fffbeb;
    --report-warning-strong: #b45309;
    --report-critical-soft: #fecaca;
    --report-noncritical-soft: #fef3c7;
    --report-shell-width: 800px;
    --report-shell-screen-width: 1040px;
    --report-space-section: 32px;
    --report-space-card: 24px;
    --report-radius-sm: 4px;
    --report-radius-md: 6px;
    --report-radius-lg: 8px;
}

.report-shell {
    width: min(100%, var(--report-shell-width));
    max-width: var(--report-shell-width);
    margin: 0 auto;
    background: var(--report-surface-card);
    border: 1px solid var(--report-border-default);
    font-family: var(--report-font-sans);
    font-size: var(--report-font-size-body);
    color: var(--report-text-strong);
    box-sizing: border-box;
}

.report-shell *, .report-shell *::before, .report-shell *::after {
    box-sizing: border-box;
}

.pcr-parameter-shell {
    max-width: min(100%, var(--report-shell-screen-width));
    margin: 0 auto;
}

.report-shell.pcr-screen-shell {
    width: min(100%, var(--report-shell-screen-width));
    max-width: var(--report-shell-screen-width);
}

.report-shell.pcr-print-shell {
    width: min(100%, var(--report-shell-width));
    max-width: var(--report-shell-width);
}

/* Header */
.report-shell .report-header {
    padding: var(--report-space-section);
    border-bottom: 2px solid var(--report-border-soft);
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 24px;
}

.report-shell .report-brand {
    min-width: 120px;
}

.report-shell .report-logo {
    width: 120px;
    height: 80px;
    object-fit: contain;
}

.report-shell .report-header-content {
    text-align: right;
    flex: 1;
}

.report-shell .report-title {
    font-size: 20px;
    font-weight: 700;
    color: var(--report-text-strong);
    letter-spacing: -0.5px;
    margin: 0;
}

.report-shell .report-business-name {
    font-size: 13px;
    font-weight: 600;
    color: var(--report-text-default);
    margin-top: 2px;
}

.report-shell .report-business-address {
    font-size: 10px;
    color: var(--report-text-muted);
    max-width: 250px;
    margin-left: auto;
}

.report-shell .report-property-card {
    margin-top: 20px;
    text-align: left;
    background: var(--report-border-soft);
    padding: 16px;
    border: 1px solid var(--report-border-default);
    border-radius: var(--report-radius-sm);
    margin-left: auto;
    max-width: 280px;
}

.report-shell .report-eyebrow {
    font-size: 9px;
    font-weight: 700;
    color: var(--report-text-subtle);
    letter-spacing: 1.5px;
    text-transform: uppercase;
    margin-bottom: 4px;
}

.report-shell .report-property-client {
    font-weight: 700;
    color: var(--report-text-strong);
    font-size: 13px;
}

.report-shell .report-property-name {
    font-size: 12px;
    font-weight: 500;
    color: var(--report-text-default);
}

.report-shell .report-property-address {
    font-size: 10px;
    color: var(--report-text-muted);
}

/* Sections */
.report-shell .report-section {
    padding: var(--report-space-section);
    border-top: 1px solid var(--report-border-default);
    border-bottom: 1px solid var(--report-border-default);
}

/* Footer */
.report-shell .report-footer {
    padding: var(--report-space-section);
    text-align: center;
    font-size: 9px;
    color: var(--report-text-subtle);
    letter-spacing: 2px;
    border-top: 1px solid var(--report-border-soft);
}

/* ═══════════════════════════════════════════════════════════════
   Property Compliance Report Styles (mirrors PropertyCompliance1.html)
   ═══════════════════════════════════════════════════════════════ */

/* Metric Cards */
.report-shell .pcr-metrics-row { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; margin-bottom: 24px; }
.report-shell .pcr-metric-card { border-radius: var(--report-radius-lg); padding: 20px; text-align: center; }
.report-shell .pcr-metric-value { font-size: 32px; font-weight: 800; color: var(--report-text-strong); margin-bottom: 4px; }
.report-shell .pcr-metric-label { font-size: 11px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; }
.report-shell .pcr-metric-trend { font-size: 10px; margin-top: 4px; }
.report-shell .pcr-metric-trend-up { color: #DC2626; }
.report-shell .pcr-metric-trend-down { color: #059669; }
.report-shell .pcr-metric-trend-neutral { color: #6B7280; }
.report-shell .pcr-metric-critical { background: #FEE2E2; border: 1px solid #FECACA; }
.report-shell .pcr-metric-critical .pcr-metric-label { color: #991B1B; }
.report-shell .pcr-metric-outstanding { background: #FEF3C7; border: 1px solid #FDE68A; }
.report-shell .pcr-metric-outstanding .pcr-metric-label { color: #92400E; }
.report-shell .pcr-metric-neutral { background: #F1F5F9; border: 1px solid #E2E8F0; }
.report-shell .pcr-metric-neutral .pcr-metric-label { color: #475569; }

/* Dashboard Two-Column Grid */
.report-shell .pcr-dashboard-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px; }
.report-shell .pcr-chart-panel { border: 1px solid var(--report-border-default); border-radius: var(--report-radius-lg); padding: 20px; }
.report-shell .pcr-chart-title { font-size: 14px; font-weight: 700; margin-bottom: 16px; color: var(--report-text-strong); }

/* Tables */
.report-shell .pcr-table { width: 100%; border-collapse: collapse; font-size: 12px; }
.report-shell .pcr-table th { background: var(--report-border-soft); padding: 10px 12px; text-align: left; font-weight: 600; font-size: 11px; text-transform: uppercase; letter-spacing: 0.5px; color: var(--report-text-soft); border-bottom: 2px solid var(--report-border-default); }
.report-shell .pcr-table td { padding: 8px 12px; border-bottom: 1px solid var(--report-border-soft); color: var(--report-text-strong); vertical-align: top; }
.report-shell .pcr-table tr:last-child td { border-bottom: none; }
.report-shell .pcr-table-wrap { width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
.report-shell .pcr-table-wide { min-width: 720px; }
.report-shell .pcr-table-xwide { min-width: 940px; }

/* Status/Severity Badges */
.report-shell .pcr-severity { display: inline-block; padding: 2px 8px; border-radius: 4px; font-size: 11px; font-weight: 600; }
.report-shell .pcr-severity-critical { background: #FEE2E2; color: #991B1B; }
.report-shell .pcr-severity-defect { background: #FEF3C7; color: #92400E; }
.report-shell .pcr-severity-recommendation { background: #F1F5F9; color: #475569; }

/* Job Status Badges */
.report-shell .pcr-status { display: inline-block; padding: 2px 8px; border-radius: 4px; font-size: 11px; font-weight: 600; }
.report-shell .pcr-status-completed { background: #D1FAE5; color: #065F46; }
.report-shell .pcr-status-inprogress { background: #DBEAFE; color: #1E40AF; }
.report-shell .pcr-status-scheduled { background: #FEF3C7; color: #92400E; }
.report-shell .pcr-status-assigned { background: #E0E7FF; color: #3730A3; }
.report-shell .pcr-status-unassigned { background: #F1F5F9; color: #475569; }
.report-shell .pcr-status-cannotcomplete { background: #FEE2E2; color: #991B1B; }
.report-shell .pcr-status-overdue { background: #FEE2E2; color: #991B1B; }

/* Status Summary */
.report-shell .pcr-status-summary { display: flex; gap: 16px; padding: 12px 16px; background: var(--report-border-soft); border-radius: var(--report-radius-lg); margin-bottom: 16px; font-size: 12px; flex-wrap: wrap; }
.report-shell .pcr-status-summary-item { font-weight: 600; color: var(--report-text-strong); }
.report-shell .pcr-status-summary-label { font-weight: 400; color: var(--report-text-soft); }

/* Part Dividers */
.report-shell .pcr-part-divider { text-align: center; padding: 24px 0; margin: 8px 0; border-top: 2px solid var(--report-border-default); border-bottom: 2px solid var(--report-border-default); }
.report-shell .pcr-part-divider-title { font-size: 18px; font-weight: 800; color: var(--report-text-strong); }
.report-shell .pcr-part-divider-subtitle { font-size: 12px; color: var(--report-text-soft); margin-top: 4px; }

/* Category Header Row */
.report-shell .pcr-category-header td { background: var(--report-border-soft); font-weight: 600; }

/* Truncated Description */
.report-shell .pcr-truncated { cursor: help; border-bottom: 1px dotted var(--report-text-soft); }

/* Section title */
.report-shell .pcr-section-title { font-size: 16px; font-weight: 700; color: var(--report-text-strong); margin: 0 0 16px; }

/* Multi-division banner (Multi-Business spec §5.6) */
.report-shell .pcr-multi-division-banner {
    font-size: 12px;
    color: var(--report-text-soft);
    font-style: italic;
    border-left: 3px solid var(--report-text-soft);
    padding: 6px 12px;
    margin: 0 0 16px;
    background: rgba(0, 0, 0, 0.02);
}

/* Note text */
.report-shell .pcr-note { font-size: 11px; color: var(--report-text-soft); font-style: italic; margin-top: 12px; }

/* Chart legend */
.report-shell .pcr-legend { display: flex; gap: 16px; margin-top: 12px; flex-wrap: wrap; }
.report-shell .pcr-legend-item { display: flex; align-items: center; gap: 6px; font-size: 11px; color: var(--report-text-soft); }
.report-shell .pcr-legend-swatch { width: 12px; height: 12px; border-radius: 2px; }

/* Portfolio table */
.report-shell .pcr-portfolio-compliant { background: #D1FAE5; color: #065F46; display: inline-block; padding: 2px 8px; border-radius: 4px; font-size: 11px; font-weight: 600; }
.report-shell .pcr-portfolio-noncompliant { background: #FEF3C7; color: #92400E; display: inline-block; padding: 2px 8px; border-radius: 4px; font-size: 11px; font-weight: 600; }
.report-shell .pcr-portfolio-critical { background: #FEE2E2; color: #991B1B; display: inline-block; padding: 2px 8px; border-radius: 4px; font-size: 11px; font-weight: 600; }

/* Text alignment utility */
.report-shell .text-right { text-align: right; }

@media screen and (max-width: 1024px) {
    .report-shell.pcr-screen-shell {
        width: min(100%, 1000px);
    }

    .report-shell.pcr-screen-shell .pcr-metrics-row {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }

    .report-shell.pcr-screen-shell .pcr-dashboard-grid {
        grid-template-columns: 1fr;
    }
}

@media screen and (max-width: 768px) {
    .pcr-parameter-shell {
        max-width: 100%;
    }

    .report-shell.pcr-screen-shell {
        width: 100%;
        border-left: none;
        border-right: none;
    }

    .report-shell.pcr-screen-shell .report-header,
    .report-shell.pcr-screen-shell .report-section,
    .report-shell.pcr-screen-shell .report-footer {
        padding: 24px;
    }

    .report-shell.pcr-screen-shell .report-header {
        flex-direction: column;
    }

    .report-shell.pcr-screen-shell .report-header-content,
    .report-shell.pcr-screen-shell .report-business-address {
        text-align: left;
        margin-left: 0;
    }

    .report-shell.pcr-screen-shell .report-property-card {
        margin-left: 0;
        max-width: none;
        width: 100%;
    }

    .report-shell.pcr-screen-shell .pcr-chart-panel {
        padding: 16px;
    }
}

@media screen and (max-width: 480px) {
    .report-shell.pcr-screen-shell .report-header,
    .report-shell.pcr-screen-shell .report-section,
    .report-shell.pcr-screen-shell .report-footer {
        padding: 16px;
    }

    .report-shell.pcr-screen-shell .pcr-metrics-row {
        grid-template-columns: 1fr;
    }

    .report-shell.pcr-screen-shell .pcr-metric-card,
    .report-shell.pcr-screen-shell .pcr-chart-panel,
    .report-shell.pcr-screen-shell .pcr-status-summary {
        padding: 14px;
    }
}

@media print {
    .report-shell,
    .report-shell.pcr-screen-shell,
    .report-shell.pcr-print-shell,
    .report-shell.rsr-screen-shell,
    .report-shell.rsr-print-shell,
    .report-shell.rlr-screen-shell,
    .report-shell.rlr-print-shell,
    .report-shell.wcr-screen-shell,
    .report-shell.wcr-print-shell,
    .report-shell.ycr-screen-shell,
    .report-shell.ycr-print-shell,
    .report-shell.quote-screen-shell,
    .report-shell.quote-print-shell,
    .report-shell.invoice-screen-shell,
    .report-shell.invoice-print-shell,
    .report-shell.po-screen-shell,
    .report-shell.po-print-shell,
    .report-shell.air-screen-shell,
    .report-shell.air-print-shell {
        width: 100%;
        max-width: 100%;
    }

    .report-shell .pcr-chart-panel,
    .report-shell .pcr-dashboard-grid,
    .report-shell .pcr-metric-card,
    .report-shell .pcr-metrics-row,
    .report-shell .report-section,
    .report-shell .pcr-table-wrap,
    .report-shell .rsr-section,
    .report-shell .rsr-defect-card,
    .report-shell .rsr-photo-group,
    .report-shell .report-signature-block,
    .report-shell .rlr-section,
    .report-shell .wcr-job-section,
    .report-shell .wcr-engagement-card,
    .report-shell .ycr-system-card,
    .report-shell .ycr-signatory-block,
    .report-shell .air-job-section {
        break-inside: avoid;
    }

    .report-shell .rlr-section,
    .report-shell .rlr-section.report-section,
    .report-shell .rlr-section .pcr-table-wrap,
    .report-shell .rlr-asset-block {
        break-inside: auto;
        page-break-inside: auto;
    }

    .report-shell .rlr-section > .rsr-job-details,
    .report-shell .rlr-asset-header,
    .report-shell .rlr-prompt-table tr {
        break-inside: avoid;
        page-break-inside: avoid;
    }

    .report-shell .rlr-asset-header {
        break-after: avoid;
        page-break-after: avoid;
    }
}

/* ═══════════════════════════════════════════════════════════════
   Shared Report Component Styles
   ═══════════════════════════════════════════════════════════════ */

/* Signature Block */
.report-shell .report-signature-block { display: flex; gap: 32px; margin-top: 20px; padding-top: 16px; border-top: 1px solid var(--report-border-soft); }
.report-shell .report-signature-entry { flex: 1; }
.report-shell .report-signature-name { font-weight: 600; color: var(--report-text-strong); font-size: 12px; margin-top: 4px; }
.report-shell .report-signature-license { font-size: 10px; color: var(--report-text-muted); }
.report-shell .report-signature-img { max-width: 160px; max-height: 60px; object-fit: contain; margin-top: 6px; }

/* Photo Grid */
.report-shell .report-photo-thumbnails { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 8px; }
.report-shell .report-photo-thumb-wrap { width: 100px; }
.report-shell .report-photo-thumb { width: 100px; height: 75px; object-fit: cover; border-radius: var(--report-radius-sm); border: 1px solid var(--report-border-default); }
.report-shell .report-photo-caption { font-size: 9px; color: var(--report-text-muted); text-align: center; margin-top: 2px; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.report-shell .report-photo-grid-title { font-size: 12px; font-weight: 600; color: var(--report-text-strong); margin-bottom: 4px; }

/* ═══════════════════════════════════════════════════════════════
   Routine Summary Report Styles (rsr-)
   ═══════════════════════════════════════════════════════════════ */
.report-shell.rsr-screen-shell { width: min(100%, var(--report-shell-screen-width)); max-width: var(--report-shell-screen-width); }
.report-shell.rsr-print-shell { width: min(100%, var(--report-shell-width)); max-width: var(--report-shell-width); }

/* Job Details Grid */
.report-shell .rsr-job-details { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 24px; margin-bottom: 16px; padding: 12px 16px; background: var(--report-border-soft); border-radius: var(--report-radius-md); }
.report-shell .rsr-job-detail-row { display: flex; gap: 8px; font-size: 12px; }
.report-shell .rsr-job-detail-label { font-weight: 600; color: var(--report-text-soft); min-width: 90px; }
.report-shell .rsr-job-detail-value { color: var(--report-text-strong); }

/* Result Badges */
.report-shell .rsr-result { display: inline-block; padding: 2px 8px; border-radius: 4px; font-size: 11px; font-weight: 600; }
.report-shell .result-pass { background: #D1FAE5; color: #065F46; }
.report-shell .result-fail { background: #FEE2E2; color: #991B1B; }
.report-shell .result-not-tested { background: #F1F5F9; color: #475569; }
.report-shell .result-outstanding { background: #FEF3C7; color: #92400E; }
.report-shell .result-fail-outstanding { background: #FEE2E2; color: #991B1B; }
.report-shell .result-not-tested-outstanding { background: #FEF3C7; color: #92400E; }
.report-shell .result-pending { background: #F1F5F9; color: #475569; }

/* Defect References */
.report-shell .rsr-defect-ref { display: inline-block; padding: 1px 6px; border-radius: 3px; font-size: 10px; font-weight: 600; margin-right: 4px; background: #FEF3C7; color: #92400E; }
.report-shell .rsr-defect-critical { background: #FEE2E2; color: #991B1B; }

/* Prompt Values */
.report-shell .rsr-prompt-value { display: block; font-size: 11px; color: var(--report-text-default); }
.report-shell .rsr-prompt-label { font-weight: 600; color: var(--report-text-soft); }
.report-shell .rsr-prompt-uom { color: var(--report-text-muted); font-size: 10px; }

/* Dynamic Field values mapped into the report (spec 9). Sits below the prompt values in the same
   cell, separated by a hairline so the two sets stay visually distinct. */
.report-shell .rsr-custom-field { display: block; font-size: 11px; color: var(--report-text-default); }
.report-shell .rsr-custom-field:first-of-type { margin-top: 4px; padding-top: 4px; border-top: 1px solid var(--report-border-default); }
.report-shell .rsr-custom-field-label { font-weight: 600; color: var(--report-text-soft); }

/* Defect Cards */
.report-shell .rsr-defect-card { padding: 12px 16px; border: 1px solid var(--report-border-default); border-radius: var(--report-radius-md); margin-bottom: 12px; }
.report-shell .rsr-defect-header { display: flex; align-items: center; gap: 12px; margin-bottom: 6px; }
.report-shell .rsr-defect-no { font-weight: 700; font-size: 13px; color: var(--report-text-strong); }
.report-shell .rsr-defect-asset { font-size: 12px; font-weight: 500; color: var(--report-text-default); }
.report-shell .rsr-defect-prompt { font-size: 11px; color: var(--report-text-soft); font-style: italic; margin-top: 4px; }
.report-shell .rsr-defect-description { font-size: 12px; color: var(--report-text-default); margin-top: 6px; }

/* Photo Groups */
.report-shell .rsr-photo-group { margin-bottom: 16px; }
.report-shell .rsr-photo-group-title { font-size: 12px; font-weight: 600; color: var(--report-text-strong); margin-bottom: 6px; }

/* ═══════════════════════════════════════════════════════════════
   Routine Logbook Report Styles (rlr-)
   ═══════════════════════════════════════════════════════════════ */
.report-shell.rlr-screen-shell { width: min(100%, var(--report-shell-screen-width)); max-width: var(--report-shell-screen-width); }
.report-shell.rlr-print-shell { width: min(100%, var(--report-shell-width)); max-width: var(--report-shell-width); }

.report-shell .rlr-prompt-row { padding: 6px 12px; font-size: 12px; }
.report-shell .rlr-zebra-even { background: #ffffff; }
.report-shell .rlr-zebra-odd { background: var(--report-row-zebra); }
.report-shell .rlr-prompt-row .rsr-prompt-value { display: inline; margin-left: 8px; }
.report-shell .rlr-prompt-item-no { font-weight: 600; color: var(--report-text-soft); margin-right: 8px; min-width: 40px; display: inline-block; }
.report-shell .rlr-prompt-text { color: var(--report-text-default); }
.report-shell .rlr-prompt-result { float: right; }
.report-shell .rlr-asset-header { padding: 8px 12px; background: var(--report-border-soft); font-weight: 600; font-size: 12px; color: var(--report-text-strong); border-bottom: 1px solid var(--report-border-default); }

/* ═══════════════════════════════════════════════════════════════
   Work Completion Report Styles (wcr-)
   ═══════════════════════════════════════════════════════════════ */
.report-shell.wcr-screen-shell { width: min(100%, var(--report-shell-screen-width)); max-width: var(--report-shell-screen-width); }
.report-shell.wcr-print-shell { width: min(100%, var(--report-shell-width)); max-width: var(--report-shell-width); }

.report-shell .wcr-engagement-card { padding: 16px; background: var(--report-border-soft); border-radius: var(--report-radius-md); margin-bottom: 16px; display: grid; grid-template-columns: 1fr 1fr; gap: 6px 24px; }
.report-shell .wcr-engagement-row { display: flex; gap: 8px; font-size: 12px; }
.report-shell .wcr-engagement-label { font-weight: 600; color: var(--report-text-soft); min-width: 110px; }
.report-shell .wcr-engagement-value { color: var(--report-text-strong); }

.report-shell .wcr-job-section { margin-bottom: 8px; }
.report-shell .wcr-job-header { padding: 10px 16px; background: var(--report-surface-header); color: #fff; border-radius: var(--report-radius-sm) var(--report-radius-sm) 0 0; display: flex; justify-content: space-between; align-items: center; }
.report-shell .wcr-job-header-title { font-weight: 700; font-size: 13px; }
.report-shell .wcr-job-header-status { font-size: 11px; opacity: 0.85; }
.report-shell .wcr-job-body { padding: 16px; border: 1px solid var(--report-border-default); border-top: none; border-radius: 0 0 var(--report-radius-sm) var(--report-radius-sm); }
.report-shell .wcr-job-meta { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 16px; font-size: 12px; margin-bottom: 12px; }
.report-shell .wcr-job-meta-label { font-weight: 600; color: var(--report-text-soft); }

.report-shell .wcr-task-card { padding: 10px 0; border-bottom: 1px solid var(--report-border-soft); }
.report-shell .wcr-task-card:last-child { border-bottom: none; }
.report-shell .wcr-task-header { display: flex; justify-content: space-between; margin-bottom: 4px; }
.report-shell .wcr-task-no { font-weight: 600; font-size: 12px; }
.report-shell .wcr-task-status { font-size: 11px; color: var(--report-text-soft); }
.report-shell .wcr-task-asset { font-size: 11px; color: var(--report-text-muted); }
.report-shell .wcr-task-description { font-size: 12px; color: var(--report-text-default); margin-top: 4px; }
.report-shell .wcr-task-action { font-size: 12px; color: var(--report-text-default); margin-top: 2px; font-style: italic; }

.report-shell .wcr-materials-table { margin-top: 12px; }
.report-shell .wcr-visits-table { margin-top: 12px; }

/* ═══════════════════════════════════════════════════════════════
   Yearly Condition Report Styles (ycr-)
   ═══════════════════════════════════════════════════════════════ */
.report-shell.ycr-screen-shell { width: min(100%, var(--report-shell-screen-width)); max-width: var(--report-shell-screen-width); }
.report-shell.ycr-print-shell { width: min(100%, var(--report-shell-width)); max-width: var(--report-shell-width); }

/* Compliance Tiles */
.report-shell .ycr-compliance-tiles { display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px; margin-bottom: 24px; }
.report-shell .ycr-tile { border-radius: var(--report-radius-lg); padding: 16px; text-align: center; }
.report-shell .ycr-tile-value { font-size: 28px; font-weight: 800; }
.report-shell .ycr-tile-label { font-size: 10px; font-weight: 600; text-transform: uppercase; letter-spacing: 0.5px; margin-top: 4px; }
.report-shell .ycr-tile-critical { background: #FEE2E2; border: 1px solid #FECACA; }
.report-shell .ycr-tile-critical .ycr-tile-value { color: #991B1B; }
.report-shell .ycr-tile-critical .ycr-tile-label { color: #991B1B; }
.report-shell .ycr-tile-noncritical { background: #FEF3C7; border: 1px solid #FDE68A; }
.report-shell .ycr-tile-noncritical .ycr-tile-value { color: #92400E; }
.report-shell .ycr-tile-noncritical .ycr-tile-label { color: #92400E; }
.report-shell .ycr-tile-nonconformance { background: #DBEAFE; border: 1px solid #BFDBFE; }
.report-shell .ycr-tile-nonconformance .ycr-tile-value { color: #1E40AF; }
.report-shell .ycr-tile-nonconformance .ycr-tile-label { color: #1E40AF; }
.report-shell .ycr-tile-missed { background: #F1F5F9; border: 1px solid #E2E8F0; }
.report-shell .ycr-tile-missed .ycr-tile-value { color: #475569; }
.report-shell .ycr-tile-missed .ycr-tile-label { color: #475569; }

/* System Cards */
.report-shell .ycr-system-card { padding: 12px 16px; border: 1px solid var(--report-border-default); border-radius: var(--report-radius-md); margin-bottom: 10px; }
.report-shell .ycr-system-card-header { font-weight: 700; font-size: 13px; color: var(--report-text-strong); margin-bottom: 6px; }
.report-shell .ycr-system-card-detail { font-size: 11px; color: var(--report-text-soft); margin-top: 4px; }

/* Condition Badges */
.report-shell .ycr-badge-compliant { display: inline-block; padding: 2px 8px; border-radius: 4px; font-size: 11px; font-weight: 600; background: #D1FAE5; color: #065F46; }
.report-shell .ycr-badge-outstanding { display: inline-block; padding: 2px 8px; border-radius: 4px; font-size: 11px; font-weight: 600; background: #FEF3C7; color: #92400E; }
.report-shell .ycr-badge-critical { display: inline-block; padding: 2px 8px; border-radius: 4px; font-size: 11px; font-weight: 600; background: #FEE2E2; color: #991B1B; }

/* Severity Badges */
.report-shell .ycr-severity-critical { background: #FEE2E2; color: #991B1B; }
.report-shell .ycr-severity-noncritical { background: #FEF3C7; color: #92400E; }
.report-shell .ycr-severity-nonconformance { background: #DBEAFE; color: #1E40AF; }

/* Signatory Blocks */
.report-shell .ycr-signatories { display: flex; flex-wrap: wrap; gap: 24px; }
.report-shell .ycr-signatory-block { flex: 1; min-width: 200px; padding: 12px 16px; border: 1px solid var(--report-border-default); border-radius: var(--report-radius-md); }
.report-shell .ycr-signatory-name { font-weight: 700; font-size: 13px; color: var(--report-text-strong); }
.report-shell .ycr-signatory-detail { font-size: 11px; color: var(--report-text-soft); margin-top: 2px; }
.report-shell .ycr-signature-img { max-width: 160px; max-height: 60px; object-fit: contain; margin-top: 8px; }

/* Coverage Table */
.report-shell .ycr-coverage-table td { font-size: 12px; }
.report-shell .ycr-coverage-complete { color: #065F46; font-weight: 600; }
.report-shell .ycr-coverage-incomplete { color: #991B1B; font-weight: 600; }

/* Statement Block */
.report-shell .ycr-statement { padding: 16px; background: var(--report-border-soft); border-radius: var(--report-radius-md); font-size: 12px; color: var(--report-text-default); line-height: 1.6; }

/* ═══════════════════════════════════════════════════════════════
   Asset Inspection Report Styles (air-)
   ═══════════════════════════════════════════════════════════════ */
.report-shell.air-screen-shell { width: min(100%, var(--report-shell-screen-width)); max-width: var(--report-shell-screen-width); }
.report-shell.air-print-shell { width: min(100%, var(--report-shell-width)); max-width: var(--report-shell-width); }

.report-shell .air-header { padding: var(--report-space-section); border-bottom: 2px solid var(--report-border-soft); }
.report-shell .air-header-business { font-size: 13px; font-weight: 600; color: var(--report-text-default); }
.report-shell .air-header-client { margin-top: 12px; font-size: 12px; color: var(--report-text-soft); }

.report-shell .air-job-section { margin-bottom: 8px; }
.report-shell .air-job-header { padding: 10px 16px; background: var(--report-surface-header); color: #fff; border-radius: var(--report-radius-sm) var(--report-radius-sm) 0 0; display: flex; justify-content: space-between; align-items: center; }
.report-shell .air-job-header-title { font-weight: 700; font-size: 13px; }
.report-shell .air-job-body { padding: 16px; border: 1px solid var(--report-border-default); border-top: none; border-radius: 0 0 var(--report-radius-sm) var(--report-radius-sm); }
.report-shell .air-job-meta { display: grid; grid-template-columns: 1fr 1fr; gap: 4px 16px; font-size: 12px; margin-bottom: 12px; }
.report-shell .air-job-meta-label { font-weight: 600; color: var(--report-text-soft); }

/* ═══════════════════════════════════════════════════════════════
   Quote / Invoice / Purchase Order Report Styles (mirrors template)
   ═══════════════════════════════════════════════════════════════ */
.report-shell.quote-screen-shell,
.report-shell.quote-print-shell,
.report-shell.invoice-screen-shell,
.report-shell.invoice-print-shell,
.report-shell.po-screen-shell,
.report-shell.po-print-shell {
    font-family: Roboto, var(--report-font-sans);
    font-size: 12px;
}

.report-shell.report-style-compact .quote-flex-container,
.report-shell.report-style-compact .invoice-flex-container,
.report-shell.report-style-compact .po-flex-container {
    padding: 4px 8px;
}

.report-shell.report-style-compact .quote-payment-header-text,
.report-shell.report-style-compact .invoice-payment-header-text,
.report-shell.report-style-compact .po-payment-header-text {
    font-size: 15px;
}

.report-shell.report-style-compact .quote-table-cell,
.report-shell.report-style-compact .invoice-table-cell,
.report-shell.report-style-compact .po-table-cell,
.report-shell.report-style-compact .quote-table-header,
.report-shell.report-style-compact .invoice-table-header,
.report-shell.report-style-compact .po-table-header {
    padding: 6px;
    font-size: 11px;
}

.report-shell.report-style-compact .quote-section-container,
.report-shell.report-style-compact .invoice-section-container,
.report-shell.report-style-compact .po-section-container {
    margin-top: 6px;
    gap: 2px;
}

.report-shell.report-style-compact .quote-grand-total-container,
.report-shell.report-style-compact .invoice-grand-total-container,
.report-shell.report-style-compact .po-grand-total-container {
    width: 220px;
}

.report-shell.report-style-modern .quote-payment-header,
.report-shell.report-style-modern .invoice-payment-header,
.report-shell.report-style-modern .po-payment-header {
    background: linear-gradient(135deg, #0f172a, #2563eb);
}

.report-shell.report-style-modern .quote-payment-row,
.report-shell.report-style-modern .invoice-payment-row,
.report-shell.report-style-modern .po-payment-row {
    background: color-mix(in srgb, var(--report-accent, #1d4ed8) 8%, #ffffff);
}

.report-shell.report-style-modern .quote-invoice-title,
.report-shell.report-style-modern .invoice-invoice-title,
.report-shell.report-style-modern .po-po-title {
    letter-spacing: 1px;
    font-weight: 700;
}

.report-shell.report-style-modern .quote-section-header,
.report-shell.report-style-modern .invoice-section-header,
.report-shell.report-style-modern .po-section-header,
.report-shell.report-style-modern .quote-table-header,
.report-shell.report-style-modern .invoice-table-header,
.report-shell.report-style-modern .po-table-header {
    color: var(--report-accent, #1d4ed8);
}

.report-shell.report-style-modern .quote-divider,
.report-shell.report-style-modern .invoice-divider,
.report-shell.report-style-modern .po-divider {
    border-color: #bfdbfe;
}

.report-shell.report-style-modern .quote-grand-total-container,
.report-shell.report-style-modern .invoice-grand-total-container,
.report-shell.report-style-modern .po-grand-total-container {
    border-top: 2px solid var(--report-accent, #1d4ed8);
}

.report-shell.quote-screen-shell,
.report-shell.invoice-screen-shell,
.report-shell.po-screen-shell,
.report-shell.quote-print-shell,
.report-shell.invoice-print-shell,
.report-shell.po-print-shell {
    width: min(100%, var(--report-shell-width));
    max-width: var(--report-shell-width);
}

.report-shell .quote-page,
.report-shell .invoice-page,
.report-shell .po-page { min-height: 1000px; padding: 16px 24px; }

.report-shell .quote-flex-container,
.report-shell .invoice-flex-container,
.report-shell .po-flex-container { display: flex; padding: 8px; }
.report-shell .quote-full-width,
.report-shell .invoice-full-width,
.report-shell .po-full-width { width: 100%; }
.report-shell .quote-top-align,
.report-shell .invoice-top-align,
.report-shell .po-top-align { vertical-align: top; }
.report-shell .quote-right-align,
.report-shell .invoice-right-align,
.report-shell .po-right-align { text-align: right; }

.report-shell .quote-logo,
.report-shell .invoice-logo,
.report-shell .po-logo { width: 80px; height: 80px; }
.report-shell .quote-payment-details-width,
.report-shell .invoice-payment-details-width,
.report-shell .po-payment-details-width { width: 600px; }

.report-shell .quote-payment-header,
.report-shell .invoice-payment-header,
.report-shell .po-payment-header { background: var(--report-accent, #0065FF); color: white; }
.report-shell .quote-payment-row,
.report-shell .invoice-payment-row,
.report-shell .po-payment-row { display: flex; background: #F4F5F7; width: 100%; }
.report-shell .quote-payment-header-text,
.report-shell .invoice-payment-header-text,
.report-shell .po-payment-header-text { padding: 8px; vertical-align: middle; width: 100%; font-size: 18px; font-weight: 700; }
.report-shell .quote-payment-label-large,
.report-shell .invoice-payment-label-large,
.report-shell .po-payment-label-large { width: 50%; padding: 8px; font-size: 20px; font-weight: 700; }
.report-shell .quote-payment-value-large,
.report-shell .invoice-payment-value-large,
.report-shell .po-payment-value-large { width: 50%; padding: 8px; font-size: 20px; font-weight: 400; text-align: right; }
.report-shell .quote-payment-label-medium,
.report-shell .invoice-payment-label-medium,
.report-shell .po-payment-label-medium { width: 50%; padding: 8px; font-size: 14px; font-weight: 700; }
.report-shell .quote-payment-value-medium,
.report-shell .invoice-payment-value-medium,
.report-shell .po-payment-value-medium { width: 50%; padding: 8px; font-size: 14px; font-weight: 400; text-align: right; }
.report-shell .quote-payment-row.quote-payment-inline,
.report-shell .invoice-payment-row.invoice-payment-inline,
.report-shell .po-payment-row.po-payment-inline {
    justify-content: flex-start;
    align-items: baseline;
    gap: 10px;
}
.report-shell .quote-payment-row.quote-payment-inline .quote-payment-label-medium,
.report-shell .quote-payment-row.quote-payment-inline .quote-payment-value-medium,
.report-shell .invoice-payment-row.invoice-payment-inline .invoice-payment-label-medium,
.report-shell .invoice-payment-row.invoice-payment-inline .invoice-payment-value-medium,
.report-shell .po-payment-row.po-payment-inline .po-payment-label-medium,
.report-shell .po-payment-row.po-payment-inline .po-payment-value-medium {
    width: auto;
    flex: 0 1 auto;
}
.report-shell .quote-payment-row.quote-payment-inline .quote-payment-value-medium,
.report-shell .invoice-payment-row.invoice-payment-inline .invoice-payment-value-medium,
.report-shell .po-payment-row.po-payment-inline .po-payment-value-medium {
    text-align: left;
}
.report-shell .quote-payment-label-small,
.report-shell .invoice-payment-label-small,
.report-shell .po-payment-label-small { width: 50%; padding: 8px; font-size: 11px; font-weight: 700; }
.report-shell .quote-payment-value-small,
.report-shell .invoice-payment-value-small,
.report-shell .po-payment-value-small { width: 50%; padding: 8px; font-size: 11px; font-weight: 400; text-align: right; }

.report-shell .quote-business-label,
.report-shell .invoice-business-label,
.report-shell .po-business-label { text-align: right; color: #091E42; font-size: 11px; font-weight: 700; }
.report-shell .quote-business-info,
.report-shell .invoice-business-info,
.report-shell .po-business-info { text-align: right; color: #091E42; font-size: 11px; font-weight: 400; }
.report-shell .quote-invoice-title,
.report-shell .invoice-invoice-title { color: black; font-size: 30px; font-weight: 500; margin-top: 10px; }
.report-shell .quote-invoice-number,
.report-shell .invoice-invoice-number { color: black; font-size: 20px; font-weight: 500; }
.report-shell .po-po-title { color: black; font-size: 30px; font-weight: 500; margin-top: 10px; }
.report-shell .po-po-number { color: black; font-size: 20px; font-weight: 500; }
.report-shell .quote-client-info,
.report-shell .invoice-client-info,
.report-shell .po-supplier-info { color: black; font-size: 12px; font-weight: 400; text-transform: uppercase; }
.report-shell .quote-client-info-spaced,
.report-shell .invoice-client-info-spaced { color: black; font-size: 12px; font-weight: 400; text-transform: uppercase; margin-top: 4px; }
.report-shell .po-date-info { color: black; font-size: 12px; font-weight: 400; text-transform: uppercase; margin-top: 4px; }

.report-shell .quote-section-header,
.report-shell .invoice-section-header,
.report-shell .po-section-header { color: black; font-size: 14px; font-weight: 700; }
.report-shell .quote-section-content,
.report-shell .invoice-section-content,
.report-shell .po-section-content { color: black; font-size: 12px; font-weight: 400; overflow: hidden; word-wrap: break-word; overflow-wrap: break-word; }
.report-shell .quote-section-content ul,
.report-shell .quote-section-content ol,
.report-shell .invoice-section-content ul,
.report-shell .invoice-section-content ol,
.report-shell .po-section-content ul,
.report-shell .po-section-content ol { padding-left: 20px; margin: 4px 0; }
.report-shell .quote-section-content li,
.report-shell .invoice-section-content li,
.report-shell .po-section-content li { word-wrap: break-word; overflow-wrap: break-word; }
/* Hyperlinks authored in the rich text editor — standard link blue. */
.report-shell .quote-section-content a,
.report-shell .invoice-section-content a,
.report-shell .po-section-content a { color: #1570EF; text-decoration: underline; }
/* Inline images embedded in rich terms / "How to Pay" content (payment-method logos etc). */
.report-shell .quote-section-content img,
.report-shell .invoice-section-content img,
.report-shell .po-section-content img { max-width: 100%; height: auto; vertical-align: middle; }
/* Column/table layout authored in the rich text editor — borderless in the rendered report. */
.report-shell .quote-section-content table,
.report-shell .invoice-section-content table,
.report-shell .po-section-content table { width: 100%; border-collapse: collapse; table-layout: fixed; }
.report-shell .quote-section-content td,
.report-shell .invoice-section-content td,
.report-shell .po-section-content td { vertical-align: top; padding: 4px 8px; }
.report-shell .quote-section-container,
.report-shell .invoice-section-container,
.report-shell .po-section-container { flex-direction: column; display: inline-flex; margin-top: 10px; padding: 8px; width: 100%; gap: 4px; }
.report-shell .quote-divider,
.report-shell .invoice-divider,
.report-shell .po-divider { height: 0; margin: 8px; border: 2px #EBECF0 solid; }

.report-shell .quote-compliance-legend {
    display: flex; flex-wrap: wrap; gap: 16px;
    margin: 8px 0 12px; padding: 8px 12px;
    background: #FAFAFA; border: 1px solid #EBECF0; border-radius: 4px;
    font-size: 11px; color: #333;
}
.report-shell .quote-compliance-legend-title { font-weight: 600; }
.report-shell .quote-compliance-legend-item { display: inline-flex; align-items: center; gap: 6px; }
.report-shell .quote-compliance-dot {
    display: inline-block; width: 10px; height: 10px; border-radius: 50%;
    vertical-align: middle; margin-right: 4px;
}
.report-shell .quote-divider-thin,
.report-shell .invoice-divider-thin,
.report-shell .po-divider-thin { margin: 8px; height: 0; border: 1px #EBECF0 solid; }

.report-shell .quote-table,
.report-shell .invoice-table,
.report-shell .po-table { display: table; width: 100%; border-collapse: collapse; }
.report-shell .quote-table-row,
.report-shell .invoice-table-row,
.report-shell .po-table-row { display: table-row; }
.report-shell .quote-table-cell,
.report-shell .invoice-table-cell,
.report-shell .po-table-cell,
.report-shell .quote-table-header,
.report-shell .invoice-table-header,
.report-shell .po-table-header { display: table-cell; padding: 8px; min-width: 100px; font-weight: 400; }
.report-shell .quote-table-header,
.report-shell .invoice-table-header,
.report-shell .po-table-header { font-weight: 700; color: black; }
.report-shell .quote-description-cell,
.report-shell .invoice-description-cell,
.report-shell .po-description-cell { width: 100%; }
.report-shell .quote-line-item-cell,
.report-shell .invoice-line-item-cell,
.report-shell .po-line-item-cell { max-width: 80px; }
.report-shell .quote-table-margin-top,
.report-shell .invoice-table-margin-top,
.report-shell .po-table-margin-top { margin-top: 20px; }
.report-shell .quote-table-margin-top-small,
.report-shell .invoice-table-margin-top-small,
.report-shell .po-table-margin-top-small { margin-top: 10px; }
.report-shell .quote-grand-total-container,
.report-shell .invoice-grand-total-container,
.report-shell .po-grand-total-container { margin-left: auto; margin-right: 0; border-top: 1px solid #EBECF0; width: 250px; margin-top: 10px; }
.report-shell .invoice-total-container,
.report-shell .po-total-container { margin-left: auto; margin-right: 0; width: 250px; margin-top: 10px; }
.report-shell .quote-total,
.report-shell .invoice-total,
.report-shell .po-total { font-size: 18px; }
.report-shell .quote-table-cell-label,
.report-shell .invoice-table-cell-label,
.report-shell .po-table-cell-label { font-weight: 500; color: black; }
.report-shell .quote-table-cell-value,
.report-shell .invoice-table-cell-value,
.report-shell .po-table-cell-value { font-weight: 400; color: black; }
.report-shell .quote-table-cell-value-large,
.report-shell .invoice-table-cell-value-large,
.report-shell .po-table-cell-value-large { font-size: 18px; font-weight: 400; color: black; }

/* ═══════════════════════════════════════════════════════════════
   Report masthead configurator — 5 header layouts / accent / density
   (component: ReportMasthead.razor; rm-* namespace; drives BOTH the live
   in-page preview AND the generated PDF — single file)
   ═══════════════════════════════════════════════════════════════ */
.report-shell .rm {
    --rm-pad: 44px;
    --rm-gap: 24px;
    --rm-logo-base: 46px;   /* per-layout logo size; overridden in centered/minimal */
    --rm-logo-scale: 1;     /* user size multiplier (ReportMasthead emits this) */
    --rm-accent-soft: color-mix(in srgb, var(--rm-accent, #0F172B) 8%, #ffffff);
    --rm-accent-line: color-mix(in srgb, var(--rm-accent, #0F172B) 22%, #ffffff);
    font-family: Roboto, var(--report-font-sans);
    color: #252525;
    /* Full-bleed to the page edge (cancel .quote-page padding 16px 24px) so the
       masthead's horizontal content edge aligns with the body, and accent bars /
       sidebar columns span edge-to-edge like the design. Body left/right = 24px. */
    margin: -16px -24px 0;
}
.report-shell .rm.logo-left   { --logo-justify: flex-start; }
.report-shell .rm.logo-center { --logo-justify: center; }
.report-shell .rm.logo-right  { --logo-justify: flex-end; }

.report-shell .rm-density-compact     { --rm-pad: 30px; --rm-gap: 15px; }
.report-shell .rm-density-comfortable { --rm-pad: 44px; --rm-gap: 24px; }
.report-shell .rm-density-spacious    { --rm-pad: 60px; --rm-gap: 34px; }
.report-shell .rm-pad { padding: var(--rm-pad) 24px; }

/* ── shared bits ── */
/* Logo: height-driven + width-flexible so wide/landscape logos render at their natural
   aspect ratio instead of being squeezed into a square. Size = base × user scale; the
   width cap grows with it and min(…,100%) keeps it inside narrow columns (sidebar/banded). */
.report-shell .rm-logo { height: calc(var(--rm-logo-base, 46px) * var(--rm-logo-scale, 1)); width: auto; max-width: min(calc(var(--rm-logo-base, 46px) * 3.4 * var(--rm-logo-scale, 1)), 100%); border-radius: 7px; object-fit: contain; flex: none; }
/* Single-letter fallback badge stays square. */
.report-shell .rm-logo-mark { width: calc(var(--rm-logo-base, 46px) * var(--rm-logo-scale, 1)); height: calc(var(--rm-logo-base, 46px) * var(--rm-logo-scale, 1)); border-radius: 7px; background: var(--rm-accent, #0F172B); color: #fff; display: flex; align-items: center; justify-content: center; font-size: 22px; font-weight: 700; flex: none; }
.report-shell .rm-brandrow { display: flex; align-items: center; gap: 11px; justify-content: var(--logo-justify, flex-start); }
.report-shell .rm-brandtext { display: flex; flex-direction: column; line-height: 1.05; }
.report-shell .rm-brandname { font-size: 19px; font-weight: 700; letter-spacing: .06em; color: #0F172B; }
.report-shell .rm-brandsub { font-size: 9px; font-weight: 600; letter-spacing: .24em; color: #6B7280; }
.report-shell .rm-contact { display: flex; flex-direction: column; gap: 2px; font-size: 11.5px; color: #4B5563; line-height: 1.5; }
.report-shell .rm-title { font-size: 27px; font-weight: 700; letter-spacing: .14em; color: var(--rm-accent, #0F172B); line-height: 1; }
.report-shell .rm-docno { font-size: 12px; color: #6B7280; margin-top: 5px; }
.report-shell .rm-licence { font-size: 11px; color: #6B7280; }

.report-shell .rm-meta-row { display: flex; justify-content: flex-end; gap: 16px; font-size: 11.5px; margin-top: 5px; }
.report-shell .rm-meta-k { color: #6B7280; }
.report-shell .rm-meta-v { color: #0F172B; font-weight: 600; }

.report-shell .rm-party-label { font-size: 9.5px; font-weight: 700; letter-spacing: .16em; color: #6B7280; }
.report-shell .rm-party-name { font-size: 14px; font-weight: 600; color: #0F172B; margin-top: 2px; }
.report-shell .rm-party-line { font-size: 11.5px; color: #4B5563; }
.report-shell .rm-party-by { text-align: right; }

/* totals strip (classic / banded / centered / minimal) */
.report-shell .rm-totals { margin: var(--rm-gap) 0 0 auto; width: fit-content; display: flex; border: 1px solid var(--rm-accent-line); border-radius: 5px; overflow: hidden; }
.report-shell .rm-total-cell { padding: 10px 18px; text-align: right; display: flex; flex-direction: column; gap: 2px; }
.report-shell .rm-total-cell + .rm-total-cell { border-left: 1px solid var(--rm-accent-line); }
.report-shell .rm-total-k { font-size: 9px; color: #6B7280; letter-spacing: .08em; }
.report-shell .rm-total-v { font-size: 13px; font-weight: 600; color: #0F172B; }
.report-shell .rm-total-grand { background: var(--rm-accent, #0F172B); border-left: none; }
.report-shell .rm-total-grand .rm-total-k { color: rgba(255,255,255,.75); }
.report-shell .rm-total-grand .rm-total-v { font-size: 14px; font-weight: 700; color: #fff; }

/* ── CLASSIC ── */
.report-shell .rm-classic-top { display: flex; justify-content: space-between; align-items: flex-start; gap: 32px; }
.report-shell .rm-classic-left { display: flex; flex-direction: column; gap: 14px; }
.report-shell .rm-classic-right { text-align: right; flex: none; display: flex; flex-direction: column; align-items: flex-end; }
.report-shell .rm-classic-right .rm-meta-row:first-of-type { margin-top: 14px; }
.report-shell .rm-accent-rule { height: 3px; background: var(--rm-accent, #0F172B); border-radius: 2px; margin-top: var(--rm-gap); }
.report-shell .rm-parties { display: flex; justify-content: space-between; gap: 32px; margin-top: var(--rm-gap); }
/* Classic: totals sit on the same row as the client details, pushed to the right. */
.report-shell .rm-classic .rm-parties .rm-totals { margin: 0 0 0 auto; align-self: flex-start; }

/* ── BANDED ── */
.report-shell .rm-band { background: var(--rm-accent, #0F172B); color: #fff; padding: var(--rm-pad) 24px; display: flex; justify-content: space-between; align-items: center; gap: 24px; }
.report-shell .rm-band .rm-brandname { color: #fff; }
.report-shell .rm-band .rm-brandsub { color: rgba(255,255,255,.72); }
.report-shell .rm-band .rm-logo-mark { background: rgba(255,255,255,.18); }
.report-shell .rm-titlewrap { text-align: right; }
.report-shell .rm-band .rm-title { color: #fff; font-size: 25px; }
.report-shell .rm-band .rm-docno { color: rgba(255,255,255,.78); }
.report-shell .rm-body { padding: var(--rm-pad) 24px; }
.report-shell .rm-row { display: flex; justify-content: space-between; gap: 32px; }
.report-shell .rm-meta-right { text-align: right; }

/* ── CENTERED ── */
.report-shell .rm-center-brand { display: flex; flex-direction: column; align-items: center; gap: 9px; text-align: center; --rm-logo-base: 52px; }
.report-shell .rm-center-title { display: flex; align-items: center; gap: 16px; justify-content: center; margin: var(--rm-gap) 0; }
.report-shell .rm-center-title .rm-title { font-size: 16px; letter-spacing: .3em; }
.report-shell .rm-rule { flex: 1; height: 1px; background: #DEE2ED; max-width: 130px; }
.report-shell .rm-center-meta { display: flex; justify-content: center; gap: 46px; }
.report-shell .rm-center-meta .rm-meta-row { flex-direction: column; align-items: center; gap: 4px; margin: 0; justify-content: center; }
.report-shell .rm-center-meta .rm-meta-k { font-size: 9px; font-weight: 700; letter-spacing: .14em; }
.report-shell .rm-center-meta .rm-meta-v { font-size: 13px; }
.report-shell .rm-center-parties { display: flex; justify-content: center; gap: 60px; text-align: center; margin-top: var(--rm-gap); padding-top: var(--rm-gap); border-top: 1px solid #DEE2ED; }
.report-shell .rm-center .rm-totals,
.report-shell .rm-centered .rm-totals { margin-left: auto; margin-right: auto; }

/* ── SIDEBAR ── */
.report-shell .rm-sidebar { display: flex; align-items: stretch; min-height: 300px; }
.report-shell .rm-sidebar-brand { width: 236px; flex: none; background: var(--rm-accent, #0F172B); color: #fff; padding: var(--rm-pad) 24px; display: flex; flex-direction: column; gap: 22px; }
.report-shell .rm-sidebar-brand .rm-brandname { color: #fff; }
.report-shell .rm-sidebar-brand .rm-brandsub { color: rgba(255,255,255,.7); }
.report-shell .rm-sidebar-brand .rm-logo-mark { background: rgba(255,255,255,.18); }
.report-shell .rm-sidebar-brand .rm-logo { background: #fff; padding: 4px; box-sizing: border-box; }
.report-shell .rm-sidebar-divider { height: 1px; background: rgba(255,255,255,.18); }
.report-shell .rm-sidebar-brand .rm-contact,
.report-shell .rm-sidebar-brand .rm-contact span { color: rgba(255,255,255,.82); }
.report-shell .rm-sidebar-main { flex: 1; min-width: 0; padding: var(--rm-pad) 24px; }
.report-shell .rm-sidebar-main .rm-title { font-size: 30px; }
.report-shell .rm-meta-inline { display: flex; gap: 36px; margin-top: 18px; flex-wrap: wrap; }
.report-shell .rm-meta-inline .rm-meta-row { flex-direction: column; gap: 3px; margin: 0; justify-content: flex-start; }
.report-shell .rm-meta-inline .rm-meta-k { font-size: 9.5px; font-weight: 700; letter-spacing: .12em; }
.report-shell .rm-sidebar-sep { margin-top: var(--rm-gap); padding-top: var(--rm-gap); border-top: 1px solid #DEE2ED; }
.report-shell .rm-preparedby-note { font-size: 11px; color: #6B7280; margin-top: 6px; }
.report-shell .rm-totalsbox { margin-top: var(--rm-gap); padding: 14px 16px; background: var(--rm-accent-soft); border-radius: 5px; width: 230px; display: flex; flex-direction: column; gap: 6px; }
.report-shell .rm-totalsbox-row { display: flex; justify-content: space-between; font-size: 11.5px; color: #4B5563; }
.report-shell .rm-totalsbox-grand { padding-top: 7px; border-top: 1px solid var(--rm-accent-line); }
.report-shell .rm-totalsbox-grand span:last-child { font-size: 16px; font-weight: 700; color: var(--rm-accent, #0F172B); }

/* ── MINIMAL ── */
.report-shell .rm-min-top { display: flex; justify-content: space-between; align-items: flex-end; }
.report-shell .rm-brandrow-min { --rm-logo-base: 26px; }
.report-shell .rm-brandrow-min .rm-logo,
.report-shell .rm-brandrow-min .rm-logo-mark { border-radius: 4px; font-size: 14px; }
.report-shell .rm-brandname-min { font-size: 18px; font-weight: 600; letter-spacing: .16em; }
.report-shell .rm-title-min { font-size: 11px; letter-spacing: .34em; color: #6B7280; font-weight: 600; }
.report-shell .rm-min-divider { height: 1px; background: #DEE2ED; margin: 18px 0; }
.report-shell .rm-min-cols { display: flex; justify-content: space-between; gap: 40px; }
.report-shell .rm-min-cols .rm-party-label { color: #9AA3B2; }

/* ═══════════════════════════════════════════════════════════════
   Proposal Report Styles
   ═══════════════════════════════════════════════════════════════ */

/* Proposal header (logo right): align business block like quote typography, left-aligned */
.report-shell .proposal-business-left .quote-business-label,
.report-shell .proposal-business-left .quote-business-info { text-align: left; }

.report-shell .proposal-property-block-wrap { margin-bottom: 16px; }

/* Server / alternate proposal summary (pricing scopes) */
.report-shell .proposal-summary-hero-row {
    display: flex;
    justify-content: space-between;
    align-items: center;
}
.report-shell .proposal-summary-hero-right { text-align: right; }
.report-shell .proposal-summary-kicker {
    font-size: 10px;
    color: #64748b;
    text-transform: uppercase;
    letter-spacing: 0.02em;
}
.report-shell .proposal-pricing-summary-hero { margin-bottom: 16px; }
.report-shell .proposal-summary-hero-row .proposal-pricing-grand-value { font-size: 20px; }
.report-shell .proposal-summary-coverage { font-size: 11px; color: #64748b; }
.report-shell .proposal-scope-name { font-weight: 600; font-size: 12px; margin-bottom: 4px; }
.report-shell .proposal-scope-row {
    display: flex;
    justify-content: space-between;
    padding-left: 16px;
    margin-bottom: 2px;
    font-size: 12px;
}
.report-shell .proposal-scope-subtotal {
    display: flex;
    justify-content: space-between;
    border-top: 1px solid #EBECF0;
    padding-top: 4px;
    margin-bottom: 12px;
    font-weight: 600;
    font-size: 12px;
}
.report-shell .proposal-annual-total {
    display: flex;
    justify-content: space-between;
    border-top: 2px solid #9ca3af;
    padding-top: 8px;
    margin-top: 4px;
    font-weight: 700;
    font-size: 13px;
}

/* Extra property blocks (multi-property scope) */
.report-shell .proposal-property-block {
    border-top: 2px solid #EBECF0;
    padding-top: 16px;
    margin-top: 16px;
}

.report-shell .proposal-client-name { text-transform: none; }
.report-shell .proposal-scope-table.proposal-scope-table--property-index { margin-top: 8px; }
.report-shell .proposal-scope-table .proposal-property-index-name { width: 35%; }
.report-shell .proposal-scope-table .proposal-property-index-address { width: 60%; }
.report-shell .proposal-scope-table .proposal-chevron-col { width: 5%; text-align: right; color: #999; font-size: 14px; }
.report-shell .proposal-property-index-row { cursor: pointer; }
.report-shell .proposal-property-index-row:hover { background-color: #f5f5f5; }

.report-shell .proposal-section-scope-heading { margin-bottom: 12px; padding-bottom: 8px; border-bottom: 1px solid #e2e8f0; }

.report-shell .proposal-scope-routine-cell { font-size: 11px; line-height: 1.4; }
.report-shell .proposal-scope-note-cell { border-bottom: none; padding-top: 4px; padding-bottom: 10px; }

.report-shell .proposal-pricing-breakdown-block {
    border-top: 1px solid #e2e8f0;
    margin-top: 16px;
    padding-top: 16px;
}
.report-shell .proposal-breakdown-row-muted { color: #4b5563; }

.report-shell .proposal-hours-block { margin-bottom: 12px; }

.report-shell .proposal-key-statement-block { margin-bottom: 12px; }
.report-shell .proposal-key-statement-title { font-weight: 500; margin-bottom: 6px; }
.report-shell .proposal-key-statement-body { font-size: 11px; line-height: 1.6; }
.report-shell .proposal-preapproved-spend-line { display: flex; align-items: center; gap: 8px; margin: 8px 0; }
.report-shell .proposal-preapproved-spend-line-blank {
    border-bottom: 1px solid #9ca3af;
    width: 80px;
    display: inline-block;
    height: 20px;
}

.report-shell .proposal-acceptance-field-line-signature { border-bottom-color: #1e293b; }

/* Property header */
.report-shell .proposal-property-header { border-bottom: 1px solid #e2e8f0; padding-bottom: 8px; margin-bottom: 16px; }
.report-shell .proposal-property-name { font-weight: 700; font-size: 16px; color: black; }
.report-shell .proposal-property-address { font-size: 12px; color: #666; margin-top: 2px; }

/* Scope of Works table */
.report-shell .proposal-scope-table { width: 100%; border-collapse: collapse; font-size: 12px; table-layout: fixed; }
.report-shell .proposal-scope-table th { text-align: left; padding: 8px; font-weight: 600; border-bottom: 2px solid #9ca3af; color: #1e293b; overflow: hidden; }
.report-shell .proposal-scope-table td { padding: 10px 8px; vertical-align: top; border-bottom: 1px solid #e2e8f0; overflow: hidden; word-wrap: break-word; }
.report-shell .proposal-scope-table .proposal-category-col { width: 19%; }
.report-shell .proposal-scope-table .proposal-assettype-col { width: 18%; }
.report-shell .proposal-scope-table .proposal-qty-col { width: 5%; text-align: left; }
.report-shell .proposal-scope-table .proposal-routine-col { width: auto; max-width: 35%; }
.report-shell .proposal-scope-table .proposal-freq-col { width: 32px; text-align: left; }
.report-shell .proposal-freq-check { color: #1e293b; font-size: 14px; }

/* Frequency notes and asset notes beneath rows */
.report-shell .proposal-freq-note { padding-left: 24px; font-size: 11px; color: #9ca3af; margin-bottom: 2px; }
.report-shell .proposal-asset-note { padding-left: 24px; font-size: 11px; color: #4b5563; margin-bottom: 2px; }
.report-shell .proposal-freq-legend { font-size: 10px; color: #64748b; text-align: right; margin-top: 8px; padding: 4px 8px; display: flex; gap: 12px; justify-content: flex-end; }

/* Pricing Summary */
.report-shell .proposal-pricing-box { background: #f8fafc; padding: 16px 24px; border-radius: 4px; }
.report-shell .proposal-pricing-row { display: flex; justify-content: space-between; padding: 2px 0; font-size: 11px; }
.report-shell .proposal-pricing-row-label { color: #9ca3af; }
.report-shell .proposal-pricing-row-value { color: #64748b; }
.report-shell .proposal-pricing-grand { display: flex; justify-content: space-between; align-items: center; border-top: 2px solid #9ca3af; padding-top: 16px; margin-top: 16px; }
.report-shell .proposal-pricing-grand-label { font-size: 16px; font-weight: 700; color: #1e293b; }
.report-shell .proposal-pricing-grand-value { font-size: 24px; font-weight: 700; color: black; }

/* Property/Category breakdown */
.report-shell .proposal-breakdown-section { background: rgba(255,255,255,0.5); padding: 12px; border-radius: 4px; margin-bottom: 12px; }
.report-shell .proposal-breakdown-title { font-weight: 500; font-size: 13px; margin-bottom: 8px; color: black; }
.report-shell .proposal-breakdown-row { display: flex; justify-content: space-between; padding: 4px 0; font-size: 12px; }
.report-shell .proposal-breakdown-total { display: flex; justify-content: space-between; font-weight: 500; font-size: 13px; border-top: 1px solid #d1d5db; padding-top: 8px; margin-top: 4px; }

/* Acceptance grid */
.report-shell .proposal-acceptance-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 24px 32px; padding: 8px; margin-top: 8px; }
.report-shell .proposal-acceptance-field-label { font-size: 10px; color: #64748b; margin-bottom: 8px; font-weight: 500; }
.report-shell .proposal-acceptance-field-line { border-bottom: 2px solid #9ca3af; height: 32px; }
.report-shell .proposal-acceptance-full-width { grid-column: span 2; }

/* Business Hours */
.report-shell .proposal-hours-label { font-weight: 700; font-size: 12px; color: #1e293b; }
.report-shell .proposal-hours-text { font-size: 12px; color: #4b5563; }

/* Annual Certification Summary */
.report-shell .pcr-cert-summary { padding: 16px; border: 1px solid var(--report-border-default); border-radius: var(--report-radius-lg); background: var(--report-border-soft); }
.report-shell .pcr-cert-summary-grid { display: grid; grid-template-columns: 1fr 1fr 1.4fr; gap: 24px; align-items: start; }
.report-shell .pcr-cert-summary-cell { display: flex; flex-direction: column; gap: 6px; }
.report-shell .pcr-cert-summary-label { font-size: 11px; font-weight: 600; color: var(--report-text-soft); text-transform: uppercase; letter-spacing: 0.04em; }
.report-shell .pcr-cert-summary-value { font-size: 16px; font-weight: 700; color: var(--report-text-strong); display: flex; align-items: center; gap: 8px; flex-wrap: wrap; }
.report-shell .pcr-cert-summary-sublabel { font-size: 11px; font-weight: 600; }
.report-shell .pcr-cert-days { display: inline-block; }
.report-shell .pcr-cert-overdue-tag { display: inline-block; padding: 2px 8px; border-radius: 4px; font-size: 10px; font-weight: 700; letter-spacing: 0.06em; background: #991B1B; color: #FFFFFF; }
.report-shell .pcr-cert-neutral { color: var(--report-text-strong); }
.report-shell .pcr-cert-amber { color: #B45309; }
.report-shell .pcr-cert-red { color: #991B1B; }
.report-shell .pcr-cert-summary-sublabel.pcr-cert-neutral { color: var(--report-text-soft); }
.report-shell .pcr-cert-blocking-total { font-size: 22px; font-weight: 800; color: var(--report-text-strong); }
.report-shell .pcr-cert-blocking-suffix { font-size: 12px; font-weight: 500; color: var(--report-text-soft); }
.report-shell .pcr-cert-blocking-breakdown { display: flex; gap: 6px; flex-wrap: wrap; margin-top: 4px; }
.report-shell .pcr-cert-blocking-oldest { font-size: 11px; color: var(--report-text-soft); margin-top: 4px; }
.report-shell .pcr-cert-note { font-size: 11px; color: var(--report-text-soft); font-style: italic; margin: 12px 0 0; padding-top: 12px; border-top: 1px dashed var(--report-border-default); }
.report-shell .pcr-cert-blocks-badge { display: inline-block; padding: 2px 8px; border-radius: 4px; font-size: 10px; font-weight: 700; letter-spacing: 0.04em; background: #FEE2E2; color: #991B1B; }

/* ═══════════════════════════════════════════════════════════════
   Shared report layout — applies to EVERY report shell
   ═══════════════════════════════════════════════════════════════
   The responsive rules further up this file are all written as
   `.report-shell.pcr-screen-shell ...`, so only the Property Compliance
   report ever received them. Every other shell (rlr / rsr / wcr / ycr /
   quote / invoice / po / air) kept its 800-1040px desktop layout down to
   320px: a right-aligned header against dead space, a two-column meta
   grid wrapping to four lines, and tables squeezed to a few characters.

   These rules are shell-agnostic. Anything that would change generated
   PDF output is confined to `@media screen`, so the print/PDF pipeline
   (which mirrors ReportStyleCatalog.cs) renders exactly as before.
   ═══════════════════════════════════════════════════════════════ */

/* ── Logo-less header ──────────────────────────────────────────
   `.report-brand` is always emitted; it is empty when the business has no
   logo (so `:empty` never matches — Razor leaves whitespace inside it).
   Reserving its 120px and right-aligning the content against nothing left
   roughly 60% of the header band blank, with the document title pinned to
   the top-right corner. When there is genuinely no logo, drop the column
   and let the identity read from the left where the eye starts, with the
   property card holding the right. */
@media screen and (min-width: 769px) {
    .report-shell .report-header:not(:has(.report-logo)) .report-brand {
        display: none;
    }

    .report-shell .report-header:not(:has(.report-logo)) .report-header-content {
        display: grid;
        grid-template-columns: minmax(0, 1fr) minmax(240px, 280px);
        column-gap: var(--report-space-section);
        align-items: start;
        text-align: left;
    }

    /* Explicit placement keeps the three identity lines stacked in column 1
       and lets the property card span them in column 2 — no markup change. */
    .report-shell .report-header:not(:has(.report-logo)) .report-title,
    .report-shell .report-header:not(:has(.report-logo)) .report-business-name,
    .report-shell .report-header:not(:has(.report-logo)) .report-business-address {
        grid-column: 1;
    }

    .report-shell .report-header:not(:has(.report-logo)) .report-business-address {
        margin-left: 0;
        max-width: 42ch;
    }

    .report-shell .report-header:not(:has(.report-logo)) .report-property-card {
        grid-column: 2;
        grid-row: 1 / span 3;
        margin: 0;
        max-width: none;
        width: 100%;
    }
}

/* ── Narrow screens ───────────────────────────────────────────── */
@media screen and (max-width: 768px) {
    .report-shell {
        width: 100%;
        border-left: none;
        border-right: none;
    }

    .report-shell .report-header,
    .report-shell .report-section,
    .report-shell .report-footer {
        padding: var(--report-space-card);
    }

    /* Stack brand over identity, and stop right-aligning: on a phone the
       ragged-left edge is the only stable reading edge. */
    .report-shell .report-header {
        flex-direction: column;
        gap: 16px;
    }

    .report-shell .report-header-content,
    .report-shell .report-business-address {
        text-align: left;
        margin-left: 0;
        max-width: none;
    }

    .report-shell .report-property-card {
        margin-left: 0;
        max-width: none;
        width: 100%;
    }

    /* A 1fr/1fr key-value grid at 390px gives the value ~3 characters, so
       "Wet Pipe Sprinkler Systems" wrapped to four lines beside its label.
       One column per pair reads as a list instead. */
    .report-shell .rsr-job-details {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .report-shell .rsr-job-detail-label {
        min-width: 104px;
    }
}

@media screen and (max-width: 480px) {
    .report-shell .report-header,
    .report-shell .report-section,
    .report-shell .report-footer {
        padding: 16px;
    }
}

/* ── Inspection prompt table ───────────────────────────────────
   The prompt text is the content; Result and Values are annotations, and
   Values is empty on most rows. With no widths declared the browser split
   the free space between Prompt and Values, so a column holding nothing
   took as much room as the reading column. Pin the annotation columns and
   let the prompt take everything else. */
.report-shell .rlr-prompt-table {
    table-layout: fixed;
}

.report-shell .rlr-prompt-table th:nth-child(1),
.report-shell .rlr-prompt-table td:nth-child(1) {
    width: 56px;
    white-space: nowrap;
}

.report-shell .rlr-prompt-table th:nth-child(2),
.report-shell .rlr-prompt-table td:nth-child(2) {
    width: auto;
}

.report-shell .rlr-prompt-table th:nth-child(3),
.report-shell .rlr-prompt-table td:nth-child(3) {
    width: 88px;
}

.report-shell .rlr-prompt-table th:nth-child(4),
.report-shell .rlr-prompt-table td:nth-child(4) {
    width: 150px;
}

.report-shell .rlr-prompt-table td {
    overflow-wrap: anywhere;
}

@media screen and (max-width: 768px) {
    .report-shell .rlr-prompt-table th:nth-child(1),
    .report-shell .rlr-prompt-table td:nth-child(1) {
        width: 44px;
    }

    .report-shell .rlr-prompt-table th:nth-child(3),
    .report-shell .rlr-prompt-table td:nth-child(3) {
        width: 64px;
    }

    /* Values is narrowed, never hidden — a recorded reading is evidence on a
       compliance document, and a column that disappears on a phone is a
       column the client cannot check. */
    .report-shell .rlr-prompt-table th:nth-child(4),
    .report-shell .rlr-prompt-table td:nth-child(4) {
        width: 84px;
    }
}

/* ── External share-link viewer bar ────────────────────────────
   The bar above the document on /report/shared/{token}. This is the first
   thing an external client sees after clicking through from a dispatch
   email, frequently on a phone. MudToolBar lays its children out in one
   non-wrapping row with a fixed height, which at 390px truncated the report
   name to a single word and let the Download PDF button overlap it. */
.external-report-bar {
    height: auto;
    min-height: 64px;
    flex-wrap: wrap;
    row-gap: 8px;
    padding-top: 10px;
    padding-bottom: 10px;
}

.external-report-bar .external-report-bar__identity {
    min-width: 0;
}

.external-report-bar .external-report-bar__title {
    line-height: 1.3;
}

.external-report-bar .external-report-bar__actions {
    display: flex;
    align-items: center;
    gap: 16px;
    flex-shrink: 0;
}

/* The document switcher — only present when the dispatch email carried more than
   one document. Sits left of Download PDF and must never push it off the row. */
.external-report-bar .external-report-bar__switcher {
    flex-shrink: 0;
}

.external-report-bar .external-report-bar__switcher-item {
    display: flex;
    flex-direction: column;
    line-height: 1.35;
    min-width: 0;
}

@media screen and (max-width: 768px) {
    /* Below this the spacer stops earning its place: identity takes the full
       row and the actions sit under it, left-aligned to the same edge. */
    .external-report-bar .mud-spacer {
        display: none;
    }

    .external-report-bar .external-report-bar__identity,
    .external-report-bar .external-report-bar__actions {
        flex: 1 0 100%;
    }

    .external-report-bar .external-report-bar__actions {
        gap: 12px;
        flex-wrap: wrap;
    }

    /* The publish date is provenance, not an action — it yields first. */
    .external-report-bar .external-report-bar__published {
        order: 2;
        flex-basis: 100%;
    }
}

/* ── Prompt table on phones ────────────────────────────────────
   Even with the annotation columns pinned, four columns inside 390px left
   the prompt ~150px — roughly twelve characters a line, which turns an
   AS1851 clause into a ribbon. Below 600px the row stops being a row: the
   prompt gets the full width and its number, result and any recorded values
   read underneath it as a labelled block. Nothing is dropped; the same
   cells are simply stacked in reading order. */
@media screen and (max-width: 600px) {
    .report-shell .rlr-prompt-table,
    .report-shell .rlr-prompt-table tbody,
    .report-shell .rlr-prompt-table tr {
        display: block;
        width: 100%;
    }

    .report-shell .rlr-prompt-table thead {
        display: none;
    }

    .report-shell .rlr-prompt-table tr {
        padding: 12px;
        border-bottom: 1px solid var(--report-border-default);
    }

    .report-shell .rlr-prompt-table td,
    .report-shell .rlr-prompt-table td:nth-child(1),
    .report-shell .rlr-prompt-table td:nth-child(2),
    .report-shell .rlr-prompt-table td:nth-child(3),
    .report-shell .rlr-prompt-table td:nth-child(4) {
        display: block;
        width: auto;
        padding: 0;
        border-bottom: none;
    }

    /* The clause number leads, the way it does on the paper logbook. */
    .report-shell .rlr-prompt-table td:nth-child(1) {
        font-weight: 700;
        font-size: 11px;
        letter-spacing: 0.04em;
        color: var(--report-text-soft);
        margin-bottom: 4px;
    }

    .report-shell .rlr-prompt-table td:nth-child(2) {
        color: var(--report-text-default);
    }

    /* Column headings are gone in this mode, so the annotations label
       themselves — an unlabelled dash under a clause is not evidence. */
    .report-shell .rlr-prompt-table td:nth-child(3)::before,
    .report-shell .rlr-prompt-table td:nth-child(4)::before {
        font-size: 10px;
        font-weight: 700;
        letter-spacing: 0.08em;
        text-transform: uppercase;
        color: var(--report-text-subtle);
        margin-right: 6px;
    }

    .report-shell .rlr-prompt-table td:nth-child(3) {
        margin-top: 8px;
    }

    .report-shell .rlr-prompt-table td:nth-child(3)::before {
        content: "Result";
    }

    .report-shell .rlr-prompt-table td:nth-child(4) {
        margin-top: 4px;
    }

    .report-shell .rlr-prompt-table td:nth-child(4)::before {
        content: "Values";
    }
}

/* ---------------------------------------------------------------------------------------------
   NSW Fire Safety Statement (report ids 14/15). Deliberately plain: a statutory statement is read
   as a legal document, so it uses the shared report section/table shells with a label-value grid
   rather than any dashboard styling.
   --------------------------------------------------------------------------------------------- */
.report-shell .nsw-fss-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 8px 24px; font-size: 12px; }
.report-shell .nsw-fss-grid > div { display: flex; flex-direction: column; gap: 2px; }
.report-shell .nsw-fss-label { font-size: 10px; text-transform: uppercase; letter-spacing: 0.5px; color: var(--report-text-soft); font-weight: 600; }
.report-shell .nsw-fss-description { margin-top: 16px; }
.report-shell .nsw-fss-description p { margin: 4px 0 0; font-size: 12px; }
.report-shell .nsw-fss-muted { font-size: 11px; color: var(--report-text-soft); }
.report-shell .nsw-fss-declaration { font-size: 11px; margin: 8px 0 0; font-style: italic; }
.report-shell .nsw-fss-checklist { margin: 8px 0 0; padding-left: 18px; font-size: 12px; }
.report-shell .nsw-fss-checklist li { margin-bottom: 4px; }
.report-shell .nsw-fss-note { font-size: 12px; color: var(--report-text-soft); margin: 0; }

@media (max-width: 700px) {
    .report-shell .nsw-fss-grid { grid-template-columns: minmax(0, 1fr); }
}
