/* Quant design engine 0.4.0 — existing renderer adapter. */
:root[data-qe-theme] { --bg:var(--qe-bg); --panel:var(--qe-surface); --page:var(--qe-surface); --surface:var(--qe-raised); --surface-soft:var(--qe-raised); --ink:var(--qe-text); --text:var(--qe-text); --muted:var(--qe-muted); --line:var(--qe-border); --border:var(--qe-border); --accent:var(--qe-accent); --accent-strong:var(--qe-accent); --good:var(--qe-positive); --bad:var(--qe-negative); --qr-bg:var(--qe-bg); --qr-page:var(--qe-surface); --qr-surface:var(--qe-surface); --qr-surface-soft:var(--qe-raised); --qr-text:var(--qe-text); --qr-text-strong:var(--qe-text); --qr-text-muted:var(--qe-muted); --qr-border:var(--qe-border); --qr-primary:var(--qe-accent); --qr-primary-strong:var(--qe-accent); --qr-chart-text:var(--qe-muted); --qr-chart-grid:var(--qe-border); }
html[data-qe-theme] body { background:var(--qe-bg); color:var(--qe-text); font-variant-numeric:tabular-nums; }
html[data-qe-theme] :is(.panel,.metric-card,.lab-panel,.lab-stat,.signal-card) { padding:var(--qe-card-inset); border-radius:var(--qe-card-radius); border-color:var(--qe-border); background:var(--qe-surface); min-width:0; }
html[data-qe-theme] :is(button,input,select,summary) { min-height:36px; }
html[data-qe-theme] :is(button,input,select,textarea):focus-visible { outline:2px solid var(--qe-accent); outline-offset:3px; }
html[data-qe-theme] :is(td,th) { padding:12px 14px; line-height:1.5; }
html[data-qe-theme] :is(.table-wrap,.lab-table-wrap) { overflow:auto; overscroll-behavior-x:contain; scrollbar-color:var(--qe-border) transparent; }
html[data-qe-theme] .leader-item { padding:16px 18px; gap:14px; min-height:72px; border-radius:var(--qe-card-radius); }
html[data-qe-theme] .leader-item :is(strong,span,small) { min-width:0; }
html[data-qe-theme] .lab-chart-controls { gap:12px; align-items:center; }
html[data-qe-theme] .lab-scale-control { margin-left:auto; }
@media(max-width:640px) { html[data-qe-theme] :is(.panel,.metric-card,.lab-panel,.lab-stat,.signal-card) { padding:var(--qe-card-inset-mobile); } html[data-qe-theme] :is(button,select,summary) { min-height:40px; } html[data-qe-theme] .leader-item { grid-template-columns:48px minmax(0,1fr) auto; gap:10px; padding:16px 18px; } html[data-qe-theme] :is(td,th) { padding:11px 12px; } }

html[data-qe-theme] body.qd-v04 .leader-item { padding:16px 18px!important; gap:14px!important; min-height:72px; }
html[data-qe-theme] body.qd-v04 :is(.panel,.metric-card,.signal-card) { padding:var(--qe-card-inset)!important; border-radius:var(--qe-card-radius)!important; }
@media(max-width:640px){html[data-qe-theme] body.qd-v04 :is(.panel,.metric-card,.signal-card){padding:var(--qe-card-inset-mobile)!important;}}

