#valuation-main { width:100%; max-width:1200px; margin:0 auto; padding:12px 20px 76px; }

.valuation-hero { position:relative; min-height:176px; overflow:hidden; display:flex; align-items:center; padding:24px 34px; border:1px solid var(--border); border-radius:20px; background:var(--paper); box-shadow:0 28px 54px -36px var(--shadow); }
.valuation-hero::before { content:''; position:absolute; top:-190px; right:-65px; width:390px; height:390px; border-radius:50%; background:radial-gradient(circle,rgba(var(--blue-rgb),.12),rgba(var(--gold-rgb),.045) 38%,transparent 72%); }
.valuation-hero-copy { position:relative; z-index:2; max-width:920px; padding-right:180px; }
.valuation-hero h1 { white-space:nowrap; }
.valuation-orbit { position:absolute; top:50%; right:56px; width:128px; height:96px; transform:translateY(-50%); opacity:.85; }
.valuation-orbit span { position:absolute; right:0; left:0; height:1px; border-top:1px solid var(--border2); transform-origin:center; }
.valuation-orbit span:nth-child(1) { top:10px; transform:rotate(-14deg); border-color:rgba(var(--red-rgb),.65); }
.valuation-orbit span:nth-child(2) { top:37px; transform:rotate(-4deg); border-top-style:dashed; }
.valuation-orbit span:nth-child(3) { top:63px; transform:rotate(7deg); border-color:rgba(var(--green-rgb),.7); }
.valuation-orbit span:nth-child(4) { top:44px; left:69%; width:12px; height:12px; border:0; border-radius:50%; background:var(--gold); box-shadow:0 0 18px rgba(var(--gold-rgb),.7); animation:valuation-pulse 2.8s ease-in-out infinite; }

.valuation-card { margin-top:18px; overflow:hidden; border:1px solid var(--border); border-radius:18px; background:var(--paper); box-shadow:0 24px 52px -40px var(--shadow); }
.valuation-card-head { display:flex; align-items:flex-start; justify-content:space-between; gap:24px; padding:26px 28px 20px; border-bottom:1px solid var(--border); }
.valuation-card-head h2 { max-width:870px; margin-top:6px; font-size:clamp(20px,2.2vw,28px); line-height:1.28; letter-spacing:-.035em; }
.valuation-card-head h2 span { color:var(--gold); }
.valuation-card-head p { max-width:870px; margin-top:10px; color:var(--text2); font-size:15px; line-height:1.6; }
.valuation-export { flex:0 0 auto; min-height:38px; display:inline-flex; align-items:center; justify-content:center; gap:7px; padding:0 13px; border:1px solid var(--border2); border-radius:8px; background:var(--surface); color:var(--text2); font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; cursor:pointer; }
.valuation-export:hover { border-color:var(--gold); color:var(--gold); }
.valuation-export:disabled { cursor:wait; opacity:.65; }

.valuation-metrics { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); padding:0 20px; border-bottom:1px solid var(--border); background:var(--surface); }
.valuation-metrics > div { min-width:0; padding:15px 12px; border-right:1px solid var(--border); }
.valuation-metrics > div:last-child { border-right:0; }
.valuation-metrics dt { color:var(--muted); font-family:'IBM Plex Mono',monospace; font-size:10px; font-weight:700; letter-spacing:.075em; line-height:1.35; text-transform:uppercase; }
.valuation-metrics dd { margin-top:5px; overflow:hidden; color:var(--text); font-family:'IBM Plex Mono',monospace; font-size:14px; font-weight:700; line-height:1.35; text-overflow:ellipsis; white-space:nowrap; }
.valuation-metrics > div:nth-child(2) dd,.valuation-metrics > div:nth-child(3) dd { color:var(--blue); }
.valuation-metrics > div:nth-child(4) dd { color:var(--red); }

.valuation-tools { display:grid; grid-template-columns:minmax(190px,240px) minmax(190px,240px) auto auto 1fr; align-items:end; gap:9px; padding:16px 20px 6px; }
.valuation-tools label { display:grid; gap:6px; color:var(--muted); font-family:'IBM Plex Mono',monospace; font-size:10px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; }
.valuation-tools input { width:100%; height:38px; padding:0 11px; border:1px solid var(--border2); border-radius:7px; outline:0; background:var(--surface); color:var(--text); font-family:'IBM Plex Mono',monospace; font-size:13px; }
.valuation-tools input:focus { border-color:var(--blue); box-shadow:0 0 0 3px rgba(var(--blue-rgb),.12); }
.valuation-tools > button { height:38px; padding:0 13px; border:1px solid var(--border2); border-radius:7px; background:transparent; color:var(--text2); font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:700; letter-spacing:.055em; text-transform:uppercase; cursor:pointer; }
.valuation-tools > button:hover { border-color:var(--gold); color:var(--gold); }
.valuation-tools > p { align-self:center; max-width:360px; color:var(--muted); font-size:12px; line-height:1.45; }
.valuation-find-message { min-height:24px; padding:2px 20px 7px; color:var(--text2); font-size:13px; line-height:1.5; }
.valuation-find-message strong { color:var(--gold); }
.valuation-find-message:empty { display:none; }
.valuation-crossings { margin:8px 20px 12px; padding:12px 14px; border:1px solid var(--border); border-radius:10px; background:rgba(128,128,128,.035); color:var(--text2); }
.valuation-crossings summary { cursor:pointer; color:var(--text); font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:700; letter-spacing:.04em; }
.valuation-crossings ol { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:6px 24px; margin:12px 0 0; padding-left:22px; font-size:11px; line-height:1.5; }
.valuation-crossings li::marker { color:var(--gold); font-family:'IBM Plex Mono',monospace; }
/* Each episode is a real toggle button so it can be pinned from the keyboard.
   It is styled as list text, not as a control, but keeps a visible focus ring
   and a pressed state that matches the gold pin on the chart. */
