/* ==========================================================================
   Dossier Modules — Company Dossier Page Styles
   Redesigned for a cohesive, card-based financial-report aesthetic.
   All class hooks are preserved for JS (citation toggles, chat entry).
   ========================================================================== */

/* --- Design Tokens --- */
:root {
    --dossier-primary: #0b63d6;
    --dossier-primary-dark: #084ea8;
    --dossier-primary-light: #eaf3ff;
    --dossier-primary-ring: rgba(11, 99, 214, 0.15);
    --dossier-text: #16223a;
    --dossier-text-muted: #525760;
    --dossier-heading: #0f172a;
    --dossier-border: #e6eaf0;
    --dossier-border-strong: #d3dae4;
    --dossier-bg: #ffffff;
    --dossier-bg-alt: #f6f8fb;
    --dossier-bg-soft: #fafbfd;
    --dossier-success: #16a34a;
    --dossier-success-bg: #ecfdf3;
    --dossier-success-border: #bbf7d0;
    --dossier-danger: #dc2626;
    --dossier-danger-bg: #fef2f2;
    --dossier-danger-border: #fecaca;
    --dossier-neutral: #64748b;
    --dossier-neutral-bg: #f1f5f9;
    --dossier-neutral-border: #dbe2ea;
    --dossier-warning-bg: #fffaeb;
    --dossier-warning-border: #fde28a;
    --dossier-warning-text: #92610a;
    --dossier-radius: 12px;
    --dossier-radius-sm: 8px;
    --dossier-radius-xs: 6px;
    --dossier-shadow: 0 1px 2px rgba(16, 24, 40, 0.04), 0 1px 3px rgba(16, 24, 40, 0.06);
    --dossier-shadow-md: 0 4px 14px rgba(16, 24, 40, 0.08);
    --dossier-spacing: 1.5rem;
    --dossier-spacing-sm: 0.75rem;
    --dossier-spacing-xs: 0.4rem;
}

.dnav {
    background: #fbfcfd;
    padding: 0rem 0 0rem;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
    text-align: center;
}

.dnav::-webkit-scrollbar {
    display: none
}

/* When scrolled past, the nav is pinned to the top of the viewport (below any
   fixed site header / admin bar — the exact offset is measured in JS). A spacer
   preserves the layout height so content below does not jump. */
.dnav--stuck {
    position: fixed;
    left: 0;
    right: 0;
    z-index: 3;
    box-shadow: 0 1px 0 0 rgba(139, 141, 157, .05), 0 5px 10px 0 rgba(65, 71, 108, .15);
}

.dnav-spacer {
    display: none;
}

.dnav ul {
    display: flex;
    flex-wrap: nowrap;
    justify-content: flex-start;
    list-style: none;
    white-space: nowrap;
    width: max-content;
    min-width: 100%;
    max-width: 1180px;
    margin: 0 auto;
    padding: 0;
    border-radius: 4px;
    background: #f1f5f96b;
}

/* Tabs size to their label and scroll horizontally on narrow screens. */
.dnav ul li {
    flex: 0 0 auto;
    text-align: center;
}

/* On wider screens the tabs spread to fill the bar (classic tab look). */
@media (min-width: 782px) {
    .dnav ul {
        width: 100%;
    }

    .dnav ul li {
        flex: 1 1 0;
    }
}

.dnav ul li {
    text-align: center;
}

.dnav ul li:first-child {
    border: none;
}

.dnav a {
    display: block;
    align-items: center;
    padding: 14px 15px;
    font-size: 14px;
    color: #0e172a;
    letter-spacing: 0.5px;
    text-decoration: none;
    border-radius: 4px;
    transition: all .15s;
    border-bottom: 2px solid transparent;
}

.dnav a:hover {
    background: #e8f0fe87;
    color: #0166cc;
}

.dnav a.active {
    color: #0067cb;
    font-weight: 600;
    border-color: #0166cc;
}

.dnav ul::before,
.dnav ul::after {
    content: "";
    position: sticky;
    flex: 0 0 auto;
    align-self: stretch;
    width: 40px;
    pointer-events: none;
    opacity: 0;
    transition: opacity .15s ease;
    z-index: 2;
}

.dnav ul::before {
    left: 0;
    margin-right: -34px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='12' viewBox='0 0 8 12'%3E%3Cpath d='M7 1L2 6l5 5' fill='none' stroke='%230166cc' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat left 15px center,
        linear-gradient(to right, #f7f9fb 85%, rgba(247, 249, 251, 0));
}

.dnav ul::after {
    right: 0px;
    margin-left: -38px;
    background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='8' height='12' viewBox='0 0 8 12'%3E%3Cpath d='M1 1l5 5-5 5' fill='none' stroke='%230166cc' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E") no-repeat right 15px center,
        linear-gradient(to left, #f7f9fb 85%, rgba(247, 249, 251, 0));
}

.dnav.dnav--more-left ul::before {
    opacity: 1;
}

.dnav.dnav--more-right ul::after {
    opacity: 1;
}

.dnav ul > .dnav__ctrl {
    position: -webkit-sticky;
    position: sticky;
    flex: 0 0 auto;
    align-self: stretch;
    width: 44px;
    min-height: 44px;
    padding: 0;
    margin: 0;
    border: 0;
    border-radius: 3px;
    background: transparent !important;
    cursor: pointer;
    z-index: 3;
    display: none;
    -webkit-appearance: none;
    appearance: none;
}
.dnav ul > button.dnav__ctrl:focus{
    box-shadow: none !important;
    background: transparent !important;
}
.dnav ul > .dnav__ctrl--left  { left: 0;  margin-right: -44px; }
.dnav ul > .dnav__ctrl--right { right: 0; margin-left: -44px; }
.dnav.dnav--more-left  ul > .dnav__ctrl--left  { display: block; }
.dnav.dnav--more-right ul > .dnav__ctrl--right {display: block;}

@media (prefers-reduced-motion: no-preference) {
    .dnav.dnav--more-right ul::after {
        animation: dnav-scroll-hint 1.4s ease-in-out 2;
    }
}

@keyframes dnav-scroll-hint {

    0%,
    100% {
        background-position: right 8px center, 0 0;
    }

    50% {
        background-position: right 3px center, 0 0;
    }
}

.bp-profile-wrapper.need-separator,
.buddypress-wrap .bp-tables-user {
    background: none !important;
}

.profile .group-separator-block.dossier-block {
    padding: 0 !important;
    margin-bottom: 20px !important;
    border-color: transparent !important;
    background: none !important;
}

/* --- Module Stack Layout --- */
.dossier-modules {
    display: grid;
    grid-template-columns: 1fr;
    gap: var(--dossier-spacing);
    max-width: 100%;
    color: var(--dossier-text);
    -webkit-font-smoothing: antialiased;
}

.dossier-modules * {
    box-sizing: border-box;
}

/* --- Base Module Section (card) --- */
.dossier-module {
    background: var(--dossier-bg);
    border: 1px solid var(--dossier-border);
    border-radius: var(--dossier-radius);
    padding: 20px 15px 35px;
    overflow: hidden;
    box-shadow: var(--dossier-shadow);
}

/* Main module heading with colored accent bar (matches reference bracket markers) */
.dossier-module__title {
    display: flex;
    align-items: center;
    font-size: 22px;
    font-weight: 700;
    color: var(--dossier-heading);
    margin: 0 !important;
}

.dossier-module__title::before {
    content: "";
    flex: 0 0 auto;
    width: 4px;
    height: 1.15em;
    margin-right: 0.6rem;
    border-radius: 3px;
    background: var(--dossier-primary);
}

.dossier-module__title i {
    margin-left: 5px;
    font-size: 18px;
    margin-top: 4px;
}

.dossier-module__ai-notice {
    display: inline-block;
    font-size: 0.72rem;
    color: var(--dossier-warning-text);
    background: var(--dossier-warning-bg);
    border: 1px solid var(--dossier-warning-border);
    border-radius: 999px;
    padding: 0.2rem 0.7rem;
    margin: 0 0 var(--dossier-spacing) 0;
    font-style: normal;
    font-weight: 600;
    letter-spacing: 0.01em;
}

.dossier-module__empty-notice {
    color: var(--dossier-text-muted);
    font-style: italic;
    padding: var(--dossier-spacing-sm) 0;
}

/* --- N/A Muted Text --- */
.dossier-na {
    color: var(--dossier-text-muted);
    font-style: italic;
    opacity: 0.75;
}

/* --- Shared table styling for all dossier tables --- */
.dossier-module table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.85rem;
    background: transparent;
    border: 1px solid var(--dossier-border);
    border-radius: var(--dossier-radius-sm);
    overflow: hidden;
    margin-bottom: 1.5rem;
}

.dossier-module thead th {
    background: var(--dossier-bg-alt);
    font-weight: 600;
    color: var(--dossier-text-muted);
    font-size: 16px !important;
    letter-spacing: 0.05em;
    text-align: left;
    padding: 1rem 1.5rem !important;
}

.dossier-module tbody td {
    padding: 1rem 1.5rem !important;
    border-bottom: 1px solid var(--dossier-border) !important;
    text-align: left;
    color: var(--dossier-text);
    vertical-align: top !important;
    font-size: 16px !important;
    font-weight: 500;
}

.dossier-module tbody tr:last-child td {
    border-bottom: none;
}


/* Sub-section headings shared across modules */
.financial-snapshot__section-title,
.qualitative__section-title,
.outlook__section-title,
.thesis__section-title,
.valuation__assumptions-title,
.valuation__flags-title,
.valuation__peers-title {
    font-size: 0.9rem;
    font-weight: 700;
    color: var(--dossier-heading);
    margin: var(--dossier-spacing) 0 var(--dossier-spacing-sm) 0;
    letter-spacing: -0.005em;
}

.financial-snapshot__section-title:first-child,
.qualitative__section-title:first-child,
.outlook__section-title:first-child,
.thesis__section-title:first-child {
    margin-top: 0;
}

/* ==========================================================================
   Module 4.1 - Company Header Snapshot
   ========================================================================== */
.dossier-module--header-snapshot {
    padding: 2rem 0;
    overflow: visible;
}

.header-snapshot__help {
    color: var(--dossier-text-muted);
    font-size: 16px !important;
    cursor: help;
    opacity: 0.8;
}

/* --- 3-column grid --- */
.header-snapshot__grid {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    padding: var(--dossier-spacing);
}

/* Identity strip + Valuation render as full-width bordered cards. */
.header-snapshot__identity,
.header-snapshot__valuation {
    border: 1px solid var(--dossier-border);
    border-radius: var(--dossier-radius-sm);
    background: #fff;
    padding: 2rem;
}

/* Full-width identity top bar (company name + ticker / exchange badges). */
.header-snapshot__topbar {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    padding: 0 var(--dossier-spacing);
    margin-bottom: 0.25rem;
}

/* Market data: three separate icon cards in a row. */
.header-snapshot__market {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 1rem;
}

.header-snapshot__market-card {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    border-radius: var(--dossier-radius-sm);
    background: #e6eaf07d;
    padding: 1.5rem 1.25rem;
}

.header-snapshot__market-icon {
    flex: 0 0 auto;
    width: 42px;
    height: 42px;
    border-radius: var(--dossier-radius-xs);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.8rem;
    background: var(--dossier-bg-soft);
    color: var(--dossier-heading);
}

.header-snapshot__market-body {
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
    min-width: 0;
}

.header-snapshot__market-body .header-snapshot__metric-label,
.header-snapshot__market-body .header-snapshot__metric-value {
    margin-bottom: 0;
}

/* --- Identity column --- */
.header-snapshot__identity-head {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    padding-bottom: 1rem;
    margin-bottom: 1rem;
    border-bottom: 1px solid var(--dossier-border);
}

.header-snapshot__logo {
    flex: 0 0 auto;
    width: 60px;
    height: 60px;
    border: 1px solid var(--dossier-border);
    border-radius: var(--dossier-radius-sm);
    background: var(--dossier-bg);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    box-shadow: var(--dossier-shadow);
}

.header-snapshot__logo-img,
.header-snapshot__logo img {
    width: 100%;
    height: 100%;
    object-fit: contain;
    border-radius: 0;
    margin: 0;
}

.header-snapshot__logo-fallback {
    font-size: 1.6rem;
    font-weight: 800;
    color: var(--dossier-primary);
}

.header-snapshot__name-block {
    min-width: 0;
}

table.profile-fields h2.header-snapshot__company-name {
    font-size: 2rem !important;
    font-weight: 700;
    line-height: 1.4;
    color: var(--dossier-heading);
    margin: 0 0 1rem;
    letter-spacing: -0.01em;
}

.header-snapshot__tickers {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.6rem;
}

.header-snapshot__ticker-badge {
    display: inline-block;
    background: var(--dossier-primary);
    color: #fff;
    font-weight: 800;
    padding: 0.3em 0.8em;
    border-radius: var(--dossier-radius-xs);
    font-size: 13px;
    letter-spacing: 0.03em;
}

.header-snapshot__ticker-badge--empty {
    background: var(--dossier-neutral-bg);
    color: var(--dossier-text-muted);
}

.header-snapshot__exchange-badge {
    display: inline-block;
    background: var(--dossier-neutral-bg);
    color: var(--dossier-text-muted);
    font-weight: 700;
    padding: 0.3em 0.8em;
    border-radius: var(--dossier-radius-xs);
    font-size: 13px;
    letter-spacing: 0.02em;
}

.header-snapshot__id-rows {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
}

/* Identity cells: uppercase label (with icon) on top, value beneath, left aligned. */
.header-snapshot__id-row {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.5rem;
    padding: 0.25rem 1.5rem;
    border-right: 1px solid var(--dossier-border);
}

.header-snapshot__id-row:first-child {
    padding-left: 0.25rem;
}

.header-snapshot__id-row:last-child {
    border-right: none;
    padding-right: 0.25rem;
}

.header-snapshot__id-label {
    display: inline-flex;
    min-width: 100px;
    align-items: center;
    gap: 0.6rem;
    font-size: 13px;
    font-weight: 500;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--dossier-text-muted);
}

.header-snapshot__id-label i {
    color: var(--dossier-text-muted);
    font-size: 16px;
    width: 1.1em;
    text-align: center;
}

.header-snapshot__id-value {
    font-size: 16px;
    font-weight: 600;
    color: var(--dossier-heading);
    text-align: left;
    line-height: 1.4;
}

/* --- Shared metric label / value (valuation + market) --- */
.header-snapshot__metric-label {
    display: block;
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--dossier-text-muted);
    margin-bottom: 1rem;
}

.valuation__summary-label i,
.header-snapshot__metric-label i {
    font-size: 14px;
}

.header-snapshot__metric-value {
    display: block;
    font-size: 22px;
    font-weight: 800;
    line-height: 1.1;
    color: var(--dossier-heading);
    letter-spacing: 0.1px;
    margin-bottom: 1rem;
}

.header-snapshot__metric-asof {
    display: block;
    font-size: 14px;
    font-weight: 500;
    color: var(--dossier-text-muted);
    margin-top: 0.8rem;
}

/* --- Valuation column --- */
.header-snapshot__val-cols {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 1rem;
    margin-bottom: 2rem;
    text-align: center;
}

/* Discount / premium pill */
.header-snapshot__dp {
    text-align: center;
    margin-bottom: 2rem;
}

.header-snapshot__dp-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 14px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.02em;
    padding: 0.4rem 1rem;
    border-radius: 999px;
}

.header-snapshot__dp-pill--discount {
    background: var(--dossier-success-bg);
    color: #15803d;
    border: 1px solid var(--dossier-success-border);
}

.header-snapshot__dp-pill--premium {
    background: var(--dossier-danger-bg);
    color: var(--dossier-danger);
    border: 1px solid var(--dossier-danger-border);
}

.header-snapshot__dp-pill--fair,
.header-snapshot__dp-pill--neutral {
    background: var(--dossier-neutral-bg);
    color: var(--dossier-neutral);
    border: 1px solid var(--dossier-neutral-border);
}

.header-snapshot__dp-sub {
    display: block;
    font-size: 13px;
    color: var(--dossier-text-muted);
    margin-top: 0.6rem;
    font-weight: 500;
}

/* Gauge */
.header-snapshot__gauge {
    position: relative;
    width: 100%;
    margin-top: 1.5rem;
}

.header-snapshot__gauge-bar {
    position: relative;
    width: 99%;
    margin: 0 auto;
    height: 10px;
    border-radius: 999px;
    background: linear-gradient(to right, #dc2626ba 0%, #fca5a5b5 30%, #f3f4f6 50%, #86efacb5 70%, #16a34aba 100%);
}

.header-snapshot__gauge-center {
    position: absolute;
    top: -3px;
    bottom: -3px;
    left: 50%;
    width: 2px;
    background: var(--dossier-heading);
    transform: translateX(-50%);
    border-radius: 2px;
    opacity: 0.55;
}

.header-snapshot__gauge-marker {
    position: absolute;
    top: -9px;
    width: 0;
    height: 0;
    border-left: 7px solid transparent;
    border-right: 7px solid transparent;
    border-top: 9px solid var(--dossier-heading);
    transform: translateX(-50%);
    /* left set via inline style: calc(50% + X%) */
    filter: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.2));
}

.header-snapshot__gauge-scale {
    display: flex;
    justify-content: space-between;
    margin-top: 0.5rem;
    font-size: 14px;
    font-weight: 600;
    color: var(--dossier-text-muted);
}

.header-snapshot__gauge-legend {
    display: flex;
    justify-content: space-between;
    margin-top: 2px;
    font-size: 13px;
    font-weight: 600;
}

.header-snapshot__gauge-legend--discount {
    color: #15803d;
}

.header-snapshot__gauge-legend--fair {
    color: var(--dossier-text-muted);
}

.header-snapshot__gauge-legend--premium {
    color: var(--dossier-danger);
}

/* --- Market column --- */
.header-snapshot__market-cap .header-snapshot__metric-value,
.header-snapshot__market-stat .header-snapshot__metric-value {
    font-size: 19px;
    font-weight: 800;
}

.header-snapshot__badges-row {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    gap: 1rem;
    padding: 0 var(--dossier-spacing) var(--dossier-spacing);
    margin-top: 0;
}

.header-snapshot__badge-card {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    border: 1px solid var(--dossier-border);
    border-radius: var(--dossier-radius-sm);
    padding: 1.1rem 1.25rem;
    background: #fff;
    text-align: left;
}

.header-snapshot__badge-icon {
    flex: 0 0 auto;
    width: 42px;
    height: 42px;
    border-radius: var(--dossier-radius-xs);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.8rem;
    background: #e8eefc;
    color: var(--dossier-primary);
}

.header-snapshot__badge-body {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    min-width: 0;
}

.header-snapshot__badge-label {
    display: block;
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--dossier-text-muted);
    margin: 0;
}

.header-snapshot__badge-value i {
    font-size: 22px;
}

.header-snapshot__badge-label i {
    font-size: 13px;
}

.header-snapshot__badge-value {
    display: block;
    font-size: 15px;
    font-weight: 800;
    color: var(--dossier-heading);
}

.header-snapshot__badge-card--good .header-snapshot__badge-value {
    color: #15803d;
}

.header-snapshot__badge-card--warn .header-snapshot__badge-value {
    color: #b45309;
}

.header-snapshot__badge-card--info .header-snapshot__badge-value {
    color: var(--dossier-primary);
}

.header-snapshot__date-card {
    display: flex;
    align-items: center;
    gap: 0.9rem;
    border: 1px solid var(--dossier-border);
    border-radius: var(--dossier-radius-sm);
    padding: 1.1rem 1.25rem;
    background: #fff;
}

.header-snapshot__date-icon.fa-calendar-day {
    background: #ffeed0;
    color: #ffa500;
}

.header-snapshot__date-icon {
    flex: 0 0 auto;
    width: 42px;
    height: 42px;
    border-radius: var(--dossier-radius-xs);
    display: inline-flex !important;
    align-items: center;
    justify-content: center;
    font-size: 1.8rem;
    background: #caf2da;
    color: #07973d;
    text-align: center;
}

.header-snapshot__date-icon--earnings {
    background: var(--dossier-success-bg);
    color: #15803d;
}

.header-snapshot__date-icon--exdiv {
    background: #fff3e6;
    color: #c2560a;
}

.header-snapshot__date-body {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.header-snapshot__date-label {
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--dossier-text-muted);
}

.header-snapshot__date-value {
    font-size: 15px;
    font-weight: 800;
    color: var(--dossier-heading);
    line-height: 1.2;
}

/* --- Snapshot disclaimer --- */
.header-snapshot__disclaimer {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    padding: 1.3rem var(--dossier-spacing);
    background: var(--dossier-primary-light);
    border-top: 1px solid #d9e7fb;
    font-size: 14px;
    color: var(--dossier-text);
    line-height: 1.4;
}

.header-snapshot__disclaimer i {
    color: var(--dossier-primary);
    font-size: 1.5rem;
    flex: 0 0 auto;
}

.dossier-module--header-snapshot .dossier-chat-entry {
    margin: var(--dossier-spacing-sm) var(--dossier-spacing) var(--dossier-spacing);
}

/* ==========================================================================
   Shared module head (Valuation + Financial Snapshot)
   ========================================================================== */
.dossier-module--valuation {
    padding: 20px 15px 35px;
}

.dossier-module__head {
    display: flex;
    align-items: flex-start;
    gap: 0.85rem;
    margin-bottom: var(--dossier-spacing);
    padding-bottom: var(--dossier-spacing-sm);
}

.dossier-module__icon {
    flex: 0 0 auto;
    width: 55px;
    height: 55px;
    border-radius: var(--dossier-radius-sm);
    background: var(--dossier-primary-light);
    color: var(--dossier-primary);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 30px;
}

.dossier-module__head .dossier-module__title {
    margin: 0;
    padding: 0;
    border-bottom: none;
}

.dossier-module__head .dossier-module__title::before {
    display: none;
}

.dossier-module__subtitle {
    margin: 5px 0 0 !important;
    font-size: 15px;
    color: var(--dossier-text-muted);
    line-height: 1.4;
}