html[data-qe-theme] body.qd-v04 .qe-holdings-tools {display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-bottom:16px;}
html[data-qe-theme] body.qd-v04 .qe-holdings-tools input {min-width:150px;flex:1;}
html[data-qe-theme] body.qd-v04 .qe-holdings-tools :is(button,summary,input) {min-height:44px;}
html[data-qe-theme] body.qd-v04 #top10-rows tr[hidden] {display:none!important;}
html[data-qe-theme] body.qd-v04 .qe-holdings-tools button {background:var(--qe-surface)!important;color:var(--qe-text)!important;border:1px solid var(--qe-border)!important;border-radius:8px;padding:8px 14px;}
/* 0.4.1: fixed axes, full initial domain and intrinsic cards at every width. */
.responsive-trend {width:100%;height:380px;min-width:0;touch-action:pan-y;}
.trend-options {display:inline-block;position:relative;float:right;z-index:2;}
.trend-options summary,.trend-reset {min-width:44px;min-height:44px;cursor:pointer;}
.trend-options button {display:block;min-height:44px;}
.trend-range {display:block;padding:12px;line-height:1.6;font-variant-numeric:tabular-nums;}
.trend-range[hidden],.trend-reset[hidden] {display:none!important;}
html[data-qe-theme] body.qd-v04 .chart-summary-grid {display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:8px;}
html[data-qe-theme] body.qd-v04 .chart-summary-item {min-width:0;padding:12px;white-space:normal;}
html[data-qe-theme] body.qd-v04 .chart-summary-item :is(strong,span,small) {overflow-wrap:anywhere;}
@media(max-width:640px){.responsive-trend{height:320px;}html[data-qe-theme] body.qd-v04 .chart-summary-grid{grid-template-columns:repeat(2,minmax(0,1fr));}.chart-summary-item small{line-height:1.5;}}
html[data-qe-theme] body.qd-v04 .responsive-trend svg {min-width:0!important;width:100%!important;max-width:100%!important;}
.trend-clear[hidden]{display:none!important;}
html[data-qe-theme] body.qd-v04 .chart-date-controls {display:flex;flex-wrap:wrap;gap:8px;}
html[data-qe-theme] body.qd-v04 .chart-date-controls input {min-width:0;max-width:100%;}
html[data-qe-theme] body.qd-v04 details.chart-date-controls{display:block;flex:0 0 auto;}
html[data-qe-theme] body.qd-v04 details.chart-date-controls summary{min-height:44px;cursor:pointer;display:flex;align-items:center;}
html[data-qe-theme] body.qd-v04 details.chart-date-controls:not([open])>:not(summary){display:none;}
@media(max-width:640px){html[data-qe-theme] body.qd-v04 .chart-observation-bar{display:flex;flex-wrap:wrap;gap:8px;}html[data-qe-theme] body.qd-v04 .chart-selection-summary{padding:10px;min-width:0;flex:1;}}

