:root {
  --forest: #0b1912;
  --forest-2: #10241a;
  --panel: #13261c;
  --panel-2: #172b21;
  --gold: #d0ae70;
  --gold-bright: #e2c88d;
  --ink: #f3f0e8;
  --muted: #a8b1a8;
  --quiet: #758279;
  --line: rgba(208, 174, 112, .22);
  --line-soft: rgba(235, 239, 231, .09);
  --green: #8bb69a;
  --red: #df9a82;
  --serif: "Libre Baskerville", Georgia, serif;
  --sans: "DM Sans", Arial, sans-serif;
  --mono: "DM Mono", Consolas, monospace;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--forest); font: 15px/1.5 var(--sans); }
button, input, textarea { font: inherit; }
button { color: inherit; }
a { color: inherit; text-decoration: none; }
button:focus-visible, a:focus-visible, input:focus-visible, textarea:focus-visible { outline: 2px solid var(--gold-bright); outline-offset: 3px; }
.shell { width: min(1180px, calc(100% - 48px)); margin: auto; }
.topbar { position:sticky; top:0; z-index:30; height:76px; border-bottom:1px solid var(--line-soft); display:flex; align-items:center; background:rgba(11,25,18,.96); backdrop-filter:blur(12px); }
.topbar-inner { display: flex; align-items: center; justify-content: space-between; width: 100%; }
.brand { display: flex; align-items: center; gap: 13px; }
.brand-mark { height: 48px; width: 88px; overflow: hidden; display: flex; align-items: center; justify-content: center; }
.brand-mark img { width: 100%; height: 100%; object-fit: cover; object-position: center; }
.brand-copy { display: grid; gap: 1px; }
.brand-copy strong { font: 12px var(--serif); letter-spacing: .16em; color: var(--gold-bright); }
.brand-copy span { color: var(--muted); font-size: 10px; letter-spacing: .15em; text-transform: uppercase; }
.nav-actions { display: flex; align-items: center; gap: 23px; }
.nav-link { color: var(--muted); font-size: 13px; }
.nav-link:hover { color: var(--ink); }
.button { min-height: 42px; padding: 0 18px; display: inline-flex; align-items: center; justify-content: center; gap: 9px; border: 1px solid var(--line); background: transparent; color: var(--ink); cursor: pointer; font-weight: 600; font-size: 13px; transition: background .18s ease, border-color .18s ease, transform .18s ease; }
.button:hover { border-color: var(--gold); background: rgba(208,174,112,.08); }
.button:active { transform: translateY(1px); }
.button.primary { background: var(--gold); border-color: var(--gold); color: #152016; }
.button.primary:hover { background: var(--gold-bright); border-color: var(--gold-bright); }
.button.quiet { color: var(--muted); border-color: transparent; }
.button.small { min-height: 35px; padding: 0 12px; font-size: 12px; }
.button:disabled { opacity: .42; cursor: not-allowed; }
.eyebrow { color: var(--gold); font-size: 10px; font-weight: 700; letter-spacing: .19em; text-transform: uppercase; }
.serif { font-family: var(--serif); font-weight: 400; }
.mono { font-family: var(--mono); font-variant-numeric: tabular-nums; }
.landing-hero { min-height: 520px; display: grid; grid-template-columns: 1.05fr .95fr; align-items: center; gap: 56px; padding: 62px 0 72px; }
.hero-copy { max-width: 610px; }
.hero-copy h1 { font: 400 clamp(38px, 5vw, 60px)/1.12 var(--serif); letter-spacing: -.04em; margin: 20px 0 22px; }
.hero-copy h1 em { color: var(--gold-bright); font-style: normal; }
.hero-copy p { color: #b6c0b7; font-size: 16px; line-height: 1.75; max-width: 490px; margin: 0 0 29px; }
.hero-actions { display: flex; gap: 12px; align-items: center; }
.microcopy { display: flex; align-items: center; gap: 9px; margin-top: 20px; color: var(--quiet); font-size: 11px; }
.microcopy .dot { width: 5px; height: 5px; background: var(--gold); border-radius: 50%; }
.hero-art { min-height: 365px; border: 1px solid var(--line); background: linear-gradient(145deg, rgba(29,51,38,.58), rgba(11,25,18,.25)); position: relative; padding: 28px; overflow: hidden; }
.hero-art:before { content:""; position:absolute; height:1px; width:78%; background: linear-gradient(90deg, transparent, var(--gold), transparent); transform: rotate(-27deg); top: 47%; left: 11%; opacity:.55; }
.art-label { display:flex; justify-content:space-between; align-items:center; color:var(--muted); font-size:10px; letter-spacing:.1em; text-transform:uppercase; position:relative; z-index:1; }
.art-label b { color:var(--green); font-weight:500; }
.art-figure { position:absolute; top: 89px; left:30px; z-index:1; }
.art-figure span { color:var(--muted); font-size:11px; display:block; letter-spacing:.11em; text-transform:uppercase; }
.art-figure strong { color:var(--ink); display:block; font: 41px var(--mono); margin-top:8px; letter-spacing:-.06em; }
.art-figure small { font-size:12px; color:var(--green); font-family:var(--sans); letter-spacing:0; }
.chart-carousel { position:absolute; inset:0; display:grid; grid-template-columns:38px 1fr 38px; align-items:center; z-index:1; }
.chart-carousel-content { height:100%; position:relative; }
.chart-arrow { width:30px; height:30px; display:grid; place-items:center; border:1px solid var(--line); background:rgba(8,20,13,.84); color:var(--gold-bright); cursor:pointer; font-size:16px; z-index:3; transition:background .18s ease, border-color .18s ease; }
.chart-arrow:hover { border-color:var(--gold); background:var(--panel); }
.chart-arrow-prev { justify-self:start; }.chart-arrow-next { justify-self:end; }
.home-chart { position:absolute; right:0; bottom:49px; width:63%; height:134px; display:flex; align-items:stretch; gap:17px; padding:0 10px; border-bottom:1px solid var(--line); }
.home-chart:before, .home-chart:after { content:""; position:absolute; left:0; width:100%; border-top:1px dashed rgba(255,255,255,.08); }
.home-chart:before { top:33%; }.home-chart:after { top:66%; }
.home-chart-group { flex:1; min-width:0; display:grid; grid-template-rows:1fr auto; align-items:end; gap:8px; text-align:center; color:var(--quiet); font:9px var(--mono); position:relative; z-index:1; }
.home-chart-bars { height:100%; display:flex; align-items:flex-end; justify-content:center; gap:5px; }
.home-chart-bar { width:min(30px,45%); min-height:14%; border:1px solid rgba(208,174,112,.45); border-bottom:0; background:linear-gradient(0deg,rgba(208,174,112,.08),rgba(208,174,112,.68)); }
.home-chart-bar.series-1 { background:linear-gradient(0deg,rgba(139,182,154,.08),rgba(139,182,154,.75)); border-color:rgba(139,182,154,.65); }
.home-chart-legend { position:absolute; right:0; top:49px; display:flex; gap:10px; color:var(--muted); font-size:9px; }
.home-chart-legend span { display:flex; align-items:center; gap:4px; }.home-chart-legend i { width:7px; height:7px; background:var(--gold); }.home-chart-legend .series-1 { background:var(--green); }
.chart-progress { position:absolute; right:0; bottom:20px; display:flex; gap:5px; }.chart-progress i { width:17px; height:2px; background:var(--quiet); }.chart-progress i.active { background:var(--gold); }
.art-note { position:absolute; left:30px; bottom:29px; width:27%; color:var(--muted); font:11px/1.5 var(--serif); }
.trust-strip { border-top:1px solid var(--line-soft); border-bottom:1px solid var(--line-soft); padding:20px 0; display:flex; gap:40px; justify-content:center; color:#c2c9c0; font-size:12px; }
.trust-strip span { display:flex; gap:9px; align-items:center; }
.trust-strip svg { color:var(--gold); width:15px; height:15px; }
.section { padding:80px 0; }
.section-heading { display:flex; justify-content:space-between; align-items:flex-end; gap:20px; margin-bottom:32px; }
.section-heading h2 { font:400 32px var(--serif); margin:10px 0 0; letter-spacing:-.03em; }
.section-heading p { color:var(--muted); margin:0; max-width:350px; font-size:13px; }
.steps { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.step { padding:25px 25px 27px 0; position:relative; }
.step + .step { padding-left:25px; border-left:1px solid var(--line-soft); }
.step-label { color:var(--gold); font:11px var(--mono); }
.step h3 { margin:19px 0 9px; font:20px var(--serif); }
.step p { margin:0; color:var(--muted); font-size:13px; line-height:1.7; max-width:310px; }
.market-preview { padding-bottom:30px; }
.market-preview-grid { display:grid; grid-template-columns:1.45fr .8fr; gap:18px; }
.market-panel { border:1px solid var(--line-soft); background:var(--panel); padding:25px; }
.market-panel-wide { min-height:312px; position:relative; overflow:hidden; }
.preview-metrics { display:grid; grid-template-columns:repeat(3,1fr); gap:13px; margin:24px 0 18px; }
.preview-metrics > div { border-left:1px solid var(--line); padding-left:13px; }.preview-metrics span { display:block; color:var(--muted); font-size:9px; letter-spacing:.06em; text-transform:uppercase; }.preview-metrics strong { display:block; margin-top:8px; color:var(--ink); font:19px var(--mono); letter-spacing:-.05em; }.preview-metrics small { display:block; color:var(--green); font-size:9px; margin-top:4px; }
.preview-chart { position:absolute; left:25px; right:25px; bottom:20px; height:107px; border-bottom:1px solid var(--line); }.preview-chart:before, .preview-chart:after { content:""; position:absolute; left:0; width:100%; border-top:1px dashed rgba(255,255,255,.08); }.preview-chart:before { top:33%; }.preview-chart:after { top:66%; }
.preview-chart-bars { height:87px; display:flex; gap:14px; align-items:flex-end; padding:0 10px; position:relative; z-index:1; }.preview-chart-bars i { display:block; flex:1; max-width:48px; border:1px solid var(--gold); border-bottom:0; background:linear-gradient(0deg,rgba(208,174,112,.2),rgba(208,174,112,.75)); }
.preview-chart-years { display:flex; justify-content:space-around; color:var(--quiet); font:9px var(--mono); padding-top:7px; }
.health-preview { display:flex; flex-direction:column; }.preview-grade { width:67px; height:67px; margin:6px 0 14px; display:grid; place-items:center; color:var(--gold-bright); border:1px solid var(--line); font:30px var(--serif); }.health-preview > strong { font-size:13px; font-weight:500; }.health-preview > p { color:var(--muted); font-size:11px; line-height:1.65; margin:7px 0 auto; }.health-mini-row { display:flex; justify-content:space-between; gap:12px; border-top:1px solid var(--line-soft); padding-top:11px; margin-top:11px; color:var(--muted); font-size:10px; }.health-mini-row b { color:var(--green); font:11px var(--mono); }
.capability-band { background:#101e16; border-top:1px solid var(--line-soft); border-bottom:1px solid var(--line-soft); padding:76px 0; }
.capability-grid { display:grid; grid-template-columns:repeat(3,1fr); border:1px solid var(--line); }.capability-card { padding:27px; min-height:237px; }.capability-card + .capability-card { border-left:1px solid var(--line); }.capability-number { color:var(--gold); font:11px var(--mono); }.capability-card h3 { font:20px var(--serif); margin:18px 0 9px; }.capability-card p { margin:0; color:var(--muted); font-size:12px; line-height:1.75; }.capability-tag { display:inline-block; margin-top:18px; color:var(--green); font-size:10px; }
.portfolio-preview { margin-top:18px; padding:28px; border:1px solid var(--line); background:linear-gradient(120deg,rgba(29,51,38,.52),rgba(16,30,22,.72)); display:grid; grid-template-columns:.85fr 1.15fr; gap:40px; align-items:center; }.portfolio-preview h3 { font:23px var(--serif); margin:9px 0; }.portfolio-preview p { color:var(--muted); font-size:12px; line-height:1.7; margin:0; max-width:370px; }.portfolio-table { border:1px solid var(--line-soft); background:rgba(6,18,11,.42); }.portfolio-table > div { display:grid; grid-template-columns:1.35fr .8fr .65fr; gap:10px; align-items:center; padding:12px 14px; border-bottom:1px solid var(--line-soft); color:var(--muted); font-size:10px; }.portfolio-table > div:last-child { border-bottom:0; }.portfolio-table strong { color:var(--ink); font-size:11px; font-weight:500; }.portfolio-table b { color:var(--green); font-weight:500; }.portfolio-table-head { color:var(--quiet)!important; font-size:8px!important; letter-spacing:.08em; text-transform:uppercase; }
.package-band { background:#101e16; border-top:1px solid var(--line-soft); border-bottom:1px solid var(--line-soft); padding:66px 0; }
.package-card { max-width:850px; margin:auto; border:1px solid var(--line); background:var(--panel); display:grid; grid-template-columns:1fr auto; align-items:center; gap:24px; padding:30px 34px; }
.package-card h2 { font:23px var(--serif); margin:8px 0; }
.package-card p { color:var(--muted); margin:0; font-size:13px; }
.price { text-align:right; }
.price strong { font:32px var(--mono); color:var(--gold-bright); display:block; }
.price span { color:var(--muted); font-size:11px; }
.price .button { margin-top:12px; }
.footer { border-top:1px solid var(--line-soft); padding:24px 0; color:var(--quiet); font-size:11px; }
.footer-inner { display:flex; align-items:center; justify-content:space-between; }
.footer-links { display:flex; gap:20px; }
.app-main { min-height:calc(100vh - 76px); padding:40px 0 72px; }
.page-head { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:30px; }
.page-head h1 { font:400 34px var(--serif); margin:7px 0 0; }
.page-head p { color:var(--muted); margin:8px 0 0; font-size:13px; }
.eyebrow-row { display:flex; align-items:center; gap:10px; }
.badge { border:1px solid var(--line); color:var(--gold-bright); background:rgba(208,174,112,.07); padding:6px 9px; font-size:10px; text-transform:uppercase; letter-spacing:.08em; display:inline-flex; align-items:center; gap:7px; }
.badge .status-dot { width:6px; height:6px; border-radius:50%; background:var(--gold); }
.badge.good { color:var(--green); border-color:rgba(139,182,154,.3); background:rgba(139,182,154,.07); }
.badge.good .status-dot { background:var(--green); }
.panel { border:1px solid var(--line-soft); background:var(--panel); }
.panel-pad { padding:24px; }
.onboard-layout { display:grid; grid-template-columns:260px minmax(0,1fr); gap:38px; align-items:start; }
.progress-rail { position:sticky; top:20px; }
.progress-title { color:var(--quiet); font-size:10px; letter-spacing:.13em; text-transform:uppercase; margin-bottom:17px; }
.progress-item { display:flex; gap:12px; position:relative; padding-bottom:24px; color:var(--quiet); font-size:12px; }
.progress-item:not(:last-child):before { content:""; position:absolute; height:calc(100% - 22px); border-left:1px solid var(--line-soft); top:22px; left:10px; }
.progress-item.active, .progress-item.done { color:var(--ink); }
.progress-icon { width:21px; height:21px; border:1px solid var(--line); color:var(--gold); display:grid; place-items:center; font:10px var(--mono); flex:none; z-index:1; background:var(--forest); }
.progress-item.done .progress-icon { background:var(--gold); color:var(--forest); }
.content-column { max-width:780px; }
.content-column > h2 { font:25px var(--serif); margin:0 0 9px; }
.content-column > p { color:var(--muted); margin:0 0 23px; font-size:13px; }
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; margin-top:19px; }
.field { display:grid; gap:7px; }
.field.full { grid-column:1/-1; }
.field label { color:#c5cdc5; font-size:11px; }
.field input, .field textarea { border:1px solid var(--line-soft); background:#0c1c13; padding:12px; color:var(--ink); min-height:44px; }
.field textarea { min-height:100px; resize:vertical; }
.field input::placeholder, .field textarea::placeholder { color:#647167; }
.checkline { display:flex; gap:11px; align-items:flex-start; margin:18px 0; color:var(--muted); font-size:12px; }
.checkline input { accent-color:var(--gold); margin-top:3px; }
.nda-text { padding:18px; border-left:2px solid var(--gold); background:#0d1d14; color:#bac3b9; font:12px/1.8 var(--sans); max-height:250px; overflow:auto; }
.nda-text strong { color:var(--ink); }
.actions-row { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:24px; }
.actions-right { display:flex; gap:10px; margin-left:auto; }
.file-list { margin-top:21px; display:grid; gap:10px; }
.file-row { padding:15px; border:1px solid var(--line-soft); background:#102117; display:grid; grid-template-columns:1fr auto; gap:14px; align-items:center; }
.file-info { display:flex; gap:12px; align-items:flex-start; }
.file-icon { width:34px; height:34px; display:grid; place-items:center; border:1px solid var(--line); color:var(--gold); flex:none; }
.file-info strong { font-size:12px; font-weight:600; display:block; }
.file-info span { color:var(--quiet); font-size:10px; display:block; margin-top:4px; }
.file-row input[type=file] { display:none; }
.file-action { border:1px solid var(--line); background:transparent; color:var(--gold-bright); padding:8px 11px; font-size:11px; cursor:pointer; }
.file-action:hover { background:rgba(208,174,112,.08); }
.file-state { font-size:10px; color:var(--green); margin-top:4px; }
.conditional { opacity:.82; }
.callout { padding:14px 16px; border:1px solid var(--line); color:var(--muted); font-size:12px; background:rgba(208,174,112,.04); margin-top:18px; }
.waiting-card { text-align:center; padding:62px 35px; max-width:690px; margin:30px auto; }
.waiting-mark { width:56px;height:56px;margin:0 auto 20px;border:1px solid var(--line);display:grid;place-items:center;color:var(--gold);font:22px var(--serif); }
.waiting-card h2 { font:27px var(--serif); margin:0 0 12px; }
.waiting-card p { color:var(--muted); max-width:450px; margin:0 auto 22px; font-size:13px; }
.timeline { margin:25px auto 0; padding-top:20px; border-top:1px solid var(--line-soft); display:flex; justify-content:center; gap:28px; color:var(--quiet); font-size:10px; }
.timeline .complete { color:var(--green); }
.dash-top { display:grid; grid-template-columns:1fr auto; gap:20px; align-items:end; margin-bottom:21px; }
.dash-company { color:var(--muted); font-size:12px; }
.tabs { display:flex; gap:3px; border-bottom:1px solid var(--line); overflow-x:auto; margin-bottom:20px; scrollbar-width:thin; }
.tab { padding:12px 15px; border:0; border-bottom:2px solid transparent; margin-bottom:-1px; background:transparent; white-space:nowrap; color:var(--muted); cursor:pointer; font-size:12px; }
.tab:hover { color:var(--ink); }
.tab.active { color:var(--gold-bright); border-bottom-color:var(--gold); }
.metric-grid { display:grid; grid-template-columns:repeat(4,1fr); border:1px solid var(--line-soft); background:var(--line-soft); gap:1px; margin-bottom:18px; }
.metric { background:var(--panel); min-height:119px; padding:19px; }
.metric-label { color:var(--muted); font-size:10px; letter-spacing:.06em; text-transform:uppercase; }
.metric-value { margin-top:17px; font:23px var(--mono); color:var(--ink); letter-spacing:-.04em; }
.metric-value.gold { color:var(--gold-bright); }
.metric-sub { color:var(--quiet); font-size:10px; margin-top:4px; }
.dash-grid { display:grid; grid-template-columns:1.35fr .85fr; gap:18px; }
.panel-title { display:flex; justify-content:space-between; gap:15px; align-items:flex-start; margin-bottom:17px; }
.panel-title h3 { margin:0; font:17px var(--serif); }
.panel-title p { margin:4px 0 0; color:var(--quiet); font-size:10px; }
.health-grade { display:flex; align-items:center; gap:18px; margin:15px 0; }
.grade { width:66px;height:66px; border:1px solid var(--line); display:grid; place-items:center; color:var(--gold-bright); font:30px var(--serif); }
.health-copy strong { display:block; font-size:13px; font-weight:500; }
.health-copy span { color:var(--muted); display:block; font-size:11px; margin-top:4px; }
.summary-copy { border-top:1px solid var(--line-soft); padding-top:14px; color:#bdc5bc; font:12px/1.7 var(--sans); }
.bar-chart { height:175px; display:flex; align-items:end; gap:16px; padding:14px 5px 0; border-bottom:1px solid var(--line-soft); position:relative; }
.bar-chart:before, .bar-chart:after { content:""; position:absolute; width:100%; left:0; border-top:1px dashed rgba(255,255,255,.08); }
.bar-chart:before { top:35%; }.bar-chart:after { top:67%; }
.bar-group { flex:1; height:100%; display:flex; flex-direction:column; justify-content:end; align-items:center; gap:7px; position:relative; z-index:1; }
.bar { width:min(42px,70%); background:linear-gradient(0deg,rgba(208,174,112,.22),rgba(208,174,112,.75)); border:1px solid var(--gold); border-bottom:0; min-height:8px; }
.bar-year { color:var(--quiet); font:9px var(--mono); }
.chart-foot { display:flex; justify-content:space-between; margin-top:11px; color:var(--quiet); font-size:9px; }
.chart-foot span:before { content:""; display:inline-block; width:7px;height:7px;background:var(--gold);margin-right:7px; }
.section-stack { display:grid; gap:18px; }
.table-wrap { overflow:auto; }
table { width:100%; border-collapse:collapse; font-size:11px; }
th { color:var(--quiet); font-size:9px; font-weight:500; text-align:right; text-transform:uppercase; letter-spacing:.06em; padding:10px 12px; border-bottom:1px solid var(--line); }
th:first-child, td:first-child { text-align:left; }
td { padding:12px; border-bottom:1px solid var(--line-soft); text-align:right; color:#d7ddd5; }
td:first-child { color:var(--muted); }
tr:last-child td { border-bottom:0; }
.positive { color:var(--green); }.negative { color:var(--red); }
.bar-horizontal { display:grid; gap:14px; }
.range-row { display:grid; grid-template-columns:88px 1fr 94px; align-items:center; gap:12px; font-size:11px; }
.range-track { height:7px; background:#0c1c13; border:1px solid var(--line-soft); position:relative; }
.range-fill { height:100%; background:var(--gold); }
.range-value { font:10px var(--mono); color:var(--ink); text-align:right; }
.sensitivity { display:grid; grid-template-columns:repeat(6,1fr); gap:1px; background:var(--line-soft); border:1px solid var(--line-soft); }
.sens-cell { background:var(--panel); text-align:right; padding:12px 9px; font:10px var(--mono); }
.sens-cell.head { text-align:center; color:var(--gold); background:#102117; font-size:9px; }
.sens-cell.label { text-align:left; color:var(--muted); background:#102117; }
.check-list { display:grid; gap:0; }
.check-item { padding:12px 0; border-bottom:1px solid var(--line-soft); display:flex; justify-content:space-between; gap:12px; font-size:11px; color:#d0d8cf; }
.check-item:last-child { border:0; }
.check-item span:last-child { color:var(--green); font-size:10px; }
.admin-table { width:100%; }
.admin-table th, .admin-table td { text-align:left; }
.admin-table .right { text-align:right; }
.admin-select { color:var(--gold-bright); border:1px solid var(--line); background:#0d1d14; padding:6px 8px; font-size:10px; }
.admin-grid { display:grid; grid-template-columns:.85fr 1.15fr; gap:18px; align-items:start; }
.client-list { display:grid; }
.client-row { padding:14px 0; border-bottom:1px solid var(--line-soft); display:flex; justify-content:space-between; gap:12px; align-items:center; cursor:pointer; }
.client-row:last-child { border:0; }.client-row.selected .client-name { color:var(--gold-bright); }
.client-name { font-size:12px; }.client-email { color:var(--quiet); font-size:10px; margin-top:3px; }
.admin-form .form-grid { margin-top:0; }
.admin-form .field input { min-height:38px; padding:8px 10px; }
.empty { color:var(--quiet); font-size:12px; padding:20px 0; }
.modal-backdrop { position:fixed; inset:0; background:rgba(0,0,0,.72); display:grid; place-items:center; z-index:10; padding:20px; }
.modal { width:min(460px,100%); border:1px solid var(--line); background:var(--forest-2); padding:28px; box-shadow:0 18px 60px rgba(0,0,0,.36); }
.modal h2 { font:24px var(--serif); margin:8px 0; }
.modal p { color:var(--muted); font-size:12px; margin:0 0 18px; }
.modal-close { float:right; border:0; background:none; color:var(--muted); font-size:20px; cursor:pointer; }
.toast { position:fixed; bottom:22px; left:50%; transform:translate(-50%,20px); padding:11px 17px; background:#e3d6b6; color:#152016; font-size:12px; opacity:0; pointer-events:none; transition:.2s; z-index:20; }
.toast.show { opacity:1; transform:translate(-50%,0); }
.notice { padding:11px 14px; border:1px solid var(--line); color:var(--muted); font-size:11px; margin-bottom:16px; }
.hero-rule { color:var(--quiet); font-size:11px; margin-top:18px; }
@media (max-width:900px) {
  .landing-hero { grid-template-columns:1fr; gap:30px; padding:55px 0; }
  .hero-art { min-height:330px; }
  .market-preview-grid, .portfolio-preview { grid-template-columns:1fr; }
  .portfolio-preview { gap:23px; }
  .onboard-layout { grid-template-columns:1fr; gap:22px; }
  .progress-rail { position:static; display:flex; align-items:flex-start; gap:0; }
  .progress-title { display:none; }
  .progress-item { flex:1; gap:8px; font-size:10px; padding-bottom:0; }
  .progress-item:not(:last-child):before { width:calc(100% - 20px); height:0; top:10px; left:26px; border-left:0; border-top:1px solid var(--line-soft); }
  .progress-item > span:last-child { max-width:100px; }
  .dash-grid, .admin-grid { grid-template-columns:1fr; }
  .metric-grid { grid-template-columns:repeat(2,1fr); }
}
@media (max-width:600px) {
  .shell { width:calc(100% - 32px); }
  .topbar { height:66px; }.brand-mark { width:72px;height:40px; }.brand-mark img { width:100%;height:100%; }
  .brand-copy strong { font-size:10px; }.brand-copy span { font-size:8px; }
  .nav-actions { gap:8px; }.nav-actions .nav-link { display:none; }.nav-actions .button { min-height:36px;padding:0 11px;font-size:11px; }
  .hero-copy h1 { font-size:39px; }.hero-copy p { font-size:14px; }.hero-actions { align-items:stretch; flex-direction:column; max-width:230px; }
  .hero-art { min-height:300px; padding:18px; }.art-figure { left:10px; top:74px; }.art-figure strong { font-size:29px; }.art-note { left:10px;bottom:32px;font-size:9px;width:30%; }.home-chart { right:4px; bottom:48px; width:57%; height:104px; gap:7px; padding:0 4px; }.home-chart-legend { top:47px; right:3px; gap:5px; font-size:8px; }.home-chart-bars { gap:3px; }.chart-progress { right:5px; bottom:19px; }.chart-arrow { width:27px;height:27px; }.chart-carousel { grid-template-columns:27px 1fr 27px; }
  .trust-strip { gap:13px; justify-content:flex-start; flex-wrap:wrap; font-size:10px; }.trust-strip span { min-width:42%; }
  .section { padding:55px 0; }.section-heading { align-items:flex-start; flex-direction:column; }.section-heading h2 { font-size:27px; }.steps { grid-template-columns:1fr; }.step { padding:20px 0; }.step + .step { border-left:0;border-top:1px solid var(--line-soft);padding-left:0; }
  .market-preview { padding-bottom:16px; }.market-panel { padding:18px; }.market-panel-wide { min-height:326px; }.preview-metrics { grid-template-columns:1fr; gap:10px; margin:18px 0; }.preview-metrics > div { display:flex; align-items:baseline; gap:8px; }.preview-metrics strong { margin-top:0; font-size:16px; }.preview-metrics small { margin:0 0 0 auto; }.preview-chart { left:18px;right:18px; }.capability-band { padding:55px 0; }.capability-grid { grid-template-columns:1fr; }.capability-card { min-height:0; padding:23px; }.capability-card + .capability-card { border-left:0; border-top:1px solid var(--line); }.portfolio-preview { padding:22px; }.portfolio-table > div { grid-template-columns:1.2fr .75fr .65fr; padding:11px 9px; gap:5px; }.portfolio-table strong { font-size:10px; }
  .package-band { padding:44px 0; }.package-card { padding:22px;grid-template-columns:1fr; }.price { text-align:left;display:flex;align-items:center;gap:15px;flex-wrap:wrap; }.price .button { margin:0 0 0 auto; }
  .footer-inner { align-items:flex-start; gap:13px; flex-direction:column; }.app-main { padding:28px 0 55px; }.page-head { align-items:flex-start;flex-direction:column; }.page-head h1 { font-size:29px; }.panel-pad { padding:17px; }
  .form-grid { grid-template-columns:1fr; }.field.full { grid-column:auto; }.actions-row { align-items:stretch;flex-direction:column; }.actions-right { margin:0; }.actions-right .button { flex:1; }
  .file-row { grid-template-columns:1fr; }.file-action { justify-self:start; margin-left:46px; }.dash-top { align-items:start;grid-template-columns:1fr; }.metric { min-height:98px;padding:14px; }.metric-value { font-size:19px;margin-top:12px; }.tabs { margin-right:-16px; }.tab { padding:11px 12px; }
  .timeline { gap:10px; flex-wrap:wrap; }.range-row { grid-template-columns:72px 1fr 80px;gap:8px; }.sensitivity { grid-template-columns:repeat(6,minmax(55px,1fr));overflow:auto; }.sens-cell { padding:10px 5px;font-size:9px; }
}
@media (prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important;transition:none!important; } }

/* Homepage research previews: show comparable trends with their context. */
.market-preview-grid { grid-template-columns:minmax(0,1.55fr) minmax(300px,.85fr); align-items:stretch; }
.market-panel-wide { min-height:0; overflow:visible; }
.performance-chart { margin-top:20px; }
.performance-legend,.ratio-legend { display:flex; gap:18px; color:var(--muted); font-size:9px; }
.performance-legend span,.ratio-legend span { display:inline-flex; align-items:center; gap:6px; }
.performance-legend i,.ratio-legend i { display:inline-block; width:9px; height:9px; }
.revenue-key,.revenue-bar { background:var(--gold); }
.sde-key,.sde-bar { background:var(--green); }
.performance-plot { height:145px; position:relative; margin:14px 0 10px; border-bottom:1px solid var(--line); }
.performance-gridline { position:absolute; left:30px; right:0; border-top:1px dashed rgba(255,255,255,.1); }
.performance-gridline:nth-child(1) { top:0; }.performance-gridline:nth-child(2) { top:33.3%; }.performance-gridline:nth-child(3) { bottom:0; }
.performance-gridline span { position:absolute; right:calc(100% + 8px); top:-7px; color:var(--quiet); font:8px var(--mono); }
.performance-groups { position:absolute; inset:0 0 0 36px; display:grid; grid-template-columns:repeat(3,1fr); }
.performance-year { height:100%; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; color:var(--quiet); font:9px var(--mono); }
.performance-bars { width:min(78px,70%); height:calc(100% - 18px); display:flex; justify-content:center; align-items:flex-end; gap:5px; }
.performance-bars i { width:21px; max-width:40%; display:block; border:1px solid rgba(255,255,255,.12); border-bottom:0; }
.performance-year > span { padding:5px 0 0; }
.performance-values { display:grid; gap:5px; color:var(--muted); font:9px var(--mono); }
.performance-values b { display:inline-block; width:100px; color:var(--quiet); font:8px var(--sans); text-transform:uppercase; letter-spacing:.04em; }
.chart-takeaway,.health-context,.portfolio-caption { color:var(--muted); font-size:10px; line-height:1.55; }
.chart-takeaway { border-top:1px solid var(--line-soft); margin:12px 0 0; padding-top:10px; }
.health-preview { min-width:0; }
.health-summary { display:grid; grid-template-columns:1fr 1fr; gap:10px; margin:16px 0 4px; }
.health-summary > div { border-left:1px solid var(--line); padding-left:10px; }
.health-summary span,.health-summary small { display:block; color:var(--muted); font-size:8px; }
.health-summary strong { display:block; margin:5px 0 3px; color:var(--ink); font:15px var(--mono); }
.liquidity-chart { position:relative; height:125px; margin-top:12px; border-bottom:1px solid var(--line); }
.ratio-reference { position:absolute; z-index:0; top:50%; left:0; right:0; border-top:1px dashed rgba(208,174,112,.6); }
.ratio-reference span { position:absolute; right:0; top:-13px; color:var(--gold); background:var(--panel); padding-left:4px; font-size:7px; }
.ratio-groups { position:absolute; inset:0; display:grid; grid-template-columns:repeat(3,1fr); }
.ratio-year { display:flex; flex-direction:column; align-items:center; justify-content:flex-end; color:var(--quiet); font:8px var(--mono); }
.ratio-bars { height:calc(100% - 31px); width:68px; display:flex; justify-content:center; align-items:flex-end; gap:5px; }
.ratio-bars i { display:block; width:19px; max-width:40%; border:1px solid rgba(255,255,255,.12); border-bottom:0; }
.current-ratio-bar { background:var(--gold); }.quick-ratio-bar { background:var(--green); }
.ratio-year > span { padding-top:5px; }
.ratio-year small { color:var(--muted); font-size:7px; white-space:nowrap; padding:3px 0 4px; }
.current-key { background:var(--gold); }.quick-key { background:var(--green); }
.health-context { margin:9px 0 0; }
.portfolio-preview { grid-template-columns:minmax(270px,.8fr) minmax(0,1.2fr); gap:28px; }
.portfolio-intro p { max-width:390px; }
.portfolio-summary { display:grid; grid-template-columns:repeat(3,1fr); gap:10px; margin-top:21px; padding-top:14px; border-top:1px solid var(--line-soft); }
.portfolio-summary > div { min-width:0; }
.portfolio-summary strong { display:block; color:var(--ink); font:15px var(--mono); }
.portfolio-summary span { display:block; margin-top:4px; color:var(--quiet); font-size:8px; }
.portfolio-table-wrap { min-width:0; }
.portfolio-table { overflow:hidden; }
.portfolio-table > div { grid-template-columns:minmax(145px,1.5fr) .8fr .7fr .85fr; padding:12px 10px; gap:8px; font:9px var(--mono); }
.portfolio-table strong { font:10px var(--sans); }
.portfolio-table b { font:10px var(--mono); white-space:nowrap; }
.portfolio-table-head { font:7px var(--sans)!important; }
.portfolio-caption { margin:8px 0 0; font-size:9px; }
@media (max-width:900px) {
  .portfolio-preview { grid-template-columns:1fr; }
}
@media (max-width:600px) {
  .market-preview-grid { grid-template-columns:1fr; }
  .performance-values b { width:88px; }
  .portfolio-preview { overflow:hidden; }
  .portfolio-table-wrap { overflow-x:auto; }
  .portfolio-table { min-width:475px; }
}

/* Company-research style visuals, adapted for owner earnings and business health. */
.insight-chart { margin:10px 0 4px; }
.insight-chart svg { display:block; width:100%; height:auto; min-height:175px; overflow:visible; }
.insight-grid { stroke:var(--line-soft); stroke-dasharray:4 5; }
.insight-axis { fill:var(--muted); font:11px var(--mono); }
.insight-line { fill:none; stroke-width:3; stroke-linecap:round; stroke-linejoin:round; }
.revenue-line { stroke:var(--gold); }.earnings-line { stroke:var(--green); }
.insight-dot { stroke:var(--panel); stroke-width:2; }.revenue-dot { fill:var(--gold); }.earnings-dot { fill:var(--green); }
.insight-chart figcaption,.chart-caption { color:var(--muted); font-size:10px; line-height:1.65; margin:7px 0 12px; }
.chart-legend { display:flex; align-items:center; flex-wrap:wrap; gap:10px 18px; color:var(--muted); font-size:10px; margin:8px 0 14px; }
.chart-legend span { display:inline-flex; align-items:center; gap:7px; }.chart-legend i { display:inline-block; width:9px; height:9px; border-radius:50%; background:var(--gold); }.chart-legend .earnings-dot { background:var(--green); }.chart-legend .current-ratio { background:var(--gold); }.chart-legend .quick-ratio { background:var(--green); }
.compact-table { margin-top:9px; }.compact-table table { min-width:470px; }.compact-table td,.compact-table th { padding:9px 10px; }
.statement-tabs { display:flex; flex-wrap:wrap; border-bottom:1px solid var(--line); margin:2px 0 0; gap:4px; }
.statement-tab { border:0; border-bottom:2px solid transparent; padding:11px 14px; background:transparent; color:var(--muted); cursor:pointer; font-size:11px; }
.statement-tab:hover,.statement-tab.active { color:var(--gold-bright); border-bottom-color:var(--gold); }
.statement-panel { border-top:0; }.statement-panel .table-wrap { margin-top:4px; }.statement-total td { color:var(--gold-bright); font-weight:600; border-top:1px solid var(--line); }
.bridge-chart { display:grid; gap:12px; margin:20px 0 15px; }
.bridge-row { display:grid; grid-template-columns:minmax(130px,1fr) minmax(120px,2fr) minmax(75px,.8fr); gap:12px; align-items:center; color:var(--muted); font-size:10px; }
.bridge-row strong { color:var(--ink); font:11px var(--mono); text-align:right; }.bridge-track { height:14px; background:rgba(255,255,255,.04); border-left:1px solid var(--line); border-radius:2px; overflow:hidden; }
.bridge-fill { display:block; height:100%; background:rgba(208,174,112,.66); border-right:1px solid var(--gold-bright); }.bridge-fill.expense { background:rgba(223,154,130,.55); border-color:var(--red); }.bridge-fill.subtotal { background:rgba(139,182,154,.45); border-color:var(--green); }.bridge-fill.adjustment { background:rgba(208,174,112,.32); border-color:var(--gold); }.bridge-fill.total { background:var(--green); border-color:#b3d2bb; }
.buyer-lens { border-top:1px solid var(--line-soft); margin-top:16px; padding-top:12px; display:grid; gap:4px; color:var(--muted); font-size:10px; }.buyer-lens b { color:var(--gold-bright); font-size:11px; font-weight:500; }
.buyer-factors { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:1px; border:1px solid var(--line-soft); background:var(--line-soft); margin-top:12px; }.buyer-factors article { background:var(--panel); padding:16px; display:grid; gap:5px; }.buyer-factors b { color:var(--gold-bright); font-size:11px; font-weight:500; }.buyer-factors span { color:var(--muted); font-size:10px; line-height:1.55; }
.value-range { padding:24px 8px 5px; }.value-range-track { height:8px; position:relative; margin:0 8%; background:var(--line-soft); border-radius:10px; }.value-range-track span { position:absolute; left:0; width:100%; height:100%; background:linear-gradient(90deg,rgba(208,174,112,.35),rgba(139,182,154,.8)); border-radius:10px; }.value-range-track i { position:absolute; z-index:1; top:50%; width:13px; height:13px; border:2px solid var(--panel); background:var(--gold-bright); border-radius:50%; transform:translate(-50%,-50%); box-shadow:0 0 0 1px var(--gold); }.value-range-track i:nth-child(2) { background:var(--green); box-shadow:0 0 0 1px var(--green); }.value-range-track i:nth-child(3) { background:var(--gold-bright); }
.value-range-labels { display:grid; grid-template-columns:repeat(3,1fr); gap:8px; margin-top:17px; color:var(--muted); font:10px var(--mono); }.value-range-labels span { display:grid; gap:4px; }.value-range-labels span:nth-child(2) { text-align:center; }.value-range-labels span:last-child { text-align:right; }.value-range-labels b { color:var(--quiet); font:9px var(--sans); text-transform:uppercase; letter-spacing:.05em; }
.ratio-chart { margin:20px 0 4px; }.ratio-year { display:grid; grid-template-columns:42px 1fr; gap:10px; margin:12px 0; align-items:center; }.ratio-year > strong { color:var(--muted); font:10px var(--mono); }.ratio-bars { display:grid; gap:5px; }.ratio-bar { display:flex; justify-content:flex-end; align-items:center; min-width:42px; height:17px; padding:0 6px; }.ratio-bar b { color:#101a13; font:9px var(--mono); }.ratio-bar.current-ratio { background:rgba(208,174,112,.84); }.ratio-bar.quick-ratio { background:rgba(139,182,154,.8); }.ratio-axis { display:flex; justify-content:space-between; margin:7px 0 0 52px; border-top:1px solid var(--line); padding-top:5px; color:var(--quiet); font:9px var(--mono); }.ratio-guide { color:var(--quiet); font-size:9px; }
.margin-chart { display:grid; gap:16px; margin:16px 0; }.margin-year { display:grid; grid-template-columns:38px 1fr; gap:8px 12px; align-items:center; }.margin-year > b { grid-row:span 2; color:var(--muted); font:10px var(--mono); }.margin-year > div { display:grid; grid-template-columns:42px 1fr 45px; align-items:center; gap:8px; }.margin-label { color:var(--quiet); font-size:9px; }.margin-track { display:block; height:8px; background:var(--line-soft); border-radius:4px; overflow:hidden; }.margin-track em { display:block; height:100%; background:var(--gold); border-radius:4px; }.margin-track em.sde-margin { background:var(--green); }.margin-year strong { text-align:right; color:var(--ink); font:10px var(--mono); }
@media (max-width:600px) { .bridge-row { grid-template-columns:minmax(90px,1fr) minmax(70px,1fr) 75px; gap:7px; font-size:9px; }.bridge-row strong { font-size:9px; }.buyer-factors { grid-template-columns:1fr; }.statement-tab { padding:10px 9px; font-size:10px; }.insight-chart svg { min-height:135px; }.ratio-guide { flex-basis:100%; }.value-range-labels { font-size:8px; }.margin-year { grid-template-columns:31px 1fr; gap:7px; }.margin-year > div { grid-template-columns:35px 1fr 39px; gap:5px; } }

/* Income statement charts: detailed flow and margin analysis in the branded dashboard palette. */
.statement-chart-card { margin-bottom:14px; }
.statement-chart-card .panel-title { margin-bottom:10px; }
.income-flow-wrap { overflow-x:auto; border:1px solid var(--line-soft); background:linear-gradient(180deg,rgba(18,39,29,.48),rgba(10,24,18,.38)); }
.income-flow-svg { display:block; width:100%; min-width:670px; height:auto; }
.flow-baseline { stroke:var(--line); stroke-width:1; }
.flow-band { stroke:none; opacity:.54; }
.flow-band.expense-band { fill:var(--green); }
.flow-band.profit-band { fill:var(--gold); }
.flow-band.adjustment-band { fill:var(--green); opacity:.28; }
.flow-node.total { fill:var(--gold-bright); }.flow-node.expense { fill:var(--red); }.flow-node.profit { fill:var(--green); }.flow-node.adjustment { fill:var(--gold); }
.flow-label { fill:var(--ink); font:11px var(--sans); }
.flow-value { fill:var(--muted); font:10px var(--mono); }
.income-margin-layout { display:grid; grid-template-columns:minmax(0,1fr) 220px; gap:18px; align-items:center; }
.income-margin-figure { min-width:0; margin:4px 0; }
.income-margin-figure svg { display:block; width:100%; height:auto; min-height:170px; overflow:visible; }
.margin-grid { stroke:var(--line-soft); stroke-dasharray:3 4; }
.margin-axis-label { fill:var(--quiet); font:9px var(--mono); }
.income-margin-line { fill:none; stroke-width:2.5; stroke-linecap:round; stroke-linejoin:round; }
.income-margin-line.gross { stroke:var(--green); }.income-margin-line.reported { stroke:var(--gold); }.income-margin-line.sde { stroke:var(--gold-bright); stroke-dasharray:5 3; }.income-margin-line.cash { stroke:var(--red); }
.income-margin-point.gross { fill:var(--green); }.income-margin-point.reported { fill:var(--gold); }.income-margin-point.sde { fill:var(--gold-bright); }.income-margin-point.cash { fill:var(--red); }
.income-margin-legend { display:grid; gap:11px; padding:13px; border:1px solid var(--line); background:rgba(11,25,18,.42); }
.income-margin-legend div { display:flex; align-items:center; gap:8px; color:var(--muted); font-size:10px; }
.income-margin-legend i { width:8px; height:8px; flex:none; border-radius:50%; background:var(--green); }
.income-margin-legend i.reported { background:var(--gold); }.income-margin-legend i.sde { background:var(--gold-bright); }.income-margin-legend i.cash { background:var(--red); }
.chart-values-disclosure { margin-top:9px; border-top:1px solid var(--line-soft); padding-top:10px; color:var(--muted); font-size:10px; }
.chart-values-disclosure summary { cursor:pointer; color:var(--green); }
.chart-values-disclosure .table-wrap { margin-top:9px; }
.sankey-stage-headings,.sankey-label-groups { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:10px; }
.sankey-stage-headings { padding:5px 10px 9px; color:var(--muted); font-size:11px; text-align:center; text-transform:uppercase; letter-spacing:.045em; }
.sankey-viewport { overflow-x:auto; border:1px solid var(--line-soft); background:linear-gradient(180deg,rgba(18,39,29,.45),rgba(10,24,18,.3)); }
.income-sankey { display:block; width:100%; min-width:760px; height:auto; }
.sankey-link { stroke:none; opacity:.45; }
.sankey-link.expense { fill:var(--red); }.sankey-link.profit { fill:var(--green); }.sankey-node.total { fill:var(--gold-bright); }.sankey-node.expense { fill:var(--red); }.sankey-node.profit { fill:var(--green); }
.sankey-label-groups { padding:13px 8px 0; }
.sankey-label-groups > div { display:grid; align-content:start; gap:10px; }
.sankey-label-groups > div > div { min-width:0; display:grid; grid-template-columns:9px minmax(0,1fr); gap:4px 7px; align-items:center; color:var(--muted); font-size:11px; line-height:1.45; }
.sankey-label-groups i { grid-row:span 2; width:9px; height:9px; border-radius:50%; background:var(--green); }
.sankey-label-groups i.expense { background:var(--red); }.sankey-label-groups i.total { background:var(--gold-bright); }
.sankey-label-groups strong { color:var(--ink); font:11px var(--mono); white-space:nowrap; }
.statement-section th { padding:9px 8px 6px; border-top:1px solid var(--line); color:var(--gold-bright); text-align:left; font-size:10px; letter-spacing:.04em; text-transform:uppercase; }
.income-margin-line.normalized { stroke:var(--gold); stroke-dasharray:2 4; }.income-margin-line.fcf { stroke:var(--red); stroke-dasharray:7 3; }
.income-margin-point.normalized { fill:var(--gold); }.income-margin-point.fcf { fill:var(--red); }
.income-margin-legend i.normalized { background:var(--gold); }.income-margin-legend i.fcf { background:var(--red); }
@media (max-width:760px) { .income-margin-layout { grid-template-columns:1fr; }.income-margin-legend { grid-template-columns:repeat(2,minmax(0,1fr)); }.income-margin-figure svg { min-height:145px; } }

/* Home page: larger reading scale, calmer grouping, and gentle section flow. */
html { scroll-snap-type:none; scroll-padding-top:0; }
.home-page > .landing-hero,
.home-page > .market-preview,
.home-page > .capability-band,
.home-page > .section,
.home-page > .package-band { scroll-snap-align:none; scroll-margin-top:0; }
.home-page > .landing-hero { min-height:min(690px,calc(100svh - 76px)); }
.home-reveal { opacity:0; transform:translateY(18px); transition:opacity .55s ease,transform .55s cubic-bezier(.2,.7,.2,1); }
.home-reveal.is-visible { opacity:1; transform:translateY(0); }
.home-page .button { min-height:48px; }
.home-page .chart-arrow { width:44px; height:44px; }
.home-page .section-heading { margin-bottom:36px; }
.home-page .section-heading p { font-size:15px; line-height:1.7; max-width:410px; }
.home-page .section-heading h2 { font-size:clamp(30px,3vw,38px); }
.market-preview-grid { grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; }
.market-panel { padding:30px; }
.market-panel-wide { min-height:0; }
.panel-title h3 { font-size:23px; }
.panel-title p { font-size:12px; }
.preview-metrics { grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin:26px 0 22px; }
.preview-metrics span { font-size:11px; }
.preview-metrics strong { font-size:24px; }
.preview-metrics small { font-size:12px; line-height:1.5; }
.performance-chart { margin-top:24px; }
.performance-legend,.ratio-legend { gap:20px; font-size:12px; }
.performance-legend i,.ratio-legend i { width:11px; height:11px; }
.performance-plot { height:190px; margin:18px 0 14px; }
.performance-gridline { left:38px; }
.performance-gridline span { font-size:11px; right:calc(100% + 10px); }
.performance-groups { left:44px; }
.performance-year { font-size:12px; }
.performance-bars { height:calc(100% - 24px); width:min(110px,72%); gap:8px; }
.performance-bars i { width:27px; }
.performance-year > span { padding-top:7px; }
.performance-values { gap:8px; font-size:12px; }
.performance-values b { width:128px; font-size:10px; }
.chart-takeaway,.health-context { font-size:13px; line-height:1.65; }
.chart-takeaway { margin-top:17px; padding-top:14px; }
.chart-takeaway strong,.health-context strong { color:var(--gold-bright); font-weight:600; display:block; margin-bottom:3px; }
.health-summary { gap:16px; margin:24px 0 12px; }
.health-summary > div { padding-left:14px; }
.health-summary span,.health-summary small { font-size:11px; line-height:1.5; }
.health-summary strong { font-size:25px; margin:6px 0 4px; }
.liquidity-chart { height:210px; margin:16px 0 14px; }
.ratio-reference { top:50%; }
.ratio-reference span { top:-17px; font-size:10px; padding:0 5px; }
.home-ratio-year { position:relative; z-index:1; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; color:var(--muted); font:12px var(--mono); }
.home-ratio-bars { height:calc(100% - 42px); width:90px; display:flex; justify-content:center; align-items:flex-end; gap:8px; }
.home-ratio-bars i { width:30px; max-width:42%; display:block; border:1px solid rgba(255,255,255,.14); border-bottom:0; }
.home-current-ratio-bar { background:var(--gold); }.home-quick-ratio-bar { background:var(--green); }
.home-ratio-year > span { padding-top:7px; }
.home-ratio-year small { color:var(--muted); font-size:10px; white-space:nowrap; padding:4px 0 6px; }
.health-context { margin:18px 0 0; }
.portfolio-preview { margin-top:24px; gap:36px; padding:34px; }
.portfolio-preview h3 { font-size:27px; line-height:1.35; }
.portfolio-preview p { font-size:14px; }
.portfolio-summary strong { font-size:20px; }
.portfolio-summary span { font-size:11px; }
.portfolio-table > div { padding:15px 12px; font-size:12px; }
.portfolio-table strong,.portfolio-table b { font-size:12px; }
.portfolio-table-head { font-size:10px!important; }
.portfolio-caption { font-size:11px; }
@media (max-width:900px) {
  .market-preview-grid { grid-template-columns:1fr; }
  .market-panel { padding:26px; }
  .home-page > .landing-hero { min-height:0; }
}
@media (max-width:600px) {
  html { scroll-snap-type:none; }
  .home-page > .landing-hero { padding-top:48px; padding-bottom:50px; }
  .home-page .section-heading p { font-size:14px; }
  .market-panel { padding:21px; }
  .preview-metrics { gap:12px; }
  .preview-metrics > div { display:block; padding-left:10px; }
  .preview-metrics strong { margin-top:5px; font-size:20px; }
  .preview-metrics small { display:block; margin:4px 0 0; font-size:11px; }
  .performance-plot { height:165px; }
  .performance-values b { width:112px; }
  .performance-values { font-size:10px; }
  .liquidity-chart { height:180px; }
  .home-ratio-bars { width:70px; }
  .home-ratio-bars i { width:24px; }
  .home-ratio-year small { font-size:8px; }
  .portfolio-preview { padding:23px; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; scroll-snap-type:none; }
  .home-reveal { opacity:1; transform:none; transition:none; }
}

/* Use more of wide screens across the marketing pages and client dashboard. */
.shell { width:min(1680px,calc(100% - 96px)); }
.topbar { height:120px; }
.topbar-inner { position:relative; }
.brand { gap:0; flex:none; }
.brand-mark { width:198px; height:108px; }
.brand-copy { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); text-align:center; white-space:nowrap; }
.brand-copy strong { font-size:15px; }
.brand-copy span { font-size:11px; }
.landing-hero { gap:clamp(56px,6vw,112px); }
.app-main { padding-top:52px; }
.dash-top { margin-bottom:26px; }
.metric { min-height:138px; padding:24px; }
.metric-value { font-size:26px; }
.dash-grid { grid-template-columns:minmax(0,1.45fr) minmax(420px,.85fr); gap:24px; }
.panel-pad { padding:30px; }
.section-stack { gap:24px; }
.table-wrap { max-width:100%; }
.package-card { max-width:1120px; }
@media (max-width:1100px) {
  .shell { width:calc(100% - 64px); }
  .dash-grid { grid-template-columns:minmax(0,1.2fr) minmax(340px,.8fr); }
}
@media (max-width:900px) {
  .topbar { height:102px; }
  .brand-copy { position:static; transform:none; text-align:left; white-space:normal; }
  .brand { gap:12px; }
  .brand-mark { width:165px; height:90px; }
  .brand-copy strong { font-size:12px; }
  .brand-copy span { font-size:9px; }
  .dash-grid { grid-template-columns:1fr; }
}
@media (max-width:600px) {
  .shell { width:calc(100% - 32px); }
  .topbar { height:100px; }
  .brand-mark { width:162px; height:88px; }
  .brand-copy { display:none; }
  .nav-actions .button { min-height:42px; }
  .app-main { padding-top:30px; }
  .metric { padding:16px; }
  .metric-value { font-size:20px; }
  .panel-pad { padding:19px; }
}

/* Make the three service options easy to scan as a practical overview. */
.capability-card { display:flex; flex-direction:column; min-height:320px; }
.capability-number { display:block; color:var(--gold-bright); font:500 34px/1 var(--mono); letter-spacing:-.07em; }
.capability-card h3 { margin:16px 0 14px; }
.capability-list { display:grid; gap:11px; margin:0; padding:0 0 0 17px; color:var(--muted); font-size:12px; line-height:1.6; }
.capability-list li { padding-left:2px; }
.capability-list li::marker { color:var(--gold); font-size:.85em; }
@media (max-width:900px) {
  .capability-card { min-height:0; }
}

.capability-heading { display:flex; align-items:center; gap:14px; margin-bottom:18px; }
.capability-heading h3 { margin:0; color:var(--ink); }
.portfolio-preview { row-gap:20px; }
.portfolio-caption { grid-column:1 / -1; width:100%; max-width:none!important; margin:0; border-top:1px solid var(--line-soft); padding-top:12px; color:var(--muted); font-size:12px; }
@media (max-width:900px) {
  .capability-card { min-height:0; }
}

/* Compact year by year figures beneath the performance chart. */
.performance-values { display:table; width:100%; margin-top:10px; border-collapse:collapse; color:var(--muted); font:11px var(--mono); }
.performance-values th,.performance-values td { padding:8px 10px; border-bottom:1px solid var(--line-soft); text-align:right; white-space:nowrap; }
.performance-values thead th { color:var(--quiet); font:9px var(--sans); letter-spacing:.06em; text-transform:uppercase; }
.performance-values th:first-child { text-align:left; }
.performance-values tbody th { color:var(--ink); font:10px var(--sans); }
.performance-values tbody tr:last-child th,.performance-values tbody tr:last-child td { border-bottom:0; }
.portfolio-preview { row-gap:0; padding-top:24px; padding-bottom:24px; }
.capability-list { font-size:14px; line-height:1.65; gap:12px; }
.portfolio-table-head { font:12px var(--sans)!important; }
.growth-chart { display:block; width:100%; height:auto; margin:10px 0 0; overflow:visible; }
.growth-gridline { stroke:rgba(255,255,255,.12); stroke-dasharray:3 5; }
.growth-axis { stroke:var(--line); }
.growth-chart text { fill:var(--quiet); font:11px var(--mono); }
.growth-chart .growth-axis-title { fill:var(--muted); font:10px var(--sans); }
.growth-chart .growth-year { fill:var(--muted); text-anchor:middle; }
.growth-chart .growth-tick { text-anchor:end; }
.growth-series { fill:none; stroke-width:3; stroke-linecap:round; stroke-linejoin:round; }
.revenue-series { stroke:var(--gold); }
.gross-series { stroke:#8ab99d; }
.ebitda-series { stroke:#77b8c8; }
.cashflow-series { stroke:#d48760; }
.revenue-points circle { fill:var(--gold); }
.gross-points circle { fill:#8ab99d; }
.ebitda-points circle { fill:#77b8c8; }
.cashflow-points circle { fill:#d48760; }
.growth-legend { display:flex; flex-wrap:wrap; gap:10px 18px; margin-top:10px; color:var(--muted); font-size:12px; }
.growth-legend span { display:flex; align-items:center; gap:6px; }
.growth-legend i { display:inline-block; width:10px; height:10px; border-radius:50%; }
.growth-legend .revenue-key { background:var(--gold); }
.growth-legend .gross-key { background:#8ab99d; }
.growth-legend .ebitda-key { background:#77b8c8; }
.growth-legend .cashflow-key { background:#d48760; }
.liquidity-values { display:table; width:100%; margin-top:12px; border-collapse:collapse; color:var(--muted); font:12px var(--mono); }
.liquidity-values th,.liquidity-values td { padding:8px 10px; border-bottom:1px solid var(--line-soft); text-align:right; white-space:nowrap; }
.liquidity-values thead th { color:var(--quiet); font:10px var(--sans); letter-spacing:.05em; text-transform:uppercase; }
.liquidity-values th:first-child { text-align:left; }
.liquidity-values tbody th { color:var(--ink); font:11px var(--sans); }
.liquidity-values tbody tr:last-child th,.liquidity-values tbody tr:last-child td { border-bottom:0; }
.performance-values,.liquidity-values { display:table; width:100%; margin:10px 0 0; border-collapse:collapse; color:var(--muted); font:12px var(--mono); }
.performance-values th,.performance-values td,.liquidity-values th,.liquidity-values td { padding:9px 10px; border-bottom:1px solid var(--line-soft); text-align:right; white-space:nowrap; }
.performance-values thead th,.liquidity-values thead th { color:var(--quiet); font:10px var(--sans); letter-spacing:.05em; text-transform:uppercase; }
.performance-values th:first-child,.liquidity-values th:first-child { text-align:left; }
.performance-values tbody th,.liquidity-values tbody th { color:var(--ink); font:11px var(--sans); }
.performance-values tbody tr:last-child th,.performance-values tbody tr:last-child td,.liquidity-values tbody tr:last-child th,.liquidity-values tbody tr:last-child td { border-bottom:0; }
.growth-legend,.ratio-legend { justify-content:center; margin-top:12px; }
.health-summary .trend-up { color:var(--green); }
.performance-chart { margin-top:16px; }
.growth-chart { width:100%; height:210px; margin:16px 0 14px; }
.preview-metrics,.health-summary { min-height:76px; margin:24px 0 12px; }
.performance-values { font-size:10px; }
.performance-values th,.performance-values td { padding:6px 10px; }
.performance-values thead th { font-size:9px; }
.performance-values tbody th { font-size:10px; }

/* Keep the two homepage financial panels aligned row for row. */
.market-panel {
  display:grid;
  grid-template-rows:auto 100px 210px 154px 30px;
  align-content:start;
}
.performance-chart { display:contents; }
.preview-metrics,.health-summary { box-sizing:border-box; height:76px; min-height:0; margin:24px 0 0; }
.growth-chart,.liquidity-chart { box-sizing:border-box; height:210px; margin:0; }
.performance-values,.liquidity-values { box-sizing:border-box; height:154px; margin:0; table-layout:fixed; }
.growth-legend,.ratio-legend { min-height:30px; margin:0; align-items:center; }

/* Package selection shown after the homepage Get started action. */
.package-page { min-height:calc(100vh - 166px); padding:64px 0 56px; background:radial-gradient(ellipse at 50% 0%,rgba(34,61,44,.34),transparent 58%); }
.package-intro { max-width:760px; text-align:center; }
.package-back { display:inline-block; margin-bottom:30px; color:var(--muted); font-size:12px; }
.package-back:hover { color:var(--gold-bright); }
.package-intro h1 { margin:10px 0 12px; color:var(--ink); font:400 clamp(32px,4vw,46px)/1.12 var(--serif); letter-spacing:-.035em; }
.package-intro p { max-width:560px; margin:0 auto; color:var(--muted); font-size:14px; line-height:1.7; }
.package-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); align-items:stretch; gap:20px; margin-top:42px; }
.plan-card { display:flex; flex-direction:column; min-height:430px; padding:30px; border:1px solid var(--line); background:linear-gradient(155deg,rgba(24,47,34,.92),rgba(13,29,21,.98)); }
.plan-card h2 { margin:10px 0 9px; color:var(--ink); font:400 28px var(--serif); }
.plan-description { min-height:48px; margin:0; color:var(--muted); font-size:12px; line-height:1.65; }
.plan-price { display:flex; align-items:baseline; flex-wrap:wrap; gap:9px; margin:23px 0 20px; padding-bottom:20px; border-bottom:1px solid var(--line-soft); }
.plan-price strong { color:var(--gold-bright); font:400 36px var(--mono); letter-spacing:-.06em; }
.plan-price span { color:var(--muted); font-size:11px; }
.plan-includes { display:grid; gap:13px; margin:0 0 26px; padding:0; list-style:none; color:var(--muted); font-size:12px; }
.plan-includes li::before { content:"✓"; margin-right:9px; color:var(--green); }
.plan-continue { width:100%; margin-top:auto; justify-content:center; }
.package-footnote { margin:24px 16px 0; color:var(--quiet); text-align:center; font-size:10px; }
@media (max-width:900px) { .package-grid { max-width:680px; grid-template-columns:1fr; gap:14px; }.plan-card { min-height:0; }.plan-description { min-height:0; }.package-page { padding-top:44px; } }
@media (max-width:600px) { .package-intro h1 { font-size:34px; }.package-intro p { font-size:13px; }.package-grid { margin-top:30px; }.plan-card { padding:24px; }.plan-price { margin:18px 0; padding-bottom:16px; } }

/* Dense, research-style Overview inspired by the public-company reference. */
.public-overview { display:grid; gap:12px; }
.public-overview .public-panel { min-width:0; padding:17px; border:1px solid var(--line); background:linear-gradient(145deg,rgba(19,38,28,.96),rgba(13,29,20,.96)); }
.overview-top-grid { display:grid; grid-template-columns:minmax(190px,.72fr) minmax(0,1.5fr); gap:12px; align-items:stretch; }
.public-panel-heading { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; margin-bottom:13px; }
.public-panel-heading h2 { margin:0; font:600 16px/1.3 var(--sans); letter-spacing:-.02em; }
.public-panel-heading p { margin:4px 0 0; color:var(--quiet); font-size:10px; line-height:1.45; }
.public-info { display:grid; place-items:center; width:14px; height:14px; flex:none; border:1px solid var(--green); border-radius:50%; color:var(--green); font:9px var(--sans); }
.grade-panel { display:flex; flex-direction:column; min-height:190px; }
.overview-grade { margin:auto 0 0; color:var(--gold-bright); font:500 57px/.98 var(--serif); }
.grade-caption { margin:8px 0 13px; color:var(--quiet); font-size:10px; }
.grade-detail { display:flex; justify-content:space-between; align-items:center; gap:8px; border-top:1px solid var(--line-soft); padding-top:9px; color:var(--quiet); font-size:9px; }
.grade-detail strong { color:var(--green); font-weight:500; }
.capital-panel { display:flex; flex-direction:column; }
.capital-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:7px; }
.capital-cell { display:grid; align-content:space-between; gap:11px; min-height:65px; padding:10px; border:1px solid var(--line); background:rgba(11,25,18,.45); }
.capital-cell span { color:var(--muted); font-size:9px; }
.capital-cell strong { color:var(--ink); font:500 13px var(--mono); }
.public-footnote { margin:10px 0 0; color:var(--quiet); font-size:9px; line-height:1.5; }
.overview-score-strip { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:7px; }
.overview-score-strip article { min-width:0; display:grid; align-content:space-between; gap:6px; min-height:69px; padding:10px 12px; border:1px solid var(--line); background:var(--panel); }
.overview-score-strip article > span { color:var(--muted); font-size:9px; }
.overview-score-strip strong { overflow:hidden; color:var(--gold-bright); font:500 15px var(--mono); text-overflow:ellipsis; white-space:nowrap; }
.overview-score-strip small { color:var(--quiet); font-size:8px; }
.analysis-tag { flex:none; padding:4px 7px; border:1px solid var(--line); color:var(--gold-bright); font-size:8px; letter-spacing:.06em; text-transform:uppercase; }
.trend-panel > .public-panel-heading { margin-bottom:12px; }
.trend-panels { display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr); gap:9px; }
.trend-subpanel { min-width:0; padding:12px; border:1px solid var(--line-soft); background:rgba(11,25,18,.36); }
.trend-subheading { display:flex; justify-content:space-between; align-items:baseline; gap:8px; margin-bottom:4px; }
.trend-subheading h3 { margin:0; font-size:11px; font-weight:600; }
.trend-subheading span { color:var(--quiet); font-size:8px; text-align:right; }
.overview-line-figure { margin:4px 0 0; }
.overview-line-figure svg { display:block; width:100%; height:auto; min-height:150px; overflow:visible; }
.overview-gridline { stroke:rgba(235,239,231,.11); stroke-dasharray:3 4; }
.overview-chart-axis { fill:var(--quiet); font:9px var(--mono); }
.overview-line { fill:none; stroke-width:3; stroke-linecap:round; stroke-linejoin:round; }
.overview-line.overview-revenue { stroke:var(--gold); }
.overview-line.overview-earnings { stroke:var(--green); }
.overview-point.overview-revenue { fill:var(--gold-bright); }
.overview-point.overview-earnings { fill:var(--green); }
.overview-legend { display:flex; flex-wrap:wrap; gap:10px 16px; margin:0 0 5px; color:var(--muted); font-size:9px; }
.overview-legend span { display:inline-flex; align-items:center; gap:5px; }
.overview-legend i { width:8px; height:8px; border-radius:50%; background:var(--gold); }
.overview-legend i.overview-earnings { background:var(--green); }
.overview-data-table { font:9px var(--mono); }
.overview-data-table th { padding:7px 6px; font-size:8px; }
.overview-data-table td { padding:7px 6px; white-space:nowrap; }
.overview-data-table td:first-child { white-space:normal; }
.trend-subpanel .margin-chart { gap:17px; margin:12px 0; }
.margin-trend-panel { display:flex; flex-direction:column; }
.margin-trend-panel .margin-chart { display:flex; flex:1; flex-direction:column; justify-content:space-between; min-height:215px; gap:12px; }
.margin-trend-panel .margin-detail-table { margin-top:auto; }

/* Health tab: three statement-linked operating charts. */
.health-dashboard { display:grid; gap:18px; }
.health-snapshot-grid { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:0 18px; }
.health-snapshot-grid > div { display:grid; gap:8px; padding:5px 12px 5px 0; border-right:1px solid var(--line-soft); }
.health-snapshot-grid > div:last-child { border-right:0; }
.health-snapshot-grid span { color:var(--quiet); font-size:10px; }
.health-snapshot-grid strong { color:var(--ink); font-size:12px; font-weight:500; }
.health-charts-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; align-items:stretch; }
.health-chart-panel { min-width:0; }
.health-chart-panel .panel-title { min-height:38px; margin-bottom:8px; }
.health-chart-panel .analysis-tag { margin-left:auto; }
.health-figure { margin:0; }
.health-column-chart { display:block; width:100%; height:auto; overflow:visible; }
.health-gridline { stroke:rgba(235,239,231,.1); stroke-dasharray:3 5; }
.health-zero-line { stroke:var(--line); stroke-width:1.1; }
.health-axis-label,.health-year-label { fill:var(--quiet); font:10px var(--mono); }
.health-year-label { fill:var(--muted); }
.health-value-label { fill:var(--ink); font:9px var(--mono); font-weight:600; }
.health-column { opacity:.9; }
.series-color-0 { fill:var(--gold); }
.series-color-1 { fill:var(--green); }
.series-color-2 { fill:#77b8c8; }
.health-chart-legend { display:flex; justify-content:center; flex-wrap:wrap; gap:9px 20px; margin:0; color:var(--muted); font-size:10px; }
.health-chart-legend span { display:inline-flex; align-items:center; gap:7px; }
.health-chart-legend i { width:9px; height:9px; border-radius:1px; }
.debt-equity-panel { grid-column:1 / -1; }
.debt-equity-panel .health-column-chart { max-height:390px; }
.debt-equity-panel .health-figure { width:100%; }
.leverage-metrics { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px; }
.leverage-measure { min-width:0; padding:12px 9px 6px; border:1px solid var(--line-soft); background:rgba(9,22,16,.3); }
.leverage-measure h4 { min-height:30px; margin:0; color:var(--ink); font:600 11px/1.35 var(--sans); }
.leverage-measure p { min-height:29px; margin:4px 0 0; color:var(--quiet); font-size:8px; line-height:1.45; }
.leverage-measure svg { display:block; width:100%; height:190px; margin-top:5px; }
.leverage-measure .health-axis-label { font-size:8px; }
.health-chart-note { margin:9px 0 0; color:var(--quiet); font-size:9px; line-height:1.5; }
@media (max-width:900px) {
  .health-snapshot-grid { grid-template-columns:repeat(3,minmax(0,1fr)); row-gap:12px; }
  .health-snapshot-grid > div:nth-child(3) { border-right:0; }
}
@media (max-width:700px) {
  .health-charts-grid { grid-template-columns:1fr; gap:14px; }
  .debt-equity-panel { grid-column:auto; }
  .health-snapshot-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .health-snapshot-grid > div:nth-child(3) { border-right:1px solid var(--line-soft); }
  .health-snapshot-grid > div:nth-child(2n) { border-right:0; }
}
@media (max-width:480px) {
  .leverage-metrics { grid-template-columns:1fr; }
  .leverage-measure { display:grid; grid-template-columns:1fr; }
  .leverage-measure svg { height:200px; }
  .health-value-label { font-size:8px; }
}

/* Give health charts enough canvas for their data labels and year-by-year detail. */
.health-chart-panel:not(.debt-equity-panel) { display:flex; flex-direction:column; min-height:470px; }
.health-chart-panel .panel-title { min-height:46px; margin-bottom:14px; }
.health-chart-panel .panel-title h3 { font-size:19px; }
.health-chart-panel .panel-title p { font-size:11px; }
.health-figure { display:flex; flex:1; flex-direction:column; justify-content:space-between; gap:12px; }
.health-column-chart { flex:1; min-height:330px; height:330px; }
.health-axis-label,.health-year-label { font-size:11px; }
.health-value-label { font-size:11px; }
.health-chart-legend { gap:11px 22px; font-size:11px; }
.health-chart-legend i { width:11px; height:11px; }
.leverage-metrics { flex:1; gap:12px; }
.leverage-measure { display:flex; flex-direction:column; padding:15px 12px 10px; }
.leverage-measure h4 { min-height:38px; font-size:12px; }
.leverage-measure p { min-height:38px; margin-top:6px; font-size:9px; }
.leverage-measure svg { flex:1; min-height:280px; height:280px; margin-top:10px; }
.leverage-measure .health-axis-label { font-size:9px; }
.health-chart-note { margin-top:12px; font-size:10px; }
.debt-equity-panel { min-height:470px; display:flex; flex-direction:column; }
.debt-equity-panel .health-figure { flex:1; }
.debt-equity-panel .health-column-chart { min-height:360px; height:360px; max-height:none; }
@media (max-width:900px) {
  .health-chart-panel:not(.debt-equity-panel),.debt-equity-panel { min-height:420px; }
  .health-column-chart { min-height:290px; height:290px; }
  .leverage-measure svg { min-height:240px; height:240px; }
  .debt-equity-panel .health-column-chart { min-height:330px; height:330px; }
}
@media (max-width:700px) {
  .health-chart-panel:not(.debt-equity-panel) { min-height:430px; }
  .leverage-metrics { gap:8px; }
  .leverage-measure { padding:12px 10px 8px; }
  .leverage-measure h4 { font-size:11px; }
  .leverage-measure svg { min-height:230px; height:230px; }
  .debt-equity-panel .health-column-chart { min-height:280px; height:280px; }
}
@media (max-width:480px) {
  .health-chart-panel:not(.debt-equity-panel),.debt-equity-panel { min-height:0; }
  .health-figure { gap:9px; }
  .health-column-chart,.debt-equity-panel .health-column-chart { min-height:270px; height:270px; }
  .leverage-measure svg { min-height:250px; height:250px; }
  .health-axis-label,.health-year-label { font-size:10px; }
  .health-value-label { font-size:10px; }
}

/* Growth tab charts use the same generous canvas and compact data labels as Health. */
.growth-dashboard { display:grid; gap:18px; }
.growth-charts-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; align-items:stretch; }
.growth-chart-panel { min-width:0; }
.growth-chart-panel:not(.growth-weight-panel) { min-height:470px; display:flex; flex-direction:column; }
.growth-chart-panel .panel-title { min-height:46px; margin-bottom:12px; }
.growth-chart-panel .panel-title h3 { font-size:19px; }
.growth-chart-panel .panel-title p { font-size:11px; }
.growth-wide-panel { grid-column:1 / -1; }
.growth-line-figure { display:flex; flex:1; min-height:0; flex-direction:column; gap:10px; margin:0; }
.growth-line-svg { display:block; width:100%; height:330px; min-height:300px; overflow:visible; }
.growth-chart-grid { stroke:rgba(235,239,231,.1); stroke-dasharray:3 5; }
.growth-chart-baseline { stroke:var(--line); stroke-width:1.1; }
.growth-chart-axis,.growth-chart-year { fill:var(--quiet); font:11px var(--mono); }
.growth-chart-year { fill:var(--muted); }
.growth-chart-line { fill:none; stroke-width:3.5; stroke-linecap:round; stroke-linejoin:round; }
.growth-chart-line.growth-series-0,.growth-chart-line.growth-series-1,.growth-chart-line.growth-series-2,.growth-chart-line.growth-series-3 { fill:none; }
.growth-chart-point { stroke:var(--panel); stroke-width:2; }
.growth-series-0 { stroke:var(--gold); fill:var(--gold); }
.growth-series-1 { stroke:var(--green); fill:var(--green); }
.growth-series-2 { stroke:#77b8c8; fill:#77b8c8; }
.growth-series-3 { stroke:#d48760; fill:#d48760; }
.growth-line-legend { display:flex; justify-content:center; flex-wrap:wrap; gap:10px 22px; margin:0; color:var(--muted); font-size:11px; }
.growth-line-legend span { display:inline-flex; align-items:center; gap:7px; }
.growth-line-legend i,.growth-table-key { display:inline-block; width:10px; height:10px; border-radius:50%; }
.growth-line-legend i.growth-series-0,.growth-table-key.growth-series-0 { background:var(--gold); }
.growth-line-legend i.growth-series-1,.growth-table-key.growth-series-1 { background:var(--green); }
.growth-line-legend i.growth-series-2,.growth-table-key.growth-series-2 { background:#77b8c8; }
.growth-line-legend i.growth-series-3,.growth-table-key.growth-series-3 { background:#d48760; }
.growth-data-wrap { margin-top:12px; }
.growth-data-table { width:100%; border-collapse:collapse; font:11px var(--mono); }
.growth-data-table th,.growth-data-table td { padding:8px 10px; border-bottom:1px solid var(--line-soft); text-align:right; white-space:nowrap; }
.growth-data-table th { color:var(--quiet); font:9px var(--sans); letter-spacing:.05em; text-transform:uppercase; }
.growth-data-table th:first-child,.growth-data-table td:first-child { text-align:left; }
.growth-data-table td:first-child { color:var(--ink); font:10px var(--sans); }
.growth-data-table tbody tr:last-child td { border-bottom:0; }
.growth-table-key { width:8px; height:8px; margin-right:7px; }
.growth-weight-panel { min-height:470px; display:flex; flex-direction:column; }
.growth-weighted-table { display:flex; flex:1; flex-direction:column; }
.growth-weighted-row { display:grid; flex:1; grid-template-columns:minmax(0,1fr) 68px 64px; align-items:center; gap:10px; min-height:72px; border-bottom:1px solid var(--line-soft); color:var(--muted); font-size:11px; }
.growth-weighted-row > :nth-child(2),.growth-weighted-row > :nth-child(3) { text-align:right; }
.growth-weighted-row strong { color:var(--ink); font:12px var(--mono); }
.growth-weighted-head { flex:0 0 44px; min-height:44px; color:var(--quiet); font-size:10px; letter-spacing:.06em; text-transform:uppercase; }
.growth-weighted-head span:first-child { color:var(--green); font-weight:600; }
.growth-weighted-total { border-top:1px solid var(--line); border-bottom:0; margin-top:4px; }
.growth-weighted-total strong { color:var(--gold-bright); }
.growth-weighted-highlight { display:grid; flex:1.3; min-height:100px; grid-template-columns:1fr auto; align-items:center; gap:8px 12px; margin-top:14px; padding:20px 20px; border:1px solid var(--line-soft); background:rgba(139,182,154,.07); }
.growth-weighted-highlight span { color:var(--muted); font-size:11px; }
.growth-weighted-highlight strong { grid-row:span 2; color:var(--green); font:32px var(--mono); }
.growth-weighted-highlight small { color:var(--quiet); font-size:10px; }
@media (max-width:900px) {
  .growth-chart-panel:not(.growth-weight-panel),.growth-weight-panel { min-height:420px; }
  .growth-line-svg { height:290px; min-height:270px; }
}
@media (max-width:700px) {
  .growth-charts-grid { grid-template-columns:1fr; gap:14px; }
  .growth-wide-panel { grid-column:auto; }
  .growth-chart-panel:not(.growth-weight-panel),.growth-weight-panel { min-height:430px; }
  .growth-line-svg { height:300px; min-height:280px; }
}
@media (max-width:480px) {
  .growth-chart-panel:not(.growth-weight-panel),.growth-weight-panel { min-height:0; }
  .growth-line-svg { height:270px; min-height:250px; }
  .growth-chart-axis,.growth-chart-year { font-size:10px; }
  .growth-data-table th,.growth-data-table td { padding:7px 5px; font-size:9px; }
  .growth-weighted-row { grid-template-columns:minmax(0,1fr) 58px 52px; gap:6px; min-height:64px; font-size:10px; }
  .growth-weighted-highlight { min-height:90px; padding:14px; }
  .growth-weighted-highlight strong { font-size:25px; }
}
.trend-subpanel .margin-track { height:12px; }
.trend-subpanel .margin-year { grid-template-columns:33px 1fr; gap:5px 8px; }
.trend-subpanel .margin-year > div { grid-template-columns:35px 1fr 36px; gap:5px; }

/* Cash flow and earnings analysis on the Profitability tab. */
.profitability-cash-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; margin:18px 0; align-items:stretch; }
.profitability-chart-card { min-width:0; }
.profitability-chart-card .panel-title { min-height:46px; margin-bottom:14px; }
.profitability-chart-card .panel-title h3 { font-size:19px; }
.profitability-chart-card .panel-title p { font-size:11px; }
.profitability-chart-card .analysis-tag { margin-left:auto; }
.profitability-chart-figure { display:flex; flex:1; min-height:0; flex-direction:column; justify-content:space-between; gap:12px; margin:0; }
.profitability-column-chart { display:block; flex:1; width:100%; min-height:300px; height:300px; overflow:visible; }
.profitability-gridline { stroke:rgba(235,239,231,.1); stroke-dasharray:3 5; }
.profitability-axis-label,.profitability-year-label,.profitability-category-label { fill:var(--muted); font:17px var(--mono); }
.profitability-year-label,.profitability-category-label { fill:var(--ink); }
.profitability-value-label { fill:var(--ink); font:18px var(--mono); font-weight:700; }
.profitability-connector { stroke:var(--quiet); stroke-dasharray:4 4; stroke-width:1; opacity:.7; }
.profitability-chart-figure .health-chart-legend { gap:11px 22px; font-size:13px; }
.profitability-chart-figure .health-chart-legend i { width:13px; height:13px; }
.profitability-chart-figure .health-chart-legend i.series-color-0 { background:var(--gold); }
.profitability-chart-figure .health-chart-legend i.series-color-1 { background:var(--green); }
.profitability-chart-figure .health-chart-legend i.series-color-2 { background:#77b8c8; }
.profitability-chart-figure .health-chart-legend i.series-color-3 { background:#d48760; }
.profitability-cash-grid .series-color-3 { fill:#d48760; }
.addbacks-panel { width:100%; margin-top:18px; }
.addbacks-panel .panel-title h3 { font-size:19px; }
.addbacks-panel .panel-title p { font-size:11px; }
@media (max-width:900px) {
  .profitability-chart-card { min-height:420px; }
  .profitability-column-chart { min-height:270px; height:270px; }
}
@media (max-width:700px) {
  .profitability-cash-grid { grid-template-columns:1fr; gap:14px; }
  .profitability-chart-card { min-height:430px; }
  .profitability-column-chart { min-height:300px; height:300px; }
}
@media (max-width:480px) {
  .profitability-chart-card { min-height:0; }
  .profitability-column-chart { min-height:260px; height:260px; }
  .profitability-axis-label,.profitability-year-label,.profitability-category-label { font-size:16px; }
  .profitability-value-label { font-size:17px; }
  .profitability-chart-figure .health-chart-legend { font-size:12px; }
}
.margin-detail-table { display:grid; gap:0; border-top:1px solid var(--line-soft); font:8px var(--mono); }
.margin-detail-table > div { display:grid; grid-template-columns:.8fr 1fr 1fr; gap:5px; padding:6px 2px; border-bottom:1px solid var(--line-soft); text-align:right; color:var(--muted); }
.margin-detail-table > div:first-child { color:var(--quiet); font:7px var(--sans); text-transform:uppercase; letter-spacing:.04em; }
.margin-detail-table > div > :first-child { text-align:left; }
.margin-detail-table strong { color:var(--ink); font-weight:500; }
.trend-subpanel .public-footnote { margin-top:7px; }
.analysis-grid { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:12px; align-items:stretch; }
.analysis-panel { display:flex; flex-direction:column; }
.analysis-panel .public-panel-heading h2 { font-size:15px; }
.pestel-layout { display:grid; grid-template-columns:minmax(210px,.95fr) minmax(0,1.05fr); align-items:center; gap:16px; flex:1; }
.pestel-wheel { width:min(100%,260px); aspect-ratio:1; margin:auto; position:relative; }
.pestel-core { position:absolute; left:50%; top:50%; width:88px; height:88px; transform:translate(-50%,-50%); display:grid; place-content:center; border:1px solid var(--gold); border-radius:50%; background:var(--forest-2); color:var(--gold-bright); text-align:center; font:10px/1.4 var(--mono); text-transform:uppercase; }
.pestel-node { position:absolute; width:88px; height:88px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; border:1px solid var(--green); border-radius:50%; background:rgba(16,36,26,.93); color:var(--muted); text-align:center; font-size:9px; }
.pestel-node b { color:var(--gold-bright); font:19px var(--serif); }
.pestel-node-1 { left:50%; top:0; transform:translateX(-50%); }.pestel-node-2 { right:1%; top:22%; }.pestel-node-3 { right:1%; bottom:12%; }.pestel-node-4 { left:50%; bottom:0; transform:translateX(-50%); }.pestel-node-5 { left:1%; bottom:12%; }.pestel-node-6 { left:1%; top:22%; }
.factor-list { display:grid; grid-template-columns:1fr 1fr; gap:0 9px; }
.factor-list article { min-width:0; padding:8px 2px; border-bottom:1px solid var(--line-soft); }
.factor-label { display:flex; align-items:center; gap:6px; }
.factor-label b { width:17px; height:17px; display:grid; place-items:center; border:1px solid var(--line); border-radius:50%; color:var(--gold-bright); font:9px var(--mono); }
.factor-label strong { color:var(--ink); font-size:9px; }
.factor-list p { margin:4px 0 0; color:var(--muted); font-size:8px; line-height:1.45; }
.porter-layout { display:grid; grid-template-columns:minmax(220px,.9fr) minmax(0,1.1fr); align-items:center; gap:14px; flex:1; }
.porter-map { position:relative; width:min(100%,300px); aspect-ratio:300/228; margin:auto; }
.porter-map svg { position:absolute; inset:0; width:100%; height:100%; overflow:visible; }
.porter-map svg path { fill:none; stroke:var(--gold); stroke-width:2; opacity:.68; }
.porter-core { position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); width:88px; height:88px; display:grid; place-content:center; border:2px solid var(--gold); border-radius:50%; background:var(--forest-2); color:var(--ink); text-align:center; font:10px/1.4 var(--mono); text-transform:uppercase; }
.porter-node { position:absolute; width:80px; min-height:68px; display:grid; place-content:center; gap:3px; padding:5px; border:2px solid var(--gold); border-radius:50%; background:var(--panel); color:var(--muted); text-align:center; font-size:8px; line-height:1.25; }
.porter-node b { color:var(--gold-bright); font:16px var(--mono); }
.porter-node-1 { left:50%; top:0; transform:translateX(-50%); }.porter-node-2 { right:0; top:32%; }.porter-node-3 { right:15%; bottom:0; }.porter-node-4 { left:15%; bottom:0; }.porter-node-5 { left:0; top:32%; }
.force-list { display:grid; }
.force-list article { display:grid; grid-template-columns:20px minmax(0,1fr) auto; gap:6px; align-items:start; padding:8px 0; border-bottom:1px solid var(--line-soft); }
.force-list article:last-child { border-bottom:0; }
.force-index { color:var(--gold-bright); font:9px var(--mono); }
.force-list h3 { margin:0; color:var(--ink); font-size:9px; font-weight:600; }
.force-list p { margin:3px 0 0; color:var(--muted); font-size:8px; line-height:1.45; }
.force-rating { padding:2px 5px; border:1px solid var(--line); color:var(--gold-bright); font-size:7px; text-transform:uppercase; letter-spacing:.05em; }
@media (max-width:1000px) { .trend-panels,.analysis-grid { grid-template-columns:1fr; }.pestel-layout,.porter-layout { grid-template-columns:minmax(240px,.9fr) minmax(0,1.1fr); } }
@media (max-width:700px) { .overview-top-grid { grid-template-columns:1fr; }.grade-panel { min-height:160px; }.overview-score-strip { grid-template-columns:repeat(2,minmax(0,1fr)); }.overview-score-strip article:last-child { grid-column:span 2; }.pestel-layout,.porter-layout { grid-template-columns:1fr; }.pestel-wheel { width:min(100%,280px); }.porter-map { width:min(100%,320px); }.factor-list { grid-template-columns:1fr 1fr; } }
@media (max-width:430px) { .public-overview .public-panel { padding:13px; }.capital-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }.overview-data-table { font-size:8px; }.overview-data-table th,.overview-data-table td { padding:6px 3px; }.factor-list { grid-template-columns:1fr; }.force-rating { display:none; } }