/* Tabular numerals for financial figures */
.valuation__summary-value,
.valuation-chart__value,
.valuation-chart__scale span,
.valuation__peer-value,
.valuation__assumptions-value,
.financial-snapshot__kpi-value,
.financial-snapshot__return-value,
.financial-snapshot__balance-value,
.financial-snapshot__capital-value,
.financial-snapshot__margins-table td,
.financial-snapshot__segments-table td {
    font-variant-numeric: tabular-nums;
    font-feature-settings: "tnum";
}

/* ==========================================================================
   Module 4.2 - Valuation
   ========================================================================== */

/* --- Summary strip --- */
.valuation__summary {
    display: grid;
    grid-template-columns: 1.3fr 1fr 1.2fr;
    gap: 0;
    border: 1px solid var(--dossier-border);
    border-radius: var(--dossier-radius-sm);
    overflow: hidden;
    margin-bottom: var(--dossier-spacing);
}

/* Fewer summary items (e.g. Margin of Safety omitted): match the track count so
   no empty grid column is left behind. Responsive rules below still collapse to
   2 / 1 columns at the tablet and mobile breakpoints. */
.valuation__summary--cols-2 {
    grid-template-columns: 1.3fr 1fr;
}
.valuation__summary--cols-1 {
    grid-template-columns: 1fr;
}

.valuation__summary-item {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 0.3rem;
    padding: 1.5rem 1.5rem;
    border-left: 1px solid var(--dossier-border);
    text-align: center;
}

.valuation__summary-item .header-snapshot__confidence {
    justify-content: center;
    margin: 0;
    padding: 0;
    margin-top: 10px;
    border: none;
}

.valuation__summary-item:first-child {
    border-left: none;
}

.valuation__summary-label {
    font-size: 13px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.05em;
    color: var(--dossier-text-muted);
    margin-bottom: 1rem;
}

.valuation__summary-value {
    font-size: 23px;
    font-weight: 800;
    line-height: 1.1;
    color: var(--dossier-heading);
    letter-spacing: 0.1px;
}

.valuation__summary-value--pos {
    color: var(--dossier-success);
}

.valuation__summary-value--neg {
    color: var(--dossier-danger);
}

.valuation__summary-basis {
    font-weight: 500 !important;
    color: #0e172a !important;
}

.valuation__summary-asof {
    font-size: 14px;
    color: var(--dossier-text-muted);
    margin-top: 0.8rem;
}

.valuation__status-pill {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    align-self: flex-start;
    font-size: 14px;
    font-weight: 800;
    padding: 0.4rem 0.8rem;
    border-radius: 999px;
    margin-top: 0.1rem;
}

.valuation__status-pill--discount {
    background: var(--dossier-success-bg);
    color: #15803d;
    border: 1px solid var(--dossier-success-border);
}

.valuation__status-pill--premium {
    background: var(--dossier-danger-bg);
    color: var(--dossier-danger);
    border: 1px solid var(--dossier-danger-border);
}

.valuation__status-pill--fair,
.valuation__status-pill--neutral {
    background: var(--dossier-neutral-bg);
    color: var(--dossier-neutral);
    border: 1px solid var(--dossier-neutral-border);
}

/* --- Body two-column layout --- */
.valuation__panel {
    border: 1px solid var(--dossier-border);
    border-radius: var(--dossier-radius-sm);
    padding: 1.5rem;
    background: var(--dossier-bg);
    margin-bottom: var(--dossier-spacing);
}

.valuation__panel-title {
    font-size: 17px;
    font-weight: 700;
    color: var(--dossier-heading);
    margin: 0 0 2rem 0 !important;
}

/* --- Method chart --- */
.valuation-chart {
    --val-label-w: 60px;
    --val-value-w: 155px;
    position: relative;
}

.valuation-chart__scale {
    display: flex;
    justify-content: space-between;
    padding-left: var(--val-label-w);
    padding-right: var(--val-value-w);
    font-size: 14px;
    font-weight: 600;
    color: var(--dossier-text-muted);
}

.valuation-chart__scale--spacer {
    margin: 0.35rem 0;
}

.valuation-chart__plot {
    position: relative;
    padding: 0.5rem 0;
}

.valuation-chart__row {
    display: grid;
    grid-template-columns: var(--val-label-w) 1fr var(--val-value-w);
    align-items: center;
    min-height: 53px;
}

.valuation-chart__label {
    padding-right: 0.6rem;
    font-size: 14px;
    font-weight: 600;
    color: var(--dossier-text-muted);
    text-align: right;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
}

.valuation-chart__track {
    position: relative;
    height: 7px;
    background: #eef0f3;
    border-radius: 999px;
    overflow: visible;
}

.valuation-chart__bar {
    display: block;
    height: 100%;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--dossier-primary) 0%, #3b82f6 100%);
    transform-origin: left center;
    animation: dossier-bar-grow 220ms ease-out both;
}

.valuation-chart__value {
    padding-left: 1.5rem;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    justify-content: center;
    gap: 2px;
    font-size: 14px;
    font-weight: 700;
    color: var(--dossier-heading);
    text-align: right;
    line-height: 1.25;
    white-space: normal;
}

.valuation-chart__overlay {
    position: absolute;
    top: 0;
    bottom: 0;
    left: var(--val-label-w);
    right: var(--val-value-w);
    pointer-events: none;
    z-index: 2;
}

.valuation-chart__refline {
    position: absolute;
    top: 0;
    bottom: 0;
    border-left: 2px dashed var(--dossier-danger);
    animation: dossier-fade-in 200ms ease-out 200ms both;
}

.valuation-chart__diamond {
    position: absolute;
    top: -2px;
    width: 12px;
    height: 12px;
    background: var(--dossier-primary);
    border: 1px solid #fff;
    transform: translateX(-50%) rotate(45deg);
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.2);
    animation: dossier-diamond-pop 220ms ease-out 250ms both;
}

.valuation-chart__legend {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 3rem;
    justify-content: center;
    margin-top: 19px;
    padding-top: 1.5rem;
    border-top: 1px solid var(--dossier-border);
    font-size: 14px;
    font-weight: 500;
}

.valuation-chart__legend-item {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
}

.valuation-chart__legend-line {
    display: inline-block;
    width: 22px;
    border-top: 2px dashed var(--dossier-danger);
}

.valuation-chart__legend-diamond {
    display: inline-block;
    width: 10px;
    height: 10px;
    background: var(--dossier-primary);
    transform: rotate(45deg);
}

.valuation-chart__note {
    display: flex;
    align-items: flex-start;
    gap: 0.5rem;
    margin: 40px 0 80px !important;
    padding: 10px 12px;
    background: var(--dossier-bg-alt);
    border-radius: var(--dossier-radius-sm);
    font-size: 14px;
    color: var(--dossier-text-muted);
    line-height: 1.45;
}

.valuation-chart__note i {
    color: var(--dossier-primary);
    margin-top: 0.3rem;
    font-size: 15px;
}

.valuation-chart__empty {
    font-size: 13px;
    color: var(--dossier-text-muted);
    font-style: italic;
    padding: var(--dossier-spacing-sm) 0;
    text-align: center;
}

/* --- Assumptions table --- */
.valuation__assumptions-table {
    width: 100% !important;
    border-collapse: collapse !important;
    font-size: 13px !important;
    border: none;
    margin-bottom: 0 !important;
}

.valuation__assumptions-table thead th {
    padding: 1.3rem 0 !important;
    font-size: 16px !important;
    padding-left: 1.5rem !important;
}

.valuation__assumptions-table tbody td {
    padding: 1.3rem 0 !important;
    border-bottom: 1px solid var(--dossier-border) !important;
    background: transparent;
    font-size: 16px !important;
    font-weight: 600;
    line-height: 1.4;
    padding-left: 15px !important;
}

.valuation__assumptions-table tbody td.valuation__assumptions-value {
    max-width: 210px !important;
    line-height: 1.4;
    text-align: left !important;
    font-size: 15px !important;
}

.valuation__assumptions-table tbody tr:last-child td {
    border-bottom: none;
}

.valuation__assumptions-value {
    text-align: right !important;
    font-weight: 700 !important;
    color: var(--dossier-heading) !important;
    line-height: 1.4;
}

/* Growth-schedule row sub-text (always visible) + amber cap chip (only when the cap binds) */
.valuation__assumptions-sub {
    display: block;
    margin-top: 3px;
    font-size: 14px;
    font-weight: 500;
    color: var(--dossier-text-muted);
}

.valuation__assumptions-chip {
    display: inline-block;
    margin-left: 6px;
    padding: 1px 8px;
    border-radius: 999px;
    font-size: 13px;
    font-weight: 700;
    background: var(--dossier-warning-bg);
    color: var(--dossier-warning-text);
    border: 1px solid var(--dossier-warning-border);
    white-space: nowrap;
    vertical-align: middle;
}

/* --- Current trading multiples table (mirrors the assumptions table) --- */
.valuation__multiples {
    margin-top: 1rem;
}

.valuation__multiples-table {
    width: 100% !important;
    border-collapse: collapse !important;
    font-size: 13px !important;
    border: none;
    margin-bottom: 0 !important;
}

.valuation__multiples-table thead th {
    background: transparent;
    border-bottom: 1px solid var(--dossier-border-strong) !important;
    padding: 1rem 0 !important;
    font-size: 12px !important;
}

.valuation__multiples-table tbody td {
    padding: 1rem 0 !important;
    border-bottom: 1px solid var(--dossier-border) !important;
    background: transparent;
    font-size: 14px !important;
    font-weight: 500;
}

.valuation__multiples-table tbody tr:last-child td {
    border-bottom: none;
}

.valuation__multiples-value {
    text-align: right !important;
    font-weight: 700 !important;
    color: var(--dossier-heading) !important;
    white-space: nowrap;
}

.valuation__multiples-note {
    margin: 0.6rem 0 0 !important;
    font-size: 12px !important;
    color: var(--dossier-muted, #64748b) !important;
}

/* --- Peer cards --- */
.valuation__peers-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.6rem;
}

.valuation__peer-card {
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
    padding: 0.7rem 0.6rem;
    border: 1px solid var(--dossier-border);
    border-radius: var(--dossier-radius-sm);
    background: var(--dossier-bg-soft);
    text-align: center;
}

.valuation__peer-label {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.3rem;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--dossier-text-muted);
}

.valuation__peer-label i {
    color: var(--dossier-primary);
}

.valuation__peer-value {
    font-size: 18px;
    font-weight: 800;
    color: var(--dossier-heading);
}

.valuation__peer-sub {
    font-size: 12px;
    color: var(--dossier-text-muted);
}

/* --- Valuation notes --- */
.valuation__notes-list {
    list-style: none;
    padding: 0;
    margin: 0;
}

.valuation__note-item {
    color: var(--dossier-text);
    padding-left: 10px !important;
    margin-bottom: 13px !important;
}

.valuation__note-item::before {
    content: "";
    position: absolute;
    left: 0;
    top: 0.7em;
    width: 5px;
    height: 5px;
    border-radius: 50%;
    background: #15223a;
}

.valuation__notes-empty {
    font-size: 13px;
    color: var(--dossier-text-muted);
    font-style: italic;
    margin: 0;
}

/* --- Future-feature banner --- */
.valuation__future {
    display: flex;
    align-items: center;
    gap: 0.7rem;
    margin-top: var(--dossier-spacing);
    padding: 0.8rem 1rem;
    background: var(--dossier-primary-light);
    border: 1px solid #d9e7fb;
    border-radius: var(--dossier-radius-sm);
    font-size: 14px;
    color: var(--dossier-text);
}

.valuation__future i {
    color: var(--dossier-primary);
    font-size: 1.5rem;
}

/* ==========================================================================
   Module 4.3 - Financial Snapshot
   ========================================================================== */

.dossier-module--financial-snapshot {
    padding: 20px 15px 35px;
}

/* Shared panel */
.financial-snapshot__panel {
    border: 1px solid var(--dossier-border);
    border-radius: var(--dossier-radius-sm);
    padding: 1.5rem;
    background: var(--dossier-bg);
}

.financial-snapshot__trend {
    margin-top: 15px;
}

.financial-snapshot__margins .financial-snapshot__panel-title {
    margin: 0 !important;
}

.financial-snapshot__panel-title {
    font-size: 1.6rem;
    font-weight: 700;
    color: var(--dossier-heading);
    margin: 0 0 20px !important;
}

.financial-snapshot__panel-title i {
    font-size: 13px;
}

/* --- KPI cards --- */
.financial-snapshot__kpis {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--dossier-spacing);
    margin-bottom: var(--dossier-spacing);
}

.financial-snapshot__kpi {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 1.5rem;
    border: 1px solid var(--dossier-border);
    border-radius: var(--dossier-radius-sm);
    background: var(--dossier-bg);
    box-shadow: var(--dossier-shadow);
}

.financial-snapshot__kpi-main {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    min-width: 0;
}

.financial-snapshot__kpi-label {
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    color: var(--dossier-text-muted);
}

.financial-snapshot__kpi-label i {
    font-size: 14px;
}

.financial-snapshot__kpi-value {
    font-size: 22px;
    font-weight: 800;
    line-height: 1.05;
    color: var(--dossier-heading);
    margin: 8px 0;
}

.financial-snapshot__kpi-yoy {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-size: 14px;
    font-weight: 700;
}

.financial-snapshot__kpi-yoy--pos {
    color: var(--dossier-success);
}

.financial-snapshot__kpi-yoy--neg {
    color: var(--dossier-danger);
}

.financial-snapshot__kpi-yoy--na {
    color: var(--dossier-text-muted);
}

.financial-snapshot__kpi-icon {
    flex: 0 0 auto;
    width: 45px;
    height: 45px;
    border-radius: var(--dossier-radius-sm);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 2.2rem;
}

/* Revenue / Free Cash Flow icons follow the same sign convention as Net Income:
   green when the metric is positive, red when negative (via --neg, below). */
.financial-snapshot__kpi-icon--revenue {
    background: var(--dossier-success-bg);
    color: #15803d;
}

.financial-snapshot__kpi-icon--income {
    background: var(--dossier-success-bg);
    color: #15803d;
}

.financial-snapshot__kpi-icon--fcf {
    background: var(--dossier-success-bg);
    color: #15803d;
}

/* Negative metric (a loss): colour the headline figure and its icon with the
   danger token so the loss is legible at a glance. Placed after the per-metric
   icon colours so it overrides them; a positive metric keeps its own colour
   (e.g. Net Income stays green). */
.financial-snapshot__kpi-value--neg {
    color: var(--dossier-danger);
}

.financial-snapshot__kpi-icon--neg {
    background: var(--dossier-danger-bg);
    color: var(--dossier-danger);
}

/* --- Quality row: Margins | Returns | Balance --- */
.financial-snapshot__grids {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--dossier-spacing);
    margin-bottom: var(--dossier-spacing);
    align-items: start;
    margin-top: 15px;
}

/* Margins table */
.financial-snapshot__margins-table {
    border-collapse: collapse !important;
    font-size: 0.8rem !important;
    border: none !important;
    margin-top: 15px;
}

.financial-snapshot__margins-table thead th:first-child {
    text-align: left;
}

.financial-snapshot__margins-table tbody td {
    padding: 1.3rem 15px !important;
    background: transparent;
    font-weight: 700 !important;
    color: var(--dossier-heading);
    white-space: nowrap;
}

.financial-snapshot__margins-table tbody td:first-child {
    text-align: left;
    font-weight: 500;
    width: 60%;
    font-size: 12px;
}

.financial-snapshot__margins-table tbody tr:last-child td {
    border-bottom: none;
}

.financial-snapshot__margin-name {
    display: block;
    font-weight: 600;
    color: var(--dossier-text);
    margin-bottom: 0.3rem;
}

.financial-snapshot__bar {
    display: block;
    width: 100%;
    height: 6px;
    border-radius: 999px;
    background: var(--dossier-bg-alt);
    overflow: hidden;
}

.financial-snapshot__bar-fill {
    display: block;
    height: 100%;
    border-radius: 999px;
    background: linear-gradient(90deg, var(--dossier-primary) 0%, #3b82f6 100%);
    transform-origin: left center;
    animation: dossier-bar-grow 220ms ease-out both;
}

/* Returns grid */
.financial-snapshot__returns-grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.5rem;
    margin-bottom: 2px;
}

.financial-snapshot__return-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.3rem;
    padding: 0.75rem 0.4rem;
    background: var(--dossier-bg-soft);
    border: 1px solid var(--dossier-border);
    border-radius: var(--dossier-radius-sm);
    text-align: center;
}

.financial-snapshot__return-icon {
    width: 30px;
    height: 30px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    background: var(--dossier-success-bg);
    color: #15803d;
    font-size: 14px;
}

.financial-snapshot__return-value {
    font-size: 18px;
    font-weight: 800;
    color: var(--dossier-heading);
}

.financial-snapshot__return-label {
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--dossier-text-muted);
}

/* Balance sheet grid */
.financial-snapshot__balance-grid {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr 1fr;
    gap: 0.5rem;
    /* margin-bottom: 16px; */
}

.financial-snapshot__balance-item {
    display: flex;
    flex-direction: column;
    gap: 0.15rem;
    padding: 1.1rem 0rem;
    background: var(--dossier-bg-soft);
    border: 1px solid var(--dossier-border);
    border-radius: var(--dossier-radius-sm);
    text-align: center;
}

.financial-snapshot__balance-label {
    font-size: 13px;
    font-weight: 700;
    color: var(--dossier-text-muted);
    line-height: 1.4;
}

.financial-snapshot__balance-value {
    font-size: 18px;
    font-weight: 800;
    color: var(--dossier-heading);
    margin: 9px 0;
}

.financial-snapshot__balance-sub {
    font-size: 11px;
    font-weight: 600;
    color: var(--dossier-success);
    line-height: 1.3;
}

/* --- Capital allocation --- */
.financial-snapshot__capital {
    margin-bottom: var(--dossier-spacing);
}

.financial-snapshot__capital-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--dossier-spacing-sm);
}

.financial-snapshot__capital-item {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1.5rem 1.5rem;
    border: 1px solid var(--dossier-border);
    border-radius: var(--dossier-radius-sm);
    background: #fafbfd;
}

.financial-snapshot__capital-icon {
    flex: 0 0 auto;
    width: 45px;
    height: 50px;
    border-radius: var(--dossier-radius-xs);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 19px;
    background: var(--dossier-neutral-bg);
    color: var(--dossier-neutral);
}

.financial-snapshot__capital-icon--rd {
    background: #f3ecff;
    color: #7c3aed;
}

.financial-snapshot__capital-icon--capex {
    background: #fff3e6;
    color: #c2560a;
}

.financial-snapshot__capital-body {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    min-width: 0;
}

.financial-snapshot__capital-label {
    font-size: 14px;
    font-weight: 700;
    color: var(--dossier-text-muted);
}

.financial-snapshot__capital-value {
    font-size: 19px;
    font-weight: 800;
    color: var(--dossier-heading);
    line-height: 1.2;
}

/* --- Segment performance --- */
.financial-snapshot__segments {
    margin-bottom: var(--dossier-spacing);
}

.financial-snapshot__segments-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.82rem;
    border: 1px solid var(--dossier-border);
    border-radius: var(--dossier-radius-sm);
    overflow: hidden;
    margin-bottom: 0;
}

.financial-snapshot__segments-table thead th {
    background: var(--dossier-bg-alt);
    padding: 1.3rem 1rem !important;
    font-size: 1.3rem !important;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--dossier-text-muted);
    text-align: left;
}

.financial-snapshot__segments-table tbody td {
    font-weight: 500;
    padding: 0.6rem 0.75rem;
    border-bottom: 1px solid var(--dossier-border);
    vertical-align: middle;
    line-height: 1.3;
}

.financial-snapshot__segments-table tbody td:last-child {
    width: 300px;
}

.financial-snapshot__segments-table tbody tr:last-child td {
    border-bottom: none;
}

.financial-snapshot__seg-name {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    font-weight: 500;
    color: var(--dossier-heading);
}

.financial-snapshot__seg-icon {
    width: 28px;
    height: 28px;
    border-radius: var(--dossier-radius-xs);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    color: var(--dossier-primary);
    font-size: 1.4rem;
}

.financial-snapshot__seg-yoy--pos {
    color: var(--dossier-success);
    font-weight: 700;
}

.financial-snapshot__seg-yoy--neg {
    color: var(--dossier-danger);
    font-weight: 700;
}

.financial-snapshot__seg-yoy--pos i,
.financial-snapshot__seg-yoy--neg i {
    margin-right: 0.2rem;
}

.financial-snapshot__seg-margin {
    display: block;
    font-weight: 700;
    color: var(--dossier-heading);
    margin-bottom: 0.3rem;
}

.financial-snapshot__seg-details {
    font-size: 1.4rem;
}

.financial-snapshot__seg-details>summary {
    cursor: pointer;
    color: var(--dossier-primary);
    font-weight: 700;
    list-style: none;
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
}

.financial-snapshot__seg-details>summary::-webkit-details-marker {
    display: none;
}

.financial-snapshot__seg-details>summary::after {
    content: "\2192";
    /* arrow */
    transition: transform 0.15s ease;
}

.financial-snapshot__seg-details[open]>summary::after {
    transform: rotate(90deg);
}

.financial-snapshot__seg-details>summary:focus-visible {
    outline: 2px solid var(--dossier-primary);
    outline-offset: 2px;
    border-radius: 3px;
}

.financial-snapshot__seg-details p {
    margin: 0.5rem 0 0 0 !important;
    color: var(--dossier-text);
    line-height: 1.5;
}

.financial-snapshot__segments-empty {
    font-size: 13px;
    color: var(--dossier-text-muted);
    font-style: italic;
    margin: 0;
}

/* --- Footer note --- */
.financial-snapshot__footer-note {
    display: flex;
    align-items: center;
    gap: 0.6rem;
    margin-top: var(--dossier-spacing);
    padding: 1.3rem 1rem;
    background: var(--dossier-primary-light);
    border-radius: var(--dossier-radius-sm);
    font-size: 1.4rem;
    line-height: 1.4;
}

.financial-snapshot__footer-note i {
    color: var(--dossier-primary);
    font-size: 1.4rem;
    flex: 0 0 auto;
}