/* Pinned shared shell 0.4.2 SHA256 d3ef280dc5d36fad3b4e2b32d170e70fdc2b64fbde91e463e1c08bd11f3be485 */
/* Quant 0.4.2: shell roles only. Load explicitly after project styles. */
html[data-theme="dark"]{--qs-bg:#101416;--qs-surface:#171d20;--qs-raised:#20282c;--qs-text:#edf3f2;--qs-muted:#a6b4b6;--qs-border:#364247;--qs-accent:#69d3cf}
html[data-theme="light"]{--qs-bg:#f2f5f4;--qs-surface:#ffffff;--qs-raised:#e9efed;--qs-text:#172725;--qs-muted:#536762;--qs-border:#c6d3ce;--qs-accent:#007e79}
html:root[data-theme] body.qd-v04,html:root[data-theme][data-quant-silicon] body.qd-v04{--qd-bg:var(--qs-bg)!important;--qd-surface:var(--qs-surface)!important;--qd-raised:var(--qs-raised)!important;--qd-text:var(--qs-text)!important;--qd-muted:var(--qs-muted)!important;--qd-border:var(--qs-border)!important;--qd-accent:var(--qs-accent)!important;background:var(--qs-bg)!important;color:var(--qs-text)!important}
html[data-theme] body.qd-v04 :is(.qd-sidebar,.qd-shell){--qd-bg:var(--qs-bg)!important;--qd-surface:var(--qs-surface)!important;--qd-raised:var(--qs-raised)!important;--qd-text:var(--qs-text)!important;--qd-muted:var(--qs-muted)!important;--qd-border:var(--qs-border)!important;--qd-accent:var(--qs-accent)!important;--qd-soft:var(--qs-raised)!important;background:var(--qs-bg)!important;color:var(--qs-text)!important;border-color:var(--qs-border)!important}
/* Explicit neutral component roles; semantic series/topic colors are inherited. */
:root{--qs-card-padding:24px;--qs-card-gap:20px;--qs-section-gap:32px;--qs-card-radius:16px;--qs-line:color-mix(in srgb,var(--qs-text) 10%,transparent)}
html[data-theme] body [data-quant-card],html:root[data-theme] body.qd-v04 :is([data-quant-card],#quant-neutral-card-role){min-width:0;padding:var(--qs-card-padding)!important;border:1px solid var(--qs-line)!important;border-radius:var(--qs-card-radius)!important;background:var(--qs-surface)!important;box-shadow:none!important}
html[data-theme] body [data-quant-card] [data-quant-card],html:root[data-theme] body.qd-v04 :is([data-quant-card],#quant-neutral-card-role) [data-quant-card]{padding:0!important;border:0!important;border-radius:0!important;background:transparent!important;box-shadow:none!important}
[data-quant-card]>:is(h2,h3,h4):first-child{margin-top:0}
[data-quant-section]{min-width:0;margin-block-start:var(--qs-section-gap)}
[data-quant-section]:first-child{margin-block-start:0}
[data-quant-card-grid]{display:grid;gap:var(--qs-card-gap)}
[data-quant-metrics]{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,140px),1fr));gap:var(--qs-card-gap);font-variant-numeric:tabular-nums}
[data-quant-metrics] strong{font-size:clamp(20px,2vw,28px);line-height:1.25;letter-spacing:-.025em}
[data-quant-table-wrap]{max-width:100%;overflow:auto}
[data-quant-table]{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}
[data-quant-table] :is(th,td){padding:12px 14px;border-bottom:1px solid var(--qs-line);line-height:1.6}
[data-quant-table] th{color:var(--qs-muted);font-size:12px;font-weight:600;text-align:left}
[data-quant-table] [data-numeric]{text-align:right}
@media(max-width:640px){:root{--qs-card-padding:20px;--qs-card-gap:16px;--qs-section-gap:24px}[data-quant-table] :is(th,td){padding:11px 12px}}

/* Group summaries into shared surfaces; retain semantic badges and numbers. */
html[data-qe-theme] body.qd-v04 :is(#overview-metrics,#signal-grid)[data-quant-card] {gap:var(--qs-card-gap,20px)!important;}
html[data-qe-theme] body.qd-v04 :is(#overview-metrics .metric-card,#signal-grid .signal-card) {padding:0!important;background:transparent!important;border:0!important;box-shadow:none!important;min-height:0!important;}
html[data-qe-theme] body.qd-v04 .primary-chart-panel>.chart-card {padding:0!important;border:0!important;background:transparent!important;box-shadow:none!important;}
html[data-qe-theme] body.qd-v04 .trend-clear {width:auto!important;min-height:44px;padding:8px 12px;border:1px solid var(--qs-line,var(--qe-border));border-radius:8px;background:transparent;color:var(--qe-muted);font:inherit;cursor:pointer;}
html[data-theme] body.qd-v04 #primary-chart[data-quant-card]::before {content:none!important;display:none!important;}

/* Plot gestures own zoom and range selection. */
html[data-theme] body :is(.qd-focus-button,.qd-focus-tools) {display:none!important}
[data-quant-touch-chart]:focus-visible {outline:2px solid var(--qs-focus);outline-offset:3px}
[data-quant-touch-chart][data-quant-gesture=compare] .qe-point-tooltip {visibility:hidden!important}

.qe-point-tooltip b {float:right;margin-inline-start:10px;font-variant-numeric:tabular-nums}
@media(max-width:480px) {
  .qe-point-tooltip {max-width:calc(100% - 8px);font-size:11px!important}
  .qe-point-tooltip div {white-space:normal}
}

html[data-theme] body .trend-range[data-quant-chart-readout]:not([hidden],[data-quant-range-output]) {
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px 16px;
}
.trend-range > strong {grid-column:1/-1}
.trend-range > span {display:flex;justify-content:space-between;gap:4px 8px;align-items:baseline}
.trend-range > span > span {color:var(--qs-muted);overflow-wrap:anywhere}
.trend-range b {flex-shrink:0;font-variant-numeric:tabular-nums}
@media(max-width:380px) {
  html[data-theme] body .trend-range[data-quant-chart-readout]:not([hidden],[data-quant-range-output]) {column-gap:10px}
}
