iframe {
    height: 500px;
    width: 100%;
    border: none;
}

.iframe-embed-wrapper {
    position: relative;
}

.iframe-maximize-btn {
    position: absolute;
    top: 8px;
    right: 8px;
    z-index: 10;
    background: var(--white, #fff);
    border: 1px solid var(--border, #ddd);
    border-radius: var(--border-5, 4px);
    padding: 6px;
    cursor: pointer;
    color: var(--medium-grey, #666);
    display: flex;
    align-items: center;
    justify-content: center;
    opacity: 0;
    transition: opacity 0.2s ease;
    box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1);
}

.iframe-embed-wrapper:hover .iframe-maximize-btn {
    opacity: 1;
}

.iframe-maximize-btn:hover {
    color: var(--lucror-blue, #2A4577);
    border-color: var(--lucror-blue, #2A4577);
    box-shadow: var(--shadow-medium, 0 2px 6px rgba(0, 0, 0, 0.15));
}

/* Box tabs with actions header */
.box-tabs-header {
    display: flex;
    justify-content: space-between;
    align-items: center;
    margin-bottom: 1rem;
}

    .box-tabs-header .box-tabs {
        margin-bottom: 0;
    }

    .box-tabs-header .section-actions {
        display: flex;
        gap: 0.5rem;
    }

/* Comparison tables */
.comparison-table {
    width: 100%;
    table-layout: fixed;
}

    .comparison-table th {
        vertical-align: middle;
    }

    .comparison-table .lara-icon {
        width: 20px;
        height: 20px;
        vertical-align: middle;
        margin-left: 4px;
    }

.comparison-list {
    list-style: none;
    padding: 0!important;
    margin: 0!important;
}

    .comparison-list li {
        padding: 2px 0;
    }

    .comparison-list a {
        color: var(--link-color, #3f84e4);
        text-decoration: none;
    }

        .comparison-list a:hover {
            text-decoration: underline;
        }

.industry-name {
    font-weight: 600;
    color: var(--text-primary, #333);
    margin: 1rem;
}

/* LARA comparison table */
.lara-comparison th {
    font-size: 0.85rem;
    white-space: nowrap;
}

.search-btn {
    padding: 0px !important;
    background: none !important;
    width: 20px !important;
}

[v-cloak] {
    display: none;
}

.search-result-excerpt strong {
    background: #fff3cd;
    padding: 0 2px;
    color: var(--overlay);
}

/* Advanced Search Form */
.search-form-container {
    background: var(--white);
    padding: var(--space-30);
    border-radius: var(--border-5);
}

.search-form-grid {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--space-20);
    margin-bottom: var(--space-25);
    padding-bottom: var(--space-20);
    border-bottom: 1px solid var(--border);
}

.search-form-actions {
    display: flex;
    gap: var(--space-10);
    width: 100px;
}

/* Date Inputs */
.date-range-picker {
    display: flex;
    flex-direction: column;
}

.date-inputs {
    display: flex;
    align-items: center;
    gap: var(--space-8);
}

    .date-inputs input {
        flex: 1;
    }

    .date-inputs span {
        color: var(--grey);
        font-size: var(--font-sm);
    }

/* Multiselect Dropdowns */
.multiselect-wrapper {
    position: relative;
}

.multiselect-btn {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    cursor: pointer;
    text-align: left;
}

    .multiselect-btn .dropdown-arrow {
        width: 12px;
        height: 12px;
        margin-left: var(--space-8);
        transition: transform 0.2s ease;
    }

.multiselect-dropdown {
    display: none;
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 10;
    background: var(--white);
    border: 1px solid var(--border);
    border-radius: var(--border-5);
    max-height: 250px;
    overflow-y: auto;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.1);
    margin-top: 2px;
}

    .multiselect-dropdown.open {
        display: block;
    }

.multiselect-dropdown-large {
    min-width: 280px;
}

.multiselect-search {
    padding: var(--space-8);
    border-bottom: 1px solid var(--border);
    position: sticky;
    top: 0;
    background: var(--white);
}

    .multiselect-search input {
        width: 100%;
        box-sizing: border-box;
    }

.multiselect-options-scroll {
    max-height: 180px;
    overflow-y: auto;
}

.multiselect-option {
    display: flex;
    align-items: center;
    gap: var(--space-8);
    padding: var(--space-8) var(--space-12);
    cursor: pointer;
}

    .multiselect-option:hover {
        background: var(--light-grey);
    }

    .multiselect-option input[type="checkbox"] {
        flex-shrink: 0;
    }

    .multiselect-option label {
        cursor: pointer;
        font-weight: normal;
        font-size: var(--font-sm);
        margin: 0;
    }

/* Advanced search form — mobile: collapse the 2-col grid to a single column
   so it no longer overflows the viewport, and let the action buttons fill the row. */
@media (max-width: 768px) {
    .search-form-container {
        padding: var(--space-20);
    }

    .search-form-grid {
        grid-template-columns: 1fr;
        gap: var(--space-15);
    }

        /* Drop the empty spacer cell that only exists to balance the 2-col layout */
        .search-form-grid .form-group:empty {
            display: none;
        }

    .multiselect-dropdown-large {
        min-width: 0;
    }

    .search-form-actions {
        width: 100%;
    }

        .search-form-actions .btn {
            flex: 1;
            justify-content: center;
        }
}

/* No Results */
.search-no-results {
    background: var(--white);
    padding: var(--space-50);
    text-align: center;
}

.no-results-content h2 {
    margin-bottom: var(--space-15);
}


/* Value Badges */
.change-type-badge {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 12px;
    font-size: 0.8rem;
    font-weight: 500;
}

.change-type--lara {
    background-color: #e3f2fd;
    color: #1565c0;
}

.change-type--laga {
    background-color: #f3e5f5;
    color: #7b1fa2;
}

.change-type--creditbias {
    background-color: #fff3e0;
    color: #e65100;
}

.value-badge {
    display: inline-block;
    padding: 2px 8px;
    border-radius: 4px;
    font-size: 0.8rem;
    font-weight: 500;
    color: white;
}

.value-badge--muted {
    opacity: 0.6;
}

.value-badge--lara-low,
.value-badge--laga-low {
    background-color: #28a745;
}

.value-badge--lara-medium,
.value-badge--laga-medium {
    background-color: #ffc107;
    color: #333;
}

.value-badge--lara-high,
.value-badge--laga-high {
    background-color: #fd7e14;
}

.value-badge--lara-very-high,
.value-badge--laga-very-high {
    background-color: #dc3545;
}

.value-badge--cb-positive {
    background-color: #28a745;
}

.value-badge--cb-stable {
    background-color: #6c757d;
}

.value-badge--cb-negative {
    background-color: #dc3545;
}

/* Loading States */
.loading-container {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    padding: 60px 20px;
}

.loading-spinner {
    width: 40px;
    height: 40px;
    border: 3px solid #f3f3f3;
    border-top: 3px solid var(--lucror-blue, #2A4577);
    border-radius: 50%;
    animation: spin 1s linear infinite;
}

.loading-spinner--small {
    width: 20px;
    height: 20px;
    border-width: 2px;
    display: inline-block;
    vertical-align: middle;
    margin-right: 8px;
}

@keyframes spin {
    0% {
        transform: rotate(0deg);
    }

    100% {
        transform: rotate(360deg);
    }
}

.loading-row,
.no-data-row {
    text-align: center;
    padding: 40px 20px;
    color: #666;
}

/* Pagination */
.pagination-container {
    display: flex;
    justify-content: space-between;
    align-items: center;
    padding: 16px 0;
    margin-top: 16px;
    border-top: 1px solid #eee;
}

.pagination-info {
    font-size: 0.9rem;
    color: #666;
}

.pagination-controls {
    display: flex;
    align-items: center;
    gap: 8px;
}

.pagination-btn {
    padding: 6px 12px;
    border: 1px solid #ddd;
    background: white;
    border-radius: 4px;
    cursor: pointer;
    font-size: 0.9rem;
}

    .pagination-btn:hover:not(:disabled) {
        border-color: var(--lucror-blue, #2A4577);
        color: var(--lucror-blue, #2A4577);
    }

    .pagination-btn:disabled {
        opacity: 0.5;
        cursor: not-allowed;
    }

.pagination-current {
    padding: 0 12px;
    font-size: 0.9rem;
}

/* ========================================
   Charting Tool Styles
   ======================================== */

.charting-tabs {
    display: flex;
    gap: 0;
    border-bottom: 2px solid #eee;
    margin-bottom: 20px;
}

.charting-tab {
    padding: 12px 24px;
    background: none;
    border: none;
    border-bottom: 2px solid transparent;
    margin-bottom: -2px;
    font-size: 1rem;
    font-weight: 500;
    color: #666;
    cursor: pointer;
    transition: all 0.2s;
}

    .charting-tab:hover {
        color: var(--lucror-blue, #2A4577);
    }

    .charting-tab.active {
        color: var(--lucror-blue, #2A4577);
        border-bottom-color: var(--lucror-blue, #2A4577);
    }

.charting-content {
    padding: 20px 0;
}

.charting-filters {
    background: var(--color-background);
    padding: 20px;
    border-radius: 8px;
    margin-bottom: 20px;
}

.charting-filter-row {
    display: flex;
    gap: 20px;
    margin-bottom: 16px;
}

    .charting-filter-row:last-child {
        margin-bottom: 0;
    }

.charting-filter-group {
    flex: 1;
    min-width: 200px;
}

.charting-filter-group--full {
    flex: 100%;
}

.charting-metrics-hint {
    font-size: 0.75rem;
    color: #666;
    font-weight: 400;
    margin-left: 4px;
}

.charting-filter-group label {
    display: block;
    font-size: 0.85rem;
    font-weight: 600;
    margin-bottom: 6px;
    color: var(--text-primary);
}

.charting-filter-actions {
    display: flex;
    gap: 12px;
    margin-top: 16px;
    padding-top: 16px;
    border-top: 1px solid #ddd;
}

/* Mobile: stack each filter on its own row (like the Company Analysis page) */
@media (max-width: 768px) {
    .charting-filter-row {
        flex-direction: column;
        gap: 16px;
    }

    .charting-filter-group {
        min-width: 0;
        width: 100%;
    }

    .charting-filter-actions {
        flex-direction: column;
    }

        .charting-filter-actions .btn {
            width: 100%;
            justify-content: center;
        }
}

/* Chart Type Selector */
.chart-type-selector {
    display: flex;
    gap: 8px;
    margin-bottom: 20px;
    padding: 12px;
    background: var(--color-background);
    border-radius: 8px;
}

.chart-type-btn {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    background: white;
    border: 1px solid #ddd;
    border-radius: 4px;
    cursor: pointer;
    font-size: 0.9rem;
    transition: all 0.2s;
}

    .chart-type-btn:hover {
        border-color: var(--lucror-blue, #2A4577);
    }

    .chart-type-btn.active {
        background: var(--lucror-blue, #2A4577);
        color: white;
        border-color: var(--lucror-blue, #2A4577);
    }

    .chart-type-btn:disabled,
    .chart-type-btn.disabled {
        opacity: 0.45;
        cursor: not-allowed;
        background: #f5f5f5;
        color: #999;
        border-color: #e0e0e0;
    }

        .chart-type-btn:disabled:hover,
        .chart-type-btn.disabled:hover {
            border-color: #e0e0e0;
        }

.chart-type-icon {
    width: 16px;
    height: 16px;
    display: inline-block;
}

/* Chart Container */
.chart-container {
    background: var(--color-background);
    border: 1px solid #eee;
    border-radius: 8px;
    padding: 20px;
}

.chart-actions {
    display: flex;
    gap: 12px;
    align-items: center;
    margin-bottom: 16px;
    padding-bottom: 12px;
    border-bottom: 1px solid #eee;
}

.show-values-toggle {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.9rem;
    cursor: pointer;
}

    .show-values-toggle input {
        margin: 0;
    }

.chart-wrapper {
    position: relative;
    height: 400px;
}

.chart-legend {
    display: flex;
    flex-wrap: wrap;
    gap: 16px;
    margin-top: 20px;
    padding-top: 16px;
    border-top: 1px solid #eee;
}

.legend-item {
    display: flex;
    align-items: center;
    gap: 6px;
    font-size: 0.85rem;
}

.legend-color {
    width: 16px;
    height: 16px;
    border-radius: 4px;
}

.legend-label {
    color: var(--text-primary);
}

/* Chart Messages */
.chart-message {
    padding: 16px 20px;
    border-radius: 8px;
    margin-bottom: 20px;
}

.chart-message--warning {
    background-color: #fff3cd;
    border: 1px solid #ffc107;
    color: #856404;
}

.chart-message--error {
    background-color: #f8d7da;
    border: 1px solid #f5c6cb;
    color: #721c24;
}

.chart-no-data {
    text-align: center;
    padding: 60px 20px;
    color: #666;
    background: var(--color-background);
    border-radius: 8px;
}

/* Multi Chart Info */
.multi-chart-info {
    text-align: center;
    padding: 60px 20px;
    background: #f8f9fa;
    border-radius: 8px;
}

    .multi-chart-info p {
        margin: 0 0 12px 0;
    }

    .multi-chart-info .text-muted {
        color: #999;
        font-style: italic;
    }

/* Restricted Content */
.restricted-content {
    text-align: center;
    padding: 60px 20px;
}

    .restricted-content h3 {
        color: #dc3545;
        margin-bottom: 16px;
    }

    .restricted-content a {
        color: var(--lucror-blue, #2A4577);
    }

/* Metrics Multi-Select Adjustments */
.metrics-dropdown--wide {
    min-width: 350px;
}

.metrics-list--scrollable {
    max-height: 300px;
    overflow-y: auto;
}

/* ========================================
   LARA Changes - Additional Styles
   ======================================== */

/* Grouped filter dropdown for LARA/LAGA/CB values */
.filter-dropdown--grouped {
    min-width: 220px;
}

    .filter-dropdown--grouped .filter-group {
        margin-bottom: 12px;
        padding-bottom: 8px;
        border-bottom: 1px solid var(--border, #eee);
    }

        .filter-dropdown--grouped .filter-group:last-child {
            margin-bottom: 0;
            padding-bottom: 0;
            border-bottom: none;
        }

        .filter-dropdown--grouped .filter-group h4 {
            font-size: var(--font-xs, 0.75rem);
            font-weight: var(--weight-semibold, 600);
            color: var(--lucror-blue, #2A4577);
            margin: 0 0 6px 0;
            text-transform: uppercase;
            letter-spacing: 0.5px;
        }

/* Custom date range in filter dropdown */
.filter-custom-date {
    padding: var(--space-10, 10px) 0;
    border-top: 1px solid var(--border, #eee);
    margin-top: var(--space-8, 8px);
}

    .filter-custom-date > label {
        display: block;
        font-size: var(--font-xs, 0.8rem);
        font-weight: var(--weight-semibold, 600);
        color: var(--medium-grey, #666);
        margin-bottom: 6px;
    }

    .filter-custom-date .date-inputs {
        display: flex;
        gap: var(--space-8, 8px);
        margin-bottom: var(--space-8, 8px);
    }

        .filter-custom-date .date-inputs input {
            flex: 1;
            padding: 6px 8px;
            border: 1px solid var(--border, #ddd);
            border-radius: var(--border-5, 4px);
            font-size: var(--font-sm, 0.85rem);
        }

    .filter-custom-date .btn {
        width: 100%;
    }

/*
    CkEditor table
*/

.ckeditor-table {
    border-collapse: collapse;
    font-size: var(--font-sm);
    width: calc(100% + 70px) !important;
    margin-left: calc(-1 * var(--content-padding));
    margin-right: calc(-1 * var(--content-padding));
}

.ckeditor-td-indicator {
    border-bottom: 1px solid #000000 !important;
}

.section-body .ckeditor-table {
    width: 100% !important;
    margin-left: 0px;
    margin-right: 0px;
}

.ckeditor-table thead {
    background: var(--lucror-gradient);
    color: white;
}

.ckeditor-two-columns {
    width: calc(100% + 70px) !important;
    margin-left: calc(-1 * var(--content-padding)) !important;
    margin-right: calc(-1 * var(--content-padding)) !important;
}

.ckeditor-table th {
    padding: var(--space-12) 8px !important;
    text-align: left !important;
    font-weight: var(--weight-semibold);
    font-size: var(--font-sm);
    /*white-space: nowrap;*/
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
    font-size: 14px !important;
}

    /* First and last header cells - extra padding for alignment */
    .ckeditor-table th:first-child {
        padding-left: var(--content-padding) !important;
    }

    .ckeditor-table th:last-child {
        padding-right: var(--content-padding) !important;
    }

.ckeditor-table tbody td {
    padding: var(--space-12) 8px !important;
    /*  border-bottom: 1px solid var(--border) !important;*/
    word-wrap: break-word !important;
    overflow-wrap: break-word !important;
    font-size: 14px !important;
}

    /* First and last body cells - extra padding for alignment */
    .ckeditor-table tbody td:first-child {
        padding-left: var(--content-padding) !important;
    }

    .ckeditor-table tbody td:last-child {
        padding-right: var(--content-padding) !important;
    }

.ckeditor-table tbody tr:hover {
    background: var(--light-grey);
}

/* Remove border from last row */
.ckeditor-table tbody tr:last-child td {
    border-bottom: none;
}

.ckeditor-h3 {
    margin-bottom: -15px !important;
}

p.ck-disc-desc {
    font-size: 11px;
}

.two-columns {
    display: flex;
    /* gap: 20px;*/
    align-items: flex-start;
    flex-direction: column;
}

    .two-columns > div {
        display: grid;
        grid-template-columns: 1fr 1fr;
        gap: 80px !important;
        width: 100%;
    }

.interactive-demo {
    margin: 10px 0 0 10px;
}

.margin-left-2 {
    margin-left: 20px !important;
}

/* Peer Analysis horizontal scroll with edge-pinned scroll arrows */
.peer-analysis-table-wrapper {
    position: relative;
}

.peer-analysis-table-scroll-container {
    overflow-x: auto;
}

.peer-analysis-table-wrapper {
    left: -35px;
    width: calc(100% + 70px);
}

    .peer-analysis-table-wrapper .table-panner {
        position: absolute;
        top: 0;
        bottom: 0;
        width: 36px;
        display: flex;
        align-items: center;
        justify-content: center;
        cursor: pointer;
        z-index: 10;
        /* background-color: rgba(255, 255, 255, 0.85);*/
        color: #2A4577;
        opacity: 0;
        transition: opacity 0.2s ease;
        pointer-events: none;
    }

        .peer-analysis-table-wrapper .table-panner.panner-hot {
            opacity: 1;
            pointer-events: auto;
        }

    .peer-analysis-table-wrapper .table-panner-left {
        left: 0;
    }

    .peer-analysis-table-wrapper .table-panner-right {
        right: 0;
    }

/* Freeze first column of Peer Analysis results so it stays in place
   while the remaining (per-company) columns scroll horizontally. */
.peer-analysis-table-scroll-container .analytics-results-table th:first-child {
    position: sticky;
    left: 0;
    z-index: 2;
    background: var(--table-header);
}

.peer-analysis-table-scroll-container .analytics-results-table td:first-child {
    position: sticky;
    left: 0;
    z-index: 2;
    background: var(--table-body);
}


/* Preserve the row-level background colours on the sticky first cell so
   the cell does not show as plain white on coloured section headers. */
.peer-analysis-table-scroll-container .analytics-results-table .section-header-row td:first-child,
.peer-analysis-table-scroll-container .analytics-results-table .section-header-darkgrey td:first-child {
    background: var(--medium-grey);
}

.peer-analysis-table-scroll-container .analytics-results-table .section-header-blue td:first-child {
    background: var(--lucror-gradient);
}

.peer-analysis-table-scroll-container .analytics-results-table .section-header-lightgrey td:first-child {
    background: var(--light-grey);
    position: sticky;
}

.peer-analysis-table-scroll-container .analytics-results-table thead .header-row th:first-child {
    z-index: 3;
    background: var(--table-header);
}

/* On mobile the viewport is too narrow to spare a fixed column, so unfreeze the
   first column and let the whole table scroll horizontally. */
@media (max-width: 768px) {
    .peer-analysis-table-scroll-container .analytics-results-table th:first-child,
    .peer-analysis-table-scroll-container .analytics-results-table td:first-child,
    .peer-analysis-table-scroll-container .analytics-results-table .section-header-lightgrey td:first-child {
        position: static;
    }
}

/* Calendar Stats */
.calendar-stats {
    display: flex;
    justify-content: flex-end;
    padding: var(--space-10, 10px) 0;
    font-size: var(--font-sm, 0.875rem);
    color: var(--medium-grey, #7f7f7f);
}

/* Modal Styles */
.calendar-modal {
    max-width: 650px !important;
}

.modal-overlay {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    background: rgba(0, 0, 0, 0.5);
    display: flex;
    align-items: center;
    justify-content: center;
    z-index: 1000;
}

.modal-content {
    position: relative;
    background: var(--white, #fff);
    border-radius: var(--border-10, 10px);
    padding: var(--space-30, 30px);
    max-width: 500px;
    width: 90%;
    max-height: 80vh;
    overflow-y: auto;
}

.modal-close {
    position: absolute;
    top: var(--space-15, 15px);
    right: var(--space-15, 15px);
    background: none;
    border: none;
    cursor: pointer;
    color: var(--medium-grey, #7f7f7f);
}

    .modal-close:hover {
        color: var(--black, #434343);
    }

.modal-header {
    margin-bottom: var(--space-10, 10px);
    font-size: var(--font-sm, 0.875rem);
    color: var(--medium-grey, #7f7f7f);
}

.modal-title {
    font-size: var(--font-xl, 1.25rem);
    color: var(--lucror-blue, #2A4577);
    margin-bottom: var(--space-8, 8px);
}

.modal-subtitle {
    color: var(--black, #434343);
    margin-bottom: var(--space-15, 15px);
}

.modal-content-body {
    margin-bottom: var(--space-20, 20px);
    font-size: var(--font-sm, 0.875rem);
    line-height: 1.6;
}

.modal-actions {
    display: flex;
    gap: var(--space-10, 10px);
}

    .modal-actions .btn img {
        width: 16px;
        height: 16px;
        margin-right: var(--space-5, 5px);
    }

/* Day Events Modal */
.modal-content--day {
    max-width: 400px;
}

.day-events-list {
    margin-top: var(--space-15, 15px);
}

.day-event-item {
    padding: var(--space-10, 10px);
    border-bottom: 1px solid var(--border, #e1e1e1);
    cursor: pointer;
}

    .day-event-item:hover {
        background: var(--light-grey, #f5f5f5);
    }

.day-event-company {
    display: block;
    font-weight: var(--weight-semibold, 500);
    color: var(--lucror-blue, #2A4577);
}

.day-event-title {
    display: block;
    font-size: var(--font-sm, 0.875rem);
    color: var(--black, #434343);
}

.day-event-time {
    display: block;
    font-size: var(--font-xs, 0.75rem);
    color: var(--medium-grey, #7f7f7f);
}

/* Calendar Event More Link */
.calendar-event--more {
    font-size: var(--font-xs, 0.75rem);
    color: var(--lucror-blue, #2A4577);
    cursor: pointer;
    padding: 4px 8px;
}

    .calendar-event--more:hover {
        text-decoration: underline;
    }

/* No events message */
.no-events-message {
    padding: var(--space-30, 30px);
    text-align: center;
    color: var(--medium-grey, #7f7f7f);
}

/* Disclaimer */
.disclaimer {
    font-size: 12px;
    color: rgb(108, 108, 108);
}

    .disclaimer p {
        font-size: 12px;
        color: rgb(108, 108, 108);
    }

.report-content h3:not(.ckeditor-h3) {
    margin-bottom: var(--space-15);
}

    .report-content h3:not(.ckeditor-h3) span {
        color: var(--black) !important;
        line-height: unset !important;
    }

p.blank {
    /* 1. Hide the &nbsp; by shrinking the font and line-height to zero */
    font-size: 0;
    /*line-height: 0;*/
    margin: 0;
    padding: 0;
}

    p.blank * {
        /* 2. If there are any inner HTML tags (like <span>, <strong>, etc.), bring them back to life */
        font-size: 1rem;
        line-height: normal;
    }

    /* 3. If your paragraph has text mixed in, this keeps it visible */
    p.blank::after {
        content: "";
        font-size: 1rem;
    }

#financialSummaryImage {
    cursor: pointer;
}

.no-wrap {
    white-space: nowrap;
}

div:has(> div > .ck-keep-together):not(.content-section,.report-content,.portfolio-description) {
    /* display: grid;*/
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.text-link {
    color: var(--lucror-blue);
    text-decoration: none;
    cursor: pointer;
}

.badge-new {
    font-size: 65%;
    margin-left: 4px;
    position: absolute;
    font-weight: bold;
    color: indianred;
}

.keep-together {
    white-space: nowrap;
}

/** Report Focus View **/

.focus-overlay {
    position: fixed;
    inset: 0;
    z-index: 2000;
    overflow-y: auto;
    /* Subtle neutral gutter: distinguishes the white report panel as the reading
       canvas without the glare of near-white or the harshness of a dark backdrop.
       Explicit value (not var(--light-grey)) so it stays light under the dark theme. */
    background: #e7e9ec;
    padding: var(--space-40) var(--space-20);
    /* Prose reading measure vs. the wider breakout for data-heavy blocks. */
    --focus-measure: 820px;
    --focus-breakout: 70px;
}

    /* The white report panel — a comfortable reading column lifted off the gutter. */
    .focus-overlay > .content-section {
        max-width: 1100px;
        margin: 0 auto;
        padding: 48px 90px;
        box-shadow: var(--shadow);
    }

        /* Prose sits at the reading measure, centred. .report-content itself is left
           full-width so its tables/charts can break out wider (rule below). */
        .focus-overlay > .content-section > p:not(.blank),
        .focus-overlay > .content-section > .trade-recommendation,
        .focus-overlay .report-content :is(p, h1, h2, h3, h4, h5, h6, ul, ol, blockquote) {
            max-width: var(--focus-measure);
            margin-left: auto !important;
            margin-right: auto !important;
        }

        /* Data-heavy blocks break out wider than the prose measure, extending into
           the panel's side padding so they aren't squeezed to the text column. */
        .focus-overlay .report-content > table,
        .focus-overlay .report-content > figure,
        .focus-overlay .report-content figure,
        .focus-overlay .report-content .research-table-container,
        .focus-overlay .report-content > img {
            max-width: none;
            width: calc(100% + (2 * var(--focus-breakout)));
            margin-left: calc(-1 * var(--focus-breakout)) !important;
            margin-right: calc(-1 * var(--focus-breakout)) !important;
            height: auto;
        }

        /* Disclaimer stays full width and left-aligned. */
        .focus-overlay .disclaimer p {
            text-align: left !important;
        }

.focus-overlay__close {
    position: fixed;
    top: var(--space-20);
    /* Anchor to the report panel's upper-right corner (~22px inside its right edge)
       rather than the far screen corner, so it reads as part of the panel. Clamped
       so it never leaves the screen once the panel is narrower than the viewport. */
    right: max(42px, calc(50vw - 528px));
    z-index: 2001;
    width: 42px;
    height: 42px;
    display: flex;
    align-items: center;
    justify-content: center;
    border-radius: var(--border-5);
    border: 1px solid var(--border);
    background: var(--white);
    color: var(--black);
    cursor: pointer;
}

    .focus-overlay__close:hover {
        background: var(--lucror-gradient);
        border-color: var(--lucror-blue);
        color: var(--white);
    }
/* Arrow bullets for report lists in focus mode. The site adds these via a
   JS-applied .arrow-list class scoped to .page-container; the overlay is
   teleported to <body>, outside that scope, so mirror the bullet here.
   Mirrors ul.arrow-list li:before (styles.css). Ordered lists untouched. */
.focus-overlay .report-content ul:not(.info-list) {
    list-style: none;
}

    .focus-overlay .report-content ul:not(.info-list) > li {
        position: relative;
        padding-left: 20px;
    }

        .focus-overlay .report-content ul:not(.info-list) > li::before {
            content: "\25B8";
            position: absolute;
            left: 0;
            color: var(--lucror-blue);
            font-weight: bold;
        }

#reportApp .grid-main-sidebar, .company-tear-sheet {
    grid-template-columns: 2fr 25% !important;
}

@media (max-width: 480px) {
    .focus-overlay .section-header--spaced .section-actions {
        flex-wrap: wrap;
    }

    #reportApp .grid-main-sidebar, .company-tear-sheet {
        grid-template-columns: 1fr !important;
    }

    /* Tighter panel and no breakout on phones — full width is already scarce. */
    .focus-overlay {
        --focus-breakout: 0px;
    }

    .focus-overlay > .content-section {
        padding: var(--space-20) var(--space-15);
    }
}

@media (min-width: 481px) and (max-width: 1024px) {

    .focus-overlay .section-header--spaced .section-actions {
        flex-wrap: wrap;
    }

    #reportApp .grid-main-sidebar, .company-tear-sheet {
        grid-template-columns: 1fr !important;
    }

    /* Reduce the generous side padding and drop the breakout so wide blocks
       don't overflow the narrower panel. */
    .focus-overlay {
        --focus-breakout: 0px;
    }

    .focus-overlay > .content-section {
        padding: var(--space-30) var(--space-30);
    }
}

/* Below the breakout range, wide tabular blocks scroll horizontally instead of
   overflowing the narrower panel. Report tables come wrapped in these containers
   (research-table-container / CKEditor figure.table), so scrolling the wrapper
   keeps the panel intact. */
@media (max-width: 1024px) {
    .focus-overlay .report-content figure,
    .focus-overlay .report-content .research-table-container {
        max-width: 100%;
        overflow-x: auto;
    }
}