/* ==========================================================================
   Valuation + Financial - motion & responsive behavior
   ========================================================================== */
@keyframes dossier-bar-grow {
    from {
        transform: scaleX(0);
    }

    to {
        transform: scaleX(1);
    }
}

@keyframes dossier-fade-in {
    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }
}

@keyframes dossier-diamond-pop {
    from {
        opacity: 0;
        transform: translateX(-50%) rotate(45deg) scale(0.4);
    }

    to {
        opacity: 1;
        transform: translateX(-50%) rotate(45deg) scale(1);
    }
}

/* Tablet: summary + chart full width, side panels split, KPI/grids 2-up */
@media (max-width: 900px) {
    .valuation__body {
        grid-template-columns: 1fr;
    }

    .valuation__summary {
        grid-template-columns: repeat(2, 1fr);
    }

    .valuation__summary-item:nth-child(3) {
        border-left: none;
    }

    .financial-snapshot__kpis {
        grid-template-columns: repeat(2, 1fr);
    }

    .financial-snapshot__grids {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* Mobile: single-column stacks; segment table becomes cards */
@media (max-width: 600px) {
    .header-snapshot__verdict{
        padding-top: 1.5rem !important;
        margin-top: 1rem !important;
    }

    .dossier-compare__legend {
        justify-content: center !important;
    }

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

    .valuation-chart__peer {
        width: 7px !important;
        height: 7px !important;
    }

    .valuation__summary-item {
        border-left: none;
        border-top: 1px solid var(--dossier-border);
    }

    .valuation__summary-item:first-child {
        border-top: none;
    }

    .valuation__side-col {
        grid-template-columns: 1fr;
    }

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

    .financial-snapshot__kpis {
        grid-template-columns: 1fr;
    }

    .financial-snapshot__grids {
        grid-template-columns: 1fr !important;
    }

    .financial-snapshot__capital-grid {
        grid-template-columns: 1fr;
    }

    .financial-snapshot__returns-grid {
        grid-template-columns: repeat(3, 1fr);
    }

    /* Segment table - cards */
    .financial-snapshot__segments-table,
    .financial-snapshot__segments-table tbody,
    .financial-snapshot__segments-table tr,
    .financial-snapshot__segments-table td {
        display: block;
        width: 100%;
    }

    .financial-snapshot__segments-table thead {
        display: none;
    }

    .financial-snapshot__segments-table tr {
        border: 1px solid var(--dossier-border);
        border-radius: var(--dossier-radius-sm);
        margin-bottom: 0.6rem;
        padding: 0.35rem 0.75rem;
    }

    .financial-snapshot__segments-table tbody td {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 1rem;
        border-bottom: 1px solid var(--dossier-border);
        padding: 0.5rem 0;
    }

    .financial-snapshot__segments-table tbody tr td:last-child {
        border-bottom: none;
    }

    .financial-snapshot__segments-table tbody td::before {
        content: attr(data-label);
        font-size: 0.66rem;
        font-weight: 700;
        text-transform: uppercase;
        letter-spacing: 0.04em;
        color: var(--dossier-text-muted);
        flex: 0 0 auto;
    }

    .financial-snapshot__seg-margin {
        margin-bottom: 0;
    }

    .financial-snapshot__segments-table .financial-snapshot__bar {
        display: none;
    }

    /* Touch targets */
    .financial-snapshot__seg-details>summary,
    .cite-trigger {
        min-height: 44px;
        display: inline-flex;
        align-items: center;
    }
}

/* Respect reduced-motion preferences */
@media (prefers-reduced-motion: reduce) {

    .valuation-chart__bar,
    .valuation-chart__refline,
    .valuation-chart__diamond,
    .financial-snapshot__bar-fill {
        animation: none !important;
    }

    .financial-snapshot__seg-details>summary::after {
        transition: none;
    }
}

/* ==========================================================================
   Module 4.4 - Qualitative Analysis
   ========================================================================== */

/* Rows / grid */
.qual__row {
    display: grid;
    gap: var(--dossier-spacing);
    margin-bottom: var(--dossier-spacing);
    align-items: start;
}

/* Card shell */
.qual__card {
    border: 1px solid var(--dossier-border);
    border-radius: var(--dossier-radius-sm);
    background: var(--dossier-bg);
    padding: 1.5rem;
}

.qual__card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 2rem;
}

.qual__card-title {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    font-size: 18px;
    font-weight: 700;
    color: var(--dossier-heading);
}

.qual__card-icon {
    flex: 0 0 auto;
    width: 30px;
    border-radius: var(--dossier-radius-xs);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.8rem;
}

.qual__card-icon--blue {
    color: var(--dossier-primary);
}

.qual__empty {
    color: var(--dossier-text-muted);
    font-style: italic;
    font-size: 13px;
}

/* Business Overview */
.qual__overview-text {
    font-size: 16px;
    line-height: 1.65;
    color: var(--dossier-text);
    padding: 0rem 3.5rem 1rem;
}

/* ==========================================================================
   Module 4.5 - Outlook & Key Dates
   ========================================================================== */

/* Rows */
.outlook__row {
    display: grid;
    gap: var(--dossier-spacing);
    margin-bottom: var(--dossier-spacing);
    align-items: start;
}

/* Analyst estimate cards */
.outlook__estimates-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 0.6rem;
}

.outlook__estimates-title {
    font-size: 18px;
    font-weight: 700;
    margin-bottom: 10px;
    color: var(--dossier-heading);
}

.outlook__estimates {
    display: flex;
    flex-wrap: wrap;
    justify-content: left;
    gap: 10px;
    margin-bottom: var(--dossier-spacing);
}

/* "Learn more" link in the Analyst Estimates header (links to the glossary). */
.outlook__estimates-learn {
    flex: 0 0 auto;
    font-size: 13px;
    font-weight: 600;
    color: var(--dossier-primary);
    white-space: nowrap;
}

.outlook__estimates-learn:hover {
    text-decoration: underline;
}

/* --- Analyst estimate card (single, forward EPS growth) --- */
.outlook__est-card {
    padding: 15px 15px;
    flex: 1 1 230px;
    max-width: 378px;
    display: flex;
    flex-direction: column;
    border: 1px solid #e6eaf070;
    border-radius: var(--dossier-radius);
    background: #f9fafc;
    box-shadow: var(--dossier-shadow);
    overflow: hidden;
}

/* Flagged variant: warm amber accent + faint tint. */
.outlook__est-card--flagged {
    border-color: #fde28a94;
    box-shadow: 0 1px 2px rgba(146, 97, 10, 0.05), 0 1px 3px rgba(146, 97, 10, 0.08);
}

.outlook__est-card-head {
    display: flex;
    gap: 0.8rem;
    padding: 0;
    align-items: center;
    margin: 0 !important;
    flex-direction: column;
}

.outlook__est-icon {
    flex: 0 0 auto;
    width: 35px;
    height: 35px;
    border-radius: 30px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 1.5rem;
    color: #0b63d5;
    background: #eaf3ff;
}

.outlook__est-headings {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
    min-width: 0;
    flex: 1 1 auto;
}

.outlook__est-kicker {
    font-size: 12px;
    font-weight: 600;
    color: var(--dossier-text-muted);
    line-height: 1.2;
}

.outlook__est-title {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 16px;
    font-weight: 600;
    color: var(--dossier-heading);
    line-height: 1.3;
}

.outlook__est-tags {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.8rem;
}

.outlook__est-tag {
    display: inline-flex;
    align-items: center;
    padding: 0.28rem 1.5rem;
    font-size: 13px;
    font-weight: 600;
    color: var(--dossier-text-muted);
    background: var(--dossier-bg);
    border: 1px solid var(--dossier-border-strong);
    border-radius: 999px;
    white-space: nowrap;
}

.outlook__est-flag {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.28rem 1.3rem;
    font-size: 12px;
    font-weight: 700;
    color: var(--dossier-warning-text);
    background: var(--dossier-warning-bg);
    border: 1px solid var(--dossier-warning-border);
    border-radius: 999px;
    white-space: nowrap;
}

.outlook__est-body {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    text-align: center;
    padding: 2rem 0 2rem;
    gap: 0.7rem;
}

.outlook__est-value {
    font-size: 22px;
    font-weight: 600;
    color: var(--dossier-heading);
    font-variant-numeric: tabular-nums;
    letter-spacing: 0.5px;
    line-height: 1;
}

.outlook__est-value-sub {
    font-size: 13px;
    color: var(--dossier-text-muted);
    font-weight: 500;
}

/* Empty state */
.outlook__est-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.7rem;
    padding: 1rem 0.5rem;
}

.outlook__est-empty-icon {
    width: 40px;
    height: 40px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 0.6rem;
    font-size: 1.6rem;
    color: #f59e0b;
    border: 2px dashed #f6c667;
    background: #fffaf0;
}

.outlook__est-empty-title {
    margin: 0;
    font-size: 16px;
    font-weight: 700;
    color: var(--dossier-heading);
    text-align: center;
    line-height: 1.3;
}

.outlook__est-empty-text {
    margin: 0;
    font-size: 14px;
    line-height: 1.4;
    color: var(--dossier-text-muted);
    text-align: center;
}

/* Footer pinned to the bottom of each (equal-height) card so the "As of" line
   aligns across every card regardless of how many cards or secondary chips
   (Consensus / Source) are present. */
.outlook__est-foot {
    margin-top: auto;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 8px;
    padding: 0;
}

.outlook__est-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 13px;
    color: var(--dossier-text-muted);
    border-radius: var(--dossier-radius-sm);
}

/* The "As of" date is always the last line: full width, with the divider on top,
   so both the divider line and the date align across all cards. Secondary chips
   (e.g. "Consensus: Positive") sit in a standardized spot directly above it. */
.outlook__est-asof {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    width: 100%;
    margin-top: 4px;
    padding-top: 12px;
    border-top: 1px solid var(--dossier-border);
    font-size: 13px;
    color: var(--dossier-text-muted);
}

.outlook__est-asof i {
    font-size: 0.9em;
}

.outlook__est-chip i {
    font-size: 0.9em;
    color: var(--dossier-neutral);
}

@media (max-width: 600px) {
    .financial-snapshot__kpi-value {
        font-size: 18px;
    }

    .financial-snapshot__capital {
        margin-top: 10px;
    }

    .outlook__est-card-head {
        flex-wrap: wrap;
    }

    .ma__block {
        margin-top: 0 !important;
        margin-bottom: 30px;
    }

    .outlook__est-tags {
        flex-direction: row;
        align-items: center;
        width: 100%;
        margin-top: 0.4rem;
    }

    .strategic__card-head {
        margin: 5px 0 10px !important;
    }

    .outlook__est-value {
        font-size: 2.1rem;
    }

    .qual__overview-text {
        padding: 0;
    }

    .ma__grid {
        display: block !important;
    }

    #content article.ma__card {
        margin-bottom: 10px !important;
    }

    .ma__block-title,
    .strategic__card-title,
    .qual__card-title {
        font-size: 16px !important;
    }

    .qual__overview-text {
        font-size: 15px !important;
    }

    .ma__value,
    .strategic__cat,
    .strategic__status {
        font-size: 12px !important;
    }
}

/* Card shell (shared) */
.outlook__card {
    border: 1px solid var(--dossier-border);
    border-radius: var(--dossier-radius-sm);
    background: var(--dossier-bg);
    padding: 1.5rem;
}

.outlook__card-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 2rem;
}

.outlook__card-title {
    display: inline-flex;
    align-items: center;
    gap: 0.55rem;
    font-size: 18px;
    font-weight: 700;
    color: var(--dossier-heading);
}

.outlook__card-icon {
    flex: 0 0 auto;
    width: 30px;
    height: 30px;
    border-radius: var(--dossier-radius-xs);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 18px;
}

.outlook__card-icon--blue {
    color: var(--dossier-primary);
}

.outlook__card-icon--indigo {
    color: #4f46e5;
}

.outlook__empty {
    color: var(--dossier-text-muted);
    font-style: italic;
    font-size: 13px;
}

/* Reporting calendar */
.outlook__calendar-table {
    width: 100%;
    border-collapse: collapse;
    font-size: 0.8rem;
    border: none;
}

.outlook__calendar-table thead th {
    text-align: left;
    font-size: 15px !important;
    font-weight: 600;
    letter-spacing: 0.04em;
    color: var(--dossier-text-muted);
    padding: 1.3rem 1rem !important;
}

.outlook__calendar-table tbody td {
    font-size: 15px !important;
    line-height: 1.5;
    padding: 1rem 1rem !important;
    border-bottom: 1px solid var(--dossier-border) !important;
    color: var(--dossier-text);
    font-variant-numeric: tabular-nums;
}

.outlook__calendar-table tbody tr:first-child td {
    min-width: 125px;
}

.outlook__calendar-table tbody tr:last-child td {
    border-bottom: none;
}

.outlook__calendar-foot {
    margin-top: 0.75rem;
    text-align: center;
}

.outlook__calendar-btn {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-size: 0.8rem;
    font-weight: 700;
    color: var(--dossier-primary);
    text-decoration: none;
    padding: 0.4rem 0.9rem;
    border: 1px solid #cfe1fb;
    border-radius: 999px;
    background: var(--dossier-primary-light);
    transition: background 0.15s ease, color 0.15s ease;
}

.outlook__calendar-btn:hover {
    background: var(--dossier-primary);
    color: #fff;
}

/* ==========================================================================
   Qualitative + Outlook responsive behavior
   ========================================================================== */
/* Tablet */
@media (max-width: 900px) {
    .outlook__est-card {
        flex-basis: calc(50% - 5px);
        max-width: none;
    }
}

/* Mobile */
@media (max-width: 600px) {

    .outlook__est-card {
        flex-basis: 100%;
        max-width: none;
    }

    .outlook__calendar-table,
    .outlook__calendar-table tbody,
    .outlook__calendar-table tr,
    .outlook__calendar-table td {
        width: 100%;
    }

    .outlook__calendar-table thead {
        display: none;
    }

    .outlook__est-body {
        gap: 10px !important;
        padding: 2rem 1rem 2rem;
    }

    .outlook__calendar-table tr {
        border: 1px solid var(--dossier-border);
        border-radius: var(--dossier-radius-sm);
        margin-bottom: 0.6rem;
        padding: 0.35rem 0.75rem;
    }

    .outlook__kpi-freq {
        font-size: 12px !important;
        padding: 3px 8px !important;
    }

    .outlook__calendar-table tbody td {
        display: flex;
        align-items: center;
        justify-content: space-between;
        gap: 1rem;
        border-bottom: 1px solid var(--dossier-border) !important;
        padding: 0.8rem 0 !important;
        text-align: right;
        font-size: 14px !important;
        line-height: 1.4;
    }

    .outlook__calendar-table tbody tr td:last-child {
        border-bottom: none;
    }

    .outlook__calendar-table tbody td::before {
        content: attr(data-label);
        font-size: 13px;
        text-transform: uppercase;
        letter-spacing: 0.04em;
        color: var(--dossier-text-muted);
        flex: 0 0 auto;
    }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce) {

    .outlook__calendar-btn {
        transition: none !important;
    }
}

/* ==========================================================================
   Module 4.6 - Investment Thesis
   ========================================================================== */

.thesis__empty {
    color: var(--dossier-text-muted);
    font-style: italic;
    font-size: 0.85rem;
    margin: 0;
}

/* AI-generated banner */
.thesis__ai-banner {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    padding: 0.75rem 1rem;
    margin-bottom: var(--dossier-spacing);
    background: var(--dossier-warning-bg);
    border: 1px solid #fde28a99;
    border-radius: var(--dossier-radius-sm);
    font-size: 14px;
    line-height: 1.45;
    color: var(--dossier-text);
}

.thesis__ai-banner i {
    color: var(--dossier-warning-text);
    font-size: 1.5rem;
    margin-top: 0.1rem;
    flex: 0 0 auto;
}

/* Recommendation summary (full width) */
.thesis__rec {
    display: grid;
    gap: var(--dossier-spacing);
    margin-bottom: var(--dossier-spacing);
    border: 1px solid var(--dossier-border);
    border-radius: var(--dossier-radius-sm);
    padding: 1.5rem;
}

.thesis__rec-badge {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 1.3rem;
    text-align: center;
    padding: 2.4rem 1rem;
    border-radius: var(--dossier-radius-sm);
    background: var(--dossier-neutral-bg);
}

.thesis__rec-badge--buy {
    background: var(--dossier-success-bg);
}

.thesis__rec-badge--sell {
    background: var(--dossier-danger-bg);
}

.thesis__rec-badge--hold {
    background: #fff3e6;
}

.thesis__rec-label {
    font-size: 13px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--dossier-text-muted);
}

.thesis__rec-value {
    font-size: 3rem;
    font-weight: 800;
    line-height: 1;
    color: var(--dossier-neutral);
}

.thesis__rec-badge--buy .thesis__rec-value {
    color: #15803d;
}

.thesis__rec-badge--sell .thesis__rec-value {
    color: var(--dossier-danger);
}

.thesis__rec-badge--hold .thesis__rec-value {
    color: #c2560a;
}

.thesis__rec-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    border-radius: 50%;
    color: var(--dossier-neutral);
    font-size: 2rem;
    margin-top: 0.1rem;
    border: 1px solid;
}

.thesis__rec-badge--buy .thesis__rec-icon {
    color: #15803d;
}

.thesis__rec-badge--sell .thesis__rec-icon {
    color: var(--dossier-danger);
}

.thesis__rec-badge--hold .thesis__rec-icon {
    color: #c2560a;
}

.thesis__rec-summary {
    position: relative;
    padding: 0.9rem 1rem;
}

.thesis__rec-summary-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 1rem;
}

.thesis__rec-summary-title {
    font-size: 15px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.05em;
}

.thesis__rec-text {
    font-size: 16px;
    line-height: 1.65;
    color: var(--dossier-text);
    margin: 0 0 0.6rem 0 !important;
    font-weight: 400;
}

.valuation__pm-th-note{
    font-size: 13px;
    font-weight: 500;
}
/* Scenario cards */
.thesis__scenarios {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: var(--dossier-spacing);
    margin-bottom: 1.5rem;
}

.thesis__scenario {
    display: flex;
    flex-direction: column;
    border: 1px solid var(--dossier-border);
    border-top-width: 3px;
    border-radius: var(--dossier-radius-sm);
    background: var(--dossier-bg);
    padding: 1.5rem 1.5rem;
    gap: 0.35rem;
    transition: transform 0.15s ease, box-shadow 0.15s ease;
}

.thesis__scenario:hover,
.thesis__scenario:focus-within {
    transform: translateY(-2px);
    box-shadow: var(--dossier-shadow-md);
}

.thesis__scenario--bull {
    border-top-color: var(--dossier-success);
}

.thesis__scenario--base {
    border-top-color: var(--dossier-primary);
}

.thesis__scenario--bear {
    border-top-color: var(--dossier-danger);
}

.thesis__scenario-head {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    margin-bottom: 1.5rem;
}

.thesis__scenario-icon {
    flex: 0 0 auto;
    width: 36px;
    height: 36px;
    border-radius: var(--dossier-radius-xs);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
}

.thesis__scenario--bull .thesis__scenario-icon {
    background: var(--dossier-success-bg);
    color: #15803d;
}

.thesis__scenario--base .thesis__scenario-icon {
    background: var(--dossier-primary-light);
    color: var(--dossier-primary);
}

.thesis__scenario--bear .thesis__scenario-icon {
    background: var(--dossier-danger-bg);
    color: var(--dossier-danger);
}

.thesis__scenario-titles {
    display: flex;
    flex-direction: column;
    min-width: 0;
}

.thesis__scenario-title {
    font-size: 16px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--dossier-heading);
    line-height: 1;
}

.thesis__scenario--bull .thesis__scenario-title {
    color: #15803d;
}

.thesis__scenario--base .thesis__scenario-title {
    color: var(--dossier-primary);
}

.thesis__scenario--bear .thesis__scenario-title {
    color: var(--dossier-danger);
}

.thesis__scenario-sub {
    font-size: 13px;
    color: var(--dossier-text-muted);
}

.thesis__scenario-metrics {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.75rem;
    margin-bottom: 1.5rem;
    border-bottom: 1px solid #e6eaf0;
    padding-bottom: 15px;
}

.thesis__scenario-metric {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
}

.thesis__scenario-value {
    font-size: 2.2rem;
    font-weight: 800;
    line-height: 1.05;
    color: var(--dossier-heading);
    font-variant-numeric: tabular-nums;
}

.thesis__scenario--bull .thesis__scenario-value {
    color: #15803d;
}

.thesis__scenario--base .thesis__scenario-value {
    color: var(--dossier-primary);
}

.thesis__scenario--bear .thesis__scenario-value {
    color: var(--dossier-danger);
}

.thesis__scenario-metric-label {
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.04em;
    color: var(--dossier-text-muted);
}

.thesis__scenario-narrative {
    font-size: 15px;
    line-height: 1.55;
    color: var(--dossier-text);
    margin: 1rem 0 0;
    border-top: 1px solid #e6eaf0;
    padding-top: 1rem;
}

/* Merits / Risks (2 columns) */
.thesis__lists {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--dossier-spacing);
    margin-bottom: var(--dossier-spacing);
}

.thesis__list {
    border: 1px solid var(--dossier-border);
    border-radius: var(--dossier-radius-sm);
    padding: 2rem;
    background: var(--dossier-bg);
}

.thesis__list--merits {
    background: #ecfdf342;
    border-color: var(--dossier-success-border);
}

.thesis__list--risks {
    background: #fef2f252;
    border-color: var(--dossier-danger-border);
}

.thesis__list--triggers {
    background: #fffaf045;
    border-color: var(--dossier-warning-border);
}

.thesis__list-head {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    margin-bottom: 1.5rem;
}

