/* BÉT Radar 0.5.3 — application presentation layer.
 * System fonts only. Data, query semantics and storage are unchanged.
 * Keep hidden states explicit; responsive rules must never reveal hidden UI.
 */
:root {
    --green: #14634b;
    --green-dark: #123c32;
    --green-deep: #102e27;
    --gold: #c49a53;
    --gold-dark: #78531b;
    --ink: #20342d;
    --muted: #53685f;
    --line: #dce5df;
    --bg: #f3f5f1;
    --red: #a33332;
    --radius: 14px;
    --shadow: 0 3px 12px rgb(18 60 50 / 3%);
    --soft-green: #e9f2ec;
    --soft-gold: #fbf4e7;
    --focus: #246da3;
}

html { scroll-padding-top: 24px; }
body { font-size: 15px; line-height: 1.65; -webkit-font-smoothing: antialiased; }
[hidden] { display: none !important; }
.container { width: min(1320px, calc(100% - 72px)); }
h1 { font-size: clamp(28px, 3vw, 38px); line-height: 1.18; letter-spacing: -1.2px; font-weight: 720; }
h2 { font-size: 21px; letter-spacing: -.35px; }
h3 { font-size: 17px; }
p, dd, td, th, label, summary { overflow-wrap: anywhere; }
button, input, select { line-height: 1.4; }
a, button, input, select, summary { touch-action: manipulation; }
:where(a, button, input, select, summary, [tabindex]):focus-visible {
    outline: 3px solid var(--focus); outline-offset: 4px;
}
button:disabled { opacity: .5; }
::selection { background: #cfe4d8; color: #123c32; }
.sr-only, .mobile-cell-label { /* mobile labels are added visually only on narrow tables */ }
.mobile-cell-label { display: none; }
.muted { color: var(--muted); font-size: 13px; }
.eyebrow { color: var(--green); font-size: 11px; letter-spacing: .12em; margin-bottom: 10px; line-height: 1.6; }
.panel { box-shadow: var(--shadow); border-color: var(--line); }

/* Masthead: clear brand, six existing destinations, no oversized hero. */
.utility { background: var(--green-deep); color: #cbded4; font-size: 10px; letter-spacing: .07em; }
.utility-inner { padding-block: 7px; }
.site-header { background: var(--green-dark); border-bottom: 3px solid var(--gold); }
.header-inner { min-height: 86px; gap: 24px; }
.brand, .brand:hover { color: #fff; font-size: 25px; letter-spacing: -.7px; }
.brand small { color: #c4d8cf; font-size: 8px; letter-spacing: 1.3px; margin-top: 3px; }
.brand-mark { background: #e9f2e9; color: var(--green-dark); width: 43px; height: 46px; line-height: 46px; border-radius: 9px 9px 9px 2px; }
.brand-mark span { border-color: var(--green-dark); background: var(--gold); }
.header-inner nav { gap: 3px; align-self: center; }
.header-inner nav > a { height: auto; min-height: 42px; padding: 11px 13px; font-size: 13px; border: 0; border-radius: 8px; color: #dce8e1; }
.header-inner nav > a:hover { background: #254e40; color: #fff; }
.header-inner nav > a[aria-current] { background: #edf4ed; color: var(--green-dark); }
.watch-count { background: #d1e4d7; color: #173f30; font-size: 11px; }
.source-button { color: #edf4ed; border-color: #688b7c; border-radius: 8px; min-height: 42px; padding: 10px 12px; }
.source-button:hover { color: #fff; border-color: #fff; }
.site-header :focus-visible { outline-color: #f2d49e; }
.menu-toggle { display: inline-flex; align-items: center; gap: 9px; padding: 11px 14px; min-height: 44px; background: #204d3e; color: #fff; border: 1px solid #648675; border-radius: 8px; font-size: 14px; font-weight: 600; }
.menu-icon { display: inline-block; width: 16px; height: 12px; border-block: 2px solid currentColor; position: relative; }
.menu-icon::after { content: ''; position: absolute; inset: 4px 0 auto; border-top: 2px solid currentColor; }
.demo-banner { background: #faf1dc; color: #644b1d; border-color: #eadcbf; font-size: 12px; padding: 9px 0; line-height: 1.65; }
.demo-banner strong { font-size: 10px; }
.page-intro { padding: 30px 0 24px; align-items: center; }
.intro-copy { font-size: 15px; max-width: 820px; margin-top: 10px; }
.source-pill { border: 0; border-left: 2px solid var(--gold); border-radius: 0; background: transparent; padding: 4px 0 4px 17px; font-size: 13px; }
.source-pill small { padding-left: 0; font-size: 12px; margin-top: 3px; }

/* Overview numbers: typographic emphasis, not four identical loud panels. */
.stats { gap: 14px; margin-bottom: 22px; }
.stat { padding: 19px 22px; border-radius: var(--radius); min-height: 105px; }
.stat strong { font-size: 32px; font-weight: 700; letter-spacing: -.8px; }
.stat > span:last-child { display: block; font-size: 13px; line-height: 1.45; margin-top: 5px; }
.stat-line { width: 22px; top: 25px; right: 21px; background: var(--gold); }
.stat:first-child { background: var(--green-dark); color: #fff; border-color: var(--green-dark); }
.stat:first-child > span:last-child { color: #d3e3d9; }
.stat:first-child .stat-line { background: var(--gold); }

/* Forms and saved views. Native controls retain their keyboard behavior. */
.filter-panel { padding: 21px 23px; margin-bottom: 20px; }
.feed-presets { gap: 8px; margin-bottom: 15px; flex-wrap: wrap; }
.feed-presets a { font-size: 12px; font-weight: 600; padding: 9px 14px; min-height: 40px; border-radius: 22px; border-color: #cbd8cf; background: #fff; }
.feed-presets a:hover { border-color: var(--green); background: var(--soft-green); }
.feed-presets a[aria-current] { color: #fff; background: var(--green); border-color: var(--green); }
.filter-panel label { font-size: 12px; color: #425c50; gap: 7px; }
.filter-panel input, .filter-panel select { height: 44px; border-color: #91a799; border-radius: 8px; font-size: 14px; padding: 10px 12px; }
.filter-panel input[type=search] { font-size: 15px; padding-left: 15px; }
.filter-panel input::placeholder { color: #63796d; opacity: 1; }
.button { background: var(--green); border-radius: 8px; min-height: 44px; font-size: 13px; font-weight: 650; padding: 12px 18px; gap: 15px; }
.button:hover { background: var(--green-dark); }
.button-light { background: var(--soft-green); color: var(--green-dark); }
.button-light:hover { background: #d8eade; color: var(--green-dark); }
.filter-top { margin-bottom: 12px; gap: 14px; }
.advanced-filters > summary { padding-block: 8px; min-height: 40px; font-size: 13px; color: var(--green-dark); }
.workspace-filter-grid { gap: 14px; padding-top: 12px; }
.multi-picker { border-color: #91a799; border-radius: 8px; }
.multi-picker > summary { font-size: 13px; min-height: 44px; padding: 11px 12px; }
.multi-picker summary b { color: var(--green-dark); }
.multi-picker fieldset { padding: 12px; }
.multi-picker legend, .multi-picker small, .filter-help { font-size: 12px; }
.filter-panel .choice-list label { font-size: 13px; min-height: 36px; gap: 10px; }
.filter-panel .choice-list input { height: 18px; width: 18px; }
.filter-bottom { gap: 20px; margin-top: 18px; }
.filter-bottom select { min-height: 38px; font-size: 13px; }
.reset-link { font-size: 13px; }
.save-view { border-color: #b2c3b7; border-radius: 7px; padding: 9px 12px; font-size: 12px; min-height: 38px; }
.save-view:hover { background: var(--soft-green); border-color: #6e9480; }
.active-filters { gap: 8px; margin-top: 12px; font-size: 12px; }
.filter-chip { background: #ebf2ed; border-color: #c6d8cc; border-radius: 6px; min-height: 34px; padding: 6px 11px; font-size: 12px; }
.flows-section { padding-top: 6px; margin-top: 12px; }
.flows-summary { font-size: 13px; color: var(--green-dark); font-weight: 650; cursor: pointer; padding: 10px 0; min-height: 42px; }
.flows-summary > span { font-weight: 400; color: var(--muted); margin-left: 10px; font-size: 12px; }
.flow-save-row { margin-top: 13px; gap: 9px; }
.flow-save-row > button { min-height: 44px; }
.saved-flow { border-color: #b2c3b7; border-radius: 8px; background: #f6faf6; }
.saved-flow a { font-size: 13px; padding: 10px 12px; }
.saved-flow button { font-size: 12px; min-height: 40px; min-width: 36px; }
.flows-section > small { display: block; padding: 0 0 10px; }
.facet-overview { margin: 0 0 20px; font-size: 13px; }
.facet-overview summary { min-height: 38px; }
.facet-links a { min-height: 36px; border-radius: 7px; }

/* News cards: readable hierarchy and a restrained secondary quote column. */
.content-grid { grid-template-columns: minmax(0, 1fr) 300px; gap: 24px; }
.section-heading { margin-bottom: 14px; }
.section-heading h2 { font-size: 20px; }
.export-note { align-items: flex-start; padding-bottom: 12px; border-bottom: 1px solid var(--line); gap: 12px; }
.export-note small { font-size: 11px; line-height: 1.65; }
.text-link { font-size: 13px; color: var(--green); }
a.text-link:hover, .side-link:hover { text-decoration: underline; text-underline-offset: 4px; }
.feed-tools { gap: 12px; margin-bottom: 18px; font-size: 12px; }
.feed-tools label { min-height: 36px; }
.density-switch { border-radius: 8px; background: #fff; padding: 3px; }
.density-switch button { font-size: 12px; min-height: 34px; padding: 6px 12px; border-radius: 5px; }
.feed-day { margin: 20px 0 12px; font-size: 13px; color: var(--green-dark); }
.feed-day small { font-size: 11px; color: var(--muted); }
.news-card { margin-bottom: 14px; border-radius: 12px; transition: border-color .15s ease, box-shadow .15s ease; }
.news-card:hover { border-color: #b3c9ba; box-shadow: 0 4px 14px rgb(18 60 50 / 5%); }
.news-content { padding: 20px 22px 0; }
.news-meta { gap: 8px; font-size: 12px; margin-bottom: 13px; line-height: 1.55; }
.ticker { color: var(--green-dark); background: var(--soft-green); font-size: 11px; font-weight: 750; border-radius: 5px; padding: 4px 8px; letter-spacing: .025em; }
.category { color: var(--muted); font-size: 12px; }
.news-meta time { color: var(--muted); font-size: 11px; }
.sample-tag, .routine-tag, .version-tag, .quality-tag { font-size: 9px; padding: 3px 6px; line-height: 1.5; border-radius: 4px; letter-spacing: .01em; }
.sample-tag, .quality-tag { background: #fbf3df; color: #78531b; border-color: #e2cb9b; }
.version-tag { color: #245641; background: #e8f2eb; }
.news-title h3, .reader-open .news-title h3 { font-size: 18px; font-weight: 650; line-height: 1.45; letter-spacing: -.3px; }
.news-title h3 a:hover { color: var(--green); }
.issuer-name { font-size: 12px; margin-top: 7px; }
.score { background: #e9f3ec; width: 62px; padding: 8px 5px; border-radius: 9px; }
.score strong { font-size: 25px; letter-spacing: -.7px; }
.score small { font-size: 10px; }
.score > span { font-size: 10px; margin-top: 5px; }
.score.medium { background: #fbf3e4; color: #79531b; }
.score.low { background: #eef1ed; color: #53655c; }
.news-actions { gap: 8px 14px; margin: 17px 0 10px; }
.preview-button { padding: 9px 12px; font-size: 12px; min-height: 38px; border: 1px solid #c5d9cb; border-radius: 7px; }
.preview-button:hover { border-color: var(--green); }
.read-button { color: #4d6658; font-size: 11px; min-height: 36px; padding: 6px; }
.watch-button { width: 38px; height: 38px; line-height: 34px; font-size: 23px; border-radius: 8px; color: #607868; }
.watch-button.is-saved { background: #f8eed6; color: #80580d; }
.rule-details { font-size: 12px; border-color: var(--line); }
.rule-details summary { font-size: 12px; min-height: 42px; padding-block: 11px; color: #536b5c; }
.rule-details small { font-size: 11px; line-height: 1.7; }
.rule-details p { gap: 12px; }
.card-quote { width: 173px; padding: 23px 17px; background: #f7f9f5; }
.quote-label { font-size: 9px; color: #5b7063; letter-spacing: .05em; }
.price { font-size: 21px; font-variant-numeric: tabular-nums lining-nums; }
.price small { font-size: 11px; }
.change { font-size: 12px; padding: 4px 7px; background: #e3f0e6; color: #19613f; }
.quote-caption { color: #556d5e; font-size: 11px; line-height: 1.65; }
.quote-context { font-size: 10px; color: #586d60; padding-top: 12px; }
.missing { font-size: 12px; color: #58695f; }
.side-panel { padding: 22px; border-radius: 12px; }
.side-panel .section-heading { flex-wrap: wrap; gap: 5px; }
.side-panel .section-heading h2 { font-size: 17px; }
.mini-label { font-size: 9px; color: #586f60; background: transparent; padding: 0; }
.side-intro { font-size: 12px; line-height: 1.7; }
.side-quote { padding-block: 15px; }
.side-quote a { font-size: 12px; }
.side-quote .price { font-size: 17px; }
.side-quote > small { font-size: 10px; }
.side-link { font-size: 12px; padding-top: 16px; }
.priority-note { background: var(--green-dark); color: #fff; border-radius: 12px; padding: 24px; }
.priority-note h3 { font-size: 23px; line-height: 1.35; }
.priority-note .eyebrow { color: #ebc789; }
.priority-note p { color: #d5e3da; font-size: 13px; }
.priority-note a { color: #f0d19a; font-size: 12px; }
.import-status h3 { font-size: 15px; }
.import-status p, .import-status a { font-size: 12px; line-height: 1.75; }
.news-card.is-read { opacity: 1; background: #f6f8f4; }
.news-card.is-read .news-title h3 { color: #53665a; }
.pagination { padding: 18px 0; gap: 15px; }
.pagination a { font-size: 13px; min-height: 42px; padding: 9px 14px; border-radius: 8px; }
.pagination span, .pagination strong { font-size: 13px; }

/* Tables: aligned financial numbers, roomy but bounded rows. */
th { background: #edf2eb; font-size: 11px; color: #425d4c; letter-spacing: .045em; }
td { font-size: 14px; }
td, th { padding: 17px 18px; vertical-align: middle; }
td small { color: var(--muted); font-size: 12px; }
tbody tr:hover { background: #f8faf5; }
.table-wrap { border-radius: 12px; border-color: var(--line); }
.market-filters { gap: 14px; }
.market-filters label { font-size: 12px; }
.market-note { font-size: 13px; line-height: 1.75; background: #edf2eb; border-color: #d4dfd4; }
.market-table { font-variant-numeric: tabular-nums; }
.market-table .quote-caption { font-size: 11px; }
.market-table .price { font-size: 20px; }
.issuer-meta { font-size: 13px; }

/* Side-by-side reading stays a workspace; never a modal. */
.content-grid.reader-open { grid-template-columns: minmax(0, 1fr) minmax(380px, .9fr); }
.reader-panel { border-top: 3px solid var(--gold); padding: 25px; border-radius: 12px; box-shadow: 0 8px 26px rgb(18 60 50 / 7%); scrollbar-gutter: stable; }
.reader-toolbar { padding-bottom: 16px; border-bottom: 1px solid var(--line); margin-bottom: 20px; }
.reader-toolbar .eyebrow { font-size: 11px; }
.reader-toolbar button { min-width: 38px; min-height: 38px; }
.reader-panel h2 { font-size: 25px; line-height: 1.35; letter-spacing: -.6px; }
.reader-category { font-size: 12px; }
.reader-facts > div { font-size: 12px; padding: 11px 0; }
.reader-notice { font-size: 13px; padding: 16px; background: #f2f5ef; border-color: var(--gold); border-radius: 0 8px 8px 0; }
.reader-panel h3 { font-size: 16px; }
.reader-excerpt { font-size: 14px; }
.reader-bottom { gap: 16px; flex-wrap: wrap; }
.reader-bottom small, .reader-help { font-size: 11px; }
.reader-open .news-content { padding-inline: 20px; }
.news-card.is-selected { border-color: var(--green); box-shadow: inset 3px 0 var(--green); }

/* About page: editorial spacing and verified-source cards, no decorative stock photos. */
.about-jump-links { gap: 10px; padding-bottom: 8px; }
.about-jump-links a { font-size: 13px; min-height: 38px; padding: 8px 14px; border-radius: 20px; }
.about-hero { border-radius: 16px; overflow: hidden; }
.about-hero-copy { padding: 38px; }
.about-hero h2 { font-size: clamp(28px, 3vw, 40px); line-height: 1.2; letter-spacing: -1px; }
.about-lead { font-size: 16px; line-height: 1.9; max-width: 660px; }
.about-identity { background: var(--green-dark); color: #fff; }
.about-identity-name { color: #fff; font-size: 22px; }
.about-identity-role, .about-identity-note { color: #d7e5dc; }
.about-monogram { background: #214d3e; border-color: #739b84; color: #f2d49e; }
.about-monogram span { background: var(--gold); }
.strategy-grid { gap: 18px; }
.strategy-card { padding: 26px; }
.strategy-card h3 { font-size: 19px; }
.strategy-card p { font-size: 14px; line-height: 1.85; }
.strategy-number { color: #7d5f24; background: #fbf3e2; font-size: 12px; }
.about-small-note, .about-section-lead { font-size: 13px; line-height: 1.8; color: var(--muted); }
.about-body { gap: 26px; }
.course-grid { gap: 16px; }
.course-card { padding: 24px; border-radius: 12px; }
.course-card h3 { font-size: 18px; line-height: 1.5; }
.course-provider { font-size: 11px; letter-spacing: .07em; color: #556f5e; }
.course-date { font-size: 12px; }
.course-note { font-size: 13px; line-height: 1.8; }
.evidence-label { font-size: 11px; background: #f2f5ef; color: #48604f; border-radius: 5px; }
.course-controls { gap: 12px; flex-wrap: wrap; }
.course-controls button { min-height: 40px; padding: 9px 14px; font-size: 12px; border-radius: 7px; }
.portfolio-panel, .about-business { padding: 25px; }
.portfolio-panel h2, .about-business h2 { font-size: 21px; }
.portfolio-value { font-size: 34px; letter-spacing: -1px; font-variant-numeric: tabular-nums; }
.portfolio-note, .about-business p, .about-purpose p { font-size: 13px; line-height: 1.85; }
.historical-label { font-size: 11px; }
.author-card { padding: 22px; }
.author-card p { font-size: 12px; line-height: 1.8; }
.author-card h3 { font-size: 18px; }

/* Existing detail, help, saved-list and status screens receive the same tokens. */
.disclosure-detail, .detail-sidebar > .panel, .method-panel, .setup, .empty-state { padding: 26px; }
.detail-title { font-size: 28px; line-height: 1.4; }
.detail-facts, .detail-facts dt, .detail-facts dd { font-size: 13px; }
.detail-breadcrumb, .detail-lead, .detail-note, .version-card, .version-card small { font-size: 13px; }
.detail-actions { gap: 14px; }
.version-card summary { min-height: 44px; padding-block: 12px; }
.detail-grid { gap: 24px; }
.import-card { padding: 24px; }
.import-counts dt, .import-counts dd, .import-card small { font-size: 12px; }
.watch-tools { padding: 22px; }
.watch-tools button, .watch-chip { min-height: 38px; font-size: 12px; }
.site-footer { margin-top: 52px; background: #e9eee6; border-top: 1px solid #d3dfd3; padding: 30px 0; }
.footer-inner { gap: 60px; }
.site-footer strong { color: var(--green-dark); font-size: 15px; letter-spacing: .05em; }
.site-footer p { font-size: 12px; color: #506650; line-height: 1.85; }
.site-footer a { font-size: 12px; text-underline-offset: 4px; }
.toast { background: var(--green-dark); color: #fff; border: 1px solid #5e8470; border-radius: 10px; font-size: 14px; padding: 15px 20px; }
.setup pre { white-space: pre-wrap; overflow-wrap: anywhere; font-size: 13px; }
.skip-link { background: #fff; color: var(--green-dark); }

/* Dividend archive: data first, source states and uncertainty always visible. */
.div-alert { padding: 16px 20px; border: 1px solid #e6d5b5; border-left: 3px solid #b28c43; background: #fcf7ea; border-radius: 10px; font-size: 13px; line-height: 1.7; }
.div-alert > strong { font-size: 13px; color: #624b24; }
.div-alert p { margin-top: 5px; }
.div-alert a { color: #624b24; text-decoration: underline; text-underline-offset: 3px; font-weight: 600; }
.div-kpis { gap: 14px; margin-top: 18px; margin-bottom: 10px; }
.div-kpis > div { padding: 18px 22px; border-color: var(--line); border-radius: 12px; }
.div-kpis strong { font-size: 32px; line-height: 1.3; letter-spacing: -.8px; font-variant-numeric: tabular-nums; }
.div-kpis span { display: block; margin-top: 5px; font-size: 13px; color: var(--muted); }
.div-kpis > div:first-child { background: var(--green-dark); border-color: var(--green-dark); }
.div-kpis > div:first-child strong { color: #fff; }
.div-kpis > div:first-child span { color: #d3e3d9; }
.div-small { font-size: 12px; line-height: 1.8; }
.div-filter { padding: 23px; border-radius: 12px; margin-block: 22px; }
.div-filter h2 { font-size: 19px; margin-bottom: 18px; }
.div-filter-grid { grid-template-columns: 1.3fr .65fr 1.4fr 1.5fr .7fr; gap: 12px; }
.div-filter label { font-size: 12px; color: #425c50; }
.div-filter select { min-height: 44px; border-color: #91a799; font-size: 13px; border-radius: 8px; padding: 10px; }
.div-actions { gap: 12px 18px; padding-top: 18px; border-top: 1px solid var(--line); margin-top: 18px; }
.div-actions button { min-height: 44px; font-size: 13px; font-weight: 600; border-radius: 8px; background: var(--green); padding: 11px 24px; }
.div-actions button:hover { background: var(--green-dark); }
.div-actions a { min-height: 38px; display: inline-flex; align-items: center; font-size: 12px; font-weight: 600; color: var(--green); }
.div-actions a:nth-of-type(2) { margin-left: auto; border: 1px solid #b5c7b8; padding: 7px 13px; border-radius: 8px; background: #f7faf5; }
.div-actions a:hover { text-decoration: underline; text-underline-offset: 3px; }
.div-result-title { margin: 22px 0 12px; gap: 12px; }
.div-result-title h2 { font-size: 20px; }
.div-result-title span { font-size: 12px; }
.div-table-wrap { border-color: #d2dfd2; border-radius: 12px; }
.div-table th { background: #e7eee4; color: #36523d; font-size: 11px; letter-spacing: .025em; padding: 15px 18px; }
.div-table td { padding: 18px; border-color: #e1e8dd; font-size: 14px; }
.div-table .div-company a { font-weight: 600; line-height: 1.6; }
.div-table .div-company small { letter-spacing: .025em; font-size: 11px; color: #566f5b; }
.dividend-records td.div-amount { text-align: right; font-size: 17px; color: var(--green-dark); letter-spacing: -.25px; }
.dividend-records th:nth-child(3) { text-align: right; }
.div-table small { font-size: 11px; color: #54694f; line-height: 1.65; }
.div-state { font-size: 11px; padding: 5px 8px; border-radius: 5px; background: #edf0eb; color: #485b4a; line-height: 1.5; }
.state-final_notice, .state-issuer_history { background: #e8f2e6; color: #325e35; }
.state-missing, .state-conflict { background: #fcf0de; color: #7c4b13; }
.div-table details { margin-top: 6px; font-size: 12px; }
.div-table summary { padding: 5px 0; min-height: 32px; }
.div-table details p { padding-top: 8px; border-top: 1px solid var(--line); }
.div-method, .div-coverage { padding: 25px; border-radius: 12px; }
.div-method h2, .div-coverage h2 { font-size: 20px; margin-bottom: 18px; }
.div-method h3 { font-size: 15px; }
.div-method-grid { font-size: 13px; gap: 30px; line-height: 1.85; }
.div-coverage > p { font-size: 13px; line-height: 1.8; }
.div-coverage > details { border-top: 1px solid var(--line); margin: 14px 0 0; padding-top: 8px; }
.div-coverage summary { min-height: 42px; font-size: 13px; padding-block: 8px; }
.div-coverage h3 { font-size: 15px; margin-top: 14px; }
.div-coverage details p { font-size: 13px; }

@media (max-width: 1200px) {
    .container { width: calc(100% - 48px); }
    .header-inner { gap: 16px; }
    .header-inner nav { gap: 1px; }
    .header-inner nav > a { padding-inline: 10px; }
    .source-button { display: none; }
    .content-grid { grid-template-columns: minmax(0, 1fr) 270px; gap: 20px; }
    .card-quote { width: 154px; padding-inline: 12px; }
    .div-filter-grid { grid-template-columns: 1.3fr .7fr 1.4fr; }
}
@media (max-width: 1000px) {
    .content-grid, .content-grid.reader-open { display: flex; flex-direction: column; }
    .content-grid > .feed { width: 100%; }
    .reader-panel { position: static; max-height: none; width: 100%; overflow: visible; order: -1; }
    .reader-open .card-quote { display: flex; }
    .sidebar { width: 100%; display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
    .sidebar > * { margin: 0; }
    .sidebar .side-panel:first-child { grid-row: span 2; }
    .reader-open > .sidebar { display: none; }
    .about-hero-copy { padding: 28px; }
    .about-body { display: block; }
    .about-aside { margin-top: 28px; }
    .div-method-grid { grid-template-columns: 1fr; gap: 20px; }
}
@media (max-width: 980px) {
    .header-inner, body[data-view=dividends] .header-inner { flex-wrap: wrap; min-height: 78px; padding-block: 15px; gap: 0; }
    .brand { margin-right: auto; }
    .menu-toggle { margin-left: 15px; }
    .header-inner nav { width: 100%; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 6px; padding-top: 15px; }
    .header-inner nav > a { justify-content: center; min-height: 44px; padding: 10px 6px; font-size: 13px; }
    .utility-inner > span:last-child { display: none; }
    .utility-inner { font-size: 10px; }
    .source-pill { display: none; }
    .page-intro { padding: 25px 0 22px; }
    .stats, .div-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .div-filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
    .container { width: calc(100% - 32px); }
    .brand { font-size: 23px; gap: 9px; }
    .brand small { font-size: 7px; letter-spacing: 1px; }
    .brand-mark { width: 38px; height: 41px; line-height: 41px; font-size: 28px; }
    .menu-toggle { font-size: 13px; padding-inline: 12px; }
    .page-intro { padding-top: 23px; gap: 12px; }
    h1 { font-size: 29px; letter-spacing: -.8px; }
    .intro-copy { font-size: 14px; line-height: 1.75; }
    .demo-banner { font-size: 11px; }
    .stats, .div-kpis { gap: 10px; }
    .stat { padding: 15px 16px; min-height: 104px; }
    .stat strong, .div-kpis strong { font-size: 28px; }
    .stat > span:last-child { font-size: 12px; }
    .stat-line { right: 15px; top: 21px; width: 15px; }
    .feed-presets { gap: 7px; display: flex; }
    .feed-presets a { font-size: 11px; padding: 9px 11px; }
    .filter-panel { padding: 17px; }
    .filter-top { flex-wrap: wrap; }
    .filter-top .search-label { flex-basis: 100%; }
    .filter-top .button { width: 100%; }
    .filter-panel input, .filter-panel input[type=search], .filter-panel select, .div-filter select { font-size: 16px; }
    .workspace-filter-grid { grid-template-columns: 1fr; gap: 13px; }
    .flows-summary > span { display: block; margin: 2px 0 0 15px; font-size: 11px; }
    .flow-save-row > label { flex-basis: 100%; }
    .flow-save-row > button { min-height: 44px; flex: 1 1 calc(50% - 9px); white-space: normal; }
    .saved-flow { width: 100%; }
    .saved-flow a { max-width: none; flex: 1; }
    .filter-bottom { align-items: flex-start; gap: 12px; }
    .filter-bottom .inline-select { flex-wrap: wrap; white-space: normal; }
    .filter-bottom select { max-width: 100%; }
    .section-heading { align-items: flex-start; flex-wrap: wrap; gap: 6px; }
    .section-heading h2 { font-size: 19px; }
    .export-note small { max-width: 100%; font-size: 11px; }
    .feed-tools { align-items: flex-start; gap: 8px; }
    .feed-tools .save-view { min-height: 40px; }
    .news-card { display: block; }
    .news-content, .reader-open .news-content { padding: 17px 16px 0; }
    .news-body { gap: 12px; }
    .news-title h3, .reader-open .news-title h3 { font-size: 17px; line-height: 1.5; }
    .news-meta { gap: 6px 8px; margin-bottom: 12px; }
    .news-meta .category { font-size: 11px; }
    .news-meta time { flex-basis: 100%; font-size: 11px; }
    .score { width: 54px; }
    .score strong { font-size: 23px; }
    .news-actions { gap: 6px 11px; }
    .news-actions .text-link { font-size: 12px; min-height: 40px; display: inline-flex; align-items: center; }
    .news-actions .read-button { font-size: 12px; margin-left: 0; min-height: 40px; }
    .watch-button { margin-left: auto; width: 40px; height: 40px; }
    .news-actions > .muted { font-size: 11px; }
    .rule-details summary { font-size: 12px; min-height: 44px; }
    .card-quote, .reader-open .card-quote { display: flex; width: 100%; border-left: 0; border-top: 1px solid var(--line); padding: 13px 16px; flex-direction: row; flex-wrap: wrap; align-items: center; justify-content: flex-start; text-align: left; gap: 8px 10px; }
    .card-quote .quote-label { flex-basis: 100%; margin: 0; }
    .card-quote .price { font-size: 18px; }
    .card-quote .quote-caption { width: 100%; margin-top: 0; font-size: 10px; }
    .card-quote .quote-caption br { display: none; }
    .card-quote .quote-caption br::after { content: ' · '; }
    .card-quote .quote-context { max-width: none; flex-basis: 100%; padding-top: 0; margin: 0; font-size: 10px; }
    .sidebar { display: flex; flex-direction: column; gap: 16px; }
    .side-panel { padding: 22px; }
    .side-quote .watch-button { margin-left: 8px; }
    .reader-panel { padding: 18px; }
    .reader-toolbar { gap: 6px; }
    .reader-toolbar .eyebrow { font-size: 10px; }
    .reader-toolbar button { min-height: 42px; min-width: 40px; padding: 8px; }
    .reader-panel h2 { font-size: 23px; }
    .reader-facts > div { display: block; font-size: 13px; }
    .reader-facts dd { text-align: left; margin: 4px 0 0; }
    .reader-links .button { width: 100%; }
    .reader-help { font-size: 11px; }
    .about-hero-copy { padding: 24px 21px; }
    .about-hero h2 { font-size: 31px; }
    .about-lead { font-size: 15px; line-height: 1.85; }
    .about-identity { padding: 28px; }
    .about-jump-links a { font-size: 12px; padding: 8px 11px; }
    .about-actions { gap: 16px; flex-wrap: wrap; }
    .strategy-grid, .course-grid { grid-template-columns: 1fr; }
    .course-card { padding: 23px; }
    .course-controls > div { flex-wrap: wrap; }
    .portfolio-value { font-size: 31px; }
    .detail-grid { display: block; }
    .disclosure-detail, .detail-sidebar > .panel, .method-panel, .setup, .empty-state { padding: 21px; }
    .detail-title { font-size: 23px; }
    .detail-facts > div { min-width: 0; }
    .detail-actions .button { white-space: normal; }
    .footer-inner { display: block; }
    .footer-inner > div + div { margin-top: 22px; }
    .site-footer { margin-top: 34px; }
    .div-alert { padding: 14px 16px; font-size: 12px; }
    .div-alert > strong { font-size: 12px; }
    .div-kpis > div { padding: 15px 16px; }
    .div-kpis span { font-size: 12px; }
    .div-small { font-size: 11px; }
    .div-filter { padding: 18px; }
    .div-filter-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 13px 10px; }
    .div-filter-grid > label:nth-child(1), .div-filter-grid > label:nth-child(3), .div-filter-grid > label:nth-child(4) { grid-column: 1 / -1; }
    .div-filter-grid > label:nth-child(2) { grid-column: 1; grid-row: 4; }
    .div-filter-grid > label:nth-child(5) { grid-column: 2; grid-row: 4; }
    .div-filter select { width: 100%; padding-right: 4px; }
    .div-actions { gap: 10px; }
    .div-actions button { flex: 1; }
    .div-actions a:first-of-type { justify-content: center; flex: 1; }
    .div-actions a:nth-of-type(2) { margin-left: 0; }
    .div-actions a { font-size: 12px; min-height: 42px; }
    .div-result-title { display: block; }
    .div-result-title span { margin: 4px 0 0; font-size: 11px; }
    /* Keep semantic table roles; expose each original row as one visual card. */
    .div-table-wrap:has(> .dividend-records) { border: 0; border-radius: 0; background: transparent; overflow: visible; }
    .dividend-records { display: block; min-width: 0; width: 100%; }
    .dividend-records thead { position: absolute; width: 1px; height: 1px; margin: -1px; padding: 0; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; }
    .dividend-records tbody { display: block; }
    .dividend-records tr[data-dividend] { display: grid; grid-template-columns: minmax(0,1fr) minmax(125px,.85fr); grid-template-areas: 'year year' 'company amount' 'payment payment' 'evidence evidence'; gap: 0 14px; border: 1px solid #d2dfd2; background: #fff; border-radius: 12px; margin-bottom: 12px; padding: 16px; }
    .dividend-records tr[data-dividend] > td { display: block; min-width: 0; max-width: none; width: auto; border: 0; padding: 0; font-size: 13px; }
    .mobile-cell-label { display: block; font-size: 10px; font-weight: 500; color: #54694f; letter-spacing: 0; margin-bottom: 4px; }
    .dividend-records tr[data-dividend] > .div-year { grid-area: year; display: flex; align-items: baseline; gap: 8px; color: #526550; font-size: 12px; padding-bottom: 11px; }
    .div-year .mobile-cell-label { font-size: 11px; margin: 0; }
    .div-year small { flex-basis: 100%; }
    .dividend-records tr[data-dividend] > .div-company { grid-area: company; align-self: center; font-size: 15px; }
    .dividend-records tr[data-dividend] > .div-amount { grid-area: amount; font-size: 17px; text-align: right; white-space: normal; overflow-wrap: anywhere; }
    .dividend-records tr[data-dividend] > .div-payment { grid-area: payment; display: flex; justify-content: space-between; align-items: baseline; gap: 12px; padding: 12px 0; margin-top: 14px; border-top: 1px solid #e1e8dd; border-bottom: 1px solid #e1e8dd; }
    .div-payment .mobile-cell-label { font-size: 11px; }
    .div-payment .muted { font-size: 12px; text-align: right; }
    .dividend-records tr[data-dividend] > .div-evidence { grid-area: evidence; padding-top: 12px; }
    .dividend-records details { margin-top: 3px; }
    .dividend-records summary { min-height: 40px; display: list-item; padding-block: 9px; }
    .div-method, .div-coverage { padding: 21px; }
    .div-method h2, .div-coverage h2 { font-size: 19px; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { transition: none !important; animation: none !important; }
}
@media print {
    body { background: #fff; color: #111; }
    .utility, .site-header, .site-footer, .menu-toggle, .filter-panel, .feed-presets, .feed-tools, .flows-section, .sidebar, .div-filter { display: none !important; }
    .container { width: 100%; }
    .news-card, .div-table-wrap { box-shadow: none; }
    .content-grid { display: block; }
    .news-card, .div-table tr { break-inside: avoid; }
    .div-table { min-width: 0; }
    .demo-banner, .div-alert { display: block !important; color: #111; border: 1px solid #777; background: #fff; }
}

/* Compact desktop overview. The first stories sit above the fold on common displays. */
.page-intro > div > .eyebrow { display: none; }
.page-intro { padding: 24px 0 22px; }
h1 { font-size: clamp(28px, 3vw, 34px); }
.intro-copy { margin-top: 7px; }
.stat { min-height: 88px; padding: 14px 20px; }
.stat strong { font-size: 28px; line-height: 1.25; }
.stat > span:last-child { font-size: 12px; margin-top: 4px; }
.stats { margin-bottom: 17px; }
.filter-panel:has(> .flows-section) { display: grid; grid-template-columns: minmax(0,1fr) auto; gap: 0 16px; padding-block: 18px; }
.filter-panel:has(> .flows-section) > form { display: contents; }
.filter-panel:has(> .flows-section) .filter-top { grid-column: 1 / -1; margin-bottom: 5px; }
.filter-panel:has(> .flows-section) .advanced-filters { grid-column: 1; grid-row: 2; }
.filter-panel > .flows-section { grid-column: 2; grid-row: 2; margin: 0; padding: 0; border: 0; justify-self: end; }
.flows-summary { min-height: 40px; padding: 8px 0; }
.flows-summary > span { display: none; }
.filter-panel > .active-filters { grid-column: 1 / -1; grid-row: 3; padding: 0; border: 0; margin: 8px 0 0; }
.filter-panel:has(.advanced-filters[open]) .advanced-filters { grid-column: 1 / -1; }
.filter-panel:has(.advanced-filters[open]) > .flows-section,
.filter-panel > .flows-section[open] { grid-column: 1 / -1; grid-row: 4; justify-self: stretch; margin-top: 12px; padding-top: 8px; border-top: 1px solid var(--line); }
.flows-section[open] .flows-summary > span { display: inline; }
.facet-overview { margin-bottom: 12px; }
.feed > .section-heading { position: relative; gap: 12px; flex-wrap: wrap; align-items: center; }
.feed > .section-heading > .muted { margin-left: auto; font-size: 12px; }
.export-menu { font-size: 12px; }
.export-menu > summary { list-style: none; cursor: pointer; min-height: 38px; padding: 9px 12px; border: 1px solid #b2c3b7; border-radius: 7px; background: #fff; font-weight: 600; color: var(--green); }
.export-menu > summary::-webkit-details-marker { display: none; }
.export-menu > div { position: absolute; z-index: 5; right: 0; top: calc(100% + 8px); width: min(330px, 100%); border: 1px solid #b2c3b7; border-radius: 10px; background: #fff; box-shadow: 0 10px 30px rgb(18 60 50 / 12%); padding: 18px; }
.export-menu a { display: block; min-height: 40px; }
.export-menu small { display: block; font-size: 12px; color: var(--muted); line-height: 1.8; }
.feed-toolbar { margin-bottom: 12px; gap: 10px; }
.feed-toolbar button { font-size: 12px; }
.feed-toolbar .read-filter { font-size: 12px; }
.feed-day { margin-top: 14px; margin-bottom: 10px; }
@media (max-width: 980px) {
    .header-inner, body[data-view=dividends] .header-inner { display: flex; align-items: center; flex-direction: row; }
    .brand { width: auto; }
}
@media (max-width: 640px) {
    .page-intro { padding-block: 22px 20px; }
    .stat { min-height: 86px; padding: 13px 15px; }
    .filter-panel:has(> .flows-section) { grid-template-columns: 1fr 1fr; gap: 0 14px; padding: 17px; }
    .filter-panel > .flows-section { justify-self: stretch; }
    .flows-summary, .advanced-filters > summary { font-size: 12px; min-height: 44px; }
    .flows-section[open] .flows-summary > span { display: block; }
    .feed > .section-heading > .muted { font-size: 11px; margin-left: 0; }
    .feed > .section-heading > h2 { margin-right: auto; }
    .export-menu { margin-left: auto; }
    .feed-toolbar { margin-block: 6px 12px; }
    .card-quote .quote-caption br { display: initial; }
}
.strategy-number { display: inline-flex; align-items: center; justify-content: center; width: 34px; height: 30px; border-radius: 6px; }
.filter-top { min-width: 0; }
@media (max-width: 640px) {
    .filter-panel .filter-top { display: flex; flex-direction: column; align-items: stretch; width: 100%; gap: 11px; }
    .filter-top .search-label { flex-basis: auto; }
    .filter-top .button { align-self: stretch; width: 100%; }
}
.quote-caption > span { display: block; }
.side-quote > div:nth-child(2) { flex-wrap: wrap; justify-content: flex-start; gap: 6px 8px; }
.side-quote .quote-caption { flex-basis: 100%; text-align: left; margin-top: 1px; }
.filter-panel input, .filter-panel select, .multi-picker, .div-filter select { border-color: #819588; }

/* v0.5.3: touch targets for existing reader actions; keyboard focus remains visible. */
@media (max-width: 640px) {
    .reader-toolbar button, .reader-bottom button,
    .news-card button[data-read], .news-card button[data-preview] { min-height: 44px; }
    .reader-toolbar #reader-prev, .reader-toolbar #reader-next { min-width: 44px; }
}

/* Linked instrument dossiers: the existing market, disclosure and dividend datasets. */
.security-summary { display: grid; grid-template-columns: minmax(0, 1fr) minmax(220px, 310px); gap: 30px; padding: 26px; }
.security-heading { display: flex; align-items: center; gap: 12px; margin-bottom: 20px; }
.security-heading .ticker { font-size: 18px; }
.security-facts, .security-quote-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 18px; margin: 0 0 18px; }
.security-facts dt, .security-quote-facts dt { color: var(--muted); font-size: 12px; }
.security-facts dd, .security-quote-facts dd { margin: 4px 0 0; font-weight: 650; }
.security-current-quote { display: flex; flex-direction: column; justify-content: center; align-items: flex-start; gap: 7px; border-left: 1px solid var(--line); padding-left: 28px; }
.security-current-quote .price { font-size: 28px; line-height: 1.3; }
.security-current-quote > small { color: var(--muted); font-size: 12px; }
.security-current-quote .eyebrow { margin: 0; }
.security-tabs { display: flex; gap: 6px; overflow-x: auto; padding: 16px 0; margin-bottom: 8px; }
.security-tabs a { white-space: nowrap; padding: 11px 16px; border-radius: 8px; font-weight: 650; font-size: 14px; }
.security-tabs a[aria-current] { background: var(--green-dark); color: white; }
.security-tabs a:hover { box-shadow: inset 0 0 0 1px var(--green); }
.security-content-grid { display: grid; grid-template-columns: minmax(0, 2fr) minmax(250px, 1fr); gap: 22px; }
.security-section { padding: 24px; margin-bottom: 22px; min-width: 0; }
.security-section h2 { margin: 0 0 12px; }
.security-section > p { margin-bottom: 18px; }
.security-news-list, .security-categories, .security-calendar { list-style: none; padding: 0; margin: 0; }
.security-news-list > li { padding: 18px 0; border-top: 1px solid var(--line); }
.security-news-list h3 { font-size: 17px; line-height: 1.5; margin: 8px 0; }
.security-news-meta, .security-news-actions { display: flex; flex-wrap: wrap; gap: 6px 14px; color: var(--muted); font-size: 12px; }
.security-news-actions a { color: var(--green); }
.security-categories a { display: flex; justify-content: space-between; gap: 15px; padding: 12px 0; border-top: 1px solid var(--line); font-size: 13px; }
.security-categories strong { flex-shrink: 0; }
.security-table { width: 100%; min-width: 700px; border-collapse: collapse; font-size: 13px; }
.security-table th, .security-table td { padding: 14px 12px; text-align: left; border-bottom: 1px solid var(--line); vertical-align: top; }
.security-table thead { background: var(--soft-green); }
.security-table a { color: var(--green); }
.security-table details { margin-top: 8px; }
.security-source-link { display: block; margin-bottom: 6px; }
.security-calendar-title { margin: 25px 0 12px; }
.security-calendar > li { display: grid; grid-template-columns: 100px minmax(0, 1fr); gap: 20px; border-top: 1px solid var(--line); padding: 18px 0; }
.security-calendar time { font-weight: 700; color: var(--green-dark); }
.security-calendar strong, .security-calendar span, .security-calendar a { display: block; }
.security-calendar span, .security-calendar a { font-size: 13px; margin-top: 6px; }
.security-list-link { display: inline-block; font-size: 12px; font-weight: 600; margin-top: 7px; }
.security-list-meta { font-size: 11px; }
.security-stats .stat:last-child strong { font-size: 23px; }
.market-filters { grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); }
@media (max-width: 850px) {
    .security-summary, .security-content-grid { grid-template-columns: 1fr; }
    .security-current-quote { border-left: 0; border-top: 1px solid var(--line); padding: 22px 0 0; }
    .security-side { display: grid; grid-template-columns: repeat(auto-fit, minmax(230px, 1fr)); gap: 16px; }
}
@media (max-width: 520px) {
    .security-summary, .security-section { padding: 18px; }
    .security-facts, .security-quote-facts { grid-template-columns: 1fr 1fr; }
    .security-calendar > li { grid-template-columns: 1fr; gap: 8px; }
    .security-tabs a { padding: 10px 13px; }
}
