/* Shared foundations and components come from vendor/logan-brand.
   Stockboy owns chart geometry, compact data typography, and dialog layout. */
:root{
  --lb-page-width:1340px;--lb-page-gutter:28px;
  --navy:var(--lb-ink);--paper:var(--lb-canvas);--red:var(--lb-red);
  --green:var(--lb-green);--steel:var(--lb-steel);--line:var(--lb-border);
  --muted:var(--lb-muted);--surface:var(--lb-surface);--hover:var(--lb-hover);
  --grid-line:var(--lb-border);--code:var(--lb-muted);
  --score-hover:var(--lb-featured-hover);--score-text:var(--lb-ink);--score-muted:var(--lb-muted);
  /* Hatching and outlines distinguish missing observations from scored checks. */
  --score-empty-a:#c6cdca;--score-empty-b:#e2e6e4;--score-bar-border:#a6b1ad;
}
:root[data-theme="dark"]{--score-empty-a:#353d50;--score-empty-b:#172036;--score-bar-border:#657080}
body{-webkit-font-smoothing:antialiased}
button{cursor:pointer}
.chart-card:focus-visible,.score-chart:focus-visible,.research-row:focus-visible{outline-offset:-4px}
.sr-only{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
.topline{gap:var(--lb-space-6);padding:var(--lb-space-6) 0}
.wordmark{gap:10px;white-space:nowrap}
.brand-mark{display:block;width:44px;height:44px;flex:none}
.brand-mark-dark,:root[data-theme="dark"] .brand-mark-light{display:none}
:root[data-theme="dark"] .brand-mark-dark{display:block}
.search-wrap{position:relative;flex:1;max-width:470px;min-width:0;margin-left:auto}
#search{height:47px;padding-block:0;font-size:var(--lb-text-control)}
.theme-toggle{height:47px}
.search-results{position:absolute;z-index:10;top:51px;left:0;right:0;max-height:min(380px,calc(100dvh - 130px));overflow-y:auto;overscroll-behavior:contain;background:var(--surface);border:1px solid var(--line);box-shadow:0 14px 28px #0003}
.search-results[hidden]{display:none}
.result{display:flex;gap:16px;align-items:center;width:100%;padding:12px 14px;text-align:left;border:0;border-bottom:1px solid var(--line);background:var(--surface);color:var(--navy);font-size:12px}
.result:last-child{border-bottom:0}.result:hover,.result:focus-visible{background:var(--hover)}.result strong{min-width:45px;font-family:var(--lb-font-heading);font-size:11px}.result span{color:var(--muted)}.no-results{margin:0;padding:14px;color:var(--muted);font-size:12px}
.company-heading{display:flex;align-items:baseline;gap:18px;flex-wrap:wrap;padding:29px 0 15px}
.company-title{display:flex;align-items:center;gap:10px;min-width:0}
.company-heading h1{margin:0;font:600 clamp(25px,3vw,39px) var(--lb-font-heading);letter-spacing:-.065em;line-height:1.2}
.company-heading span{color:var(--muted);font-size:11px;letter-spacing:.02em}
.company-title .coverage-warning{display:inline-grid;place-items:center;flex:none;width:18px;height:18px;padding:0;background:transparent;border:2px solid var(--red);border-radius:50%;color:var(--red);font:700 11px/1 var(--lb-font-body);letter-spacing:0;cursor:pointer}
.company-title .coverage-warning[hidden]{display:none}
.chart-grid{margin-bottom:var(--lb-space-12)}
.chart-card,.score-chart{height:308px;gap:0;padding:22px var(--lb-space-6) 18px;border-top:0;border-left:0;text-align:left;line-height:1.3;cursor:pointer}
.chart-card{width:100%}
.chart-card:is(:hover,:focus-visible){background:var(--hover)}
.chart-card[data-status="strong"],.detail-chart[data-status="strong"]{--chart-color:var(--green)}
.chart-card[data-status="watch"],.detail-chart[data-status="watch"]{--chart-color:var(--red)}
.chart-card[data-status="review"],.detail-chart[data-status="review"]{--chart-color:var(--steel)}
.chart-card[data-status="no_data"],.detail-chart[data-status="no_data"]{--chart-color:var(--muted)}
.chart-card[data-status="no-data"],.detail-chart[data-status="no-data"]{--chart-color:var(--muted)}
.chart-card[data-status="unavailable"],.detail-chart[data-status="unavailable"]{--chart-color:var(--muted)}
.card-top{display:flex;justify-content:space-between;gap:12px;align-items:start;min-height:36px;font:600 13px/1.3 var(--lb-font-heading);letter-spacing:-.025em}
.card-top i{width:8px;height:8px;flex:none;margin-top:4px;background:var(--chart-color,var(--muted));border-radius:50%}
.card-top small{color:var(--score-muted);font:400 10px var(--lb-font-body);letter-spacing:0;white-space:nowrap}
.status-label{display:inline-flex;align-items:center;gap:6px;flex:none;color:var(--chart-color);font:500 10px var(--lb-font-body);letter-spacing:0;white-space:nowrap}
.status-label i{margin-top:0}
.chart-card .card-description{min-height:31px;margin:0;color:var(--muted);font-size:11px;line-height:1.4}
.card-value{margin-top:6px;font:600 clamp(25px,2.7vw,38px)/1 var(--lb-font-heading);letter-spacing:-.065em}
.card-recent{margin-top:7px;color:var(--muted);font-size:10px}
.card-recent[data-recent="strong"]{color:var(--green)}
.chart-visual{height:108px;margin:12px -4px 0;color:var(--chart-color,var(--steel))}
.chart-visual svg,.detail-chart svg{display:block;width:100%;height:100%}
.grid-line{stroke:var(--grid-line);stroke-width:1;stroke-dasharray:2 5}
.year-tick{stroke:var(--grid-line);stroke-width:1}
.trend-line{stroke:currentColor;stroke-width:2.7;fill:none;vector-effect:non-scaling-stroke;stroke-linecap:round;stroke-linejoin:round}
.chart-plot{position:relative;width:100%;height:100%;min-width:0;min-height:0}
.chart-dot{position:absolute;width:8px;height:8px;box-sizing:border-box;border:2px solid currentColor;border-radius:50%;background:var(--paper);transform:translate(-50%,-50%)}
.chart-card:is(:hover,:focus-visible) .chart-dot{background:var(--hover)}
.chart-empty{height:100%;display:grid;place-items:center;color:var(--muted);font-size:12px}
.card-foot{display:flex;justify-content:space-between;gap:10px;margin-top:auto;color:var(--muted);font-size:10px}
.score-chart{width:100%;color:var(--score-text)}
.score-chart:is(:hover,:focus-visible){background:var(--score-hover)}
.score-chart .card-top{color:var(--score-text)}
.score-value{margin:8px 0 7px;font:600 clamp(50px,5vw,68px)/1 var(--lb-font-heading);letter-spacing:-.1em}
.score-value small{margin-left:7px;color:var(--score-muted);font:600 17px var(--lb-font-heading);letter-spacing:-.06em}
.score-bars{display:flex;gap:4px;margin:5px 0 8px}
.score-bars i{height:25px;flex:1;border:1px solid var(--score-bar-border)}
.score-momentum{display:flex;align-items:baseline;gap:8px;flex-wrap:wrap;margin:9px 0 13px;color:var(--score-muted);font-size:10px}
.score-momentum strong{color:var(--score-text);font:600 13px var(--lb-font-heading);letter-spacing:-.03em}
.score-momentum[data-direction="up"] strong{color:var(--green)}
.score-momentum[data-direction="down"] strong{color:var(--red)}
.score-momentum[data-direction="steady"] strong{color:var(--steel)}
.score-momentum[data-direction="unavailable"] strong{color:var(--score-muted)}
.score-bars i.strong{background:var(--green);border-color:var(--green)}
.score-bars i.watch{background:var(--red);border-color:var(--red)}
.score-bars i.review{background:var(--steel);border-color:var(--steel)}
.score-bars i.no_data,.score-bars i.no-data,.score-bars i.unavailable{background:repeating-linear-gradient(45deg,var(--score-empty-a) 0 3px,var(--score-empty-b) 3px 6px)}
.score-legend{display:flex;flex-wrap:wrap;gap:5px 13px;color:var(--score-muted);font-size:10px}
.score-legend span{display:inline-flex;align-items:center;gap:5px;white-space:nowrap}
.score-legend i,.method-check-status i{display:inline-block;width:7px;height:7px;flex:none;border-radius:50%}
.score-legend i.strong,.method-check-status.strong i{background:var(--green)}
.score-legend i.watch,.method-check-status.watch i{background:var(--red)}
.score-legend i.review,.method-check-status.review i{background:var(--steel)}
.score-legend i.unavailable{background:var(--score-muted)}
.score-chart .card-foot{color:var(--score-muted)}
.research-section{margin-bottom:44px}
.research-heading{display:flex;align-items:baseline;gap:18px;flex-wrap:wrap;margin-bottom:15px}
.research-heading h2{margin:0;font:600 19px var(--lb-font-heading);letter-spacing:-.05em}
.research-heading p{margin:0;color:var(--muted);font-size:11px;line-height:1.5}
.research-row{grid-template-columns:minmax(150px,1.2fr) minmax(95px,.45fr) minmax(180px,1.6fr);gap:var(--lb-space-4);align-items:center;width:100%;min-height:73px;padding:var(--lb-space-3) var(--lb-space-4);border-top:0;border-left:0;border-right:0;background:transparent;color:var(--navy);text-align:left;cursor:pointer}
.research-row:is(:hover,:focus-visible){background:var(--hover)}
.research-main{display:flex;flex-direction:column;gap:4px}.research-title{font:600 12px var(--lb-font-heading);letter-spacing:-.02em}.research-description{color:var(--muted);font-size:10px;line-height:1.35}.research-value{font:600 17px var(--lb-font-heading);letter-spacing:-.05em}.research-prompt{color:var(--muted);font-size:11px;line-height:1.45}
.empty-state{padding:70px 0;color:var(--muted);font-size:14px}
.coverage-note{margin:0 0 16px;padding:13px 16px;border-left:3px solid var(--steel);background:var(--surface);color:var(--muted);font-size:12px;line-height:1.5}
.coverage-warning-note{border-left-color:var(--red)}
dialog{width:min(900px,calc(100% - 28px));max-height:88vh;border:1px solid var(--navy);padding:36px;background:var(--paper);color:var(--navy);box-shadow:0 30px 90px #0007}
dialog::backdrop{background:#101527bd}
.dialog-close{position:absolute;right:19px;top:15px;width:33px;height:33px;border:0;background:transparent;color:var(--navy);font-size:27px;line-height:1}
#dialog-title{margin:0 38px 5px 0;font:600 clamp(22px,3vw,34px) var(--lb-font-heading);letter-spacing:-.055em}
.method-disclaimer{margin:0 38px 22px 0;padding:3px 0 3px 12px;border-left:3px solid var(--red);color:var(--muted);font-size:12px;line-height:1.55}
.method-disclaimer strong{color:var(--navy);font-weight:600}
.detail-value{font:600 38px var(--lb-font-heading);letter-spacing:-.07em}
.detail-explanation{max-width:760px;margin-top:14px;color:var(--muted);font-size:12px;line-height:1.55}
.detail-explanation p{margin:5px 0}
.detail-explanation strong{color:var(--navy);font-weight:500}
.detail-formula{font-size:11px}
.method-intro{max-width:650px;margin:15px 0 24px;color:var(--muted);font-size:13px;line-height:1.55}
.method-score{display:flex;align-items:center;gap:24px;padding:19px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.method-score strong{white-space:nowrap;font:600 48px/1 var(--lb-font-heading);letter-spacing:-.08em}
.method-score small{margin-left:5px;color:var(--muted);font-size:16px}
.method-score span{color:var(--muted);font-size:12px;line-height:1.65}
.method-momentum{padding:15px 0;border-bottom:1px solid var(--line)}.method-momentum strong{font:600 12px var(--lb-font-heading)}.method-momentum p{margin:5px 0 0;color:var(--muted);font-size:11px;line-height:1.55}
.method-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:26px 38px;margin:28px 0 36px}
.method-grid h3,.lb-root .method-list-title{margin:0 0 8px;font:600 13px var(--lb-font-heading);letter-spacing:-.02em}
.method-grid p{margin:0;color:var(--muted);font-size:12px;line-height:1.6}
.method-list-title{margin-bottom:11px}
.method-list{border-top:1px solid var(--line)}
.method-check{display:grid;grid-template-columns:minmax(0,1fr) 100px;align-items:center;gap:14px;width:100%;min-height:42px;padding:9px 2px;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--navy);text-align:left;font-size:12px}
.method-check:is(:hover,:focus-visible){background:var(--hover)}
.method-check-status{display:inline-flex;align-items:center;gap:7px;color:var(--muted);font-size:11px}
.method-check-status.unavailable i{background:var(--muted)}
.detail-chart{height:230px;margin:22px 0 25px;color:var(--chart-color,var(--steel))}
.chart-with-axis{display:grid;grid-template-columns:max-content minmax(0,1fr);grid-template-rows:minmax(0,1fr);height:100%;gap:4px}
.y-axis-labels{position:relative;min-width:62px;color:var(--muted);font:11px var(--lb-font-body);font-variant-numeric:tabular-nums}
.y-axis-labels span{position:absolute;right:0;transform:translateY(-50%);white-space:nowrap}
.y-axis-line,.x-axis-line{stroke:var(--muted);stroke-width:1;vector-effect:non-scaling-stroke}
.x-axis-label{position:absolute;top:calc(86% + 12px);transform:translateX(-50%);color:var(--muted);font:11px var(--lb-font-body);font-variant-numeric:tabular-nums;white-space:nowrap}
.table-wrap{overflow:auto;max-height:38vh}
.lb-table{min-width:610px;font-size:12px}
.lb-table th{font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
td:nth-child(2){font-weight:500;white-space:nowrap}td div+div{margin-top:5px}
code{font:11px var(--lb-font-mono);color:var(--code)}td a{white-space:nowrap}
@media(max-width:900px){.chart-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:580px){
  :root{--lb-page-gutter:18px}
  .topline{display:grid;grid-template-columns:minmax(0,1fr) 44px;gap:var(--lb-space-4);padding:18px 0}
  .search-wrap{grid-column:1 / -1;grid-row:2;width:100%;max-width:none;margin:0}
  .theme-toggle{grid-column:2;grid-row:1}
  .company-heading{padding:25px 0 14px;gap:7px}
  .company-heading span{width:100%}
  .chart-grid{grid-template-columns:1fr}
  .chart-card,.score-chart{height:318px;padding:20px}
  .chart-card .card-description,.research-heading p,.research-description,.research-prompt{font-size:12px}
  .card-foot,.score-legend,.score-momentum{font-size:11px}
  .card-recent{font-size:11px}
  .research-row{grid-template-columns:minmax(0,1fr) auto;gap:9px;padding:14px 3px}.research-prompt{grid-column:1 / -1;grid-row:2}.research-value{font-size:15px}
  .card-value{font-size:36px}
  dialog{width:calc(100% - 16px);max-width:calc(100% - 16px);max-height:calc(100dvh - 16px);padding:20px}
  .detail-chart{height:180px}
  .x-axis-label:not([data-edge]){display:none}
  .detail-explanation{font-size:12px}
  .method-momentum p,.detail-formula{font-size:12px}
  .method-score{align-items:flex-start;gap:12px}
  .method-score strong{font-size:37px}
  .method-score small{font-size:13px}
  .method-grid{grid-template-columns:1fr;gap:20px;margin:24px 0 30px}
  .method-check{grid-template-columns:minmax(0,1fr) 75px;gap:8px}
  .method-check-status{font-size:10px}
  .table-wrap{max-height:none;overflow:visible}
  .lb-table{min-width:0}
  thead{display:none}
  tbody,tr,td{display:block;width:100%}
  tr{border-top:1px solid var(--line);padding:10px 0}
  .lb-table td{border:0;padding:3px 0;white-space:normal}
  td::before{content:attr(data-label);display:inline-block;width:76px;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.05em;vertical-align:top}
  td[data-label="SEC fact"]::before{display:block;width:auto;margin-bottom:4px}
  td[data-label="SEC fact"] div{padding-left:76px;overflow-wrap:anywhere}
}
@media(prefers-reduced-motion:reduce){.chart-card,.score-chart{transition:none}}

.score-basis{color:var(--score-muted);font-size:11px;margin-bottom:5px}