.thesis__list-title {
    display: inline-flex;
    align-items: center;
    gap: 0.7rem;
    font-size: 16px;
    font-weight: 800;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.thesis__list--merits .thesis__list-title {
    color: #15803d;
}

.thesis__list--risks .thesis__list-title {
    color: var(--dossier-danger);
}

.thesis__list--triggers .thesis__list-title {
    color: #c2560a;
}

.thesis__list-icon {
    font-size: 17px;
}

.thesis__list-items {
    list-style: none;
    padding: 0;
    margin: 0;
    counter-reset: thesis-trigger;
}

.thesis__list-item {
    position: relative;
    font-size: 15px !important;
    color: var(--dossier-text);
    padding: 0.5rem 0 0 2.4rem !important;
    margin-bottom: 10px !important;
    line-height: 1.4;
}

.thesis__list--merits .thesis__list-item::before,
.thesis__list--risks .thesis__list-item::before {
    position: absolute;
    left: 0;
    top: 0.7rem;
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    font-size: 1rem;
    width: 18px;
    height: 18px;
    border: 1px solid;
    text-align: center;
    border-radius: 30px;
    line-height: 17px;
}

.thesis__list--merits .thesis__list-item::before {
    content: "\f00c";
    color: #15803d;
}

.thesis__list--risks .thesis__list-item::before {
    content: "\21";
    color: var(--dossier-danger);
}

/* Triggers: numbered */

ol.thesis__list-items {
    counter-reset: thesis-trigger;
}

.thesis__list--triggers .thesis__list-item {
    counter-increment: thesis-trigger;
    transition: background 0.12s ease;
    border-radius: var(--dossier-radius-xs);
}

.thesis__list--triggers .thesis__list-item::before {
    content: counter(thesis-trigger);
    position: absolute;
    left: 0;
    width: 1.8rem;
    height: 1.8rem;
    border-radius: 50%;
    background: #fdebd0;
    color: #c2560a;
    font-size: 1.2rem;
    font-weight: 800;
    display: flex;
    align-items: center;
    justify-content: center;
}

.valuation-chart__abstain-reason {
    font-size: 12px;
    margin-top: 5px !important;
    display: inline-block;
}

.valuation__summary-value--noverdict {
    font-size: 16px !important;
}

/* Footer */
.thesis__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.5rem 1rem;
    padding: 0.8rem 1rem;
    background: var(--dossier-primary-light);
    border: 1px solid #d9e7fb;
    border-radius: var(--dossier-radius-sm);
    font-size: 14px;
    color: var(--dossier-text-muted);
    margin-top: 1.5rem;
}

.thesis__footer-note {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    line-height: 1.4;
}

.thesis__footer-note i {
    color: var(--dossier-primary);
    font-size: 1.5rem;
    flex: 0 0 auto;
}

.thesis__footer-asof {
    font-weight: 600;
    color: var(--dossier-text);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}

/* --- Investment Thesis responsive --- */
@media (max-width: 900px) {
    .thesis__rec {
        grid-template-columns: 1fr;
    }

    .thesis__scenarios {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 600px) {
    .thesis__ivcard-verdict--pos {
        margin-left: 0 !important;
    }

    .thesis__ivcard {
        gap: 1.5rem !important;
    }

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

    .thesis__streetcard-head {
        margin-bottom: 5px !important;
        justify-content: left !important;
        gap: 10px !important;
    }

    .thesis__streetcard .thesis__consensus-item {
        padding: 10px 5px !important;
    }

    .thesis__box-head{
        justify-content: left !important;
        gap: 10px !important;
        padding-bottom: 5px !important;
    }
    .thesis__scenarios-anchor,
    .thesis__box-asof,
    .thesis__streetcard-meta {
        font-size: 13px !important;
    }
    .thesis__box-title,
    .thesis__streetcard-label {
        font-size: 15px !important;
        line-height: 1.4;
    }

    .thesis__streetcard .thesis__consensus-label {
        font-size: 12px !important;
        line-height: 1.3;
    }

    .thesis__footer-note {
        display: block !important;
    }

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

    .thesis__streetcard .thesis__consensus-value {
        font-size: 17px !important;
    }

    .thesis__footer {
        flex-direction: column;
        align-items: flex-start;
    }

    .thesis__streetcard .thesis__consensus {
        gap: 5px !important;
        grid-template-columns: 1fr !important;
    }

    .thesis__ivcard {
        padding: 1.5rem !important;
    }

    .pillars__chip-pct {
        font-size: 15px !important;
    }
}

@media (prefers-reduced-motion: reduce) {

    .thesis__scenario,
    .thesis__list--triggers .thesis__list-item {
        transition: none !important;
    }

    .thesis__scenario:hover,
    .thesis__scenario:focus-within {
        transform: none;
    }
}

/* ==========================================================================
   Module 4.7 - Citation Controls
   ========================================================================== */
.cite-trigger {
    display: inline-block;
    position: relative;
    cursor: pointer;
    vertical-align: middle;
    font-size: 14px;
    color: #00a3e7;
    margin-left: 5px;
    line-height: 1;
}

.cite-trigger::before {
    content: "\f05a";
    /* Font Awesome info-circle */
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
}

.cite-tooltip {
    display: none;
    position: absolute;
    top: 5%;
    left: 100%;
    transform: translateX(-105%);
    background: var(--dossier-bg);
    border: 1px solid var(--dossier-border);
    border-radius: var(--dossier-radius-sm);
    padding: var(--dossier-spacing);
    min-width: 300px;
    max-width: 350px;
    /* Cap the height and scroll so long citations (many sources / long URLs)
       stay fully reachable instead of being clipped off-screen. */
    max-height: 60vh;
    overflow-y: auto;
    overscroll-behavior: contain;
    box-shadow: var(--dossier-shadow-md);
    z-index: 100;
    font-size: 13px;
    line-height: 1.4;
    text-align: left;
}

.cite-tooltip__reasoning {
    font-size: 11px;
    line-height: 1.2;
    color: #525760;
    font-weight: 500;
}

/* Shown via JS (.active) on click/tap and keyboard, and via pure-CSS hover /
   keyboard focus as a fallback so the tooltip works even if JS has not bound. */
.cite-trigger.active .cite-tooltip,
.cite-trigger:hover .cite-tooltip,
.cite-trigger:focus-within .cite-tooltip {
    display: block;
}

.cite-tooltip__source {
    margin-top: 1rem !important;
    line-height: 1.4 !important;
}

.cite-tooltip__source:last-child {
    margin-bottom: 0;
}

.cite-tooltip__title {
    display: block;
    font-weight: 600;
    color: var(--dossier-text);
    margin-bottom: 0.8rem;
    font-size: 13px;
    line-height: 1.3;
}

.cite-tooltip__title--unavailable {
    font-style: italic;
    color: var(--dossier-text-muted);
}

.cite-tooltip__url {
    display: block;
    font-size: 12px;
    color: var(--dossier-primary);
    text-decoration: underline;
    word-break: break-all;
    margin-bottom: 0.2rem;
    font-weight: normal;
}

.cite-tooltip__url--unavailable {
    color: var(--dossier-text-muted);
    font-style: italic;
    text-decoration: none;
}

.cite-tooltip__excerpt {
    font-size: 12px;
    color: var(--dossier-text-muted);
    line-height: 1.4;
    margin-top: 10px !important;
    font-weight: 500;
}

.cite-tooltip__excerpt--unavailable {
    font-style: italic;
    opacity: 0.7;
}

/* ==========================================================================
   Module 4.8 - Chat Entry Point
   ========================================================================== */
.dossier-chat-entry {
    float: right;
    display: inline-flex;
    align-items: center;
    gap: 0.4em;
    font-size: 14px;
    color: var(--dossier-primary);
    background: var(--dossier-primary-light);
    border: 1px solid #cfe1fb;
    border-radius: 999px;
    text-decoration: none;
    margin-top: 15px !important;
    padding: 0.4em 1em;
    transition: background 0.15s ease, color 0.15s ease, box-shadow 0.15s ease;
    width: fit-content;
}

.dossier-chat-entry::before {
    content: "\f075";
    /* Font Awesome comment */
    font-family: "Font Awesome 6 Free";
    font-weight: 900;
    font-size: 0.85em;
}

.dossier-chat-entry:hover {
    background: var(--dossier-primary);
    color: #fff;
    box-shadow: 0 2px 8px var(--dossier-primary-ring);
}

/* ==========================================================================
   Responsive Adjustments
   ========================================================================== */
@media (max-width: 767px) {
    .dossier-module {
        padding: var(--dossier-spacing-sm);
    }

    .dossier-module__icon {
        font-size: 20px;
        width: 38px;
        height: 60px;
    }

    .dossier-module__head {
        gap: 5px;
    }

    .header-snapshot__val-col:first-of-type {
        border-right: none !important;
        border-bottom: 1px solid #e6eaf0;
        padding-bottom: 1.5rem;
    }

    .dossier-module__title {
        font-size: 17px !important;
    }

    .dossier-tier-badge {
        font-size: 10px !important;
    }

    .cite-tooltip {
        min-width: 200px;
        max-width: 280px;
        left: 0;
        transform: none;
    }

    .dossier-module__subtitle {
        font-size: 14px !important;
        line-height: 1.3;
    }

    .outlook__kpi-grid {
        grid-template-columns: 1fr !important;
    }
}

/* ==========================================================================
   Utility and Print Styles
   ========================================================================== */

/* Tables: allow horizontal scroll on small screens */
.dossier-module .qualitative__risks-table,
.dossier-module .outlook__estimates-table,
.dossier-module .outlook__calendar-table,
.dossier-module .qualitative__geography-table,
.dossier-module .valuation__assumptions-table,
.dossier-module .valuation__multiples-table,
.dossier-module .financial-snapshot__margins-table {
    display: table;
}

@media (max-width: 620px) {
    .dossier-module .qualitative__risks-table {
        display: block;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        white-space: nowrap;
    }
}

@media print {
    .dossier-module {
        border: 1px solid #ccc;
        box-shadow: none;
        break-inside: avoid;
    }

    .cite-trigger,
    .dossier-chat-entry {
        display: none;
    }
}

/* ==========================================================================
   Module 4.7 - Glossary & Methodology
   ========================================================================== */

/* Quick-nav tabs */
.glossary__tabs {
    display: flex;
    flex-wrap: wrap;
    gap: 1.5rem;
    margin-bottom: var(--dossier-spacing);
}

.glossary__tab {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.7rem 2rem;
    border: 1px solid var(--dossier-border);
    border-radius: var(--dossier-radius-sm);
    background: var(--dossier-bg);
    font-size: 15px;
    font-weight: 500;
    color: var(--dossier-text-muted);
    text-decoration: none;
    transition: background 0.15s ease, color 0.15s ease, border-color 0.15s ease;
}

.glossary__tab i {
    font-size: 16px;
}

.glossary__tab:hover {
    border-color: #cfe1fb;
    color: var(--dossier-primary);
}

.glossary__tab--active {
    background: var(--dossier-primary-light);
    border-color: #cfe1fb;
    color: var(--dossier-primary);
}

/* Category grid - masonry-style columns so cards pack by height instead of
   aligning to a shared row height (avoids large gaps under shorter cards). */
.glossary__grid {
    column-count: 2;
    column-gap: var(--dossier-spacing);
}

/* Category card (color set per --blue/--green/--purple modifier) */
.glossary__cat {
    --glossary-tint: var(--dossier-primary-light);
    --glossary-tint-border: #cfe1fb;
    --glossary-accent: var(--dossier-primary);
    border: 1px solid #e6eaf080;
    border-radius: var(--dossier-radius-sm);
    padding: 1.5rem;
    background: #fbfcfd;
    display: inline-block;
    width: 100%;
    margin-bottom: var(--dossier-spacing);
    break-inside: avoid;
    -webkit-column-break-inside: avoid;
    page-break-inside: avoid;
}

.glossary__cat--blue {
    --glossary-tint: var(--dossier-primary-light);
    --glossary-tint-border: #cfe1fb;
    --glossary-accent: var(--dossier-primary);
}

.glossary__cat--green {
    --glossary-tint: var(--dossier-success-bg);
    --glossary-tint-border: var(--dossier-success-border);
    --glossary-accent: #15803d;
}

.glossary__cat--purple {
    --glossary-tint: #f3ecff;
    --glossary-tint-border: #e0d0fb;
    --glossary-accent: #7c3aed;
}

.glossary__cat-head {
    display: flex;
    align-items: center;
    gap: 0rem;
    padding-bottom: 0.75rem;
    margin-bottom: 0.75rem;
}

.glossary__cat-icon {
    flex: 0 0 auto;
    width: 35px;
    height: 35px;
    border-radius: var(--dossier-radius-xs);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 20px;
    /* background: var(--glossary-tint); */
    color: var(--glossary-accent);
}

.glossary__cat-title {
    margin: 0 !important;
    font-size: 18px;
    font-weight: 700;
    color: var(--dossier-heading);
}

/* Terms (native details/summary */
.glossary__terms {
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
}

.glossary__term {
    border: 1px solid #e6eaf073;
    border-radius: var(--dossier-radius-xs);
    overflow: hidden;
    transition: border-color 0.15s ease, background 0.15s ease;
}

.glossary__term[open] {
    background: #ffffff;
}

.glossary__term-summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    padding: 1rem 1.5rem;
    cursor: pointer;
    list-style: none;
    min-height: 44px;
    font-size: 15px;
    font-weight: 600;
    color: var(--dossier-heading);
    background: #fff;
}

.glossary__term-summary::-webkit-details-marker {
    display: none;
}

.glossary__term-summary:focus-visible {
    outline: 2px solid var(--glossary-accent);
    outline-offset: -2px;
    border-radius: var(--dossier-radius-xs);
}

.glossary__term-chevron {
    flex: 0 0 auto;
    font-size: 18px;
    color: var(--dossier-text-muted);
    transition: transform 0.15s ease;
}

.glossary__term[open] .glossary__term-chevron {
    transform: rotate(180deg);
    color: var(--glossary-accent);
}

.glossary__term-def {
    padding: 0 1.5rem 1.5rem;
    font-size: 15px;
    line-height: 1.55;
    color: var(--dossier-text);
    max-width: 68ch;
}

/* Tip banner */
.glossary__tip {
    display: flex;
    align-items: flex-start;
    gap: 0.6rem;
    margin-top: 1.5rem;
    padding: 1.3rem 1rem;
    background: var(--dossier-primary-light);
    border: 1px solid #d9e7fb;
    border-radius: var(--dossier-radius-sm);
    font-size: 14px;
    line-height: 1.5;
    color: var(--dossier-text);
}

.glossary__tip>i:first-child {
    color: var(--dossier-primary);
    font-size: 1.5rem;
    margin-top: 4px;
    flex: 0 0 auto;
}

.glossary__tip i {
    color: var(--dossier-primary);
    font-size: 1.5rem !important;
}

/* Footer */
.glossary__footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.5rem 1rem;
    margin-top: var(--dossier-spacing-sm);
    padding: 1.3rem 1rem;
    background: var(--dossier-bg-alt);
    border: 1px solid var(--dossier-border);
    border-radius: var(--dossier-radius-sm);
    font-size: 1.5rem;
    color: var(--dossier-text-muted);
}

.glossary__footer-note {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

.glossary__footer-version {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    font-weight: 600;
}

/* Responsive */
@media (max-width: 768px) {
    .glossary__grid {
        column-count: 1;
    }
}

@media (prefers-reduced-motion: reduce) {

    .glossary__term,
    .glossary__term-chevron,
    .glossary__tab {
        transition: none !important;
    }
}

.financial-snapshot__grids--wide {
    display: block;
}

/* Quality metrics grid */
.financial-snapshot__quality-grid {
    display: grid;
    grid-template-columns: repeat(5, 1fr);
    gap: 1rem;
}

.financial-snapshot__quality-item {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.3rem;
    padding: 1.5rem 0.4rem;
    background: var(--dossier-bg-soft);
    border: 1px solid var(--dossier-border);
    border-radius: var(--dossier-radius-sm);
    text-align: center;
}

.financial-snapshot__quality-label {
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--dossier-text-muted);
    line-height: 1.3;
}

.financial-snapshot__quality-value {
    font-size: 18px;
    font-weight: 800;
    color: var(--dossier-heading);
}

.financial-snapshot__quality-value--na {
    color: var(--dossier-text-muted);
    font-weight: 700;
}

/* Multi-year trend (mini bar charts) */
.financial-snapshot__trend-charts {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--dossier-spacing);
}

.financial-snapshot__spark {
    display: flex;
    flex-direction: column;
    gap: 0.4rem;
    padding: 1.5rem;
    background: var(--dossier-bg-soft);
    border: 1px solid var(--dossier-border);
    border-radius: var(--dossier-radius-sm);
}

.financial-snapshot__spark-title {
    font-size: 14px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--dossier-text-muted);
}

.financial-snapshot__spark-bars {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 4px;
    height: 72px;
}

.financial-snapshot__spark-col {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: flex-end;
    flex: 1 1 0;
    height: 100%;
    gap: 3px;
}

.financial-snapshot__spark-bar-wrap {
    display: flex;
    align-items: flex-end;
    width: 100%;
    height: 100%;
}

.financial-snapshot__spark-bar {
    display: block;
    width: 100%;
    border-radius: 3px 3px 0 0;
    background: linear-gradient(180deg, #3b82f6 0%, var(--dossier-primary) 100%);
    min-height: 2px;
}

.financial-snapshot__spark-bar--neg {
    background: linear-gradient(180deg, #f87171 0%, #dc2626 100%);
}

.financial-snapshot__spark-year {
    font-size: 13px;
    font-weight: 600;
    color: var(--dossier-text-muted);
}

.financial-snapshot__spark-caption {
    font-size: 14px;
    font-weight: 700;
    color: var(--dossier-heading);
    margin-top: 10px;
}

.financial-snapshot__spark-empty,
.financial-snapshot__trend-empty {
    font-size: 13px;
    color: var(--dossier-text-muted);
}

/* FX conversion footnote */
.financial-snapshot__fx-note {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-top: var(--dossier-spacing-sm);
    padding: 0.6rem 0.85rem;
    background: var(--dossier-bg-alt);
    border-radius: var(--dossier-radius-sm);
    font-size: 12px;
    color: var(--dossier-text-muted);
}

/* Stack the wide row on narrow viewports */
@media (max-width: 782px) {

    .financial-snapshot__grids--wide,
    .financial-snapshot__trend-charts {
        grid-template-columns: 1fr;
    }

    .financial-snapshot__quality-grid {
        grid-template-columns: repeat(2, 1fr);
    }
}

/* Tier badges */
.dossier-tier-badge {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: uppercase;
    padding: 2px 8px;
    border-radius: 999px;
    vertical-align: middle;
    margin-left: 6px;
}

.dossier-tier-badge i {
    font-size: 10px;
    margin: 0;
}

.dossier-tier-badge--registered {
    background: #dcfce7;
    color: #166534;
    border: 1px solid #86efac;
}

.dossier-tier-badge--admin {
    background: #e0e7ff;
    color: #3730a3;
    border: 1px solid #c7d2fe;
}

.dossier-locked {
    border: 1px dashed var(--dossier-border);
    border-radius: var(--dossier-radius-sm);
    background: repeating-linear-gradient(45deg,
            var(--dossier-bg-soft),
            var(--dossier-bg-soft) 12px,
            rgba(0, 0, 0, 0.015) 12px,
            rgba(0, 0, 0, 0.015) 24px);
}

.dossier-locked__inner {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1.25rem 1.5rem;
    flex-wrap: wrap;
}

.dossier-locked__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 42px;
    height: 42px;
    border-radius: 50%;
    background: #fef3c7;
    color: #92400e;
    font-size: 18px;
    flex: 0 0 auto;
}

.dossier-locked__body {
    flex: 1 1 240px;
}

.dossier-locked__title {
    font-size: 19px;
    font-weight: 700;
    margin: 0 0 5px !important;
    color: var(--dossier-heading);
}

.dossier-locked__text {
    font-size: 15px;
    color: var(--dossier-text-muted);
}

.dossier-locked__cta {
    flex: 0 0 auto;
    display: inline-block;
    padding: 0.7rem 2rem;
    background: #0166cc;
    color: #fff;
    font-weight: 700;
    font-size: 13px;
    border-radius: 30px;
    text-decoration: none;
}

.dossier-locked__cta:hover {
    filter: brightness(0.95);
    color: #fff;
}

.dossier-detail__grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: var(--dossier-spacing);
}

.dossier-detail__panel {
    border: 1px solid var(--dossier-border);
    border-radius: var(--dossier-radius-sm);
    padding: 1.5rem;
    margin-bottom: 1.5rem;
}

.dossier-detail__panel--wide {
    grid-column: 1 / -1;
}

.dossier-detail__panel-title {
    font-size: 1.8rem;
    font-weight: 700;
    margin: 0 0 2rem !important;
    color: var(--dossier-heading);
}

.dossier-detail__hint,
.dossier-detail__note {
    font-size: 14px;
    font-weight: 500;
    color: var(--dossier-text-muted);
    margin-left: 13px !important;
}

.dossier-detail__note {
    margin: 0.5rem 0 0;
}

.dossier-detail__confidence {
    display: inline-block;
    font-weight: 700;
    font-size: 13px;
    padding: 4px 12px;
    border-radius: 999px;
    background: var(--dossier-bg-alt);
    color: var(--dossier-heading);
}

.dossier-detail__confidence--high {
    background: #dcfce7;
    color: #166534;
}

.dossier-detail__confidence--medium {
    background: #fef9c3;
    color: #854d0e;
}

.dossier-detail__confidence--low {
    background: #ffedd5;
    color: #9a3412;
}

.dossier-detail__confidence--warn {
    background: #fee2e2;
    color: #991b1b;
}

.dossier-detail__table {
    width: 100%;
    border-collapse: collapse;
    font-size: 12px;
}

.dossier-detail__table thead th,
.dossier-detail__table tbody td {
    text-align: left;
    padding: 13px 14px !important;
    border-bottom: 1px solid var(--dossier-border) !important;
}

.dossier-detail__table thead th {
    background: var(--dossier-bg-alt);
    padding: 1.3rem 1.3rem !important;
    font-size: 1.5rem !important;
    letter-spacing: 0.04em;
    color: var(--dossier-text-muted);
    text-align: left;
}