.valuation-crossing-pin { display:block; width:100%; padding:2px 6px; border:1px solid transparent; border-radius:6px; background:none; color:inherit; font:inherit; text-align:left; cursor:pointer; transition:background .15s, border-color .15s, color .15s; }
.valuation-crossing-pin:hover { border-color:color-mix(in srgb,var(--gold) 45%,transparent); color:var(--text); }
.valuation-crossing-pin:focus-visible { outline:2px solid var(--gold); outline-offset:2px; }
.valuation-crossing-pin[aria-pressed="true"] { border-color:var(--gold); background:rgba(var(--gold-rgb),.12); color:var(--text); font-weight:600; }
@media (prefers-reduced-motion:reduce) { .valuation-crossing-pin { transition:none; } }

.valuation-chart-shell { position:relative; height:620px; margin:0 12px 12px; overflow:hidden; border:1px solid var(--border); border-radius:13px; background:var(--surface2); }
.valuation-chart-shell canvas { position:relative; z-index:1; width:100%; height:100%; }
.valuation-chart-loading { position:absolute; inset:0; z-index:2; display:grid; place-items:center; background:var(--surface2); color:var(--muted); font-family:'IBM Plex Mono',monospace; font-size:12px; letter-spacing:.05em; }
.valuation-chart-shell.is-ready .valuation-chart-loading { display:none; }
.valuation-interactive:fullscreen { overflow:auto; padding:18px; background:var(--paper); }
.valuation-interactive:fullscreen .valuation-chart-shell { height:calc(100vh - 210px); min-height:420px; }

.valuation-points { margin:0 20px 20px; overflow:hidden; border:1px solid var(--border); border-radius:10px; background:var(--surface); }
.valuation-points summary { padding:13px 15px; color:var(--blue); font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:700; letter-spacing:.055em; text-transform:uppercase; cursor:pointer; }
.valuation-points[open] summary { border-bottom:1px solid var(--border); }
.valuation-table-wrap { overflow-x:auto; }
.valuation-points table { width:100%; border-collapse:collapse; font-size:13px; }
.valuation-points th,.valuation-points td { padding:11px 14px; border-bottom:1px solid var(--border); text-align:left; }
.valuation-points tr:last-child td { border-bottom:0; }
.valuation-points th { color:var(--muted); font-family:'IBM Plex Mono',monospace; font-size:10px; letter-spacing:.06em; text-transform:uppercase; }
.valuation-points td { color:var(--text2); }
.valuation-points td:nth-child(2),.valuation-points td:nth-child(3) { color:var(--text); font-family:'IBM Plex Mono',monospace; font-weight:600; }

.valuation-methodology { margin-top:18px; padding:28px 30px; border:1px solid var(--border); border-radius:17px; background:var(--surface); }
.valuation-methodology-head { display:flex; align-items:flex-start; justify-content:space-between; gap:18px; }
.valuation-methodology-head h2 { margin-top:6px; font-size:22px; letter-spacing:-.025em; }
/* Valuation keeps its own surface tone inside the shared disclosure panel. */
.valuation-methodology.is-collapsible.is-open .methodology-content { padding:24px 26px; border-radius:14px; background:var(--surface); }
.valuation-methodology-head > span,.valuation-methodology-badge { padding:7px 10px; border:1px solid rgba(var(--green-rgb),.3); border-radius:999px; background:rgba(var(--green-rgb),.06); color:var(--green); font-family:'IBM Plex Mono',monospace; font-size:10px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; }
.valuation-methodology-grid { display:grid; grid-template-columns:1fr 1fr; gap:9px; margin-top:22px; }
.valuation-methodology-grid article { padding:18px; border:1px solid var(--border); border-radius:10px; background:var(--paper2); }
.valuation-methodology-grid article > span { color:var(--gold); font-family:'IBM Plex Mono',monospace; font-size:11px; font-weight:700; }
.valuation-methodology-grid h3 { margin-top:7px; font-size:15px; letter-spacing:.01em; }
.valuation-methodology-grid p { margin-top:8px; color:var(--text2); font-size:14px; line-height:1.62; }
.valuation-source-notice { display:grid; gap:9px; margin-top:18px; padding-top:17px; border-top:1px solid var(--border); }
.valuation-source-notice p { color:var(--muted); font-size:13px; line-height:1.62; }
.valuation-source-notice strong { color:var(--text2); }
.valuation-source-notice a { color:var(--blue); text-underline-offset:3px; }
.valuation-noscript { max-width:1200px; margin:16px auto; padding:15px 20px; color:var(--red); }

