:root {
    --hub-bg: #030712;
    --hub-panel: #0c1424;
    --hub-panel-strong: #111b2e;
    --hub-panel-soft: rgba(255,255,255,.045);
    --hub-border: rgba(255,255,255,.105);
    --hub-border-strong: rgba(229,197,134,.34);
    --hub-gold: #e5c586;
    --hub-gold-soft: rgba(229,197,134,.11);
    --hub-blue: #7ab7f0;
    --hub-blue-soft: rgba(122,183,240,.11);
    --hub-green: #5dd6aa;
    --hub-red: #ff7a7a;
    --hub-amber: #f5c66b;
    --hub-text: #f5f7fb;
    --hub-muted: #a0a9bb;
    --hub-subtle: #737e92;
    --hub-head: 'Kanit', sans-serif;
    --hub-body: 'Sarabun', sans-serif;
}
* { box-sizing: border-box; }
html { color-scheme: dark; scroll-behavior: smooth; }
body {
    margin: 0;
    min-height: 100vh;
    overflow-x: hidden;
    background:
        radial-gradient(circle at 15% -10%, rgba(122,183,240,.16), transparent 30%),
        radial-gradient(circle at 92% 5%, rgba(229,197,134,.10), transparent 25%),
        var(--hub-bg);
    color: var(--hub-text);
    font-family: var(--hub-body);
}
a { color: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
.hub-topbar {
    position: sticky;
    top: 0;
    z-index: 30;
    min-height: 64px;
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 8px max(4vw, 18px);
    border-bottom: 1px solid var(--hub-border);
    background: rgba(3,7,18,.88);
    backdrop-filter: blur(16px);
}
.hub-brand {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    gap: 9px;
    color: var(--hub-gold);
    font: 700 1rem/1 var(--hub-head);
    letter-spacing: .16em;
    text-decoration: none;
}
.hub-brand img { width: 26px; height: 26px; border-radius: 50%; object-fit: cover; }
.hub-back {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    padding: 8px 12px;
    border: 1px solid var(--hub-border);
    border-radius: 10px;
    color: var(--hub-muted);
    font-size: .86rem;
    text-decoration: none;
}
.hub-back:hover, .hub-back:focus-visible {
    color: var(--hub-text);
    border-color: var(--hub-border-strong);
    outline: 3px solid rgba(229,197,134,.18);
    outline-offset: 2px;
}
.hub-shell { width: min(1180px, calc(100% - 40px)); margin: 0 auto; padding: 44px 0 76px; }
.hub-hero {
    display: grid;
    grid-template-columns: auto minmax(0, 1fr) auto;
    gap: 22px;
    align-items: center;
    padding: clamp(22px, 4vw, 34px);
    border: 1px solid var(--hub-border);
    border-radius: 24px;
    background: linear-gradient(145deg, rgba(20,30,50,.96), rgba(7,11,22,.98));
    box-shadow: 0 22px 60px rgba(0,0,0,.25);
}
.hub-logo {
    width: 78px;
    height: 78px;
    display: grid;
    place-items: center;
    border: 1px solid var(--hub-border);
    border-radius: 22px;
    background: rgba(255,255,255,.06);
    box-shadow: inset 0 1px 0 rgba(255,255,255,.1);
}
.hub-logo img { width: 48px; height: 48px; object-fit: contain; }
.hub-eyebrow { margin: 0 0 7px; color: var(--hub-blue); font: 700 .74rem/1 var(--hub-head); letter-spacing: .1em; text-transform: uppercase; }
.hub-title { margin: 0; color: #fff; font: 800 clamp(2rem, 5vw, 3.55rem)/1.03 var(--hub-head); letter-spacing: -.04em; }
.hub-ticker { margin-left: .16em; color: var(--hub-gold); }
.hub-category { margin: 9px 0 0; color: var(--hub-muted); font-size: .92rem; }
.hub-state { justify-self: end; padding: 7px 11px; border: 1px solid var(--hub-border-strong); border-radius: 999px; background: var(--hub-gold-soft); color: var(--hub-gold); font: 700 .75rem/1.25 var(--hub-head); text-align: center; }
.hub-hero-meta { display: flex; flex-direction: column; align-items: flex-end; justify-self: end; gap: 8px; }
.hub-price-chip { padding: 7px 11px; border: 1px solid var(--hub-border); border-radius: 999px; background: rgba(255,255,255,.04); color: var(--hub-text); font-size: .78rem; text-align: right; white-space: nowrap; }
.hub-price-chip:empty { display: none; }
.hub-price-chip b { color: var(--hub-blue); font: 800 .95rem/1 var(--hub-head); }
.hub-company-intro { max-width: 830px; margin: 24px 0 0; color: #cbd1dc; font-size: clamp(1rem, 2vw, 1.08rem); line-height: 1.8; }
.hub-freshness-note { max-width: 830px; margin: 14px 0 0; padding: 12px 14px; border: 1px dashed var(--hub-border); border-radius: 12px; color: var(--hub-subtle); font-size: .78rem; line-height: 1.65; }
.hub-freshness-note b { color: var(--hub-amber); }
.hub-beginner-guide { max-width: 100%; margin: 16px 0 0; border: 1px solid rgba(122,183,240,.28); border-radius: 14px; background: rgba(122,183,240,.055); }
.hub-beginner-guide summary { min-height: 48px; display: flex; align-items: center; padding: 11px 15px; color: var(--hub-blue); font: 700 .86rem/1.35 var(--hub-head); cursor: pointer; }
.hub-beginner-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; padding: 0 15px 15px; }
.hub-beginner-grid p { margin: 0; padding: 12px; border: 1px solid var(--hub-border); border-radius: 11px; background: rgba(3,7,18,.35); }
.hub-beginner-grid b, .hub-beginner-grid span { display: block; }
.hub-beginner-grid b { color: var(--hub-text); font-family: var(--hub-head); }
.hub-beginner-grid span { margin-top: 4px; color: var(--hub-muted); font-size: .82rem; line-height: 1.55; }
.hub-scoreboard {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin: 0 0 24px;
}
.hub-score {
    min-height: 126px;
    padding: 18px;
    border: 1px solid var(--hub-border);
    border-radius: 17px;
    background: linear-gradient(145deg, rgba(17,27,46,.88), rgba(8,13,25,.94));
}
.hub-score-label { display: block; color: var(--hub-muted); font: 600 .78rem/1.3 var(--hub-head); }
.hub-score-value { display: block; margin-top: 12px; color: var(--hub-text); font: 800 1.35rem/1.1 var(--hub-head); }
.hub-score-meta { display: block; margin-top: 8px; color: var(--hub-subtle); font-size: .75rem; line-height: 1.45; }
.hub-score.is-pending .hub-score-value { color: var(--hub-gold); }
.hub-tabs-wrap {
    position: sticky;
    top: 64px;
    z-index: 20;
    margin: 28px 0 20px;
    padding: 9px;
    border: 1px solid var(--hub-border);
    border-radius: 15px;
    background: rgba(7,12,23,.9);
    backdrop-filter: blur(16px);
}
.hub-tabs { display: flex; flex-wrap: wrap; gap: 7px; }
.hub-tab {
    min-height: 44px;
    flex: 0 0 auto;
    padding: 9px 13px;
    border: 1px solid transparent;
    border-radius: 10px;
    background: transparent;
    color: var(--hub-muted);
    font: 600 .82rem/1.2 var(--hub-head);
    cursor: pointer;
    transition: color .18s ease, background .18s ease, border-color .18s ease;
}
.hub-tab:hover { color: var(--hub-text); background: rgba(255,255,255,.05); }
.hub-tab[aria-selected="true"] { color: #101620; background: var(--hub-gold); border-color: var(--hub-gold); }
.hub-tab:focus-visible { outline: 3px solid rgba(122,183,240,.34); outline-offset: 2px; }
.hub-panel { padding: clamp(20px, 4vw, 32px); border: 1px solid var(--hub-border); border-radius: 22px; background: rgba(10,16,29,.82); }
.hub-panel[hidden] { display: none; }
.hub-panel-head { display: flex; justify-content: space-between; gap: 18px; align-items: flex-start; margin-bottom: 22px; }
.hub-panel-kicker { margin: 0 0 6px; color: var(--hub-blue); font: 700 .7rem/1 var(--hub-head); letter-spacing: .1em; text-transform: uppercase; }
.hub-panel h2 { margin: 0; font: 750 clamp(1.35rem, 3vw, 1.8rem)/1.25 var(--hub-head); }
.hub-panel-lead { max-width: 720px; margin: 8px 0 0; color: var(--hub-muted); line-height: 1.7; }
.hub-evidence-badge { flex: 0 0 auto; padding: 7px 10px; border: 1px solid var(--hub-border); border-radius: 999px; color: var(--hub-subtle); font-size: .72rem; }
.hub-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 18px; }
.hub-grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.hub-card { padding: 18px; border: 1px solid var(--hub-border); border-radius: 16px; background: var(--hub-panel-soft); }
.hub-card.is-feature { background: linear-gradient(145deg, rgba(122,183,240,.10), rgba(255,255,255,.035)); }
.hub-card.positive { border-color: rgba(93,214,170,.35); background: linear-gradient(160deg, rgba(93,214,170,.07), var(--hub-panel-soft)); }
.hub-card.warn { border-color: rgba(245,198,107,.35); background: linear-gradient(160deg, rgba(245,198,107,.07), var(--hub-panel-soft)); }
.hub-card.negative { border-color: rgba(255,122,122,.35); background: linear-gradient(160deg, rgba(255,122,122,.07), var(--hub-panel-soft)); }
.hub-card h3 { margin: 0 0 9px; font: 700 1rem/1.35 var(--hub-head); }
.hub-card p { margin: 0; color: var(--hub-muted); font-size: .9rem; line-height: 1.7; }
.hub-card ul { margin: 10px 0 0; padding-left: 20px; color: var(--hub-muted); font-size: .88rem; line-height: 1.7; }
.hub-data-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 12px; }
.hub-data-slot { min-height: 112px; padding: 16px; border: 1px dashed rgba(255,255,255,.16); border-radius: 14px; background: rgba(255,255,255,.025); }
.hub-data-slot span { display: block; color: var(--hub-blue); font: 700 .75rem/1.3 var(--hub-head); }
.hub-data-slot strong { display: block; margin-top: 13px; color: var(--hub-muted); font: 600 .88rem/1.35 var(--hub-head); }
.hub-data-slot small { display: block; margin-top: 6px; color: var(--hub-subtle); line-height: 1.4; }
.hub-note { margin-top: 18px; padding: 14px 16px; border-left: 3px solid var(--hub-gold); border-radius: 0 12px 12px 0; background: var(--hub-gold-soft); color: #cbd1dc; font-size: .86rem; line-height: 1.65; }
.hub-en { color: var(--hub-subtle); font-size: .82em; font-style: italic; }
.hub-method { margin-top: 20px; border: 1px solid var(--hub-border); border-radius: 14px; background: rgba(255,255,255,.025); }
.hub-method summary { min-height: 44px; display: flex; align-items: center; padding: 10px 14px; color: var(--hub-text); font: 650 .86rem/1.3 var(--hub-head); cursor: pointer; }
.hub-method div { padding: 0 16px 16px; color: var(--hub-muted); font-size: .84rem; line-height: 1.7; }
.hub-deep-link { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; margin-top: 18px; padding: 10px 16px; border: 1px solid var(--hub-gold); border-radius: 11px; background: var(--hub-gold); color: #111620; font-weight: 800; text-decoration: none; }
.hub-deep-link:hover, .hub-deep-link:focus-visible { background: #f2d99f; outline: 3px solid rgba(229,197,134,.2); outline-offset: 2px; }
.hub-empty { padding: 20px; border: 1px dashed rgba(255,255,255,.16); border-radius: 14px; color: var(--hub-muted); line-height: 1.7; }
.hub-footnote { margin: 24px 0 0; color: var(--hub-subtle); font-size: .78rem; line-height: 1.65; }
.hub-asof { margin: 10px 0 0; color: var(--hub-subtle); font-size: .78rem; }
.hub-loading { min-height: 180px; display: grid; place-items: center; color: var(--hub-muted); }
.hub-score-value small { color: var(--hub-subtle); font-size: .65em; font-weight: 600; }
.hub-score-value.positive { color: var(--hub-green); }
.hub-score-value.warn { color: var(--hub-amber); }
.hub-score-value.negative { color: var(--hub-red); }
.hub-score-overall { border-color: var(--hub-border-strong); background: linear-gradient(145deg, rgba(229,197,134,.16), rgba(17,27,46,.88)); }
.hub-score-overall .hub-score-value { color: var(--hub-gold); font-size: 2rem; }
.hub-confidence { display: inline-block; margin-top: 10px; color: var(--hub-blue); font-size: .7rem; }
.hub-legend { grid-column: 1 / -1; margin: 0; padding: 10px 14px; border: 1px dashed var(--hub-border); border-radius: 12px; color: var(--hub-subtle); font-size: .74rem; line-height: 1.6; }
.hub-exec { display: flex; align-items: center; justify-content: space-between; gap: 20px; padding: 20px; border: 1px solid var(--hub-border-strong); border-radius: 18px; background: linear-gradient(135deg, var(--hub-gold-soft), var(--hub-blue-soft)); }
.hub-exec span, .hub-price-clock span, .hub-provider span, .hub-reverse span { display: block; color: var(--hub-blue); font: 700 .72rem/1.3 var(--hub-head); letter-spacing: .08em; text-transform: uppercase; }
.hub-exec strong { display: block; max-width: 840px; margin-top: 8px; font: 650 1rem/1.6 var(--hub-head); }
.hub-exec > b { flex: 0 0 auto; color: var(--hub-gold); font: 800 2rem/1 var(--hub-head); }
.hub-thesis { margin: 18px 0 22px; padding: 18px 20px; border-left: 3px solid var(--hub-blue); background: var(--hub-blue-soft); color: #d5dae4; line-height: 1.8; }
.hub-section-title { display: flex; align-items: end; justify-content: space-between; gap: 16px; margin: 30px 0 13px; }
.hub-section-title h3 { margin: 0; font: 700 1.08rem/1.3 var(--hub-head); }
.hub-section-title span { color: var(--hub-subtle); font-size: .75rem; text-align: right; }
.hub-citations { display: inline-flex; gap: 3px; margin-left: 7px; vertical-align: super; }
.hub-citations a { display: inline-grid; min-width: 18px; height: 18px; padding: 0 4px; place-items: center; border: 1px solid rgba(122,183,240,.35); border-radius: 999px; color: var(--hub-blue); font: 700 .62rem/1 var(--hub-head); text-decoration: none; }
.hub-citations a:hover, .hub-citations a:focus-visible { background: var(--hub-blue-soft); outline: 2px solid rgba(122,183,240,.25); }
.hub-tag { display: inline-flex; align-items: center; min-height: 25px; margin: 2px 4px 2px 0; padding: 4px 8px; border: 1px solid var(--hub-border); border-radius: 999px; color: var(--hub-muted); font-size: .7rem; }
.hub-tag.fact, .hub-tag.positive { color: var(--hub-green); border-color: rgba(93,214,170,.32); background: rgba(93,214,170,.07); }
.hub-tag.inference { color: var(--hub-gold); border-color: var(--hub-border-strong); background: var(--hub-gold-soft); }
.hub-tag.negative { color: var(--hub-red); border-color: rgba(255,122,122,.32); background: rgba(255,122,122,.07); }
.hub-tag.warn { color: var(--hub-amber); border-color: rgba(245,198,107,.35); background: rgba(245,198,107,.09); }
.hub-tag.neutral { color: var(--hub-blue); border-color: rgba(122,183,240,.32); background: var(--hub-blue-soft); }
.hub-table-wrap { max-width: 100%; overflow-x: auto; border: 1px solid var(--hub-border); border-radius: 14px; margin-top: 18px; }
.hub-table-wrap:focus-visible { outline: 2px solid var(--hub-blue); outline-offset: 3px; }
.hub-table-wrap.compact { margin: 12px 0; border: 0; }
.hub-table-wrap table { width: 100%; min-width: 640px; border-collapse: collapse; font-size: .82rem; }
.hub-table-wrap.compact table { min-width: 0; }
.hub-table-wrap th, .hub-table-wrap td { padding: 12px 14px; border-bottom: 1px solid var(--hub-border); text-align: left; vertical-align: top; }
.hub-table-wrap thead th { position: sticky; top: 0; background: #121b2c; color: var(--hub-blue); font: 650 .74rem/1.3 var(--hub-head); white-space: nowrap; }
.hub-table-wrap tbody th { color: var(--hub-text); font-weight: 600; }
.hub-table-wrap tbody th small { display: block; max-width: 220px; margin-top: 4px; color: var(--hub-subtle); font-weight: 400; line-height: 1.35; }
.hub-table-wrap td.positive { color: var(--hub-green); font-weight: 700; }
.hub-table-wrap td.warn { color: var(--hub-amber); font-weight: 700; }
.hub-table-wrap td.negative { color: var(--hub-red); font-weight: 700; }
.hub-table-wrap tr.is-self { background: rgba(229,197,134,.08); }
.hub-table-wrap tr.is-self th { font-weight: 800; color: var(--hub-gold); }
.hub-table-wrap td.is-self { outline: 2px solid var(--hub-gold); outline-offset: -2px; font-weight: 800; }
.hub-table-wrap tbody tr:last-child > * { border-bottom: 0; }
.hub-chain { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 8px; margin: 0; padding: 0; counter-reset: chain; list-style: none; }
.hub-chain li { position: relative; min-height: 92px; padding: 36px 13px 13px; border: 1px solid var(--hub-border); border-radius: 13px; background: var(--hub-panel-soft); color: var(--hub-muted); font-size: .8rem; line-height: 1.5; }
.hub-chain li::before { counter-increment: chain; content: counter(chain); position: absolute; top: 10px; left: 12px; color: var(--hub-gold); font: 800 .72rem/1 var(--hub-head); }
.hub-chain-icon { position: absolute; top: 6px; right: 10px; font-size: 1.25rem; line-height: 1; }
.hub-disclosure { margin-top: 20px; padding: 18px; border: 1px solid var(--hub-border-strong); border-radius: 15px; background: var(--hub-gold-soft); color: var(--hub-muted); font-size: .88rem; line-height: 1.7; }
.hub-disclosure > strong { display: block; margin-bottom: 7px; color: var(--hub-gold); font-family: var(--hub-head); }
.hub-disclosure p { margin: 7px 0 0; }
.hub-gap-list { margin: 8px 0 0; padding-left: 20px; }
.hub-gap-list li { margin-top: 8px; line-height: 1.65; }
.hub-moat-grid, .hub-risk-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 18px; }
.hub-moat, .hub-risk { padding: 17px; border: 1px solid var(--hub-border); border-radius: 15px; background: var(--hub-panel-soft); }
.hub-moat.positive, .hub-risk.positive, .hub-narrative-theme.positive, .hub-future-growth.positive { border-color: rgba(93,214,170,.35); background: linear-gradient(160deg, rgba(93,214,170,.07), var(--hub-panel-soft)); }
.hub-moat.warn, .hub-risk.warn, .hub-narrative-theme.warn, .hub-future-growth.warn { border-color: rgba(245,198,107,.35); background: linear-gradient(160deg, rgba(245,198,107,.07), var(--hub-panel-soft)); }
.hub-moat.negative, .hub-risk.negative, .hub-narrative-theme.negative, .hub-future-growth.negative { border-color: rgba(255,122,122,.35); background: linear-gradient(160deg, rgba(255,122,122,.07), var(--hub-panel-soft)); }
.hub-moat.neutral, .hub-risk.neutral, .hub-narrative-theme.neutral, .hub-future-growth.neutral { border-color: rgba(122,183,240,.3); background: linear-gradient(160deg, rgba(122,183,240,.06), var(--hub-panel-soft)); }
.hub-moat > div, .hub-risk > div { display: flex; align-items: start; justify-content: space-between; gap: 12px; }
.hub-moat h3, .hub-risk h3 { margin: 0; font: 700 .95rem/1.4 var(--hub-head); }
.hub-moat p, .hub-risk p { margin: 10px 0 0; color: var(--hub-muted); font-size: .84rem; line-height: 1.65; }
.hub-moat .counter { padding-top: 9px; border-top: 1px solid var(--hub-border); color: #d3a1a1; }
.hub-chain-link { min-height: 48px; display: inline-flex; align-items: center; margin-top: 22px; padding: 10px 15px; border: 1px solid var(--hub-gold); border-radius: 11px; color: var(--hub-gold); font-weight: 700; text-decoration: none; }
.hub-metrics { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 11px; margin-top: 18px; }
.hub-metric { min-height: 106px; padding: 15px; border: 1px solid var(--hub-border); border-radius: 14px; background: var(--hub-panel-soft); }
.hub-metric span { display: block; color: var(--hub-muted); font-size: .74rem; }
.hub-metric strong { display: block; margin-top: 11px; color: var(--hub-text); font: 750 1.03rem/1.3 var(--hub-head); }
.hub-metric strong.feature { color: var(--hub-gold); }
.hub-metric strong.positive { color: var(--hub-green); }
.hub-metric strong.warn { color: var(--hub-amber); }
.hub-metric strong.negative { color: var(--hub-red); }
.hub-metric small { display: block; margin-top: 6px; color: var(--hub-subtle); line-height: 1.4; }
.hub-chart-wrap { padding: 16px 14px 10px; border: 1px solid var(--hub-border); border-radius: 15px; background: var(--hub-panel-soft); }
.hub-chart-title { margin: 0 0 8px; color: var(--hub-text); font: 700 .84rem/1.3 var(--hub-head); }
.hub-chart { display: block; width: 100%; height: auto; }
.hub-chart-axis { fill: var(--hub-subtle); font-size: 10.5px; font-family: var(--hub-body); }
.hub-chart-val { fill: var(--hub-muted); font-size: 10.5px; font-weight: 700; font-family: var(--hub-body); }
.hub-chart-zero { stroke: var(--hub-border-strong); stroke-dasharray: 3 3; }
.hub-chart-legend { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 4px; color: var(--hub-muted); font-size: .76rem; }
.hub-chart-legend span { display: inline-flex; align-items: center; gap: 6px; }
.hub-chart-legend i { display: inline-block; width: 10px; height: 10px; border-radius: 3px; }
.hub-charts-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 18px; }
.hub-bullbear { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; margin-top: 18px; }
.hub-bull, .hub-bear { padding: 18px; border-radius: 16px; border: 1px solid; }
.hub-bull { border-color: rgba(93,214,170,.4); background: linear-gradient(160deg, rgba(93,214,170,.09), rgba(17,27,46,.9)); }
.hub-bear { border-color: rgba(255,122,122,.4); background: linear-gradient(160deg, rgba(255,122,122,.09), rgba(17,27,46,.9)); }
.hub-bull h3, .hub-bear h3 { margin: 0 0 12px; font: 800 .82rem/1.2 var(--hub-head); letter-spacing: .06em; text-transform: uppercase; }
.hub-bull h3 { color: var(--hub-green); }
.hub-bear h3 { color: var(--hub-red); }
.hub-bull ul, .hub-bear ul { margin: 0; padding-left: 20px; color: #dfe3ea; font-size: .86rem; line-height: 1.75; }
.hub-bull li, .hub-bear li { margin-bottom: 8px; }
.hub-snapshot-grid { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 14px; margin-top: 18px; }
.hub-snapshot-col { padding: 14px 16px; border: 1px solid var(--hub-border); border-radius: 14px; background: var(--hub-panel-soft); }
.hub-snapshot-col h4 { margin: 0 0 10px; color: var(--hub-blue); font: 700 .76rem/1.2 var(--hub-head); text-transform: uppercase; letter-spacing: .04em; }
.hub-snapshot-row { display: flex; justify-content: space-between; align-items: baseline; gap: 8px; padding: 5px 0; border-bottom: 1px dashed var(--hub-border); font-size: .78rem; }
.hub-snapshot-row:last-child { border-bottom: 0; }
.hub-snapshot-row span:first-child { color: var(--hub-muted); }
.hub-snapshot-row b { color: var(--hub-text); font-weight: 700; white-space: nowrap; }
.hub-snapshot-row b.positive { color: var(--hub-green); }
.hub-snapshot-row b.warn { color: var(--hub-amber); }
.hub-snapshot-row b.negative { color: var(--hub-red); }
.hub-pricebar { margin-top: 18px; padding: 0 16px; }
.hub-pricebar-track { position: relative; height: 92px; margin: 0 10px; }
.hub-pricebar-track::before { content: ''; position: absolute; top: 46px; left: 0; right: 0; height: 6px; border-radius: 999px; background: linear-gradient(90deg, var(--hub-red), var(--hub-amber) 45%, var(--hub-green) 100%); opacity: .85; }
.hub-pricebar-tick { position: absolute; top: 0; transform: translateX(-50%); display: flex; flex-direction: column; align-items: center; gap: 2px; }
.hub-pricebar-tick::after { content: ''; position: absolute; top: 24px; left: 50%; width: 2px; height: 22px; background: var(--hub-border-strong); }
.hub-pricebar-tick span { font: 800 .82rem/1.2 var(--hub-head); color: var(--hub-text); white-space: nowrap; }
.hub-pricebar-tick.negative span { color: var(--hub-red); }
.hub-pricebar-tick.neutral span { color: var(--hub-blue); }
.hub-pricebar-tick.positive span { color: var(--hub-green); }
.hub-pricebar-tick small { color: var(--hub-subtle); font-size: .68rem; white-space: nowrap; }
.hub-pricebar-current { position: absolute; bottom: 0; transform: translateX(-50%); }
.hub-pricebar-current::before { content: ''; position: absolute; bottom: 22px; left: 50%; width: 2px; height: 24px; background: var(--hub-gold); }
.hub-pricebar-current span { display: block; margin-top: 24px; padding: 3px 8px; border: 1px solid var(--hub-gold); border-radius: 999px; background: rgba(3,7,18,.92); color: var(--hub-gold); font: 800 .74rem/1.2 var(--hub-head); white-space: nowrap; }
.hub-statement { margin-top: 10px; border: 1px solid var(--hub-border); border-radius: 14px; background: rgba(255,255,255,.02); overflow: hidden; }
.hub-statement summary { min-height: 52px; display: flex; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 15px; color: var(--hub-text); font: 650 .9rem/1.3 var(--hub-head); cursor: pointer; }
.hub-statement summary span { color: var(--hub-subtle); font: 400 .72rem/1.3 var(--hub-body); }
.hub-statement .hub-table-wrap { border: 0; border-top: 1px solid var(--hub-border); border-radius: 0; }
.hub-timeline { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 11px; margin-top: 18px; }
.hub-timeline article { padding: 16px; border: 1px solid var(--hub-border); border-radius: 14px; background: var(--hub-panel-soft); }
.hub-timeline time { color: var(--hub-blue); font-size: .73rem; }
.hub-timeline strong { display: block; margin-top: 8px; font: 650 .92rem/1.4 var(--hub-head); }
.hub-timeline p { margin: 7px 0 0; color: var(--hub-muted); font-size: .8rem; }
.hub-earnings-hero { padding: 20px 22px; border: 1px solid var(--hub-border-strong); border-radius: 18px; background: linear-gradient(145deg, var(--hub-gold-soft), rgba(17,27,46,.92)); box-shadow: 0 14px 40px rgba(0,0,0,.22); }
.hub-guidance-box { margin-top: 18px; padding: 18px 20px; border: 1px dashed var(--hub-border-strong); border-radius: 16px; background: rgba(122,183,240,.05); }
.hub-guidance-bar-track { position: relative; height: 7px; margin: 10px 0 2px; border-radius: 999px; background: rgba(255,255,255,.08); }
.hub-guidance-bar-fill { position: absolute; top: 0; bottom: 0; border-radius: 999px; background: var(--hub-blue); }
.hub-price-clock { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 14px; }
.hub-price-clock > div, .hub-provider, .hub-reverse { padding: 18px; border: 1px solid var(--hub-border-strong); border-radius: 16px; background: linear-gradient(145deg, var(--hub-gold-soft), var(--hub-panel-soft)); }
.hub-price-clock strong, .hub-provider strong, .hub-reverse strong { display: block; margin-top: 9px; color: var(--hub-gold); font: 750 1.18rem/1.4 var(--hub-head); }
.hub-price-clock small, .hub-provider small { display: block; margin-top: 5px; color: var(--hub-subtle); line-height: 1.5; }
.hub-reverse { margin-top: 20px; background: linear-gradient(145deg, var(--hub-blue-soft), var(--hub-panel-soft)); }
.hub-reverse p { margin: 7px 0 0; color: var(--hub-muted); font-size: .83rem; line-height: 1.6; }
.hub-scenarios { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 18px; }
.hub-scenario { padding: 18px; border: 1px solid var(--hub-border); border-radius: 15px; background: var(--hub-panel-soft); }
.hub-scenario > span { color: var(--hub-blue); font: 650 .75rem/1.2 var(--hub-head); text-transform: uppercase; }
.hub-scenario strong { display: block; margin-top: 10px; color: var(--hub-gold); font: 800 1.55rem/1 var(--hub-head); }
.hub-scenario.negative { border-color: rgba(255,122,122,.35); }
.hub-scenario.negative strong { color: var(--hub-red); }
.hub-scenario.positive { border-color: rgba(93,214,170,.35); }
.hub-scenario.positive strong { color: var(--hub-green); }
.hub-scenario.neutral strong { color: var(--hub-blue); }
.hub-scenario p, .hub-scenario small { display: block; margin: 10px 0 0; color: var(--hub-muted); font-size: .79rem; line-height: 1.55; }
.hub-provider { margin-bottom: 14px; }
.hub-falsifiers { margin-top: 22px; padding: 19px; border: 1px solid rgba(255,122,122,.32); border-radius: 16px; background: rgba(255,122,122,.065); }
.hub-falsifiers > strong { color: var(--hub-red); font-family: var(--hub-head); }
.hub-falsifiers ol { margin: 12px 0 0; padding-left: 22px; color: var(--hub-muted); line-height: 1.75; }
.hub-related-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 11px; margin-top: 18px; }
.hub-related { display: flex; flex-direction: column; gap: 5px; padding: 15px; border: 1px solid var(--hub-border); border-radius: 13px; text-decoration: none; }
.hub-related strong { color: var(--hub-gold); font-family: var(--hub-head); }
.hub-related span { color: var(--hub-subtle); font-size: .78rem; }
.hub-source-list { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 10px; margin: 18px 0 0; padding: 0; list-style: none; }
.hub-source-list a { min-height: 88px; display: flex; flex-direction: column; gap: 7px; padding: 14px; border: 1px solid var(--hub-border); border-radius: 13px; text-decoration: none; }
.hub-source-list a:hover, .hub-source-list a:focus-visible { border-color: var(--hub-border-strong); outline: 2px solid rgba(229,197,134,.15); }
.hub-source-list strong { font: 650 .84rem/1.45 var(--hub-head); }
.hub-source-list span { color: var(--hub-subtle); font-size: .72rem; line-height: 1.45; }
.hub-source-group { margin-top: 20px; }
.hub-source-group > h3 { margin: 0 0 8px; color: var(--hub-gold); font: 700 .92rem/1.35 var(--hub-head); }
.hub-source-group .hub-source-list { margin-top: 0; }
.hub-unknown { width: min(720px, calc(100% - 40px)); margin: 70px auto; }
.hub-jump { min-height: 32px; padding: 6px 12px; border: 1px solid var(--hub-border-strong); border-radius: 999px; background: var(--hub-gold-soft); color: var(--hub-gold); font: 650 .74rem/1.2 var(--hub-head); cursor: pointer; }
.hub-jump:hover, .hub-jump:focus-visible { background: var(--hub-gold); color: #101620; outline: none; }
.hub-brandmarks { display: flex; flex-wrap: wrap; gap: 8px; margin-bottom: 4px; }
.hub-brandmark-chip { display: inline-flex; align-items: center; gap: 7px; padding: 6px 10px 6px 6px; border: 1px solid var(--hub-border); border-radius: 999px; background: rgba(255,255,255,.03); color: var(--hub-muted); font-size: .78rem; }
.hub-brandmark { height: 18px; width: auto; max-width: 60px; padding: 3px 6px; border-radius: 6px; background: #f2f3f6; object-fit: contain; }
.hub-companychain-core img.hub-brandmark { height: 30px; max-width: 110px; margin-bottom: 4px; }
.hub-companychain { display: grid; grid-template-columns: 1fr auto 1fr; gap: 14px; align-items: stretch; margin-top: 4px; }
.hub-companychain-col { display: flex; flex-direction: column; gap: 8px; }
.hub-companychain-col > span { color: var(--hub-blue); font: 700 .68rem/1.3 var(--hub-head); letter-spacing: .06em; text-transform: uppercase; }
.hub-companychain-node { padding: 10px 12px; border: 1px solid var(--hub-border); border-radius: 11px; background: var(--hub-panel-soft); color: var(--hub-muted); font-size: .78rem; line-height: 1.4; }
.hub-companychain-col.upstream .hub-companychain-node { border-left: 3px solid var(--hub-blue); }
.hub-companychain-col.downstream .hub-companychain-node { border-left: 3px solid var(--hub-green); }
.hub-companychain-core { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 8px; min-width: 140px; padding: 18px; border: 1px solid var(--hub-border-strong); border-radius: 16px; background: linear-gradient(145deg, var(--hub-gold-soft), var(--hub-panel-strong)); text-align: center; }
.hub-companychain-core > span { color: var(--hub-gold); font: 800 1rem/1 var(--hub-head); letter-spacing: .05em; }
.hub-companychain-core p { margin: 0; color: var(--hub-muted); font-size: .76rem; line-height: 1.5; }
.hub-money-map { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 18px; }
.hub-money-route { position: relative; min-height: 164px; padding: 18px; border: 1px solid var(--hub-border); border-radius: 16px; background: linear-gradient(145deg, rgba(122,183,240,.08), rgba(255,255,255,.025)); }
.hub-money-route::after { content: '→ Netflix'; display: block; margin-top: 14px; color: var(--hub-gold); font: 750 .78rem/1.2 var(--hub-head); }
.hub-money-route-icon { display: block; font-size: 2rem; line-height: 1; }
.hub-money-route strong { display: block; margin-top: 12px; color: var(--hub-text); font: 700 .92rem/1.35 var(--hub-head); }
.hub-money-route p { margin: 7px 0 0; color: var(--hub-muted); font-size: .82rem; line-height: 1.55; }
.hub-plain { margin-top: 10px !important; padding-top: 10px; border-top: 1px dashed var(--hub-border); color: #d7dce5 !important; }
.hub-media-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 14px; margin-top: 18px; }
.hub-media-card { min-width: 0; margin: 0; overflow: hidden; border: 1px solid var(--hub-border); border-radius: 16px; background: linear-gradient(145deg, rgba(17,27,46,.92), rgba(7,11,22,.98)); }
.hub-media-card > a { display: block; overflow: hidden; border-bottom: 1px solid var(--hub-border); background: #05070d; }
.hub-media-card img { display: block; width: 100%; aspect-ratio: 16 / 9; object-fit: cover; transition: transform .2s ease; }
.hub-media-card > a:hover img, .hub-media-card > a:focus-visible img { transform: scale(1.025); }
.hub-media-card > a:focus-visible { outline: 3px solid rgba(122,183,240,.5); outline-offset: -3px; }
.hub-media-card figcaption { padding: 14px; }
.hub-media-card figcaption strong { display: block; color: var(--hub-text); font: 700 .9rem/1.45 var(--hub-head); }
.hub-media-card figcaption p { margin: 7px 0 0; color: var(--hub-muted); font-size: .8rem; line-height: 1.58; }
.hub-media-card figcaption small { display: block; margin-top: 10px; color: var(--hub-subtle); font-size: .7rem; line-height: 1.5; }
.hub-media-card figcaption small a { color: var(--hub-blue); }
.hub-media-rights { margin: 9px 0 0; color: var(--hub-subtle); font-size: .7rem; line-height: 1.55; }
.hub-metrics-compact { grid-template-columns: repeat(2, minmax(0, 1fr)); margin-top: 0; }
.hub-narrative-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; margin-top: 18px; }
.hub-narrative-theme { padding: 17px; border: 1px solid var(--hub-border); border-radius: 15px; background: var(--hub-panel-soft); }
.hub-narrative-theme > div { display: flex; align-items: start; justify-content: space-between; gap: 12px; }
.hub-narrative-theme h3 { margin: 0; font: 700 .95rem/1.4 var(--hub-head); }
.hub-narrative-theme p { margin: 10px 0 0; color: var(--hub-muted); font-size: .84rem; line-height: 1.65; }
.hub-evidence-chip { display: block; margin-top: 10px; }
.hub-future-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 12px; margin-top: 18px; }
.hub-future-growth { padding: 17px; border: 1px solid var(--hub-border); border-radius: 15px; background: var(--hub-panel-soft); }
.hub-future-growth > div { display: flex; align-items: start; justify-content: space-between; gap: 10px; }
.hub-future-growth h3 { margin: 0; font: 700 .9rem/1.4 var(--hub-head); }
.hub-future-growth p { margin: 10px 0 0; padding-left: 10px; border-left: 3px solid var(--hub-border); color: var(--hub-muted); font-size: .8rem; line-height: 1.6; }
.hub-future-growth p.confirm { border-left-color: var(--hub-green); }
.hub-future-growth p.deny { border-left-color: var(--hub-red); }
.hub-future-growth p b { color: var(--hub-text); }
.hub-future-growth .hub-citations { display: block; margin: 10px 0 0 0; }
@media (max-width: 900px) {
    .hub-hero { grid-template-columns: auto minmax(0, 1fr); }
    .hub-hero-meta { grid-column: 1 / -1; align-items: flex-start; justify-self: start; }
    .hub-grid, .hub-data-grid, .hub-metrics { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .hub-chain { grid-template-columns: repeat(3, minmax(0, 1fr)); }
    .hub-narrative-grid, .hub-future-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .hub-media-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .hub-charts-grid { grid-template-columns: 1fr; }
    .hub-snapshot-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .hub-companychain { grid-template-columns: 1fr; }
    .hub-companychain-core { order: -1; }
}
@media (max-width: 620px) {
    .hub-shell { width: calc(100vw - 28px); max-width: calc(100vw - 28px); margin-inline: 14px; padding-top: 24px; }
    .hub-topbar { gap: 8px; padding-inline: 14px; }
    .hub-brand { min-width: 0; font-size: .78rem; letter-spacing: .04em; white-space: nowrap; }
    .hub-back { flex: 0 1 auto; max-width: 110px; padding-inline: 8px; font-size: .72rem; line-height: 1.25; text-align: center; }
    .hub-hero { grid-template-columns: 1fr; gap: 14px; padding: 20px; }
    .hub-logo { width: 64px; height: 64px; border-radius: 18px; }
    .hub-logo img { width: 38px; height: 38px; }
    .hub-hero-meta { width: 100%; min-width: 0; grid-column: auto; align-items: flex-start; }
    .hub-price-chip { max-width: 100%; white-space: normal; text-align: left; line-height: 1.45; }
    .hub-scoreboard, .hub-grid, .hub-grid.two, .hub-data-grid { grid-template-columns: 1fr; }
    .hub-metrics, .hub-moat-grid, .hub-risk-grid, .hub-timeline, .hub-price-clock, .hub-scenarios, .hub-related-grid, .hub-source-list, .hub-narrative-grid, .hub-future-grid, .hub-bullbear, .hub-snapshot-grid, .hub-beginner-grid, .hub-money-map, .hub-media-grid { grid-template-columns: 1fr; }
    .hub-chain { grid-template-columns: 1fr; }
    .hub-chain li { min-height: 72px; }
    .hub-exec { align-items: flex-start; flex-direction: column; }
    .hub-section-title { align-items: flex-start; flex-direction: column; gap: 5px; }
    .hub-section-title span { text-align: left; }
    .hub-score { min-height: 105px; }
    .hub-tabs-wrap { top: 64px; margin-inline: -14px; border-radius: 0; border-left: 0; border-right: 0; }
    .hub-tabs { flex-wrap: nowrap; overflow-x: auto; scrollbar-width: thin; }
    .hub-panel, .hub-panel-head, .hub-panel-head > div, .hub-card { min-width: 0; }
    .hub-panel { max-width: 100%; padding: 20px; }
    .hub-panel-head { flex-direction: column; }
    .hub-panel h2, .hub-panel-lead { overflow-wrap: anywhere; }
}
@media (prefers-reduced-motion: reduce) {
    html { scroll-behavior: auto; }
    *, *::before, *::after { transition-duration: .01ms !important; animation-duration: .01ms !important; }
}