.dossier-detail__table tbody tr:hover {
    background: var(--dossier-bg-alt);
}

.dossier-detail__num {
    text-align: right;
    font-variant-numeric: tabular-nums;
}

.dossier-detail__total td {
    font-weight: 700 !important;
    background: #eaf3ff;
    padding: 1.6rem 2rem !important;
    color: #525760;
    font-size: 15px;
}

.dossier-detail__total td:last-child {
    color: var(--dossier-heading);
}

.dossier-detail__contrib {
    text-align: right;
    font-variant-numeric: tabular-nums;
    font-weight: 600;
    color: var(--dossier-heading);
}

.dossier-detail__contrib--neg {
    color: var(--dossier-danger);
}

.dossier-detail__accn a {
    color: var(--dossier-primary);
    text-decoration: none;
    white-space: nowrap;
    font-weight: 500;
}

.dossier-detail__accn a:hover {
    text-decoration: underline;
}

.dossier-detail__accn a i {
    font-size: 13px;
    margin-left: 3px;
}

.dossier-detail__note--lead {
    margin: 0px 0 1rem !important;
    font-size: 15px;
    line-height: 1.4;
}

/* TTM component accordion */
.dossier-detail__acc {
    display: flex;
    flex-direction: column;
    gap: 0.8rem;
}

.dossier-detail__details {
    border: 1px solid var(--dossier-border);
    border-radius: var(--dossier-radius-sm);
    background: var(--dossier-bg);
    overflow: hidden;
    transition: box-shadow 0.15s ease, border-color 0.15s ease;
}

.dossier-detail__details[open] {
    box-shadow: var(--dossier-shadow);
    border-color: var(--dossier-border-strong);
}

.dossier-detail__summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.5rem;
    cursor: pointer;
    padding: 1rem 1.5rem;
    list-style: none;
    -webkit-user-select: none;
    user-select: none;
}

.dossier-detail__summary::-webkit-details-marker {
    display: none;
}

.dossier-detail__summary::marker {
    content: "";
}

.dossier-detail__summary:hover {
    background: var(--dossier-bg-alt);
}

.dossier-detail__sum-main {
    display: inline-flex;
    align-items: center;
    gap: 1.3rem;
    min-width: 0;
}

.dossier-detail__sum-label {
    font-weight: 700;
    font-size: 15px;
    color: var(--dossier-heading);
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.dossier-detail__chevron {
    font-size: 14px;
    color: var(--dossier-neutral);
    transition: transform 0.18s ease;
    flex: 0 0 auto;
}

.dossier-detail__details[open] .dossier-detail__chevron {
    transform: rotate(90deg);
}

.dossier-detail__sum-side {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    flex: 0 0 auto;
}

.dossier-detail__sum-count {
    font-size: 14px;
    color: var(--dossier-text-muted);
    white-space: nowrap;
}

.dossier-detail__sum-total {
    font-weight: 700;
    font-size: 14px;
    color: var(--dossier-primary-dark);
    background: var(--dossier-primary-light);
    border: 1px solid var(--dossier-primary-ring);
    padding: 2px 13px;
    border-radius: 999px;
    white-space: nowrap;
    font-variant-numeric: tabular-nums;
}

.dossier-detail__scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    padding: 0.5rem 1.3rem;
}

.dossier-detail__details .dossier-detail__table th,
.dossier-detail__details .dossier-detail__table td {
    white-space: nowrap;
    font-weight: 500;
}

.dossier-detail__stats {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin: 0 0 0.85rem;
}

.dossier-detail__stat {
    font-size: 14px;
    color: var(--dossier-text-muted);
    background: var(--dossier-neutral-bg);
    border: 1px solid var(--dossier-neutral-border);
    padding: 3px 13px;
    border-radius: 999px;
}

.dossier-detail__stat strong {
    color: var(--dossier-heading);
}

.dossier-detail__stat--beat {
    background: var(--dossier-success-bg);
    border-color: var(--dossier-success-border);
    color: #166534;
}

.dossier-detail__stat--beat strong {
    color: #166534;
}

.dossier-detail__stat--miss {
    background: var(--dossier-danger-bg);
    border-color: var(--dossier-danger-border);
    color: #b91c1c;
}

.dossier-detail__stat--miss strong {
    color: #b91c1c;
}

.dossier-detail__qrow--beat>td:first-child {
    box-shadow: inset 3px 0 0 var(--dossier-success);
    border-bottom-left-radius: 0 !important;
}

.dossier-detail__qrow--miss>td:first-child {
    box-shadow: inset 3px 0 0 var(--dossier-danger);
}

.dossier-detail__qcell {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
}

.dossier-detail__qicon {
    width: 20px;
    height: 20px;
    border-radius: 50%;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 10px;
    flex: 0 0 auto;
}

.dossier-detail__qicon--beat {
    background: var(--dossier-success-bg);
    color: #166534;
}

.dossier-detail__qicon--miss {
    background: var(--dossier-danger-bg);
    color: #b91c1c;
}

.dossier-detail__qicon--flat {
    background: var(--dossier-neutral-bg);
    color: var(--dossier-neutral);
}

.dossier-detail__surprise {
    display: inline-block;
    font-weight: 700;
    font-size: 14px;
    padding: 2px 10px;
    border-radius: 999px;
    background: var(--dossier-neutral-bg);
    color: var(--dossier-text-muted);
    font-variant-numeric: tabular-nums;
}

.dossier-detail__surprise--beat {
    background: var(--dossier-success-bg);
    color: #166534;
}

.dossier-detail__surprise--miss {
    background: var(--dossier-danger-bg);
    color: #b91c1c;
}

.dossier-detail__flags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
}

.dossier-detail__flag {
    font-family: Consolas, Monaco, monospace;
    font-size: 11px;
    background: var(--dossier-bg-alt);
    border: 1px solid var(--dossier-border);
    border-radius: 4px;
    padding: 2px 6px;
    color: var(--dossier-heading);
}

.dossier-detail__na {
    color: var(--dossier-text-muted);
}

.dossier-admin__table th[scope="row"] {
    font-weight: 600;
    color: var(--dossier-text-muted);
    width: 40%;
}

@media (max-width: 782px) {
    .dossier-detail__grid {
        grid-template-columns: 1fr;
    }
}

.dossier-empty {
    padding: 0.75rem 0;
}

.dossier-empty__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: var(--dossier-neutral-bg);
    color: var(--dossier-neutral);
    font-size: 12px;
}

.dossier-empty__msg {
    display: inline-block;
    font-size: 16px;
    font-weight: 700;
    color: var(--dossier-heading);
    line-height: 1.3;
    margin-bottom: 10px;
}

.dossier-empty__detail {
    display: block;
    font-size: 12px;
    font-weight: 500;
    color: var(--dossier-text-muted);
    line-height: 1.4;
    padding: 0 10px;
}

/* Centre the empty state when it stands in for a module body */
.dossier-module .dossier-empty--block {
    align-items: center;
    text-align: center;
    padding: 1.75rem 1rem;
}

/* Hero intrinsic-value column in its empty state */
.header-snapshot__val-col--empty .dossier-empty {
    padding-top: 4px;
}


.header-snapshot__confidence {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 1rem;
    padding: 2rem 0 0rem;
    margin: 2rem auto 0;
    border-top: 1px solid #e9eaea;
}

.header-snapshot__confidence-label {
    font-size: 14px;
    font-weight: 600;
    text-transform: uppercase;
    color: var(--dossier-text-muted);
    margin-right: 0;
}

.header-snapshot__confidence-badge {
    display: inline-flex;
    align-items: center;
    font-size: 13px;
    font-weight: 700;
    margin-left: 0;
    padding: 2px 10px;
    border-radius: 999px;
    background: var(--dossier-neutral-bg);
    color: var(--dossier-heading);
    border: 1px solid var(--dossier-neutral-border);
}

.header-snapshot__confidence-badge--high {
    background: var(--dossier-success-bg);
    color: #166534;
    border-color: var(--dossier-success-border);
}

.header-snapshot__confidence-badge--medium {
    background: #fef9c3;
    color: #854d0e;
    border-color: #fde68a;
}

.header-snapshot__confidence-badge--low {
    background: #ffedd5;
    color: #9a3412;
    border-color: #fed7aa;
}

.header-snapshot__confidence-badge--warn {
    background: var(--dossier-danger-bg);
    color: #991b1b;
    border-color: var(--dossier-danger-border);
}

.header-snapshot__confidence-cause {
    flex: 1 0 100%;
    margin-top: -0.5rem;
    font-size: 13px;
    line-height: 1.4;
    color: var(--dossier-text-muted);
}

/* Open-tier locked hint (registration prompt) */
.header-snapshot__confidence-hint {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    font-size: 12px;
    font-weight: 700;
    padding: 2px 10px;
    border-radius: 999px;
    background: var(--dossier-primary-light);
    color: var(--dossier-primary-dark);
    border: 1px dashed var(--dossier-primary-ring);
    text-decoration: none;
}

.header-snapshot__confidence-hint:hover {
    filter: brightness(0.97);
}

.header-snapshot__confidence-hint i {
    font-size: 10px;
}

/* Admin-only headline-gate reason note (Supplement 2 ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢ÃƒÆ’Ã¢â‚¬Â ÃƒÂ¢Ã¢â€šÂ¬Ã¢â€žÂ¢ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¢ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡Ãƒâ€šÃ‚Â¬ÃƒÆ’Ã¢â‚¬Â¦Ãƒâ€šÃ‚Â¡ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬Ãƒâ€¦Ã‚Â¡ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â§2) */
.header-snapshot__gate-note,
.valuation__admin-note {
    display: flex;
    align-items: center;
    gap: 6px;
    margin: 0.6rem 0 0 !important;
    padding: 4px 10px;
    font-size: 11.5px;
    font-weight: 600;
    color: #3730a3;
    background: #e0e7ff;
    border: 1px solid #c7d2fe;
    border-radius: var(--dossier-radius-sm);
}

.header-snapshot__gate-note i,
.valuation__admin-note i {
    font-size: 11px;
}

/* ==========================================================================
   v5 Addendum ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢ÃƒÆ’Ã¢â‚¬Â ÃƒÂ¢Ã¢â€šÂ¬Ã¢â€žÂ¢ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¢ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡Ãƒâ€šÃ‚Â¬ÃƒÆ’Ã¢â‚¬Â¦Ãƒâ€šÃ‚Â¡ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬Ãƒâ€¦Ã‚Â¡ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â§3 additions: dividend chips (3.5), peer-median block (3.6),
   two-lane thesis + divergence (3.2), peer-based P/E info row (3.4),
   open sources footer (3.9).
   ========================================================================== */

/* --- 3.5 Dividend chips --- */
.financial-snapshot__div-chips {
    display: grid;
    gap: 5px;
    grid-template-columns: repeat(3, 1fr);
}

.financial-snapshot__div-chip {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 1.6rem 1rem;
    border: 1px solid var(--dossier-border);
    border-radius: var(--dossier-radius-sm);
    background: var(--dossier-bg-soft);
}

.financial-snapshot__div-chip>i {
    color: var(--dossier-primary);
    flex: 0 0 auto;
    width: 45px;
    height: 50px;
    border-radius: var(--dossier-radius-xs);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 19px;
    background: #eaf3ff;
}

.financial-snapshot__div-chip-body {
    display: flex;
    flex-direction: column;
    line-height: 1.2;
    gap: 5px;
}

.financial-snapshot__div-chip-value {
    font-weight: 700;
    color: var(--dossier-heading);
    font-size: 19px;
}

.financial-snapshot__div-chip-label {
    font-size: 14px;
    font-weight: 600;
    letter-spacing: 0.03em;
    color: var(--dossier-text-muted);
}

.financial-snapshot__div-chip--none {
    border-color: var(--dossier-neutral-border);
}

.financial-snapshot__div-chip--none>i {
    color: var(--dossier-neutral);
}

.financial-snapshot__div-chip--none .financial-snapshot__div-chip-value {
    font-size: 16px;
}

/* --- 3.6 Peer-median block --- */
.valuation__peer-median-table {
    width: 100%;
    border-collapse: collapse;
    margin-top: var(--dossier-spacing-xs);
}

.valuation__peer-median-table thead th {
    letter-spacing: 0.03em;
    color: var(--dossier-text-muted);
}

.valuation__pm-metric {
    font-weight: 700;
    font-size: 16px !important;
    color: var(--dossier-heading);
    padding: 1.3rem 1.5rem !important;
    border-bottom: 1px solid var(--dossier-border) !important;
}

.valuation__pm-company,
.valuation__pm-peer {
    font-variant-numeric: tabular-nums;
}

.valuation__pm-nohist {
    color: var(--dossier-text-muted);
    font-style: italic;
    font-size: 14px;
}

.valuation__pm-pos {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 14px;
}

.valuation__pm-pos--below {
    color: var(--dossier-success);
}

.valuation__pm-pos--above {
    color: var(--dossier-danger);
}

.valuation__pm-pos--inline,
.valuation__pm-pos--na {
    color: var(--dossier-text-muted);
}

.valuation__peer-median-constituents {
    margin: var(--dossier-spacing-xs) 0 0 !important;
    font-size: 15px;
}

.valuation__pm-src {
    font-weight: 600;
    color: var(--dossier-text);
}

.valuation__pm-more {
    color: var(--dossier-text-muted);
}

/* Item 4: peer names are the entry point into the comparison module. */
.valuation__pm-peerlink {
    color: var(--dossier-primary, #1a6ffd);
    font-weight: 600;
    text-decoration: none;
    border-bottom: 1px dotted currentColor;
}
.valuation__pm-peerlink:hover,
.valuation__pm-peerlink:focus {
    text-decoration: none;
    border-bottom-style: solid;
}
.valuation__pm-compare {
    display: inline-block;
    margin-left: 6px;
    white-space: nowrap;
    font-weight: 600;
    color: var(--dossier-primary, #1a6ffd);
    text-decoration: none;
}
.valuation__pm-compare:hover,
.valuation__pm-compare:focus {
    text-decoration: underline;
}

/* --- 3.4 Peer-based P/E info row --- */
.valuation-chart__row--info .valuation-chart__label {
    color: var(--dossier-primary-dark);
}

/* --- 3.2 Two-lane thesis --- */
.thesis__lanes-wrap {
    margin-bottom: var(--dossier-spacing);
}

.thesis__lanes {
    display: grid;
    grid-template-columns: 1fr 1.5fr;
    gap: var(--dossier-spacing-sm);
}

@media (max-width: 640px) {
    .thesis__lanes {
        grid-template-columns: 1fr;
    }
}

.thesis__lane {
    border: 1px solid var(--dossier-border);
    border-radius: var(--dossier-radius);
    background: var(--dossier-bg-soft);
    padding: 2rem;
}

.thesis__lane--model {
    border-top: 3px solid var(--dossier-primary);
}

.thesis__lane--street {
    border-top: 3px solid var(--dossier-neutral);
}

.thesis__lane-head {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin-bottom: var(--dossier-spacing-sm);
}

.thesis__lane-icon {
    color: var(--dossier-primary);
}

.thesis__lane-icon i {
    font-size: 23px;
}

.thesis__lane--street .thesis__lane-icon {
    color: var(--dossier-neutral);
}

.thesis__lane-titles {
    display: flex;
    flex-direction: column;
    line-height: 1.25;
}

.thesis__lane-title {
    font-weight: 700;
    color: var(--dossier-heading);
    font-size: 19px;
}

.thesis__lane-sub {
    font-size: 14px;
    color: var(--dossier-text-muted);
}

.thesis__lane-body {
    display: flex;
    flex-direction: column;
    gap: 1.3rem;
    text-align: center;
    margin-top: 2rem;
}

.thesis__lane-metric {
    display: flex;
    flex-direction: column;
    line-height: 1.2;
}

.thesis__lane-value {
    font-size: 20px;
    font-weight: 800;
    color: var(--dossier-heading);
}

.thesis__lane-metric-label {
    font-size: 14px;
    margin-top: 5px;
}

.thesis__lane-delta {
    font-size: 20px;
    font-weight: 700;
}

.thesis__lane-delta--pos {
    color: var(--dossier-success);
}

.thesis__lane-delta--neg {
    color: var(--dossier-danger);
}

.thesis__lane-note {
    color: var(--dossier-text-muted);
    font-size: 0.86rem;
    margin: 0;
}

.thesis__lane-asof {
    font-size: 14px;
    color: var(--dossier-text-muted);
    margin-top: auto;
}

.thesis__consensus {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 0.4rem;
    text-align: center;
}

.thesis__consensus-item {
    padding: 1rem 0.2rem;
    border-radius: var(--dossier-radius-xs);
    background: var(--dossier-bg);
    border: 1px solid var(--dossier-border);
}

.thesis__consensus-item--mean {
    background: var(--dossier-primary-light);
    border-color: var(--dossier-primary-ring);
}

.thesis__consensus-value {
    display: block;
    font-weight: 700;
    color: var(--dossier-heading);
    font-variant-numeric: tabular-nums;
}

.thesis__consensus-label {
    display: block;
    font-size: 12px;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--dossier-text-muted);
}

.thesis__consensus-count {
    font-size: 14px;
    color: var(--dossier-text-muted);
}

.thesis__divergence {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-top: var(--dossier-spacing-sm);
    padding: 0.7rem 0.9rem;
    border: 1px solid var(--dossier-warning-border);
    background: var(--dossier-warning-bg);
    color: var(--dossier-warning-text);
    border-radius: var(--dossier-radius-sm);
    font-size: 14px;
}

/* --- 3.9 Open sources footer --- */
.dossier-sources-footer {
    align-items: flex-start;
    gap: 0.5rem;
    margin-top: var(--dossier-spacing);
    padding: var(--dossier-spacing-sm);
    border-top: 1px solid var(--dossier-border);
    font-size: 16px;
    border-bottom: 1px solid #e6eaf0;
}

.dossier-sources-footer>i {
    color: var(--dossier-primary);
    margin-top: 1.15rem;
    font-size: 16px;
}

/* ==========================================================================
   3.7 Quality Pillars ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢ÃƒÆ’Ã¢â‚¬Â ÃƒÂ¢Ã¢â€šÂ¬Ã¢â€žÂ¢ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â¢ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â¢ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¢ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡Ãƒâ€šÃ‚Â¬ÃƒÆ’Ã¢â‚¬Â¦Ãƒâ€šÃ‚Â¡ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â¬ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â¢ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¢ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬Ãƒâ€¦Ã‚Â¡ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â¬ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â radar + chips + moat badge
   ========================================================================== */
.pillars__body {
    display: grid;
    grid-template-columns: minmax(311px, 1fr) 1fr;
    gap: var(--dossier-spacing);
    align-items: center;
}

@media (max-width: 720px) {
    .pillars__body {
        grid-template-columns: 1fr;
    }
}

.pillars__radar {
    display: flex;
    justify-content: center;
    align-items: center;
    border: 1px solid var(--dossier-border);
    border-radius: var(--dossier-radius-sm);
    background: #fff;
    padding: 1.25rem;
}

.pillars__radar-svg {
    width: 100%;
    max-width: 440px;
    height: auto;
}

.pillars__ring {
    fill: none;
    stroke: var(--dossier-border-strong);
    stroke-width: 1;
}

.pillars__ring--outer {
    stroke: var(--dossier-neutral);
}

.pillars__spoke {
    stroke: var(--dossier-border-strong);
    stroke-width: 1;
}

.pillars__area {
    fill: var(--dossier-primary-ring);
    stroke: var(--dossier-primary);
    stroke-width: 2;
    stroke-linejoin: round;
}

.pillars__area--line {
    fill: none;
}

.pillars__dot {
    fill: var(--dossier-primary);
}

.pillars__axis-label {
    font-size: 13px;
    font-weight: 600;
    fill: var(--dossier-text);
}

.pillars__chips {
    list-style: none;
    margin: 0;
    padding: 0;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: var(--dossier-spacing-sm);
}

@media (max-width: 420px) {
    .pillars__chips {
        grid-template-columns: 1fr 1fr;
    }
}

@media (max-width: 510px) {

    .financial-snapshot__div-chips,
    .financial-snapshot__balance-grid {
        grid-template-columns: 1fr 1fr !important;
    }
}

@media (max-width: 992px) {
    .financial-snapshot__grids {
        grid-template-columns: 1fr !important;
        display: block;
    }
}

.pillars__chip {
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
    padding: 1rem 1.1rem;
    border: 1px solid var(--dossier-border);
    border-left-width: 4px;
    border-radius: var(--dossier-radius-sm);
    background: #fff;
    padding-left: 1.25rem !important;
}

.pillars__chip-top {
    display: flex;
    align-items: flex-start;
    gap: 0.7rem;
}

.pillars__chip-icon {
    flex: 0 0 auto;
    width: 40px;
    height: 40px;
    border-radius: 999px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 16px;
    background: var(--dossier-neutral-bg);
    color: var(--dossier-neutral);
}

.pillars__chip-head {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0.4rem;
    min-width: 0;
}

.pillars__chip-name {
    font-weight: 700;
    color: var(--dossier-heading);
    font-size: 16px;
}

.pillars__chip-level {
    display: inline-block;
    font-size: 12px;
    font-weight: 700;
    padding: 0.15rem 0.65rem;
    border-radius: 999px;
    background: var(--dossier-neutral-bg);
    color: var(--dossier-neutral);
}

.pillars__chip-pct {
    align-self: flex-start;
    font-size: 17px;
    font-weight: 700;
    color: var(--dossier-primary);
}

/* Rank tooltip ("Ranks refresh with each quarterly update.").
   The WHOLE chip is the trigger (hover on desktop; tap/focus on touch &
   keyboard). The bubble is rendered INSIDE the chip (top overlay) so it is
   never clipped by the module's overflow:hidden, on any screen width. */
.pillars__chip--has-tip {
    position: relative;
    cursor: help;
}

/* Subtle cue that the rank has an explanation. */
.pillars__chip--has-tip .pillars__chip-pct {
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    width: max-content;
    max-width: 100%;
}

.pillars__chip-tip-icon {
    font-size: 11px;
    color: var(--dossier-text-muted);
}

.pillars__chip--has-tip:focus-visible {
    outline: 2px solid var(--dossier-primary);
    outline-offset: 2px;
}

.pillars__chip--has-tip::after {
    content: attr(data-tip);
    position: absolute;
    top: 8px;
    left: 12px;
    right: 12px;
    z-index: 30;
    padding: 5px 7px;
    background: #1aa1de;
    color: #fff;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.3;
    text-align: center;
    border-radius: var(--dossier-radius-xs, 6px);
    box-shadow: 0 6px 20px rgba(16, 24, 40, 0.18);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-4px);
    transition: opacity 0.12s ease, transform 0.12s ease;
    pointer-events: none;
}