@keyframes valuation-pulse { 0%,100% { transform:scale(.9); opacity:.68; } 50% { transform:scale(1.14); opacity:1; } }

@media(max-width:980px) {
  .valuation-metrics { grid-template-columns:repeat(3,1fr); }
  .valuation-metrics > div:nth-child(3) { border-right:0; }
  .valuation-metrics > div:nth-child(-n+3) { border-bottom:1px solid var(--border); }
  .valuation-tools { grid-template-columns:1fr 1fr auto auto; }
  .valuation-tools > p { grid-column:1/-1; max-width:none; }
  .valuation-chart-shell { height:560px; }
  .valuation-crossings ol { grid-template-columns:repeat(2,minmax(0,1fr)); }
}

@media(max-width:700px) {
  #valuation-main { padding:8px 12px 55px; }
  .valuation-hero { min-height:190px; padding:21px 18px; border-radius:16px; }
  .valuation-hero-copy { max-width:none; padding-right:0; }
  .valuation-hero h1 { max-width:82%; font-size:clamp(21px,7vw,28px); line-height:1.1; white-space:normal; }
  .valuation-hero .hero-description { max-width:86%; }
  .valuation-orbit { top:25px; right:14px; width:58px; height:52px; transform:none; opacity:.56; }
  .valuation-orbit span:nth-child(1) { top:8px; }.valuation-orbit span:nth-child(2) { top:23px; }.valuation-orbit span:nth-child(3) { top:38px; }.valuation-orbit span:nth-child(4) { top:20px; width:9px; height:9px; }
  .valuation-card { margin-top:14px; border-radius:15px; }
  .valuation-card-head { align-items:stretch; flex-direction:column; gap:14px; padding:21px 18px 17px; }
  .valuation-card-head h2 { font-size:19px; }
  .valuation-card-head p { font-size:14px; }
  .valuation-export { width:100%; min-height:42px; }
  .valuation-metrics { grid-template-columns:1fr 1fr; padding:0; }
  .valuation-metrics > div { padding:13px 12px; border-right:1px solid var(--border); border-bottom:1px solid var(--border); }
  .valuation-metrics > div:nth-child(2n) { border-right:0; }
  .valuation-metrics > div:nth-last-child(-n+2) { border-bottom:0; }
  .valuation-metrics > div:nth-child(3) { border-right:1px solid var(--border); }
  .valuation-metrics dd { font-size:13px; }
  .valuation-tools { grid-template-columns:1fr 1fr; gap:8px; padding:15px 12px 5px; }
  .valuation-tools label { grid-column:1/-1; }
  .valuation-tools > button { min-height:42px; }
  .valuation-tools > p { font-size:11px; }
  .valuation-find-message { padding-inline:12px; font-size:12px; }
  .valuation-crossings { margin-inline:12px; }
  .valuation-crossings ol { grid-template-columns:1fr; }
  .valuation-chart-shell { height:470px; margin:0 5px 8px; border-radius:10px; }
  .valuation-points { margin:0 12px 15px; }
  .valuation-points th,.valuation-points td { min-width:116px; padding:10px 11px; }
  .valuation-points th:first-child,.valuation-points td:first-child { min-width:96px; }
  .valuation-methodology { padding:24px 18px; }
  .valuation-methodology-head { flex-direction:column; }
  .valuation-methodology-grid { grid-template-columns:1fr; }
  #valuation-main .macro-footer-links { flex-wrap:wrap; gap:2px 7px; }
  .valuation-interactive:fullscreen { padding:10px; }
  .valuation-interactive:fullscreen .valuation-chart-shell { height:70vh; min-height:390px; }
}

@media(max-width:390px) {
  .valuation-hero h1 { max-width:84%; font-size:clamp(19px,6.7vw,24px); }
  .valuation-hero .hero-description { max-width:90%; font-size:14px; }
  .valuation-card-head { padding-inline:15px; }
  .valuation-tools { grid-template-columns:1fr; }
  .valuation-tools > button { grid-column:auto; }
  .valuation-chart-shell { height:440px; }
  #valuation-snapshot,#valuation-fit { overflow:visible; text-overflow:clip; white-space:normal; }
}

@media(prefers-reduced-motion:reduce) {
  .valuation-orbit span:nth-child(4) { animation:none; }
}