.pillars__chip--has-tip:hover::after,
.pillars__chip--has-tip:focus::after,
.pillars__chip--has-tip:focus-within::after,
.pillars__chip--has-tip:active::after {
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
}

.pillars__chip--high {
    border-left-color: var(--dossier-success);
}

.pillars__chip--high .pillars__chip-icon,
.pillars__chip--high .pillars__chip-level {
    background: var(--dossier-success-bg);
    color: var(--dossier-success);
}

.pillars__chip--medium {
    border-left-color: var(--dossier-warning-text);
}

.pillars__chip--medium .pillars__chip-icon,
.pillars__chip--medium .pillars__chip-level {
    background: var(--dossier-warning-bg);
    color: var(--dossier-warning-text);
}

.pillars__chip--low {
    border-left-color: var(--dossier-danger);
}

.pillars__chip--low .pillars__chip-icon,
.pillars__chip--low .pillars__chip-level {
    background: var(--dossier-danger-bg);
    color: var(--dossier-danger);
}

.pillars__chip--na {
    border-left-color: var(--dossier-neutral-border);
}

.pillars__chip--na .pillars__chip-icon,
.pillars__chip--na .pillars__chip-level {
    background: var(--dossier-neutral-bg);
    color: var(--dossier-neutral);
}

.pillars__moat {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 0.6rem;
    margin-top: var(--dossier-spacing-sm);
    padding: 0.6rem 1.55rem;
    border: 1px solid var(--dossier-border);
    border-radius: var(--dossier-radius-sm);
    background: var(--dossier-bg);
}

.pillars__moat-label {
    font-weight: 600;
    color: var(--dossier-text);
    font-size: 15px;
}

.pillars__moat-badge {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.3rem 1.4rem;
    border-radius: 999px;
    background: var(--dossier-primary-light);
    color: var(--dossier-primary-dark);
    font-weight: 700;
    font-size: 13px;
}

.pillars__note {
    margin: var(--dossier-spacing) 0 0 !important;
    font-size: 15px;
}

.pillars__note>i {
    color: var(--dossier-primary);
    margin-right: 0.35rem;
}

.glossary__methodology {
    display: flex;
    gap: var(--dossier-spacing-sm);
    align-items: flex-start;
    background: var(--dossier-primary-light);
    border: 1px solid var(--dossier-border);
    border-radius: var(--dossier-radius-sm);
    padding: var(--dossier-spacing) var(--dossier-spacing);
    margin: 0 0 var(--dossier-spacing);
    color: var(--dossier-text);
}

.glossary__methodology>i {
    color: var(--dossier-primary);
    margin-top: 0.4rem;
}

.glossary__methodology-text {
    margin: 0;
    font-size: 15px;
    line-height: 1.5;
}

/* Per-section sources line (Supplement 3 ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢ÃƒÆ’Ã¢â‚¬Â ÃƒÂ¢Ã¢â€šÂ¬Ã¢â€žÂ¢ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¢ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡Ãƒâ€šÃ‚Â¬ÃƒÆ’Ã¢â‚¬Â¦Ãƒâ€šÃ‚Â¡ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬Ãƒâ€¦Ã‚Â¡ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â§1) */
.dossier-section-sources {
    display: block;
    margin: var(--dossier-spacing-sm) 0 0;
    font-size: 0.82rem;
    color: var(--dossier-text-muted);
}

/* Count-only line (logged-out / no links): plain informational text. */
.dossier-section-sources>i {
    color: var(--dossier-primary);
    margin-right: 0.35rem;
}

.dossier-section-sources--expandable {
    border-top: 1px dashed var(--dossier-border);
    padding-top: var(--dossier-spacing);
}

p.dossier-section-sources {
    display: inline-block;
    font-size: 14px;
    font-weight: 600;
    color: var(--dossier-primary, #0b63d6);
    background: var(--dossier-primary-light, #eaf3ff);
    border: 1px solid var(--dossier-primary-ring, #cfe2fb);
    border-radius: 999px;
    padding: 0.4rem 0.95rem;
}

.dossier-section-sources__summary {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 14px;
    font-weight: 600;
    color: var(--dossier-primary, #0b63d6);
    background: var(--dossier-primary-light, #eaf3ff);
    border: 1px solid var(--dossier-primary-ring, #cfe2fb);
    border-radius: 999px;
    padding: 0.4rem 0.95rem;
    cursor: pointer;
    list-style: none;
    -webkit-user-select: none;
    user-select: none;
    transition: background .15s ease, border-color .15s ease, color .15s ease, box-shadow .15s ease;
}

.dossier-section-sources__summary:hover {
    background: var(--dossier-primary, #0b63d6);
    border-color: var(--dossier-primary, #0b63d6);
    color: #fff;
    box-shadow: 0 2px 8px rgba(11, 99, 214, .22);
}

.dossier-section-sources__summary:focus-visible {
    outline: 2px solid var(--dossier-primary, #0b63d6);
    outline-offset: 2px;
}

.dossier-section-sources__summary::-webkit-details-marker,
.dossier-section-sources__summary::marker {
    display: none;
    content: "";
}

/* Icon + caret follow the summary text colour (primary ÃƒÂ¢Ã¢â‚¬Â Ã¢â‚¬â„¢ white on hover). */
.dossier-section-sources__icon,
.dossier-section-sources__caret {
    color: inherit;
}

.dossier-section-sources__label {
    flex: 0 0 auto;
}

/* Toggle affordance: a "Show" / "Hide" hint + a chevron that rotates when open. */
.dossier-section-sources__toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.3rem;
    margin-left: 0.15rem;
    padding-left: 0.55rem;
    border-left: 1px solid currentColor;
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    opacity: 0.85;
}

.dossier-section-sources__toggle-text::after {
    content: "Show";
}

.dossier-section-sources[open] .dossier-section-sources__toggle-text::after {
    content: "Hide";
}

.dossier-section-sources__caret {
    font-size: 11px;
    transition: transform .2s ease;
}

.dossier-section-sources[open] .dossier-section-sources__caret {
    transform: rotate(180deg);
}

/* Keep the pill visually "active" while expanded. */
.dossier-section-sources[open] .dossier-section-sources__summary {
    margin-bottom: 0.5rem;
}

.dossier-section-sources__list {
    margin: var(--dossier-spacing-sm) 0 0;
    padding-left: 1.5rem;
    display: grid;
    gap: 0.8rem;
    font-weight: 500;
}

.dossier-section-sources__item {
    font-size: 14px;
    line-height: 1.4;
}

.dossier-section-sources__item a {
    color: var(--dossier-primary);
    text-decoration: none;
}

.dossier-section-sources__item a:hover {
    text-decoration: underline;
}

.dossier-section-sources__asof {
    color: var(--dossier-text-muted);
    font-size: 14px;
    margin-left: 5px;
}

/* Logged-out gate: expanding "Sources: N" reveals a sign-in / sign-up prompt. */
.dossier-section-sources__gate {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.5rem;
    padding: 0.7rem 0.95rem;
    font-size: 13px;
    color: var(--dossier-text-muted, #525760);
    background: var(--dossier-primary-light, #eaf3ff);
    border: 1px dashed var(--dossier-primary-ring, #cfe2fb);
    border-radius: var(--dossier-radius-sm, 8px);
}

.dossier-section-sources__gate-icon {
    color: var(--dossier-primary, #0b63d6);
}

.dossier-section-sources__gate-link {
    color: var(--dossier-primary, #0b63d6);
    font-weight: 600;
    text-decoration: none;
}

.dossier-section-sources__gate-link:hover {
    text-decoration: underline;
}

/* All-tier page footer narrative line (Supplement 3 ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢ÃƒÆ’Ã¢â‚¬Â ÃƒÂ¢Ã¢â€šÂ¬Ã¢â€žÂ¢ÃƒÆ’Ã†â€™Ãƒâ€šÃ‚Â¢ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡Ãƒâ€šÃ‚Â¬ÃƒÆ’Ã¢â‚¬Â¦Ãƒâ€šÃ‚Â¡ÃƒÆ’Ã†â€™Ãƒâ€ Ã¢â‚¬â„¢ÃƒÆ’Ã‚Â¢ÃƒÂ¢Ã¢â‚¬Å¡Ã‚Â¬Ãƒâ€¦Ã‚Â¡ÃƒÆ’Ã†â€™ÃƒÂ¢Ã¢â€šÂ¬Ã…Â¡ÃƒÆ’Ã¢â‚¬Å¡Ãƒâ€šÃ‚Â§2) */
.dossier-sources-footer__text {
    margin-left: 6px;
    font-size: 16px;
    font-weight: 500;
}

.dossier-sources-footer__narrative {
    display: block;
    width: 100%;
    font-size: 15px;
    color: var(--dossier-text-muted);
    margin-top: 0px;
}

.dossier-module--sandbox .sandbox__compare {
    display: flex;
    align-items: stretch;
    gap: 0;
    background: var(--dossier-bg-alt);
    border: 1px solid var(--dossier-border);
    border-radius: var(--dossier-radius);
    overflow: hidden;
    margin-bottom: var(--dossier-spacing);
}

.sandbox__compare-col {
    flex: 1 1 0;
    padding: var(--dossier-spacing);
    text-align: center;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.sandbox__compare-col--your {
    background: var(--dossier-primary-light);
}

.sandbox__compare-divider {
    width: 1px;
    background: var(--dossier-border-strong);
}

.sandbox__compare-label {
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: var(--dossier-text-muted);
    font-weight: 700;
}

.sandbox__compare-value {
    font-size: 23px;
    font-weight: 800;
    color: var(--dossier-heading);
    line-height: 1.4;
}

.sandbox__compare-col--your .sandbox__compare-value {
    color: var(--dossier-primary-dark);
}

.sandbox__compare-sub,
.sandbox__compare-watermark {
    font-size: 14px;
    color: var(--dossier-text-muted);
}

.sandbox__compare-watermark {
    font-style: italic;
}

.sandbox__guard,
.sandbox__note {
    display: flex;
    gap: 0.5rem;
    align-items: flex-start;
    border-radius: var(--dossier-radius-sm);
    padding: 0.6rem 0.9rem;
    font-size: 14px;
    margin: 0 0 var(--dossier-spacing) !important;
}

.sandbox__guard {
    background: var(--dossier-danger-bg);
    border: 1px solid var(--dossier-danger-border);
    color: var(--dossier-danger);
}

.sandbox__note {
    background: var(--dossier-warning-bg);
    border: 1px solid var(--dossier-warning-border);
    color: var(--dossier-warning-text);
}

.sandbox__note i {
    margin-top: 5px;
}

.sandbox__body {
    display: grid;
    grid-template-columns: 1.3fr 1fr;
    gap: var(--dossier-spacing);
}

@media (max-width: 900px) {
    .sandbox__body {
        grid-template-columns: 1fr;
    }
}

.sandbox__controls {
    display: grid;
    gap: var(--dossier-spacing);
}

.sandbox__group {
    border: 1px solid var(--dossier-border);
    border-radius: var(--dossier-radius-sm);
    padding: 1.5rem;
    background: var(--dossier-bg-soft);
}

.sandbox__group-title {
    margin: 0 0 var(--dossier-spacing) !important;
    font-size: 17px;
    font-weight: 600;
}

.sandbox__field {
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
    margin-bottom: var(--dossier-spacing-sm);
}

.sandbox__field:last-child {
    margin-bottom: 0;
}

.sandbox__field-label {
    font-size: 14px;
    font-weight: 600;
    color: var(--dossier-text);
    line-height: 1;
    margin-top: 11px;
}

.sandbox__field-control {
    display: flex;
    align-items: center;
    gap: 1rem;
}

.sandbox__input {
    flex: 1 1 auto;
    min-width: 0;
    padding: 0.4rem 0.6rem;
    border: 1px solid var(--dossier-border-strong);
    border-radius: var(--dossier-radius-xs);
    font-size: 15px;
    color: var(--dossier-text);
    background: var(--dossier-bg);
}

.sandbox__input:focus {
    outline: none;
    border-color: var(--dossier-primary);
    box-shadow: 0 0 0 3px var(--dossier-primary-ring);
}

.sandbox__input-suffix {
    font-size: 15px;
    /* color: var(--dossier-text-muted); */
    min-width: 1rem;
}

.sandbox__reset-field {
    border: none !important;
    background: #eaf3ff !important;
    color: #0564d0 !important;
    cursor: pointer !important;
    padding: 1rem !important;
    border-radius: var(--dossier-radius-xs) !important;
    line-height: 1 !important;
}

.sandbox__reset-field:hover {
    color: var(--dossier-primary);
    background: var(--dossier-primary-light);
}

.sandbox__field-sub {
    font-size: 14px;
    color: var(--dossier-text-muted);
}

.sandbox__methods {
    border: 1px solid var(--dossier-border);
    border-radius: var(--dossier-radius-sm);
    padding: 1.5rem;
    background: var(--dossier-bg-soft);
    align-self: start;
}

.sandbox__method-list {
    display: grid;
    gap: 1rem;
}

.sandbox__method {
    display: grid;
    grid-template-columns: 3.2rem 1fr 1fr;
    gap: 0.5rem;
    align-items: baseline;
    padding: 1rem 1rem;
    border-radius: var(--dossier-radius-xs);
    background: var(--dossier-bg) !important;
    border: 1px solid var(--dossier-border);
    font-size: 15px;
}

.sandbox__method--na {
    opacity: 0.6;
}

.sandbox__method--moved {
    border-color: #0b63d65e;
    background: var(--dossier-primary-light) !important;
}

.sandbox__method-name {
    font-weight: 700;
    color: var(--dossier-heading);
}

.sandbox__method-our {
    color: var(--dossier-text-muted);
}

.sandbox__method-your {
    color: var(--dossier-primary-dark);
}

.sandbox__actions {
    display: flex;
    flex-wrap: wrap;
    gap: var(--dossier-spacing-sm);
    justify-content: space-between;
    align-items: center;
    margin-top: var(--dossier-spacing);
}

.sandbox__actions-persist {
    display: flex;
    gap: var(--dossier-spacing-sm);
}

.sandbox__btn {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    padding: 0.5rem 0.9rem;
    border-radius: var(--dossier-radius-sm);
    border: 1px solid var(--dossier-border-strong);
    background: var(--dossier-bg);
    color: var(--dossier-text);
    font-size: 0.85rem;
    font-weight: 600;
    cursor: pointer;
}

.sandbox__btn:hover {
    border-color: var(--dossier-primary);
    color: var(--dossier-primary-dark);
}

.sandbox__btn--save {
    background: var(--dossier-primary);
    border-color: var(--dossier-primary);
    color: #fff;
}

.sandbox__btn--save:hover {
    background: var(--dossier-primary-dark);
    color: #fff;
}

.sandbox__status {
    margin: var(--dossier-spacing-sm) 0 0;
    font-size: 0.82rem;
    color: var(--dossier-text-muted);
    min-height: 1.1rem;
}

.sandbox__status--error {
    color: var(--dossier-danger);
}

.sandbox__footnote {
    margin: var(--dossier-spacing) 0 0 !important;
    font-size: 15px;
    display: flex;
    gap: 0.6rem;
    align-items: flex-start;
}

.sandbox__footnote>i {
    color: var(--dossier-primary);
    margin-top: 0.5rem;
}

/* ==========================================================================
   Hero ÃƒÂ¢Ã¢â€šÂ¬Ã¢â‚¬Â "median of N methods" basis line (Ãƒâ€šÃ‚Â§3.1)
   ========================================================================== */
.header-snapshot__metric-basis {
    display: block;
    font-size: 14px;
    font-weight: 500;
}

/* ==========================================================================
   Read-more gate (Ãƒâ€šÃ‚Â§3.8) ÃƒÂ¢Ã¢â€šÂ¬Ã¢â‚¬Â client-side truncation for logged-out visitors
   Identical HTML is served to everyone; only the .dossier-modules--gated
   wrapper (added for logged-out visitors) triggers the clamp + CTA. Logged-in
   members and crawlers receive the full, un-clamped block.
   ========================================================================== */
.dossier-gate {
    position: relative;
}

.dossier-gate__fade,
.dossier-gate__cta {
    display: none;
}

.dossier-modules--gated .dossier-gate .dossier-gate__content {
    position: relative;
    max-height: 4.6em;
    overflow: hidden;
}

.dossier-modules--gated .dossier-gate {
    position: relative;
    padding-bottom: 4rem;
}

.dossier-modules--gated .dossier-gate__fade {
    display: block;
    position: absolute;
    left: 0;
    right: 0;
    top: 2.1em;
    height: 2.5em;
    background: linear-gradient(to bottom, rgba(255, 255, 255, 0), var(--dossier-bg) 85%);
    pointer-events: none;
}

.dossier-modules--gated .dossier-gate__cta {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    position: absolute;
    left: 0;
    bottom: 0;
    font-size: 14px;
    font-weight: 500;
    color: var(--dossier-primary);
    text-decoration: none;
    background: var(--dossier-primary-light);
    border: 1px solid var(--dossier-primary-ring);
    border-radius: 30px;
    padding: 0.5rem 1.5rem;
}

.dossier-modules--gated .dossier-gate__cta:hover {
    background: var(--dossier-primary);
    color: #fff;
}

/* ==========================================================================
   Strategic Initiatives module (Ãƒâ€šÃ‚Â§3.8)
   ========================================================================== */
.strategic__grid {
    display: grid;
    gap: var(--dossier-spacing);
    margin-top: var(--dossier-spacing);
}

.strategic__card {
    border: 1px solid var(--dossier-border);
    border-radius: var(--dossier-radius);
    padding: var(--dossier-spacing);
    /* background: var(--dossier-bg-soft); */
    /* box-shadow: var(--dossier-shadow); */
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.strategic__card-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0.6rem;
    flex-wrap: wrap;
}

.strategic__card-title {
    font-weight: 700;
    /* color: var(--dossier-heading); */
    font-size: 18px;
    line-height: 1.35;
}

.strategic__card-tags {
    display: flex;
    gap: 0.4rem;
    flex-wrap: wrap;
    align-items: center;
}

.strategic__cat {
    font-size: 13px;
    font-weight: 600;
    color: #0089b7;
    background: #00a2d312;
    border-radius: 999px;
    padding: 0.3rem 1.2rem;
    white-space: nowrap;
}

.strategic__status {
    font-size: 13px;
    font-weight: 600;
    border-radius: 999px;
    padding: 0.15rem 1rem;
    white-space: nowrap;
}

.strategic__status--done {
    color: var(--dossier-success);
    background: var(--dossier-success-bg);
    border: 1px solid var(--dossier-success-border);
}

.strategic__status--active {
    color: #0089b7;
    background: #ebf5fa;
}

.strategic__status--planned {
    color: var(--dossier-warning-text);
    background: var(--dossier-warning-bg);
    border: 1px solid var(--dossier-warning-border);
}

.strategic__status--neutral {
    color: var(--dossier-neutral);
    background: var(--dossier-neutral-bg);
    border: 1px solid var(--dossier-neutral-border);
}

.strategic__desc,
.strategic__impact {
    margin: 0;
    font-size: 15px;
    color: #15223a;
    line-height: 1.55;
    margin-bottom: 10px !important;
}

.strategic__impact-label,
.ma__fin-label {
    font-weight: 600;
    color: var(--dossier-text-muted);
}

.strategic__meta {
    display: flex;
    gap: var(--dossier-spacing);
    flex-wrap: wrap;
    margin-top: auto;
    padding-top: 1.5rem;
    border-top: 1px dashed var(--dossier-border);
    padding-bottom: 10px;
}

.strategic__meta-item {
    display: flex;
    flex-direction: column;
    gap: 0.1rem;
}

.strategic__meta-label {
    font-size: 14px;
    font-weight: 600;
    color: var(--dossier-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.03em;
}

.strategic__meta-value {
    font-size: 15px;
    color: var(--dossier-text);
}

/* ==========================================================================
   Mergers & Acquisitions / Partnerships module (Ãƒâ€šÃ‚Â§3.8)
   ========================================================================== */
.ma__block {
    margin-top: 3.5rem;
}

.ma__block-title {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 19px;
    font-weight: 700;
    color: var(--dossier-heading);
    margin: 20px 0 !important;
}

.ma__block-title>i {
    color: var(--dossier-primary);
}

.ma__grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(400px, 1fr));
    gap: var(--dossier-spacing);
}

.ma__card {
    border: 1px solid var(--dossier-border);
    border-radius: var(--dossier-radius);
    padding: var(--dossier-spacing);
    /* background: var(--dossier-bg-soft); */
    /* box-shadow: var(--dossier-shadow); */
    display: flex;
    flex-direction: column;
    gap: 1rem;
}

.ma__card-head {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 0.6rem;
    flex-wrap: wrap;
    margin: 1rem 0 !important;
}

.ma__card-title {
    font-weight: 700;
    color: var(--dossier-heading);
    font-size: 17px;
}

.ma__card-tags {
    display: flex;
    gap: 0.4rem;
    flex-wrap: wrap;
    align-items: center;
}

.ma__value {
    font-size: 13px;
    font-weight: 500;
    color: var(--dossier-success);
    background: var(--dossier-success-bg);
    border: 1px solid var(--dossier-success-border);
    border-radius: 999px;
    padding: 0.15rem 1rem;
    white-space: nowrap;
}

.ma__date {
    font-size: 13px;
    color: var(--dossier-text-muted);
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
}

.ma__rationale,
.ma__fin {
    margin: 0;
    font-size: 15px;
    color: var(--dossier-text);
    line-height: 1.55;
    margin-bottom: 10px !important;
}

/* ==========================================================================
   Monitoring Framework ÃƒÂ¢Ã¢â€šÂ¬Ã¢â‚¬Â KPIs + watch items
   ========================================================================== */
.outlook__row--monitoring {
    display: block;
}

.outlook__card--monitoring {
    width: 100%;
}

.outlook__subhead {
    font-size: 16px;
    font-weight: 700;
    color: var(--dossier-heading);
    margin: 30px 0 10px !important;
}

.outlook__kpi-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: var(--dossier-spacing-sm);
}

.outlook__kpi {
    border: 1px solid var(--dossier-border);
    border-radius: var(--dossier-radius-sm);
    padding: 1.5rem;
    background: var(--dossier-bg);
    display: flex;
    flex-direction: column;
    gap: 0.8rem;
}

.outlook__kpi-name {
    font-size: 14px;
    font-weight: 600;
}

.outlook__kpi-freq {
    font-size: 12px;
    font-weight: 500;
    background: #eeeeee;
    border-radius: 999px;
    padding: 0.3rem 0.8rem;
}

.outlook__kpi-value {
    font-size: 20px;
    font-weight: 700;
    color: var(--dossier-heading);
}

.outlook__kpi-target {
    font-size: 14px;
    color: var(--dossier-text-muted);
    line-height: 1.4;
}

.outlook__kpi-target-label {
    font-weight: 600;
}

.outlook__watch-list {
    list-style: none;
    margin: 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: 0.6rem;
}

.outlook__watch-item {
    border-left: 3px solid var(--dossier-warning-border);
    background: var(--dossier-warning-bg);
    border-radius: var(--dossier-radius-xs);
    padding: 1.5rem 2rem;
    display: flex;
    padding-left: 1.5rem !important;
    flex-direction: column;
    gap: 0.5rem;
    margin-bottom: 5px !important;
}

.outlook__watch-name {
    font-weight: 700;
    color: var(--dossier-heading);
    font-size: 16px;
    margin-bottom: 5px;
}

.outlook__watch-name>i {
    color: var(--dossier-warning-text);
    margin-right: 0.3rem;
}

.outlook__watch-trigger,
.outlook__watch-action {
    font-size: 15px;
    color: var(--dossier-text);
    line-height: 1.5;
}

.outlook__watch-label {
    font-weight: 600;
    color: var(--dossier-text-muted);
}

/* Slim company context bar on subpages */
.dossier-context-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 0.75rem 1.5rem;
    padding: 1.5rem 1.5rem;
    margin-bottom: var(--dossier-spacing, 1.5rem);
    border: 1px solid var(--dossier-border, #e6eaf0);
    border-radius: var(--dossier-radius-sm, 8px);
    background: var(--dossier-bg-soft, #fafbfd);
}

.dossier-context-bar__id {
    display: inline-flex;
    align-items: baseline;
    gap: 0.6rem;
    min-width: 0;
}

.dossier-context-bar__name {
    font-size: 16px;
    font-weight: 800;
    color: var(--dossier-heading, #0f172a);
}

.dossier-context-bar__ticker {
    font-size: 14px;
    font-weight: 700;
    color: var(--dossier-primary, #0b63d6);
    background: var(--dossier-primary-light, #eaf3ff);
    border-radius: 6px;
    padding: 0.3rem 0.8rem;
}

.dossier-context-bar__metrics {
    display: inline-flex;
    align-items: center;
    gap: 3rem;
    flex-wrap: wrap;
}

.dossier-context-bar__metric {
    display: inline-flex;
    flex-direction: column;
    line-height: 1.2;
    gap: 0.5rem;
}

.dossier-context-bar__label {
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--dossier-text-muted, #525760);
}

.dossier-context-bar__value {
    font-size: 17px;
    font-weight: 800;
    color: var(--dossier-heading, #0f172a);
    font-variant-numeric: tabular-nums;
}

.dossier-context-bar__pill {
    display: inline-flex;
    align-items: center;
    font-size: 13px;
    font-weight: 700;
    border-radius: 6px;
    padding: 0.5rem 1.2rem;
}

.dossier-context-bar__pill--discount {
    color: #15803d;
    background: var(--dossier-success-bg, #ecfdf3);
    border: 1px solid var(--dossier-success-border, #bbf7d0);
}

.dossier-context-bar__pill--premium {
    color: var(--dossier-danger, #dc2626);
    background: var(--dossier-danger-bg, #fef2f2);
    border: 1px solid var(--dossier-danger-border, #fecaca);
}

.dossier-context-bar__pill--fair {
    color: var(--dossier-neutral, #64748b);
    background: var(--dossier-neutral-bg, #f1f5f9);
    border: 1px solid var(--dossier-neutral-border, #dbe2ea);
}

/* Overview: module cards linking to each subpage */
.dossier-overview-nav__grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(280px, 1fr));
    gap: var(--dossier-spacing, 1.5rem);
    margin-top: var(--dossier-spacing, 1.5rem);
}

.dossier-overview-card {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1.25rem 1.4rem;
    border: 1px solid var(--dossier-border, #e6eaf0);
    border-radius: var(--dossier-radius, 12px);
    background: var(--dossier-bg, #fff);
    box-shadow: var(--dossier-shadow, 0 1px 3px rgba(16, 24, 40, 0.06));
    text-decoration: none;
    color: inherit;
    transition: border-color 0.15s ease, box-shadow 0.15s ease, transform 0.15s ease;
}

.dossier-overview-card:hover {
    border-color: var(--dossier-primary, #0b63d6);
    box-shadow: var(--dossier-shadow-md, 0 4px 14px rgba(16, 24, 40, 0.1));
    transform: translateY(-1px);
}

.dossier-overview-card__icon {
    flex: 0 0 auto;
    width: 44px;
    height: 44px;
    border-radius: 10px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    font-size: 2rem;
    color: var(--dossier-primary, #0b63d6);
    background: var(--dossier-primary-light, #eaf3ff);
}

.dossier-overview-card__body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.2rem;
}

.dossier-overview-card__title {
    font-size: 17px;
    font-weight: 700;
    color: var(--dossier-heading, #0f172a);
}

.dossier-overview-card__desc {
    font-size: 14px;
    line-height: 1.4;
}

.dossier-overview-card__arrow {
    flex: 0 0 auto;
    color: var(--dossier-primary, #0b63d6);
}

@media (max-width: 600px) {

    .outlook__watch-trigger,
    .outlook__watch-action,
    .outlook__watch-name {
        font-size: 14px;
    }

    .outlook__kpi-value {
        font-size: 17px;
    }

    /* Company context bar (subpages) */
    .dossier-context-bar {
        flex-direction: column;
        align-items: stretch;
        gap: 1.4rem;
        padding: 1rem 1.1rem;
        margin-bottom: 0;
    }

    .dossier-modules {
        /* gap: 1rem; */
    }

    .dossier-context-bar__name {
        font-size: 15px;
        line-height: 1.4;
    }

    .dossier-context-bar__ticker {
        font-size: 13px;
    }

    .dossier-context-bar__metrics {
        gap: 1.5rem;
        width: 100%;
        justify-content: space-between;
    }

    .dossier-context-bar__pill {
        align-self: flex-start;
    }

    /* Overview module cards -> single column, tighter */
    .dossier-overview-nav__grid {
        grid-template-columns: 1fr;
        gap: 0.75rem;
        margin-top: var(--dossier-spacing-sm, 0.75rem);
    }

    .dossier-overview-card {
        padding: 0.9rem 1rem;
        gap: 0.75rem;
        border-radius: var(--dossier-radius-sm, 8px);
    }

    .dossier-overview-card__icon {
        width: 38px;
        height: 38px;
        font-size: 1.5rem;
    }

    .dossier-overview-card__title {
        font-size: 15px;
    }

    .dossier-overview-card__desc {
        font-size: 13px;
    }

    .dossier-overview-card__arrow {
        display: none;
    }

    .dossier-module {
        padding: 16px 12px 24px;
        margin-bottom: 10px !important;
    }

    .dbreadcrumbs {
        font-size: 0.75rem;
        padding: 0.5rem 0 0.3rem;
    }

    .dnav a {
        padding: 13px 14px;
    }

}

.dossier-ai-chip {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    margin: 0 0 var(--dossier-spacing-sm, 0.75rem);
    padding: 0.25rem 0.6rem;
    font-size: 13px;
    font-weight: 600;
    letter-spacing: 0.02em;
    color: #0b63d6;
    background: #2473bf14;
    border: 1px solid rgb(196 196 196 / 15%);
    border-radius: 999px;
    line-height: 1.4;
}

.dossier-ai-chip>i {
    font-size: 0.72rem;
}

.glossary__pillars-method {
    margin: var(--dossier-spacing) 0 0;
    border: 1px solid var(--dossier-border, #e6eaf0);
    border-radius: var(--dossier-radius-sm, 8px);
    background: var(--dossier-bg-soft, #fafbfd);
    overflow: hidden;
    padding: 1.5rem 1.5rem;
    margin-bottom: 15px;
}

.glossary__pillars-method-summary {
    display: flex;
    align-items: center;
    font-size: 18px;
    gap: 0.5rem;
    padding: 0.9rem 1.1rem;
    cursor: pointer;
    list-style: none;
    font-weight: 700;
    color: var(--dossier-heading, #0f172a);
}

.glossary__pillars-method-summary::-webkit-details-marker {
    display: none;
}

.glossary__pillars-method-summary>i:first-child {
    color: var(--dossier-primary, #0b63d6);
}

.glossary__pillars-method-summary .glossary__term-chevron {
    margin-left: auto;
    transition: transform .2s ease;
    color: var(--dossier-text-muted, #525760);
}

.glossary__pillars-method[open] .glossary__pillars-method-summary .glossary__term-chevron {
    transform: rotate(180deg);
}

.glossary__pillars-method-body {
    padding: 1rem 1.1rem 1.1rem;
    font-size: 15px;
    line-height: 1.6;
    color: var(--dossier-text, #16223a);
}

.glossary__pillars-method-list {
    margin: 0.5rem 0 0.75rem;
    padding-left: 1.2rem;
    display: flex;
    flex-direction: column;
    gap: 0.3rem;
}

.capopedia-global {
    width: 100%;
}

.capopedia-global-page {
    margin: 30px 0 0;
}

.capopedia-global-page .dossier-module__title {
    font-size: 1.9rem;
}

.capopedia-global-page__crosslink {
    margin: 0 0 var(--dossier-spacing, 1.5rem);
    font-size: 14px;
}

.capopedia-global-page__crosslink a {
    color: var(--dossier-primary, #0b63d6);
    font-weight: 600;
    text-decoration: none;
}

.capopedia-global-page__crosslink a:hover {
    text-decoration: underline;
}

/* Methodology page â€” numbered sections */
.methodology-page {
    list-style: none;
    counter-reset: methodology;
    margin: var(--dossier-spacing, 1.5rem) 0 0;
    padding: 0;
    display: flex;
    flex-direction: column;
    gap: var(--dossier-spacing, 1.5rem);
}

.methodology-page__section {
    counter-increment: methodology;
    border: 1px solid var(--dossier-border, #e6eaf0);
    border-radius: var(--dossier-radius, 12px);
    background: var(--dossier-bg, #fff);
    padding: 2rem 2rem;
}

.methodology-page__title {
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
    font-size: 18px;
    font-weight: 700;
    color: var(--dossier-heading, #0f172a);
    margin: 0 0 1.5rem;
}

.methodology-page__title::before {
    content: counter(methodology);
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.4rem;
    height: 2.4rem;
    border-radius: 50%;
    background: var(--dossier-primary-light, #eaf3ff);
    color: var(--dossier-primary, #0b63d6);
    font-size: 16px;
    font-weight: 800;
}

.methodology-page__text {
    margin: 0 0 0.6rem;
    font-size: 15px;
    line-height: 1.55;
    color: var(--dossier-text, #16223a);
}

.methodology-page__text:last-child {
    margin-bottom: 0;
}

.methodology-page__list {
    margin: 1.3rem 0 0.6rem;
    padding-left: 2.5rem;
    display: flex;
    flex-direction: column;
    gap: 0.5rem;
    font-size: 15px;
    line-height: 1.6;
    color: var(--dossier-text, #16223a);
}

@media (max-width: 600px) {
    .capopedia-global-page {
        padding: 1.25rem 0.9rem 2rem;
    }

    .capopedia-global-page .dossier-module__title {
        font-size: 1.5rem;
    }

    .methodology-page__section {
        padding: 1rem;
    }
}

/* ==========================================================================
   Assumptions â€” per-year rate expander (glide rows 6â€“10, 11â€“20)
   Click-to-expand (native <details>) so it works on desktop and mobile.
   ========================================================================== */
.valuation__peryear {
    display: block;
    max-width: 200px;
    margin-top: 0.5rem;
}

.valuation__peryear-toggle {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    cursor: pointer;
    list-style: none;
    font-size: 14px;
    font-weight: 500;
    color: var(--dossier-primary, #0b63d6);
    -webkit-user-select: none;
    user-select: none;
}

.valuation__peryear-toggle::-webkit-details-marker {
    display: none;
}

.valuation__peryear-caret {
    transition: transform .2s ease;
}

.valuation__peryear[open] .valuation__peryear-caret {
    transform: rotate(180deg);
}

.valuation__peryear-grid {
    display: grid;
    gap: 0.7rem 0.6rem;
    margin-top: 0.8rem;
    padding: 1rem 1rem;
    background: var(--dossier-bg-soft, #fafbfd);
    border: 1px solid var(--dossier-border, #e6eaf0);
    border-radius: var(--dossier-radius-xs, 6px);
}

.valuation__peryear-item {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.5rem;
    font-size: 14px;
    font-variant-numeric: tabular-nums;
}

.valuation__peryear-yr {
    color: var(--dossier-text-muted, #525760);
}

.valuation__peryear-val {
    font-weight: 700;
    color: var(--dossier-heading, #0f172a);
}

@media (max-width: 992px) {
    .dnav {
        margin-bottom: 1rem !important;
    }

    .header-snapshot__grid {
        grid-template-columns: 1fr;
        gap: 1rem;
    }

    .header-snapshot__id-label {
        min-width: 0;
    }

    .header-snapshot__id-value {
        white-space: normal;
        overflow-wrap: anywhere;
    }
}

@media (max-width: 600px) {

    .dossier-sources-footer,
    .dossier-sources-footer__text {
        font-size: 14px;
        line-height: 1.5 !important;
    }

    .dossier-sources-footer__narrative {
        font-size: 13px;
        margin-top: 10px;
    }

    .pillars__chip {
        margin: 0 !important;
    }

    .pillars__chip-icon{
        font-size: 14px;
        width: 30px;
        height: 30px;
    }
    
    table.profile-fields h2.header-snapshot__company-name {
        font-size: 17px !important;
    }

    .valuation-chart__diamond {
        width: 8px;
        height: 8px;
    }

    .valuation-chart__overlay {
        left: 45px;
        right: 50px;
    }

    .header-snapshot__metric-label {
        margin-bottom: 0.5rem;
    }

    .header-snapshot__gauge-legend,
    .header-snapshot__dp-pill {
        font-size: 12px;
    }

    .pillars__chip-name,
    .header-snapshot__badge-value i {
        font-size: 15px;
    }

    .pillars__note {
        font-size: 13px;
        line-height: 1.4;
    }

    .dossier-sources-footer>i,
    .pillars__chip-level {
        font-size: 13px;
    }

    .dossier-chat-entry,
    .header-snapshot__badge-value,
    .header-snapshot__badge-label,
    .header-snapshot__confidence-label,
    .header-snapshot__metric-asof {
        font-size: 13px;
    }

    .header-snapshot__metric-value {
        font-size: 17px !important;
        margin-bottom: 0.5rem;
    }

    .header-snapshot__badge-label {
        display: inline;
        margin-right: 15px;
    }

    .header-snapshot__disclaimer {
        line-height: 1.3;
        font-size: 13px;
        padding: 1rem 1rem;
        margin-top: 1rem;
        border-radius: 6px;
    }

    .header-snapshot__gauge-scale,
    .header-snapshot__verdict-tag {
        font-size: 13px !important;
    }

    .header-snapshot__id-label {
        font-size: 12px !important;
        line-height: 1.3;
    }

    .header-snapshot__verdict-sentence {
        font-size: 14px !important;
    }

    .header-snapshot__id-value {
        font-size: 15px;
    }

    .header-snapshot__identity,
    .header-snapshot__valuation {
        padding: 1rem;
    }

    .header-snapshot__market,
    .header-snapshot__id-rows,
    .header-snapshot__badges-row {
        grid-template-columns: 1fr;
    }

    .header-snapshot__id-row {
        border-right: none;
        border-bottom: 1px solid var(--dossier-border);
        padding: 1rem 0.25rem;
    }

    .header-snapshot__id-row:last-child {
        border-bottom: none;
    }

    .header-snapshot__confidence {
        margin: 1rem 0;
        text-align: center;
        max-width: 100%;
    }

    .header-snapshot__grid {
        padding: var(--dossier-spacing-sm);
    }

    .header-snapshot__val-cols {
        grid-template-columns: 1fr;
        gap: 1.7rem;
    }

    .header-snapshot__market {
        grid-template-columns: 1fr;
        padding-top: 2.5rem;
    }

    .header-snapshot__badges-row {
        grid-template-columns: 1fr;
        gap: 1.25rem;
        padding: 1.5rem 0.25rem;
    }
}

.header-snapshot__verdict {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.5rem 0.65rem;
    margin-top: 3rem;
    border-top: 1px solid #eee;
    padding-top: 2.5rem;
}

.header-snapshot__verdict-chip {
    font-size: 13px;
    font-weight: 700;
    padding: 4px 12px;
    border-radius: 999px;
    white-space: nowrap;
    background: #F1EFE8;
    color: #444441;
}

.header-snapshot__verdict-chip--undervalued {
    background: #EAF3DE;
    color: #27500A;
}

.header-snapshot__verdict-chip--overvalued {
    background: #FCEBEB;
    color: #791F1F;
}

.header-snapshot__verdict-chip--neutral {
    background: #F1EFE8;
    color: #444441;
}

.header-snapshot__verdict-sentence {
    font-size: 16px;
    color: var(--dossier-heading);
    font-weight: 500;
}

.header-snapshot__verdict-sentence b {
    font-weight: 800;
}

.header-snapshot__verdict-num--pos {
    color: #3B6D11;
}

.header-snapshot__verdict-num--neg {
    color: #A32D2D;
}

.header-snapshot__verdict-tag {
    font-size: 15px;
    color: var(--dossier-text-muted);
}

.header-snapshot__val-col:first-of-type {
    border-right: 1px solid #e6eaf0;
}

/* Verdict gauge: red (IV below price / overvalued) on the LEFT, green (IV
   above price / undervalued) on the RIGHT, with a neutral near-fair band. */
.header-snapshot__gauge-bar--verdict {
    /* background: linear-gradient(to right,
        #FCEBEB 0%, #FCEBEB 30%,
        #F1EFE8 35%, #F1EFE8 65%,
        #EAF3DE 70%, #EAF3DE 100%); */
}

.header-snapshot__gauge-zone {
    position: absolute;
    top: -2px;
    bottom: -2px;
    width: 1px;
    background: #b4b2a9;
}

.header-snapshot__gauge-marker--undervalued {
    border-top-color: #3B6D11;
}

.header-snapshot__gauge-marker--overvalued {
    border-top-color: #A32D2D;
}

.header-snapshot__gauge-marker--neutral {
    border-top-color: var(--dossier-heading);
}

.header-snapshot__gauge-pin {
    position: absolute;
    top: 32%;
    transform: translateY(-50%);
    font-size: 32px;
    line-height: 1;
    filter: drop-shadow(0 1px 1px rgba(0, 0, 0, 0.2));
}

.header-snapshot__gauge-pin--right {
    right: -5px;
}

.header-snapshot__gauge-pin--left {
    font-size: 35px;
    left: -10px;
    top: 9%;
}

.header-snapshot__gauge-pin--undervalued {
    color: #27500b;
}

.header-snapshot__gauge-pin--overvalued {
    color: #781f1f;
}

.header-snapshot__gauge-pin--neutral {
    color: var(--dossier-heading);
}

.header-snapshot__gauge-scale--verdict span:first-child {
    text-align: left;
}

.header-snapshot__gauge-scale--verdict span:nth-child(2) {
    text-align: center;
}

.header-snapshot__gauge-scale--verdict span:last-child {
    text-align: right;
}

.header-snapshot__gauge-note {
    margin-top: 10px;
    font-size: 13px;
    color: var(--dossier-text-muted);
}

/* Research-as-of line on qualitative sections (SUPPLEMENT 5 Â§4). */
.qual__research-asof {
    display: block;
    text-align: right;
    padding: 0.4rem 0.85rem;
    border-radius: 999px;
    color: var(--dossier-text-muted);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.2;
    cursor: default;
    margin-bottom: 2rem;
}

/* Research-as-of line on the Monitoring Framework (SUPPLEMENT 8 rev c item 7). */
.outlook__research-asof {
    display: block;
    text-align: right;
    margin: 0.6rem 0 0;
    color: var(--dossier-text-muted);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.2;
}


/* Dating additions (Â§5): TTM caption on KPI cards + scenarios as-of label. */
.financial-snapshot__kpi-asof {
    display: block;
    margin-top: 0.35rem;
    font-size: 13px;
    font-weight: 500;
    color: var(--dossier-text-muted);
}

.thesis__scenarios-head {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.6rem;
    flex-wrap: wrap;
    margin: 0rem 0 0.5rem;
}

.thesis__scenarios-title {
    font-size: 14px;
    font-weight: 700;
    color: var(--dossier-heading);
}

.thesis__scenarios-sub {
    font-weight: normal;
    color: var(--dossier-text-muted);
}

.thesis__scenarios-anchor {
    font-size: 15px;
    color: var(--dossier-text-muted);
    line-height: 1.5;
}

.thesis__scenarios-asof {
    display: inline-flex;
    align-items: center;
    gap: 0.5rem;
    padding: 0.4rem 0.85rem;
    border-radius: 999px;
    color: var(--dossier-text-muted);
    font-size: 14px;
    font-weight: 600;
    line-height: 1.2;
    cursor: default;
}

.thesis__scenarios-asof i {
    font-size: 13px;
    color: var(--dossier-text-muted);
}

.thesis__scenarios-asof strong {
    font-weight: 700;
    color: var(--dossier-heading);
}

/* Investment Thesis IV card verdict (SUPPLEMENT 5): "Intrinsic value is X% above/
   below the market price" â€” dated by the price date; never upside/downside. */
.thesis__lane-verdict {
    margin: 0.6rem 0 0;
    font-size: 14px;
    color: var(--dossier-heading);
    line-height: 1.4;
}

.thesis__lane-verdict b {
    font-weight: 800;
}

.thesis__lane-verdict-num--pos {
    color: #3B6D11;
}

.thesis__lane-verdict-num--neg {
    color: #A32D2D;
}

.thesis__lane-verdict-tag {
    font-size: 12px;
    font-weight: 500;
    color: var(--dossier-text-muted);
}

/* Data-confidence badge as its own tile on the Valuation summary strip
   (SUPPLEMENT 5 â€” badge stays adjacent). */
.valuation__summary-item--confidence {
    display: flex;
    align-items: center;
}

.valuation__summary-item--confidence .header-snapshot__confidence {
    margin: 0;
}

/* ==========================================================================
   Investment Thesis â€” Supplement 7 stacked layout (IV card, intro, Street card)
   ========================================================================== */
.thesis__vt {
    display: flex;
    flex-direction: column;
    gap: 2rem;
    margin-top: 10px;
    margin-bottom: 3rem;
}

/* Intrinsic-value card */
.thesis__ivcard {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 1rem;
    border: 1px solid var(--dossier-border);
    border-radius: var(--dossier-radius-sm);
    background: #fff;
    padding: 2rem 3rem;
}

.thesis__ivcard-label {
    display: block;
    font-size: 15px;
    color: var(--dossier-text-muted);
    margin-bottom: 0.6rem;
    font-weight: 500;
}

.thesis__ivcard-figure {
    display: flex;
    align-items: baseline;
    gap: 0.6rem;
    flex-wrap: wrap;
}

.thesis__ivcard-value {
    font-size: 26px;
    font-weight: 800;
    color: #17803c;
    line-height: 1.1;
}

.thesis__ivcard-verdict {
    font-size: 14px;
    font-weight: 700;
    color: var(--dossier-heading);
}

.thesis__ivcard-verdict--pos {
    color: #17803c;
    margin-left: 5px;
}

.thesis__ivcard-verdict--neg {
    color: #A32D2D;
}

.thesis__ivcard-dateline {
    font-weight: 500;
    flex: 0 0 auto;
    font-size: 14px;
    color: var(--dossier-text-muted);
    text-align: right;
    line-height: 1.7;
    white-space: nowrap;
}

.thesis__ivcard-note {
    margin: 0.3rem 0 0;
    font-size: 13px;
    color: var(--dossier-text-muted);
}

/* Section intro banner */
.thesis__intro {
    display: flex;
    align-items: flex-start;
    gap: 0.55rem;
    background: var(--dossier-neutral-bg);
    border-radius: var(--dossier-radius-sm);
    padding: 1rem 1.5rem;
    font-size: 14px;
    line-height: 1.5;
    color: var(--dossier-text);
}

.thesis__intro i {
    color: var(--dossier-text-muted);
    margin-top: 4px;
    flex: 0 0 auto;
}

/* Item 7: two bounded boxes (Street view / Our research), each dating itself. */
.thesis__box {
    background: #fff;
    margin-top: 1.25rem;
}

.thesis__scenarios-box{
    border-radius: var(--dossier-radius-sm);
    border: 1px solid var(--dossier-border);
    padding: 1rem 1.5rem;
    margin-bottom: 2.5rem;
}
.thesis__box-head {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 0.4rem 1rem;
    flex-wrap: wrap;
    padding-bottom: 0.75rem;
}
.thesis__box-title {
    font-size: 16px;
    font-weight: 700;
    color: var(--dossier-heading);
}
.thesis__box-sub {
    font-weight: 500;
    color: var(--dossier-text-muted);
}
.thesis__box-asof {
    font-size: 14px;
    font-weight: 500;
    color: var(--dossier-text);
    font-variant-numeric: tabular-nums;
    white-space: nowrap;
}
.thesis__box-disclaimer {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    margin: 1.25rem 0 0;
    padding-top: 1rem;
    border-top: 1px solid var(--dossier-border);
    font-size: 14px;
    line-height: 1.4;
    color: var(--dossier-text-muted);
}
.thesis__box-disclaimer i {
    color: var(--dossier-primary);
    flex: 0 0 auto;
}
/* Street box: the streetcard is the box body; it carries no outer spacing. */
.thesis__box--street .thesis__streetcard {
    padding: 0;
}

/* Street view card */
.thesis__streetcard {
    /* border: 1px solid var(--dossier-border); */
    /* border-radius: var(--dossier-radius-sm); */
    /* background: #fff; */
    padding: 0 0rem 0;
}

.thesis__streetcard-head {
    display: flex;
    justify-content: space-between;
    align-items: baseline;
    gap: 0.5rem;
    flex-wrap: wrap;
    margin-bottom: 5px;
}

.thesis__streetcard-label {
    font-size: 16px;
    font-weight: 700;
    color: var(--dossier-heading);
}

.thesis__streetcard-sub {
    font-weight: 500;
    color: var(--dossier-text-muted);
}

.thesis__streetcard-meta {
    font-size: 14px;
    font-weight: 500;
}

/* Street targets: three columns with thin dividers, label above value. */
.thesis__streetcard .thesis__consensus {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
    text-align: center;
}

.thesis__streetcard .thesis__consensus-item {
    display: flex;
    flex-direction: column;
    gap: 0;
    background: transparent;
}

.thesis__streetcard .thesis__consensus-label {
    font-size: 14px;
    text-transform: uppercase;
    letter-spacing: 0.03em;
    color: var(--dossier-text-muted);
    font-weight: 500;
}

.thesis__consensus-sublabel {
    text-transform: none;
    letter-spacing: normal;
}

.thesis__streetcard .thesis__consensus-value {
    font-size: 22px;
    font-weight: 700;
    color: var(--dossier-heading);
}

.thesis__streetcard .thesis__consensus-item--mean .thesis__consensus-value {
    color: var(--dossier-primary);
}

/* Confidence reason sub-text (item 7) */
.header-snapshot__confidence-reason {
    display: block;
    width: 100%;
    margin-top: 0.25rem;
    font-size: 12px;
    color: var(--dossier-text-muted);
    line-height: 1.4;
}

@media (max-width: 600px) {
    .thesis__ivcard {
        flex-direction: column;
    }

    .thesis__ivcard-dateline {
        text-align: left;
        font-size: 13px;
        line-height: 1.4;
    }
}

/* Compact scenario cards (photo 2): label, "$value prob%", one-line caption. */
.thesis__scenario-title {
    margin-bottom: 0.1rem;
}

.thesis__scenario-line {
    display: flex;
    align-items: baseline;
    gap: 0.5rem;
}

.thesis__scenario-value {
    font-size: 22px;
    font-weight: 800;
    line-height: 1.1;
}

.thesis__scenario-prob {
    font-size: 17px;
    font-weight: 600;
    color: var(--dossier-text-muted);
    margin-left: 5px;
}

.thesis__scenario-caption {
    font-size: 13px;
    color: var(--dossier-text-muted);
    line-height: 1.4;
}

.header-snapshot__gauge,
.header-snapshot__gauge-bar,
.header-snapshot__gauge-bar--verdict {
    overflow: visible;
}

.valuation-chart__track {
    position: relative;
}

.valuation-chart__peer {
    position: absolute;
    top: 50%;
    width: 10px;
    height: 10px;
    transform: translate(-50%, -50%) rotate(45deg);
    background: #fff;
    border: 1.5px solid var(--dossier-primary);
    z-index: 3;
}

.valuation-chart__legend-peer {
    display: inline-block;
    width: 10px;
    height: 10px;
    transform: rotate(45deg);
    background: #fff;
    border: 1.5px solid var(--dossier-primary);
    vertical-align: middle;
    margin-right: 3px;
}

.valuation-chart__value-peer {
    font-size: 13px;
    font-weight: 500;
    color: var(--dossier-text-muted);
    text-align: right;
    white-space: normal;
}

@media (max-width: 600px) {
    .valuation__panel {
        padding: 1rem 0;
        border: none;
    }

    .valuation__summary-value {
        font-size: 17px !important;
    }

    .valuation-chart__scale {
        font-size: 10px;
        margin-bottom: 1.8rem;
        padding: 0 45px;
    }

    .valuation-chart__scale span {
        white-space: nowrap;
    }

    .valuation-chart__label {
        font-size: 11px;
        padding-right: 0.4rem;
    }

    .valuation-chart__value {
        font-size: 12px;
        padding-left: 0.4rem;
    }

    .valuation-chart__value-peer {
        font-size: 10px;
    }

    .valuation-chart__row {
        min-height: 50px;
        grid-template-columns: 45px 1fr 50px;
    }

    .valuation-chart__legend {
        gap: 0.5rem 1.25rem;
        font-size: 12px;
        padding-top: 1.25rem;
    }
}

@media (max-width: 450px) {
    .sandbox__compare-value {
        font-size: 18px !important;
    }

    .dossier-detail__panel-title{
        font-size: 15px !important;
    }
    
    .valuation__summary-label {
        margin-bottom: 5px;
    }

    .valuation__summary-asof {
        margin-top: 5px;
    }

    .dossier-detail__hint, .dossier-detail__note,
    .sandbox__footnote,
    .valuation__peer-median-constituents,
    .sandbox__btn,
    .valuation__assumptions-table thead th {
        font-size: 13px !important;
    }

    .valuation__assumptions-table tbody td.valuation__assumptions-value,
    .valuation__assumptions-table tbody td {
        font-size: 14px !important;
    }

    .valuation__peer-median-table thead th {
        vertical-align: middle;
        font-size: 13px !important;
        padding: 1rem 0.6rem !important;
        line-height: 1.3;
    }

    .valuation__pm-th-note{
        font-size: 11px !important;
    }
    
    .valuation__peer-median-table tbody td {
        font-size: 14px !important;
        padding: 1rem 0.5rem !important;
        line-height: 1.3;
    }

    .valuation__pm-metric {
        font-size: 15px !important;
        padding: 1rem 0.5rem !important;
        vertical-align: top;
    }
    
    .thesis__scenarios-meta {
        font-size: 12px;
    }
}

/* Scenarios final rules v2 */
.thesis__scenarios-meta {
    font-size: 14px;
    text-align: right;
    color: var(--dossier-text-muted);
}

.thesis__scenario-caption--match {
    color: #3B6D11;
    font-weight: 600;
}

.pillars__chip-rankwrap {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 1px;
}

.pillars__chip-ranklabel {
    font-size: 11px;
    color: var(--dossier-text-muted);
    line-height: 1.2;
}


/* ==========================================================================
   Peer comparison tool (v5 Addendum §3.6, user-selected)
   ========================================================================== */
.dossier-compare__search-wrap {
    position: relative;
    margin: 0 0 2rem;
}

.dossier-compare__search-icon {
    position: absolute;
    left: 14px;
    top: 50%;
    transform: translateY(-50%);
    color: #0399dc;
    font-size: 16px;
    pointer-events: none;
}

.dossier-compare__search {
    width: 100%;
    padding: 10px 14px 10px 38px;
    border: 1px solid var(--dossier-border, #e2e8f0);
    border-radius: var(--dossier-radius-sm, 8px);
    font-size: 15px;
    color: var(--dossier-heading);
    background: #fff;
}

.dossier-compare__search:focus {
    outline: none;
    border-color: var(--dossier-primary, #2563eb);
    box-shadow: 0 0 0 3px rgba(37, 99, 235, .12);
}

.dossier-compare__search:disabled {
    background: var(--dossier-neutral-bg, #f1f5f9);
    cursor: not-allowed;
}

.dossier-compare__results {
    position: absolute;
    z-index: 2;
    left: 0;
    right: 0;
    margin: 4px 0 0;
    padding: 4px;
    list-style: none;
    background: #fff;
    border: 1px solid var(--dossier-border, #e2e8f0);
    border-radius: var(--dossier-radius-sm, 8px);
    box-shadow: 0 8px 24px rgba(15, 23, 42, .12);
    max-height: 280px;
    overflow-y: auto;
}

.dossier-compare__result {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.75rem;
    padding: 8px 10px;
    border-radius: 6px;
    cursor: pointer;
}

.dossier-compare__result:hover,
.dossier-compare__result:focus {
    background: var(--dossier-neutral-bg, #f1f5f9);
}

.dossier-compare__result-name {
    font-weight: 500;
    color: var(--dossier-heading);
    font-size: 15px;
}

.dossier-compare__result-ticker {
    font-size: 12px;
    border-radius: 4px;
    padding: 2px 7px;
    font-weight: 700;
    color: var(--dossier-primary, #2563eb);
    letter-spacing: .07em;
    background: linear-gradient(135deg, rgba(0, 102, 204, 0.08) 0%, rgba(0, 163, 224, 0.08) 100%);
}

.dossier-compare__note {
    margin: 0 0 1rem;
    font-size: 14px;
    color: var(--dossier-text-muted);
}

.dossier-compare__note a {
    color: var(--dossier-primary, #2563eb);
    font-weight: 600;
}

.dossier-compare__xscroll {
    overflow-x: scroll;
    overflow-y: hidden;
    margin-bottom: 10px;
    scrollbar-width: thin;
    scrollbar-color: #8a94a6 #eef1f6;
}

.dossier-compare__xscroll[hidden] {
    display: none;
}

.dossier-compare__xscroll-spacer {
    height: 1px;
    background: #eef1f6;
}

.dossier-compare__viewport {
    position: relative;
}

.dossier-compare__nav {
    position: absolute;
    transform: translateY(-50%);
    width: 40px !important;
    height: 40px;
    padding: 0 !important;
    display: flex !important;
    align-items: center;
    justify-content: center;
    background: #fff !important;
    color: #0166cc !important;
    border: 1px solid #e2e8f0 !important;
    border-radius: 50% !important;
    box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
    cursor: pointer !important;
    z-index: 4;
    transition: background .2s, color .2s, transform .2s !important;
    -webkit-appearance: none;
    appearance: none !important;
}

.dossier-compare__nav[hidden] {
    display: none;
}

.dossier-compare__nav:hover,
.dossier-compare__nav:focus {
    background: linear-gradient(135deg, #0066cc 0%, #00a3e0 100%);
    color: #fff;
    transform: translateY(-50%) scale(1.08);
    outline: none;
}
.dossier-compare__nav svg {
    width: 22px;
    height: 22px;
    display: block;
}
.dossier-compare__nav--prev {
    left: 8px;
}
.dossier-compare__nav--next {
    right: 8px;
}

.dossier-compare__scroll {
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: thin;
    scrollbar-color: #8a94a6 #eef1f6;
}

/* Make both bars chunky and visible (WebKit/Blink). */
.dossier-compare__xscroll::-webkit-scrollbar,
.dossier-compare__scroll::-webkit-scrollbar {
    height: 12px;
    -webkit-appearance: none;
}

.dossier-compare__xscroll::-webkit-scrollbar-track,
.dossier-compare__scroll::-webkit-scrollbar-track {
    background: #eef1f6;
    border-radius: 999px;
}

.dossier-compare__xscroll::-webkit-scrollbar-thumb,
.dossier-compare__scroll::-webkit-scrollbar-thumb {
    background: #8a94a6;
    border-radius: 999px;
    border: 2px solid #eef1f6;
}

.dossier-compare__xscroll::-webkit-scrollbar-thumb:hover,
.dossier-compare__scroll::-webkit-scrollbar-thumb:hover {
    background: #6b7688;
}

.dossier-compare__table {
    min-width: 420px;
    border: none !important;
}

.dossier-compare__table td {
    padding: 10px 14px !important;
    white-space: nowrap;
}

.dossier-compare__metric-head,
.dossier-compare__metric {
    text-align: left;
    color: var(--dossier-heading);
    font-weight: 600;
    position: sticky;
    left: 0;
    width: 200px;
    font-size: 14px;
    background: #fff !important;
    z-index: 1;
    vertical-align: middle;
    padding-left: 15px;
}

thead .dossier-compare__head-row th.dossier-compare__col {
    position: relative;
    vertical-align: top;
    white-space: nowrap;
    padding: 0 !important;
    background: #fff;
}

.dossier-compare__col-name {
    display: block;
    font-weight: 600;
    color: var(--dossier-heading);
    font-size: 16px;
    letter-spacing: -0.1px;
    white-space: pre-wrap;
    line-height: 1.35;
}

.dossier-compare__col--target .dossier-compare__col-name {
    color: var(--dossier-primary, #2563eb);
}

.dossier-compare__col-ticker {
    display: block;
    font-size: 11px;
    font-weight: 700;
    padding: 1px 8px;
    border-radius: 6px;
    letter-spacing: .07em;
    color: #0066CC;
    background: linear-gradient(135deg, rgba(0, 102, 204, 0.08) 0%, rgba(0, 163, 224, 0.08) 100%);
}

.dossier-compare__chip {
    display: inline-block;
    margin-top: 4px;
    padding: 0px 8px;
    vertical-align: top;
    font-size: 11px;
    font-weight: 500;
    color: var(--dossier-text-muted);
    background: #ebeff3;
    border-radius: 6px;
    white-space: nowrap;
}

/* Reset the theme's default (blue pill) button styling so the peer-column remove
   control renders as a small, subtle "x". */
.dossier-compare__remove {
    position: absolute;
    top: 0px;
    right: 10px;
    align-items: center;
    justify-content: center;
    width: 10px;
    height: 22px;
    min-width: 0 !important;
    min-height: 0 !important;
    padding: 0 !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 50% !important;
    background: #fff !important;
    background-image: none !important;
    box-shadow: none !important;
    color: var(--dossier-text-muted, #64748b) !important;
    font-size: 22px !important;
    font-weight: 400 !important;
    text-transform: none;
}

.dossier-compare__remove:hover,
.dossier-compare__remove:focus {
    background: #fff !important;
    background-image: none !important;
    color: var(--dossier-danger, #dc2626) !important;
    box-shadow: none !important;
    outline: none;
}

.dossier-compare__table tbody {
    border: 1px solid #e2e8ef;
}

.dossier-compare__grouprow .dossier-compare__group {
    text-align: left;
    font-size: 14px;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .04em;
    color: var(--dossier-text-muted);
    background: var(--dossier-neutral-bg, #f8fafc);
    padding: 10px 15px;
}

.dossier-compare__cell {
    color: var(--dossier-text);
    font-variant-numeric: tabular-nums;
}

.dossier-compare__cell--best {
    background: var(--dossier-success-bg, #ecfdf3);
    color: #15803d;
    font-weight: 700;
}

.dossier-compare__foot {
    margin: 1rem 0 0;
    font-size: 13px;
    color: var(--dossier-text-muted);
    display: flex;
    align-items: baseline;
    gap: 0.4rem;
}

@media (max-width: 600px) {
    .dossier-compare__table {
        font-size: 13px;
    }

    .dossier-compare__table th,
    .dossier-compare__table td {
        padding: 8px 10px;
    }
}


/* ==========================================================================
   Peer comparison — card header + legend + polarity redesign (§3.6)
   ========================================================================== */

.dossier-compare__card {
    position: relative;
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 6px;
    min-width: 235px;
    min-height: 170px;
    padding: 25px 15px 10px;
    border: 1px solid var(--dossier-border, #e2e8f0);
    border-radius: 6px;
    background: #fff;
    text-align: left;
    margin-left: 5px;
    margin-bottom: 5px;
}

.dossier-compare__col--target .dossier-compare__card {
    border-color: #e2e8ef;
    background: #f1f5f9;
}

.dossier-compare__target-badge {
    display: inline-block;
    margin-bottom: 2px;
    padding: 2px 8px;
    font-size: 9px;
    font-weight: 700;
    letter-spacing: .05em;
    text-transform: uppercase;
    color: #fff;
    background: var(--dossier-primary, #2563eb);
    border-radius: 3px;
    line-height: 1.5;
}

.dossier-compare__col .dossier-compare__col-name,
.dossier-compare__col .dossier-compare__col-ticker {
    text-align: left;
}

/* Legend */
.dossier-compare__legend {
    display: flex;
    flex-wrap: wrap;
    justify-content: right;
    align-items: center;
    gap: 6px 20px;
    margin: 2px 5px 5px;
    font-size: 12.5px;
    color: var(--dossier-text-muted);
}

.dossier-compare__legend-item {
    display: inline-flex;
    align-items: center;
    gap: 7px;
}

.dossier-compare__legend-swatch {
    width: 15px;
    height: 15px;
    border-radius: 3px;
    background: var(--dossier-success-bg, #ecfdf3);
    border: 1px solid #b7ebc6;
}

.dossier-compare__legend-dash {
    font-weight: 700;
    color: var(--dossier-text-muted);
}

/* Polarity arrows */
.dossier-compare__pol {
    font-size: 11px;
}

.dossier-compare__pol--higher {
    color: #15803d;
}

.dossier-compare__pol--lower {
    color: #dc2626;
}

/* Group header icon */
.dossier-compare__group-icon {
    margin-right: 8px;
    color: var(--dossier-text-muted);
    font-size: 0.95em;
}

/* Metric label hugs the values; arrow to its right. Values left-aligned. */
.dossier-compare__metric {
    white-space: nowrap;
}

.dossier-compare__metric .dossier-compare__pol {
    margin-left: 7px;
}

.dossier-compare__cell {
    text-align: left;
}

.dossier-compare__swipe {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    margin: 15px 0 10px;
    font-size: 12.5px;
    letter-spacing: .01em;
    color: #999ca0;
}

.dossier-compare__swipe[hidden] {
    display: none;
}

.dossier-compare__swipe-arrow {
    color: var(--dossier-text-muted);
    opacity: .55;
    font-size: 16px;
    line-height: 1;
}