/* QuantOS shared design model. Opt in on the content root with q-design-model.
   Load after legacy page CSS. Theme colors/font tokens remain owned by the shared shell. */
html .q-design-model :is(.q-panel,.panel,.q-card,.card){border:1px solid var(--line);border-radius:6px!important;background:linear-gradient(130deg,color-mix(in srgb,var(--panel2) 55%,var(--panel)),var(--panel) 65%)!important;box-shadow:inset 0 1px color-mix(in srgb,var(--txt) 4%,transparent)}
html .q-design-model :is(.ph,.q-panel-head){min-height:32px;padding:6px 9px;gap:7px;font-size:var(--q-body-size,14px);font-weight:600;line-height:1.4}
html .q-design-model :is(button,input,select,textarea){font-family:var(--mm-text)}
html .q-design-model :is(button,select){border-radius:4px;font-size:var(--q-body-size,14px);line-height:1.25}
html .q-design-model :is(.q-note,.reference-note,.disclaimer){font:400 var(--q-body-size,14px)/1.45 var(--mm-text)}
html .q-design-model .q-table{font:400 var(--q-body-size,14px)/1.3 var(--mm-text);font-variant-numeric:tabular-nums}
html .q-design-model .q-table th{padding:5px 7px;font:500 var(--q-label-size,12px)/1.3 var(--mm-text);color:var(--dim);background:var(--panel2)}
html .q-design-model .q-table td{padding:5px 7px;border-bottom:1px solid var(--line)}
html .q-design-model .q-table tbody tr:nth-child(even){background:color-mix(in srgb,var(--panel2) 35%,transparent)}
html .q-design-model .q-table tbody tr:hover{background:color-mix(in srgb,var(--accent) 8%,var(--panel))}
html .q-design-model .q-icon-tile{display:inline-grid;place-items:center;width:22px;height:22px;border-radius:4px;background:color-mix(in srgb,var(--accent) 12%,var(--panel));color:var(--accent)}
html .q-design-model .q-icon-tile svg{width:15px;height:15px}

.q-design-model{--q-model-radius:6px}

/* COMPLETE DESIGN MODEL SYSTEM — single owner, additive opt-in.
   Put q-design-model and data-q-system on the content root. Existing consumers
   retain their measured appearance until enrolled. data-q-theme is only for
   standalone previews; app pages inherit the existing central theme tokens.
   No @import, route selectors, page IDs, or page/group stylesheet dependencies. */
@font-face{font-family:Inter;font-style:normal;font-weight:400 800;font-display:swap;src:url('/assets/fonts/UcC73FwrK3iLTeHuS_nVMrMxCp50SjIa1ZL7.woff2') format('woff2')}
.q-design-model[data-q-system]{
 --q-space-1:4px;--q-space-2:8px;--q-space-3:12px;--q-space-4:16px;
 --q-model-radius:6px;--q-control-radius:4px;--q-rail-width:76px;
 --mm-text:Inter,Arial,sans-serif;--mm-display:var(--mm-text);
 --q-base-size:14px;--q-title-size:22px;--q-section-size:18px;--q-body-size:14px;--q-small-size:13px;--q-label-size:12px;
 --q-surface:var(--panel);--q-surface-raised:var(--panel2);--q-border:var(--line);--q-muted:var(--dim);
 margin:0;min-width:0;color:var(--txt);background:var(--bg);font:400 var(--q-base-size)/1.45 var(--mm-text);
}
.q-design-model[data-q-system][data-q-theme=dark]{--bg:#020c19;--panel:#041423;--panel2:#071e32;--line:#14364f;--txt:#e8f1ff;--dim:#a6bdd9;--accent:#278fff;--green:#00d994;--red:#ff5574;--gold:#e9c83c;color-scheme:dark}
.q-design-model[data-q-system][data-q-theme=slate]{--bg:#161d26;--panel:#1f2833;--panel2:#27323f;--line:#3a4b5c;--txt:#edf3fc;--dim:#aebed2;--accent:#76b6ff;--green:#45d7ad;--red:#ff8498;--gold:#f0cf65;color-scheme:dark}
.q-design-model[data-q-system][data-q-theme=light]{--bg:#edf2f8;--panel:#fff;--panel2:#f3f7fc;--line:#c9d7e5;--txt:#142338;--dim:#506782;--accent:#0062dc;--green:#00764e;--red:#c91d40;--gold:#856600;color-scheme:light}
.q-design-model[data-q-system]{
 & *,& *::before,& *::after{box-sizing:border-box}
 & [hidden]{display:none!important}
 & :is(h1,h2,h3,p,dl){margin:0}
 & h1{font:600 var(--q-title-size)/1.3 var(--mm-display)}
 & h2{font:600 var(--q-section-size)/1.35 var(--mm-display)}
 & h3{font:600 var(--q-body-size)/1.4 var(--mm-display)}
 & :is(button,input,select,textarea){font:400 var(--q-body-size)/1.35 var(--mm-text);color:var(--txt)}
 & :is(button,a,summary,input,select,textarea,[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:3px}
 & :is(button,summary){cursor:pointer}
 & :is(a,.q-link){color:var(--accent);text-decoration:none}
 & a:hover{text-decoration:underline}
 & :is(button,input,select,textarea):disabled{opacity:.5;cursor:not-allowed}
 & .q-muted{color:var(--dim)}
 & .q-positive{color:var(--green)}
 & .q-negative{color:var(--red)}
 & .q-warning{color:var(--gold)}
 & .q-number{font-variant-numeric:tabular-nums;white-space:nowrap}
 & .q-prose,& .q-note{font:400 var(--q-body-size,14px)/1.5 var(--mm-text);color:var(--dim)}
 & .q-label{font:500 var(--q-label-size,12px)/1.4 var(--mm-text);color:var(--dim)}
 & .q-small{font:400 var(--q-small-size,13px)/1.4 var(--mm-text)}
 & .q-sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip-path:inset(50%);white-space:nowrap}
 & .q-icon{display:inline-block;width:17px;height:17px;flex:none;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;vertical-align:middle}
 & .q-icon-tile{width:24px;height:24px;border-radius:4px;background:color-mix(in srgb,var(--accent) 12%,var(--panel));color:var(--accent)}
 & .q-icon-tile.q-positive{color:var(--green);background:color-mix(in srgb,var(--green) 12%,var(--panel))}
 & .q-icon-tile.q-negative{color:var(--red);background:color-mix(in srgb,var(--red) 12%,var(--panel))}
 /* Terminal composition: useful density and bounded, left-aligned content. */
 & .q-app-header{display:flex;align-items:center;gap:12px;min-height:48px;padding:8px 12px;border-bottom:1px solid var(--line);background:var(--panel)}
 & .q-brand{display:inline-flex;align-items:center;gap:8px;font:700 20px/1 var(--mm-display);white-space:nowrap}
 & .q-brand-mark{display:grid;place-items:center;width:30px;height:30px;border-radius:7px;background:var(--accent);color:var(--panel);font-weight:800}
 & .q-app-nav{display:flex;align-items:center;gap:4px;min-width:0;overflow:auto;scrollbar-width:thin}
 & .q-app-nav a{padding:6px 9px;white-space:nowrap;font-size:var(--q-body-size,14px);color:var(--dim);border:1px solid transparent;border-radius:4px}
 & .q-app-nav a[aria-current=page]{color:var(--txt);border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--panel))}
 & .q-workspace{padding:12px;min-width:0;display:grid;gap:8px;align-content:start}
 & .q-page-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
 & .q-stack{display:grid;gap:8px;min-width:0;align-content:start}
 & .q-split{display:grid;grid-template-columns:minmax(0,2fr) minmax(250px,1fr);gap:8px;align-items:start}
 & .q-grid-equal{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;align-items:stretch}
 & .q-grid-equal>.q-panel{display:flex;flex-direction:column}
 & .q-grid-equal>.q-panel>.q-panel-body{flex:1}
 & .q-toolbar{display:flex;align-items:center;gap:6px;flex-wrap:wrap;min-width:0}
 & .q-toolbar-end{margin-left:auto}
 & .q-control-row{display:flex;align-items:center;gap:6px;overflow-x:auto;flex-wrap:nowrap;white-space:nowrap;scrollbar-width:thin}
 /* Surface, title and evidence hierarchy shared by all future pages. */
 & :is(.q-card,.q-panel){min-width:0;margin:0;border:1px solid var(--line);border-radius:var(--q-model-radius);background:linear-gradient(130deg,color-mix(in srgb,var(--panel2) 55%,var(--panel)),var(--panel) 65%);box-shadow:inset 0 1px color-mix(in srgb,var(--txt) 4%,transparent)}
 & .q-panel-head{display:flex;align-items:center;gap:7px;min-height:32px;padding:6px 9px;border-bottom:1px solid var(--line);font:600 16px/1.4 var(--mm-text)}
 & .q-panel-head>h2{font:inherit}
 & .q-panel-body{padding:9px;min-width:0}
 & .q-panel-body.q-stack{gap:10px}
 & .q-info{display:inline-grid;place-items:center;flex:none;width:20px;height:20px;min-height:0;padding:0;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--dim);font-size:var(--q-small-size,13px)}
 & .q-info:hover,& .q-info[aria-expanded=true]{color:var(--accent);border-color:var(--accent)}
 & .q-details{padding:8px 9px;border-bottom:1px solid var(--line);font:400 var(--q-body-size,14px)/1.5 var(--mm-text);color:var(--dim)}
 & .q-empty{display:grid;gap:5px;justify-items:start;padding:16px;border:1px dashed var(--line);border-radius:4px;font:400 var(--q-body-size,14px)/1.5 var(--mm-text);color:var(--dim)}
 & .q-alert{padding:8px 10px;border:1px solid color-mix(in srgb,var(--accent) 55%,var(--line));border-left:3px solid var(--accent);border-radius:4px;background:color-mix(in srgb,var(--accent) 7%,var(--panel));font:400 var(--q-body-size,14px)/1.5 var(--mm-text)}
 & .q-alert.q-warning{border-color:color-mix(in srgb,var(--gold) 50%,var(--line));color:var(--txt);border-left-color:var(--gold)}
 & .q-alert.q-negative{border-color:color-mix(in srgb,var(--red) 50%,var(--line));color:var(--txt);border-left-color:var(--red)}
 /* Actions, filters and forms. */
 & .q-button{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:28px;padding:4px 9px;border:1px solid var(--line);border-radius:var(--q-control-radius);background:linear-gradient(var(--panel2),var(--panel));font:500 var(--q-body-size,14px)/1.3 var(--mm-text);color:var(--txt);text-decoration:none;white-space:nowrap}
 & .q-button:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--panel));text-decoration:none}
 & .q-button[aria-pressed=true],& .q-button.q-primary{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 22%,var(--panel));color:var(--txt)}
 & .q-button.q-danger{border-color:var(--red);color:var(--red)}
 & .q-button.q-quiet{border-color:transparent;background:transparent;color:var(--dim)}
 & .q-segment{display:inline-flex;gap:2px;padding:3px;border:1px solid var(--line);border-radius:5px;background:var(--panel)}
 & .q-segment .q-button{border-color:transparent;min-height:24px;padding:2px 7px}
 & .q-segment .q-button[aria-pressed=true]{border-color:var(--accent)}
 & .q-field-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
 & .q-field{display:grid;gap:4px;min-width:0;font:500 var(--q-small-size,13px)/1.4 var(--mm-text)}
 & .q-field-wide{grid-column:1/-1}
 & .q-field :is(input:not([type=checkbox]):not([type=radio]),select,textarea){width:100%;min-width:0;min-height:30px;padding:5px 7px;border:1px solid var(--line);border-radius:4px;background:var(--panel2);color:var(--txt);font:400 var(--q-body-size,14px)/1.4 var(--mm-text)}
 & .q-field textarea{min-height:70px;resize:vertical}
 & .q-field [aria-invalid=true]{border-color:var(--red)!important}
 & .q-field-error{color:var(--red);font:400 var(--q-body-size,14px)/1.45 var(--mm-text)}
 & .q-check-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:6px 12px}
 & .q-check{display:flex;align-items:center;gap:6px;font:400 var(--q-body-size,14px)/1.4 var(--mm-text)}
 & .q-check input{width:14px;height:14px;margin:0;accent-color:var(--accent);flex:none}
 /* Market and outcome tiles use the reference's compact hierarchy. */
 & .q-market-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:6px}
 & .q-market-tile{padding:7px 9px;display:grid;gap:2px}
 & .q-market-name{font:600 var(--q-body-size,14px)/1.3 var(--mm-text)}
 & .q-market-price{font:600 16px/1.3 var(--mm-text);font-variant-numeric:tabular-nums}
 & .q-market-change{font:400 var(--q-small-size,13px)/1.4 var(--mm-text)}
 & .q-metric-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:7px}
 & .q-metric{display:grid;grid-template-columns:minmax(0,1fr) auto;align-content:start;gap:3px 7px;padding:9px 10px;position:relative;overflow:hidden}
 & .q-metric-label{font:500 var(--q-small-size,13px)/1.4 var(--mm-text);color:var(--dim)}
 & .q-metric-value{grid-column:1/-1;font:600 22px/1.2 var(--mm-text);font-variant-numeric:tabular-nums;letter-spacing:-.4px;white-space:nowrap}
 & .q-metric-detail{grid-column:1/-1;font:400 var(--q-small-size,13px)/1.4 var(--mm-text);color:var(--dim)}
 & .q-metric-chart{grid-column:1/-1;width:100%;height:30px;fill:none;stroke:var(--accent);stroke-width:1.5}
 & .q-progress{display:block;width:100%;height:5px;overflow:hidden;border:0;border-radius:3px;background:var(--line);accent-color:var(--accent)}
 & .q-progress::-webkit-progress-bar{background:var(--line)}
 & .q-progress::-webkit-progress-value{background:var(--accent);border-radius:3px}
 & .q-progress::-moz-progress-bar{background:var(--accent);border-radius:3px}
 & .q-ring{width:64px;height:64px;transform:rotate(-90deg);fill:none;stroke-width:5}
 & .q-ring-track{stroke:var(--line)}
 & .q-ring-value{stroke:var(--green);stroke-linecap:round}
 /* Evidence remains readable; only labels use the 10px micro role. */
 & .q-table-wrap{overflow:auto;max-width:100%;scrollbar-width:thin;border-radius:0 0 6px 6px}
 & .q-table{width:100%;border-collapse:collapse;font:400 var(--q-body-size,14px)/1.4 var(--mm-text);font-variant-numeric:tabular-nums;text-align:left}
 & .q-table :is(th,td){padding:6px 8px;border-bottom:1px solid var(--line);border-right:1px solid color-mix(in srgb,var(--line) 35%,transparent);vertical-align:middle}
 & .q-table th{position:sticky;top:0;z-index:1;background:var(--panel2);color:var(--dim);font:500 var(--q-label-size,12px)/1.4 var(--mm-text);white-space:nowrap}
 & .q-table th:last-child,& .q-table td:last-child{border-right:0}
 & .q-table tbody tr:last-child td{border-bottom:0}
 & .q-table tbody tr:nth-child(even){background:color-mix(in srgb,var(--panel2) 35%,transparent)}
 & .q-table tbody tr:hover{background:color-mix(in srgb,var(--accent) 8%,var(--panel))}
 & .q-table tbody tr[aria-selected=true]{background:color-mix(in srgb,var(--accent) 13%,var(--panel));box-shadow:inset 3px 0 var(--accent)}
 & .q-table tbody tr[tabindex]{cursor:pointer}
 & .q-table .q-num{text-align:right;white-space:nowrap}
 & .q-table .q-sort{padding:0;border:0;background:none;color:inherit;font:inherit;text-align:inherit}
 & .q-table-wide{min-width:800px}
 & .q-table-scroll{min-width:560px}
 & .q-badge,& .q-chip{display:inline-flex;align-items:center;gap:4px;padding:2px 6px;border:1px solid var(--line);border-radius:4px;background:var(--panel2);font:500 var(--q-small-size,13px)/1.35 var(--mm-text);white-space:nowrap}
 & .q-badge.q-positive{border-color:color-mix(in srgb,var(--green) 35%,var(--line));background:color-mix(in srgb,var(--green) 9%,var(--panel))}
 & .q-badge.q-negative{border-color:color-mix(in srgb,var(--red) 35%,var(--line));background:color-mix(in srgb,var(--red) 9%,var(--panel))}
 & .q-status{display:inline-flex;align-items:center;gap:5px;font:500 var(--q-small-size,13px)/1.4 var(--mm-text);white-space:nowrap}
 & .q-status::before{content:'';width:6px;height:6px;border-radius:50%;background:currentColor}
 & .q-key-values{display:grid;gap:0;margin:0;font:400 var(--q-body-size,14px)/1.4 var(--mm-text)}
 & .q-key-values>div{display:flex;justify-content:space-between;gap:10px;padding:6px 0;border-bottom:1px solid var(--line)}
 & .q-key-values>div:last-child{border-bottom:0}
 & .q-key-values dt{color:var(--dim)}
 & .q-key-values dd{margin:0;font-variant-numeric:tabular-nums}
 & .q-signal-banner{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
 & .q-signal-banner strong{font:600 22px/1.2 var(--mm-text)}
 & .q-direction{display:inline-flex;align-items:center;gap:5px;font:600 16px/1.4 var(--mm-text)}
 & .q-divider{height:1px;border:0;background:var(--line);margin:8px 0}
}
@media(max-width:1000px){.q-design-model[data-q-system] .q-split{grid-template-columns:minmax(0,1fr)}}
@media(max-width:650px){.q-design-model[data-q-system]{
 & .q-app-header{flex-wrap:wrap;gap:8px}
 & .q-app-nav{width:100%;order:3}
 & .q-workspace{padding:8px}
 & .q-page-heading{align-items:flex-start}
 & .q-grid-equal{grid-template-columns:minmax(0,1fr)}
 & .q-market-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 & .q-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 & .q-metric{padding:8px}
 & .q-metric-value{font-size:19px}
 & .q-field-grid{grid-template-columns:minmax(0,1fr)}
 & .q-toolbar-end{margin-left:0}
}}
@media(prefers-reduced-motion:reduce){.q-design-model[data-q-system] *{scroll-behavior:auto!important;animation:none!important;transition:none!important}}
@media print{.q-design-model[data-q-system]{& .q-app-header,& .q-no-print{display:none!important}& .q-workspace{padding:0}& .q-table-wrap{overflow:visible}& .q-panel{break-inside:avoid}}}

.q-design-model[data-q-system] .q-chart-surface{display:block;width:100%;height:260px;min-width:0;background:var(--panel);color:var(--dim)}
.q-design-model[data-q-system] .q-chart-grid{stroke:var(--line);stroke-width:1}
.q-design-model[data-q-system] .q-chart-rise{stroke:var(--green);fill:var(--green)}
.q-design-model[data-q-system] .q-chart-fall{stroke:var(--red);fill:var(--red)}

/* Accounts layout compatibility. Components are owned above; behaviour stays in existing JS. */
@scope (:root:has([data-q-page="accounts"])) {
/* Retained layout/engine compatibility: /quantos-page.css */
/* QuantOS shared page language — extracted from Market Preparation.
   New application pages use these classes instead of inventing local card,
   panel, table, empty-state, and control systems. */
.q-page,.prep{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;min-width:0}
.q-toolbar,.freeze-bar{display:flex;align-items:flex-end;gap:5px;flex-wrap:wrap;border:1px solid var(--line);border-radius:6px;padding:6px 8px;background:var(--panel)}
.q-toolbar label{display:grid;gap:2px;color:var(--mut);font-size:var(--fs-label,10px);font-weight:600;letter-spacing:.04em}
.q-toolbar input,.q-toolbar select,.q-toolbar button{min-height:30px;border:1px solid var(--line);border-radius:5px;background:var(--panel2);color:var(--txt);padding:4px 7px;font:inherit;font-size:var(--fs-body,12px)}
.q-toolbar button{cursor:pointer;font-weight:600}.q-toolbar button:hover{border-color:var(--dim)}
.q-cards,.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:6px}
.q-card,.c{min-width:0;border:1px solid var(--line);border-radius:6px;background:var(--panel);padding:6px 8px}
.q-card-label,.c .lbl{font-size:var(--fs-label,10px);letter-spacing:.04em;color:var(--mut);font-weight:600}
.q-card-value,.c .val{font:600 21px/1.15 var(--mm-mono);margin-top:4px;font-variant-numeric:tabular-nums}
.q-card-sub,.c .sub{font-size:var(--fs-small,10px);color:var(--dim);margin-top:4px;line-height:1.45}
.q-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.q-panel,.pnl{min-width:0;border:1px solid var(--line);border-radius:6px;background:var(--panel);overflow:hidden}
.q-panel-head,.pnl>h3{font:600 var(--fs-title,12px)/1.35 var(--mm-display);padding:6px 8px;margin:0;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:5px}
.q-panel-body,.pnl>.q-panel-body{padding:7px 8px;min-width:0}
.q-table-wrap{overflow:auto;max-height:520px}
table.q-table,table.t{width:100%;border-collapse:collapse;font-size:var(--fs-table,11px)}
table.q-table th,table.t th{text-align:left;font-size:var(--fs-table,11px);letter-spacing:.04em;color:var(--mut);font-weight:600;padding:5px 6px;border-bottom:1px solid var(--line);background:var(--panel2)}
table.q-table td,table.t td{padding:5px 6px;border-bottom:1px solid color-mix(in srgb,var(--line) 55%,transparent);font-variant-numeric:tabular-nums}
table.q-table tr:last-child td,table.t tr:last-child td{border-bottom:0}
table.q-table tbody tr:hover td,table.t tbody tr:hover td{background:color-mix(in srgb,var(--gold) 7%,var(--panel))}
table.q-table th.num,table.q-table td.num,table.t th.num,table.t td.num{text-align:right}
.q-note,.note{font-size:var(--fs-body,12px)!important;font-weight:400;letter-spacing:normal;color:var(--dim);line-height:1.55;background:var(--panel2);border-left:2px solid var(--line);border-radius:3px;padding:6px 8px}
.q-empty,.empty{color:var(--mut);font-size:var(--fs-body,12px);padding:12px 8px;line-height:1.6;text-align:center}
.q-positive{color:var(--green)}.q-negative{color:var(--red)}.q-muted{color:var(--mut)}
@media(max-width:900px){.q-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:700px){.wrap>div:first-child{padding-left:34px}}
@media(max-width:560px){.q-cards,.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.q-toolbar,.freeze-bar{align-items:stretch}.q-toolbar label{flex:1 1 130px}}
@media(max-width:360px){.q-cards,.cards{grid-template-columns:1fr}}
/* Shared workspace components: chart review, metric rows and editable evidence. */
/* Optional compact density. Opt-in only; shared type roles and theme tokens remain authoritative. */
.q-compact-density,.q-compact-density .q-page,.q-compact-density .q-grid,.q-compact-density .q-stack{gap:6px}
.q-compact-density .q-panel-body,.q-compact-density .q-text-value,.q-typography .q-panel-body,.q-typography .q-text-value{font:400 var(--fs-body,12px)/1.5 var(--mm-text)}
.q-compact-density .q-panel-body>p{margin:4px 0}
.q-compact-density .q-panel-body .q-note{margin:4px 0}
.q-compact-density .q-key-values{gap:3px 6px;margin:4px 0}
.q-compact-density .q-panel-body>.q-tools{gap:4px}
.q-compact-density .q-toolbar{padding:4px 6px;gap:4px}
.q-compact-density .q-toolbar :is(button,input,select){min-height:26px}
.q-compact-density .q-card-value{font-size:18px}
.q-compact-density .q-text-value{margin-top:4px}
.q-page.q-compact-density .q-table :is(th,td){padding:4px 6px;border-right:1px solid color-mix(in srgb,var(--line) 45%,transparent)}
.q-page.q-compact-density .q-table :is(th,td):last-child{border-right:0}
.q-page.q-compact-density .q-table tbody tr:nth-child(even) td{background:color-mix(in srgb,var(--panel2) 45%,var(--panel))}
.q-page.q-compact-density .q-table tbody tr:hover td{background:color-mix(in srgb,var(--accent) 10%,var(--panel))}
.q-compact-density .q-ring-row{padding:4px}
.q-compact-density .q-page-header{gap:6px}
.q-compact-density .q-tools{font:400 var(--fs-body,12px)/1.5 var(--mm-text)}
.q-compact-density .q-section-title,.q-typography .q-section-title{font:600 var(--fs-title,12px)/1.4 var(--mm-display);margin:0}
.q-compact-density button:disabled{opacity:.45;cursor:not-allowed}
.q-split-handle{width:6px;align-self:stretch;background:var(--panel2);border-inline:1px solid var(--line);cursor:col-resize;touch-action:none}
.q-split-handle:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.q-content{padding:12px}.q-page [hidden]{display:none!important}
.q-page-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}.q-page-header h1{margin:0}.q-page-header p{margin:4px 0;color:var(--mut)}
.q-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.q-metric{position:relative;display:grid;grid-template-columns:28px minmax(0,1fr);gap:8px;padding:10px;border:1px solid var(--line);border-radius:6px;background:var(--panel);min-width:0}.q-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:6px;background:var(--panel2);color:var(--gold)}.q-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7}.q-spark{position:absolute;width:45px;height:18px;right:8px;bottom:8px}.q-spark svg{width:100%;height:100%}
.q-workspace{display:grid;grid-template-columns:minmax(0,1fr) var(--q-reader-width,320px) 270px;gap:8px;align-items:start}.q-stack{display:grid;gap:8px;min-width:0}.q-main-aside{display:grid;grid-template-columns:minmax(0,3fr) minmax(260px,1fr);gap:8px}.q-form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:8px}.q-wide{grid-column:1/-1}.q-form-grid h3{margin:0 0 8px;font:600 var(--fs-title,12px)/1.4 var(--mm-display)}.q-form-grid input,.q-form-grid select,.q-form-grid textarea{max-width:100%;width:100%;box-sizing:border-box}.q-form-grid textarea{min-height:80px}
.q-tools{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.q-tools button,.q-tools select,.q-tabs button,.q-menu summary,.q-help{font:inherit;color:var(--txt);background:var(--panel2);border:1px solid var(--line);border-radius:5px;padding:5px 7px;cursor:pointer}.q-tabs{display:flex;gap:4px;flex-wrap:wrap;padding:8px}.q-tabs button[aria-selected=true],.q-tabs button.active{border-color:var(--gold);color:var(--gold)}.q-menu{position:relative}.q-menu>div{position:absolute;right:0;z-index:60;min-width:220px;max-width:85vw;display:grid;gap:6px;background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:8px;box-shadow:0 6px 20px #0004}
.q-reader-panel{position:relative;overflow:visible}.q-reader-pane{max-height:510px;overflow:auto}.q-divider{position:absolute;left:-6px;top:0;bottom:0;width:6px;cursor:col-resize;touch-action:none}.q-collapse{position:absolute;right:6px;top:6px;z-index:3}.q-reader-collapsed{grid-template-columns:minmax(0,1fr) 36px 270px}.q-reader-collapsed .q-reader-pane>*{display:none}.q-reader-collapsed .q-reader-pane>.cg-controls{display:block;min-height:32px}.q-reader-collapsed .cg-controls>*:not(.q-collapse){display:none}.q-key-values{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px;margin:8px 0}.q-key-values dt{color:var(--mut)}.q-key-values dd{margin:0;text-align:right;overflow-wrap:anywhere}.q-reader-summary{padding:8px}.q-disclosure{padding:8px}
.q-ring,.q-mini-ring{position:relative;display:grid;place-items:center;flex-shrink:0;border-radius:50%;background:conic-gradient(var(--green) var(--rate,0%),var(--line) 0)}.q-ring{width:96px;height:96px}.q-mini-ring{width:32px;height:32px}.q-ring:before,.q-mini-ring:before{content:'';position:absolute;inset:7px;background:var(--panel);border-radius:50%}.q-ring>*{position:relative;z-index:1}.q-ring-row{display:flex;align-items:center;gap:12px;padding:10px}.q-ring-row>div:last-child{flex:1;min-width:0}.q-key-row{display:flex;justify-content:space-between;gap:10px;padding:10px;border-bottom:1px solid var(--line)}.q-progress{height:5px;background:var(--panel2);border-radius:5px;overflow:hidden}.q-progress>span,.q-progress>i{display:block;height:100%;background:var(--green)}.q-progress-danger>span,.q-progress-danger>i{background:var(--red)}.q-badge{border:1px solid var(--line);border-radius:4px;padding:2px 5px;white-space:nowrap}.q-help{margin-left:auto;padding:1px 5px}.q-floating-card{position:absolute;z-index:30;width:260px;max-width:calc(100% - 20px);max-height:280px;overflow:auto;background:var(--panel);color:var(--txt);border:1px solid var(--line);border-radius:6px;padding:10px;box-shadow:0 6px 20px #0004}
@media(min-width:1500px){.q-kpis{grid-template-columns:repeat(8,minmax(0,1fr))}}
@media(max-width:1300px){.q-workspace{grid-template-columns:minmax(0,1fr) var(--q-reader-width,280px)}.q-workspace>.q-stack{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr))}.q-reader-collapsed{grid-template-columns:minmax(0,1fr) 36px}}
@media(max-width:900px){.q-main-aside{grid-template-columns:minmax(0,1fr)}.q-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){.q-workspace{grid-template-columns:minmax(0,1fr)}.q-workspace>.q-stack{grid-template-columns:minmax(0,1fr)}.q-divider{display:none}.q-reader-collapsed{grid-template-columns:minmax(0,1fr)}}
@media(max-width:600px){.q-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.q-form-grid{grid-template-columns:minmax(0,1fr)}.q-page-header>*{max-width:100%}.q-content{padding:8px}}
.q-metric>.q-icon{grid-column:1;grid-row:1/3}.q-metric>.q-card-label{grid-column:2;grid-row:1}.q-metric>.q-card-value{grid-column:1/-1;grid-row:3;overflow-wrap:anywhere}.q-metric>.q-card-sub{grid-column:1/-1;grid-row:4;padding-right:42px}.q-metric>.q-mini-ring{position:absolute;right:8px;top:36px}.q-ring{align-content:center;gap:3px}.q-ring-row>dl{display:grid;grid-template-columns:1fr auto;gap:8px;flex:1}.q-ring-row dd{margin:0;text-align:right}.q-main-aside>.q-panel>.ph{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:8px;border-bottom:1px solid var(--line)}
/* Evidence presentation uses the same type scale as the shared tables. */
.q-evidence-table{font-variant-numeric:tabular-nums}.q-evidence-table .q-time-line{display:block;white-space:nowrap}.q-evidence-table .q-time-line+ .q-time-line{color:var(--dim)}.q-evidence-table th button{font:inherit;color:inherit;border:0;background:transparent;padding:0;cursor:pointer;white-space:nowrap}.q-evidence-table td.num{white-space:nowrap}.q-evidence-table tr.selected td{background:color-mix(in srgb,var(--gold) 12%,var(--panel))}.q-evidence-table tr.selected td:first-child{box-shadow:inset 3px 0 var(--gold)}.q-evidence-table details summary{cursor:pointer;white-space:nowrap}.q-evidence-table details[open]{min-width:190px}.q-evidence-table details p{white-space:normal;line-height:1.5}.q-chart-legend{position:absolute;top:6px;left:8px;z-index:3;pointer-events:none;background:var(--panel);color:var(--mut);padding:3px 6px;max-width:calc(100% - 90px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-table,11px)}.q-tabs button[aria-pressed=true]{border-color:var(--gold);color:var(--gold)}
/* Optional analysis panels release their column when closed. */
.q-workspace.q-reader-hidden{grid-template-columns:minmax(0,1fr) 270px}.q-workspace.q-reader-hidden>.q-stack{grid-column:auto}
@media(max-width:1300px){.q-workspace.q-reader-hidden{grid-template-columns:minmax(0,1fr)}.q-workspace.q-reader-hidden>.q-stack{grid-column:1/-1}}
.q-stack>*:only-child{grid-column:1/-1}.q-floating-card .q-key-row{padding:6px 0}.q-floating-card .q-key-row b{overflow-wrap:anywhere;min-width:0;text-align:right}


/* Retained layout/engine compatibility: /test/quantos-polish.css */
/* deploy/test/quantos-polish.css — shared look-and-feel layer for the polished test copies of the
   Accounts and QuantOS Analytics pages (local /test/, hosted /app/test/).

   Rules for this file (see SESSION_27-OCT-2026.md):
   - Look and feel only. No feature, data, order or label changes.
   - Colours come only from the central theme tokens (--bg, --panel, --panel2, --line, --txt,
     --dim, --mut, --accent, --accent-wash, --green, --red, --gold). No palette of its own.
   - Font families and type sizes are untouched (Market Preparation stays the reference).
   Everything is scoped under :scope.qp, which test-shell.js sets.

   v2 (28-OCT-2026): v1 was too faint to notice. The look now follows the competitor pattern:
   a tinted canvas with white cards floating on it, a toolbar card, KPI cards with a coloured
   side bar and wash, pill tabs, a filled period selector and rounded, shadowed panels. */

:scope.qp {
  --qp-canvas: color-mix(in srgb, var(--panel2) 70%, var(--bg));
  --qp-shadow-sm: 0 1px 2px rgba(15, 23, 42, .06), 0 1px 3px rgba(15, 23, 42, .05);
  --qp-shadow: 0 1px 2px rgba(15, 23, 42, .05), 0 6px 18px -8px rgba(15, 23, 42, .18);
  --qp-shadow-lg: 0 2px 4px rgba(15, 23, 42, .06), 0 14px 32px -14px rgba(15, 23, 42, .30);
  --qp-r: 12px;
}

/* ---------- Canvas: cards float on a tinted ground ---------- */
:scope.qp body { background: var(--qp-canvas); }

/* ---------- Toolbar: report period row becomes one card ---------- */
:scope.qp .phead:has(.seg, input[type=date]) {
  background: var(--panel);
  border: 1px solid color-mix(in srgb, var(--line) 80%, transparent);
  border-radius: var(--qp-r);
  padding: 10px 14px;
  box-shadow: var(--qp-shadow-sm);
}
:scope.qp .q-toolbar {
  background: var(--panel);
  border-radius: var(--qp-r);
  box-shadow: var(--qp-shadow-sm);
  padding: 10px 14px;
  gap: 8px;
}

/* ---------- Surfaces: panels and boxes ---------- */
:scope.qp :is(.panel, .q-panel, .pnl, .oi-panel, .mxr-panel, .box, .freeze-bar) {
  background: var(--panel);
  border-color: color-mix(in srgb, var(--line) 75%, transparent);
  border-radius: var(--qp-r);
  box-shadow: var(--qp-shadow);
}
:scope.qp :is(.panel > .ph, .q-panel-head, .pnl > h3) {
  background: var(--panel);
  padding-top: 13px;
  padding-bottom: 13px;
  border-bottom-color: color-mix(in srgb, var(--line) 60%, transparent);
}
/* the count / legend on the right of a panel head becomes a soft chip */
:scope.qp .panel > .ph .count:not(:empty) {
  background: var(--panel2);
  border: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
  border-radius: 99px;
  padding: 3px 10px;
}

/* ---------- KPI cards: coloured side bar, wash and lift ---------- */
:scope.qp :is(.card, .q-card, .c, .kpi, .tz-metric, .py2-kpi, .kt > div) {
  background: var(--panel);
  border-color: color-mix(in srgb, var(--line) 75%, transparent);
  border-radius: var(--qp-r);
  box-shadow: var(--qp-shadow);
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
:scope.qp :is(.card, .q-card, .c, .kpi, .tz-metric, .py2-kpi, .kt > div):hover {
  border-color: color-mix(in srgb, var(--accent) 40%, var(--line));
  box-shadow: var(--qp-shadow-lg);
  transform: translateY(-2px);
}
:scope.qp :is(.cards > .card, .q-cards > .q-card) {
  position: relative;
  overflow: hidden;
  padding-left: 18px;
}
:scope.qp :is(.cards > .card, .q-cards > .q-card)::before {
  content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px;
  background: var(--accent);
}
:scope.qp .cards > .card:has(> .val.up),
:scope.qp .q-cards > .q-card:has(.q-positive) {
  background: linear-gradient(135deg, color-mix(in srgb, var(--green) 10%, var(--panel)) 0%, var(--panel) 70%);
}
:scope.qp .cards > .card:has(> .val.dn),
:scope.qp .q-cards > .q-card:has(.q-negative) {
  background: linear-gradient(135deg, color-mix(in srgb, var(--red) 10%, var(--panel)) 0%, var(--panel) 70%);
}
:scope.qp .cards > .card:has(> .val.up)::before,
:scope.qp .q-cards > .q-card:has(.q-positive)::before { background: var(--green); }
:scope.qp .cards > .card:has(> .val.dn)::before,
:scope.qp .q-cards > .q-card:has(.q-negative)::before { background: var(--red); }

/* ---------- Tabs: pill bar instead of an underline row ---------- */
:scope.qp .tabs {
  align-items: center;
  gap: 4px;
  border-bottom: none;
  background: var(--panel);
  border: 1px solid color-mix(in srgb, var(--line) 75%, transparent);
  border-radius: var(--qp-r);
  padding: 5px;
  box-shadow: var(--qp-shadow-sm);
}
:scope.qp .tabs button:not(.btn) {
  border: none;
  border-radius: 8px;
  padding-top: 7px;
  padding-bottom: 7px;
  margin: 0;
  transition: color .15s ease, background-color .15s ease, box-shadow .15s ease;
}
:scope.qp .tabs button:not(.btn):not(.on):hover { background: var(--panel2); color: var(--txt); }
:scope.qp .tabs button.on:not(.btn) {
  background: var(--accent);
  color: var(--panel);
  box-shadow: 0 4px 12px -4px color-mix(in srgb, var(--accent) 70%, transparent);
}
:scope.qp .tabs .btn { margin-bottom: 0; }

/* ---------- Period selector: filled active segment ---------- */
:scope.qp .seg {
  border: 1px solid color-mix(in srgb, var(--line) 75%, transparent);
  border-radius: 9px;
  padding: 3px;
  gap: 2px;
  background: var(--panel2);
}
:scope.qp .seg button { border-radius: 7px; transition: color .15s ease, background-color .15s ease; }
:scope.qp .seg button:not(.on):hover { color: var(--txt); background: var(--panel); }
:scope.qp .seg button.on {
  background: var(--accent);
  color: var(--panel);
  font-weight: 600;
  box-shadow: 0 2px 8px -3px color-mix(in srgb, var(--accent) 70%, transparent);
}

/* ---------- Tables ---------- */
:scope.qp th {
  background: var(--panel2);
  border-bottom-color: color-mix(in srgb, var(--line) 80%, transparent);
}
/* The shared divider and hover are translucent white, which vanish on Light. Use theme tokens. */
:scope.qp td { border-bottom-color: color-mix(in srgb, var(--line) 55%, transparent); }
:scope.qp tbody tr:not([class]):nth-child(even) { background: color-mix(in srgb, var(--panel2) 45%, transparent); }
:scope.qp tbody tr:hover,
:scope.qp tbody tr:not([class]):nth-child(even):hover { background: var(--accent-wash); }
:scope.qp tbody tr { transition: background-color .12s ease; }
:scope.qp :is(.tscroll, .q-table-wrap, .table-wrap, .mxr-table-wrap, .oi-table-wrap) { scrollbar-width: thin; }

/* ---------- Buttons and inputs ---------- */
:scope.qp :is(.btn, .q-toolbar button, button.btn) {
  border-radius: 8px;
  transition: color .15s ease, border-color .15s ease, background-color .15s ease, box-shadow .15s ease;
}
:scope.qp :is(.btn, .q-toolbar button):hover {
  border-color: var(--accent);
  color: var(--accent);
  box-shadow: 0 0 0 3px var(--accent-wash);
}
:scope.qp :is(input:not([type=checkbox]):not([type=radio]):not([type=range]), select) {
  border-radius: 8px;
  transition: border-color .15s ease, box-shadow .15s ease;
}
:scope.qp :is(input:not([type=checkbox]):not([type=radio]):not([type=range]), select):focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 3px var(--accent-wash);
}
:scope.qp :is(a, button, [role=button], summary, [tabindex]):focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

/* ---------- Badges and pills ---------- */
:scope.qp :is(.pill, .badge) { border-radius: 99px; padding-inline: 9px; }

/* ---------- Test marker ---------- */
.qp-tag {
  position: fixed; z-index: 9000; left: 50%; bottom: calc(10px + env(safe-area-inset-bottom, 0px)); transform: translateX(-50%);
  font: 600 11px/1 var(--mm-text, Inter, sans-serif); letter-spacing: .02em; text-decoration: none; white-space: nowrap;
  color: var(--panel); background: var(--accent); border: 1px solid var(--accent);
  padding: 8px 14px; border-radius: 99px; box-shadow: 0 8px 20px -8px rgba(15, 23, 42, .45); opacity: .92;
}
.qp-tag:hover { opacity: 1; }

@media (prefers-reduced-motion: reduce) {
  :scope.qp *, :scope.qp *::before, :scope.qp *::after { transition: none !important; }
  :scope.qp :is(.card, .q-card, .c, .kpi, .tz-metric, .py2-kpi, .kt > div):hover { transform: none; }
}
/* Trade review experiment; active only on the test copy. */
body.tt-test-review:not(.site-light) .trade-bubble{background:#fff!important;color:#172334!important;border-color:#c9d2df!important;box-shadow:0 6px 22px #0004}
body.tt-test-review:not(.site-light) .trade-bubble .tb-time,body.tt-test-review:not(.site-light) .trade-bubble .tb-row span:first-child{color:#52606d!important}
body.tt-test-review:not(.site-light) .trade-bubble .tb-shared select{background:#fff!important;color:#172334!important;border-color:#c9d2df!important}
body.tt-test-review:not(.site-light) .trade-bubble .tb-buy{color:#087d55!important}body.tt-test-review:not(.site-light) .trade-bubble .tb-sell{color:#c72c45!important}
.tt-test-review .running-net{display:block;color:var(--dim);font:inherit;white-space:nowrap}.tt-test-review .running-net strong{font-weight:600}.tt-test-review .running-net-cell{white-space:nowrap;font-variant-numeric:tabular-nums}
/* Shared test components matching the reference: icon tiles and compact ledgers.
   Existing typography and theme tokens remain authoritative. */
:scope.qp .q-kpi-tile{display:grid;grid-template-columns:28px minmax(0,1fr);column-gap:8px;row-gap:3px;align-content:start;padding:10px;border:1px solid color-mix(in srgb,var(--accent) 24%,var(--line));box-shadow:none}
:scope.qp .q-kpi-tile::before{display:none}
:scope.qp .q-kpi-tile .q-icon-tile{grid-column:1;grid-row:1/3;display:grid;place-items:center;width:28px;height:28px;border-radius:7px;color:var(--accent);background:color-mix(in srgb,var(--accent) 17%,var(--panel));border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line))}
:scope.qp .q-kpi-tile .q-icon-danger{color:var(--red);background:color-mix(in srgb,var(--red) 14%,var(--panel));border-color:color-mix(in srgb,var(--red) 28%,var(--line))}
:scope.qp .q-kpi-caption{grid-column:2;grid-row:1;min-width:0}
:scope.qp .q-kpi-value{grid-column:2;grid-row:2;white-space:nowrap;margin-top:0}
:scope.qp .q-kpi-detail{grid-column:1/-1;grid-row:3;color:var(--dim);line-height:1.45}
:scope.qp table.q-ledger{table-layout:auto;border-collapse:collapse}
:scope.qp table.q-ledger th{padding:8px 7px;background:color-mix(in srgb,var(--accent) 7%,var(--panel));border-bottom:1px solid color-mix(in srgb,var(--accent) 24%,var(--line));text-transform:none;white-space:nowrap;text-align:left}
:scope.qp table.q-ledger td{padding:7px;vertical-align:middle;text-align:left;border-bottom:1px solid color-mix(in srgb,var(--accent) 10%,var(--line));white-space:nowrap}
:scope.qp table.q-ledger tbody tr:hover td{background:color-mix(in srgb,var(--accent) 7%,var(--panel))}
:scope.qp table.q-ledger tbody tr.selected td{background:color-mix(in srgb,var(--accent) 14%,var(--panel))}
:scope.qp table.q-ledger tbody tr.selected td:first-child{box-shadow:inset 3px 0 var(--accent)}
:scope.qp table.q-ledger :is(th,td):is(:nth-child(6),:nth-child(7),:nth-child(8),:nth-child(9),:nth-child(10),:nth-child(11),:nth-child(12),:nth-child(14)){text-align:right;font-variant-numeric:tabular-nums}
:scope.qp table.q-ledger :is(th,td):is(:first-child,:nth-child(5),:nth-child(13)){text-align:center}
:scope.qp table.q-ledger .badge{display:inline-flex;align-items:center;justify-content:center;min-width:36px;padding:3px 8px;border:1px solid var(--line);cursor:pointer;font:inherit}
:scope.qp table.q-ledger .badge.up{background:color-mix(in srgb,var(--green) 16%,var(--panel));border-color:color-mix(in srgb,var(--green) 30%,var(--line))}
:scope.qp table.q-ledger .badge.down{background:color-mix(in srgb,var(--red) 16%,var(--panel));border-color:color-mix(in srgb,var(--red) 30%,var(--line))}
:scope.qp table.q-ledger [data-review-status] label{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;cursor:pointer}
:scope.qp table.q-ledger [data-review-status] input{accent-color:var(--accent);margin:0}

/* Compact reference geometry: shared theme and font roles remain authoritative. */
:scope.qp .tt-test-review .tt-wrap{padding:6px 10px 20px;max-width:none;min-width:0}
:scope.qp .tt-test-review .tt-wrap>header{gap:12px;margin:0 0 6px;align-items:center;flex-wrap:wrap}
:scope.qp .tt-test-review .controls{gap:5px;flex-wrap:wrap}
:scope.qp .tt-test-review .controls :is(input,select,button){min-height:30px;padding:4px 8px}
:scope.qp .tt-test-review #summary{gap:7px;margin:0 0 6px;grid-template-columns:repeat(8,minmax(0,1fr))}
:scope.qp .tt-test-review .q-kpi-tile{min-height:80px;padding:8px;border-radius:6px;column-gap:6px}
:scope.qp .tt-test-review .q-kpi-detail{line-height:1.3}
:scope.qp .tt-test-review .panel{margin-bottom:7px;border-radius:6px;box-shadow:none;border-color:color-mix(in srgb,var(--accent) 24%,var(--line))}
:scope.qp .tt-test-review .panel>.ph{min-height:34px;padding:5px 8px;gap:7px;flex-wrap:wrap}
:scope.qp .tt-test-review .q-toolbar{padding:4px;box-shadow:none;gap:5px;border-radius:5px}
:scope.qp .tt-test-review #trade-coverage-note{margin:0 0 5px;padding:3px 6px}
:scope.qp .tt-test-review .q-review-band{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:8px;align-items:start}
:scope.qp .tt-test-review .q-review-band>div{min-width:0}
:scope.qp .tt-test-review .q-review-band .table-wrap{max-height:242px}
:scope.qp .tt-test-review .q-review-band #mistakes{max-height:242px;overflow:auto;padding:4px}
:scope.qp .tt-test-review .mistake{padding:6px}
:scope.qp .tt-test-review .mistake p{line-height:1.4}
:scope.qp .tt-test-review table.q-ledger{min-width:1080px}
:scope.qp .tt-test-review table.q-ledger :is(th,td){padding:4px 6px;height:27px;border-right:1px solid color-mix(in srgb,var(--accent) 10%,var(--line))}
:scope.qp .tt-test-review table.q-ledger tbody tr:nth-child(even){background:color-mix(in srgb,var(--accent) 4%,var(--panel))}
:scope.qp .tt-test-review table.q-ledger .badge{padding:1px 5px;border-radius:4px}
:scope.qp .tt-test-review .tz-journal{padding:8px;gap:7px}
:scope.qp .tt-test-review .tz-grid,:scope.qp .tt-test-review .tz-metrics{gap:6px}
:scope.qp .tt-test-review .tz-metric{padding:5px 7px}
:scope.qp .tt-test-review .q-chart-time-scroll{width:100%;height:18px;overflow-x:scroll;overflow-y:hidden;scrollbar-color:var(--accent) var(--panel2);background:var(--panel2)}
:scope.qp .tt-test-review .q-chart-time-scroll>div{height:1px}
:scope.qp .tt-test-review .q-chart-time-scroll:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
@media(max-width:1250px){:scope.qp .tt-test-review #summary{grid-template-columns:repeat(4,minmax(0,1fr))}:scope.qp .tt-test-review .q-review-band{grid-template-columns:minmax(0,1fr)}}
@media(max-width:700px){:scope.qp .tt-test-review .tt-wrap{padding:6px}:scope.qp .tt-test-review #summary{grid-template-columns:repeat(2,minmax(0,1fr))}:scope.qp .tt-test-review .controls{width:100%}:scope.qp .tt-test-review .tz-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

:scope.qp .tt-test-review .chart-trade-contract{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}

/* Reusable compact review rail, ring and journal cells; theme-token colors only. */
:scope.qp .tt-test-review .q-chart-review-band{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:8px;align-items:start}
:scope.qp .tt-test-review .q-chart-review-band>div{min-width:0}
:scope.qp .q-review-rail{min-width:0;display:grid;gap:7px}
:scope.qp .q-review-rail .panel{margin:0}
:scope.qp .q-review-rail .ph a{color:var(--accent);font-size:11px;white-space:nowrap}
:scope.qp .q-performance-body{display:grid;grid-template-columns:92px minmax(0,1fr);gap:10px;align-items:center;padding:8px}
:scope.qp .q-win-ring{position:relative;width:92px;height:92px}
:scope.qp .q-win-ring svg{width:100%;height:100%;transform:rotate(-90deg)}
:scope.qp .q-win-ring circle{fill:none;stroke-width:8}
:scope.qp .q-ring-track{stroke:color-mix(in srgb,var(--accent) 22%,var(--panel))}
:scope.qp .q-ring-value{stroke:var(--green);stroke-linecap:round}
:scope.qp .q-win-ring>div{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
:scope.qp .q-win-ring strong{font-size:18px;font-weight:600}
:scope.qp .q-win-ring span{font-size:11px;color:var(--dim)}
:scope.qp .q-review-kv{margin:0;display:grid;gap:8px;font-size:12px}
:scope.qp .q-review-kv>div{display:flex;justify-content:space-between;gap:8px;align-items:start}
:scope.qp .q-review-kv dt{color:var(--dim)}
:scope.qp .q-review-kv dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}
:scope.qp .q-risk-values{padding:9px}
:scope.qp .q-risk-values>div{padding-bottom:8px;border-bottom:1px solid var(--line)}
:scope.qp .q-review-caption{padding:0 8px 7px;font-size:12px;line-height:1.4;color:var(--dim)}
:scope.qp .q-journal-strip{display:grid;grid-template-columns:150px 130px 110px 150px 110px 110px 110px 150px minmax(190px,1fr);gap:6px;overflow:auto;align-items:stretch;padding-bottom:3px}
:scope.qp .q-review-cell{padding:7px;border:1px solid color-mix(in srgb,var(--accent) 24%,var(--line));border-radius:5px;background:var(--panel2);min-width:0;font-size:12px;line-height:1.4}
:scope.qp .q-review-cell>b{display:block;font-size:11px;font-weight:500;color:var(--dim);margin-bottom:6px}
:scope.qp .q-review-cell .tz-field label,:scope.qp .q-review-cell .tz-notes>label{position:absolute;clip-path:inset(50%);width:1px;height:1px;overflow:hidden}
:scope.qp .q-review-cell :is(select,textarea){font-size:12px;padding:4px;min-width:0}
:scope.qp .q-review-cell .tz-metric{padding:4px 0;border:0;box-shadow:none;background:transparent}
:scope.qp .q-review-cell .tz-metric b{font-size:12px}
:scope.qp .q-review-cell .tz-metric span{font-size:10px}
:scope.qp .q-review-cell .tz-tags{gap:3px}
:scope.qp .q-review-cell .tz-tags button{padding:2px 5px;font-size:11px;border-radius:4px}
:scope.qp .q-review-cell .tz-notes textarea{height:112px;min-height:72px;line-height:1.4}
:scope.qp .q-review-cell .q-key-values>div{display:flex;justify-content:space-between;gap:6px;font-size:12px}
:scope.qp .q-review-cell .q-key-values b{font-weight:500}
:scope.qp .q-review-cell p{font-size:12px;line-height:1.4}
:scope.qp .tt-test-review .tz-actions button{padding:4px 10px;font-size:12px}
:scope.qp .q-trade-flag{color:var(--red);font-size:17px;line-height:1;vertical-align:middle}
@media(max-width:1100px){:scope.qp .tt-test-review .q-chart-review-band{grid-template-columns:minmax(0,1fr)}:scope.qp .q-review-rail{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:7px}}
@media(max-width:600px){:scope.qp .q-review-rail{grid-template-columns:minmax(0,1fr)}}

/* Journal regrouping: compact 2x2 controls and evidence; notes beside performance/risk. */
:scope.qp .tt-test-review .q-journal-strip{grid-template-columns:minmax(140px,1fr) minmax(140px,1fr) minmax(260px,1.6fr) minmax(170px,1.1fr);overflow:visible;align-items:start;gap:7px}
:scope.qp .q-journal-evidence{display:grid;gap:6px;min-width:0}
:scope.qp .q-journal-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;min-width:0}
:scope.qp .q-journal-controls .q-review-cell{padding:7px}
:scope.qp .q-journal-controls .q-review-cell select{width:100%}
:scope.qp .q-journal-notes{grid-column:1/3}
:scope.qp .q-journal-notes .tz-notes textarea{height:112px;width:100%}
:scope.qp .q-journal-strip>.q-review-rail{grid-column:3/5;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;margin:0}
:scope.qp .q-journal-evidence .tz-metric{padding:0}
:scope.qp .q-journal-evidence .q-excursion{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
:scope.qp .q-journal-evidence .q-review-cell{padding:6px}
:scope.qp .q-journal-strip>.q-review-cell,:scope.qp .q-journal-evidence,:scope.qp .q-journal-controls{height:auto;min-height:0}
@media(max-width:900px){:scope.qp .tt-test-review .q-journal-strip{grid-template-columns:repeat(2,minmax(0,1fr))}:scope.qp .q-journal-notes{grid-column:1/3}:scope.qp .q-journal-strip>.q-review-rail{grid-column:1/3}}
@media(max-width:520px){:scope.qp .tt-test-review .q-journal-strip{grid-template-columns:minmax(0,1fr)}:scope.qp .q-journal-notes,:scope.qp .q-journal-strip>.q-review-rail{grid-column:1}:scope.qp .q-journal-strip>.q-review-rail{grid-template-columns:minmax(0,1fr)}}
/* Reviewed journal geometry: shared panel hierarchy and no wide-screen blank band. */
:scope.qp .tt-test-review .q-journal-strip{align-items:stretch}
:scope.qp .tt-test-review .q-review-cell{padding:0;margin:0;background:var(--panel);border-radius:6px}
:scope.qp .tt-test-review .q-review-cell>.q-panel-head{display:flex;margin:0;padding:6px 8px;font:600 12px/1.35 var(--mm-display);color:var(--txt);gap:5px;border-bottom:1px solid var(--line)}
:scope.qp .tt-test-review .q-review-cell>.q-panel-body{padding:8px;margin:0}
:scope.qp .tt-test-review .q-journal-controls .q-review-cell,:scope.qp .tt-test-review .q-journal-evidence .q-review-cell{padding:0}
:scope.qp .tt-test-review .q-journal-strip>.q-review-rail{align-items:stretch}
:scope.qp .tt-test-review .q-journal-strip>.q-review-rail>.panel{height:100%}
:scope.qp .tt-test-review .q-journal-notes{display:flex;flex-direction:column}
:scope.qp .tt-test-review .q-journal-notes>.tz-notes{flex:1;display:flex}
:scope.qp .tt-test-review .q-journal-notes textarea{height:auto;min-height:100px;flex:1}
:scope.qp .tt-test-review .q-review-cell .q-key-values{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:3px 8px}
:scope.qp .tt-test-review .q-review-cell .q-key-values dd{font-weight:500}
:scope.qp .q-review-info{margin-left:auto;width:21px;height:21px;padding:0;border:1px solid var(--line);border-radius:4px;background:var(--panel2);color:var(--accent);font:600 12px var(--mm-text);cursor:pointer;flex:none}
:scope.qp .q-review-help{font:400 12px/1.5 var(--mm-text);margin:0;padding:8px;border-bottom:1px solid var(--line)}
:scope.qp .tt-test-review .q-review-cell .q-review-help[hidden]{display:none}
:scope.qp .tt-test-review .q-review-rail .ph{flex-wrap:wrap}
:scope.qp .tt-test-review .tz-head{flex-wrap:wrap}


/* One compact performance summary beside Total P/L, replacing the old Win Rate tile. */
:scope.qp .tt-test-review #summary{grid-template-columns:repeat(9,minmax(0,1fr));align-items:stretch}
:scope.qp .tt-test-review #summary>.q-performance-kpi{grid-column:span 2;margin:0;padding:0;min-width:0;box-shadow:none;transform:none}
:scope.qp .tt-test-review #summary>.q-performance-kpi::before{display:none}
:scope.qp .tt-test-review .q-performance-kpi>.ph{padding:4px 7px;min-height:26px;gap:5px;flex-wrap:wrap}
:scope.qp .tt-test-review .q-performance-kpi>.ph b{font:600 12px/1.35 var(--mm-display)}
:scope.qp .tt-test-review .q-performance-kpi>.ph a{color:var(--accent);font-size:11px;margin-left:auto}
:scope.qp .tt-test-review .q-performance-kpi .q-performance-body{grid-template-columns:56px minmax(0,1fr);gap:8px;padding:5px 8px}
:scope.qp .tt-test-review .q-performance-kpi .q-win-ring{width:56px;height:56px}
:scope.qp .tt-test-review .q-performance-kpi .q-win-ring strong{font-size:14px}
:scope.qp .tt-test-review .q-performance-kpi .q-win-ring span{font-size:10px}
:scope.qp .tt-test-review .q-performance-kpi .q-review-kv{gap:2px;font-size:12px;line-height:1.35}
:scope.qp .tt-test-review .q-performance-kpi>.q-review-caption{padding:0 8px 5px;font-size:12px;line-height:1.35}
:scope.qp .tt-test-review .q-journal-strip>.q-review-rail{grid-template-columns:minmax(0,1fr)}
@media(max-width:1250px){:scope.qp .tt-test-review #summary{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:700px){:scope.qp .tt-test-review #summary{grid-template-columns:repeat(2,minmax(0,1fr))}}

:scope.qp .tt-test-review .q-journal-notes-wide{grid-column:1/-1}
:scope.qp .tt-test-review .q-review-band>.q-stack{gap:7px}
:scope.qp .tt-test-review .q-review-band>.q-stack>.panel{margin:0}

:scope.qp .tt-test-review .q-performance-kpi .q-win-loss-line{display:flex;justify-content:flex-start;gap:4px;white-space:nowrap;align-items:center}
:scope.qp .tt-test-review .q-performance-kpi .q-win-loss-line dt:nth-of-type(2){margin-left:8px}

/* Reference header geometry uses existing theme and typography. */
:scope.qp .tt-test-review .q-review-header{display:grid;grid-template-columns:minmax(200px,1fr) auto;align-items:center;gap:12px;padding-bottom:6px;border-bottom:1px solid var(--line)}
:scope.qp .q-session-context{display:flex;align-items:center;gap:8px;min-width:0}
:scope.qp .q-context-field{display:grid;gap:2px;min-width:150px;padding:4px 10px;border:1px solid var(--line);border-radius:6px;background:var(--panel);font:400 10px/1.4 var(--mm-text);color:var(--dim)}
:scope.qp .q-context-field strong{font:400 12px/1.4 var(--mm-text);color:var(--txt);white-space:nowrap}
:scope.qp .tt-test-review .q-context-field #date{border:0;padding:0;min-height:18px;background:transparent;color:var(--txt);font:400 12px var(--mm-text);max-width:150px}
:scope.qp .q-header-actions{position:relative;font:400 12px var(--mm-text)}
:scope.qp .q-header-actions summary{cursor:pointer;padding:7px;border:1px solid var(--line);border-radius:5px}
:scope.qp .q-header-actions>.controls{position:absolute;right:0;top:100%;z-index:35;width:220px;padding:8px;background:var(--panel);border:1px solid var(--line);border-radius:6px;display:grid}
:scope.qp .tt-test-review #summary{grid-template-columns:repeat(7,minmax(0,1fr))}
:scope.qp .tt-test-review .q-kpi-tile{min-height:80px;padding:8px;gap:3px 8px}
:scope.qp .tt-test-review .q-kpi-value{font-size:21px;line-height:1.15}
:scope.qp .tt-test-review #chart-trade-list>.q-performance-kpi{flex:none;border:0;border-bottom:1px solid var(--line);border-radius:0;background:var(--panel);margin:0}
:scope.qp .tt-test-review .q-trade-extra{font:400 12px/1.5 var(--mm-text);padding:0 8px 7px}
:scope.qp .q-trade-extra summary{cursor:pointer;color:var(--accent)}
:scope.qp .tt-test-review .q-trade-extra .market-context{min-width:0}
:scope.qp .q-trade-review-flag{padding:0 5px;border:0;background:transparent;color:#fff;font:400 19px/1 var(--mm-text);cursor:pointer}
:scope.qp .q-trade-review-flag[aria-pressed=true]{color:var(--accent)}
@media(max-width:1100px){:scope.qp .tt-test-review .q-review-header{grid-template-columns:1fr}:scope.qp .tt-test-review #summary{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:700px){:scope.qp .q-session-context{flex-wrap:wrap}:scope.qp .q-context-field{min-width:130px;flex:1}:scope.qp .tt-test-review #summary{grid-template-columns:repeat(2,minmax(0,1fr))}}

:scope.qp .tt-test-review .q-kpi-comparison{grid-column:1/-1;font:400 11px/1.4 var(--mm-text);color:var(--accent)}
:scope.qp .tt-test-review .q-kpi-sparkline{grid-column:1/-1;width:100%;height:22px;color:var(--accent)}

/* Final reference contract: eight summary cards and a full performance panel above Trades. */
:scope.qp .tt-test-review #summary{grid-template-columns:repeat(8,minmax(0,1fr));gap:8px}
:scope.qp .tt-test-review .q-kpi-tile{position:relative;min-height:82px;align-content:start;padding:9px}
:scope.qp .tt-test-review .q-kpi-caption{font-size:10px;line-height:1.35}
:scope.qp .tt-test-review .q-kpi-value{font-size:21px;line-height:1.2}
:scope.qp .tt-test-review .q-kpi-sparkline{position:absolute;width:44px;height:24px;right:6px;bottom:6px}
:scope.qp .tt-test-review .q-kpi-comparison{padding-right:38px;font-size:10px}
:scope.qp .tt-test-review .q-kpi-detail{font-size:11px;line-height:1.4}
:scope.qp .tt-test-review .q-review-header{margin-bottom:6px}
:scope.qp .q-review-subtitle{font:400 12px/1.5 var(--mm-text);color:var(--dim)}
:scope.qp .q-review-source{font:400 12px/1.5 var(--mm-text);margin:0 0 5px;color:var(--dim)}
:scope.qp .tt-test-review #chart-trade-list>.q-performance-kpi .ph{min-height:32px;padding:6px 8px}
:scope.qp .tt-test-review #chart-trade-list>.q-performance-kpi .q-performance-body{grid-template-columns:88px minmax(0,1fr);padding:8px;gap:12px}
:scope.qp .tt-test-review #chart-trade-list>.q-performance-kpi .q-win-ring{width:88px;height:88px}
:scope.qp .tt-test-review #chart-trade-list>.q-performance-kpi .q-win-ring strong{font-size:18px}
:scope.qp .tt-test-review #chart-trade-list>.q-performance-kpi .q-win-ring span{font-size:11px}
:scope.qp .tt-test-review #chart-trade-list>.q-performance-kpi .q-review-kv{gap:8px}
:scope.qp .tt-test-review #chart-trade-list>.q-performance-kpi .q-review-kv>div{display:flex;justify-content:space-between}
@media(max-width:1250px){:scope.qp .tt-test-review #summary{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:700px){:scope.qp .tt-test-review #summary{grid-template-columns:repeat(2,minmax(0,1fr))}}

:scope.qp .tt-test-review .q-trade-extra .market-context :is(span,small){font:400 12px/1.5 var(--mm-text)}

:scope.qp .tt-test-review .q-kpi-win-ring{position:absolute;right:7px;bottom:9px;width:34px;height:34px}
/* The Trades table owns all remaining column space; no flex remainder below it. */
:scope.qp .tt-test-review #chart-trade-list{display:grid;grid-template-rows:auto auto auto minmax(0,1fr);align-content:stretch;min-height:0;padding:0}
:scope.qp .tt-test-review #chart-trade-list>.q-performance-kpi{grid-row:1}
:scope.qp .tt-test-review #chart-trade-list>.chart-trades-heading{grid-row:2}
:scope.qp .tt-test-review #chart-trade-list>.chart-trades-help{grid-row:3}
:scope.qp .tt-test-review #chart-trade-list>.chart-trades-scroll{grid-row:4;min-height:0;height:auto;max-height:none;align-self:stretch;margin:0;padding:0;overflow:auto}
:scope.qp .tt-test-review .chart-trades-scroll>table{margin:0;max-height:none}

:scope.qp .q-trade-review-flag svg{display:block;width:18px;height:18px;fill:currentColor;stroke:var(--dim);stroke-width:.9;stroke-linejoin:round}

/* Cursor-only resize zones; drag tracking is independent of the canvas. */
:scope.qp .tt-test-review .tc-height-handle{height:8px;padding:0;min-height:8px;cursor:ns-resize;touch-action:none;user-select:none;position:relative;z-index:5;border-top:1px solid var(--line)}
:scope.qp .tt-test-review .tc-height-handle:hover,:scope.qp .tt-test-review .tc-height-handle:focus-visible{background:var(--accent-wash);border-color:var(--accent)}
:scope.qp .tt-test-review .chart-trades-divider{cursor:ew-resize;touch-action:none;user-select:none;position:relative;z-index:5}
:scope.qp.q-resizing-height,:scope.qp.q-resizing-height *{cursor:ns-resize!important;user-select:none!important}
:scope.qp.q-resizing-width,:scope.qp.q-resizing-width *{cursor:ew-resize!important;user-select:none!important}

/* Trading Discipline header actions (test pages): compact icon buttons plus save status, top right. */
body[data-ts] .phead{flex-wrap:nowrap;align-items:center}
body[data-ts] .ts-actions{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}
body[data-ts] .ts-act{display:inline-flex;align-items:center;gap:6px;height:30px;box-sizing:border-box;padding:0 11px;border-radius:8px;border:1px solid var(--line);background:var(--panel);color:var(--txt);font:500 12px var(--mm-text);text-decoration:none!important;white-space:nowrap;box-shadow:0 1px 2px color-mix(in srgb,var(--txt) 8%,transparent);transition:background-color .12s,border-color .12s,transform .12s}
body[data-ts] .ts-act:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--panel))}
body[data-ts] .ts-act:active{transform:translateY(1px)}
body[data-ts] .ts-act.on{background:var(--accent);border-color:var(--accent);color:#fff}
body[data-ts] .ts-act.on:hover{background:color-mix(in srgb,var(--accent) 85%,#000)}
body[data-ts] :is(.ts-act,.ts-state) svg{width:15px;height:15px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
body[data-ts] .ts-state{display:inline-flex;align-items:center;gap:6px;height:30px;box-sizing:border-box;padding:0 10px;border-radius:99px;background:color-mix(in srgb,var(--accent) 8%,var(--panel));border:1px solid color-mix(in srgb,var(--accent) 22%,var(--line));color:var(--dim);font:400 12px var(--mm-text);white-space:nowrap}
body[data-ts] .ts-state svg{color:var(--accent)}
@media(max-width:900px){body[data-ts] .phead{flex-wrap:wrap}body[data-ts] .ts-act span{display:none}body[data-ts] .ts-act{padding:0 8px}}

/* Retained layout/engine compatibility: /test/accounts-layout.css */
/* deploy/test/accounts-layout.css — layout for the TEST copy of accounts-pl.:scope only.
   Pairs with accounts-layout.js. Layout reference: the user's TradeLedger mockup (28-OCT-2026).
   Theme tokens only; type follows the shared roles (12px panel heading, 12px body, 11px small,
   10px label). Scoped under :scope.qd, which accounts-layout.js sets. */

/* ---------- Top strip: broker status and index tape ---------- */
:scope.qd .qd-top {
  display: flex; align-items: center; gap: 22px; flex-wrap: wrap;
  background: var(--panel); border: 1px solid color-mix(in srgb, var(--line) 75%, transparent);
  border-radius: 12px; padding: 9px 14px; margin-bottom: 14px; box-shadow: var(--qp-shadow-sm);
  font-size: 12px;
}
:scope.qd .qd-broker { display: flex; align-items: center; gap: 8px; font-weight: 600; }
:scope.qd .qd-broker i { width: 9px; height: 9px; border-radius: 50%; background: var(--mut); flex: none; }
:scope.qd .qd-broker.on i { background: var(--green); box-shadow: 0 0 0 3px color-mix(in srgb, var(--green) 25%, transparent); }
:scope.qd .qd-broker small { display: block; font-size: 10px; color: var(--mut); font-weight: 500; }
:scope.qd .qd-tape { display: flex; gap: 22px; flex-wrap: wrap; }
:scope.qd .qd-tape div { display: grid; gap: 1px; }
:scope.qd .qd-tape b { font-size: 10px; color: var(--mut); text-transform: uppercase; letter-spacing: .5px; }
:scope.qd .qd-tape span { font-variant-numeric: tabular-nums; font-weight: 600; }
:scope.qd .qd-tape em { font-style: normal; font-size: 11px; margin-left: 6px; }
:scope.qd .qd-asof { margin-left: auto; font-size: 11px; color: var(--mut); }

/* ---------- Two columns: main + right rail ---------- */
:scope.qd .qd-grid { display: grid; grid-template-columns: minmax(0, 1fr) 340px; gap: 16px; align-items: start; }
:scope.qd .qd-main { min-width: 0; }
:scope.qd .qd-rail { display: grid; gap: 14px; }
@media (max-width: 1280px) {
  :scope.qd .qd-grid { grid-template-columns: minmax(0, 1fr); }
  :scope.qd .qd-rail { grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); }
}

/* ---------- Generic card used by every new section ---------- */
:scope.qd .qd-card {
  background: var(--panel); border: 1px solid color-mix(in srgb, var(--line) 75%, transparent);
  border-radius: 12px; box-shadow: var(--qp-shadow); overflow: hidden; min-width: 0;
}
:scope.qd .qd-h {
  display: flex; align-items: center; gap: 8px; padding: 11px 14px;
  font-size: 12px; font-weight: 600; font-family: var(--mm-display);
  border-bottom: 1px solid color-mix(in srgb, var(--line) 60%, transparent);
}
:scope.qd .qd-h .qd-ico {
  width: 22px; height: 22px; border-radius: 7px; display: grid; place-items: center; flex: none;
  background: var(--accent-wash); color: var(--accent); font-size: 12px;
}
:scope.qd .qd-h .qd-r { margin-left: auto; font-size: 11px; color: var(--mut); font-weight: 500; }
:scope.qd .qd-h a.qd-r { color: var(--accent); text-decoration: none; }
:scope.qd .qd-i {
  width: 18px; height: 18px; border-radius: 50%; border: 1px solid var(--line); background: var(--panel2);
  color: var(--mut); font: 600 10px/1 var(--mm-text, Inter, sans-serif); cursor: pointer; padding: 0; flex: none;
}
:scope.qd .qd-i[aria-expanded="true"] { color: var(--accent); border-color: var(--accent); }
:scope.qd .qd-note {
  font-size: 12px; line-height: 1.6; color: var(--dim); padding: 10px 14px;
  background: color-mix(in srgb, var(--panel2) 55%, var(--panel));
  border-bottom: 1px solid color-mix(in srgb, var(--line) 60%, transparent);
}
:scope.qd .qd-note b { color: var(--txt); font-weight: 600; }
:scope.qd .qd-b { padding: 6px 14px 12px; font-size: 12px; }
:scope.qd .qd-empty { color: var(--mut); font-size: 12px; line-height: 1.6; padding: 10px 0; }

/* sub-tabs inside a card (Watchlist / Movers) */
:scope.qd .qd-sub { display: flex; gap: 4px; padding: 8px 14px 0; }
:scope.qd .qd-sub button {
  background: transparent; border: 1px solid transparent; color: var(--dim); border-radius: 7px;
  padding: 5px 10px; font: 500 11px var(--mm-text, Inter, sans-serif); cursor: pointer;
}
:scope.qd .qd-sub button.on { background: var(--accent-wash); color: var(--accent); border-color: color-mix(in srgb, var(--accent) 35%, transparent); }

/* compact quote / list tables */
:scope.qd .qd-t { width: 100%; border-collapse: collapse; font-size: 12px; }
:scope.qd .qd-t th {
  position: static; background: transparent; font-size: 10px; padding: 8px 0 6px; color: var(--mut);
  border-bottom: 1px solid color-mix(in srgb, var(--line) 60%, transparent);
}
:scope.qd .qd-t td { padding: 6px 0; border-bottom: 1px solid color-mix(in srgb, var(--line) 40%, transparent); }
:scope.qd .qd-t tr:last-child td { border-bottom: none; }
:scope.qd .qd-t tbody tr:nth-child(even), :scope.qd .qd-t tbody tr:hover { background: transparent; }
:scope.qd .qd-t .n { text-align: right; font-variant-numeric: tabular-nums; }
:scope.qd .qd-t .sym { font-weight: 600; }

/* news / events lists */
:scope.qd .qd-list { list-style: none; margin: 0; padding: 0; }
:scope.qd .qd-list li { font-size: 12px; display: flex; gap: 10px; align-items: baseline; padding: 7px 0; border-bottom: 1px solid color-mix(in srgb, var(--line) 40%, transparent); line-height: 1.45; }
:scope.qd .qd-list li:last-child { border-bottom: none; }
:scope.qd .qd-list time { flex: none; width: 58px; color: var(--mut); font-size: 11px; font-variant-numeric: tabular-nums; }
:scope.qd .qd-list a { color: var(--txt); text-decoration: none; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
:scope.qd .qd-list a:hover { color: var(--accent); }
:scope.qd .qd-dot { width: 7px; height: 7px; border-radius: 50%; flex: none; align-self: center; background: var(--mut); }
:scope.qd .qd-dot.hi { background: var(--red); } :scope.qd .qd-dot.md { background: var(--gold); } :scope.qd .qd-dot.lo { background: var(--green); }
:scope.qd .qd-imp { margin-left: auto; flex: none; font-size: 11px; color: var(--mut); }

/* ---------- KPI card additions: icon chip, sparkline, comparison ---------- */
:scope.qd #stats { grid-template-columns: repeat(4, minmax(0, 1fr)); }
@media (min-width: 1900px) { :scope.qd #stats { grid-template-columns: repeat(8, minmax(0, 1fr)); } }
@media (max-width: 700px) { :scope.qd #stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
:scope.qd #stats > .card { padding-right: 12px; }
:scope.qd #stats .qd-vrow { display: flex; align-items: center; justify-content: space-between; gap: 8px; }
:scope.qd #stats .qd-vrow .val { white-space: nowrap; }
:scope.qd #stats .qd-spark { display: block; flex: 0 1 84px; min-width: 40px; height: 28px; }
:scope.qd #stats .lbl { display: flex; align-items: center; gap: 7px; }
:scope.qd #stats .lbl .qd-ico {
  width: 20px; height: 20px; border-radius: 6px; display: inline-grid; place-items: center; flex: none;
  background: var(--accent-wash); color: var(--accent); font-size: 11px; letter-spacing: 0;
}
:scope.qd #stats .card:has(> .val.up) .lbl .qd-ico { background: color-mix(in srgb, var(--green) 16%, transparent); color: var(--green); }
:scope.qd #stats .card:has(> .val.dn) .lbl .qd-ico { background: color-mix(in srgb, var(--red) 16%, transparent); color: var(--red); }
:scope.qd #stats .qd-cmp { grid-column: 1 / -1; font-size: 11px; color: var(--mut); margin-top: 6px; }
:scope.qd #stats .qd-cmp b { font-weight: 600; }

/* ---------- Bottom row on the Overview tab ---------- */
:scope.qd .qd-row4 { display: grid; gap: 14px; margin-bottom: 15px; }
:scope.qd .qd-acct { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 10px; align-items: center; }
:scope.qd .qd-kv { display: grid; gap: 7px; }
:scope.qd .qd-kv div { display: grid; }
:scope.qd .qd-kv small { font-size: 10px; color: var(--mut); text-transform: uppercase; letter-spacing: .5px; }
:scope.qd .qd-kv span { font-size: 14px; font-weight: 600; font-variant-numeric: tabular-nums; }
:scope.qd .qd-donut { width: 84px; height: 84px; }
:scope.qd .qd-legend { grid-column: 1 / -1; display: flex; gap: 12px; flex-wrap: wrap; font-size: 11px; color: var(--dim); }
:scope.qd .qd-legend i { display: inline-block; width: 8px; height: 8px; border-radius: 2px; margin-right: 5px; vertical-align: 0; }
:scope.qd .qd-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding-top: 10px; }
:scope.qd .qd-actions a {
  display: flex; align-items: center; gap: 7px; justify-content: center; text-align: center;
  border: 1px solid color-mix(in srgb, var(--line) 80%, transparent); border-radius: 8px; padding: 9px 8px;
  color: var(--txt); text-decoration: none; font-size: 12px; font-weight: 500; background: var(--panel2);
  transition: border-color .15s ease, color .15s ease, box-shadow .15s ease;
}
:scope.qd .qd-actions a:hover { border-color: var(--accent); color: var(--accent); box-shadow: 0 0 0 3px var(--accent-wash); }

/* ---------- Coach card ---------- */
:scope.qd .qd-coach .qd-b p { margin: 6px 0 10px; color: var(--dim); line-height: 1.6; }
:scope.qd .qd-coach .qd-b p b { color: var(--txt); }
:scope.qd .qd-btn {
  display: block; width: 100%; text-align: center; border: 1px solid var(--accent); color: var(--accent);
  background: var(--accent-wash); border-radius: 8px; padding: 8px; font: 600 12px var(--mm-text, Inter, sans-serif); cursor: pointer;
}
:scope.qd .qd-btn:hover { background: var(--accent); color: var(--panel); }

/* ---------- Mockup density ---------- */
/* header: period controls are a plain row, not a card; Import Statement sits at its right end */
:scope.qd.qp .phead:has(.seg, input[type=date]) { background: transparent; border: none; box-shadow: none; padding: 0; margin-bottom: 12px !important; }
:scope.qd .phead #src { flex-basis: 100%; order: 9; }
:scope.qd .qd-primary {
  margin-left: auto; background: var(--accent); border-color: var(--accent); color: var(--panel); font-weight: 600;
}
:scope.qd .qd-primary:hover { color: var(--panel); box-shadow: 0 0 0 3px var(--accent-wash); }
/* panel heading icon chips */
:scope.qd .panel > .ph > .qd-ico {
  width: 24px; height: 24px; border-radius: 7px; display: inline-grid; place-items: center; flex: none;
  background: var(--accent-wash); font-size: 12px;
}
/* Daily Detail: compact rows in a shorter scroll box */
:scope.qd .tscroll:has(#daily) { max-height: 380px !important; }
:scope.qd #daily td { padding-top: 5px; padding-bottom: 5px; }
:scope.qd .qd-row4 .qd-card { box-shadow: var(--qp-shadow-sm); }

/* ---------- Icons, chart height, current menu item ---------- */
:scope.qd .qd-ico svg { display: block; }
:scope.qd #stats .lbl .qd-ico svg { width: 12px; height: 12px; }
:scope.qd .panel > .ph > .qd-ico { color: var(--accent); }
:scope.qd .qd-actions a svg { flex: none; }
:scope.qd .qd-primary { display: inline-flex; align-items: center; gap: 6px; }
:scope.qd #lnav .ln-ic svg { display: block; margin: 0 auto; }
:scope.qd #eqChart, :scope.qd #barChart { height: 180px !important; }
:scope.qd #lnav .ln-sub.on, :scope.qd #lnav .ln-item.on {
  background: var(--accent); color: var(--panel) !important; border-radius: 8px; margin-inline: 8px;
}
:scope.qd #lnav .ln-sub.on span, :scope.qd #lnav .ln-item.on span { color: var(--panel); }
:scope.qd .qd-t .qd-nm { font-size: 11px; color: var(--mut); font-weight: 400; }

/* ================= v3: close the remaining gaps with the mockup ================= */
/* top bar: search sits between the tape and the clock */
:scope.qd .qd-search { display: flex; align-items: center; gap: 7px; margin-left: auto; min-width: 220px; flex: 0 1 300px;
  background: var(--panel2); border: 1px solid color-mix(in srgb, var(--line) 80%, transparent); border-radius: 9px; padding: 0 10px; color: var(--mut); }
:scope.qd .qd-search input { border: none !important; box-shadow: none !important; background: transparent; color: var(--txt); padding: 7px 0; width: 100%;
  font: 12px var(--mm-text, Inter, sans-serif); outline: none; }
:scope.qd .qd-asof { margin-left: 0; }

/* title bar: title + period row left, tabs + Import right */
:scope.qd .qd-titlebar { display: flex; gap: 14px 18px; align-items: flex-start; flex-wrap: wrap; margin-bottom: 12px; }
:scope.qd .qd-tl { flex: 1 1 520px; min-width: 0; display: grid; gap: 8px; }
:scope.qd .qd-tl #head .phead { margin-bottom: 0; }
:scope.qd .qd-tl .phead:has(#quick) { margin: 0 !important; }
:scope.qd .qd-tr { display: flex; align-items: center; gap: 10px; flex-wrap: wrap; justify-content: flex-end; }
:scope.qd .qd-tr .tabs { margin: 0; padding: 4px; box-shadow: none; }
:scope.qd .qd-tr .tabs button:not(.btn) { padding: 6px 11px; font-size: 12px; }
:scope.qd .qd-src { padding: 8px 14px; border-top: 1px solid color-mix(in srgb, var(--line) 60%, transparent); }

/* KPI cards: seven compact cards in one row, sparkline on the label row */
:scope.qd #stats { grid-template-columns: repeat(7, minmax(0, 1fr)); gap: 10px; margin-bottom: 12px; }
@media (max-width: 1500px) { :scope.qd #stats { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@media (max-width: 700px) { :scope.qd #stats { grid-template-columns: repeat(2, minmax(0, 1fr)); } }
:scope.qd #stats > .card.qd-merged { display: none; }
:scope.qd.qp #stats > .card { padding: 10px 10px 10px 14px; }
:scope.qd #stats .lbl { gap: 6px; white-space: nowrap; }
:scope.qd #stats > .card > .qd-spark { display: block; width: 100%; height: 16px; margin: 4px 0 0; }
/* Size override, documented: seven KPI cards share one row beside the market column (user's mockup,
   28-OCT-2026); at 20px a six-figure loss such as -$37,181.80 clips. 18px is the page-title role. */
:scope.qd #stats .val { font-size: 18px; }
:scope.qd #stats .val { white-space: nowrap; overflow: hidden; text-overflow: clip; margin-top: 6px; }
:scope.qd #stats .sub { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; font-size: 11px; }
:scope.qd #stats .qd-cmp { white-space: nowrap; overflow: hidden; text-overflow: ellipsis; margin-top: 4px; }
:scope.qd #stats .qd-drag { font-size: 11px; color: var(--mut); margin-top: 2px; white-space: nowrap; }
:scope.qd #stats .qd-drag b { font-weight: 600; }

/* charts: shorter, with the range dropdown in the heading */
:scope.qd #eqChart, :scope.qd #barChart { height: 150px !important; }
:scope.qd .panel > .ph .qd-range { margin-left: 8px; font: 500 11px var(--mm-text, Inter, sans-serif); padding: 4px 8px;
  background: var(--panel2); color: var(--txt); border: 1px solid color-mix(in srgb, var(--line) 80%, transparent); border-radius: 7px; }

/* Daily Detail: concise, no extra padding, Title Case headers, sort buttons, row menu */
:scope.qd .tscroll:has(#daily) { max-height: 560px !important; }
:scope.qd .tscroll:has(#daily) table { font-size: 11px; }
:scope.qd .tscroll:has(#daily) th { text-transform: none; letter-spacing: 0; font-size: 11px; padding: 6px 8px; white-space: nowrap; }
:scope.qd #daily td { padding: 3px 8px; white-space: nowrap; line-height: 1.35; }
:scope.qd #daily tr:not(:first-child) td.empty { padding: 20px; }
:scope.qd .qd-sortb { border: none; background: transparent; color: var(--mut); cursor: pointer; padding: 0 0 0 3px; font-size: 10px; line-height: 1; }
:scope.qd th[aria-sort="ascending"] .qd-sortb, :scope.qd th[aria-sort="descending"] .qd-sortb { color: var(--accent); }
:scope.qd .qd-rmc { width: 26px; padding: 0 4px !important; text-align: center; }
:scope.qd .qd-rm { border: none; background: transparent; color: var(--mut); cursor: pointer; font-size: 14px; line-height: 1; padding: 2px 6px; border-radius: 5px; }
:scope.qd .qd-rm:hover, :scope.qd .qd-rm[aria-expanded="true"] { background: var(--panel2); color: var(--txt); }
.qd-menu { position: absolute; z-index: 9500; min-width: 190px; padding: 5px; background: var(--panel); border: 1px solid var(--line);
  border-radius: 10px; box-shadow: 0 14px 32px -12px rgba(15, 23, 42, .35); display: grid; }
.qd-menu > * { text-align: left; border: none; background: transparent; color: var(--txt); padding: 7px 10px; border-radius: 7px;
  font: 12px var(--mm-text, Inter, sans-serif); cursor: pointer; text-decoration: none; }
.qd-menu > *:hover, .qd-menu > *:focus-visible { background: var(--accent-wash); color: var(--accent); }

/* right column: letter badges like the mockup's logos */
:scope.qd .qd-logo { display: inline-grid; place-items: center; width: 18px; height: 18px; border-radius: 5px; margin-right: 7px; vertical-align: -4px;
  background: var(--accent-wash); color: var(--accent); font-size: 10px; font-weight: 700; }
:scope.qd .qd-t .qd-nm { margin-left: 25px; }

/* bottom row: tighter */
:scope.qd .qd-row4 { gap: 12px; }
:scope.qd .qd-stmt { margin-top: 2px; }

/* Trading Coach card at the bottom of the menu */
#lnav .qd-navcoach { margin: 8px 10px; border-radius: 12px; box-shadow: none; }
#lnav .qd-navcoach .qd-h { padding: 9px 10px; }
#lnav .qd-navcoach .qd-b { padding: 4px 10px 10px; }
#lnav .qd-navcoach .qd-b p { margin: 4px 0 8px; font-size: 12px; line-height: 1.5; white-space: normal; }
#lnav:not(.pinned):not(:hover) .qd-navcoach { display: none; }

/* ---------- Every section scrolls inside itself when it has more data ---------- */
:scope.qd .qd-rail .qd-card .qd-body { max-height: 320px; overflow: auto; scrollbar-width: thin; }
:scope.qd .qd-row4 .qd-card .qd-body { max-height: 220px; overflow: auto; scrollbar-width: thin; }
:scope.qd .panel > .pb:not(:has(canvas)) { max-height: 420px; overflow: auto; scrollbar-width: thin; }
:scope.qd .panel > div:not(.ph):not(.pb):not(.tscroll):not(.qd-src):has(> table) { max-height: 420px; overflow: auto; scrollbar-width: thin; }
:scope.qd #accts { max-height: 320px; overflow: auto; scrollbar-width: thin; }
/* headings stay visible while a section scrolls */
:scope.qd .qd-t thead th { position: sticky; top: 0; z-index: 1; background: var(--panel); }
:scope.qd .qd-sub { position: sticky; top: 0; z-index: 2; background: var(--panel); padding-bottom: 4px; }
/* phone: the tab bar scrolls inside itself instead of widening the page */
:scope.qd .qd-tr { min-width: 0; max-width: 100%; }
:scope.qd .qd-tr .tabs { max-width: 100%; overflow-x: auto; flex-wrap: nowrap; scrollbar-width: none; }
:scope.qd .qd-tr .tabs button { flex: none; }

/* ================= v5: wider right column, concise Daily Detail, Account Summary, brand card ================= */
:scope.qd .qd-grid { grid-template-columns: minmax(0, 1fr) clamp(340px, 26vw, 440px); }
/* title bar and KPI row now sit above both columns: seven cards fit at the standard 20px value size */
:scope.qd #stats .val { font-size: 20px; }
@media (max-width: 1500px) { :scope.qd #stats { grid-template-columns: repeat(7, minmax(0, 1fr)); } }
@media (max-width: 1250px) { :scope.qd #stats { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
/* Daily Detail: the width that used to be gaps now carries three derived columns */
:scope.qd .tscroll:has(#daily) th, :scope.qd #daily td { padding-left: 8px; padding-right: 8px; }
:scope.qd .tscroll:has(#daily) th:first-child, :scope.qd #daily td:first-child { padding-left: 14px; }
:scope.qd #daily td.qd-x, :scope.qd th.qd-x { color: var(--dim); }
:scope.qd #daily td.qd-x.up { color: var(--green); } :scope.qd #daily td.qd-x.dn { color: var(--red); }
:scope.qd th.qd-x { border-left: 1px solid color-mix(in srgb, var(--line) 60%, transparent); }
:scope.qd #daily td.qd-x.qd-first { border-left: 1px solid color-mix(in srgb, var(--line) 60%, transparent); }

/* Account Summary like the mockup */
:scope.qd .qd-acsel { margin-left: auto; }
:scope.qd [data-w="account"] .qd-h .qd-i + .qd-acsel { margin-left: auto; }
:scope.qd .qd-acct2 { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: start; }
:scope.qd .qd-acr { display: grid; gap: 8px; }
:scope.qd .qd-donwrap { display: flex; align-items: center; gap: 10px; }
:scope.qd .qd-donwrap .qd-donut { width: 72px; height: 72px; flex: none; }
:scope.qd .qd-leg { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; font-size: 11px; color: var(--dim); }
:scope.qd .qd-leg li { display: flex; align-items: center; gap: 6px; }
:scope.qd .qd-leg i { width: 7px; height: 7px; border-radius: 50%; flex: none; }
:scope.qd .qd-leg b { margin-left: auto; padding-left: 10px; color: var(--txt); font-weight: 600; font-variant-numeric: tabular-nums; }
:scope.qd .qd-btn.qd-solid { background: var(--accent); color: var(--panel); }
:scope.qd .qd-btn.qd-solid:hover { filter: brightness(1.08); }

/* brand card */
:scope.qd .qd-brand { display: flex; align-items: center; gap: 14px; padding: 16px; min-height: 120px;
  background: linear-gradient(135deg, color-mix(in srgb, var(--accent) 10%, var(--panel)), var(--panel)); }
:scope.qd .qd-mtn { width: 120px; height: 84px; flex: none; }
:scope.qd .qd-brand b { display: block; font-size: 14px; font-weight: 600; font-family: var(--mm-display); line-height: 1.35; }
:scope.qd .qd-brand b + b { font-weight: 700; }
:scope.qd .qd-brand span { display: block; margin-top: 6px; font-size: 12px; color: var(--dim); }
/* bottom row: 2 x 2 unless the main column is wide enough for four */
:scope.qd .qd-main { container-type: inline-size; }
:scope.qd .qd-row4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
@container (min-width: 1250px) { :scope.qd .qd-row4 { grid-template-columns: repeat(4, minmax(0, 1fr)); } }
@container (max-width: 560px) { :scope.qd .qd-row4 { grid-template-columns: minmax(0, 1fr); } }
:scope.qd .qd-acct2 .qd-kv { min-width: 0; }
:scope.qd .qd-leg li { font-size: 12px; } :scope.qd .qd-leg b { font-size: 12px; }

/* Reference correction: the rail starts beside the title, and all main content shares one edge. */
:scope.qd .qd-grid{grid-template-columns:minmax(0,1fr) 280px;gap:12px}
:scope.qd .qd-main{container-type:inline-size}
:scope.qd .qd-titlebar{display:grid;grid-template-columns:minmax(0,1fr);gap:6px;margin-bottom:8px}
:scope.qd .qd-tr{justify-content:space-between}
:scope.qd .qd-top{margin-bottom:10px;padding:7px 10px;gap:18px;border-radius:6px}
:scope.qd .qd-top .qd-asof{margin-left:auto}
:scope.qd #stats{grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;margin-bottom:8px}
:scope.qd #stats .val{font:600 18px/1.3 var(--mm-mono);white-space:nowrap;overflow:visible}
:scope.qd #stats .lbl{white-space:normal;font:600 10px/1.4 var(--mm-text)}
:scope.qd #stats .sub,:scope.qd #stats .qd-cmp{font-size:12px;line-height:1.5;white-space:normal;overflow:visible}
:scope.qd #stats .qd-drag{font-size:12px;white-space:normal}
:scope.qd.qp #stats>.card{padding:8px 8px 8px 12px}
:scope.qd .qd-card.q-panel{border-radius:6px;box-shadow:none}
:scope.qd .qd-h.q-panel-head{padding:6px 8px;gap:6px}
:scope.qd .qd-body.q-panel-body{padding:0}
:scope.qd .qd-b{padding:6px 8px;font:400 12px/1.5 var(--mm-text)}
:scope.qd .qd-main .panel{border-radius:6px;box-shadow:none}
:scope.qd.qp .qd-main .panel>.ph{padding:6px 8px;font:600 12px/1.4 var(--mm-display)}
:scope.qd .qd-main .grid2{gap:8px;margin-bottom:8px}
:scope.qd .qd-rail{gap:8px;min-width:0}
:scope.qd .qd-row4{gap:8px;margin-top:8px}
:scope.qd .qd-row4 .qd-h{flex-wrap:wrap}
:scope.qd .qd-main .tscroll:has(#daily){max-height:350px!important}
:scope.qd .qd-main #daily td{font:400 12px/1.35 var(--mm-text);padding:4px 7px}
:scope.qd .qd-tr .tabs{background:transparent;border:0;padding:0}
:scope.qd .qd-titlebar input[type=date]{min-width:0;max-width:140px}
:scope.qd .qd-brand{min-height:0;padding:10px;gap:8px}
:scope.qd .qd-brand .qd-mtn{width:92px;height:72px}
:scope.qd .qd-rail .qd-card .qd-body{max-height:285px}
:scope.qd .qd-src{font:400 12px/1.5 var(--mm-text);padding:6px 8px}
@container(min-width:980px){:scope.qd #stats{grid-template-columns:repeat(7,minmax(0,1fr))}:scope.qd .qd-row4{grid-template-columns:repeat(4,minmax(0,1fr))}}
@container(max-width:580px){:scope.qd #stats{grid-template-columns:repeat(2,minmax(0,1fr))}:scope.qd .qd-row4{grid-template-columns:minmax(0,1fr)}:scope.qd .qd-main .grid2{grid-template-columns:minmax(0,1fr)}}
@media(max-width:1100px){:scope.qd .qd-grid{grid-template-columns:minmax(0,1fr)}:scope.qd .qd-rail{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){:scope.qd .qd-grid,:scope.qd .qd-rail{grid-template-columns:minmax(0,1fr)}:scope.qd .qd-top{gap:10px;flex-wrap:wrap}:scope.qd .qd-search{min-width:0;flex:1 1 180px}:scope.qd .qd-tape{gap:10px}:scope.qd #stats .val{font-size:17px}:scope.qd .qd-tl .phead{flex-wrap:wrap}:scope.qd .qd-titlebar #quick{flex-wrap:wrap}:scope.qd .qd-titlebar input[type=date]{max-width:130px}:scope.qd .qd-main{min-width:0}}

:scope.qd #stats .lbl .qd-i{margin-left:auto}:scope.qd #stats .qd-note{margin-top:7px;padding:6px;grid-column:1/-1}

:scope.qd #stats .lbl{text-transform:none;letter-spacing:normal}:scope.qd .qd-dashboard-link{font-size:12px;color:var(--accent);text-decoration:none}

/* Retained layout/engine compatibility: /quantos-widgets.css */
/* quantos-widgets.css — styles for quantos-widgets.js. Self-contained: works on any page.
   Colours come only from the shared theme tokens (with neutral fallbacks for pages without them);
   type follows the shared roles: 12px heading/body, 11px small, 10px label. */

.qw {
  --qw-line: color-mix(in srgb, var(--line, #d8dee8) 75%, transparent);
  background: var(--panel, #fff); color: var(--txt, #17202b);
  border: 1px solid var(--qw-line); border-radius: 12px; overflow: hidden; min-width: 0;
  box-shadow: 0 1px 2px rgba(15, 23, 42, .05), 0 6px 18px -8px rgba(15, 23, 42, .18);
  font: 12px/1.45 var(--mm-text, Inter, system-ui, sans-serif);
}
.qw *, .qw *::before, .qw *::after { box-sizing: border-box; }
.qw-h { display: flex; align-items: center; gap: 8px; padding: 10px 14px; font-weight: 600; font-family: var(--mm-display, inherit);
  border-bottom: 1px solid var(--qw-line); }
.qw-ico { width: 22px; height: 22px; border-radius: 7px; display: grid; place-items: center; flex: none;
  background: var(--accent-wash, rgba(41, 98, 255, .1)); color: var(--accent, #2962ff); }
.qw-ico svg { display: block; }
.qw-i { width: 18px; height: 18px; border-radius: 50%; border: 1px solid var(--line, #d8dee8); background: var(--panel2, #f3f5f9);
  color: var(--mut, #8a93a6); font: 600 10px/1 var(--mm-text, Inter, sans-serif); cursor: pointer; padding: 0; flex: none; }
.qw-i[aria-expanded="true"] { color: var(--accent, #2962ff); border-color: var(--accent, #2962ff); }
.qw-i:focus-visible, .qw button:focus-visible, .qw a:focus-visible, .qw select:focus-visible { outline: 2px solid var(--accent, #2962ff); outline-offset: 2px; }
.qw-note { font-size: 12px; line-height: 1.6; color: var(--dim, #5b6576); padding: 10px 14px;
  background: color-mix(in srgb, var(--panel2, #f3f5f9) 55%, var(--panel, #fff)); border-bottom: 1px solid var(--qw-line); }
.qw-note b { color: var(--txt, #17202b); }
.qw-note code { font-size: 11px; }
.qw-body { max-height: var(--qw-max, 340px); overflow: auto; scrollbar-width: thin; }
.qw-b { padding: 6px 14px 12px; }
.qw-empty { color: var(--mut, #8a93a6); padding: 10px 14px; line-height: 1.6; }
.qw-b .qw-empty { padding: 10px 0; }
.qw-sel { margin-left: auto; font: 500 11px var(--mm-text, Inter, sans-serif); padding: 4px 8px; border-radius: 7px;
  background: var(--panel2, #f3f5f9); color: var(--txt, #17202b); border: 1px solid var(--qw-line); }

/* tabs inside a widget */
.qw-tabs { display: flex; gap: 4px; padding: 8px 14px 4px; position: sticky; top: 0; z-index: 2; background: var(--panel, #fff); }
.qw-tabs button { background: transparent; border: 1px solid transparent; color: var(--dim, #5b6576); border-radius: 7px;
  padding: 5px 10px; font: 500 11px var(--mm-text, Inter, sans-serif); cursor: pointer; }
.qw-tabs button.on { background: var(--accent-wash, rgba(41, 98, 255, .1)); color: var(--accent, #2962ff);
  border-color: color-mix(in srgb, var(--accent, #2962ff) 35%, transparent); }

/* quote tables */
.qw-tbl { width: 100%; border-collapse: collapse; font-size: 12px; }
.qw-tbl th { text-align: left; font-size: 10px; font-weight: 700; text-transform: uppercase; letter-spacing: .5px; color: var(--mut, #8a93a6);
  padding: 8px 0 6px; border-bottom: 1px solid var(--qw-line); position: sticky; top: 0; background: var(--panel, #fff); }
.qw-tbl td { padding: 6px 0; border-bottom: 1px solid color-mix(in srgb, var(--line, #d8dee8) 40%, transparent); }
.qw-tbl tr:last-child td { border-bottom: none; }
.qw-tbl .n { text-align: right; font-variant-numeric: tabular-nums; }
.qw-tbl .sym { font-weight: 600; }
.qw-tbl .sym small { display: block; margin-left: 25px; font-size: 11px; font-weight: 400; color: var(--mut, #8a93a6); }
.qw-logo { display: inline-grid; place-items: center; width: 18px; height: 18px; border-radius: 5px; margin-right: 7px; vertical-align: -4px;
  background: var(--accent-wash, rgba(41, 98, 255, .1)); color: var(--accent, #2962ff); font-size: 10px; font-weight: 700; }
.qw .up { color: var(--green, #19c79a); } .qw .dn { color: var(--red, #ff4d6d); }

/* live price flash: a price that changed in the latest shared pull */
@keyframes qwUp { from { background: color-mix(in srgb, var(--green, #19c79a) 35%, transparent); } to { background: transparent; } }
@keyframes qwDn { from { background: color-mix(in srgb, var(--red, #ff4d6d) 35%, transparent); } to { background: transparent; } }
.qw .qw-fl-up { animation: qwUp 1.2s ease-out; border-radius: 4px; }
.qw .qw-fl-dn { animation: qwDn 1.2s ease-out; border-radius: 4px; }

/* lists: news, events */
.qw-list { list-style: none; margin: 0; padding: 0; }
.qw-list li { display: flex; gap: 10px; align-items: baseline; padding: 7px 0; font-size: 12px; line-height: 1.45;
  border-bottom: 1px solid color-mix(in srgb, var(--line, #d8dee8) 40%, transparent); }
.qw-list li:last-child { border-bottom: none; }
.qw-list time { flex: none; width: 58px; color: var(--mut, #8a93a6); font-size: 11px; font-variant-numeric: tabular-nums; }
.qw-list a { color: inherit; text-decoration: none; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
.qw-list a:hover { color: var(--accent, #2962ff); }
.qw-imp { margin-left: auto; flex: none; font-size: 11px; color: var(--mut, #8a93a6); white-space: nowrap; }
.qw-dot { display: inline-block; width: 7px; height: 7px; border-radius: 50%; margin-right: 5px; background: var(--mut, #8a93a6); }
.qw-dot.hi { background: var(--red, #ff4d6d); } .qw-dot.md { background: var(--gold, #f5c451); } .qw-dot.lo { background: var(--green, #19c79a); }

/* market tape */
.qw.qw-tapew .qw-body { max-height: none; }
.qw-tape { display: flex; align-items: center; gap: 20px; flex-wrap: wrap; padding: 9px 14px; }
.qw-tape > div { display: grid; gap: 1px; }
.qw-tape b { font-size: 10px; color: var(--mut, #8a93a6); text-transform: uppercase; letter-spacing: .5px; }
.qw-tape span { font-variant-numeric: tabular-nums; font-weight: 600; padding: 0 2px; }
.qw-tape em { font-style: normal; font-size: 11px; margin-left: 6px; }
.qw-broker { display: flex !important; grid: none; align-items: center; gap: 8px; font-weight: 600; }
.qw-broker i { width: 9px; height: 9px; border-radius: 50%; background: var(--mut, #8a93a6); flex: none; }
.qw-broker.on i { background: var(--green, #19c79a); box-shadow: 0 0 0 3px color-mix(in srgb, var(--green, #19c79a) 25%, transparent); }
.qw-broker small { display: block; font-size: 10px; color: var(--mut, #8a93a6); font-weight: 500; }
.qw-asof { margin-left: auto; font-size: 11px; color: var(--mut, #8a93a6); }

/* chart */
.qw-chart { position: relative; padding: 4px 14px 12px; }
.qw-chart canvas { display: block; width: 100%; }
.qw-cq { display: flex; align-items: baseline; gap: 8px; padding: 2px 0 6px; flex-wrap: wrap; }
.qw-cq b { font-size: 18px; font-weight: 700; font-variant-numeric: tabular-nums; padding: 0 3px; }
.qw-cq span { font-size: 12px; font-weight: 600; }
.qw-cq small { font-size: 11px; color: var(--mut, #8a93a6); }
.qw-tip { position: absolute; pointer-events: none; background: var(--panel, #fff); border: 1px solid var(--line, #d8dee8); border-radius: 6px;
  padding: 3px 7px; font-size: 11px; font-variant-numeric: tabular-nums; white-space: pre; box-shadow: 0 6px 16px -8px rgba(15, 23, 42, .35); }

/* account summary */
.qw-acct { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: 12px; align-items: start; }
.qw-kv { display: grid; gap: 8px; min-width: 0; }
.qw-kv div { display: grid; }
.qw-kv small { font-size: 10px; color: var(--mut, #8a93a6); text-transform: uppercase; letter-spacing: .5px; }
.qw-kv span { font-size: 14px; font-weight: 600; font-variant-numeric: tabular-nums; }
.qw-acr { display: grid; gap: 8px; }
.qw-donwrap { display: flex; align-items: center; gap: 10px; }
.qw-donut { width: 72px; height: 72px; flex: none; }
.qw-leg { list-style: none; margin: 0; padding: 0; display: grid; gap: 4px; color: var(--dim, #5b6576); }
.qw-leg li { display: flex; align-items: center; gap: 6px; }
.qw-leg i { width: 7px; height: 7px; border-radius: 50%; flex: none; }
.qw-leg b { margin-left: auto; padding-left: 10px; color: var(--txt, #17202b); font-weight: 600; font-variant-numeric: tabular-nums; }

/* buttons, coach, actions */
.qw-btn { display: block; text-align: center; border-radius: 8px; padding: 8px; font-weight: 600; text-decoration: none; cursor: pointer;
  background: var(--accent, #2962ff); color: var(--panel, #fff); border: 1px solid var(--accent, #2962ff); }
.qw-btn.qw-ghost { background: var(--accent-wash, rgba(41, 98, 255, .1)); color: var(--accent, #2962ff); }
.qw-btn:hover { filter: brightness(1.06); }
.qw-p { margin: 6px 0 10px; color: var(--dim, #5b6576); line-height: 1.6; }
.qw-p b { color: var(--txt, #17202b); }
.qw-actions { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; padding-top: 6px; }
.qw-actions a { display: flex; align-items: center; justify-content: center; gap: 7px; padding: 9px 8px; border-radius: 8px; text-decoration: none;
  color: var(--txt, #17202b); background: var(--panel2, #f3f5f9); border: 1px solid var(--qw-line); font-weight: 500; }
.qw-actions a:hover { border-color: var(--accent, #2962ff); color: var(--accent, #2962ff); }

/* brand */
.qw.qw-brand { display: flex; align-items: center; gap: 14px; padding: 16px; min-height: 120px;
  background: linear-gradient(135deg, color-mix(in srgb, var(--accent, #2962ff) 10%, var(--panel, #fff)), var(--panel, #fff)); }
.qw-mtn { width: 120px; height: 84px; flex: none; }
.qw-brand b { display: block; font-size: 14px; font-weight: 600; line-height: 1.35; font-family: var(--mm-display, inherit); }
.qw-brand b + b { font-weight: 700; }
.qw-brand span { display: block; margin-top: 6px; color: var(--dim, #5b6576); }

@media (prefers-reduced-motion: reduce) { .qw .qw-fl-up, .qw .qw-fl-dn { animation: none; } }

/* A widget that has not loaded yet keeps a realistic height. Without it every empty widget sits at
   the top of the page, counts as on-screen, and lazy loading starts them all at once. */
[data-qw]:not(.qw) { display: block; min-height: var(--qw-min, 200px); border-radius: 12px;
  background: color-mix(in srgb, var(--panel2, #f3f5f9) 60%, transparent); }
[data-qw="tape"]:not(.qw) { --qw-min: 56px; }

/* compact: no heading row; the ? button floats top right and its drawer opens above the body */
.qw.qw-compact { position: relative; }
.qw-compact > .qw-h { position: absolute; top: 6px; right: 8px; z-index: 3; padding: 0; border: 0; background: none; }
.qw-compact > .qw-h .qw-ico, .qw-compact > .qw-h .qw-t { display: none; }
.qw-compact .qw-tape { padding-right: 36px; }
.qw-compact > .qw-note { border-bottom: 1px solid var(--qw-line); padding-right: 36px; }

/* Reusable preparation widgets; values remain in the shared data Hub. */
.qw-sector-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:6px}
.qw-sector{display:grid;gap:4px;padding:8px;border:1px solid var(--line);border-left:3px solid var(--mut);border-radius:5px;background:var(--panel2);min-width:0}
.qw-sector.up{border-left-color:var(--green)}.qw-sector.dn{border-left-color:var(--red)}
.qw-sector strong{font:600 16px var(--mm-mono)}.qw-sector span{font:400 12px/1.4 var(--mm-text);color:var(--dim);overflow-wrap:anywhere}
.qw-countdown{font:600 18px var(--mm-mono)}
.qw-prep-check{display:flex;gap:8px;padding:8px 0;border-bottom:1px solid var(--line)}.qw-prep-check:last-child{border-bottom:0}
.qw-prep-check input{margin:3px 0 0;accent-color:var(--accent)}.qw-prep-check label{font:400 12px/1.5 var(--mm-text);cursor:pointer}.qw-prep-check small{display:block;color:var(--dim);font:400 12px/1.5 var(--mm-text)}

/* Retained layout/engine compatibility: /test/accounts-widgets.css */
/* deploy/test/accounts-widgets.css — Accounts & P/L with shared widgets (TEST ONLY). Pairs with accounts-widgets.js. */
/* the layout's own tape is replaced by the shared tape widget */
:scope.qaw .qd-top > .qd-broker, :scope.qaw .qd-top > .qd-tape, :scope.qaw .qd-top > .qd-asof { display: none; }
:scope.qaw .qaw-tape { flex: 1 1 520px; min-width: 0; }
:scope.qaw .qaw-tape .qw { border: 0; box-shadow: none; background: transparent; }
:scope.qaw .qaw-tape .qw-tape { padding: 0 36px 0 0; }
:scope.qaw .qd-rail { gap: 14px; align-content: start; }
:scope.qaw .qd-row4 > .qw { align-self: stretch; }
:scope.qaw .qaw-navcoach .qw { margin: 8px 10px; box-shadow: none; }
#lnav:not(.pinned):not(:hover) .qaw-navcoach { display: none; }

/* Customize */
:scope.qaw .qaw-cust { margin-left: 4px; }
.qaw-box { background: var(--panel); border: 1px solid var(--line); border-radius: 12px; padding: 12px 14px; margin: -4px 0 14px;
  box-shadow: 0 6px 18px -8px rgba(15, 23, 42, .18); font-size: 12px; }
.qaw-head { display: flex; align-items: center; gap: 8px; margin-bottom: 8px; }
.qaw-head b { font-size: 12px; font-weight: 600; }
.qaw-i { width: 18px; height: 18px; border-radius: 50%; border: 1px solid var(--line); background: var(--panel2); color: var(--mut);
  font: 600 10px/1 var(--mm-text, Inter, sans-serif); cursor: pointer; padding: 0; }
.qaw-i[aria-expanded="true"] { color: var(--accent); border-color: var(--accent); }
.qaw-note { margin: 0 0 10px; color: var(--dim); line-height: 1.6; }
.qaw-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(220px, 1fr)); gap: 18px; }
.qaw-lbl { font-size: 10px; text-transform: uppercase; letter-spacing: .5px; font-weight: 700; color: var(--mut); display: block; margin: 0 0 4px; }
.qaw-grid ul { list-style: none; margin: 0; padding: 0; }
.qaw-grid li { display: flex; align-items: center; gap: 6px; padding: 3px 0; }
.qaw-grid li label { flex: 1; display: flex; align-items: center; gap: 7px; }
.qaw-grid li .btn { padding: 3px 8px; }
.qaw-sym { display: grid; gap: 4px; align-content: start; }
.qaw-sym input { width: 100%; padding: 7px 9px; border: 1px solid var(--line); border-radius: 8px; background: var(--panel); color: var(--txt);
  font: 12px var(--mm-text, Inter, sans-serif); }
.qaw-sym .qaw-lbl:not(:first-child) { margin-top: 6px; }
.qaw-sym small { color: var(--mut); font-size: 11px; }
.qaw-sym .btn { justify-self: start; margin-top: 4px; }

/* Retained layout/engine compatibility: /test/accounts-pro.css */
/* deploy/test/accounts-pro.css — TEST ONLY, pairs with accounts-pro.js. The user's "TradeView" mockup.
   Theme tokens only; dark/slate/light come from Theme Studio. */
:scope.ap {
  --ap-green: var(--green, #16a34a); --ap-red: var(--red, #e5484d); --ap-blue: var(--accent, #2962ff);
  --ap-violet: #7c4dff; --ap-amber: var(--gold, #d99a00);
  --ap-radius: 12px; --ap-shadow: 0 1px 2px rgba(15, 23, 42, .05), 0 1px 8px rgba(15, 23, 42, .04);
}
:scope.ap .up { color: var(--ap-green); } :scope.ap .dn { color: var(--ap-red); }

/* every block is a white card with the mockup's radius */
:scope.ap .ap-card, :scope.ap #stats > .card, :scope.ap .qd-main .panel, :scope.ap .qd-rail .qw, :scope.ap .qd-top {
  background: var(--panel) !important; border: 1px solid var(--line) !important; border-radius: var(--ap-radius) !important; box-shadow: var(--ap-shadow) !important; }

/* ---------- top bar ---------- */
:scope.ap .qd-top.ap-top { display: flex; align-items: center; gap: 16px; padding: 8px 14px !important; flex-wrap: nowrap; }
:scope.ap .qd-top > .qaw-cust { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); padding: 0 !important; border: 0 !important; }   /* Watchlist → Manage opens it */
:scope.ap .qd-top .qd-dashboard-link, :scope.ap .qd-top .qd-broker, :scope.ap .qd-top .qd-tape, :scope.ap .qd-top .qaw-tape, :scope.ap .qd-top .qd-asof { display: none !important; }
.ap-brand { display: inline-flex; align-items: center; gap: 10px; text-decoration: none; color: var(--txt); flex: none; }
.ap-brand b { font-size: 19px; font-weight: 800; letter-spacing: -.02em; }
.ap-mark { display: inline-flex; align-items: flex-end; gap: 3px; height: 26px; padding: 4px 5px; border-radius: 8px; background: var(--ap-blue); }
.ap-mark i { display: block; width: 4px; border-radius: 2px; background: #fff; }
.ap-mark i:nth-child(1) { height: 8px; opacity: .75; } .ap-mark i:nth-child(2) { height: 13px; opacity: .9; } .ap-mark i:nth-child(3) { height: 18px; }
.ap-ttape { display: flex; align-items: center; min-width: 0; overflow: hidden; flex: 1 1 0; }
.ap-tq { display: inline-flex; align-items: baseline; gap: 5px; padding: 0 11px; white-space: nowrap; font-size: 13px; font-variant-numeric: tabular-nums; border-left: 1px solid var(--line); }
.ap-tq:first-child { border-left: 0; padding-left: 4px; }
.ap-tq > i { font-style: normal; font-size: 10px; }
.ap-tq b { font-weight: 700; color: var(--txt); }
.ap-tq span { color: var(--txt); }
.ap-tq em { font-style: normal; font-size: 12px; font-weight: 600; }
.ap-conn { display: inline-flex; align-items: center; gap: 6px; font-size: 12px; font-weight: 600; color: var(--ap-green); white-space: nowrap; flex: none; }
.ap-conn i { width: 8px; height: 8px; border-radius: 50%; background: currentColor; }
.ap-conn.off { color: var(--ap-red); }
.ap-clock { font-size: 12px; color: var(--mut); white-space: pre; flex: none; font-variant-numeric: tabular-nums; }
:scope.ap .qd-top .qd-search { margin-left: 0 !important; flex: 0 1 210px; min-width: 160px; border-radius: 999px !important; }
.ap-avatar { flex: none; display: inline-grid; place-items: center; width: 34px; height: 34px; border-radius: 50%; background: #1f2a44; color: #fff; font-size: 12px; font-weight: 700; }

/* ---------- title row ---------- */
:scope.ap .qd-titlebar { display: grid !important; grid-template-columns: minmax(0, 1fr); gap: 12px !important; margin: 4px 0 14px !important; }
:scope.ap .qd-tl { display: block !important; }
:scope.ap .qd-tl > .phead:not(#head .phead) { display: none !important; }       /* period moved beside the title */
:scope.ap #head .phead { display: flex; align-items: center; gap: 16px; flex-wrap: wrap; }
:scope.ap #head h1 { font-size: 22px; font-weight: 800; letter-spacing: -.01em; margin: 0; }
:scope.ap #head .sub { font-size: 13px; color: var(--mut); }
:scope.ap #head .sp, :scope.ap #mmStatus { display: none !important; }
.ap-period { display: flex; align-items: center; gap: 10px; margin-left: auto; flex-wrap: wrap; }
:scope.ap .ap-range { display: inline-flex !important; align-items: center; gap: 6px; padding: 5px 12px; border: 1px solid var(--line); border-radius: 10px; background: var(--panel); box-shadow: var(--ap-shadow); }
:scope.ap .ap-range > .ap-sr { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); }
:scope.ap .ap-range .ap-cal { color: var(--mut); display: inline-flex; }
:scope.ap .ap-range input[type=date] { border: 0 !important; box-shadow: none !important; background: transparent !important; padding: 3px 0 !important; font-size: 13px; color: var(--txt); max-width: 132px; }
:scope.ap #quick { display: inline-flex; gap: 2px; padding: 4px; border: 1px solid var(--line); border-radius: 10px; background: var(--panel); box-shadow: var(--ap-shadow); }
:scope.ap #quick button { border: 0 !important; background: transparent; border-radius: 7px; padding: 6px 12px; font-size: 12px; font-weight: 600; color: var(--mut); }
:scope.ap #quick button.on { background: var(--ap-blue) !important; color: #fff !important; }
:scope.ap .qd-tr { display: flex !important; align-items: center; justify-content: flex-start !important; gap: 10px; flex-wrap: wrap; }
:scope.ap .qd-tr .tabs { margin-right: auto !important; }

/* Quick Actions in the tab bar (the bottom panel is hidden) */
.ap-actions { display: flex; flex-wrap: wrap; gap: 8px; }
:scope.ap #importBtn { margin-left: 0 !important; }
.ap-act { display: inline-flex !important; align-items: center; gap: 6px; text-decoration: none; font-weight: 600; white-space: nowrap; background: var(--panel) !important; }
.ap-act svg { color: var(--ap-blue); }

/* ---------- round icon badges ---------- */
.ap-badge { flex: none; display: inline-grid; place-items: center; width: 40px; height: 40px; border-radius: 50%; }
.ap-badge.ap-green { background: color-mix(in srgb, var(--ap-green) 14%, transparent); color: var(--ap-green); }
.ap-badge.ap-red { background: color-mix(in srgb, var(--ap-red) 14%, transparent); color: var(--ap-red); }
.ap-badge.ap-blue { background: color-mix(in srgb, var(--ap-blue) 14%, transparent); color: var(--ap-blue); }
.ap-badge.ap-violet { background: color-mix(in srgb, var(--ap-violet) 14%, transparent); color: var(--ap-violet); }
.ap-badge.ap-solid.ap-green { background: var(--ap-green); color: #fff; }
.ap-badge.ap-solid.ap-red { background: var(--ap-red); color: #fff; }

/* ---------- KPI cards ---------- */
:scope.ap #stats { gap: 14px !important; margin-bottom: 14px; }
@media (min-width: 701px) { :scope.ap #stats { grid-template-columns: repeat(5, minmax(0, 1fr)) !important; } }
:scope.ap #stats .card.ap-hide { display: none !important; }
:scope.ap #stats > .card::before { display: none !important; }
:scope.ap #stats .card.ap-kpi { position: relative; padding: 16px !important; min-height: 140px;
  display: grid; grid-template-columns: auto max-content minmax(0, 1fr); column-gap: 12px; align-content: start; container-type: inline-size; }
:scope.ap #stats .card.ap-kpi > * { grid-column: 1 / -1; order: 6; }
:scope.ap #stats .card.ap-kpi > .ap-badge { grid-column: 1; grid-row: 1 / span 3; order: 0; align-self: start; width: 46px; height: 46px; }
:scope.ap #stats .card.ap-kpi > .ap-badge svg { width: 22px; height: 22px; }
:scope.ap #stats .card.ap-kpi > .lbl { grid-column: 2 / -1; grid-row: 1; order: 1; display: flex; align-items: center; gap: 4px;
  font-size: 13px; font-weight: 700; color: var(--txt); text-transform: none; letter-spacing: 0; }
:scope.ap #stats .card.ap-kpi .lbl .qd-ico { display: none; }
:scope.ap #stats .card.ap-kpi .lbl .qd-i { margin-left: auto; opacity: .55; }
:scope.ap #stats .card.ap-kpi > .val { grid-column: 2; grid-row: 2; order: 2; margin: 2px 0 0; font-family: inherit; font-size: 23px; font-weight: 800; line-height: 1.2;
  font-variant-numeric: tabular-nums; letter-spacing: -.01em; color: var(--txt); }
:scope.ap #stats .card.ap-kpi > .val.dn { color: var(--ap-red); }
:scope.ap #stats .card.ap-kpi > .qd-spark, :scope.ap #stats .card.ap-kpi > .ap-mbars { grid-column: 3; grid-row: 2 / span 2; order: 2; align-self: center; width: 100%; height: 38px; max-height: 38px; margin: 0; }
:scope.ap .ap-mbars rect { fill: var(--ap-blue); }
:scope.ap #stats .card.ap-has-bars > .qd-spark { display: none; }
:scope.ap #stats .card.ap-kpi > .qd-cmp { grid-column: 2 / -1; grid-row: 3; order: 3; margin-top: 2px; font-size: 12px; color: var(--mut); }
:scope.ap #stats .card.ap-kpi > .sub, :scope.ap #stats .card.ap-kpi > .qd-drag { display: none !important; }
:scope.ap #stats .card.ap-kpi > .ap-split, :scope.ap #stats .card.ap-kpi > .ap-rows, :scope.ap #stats .card.ap-kpi > .ap-wl { order: 4; margin-top: 14px; }
:scope.ap #stats .card.ap-kpi > .qd-note { order: 7; }
:scope.ap #stats .card.ap-has-ring > .qd-spark { display: none; }
:scope.ap #stats .card.ap-has-ring > .ap-ring { grid-column: 3; grid-row: 1 / span 3; order: 2; justify-self: end; align-self: center; width: 66px; height: 66px; }
:scope.ap #stats .card.ap-has-ring > .ap-ring b { font-size: 12px; }
:scope.ap #stats .card.ap-has-ring > .lbl { grid-column: 2; }
@container (max-width: 250px) {
  :scope.ap #stats .card.ap-kpi > .qd-spark, :scope.ap #stats .card.ap-kpi > .ap-mbars { display: none; }
  :scope.ap #stats .card.ap-kpi > .val { font-size: 19px; }
  :scope.ap #stats .card.ap-kpi > .ap-badge { width: 36px; height: 36px; }
  :scope.ap #stats .card.ap-has-ring > .ap-ring { width: 52px; height: 52px; }
}
.ap-split .ap-bar { display: flex; height: 8px; border-radius: 99px; overflow: hidden; background: var(--panel2); gap: 2px; }
.ap-bar i { display: block; height: 100%; border-radius: 99px; }
.ap-g { background: var(--ap-green); } .ap-r { background: var(--ap-red); }
.ap-legend { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 4px 12px; margin-top: 9px; font-size: 11px; color: var(--mut); }
.ap-legend span { display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; }
.ap-legend em { font-style: normal; font-weight: 600; }
.ap-legend b { color: var(--txt); font-weight: 600; margin-left: 4px; font-variant-numeric: tabular-nums; }
.ap-dot { flex: none; display: inline-block; width: 8px; height: 8px; border-radius: 50%; margin-right: 2px; }
.ap-rows { display: grid; gap: 6px; font-size: 12px; color: var(--mut); }
.ap-rows > div { display: grid; grid-template-columns: auto 1fr auto auto; align-items: center; gap: 4px 10px; }
.ap-rows b { color: var(--txt); font-weight: 600; font-variant-numeric: tabular-nums; }
.ap-rows em { font-style: normal; color: var(--txt); font-variant-numeric: tabular-nums; min-width: 44px; text-align: right; }
.ap-rows .ap-dot { margin: 0; }
.ap-wl { display: grid; grid-template-columns: 1fr 1fr; gap: 2px 12px; font-size: 12px; color: var(--mut); }
.ap-wl > div { display: grid; gap: 2px; }
.ap-wl span { display: inline-flex; align-items: center; gap: 4px; }
.ap-wl b { color: var(--ap-green); font-size: 13px; font-weight: 700; }
.ap-wl b.dn { color: var(--ap-red); }

/* ---------- rings ---------- */
.ap-ring { position: relative; display: inline-grid; place-items: center; width: 132px; height: 132px; flex: none; }
.ap-ring svg { position: absolute; inset: 0; width: 100%; height: 100%; }
.ap-ring-bg { fill: none; stroke: var(--panel2); stroke-width: 4; }
.ap-ring-g, .ap-ring-r { fill: none; stroke-width: 4; }
.ap-ring-g { stroke: var(--ap-green); } .ap-ring-r { stroke: var(--ap-red); }
.ap-ring-c { position: relative; display: grid; place-items: center; line-height: 1.15; }
.ap-ring-c b { font-size: 22px; font-weight: 800; color: var(--txt); font-variant-numeric: tabular-nums; }
.ap-ring-c small { font-size: 12px; color: var(--mut); }

/* ---------- chart panels ---------- */
:scope.ap .qd-main .panel > .ph { font-size: 14px; font-weight: 700; color: var(--txt); }
.ap-total { margin-left: auto; font-size: 12px; font-weight: 500; color: var(--mut); white-space: nowrap; }
.ap-total b { margin-left: 8px; font-size: 14px; font-weight: 700; }
.ap-total + .count { margin-left: 10px !important; }

/* ---------- stat strip ---------- */
.ap-strip { display: grid; grid-template-columns: repeat(auto-fit, minmax(170px, 1fr)); row-gap: 12px; padding: 16px 6px !important; margin: 0 0 14px; overflow: hidden; }
.ap-stat { display: flex; gap: 12px; align-items: center; padding: 4px 14px; border-left: 1px solid var(--line); margin-left: -1px; min-width: 0; }
.ap-stat .ap-badge { width: 38px; height: 38px; }
.ap-stat .ap-badge svg { width: 18px; height: 18px; }
.ap-stat-l { font-size: 12px; color: var(--mut); white-space: nowrap; }
.ap-stat-v { font-size: 18px; font-weight: 800; font-variant-numeric: tabular-nums; color: var(--txt); white-space: nowrap; margin: 2px 0; }
.ap-stat-v.up { color: var(--ap-green); } .ap-stat-v.dn { color: var(--ap-red); }
.ap-stat-s { font-size: 11px; color: var(--mut); white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }

/* ---------- Recent Trades | Trading Performance, Account Summary | Account Positions ---------- */
.ap-blocks { display: grid; grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); gap: 14px; margin: 0 0 14px; }
.ap-acct-p { grid-column: 1; } .ap-pos-p { grid-column: 2; }
.ap-panel { padding: 0 !important; min-width: 0; }
.ap-ph { display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 14px 16px 8px; }
.ap-ph h3 { display: flex; align-items: center; gap: 9px; margin: 0; font-size: 14px; font-weight: 700; color: var(--txt); }
.ap-ph h3 svg { color: var(--ap-blue); }
.ap-link { display: inline-flex; align-items: center; gap: 2px; font-size: 12px; font-weight: 600; color: var(--ap-blue) !important; text-decoration: none; }
.ap-sub { font-size: 12px; color: var(--mut); }
.ap-body { padding: 0 16px 14px; }
.ap-tbl { width: 100%; border-collapse: collapse; font-size: 12.5px; font-variant-numeric: tabular-nums; }
.ap-tbl th, .ap-tbl td, .ap-tbl .num { font-family: inherit !important; }
.ap-tbl th { text-align: left; font-size: 12px; font-weight: 600; color: var(--mut); text-transform: none; letter-spacing: 0; padding: 8px 8px; background: var(--panel2); white-space: nowrap; }
.ap-tbl td { padding: 9px 8px; border-bottom: 1px solid var(--line); color: var(--txt); white-space: nowrap; }
.ap-tbl tr:last-child td { border-bottom: 0; }
.ap-tbl .num { text-align: right; }
.ap-tbl td.num.up { color: var(--ap-green); } .ap-tbl td.num.dn { color: var(--ap-red); }
.ap-strong { font-weight: 600; }
.ap-pill { display: inline-block; min-width: 46px; text-align: center; padding: 2px 10px; border-radius: 99px; font-size: 11px; font-weight: 700; background: var(--panel2); color: var(--mut); }
.ap-pill.ap-win { background: color-mix(in srgb, var(--ap-green) 14%, transparent); color: var(--ap-green); }
.ap-pill.ap-loss { background: color-mix(in srgb, var(--ap-red) 14%, transparent); color: var(--ap-red); }
.ap-foot { margin: 8px 0 0; font-size: 11px; color: var(--mut); }
.ap-perf { display: flex; align-items: center; gap: 26px; padding: 6px 4px 14px; flex-wrap: wrap; }
.ap-perf-l { display: grid; gap: 16px; flex: 1 1 170px; font-size: 13px; color: var(--mut); }
.ap-perf-l > div { display: flex; align-items: center; gap: 6px; }
.ap-perf-l b { margin-left: auto; color: var(--txt); font-weight: 700; font-variant-numeric: tabular-nums; }
.ap-perf-f { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 8px; border-top: 1px solid var(--line); padding-top: 12px; }
.ap-perf-f span { display: block; font-size: 11px; color: var(--mut); margin-bottom: 3px; }
.ap-perf-f b { font-size: 17px; font-weight: 800; font-variant-numeric: tabular-nums; color: var(--txt); }
.ap-perf-f b.up { color: var(--ap-green); } .ap-perf-f b.dn { color: var(--ap-red); }
.ap-acct { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); padding-top: 4px; }
.ap-acct > div { display: grid; gap: 4px; padding: 0 14px; border-left: 1px solid var(--line); align-content: start; }
.ap-acct > div:first-child { border-left: 0; padding-left: 0; }
.ap-acct span { font-size: 11px; color: var(--mut); }
.ap-acct b { font-size: 17px; font-weight: 800; color: var(--txt); font-variant-numeric: tabular-nums; white-space: nowrap; }
.ap-acct b.ap-big { font-size: 20px; } .ap-acct b.up { color: var(--ap-green); } .ap-acct b.dn { color: var(--ap-red); }
.ap-acct em { font-style: normal; font-size: 11px; font-weight: 600; }
.ap-posrow { display: grid; grid-template-columns: 1fr 1fr; padding-top: 6px; }
.ap-posrow a { display: inline-flex; align-items: center; gap: 8px; padding: 6px 12px; color: var(--txt); text-decoration: none; font-size: 13px; border-left: 1px solid var(--line); }
.ap-posrow a:first-child { border-left: 0; padding-left: 0; }
.ap-posrow a b { font-size: 15px; font-weight: 800; }
.ap-posrow a svg { color: var(--ap-blue); }
.ap-posrow a:hover { color: var(--ap-blue); }

/* old widget panels the mockup replaces */
:scope.ap .qd-row4, :scope.ap .qd-rail [data-qw="chart"], :scope.ap .qd-rail [data-qw="brand"] { display: none !important; }

/* ---------- right rail ---------- */
:scope.ap .qd-rail .qw-h { display: flex; align-items: center; gap: 8px; }
:scope.ap .qd-rail .qw-t { font-size: 14px; font-weight: 700; color: var(--txt); }
:scope.ap .qd-rail .qw-h .qw-i { opacity: .55; }
.ap-manage { margin-left: auto; display: inline-flex; align-items: center; gap: 2px; border: 0; background: transparent; color: var(--ap-blue); font-size: 12px; font-weight: 600; cursor: pointer; padding: 2px 0; }
:scope.ap .qd-rail [data-qw="news"] .qw-h .ap-link { margin-left: auto; }
:scope.ap .qd-rail [data-qw="watchlist"] .qw-tabs { display: none !important; }
:scope.ap .qd-rail [data-qw="movers"] .qw-tabs { display: grid; grid-template-columns: 1fr 1fr; gap: 0; padding: 0; border-bottom: 1px solid var(--line); background: transparent; }
:scope.ap .qd-rail [data-qw="movers"] .qw-tabs button { border: 0 !important; border-radius: 0 !important; background: var(--panel2) !important; color: var(--mut); padding: 8px 4px; font-size: 12px; font-weight: 600; box-shadow: none !important; }
:scope.ap .qd-rail [data-qw="movers"] .qw-tabs button.on { background: transparent !important; color: var(--ap-blue); box-shadow: inset 0 -2px 0 var(--ap-blue) !important; }
:scope.ap .qd-rail [data-qw="movers"] .qw-tabs button[data-v="Most Active"] { display: none; }
:scope.ap .qd-rail .qw-tbl { font-family: inherit !important; font-variant-numeric: tabular-nums; }
:scope.ap .qd-rail .qw-tbl td, :scope.ap .qd-rail .qw-tbl th { font-family: inherit !important; }
:scope.ap .qd-rail .qw-tbl th { font-size: 11px; font-weight: 600; color: var(--mut); text-transform: none !important; letter-spacing: 0 !important; }
:scope.ap .qd-rail .qw-tbl td { font-size: 12.5px; padding-top: 7px; padding-bottom: 7px; }
:scope.ap .qd-rail [data-qw="news"] .qw-list li { display: grid; grid-template-columns: 42px minmax(0, 1fr); column-gap: 8px; align-items: start; padding: 8px 0; border-bottom: 1px solid var(--line); }
:scope.ap .qd-rail [data-qw="news"] .qw-list li:last-child { border-bottom: 0; }
:scope.ap .qd-rail [data-qw="news"] .qw-list time { grid-row: 1 / span 2; font-size: 11px; color: var(--mut); font-variant-numeric: tabular-nums; }
:scope.ap .qd-rail [data-qw="news"] .qw-list a { grid-column: 2; font-size: 12px; line-height: 1.35; color: var(--txt); text-decoration: none; }
:scope.ap .qd-rail [data-qw="news"] .qw-list a:hover { color: var(--ap-blue); }
.ap-src { grid-column: 2; font-size: 11px; color: var(--mut); margin-top: 2px; }

/* ---------- ticker logos ---------- */
.ap-logo { display: inline-grid !important; place-items: center; flex: none; width: 22px !important; height: 22px !important; border-radius: 50% !important;
  background: var(--lg) !important; color: #fff !important; font-size: 9px !important; font-weight: 700; line-height: 1; letter-spacing: -.02em;
  vertical-align: middle !important; margin-right: 8px !important; }
.ap-logo-s { font-size: 7px !important; }
:scope.ap .qw-tbl .sym small { margin-left: 30px; }

/* ---------- bottom status bar ---------- */
.ap-status { position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; display: flex; align-items: center; justify-content: space-between; gap: 16px;
  min-height: 40px; padding: 4px max(16px, env(safe-area-inset-right, 0px)) calc(4px + env(safe-area-inset-bottom, 0px)) calc(var(--ln-w, 0px) + 16px);
  background: var(--panel); border-top: 1px solid var(--line); font-size: 12px; color: var(--txt); }
.ap-tape { display: flex; gap: 0; overflow-x: auto; scrollbar-width: none; min-width: 0; }
.ap-q { display: inline-flex; align-items: baseline; gap: 6px; white-space: nowrap; font-variant-numeric: tabular-nums; padding: 0 16px; border-left: 1px solid var(--line); }
.ap-q:first-child { border-left: 0; padding-left: 0; }
.ap-q > i { display: none; }
.ap-q b { font-weight: 700; }
.ap-q em { font-style: normal; font-weight: 600; }
.ap-st { display: flex; align-items: center; gap: 14px; white-space: nowrap; }
.ap-mkt { padding: 3px 10px; border-radius: 7px; border: 1px solid var(--line); font-weight: 600; color: var(--mut); }
.ap-mkt.open { color: var(--ap-green); border-color: var(--ap-green); background: color-mix(in srgb, var(--ap-green) 8%, transparent); }
.ap-mkt.pre { color: var(--ap-amber); border-color: var(--ap-amber); }
.ap-sbtn { display: inline-flex; align-items: center; gap: 5px; border: 0; background: transparent; color: var(--txt); font-size: 12px; cursor: pointer; padding: 4px 2px; }
.ap-sbtn svg { color: var(--mut); }
.ap-sbtn:hover { color: var(--ap-blue); }
:scope.ap-has-status body { padding-bottom: 50px; }
:scope.ap-has-status .qp-tag { bottom: 48px !important; }

/* ---------- narrower screens ---------- */
@media (max-width: 1800px) { .ap-tq > i { display: none; } }
@media (max-width: 1400px) { .ap-clock { display: none; } .ap-tq:nth-child(n+4) { display: none; } }
@media (max-width: 1100px) { .ap-blocks { grid-template-columns: minmax(0, 1fr); } .ap-acct-p, .ap-pos-p { grid-column: 1; } .ap-conn { display: none; } }
@media (max-width: 900px) { .ap-ttape { display: none; } }
@media (max-width: 700px) {
  :scope.ap .qd-top.ap-top { flex-wrap: wrap; }
  .ap-period { margin-left: 0; }
  .ap-strip { grid-template-columns: repeat(2, minmax(0, 1fr)); } .ap-stat { padding: 4px 8px; }
  .ap-acct { grid-template-columns: repeat(2, minmax(0, 1fr)); row-gap: 12px; } .ap-acct > div:nth-child(3) { border-left: 0; padding-left: 0; }
  .ap-actions { width: 100%; } .ap-act { flex: 1 1 calc(50% - 8px); justify-content: center; }
  .ap-status { padding-left: 16px; } .ap-st .ap-sbtn { display: none; }
  .ap-perf-f b { font-size: 15px; }
}

/* ===================== v3: mockup density =====================
   Measured from the mockup at 1671x941: top bar 50px, title 17px, KPI cards ~155px with 22px values,
   12px labels, 10-11px legends; tables 11-12px with ~24px rows; rail rows ~28px. Everything above the
   fold in one screen. */
:scope.ap .qd-top.ap-top { border-radius: 0 !important; box-shadow: none !important; border-width: 0 0 1px !important; min-height: 50px; padding: 0 16px !important; }
.ap-brand b { font-size: 18px; }
.ap-tq { font-size: 12px; } .ap-tq em { font-size: 11.5px; }
.ap-conn, .ap-clock { font-size: 11.5px; }
:scope.ap .qd-top .qd-search { height: 34px; font-size: 12px; }
:scope.ap .qd-top .qd-search input { font-size: 12px; }
.ap-avatar { width: 32px; height: 32px; font-size: 11px; }
:scope.ap #mma-ctl { display: none !important; }                 /* the status bar's Mute Alerts replaces it */

:scope.ap .qd-titlebar { gap: 8px !important; margin: 0 0 12px !important; }
:scope.ap #head h1 { font-size: 18px; font-weight: 700; }
:scope.ap #head .sub { font-size: 11.5px; }
:scope.ap .ap-range { padding: 3px 10px; border-radius: 8px; }
:scope.ap .ap-range input[type=date] { font-size: 12px; max-width: 120px; }
:scope.ap #quick { padding: 3px; border-radius: 8px; }
:scope.ap #quick button { padding: 4px 10px; font-size: 11.5px; }
:scope.ap .qd-tr .tabs button:not(.btn) { padding: 4px 10px !important; font-size: 12px !important; }
:scope.ap .ap-act, :scope.ap #importBtn { padding: 5px 11px !important; font-size: 12px !important; }

:scope.ap #stats { gap: 12px !important; margin-bottom: 12px; }
:scope.ap #stats .card.ap-kpi { padding: 14px !important; min-height: 0; column-gap: 10px; }
:scope.ap #stats .card.ap-kpi > .ap-badge { width: 40px; height: 40px; }
:scope.ap #stats .card.ap-kpi > .ap-badge svg { width: 19px; height: 19px; }
:scope.ap #stats .card.ap-kpi > .lbl { font-size: 12px; }
:scope.ap #stats .card.ap-kpi > .val { font-size: 21px; font-weight: 700; }
:scope.ap #stats .card.ap-kpi > .qd-cmp { font-size: 10.5px; }
:scope.ap #stats .card.ap-kpi > .qd-spark, :scope.ap #stats .card.ap-kpi > .ap-mbars { height: 32px; }
:scope.ap #stats .card.ap-kpi > .ap-split, :scope.ap #stats .card.ap-kpi > .ap-rows, :scope.ap #stats .card.ap-kpi > .ap-wl { margin-top: 12px; }
.ap-split .ap-bar { height: 7px; }
.ap-legend, .ap-rows, .ap-wl { font-size: 10.5px; }
.ap-legend { margin-top: 8px; }
.ap-rows { gap: 4px; } .ap-wl b { font-size: 11.5px; }
:scope.ap #stats .card.ap-has-ring > .ap-ring { width: 58px; height: 58px; }
:scope.ap #stats .card.ap-has-ring > .ap-ring b { font-size: 11px; }

:scope.ap .qd-main .panel > .ph { font-size: 13px; padding-top: 10px; padding-bottom: 6px; }
.ap-total { font-size: 11px; } .ap-total b { font-size: 13px; }

.ap-strip { padding: 12px 4px !important; margin: 0 0 12px; }
.ap-stat { gap: 10px; padding: 2px 12px; }
.ap-stat .ap-badge { width: 34px; height: 34px; }
.ap-stat .ap-badge svg { width: 16px; height: 16px; }
.ap-stat-l { font-size: 10.5px; }
.ap-stat-v { font-size: 15.5px; font-weight: 700; margin: 1px 0; }
.ap-stat-s { font-size: 10.5px; }

.ap-blocks { gap: 12px; margin-bottom: 12px; }
.ap-ph { padding: 11px 14px 6px; }
.ap-ph h3 { font-size: 13px; gap: 8px; }
.ap-ph h3 svg { width: 16px; height: 16px; }
.ap-link, .ap-sub { font-size: 11px; }
.ap-body { padding: 0 14px 10px; }
.ap-tbl { font-size: 11.5px; }
.ap-tbl th { font-size: 11px; font-weight: 500; padding: 6px 8px; }
.ap-tbl td { padding: 4.5px 8px; border-bottom: 0; }
.ap-pill { padding: 1px 8px; font-size: 10.5px; min-width: 40px; }
.ap-foot { font-size: 10.5px; margin-top: 6px; }
.ap-ring { width: 112px; height: 112px; }
.ap-ring-c b { font-size: 18px; } .ap-ring-c small { font-size: 10.5px; }
.ap-perf { gap: 22px; padding: 2px 4px 8px; }
.ap-perf-l { gap: 12px; font-size: 11.5px; }
.ap-perf-f { padding-top: 8px; }
.ap-perf-f span { font-size: 10.5px; } .ap-perf-f b { font-size: 14px; }
.ap-acct span { font-size: 10.5px; } .ap-acct b { font-size: 14.5px; } .ap-acct b.ap-big { font-size: 16px; }
.ap-posrow a { font-size: 11.5px; } .ap-posrow a b { font-size: 12px; }

:scope.ap .qd-rail { gap: 12px !important; }
:scope.ap .qd-rail .qw-h { padding-top: 10px !important; padding-bottom: 6px !important; }
:scope.ap .qd-rail .qw-t { font-size: 13px; }
.ap-manage { font-size: 11px; }
:scope.ap .qd-rail .qw-tbl th { font-size: 10.5px; padding-top: 4px !important; padding-bottom: 4px !important; }
:scope.ap .qd-rail .qw-tbl td { font-size: 11.5px; padding-top: 5px !important; padding-bottom: 5px !important; }
:scope.ap .qd-rail [data-qw="movers"] .qw-tabs button { padding: 6px 4px; font-size: 11.5px; }
:scope.ap .qd-rail [data-qw="news"] .qw-list li { padding: 6px 0; }
:scope.ap .qd-rail [data-qw="news"] .qw-list a { font-size: 11px; }
:scope.ap .qd-rail [data-qw="news"] .qw-list time, .ap-src { font-size: 10px; }
.ap-logo { width: 18px !important; height: 18px !important; font-size: 7.5px !important; margin-right: 7px !important; }
.ap-logo-s { font-size: 6px !important; }

.ap-status { min-height: 32px; font-size: 11px; }
.ap-mkt { padding: 2px 8px; font-size: 11px; }
.ap-sbtn { font-size: 11px; }
:scope.ap-has-status body { padding-bottom: 40px; }
:scope.ap .qd-rail [data-qw="news"] .qw-list li { grid-template-rows: auto auto; row-gap: 1px; align-content: start; min-height: 0 !important; height: auto !important; }
:scope.ap .qd-rail [data-qw="news"] .qw-list a { margin: 0 !important; min-height: 0 !important; height: auto !important; display: -webkit-box !important; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
:scope.ap .qd-rail [data-qw="news"] .ap-src { margin: 0; line-height: 1.3; }
:scope.ap .ap-charts { margin-bottom: 12px !important; gap: 12px !important; }
:scope.ap .ap-charts > .panel { margin-bottom: 0 !important; }
/* mockup: Account Summary and Account Positions side by side directly under Recent Trades */
.ap-blocks { grid-template-columns: minmax(0, 1.55fr) minmax(0, 1fr); grid-template-rows: auto auto; align-items: start; }
.ap-trades-p { grid-column: 1; grid-row: 1; }
.ap-perf-p { grid-column: 2; grid-row: 1; }
.ap-under { grid-column: 1; grid-row: 2; display: grid; grid-template-columns: minmax(0, 2fr) minmax(0, 1fr); gap: 12px; }
.ap-under .ap-acct-p, .ap-under .ap-pos-p { grid-column: auto; }
.ap-under .ap-acct > div { padding: 0 10px; }
.ap-under .ap-acct b { font-size: 13.5px; } .ap-under .ap-acct b.ap-big { font-size: 15px; }
.ap-under .ap-posrow { grid-template-columns: 1fr; gap: 6px; }
.ap-under .ap-posrow a { border-left: 0; padding: 2px 0; }
@media (max-width: 1100px) { .ap-perf-p { grid-column: 1; grid-row: auto; } .ap-under { grid-row: auto; } }
@media (max-width: 700px) { .ap-under { grid-template-columns: minmax(0, 1fr); } }

/* ===================== v4: full review against the mockup ===================== */
/* 1. tape: small leading arrow before each symbol, small arrows in the change */
@media (max-width: 1800px) { .ap-tq > i { display: inline; } }
.ap-tq > i { font-size: 8px !important; margin-right: 2px; }
.ap-tq em { font-size: 11px; }
/* 2. search: rounded rectangle */
:scope.ap .qd-top .qd-search { border-radius: 8px !important; flex-basis: 240px; }
/* 3. one date-range pill with a popover */
.ap-rwrap { position: relative; }
.ap-rpill { display: inline-flex; align-items: center; gap: 10px; height: 34px; padding: 0 12px; border: 1px solid var(--line); border-radius: 8px; background: var(--panel);
  color: var(--txt); font-size: 12px; font-weight: 500; cursor: pointer; box-shadow: var(--ap-shadow); white-space: nowrap; font-variant-numeric: tabular-nums; }
.ap-rpill svg { color: var(--mut); } .ap-rpill svg:first-child { color: var(--ap-blue); }
.ap-rpill span { min-width: 170px; text-align: left; }
.ap-rpop { position: absolute; right: 0; top: calc(100% + 6px); z-index: 60; padding: 10px 12px; border: 1px solid var(--line); border-radius: 10px; background: var(--panel); box-shadow: 0 10px 30px rgba(15, 23, 42, .16); }
.ap-rpop .ap-range { box-shadow: none !important; border: 0 !important; padding: 0 !important; }
.ap-rpop .ap-range .ap-cal { display: none; }
:scope.ap .ap-rpop .ap-range input[type=date] { border: 1px solid var(--line) !important; border-radius: 6px; padding: 4px 6px !important; max-width: none; }
:scope.ap #quick { height: 34px; align-items: center; }
/* 4/9. two-tone icons: the tinted circle is lighter so the filled glyph reads like the mockup */
.ap-badge.ap-green:not(.ap-solid) { background: color-mix(in srgb, var(--ap-green) 11%, transparent); }
.ap-badge.ap-red:not(.ap-solid) { background: color-mix(in srgb, var(--ap-red) 11%, transparent); }
.ap-badge.ap-blue { background: color-mix(in srgb, var(--ap-blue) 11%, transparent); }
/* 6. legend on one line */
:scope.ap #stats .ap-split .ap-legend { flex-wrap: nowrap; gap: 8px; min-width: 0; }
:scope.ap #stats .ap-split .ap-legend span { gap: 3px; }
:scope.ap #stats .ap-split .ap-legend b { margin-left: 5px; }
/* 7. thick ring, navy count value */
.ap-ring-bg, .ap-ring-g, .ap-ring-r { stroke-width: 5.2; }
:scope.ap #stats .card.ap-kpi > .val.ap-neutral { color: var(--txt) !important; }
:scope.ap #stats .card.ap-has-ring > .ap-wl { border-top: 1px solid var(--line); padding-top: 8px; }
/* 8. no count pills in chart headers (their text is the header tooltip) */
:scope.ap #eqCount, :scope.ap #barCount { display: none !important; }
:scope.ap .qd-main .panel > .ph .qd-range { height: 28px; font-size: 11.5px; border-radius: 7px; }
/* 10. Recent Trades: regular weight, no footnote */
.ap-tbl td { font-weight: 400; }
.ap-tbl td.num.up, .ap-tbl td.num.dn { font-weight: 500; }
/* 11. ring left; legend and the three figures to its right */
.ap-perf { flex-wrap: nowrap; align-items: center; gap: 24px; padding-bottom: 10px; }
.ap-perf-r { flex: 1 1 auto; min-width: 0; display: grid; gap: 14px; }
.ap-perf-r .ap-perf-f { grid-template-columns: repeat(3, minmax(0, 1fr)); border-top: 0; padding-top: 0; gap: 0; }
.ap-perf-r .ap-perf-f > div { padding: 0 12px; border-left: 1px solid var(--line); }
.ap-perf-r .ap-perf-f > div:first-child { padding-left: 0; border-left: 0; }
/* 12. Account Positions: the two links side by side */
.ap-under .ap-posrow { grid-template-columns: 1fr 1fr; gap: 0; }
.ap-under .ap-posrow a { border-left: 1px solid var(--line); padding: 4px 10px; }
.ap-under .ap-posrow a:first-child { border-left: 0; padding-left: 0; }
/* 13. rail tables: no header band, no row lines */
:scope.ap .qd-rail .qw-tbl th { background: transparent !important; border-bottom: 0 !important; }
:scope.ap .qd-rail .qw-tbl td { border-bottom: 0 !important; }
/* 14. news: tight, no separators */
:scope.ap .qd-rail [data-qw="news"] .qw-list li { border-bottom: 0 !important; padding: 5px 0 !important; }
:scope.ap .qd-rail [data-qw="news"] .qw-list time { color: color-mix(in srgb, var(--ap-blue) 45%, var(--mut)); }
@media (max-width: 700px) { .ap-perf { flex-wrap: wrap; } .ap-rpill span { min-width: 0; } }
/* v4 fit: the one-line legend and the side-by-side position links fit the card widths */
:scope.ap #stats .ap-split .ap-legend { font-size: 10px; gap: 6px; letter-spacing: -.1px; }
:scope.ap #stats .ap-split .ap-legend b { margin-left: 4px; }
:scope.ap #stats .ap-split .ap-legend .ap-dot { width: 7px; height: 7px; }
@container (max-width: 205px) { :scope.ap #stats .ap-split .ap-legend { flex-wrap: wrap; } }
.ap-under { grid-template-columns: minmax(0, 1.8fr) minmax(0, 1fr); }
.ap-under .ap-posrow a { white-space: nowrap; font-size: 11px; gap: 5px; padding: 4px 8px; }
.ap-under .ap-posrow a svg { width: 13px; height: 13px; flex: none; }
/* phone: one KPI card per row; a narrow card never forces its value wider than the card */
@media (max-width: 700px) { :scope.ap #stats { grid-template-columns: minmax(0, 1fr) !important; } }
@container (max-width: 250px) {
  :scope.ap #stats .card.ap-kpi { grid-template-columns: auto minmax(0, 1fr); }
  :scope.ap #stats .card.ap-kpi > .val { white-space: normal; overflow-wrap: anywhere; }
}
.ap-panel .q-table-wrap { overflow-x: auto; max-width: 100%; }
@media (max-width: 700px) { .ap-under .ap-posrow { grid-template-columns: minmax(0, 1fr); } .ap-under .ap-posrow a { border-left: 0; padding-left: 0; } }
@media (min-width: 1101px) { :scope.ap #stats { grid-template-columns: 1.39fr 1.37fr 1.15fr 1.08fr 1fr !important; } }   /* mockup card widths 275/271/228/213/198 */
/* user (28-OCT-2026): Account Summary bottom right, under Trading Performance; Account Positions stays under Recent Trades */
.ap-under { display: contents; }
.ap-blocks > .ap-trades-p { grid-column: 1; grid-row: 1; }
.ap-blocks > .ap-perf-p { grid-column: 2; grid-row: 1; }
.ap-under > .ap-pos-p { grid-column: 1; grid-row: 2; }
.ap-under > .ap-acct-p { grid-column: 2; grid-row: 2; }
.ap-blocks { align-items: stretch; }
.ap-under .ap-posrow { grid-template-columns: max-content max-content; gap: 0; }
.ap-under .ap-posrow a { padding: 4px 18px; font-size: 12px; }
.ap-under .ap-posrow a:first-child { padding-left: 0; }
@media (max-width: 1100px) { .ap-blocks > .ap-perf-p, .ap-under > .ap-pos-p, .ap-under > .ap-acct-p { grid-column: 1; grid-row: auto; } }
@media (max-width: 700px) { .ap-under .ap-posrow { grid-template-columns: minmax(0, 1fr); } .ap-under .ap-posrow a { padding-left: 0; } }
/* user (28-OCT-2026): Account Summary at the top of the right column; Account Positions spans the bottom row */
.ap-under > .ap-pos-p { grid-column: 1 / -1; }
.ap-in-rail { margin: 0; }
.ap-in-rail .ap-acct { grid-template-columns: 1fr 1fr; row-gap: 10px; }
.ap-in-rail .ap-acct > div { padding: 0 10px; border-left: 1px solid var(--line); }
.ap-in-rail .ap-acct > div:nth-child(odd) { padding-left: 0; border-left: 0; }
.ap-in-rail .ap-acct b { font-size: 14px; } .ap-in-rail .ap-acct b.ap-big { font-size: 15px; }
/* Account Positions under Account Summary in the right column */
.ap-under:empty { display: none; }
.ap-in-rail.ap-pos-p .ap-posrow { grid-template-columns: 1fr 1fr; }
.ap-in-rail.ap-pos-p .ap-posrow a { padding: 4px 10px; font-size: 11.5px; white-space: nowrap; }
.ap-in-rail.ap-pos-p .ap-posrow a:first-child { padding-left: 0; border-left: 0; }
/* the rail is too narrow for the two links side by side at every width: one per line */
.ap-in-rail.ap-pos-p .ap-posrow { grid-template-columns: minmax(0, 1fr); gap: 2px; }
.ap-in-rail.ap-pos-p .ap-posrow a { border-left: 0; padding: 3px 0; }
/* one right column, always: Account Summary, Account Positions, Watchlist, Market Movers, Latest News */
@media (min-width: 1101px) { :scope.ap .qd-rail { grid-template-columns: minmax(0, 1fr) !important; grid-auto-flow: row !important; grid-auto-columns: auto !important; } }
.ap-in-rail.ap-pos-p .ap-posrow { grid-template-columns: 1fr 1fr; gap: 0; }
.ap-in-rail.ap-pos-p .ap-posrow a { padding: 3px 10px; border-left: 1px solid var(--line); font-size: 11.5px; white-space: nowrap; }
.ap-in-rail.ap-pos-p .ap-posrow a:first-child { padding-left: 0; border-left: 0; }
.qd-rail > .ap-in-rail { grid-column: auto !important; grid-row: auto !important; }   /* the bottom-row grid placement must not follow them into the rail */
.qd-rail .ap-in-rail.ap-pos-p .ap-posrow { grid-template-columns: minmax(0, 1fr); gap: 2px; } .qd-rail .ap-in-rail.ap-pos-p .ap-posrow a { border-left: 0; padding: 3px 0; }

/* Accounts reference: market context belongs beside the shared submenu tabs. */
:scope.ap #quantos-subnav{align-items:center;gap:3px}
:scope.ap #quantos-subnav .qd-top.ap-menu-market{margin:0 0 0 auto!important;padding:0 4px!important;gap:10px;background:transparent!important;border:0!important;box-shadow:none!important;border-radius:0!important;min-width:310px;flex:1 0 310px;max-width:780px;height:32px;position:static}
:scope.ap .ap-menu-market .ap-ttape{order:2;min-width:0;flex:1}
:scope.ap .ap-menu-market .ap-conn{order:1;font-size:10px}
:scope.ap .ap-menu-market .ap-clock{order:3;font-size:10px}
:scope.ap .ap-menu-market .ap-tq{padding:0 7px;font-size:10px;gap:4px}
:scope.ap .ap-menu-market .ap-tq em{font-size:10px}
:scope.ap .qd-tr .qd-search{display:flex;align-items:center;max-width:210px;min-width:100px;margin:0}
:scope.ap .qd-tr .qd-search input{width:100%;min-width:0;font:inherit}
:scope.ap .ap-under{display:grid;grid-template-columns:minmax(0,1.6fr) minmax(0,1fr);gap:10px}
:scope.ap .ap-under>.ap-acct-p,:scope.ap .ap-under>.ap-pos-p{grid-column:auto;grid-row:auto}
:scope.ap .wrap{padding-top:10px}
@media(max-width:1100px){:scope.ap .ap-menu-market .ap-clock{display:none}:scope.ap .ap-under{grid-template-columns:1fr}}

@media(min-width:701px) and (max-width:1500px){:scope.ap #stats{grid-template-columns:repeat(3,minmax(0,1fr))!important}:scope.ap #stats .card.ap-kpi{min-width:0;padding:12px!important;min-height:130px;column-gap:8px}:scope.ap #stats .card.ap-kpi>.ap-badge{width:32px;height:32px}:scope.ap #stats .card.ap-kpi>.val{font-size:19px;white-space:normal;overflow-wrap:anywhere}:scope.ap #stats .card.ap-has-ring>.ap-ring{width:44px;height:44px}}

:scope.ap #quantos-subnav .qd-top.ap-menu-market{max-width:none}
:scope.ap .ap-menu-market .ap-ttape{overflow-x:auto;scrollbar-width:thin}
:scope.ap .ap-menu-market .ap-tq{flex:none}
@media(max-width:1500px){:scope.ap .ap-menu-market .ap-clock{display:none}}

.ap-account-tools{display:flex;align-items:center;justify-content:flex-end;gap:10px;margin:0 0 10px;min-width:0;overflow-x:auto;padding:2px 0}
.ap-account-tools>*{flex:none}
.ap-account-tools .qd-search{display:flex;align-items:center;width:235px;margin:0}
.ap-account-tools .qd-search input{width:100%;min-width:0;font:inherit}
.ap-account-tools button{white-space:nowrap}

:scope.ap #quantos-subnav .qd-top.ap-menu-market{align-self:center;align-items:center}
:scope.ap .ap-menu-market .ap-ttape,:scope.ap .ap-menu-market .ap-tq{align-items:center}

.ap-menu-tools{display:flex;align-items:center;gap:8px;flex:none;margin-left:8px}
.ap-menu-tools .qd-search{display:flex;align-items:center;width:180px;margin:0}
.ap-menu-tools .qd-search input{box-sizing:border-box;width:100%;min-width:0;font:inherit}
.ap-menu-tools .qaw-cust{position:static!important;width:auto!important;height:auto!important;clip:auto!important;overflow:visible!important;white-space:nowrap}

:scope.ap #quantos-subnav .qd-top.ap-menu-market{min-width:130px;flex:1 1 300px}
@media(max-width:1400px){.ap-menu-tools .qd-search{width:150px}.ap-menu-tools{gap:6px}}

.ap-menu-tools .qd-search{width:130px}
@media(max-width:1400px){.ap-menu-tools .qd-search{width:115px}}

:scope.ap .ap-menu-tools .ap-icon-tool{display:inline-flex!important;align-items:center;justify-content:center;box-sizing:border-box;width:32px!important;min-width:32px;height:32px!important;padding:6px!important;flex:none;border-radius:5px}

:scope.ap .ap-menu-tools .qd-search{min-width:0!important;max-width:130px;flex:0 0 130px}
@media(max-width:1400px){:scope.ap .ap-menu-tools .qd-search{width:115px;max-width:115px;flex-basis:115px}}

:scope.ap #quantos-subnav,:scope.ap .ap-menu-market .ap-ttape{scrollbar-width:none}
:scope.ap #quantos-subnav::-webkit-scrollbar,:scope.ap .ap-menu-market .ap-ttape::-webkit-scrollbar{display:none}
:scope.ap .ap-menu-tools .ap-icon-tool svg{display:block;width:17px;height:17px;flex:none}
/* Shared model opt-in: retain the Accounts adapter while inheriting the common radius token. */
:scope.ap .q-design-model{--ap-radius:var(--q-model-radius,6px)}

/* Complete the shared model adapter without replacing Accounts data/control owners. */
:scope.ap .q-design-model #head h1{font:600 18px/1.3 var(--mm-display)}
:scope.ap .q-design-model :is(.qd-card,.ap-card,.qw){border-radius:var(--q-model-radius)!important}
:scope.ap .q-design-model :is(.ph,.q-panel-head,.qd-h){padding:6px 9px!important;font:600 12px/1.4 var(--mm-text)}
:scope.ap .q-design-model :is(table,input,select,textarea,button){font-family:var(--mm-text)}
:scope.ap .q-design-model :is(.sub,.q-note,.qd-empty){font:400 12px/1.45 var(--mm-text)}
@media(max-width:700px){
 :scope.ap .q-design-model{min-width:0;max-width:100%;box-sizing:border-box}
 :scope.ap .q-design-model :is(.qd-main,.qd-rail,.qd-titlebar,.qd-tl,.qd-tr,.ap-period){min-width:0;max-width:100%}
 :scope.ap .q-design-model #stats{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 :scope.ap .q-design-model #stats .card{min-width:0;min-height:0!important;padding:9px!important}
 :scope.ap .q-design-model #stats .val{font-size:18px;overflow-wrap:anywhere;white-space:normal}
 :scope.ap .q-design-model :is(.table-wrap,.qd-table-wrap){max-width:100%;overflow-x:auto}
 :scope.ap .q-design-model .ap-period{margin-left:0;gap:6px}
 :scope.ap .q-design-model .ap-range{max-width:100%;box-sizing:border-box;padding:4px}
}

:scope.ap .q-design-model :is(button,input,select,textarea){font-size:12px}
@media(max-width:480px){
 :scope.ap .q-design-model #stats{grid-template-columns:minmax(0,1fr)!important}
 :scope.ap .q-design-model #stats .card.ap-kpi{grid-template-columns:32px minmax(0,1fr)!important;column-gap:8px;min-height:0!important}
 :scope.ap .q-design-model #stats .card.ap-kpi>.ap-badge{width:28px;height:28px}
 :scope.ap .q-design-model #stats .card.ap-kpi>.val{white-space:nowrap;font-size:20px}
 :scope.ap .q-design-model #stats .card .ap-kpi-bottom{min-width:0;flex-wrap:wrap}
}

/* Retained layout/engine compatibility: /quantos-trade-chart-new.css */
.qtc-layout{display:grid;grid-template-columns:minmax(0,3fr) minmax(210px,1fr);gap:10px;width:100%;align-items:stretch}
.qtc{border:1px solid var(--line);background:var(--panel);border-radius:7px;overflow:hidden;min-width:0}
.qtc-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:9px 11px;border-bottom:1px solid var(--line)}
.qtc-head h2{margin:0;font:700 var(--fs-title,16px)/1.3 var(--mm-display)}
.qtc-date,.qtc-state{color:var(--mut);font:600 var(--fs-label,11px)/1.3 var(--mm-mono)}.qtc-date{margin-left:4px}.qtc-state{margin-left:auto}
.qtc button,.qtc select{min-height:34px;border:1px solid var(--line);border-radius:5px;background:var(--panel2);color:var(--txt);padding:6px 9px;font:inherit;font-size:var(--fs-body,13px)}.qtc button{cursor:pointer;font-weight:700}.qtc button:disabled{opacity:.45;cursor:not-allowed}
.qtc-chart{height:500px;position:relative}.qtc-empty{height:260px;display:grid;place-items:center;text-align:center;color:var(--mut);font-size:var(--fs-body,13px);padding:20px}
.qtc-side{border:1px solid var(--line);border-radius:7px;background:var(--panel);padding:12px;min-width:0;display:flex;flex-direction:column;gap:10px}
.qtc-side h3{margin:0;font:700 var(--fs-title,16px)/1.3 var(--mm-display)}
.qtc-side .qtc-side-row{border-top:1px solid var(--line);padding-top:9px;display:grid;gap:3px}
.qtc-side b{font-size:var(--fs-label,11px);color:var(--mut);letter-spacing:.03em}.qtc-side span{font-size:var(--fs-body,13px);color:var(--txt);line-height:1.45}
.trade-bubble{position:absolute;z-index:20;width:280px;max-width:calc(100% - 24px);padding:11px 12px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--txt);box-shadow:0 8px 24px rgba(0,0,0,.22);pointer-events:none;font-size:12px;line-height:1.5;font-variant-numeric:tabular-nums;opacity:0;transform:translateY(4px);transition:opacity .16s ease,transform .16s ease}.trade-bubble.visible{opacity:1;transform:translateY(0)}.trade-bubble::after{content:"";position:absolute;left:18px;bottom:-7px;width:12px;height:12px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--panel);transform:rotate(45deg)}.trade-bubble .tb-time{margin-bottom:5px;color:var(--mut);font-size:11px;font-weight:700}.trade-bubble .tb-row{display:grid;grid-template-columns:82px minmax(0,1fr);gap:8px}.trade-bubble .tb-row span:first-child{color:var(--dim)}.trade-bubble .tb-row b{text-align:right;font-weight:700}.trade-bubble .tb-buy{color:var(--green)}.trade-bubble .tb-sell{color:var(--red)}.trade-bubble .tb-cash{margin-top:4px;padding-top:4px;border-top:1px solid var(--line)}
.qtc-legend{display:flex;gap:12px;flex-wrap:wrap;padding:8px 11px;border-top:1px solid var(--line);color:var(--mut);font-size:var(--fs-label,11px)}.qtc-legend i{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:4px}.qtc-entry{background:var(--green)}.qtc-exit{background:var(--red)}
.qtc-selected td{background:color-mix(in srgb,var(--gold) 14%,var(--panel))!important}.qan-chart-slot{grid-column:1/-1;width:100%;max-width:100%;min-width:0;overflow:hidden}
@media(max-width:1050px){.qtc-layout{grid-template-columns:1fr}.qtc-side{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.qtc-side h3{grid-column:1/-1}}
@media(max-width:700px){.qtc-chart{height:360px}.qtc-state{width:100%;margin-left:0}.qtc-side{grid-template-columns:1fr}}

/* Existing inline layout compatibility. */

/* Sentence case at the point of DISPLAY only. The phase and bucket strings are
   data — they are compared, bucketed and stored — so capitalising them at source
   would change keys that outcome history is already filed under. ::first-letter
   rather than text-transform:capitalize, because capitalize would render
   "into the close" as "Into The Close" — which IS the register chosen for these
   panels, so capitalize is correct here. Sentence case still governs prose. */
.cap1{ display:inline-block; text-transform:capitalize }

  #eqChart{ height:230px; position:relative } #eqChart canvas{ width:100%; height:100%; display:block }
  #barChart{ height:190px; position:relative } #barChart canvas{ width:100%; height:100%; display:block }
  #txHead th[data-k]{ cursor:pointer; user-select:none; white-space:nowrap }
  #txHead th[data-k]:hover{ color:var(--txt) }
  #txHead th.sorted{ color:var(--txt) }
  .txscope{ display:flex; align-items:baseline; gap:10px; flex-wrap:wrap; margin:0 0 12px;
    padding-bottom:10px; border-bottom:1px solid var(--line) }
  .txscope h3{ margin:0; font-size:17px; font-weight:700; letter-spacing:0 }
  .txscope .sub{ font-size:12px; color:var(--mut) }
  .ch-ov{ position:absolute; inset:0; pointer-events:none; z-index:2 }
  .ch-tip{ position:absolute; z-index:3; pointer-events:none; display:none; background:var(--panel);
    border:1px solid var(--line); border-radius:5px; padding:7px 9px; font-size:11px; line-height:1.6;
    color:var(--txt); box-shadow:0 8px 24px rgba(0,0,0,.35); white-space:nowrap; min-width:132px }
  .ch-tip b{ display:block; font-size:10px; color:var(--mut); text-transform:uppercase; letter-spacing:.4px; margin-bottom:4px }
  .ch-tip i{ font-style:normal; color:var(--mut); margin-right:14px }
  .ch-tip s{ text-decoration:none; float:right; font-variant-numeric:tabular-nums; font-weight:600 }
  .stag{ font-size:10px; font-weight:600; letter-spacing:.3px; padding:1px 5px; border-radius:3px;
    border:1px solid var(--line); color:var(--mut) }
  .stag.live{ color:var(--green); border-color:color-mix(in srgb, var(--green) 45%, transparent) }
  .stag.stored{ color:var(--accent); border-color:color-mix(in srgb, var(--accent) 45%, transparent) }
  .acct{ display:flex; align-items:center; gap:12px; padding:11px 14px; border-bottom:1px solid color-mix(in srgb, var(--line) 65%, transparent) }
  .acct .id{ font-weight:700; font-size:14px; letter-spacing:0 }
  .acct .sp{ margin-left:auto; text-align:right }
  .acct .net{ font-size:16px; font-weight:700; font-variant-numeric:tabular-nums }
  .acct .sub{ font-size:11px; color:var(--mut) }
  .dstrip{ display:flex; gap:2px; align-items:flex-end; height:44px; padding:0 2px }
  .dstrip i{ flex:1; border-radius:2px 2px 0 0; min-height:2px; display:block }
  .drow{ cursor:pointer }
  .drow.on{ background:color-mix(in srgb, var(--accent) 10%, transparent) }
  .rng{ display:flex; gap:6px; align-items:center }
  .rng input{ background:var(--panel); border:1px solid var(--line); border-radius:4px; color:var(--txt);
    font-size:12px; padding:6px 9px; font-family:inherit; outline:none }

  .tabs{ display:flex; gap:4px; border-bottom:1px solid var(--line); margin-bottom:15px }
  /* the import action is not a tab — keep it out of the tab styling */
  .tabs #importBtn{ align-self:center; margin-bottom:6px; border:1px solid var(--line);
    border-radius:4px; padding:6px 12px; background:var(--panel2); color:var(--txt);
    cursor:pointer; white-space:nowrap }
  .tabs #importBtn:hover{ border-color:var(--dim) }
  .tabs button{ background:transparent; border:none; border-bottom:2px solid transparent; color:var(--dim);
    font-size:13px; font-weight:500; padding:9px 15px; cursor:pointer; font-family:inherit }
  .tabs button:hover{ color:var(--txt) }
  .tabs button.on{ color:var(--accent); border-bottom-color:var(--accent) }
  .sec[hidden]{ display:none }
  .fbar{ display:flex; gap:6px; align-items:center; flex-wrap:wrap; margin-bottom:12px }
  .fbar input,.fbar select{ background:var(--panel); border:1px solid var(--line); border-radius:4px;
    color:var(--txt); font-size:12px; padding:6px 9px; font-family:inherit; outline:none }

  .mk{ display:grid; grid-template-columns:repeat(auto-fit,minmax(330px,1fr)); gap:12px; margin-bottom:15px }
  .mk article{ background:var(--panel); border:1px solid var(--line); border-left:3px solid var(--mut);
    border-radius:4px; padding:13px 15px }
  .mk article.high{ border-left-color:var(--red) } .mk article.med{ border-left-color:var(--gold) }
  .mk article.low{ border-left-color:var(--accent) }
  .mk .hd{ display:flex; align-items:center; gap:9px; margin-bottom:6px }
  .mk .hd b{ font-size:14px; font-weight:700 }
  .mk .hd .m{ margin-left:auto; font-size:13px; font-weight:700; font-variant-numeric:tabular-nums }
  .mk article.high .m{ color:var(--red) } .mk article.med .m{ color:var(--gold) } .mk article.low .m{ color:var(--accent) }
  .mk .dt{ font-size:14px; color:var(--dim); line-height:1.65 }
  .sev{ font-size:11px; font-weight:700; letter-spacing:0; padding:2px 6px; border-radius:4px; text-transform:uppercase }
  .sev.high{ background:color-mix(in srgb, var(--red) 16%, transparent); color:var(--red) }
  .sev.med{ background:color-mix(in srgb, var(--gold) 16%, transparent); color:var(--gold) }
  .sev.low{ background:color-mix(in srgb, var(--accent) 16%, transparent); color:var(--accent) }
  .rule{ display:flex; gap:12px; align-items:flex-start; padding:11px 0; border-bottom:1px solid color-mix(in srgb, var(--line) 65%, transparent) }
  .rule .n{ width:22px; height:22px; border-radius:3px; background:color-mix(in srgb, var(--accent) 15%, transparent); color:var(--accent);
    font-size:12px; font-weight:700; display:flex; align-items:center; justify-content:center; flex-shrink:0 }
  .rule .tx b{ font-size:14px; display:block; margin-bottom:2px }
  .rule .tx span{ font-size:13px; color:var(--dim); line-height:1.6 }

  .dbline{ display:flex; align-items:center; gap:10px; padding:8px 0; border-bottom:1px solid color-mix(in srgb, var(--line) 65%, transparent); font-size:13px }
  .dbline .k{ color:var(--dim); flex:0 0 150px }
  .dbline .v{ font-weight:500; font-variant-numeric:tabular-nums }
  .drop{ border:1.5px dashed var(--line); border-radius:4px; padding:18px; text-align:center; cursor:pointer;
    color:var(--dim); font-size:13px; transition:.15s }
  .drop:hover,.drop.over{ border-color:var(--accent); color:var(--accent); background:color-mix(in srgb, var(--accent) 5%, transparent) }

  .rg{ display:grid; grid-template-columns:repeat(3,1fr); gap:12px }
  @media(max-width:800px){ .rg{ grid-template-columns:1fr } }
  .rg .b{ border:1px solid var(--line); border-radius:4px; padding:13px 15px; background:var(--panel2) }
  .rg .b .t{ font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.5px; margin-bottom:7px }
  .rg .b.bull .t{ color:var(--green) } .rg .b.bear .t{ color:var(--red) } .rg .b.flat .t{ color:var(--gold) }
  .rg .b .n{ font-size:20px; font-weight:700; font-variant-numeric:tabular-nums }
  .rg .b .s{ font-size:12px; color:var(--dim); margin-top:3px; line-height:1.6 }
  #tradeChart{ height:300px; position:relative } #tradeChart canvas{ width:100%; height:100%; display:block }

  .verdict{ font-size:11px; font-weight:700; padding:2px 7px; border-radius:3px; white-space:nowrap }
  .verdict.avoid{ background:color-mix(in srgb, var(--red) 16%, transparent); color:var(--red) }
  .verdict.ok{ background:color-mix(in srgb, var(--green) 16%, transparent); color:var(--green) }
  .verdict.care{ background:color-mix(in srgb, var(--gold) 16%, transparent); color:var(--gold) }
  .qd-intel-head{ display:flex; align-items:flex-start; gap:12px; flex-wrap:wrap; margin-bottom:12px }
  .qd-intel-head .copy{ flex:1 1 420px }
  .qd-intel-head .copy b{ display:block; font-size:16px; margin-bottom:4px }
  .qd-intel-head .copy span{ color:var(--dim); font-size:12px; line-height:1.55 }
  .qd-intel-actions{ display:flex; gap:7px; flex-wrap:wrap; margin-left:auto }
  .qd-intel-actions a{ border:1px solid var(--line); border-radius:4px; color:var(--txt); padding:7px 10px;
    text-decoration:none; font-size:11px; font-weight:700; white-space:nowrap }
  .qd-intel-actions a:hover{ border-color:var(--accent); color:var(--accent) }
  .qd-layers{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; margin-top:12px }
  .qd-layer{ border:1px solid var(--line); border-radius:5px; background:var(--panel2); padding:11px 12px }
  .qd-layer .k{ color:var(--mut); font-size:9px; font-weight:700; letter-spacing:.75px; text-transform:uppercase }
  .qd-layer-top{ display:flex; align-items:center; gap:7px }
  .qd-layer-top .k{ flex:1 }
  .qd-info{ width:20px; height:20px; border:1px solid var(--line); border-radius:50%; background:transparent;
    color:var(--dim); font:700 11px/18px inherit; padding:0; cursor:pointer; text-align:center }
  .qd-info:hover,.qd-info[aria-expanded="true"]{ color:var(--accent); border-color:var(--accent);
    background:color-mix(in srgb,var(--accent) 8%,transparent) }
  .qd-info:focus-visible{ outline:2px solid var(--accent); outline-offset:2px }
  .qd-section-info{ margin-left:auto; flex:0 0 20px }
  .qd-section-help{ margin:0; border-top:1px solid var(--line); padding:10px 15px 12px!important;
    background:color-mix(in srgb,var(--accent) 3%,transparent) }
  #qdTabBody.qd-flow{ display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); gap:12px; align-items:stretch }
  #qdTabBody.qd-flow > .panel{ grid-column:1/-1; margin:0; min-width:0; height:100% }
  #qdTabBody.qd-flow > .qd-half-left{ grid-column:1/7 }
  #qdTabBody.qd-flow > .qd-half-right{ grid-column:7/13 }
  .qd-flow-band{ grid-column:1/-1; display:flex; align-items:baseline; gap:9px; margin:6px 0 -3px;
    padding-bottom:6px; border-bottom:1px solid var(--line) }
  .qd-flow-band b{ color:var(--txt); font-size:12px; letter-spacing:.35px; text-transform:uppercase }
  .qd-flow-band span{ color:var(--mut); font-size:10px }
  @media(max-width:980px){
    #qdTabBody.qd-flow > .qd-half-left,#qdTabBody.qd-flow > .qd-half-right{ grid-column:1/-1 }
  }
  .qd-layer b{ display:block; margin:5px 0 3px; font-size:13px }
  .qd-layer span{ color:var(--dim); font-size:11px; line-height:1.45 }
  .qd-more{ margin-top:9px; padding-top:8px; border-top:1px solid var(--line); color:var(--dim);
    font-size:11px; line-height:1.55 }
  .qd-more[hidden]{ display:none }
  .qd-layer.good{ border-top:2px solid var(--green) }.qd-layer.risk{ border-top:2px solid var(--red) }
  .qd-layer.info{ border-top:2px solid var(--accent) }.qd-layer.care{ border-top:2px solid var(--gold) }
  .qd-guardrails{ display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; margin-top:10px }
  .qd-guardrail{ border-left:3px solid var(--line); background:var(--panel2); border-radius:4px; padding:9px 11px }
  .qd-guardrail.good{ border-left-color:var(--green) }.qd-guardrail.risk{ border-left-color:var(--red) }
  .qd-guardrail .v{ display:block; font-size:15px; font-weight:700; font-variant-numeric:tabular-nums }
  .qd-guardrail .s{ display:block; color:var(--dim); font-size:10px; line-height:1.4; margin-top:2px }
  @media(max-width:900px){.qd-layers,.qd-guardrails{grid-template-columns:repeat(2,minmax(0,1fr))}}
  @media(max-width:560px){.qd-layers,.qd-guardrails{grid-template-columns:1fr}.qd-intel-actions{margin-left:0}}
  .em{ display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:11px }
  .em div{ border:1px solid var(--line); border-radius:4px; padding:12px 14px; background:var(--panel2) }
  .em .l{ font-size:11px; text-transform:uppercase; letter-spacing:.5px; color:var(--mut); font-weight:700 }
  .em .v{ font-size:20px; font-weight:700; margin-top:3px; font-variant-numeric:tabular-nums }
  .em .s{ font-size:12px; color:var(--dim); margin-top:2px }
  .lessonCta{ display:flex; align-items:center; gap:14px; padding:14px 16px; border:1px solid color-mix(in srgb, var(--accent) 35%, transparent);
    background:color-mix(in srgb, var(--accent) 7%, transparent); border-radius:4px; margin-bottom:15px }
  .lessonCta .ic{ font-size:22px } .lessonCta b{ font-size:14px; display:block; margin-bottom:2px }
  .lessonCta span{ font-size:13px; color:var(--dim); line-height:1.6 }
  .lessonCta a{ margin-left:auto; background:var(--accent); color:color-mix(in srgb, var(--panel) 88%, var(--bg)); font-weight:700; font-size:13px;
    padding:8px 15px; border-radius:4px; text-decoration:none; white-space:nowrap }

  .lwrap{ max-width:1180px; margin:0; text-align:left }
  #lessonBody .toc{ position:sticky; top:0; z-index:5; background:var(--bg); padding:10px 0 12px; border-bottom:1px solid var(--line);
    display:flex; gap:6px; flex-wrap:wrap; margin-bottom:20px }
  .toc a{ font-size:12px; font-weight:700; color:var(--dim); text-decoration:none; padding:5px 10px;
    border:1px solid var(--line); border-radius:4px }
  .toc a:hover{ color:var(--accent); border-color:var(--accent) }
#lessonBody h2{margin:34px 0 6px; scroll-margin-top:70px}
#lessonBody h2 .num{ color:var(--accent); margin-right:8px }
#lessonBody h3{margin:20px 0 6px; color:var(--txt)}
#lessonBody p{ font-size:14px; line-height:1.75; color:var(--txt); margin:9px 0 }
#lessonBody p.lead{ color:var(--dim); font-size:15px }
#lessonBody ul,ol{ margin:9px 0 9px 20px } li{ font-size:14px; line-height:1.75; margin:5px 0 }
  .box{ border:1px solid var(--line); border-radius:4px; padding:15px 18px; margin:15px 0; background:var(--panel) }
  .box.you{ border-left:3px solid var(--accent) }
  .box.warn{ border-left:3px solid var(--red) }
  .box.good{ border-left:3px solid var(--green) }
  .box .bt{ font-size:12px; font-weight:700; text-transform:uppercase; letter-spacing:.5px; margin-bottom:8px }
  .box.you .bt{ color:var(--accent) } .box.warn .bt{ color:var(--red) } .box.good .bt{ color:var(--green) }
  .kt{ display:grid; grid-template-columns:repeat(auto-fit,minmax(160px,1fr)); gap:10px; margin:14px 0 }
  .kt div{ border:1px solid var(--line); border-radius:4px; padding:11px 13px; background:var(--panel2) }
  .kt .l{ font-size:11px; text-transform:uppercase; letter-spacing:.5px; color:var(--mut); font-weight:700 }
  .kt .v{ font-size:20px; font-weight:700; margin-top:3px; font-variant-numeric:tabular-nums }
#lessonBody table.g{ width:100%; border-collapse:collapse; margin:13px 0; font-size:14px }
#lessonBody table.g th{ font-size:11px; padding:8px 10px } table.g td{ padding:8px 10px }
#lessonBody code{ background:var(--panel2); padding:1px 5px; border-radius:4px; font-size:13px }
  .rulecard{ counter-reset:r }
  .rulecard .r{ display:flex; gap:13px; padding:13px 0; border-bottom:1px solid color-mix(in srgb, var(--line) 75%, transparent) }
  .rulecard .r .n{ flex:0 0 26px; height:26px; border-radius:4px; background:var(--accent); color:color-mix(in srgb, var(--panel) 88%, var(--bg));
    font-weight:700; font-size:13px; display:flex; align-items:center; justify-content:center }
  .rulecard .r b{ display:block; font-size:14px; margin-bottom:3px }
  .rulecard .r span{ font-size:13px; color:var(--dim); line-height:1.65 }
  .src{ font-size:13px; color:var(--mut); line-height:1.9 }
  .src a{ color:var(--accent) }

  .fig{ border:1px solid var(--line); border-radius:4px; background:var(--panel); padding:14px 16px; margin:16px 0 }
  .fig svg{ width:100%; height:auto; display:block; max-width:920px }
  .fig figcaption{ font-size:13px; color:var(--dim); line-height:1.65; margin-top:10px }
  .fig figcaption b{ color:var(--txt) }
  .figrow{ display:grid; grid-template-columns:1fr 1fr; gap:14px }
  @media(max-width:900px){ .figrow{ grid-template-columns:1fr } }
  .sv-up{ fill:var(--green) } .sv-dn{ fill:var(--red) }
  .sv-line{ stroke:var(--accent); fill:none; stroke-width:2 }
  .sv-ma{ stroke:var(--gold); fill:none; stroke-width:1.6 }
  .sv-lvl{ stroke:var(--dim); stroke-dasharray:5 4; stroke-width:1.4 }
  .sv-box{ fill:none; stroke:var(--red); stroke-width:1.6 }
  .sv-t{ font-size:12px; font-weight:500; fill:var(--dim) }
  .sv-t2{ font-size:11px; fill:var(--mut) }
  .sv-grid{ stroke:var(--line); stroke-width:1 }

  .lgrid{ display:grid; grid-template-columns:212px minmax(0,1fr); gap:26px; align-items:start }
  @media(max-width:900px){ .lgrid{ grid-template-columns:1fr } }
  .subnav{ position:sticky; top:12px; border:1px solid var(--line); border-radius:4px; background:var(--panel);
    padding:10px 8px; display:flex; flex-direction:column; gap:1px }
  .subnav .h{ font-size:11px; font-weight:700; text-transform:uppercase; letter-spacing:.5px; color:var(--mut);
    padding:5px 10px 7px }
  .subnav a{ font-size:13px; font-weight:500; color:var(--dim); text-decoration:none; padding:6px 10px;
    border-radius:4px; border-left:2px solid transparent; line-height:1.4 }
  .subnav a:hover{ background:var(--panel2); color:var(--txt) }
  .subnav a.on{ color:var(--accent); border-left-color:var(--accent); background:color-mix(in srgb, var(--accent) 8%, transparent) }
  .subnav a i{ font-style:normal; color:var(--mut); font-weight:700; margin-right:6px; font-size:12px }
  @media(max-width:900px){ .subnav{ position:static; flex-direction:row; flex-wrap:wrap } .subnav .h{ width:100% } }

  #lessonBody{ max-width:1180px; margin:24px 0 0; padding-top:20px; border-top:1px solid var(--line) }
  #lessonBody .toc{ top:0 }
  #lessonBody h2{scroll-margin-top:10px}

}

/* Trades layout compatibility. Components are owned above; behaviour stays in existing JS. */
@scope (:root:has([data-q-page="trades"])) {
/* Retained layout/engine compatibility: todays-trades.css */
*{box-sizing:border-box}body{margin:0;background:var(--bg);color:var(--text);font:12px var(--mm-text,system-ui,sans-serif)}body.site-light{--bg:#f4f7fb;--panel:#fff;--panel2:#f7f9fc;--line:#dce3ec;--text:#172334;--dim:#617086}.tt-wrap{max-width:1550px;margin:auto;padding:18px}header{display:flex;justify-content:space-between;align-items:end;margin-bottom:12px}h1{margin:2px 0;font-size:25px}.eyebrow{color:var(--cyan);font-size:9px;letter-spacing:1px}p{margin:0;color:var(--dim)}.controls{display:flex;gap:6px}.controls input,.controls button{border:1px solid var(--line);background:var(--panel);color:var(--text);padding:7px 10px;border-radius:4px}.summary{display:grid;grid-template-columns:repeat(6,1fr);gap:7px;margin-bottom:7px}.stat,.panel{border:1px solid var(--line);background:var(--panel);border-radius:5px}.stat{padding:9px}.stat span{display:block;color:var(--dim);font-size:9px}.stat b{display:block;margin-top:3px;font-size:18px}.up{color:var(--green)!important}.down{color:var(--red)!important}.chart-panel{margin-bottom:7px}.ph{display:flex;justify-content:space-between;padding:8px 10px;border-bottom:1px solid var(--line)}.ph span{color:var(--dim);font-size:9px}#chart{height:440px}.layout{display:grid;grid-template-columns:minmax(0,2.2fr) minmax(300px,.8fr);gap:7px}.table-wrap{max-height:610px;overflow:auto}table{width:100%;border-collapse:collapse;font-variant-numeric:tabular-nums}th,td{padding:6px 7px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}th{position:sticky;top:0;background:var(--panel2);color:var(--dim);font-size:9px}th:nth-child(3),td:nth-child(3),th:last-child,td:last-child{text-align:left}.flag{display:inline-block;margin:1px 2px;padding:2px 4px;border-radius:3px;background:var(--panel2);color:var(--dim);font-size:8px}.mistakes{padding:8px}.mistake{padding:8px;border-bottom:1px solid var(--line)}.mistake b{display:flex;justify-content:space-between}.mistake p{margin-top:4px;line-height:1.45}.disclaimer{padding:10px 2px;font-size:9px}@media(max-width:900px){.summary{grid-template-columns:repeat(2,1fr)}.layout{grid-template-columns:1fr}#chart{height:350px}}

/* Retained layout/engine compatibility: todays-trades-flags.css */
/* Readable review flags without changing the page's base layout. */
th:last-child {
  min-width: 210px;
  letter-spacing: .35px;
}

td:last-child {
  min-width: 210px;
  white-space: normal;
  line-height: 1.5;
}

.flag {
  display: inline-flex;
  align-items: center;
  margin: 2px 3px 2px 0;
  padding: 4px 8px;
  border: 1px solid color-mix(in srgb, var(--dim) 22%, transparent);
  border-radius: 12px;
  background: color-mix(in srgb, var(--panel2) 86%, var(--dim) 14%);
  color: var(--text);
  font-family: var(--mm-text, system-ui, sans-serif);
  font-size: 10px;
  font-weight: 600;
  letter-spacing: .08px;
  line-height: 1.3;
  white-space: normal;
}

/* Retained layout/engine compatibility: todays-trades-layout.css */
/* Page-specific layout only. Palette, typefaces, panels, tables and controls
   come from mm-shell.js + mm-theme.css, the central QuantOS system. */
body { font-size: 14px; line-height: 1.5; }
.tt-wrap { width: 100%; max-width: none; margin: 0; padding: 16px 24px 64px; }
header { gap: 24px; margin-bottom: 16px; }
h1 { margin: 4px 0; font-size: var(--h-page,18px); line-height: 1.2; font-weight: var(--h-page-w,600); }
.eyebrow { font-size: 11px; font-weight: 700; letter-spacing: .08em; }
.controls input,.controls button { min-height: 40px; padding: 0 14px; font-size: 12px; font-weight: 600; }
.controls input:focus-visible,.controls button:focus-visible { outline: 3px solid color-mix(in srgb,var(--color-accent) 28%,transparent); outline-offset: 2px; }
.summary { gap: 8px; margin-bottom: 8px; }
.stat { min-height: 76px; padding: 12px; }
.panel { border-radius: var(--radius, 13px); margin-bottom: 15px; }
.stat { border-radius: 4px; }
.stat span { font-size: 11px; }
.stat b { font-size: 21px; }
.ph { min-height: 44px; padding: 10px 12px; align-items: center; }
.ph b { font-size: var(--h-panel,12px); font-weight: var(--h-panel-w,600); }
.ph span { font-size: 11px; }
.chart-tools { display:flex; align-items:center; gap:10px; margin-left:auto; }
.chart-tools label { color:var(--mut); font-size:10px; font-weight:700; letter-spacing:.05em; }
.chart-tools select,.chart-tools button { min-height:32px; padding:0 10px; border:1px solid var(--line); border-radius:4px; background:var(--panel2); color:var(--txt); font:600 12px var(--mm-text); }
.chart-tools button { cursor:pointer; color:var(--accent); }
.chart-tools button:hover { border-color:var(--accent); }
.layout { gap: 8px; }
.market-context { min-width:190px; display:grid; gap:2px; line-height:1.3; white-space:normal; }
.market-context b { color:var(--txt); font-size:12px; }
.market-context span { color:var(--muted); font-size:11px; }
.market-context small { color:var(--muted); opacity:.72; font-size:10px; }
#chart { height: 560px; position: relative; }
.trade-bubble { position:absolute; z-index:20; width:280px; max-width:calc(100% - 24px); padding:11px 12px; border:1px solid var(--line); border-radius:6px; background:var(--panel); color:var(--txt); box-shadow:0 8px 24px rgba(0,0,0,.22); pointer-events:none; font-size:12px; line-height:1.5; font-variant-numeric:tabular-nums; opacity:0; transform:translateY(4px); transition:opacity .16s ease,transform .16s ease; }
.trade-bubble.visible { opacity:1; transform:translateY(0); }
.trade-bubble::after { content:""; position:absolute; left:18px; bottom:-7px; width:12px; height:12px; border-right:1px solid var(--line); border-bottom:1px solid var(--line); background:var(--panel); transform:rotate(45deg); }
.trade-bubble .tb-time { margin-bottom:5px; color:var(--mut); font-size:11px; font-weight:700; }
.trade-bubble .tb-row { display:grid; grid-template-columns:82px minmax(0,1fr); gap:8px; }
.trade-bubble .tb-row span:first-child { color:var(--dim); }
.trade-bubble .tb-row b { text-align:right; font-weight:700; }
.trade-bubble .tb-buy { color:var(--green); }
.trade-bubble .tb-sell { color:var(--red); }
.trade-bubble .tb-cash { margin-top:4px; padding-top:4px; border-top:1px solid var(--line); }
.table-wrap { scrollbar-gutter: stable; }
th { height: 40px; padding: 9px 8px; font-size: 11px; font-weight: 700; letter-spacing: .035em; }
td { min-height: 40px; padding: 9px 8px; font-size: 12px; vertical-align: middle; }
tbody tr:hover { background: color-mix(in srgb,var(--color-accent) 5%,transparent); }
tbody tr { cursor: pointer; }
tbody tr.selected { background: color-mix(in srgb,var(--color-accent) 12%,transparent); box-shadow: inset 3px 0 0 var(--color-accent); }
.flag { padding: 5px 9px; border-radius: 999px; font-size: 11.5px; font-weight: 600; line-height: 1.4; }
.mistake { padding: 12px 10px; }
.mistake b { font-size: 13px; }
.mistake p { font-size: 12px; line-height: 1.6; }
.disclaimer { font-family:var(--mm-text); font-size:12px; font-weight:400; letter-spacing:normal; line-height:1.55; }
@media(max-width:900px){.tt-wrap{padding:16px}header{align-items:flex-start;flex-direction:column}.controls{width:100%}.controls input{flex:1}.chart-tools>span{display:none}#chart{height:440px}th,td{font-size:12px}}

/* Keep the familiar complete box beside the trade; never send it to a corner. */
.trade-bubble { width:240px; padding:8px 10px; pointer-events:auto; font-family:var(--mm-text); line-height:1.4; }
.trade-bubble::after { content:none; }
.trade-bubble .tb-row { grid-template-columns:72px minmax(0,1fr); gap:6px; }
.trade-bubble .tb-row b { overflow-wrap:anywhere; font-weight:600; }
.trade-bubble.trade-bubble-docked { position:relative; left:auto; top:auto; margin:8px; max-width:calc(100% - 16px); }

/* Translucent background only: keep all trade text fully readable. */
.trade-bubble { background:color-mix(in srgb, var(--panel) 78%, transparent); box-shadow:0 4px 14px rgba(0,0,0,.12); }

.trade-bubble { box-sizing:border-box; overflow-y:auto; overscroll-behavior:contain; scrollbar-width:thin; }

.trade-bubble .tb-shared { display:grid; gap:4px; padding-bottom:6px; margin-bottom:6px; border-bottom:1px solid var(--line); font-size:12px; }
.trade-bubble .tb-shared select { font:inherit; color:var(--txt); background:var(--panel); border:1px solid var(--line); border-radius:4px; padding:3px 5px; width:100%; }

/* Owner correction: original width, full content height, translucent surface. */
.trade-bubble { width:280px; height:auto; max-height:none; padding:11px 12px; line-height:1.5; background:color-mix(in srgb, var(--panel) 55%, transparent); overflow:visible; }
.trade-bubble .tb-row { grid-template-columns:82px minmax(0,1fr); gap:8px; }
.trade-bubble .tb-shared select { background:color-mix(in srgb, var(--panel) 55%, transparent); }

/* Final placement: always inside plot, translucent background, readable text. */
.trade-bubble { background:color-mix(in srgb, var(--panel) 30%, transparent); overflow-y:auto; box-shadow:0 2px 8px rgba(0,0,0,.08); }
.trade-bubble .tb-shared select { background:color-mix(in srgb, var(--panel) 30%, transparent); }

/* Compact grouped-trade evidence. */
.trade-review-table { table-layout:fixed; min-width:1280px; }
.trade-review-table .tc-number { width:34px; }
.trade-review-table .tc-time { width:80px; }
.trade-review-table .tc-contract { width:118px; }
.trade-review-table .tc-qty { width:40px; }
.trade-review-table .tc-entry,.trade-review-table .tc-exit { width:58px; }
.trade-review-table .tc-held { width:48px; }
.trade-review-table .tc-pnl { width:86px; }
.trade-review-table .tc-direction { width:100px; }
.trade-review-table .tc-context { width:auto; }
.trade-review-table .tc-after { width:100px; }
.trade-review-table .tc-flags { width:180px; }
.trade-review-table th { white-space:normal; line-height:1.3; letter-spacing:0; }
.trade-review-table th,.trade-review-table td { padding:7px 6px; }
.trade-review-table td { vertical-align:top; }
.trade-review-table .trade-time { display:block; line-height:1.5; }
.trade-review-table th:nth-child(10),.trade-review-table td:nth-child(10) { text-align:left; }
.trade-review-table th:last-child,.trade-review-table td:last-child { min-width:0; white-space:normal; }
.trade-review-table .flag { max-width:100%; padding:3px 6px; margin:0 3px 4px 0; font-size:12px; line-height:1.3; border-radius:6px; overflow-wrap:anywhere; }
.trade-review-table .market-context { min-width:0; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:3px 12px; line-height:1.4; text-align:left; }
.trade-review-table .market-context b,.trade-review-table .market-context small { grid-column:1/-1; }
.trade-review-table .market-context b,.trade-review-table .market-context span,.trade-review-table .market-context small { font:400 12px/1.4 var(--mm-text); color:var(--dim); opacity:1; }
.trade-review-table .market-context b { font-weight:600; color:var(--txt); }

.trade-review-table .market-context b { grid-column:auto; }
.trade-review-table .market-context > span:nth-child(3) { grid-column:1/-1; }

/* Retained layout/engine compatibility: todays-trades-v2-journal.css */
.tz-journal{margin:0 0 12px;padding:14px;display:grid;gap:12px}
.tz-head{display:flex;align-items:center;justify-content:space-between;gap:12px}.tz-head span{color:var(--muted);font-size:12px}
.tz-grid{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:10px}.tz-field{display:grid;gap:5px}.tz-field label,.tz-notes label{font-size:10px;font-weight:700;letter-spacing:.07em;color:var(--muted);text-transform:uppercase}
.tz-field select,.tz-notes textarea{width:100%;border:1px solid var(--line);border-radius:7px;background:var(--panel);color:var(--txt);padding:8px;font:inherit}.tz-notes textarea{min-height:72px;resize:vertical}
.tz-tags{display:flex;flex-wrap:wrap;gap:6px}.tz-tags button{border:1px solid var(--line);border-radius:999px;background:var(--panel);color:var(--muted);padding:5px 9px;font-size:11px;cursor:pointer}.tz-tags button.on{border-color:var(--accent);color:var(--accent)}
.tz-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:8px}.tz-metric{padding:9px 10px;border:1px solid var(--line);border-radius:8px;background:var(--bg)}.tz-metric span{display:block;color:var(--muted);font-size:10px;text-transform:uppercase}.tz-metric b{font-size:14px}.tz-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px}.tz-actions small{margin-right:auto;color:var(--muted)}.tz-actions button{border:1px solid var(--accent);border-radius:7px;background:var(--accent);color:#fff;padding:8px 14px;font-weight:700;cursor:pointer}
@media(max-width:850px){.tz-grid,.tz-metrics{grid-template-columns:repeat(2,1fr)}}

/* Retained layout/engine compatibility: trade-chart-tools.css */
#trade-chart-toolbar{font:400 12px/1.5 var(--mm-text,Inter,sans-serif);color:var(--txt);border-bottom:1px solid var(--line);padding:6px 10px;max-width:100%;box-sizing:border-box}
#trade-chart-toolbar .tc-row{display:flex;align-items:center;gap:10px;overflow-x:auto;white-space:nowrap}
#trade-chart-toolbar label,.tc-indicators{display:inline-flex;align-items:center;gap:5px}
.tc-indicators{gap:12px}
#trade-chart-toolbar button,#trade-chart-toolbar select,#trade-chart-toolbar input{font:inherit;color:var(--txt);background:var(--panel);border:1px solid var(--line);border-radius:4px;padding:3px 6px}
#trade-chart-toolbar input[type=checkbox]{accent-color:var(--color-accent)}
#trade-chart-toolbar p{font-size:12px;margin:3px 0}
#trade-chart-toolbar :focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}
.tc-drawings{position:absolute;top:0;left:0;z-index:3;pointer-events:none;overflow:hidden;color:var(--color-accent,#2962ff)}
.tc-drawings line,.tc-drawings rect{stroke:currentColor;stroke-width:2;fill:none}
.tc-drawings rect{fill:currentColor;fill-opacity:.09}
.tc-drawings text{fill:currentColor;font:600 12px var(--mm-text,Inter,sans-serif)}
/* Keep report-table rules out of the chart library's layout tables. */
#chart td,#chart th{min-width:0!important;max-width:none!important;white-space:normal}
#chart table{table-layout:auto}
.tc-height-handle{padding:5px;text-align:center;cursor:ns-resize;touch-action:none;color:var(--dim);background:var(--panel);border-top:1px solid var(--line);font:400 12px var(--mm-text,Inter,sans-serif);user-select:none}
.tc-height-handle:hover,.tc-height-handle:focus-visible{color:var(--color-accent);outline:1px solid var(--color-accent)}

/* Chart tools share the existing header instead of consuming another band. */
.chart-panel>.ph{display:flex;align-items:center;flex-wrap:nowrap;gap:10px;overflow-x:auto;position:relative}
.chart-panel>.ph>b{white-space:nowrap;flex-shrink:0}
.chart-panel>.ph>.chart-tools{flex-shrink:0;flex-wrap:nowrap}
#trade-chart-toolbar{padding:0;border:0;flex-shrink:0;max-width:none}
#trade-chart-toolbar .tc-row{overflow:visible}
#trade-chart-toolbar .tc-status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.chart-panel>.tc-help{font:400 12px/1.5 var(--mm-text);padding:10px;border-bottom:1px solid var(--line);color:var(--txt)}
.chart-panel #replay-status{max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.chart-panel>.ph{padding:5px 8px;gap:8px;min-height:38px}
.chart-panel>.ph>b{font-size:12px;max-width:105px;white-space:normal;line-height:1.2}
.chart-panel .chart-tools{gap:5px}
.chart-panel .chart-tools button,.chart-panel .chart-tools select,#trade-chart-toolbar button,#trade-chart-toolbar select{font:400 12px var(--mm-text);padding:3px 5px;min-height:26px;white-space:nowrap}
#trade-chart-toolbar .tc-row{gap:6px}
.tc-indicator-menu>summary{cursor:pointer;padding:3px 5px;border:1px solid var(--line);border-radius:4px}
.tc-indicator-menu[open]>.tc-indicators{position:fixed;z-index:80;top:80px;right:24px;display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:12px;background:var(--panel);border:1px solid var(--line);border-radius:5px;box-shadow:0 4px 16px #0003}
#trade-chart-toolbar input[hidden]{display:none}
/* Owner-requested compact review chrome; keep all six statistics. */
.tt-wrap{padding-top:8px}
.tt-wrap>header{margin-bottom:6px;gap:10px;align-items:center}
.tt-wrap>header h1{margin:0;font-size:18px}
.tt-wrap>header .eyebrow{display:none}
.tt-wrap>header .controls button,.tt-wrap>header .controls input{min-height:28px;padding:3px 8px}
.tt-wrap>.summary{gap:6px;margin-bottom:6px}
.tt-wrap>.summary>.stat{min-height:0;padding:5px 9px}
.tt-wrap>.summary>.stat b{font-size:18px;line-height:1.2;margin-top:0}
.chart-panel>.ph{scrollbar-width:thin}
.chart-panel #replay-status{display:none}
.chart-panel:has(#replay-trade:not(:empty)) .chart-tools{margin-left:0}
@media(max-width:900px){.tt-wrap>header{gap:5px}.tt-wrap>.summary{grid-template-columns:repeat(3,minmax(0,1fr))}.tt-wrap>header .controls{flex-wrap:wrap}.tt-wrap>header .controls input{min-width:120px}}

/* Summary occupies the owner's highlighted space inside the page header. */
.tt-wrap>header{display:grid;grid-template-columns:minmax(200px,1fr) minmax(480px,2.8fr) auto;gap:8px;align-items:center}
.tt-wrap>header .summary{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;margin:0}
.tt-wrap>header .summary .stat{min-height:0;padding:4px 7px;margin:0}
.tt-wrap>header .summary .stat span{font-size:10px;white-space:nowrap}
.tt-wrap>header .summary .stat b{font-size:16px;line-height:1.2;margin-top:1px;white-space:nowrap}
.tt-wrap>header #source{font-size:12px}
@media(max-width:1250px){.tt-wrap>header{grid-template-columns:1fr auto}.tt-wrap>header .summary{grid-column:1/-1;grid-row:2}.tt-wrap>header .controls{grid-column:2;grid-row:1}}
@media(max-width:600px){.tt-wrap>header{grid-template-columns:1fr}.tt-wrap>header .summary{grid-column:1;grid-row:2;grid-template-columns:repeat(3,minmax(0,1fr))}.tt-wrap>header .controls{grid-column:1;grid-row:3}}
.tc-drawings .tc-selected{stroke:var(--color-warning,#f59e0b);stroke-width:4;stroke-dasharray:6 3}
.tc-drawings text.tc-selected{fill:var(--color-warning,#f59e0b);stroke:none;text-decoration:underline}
#trade-chart-toolbar button:disabled{opacity:.4;cursor:default}

.tc-editor{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:6px 10px;background:var(--panel);color:var(--txt);border-bottom:1px solid var(--line);font:400 12px var(--mm-text)}.tc-editor[hidden]{display:none}.tc-editor label{display:flex;align-items:center;gap:4px}.tc-editor input,.tc-editor select,.tc-editor button{background:var(--panel2);color:var(--txt);border:1px solid var(--line);font:inherit}.tc-editor input[type=color]{width:32px;height:26px}.tc-drawings circle{fill:var(--panel);stroke:var(--color-accent);stroke-width:2}

.tc-color-menu{border-top:1px solid var(--line);padding-top:6px;width:100%}.tc-color-menu label{display:flex;justify-content:space-between;gap:12px;padding:3px}.tc-color-menu input[type=color]{width:30px;height:24px;padding:0;border:1px solid var(--line);background:var(--panel)}

/* Retained layout/engine compatibility: trade-chart-list.css */
.chart-trades-layout { display:grid; grid-template-columns:minmax(0,1fr) 6px var(--trade-list-width,280px); }
.chart-trades-plot { min-width:0; position:relative; }
.chart-trades-toggle { position:absolute; top:8px; right:70px; z-index:5; }
.chart-trades-layout button { font:400 12px var(--mm-text); color:var(--txt); background:var(--panel2); border:1px solid var(--line); border-radius:4px; padding:3px 6px; cursor:pointer; }
.chart-trades-layout button:focus-visible,.chart-trades-divider:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }
.chart-trades-divider { background:var(--line); cursor:col-resize; touch-action:none; }
#chart-trade-list { min-width:0; position:relative; display:flex; flex-direction:column; max-height:560px; overflow:hidden; }
.chart-trades-heading { display:flex; align-items:center; gap:8px; padding:8px; border-bottom:1px solid var(--line); font:400 12px var(--mm-text); }
.chart-trades-heading b { margin-right:auto; font-weight:600; }
.chart-trades-count { color:var(--dim); }
.chart-trades-help { margin:0; padding:8px; font:400 12px/1.5 var(--mm-text); }
.chart-trades-scroll { overflow:auto; min-height:0; flex:1; }
#chart-trade-list table { width:100%; table-layout:fixed; font:400 12px var(--mm-text); }
#chart-trade-list th,#chart-trade-list td { min-width:0; padding:6px; height:auto; font-size:12px; white-space:nowrap; }
#chart-trade-list th { z-index:1; font-weight:600; letter-spacing:0; }
#chart-trade-list th:first-child,#chart-trade-list td:first-child { text-align:left; width:34%; }
#chart-trade-list th:last-child,#chart-trade-list td:last-child { text-align:right; width:36%; }
#chart-trade-list td button { border:0; background:transparent; padding:0; font:inherit; }
#chart-trade-list tr.selected { background:color-mix(in srgb,var(--accent) 15%,var(--panel)); }
.chart-trades-layout.trade-list-hidden { grid-template-columns:minmax(0,1fr); }
#chart-trade-list[hidden],.chart-trades-divider[hidden] { display:none; }
@media(max-width:900px) { #chart-trade-list { max-height:440px; } }
@media(max-width:700px) { .chart-trades-layout { grid-template-columns:minmax(0,1fr); } .chart-trades-divider { display:none; } #chart-trade-list { max-height:240px; border-top:1px solid var(--line); } }

/* All rows remain available; the trade column scrolls independently of the chart. */
.chart-trades-layout { align-items:start; }
.chart-trades-plot { position:relative; }
.chart-trades-divider { height:var(--trade-list-height,560px); }
#chart-trade-list { height:var(--trade-list-height,560px);max-height:none;overflow:hidden; }
.chart-trades-scroll { overflow:auto;flex:1;overscroll-behavior:contain;scrollbar-gutter:stable; }
.chart-trades-heading,.chart-trades-help { flex-shrink:0; }
#chart-trade-list th { position:sticky;top:0;background:var(--panel); }
@media(max-width:700px) { #chart-trade-list { height:280px;max-height:280px; } }

#chart-trade-list th:first-child,#chart-trade-list td:first-child { width:32%; white-space:normal; }
#chart-trade-list th:nth-child(2),#chart-trade-list td:nth-child(2) { width:22%; }
#chart-trade-list th:nth-child(3),#chart-trade-list td:nth-child(3) { width:23%;text-align:right; }
#chart-trade-list th:last-child,#chart-trade-list td:last-child { width:23%; }
#chart-trade-list th { white-space:normal; }
#chart-trade-list td button { text-align:left; }
.chart-trade-contract { display:block; color:var(--dim); overflow-wrap:anywhere; font:400 12px/1.35 var(--mm-text); }

/* Retained layout/engine compatibility: trade-candle-guide.css */
.candle-guide{color:var(--txt);background:var(--panel);border-top:1px solid var(--line);padding:8px 10px;font:400 12px/1.5 var(--mm-text,Inter,sans-serif);box-sizing:border-box;max-width:100%}
.cg-controls{display:flex;align-items:center;gap:7px;flex-wrap:wrap}
.cg-controls label{display:flex;align-items:center;gap:4px}
.cg-controls button,.cg-controls select{font:inherit;color:var(--txt);background:var(--panel);border:1px solid var(--line);border-radius:4px;padding:2px 6px}
.cg-controls :focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}
.cg-controls button:disabled{opacity:.45}
.cg-detail{display:grid;grid-template-columns:155px minmax(0,1fr);gap:10px;margin-top:6px}
.cg-detail p,.cg-help p{margin:3px 0;font:400 12px/1.5 var(--mm-text,Inter,sans-serif)}
.cg-timing{display:block;color:var(--dim)}
.cg-anatomy{width:155px;height:92px;color:var(--color-accent);align-self:center}
.cg-anatomy line,.cg-anatomy rect{stroke:currentColor;stroke-width:2;fill:var(--panel)}
.cg-anatomy text{fill:var(--txt);font:400 12px var(--mm-text,Inter,sans-serif)}
.cg-help{border-top:1px solid var(--line);margin-top:8px;padding-top:5px}
.cg-help a{color:var(--color-accent)}
.cg-labels{position:absolute;top:0;left:0;z-index:3;pointer-events:none;overflow:hidden}
.cg-labels line{stroke:var(--color-accent);stroke-width:1}
.cg-labels rect{fill:var(--panel);stroke:var(--line)}
.cg-labels text{fill:var(--txt);font:600 12px var(--mm-text,Inter,sans-serif)}
.cg-labels g[role=button]{pointer-events:auto;cursor:pointer}
.cg-labels g:focus-visible rect{stroke:var(--color-accent);stroke-width:2}
.cg-pattern-popup{position:absolute;z-index:12;top:36px;right:68px;width:min(410px,calc(100% - 90px));max-height:75%;overflow:auto;padding:10px;box-sizing:border-box;background:var(--panel);color:var(--txt);border:1px solid var(--line);border-radius:5px;font:400 12px/1.5 var(--mm-text,Inter,sans-serif)}
.cg-pattern-popup[hidden]{display:none!important}
.cg-pattern-popup p{margin:5px 0;font:inherit}
.cg-pattern-popup button{float:right;font:inherit;color:var(--txt);background:var(--panel);border:1px solid var(--line);border-radius:3px;cursor:pointer}
.cg-pattern-popup button:focus-visible{outline:2px solid var(--color-accent)}
.cg-all-matches{grid-column:1/-1;border-top:1px solid var(--line);padding-top:5px}
@media(max-width:600px){.cg-detail{grid-template-columns:1fr}.cg-anatomy{display:none}}

.candle-guide [hidden]{display:none!important}

.chart-tools label:has(#show-trades),.chart-tools label:has(#show-trade-bubbles){display:inline-flex;align-items:center;gap:4px;font:400 12px/1.5 var(--mm-text,Inter,sans-serif);white-space:nowrap}

.candle-guide[hidden]{display:none!important}
.chart-tools label:has(#show-trade-patterns){display:inline-flex;align-items:center;gap:4px;font:400 12px/1.5 var(--mm-text,Inter,sans-serif);white-space:nowrap}

.trade-visibility-controls{display:flex;align-items:center;gap:10px;flex-shrink:0;white-space:nowrap;font:400 12px/1.5 var(--mm-text,Inter,sans-serif)}
.trade-visibility-controls label{display:inline-flex;align-items:center;gap:4px;font:inherit}

.trade-visibility-controls select{font:inherit;color:var(--txt);background:var(--panel);border:1px solid var(--line);border-radius:4px;padding:3px}

/* Retained layout/engine compatibility: /quantos-page.css */
/* QuantOS shared page language — extracted from Market Preparation.
   New application pages use these classes instead of inventing local card,
   panel, table, empty-state, and control systems. */
.q-page,.prep{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;min-width:0}
.q-toolbar,.freeze-bar{display:flex;align-items:flex-end;gap:5px;flex-wrap:wrap;border:1px solid var(--line);border-radius:6px;padding:6px 8px;background:var(--panel)}
.q-toolbar label{display:grid;gap:2px;color:var(--mut);font-size:var(--fs-label,10px);font-weight:600;letter-spacing:.04em}
.q-toolbar input,.q-toolbar select,.q-toolbar button{min-height:30px;border:1px solid var(--line);border-radius:5px;background:var(--panel2);color:var(--txt);padding:4px 7px;font:inherit;font-size:var(--fs-body,12px)}
.q-toolbar button{cursor:pointer;font-weight:600}.q-toolbar button:hover{border-color:var(--dim)}
.q-cards,.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:6px}
.q-card,.c{min-width:0;border:1px solid var(--line);border-radius:6px;background:var(--panel);padding:6px 8px}
.q-card-label,.c .lbl{font-size:var(--fs-label,10px);letter-spacing:.04em;color:var(--mut);font-weight:600}
.q-card-value,.c .val{font:600 21px/1.15 var(--mm-mono);margin-top:4px;font-variant-numeric:tabular-nums}
.q-card-sub,.c .sub{font-size:var(--fs-small,10px);color:var(--dim);margin-top:4px;line-height:1.45}
.q-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.q-panel,.pnl{min-width:0;border:1px solid var(--line);border-radius:6px;background:var(--panel);overflow:hidden}
.q-panel-head,.pnl>h3{font:600 var(--fs-title,12px)/1.35 var(--mm-display);padding:6px 8px;margin:0;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:5px}
.q-panel-body,.pnl>.q-panel-body{padding:7px 8px;min-width:0}
.q-table-wrap{overflow:auto;max-height:520px}
table.q-table,table.t{width:100%;border-collapse:collapse;font-size:var(--fs-table,11px)}
table.q-table th,table.t th{text-align:left;font-size:var(--fs-table,11px);letter-spacing:.04em;color:var(--mut);font-weight:600;padding:5px 6px;border-bottom:1px solid var(--line);background:var(--panel2)}
table.q-table td,table.t td{padding:5px 6px;border-bottom:1px solid color-mix(in srgb,var(--line) 55%,transparent);font-variant-numeric:tabular-nums}
table.q-table tr:last-child td,table.t tr:last-child td{border-bottom:0}
table.q-table tbody tr:hover td,table.t tbody tr:hover td{background:color-mix(in srgb,var(--gold) 7%,var(--panel))}
table.q-table th.num,table.q-table td.num,table.t th.num,table.t td.num{text-align:right}
.q-note,.note{font-size:var(--fs-body,12px)!important;font-weight:400;letter-spacing:normal;color:var(--dim);line-height:1.55;background:var(--panel2);border-left:2px solid var(--line);border-radius:3px;padding:6px 8px}
.q-empty,.empty{color:var(--mut);font-size:var(--fs-body,12px);padding:12px 8px;line-height:1.6;text-align:center}
.q-positive{color:var(--green)}.q-negative{color:var(--red)}.q-muted{color:var(--mut)}
@media(max-width:900px){.q-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:700px){.wrap>div:first-child{padding-left:34px}}
@media(max-width:560px){.q-cards,.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.q-toolbar,.freeze-bar{align-items:stretch}.q-toolbar label{flex:1 1 130px}}
@media(max-width:360px){.q-cards,.cards{grid-template-columns:1fr}}
/* Shared workspace components: chart review, metric rows and editable evidence. */
/* Optional compact density. Opt-in only; shared type roles and theme tokens remain authoritative. */
.q-compact-density,.q-compact-density .q-page,.q-compact-density .q-grid,.q-compact-density .q-stack{gap:6px}
.q-compact-density .q-panel-body,.q-compact-density .q-text-value,.q-typography .q-panel-body,.q-typography .q-text-value{font:400 var(--fs-body,12px)/1.5 var(--mm-text)}
.q-compact-density .q-panel-body>p{margin:4px 0}
.q-compact-density .q-panel-body .q-note{margin:4px 0}
.q-compact-density .q-key-values{gap:3px 6px;margin:4px 0}
.q-compact-density .q-panel-body>.q-tools{gap:4px}
.q-compact-density .q-toolbar{padding:4px 6px;gap:4px}
.q-compact-density .q-toolbar :is(button,input,select){min-height:26px}
.q-compact-density .q-card-value{font-size:18px}
.q-compact-density .q-text-value{margin-top:4px}
.q-page.q-compact-density .q-table :is(th,td){padding:4px 6px;border-right:1px solid color-mix(in srgb,var(--line) 45%,transparent)}
.q-page.q-compact-density .q-table :is(th,td):last-child{border-right:0}
.q-page.q-compact-density .q-table tbody tr:nth-child(even) td{background:color-mix(in srgb,var(--panel2) 45%,var(--panel))}
.q-page.q-compact-density .q-table tbody tr:hover td{background:color-mix(in srgb,var(--accent) 10%,var(--panel))}
.q-compact-density .q-ring-row{padding:4px}
.q-compact-density .q-page-header{gap:6px}
.q-compact-density .q-tools{font:400 var(--fs-body,12px)/1.5 var(--mm-text)}
.q-compact-density .q-section-title,.q-typography .q-section-title{font:600 var(--fs-title,12px)/1.4 var(--mm-display);margin:0}
.q-compact-density button:disabled{opacity:.45;cursor:not-allowed}
.q-split-handle{width:6px;align-self:stretch;background:var(--panel2);border-inline:1px solid var(--line);cursor:col-resize;touch-action:none}
.q-split-handle:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.q-content{padding:12px}.q-page [hidden]{display:none!important}
.q-page-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}.q-page-header h1{margin:0}.q-page-header p{margin:4px 0;color:var(--mut)}
.q-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.q-metric{position:relative;display:grid;grid-template-columns:28px minmax(0,1fr);gap:8px;padding:10px;border:1px solid var(--line);border-radius:6px;background:var(--panel);min-width:0}.q-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:6px;background:var(--panel2);color:var(--gold)}.q-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7}.q-spark{position:absolute;width:45px;height:18px;right:8px;bottom:8px}.q-spark svg{width:100%;height:100%}
.q-workspace{display:grid;grid-template-columns:minmax(0,1fr) var(--q-reader-width,320px) 270px;gap:8px;align-items:start}.q-stack{display:grid;gap:8px;min-width:0}.q-main-aside{display:grid;grid-template-columns:minmax(0,3fr) minmax(260px,1fr);gap:8px}.q-form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:8px}.q-wide{grid-column:1/-1}.q-form-grid h3{margin:0 0 8px;font:600 var(--fs-title,12px)/1.4 var(--mm-display)}.q-form-grid input,.q-form-grid select,.q-form-grid textarea{max-width:100%;width:100%;box-sizing:border-box}.q-form-grid textarea{min-height:80px}
.q-tools{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.q-tools button,.q-tools select,.q-tabs button,.q-menu summary,.q-help{font:inherit;color:var(--txt);background:var(--panel2);border:1px solid var(--line);border-radius:5px;padding:5px 7px;cursor:pointer}.q-tabs{display:flex;gap:4px;flex-wrap:wrap;padding:8px}.q-tabs button[aria-selected=true],.q-tabs button.active{border-color:var(--gold);color:var(--gold)}.q-menu{position:relative}.q-menu>div{position:absolute;right:0;z-index:60;min-width:220px;max-width:85vw;display:grid;gap:6px;background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:8px;box-shadow:0 6px 20px #0004}
.q-reader-panel{position:relative;overflow:visible}.q-reader-pane{max-height:510px;overflow:auto}.q-divider{position:absolute;left:-6px;top:0;bottom:0;width:6px;cursor:col-resize;touch-action:none}.q-collapse{position:absolute;right:6px;top:6px;z-index:3}.q-reader-collapsed{grid-template-columns:minmax(0,1fr) 36px 270px}.q-reader-collapsed .q-reader-pane>*{display:none}.q-reader-collapsed .q-reader-pane>.cg-controls{display:block;min-height:32px}.q-reader-collapsed .cg-controls>*:not(.q-collapse){display:none}.q-key-values{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px;margin:8px 0}.q-key-values dt{color:var(--mut)}.q-key-values dd{margin:0;text-align:right;overflow-wrap:anywhere}.q-reader-summary{padding:8px}.q-disclosure{padding:8px}
.q-ring,.q-mini-ring{position:relative;display:grid;place-items:center;flex-shrink:0;border-radius:50%;background:conic-gradient(var(--green) var(--rate,0%),var(--line) 0)}.q-ring{width:96px;height:96px}.q-mini-ring{width:32px;height:32px}.q-ring:before,.q-mini-ring:before{content:'';position:absolute;inset:7px;background:var(--panel);border-radius:50%}.q-ring>*{position:relative;z-index:1}.q-ring-row{display:flex;align-items:center;gap:12px;padding:10px}.q-ring-row>div:last-child{flex:1;min-width:0}.q-key-row{display:flex;justify-content:space-between;gap:10px;padding:10px;border-bottom:1px solid var(--line)}.q-progress{height:5px;background:var(--panel2);border-radius:5px;overflow:hidden}.q-progress>span,.q-progress>i{display:block;height:100%;background:var(--green)}.q-progress-danger>span,.q-progress-danger>i{background:var(--red)}.q-badge{border:1px solid var(--line);border-radius:4px;padding:2px 5px;white-space:nowrap}.q-help{margin-left:auto;padding:1px 5px}.q-floating-card{position:absolute;z-index:30;width:260px;max-width:calc(100% - 20px);max-height:280px;overflow:auto;background:var(--panel);color:var(--txt);border:1px solid var(--line);border-radius:6px;padding:10px;box-shadow:0 6px 20px #0004}
@media(min-width:1500px){.q-kpis{grid-template-columns:repeat(8,minmax(0,1fr))}}
@media(max-width:1300px){.q-workspace{grid-template-columns:minmax(0,1fr) var(--q-reader-width,280px)}.q-workspace>.q-stack{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr))}.q-reader-collapsed{grid-template-columns:minmax(0,1fr) 36px}}
@media(max-width:900px){.q-main-aside{grid-template-columns:minmax(0,1fr)}.q-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){.q-workspace{grid-template-columns:minmax(0,1fr)}.q-workspace>.q-stack{grid-template-columns:minmax(0,1fr)}.q-divider{display:none}.q-reader-collapsed{grid-template-columns:minmax(0,1fr)}}
@media(max-width:600px){.q-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.q-form-grid{grid-template-columns:minmax(0,1fr)}.q-page-header>*{max-width:100%}.q-content{padding:8px}}
.q-metric>.q-icon{grid-column:1;grid-row:1/3}.q-metric>.q-card-label{grid-column:2;grid-row:1}.q-metric>.q-card-value{grid-column:1/-1;grid-row:3;overflow-wrap:anywhere}.q-metric>.q-card-sub{grid-column:1/-1;grid-row:4;padding-right:42px}.q-metric>.q-mini-ring{position:absolute;right:8px;top:36px}.q-ring{align-content:center;gap:3px}.q-ring-row>dl{display:grid;grid-template-columns:1fr auto;gap:8px;flex:1}.q-ring-row dd{margin:0;text-align:right}.q-main-aside>.q-panel>.ph{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:8px;border-bottom:1px solid var(--line)}
/* Evidence presentation uses the same type scale as the shared tables. */
.q-evidence-table{font-variant-numeric:tabular-nums}.q-evidence-table .q-time-line{display:block;white-space:nowrap}.q-evidence-table .q-time-line+ .q-time-line{color:var(--dim)}.q-evidence-table th button{font:inherit;color:inherit;border:0;background:transparent;padding:0;cursor:pointer;white-space:nowrap}.q-evidence-table td.num{white-space:nowrap}.q-evidence-table tr.selected td{background:color-mix(in srgb,var(--gold) 12%,var(--panel))}.q-evidence-table tr.selected td:first-child{box-shadow:inset 3px 0 var(--gold)}.q-evidence-table details summary{cursor:pointer;white-space:nowrap}.q-evidence-table details[open]{min-width:190px}.q-evidence-table details p{white-space:normal;line-height:1.5}.q-chart-legend{position:absolute;top:6px;left:8px;z-index:3;pointer-events:none;background:var(--panel);color:var(--mut);padding:3px 6px;max-width:calc(100% - 90px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-table,11px)}.q-tabs button[aria-pressed=true]{border-color:var(--gold);color:var(--gold)}
/* Optional analysis panels release their column when closed. */
.q-workspace.q-reader-hidden{grid-template-columns:minmax(0,1fr) 270px}.q-workspace.q-reader-hidden>.q-stack{grid-column:auto}
@media(max-width:1300px){.q-workspace.q-reader-hidden{grid-template-columns:minmax(0,1fr)}.q-workspace.q-reader-hidden>.q-stack{grid-column:1/-1}}
.q-stack>*:only-child{grid-column:1/-1}.q-floating-card .q-key-row{padding:6px 0}.q-floating-card .q-key-row b{overflow-wrap:anywhere;min-width:0;text-align:right}


/* Retained layout/engine compatibility: /test/quantos-polish.css */
/* deploy/test/quantos-polish.css — shared look-and-feel layer for the polished test copies of the
   Accounts and QuantOS Analytics pages (local /test/, hosted /app/test/).

   Rules for this file (see SESSION_27-OCT-2026.md):
   - Look and feel only. No feature, data, order or label changes.
   - Colours come only from the central theme tokens (--bg, --panel, --panel2, --line, --txt,
     --dim, --mut, --accent, --accent-wash, --green, --red, --gold). No palette of its own.
   - Font families and type sizes are untouched (Market Preparation stays the reference).
   Everything is scoped under :scope.qp, which test-shell.js sets.

   v2 (28-OCT-2026): v1 was too faint to notice. The look now follows the competitor pattern:
   a tinted canvas with white cards floating on it, a toolbar card, KPI cards with a coloured
   side bar and wash, pill tabs, a filled period selector and rounded, shadowed panels. */

:scope.qp {
  --qp-canvas: color-mix(in srgb, var(--panel2) 70%, var(--bg));
  --qp-shadow-sm: 0 1px 2px rgba(15, 23, 42, .06), 0 1px 3px rgba(15, 23, 42, .05);
  --qp-shadow: 0 1px 2px rgba(15, 23, 42, .05), 0 6px 18px -8px rgba(15, 23, 42, .18);
  --qp-shadow-lg: 0 2px 4px rgba(15, 23, 42, .06), 0 14px 32px -14px rgba(15, 23, 42, .30);
  --qp-r: 12px;
}

/* ---------- Canvas: cards float on a tinted ground ---------- */
:scope.qp body { background: var(--qp-canvas); }

/* ---------- Toolbar: report period row becomes one card ---------- */
:scope.qp .phead:has(.seg, input[type=date]) {
  background: var(--panel);
  border: 1px solid color-mix(in srgb, var(--line) 80%, transparent);
  border-radius: var(--qp-r);
  padding: 10px 14px;
  box-shadow: var(--qp-shadow-sm);
}
:scope.qp .q-toolbar {
  background: var(--panel);
  border-radius: var(--qp-r);
  box-shadow: var(--qp-shadow-sm);
  padding: 10px 14px;
  gap: 8px;
}

/* ---------- Surfaces: panels and boxes ---------- */
:scope.qp :is(.panel, .q-panel, .pnl, .oi-panel, .mxr-panel, .box, .freeze-bar) {
  background: var(--panel);
  border-color: color-mix(in srgb, var(--line) 75%, transparent);
  border-radius: var(--qp-r);
  box-shadow: var(--qp-shadow);
}
:scope.qp :is(.panel > .ph, .q-panel-head, .pnl > h3) {
  background: var(--panel);
  padding-top: 13px;
  padding-bottom: 13px;
  border-bottom-color: color-mix(in srgb, var(--line) 60%, transparent);
}
/* the count / legend on the right of a panel head becomes a soft chip */
:scope.qp .panel > .ph .count:not(:empty) {
  background: var(--panel2);
  border: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
  border-radius: 99px;
  padding: 3px 10px;
}

/* ---------- KPI cards: coloured side bar, wash and lift ---------- */
:scope.qp :is(.card, .q-card, .c, .kpi, .tz-metric, .py2-kpi, .kt > div) {
  background: var(--panel);
  border-color: color-mix(in srgb, var(--line) 75%, transparent);
  border-radius: var(--qp-r);
  box-shadow: var(--qp-shadow);
  transition: border-color .18s ease, box-shadow .18s ease, transform .18s ease;
}
:scope.qp :is(.card, .q-card, .c, .kpi, .tz-metric, .py2-kpi, .kt > div):hover {
  border-color: color-mix(in srgb, var(--accent) 40%, var(--line));
  box-shadow: var(--qp-shadow-lg);
  transform: translateY(-2px);
}
:scope.qp :is(.cards > .card, .q-cards > .q-card) {
  position: relative;
  overflow: hidden;
  padding-left: 18px;
}
:scope.qp :is(.cards > .card, .q-cards > .q-card)::before {
  content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 4px;
  background: var(--accent);
}
:scope.qp .cards > .card:has(> .val.up),
:scope.qp .q-cards > .q-card:has(.q-positive) {
  background: linear-gradient(135deg, color-mix(in srgb, var(--green) 10%, var(--panel)) 0%, var(--panel) 70%);
}
:scope.qp .cards > .card:has(> .val.dn),
:scope.qp .q-cards > .q-card:has(.q-negative) {
  background: linear-gradient(135deg, color-mix(in srgb, var(--red) 10%, var(--panel)) 0%, var(--panel) 70%);
}
:scope.qp .cards > .card:has(> .val.up)::before,
:scope.qp .q-cards > .q-card:has(.q-positive)::before { background: var(--green); }
:scope.qp .cards > .card:has(> .val.dn)::before,
:scope.qp .q-cards > .q-card:has(.q-negative)::before { background: var(--red); }

/* ---------- Tabs: pill bar instead of an underline row ---------- */
:scope.qp .tabs {
  align-items: center;
  gap: 4px;
  border-bottom: none;
  background: var(--panel);
  border: 1px solid color-mix(in srgb, var(--line) 75%, transparent);
  border-radius: var(--qp-r);
  padding: 5px;
  box-shadow: var(--qp-shadow-sm);
}
:scope.qp .tabs button:not(.btn) {
  border: none;
  border-radius: 8px;
  padding-top: 7px;
  padding-bottom: 7px;
  margin: 0;
  transition: color .15s ease, background-color .15s ease, box-shadow .15s ease;
}
:scope.qp .tabs button:not(.btn):not(.on):hover { background: var(--panel2); color: var(--txt); }
:scope.qp .tabs button.on:not(.btn) {
  background: var(--accent);
  color: var(--panel);
  box-shadow: 0 4px 12px -4px color-mix(in srgb, var(--accent) 70%, transparent);
}
:scope.qp .tabs .btn { margin-bottom: 0; }

/* ---------- Period selector: filled active segment ---------- */
:scope.qp .seg {
  border: 1px solid color-mix(in srgb, var(--line) 75%, transparent);
  border-radius: 9px;
  padding: 3px;
  gap: 2px;
  background: var(--panel2);
}
:scope.qp .seg button { border-radius: 7px; transition: color .15s ease, background-color .15s ease; }
:scope.qp .seg button:not(.on):hover { color: var(--txt); background: var(--panel); }
:scope.qp .seg button.on {
  background: var(--accent);
  color: var(--panel);
  font-weight: 600;
  box-shadow: 0 2px 8px -3px color-mix(in srgb, var(--accent) 70%, transparent);
}

/* ---------- Tables ---------- */
:scope.qp th {
  background: var(--panel2);
  border-bottom-color: color-mix(in srgb, var(--line) 80%, transparent);
}
/* The shared divider and hover are translucent white, which vanish on Light. Use theme tokens. */
:scope.qp td { border-bottom-color: color-mix(in srgb, var(--line) 55%, transparent); }
:scope.qp tbody tr:not([class]):nth-child(even) { background: color-mix(in srgb, var(--panel2) 45%, transparent); }
:scope.qp tbody tr:hover,
:scope.qp tbody tr:not([class]):nth-child(even):hover { background: var(--accent-wash); }
:scope.qp tbody tr { transition: background-color .12s ease; }
:scope.qp :is(.tscroll, .q-table-wrap, .table-wrap, .mxr-table-wrap, .oi-table-wrap) { scrollbar-width: thin; }

/* ---------- Buttons and inputs ---------- */
:scope.qp :is(.btn, .q-toolbar button, button.btn) {
  border-radius: 8px;
  transition: color .15s ease, border-color .15s ease, background-color .15s ease, box-shadow .15s ease;
}
:scope.qp :is(.btn, .q-toolbar button):hover {
  border-color: var(--accent);
  color: var(--accent);
  box-shadow: 0 0 0 3px var(--accent-wash);
}
:scope.qp :is(input:not([type=checkbox]):not([type=radio]):not([type=range]), select) {
  border-radius: 8px;
  transition: border-color .15s ease, box-shadow .15s ease;
}
:scope.qp :is(input:not([type=checkbox]):not([type=radio]):not([type=range]), select):focus {
  outline: none;
  border-color: var(--accent);
  box-shadow: 0 0 0 3px var(--accent-wash);
}
:scope.qp :is(a, button, [role=button], summary, [tabindex]):focus-visible {
  outline: 2px solid var(--accent);
  outline-offset: 2px;
}

/* ---------- Badges and pills ---------- */
:scope.qp :is(.pill, .badge) { border-radius: 99px; padding-inline: 9px; }

/* ---------- Test marker ---------- */
.qp-tag {
  position: fixed; z-index: 9000; left: 50%; bottom: calc(10px + env(safe-area-inset-bottom, 0px)); transform: translateX(-50%);
  font: 600 11px/1 var(--mm-text, Inter, sans-serif); letter-spacing: .02em; text-decoration: none; white-space: nowrap;
  color: var(--panel); background: var(--accent); border: 1px solid var(--accent);
  padding: 8px 14px; border-radius: 99px; box-shadow: 0 8px 20px -8px rgba(15, 23, 42, .45); opacity: .92;
}
.qp-tag:hover { opacity: 1; }

@media (prefers-reduced-motion: reduce) {
  :scope.qp *, :scope.qp *::before, :scope.qp *::after { transition: none !important; }
  :scope.qp :is(.card, .q-card, .c, .kpi, .tz-metric, .py2-kpi, .kt > div):hover { transform: none; }
}
/* Trade review experiment; active only on the test copy. */
body.tt-test-review:not(.site-light) .trade-bubble{background:#fff!important;color:#172334!important;border-color:#c9d2df!important;box-shadow:0 6px 22px #0004}
body.tt-test-review:not(.site-light) .trade-bubble .tb-time,body.tt-test-review:not(.site-light) .trade-bubble .tb-row span:first-child{color:#52606d!important}
body.tt-test-review:not(.site-light) .trade-bubble .tb-shared select{background:#fff!important;color:#172334!important;border-color:#c9d2df!important}
body.tt-test-review:not(.site-light) .trade-bubble .tb-buy{color:#087d55!important}body.tt-test-review:not(.site-light) .trade-bubble .tb-sell{color:#c72c45!important}
.tt-test-review .running-net{display:block;color:var(--dim);font:inherit;white-space:nowrap}.tt-test-review .running-net strong{font-weight:600}.tt-test-review .running-net-cell{white-space:nowrap;font-variant-numeric:tabular-nums}
/* Shared test components matching the reference: icon tiles and compact ledgers.
   Existing typography and theme tokens remain authoritative. */
:scope.qp .q-kpi-tile{display:grid;grid-template-columns:28px minmax(0,1fr);column-gap:8px;row-gap:3px;align-content:start;padding:10px;border:1px solid color-mix(in srgb,var(--accent) 24%,var(--line));box-shadow:none}
:scope.qp .q-kpi-tile::before{display:none}
:scope.qp .q-kpi-tile .q-icon-tile{grid-column:1;grid-row:1/3;display:grid;place-items:center;width:28px;height:28px;border-radius:7px;color:var(--accent);background:color-mix(in srgb,var(--accent) 17%,var(--panel));border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line))}
:scope.qp .q-kpi-tile .q-icon-danger{color:var(--red);background:color-mix(in srgb,var(--red) 14%,var(--panel));border-color:color-mix(in srgb,var(--red) 28%,var(--line))}
:scope.qp .q-kpi-caption{grid-column:2;grid-row:1;min-width:0}
:scope.qp .q-kpi-value{grid-column:2;grid-row:2;white-space:nowrap;margin-top:0}
:scope.qp .q-kpi-detail{grid-column:1/-1;grid-row:3;color:var(--dim);line-height:1.45}
:scope.qp table.q-ledger{table-layout:auto;border-collapse:collapse}
:scope.qp table.q-ledger th{padding:8px 7px;background:color-mix(in srgb,var(--accent) 7%,var(--panel));border-bottom:1px solid color-mix(in srgb,var(--accent) 24%,var(--line));text-transform:none;white-space:nowrap;text-align:left}
:scope.qp table.q-ledger td{padding:7px;vertical-align:middle;text-align:left;border-bottom:1px solid color-mix(in srgb,var(--accent) 10%,var(--line));white-space:nowrap}
:scope.qp table.q-ledger tbody tr:hover td{background:color-mix(in srgb,var(--accent) 7%,var(--panel))}
:scope.qp table.q-ledger tbody tr.selected td{background:color-mix(in srgb,var(--accent) 14%,var(--panel))}
:scope.qp table.q-ledger tbody tr.selected td:first-child{box-shadow:inset 3px 0 var(--accent)}
:scope.qp table.q-ledger :is(th,td):is(:nth-child(6),:nth-child(7),:nth-child(8),:nth-child(9),:nth-child(10),:nth-child(11),:nth-child(12),:nth-child(14)){text-align:right;font-variant-numeric:tabular-nums}
:scope.qp table.q-ledger :is(th,td):is(:first-child,:nth-child(5),:nth-child(13)){text-align:center}
:scope.qp table.q-ledger .badge{display:inline-flex;align-items:center;justify-content:center;min-width:36px;padding:3px 8px;border:1px solid var(--line);cursor:pointer;font:inherit}
:scope.qp table.q-ledger .badge.up{background:color-mix(in srgb,var(--green) 16%,var(--panel));border-color:color-mix(in srgb,var(--green) 30%,var(--line))}
:scope.qp table.q-ledger .badge.down{background:color-mix(in srgb,var(--red) 16%,var(--panel));border-color:color-mix(in srgb,var(--red) 30%,var(--line))}
:scope.qp table.q-ledger [data-review-status] label{display:inline-flex;align-items:center;gap:5px;white-space:nowrap;cursor:pointer}
:scope.qp table.q-ledger [data-review-status] input{accent-color:var(--accent);margin:0}

/* Compact reference geometry: shared theme and font roles remain authoritative. */
:scope.qp .tt-test-review .tt-wrap{padding:6px 10px 20px;max-width:none;min-width:0}
:scope.qp .tt-test-review .tt-wrap>header{gap:12px;margin:0 0 6px;align-items:center;flex-wrap:wrap}
:scope.qp .tt-test-review .controls{gap:5px;flex-wrap:wrap}
:scope.qp .tt-test-review .controls :is(input,select,button){min-height:30px;padding:4px 8px}
:scope.qp .tt-test-review #summary{gap:7px;margin:0 0 6px;grid-template-columns:repeat(8,minmax(0,1fr))}
:scope.qp .tt-test-review .q-kpi-tile{min-height:80px;padding:8px;border-radius:6px;column-gap:6px}
:scope.qp .tt-test-review .q-kpi-detail{line-height:1.3}
:scope.qp .tt-test-review .panel{margin-bottom:7px;border-radius:6px;box-shadow:none;border-color:color-mix(in srgb,var(--accent) 24%,var(--line))}
:scope.qp .tt-test-review .panel>.ph{min-height:34px;padding:5px 8px;gap:7px;flex-wrap:wrap}
:scope.qp .tt-test-review .q-toolbar{padding:4px;box-shadow:none;gap:5px;border-radius:5px}
:scope.qp .tt-test-review #trade-coverage-note{margin:0 0 5px;padding:3px 6px}
:scope.qp .tt-test-review .q-review-band{display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:8px;align-items:start}
:scope.qp .tt-test-review .q-review-band>div{min-width:0}
:scope.qp .tt-test-review .q-review-band .table-wrap{max-height:242px}
:scope.qp .tt-test-review .q-review-band #mistakes{max-height:242px;overflow:auto;padding:4px}
:scope.qp .tt-test-review .mistake{padding:6px}
:scope.qp .tt-test-review .mistake p{line-height:1.4}
:scope.qp .tt-test-review table.q-ledger{min-width:1080px}
:scope.qp .tt-test-review table.q-ledger :is(th,td){padding:4px 6px;height:27px;border-right:1px solid color-mix(in srgb,var(--accent) 10%,var(--line))}
:scope.qp .tt-test-review table.q-ledger tbody tr:nth-child(even){background:color-mix(in srgb,var(--accent) 4%,var(--panel))}
:scope.qp .tt-test-review table.q-ledger .badge{padding:1px 5px;border-radius:4px}
:scope.qp .tt-test-review .tz-journal{padding:8px;gap:7px}
:scope.qp .tt-test-review .tz-grid,:scope.qp .tt-test-review .tz-metrics{gap:6px}
:scope.qp .tt-test-review .tz-metric{padding:5px 7px}
:scope.qp .tt-test-review .q-chart-time-scroll{width:100%;height:18px;overflow-x:scroll;overflow-y:hidden;scrollbar-color:var(--accent) var(--panel2);background:var(--panel2)}
:scope.qp .tt-test-review .q-chart-time-scroll>div{height:1px}
:scope.qp .tt-test-review .q-chart-time-scroll:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
@media(max-width:1250px){:scope.qp .tt-test-review #summary{grid-template-columns:repeat(4,minmax(0,1fr))}:scope.qp .tt-test-review .q-review-band{grid-template-columns:minmax(0,1fr)}}
@media(max-width:700px){:scope.qp .tt-test-review .tt-wrap{padding:6px}:scope.qp .tt-test-review #summary{grid-template-columns:repeat(2,minmax(0,1fr))}:scope.qp .tt-test-review .controls{width:100%}:scope.qp .tt-test-review .tz-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}

:scope.qp .tt-test-review .chart-trade-contract{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}

/* Reusable compact review rail, ring and journal cells; theme-token colors only. */
:scope.qp .tt-test-review .q-chart-review-band{display:grid;grid-template-columns:minmax(0,1fr) 260px;gap:8px;align-items:start}
:scope.qp .tt-test-review .q-chart-review-band>div{min-width:0}
:scope.qp .q-review-rail{min-width:0;display:grid;gap:7px}
:scope.qp .q-review-rail .panel{margin:0}
:scope.qp .q-review-rail .ph a{color:var(--accent);font-size:11px;white-space:nowrap}
:scope.qp .q-performance-body{display:grid;grid-template-columns:92px minmax(0,1fr);gap:10px;align-items:center;padding:8px}
:scope.qp .q-win-ring{position:relative;width:92px;height:92px}
:scope.qp .q-win-ring svg{width:100%;height:100%;transform:rotate(-90deg)}
:scope.qp .q-win-ring circle{fill:none;stroke-width:8}
:scope.qp .q-ring-track{stroke:color-mix(in srgb,var(--accent) 22%,var(--panel))}
:scope.qp .q-ring-value{stroke:var(--green);stroke-linecap:round}
:scope.qp .q-win-ring>div{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center}
:scope.qp .q-win-ring strong{font-size:18px;font-weight:600}
:scope.qp .q-win-ring span{font-size:11px;color:var(--dim)}
:scope.qp .q-review-kv{margin:0;display:grid;gap:8px;font-size:12px}
:scope.qp .q-review-kv>div{display:flex;justify-content:space-between;gap:8px;align-items:start}
:scope.qp .q-review-kv dt{color:var(--dim)}
:scope.qp .q-review-kv dd{margin:0;text-align:right;font-variant-numeric:tabular-nums}
:scope.qp .q-risk-values{padding:9px}
:scope.qp .q-risk-values>div{padding-bottom:8px;border-bottom:1px solid var(--line)}
:scope.qp .q-review-caption{padding:0 8px 7px;font-size:12px;line-height:1.4;color:var(--dim)}
:scope.qp .q-journal-strip{display:grid;grid-template-columns:150px 130px 110px 150px 110px 110px 110px 150px minmax(190px,1fr);gap:6px;overflow:auto;align-items:stretch;padding-bottom:3px}
:scope.qp .q-review-cell{padding:7px;border:1px solid color-mix(in srgb,var(--accent) 24%,var(--line));border-radius:5px;background:var(--panel2);min-width:0;font-size:12px;line-height:1.4}
:scope.qp .q-review-cell>b{display:block;font-size:11px;font-weight:500;color:var(--dim);margin-bottom:6px}
:scope.qp .q-review-cell .tz-field label,:scope.qp .q-review-cell .tz-notes>label{position:absolute;clip-path:inset(50%);width:1px;height:1px;overflow:hidden}
:scope.qp .q-review-cell :is(select,textarea){font-size:12px;padding:4px;min-width:0}
:scope.qp .q-review-cell .tz-metric{padding:4px 0;border:0;box-shadow:none;background:transparent}
:scope.qp .q-review-cell .tz-metric b{font-size:12px}
:scope.qp .q-review-cell .tz-metric span{font-size:10px}
:scope.qp .q-review-cell .tz-tags{gap:3px}
:scope.qp .q-review-cell .tz-tags button{padding:2px 5px;font-size:11px;border-radius:4px}
:scope.qp .q-review-cell .tz-notes textarea{height:112px;min-height:72px;line-height:1.4}
:scope.qp .q-review-cell .q-key-values>div{display:flex;justify-content:space-between;gap:6px;font-size:12px}
:scope.qp .q-review-cell .q-key-values b{font-weight:500}
:scope.qp .q-review-cell p{font-size:12px;line-height:1.4}
:scope.qp .tt-test-review .tz-actions button{padding:4px 10px;font-size:12px}
:scope.qp .q-trade-flag{color:var(--red);font-size:17px;line-height:1;vertical-align:middle}
@media(max-width:1100px){:scope.qp .tt-test-review .q-chart-review-band{grid-template-columns:minmax(0,1fr)}:scope.qp .q-review-rail{grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:7px}}
@media(max-width:600px){:scope.qp .q-review-rail{grid-template-columns:minmax(0,1fr)}}

/* Journal regrouping: compact 2x2 controls and evidence; notes beside performance/risk. */
:scope.qp .tt-test-review .q-journal-strip{grid-template-columns:minmax(140px,1fr) minmax(140px,1fr) minmax(260px,1.6fr) minmax(170px,1.1fr);overflow:visible;align-items:start;gap:7px}
:scope.qp .q-journal-evidence{display:grid;gap:6px;min-width:0}
:scope.qp .q-journal-controls{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;min-width:0}
:scope.qp .q-journal-controls .q-review-cell{padding:7px}
:scope.qp .q-journal-controls .q-review-cell select{width:100%}
:scope.qp .q-journal-notes{grid-column:1/3}
:scope.qp .q-journal-notes .tz-notes textarea{height:112px;width:100%}
:scope.qp .q-journal-strip>.q-review-rail{grid-column:3/5;grid-template-columns:repeat(2,minmax(0,1fr));align-items:start;margin:0}
:scope.qp .q-journal-evidence .tz-metric{padding:0}
:scope.qp .q-journal-evidence .q-excursion{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
:scope.qp .q-journal-evidence .q-review-cell{padding:6px}
:scope.qp .q-journal-strip>.q-review-cell,:scope.qp .q-journal-evidence,:scope.qp .q-journal-controls{height:auto;min-height:0}
@media(max-width:900px){:scope.qp .tt-test-review .q-journal-strip{grid-template-columns:repeat(2,minmax(0,1fr))}:scope.qp .q-journal-notes{grid-column:1/3}:scope.qp .q-journal-strip>.q-review-rail{grid-column:1/3}}
@media(max-width:520px){:scope.qp .tt-test-review .q-journal-strip{grid-template-columns:minmax(0,1fr)}:scope.qp .q-journal-notes,:scope.qp .q-journal-strip>.q-review-rail{grid-column:1}:scope.qp .q-journal-strip>.q-review-rail{grid-template-columns:minmax(0,1fr)}}
/* Reviewed journal geometry: shared panel hierarchy and no wide-screen blank band. */
:scope.qp .tt-test-review .q-journal-strip{align-items:stretch}
:scope.qp .tt-test-review .q-review-cell{padding:0;margin:0;background:var(--panel);border-radius:6px}
:scope.qp .tt-test-review .q-review-cell>.q-panel-head{display:flex;margin:0;padding:6px 8px;font:600 12px/1.35 var(--mm-display);color:var(--txt);gap:5px;border-bottom:1px solid var(--line)}
:scope.qp .tt-test-review .q-review-cell>.q-panel-body{padding:8px;margin:0}
:scope.qp .tt-test-review .q-journal-controls .q-review-cell,:scope.qp .tt-test-review .q-journal-evidence .q-review-cell{padding:0}
:scope.qp .tt-test-review .q-journal-strip>.q-review-rail{align-items:stretch}
:scope.qp .tt-test-review .q-journal-strip>.q-review-rail>.panel{height:100%}
:scope.qp .tt-test-review .q-journal-notes{display:flex;flex-direction:column}
:scope.qp .tt-test-review .q-journal-notes>.tz-notes{flex:1;display:flex}
:scope.qp .tt-test-review .q-journal-notes textarea{height:auto;min-height:100px;flex:1}
:scope.qp .tt-test-review .q-review-cell .q-key-values{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:3px 8px}
:scope.qp .tt-test-review .q-review-cell .q-key-values dd{font-weight:500}
:scope.qp .q-review-info{margin-left:auto;width:21px;height:21px;padding:0;border:1px solid var(--line);border-radius:4px;background:var(--panel2);color:var(--accent);font:600 12px var(--mm-text);cursor:pointer;flex:none}
:scope.qp .q-review-help{font:400 12px/1.5 var(--mm-text);margin:0;padding:8px;border-bottom:1px solid var(--line)}
:scope.qp .tt-test-review .q-review-cell .q-review-help[hidden]{display:none}
:scope.qp .tt-test-review .q-review-rail .ph{flex-wrap:wrap}
:scope.qp .tt-test-review .tz-head{flex-wrap:wrap}


/* One compact performance summary beside Total P/L, replacing the old Win Rate tile. */
:scope.qp .tt-test-review #summary{grid-template-columns:repeat(9,minmax(0,1fr));align-items:stretch}
:scope.qp .tt-test-review #summary>.q-performance-kpi{grid-column:span 2;margin:0;padding:0;min-width:0;box-shadow:none;transform:none}
:scope.qp .tt-test-review #summary>.q-performance-kpi::before{display:none}
:scope.qp .tt-test-review .q-performance-kpi>.ph{padding:4px 7px;min-height:26px;gap:5px;flex-wrap:wrap}
:scope.qp .tt-test-review .q-performance-kpi>.ph b{font:600 12px/1.35 var(--mm-display)}
:scope.qp .tt-test-review .q-performance-kpi>.ph a{color:var(--accent);font-size:11px;margin-left:auto}
:scope.qp .tt-test-review .q-performance-kpi .q-performance-body{grid-template-columns:56px minmax(0,1fr);gap:8px;padding:5px 8px}
:scope.qp .tt-test-review .q-performance-kpi .q-win-ring{width:56px;height:56px}
:scope.qp .tt-test-review .q-performance-kpi .q-win-ring strong{font-size:14px}
:scope.qp .tt-test-review .q-performance-kpi .q-win-ring span{font-size:10px}
:scope.qp .tt-test-review .q-performance-kpi .q-review-kv{gap:2px;font-size:12px;line-height:1.35}
:scope.qp .tt-test-review .q-performance-kpi>.q-review-caption{padding:0 8px 5px;font-size:12px;line-height:1.35}
:scope.qp .tt-test-review .q-journal-strip>.q-review-rail{grid-template-columns:minmax(0,1fr)}
@media(max-width:1250px){:scope.qp .tt-test-review #summary{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:700px){:scope.qp .tt-test-review #summary{grid-template-columns:repeat(2,minmax(0,1fr))}}

:scope.qp .tt-test-review .q-journal-notes-wide{grid-column:1/-1}
:scope.qp .tt-test-review .q-review-band>.q-stack{gap:7px}
:scope.qp .tt-test-review .q-review-band>.q-stack>.panel{margin:0}

:scope.qp .tt-test-review .q-performance-kpi .q-win-loss-line{display:flex;justify-content:flex-start;gap:4px;white-space:nowrap;align-items:center}
:scope.qp .tt-test-review .q-performance-kpi .q-win-loss-line dt:nth-of-type(2){margin-left:8px}

/* Reference header geometry uses existing theme and typography. */
:scope.qp .tt-test-review .q-review-header{display:grid;grid-template-columns:minmax(200px,1fr) auto;align-items:center;gap:12px;padding-bottom:6px;border-bottom:1px solid var(--line)}
:scope.qp .q-session-context{display:flex;align-items:center;gap:8px;min-width:0}
:scope.qp .q-context-field{display:grid;gap:2px;min-width:150px;padding:4px 10px;border:1px solid var(--line);border-radius:6px;background:var(--panel);font:400 10px/1.4 var(--mm-text);color:var(--dim)}
:scope.qp .q-context-field strong{font:400 12px/1.4 var(--mm-text);color:var(--txt);white-space:nowrap}
:scope.qp .tt-test-review .q-context-field #date{border:0;padding:0;min-height:18px;background:transparent;color:var(--txt);font:400 12px var(--mm-text);max-width:150px}
:scope.qp .q-header-actions{position:relative;font:400 12px var(--mm-text)}
:scope.qp .q-header-actions summary{cursor:pointer;padding:7px;border:1px solid var(--line);border-radius:5px}
:scope.qp .q-header-actions>.controls{position:absolute;right:0;top:100%;z-index:35;width:220px;padding:8px;background:var(--panel);border:1px solid var(--line);border-radius:6px;display:grid}
:scope.qp .tt-test-review #summary{grid-template-columns:repeat(7,minmax(0,1fr))}
:scope.qp .tt-test-review .q-kpi-tile{min-height:80px;padding:8px;gap:3px 8px}
:scope.qp .tt-test-review .q-kpi-value{font-size:21px;line-height:1.15}
:scope.qp .tt-test-review #chart-trade-list>.q-performance-kpi{flex:none;border:0;border-bottom:1px solid var(--line);border-radius:0;background:var(--panel);margin:0}
:scope.qp .tt-test-review .q-trade-extra{font:400 12px/1.5 var(--mm-text);padding:0 8px 7px}
:scope.qp .q-trade-extra summary{cursor:pointer;color:var(--accent)}
:scope.qp .tt-test-review .q-trade-extra .market-context{min-width:0}
:scope.qp .q-trade-review-flag{padding:0 5px;border:0;background:transparent;color:#fff;font:400 19px/1 var(--mm-text);cursor:pointer}
:scope.qp .q-trade-review-flag[aria-pressed=true]{color:var(--accent)}
@media(max-width:1100px){:scope.qp .tt-test-review .q-review-header{grid-template-columns:1fr}:scope.qp .tt-test-review #summary{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:700px){:scope.qp .q-session-context{flex-wrap:wrap}:scope.qp .q-context-field{min-width:130px;flex:1}:scope.qp .tt-test-review #summary{grid-template-columns:repeat(2,minmax(0,1fr))}}

:scope.qp .tt-test-review .q-kpi-comparison{grid-column:1/-1;font:400 11px/1.4 var(--mm-text);color:var(--accent)}
:scope.qp .tt-test-review .q-kpi-sparkline{grid-column:1/-1;width:100%;height:22px;color:var(--accent)}

/* Final reference contract: eight summary cards and a full performance panel above Trades. */
:scope.qp .tt-test-review #summary{grid-template-columns:repeat(8,minmax(0,1fr));gap:8px}
:scope.qp .tt-test-review .q-kpi-tile{position:relative;min-height:82px;align-content:start;padding:9px}
:scope.qp .tt-test-review .q-kpi-caption{font-size:10px;line-height:1.35}
:scope.qp .tt-test-review .q-kpi-value{font-size:21px;line-height:1.2}
:scope.qp .tt-test-review .q-kpi-sparkline{position:absolute;width:44px;height:24px;right:6px;bottom:6px}
:scope.qp .tt-test-review .q-kpi-comparison{padding-right:38px;font-size:10px}
:scope.qp .tt-test-review .q-kpi-detail{font-size:11px;line-height:1.4}
:scope.qp .tt-test-review .q-review-header{margin-bottom:6px}
:scope.qp .q-review-subtitle{font:400 12px/1.5 var(--mm-text);color:var(--dim)}
:scope.qp .q-review-source{font:400 12px/1.5 var(--mm-text);margin:0 0 5px;color:var(--dim)}
:scope.qp .tt-test-review #chart-trade-list>.q-performance-kpi .ph{min-height:32px;padding:6px 8px}
:scope.qp .tt-test-review #chart-trade-list>.q-performance-kpi .q-performance-body{grid-template-columns:88px minmax(0,1fr);padding:8px;gap:12px}
:scope.qp .tt-test-review #chart-trade-list>.q-performance-kpi .q-win-ring{width:88px;height:88px}
:scope.qp .tt-test-review #chart-trade-list>.q-performance-kpi .q-win-ring strong{font-size:18px}
:scope.qp .tt-test-review #chart-trade-list>.q-performance-kpi .q-win-ring span{font-size:11px}
:scope.qp .tt-test-review #chart-trade-list>.q-performance-kpi .q-review-kv{gap:8px}
:scope.qp .tt-test-review #chart-trade-list>.q-performance-kpi .q-review-kv>div{display:flex;justify-content:space-between}
@media(max-width:1250px){:scope.qp .tt-test-review #summary{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:700px){:scope.qp .tt-test-review #summary{grid-template-columns:repeat(2,minmax(0,1fr))}}

:scope.qp .tt-test-review .q-trade-extra .market-context :is(span,small){font:400 12px/1.5 var(--mm-text)}

:scope.qp .tt-test-review .q-kpi-win-ring{position:absolute;right:7px;bottom:9px;width:34px;height:34px}
/* The Trades table owns all remaining column space; no flex remainder below it. */
:scope.qp .tt-test-review #chart-trade-list{display:grid;grid-template-rows:auto auto auto minmax(0,1fr);align-content:stretch;min-height:0;padding:0}
:scope.qp .tt-test-review #chart-trade-list>.q-performance-kpi{grid-row:1}
:scope.qp .tt-test-review #chart-trade-list>.chart-trades-heading{grid-row:2}
:scope.qp .tt-test-review #chart-trade-list>.chart-trades-help{grid-row:3}
:scope.qp .tt-test-review #chart-trade-list>.chart-trades-scroll{grid-row:4;min-height:0;height:auto;max-height:none;align-self:stretch;margin:0;padding:0;overflow:auto}
:scope.qp .tt-test-review .chart-trades-scroll>table{margin:0;max-height:none}

:scope.qp .q-trade-review-flag svg{display:block;width:18px;height:18px;fill:currentColor;stroke:var(--dim);stroke-width:.9;stroke-linejoin:round}

/* Cursor-only resize zones; drag tracking is independent of the canvas. */
:scope.qp .tt-test-review .tc-height-handle{height:8px;padding:0;min-height:8px;cursor:ns-resize;touch-action:none;user-select:none;position:relative;z-index:5;border-top:1px solid var(--line)}
:scope.qp .tt-test-review .tc-height-handle:hover,:scope.qp .tt-test-review .tc-height-handle:focus-visible{background:var(--accent-wash);border-color:var(--accent)}
:scope.qp .tt-test-review .chart-trades-divider{cursor:ew-resize;touch-action:none;user-select:none;position:relative;z-index:5}
:scope.qp.q-resizing-height,:scope.qp.q-resizing-height *{cursor:ns-resize!important;user-select:none!important}
:scope.qp.q-resizing-width,:scope.qp.q-resizing-width *{cursor:ew-resize!important;user-select:none!important}

/* Trading Discipline header actions (test pages): compact icon buttons plus save status, top right. */
body[data-ts] .phead{flex-wrap:nowrap;align-items:center}
body[data-ts] .ts-actions{display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}
body[data-ts] .ts-act{display:inline-flex;align-items:center;gap:6px;height:30px;box-sizing:border-box;padding:0 11px;border-radius:8px;border:1px solid var(--line);background:var(--panel);color:var(--txt);font:500 12px var(--mm-text);text-decoration:none!important;white-space:nowrap;box-shadow:0 1px 2px color-mix(in srgb,var(--txt) 8%,transparent);transition:background-color .12s,border-color .12s,transform .12s}
body[data-ts] .ts-act:hover{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--panel))}
body[data-ts] .ts-act:active{transform:translateY(1px)}
body[data-ts] .ts-act.on{background:var(--accent);border-color:var(--accent);color:#fff}
body[data-ts] .ts-act.on:hover{background:color-mix(in srgb,var(--accent) 85%,#000)}
body[data-ts] :is(.ts-act,.ts-state) svg{width:15px;height:15px;flex:none;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
body[data-ts] .ts-state{display:inline-flex;align-items:center;gap:6px;height:30px;box-sizing:border-box;padding:0 10px;border-radius:99px;background:color-mix(in srgb,var(--accent) 8%,var(--panel));border:1px solid color-mix(in srgb,var(--accent) 22%,var(--line));color:var(--dim);font:400 12px var(--mm-text);white-space:nowrap}
body[data-ts] .ts-state svg{color:var(--accent)}
@media(max-width:900px){body[data-ts] .phead{flex-wrap:wrap}body[data-ts] .ts-act span{display:none}body[data-ts] .ts-act{padding:0 8px}}

/* Retained layout/engine compatibility: /test/todays-trades-model.css */
/* Approved model presentation, using operational QuantOS theme tokens. */
.tt-wrap .chart-panel.tt-expanded{position:fixed;z-index:9000;left:10vw;top:18.75vh;width:80vw!important;height:62.5vh!important;margin:0;box-sizing:border-box;box-shadow:0 12px 50px #0008;overflow:auto}
.tt-expanded .chart-trades-divider,.tt-expanded #chart-trade-list{display:none!important}
.tt-expanded .chart-trades-layout{display:block!important}
.tt-expanded .chart-trades-toggle,.tt-expanded .tc-height-handle{display:none!important}
.tt-wrap{--tt-gap:8px;font-family:var(--mm-text);color:var(--txt)}
.tt-wrap .q-review-header{gap:12px;margin-bottom:8px;align-items:center}
.tt-wrap .q-review-subtitle{font-size:12px;line-height:1.4}
.tt-wrap :is(.q-panel,.panel){margin-bottom:8px}
.tt-wrap #summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(165px,1fr));gap:7px;margin:8px 0}
.tt-wrap #summary .stat{min-height:0;padding:9px 10px;position:relative;overflow:hidden}
.tt-wrap #summary .q-kpi-caption{font:500 10px/1.4 var(--mm-text);color:var(--dim)}
.tt-wrap #summary .q-kpi-value{font:600 20px/1.2 var(--mm-text);font-variant-numeric:tabular-nums;letter-spacing:-.4px;margin:4px 0;grid-column:1/-1;white-space:nowrap}
.tt-wrap #summary .q-kpi-detail,.tt-wrap #summary .q-kpi-comparison{font:400 11px/1.35 var(--mm-text)}
.tt-wrap #summary .q-icon-tile{width:22px;height:22px;border-radius:4px;background:color-mix(in srgb,var(--accent) 12%,var(--panel));color:var(--accent)}
.tt-wrap #summary .q-icon-tile svg{width:15px;height:15px}
.tt-wrap button:not(.chart-trade-select){background:linear-gradient(var(--panel2),var(--panel));border-color:var(--line)}
.tt-wrap button[aria-pressed=true]{background:linear-gradient(color-mix(in srgb,var(--accent) 35%,var(--panel)),color-mix(in srgb,var(--accent) 15%,var(--panel)));border-color:var(--accent)}
.tt-wrap :is(.chart-tools,.trade-visibility-controls){gap:6px}
.tt-wrap .chart-tools :is(button,select){min-height:27px;padding:3px 7px}
.tt-wrap #chart-trade-list{border:1px solid var(--line);border-radius:6px;background:var(--panel);overflow:hidden}
.tt-wrap .chart-trades-heading{padding:7px 9px;border-bottom:1px solid var(--line);font-size:12px}
.tt-wrap :is(.trade-review-table,#chart-trade-list table){font:400 12px/1.3 var(--mm-text);font-variant-numeric:tabular-nums}
.tt-wrap :is(.trade-review-table,#chart-trade-list table) th{height:29px;padding:5px 7px;font:500 10px/1.3 var(--mm-text);letter-spacing:0;color:var(--dim);background:var(--panel2)}
.tt-wrap :is(.trade-review-table,#chart-trade-list table) td{padding:5px 7px;border-right:1px solid color-mix(in srgb,var(--line) 35%,transparent);font-size:12px;vertical-align:middle}
.tt-wrap :is(.trade-review-table,#chart-trade-list table) tbody tr:nth-child(even){background:color-mix(in srgb,var(--panel2) 35%,transparent)}
.tt-wrap :is(.trade-review-table,#chart-trade-list table) tr.selected{background:color-mix(in srgb,var(--accent) 13%,var(--panel));box-shadow:inset 3px 0 var(--accent)}
.tt-wrap #chart-trade-list .running-net{font-size:11px;line-height:1.3;color:var(--dim)}
@media(max-width:1400px){.tt-wrap #summary{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:650px){.tt-wrap #summary{grid-template-columns:repeat(2,minmax(0,1fr))}.tt-wrap #summary .q-kpi-value{font-size:19px}.tt-wrap .q-review-header{flex-wrap:wrap}}

.trade-fee{display:block;font:400 11px/1.4 var(--mm-text);color:var(--dim);white-space:nowrap}
#trade-coverage-note{font:400 12px/1.45 var(--mm-text)}

/* Existing inline layout compatibility. */
body.site-light header,body.site-light main{background:transparent;color:var(--txt)}body.site-light .stat,body.site-light .panel,body.site-light .controls input,body.site-light .controls button{background:var(--panel);color:var(--txt);border-color:var(--line)}
}

/* Premarket layout compatibility. Components are owned above; behaviour stays in existing JS. */
@scope (:root:has([data-q-page="premarket"])) {
/* Retained layout/engine compatibility: /quantos-page.css */
/* QuantOS shared page language — extracted from Market Preparation.
   New application pages use these classes instead of inventing local card,
   panel, table, empty-state, and control systems. */
.q-page,.prep{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;min-width:0}
.q-toolbar,.freeze-bar{display:flex;align-items:flex-end;gap:5px;flex-wrap:wrap;border:1px solid var(--line);border-radius:6px;padding:6px 8px;background:var(--panel)}
.q-toolbar label{display:grid;gap:2px;color:var(--mut);font-size:var(--fs-label,10px);font-weight:600;letter-spacing:.04em}
.q-toolbar input,.q-toolbar select,.q-toolbar button{min-height:30px;border:1px solid var(--line);border-radius:5px;background:var(--panel2);color:var(--txt);padding:4px 7px;font:inherit;font-size:var(--fs-body,12px)}
.q-toolbar button{cursor:pointer;font-weight:600}.q-toolbar button:hover{border-color:var(--dim)}
.q-cards,.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:6px}
.q-card,.c{min-width:0;border:1px solid var(--line);border-radius:6px;background:var(--panel);padding:6px 8px}
.q-card-label,.c .lbl{font-size:var(--fs-label,10px);letter-spacing:.04em;color:var(--mut);font-weight:600}
.q-card-value,.c .val{font:600 21px/1.15 var(--mm-mono);margin-top:4px;font-variant-numeric:tabular-nums}
.q-card-sub,.c .sub{font-size:var(--fs-small,10px);color:var(--dim);margin-top:4px;line-height:1.45}
.q-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px}
.q-panel,.pnl{min-width:0;border:1px solid var(--line);border-radius:6px;background:var(--panel);overflow:hidden}
.q-panel-head,.pnl>h3{font:600 var(--fs-title,12px)/1.35 var(--mm-display);padding:6px 8px;margin:0;border-bottom:1px solid var(--line);display:flex;align-items:center;gap:5px}
.q-panel-body,.pnl>.q-panel-body{padding:7px 8px;min-width:0}
.q-table-wrap{overflow:auto;max-height:520px}
table.q-table,table.t{width:100%;border-collapse:collapse;font-size:var(--fs-table,11px)}
table.q-table th,table.t th{text-align:left;font-size:var(--fs-table,11px);letter-spacing:.04em;color:var(--mut);font-weight:600;padding:5px 6px;border-bottom:1px solid var(--line);background:var(--panel2)}
table.q-table td,table.t td{padding:5px 6px;border-bottom:1px solid color-mix(in srgb,var(--line) 55%,transparent);font-variant-numeric:tabular-nums}
table.q-table tr:last-child td,table.t tr:last-child td{border-bottom:0}
table.q-table tbody tr:hover td,table.t tbody tr:hover td{background:color-mix(in srgb,var(--gold) 7%,var(--panel))}
table.q-table th.num,table.q-table td.num,table.t th.num,table.t td.num{text-align:right}
.q-note,.note{font-size:var(--fs-body,12px)!important;font-weight:400;letter-spacing:normal;color:var(--dim);line-height:1.55;background:var(--panel2);border-left:2px solid var(--line);border-radius:3px;padding:6px 8px}
.q-empty,.empty{color:var(--mut);font-size:var(--fs-body,12px);padding:12px 8px;line-height:1.6;text-align:center}
.q-positive{color:var(--green)}.q-negative{color:var(--red)}.q-muted{color:var(--mut)}
@media(max-width:900px){.q-grid{grid-template-columns:minmax(0,1fr)}}
@media(max-width:700px){.wrap>div:first-child{padding-left:34px}}
@media(max-width:560px){.q-cards,.cards{grid-template-columns:repeat(2,minmax(0,1fr))}.q-toolbar,.freeze-bar{align-items:stretch}.q-toolbar label{flex:1 1 130px}}
@media(max-width:360px){.q-cards,.cards{grid-template-columns:1fr}}
/* Shared workspace components: chart review, metric rows and editable evidence. */
/* Optional compact density. Opt-in only; shared type roles and theme tokens remain authoritative. */
.q-compact-density,.q-compact-density .q-page,.q-compact-density .q-grid,.q-compact-density .q-stack{gap:6px}
.q-compact-density .q-panel-body,.q-compact-density .q-text-value,.q-typography .q-panel-body,.q-typography .q-text-value{font:400 var(--fs-body,12px)/1.5 var(--mm-text)}
.q-compact-density .q-panel-body>p{margin:4px 0}
.q-compact-density .q-panel-body .q-note{margin:4px 0}
.q-compact-density .q-key-values{gap:3px 6px;margin:4px 0}
.q-compact-density .q-panel-body>.q-tools{gap:4px}
.q-compact-density .q-toolbar{padding:4px 6px;gap:4px}
.q-compact-density .q-toolbar :is(button,input,select){min-height:26px}
.q-compact-density .q-card-value{font-size:18px}
.q-compact-density .q-text-value{margin-top:4px}
.q-page.q-compact-density .q-table :is(th,td){padding:4px 6px;border-right:1px solid color-mix(in srgb,var(--line) 45%,transparent)}
.q-page.q-compact-density .q-table :is(th,td):last-child{border-right:0}
.q-page.q-compact-density .q-table tbody tr:nth-child(even) td{background:color-mix(in srgb,var(--panel2) 45%,var(--panel))}
.q-page.q-compact-density .q-table tbody tr:hover td{background:color-mix(in srgb,var(--accent) 10%,var(--panel))}
.q-compact-density .q-ring-row{padding:4px}
.q-compact-density .q-page-header{gap:6px}
.q-compact-density .q-tools{font:400 var(--fs-body,12px)/1.5 var(--mm-text)}
.q-compact-density .q-section-title,.q-typography .q-section-title{font:600 var(--fs-title,12px)/1.4 var(--mm-display);margin:0}
.q-compact-density button:disabled{opacity:.45;cursor:not-allowed}
.q-split-handle{width:6px;align-self:stretch;background:var(--panel2);border-inline:1px solid var(--line);cursor:col-resize;touch-action:none}
.q-split-handle:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.q-content{padding:12px}.q-page [hidden]{display:none!important}
.q-page-header{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px}.q-page-header h1{margin:0}.q-page-header p{margin:4px 0;color:var(--mut)}
.q-kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}.q-metric{position:relative;display:grid;grid-template-columns:28px minmax(0,1fr);gap:8px;padding:10px;border:1px solid var(--line);border-radius:6px;background:var(--panel);min-width:0}.q-icon{display:grid;place-items:center;width:28px;height:28px;border-radius:6px;background:var(--panel2);color:var(--gold)}.q-icon svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7}.q-spark{position:absolute;width:45px;height:18px;right:8px;bottom:8px}.q-spark svg{width:100%;height:100%}
.q-workspace{display:grid;grid-template-columns:minmax(0,1fr) var(--q-reader-width,320px) 270px;gap:8px;align-items:start}.q-stack{display:grid;gap:8px;min-width:0}.q-main-aside{display:grid;grid-template-columns:minmax(0,3fr) minmax(260px,1fr);gap:8px}.q-form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;padding:8px}.q-wide{grid-column:1/-1}.q-form-grid h3{margin:0 0 8px;font:600 var(--fs-title,12px)/1.4 var(--mm-display)}.q-form-grid input,.q-form-grid select,.q-form-grid textarea{max-width:100%;width:100%;box-sizing:border-box}.q-form-grid textarea{min-height:80px}
.q-tools{display:flex;flex-wrap:wrap;align-items:center;gap:6px}.q-tools button,.q-tools select,.q-tabs button,.q-menu summary,.q-help{font:inherit;color:var(--txt);background:var(--panel2);border:1px solid var(--line);border-radius:5px;padding:5px 7px;cursor:pointer}.q-tabs{display:flex;gap:4px;flex-wrap:wrap;padding:8px}.q-tabs button[aria-selected=true],.q-tabs button.active{border-color:var(--gold);color:var(--gold)}.q-menu{position:relative}.q-menu>div{position:absolute;right:0;z-index:60;min-width:220px;max-width:85vw;display:grid;gap:6px;background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:8px;box-shadow:0 6px 20px #0004}
.q-reader-panel{position:relative;overflow:visible}.q-reader-pane{max-height:510px;overflow:auto}.q-divider{position:absolute;left:-6px;top:0;bottom:0;width:6px;cursor:col-resize;touch-action:none}.q-collapse{position:absolute;right:6px;top:6px;z-index:3}.q-reader-collapsed{grid-template-columns:minmax(0,1fr) 36px 270px}.q-reader-collapsed .q-reader-pane>*{display:none}.q-reader-collapsed .q-reader-pane>.cg-controls{display:block;min-height:32px}.q-reader-collapsed .cg-controls>*:not(.q-collapse){display:none}.q-key-values{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:6px;margin:8px 0}.q-key-values dt{color:var(--mut)}.q-key-values dd{margin:0;text-align:right;overflow-wrap:anywhere}.q-reader-summary{padding:8px}.q-disclosure{padding:8px}
.q-ring,.q-mini-ring{position:relative;display:grid;place-items:center;flex-shrink:0;border-radius:50%;background:conic-gradient(var(--green) var(--rate,0%),var(--line) 0)}.q-ring{width:96px;height:96px}.q-mini-ring{width:32px;height:32px}.q-ring:before,.q-mini-ring:before{content:'';position:absolute;inset:7px;background:var(--panel);border-radius:50%}.q-ring>*{position:relative;z-index:1}.q-ring-row{display:flex;align-items:center;gap:12px;padding:10px}.q-ring-row>div:last-child{flex:1;min-width:0}.q-key-row{display:flex;justify-content:space-between;gap:10px;padding:10px;border-bottom:1px solid var(--line)}.q-progress{height:5px;background:var(--panel2);border-radius:5px;overflow:hidden}.q-progress>span,.q-progress>i{display:block;height:100%;background:var(--green)}.q-progress-danger>span,.q-progress-danger>i{background:var(--red)}.q-badge{border:1px solid var(--line);border-radius:4px;padding:2px 5px;white-space:nowrap}.q-help{margin-left:auto;padding:1px 5px}.q-floating-card{position:absolute;z-index:30;width:260px;max-width:calc(100% - 20px);max-height:280px;overflow:auto;background:var(--panel);color:var(--txt);border:1px solid var(--line);border-radius:6px;padding:10px;box-shadow:0 6px 20px #0004}
@media(min-width:1500px){.q-kpis{grid-template-columns:repeat(8,minmax(0,1fr))}}
@media(max-width:1300px){.q-workspace{grid-template-columns:minmax(0,1fr) var(--q-reader-width,280px)}.q-workspace>.q-stack{grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr))}.q-reader-collapsed{grid-template-columns:minmax(0,1fr) 36px}}
@media(max-width:900px){.q-main-aside{grid-template-columns:minmax(0,1fr)}.q-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:800px){.q-workspace{grid-template-columns:minmax(0,1fr)}.q-workspace>.q-stack{grid-template-columns:minmax(0,1fr)}.q-divider{display:none}.q-reader-collapsed{grid-template-columns:minmax(0,1fr)}}
@media(max-width:600px){.q-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.q-form-grid{grid-template-columns:minmax(0,1fr)}.q-page-header>*{max-width:100%}.q-content{padding:8px}}
.q-metric>.q-icon{grid-column:1;grid-row:1/3}.q-metric>.q-card-label{grid-column:2;grid-row:1}.q-metric>.q-card-value{grid-column:1/-1;grid-row:3;overflow-wrap:anywhere}.q-metric>.q-card-sub{grid-column:1/-1;grid-row:4;padding-right:42px}.q-metric>.q-mini-ring{position:absolute;right:8px;top:36px}.q-ring{align-content:center;gap:3px}.q-ring-row>dl{display:grid;grid-template-columns:1fr auto;gap:8px;flex:1}.q-ring-row dd{margin:0;text-align:right}.q-main-aside>.q-panel>.ph{display:flex;align-items:center;flex-wrap:wrap;gap:6px;padding:8px;border-bottom:1px solid var(--line)}
/* Evidence presentation uses the same type scale as the shared tables. */
.q-evidence-table{font-variant-numeric:tabular-nums}.q-evidence-table .q-time-line{display:block;white-space:nowrap}.q-evidence-table .q-time-line+ .q-time-line{color:var(--dim)}.q-evidence-table th button{font:inherit;color:inherit;border:0;background:transparent;padding:0;cursor:pointer;white-space:nowrap}.q-evidence-table td.num{white-space:nowrap}.q-evidence-table tr.selected td{background:color-mix(in srgb,var(--gold) 12%,var(--panel))}.q-evidence-table tr.selected td:first-child{box-shadow:inset 3px 0 var(--gold)}.q-evidence-table details summary{cursor:pointer;white-space:nowrap}.q-evidence-table details[open]{min-width:190px}.q-evidence-table details p{white-space:normal;line-height:1.5}.q-chart-legend{position:absolute;top:6px;left:8px;z-index:3;pointer-events:none;background:var(--panel);color:var(--mut);padding:3px 6px;max-width:calc(100% - 90px);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--fs-table,11px)}.q-tabs button[aria-pressed=true]{border-color:var(--gold);color:var(--gold)}
/* Optional analysis panels release their column when closed. */
.q-workspace.q-reader-hidden{grid-template-columns:minmax(0,1fr) 270px}.q-workspace.q-reader-hidden>.q-stack{grid-column:auto}
@media(max-width:1300px){.q-workspace.q-reader-hidden{grid-template-columns:minmax(0,1fr)}.q-workspace.q-reader-hidden>.q-stack{grid-column:1/-1}}
.q-stack>*:only-child{grid-column:1/-1}.q-floating-card .q-key-row{padding:6px 0}.q-floating-card .q-key-row b{overflow-wrap:anywhere;min-width:0;text-align:right}


/* Retained layout/engine compatibility: /test/reference-appearance.css */
/* Reusable reference component language. Only explicitly opted-in test pages participate. */
:scope.qr-reference{--qp-r:6px;--qp-shadow:none;--qp-shadow-sm:none;--qp-shadow-lg:none;--qr-chart-fast:#f2c94c;--qr-chart-slow:#00c8ef;--qr-chart-vwap:#bf83ff}
:scope.qr-reference[data-reference-theme=light]{--qr-chart-fast:#906400;--qr-chart-slow:#007c9b;--qr-chart-vwap:#8529bd}
:scope.qr-reference body{background:var(--bg);color:var(--txt);font-family:var(--mm-text,Inter,Arial,sans-serif)}
:scope.qr-reference :is(.q-panel,.q-card,.q-toolbar){background:var(--panel);border-color:var(--line);border-radius:6px;box-shadow:none}
:scope.qr-reference .q-panel-head{font:600 12px/1.4 var(--mm-display);background:transparent;border-color:var(--line)}
:scope.qr-reference :is(button,input,select,textarea){font-family:var(--mm-text,Inter,Arial,sans-serif)}
:scope.qr-reference :is(button,input,select,textarea):focus-visible{outline:2px solid var(--accent);outline-offset:2px}
:scope.qr-reference #lnav{background:var(--bg);border-color:var(--line);box-shadow:none}
:scope.qr-reference #lnav .ln-gh.open,:scope.qr-reference #lnav a.on{background:color-mix(in srgb,var(--accent) 16%,var(--panel));color:var(--txt)}
:scope.qr-reference :is(.q-card,.q-panel){background-image:linear-gradient(135deg,color-mix(in srgb,var(--panel2) 35%,transparent),transparent 75%)}
:scope.qr-reference .q-table{font:400 12px/1.45 var(--mm-text)}
:scope.qr-reference .q-table th{font:600 11px/1.45 var(--mm-text);color:var(--dim);letter-spacing:0;text-transform:none;background:transparent}
:scope.qr-reference .q-table td{padding:5px 6px;border-color:color-mix(in srgb,var(--line) 65%,transparent)}
:scope.qr-reference .q-table tbody tr:hover td{background:color-mix(in srgb,var(--accent) 9%,var(--panel))}
:scope.qr-reference .q-note{font:400 12px/1.5 var(--mm-text);background:var(--panel2);color:var(--dim)}

/* ── Reference components (Trading Dashboard Collage, 29-OCT-2026) ──────────────────────────────────
   Reusable by every page that opts in with data-quantos-reference. Theme tokens only; no page palette.
   qr-bounded   bounded workspace width (big screens stop stretching; content stays on the app's left edge)
   qr-icon      line icon before a heading (filled by QuantOSVisualSystem.icon via data-icon)
   qr-pill      filled status pill · tones qr-bull qr-bear qr-warn qr-info qr-neutral
   qr-seg       segmented control; [aria-pressed=true] / [aria-current] fill with the button's tone
   qr-tone-*    tinted card for a bullish / bearish / neutral scenario; [aria-current] adds the focus ring
   qr-primary   filled primary action · qr-success filled confirmation
   qr-check     checklist row with a theme-coloured box
   qr-field     themed textarea / input outside a toolbar
   qr-chart     chart mount height; qr-stack-top stops a side column stretching its panels
   qr-banner    closing statement band */
:scope.qr-reference .qr-bounded{max-width:1480px;width:100%;box-sizing:border-box}
:scope.qr-reference :is(.q-panel,.q-card){border-radius:8px}
:scope.qr-reference .q-panel-head{display:flex;align-items:center;gap:7px}
:scope.qr-reference .qr-icon{display:inline-grid;place-items:center;width:18px;height:18px;flex:0 0 18px;color:var(--accent)}
:scope.qr-reference .qr-icon svg{width:16px;height:16px}
:scope.qr-reference .qr-pill{display:inline-flex;align-items:center;gap:5px;border-radius:5px;padding:3px 9px;font:600 11px/1.35 var(--mm-text);letter-spacing:.02em;white-space:normal;border:1px solid transparent}
:scope.qr-reference .qr-pill.qr-bull{background:color-mix(in srgb,var(--green) 85%,#000 0%);color:#04130d}
:scope.qr-reference .qr-pill.qr-bear{background:color-mix(in srgb,var(--red) 22%,transparent);color:var(--red);border-color:color-mix(in srgb,var(--red) 45%,transparent)}
:scope.qr-reference .qr-pill.qr-warn{background:color-mix(in srgb,var(--gold) 18%,transparent);color:var(--gold);border-color:color-mix(in srgb,var(--gold) 40%,transparent)}
:scope.qr-reference .qr-pill.qr-info{background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--accent);border-color:color-mix(in srgb,var(--accent) 40%,transparent)}
:scope.qr-reference .qr-pill.qr-neutral{background:var(--panel2);color:var(--dim);border-color:var(--line)}
:scope.qr-reference .qr-pill.qr-soft-bull{background:color-mix(in srgb,var(--green) 18%,transparent);color:var(--green);border-color:color-mix(in srgb,var(--green) 40%,transparent)}
:scope.qr-reference .qr-seg{display:inline-flex;flex-wrap:wrap;gap:0;border:1px solid var(--line);border-radius:6px;overflow:hidden;background:var(--panel2)}
:scope.qr-reference .qr-seg>button{font:500 12px/1.3 var(--mm-text);color:var(--dim);background:transparent;border:0;border-right:1px solid var(--line);border-radius:0;padding:6px 14px;min-height:30px;cursor:pointer}
:scope.qr-reference .qr-seg>button:last-child{border-right:0}
:scope.qr-reference .qr-seg>button:hover{color:var(--txt);background:color-mix(in srgb,var(--accent) 8%,transparent)}
:scope.qr-reference .qr-seg>button:is([aria-pressed=true],[aria-current]){background:var(--accent);color:#fff;font-weight:600}
:scope.qr-reference .qr-seg>button.qr-bull:is([aria-pressed=true],[aria-current]){background:var(--green);color:#04130d}
:scope.qr-reference .qr-seg>button.qr-bear:is([aria-pressed=true],[aria-current]){background:var(--red);color:#fff}
:scope.qr-reference .qr-seg>button.qr-bull{color:var(--green)}:scope.qr-reference .qr-seg>button.qr-bear{color:var(--red)}
:scope.qr-reference .qr-tone-bull{background:linear-gradient(160deg,color-mix(in srgb,var(--green) 13%,var(--panel)),var(--panel) 70%);border-color:color-mix(in srgb,var(--green) 40%,var(--line))}
:scope.qr-reference .qr-tone-bear{background:linear-gradient(160deg,color-mix(in srgb,var(--red) 13%,var(--panel)),var(--panel) 70%);border-color:color-mix(in srgb,var(--red) 40%,var(--line))}
:scope.qr-reference .qr-tone-neutral{background:linear-gradient(160deg,color-mix(in srgb,var(--accent) 7%,var(--panel)),var(--panel) 70%)}
:scope.qr-reference :is(.qr-tone-bull,.qr-tone-bear,.qr-tone-neutral)[aria-current]{box-shadow:0 0 0 1px var(--accent),0 0 18px color-mix(in srgb,var(--accent) 22%,transparent)}
:scope.qr-reference .qr-tone-bull .q-card-label{color:var(--green)}:scope.qr-reference .qr-tone-bear .q-card-label{color:var(--red)}
:scope.qr-reference .qr-primary{background:var(--accent)!important;color:#fff!important;border-color:var(--accent)!important;font-weight:600!important;box-shadow:0 0 14px color-mix(in srgb,var(--accent) 30%,transparent)}
:scope.qr-reference .qr-primary:hover{filter:brightness(1.1)}
:scope.qr-reference .qr-success{background:color-mix(in srgb,var(--green) 85%,#000 0%)!important;color:#04130d!important;border-color:var(--green)!important;font-weight:600!important}
:scope.qr-reference .qr-primary:disabled,:scope.qr-reference .qr-success:disabled{opacity:.5;box-shadow:none;cursor:not-allowed}
:scope.qr-reference .qr-check{display:flex;gap:8px;align-items:flex-start;padding:4px 0;font:400 12px/1.45 var(--mm-text);color:var(--txt)}
:scope.qr-reference .qr-check input{accent-color:var(--green);width:15px;height:15px;margin:1px 0 0;flex:0 0 15px}
:scope.qr-reference .qr-check small{display:block;color:var(--dim);font-size:11px}
:scope.qr-reference .qr-field{width:100%;box-sizing:border-box;font:400 12px/1.5 var(--mm-text);color:var(--txt);background:var(--panel2);border:1px solid var(--line);border-radius:6px;padding:7px 9px;min-height:72px;resize:vertical}
:scope.qr-reference .qr-field:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 25%,transparent)}
:scope.qr-reference .qr-chart{height:340px}
:scope.qr-reference .qr-stack-top{align-content:start}
:scope.qr-reference .qr-nowrap{white-space:nowrap}
:scope.qr-reference .qr-label-row{display:flex;align-items:center;gap:6px}
:scope.qr-reference .qr-banner{display:flex;align-items:center;gap:10px;justify-content:space-between;padding:10px 14px;border:1px solid var(--line);border-radius:8px;background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 14%,var(--panel)),var(--panel));font:600 13px/1.4 var(--mm-display);color:var(--txt)}
:scope.qr-reference .qr-banner small{font:400 12px/1.4 var(--mm-text);color:var(--dim)}
:scope.qr-reference .qr-curve{width:100%;height:150px;display:block}
:scope.qr-reference .qr-ring-split{background:conic-gradient(var(--green) 0 var(--win,0%),var(--red) 0 var(--loss,0%),var(--line) 0)}
:scope.qr-reference .qr-grow{flex:1;min-width:0}
/* the shell injects body>main.wrap{max-width:none!important}; a page that opts into qr-bounded keeps its cap */
:scope.qr-reference body>main.wrap.qr-bounded{max-width:1480px!important}

/* Retained layout/engine compatibility: /trade-chart-tools.css */
#trade-chart-toolbar{font:400 12px/1.5 var(--mm-text,Inter,sans-serif);color:var(--txt);border-bottom:1px solid var(--line);padding:6px 10px;max-width:100%;box-sizing:border-box}
#trade-chart-toolbar .tc-row{display:flex;align-items:center;gap:10px;overflow-x:auto;white-space:nowrap}
#trade-chart-toolbar label,.tc-indicators{display:inline-flex;align-items:center;gap:5px}
.tc-indicators{gap:12px}
#trade-chart-toolbar button,#trade-chart-toolbar select,#trade-chart-toolbar input{font:inherit;color:var(--txt);background:var(--panel);border:1px solid var(--line);border-radius:4px;padding:3px 6px}
#trade-chart-toolbar input[type=checkbox]{accent-color:var(--color-accent)}
#trade-chart-toolbar p{font-size:12px;margin:3px 0}
#trade-chart-toolbar :focus-visible{outline:2px solid var(--color-accent);outline-offset:2px}
.tc-drawings{position:absolute;top:0;left:0;z-index:3;pointer-events:none;overflow:hidden;color:var(--color-accent,#2962ff)}
.tc-drawings line,.tc-drawings rect{stroke:currentColor;stroke-width:2;fill:none}
.tc-drawings rect{fill:currentColor;fill-opacity:.09}
.tc-drawings text{fill:currentColor;font:600 12px var(--mm-text,Inter,sans-serif)}
/* Keep report-table rules out of the chart library's layout tables. */
#chart td,#chart th{min-width:0!important;max-width:none!important;white-space:normal}
#chart table{table-layout:auto}
.tc-height-handle{padding:5px;text-align:center;cursor:ns-resize;touch-action:none;color:var(--dim);background:var(--panel);border-top:1px solid var(--line);font:400 12px var(--mm-text,Inter,sans-serif);user-select:none}
.tc-height-handle:hover,.tc-height-handle:focus-visible{color:var(--color-accent);outline:1px solid var(--color-accent)}

/* Chart tools share the existing header instead of consuming another band. */
.chart-panel>.ph{display:flex;align-items:center;flex-wrap:nowrap;gap:10px;overflow-x:auto;position:relative}
.chart-panel>.ph>b{white-space:nowrap;flex-shrink:0}
.chart-panel>.ph>.chart-tools{flex-shrink:0;flex-wrap:nowrap}
#trade-chart-toolbar{padding:0;border:0;flex-shrink:0;max-width:none}
#trade-chart-toolbar .tc-row{overflow:visible}
#trade-chart-toolbar .tc-status{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
.chart-panel>.tc-help{font:400 12px/1.5 var(--mm-text);padding:10px;border-bottom:1px solid var(--line);color:var(--txt)}
.chart-panel #replay-status{max-width:130px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

.chart-panel>.ph{padding:5px 8px;gap:8px;min-height:38px}
.chart-panel>.ph>b{font-size:12px;max-width:105px;white-space:normal;line-height:1.2}
.chart-panel .chart-tools{gap:5px}
.chart-panel .chart-tools button,.chart-panel .chart-tools select,#trade-chart-toolbar button,#trade-chart-toolbar select{font:400 12px var(--mm-text);padding:3px 5px;min-height:26px;white-space:nowrap}
#trade-chart-toolbar .tc-row{gap:6px}
.tc-indicator-menu>summary{cursor:pointer;padding:3px 5px;border:1px solid var(--line);border-radius:4px}
.tc-indicator-menu[open]>.tc-indicators{position:fixed;z-index:80;top:80px;right:24px;display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:12px;background:var(--panel);border:1px solid var(--line);border-radius:5px;box-shadow:0 4px 16px #0003}
#trade-chart-toolbar input[hidden]{display:none}
/* Owner-requested compact review chrome; keep all six statistics. */
.tt-wrap{padding-top:8px}
.tt-wrap>header{margin-bottom:6px;gap:10px;align-items:center}
.tt-wrap>header h1{margin:0;font-size:18px}
.tt-wrap>header .eyebrow{display:none}
.tt-wrap>header .controls button,.tt-wrap>header .controls input{min-height:28px;padding:3px 8px}
.tt-wrap>.summary{gap:6px;margin-bottom:6px}
.tt-wrap>.summary>.stat{min-height:0;padding:5px 9px}
.tt-wrap>.summary>.stat b{font-size:18px;line-height:1.2;margin-top:0}
.chart-panel>.ph{scrollbar-width:thin}
.chart-panel #replay-status{display:none}
.chart-panel:has(#replay-trade:not(:empty)) .chart-tools{margin-left:0}
@media(max-width:900px){.tt-wrap>header{gap:5px}.tt-wrap>.summary{grid-template-columns:repeat(3,minmax(0,1fr))}.tt-wrap>header .controls{flex-wrap:wrap}.tt-wrap>header .controls input{min-width:120px}}

/* Summary occupies the owner's highlighted space inside the page header. */
.tt-wrap>header{display:grid;grid-template-columns:minmax(200px,1fr) minmax(480px,2.8fr) auto;gap:8px;align-items:center}
.tt-wrap>header .summary{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:4px;margin:0}
.tt-wrap>header .summary .stat{min-height:0;padding:4px 7px;margin:0}
.tt-wrap>header .summary .stat span{font-size:10px;white-space:nowrap}
.tt-wrap>header .summary .stat b{font-size:16px;line-height:1.2;margin-top:1px;white-space:nowrap}
.tt-wrap>header #source{font-size:12px}
@media(max-width:1250px){.tt-wrap>header{grid-template-columns:1fr auto}.tt-wrap>header .summary{grid-column:1/-1;grid-row:2}.tt-wrap>header .controls{grid-column:2;grid-row:1}}
@media(max-width:600px){.tt-wrap>header{grid-template-columns:1fr}.tt-wrap>header .summary{grid-column:1;grid-row:2;grid-template-columns:repeat(3,minmax(0,1fr))}.tt-wrap>header .controls{grid-column:1;grid-row:3}}
.tc-drawings .tc-selected{stroke:var(--color-warning,#f59e0b);stroke-width:4;stroke-dasharray:6 3}
.tc-drawings text.tc-selected{fill:var(--color-warning,#f59e0b);stroke:none;text-decoration:underline}
#trade-chart-toolbar button:disabled{opacity:.4;cursor:default}

.tc-editor{display:flex;flex-wrap:wrap;align-items:center;gap:10px;padding:6px 10px;background:var(--panel);color:var(--txt);border-bottom:1px solid var(--line);font:400 12px var(--mm-text)}.tc-editor[hidden]{display:none}.tc-editor label{display:flex;align-items:center;gap:4px}.tc-editor input,.tc-editor select,.tc-editor button{background:var(--panel2);color:var(--txt);border:1px solid var(--line);font:inherit}.tc-editor input[type=color]{width:32px;height:26px}.tc-drawings circle{fill:var(--panel);stroke:var(--color-accent);stroke-width:2}

.tc-color-menu{border-top:1px solid var(--line);padding-top:6px;width:100%}.tc-color-menu label{display:flex;justify-content:space-between;gap:12px;padding:3px}.tc-color-menu input[type=color]{width:30px;height:24px;padding:0;border:1px solid var(--line);background:var(--panel)}

/* Retained layout/engine compatibility: /test/research-workspace.css */
/* User-requested reference typography override, isolated to this research route. */

#research-workspace{font:400 13px/1.35 var(--mm-text);padding:6px 8px 0;max-width:none;min-width:0;--rw-gap:6px}
#research-workspace *{box-sizing:border-box}#research-workspace [hidden]{display:none!important}
#research-workspace :is(button,input,select,textarea){font:400 12px/1.3 var(--mm-text);min-height:24px;border-radius:4px;padding:3px 6px;color:var(--txt);background:var(--panel2);border:1px solid var(--line)}
#research-workspace button{cursor:pointer}#research-workspace button:disabled{cursor:default;opacity:.55}#research-workspace :focus-visible{outline:2px solid var(--accent);outline-offset:2px}
#research-workspace .q-panel{margin:0;min-width:0;overflow:hidden;border-radius:6px;box-shadow:none;border:1px solid var(--line);background:linear-gradient(145deg,var(--panel),color-mix(in srgb,var(--panel2) 45%,var(--panel)))}
#research-workspace .q-panel-head{display:flex;align-items:center;gap:5px;padding:6px 8px;margin:0;min-height:31px;font:500 14px/1.2 var(--mm-display);border-bottom:1px solid var(--line);background:transparent;white-space:nowrap}
#research-workspace .q-panel-body{padding:7px 8px;font:400 12px/1.4 var(--mm-text)}
#research-workspace .q-help{border:0;min-height:16px;height:16px;width:16px;padding:0;border-radius:50%;margin-left:auto;font-size:10px;flex-shrink:0;background:color-mix(in srgb,var(--accent) 9%,transparent);color:var(--dim)}
#research-workspace .rw-icon{display:flex;color:var(--accent)}#research-workspace .rw-icon svg{width:14px;height:14px;stroke-width:1.5}
#research-workspace .rw-context{display:flex;align-items:center;gap:10px;padding:5px 8px;margin-bottom:6px;flex-wrap:wrap}
#rw-context{display:flex;gap:5px;align-items:end;flex-shrink:0}#rw-context label{display:grid;gap:2px;font-size:10px;color:var(--dim)}#rw-context #rw-symbol{width:90px;font-size:16px;font-weight:600;text-transform:uppercase}#rw-context #rw-date{width:110px}
#rw-quote{display:flex;gap:10px;align-items:center;flex-wrap:wrap;min-width:160px}#rw-quote strong{font-size:23px;font-weight:500;line-height:1.1}#rw-quote small{display:block;color:var(--dim);font-size:11px}
#rw-context-metrics{display:flex;gap:0;flex:1;justify-content:space-between;min-width:250px}#rw-context-metrics>div{padding:0 9px;border-left:1px solid var(--line);white-space:nowrap}#rw-context-metrics span{display:block;color:var(--dim);font-size:11px}#rw-context-metrics b{font-weight:400;font-size:12px}
#rw-market-state{display:flex;gap:4px}#rw-market-state>div{border:1px solid var(--line);padding:4px 8px;border-radius:5px;text-align:center}#rw-market-state small{display:block;color:var(--dim);font-size:10px}
#research-workspace .rw-tabs{display:flex;gap:1px;align-items:center;border:1px solid var(--line);border-radius:5px;padding:2px;margin-bottom:6px;overflow-x:auto;white-space:nowrap}
.rw-tabs a{padding:5px 12px;border-radius:4px;color:var(--txt);text-decoration:none;font-size:12px}.rw-tabs a:hover,.rw-tabs a[aria-current]{background:color-mix(in srgb,var(--accent) 22%,var(--panel));color:var(--accent)}#rw-status{margin-left:auto;max-width:400px;overflow:hidden;text-overflow:ellipsis;color:var(--dim);font-size:11px;padding-right:6px}
#research-workspace .rw-main-grid{display:grid;grid-template-columns:minmax(0,4fr) minmax(135px,.95fr) minmax(170px,1.12fr) minmax(170px,1.1fr);gap:var(--rw-gap);align-items:stretch}
#research-workspace .rw-middle-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr)) minmax(220px,1.5fr) minmax(220px,1.4fr);gap:var(--rw-gap);margin-top:6px}
#research-workspace .rw-bottom-grid{display:grid;grid-template-columns:1.55fr 1fr 1fr 1fr 1fr;gap:var(--rw-gap);margin-top:6px}
#research-workspace .rw-evidence-grid{display:grid;grid-template-columns:1.4fr 1.15fr 1fr;gap:var(--rw-gap);margin-top:6px}
#research-workspace .rw-final-grid{display:grid;grid-template-columns:1fr 1.7fr;gap:var(--rw-gap);margin-top:6px}
#research-workspace .rw-row{display:flex;justify-content:space-between;align-items:baseline;gap:6px;padding:4px 0;border-bottom:1px solid color-mix(in srgb,var(--line) 60%,transparent)}#research-workspace .rw-row:last-child{border-bottom:0}.rw-row>span{color:var(--dim)}.rw-row b{font-weight:500;text-align:right;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
#research-workspace .rw-note,#research-workspace .q-empty,#research-workspace .rw-help{font:400 12px/1.45 var(--mm-text);color:var(--dim);margin:5px 0 0}#research-workspace .rw-help{padding:8px;border-top:1px solid var(--line);background:var(--panel2)}
#research-workspace .rw-pill{display:block;border:1px solid var(--line);border-radius:4px;padding:4px 7px;margin-top:6px;text-align:center;font-weight:500;background:color-mix(in srgb,var(--accent) 7%,transparent)}
#research-workspace .up{color:var(--green)}#research-workspace .down{color:var(--red)}#research-workspace .neutral{color:var(--dim)}
#research-workspace .rw-primary,#research-workspace button[aria-pressed=true]{background:color-mix(in srgb,var(--accent) 35%,var(--panel));border-color:var(--accent);color:var(--txt)}
#research-workspace .rw-table-wrap{overflow:auto;max-width:100%}#research-workspace table{width:100%;border-collapse:collapse;font-size:12px;font-variant-numeric:tabular-nums}#research-workspace th,#research-workspace td{text-align:right;padding:4px 5px;border-bottom:1px solid var(--line);white-space:nowrap}#research-workspace th{font-weight:400;color:var(--dim);font-size:11px}#research-workspace th:first-child,#research-workspace td:first-child{text-align:left}#research-workspace tbody tr:nth-child(2n){background:color-mix(in srgb,var(--txt) 2%,transparent)}#research-workspace tbody tr:hover{background:color-mix(in srgb,var(--accent) 10%,transparent)}
#research-workspace .rw-donut{position:relative;display:flex;align-items:center;justify-content:center;width:80px;height:80px;margin:2px auto}.rw-donut svg{width:80px;height:80px;transform:rotate(135deg)}.rw-donut circle{fill:none;stroke-width:9;stroke:var(--line)}.rw-donut .rw-arc{stroke:var(--green);stroke-linecap:round}.rw-donut strong{position:absolute;font-size:24px;font-weight:500}.rw-donut small{font-size:10px;color:var(--dim)}
#research-workspace .rw-check{display:flex;gap:6px;align-items:flex-start;padding:5px 0;border-bottom:1px solid var(--line)}.rw-check i{font-style:normal;border-radius:4px;background:color-mix(in srgb,var(--green) 14%,transparent);color:var(--green);padding:0 3px}.rw-check.fail i{color:var(--red);background:color-mix(in srgb,var(--red) 12%,transparent)}
#research-workspace .rw-subtitle{margin:7px 0 3px;font-size:13px;font-weight:500;color:var(--txt)}#research-workspace .rw-segments{display:flex;gap:2px;margin-bottom:5px;overflow-x:auto}#research-workspace .rw-segments button{flex:1;white-space:nowrap}
#research-workspace #rw-chart-panel{display:flex;flex-direction:column}#research-workspace .ph{padding:3px 5px;gap:4px;overflow:visible;white-space:nowrap;flex-wrap:wrap;font-size:12px}
#rw-chart-title{font-size:14px;font-weight:500}#rw-timeframes{display:flex;gap:1px;overflow:auto}.rw-timeframes button{min-height:21px!important;padding:2px 5px!important;font-size:14px!important}
#research-workspace .rw-chart-stage{height:350px;min-height:220px;position:relative;flex:1}#rw-chart{position:absolute;inset:0;height:100%;min-width:0}#rw-chart-source{font-size:10px;color:var(--dim);padding:3px 6px;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
#rw-chart-height{height:5px;cursor:ns-resize;background:color-mix(in srgb,var(--accent) 15%,transparent);touch-action:none}#rw-chart-height:hover{background:var(--accent)}
#rw-drawing-menu{position:relative;font-size:11px}#rw-drawing-menu summary{cursor:pointer;padding:3px 5px;border:1px solid var(--line);border-radius:4px}#rw-tool-content{position:absolute;top:100%;right:0;width:440px;max-width:80vw;background:var(--panel);border:1px solid var(--line);z-index:30;padding:5px;white-space:normal}#rw-tool-content .tc-toolbar{display:flex;flex-wrap:wrap;gap:4px;border:0;padding:0;background:transparent}#rw-tool-content .tc-status{display:none}#rw-tool-content .tc-indicators{position:static;display:flex;flex-wrap:wrap;box-shadow:none}#rw-tool-content .tc-indicator-menu{position:static}#rw-tool-content .tc-help{font-size:12px!important}#rw-tool-content .tc-indicator-menu:not([open]) .tc-indicators{display:none}
#research-workspace #rw-chart-panel.rw-expanded{position:fixed;width:80vw;height:62.5vh;left:10vw;top:18.75vh;z-index:3000;box-shadow:0 0 0 100vmax color-mix(in srgb,var(--bg) 75%,transparent);margin:0}#rw-chart-panel.rw-expanded .rw-chart-stage{height:auto;min-height:0}#rw-chart-panel.rw-expanded #rw-chart-height{display:none}
#research-workspace .rw-level{display:grid;grid-template-columns:1fr auto;gap:6px;width:100%;text-align:left;margin:0;border:0;border-bottom:1px solid var(--line);background:transparent;border-radius:0;padding:5px 0}#research-workspace .rw-level:hover{background:color-mix(in srgb,var(--accent) 12%,transparent)}
#research-workspace .rw-risk-inputs{display:grid;grid-template-columns:1fr 1fr;gap:4px}.rw-risk-inputs label{display:grid;gap:2px;color:var(--dim);font-size:11px}.rw-risk-inputs input{width:100%;min-width:0}#rw-risk-output{margin-top:5px}
#research-workspace .rw-news{padding:5px 0;border-bottom:1px solid var(--line)}.rw-news a{color:var(--txt);text-decoration:none}.rw-news small{display:block;color:var(--dim);font-size:11px}.rw-news p{font-size:12px;margin:3px 0}
#research-workspace .rw-meter{height:6px;background:var(--line);border-radius:8px;overflow:hidden;margin-top:4px}.rw-meter i{display:block;height:100%;background:var(--green);border-radius:8px}
#research-workspace .rw-footer{display:flex;justify-content:space-between;gap:12px;align-items:center;border:1px solid var(--line);border-radius:5px;margin-top:6px;padding:6px 9px;font-size:12px}#research-workspace .rw-footer a{color:var(--green)}
.rw-sr{position:absolute!important;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
@media(min-width:1900px){#research-workspace .rw-chart-stage{height:400px}#research-workspace .rw-middle-grid{grid-template-columns:repeat(4,minmax(0,1fr)) minmax(250px,1.5fr) minmax(250px,1.4fr)}}
@media(max-width:1300px){#research-workspace .rw-main-grid{grid-template-columns:minmax(0,3fr) minmax(150px,1fr) minmax(180px,1.1fr)}#rw-market-panel{grid-column:1/-1}#rw-market{display:grid;grid-template-columns:1fr 1fr;gap:10px}#research-workspace .rw-middle-grid{grid-template-columns:repeat(4,minmax(0,1fr))}#rw-options-panel,#rw-chain-panel{grid-column:span 2}#research-workspace .rw-bottom-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:900px){#research-workspace .rw-main-grid{grid-template-columns:minmax(0,1fr) minmax(170px,.55fr)}#rw-chart-panel{grid-column:1/-1}#rw-market-panel{grid-column:auto}#rw-market{display:block}#research-workspace .rw-middle-grid{grid-template-columns:repeat(2,minmax(0,1fr))}#research-workspace .rw-evidence-grid,#research-workspace .rw-final-grid{grid-template-columns:1fr 1fr}#rw-regime-panel,#rw-summary-panel{grid-column:1/-1}#research-workspace .rw-bottom-grid{grid-template-columns:repeat(2,minmax(0,1fr))}#rw-context-metrics{overflow:auto;min-width:0}#rw-market-state{display:none}}
@media(max-width:600px){#research-workspace{padding:5px}#research-workspace .rw-main-grid,#research-workspace .rw-middle-grid,#research-workspace .rw-bottom-grid,#research-workspace .rw-evidence-grid,#research-workspace .rw-final-grid{grid-template-columns:minmax(0,1fr)}#research-workspace .rw-panel{grid-column:auto}#rw-context{flex-wrap:wrap}#rw-context-metrics{width:100%;flex-basis:100%}#rw-quote{width:100%}#rw-market{display:block}#research-workspace .rw-footer{flex-wrap:wrap}#rw-tool-content{left:0;right:auto;max-width:75vw}#research-workspace .rw-chart-stage{height:320px}#research-workspace #rw-chart-panel.rw-expanded{width:96vw;height:52.083333vh;left:2vw;top:23.958333vh}}
#research-workspace #rw-chart{position:absolute!important;inset:0;height:100%!important}#research-workspace .rw-chart-stage{flex:none;height:350px}#research-workspace #rw-chart-panel.rw-expanded .rw-chart-stage{flex:1;height:auto;min-height:0}
#research-workspace .rw-middle-grid{align-items:start}#research-workspace .rw-evidence-grid,#research-workspace .rw-final-grid{align-items:start}#research-workspace .rw-main-grid,#research-workspace .rw-middle-grid,#research-workspace .rw-bottom-grid,#research-workspace .rw-evidence-grid,#research-workspace .rw-final-grid{margin-top:6px}#research-workspace .rw-tabs{margin-top:6px}
#research-workspace .rw-regime-map{display:flex;justify-content:space-between;border-bottom:5px solid transparent;border-image:linear-gradient(90deg,var(--red),var(--line),var(--green)) 1;padding-bottom:3px;margin-bottom:6px;color:var(--dim)}
#rw-chart-legend{position:absolute;left:6px;top:3px;z-index:3;pointer-events:none;font-size:10px;line-height:1.3;color:var(--dim);text-shadow:0 0 3px var(--panel)}#rw-chart-legend>div:first-child{color:var(--txt)}
#research-workspace{display:block}#research-workspace .rw-main-grid{margin-top:0}#research-workspace .rw-context{margin-bottom:6px}#research-workspace .rw-tabs{margin-top:0;margin-bottom:6px}#research-workspace .rw-chart-stage{height:310px}
#research-workspace .rw-main-grid{grid-template-columns:var(--rw-chart-width,minmax(0,4fr)) minmax(135px,.95fr) minmax(170px,1.12fr) minmax(170px,1.1fr)}#research-workspace #rw-chart-panel{position:relative}#rw-chart-width{position:absolute;right:0;top:32px;bottom:8px;width:6px;cursor:ew-resize;z-index:4;touch-action:none}#rw-chart-width:hover{background:color-mix(in srgb,var(--accent) 40%,transparent)}#rw-chart-panel.rw-expanded #rw-chart-width{display:none}#research-workspace .ph{flex-wrap:nowrap;overflow-x:auto}#rw-tool-content{z-index:4000}@media(max-width:1300px){#rw-chart-width{display:none}#research-workspace .rw-main-grid{grid-template-columns:minmax(0,3fr) minmax(150px,1fr) minmax(180px,1.1fr)}}@media(max-width:900px){#research-workspace .rw-main-grid{grid-template-columns:minmax(0,1fr) minmax(170px,.55fr)}}@media(max-width:600px){#research-workspace .rw-main-grid{grid-template-columns:minmax(0,1fr)}}
:scope[data-quantos-reference=research] body.quantos-group-navigation:has(#research-workspace){padding-left:188px!important}:scope[data-quantos-reference=research] body:has(#research-workspace) #lnav,:scope[data-quantos-reference=research] body:has(#research-workspace) #lnav:hover{width:188px!important;min-width:188px!important}:scope[data-quantos-reference=research] body:has(#research-workspace) #lnav .ln-logo{justify-content:flex-start;padding:8px 12px;height:52px;gap:8px}:scope[data-quantos-reference=research] body:has(#research-workspace) #lnav .ln-logo b{display:block!important;font:600 21px var(--mm-display)}:scope[data-quantos-reference=research] body:has(#research-workspace) #terminal-app-rail>:is(a,button){flex-direction:row;justify-content:flex-start;min-height:33px;gap:9px;padding:6px 9px;text-align:left}:scope[data-quantos-reference=research] body:has(#research-workspace) #terminal-app-rail b{font-size:13px;line-height:1.3}:scope[data-quantos-reference=research] body:has(#research-workspace) #terminal-app-rail svg{width:17px;height:17px}:scope[data-quantos-reference=research] body:has(#research-workspace) #terminal-app-rail{gap:3px;padding:7px}@media(max-width:900px){:scope[data-quantos-reference=research] body.quantos-group-navigation:has(#research-workspace){padding-left:60px!important}:scope[data-quantos-reference=research] body:has(#research-workspace) #lnav,:scope[data-quantos-reference=research] body:has(#research-workspace) #lnav:hover{width:60px!important;min-width:60px!important}:scope[data-quantos-reference=research] body:has(#research-workspace) #lnav .ln-logo b{display:none!important}:scope[data-quantos-reference=research] body:has(#research-workspace) #lnav .ln-logo{justify-content:center;padding:5px}:scope[data-quantos-reference=research] body:has(#research-workspace) #terminal-app-rail>:is(a,button){flex-direction:column;padding:5px 0;gap:3px}:scope[data-quantos-reference=research] body:has(#research-workspace) #terminal-app-rail b{font-size:10px}}
#research-workspace .rw-chart-stage{flex:1;min-height:310px}#research-workspace #rw-chart-panel.rw-expanded .rw-chart-stage{min-height:0}
#quantos-subnav #rw-context{margin-left:auto;padding:0 2px;align-items:center}#rw-context :is(input,button){font:400 12px var(--mm-text);color:var(--txt);background:var(--panel2);border:1px solid var(--line);border-radius:4px;padding:3px 6px;min-height:24px}#rw-context button{cursor:pointer}#rw-context #rw-theme svg{width:14px;height:14px;display:block}#rw-context>.q-help{width:22px;min-width:22px;padding:0}#rw-quote>div:first-child strong{font-size:20px}body:has(#research-workspace) #lnav .ln-logo b{font-family:Inter,Arial,sans-serif}

/* Keep research entry in document flow, outside the shared sticky navigation. */
#research-workspace .rw-context{position:relative;isolation:isolate;overflow:visible}#research-workspace #rw-context{flex:0 0 100%;width:100%;margin:0;padding:0 0 5px;border-bottom:1px solid var(--line);flex-wrap:wrap}#research-workspace #rw-context #rw-symbol{width:140px}
#research-workspace .rw-panel[hidden],#research-workspace [class$="-grid"][hidden]{display:none!important}
#research-workspace .rw-layout-adjusted:not(.rw-main-grid){grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr))}#research-workspace .rw-layout-adjusted:not(.rw-main-grid)>.rw-panel{grid-column:auto}
#research-workspace .rw-main-grid.rw-layout-adjusted{grid-template-columns:repeat(auto-fit,minmax(min(300px,100%),1fr))}#research-workspace .rw-main-grid.rw-layout-adjusted>#rw-chart-panel{grid-column:1/-1}
#rw-customize-dialog{width:min(540px,94vw);max-height:85vh;padding:12px;background:var(--panel);color:var(--txt);border:1px solid var(--line);border-radius:8px;font:400 12px/1.4 var(--mm-text)}#rw-customize-dialog::backdrop{background:#0008}#rw-customize-dialog h2{font:600 14px var(--mm-text);margin:0}#rw-customize-dialog .q-panel-head{display:flex;justify-content:space-between}#rw-customize-dialog fieldset{border:1px solid var(--line);padding:5px 8px;margin:8px 0}#rw-customize-dialog legend{font-weight:600}#rw-customize-dialog button{background:var(--panel2);color:var(--txt);border:1px solid var(--line);border-radius:4px;padding:4px 8px;font:inherit;cursor:pointer}#rw-customize-dialog button:disabled{opacity:.35;cursor:default}.rw-customize-row{display:flex;align-items:center;gap:4px;padding:3px 0;border-bottom:1px solid var(--line)}.rw-customize-row label{display:flex;align-items:center;gap:7px;flex:1}.rw-customize-actions{display:flex;gap:8px;align-items:center;justify-content:space-between;position:sticky;bottom:0;background:var(--panel);padding-top:8px}

#research-workspace>div[hidden]{display:none!important}


/* Normal chart owns half the viewport area; supporting panels follow below. */
#research-workspace .rw-main-grid,#research-workspace .rw-main-grid.rw-layout-adjusted{grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}
#research-workspace #rw-chart-panel{grid-column:1/-1;justify-self:start;min-width:0;align-self:start}
#research-workspace #rw-chart-panel .rw-chart-stage{flex:1 1 0;height:auto!important;min-height:0}
#research-workspace #rw-chart-panel.rw-expanded{width:80vw!important;height:62.5vh!important}
@media(max-width:600px){#research-workspace .rw-main-grid,#research-workspace .rw-main-grid.rw-layout-adjusted{grid-template-columns:1fr}#research-workspace #rw-chart-panel.rw-expanded{width:96vw!important;height:52.083333vh!important}}

}

/* Enrolled operational pages: one component appearance over retained layout.
   These rules use shared roles; they contain no route-specific calculations. */
.q-design-model[data-q-system][data-q-page]{--text:var(--txt);--mm-text:Inter,Arial,sans-serif!important;--mm-display:var(--mm-text)!important;--ap-radius:var(--q-model-radius);font-family:var(--mm-text)}
.q-design-model[data-q-system][data-q-page] :is(.q-panel,.q-card){border-radius:var(--q-model-radius)!important;background:linear-gradient(130deg,color-mix(in srgb,var(--panel2) 55%,var(--panel)),var(--panel) 65%)!important;border-color:var(--line)!important}
.q-design-model[data-q-system][data-q-page] .q-panel-head{font:600 16px/1.4 var(--mm-text)!important;padding:8px 10px!important;min-height:38px}
.q-design-model[data-q-system][data-q-page] .q-metric-label{font:500 12px/1.4 var(--mm-text)!important;color:var(--dim)}
.q-design-model[data-q-system][data-q-page] .q-metric-value{font:600 24px/1.2 var(--mm-text)!important;letter-spacing:-.4px;font-variant-numeric:tabular-nums}
.q-design-model[data-q-system][data-q-page] .q-button{font-family:var(--mm-text)!important;font-size:14px!important;border-radius:4px}
.q-design-model[data-q-system][data-q-page] .q-table{font-family:var(--mm-text)!important;font-size:14px!important}
.q-design-model[data-q-system][data-q-page] .q-table th{font:500 12px/1.4 var(--mm-text)!important;padding:5px 7px}
.q-design-model[data-q-system][data-q-page] .q-table td{font-size:14px!important}
.q-design-model[data-q-system][data-q-page] :is(.q-prose,.q-note){font:400 14px/1.5 var(--mm-text)!important}
.q-design-model[data-q-system][data-q-page] h1{font:600 22px/1.3 var(--mm-display)!important}
@media(max-width:650px){.q-design-model[data-q-system][data-q-page] .q-metric-value{font-size:22px!important}}
.q-design-model[data-q-system][data-q-page] .q-info{display:inline-grid;place-items:center;width:20px;height:20px;min-height:20px;padding:0!important;border-radius:50%!important;font:500 13px/1.3 var(--mm-text)!important}
@media(max-width:650px){.q-design-model[data-q-system] .q-metric-breakdown{display:flex!important;flex-direction:column!important;gap:4px!important}.q-design-model[data-q-system] .q-metric-breakdown>span{display:flex;align-items:center;gap:4px;min-width:0;width:100%;white-space:nowrap}.q-design-model[data-q-system] .q-metric-breakdown>span>b{margin-left:auto}}

/* Trading Discipline workspace: forms, rule registries and evidence pages. Contained by data-q-page so other enrolled pages are unaffected. */
.q-design-model[data-q-system][data-q-page=discipline]{
 /* The navigation widget's visual system loads quantos-page.css on every app page; enrolled pages replace these of its rules. */
 & .q-icon{background:none;border-radius:0;color:inherit}
 & .q-toolbar{padding:0;border:0;border-radius:0;background:transparent}
 & .q-toolbar .q-field{letter-spacing:0;color:var(--dim)}
 & .q-check{letter-spacing:0;color:var(--txt)}
 & .q-check input{min-height:0;padding:0}
 & .q-note:not(.q-alert,.q-details){padding:0;border:0;border-radius:0;background:none}
 & .q-note.q-details{border-left:0;border-radius:0;background:none}
 & .q-key-values{grid-template-columns:minmax(0,1fr)}
 & .q-metric{grid-template-columns:minmax(0,1fr) auto}
 & .q-metric>.q-card-label{grid-column:1;grid-row:auto;padding-right:0}
 & .q-metric>:is(.q-card-value,.q-card-sub){grid-column:1/-1;grid-row:auto;padding-right:0}
 & a.dn{color:var(--red)}
 & a.up{color:var(--green)}
 & svg :is(a,.q-link){color:inherit}
 & .q-empty{text-align:left}
 & .q-table b{font-weight:600}
 & .q-panel-body,& .q-toolbar{font-size:var(--q-body-size)}
 & .q-panel-body:not(.q-stack)>:not([hidden])~:not([hidden]){margin-top:8px}
 & .q-details>div{margin-top:6px}
 & .q-details b,& .q-note b,& .q-alert b{font-weight:600}
 & .q-slot:empty{display:none}
 & .q-segment{flex-wrap:wrap;max-width:100%}
 & .q-link{display:inline-flex;align-items:center;min-height:0;padding:0;border:0;border-radius:0;background:none;box-shadow:none;color:var(--accent);font:500 12px/1.4 var(--mm-text);cursor:pointer}
 & .q-link:hover{background:none;color:var(--accent);text-decoration:underline}
 & .q-filter-bar{align-items:flex-end;padding:6px 9px;border:1px solid var(--line);border-radius:var(--q-model-radius)}
 & .q-filter-bar>.q-info{align-self:center}
 & .q-toolbar>.q-field{flex:0 1 170px}
 & .q-toolbar>.q-field-wide{flex:2 1 280px}
 & .q-filter-bar>.q-field-wide{flex:0 1 300px}
 & .q-toolbar.q-field-grid>.q-field{flex:none}
 & .q-field-dense{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}
 & .q-check{min-height:24px}
 & .q-metric-tools{display:inline-flex;align-items:center;gap:6px}
 & .q-metric>:is(.q-note,.q-card-action){grid-column:1/-1}
 & .q-metric-value svg{margin-right:6px;vertical-align:middle}
 & .q-metric-text{white-space:normal;font-size:18px}
 & .q-card-action{margin-top:auto;padding-top:3px}
 & .q-metric-detail>summary{cursor:pointer}
 & .q-table input[type=checkbox]{width:14px;height:14px;margin:0;accent-color:var(--accent)}
 & .q-table .q-field :is(input,select){min-height:26px;padding:3px 6px}
 & .q-table-cap{max-height:520px}
 & .q-table-xl{min-width:1060px}
 & .q-col-fill{width:36%}
 & .q-panel-body:has(>.q-fill-chart){display:flex;flex-direction:column}
 & .q-grid-equal>.q-panel>.q-panel-body:has(>.q-fill-chart){flex:1}
 & .q-fill-chart{display:block;flex:1 1 110px;min-height:110px}
 & .q-fill-chart+.q-toolbar{justify-content:space-between}
}
@media(max-width:650px){.q-design-model[data-q-system][data-q-page=discipline]{
 & .q-page-heading>.q-toolbar{width:100%}
 & .q-toolbar>.q-field{flex:1 1 130px}
 & .q-field-dense{grid-template-columns:repeat(2,minmax(0,1fr))}
 & .q-metric-text{font-size:16px}
 & .q-metric-label{min-width:0;overflow-wrap:break-word}
 & .q-metric-tools>.q-icon-tile{display:none}
}}
/* Local QuantLabs account flow; contained components reuse the common tokens. */
.ql-auth{min-height:100dvh;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:22px;padding:28px 18px;background:var(--bg);color:var(--txt);font-family:var(--mm-text,Inter,Arial,sans-serif)}
.ql-auth-brand{display:flex;align-items:center;gap:10px;color:var(--txt);text-decoration:none;font-size:24px;font-weight:700}
body[data-auth-mode]{margin:0}
.q-design-model.ql-auth[data-q-system]{--q-title-size:26px}
.ql-auth-card{width:min(100%,420px);box-sizing:border-box;padding:28px}
.ql-auth-card.ql-directory{width:min(100%,900px)}
.ql-auth[data-q-system] .ql-old-links{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;margin:24px 0}
.ql-old-links a{display:block;padding:16px;text-decoration:none}
.ql-auth-card h1{font-size:26px;line-height:1.2;margin:12px 0}
.ql-auth-card form{display:grid;gap:16px;margin-top:24px}
.ql-auth-card .q-field{display:grid;gap:7px;font-size:13px}
.ql-auth-card input{width:100%;box-sizing:border-box;min-height:42px;padding:10px 12px;font:inherit;color:var(--txt);background:var(--panel2);border:1px solid var(--line);border-radius:6px}
.ql-auth-card [hidden]{display:none!important}
.ql-auth-submit{width:100%;min-height:42px}
.ql-auth-card a{color:var(--accent)}
.ql-auth-card #auth-status{margin:0;min-height:20px}
.ql-session{display:flex;align-items:center;justify-content:flex-end;gap:8px;margin-left:auto;font:400 12px var(--mm-text,Inter,Arial,sans-serif);white-space:nowrap}
.ql-session button{font:inherit;cursor:pointer;padding:5px 8px;border:1px solid var(--line);border-radius:5px;color:var(--txt);background:var(--panel)}
.ql-old-app{display:flex;align-items:center;gap:8px;margin-top:14px;padding:10px 12px;font-size:12px;font-weight:600;color:var(--txt)!important;text-decoration:none;border:1px solid var(--line);border-radius:6px}
.ql-old-app svg{color:var(--accent);flex:none}
.ql-old-app:hover{background:var(--panel2)}
.ql-old-app:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.ql-providers{display:grid;gap:10px;margin-top:20px}
.ql-provider{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:42px}
.ql-provider:disabled{opacity:.55;cursor:not-allowed}
.ql-divider{display:flex;align-items:center;gap:10px;margin:6px 0 0;color:var(--dim);font-size:12px}
.ql-divider::before,.ql-divider::after{content:"";flex:1;border-top:1px solid var(--line)}
.ql-providers + form{margin-top:16px}
.ql-captcha{display:grid;grid-template-columns:1fr auto;gap:8px}
.ql-check{display:flex;align-items:flex-start;gap:8px;font-size:12px;line-height:1.5}
.ql-check input{width:auto!important;min-height:0!important;margin:3px 0 0;flex:none}
.ql-account input:not([type=checkbox]){width:100%;box-sizing:border-box;min-height:36px;padding:8px 10px;font:inherit;color:var(--txt);background:var(--panel2);border:1px solid var(--line);border-radius:6px}
.ql-account .q-panel-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.ql-tabs{display:flex;flex-wrap:wrap;gap:4px;border-bottom:1px solid var(--line)}
.ql-tabs button{font:inherit;font-size:12px;font-weight:600;cursor:pointer;padding:8px 12px;color:var(--dim);background:none;border:0;border-bottom:2px solid transparent;margin-bottom:-1px}
.ql-tabs button[aria-selected=true]{color:var(--txt);border-bottom-color:var(--accent)}
.ql-tabs button:focus-visible,.ql-info:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.ql-info{flex:none;width:20px;height:20px;padding:0;font:600 11px var(--mm-text,Inter,Arial,sans-serif);color:var(--dim);background:none;border:1px solid var(--line);border-radius:50%;cursor:pointer}
.ql-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:12px}
.ql-form .q-field{display:grid;gap:6px;font-size:12px}
.ql-form .ql-check,.ql-actions{grid-column:1/-1}
.ql-actions{display:flex;flex-wrap:wrap;gap:8px;margin-top:4px}
.ql-account a.q-button{text-decoration:none;display:inline-flex;align-items:center}
.ql-danger{color:var(--red,#d9534f)!important;border-color:currentColor!important}
.ql-plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));gap:12px}
.ql-plan{display:flex;flex-direction:column;align-items:flex-start;gap:8px;padding:14px}
.ql-plan h3{margin:0;font-size:12px;font-weight:600}
.ql-plan ul{margin:0;padding-left:16px;font-size:12px;line-height:1.6;flex:1}
.ql-price{margin:0;font-size:14px;font-weight:600}
.ql-plan-status{display:flex;flex-wrap:wrap;gap:6px;margin:0 0 8px}
@media(max-width:600px){.ql-auth-card{padding:22px}.ql-session{gap:4px;font-size:11px;white-space:normal}.ql-session span{max-width:120px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}}
/* Premarket priority layout: chart is retained; growing evidence expands below. */
#research-workspace[data-q-page="premarket"] :is(.rw-main-grid,.rw-middle-grid,.rw-evidence-grid){grid-template-columns:repeat(3,minmax(0,1fr));align-items:start}
#research-workspace[data-q-page="premarket"] .rw-bottom-grid{grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
#research-workspace[data-q-page="premarket"] .rw-final-grid{display:grid;grid-template-columns:minmax(0,1fr);align-items:start}
#research-workspace[data-q-page="premarket"] :is(.rw-middle-grid,.rw-bottom-grid,.rw-evidence-grid,.rw-final-grid)>.rw-panel{grid-column:auto;min-width:0}
#research-workspace[data-q-page="premarket"] .rw-disclosure>summary{display:flex;align-items:center;gap:8px;list-style:none;cursor:pointer}
#research-workspace[data-q-page="premarket"] .rw-disclosure>summary::-webkit-details-marker{display:none}
#research-workspace[data-q-page="premarket"] .rw-disclosure>summary::after{content:'+';margin-left:auto;font-size:18px;color:var(--dim)}
#research-workspace[data-q-page="premarket"] .rw-disclosure[open]>summary::after{content:'−'}
#research-workspace[data-q-page="premarket"] .rw-disclosure:not([open])>summary{border-bottom:0}
#research-workspace[data-q-page="premarket"] .rw-disclosure>summary .q-help{margin-left:4px}
#research-workspace[data-q-page="premarket"] #rw-earnings .q-prose,#research-workspace[data-q-page="premarket"] #rw-sentiment .q-prose{margin:8px 0;line-height:1.45}
#research-workspace[data-q-page="premarket"] .rw-sentiment-benchmarks{display:grid;grid-template-columns:1fr 1fr;gap:0 10px}
#research-workspace[data-q-page="premarket"] #rw-sentiment>.q-status{margin-bottom:8px}
@media(max-width:1000px){#research-workspace[data-q-page="premarket"] :is(.rw-main-grid,.rw-middle-grid,.rw-evidence-grid){grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){#research-workspace[data-q-page="premarket"] :is(.rw-main-grid,.rw-middle-grid,.rw-bottom-grid,.rw-evidence-grid,.rw-final-grid){grid-template-columns:minmax(0,1fr)}}
/* Stock Research: one shared chart/state with bounded, independently routed tab context. */
#research-workspace[data-stock-research]{font-family:var(--mm-text,Inter,sans-serif);font-size:14px}
#research-workspace[data-stock-research] [hidden]{display:none!important}
#research-workspace[data-stock-research] :is(h1,h2,button,input,select,textarea,p,a,span,small,b,strong,summary,th,td,label){font-family:var(--mm-text,Inter,sans-serif)!important}
#research-workspace[data-stock-research] .sr-title{display:flex;gap:12px;align-items:baseline;justify-content:space-between;margin-bottom:10px}
#research-workspace[data-stock-research] .sr-title h1{font-size:22px!important;margin:0}
#research-workspace[data-stock-research] .sr-title span{color:var(--dim);font-size:12px}
#research-workspace[data-stock-research] .sr-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px;margin:8px 0}
#research-workspace[data-stock-research] .sr-actions label{display:flex;align-items:center;gap:6px}
#research-workspace[data-stock-research] .sr-actions [role=status]{color:var(--dim);font-size:12px}
#research-workspace[data-stock-research] .rw-tabs{position:sticky;top:0;z-index:20;background:var(--bg);flex-wrap:nowrap;overflow-x:auto;padding:7px 0}
#research-workspace[data-stock-research] .rw-tabs a{white-space:nowrap;min-height:32px;display:flex;align-items:center}
#research-workspace[data-stock-research] .rw-tabs a[aria-current=page]{background:var(--accent);color:var(--bg);border-color:var(--accent)}
#research-workspace[data-stock-research] .sr-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px;margin:8px 0}
#research-workspace[data-stock-research] .sr-kpis button{display:flex;flex-direction:column;align-items:flex-start;gap:5px;padding:12px;background:var(--panel);border:1px solid var(--line);border-radius:var(--q-radius,8px);text-align:left;min-width:0;height:auto}
#research-workspace[data-stock-research] .sr-kpis strong{font-size:20px;color:var(--cyan,var(--accent))}
#research-workspace[data-stock-research] .sr-kpis :is(span,small){font-size:12px;color:var(--dim);white-space:normal}
#research-workspace[data-stock-research] :is(.rw-main-grid,.rw-middle-grid,.rw-bottom-grid,.rw-evidence-grid,.rw-final-grid,.sr-extra-grid){display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin:10px 0;align-items:stretch}
#research-workspace[data-stock-research] .rw-main-grid #rw-chart-panel{grid-column:1/-1;max-width:100%}
#research-workspace[data-stock-research] .rw-main-grid .rw-panel:not(.chart-panel){grid-column:auto}
#research-workspace[data-stock-research] .sr-panel>div{padding:12px;min-width:0}
#research-workspace[data-stock-research] .sr-panel:has(#sr-chain),#research-workspace[data-stock-research] .sr-panel:has(#sr-exposure),#research-workspace[data-stock-research] .sr-panel:has(#sr-setup),#research-workspace[data-stock-research] .sr-panel:has(#sr-technicals){grid-column:1/-1}
#research-workspace[data-stock-research] :is(.rw-note,.rw-help,.rw-source){font-size:14px!important;line-height:1.5!important;font-weight:400}
#research-workspace[data-stock-research] .rw-table-wrap{max-width:100%;overflow:auto}
#research-workspace[data-stock-research] table{width:100%;border-collapse:collapse;font-size:12px}
#research-workspace[data-stock-research] :is(th,td){padding:7px;border-bottom:1px solid var(--line);text-align:left;white-space:nowrap}
#research-workspace[data-stock-research] .sr-form-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
#research-workspace[data-stock-research] .sr-form-grid label{display:flex;flex-direction:column;gap:5px;font-size:12px;min-width:0}
#research-workspace[data-stock-research] :is(input,select,textarea){min-width:0;max-width:100%;box-sizing:border-box}
#research-workspace[data-stock-research] textarea{width:100%;display:block;background:var(--panel2);color:var(--txt);border:1px solid var(--line)}
#research-workspace[data-stock-research] .sr-checks{display:flex;flex-wrap:wrap;gap:12px;margin:12px 0}
#research-workspace[data-stock-research] .sr-checks label{display:flex;gap:6px;align-items:center}
#research-workspace[data-stock-research] .sr-bars>div{display:flex;align-items:center;gap:8px;min-height:26px;font-size:12px}
#research-workspace[data-stock-research] .sr-bars span{width:55px;flex:none}
#research-workspace[data-stock-research] .sr-bars i{height:12px;background:var(--green)}
#research-workspace[data-stock-research] .sr-bars i.down{background:var(--red)}
#sr-compare-dialog{background:var(--panel);color:var(--txt);border:1px solid var(--line);max-width:90vw;max-height:85vh;overflow:auto;font:400 12px/1.5 var(--mm-text,Inter,sans-serif)}
#sr-compare-dialog table{border-collapse:collapse}#sr-compare-dialog :is(th,td){padding:8px;border-bottom:1px solid var(--line)}
#sr-utility{background:var(--panel);color:var(--txt);border:1px solid var(--line);font:400 12px/1.5 var(--mm-text);max-width:min(700px,90vw);max-height:85vh;overflow:auto}#sr-utility :is(button,input,select){font:inherit}#sr-utility label.sr-preference{display:flex;gap:8px;padding:5px}#sr-utility table{width:100%;border-collapse:collapse}#sr-utility :is(th,td){padding:6px;border-bottom:1px solid var(--line)}
@media(max-width:600px){#research-workspace[data-stock-research] .sr-kpis{display:flex;overflow:auto;align-items:stretch;scroll-snap-type:x proximity}#research-workspace[data-stock-research] .sr-kpis button{flex:0 0 175px;scroll-snap-align:start}#research-workspace[data-stock-research] .sr-kpis strong{font-size:18px}}
@media(max-width:1000px){#research-workspace[data-stock-research] .sr-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}#research-workspace[data-stock-research] .sr-form-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:600px){#research-workspace[data-stock-research] :is(.rw-main-grid,.rw-middle-grid,.rw-bottom-grid,.rw-evidence-grid,.rw-final-grid,.sr-extra-grid){grid-template-columns:minmax(0,1fr)}#research-workspace[data-stock-research] .sr-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}#research-workspace[data-stock-research] .sr-title{display:block}#research-workspace[data-stock-research] .sr-title span{display:none}#research-workspace[data-stock-research] .sr-form-grid{grid-template-columns:minmax(0,1fr)}}
/* Shared analytical evidence: session-axis tint and exposure heatmap. */
.q-session-axis{position:absolute;left:0;bottom:0;height:26px;pointer-events:none;z-index:3}
.q-session-legend{font:400 12px var(--mm-text);white-space:nowrap}.q-session-legend i{background:color-mix(in srgb,var(--gold) 18%,transparent);font-style:normal}.q-session-legend b{background:color-mix(in srgb,var(--accent) 18%,transparent);font-weight:400}
#stocks-dashboard-workspace #fund{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
#stocks-dashboard-workspace .card :is(.sub,.lbl){font-size:12px!important;line-height:1.4}
#stocks-dashboard-workspace .cbar{display:flex;flex-wrap:nowrap;overflow:auto;align-items:center;gap:6px;min-width:0}
#stocks-dashboard-workspace .cbar>*{flex-shrink:0}#stocks-dashboard-workspace .cbar #chBadge{max-width:360px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#stocks-dashboard-workspace .card .val{font-size:20px}#stocks-dashboard-workspace .top{align-items:center}
@media(min-width:1800px){#stocks-dashboard-workspace #fund{grid-template-columns:repeat(8,minmax(0,1fr))}}
@media(max-width:700px){#stocks-dashboard-workspace #fund{grid-template-columns:repeat(2,minmax(0,1fr))}#stocks-dashboard-workspace{padding:8px}#stocks-dashboard-workspace .top{gap:8px}}
#research-workspace[data-stock-research] .sr-heatmap table{table-layout:fixed;min-width:800px}
#research-workspace[data-stock-research] .sr-heatmap caption{padding:10px;text-align:left;font-size:12px}
#research-workspace[data-stock-research] .sr-heatmap :is(th,td){padding:3px;text-align:center}
#research-workspace[data-stock-research] .sr-heatmap th:first-child{width:100px;position:sticky;left:0;background:var(--panel);z-index:1}
#research-workspace[data-stock-research] .sr-heat-cell{display:block;width:100%;min-width:48px;padding:8px 3px;background:var(--panel2);font-variant-numeric:tabular-nums}
#research-workspace[data-stock-research] .sr-heat-cell.up{background:color-mix(in srgb,var(--green) var(--heat),var(--panel));color:var(--txt)}
#research-workspace[data-stock-research] .sr-heat-cell.down{background:color-mix(in srgb,var(--red) var(--heat),var(--panel));color:var(--txt)}

/* Premarket Intelligence: Dashboard rail, ticker typed in the heading, date and Customize in the top bar as on Accounts. */
#research-workspace[data-ticker-heading] #rw-context{display:block;flex:0 0 auto;width:auto;margin:0;padding:0;border:0}
#research-workspace[data-ticker-heading] .rw-ticker-field{display:flex;align-items:center;gap:4px}
#research-workspace[data-ticker-heading] .rw-ticker-field>.q-help{margin:0}
#research-workspace[data-ticker-heading] #rw-context #rw-symbol{box-sizing:content-box;field-sizing:content;width:auto;min-width:3ch;max-width:14ch;min-height:0;margin-left:-5px;padding:1px 4px;font:500 20px/1.1 var(--mm-text);color:var(--txt);text-transform:uppercase;background:transparent;border:1px solid var(--line);border-radius:4px}
#research-workspace[data-ticker-heading] #rw-context #rw-symbol:hover{border-color:var(--accent)}
#research-workspace[data-ticker-heading] #rw-context #rw-symbol:focus{outline:2px solid var(--accent);outline-offset:0;border-color:var(--accent);background:var(--panel)}
#research-workspace[data-ticker-heading] #rw-chart-legend{display:none}
#research-workspace[data-ticker-heading] #rw-chart-panel .ph{flex-wrap:wrap;overflow:visible}
#research-workspace[data-ticker-heading] #rw-tool-content .tc-row{flex-wrap:wrap}
#research-workspace[data-ticker-heading] #rw-chart-panel .ph>#rw-drawing-menu{flex:0 0 100%;order:1}
@media(min-width:1301px){#research-workspace[data-ticker-heading] .rw-main-grid{grid-template-columns:var(--rw-chart-width,minmax(0,2.8fr)) repeat(3,minmax(0,.8fr));align-items:stretch}
#research-workspace[data-ticker-heading] #rw-chart-panel:not(.rw-expanded){grid-column:auto;justify-self:stretch;align-self:start;width:auto;max-width:none;min-width:0}}
#rw-ticker-name{display:block;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--dim);font-size:11px}
html[data-quantos-reference=premarket] body.quantos-group-navigation #terminal-app-rail>:is(a,button):not([aria-current=page]):not(:hover){color:var(--dim)}
@media(min-width:681px){body:has(#rw-top-tools) #quantos-brand{padding:4px 0 4px 27px}}
#research-workspace[data-ticker-heading] #rw-context-metrics{min-width:0;max-width:100%;overflow-x:auto}
#rw-top-tools{position:fixed;top:0;right:10px;z-index:9996;display:flex;align-items:center;gap:8px;height:46px;color:var(--dim);font:400 11px var(--mm-text);font-variant-numeric:tabular-nums}
#rw-top-tools .rw-session{position:relative;display:inline-flex;align-items:center;padding:4px 6px;border:1px solid transparent;border-radius:5px;cursor:pointer;white-space:nowrap}
#rw-top-tools .rw-session:hover{border-color:var(--line);color:var(--txt)}
#rw-top-tools .rw-session:focus-within{outline:2px solid var(--accent);outline-offset:0}
#rw-top-tools #rw-date{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;border:0;opacity:0;cursor:pointer}
#rw-top-tools #rw-date::-webkit-calendar-picker-indicator{position:absolute;inset:0;width:100%;height:100%;margin:0;padding:0;cursor:pointer}
#rw-top-tools #rw-clock{white-space:nowrap}
#rw-top-tools #rw-clock[hidden]{display:none}
#rw-top-tools #rw-customize{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;width:32px;height:32px;padding:6px;flex:none;color:var(--txt);background:var(--panel);border:1px solid var(--line);border-radius:5px;cursor:pointer}
#rw-top-tools #rw-customize:hover{border-color:var(--accent)}
#rw-top-tools #rw-customize:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
body:has(#rw-top-tools) #quantos-subnav{padding-right:190px}
@media(max-width:680px){#rw-top-tools{padding-left:8px;background:var(--bg)}#rw-top-tools #rw-clock{display:none}body:has(#rw-top-tools) #quantos-subnav{padding-right:130px}}
/* Stocks Dashboard reference: one research state, compact terminal composition. */
#research-workspace[data-stock-dashboard]{padding:8px 10px 0;font:400 14px/1.4 var(--mm-text)}
#research-workspace[data-stock-dashboard] .sr-title{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);margin:0}
#research-workspace[data-stock-dashboard] #sd-global-search{display:flex;justify-content:flex-end;align-items:center;min-height:32px;margin-bottom:6px}
#research-workspace[data-stock-dashboard] #rw-context{gap:6px;padding:0;flex-wrap:nowrap}
#research-workspace[data-stock-dashboard] #rw-context label{display:flex;align-items:center;gap:6px;font-size:11px}
#research-workspace[data-stock-dashboard] #rw-context input{height:28px}#research-workspace[data-stock-dashboard] #rw-symbol{width:110px}
#research-workspace[data-stock-dashboard] .rw-context{padding:10px;margin:0 0 7px;display:block}
#research-workspace[data-stock-dashboard] :is(#rw-context-metrics,#rw-market-state){display:none}
#research-workspace[data-stock-dashboard] #rw-quote{display:flex;align-items:stretch;gap:14px;padding:0;min-width:0;flex-wrap:nowrap}
#research-workspace[data-stock-dashboard] .sd-identity{display:flex;gap:10px;align-items:center;flex:0 0 180px;min-width:0}
#research-workspace[data-stock-dashboard] .sd-company-mark{width:42px;height:42px;display:grid;place-items:center;color:var(--accent);background:var(--panel2);border:1px solid var(--line);font-size:18px;font-weight:700;flex:none}
#research-workspace[data-stock-dashboard] .sd-identity strong{font:600 18px/1.2 var(--mm-display);display:block;overflow-wrap:anywhere}
#research-workspace[data-stock-dashboard] .sd-identity small{font-size:12px;color:var(--dim)}
#research-workspace[data-stock-dashboard] .sd-price{display:flex;flex:0 0 170px;flex-direction:column;border-right:1px solid var(--line);padding-right:12px;gap:2px}
#research-workspace[data-stock-dashboard] .sd-price strong{font-size:27px;line-height:1.1;color:var(--txt)}
#research-workspace[data-stock-dashboard] .sd-price b{font-size:14px}#research-workspace[data-stock-dashboard] .sd-price small{font-size:11px;color:var(--dim);white-space:normal}
#research-workspace[data-stock-dashboard] .sd-price .sd-extended{color:var(--gold)}
#research-workspace[data-stock-dashboard] .sd-header-facts{display:grid;grid-template-columns:repeat(9,minmax(0,1fr));gap:8px;flex:1;min-width:0;align-content:center}
#research-workspace[data-stock-dashboard] .sd-header-facts div{display:flex;flex-direction:column;gap:5px;min-width:0}
#research-workspace[data-stock-dashboard] .sd-header-facts span{font-size:10px;color:var(--dim)}#research-workspace[data-stock-dashboard] .sd-header-facts b{font-size:12px;overflow-wrap:anywhere}
#research-workspace[data-stock-dashboard] .rw-tabs{position:static;display:flex;gap:4px;margin:0!important;padding:0 0 6px;background:transparent;overflow:auto}
#research-workspace[data-stock-dashboard] .rw-tabs a{background:var(--panel);border:1px solid var(--line);border-radius:4px;padding:6px 12px;min-height:32px;font-weight:600;font-size:12px}
#research-workspace[data-stock-dashboard] #rw-status{display:none}
#research-workspace[data-stock-dashboard] .sd-command{display:flex;align-items:center;gap:7px;overflow:visible;padding:6px 0;min-width:0}
#research-workspace[data-stock-dashboard] .sd-command label{display:flex;align-items:center;gap:4px;white-space:nowrap;font-size:11px}
#research-workspace[data-stock-dashboard] .sd-command #rw-timeframes{display:flex;gap:3px;flex-wrap:nowrap}
#research-workspace[data-stock-dashboard] #sd-command :is(button,select,summary){min-height:28px;font-size:11px;white-space:nowrap}
#research-workspace[data-stock-dashboard] #sr-compare{margin-left:auto}
#research-workspace[data-stock-dashboard] .sr-kpis{display:grid;grid-template-columns:1.3fr repeat(7,minmax(0,1fr));gap:0;border:1px solid var(--line);border-radius:6px;overflow:hidden;margin:0 0 7px}
#research-workspace[data-stock-dashboard] .sr-kpis button{border:0;border-right:1px solid var(--line);border-radius:0;padding:9px;gap:5px;min-width:0}
#research-workspace[data-stock-dashboard] .sr-kpis button:last-child{border:0}
#research-workspace[data-stock-dashboard] .sr-kpis strong{font-size:16px;line-height:1.2;min-height:19px;color:var(--txt);white-space:normal}
#research-workspace[data-stock-dashboard] .sr-kpis strong.up{color:var(--green)}#research-workspace[data-stock-dashboard] .sr-kpis strong.down{color:var(--red)}
#research-workspace[data-stock-dashboard] .sr-kpis :is(span,small){font-size:10px;line-height:1.3}
#research-workspace[data-stock-dashboard][data-sd-tab=overview] .rw-main-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-areas:'chart chart chart chart' 'summary summary catalysts catalysts' 'options exposure fundamentals fundamentals';gap:8px;align-items:stretch;margin:0}
#research-workspace[data-stock-dashboard][data-sd-tab=overview] #rw-chart-panel{grid-area:chart;width:100%!important;min-width:0;margin:0}
#research-workspace[data-stock-dashboard][data-sd-tab=overview] #sd-summary-panel{grid-area:summary}
#research-workspace[data-stock-dashboard][data-sd-tab=overview] #sd-catalysts-panel{grid-area:catalysts}
#research-workspace[data-stock-dashboard][data-sd-tab=overview] #sd-options-panel{grid-area:options}
#research-workspace[data-stock-dashboard][data-sd-tab=overview] #sd-exposure-panel{grid-area:exposure}
#research-workspace[data-stock-dashboard][data-sd-tab=overview] #sd-fundamentals-panel{grid-area:fundamentals}
#research-workspace[data-stock-dashboard] .sd-panel{grid-column:auto;min-width:0}
#research-workspace[data-stock-dashboard] .sd-panel .q-panel-body{padding:9px}
#research-workspace[data-stock-dashboard] .sd-panel .q-panel-head{padding:6px 9px;min-height:30px}
#research-workspace[data-stock-dashboard] .sd-view-all{margin-left:auto;border:0!important;background:transparent;font-size:10px;padding:0;color:var(--accent)}
#research-workspace[data-stock-dashboard] .sd-decision{display:flex;flex-direction:column;gap:5px;background:color-mix(in srgb,var(--gold) 8%,var(--panel));border-left:3px solid var(--gold);padding:8px;margin-bottom:9px}
#research-workspace[data-stock-dashboard] .sd-decision b{font-size:13px;color:var(--gold)}#research-workspace[data-stock-dashboard] .sd-decision span{font-size:12px}
#research-workspace[data-stock-dashboard] .sd-panel h3{font-size:12px;margin:7px 0 4px}
#research-workspace[data-stock-dashboard] .sd-fact{display:flex;align-items:baseline;justify-content:space-between;gap:8px;padding:3px 0;font-size:12px}
#research-workspace[data-stock-dashboard] .sd-fact span{color:var(--dim)}#research-workspace[data-stock-dashboard] .sd-fact b{font-weight:500;text-align:right}
#research-workspace[data-stock-dashboard] .sd-panel details{margin:8px 0}#research-workspace[data-stock-dashboard] .sd-panel details p{font-size:12px;line-height:1.5}
#research-workspace[data-stock-dashboard] .sd-stat-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}
#research-workspace[data-stock-dashboard] .sd-stat-grid div{display:flex;flex-direction:column;gap:5px;min-width:0}
#research-workspace[data-stock-dashboard] .sd-stat-grid span{font-size:10px;color:var(--dim)}#research-workspace[data-stock-dashboard] .sd-stat-grid b{font-size:13px;overflow-wrap:anywhere}
#research-workspace[data-stock-dashboard] .sd-chart-caption{font-size:11px;line-height:1.5;color:var(--dim);margin:5px 0}
#research-workspace[data-stock-dashboard] :is(.sd-term-chart,.sd-exposure-chart){width:100%;display:block;max-height:135px;margin:5px 0}
#research-workspace[data-stock-dashboard] svg text{fill:var(--dim);font:11px var(--mm-text)}
#research-workspace[data-stock-dashboard] svg polyline{fill:none;stroke-width:2}
#research-workspace[data-stock-dashboard] .sd-call{stroke:var(--accent)}#research-workspace[data-stock-dashboard] .sd-put{stroke:var(--gold)}
#research-workspace[data-stock-dashboard] .sd-zero{stroke:var(--line);stroke-width:1}#research-workspace[data-stock-dashboard] .sd-positive{fill:var(--accent)}#research-workspace[data-stock-dashboard] .sd-negative{fill:var(--gold)}
#research-workspace[data-stock-dashboard] .sd-metric-tabs{display:flex;gap:5px}
#research-workspace[data-stock-dashboard] .sd-metric-tabs button{padding:3px 7px;font-size:10px}
#research-workspace[data-stock-dashboard] .sd-footer{display:flex;gap:10px;align-items:center;justify-content:space-between;padding:7px 0;margin-top:6px;border-top:1px solid var(--line);font-size:11px}
#research-workspace[data-stock-dashboard] .sd-footer #rw-coverage{display:none}
#research-workspace[data-stock-dashboard] .sr-actions{gap:6px;margin:5px 0}
#sd-quality{max-width:90vw;max-height:85vh;overflow:auto;background:var(--panel);color:var(--txt);border:1px solid var(--line);font:400 12px/1.5 var(--mm-text)}#sd-quality :is(td,th){padding:7px;border-bottom:1px solid var(--line)}
@media(max-width:1250px){#research-workspace[data-stock-dashboard] .sd-header-facts{grid-template-columns:repeat(5,minmax(0,1fr))}#research-workspace[data-stock-dashboard] .sd-command{overflow-x:auto}#research-workspace[data-stock-dashboard] .sd-command #rw-drawing-menu[open]{position:fixed;right:20px;top:130px;z-index:100}#research-workspace[data-stock-dashboard] .sr-kpis{display:flex;overflow:auto}#research-workspace[data-stock-dashboard] .sr-kpis button{flex:0 0 150px}}
@media(max-width:1000px){#research-workspace[data-stock-dashboard][data-sd-tab=overview] .rw-main-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:'chart chart' 'summary catalysts' 'options exposure' 'fundamentals fundamentals'}#research-workspace[data-stock-dashboard] .sd-footer{flex-wrap:wrap}#research-workspace[data-stock-dashboard] .sd-command{justify-content:flex-start}}
@media(max-width:650px){#research-workspace[data-stock-dashboard] #rw-quote{flex-wrap:wrap}#research-workspace[data-stock-dashboard] .sd-header-facts{flex:1 1 100%;grid-template-columns:repeat(3,minmax(0,1fr))}#research-workspace[data-stock-dashboard] .sd-identity{flex:1 1 130px}#research-workspace[data-stock-dashboard] .sd-price{flex:1 1 145px;border:0}#research-workspace[data-stock-dashboard] #rw-context{flex-wrap:wrap}#research-workspace[data-stock-dashboard] #rw-context label{font-size:10px}#research-workspace[data-stock-dashboard][data-sd-tab=overview] .rw-main-grid{grid-template-columns:minmax(0,1fr);grid-template-areas:'chart' 'summary' 'catalysts' 'options' 'exposure' 'fundamentals'}#research-workspace[data-stock-dashboard] .sd-stat-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
#research-workspace[data-stock-dashboard] .sd-more-tools{position:relative}
#research-workspace[data-stock-dashboard] .sd-more-tools>div{position:absolute;right:0;bottom:28px;z-index:30;min-width:260px;padding:10px;background:var(--panel);border:1px solid var(--line);border-radius:6px;box-shadow:0 5px 20px color-mix(in srgb,var(--bg) 80%,transparent)}
#research-workspace[data-stock-dashboard].sd-custom-layout .rw-main-grid{grid-template-areas:none!important;grid-template-columns:repeat(auto-fit,minmax(min(280px,100%),1fr))!important}
#research-workspace[data-stock-dashboard].sd-custom-layout .rw-main-grid>.sd-panel{grid-area:auto!important}
#research-workspace[data-stock-dashboard].sd-custom-layout #rw-chart-panel{grid-area:auto!important;grid-column:1/-1!important}

/* Research toolbar: independent indicator and drawing menus. */
#research-workspace #rw-tool-content{position:static!important;width:auto;max-width:none;padding:0;border:0;background:transparent;white-space:normal}
#research-workspace #rw-tool-content .tc-row{display:flex;gap:4px;align-items:center}
#research-workspace #rw-tool-content .tc-indicator-menu[open]>.tc-indicators,#research-workspace .rw-drawings-menu[open]>.rw-drawings-body{position:fixed!important;right:auto;bottom:auto;z-index:1000;box-sizing:border-box;max-height:65vh;overflow:auto;padding:10px;background:var(--panel);border:1px solid var(--line);border-radius:4px;box-shadow:0 4px 16px #0003}
#research-workspace #rw-tool-content .tc-indicator-menu[open]>.tc-indicators{display:flex;flex-direction:column;align-items:flex-start;width:240px;gap:8px}
#research-workspace .rw-drawings-menu>summary{cursor:pointer;padding:3px 5px;border:1px solid var(--line);border-radius:4px}
#research-workspace .rw-drawings-body{display:none}
#research-workspace .rw-drawings-menu[open]>.rw-drawings-body{display:flex;flex-wrap:wrap;gap:6px;align-items:center;width:450px;max-width:calc(100vw - 16px)}

/* Stocks market-dashboard reference, isolated from other research pages. */
#research-workspace[data-stock-dashboard].smd-overview .rw-header,#research-workspace[data-stock-dashboard].smd-overview .sr-kpis,#research-workspace[data-stock-dashboard].smd-overview .sr-tabs{display:none}
#research-workspace[data-stock-dashboard] .smd-markets{display:grid;grid-template-columns:repeat(5,minmax(0,1fr)) 1.1fr .85fr;gap:6px;margin-bottom:8px}
#research-workspace[data-stock-dashboard] .smd-market{padding:10px;min-width:0;display:flex;flex-direction:column;gap:4px}
#research-workspace[data-stock-dashboard] .smd-market h2{font-size:12px;margin:0}#research-workspace[data-stock-dashboard] .smd-market strong{font-size:22px}#research-workspace[data-stock-dashboard] .smd-market svg{display:block;width:100%;height:28px;color:var(--green)}
#research-workspace[data-stock-dashboard].smd-overview .rw-main-grid{grid-template-columns:repeat(12,minmax(0,1fr));grid-template-areas:none;gap:8px}
#research-workspace[data-stock-dashboard].smd-overview :is(#smd-overview,#smd-sectors,#smd-movers,#smd-earnings,#smd-stocks,#smd-watchlist,#smd-portfolio,#smd-events){grid-area:auto;grid-column:span 3;min-width:0}
#research-workspace[data-stock-dashboard].smd-overview #rw-chart-panel{grid-area:auto;grid-column:span 8}
#research-workspace[data-stock-dashboard].smd-overview #sd-summary-panel{grid-area:auto;grid-column:span 4}
#research-workspace[data-stock-dashboard].smd-overview #rw-news-panel{grid-area:auto;grid-column:1/-1}
#research-workspace[data-stock-dashboard] .smd-panel .q-panel-head{display:flex;justify-content:space-between;font-size:14px;gap:6px}#research-workspace[data-stock-dashboard] .smd-panel .q-panel-head a{font-size:12px}
#research-workspace[data-stock-dashboard] .smd-panel :is(th,td){padding:5px 7px;font-size:12px}#research-workspace[data-stock-dashboard] .smd-sector{display:grid;grid-template-columns:1.4fr 1fr 60px;gap:5px;font-size:12px;align-items:center;margin:4px 0}#research-workspace[data-stock-dashboard] .smd-sector i{display:block;height:8px;background:var(--green)}#research-workspace[data-stock-dashboard] .smd-sector i.down{background:var(--red)}
#research-workspace[data-stock-dashboard] .smd-tabs{display:flex;gap:4px}#research-workspace[data-stock-dashboard] #smd-watch-form{display:flex;gap:4px}#research-workspace[data-stock-dashboard] #smd-watch-form input{min-width:0;width:100%}
@media(max-width:1100px){#research-workspace[data-stock-dashboard] .smd-markets{grid-template-columns:repeat(4,minmax(0,1fr))}#research-workspace[data-stock-dashboard].smd-overview :is(#smd-overview,#smd-sectors,#smd-movers,#smd-earnings,#smd-stocks,#smd-watchlist,#smd-portfolio,#smd-events){grid-column:span 6}#research-workspace[data-stock-dashboard].smd-overview #rw-chart-panel{grid-column:1/-1}#research-workspace[data-stock-dashboard].smd-overview #sd-summary-panel{grid-column:1/-1}}
@media(max-width:650px){#research-workspace[data-stock-dashboard] .smd-markets{grid-template-columns:repeat(2,minmax(0,1fr))}#research-workspace[data-stock-dashboard].smd-overview .smd-panel{grid-column:1/-1!important}}

#research-workspace[data-stock-dashboard].smd-overview>.rw-context,#research-workspace[data-stock-dashboard].smd-overview>.rw-tabs,#research-workspace[data-stock-dashboard].smd-overview>.sr-title{display:none}
#research-workspace[data-stock-dashboard] .smd-body{padding:8px;min-width:0}
#research-workspace[data-stock-dashboard].smd-overview #sd-command{margin:6px 0}

/* Stocks Dashboard keeps the middle chart beside Research Insights. */

/* Stocks Heatmap uses the existing sector treemap and shared style owner. */
@scope (body[data-stocks-heatmap]) {

  .hmgrid{ display:grid; gap:3px; grid-auto-rows:minmax(0,1fr) }
  .hm{ border-radius:4px; padding:8px 9px; display:flex; flex-direction:column; justify-content:center;
    min-height:62px; cursor:pointer; transition:transform .1s; overflow:hidden; text-decoration:none }
  .hm:hover{ transform:scale(1.035); z-index:2; box-shadow:0 6px 20px rgba(0,0,0,.45) }
  .hm b{ font-size:var(--type-lead); font-weight:700; color:#fff; text-shadow:0 1px 3px rgba(0,0,0,.5) }
  .hm i{ font-style:normal; font-size:var(--type-body); font-weight:700; color:color-mix(in srgb, var(--txt) 94%, transparent); font-variant-numeric:tabular-nums }
  .hm small{ font-size:var(--type-label); color:color-mix(in srgb, var(--txt) 72%, transparent); margin-top:1px; overflow:hidden; text-overflow:ellipsis; white-space:nowrap }
  .sect{ display:grid; grid-template-columns:repeat(auto-fit,minmax(150px,1fr)); gap:3px }
  /* Treemap. Absolutely positioned tiles rather than a CSS grid, because area
     has to be proportional to weight and a grid can only span whole columns —
     which is what made the old version a table with colours. */
  .tmap{ position:relative; width:100%; height:620px; overflow:hidden;
    border:1px solid var(--line); border-radius:4px; background:var(--panel2) }
  .tmap .sec{ position:absolute; box-sizing:border-box; background:rgba(255,255,255,.028);
    border:1px solid var(--line); border-radius:3px }
  .tmap .sec > h5{ position:absolute; top:0; left:4px; right:4px; margin:0; height:15px;
    font-size:var(--type-label); font-weight:700; color:var(--mut); letter-spacing:.3px;
    white-space:nowrap; overflow:hidden; text-overflow:ellipsis; pointer-events:none }
  .tmap a.t{ position:absolute; display:flex; flex-direction:column; align-items:center;
    justify-content:center; box-sizing:border-box; border:1px solid rgba(0,0,0,.35);
    border-radius:2px; text-decoration:none; color:#fff; overflow:hidden;
    line-height:1.15; padding:2px; transition:filter .12s }
  .tmap a.t:hover{ filter:brightness(1.18); z-index:5; border-color:#fff }
  .tmap a.t b{ font-weight:700; letter-spacing:-.02em }
  .tmap a.t i{ font-style:normal; font-variant-numeric:tabular-nums; opacity:.92 }
  .tmap a.t small{ opacity:.68; white-space:nowrap; overflow:hidden; text-overflow:ellipsis;
    max-width:100% }
  .tmap .tiny b{ font-size:var(--type-label) } .tmap .tiny i{ font-size:var(--type-label) }
  .legend{ display:flex; align-items:center; gap:2px; font-size:var(--type-label); color:var(--mut) }
  .legend span{ width:26px; height:11px; display:block }

}

/* Dashboard reference proportions; retained shared typography and theme tokens. */
#research-workspace[data-stock-dashboard].smd-overview{padding:8px;max-width:none}
#research-workspace[data-stock-dashboard] .smd-heading{font-size:18px;line-height:24px;margin:0 0 8px}
#research-workspace[data-stock-dashboard] .smd-market{min-height:108px;justify-content:space-between;border-radius:5px}
#research-workspace[data-stock-dashboard] .smd-market strong{font-size:24px;font-weight:700;line-height:1.1}
#research-workspace[data-stock-dashboard] #sd-global-search{position:absolute;right:14px;top:3px;width:auto;max-width:70%;margin:0}
#research-workspace[data-stock-dashboard] #sd-global-search #rw-context{gap:4px}
#research-workspace[data-stock-dashboard] #sd-global-search .rw-symbol-label{font-size:0}
#research-workspace[data-stock-dashboard] #sd-global-search #rw-symbol{width:120px;font-size:12px}
#research-workspace[data-stock-dashboard] #sd-global-search :is(.rw-symbol-label~label,#rw-theme,.q-help){display:none}
#research-workspace[data-stock-dashboard] .smd-panel{border-radius:5px;overflow:hidden}
#research-workspace[data-stock-dashboard] .smd-panel .q-panel-head{min-height:30px;padding:5px 9px;font-weight:700}
#research-workspace[data-stock-dashboard] .smd-body{padding:5px 8px}
#research-workspace[data-stock-dashboard] :is(#smd-overview,#smd-sectors,#smd-movers,#smd-earnings){height:218px;overflow:auto}
#research-workspace[data-stock-dashboard] .smd-sector{margin:2px 0;line-height:16px;grid-template-columns:1.5fr 1fr 53px}
#research-workspace[data-stock-dashboard] .smd-tabs{margin:2px 0 5px}
#research-workspace[data-stock-dashboard] .smd-tabs button{padding:2px 10px}
#research-workspace[data-stock-dashboard] #rw-chart-panel>.ph{flex-wrap:wrap;gap:4px;padding:5px 7px}
#research-workspace[data-stock-dashboard] #sd-command{display:flex;gap:4px;flex-wrap:wrap;margin:0;flex:1;justify-content:flex-end;overflow:visible}
#research-workspace[data-stock-dashboard] #sd-command>:is(label,button){display:none}
#research-workspace[data-stock-dashboard] #sd-command #rw-timeframes{gap:2px}
#research-workspace[data-stock-dashboard] #sd-command #rw-timeframes button{min-width:24px;padding:2px 4px}
#research-workspace[data-stock-dashboard].smd-overview #smd-stocks{grid-column:span 5}
#research-workspace[data-stock-dashboard].smd-overview #smd-watchlist{grid-column:span 2}
#research-workspace[data-stock-dashboard].smd-overview #smd-portfolio{grid-column:span 3}
#research-workspace[data-stock-dashboard].smd-overview #smd-events{grid-column:span 2}
#research-workspace[data-stock-dashboard] .smd-research-action{display:inline-block;background:var(--accent);color:var(--bg);border-radius:3px;padding:2px 6px}
#research-workspace[data-stock-dashboard] #smd-stocks :is(th,td){padding:4px;font-size:14px!important;white-space:nowrap}
#research-workspace[data-stock-dashboard] .smd-panel dl{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin:6px 0}
#research-workspace[data-stock-dashboard] .rw-footer{padding:8px 0}
@media(max-width:1100px){#research-workspace[data-stock-dashboard].smd-overview :is(#smd-stocks,#smd-watchlist,#smd-portfolio,#smd-events){grid-column:span 6}}
@media(max-width:650px){#research-workspace[data-stock-dashboard] #sd-global-search{position:static;max-width:100%}#research-workspace[data-stock-dashboard] :is(#smd-overview,#smd-sectors,#smd-movers,#smd-earnings){height:auto;max-height:270px}}

/* Market-dashboard comparison refinement: reference-sized cards and insight split. */
#research-workspace[data-stock-dashboard] .smd-heading{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden}
#research-workspace[data-stock-dashboard] .smd-markets{margin-bottom:6px;gap:4px;grid-template-columns:repeat(5,minmax(0,1fr)) 1fr .75fr}
#research-workspace[data-stock-dashboard] .smd-market{height:122px;min-height:0;padding:9px 11px;overflow:hidden}
#research-workspace[data-stock-dashboard] .smd-market h2{font-size:12px;font-weight:700}
#research-workspace[data-stock-dashboard] .smd-market strong{font-size:23px;overflow-wrap:anywhere}
#research-workspace[data-stock-dashboard] .smd-market:nth-last-child(-n+2) strong{font-size:18px}
#research-workspace[data-stock-dashboard] .smd-market:nth-last-child(-n+2) span{font-size:11px}
#research-workspace[data-stock-dashboard] #sd-global-search{position:fixed;top:7px;right:14px;z-index:9997;max-width:36%;padding:0}
#research-workspace[data-stock-dashboard] #sd-global-search>a,#research-workspace[data-stock-dashboard] #rw-context>button{display:none}
#research-workspace[data-stock-dashboard] #sd-global-search #rw-symbol{height:28px;width:150px;border-radius:4px;padding:4px 9px}
#research-workspace[data-stock-dashboard] .rw-main-grid{gap:5px!important}
#research-workspace[data-stock-dashboard] :is(#smd-overview,#smd-sectors,#smd-movers,#smd-earnings){height:210px}
#research-workspace[data-stock-dashboard] .smd-panel{box-shadow:none}
#research-workspace[data-stock-dashboard] .smd-panel .q-panel-head{font-size:16px!important;letter-spacing:-.3px;padding:5px 8px}
#research-workspace[data-stock-dashboard] .smd-panel :is(th,td){padding:7px 8px;font-size:14px!important;line-height:1.35}
#research-workspace[data-stock-dashboard] .smd-panel th{font-weight:500}
#research-workspace[data-stock-dashboard] #sd-summary{display:grid;grid-template-columns:.95fr 1.05fr;gap:8px;padding:8px;height:calc(100% - 35px);overflow:auto}
#research-workspace[data-stock-dashboard] .smd-insight-score{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;padding-top:14px}
#research-workspace[data-stock-dashboard] .smd-insight-score>strong{font-size:16px;color:var(--green)}
#research-workspace[data-stock-dashboard] .smd-insight-score>small{font-size:11px;color:var(--dim)}
#research-workspace[data-stock-dashboard] .smd-gauge{display:block;width:130px;height:75px;border-radius:130px 130px 0 0;background:conic-gradient(from 270deg at 50% 100%,var(--green) calc(var(--smd-score,0)*1.8deg),var(--line) 0 180deg,transparent 0);position:relative}
#research-workspace[data-stock-dashboard] .smd-gauge:before{content:'';position:absolute;inset:11px 11px 0;background:var(--panel);border-radius:110px 110px 0 0}
#research-workspace[data-stock-dashboard] .smd-gauge b{position:relative;display:block;padding-top:26px;text-align:center;font-size:30px;line-height:1}
#research-workspace[data-stock-dashboard] .smd-gauge small{display:block;font-size:12px;margin-top:3px}
#research-workspace[data-stock-dashboard] .smd-unavailable-gauge{width:100%;max-width:115px;height:65px;--smd-score:0}
#research-workspace[data-stock-dashboard] .smd-unavailable-gauge b{padding-top:24px}
#research-workspace[data-stock-dashboard] .smd-insight-facts h3{font-size:12px;margin:8px 0 4px}
#research-workspace[data-stock-dashboard] .smd-insight-facts .sd-fact{font-size:11px;gap:4px}
#research-workspace[data-stock-dashboard] .sd-decision{padding:6px;margin:0;border-radius:4px;font-size:12px}
#research-workspace[data-stock-dashboard] .sd-decision span{font-size:12px}
#research-workspace[data-stock-dashboard] #rw-chart-panel{min-height:310px}
#research-workspace[data-stock-dashboard] .smd-account-value{font-size:24px;display:block;margin:6px 0;font-variant-numeric:tabular-nums}
#research-workspace[data-stock-dashboard] .smd-allocation{display:flex;align-items:center;gap:16px}
#research-workspace[data-stock-dashboard] .smd-donut{width:78px;height:78px;border-radius:50%;display:grid;place-items:center;flex:none}
#research-workspace[data-stock-dashboard] .smd-donut span{width:48px;height:48px;background:var(--panel);border-radius:50%;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:16px}
#research-workspace[data-stock-dashboard] .smd-donut small{font-size:9px;color:var(--dim)}
#research-workspace[data-stock-dashboard] .smd-provenance{font-size:10px;color:var(--dim);margin:5px 0}
#research-workspace[data-stock-dashboard] .smd-score-note{font-size:11px;color:var(--dim);margin-top:4px}
#research-workspace[data-stock-dashboard] .smd-score-note p{font-size:12px}
#research-workspace[data-stock-dashboard] #smd-market-strip{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 4px;border-top:1px solid var(--line);font-size:12px}
#research-workspace[data-stock-dashboard] .rw-footer{display:none}
@media(max-width:1100px){#research-workspace[data-stock-dashboard] .smd-markets{grid-template-columns:repeat(4,minmax(0,1fr))}#research-workspace[data-stock-dashboard] #sd-summary{min-height:250px}}
@media(max-width:650px){#research-workspace[data-stock-dashboard] .smd-markets{grid-template-columns:repeat(2,minmax(0,1fr))}#research-workspace[data-stock-dashboard] #sd-global-search{position:static;max-width:100%}#research-workspace[data-stock-dashboard] #sd-summary{grid-template-columns:1fr}#research-workspace[data-stock-dashboard] .smd-gauge{width:130px}}

#research-workspace[data-stock-dashboard] .smd-market svg{color:var(--green)}
#research-workspace[data-stock-dashboard] .smd-market .down svg{color:var(--red)}
#research-workspace[data-stock-dashboard] .smd-tabs [aria-pressed=true]{background:var(--accent);color:var(--bg);border-color:var(--accent)}
#research-workspace[data-stock-dashboard] .smd-market>strong{white-space:nowrap;overflow-wrap:normal;text-overflow:ellipsis;overflow:hidden}
#research-workspace[data-stock-dashboard] #sd-summary-panel .q-panel-head{font-weight:700;font-size:14px;padding:5px 8px;min-height:30px}
#research-workspace[data-stock-dashboard] .smd-insight-facts .sd-fact{font-size:12px}
#research-workspace[data-stock-dashboard] #smd-events-data>p{margin:5px 0;padding:3px 0;border-bottom:1px solid var(--line);font-size:12px}
#research-workspace[data-stock-dashboard] #smd-events-data>.q-note{font-size:12px;border:0}
#research-workspace[data-stock-dashboard] .smd-insight-facts .sd-decision span{display:none}
#research-workspace[data-stock-dashboard] #rw-chart-panel>.ph{min-height:35px}
#research-workspace[data-stock-dashboard] #rw-chart-source{font-size:10px;padding:2px 6px}
#research-workspace[data-stock-dashboard] .smd-panel .q-note{margin:3px 0;font-size:12px;padding:0;background:none}

/* 8090 page repair: readable coverage, complete sectors and compact phone controls. */
#research-workspace[data-stock-dashboard] #smd-sectors .smd-body{max-height:175px;overflow:auto}
#research-workspace[data-stock-dashboard] .smd-insight-score>small{font:400 12px/1.4 var(--mm-text)}
#research-workspace[data-stock-dashboard] .smd-insight-score>strong{color:var(--txt)}
@media(max-width:680px){
body:has(#rw-top-tools) #quantos-brand{padding-left:48px;min-width:85px}
#research-workspace[data-ticker-heading] #rw-drawing-menu .tc-row{flex-wrap:nowrap;overflow-x:auto;max-width:100%;padding-bottom:4px}
#research-workspace[data-ticker-heading] #rw-drawing-menu .tc-row>*{flex-shrink:0}
#research-workspace[data-ticker-heading] #rw-chart-panel .ph>#rw-timeframes{max-width:100%;overflow-x:auto}
}

@media(max-width:680px){
html[data-quantos-reference=premarket] body.quantos-group-navigation #lnav:not(.mobile-open){transform:translateX(-110%)!important;pointer-events:none}
html[data-quantos-reference=premarket] body.quantos-group-navigation #lnav.mobile-open{transform:translateX(0)!important;pointer-events:auto}
html[data-quantos-reference=premarket] body.quantos-group-navigation{padding-left:0!important}
}

/* Performance Analytics compatibility (test/performance-newCL.html). Components are owned above;
   this holds only the page's unique grids, charts and evidence rows, contained by its data-q-page. */
.q-design-model[data-q-system][data-q-page="performance"]{
 padding:10px 12px 20px;
 & .phead{margin:0;padding:0;display:flex;align-items:center;gap:10px;border:0}
 & .phead h1{margin:0;font:600 18px/1.3 var(--mm-display)}
 & .phead .sub{margin:2px 0 0;font:400 12px/1.45 var(--mm-text);color:var(--dim)}
 & .phead .sp{flex:1}
 & #pf-head{min-width:0;margin-bottom:8px;padding-left:0}
 & #mmStatus.pf-score-host{display:inline-flex;align-items:center;gap:7px;padding:2px 7px;background:var(--panel);border:1px solid var(--line);border-radius:6px}
 & .pf-score-ring{--pf-score:0;position:relative;width:40px;height:40px;border-radius:50%;display:grid;place-items:center;background:conic-gradient(var(--accent) calc(var(--pf-score) * 1%),var(--panel2) 0)}
 & .pf-score-ring::before{content:"";position:absolute;inset:5px;border-radius:50%;background:var(--panel)}
 & .pf-score-ring b{position:relative;z-index:1;font:600 14px/1 var(--mm-text);font-variant-numeric:tabular-nums;color:var(--txt)}
 & .pf-score-meta{display:flex;align-items:baseline;gap:4px;white-space:nowrap;text-align:left}
 & .pf-score-meta strong{font:500 11px/1.4 var(--mm-text);color:var(--txt)}
 & .pf-score-meta span{font:400 11px/1.4 var(--mm-text);color:var(--dim)}
 /* mm-bubble injects its own marker; give it the q-info role whatever the adapter adds. */
 & button.info{display:inline-grid;place-items:center;flex:none;width:20px;height:20px;min-height:0;margin:0 0 0 2px;padding:0;border:1px solid var(--line);border-radius:50%;background:transparent;color:var(--dim);font:400 11px/1 var(--mm-text);cursor:help}
 & button.info:hover,& button.info[aria-expanded=true]{color:var(--accent);border-color:var(--accent);background:transparent}
 & .q-panel-head>[data-help]{display:inline-flex;align-items:center}
 & .q-page-heading h2{display:inline-flex;align-items:center;gap:7px}
 /* Charts */
 & #pf-equity{height:290px;width:100%;min-width:0;position:relative}
 & .pf-chart-count{margin-left:0;font-weight:400}
 & .pf-chart-tip{position:absolute;z-index:4;display:none;pointer-events:none;min-width:155px;padding:8px 10px;border:1px solid var(--line);border-radius:6px;background:var(--panel);box-shadow:0 8px 22px color-mix(in srgb,var(--bg) 70%,transparent);font:400 11px/1.45 var(--mm-text);color:var(--txt)}
 & .pf-chart-tip.on{display:block}
 & .pf-chart-tip b{display:block;margin-bottom:4px}
 & .pf-chart-tip span{display:flex;justify-content:space-between;gap:14px}
 & .pf-chart-tip em{font-style:normal;font-variant-numeric:tabular-nums}
 & #pf-trade-chart{width:100%;min-width:0}
 /* Tables */
 & .q-panel-body.q-table-wrap{padding:0;max-height:440px}
 & #pf-recent tr[data-trade]{cursor:pointer}
 & :is(#pf-daily,#pf-recent) td:first-child{white-space:nowrap}
 & .q-table td small{display:block;color:var(--dim);font:400 11px/1.4 var(--mm-text)}
 /* Evidence cards and rows */
 & :is(.pf-edge-card,.pf-whatif-card){padding:9px 10px}
 & .pf-edge-label{font:500 11px/1.4 var(--mm-text);color:var(--dim)}
 & .pf-edge-name{margin:3px 0 5px;font:600 14px/1.35 var(--mm-display)}
 & .pf-edge-card small{display:block;margin-top:6px;font:400 12px/1.5 var(--mm-text);color:var(--dim)}
 & .pf-metric-line{display:flex;justify-content:space-between;gap:12px;padding:4px 0;border-bottom:1px solid color-mix(in srgb,var(--line) 55%,transparent);font:400 12px/1.4 var(--mm-text);color:var(--dim)}
 & .pf-metric-line:last-of-type{border-bottom:0}
 & .pf-metric-line b{font-weight:600;color:var(--txt);font-variant-numeric:tabular-nums;white-space:nowrap}
 & .pf-metric-line b:is(.q-positive){color:var(--green)}
 & .pf-metric-line b:is(.q-negative){color:var(--red)}
 & .pf-evidence-list{display:grid;gap:0;margin-top:8px}
 & .pf-evidence-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;padding:6px 0;border-bottom:1px solid color-mix(in srgb,var(--line) 55%,transparent);font:400 12px/1.4 var(--mm-text)}
 & .pf-evidence-row:last-child{border-bottom:0}
 & .pf-evidence-row b{font-weight:600}
 & .pf-evidence-row small{display:block;margin-top:2px;font:400 12px/1.5 var(--mm-text);color:var(--dim)}
 & .pf-evidence-row strong{font-weight:600;font-variant-numeric:tabular-nums;text-align:right}
 & .pf-panel-actions{margin-top:8px;font:400 12px/1.4 var(--mm-text)}
 & .pf-whatif-card strong{display:block;margin-top:4px;font:600 18px/1.25 var(--mm-text);font-variant-numeric:tabular-nums}
 & .pf-whatif-card small{display:block;margin-top:5px;font:400 12px/1.5 var(--mm-text);color:var(--dim)}
 & .q-panel-body .q-note{margin-top:8px}
 /* Diverging bars: position carries the sign and the figure is printed, so colour only reinforces. */
 & .pf-bars{display:grid;gap:5px;align-content:start;min-width:0}
 & .pf-bars .row{display:grid;grid-template-columns:minmax(0,150px) minmax(40px,1fr) 76px;align-items:center;gap:8px;margin:0;font:400 11px/1.4 var(--mm-text)}
 & .pf-bars .nm{display:flex;align-items:center;flex-wrap:wrap;gap:2px 5px;color:var(--dim);min-width:0}
 & .pf-bars .track{position:relative;height:14px;background:var(--panel2);border-radius:3px}
 & .pf-bars .mid{position:absolute;top:-2px;bottom:-2px;left:50%;width:1px;background:var(--line)}
 & .pf-bars .fill{position:absolute;top:0;bottom:0;border-radius:3px}
 & .pf-bars .fill.pos{background:color-mix(in srgb,var(--green) 55%,transparent)}
 & .pf-bars .fill.neg{background:color-mix(in srgb,var(--red) 55%,transparent)}
 & .pf-bars .val{text-align:right;font-variant-numeric:tabular-nums}
 & .pf-bars .thin .track{opacity:.55}
 & .q-badge.pf-flag{padding:0 4px;font:500 10px/1.5 var(--mm-text);color:var(--gold)}
 /* Activity heatmap and calendar preview */
 & .pf-heat{display:grid;grid-template-columns:48px repeat(6,minmax(30px,1fr));gap:3px;align-items:center;font:500 10px/1.4 var(--mm-text)}
 & .pf-heat .cell{min-height:24px;display:grid;place-items:center;border:1px solid var(--line);border-radius:4px;font:500 11px/1 var(--mm-text);font-variant-numeric:tabular-nums}
 & .pf-heat .axis{color:var(--dim);text-align:center}
}
@media(max-width:1000px){.q-design-model[data-q-system][data-q-page="performance"]{
 & .q-grid-equal{grid-template-columns:minmax(0,1fr)}
}}
@media(max-width:650px){.q-design-model[data-q-system][data-q-page="performance"]{
 padding:8px 8px 16px;
 & .phead{flex-wrap:wrap}
}}
/* Canonical trade chart and overlays on this page. The chart's size and engine stay as they are. */
@scope (:root:has([data-q-page="performance"])) {
.qtc-layout{display:grid;grid-template-columns:minmax(0,3fr) minmax(210px,1fr);gap:8px;width:100%;align-items:stretch}
.qtc{border:1px solid var(--line);background:var(--panel);border-radius:6px;overflow:hidden;min-width:0}
.qtc-head{display:flex;align-items:center;gap:6px;flex-wrap:wrap;padding:6px 9px;border-bottom:1px solid var(--line)}
.qtc-head h2{margin:0;font:600 12px/1.4 var(--mm-display)}
.qtc-date,.qtc-state{color:var(--dim);font:500 11px/1.3 var(--mm-text);font-variant-numeric:tabular-nums}
.qtc-date{margin-left:4px}.qtc-state{margin-left:auto}
.qtc-head select{min-height:28px;padding:4px 7px;border:1px solid var(--line);border-radius:4px;background:var(--panel2);color:var(--txt);font:400 12px/1.3 var(--mm-text)}
.qtc-chart{height:500px;position:relative}
.qtc-empty{height:260px;display:grid;place-items:center;padding:20px;text-align:center;color:var(--dim);font:400 12px/1.5 var(--mm-text)}
.qtc-side{display:flex;flex-direction:column;gap:8px;min-width:0;padding:9px;border:1px solid var(--line);border-radius:6px;background:var(--panel)}
.qtc-side h3{margin:0;font:600 12px/1.4 var(--mm-display)}
.qtc-side .qtc-side-row{display:grid;gap:2px;padding-top:7px;border-top:1px solid var(--line)}
.qtc-side b{font:500 11px/1.4 var(--mm-text);color:var(--dim)}
.qtc-side span{font:400 12px/1.5 var(--mm-text);color:var(--txt)}
.trade-bubble{position:absolute;z-index:20;width:280px;max-width:calc(100% - 24px);padding:11px 12px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--txt);box-shadow:0 8px 24px rgba(0,0,0,.22);pointer-events:none;font:400 12px/1.5 var(--mm-text);font-variant-numeric:tabular-nums;opacity:0;transform:translateY(4px);transition:opacity .16s ease,transform .16s ease}
.trade-bubble.visible{opacity:1;transform:translateY(0)}
.trade-bubble::after{content:"";position:absolute;left:18px;bottom:-7px;width:12px;height:12px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);background:var(--panel);transform:rotate(45deg)}
.trade-bubble .tb-time{margin-bottom:5px;color:var(--dim);font-size:11px;font-weight:600}
.trade-bubble .tb-row{display:grid;grid-template-columns:82px minmax(0,1fr);gap:8px}
.trade-bubble .tb-row span:first-child{color:var(--dim)}
.trade-bubble .tb-row b{text-align:right;font-weight:600}
.trade-bubble .tb-buy{color:var(--green)}.trade-bubble .tb-sell{color:var(--red)}
.trade-bubble .tb-cash{margin-top:4px;padding-top:4px;border-top:1px solid var(--line)}
.qtc-legend{display:flex;gap:12px;flex-wrap:wrap;padding:6px 9px;border-top:1px solid var(--line);color:var(--dim);font:400 11px/1.4 var(--mm-text)}
.qtc-legend i{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:4px}
.qtc-entry{background:var(--green)}.qtc-exit{background:var(--red)}
.qtc-selected td{background:color-mix(in srgb,var(--gold) 14%,var(--panel))!important}
.pf-trade-tip{position:fixed;z-index:500;width:min(270px,calc(100vw - 20px));pointer-events:none;opacity:0;transform:translateY(4px);transition:.16s ease;padding:9px 11px;border:1px solid var(--line);border-radius:6px;background:var(--panel);box-shadow:0 10px 28px color-mix(in srgb,var(--bg) 70%,transparent);font:400 11px/1.45 var(--mm-text);color:var(--txt)}
.pf-trade-tip.on{opacity:1;transform:none}
@media(max-width:1050px){.qtc-layout{grid-template-columns:minmax(0,1fr)}.qtc-side{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.qtc-side h3{grid-column:1/-1}}
@media(max-width:700px){.qtc-chart{height:360px}.qtc-state{width:100%;margin-left:0}.qtc-side{grid-template-columns:minmax(0,1fr)}}
}
/* Performance Analytics dashboard, 01-NOV-2026. Layout is contained by data-q-page; every colour is a theme token. */
.q-design-model[data-q-system][data-q-page="performance"]{
 display:flex;flex-direction:column;gap:10px;
 & #pf-head{margin:0;flex:1 1 280px}
 & #mmStatus{display:none}
 & .pf-top{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px}
 & .pf-status{white-space:nowrap}
 & .pf-range{position:relative}
 & .pf-range>summary{display:flex;align-items:center;gap:7px;min-height:32px;padding:0 10px;list-style:none;cursor:pointer;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--txt);font:500 12px/1 var(--mm-text);font-variant-numeric:tabular-nums;white-space:nowrap}
 & .pf-range>summary::-webkit-details-marker{display:none}
 & .pf-range>summary:hover,& .pf-range[open]>summary{border-color:var(--accent)}
 & .pf-range>summary svg{width:12px;height:12px;fill:none;stroke:currentColor;stroke-width:2.5;stroke-linecap:round;stroke-linejoin:round;transition:transform .12s}
 & .pf-range[open]>summary svg{transform:rotate(180deg)}
 & .pf-range-panel{position:absolute;right:0;top:calc(100% + 5px);z-index:60;display:grid;gap:9px;width:min(310px,calc(100vw - 24px));padding:12px;border:1px solid var(--line);border-radius:8px;background:var(--panel);box-shadow:0 12px 30px color-mix(in srgb,var(--bg) 70%,transparent)}
 & .pf-range-panel .q-field{display:grid;gap:4px;color:var(--dim);font:500 12px/1.3 var(--mm-text)}
 & .pf-range-panel :is(input,select){width:100%;min-height:30px}
 & .pf-range-panel p{margin:0;font:400 12px/1.45 var(--mm-text)}
 & .pf-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr)) minmax(150px,.9fr);gap:8px}
 & .pf-kpi{display:flex;flex-direction:column;min-width:0;padding:10px 11px 0;overflow:hidden;position:relative}
 & .pf-kpi-top{display:flex;align-items:center;gap:8px;min-width:0}
 & .pf-kpi-label{display:flex;align-items:center;color:var(--dim);font:500 12px/1.3 var(--mm-text)}
 & .pf-score .pf-kpi-label{display:block}
 & .pf-kpi-value{margin-top:7px;font:700 22px/1.15 var(--mm-text);letter-spacing:-.4px;font-variant-numeric:tabular-nums;white-space:nowrap}
 & .pf-kpi-sub{margin-top:3px;color:var(--dim);font:400 12px/1.35 var(--mm-text)}
 & .pf-delta{margin-top:2px;font:500 11px/1.35 var(--mm-text);font-variant-numeric:tabular-nums}
 & .pf-spark{display:block;width:calc(100% + 22px);height:36px;margin:6px -11px 0;color:var(--accent);margin-top:auto;padding-top:6px;box-sizing:border-box}
 & .pf-spark.q-positive{color:var(--green)}
 & .pf-spark.q-negative{color:var(--red)}
 & .pf-spark polyline{fill:none;stroke:currentColor;stroke-width:1.6}
 & .pf-spark polygon{fill:currentColor;opacity:.14;stroke:none}
 & .pf-score{align-items:center;justify-content:center;gap:6px;padding-bottom:10px;text-align:center;border-color:color-mix(in srgb,var(--accent) 50%,var(--line));box-shadow:inset 0 0 26px color-mix(in srgb,var(--accent) 14%,transparent)}
 & .pf-score .pf-score-ring{width:66px;height:66px}
 & .pf-score .pf-score-ring::before{inset:7px}
 & .pf-score .pf-score-ring b{font:700 21px/1 var(--mm-text)}
 /* Six sections read top to bottom. Related views share one section as cells, so there is no second gap or card edge to align. */
 & .pf-flow{display:flex;flex-direction:column;gap:8px}
 & .pf-block>.q-panel-head{display:flex;align-items:center;min-height:0;padding:7px 12px!important;font:600 16px/1.4 var(--mm-display)!important}
 & .pf-cols{display:grid}
 & .pf-cols-result{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
 & .pf-cols-four{grid-template-columns:repeat(4,minmax(0,1fr))}
 & .pf-cols-drove{grid-template-columns:minmax(0,5fr) minmax(0,5fr) minmax(0,3fr)}
 & .pf-cell-sub{margin-top:9px;padding-top:8px;border-top:1px solid color-mix(in srgb,var(--line) 55%,transparent)}
 & #pf-bridge{flex:1;display:flex;flex-direction:column}
 & #pf-bridge .pf-mini-grid{margin-top:auto}
 & .pf-bridge-row{display:grid;grid-template-columns:44px minmax(40px,1fr) 80px;align-items:center;gap:8px;padding:7px 0;font:400 12px/1.4 var(--mm-text)}
 & .pf-bridge-row b{text-align:right;font-weight:600;font-variant-numeric:tabular-nums}
 & .pf-bridge-track{height:12px;border-radius:6px;background:var(--panel2);overflow:hidden}
 & .pf-bridge-track i{display:block;height:100%;border-radius:5px}
 & .pf-bridge-track i.pos{background:var(--green)}
 & .pf-bridge-track i.neg{background:var(--red)}
 & .pf-mini-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:9px 12px;padding-top:9px;border-top:1px solid var(--line)}
 & .pf-mini-grid span{display:block;color:var(--dim);font:400 11px/1.35 var(--mm-text)}
 & .pf-mini-grid b{display:block;font:600 13px/1.3 var(--mm-text);font-variant-numeric:tabular-nums}
 & .pf-cols-review{grid-template-columns:minmax(0,5fr) minmax(0,4fr) minmax(0,3fr)}
 & .pf-cols-trades{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
 & .pf-cell{display:flex;flex-direction:column;min-width:0;padding:9px 12px 10px}
 & .pf-cols>.pf-cell:not(:first-child){border-left:1px solid var(--line)}
 & .pf-cell-full{border-top:1px solid var(--line)}
 & .pf-cell-head{display:flex;align-items:center;flex-wrap:wrap;gap:5px;min-height:24px;margin:0 0 7px;color:var(--txt);font:600 12px/1.4 var(--mm-display)}
 & .pf-cell-head [data-help]{display:inline-flex;align-items:center}
 & .pf-cell .q-details{margin:0 0 8px;padding:7px 9px;border:1px solid var(--line);border-radius:6px;font:400 12px/1.5 var(--mm-text);color:var(--dim)}
 & .pf-cell-chart #pf-equity{flex:1 1 240px;min-height:240px}
 & .pf-more{margin-left:auto;color:var(--accent);font:500 12px/1.3 var(--mm-text);text-decoration:none;white-space:nowrap}
 & .pf-more::after{content:" →"}
 & .pf-more:hover{text-decoration:underline}
 & .pf-chart-tabs{margin-left:auto}
 & .pf-legend{display:flex;flex-wrap:wrap;gap:4px 14px;min-height:18px;margin-bottom:5px;color:var(--dim);font:400 12px/1.4 var(--mm-text)}
 & .pf-legend i{display:inline-block;width:9px;height:9px;margin-right:5px;border-radius:50%}
 /* Compact rows so four views fit one band. */
 & :is(.pf-cols-four,.pf-cols-drove) .pf-bars{gap:4px;max-height:244px;overflow-y:auto;scrollbar-width:thin}
 & .pf-cols-drove .pf-bars .row{grid-template-columns:minmax(0,150px) minmax(24px,1fr) 70px;font-size:12px}
 & .pf-cols-four .pf-bars .row{grid-template-columns:44px minmax(24px,1fr) 62px;font-size:12px}
 & .pf-cols-four #pf-hour{gap:9px}
 & :is(.pf-cols-four,.pf-cols-drove) .pf-bars .track{height:14px}
 & .pf-cols-drove .pf-evidence-list{margin:0}
 & .pf-cols-drove .pf-evidence-row{grid-template-columns:minmax(0,1fr) auto;padding:2px 0;gap:8px;border-bottom:0}
 & .pf-cols-drove .pf-evidence-row>div{display:flex;align-items:baseline;gap:6px;min-width:0}
 & .pf-cols-drove .pf-evidence-row small{margin:0;font-size:11px;line-height:1.3;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
 & .pf-cols-drove .q-note{margin-top:4px;padding:0;border:0;background:none;color:var(--dim);font:400 11px/1.4 var(--mm-text)}
 & .pf-ring-row{display:grid;grid-template-columns:repeat(auto-fit,minmax(50px,1fr));gap:3px;margin-top:6px}
 & .pf-ring-item{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:0;text-align:center}
 & .pf-ring-label{color:var(--txt);font:500 12px/1.3 var(--mm-text)}
 & .pf-ring{--pf-ring:0;position:relative;display:grid;place-items:center;width:52px;height:52px;border-radius:50%;color:var(--accent);background:conic-gradient(currentColor calc(var(--pf-ring)*1%),var(--panel2) 0)}
 & .pf-ring.q-positive{color:var(--green)}
 & .pf-ring.q-negative{color:var(--red)}
 & .pf-ring::before{content:"";position:absolute;inset:5px;border-radius:50%;background:var(--panel)}
 & .pf-ring b{position:relative;color:var(--txt);font:700 12px/1 var(--mm-text);font-variant-numeric:tabular-nums}
 & .pf-ring-net{font:600 11px/1.25 var(--mm-text);font-variant-numeric:tabular-nums}
 & .pf-ring-item small{color:var(--dim);font:400 10px/1.25 var(--mm-text)}
 & .pf-foot{margin:7px 0 0;color:var(--dim);font:400 11px/1.4 var(--mm-text)}
 & .pf-heat{grid-template-columns:40px repeat(6,minmax(24px,1fr))}
 & .pf-heat .cell{min-height:19px}
 & .pf-cal{display:grid;grid-template-columns:46px repeat(5,minmax(0,1fr));gap:3px;align-items:center;max-height:188px;overflow-y:auto;scrollbar-width:thin}
 & .pf-cal .axis{color:var(--dim);font:400 11px/1.3 var(--mm-text);text-align:center}
 & .pf-cal .pf-cal-head{position:sticky;top:0;z-index:1;align-self:stretch;background:var(--panel);padding-bottom:2px}
 & .pf-cal .axis.pf-cal-week{text-align:left;white-space:nowrap}
 & .pf-cal-cell,& .pf-cal-none{display:block;height:26px;border-radius:3px}
 & .pf-cal-none{background:color-mix(in srgb,var(--panel2) 40%,transparent)}
 & .pf-cal-cell:hover,& .pf-cal-cell:focus-visible{outline:2px solid var(--accent);outline-offset:-1px}
 & .pf-cal-key{display:flex;align-items:center;flex-wrap:wrap;gap:4px;margin-top:7px;color:var(--dim);font:400 11px/1.3 var(--mm-text)}
 & .pf-cal-key i{width:18px;height:9px;border-radius:2px}
 & .pf-cal-range{margin-left:auto;font-variant-numeric:tabular-nums}
 & .pf-radar{display:block;width:100%;max-height:230px;margin:auto}
 & .pf-radar .grid{fill:none;stroke:var(--line);stroke-width:1}
 & .pf-radar .shape{fill:color-mix(in srgb,var(--accent) 28%,transparent);stroke:var(--accent);stroke-width:2}
 & .pf-radar .dot{fill:var(--accent);stroke:var(--panel);stroke-width:2}
 & .pf-radar text{fill:var(--dim);font:400 11px var(--mm-text)}
 & .pf-radar text .val{fill:var(--txt);font-weight:700;font-size:12px}
 & .pf-event-list{display:grid}
 & .pf-event{display:grid;grid-template-columns:92px minmax(0,1fr) auto;align-items:center;gap:8px;padding:4px 0;border-bottom:1px solid color-mix(in srgb,var(--line) 55%,transparent);font:400 12px/1.35 var(--mm-text)}
 & .pf-event:last-child{border-bottom:0}
 & .pf-event>svg{display:none}
 & .pf-event small{display:block;color:var(--dim);font:400 11px/1.3 var(--mm-text)}
 & .pf-event-date{font-variant-numeric:tabular-nums;white-space:nowrap}
 & .pf-check{display:grid;gap:5px;margin:0;padding:0;list-style:none}
 & .pf-check li{display:flex;gap:7px;font:400 12px/1.45 var(--mm-text)}
 & .pf-check svg{flex:none;width:16px;height:16px;fill:none;stroke:var(--green);stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
 & .pf-check b{font-weight:600}
 & .pf-check b.q-positive{color:var(--green)}
 & .pf-check b.q-negative{color:var(--red)}
 /* Sessions drive their day; round trips drive the chart beneath them. Long tables scroll inside an equal band. */
 & .pf-scroll{max-height:286px;overflow:auto;scrollbar-width:thin}
 & .pf-scroll thead th{position:sticky;top:0;z-index:1;background:var(--panel)}
 & #pf-sessions tr{cursor:pointer}
 & #pf-sessions td:first-child{white-space:nowrap}
 /* Evidence: one status row each, opened only when wanted. Nothing is hidden about what is missing. */
 & .pf-ev{border-top:1px solid var(--line)}
 & .pf-ev:first-child{border-top:0}
 & .pf-ev>summary{display:grid;grid-template-columns:minmax(150px,230px) 22px 104px minmax(0,1fr) 14px;align-items:center;gap:6px;min-height:34px;padding:3px 12px;list-style:none;cursor:pointer;font:400 12px/1.4 var(--mm-text)}
 & .pf-ev>summary::-webkit-details-marker{display:none}
 & .pf-ev>summary:hover{background:color-mix(in srgb,var(--accent) 8%,transparent)}
 & .pf-ev>summary:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
 & .pf-ev>summary>b{font-weight:600;color:var(--txt)}
 & .pf-ev>summary::after{content:"›";grid-column:5;color:var(--dim);font-size:16px;line-height:1;justify-self:center;transition:transform .12s}
 & .pf-ev[open]>summary::after{transform:rotate(90deg)}
 & .pf-ev-state{justify-self:start;padding:1px 7px;border:1px solid var(--line);border-radius:99px;color:var(--dim);font:500 11px/1.5 var(--mm-text);font-style:normal;white-space:nowrap}
 & .pf-ev-state[data-state=ok]{color:var(--green);border-color:color-mix(in srgb,var(--green) 50%,var(--line))}
 & .pf-ev-state[data-state=wait]{color:var(--gold);border-color:color-mix(in srgb,var(--gold) 50%,var(--line))}
 & .pf-ev-state[data-state=off]{color:var(--red);border-color:color-mix(in srgb,var(--red) 50%,var(--line))}
 & .pf-ev-why{min-width:0;color:var(--dim)}
 & .pf-ev-body{padding:4px 12px 12px}
}
@media(max-width:1250px){.q-design-model[data-q-system][data-q-page="performance"]{
 & .pf-kpis{grid-template-columns:repeat(4,minmax(0,1fr))}
 & .pf-cols-four{grid-template-columns:repeat(2,minmax(0,1fr))}
 & .pf-cols-drove{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
 & .pf-cols-drove>.pf-cell:last-child{grid-column:1/-1;border-left:0;border-top:1px solid var(--line)}
 & .pf-cols-four>.pf-cell:nth-child(odd){border-left:0}
 & .pf-cols-four>.pf-cell:nth-child(n+3){border-top:1px solid var(--line)}
 & :is(.pf-cols-result,.pf-cols-review,.pf-cols-trades){grid-template-columns:minmax(0,1fr)}
 & :is(.pf-cols-result,.pf-cols-review,.pf-cols-trades)>.pf-cell:not(:first-child){border-left:0;border-top:1px solid var(--line)}
}}
@media(max-width:800px){.q-design-model[data-q-system][data-q-page="performance"]{
 & .pf-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}
 & .pf-score{grid-column:1/-1}
 & :is(.pf-cols-four,.pf-cols-drove){grid-template-columns:minmax(0,1fr)}
 & :is(.pf-cols-four,.pf-cols-drove)>.pf-cell:not(:first-child){border-left:0;border-top:1px solid var(--line)}
 & #pf-head{flex-basis:100%}
 & .pf-range-panel{left:0;right:auto}
 & .pf-status{white-space:normal}
 & .pf-chart-tabs{margin-left:0;width:100%}
 & .pf-ev>summary{grid-template-columns:minmax(0,1fr) 22px auto 14px}
 & .pf-ev-why{grid-column:1/-1;grid-row:2}
}}
/* Shared Analytics surface: every Analytics route not yet on the complete system. quantos-navigation.js sets
   data-q-analytics and loads this file on those routes. It only restyles; it changes no layout owner or data. */
html[data-q-analytics] body{background-image:radial-gradient(1100px 520px at 72% -8%,color-mix(in srgb,var(--accent) 9%,transparent),transparent 70%);background-attachment:fixed}
html[data-q-analytics] .wrap :is(.q-panel,.q-card,.qan-kpi,.qan-panel,.qan-card,.mxr-card,.mxr-kpi,.panel,.card){border:1px solid color-mix(in srgb,var(--accent) 14%,var(--line));border-radius:8px;background:linear-gradient(160deg,color-mix(in srgb,var(--accent) 5%,var(--panel)),var(--panel) 62%);box-shadow:0 1px 0 color-mix(in srgb,var(--txt) 4%,transparent) inset}
html[data-q-analytics] .wrap :is(.q-panel-head,.qan-panel-head){font:600 13px/1.4 var(--mm-display);border-color:color-mix(in srgb,var(--line) 70%,transparent);background:transparent}
html[data-q-analytics] .wrap .q-card:has(.q-card-value.q-positive,.q-metric-value.q-positive){border-color:color-mix(in srgb,var(--green) 45%,var(--line));box-shadow:inset 0 -22px 30px -24px color-mix(in srgb,var(--green) 45%,transparent)}
html[data-q-analytics] .wrap .q-card:has(.q-card-value.q-negative,.q-metric-value.q-negative){border-color:color-mix(in srgb,var(--red) 45%,var(--line));box-shadow:inset 0 -22px 30px -24px color-mix(in srgb,var(--red) 45%,transparent)}
/* Inter on every Analytics route; figures keep aligned digits. The polish layer's tone stripe gives way to the card's own tone. */
html[data-q-analytics] .wrap{--mm-mono:var(--mm-text);font-variant-numeric:tabular-nums}
html[data-q-analytics] .wrap .q-cards>.q-card::before{display:none}
html[data-q-analytics] .wrap .q-card>:is(span,strong,small){display:block}
html[data-q-analytics] .wrap .q-card>span:first-child:not([class]){color:var(--dim);font:500 12px/1.3 var(--mm-text)}
html[data-q-analytics] .wrap .q-card>strong{margin-top:4px;font:700 18px/1.2 var(--mm-text)}
html[data-q-analytics] .wrap .q-card>small{margin-top:3px;color:var(--dim);font:400 12px/1.4 var(--mm-text)}
html[data-q-analytics] .wrap :is(.q-card-value,.q-metric-value){font-family:var(--mm-text);font-weight:700;font-variant-numeric:tabular-nums}
html[data-q-analytics] .wrap .q-analytics-icon{flex:none;display:inline-grid;place-items:center;width:24px;height:24px;margin-right:7px;vertical-align:middle;border-radius:6px;color:var(--accent);background:color-mix(in srgb,var(--accent) 15%,transparent)}
html[data-q-analytics] .wrap .q-analytics-icon svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
html[data-q-analytics] .wrap .q-table tbody tr:hover{background:color-mix(in srgb,var(--accent) 9%,transparent)}
/* The performance dashboard uses the same surface language. */
html[data-q-analytics] .q-design-model[data-q-page="performance"] :is(.q-panel,.q-card):not(.pf-score){background:linear-gradient(160deg,color-mix(in srgb,var(--accent) 5%,var(--panel)),var(--panel) 62%);border-color:color-mix(in srgb,var(--accent) 14%,var(--line));border-radius:8px}
html[data-q-analytics] .q-design-model[data-q-page="performance"] .pf-kpi.pf-glow-pos{border-color:color-mix(in srgb,var(--green) 50%,var(--line));box-shadow:inset 0 -26px 30px -24px color-mix(in srgb,var(--green) 50%,transparent)}
html[data-q-analytics] .q-design-model[data-q-page="performance"] .pf-kpi.pf-glow-neg{border-color:color-mix(in srgb,var(--red) 50%,var(--line));box-shadow:inset 0 -26px 30px -24px color-mix(in srgb,var(--red) 50%,transparent)}
html[data-q-analytics] .q-design-model[data-q-page="performance"] .q-panel-head{font:600 13px/1.4 var(--mm-display)}
/* Long Psychology timelines stay inside their panel, so the sections after them remain reachable. */
html[data-q-analytics] #py2-events,html[data-q-analytics] body[data-view="timeline"] #py-route-content{max-height:560px;overflow-y:auto;scrollbar-width:thin}
/* These rows are buttons, which otherwise keep the browser's dark text and vanish on a dark theme. */
html[data-q-analytics] .wrap .sa-bar{color:var(--txt)}
/* Psychology Analysis: one page holding the former Edge, Feedback, Patterns and Profile routes. */
.wrap[data-q-page="psychology"]{
 & .py2-anchor{scroll-margin-top:100px}
 & .py2-cols{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
 & .py2-cols-wide{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
 & .py2-cell{min-width:0;padding:10px 12px}
 & .py2-cell+.py2-cell{border-left:1px solid var(--line)}
 & .py2-cell-head{display:flex;align-items:center;gap:5px;margin:0 0 8px;font:600 12px/1.4 var(--mm-display)}
 & .py2-rate{display:grid;grid-template-columns:minmax(60px,1fr) 52px;align-items:center;gap:8px;min-width:130px}
 & .py2-rate strong{text-align:right;font-weight:600}
 & .py2-baseline{grid-template-columns:minmax(0,1fr)}
 & .py2-base{display:flex;align-items:baseline;justify-content:space-between;gap:10px;padding:8px 10px}
 & .py2-base strong{margin:0;font:700 16px/1.1 var(--mm-text)}
 & .py2-kpis{gap:8px}
 & .py2-kpi{padding:11px 12px}
 & .py2-kpi .value,& .py2-kpi.primary .value{margin:7px 0 4px;font:700 22px/1.15 var(--mm-text);letter-spacing:-.3px}
 & .py2-kpi .sub{font-size:12px}
 & .py2-requirements{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
 & .py2-req{padding:10px}
 & .py2-req p{font-size:12px}
 & .py2-more{margin-left:8px;color:var(--accent);font:500 12px/1.3 var(--mm-text);text-decoration:none;white-space:nowrap}
 & .py2-more::after{content:" →"}
 & .py2-history{max-height:300px;overflow:auto}
 & .py2-routes a:first-child{color:var(--dim);border-color:var(--line)}
 & .py2-routes a:hover{color:var(--txt);border-color:var(--accent)}
}
@media(max-width:1100px){.wrap[data-q-page="psychology"]{
 & :is(.py2-cols,.py2-cols-wide){grid-template-columns:minmax(0,1fr)}
 & .py2-cell+.py2-cell{border-left:0;border-top:1px solid var(--line)}
 & .py2-requirements{grid-template-columns:repeat(2,minmax(0,1fr))}
}}
@media(max-width:620px){.wrap[data-q-page="psychology"]{
 & .py2-requirements{grid-template-columns:minmax(0,1fr)}
}}
/* behavior.html: moved here from its page stylesheet so one common file owns it. */
@scope (:root:has([data-q-page="behavior"])) {
/* Only layout and state live here. Every colour resolves through a theme token,
   so the page follows a palette switch instead of looking correct in whichever
   theme it happened to be written in. */
.bx-tabs{display:flex;gap:2px;flex-wrap:wrap;border:1px solid var(--line);border-radius:6px;
  padding:3px;background:var(--panel)}
.bx-tabs button{border:0;background:transparent;color:var(--mut);cursor:pointer;
  font:600 var(--fs-body,12px)/1 var(--mm-display);padding:9px 13px;border-radius:4px;
  letter-spacing:.02em}
.bx-tabs button:hover{color:var(--txt);background:var(--panel2)}
.bx-tabs button.on{background:color-mix(in srgb,var(--gold) 16%,var(--panel2));color:var(--txt)}
.bx-tabs button:focus-visible{outline:2px solid var(--gold);outline-offset:1px}
/* behaviour analysis 3's five screens sit left of the divider; the screens it
   dropped but that are still the drill-down targets sit right of it. */
.bx-tabsep{width:1px;align-self:stretch;background:var(--line);margin:4px 7px}
@media(max-width:700px){.bx-tabsep{width:100%;height:1px;margin:5px 0}}
/* Evidence category filter on the Discipline screen. */
.bx-filter{display:flex;gap:6px;flex-wrap:wrap}
.bx-filter button{border:1px solid var(--line);background:var(--panel2);color:var(--mut);
  border-radius:999px;padding:5px 12px;cursor:pointer;
  font:600 var(--fs-label,10px)/1 var(--mm-mono);letter-spacing:.04em}
.bx-filter button:hover{color:var(--txt)}
.bx-filter button.on{background:color-mix(in srgb,var(--gold) 20%,var(--panel2));color:var(--txt);
  border-color:color-mix(in srgb,var(--gold) 50%,var(--line))}
.bx-filter button:focus-visible{outline:2px solid var(--gold);outline-offset:1px}

.bx-state{display:grid;grid-template-columns:minmax(230px,.8fr) minmax(0,2.2fr);gap:10px}
@media(max-width:900px){.bx-state{grid-template-columns:minmax(0,1fr)}}
.bx-big{font:600 30px/1.05 var(--mm-display);letter-spacing:-.02em;margin:6px 0 8px}
.bx-big.sm{font-size:18px;color:var(--mut)}
.bx-sub{font-size:var(--fs-small,10px);color:var(--dim);line-height:1.5}
.bx-pills{display:flex;gap:6px;flex-wrap:wrap;margin-top:9px}
.bx-pill{border:1px solid var(--line);border-radius:999px;padding:3px 9px;background:var(--panel2);
  font-size:var(--fs-label,10px);color:var(--dim)}

.bx-weights{display:flex;height:32px;border:1px solid var(--line);border-radius:5px;overflow:hidden}
.bx-weights span{display:flex;align-items:center;justify-content:center;min-width:0;overflow:hidden;
  font:600 var(--fs-label,10px)/1 var(--mm-mono);letter-spacing:.02em;color:var(--txt);
  border-right:1px solid var(--line)}
.bx-weights span:last-child{border-right:0}
.bx-weights span.ok{background:color-mix(in srgb,var(--gold) 42%,var(--panel))}
.bx-weights span.no{background:color-mix(in srgb,var(--line) 40%,var(--panel));color:var(--mut)}

.bx-comp{border:1px solid var(--line);border-radius:6px;background:var(--panel2);padding:11px 12px}
.bx-comp h4{margin:0 0 3px;font:600 var(--fs-body,12px)/1.3 var(--mm-display);display:flex;gap:8px;
  align-items:baseline}
.bx-comp h4 .w{margin-left:auto;font:400 var(--fs-label,10px)/1 var(--mm-mono);color:var(--mut)}
.bx-comp .r{font-size:var(--fs-small,10px);color:var(--dim);line-height:1.5;margin:5px 0 0}
.bx-subs{margin:9px 0 0;display:grid;gap:4px}
.bx-sub-row{display:grid;grid-template-columns:1fr 54px;gap:8px;align-items:center;
  font-size:var(--fs-label,10px);color:var(--mut);padding:3px 0;
  border-bottom:1px solid color-mix(in srgb,var(--line) 45%,transparent)}
.bx-sub-row:last-child{border-bottom:0}
.bx-sub-row b{font:600 var(--fs-label,10px)/1 var(--mm-mono);text-align:right;
  font-variant-numeric:tabular-nums;color:var(--txt)}
.bx-sub-row b.na{color:var(--mut);font-weight:400}

.bx-bars{display:grid;gap:8px}
.bx-bar{display:grid;grid-template-columns:minmax(120px,1.1fr) minmax(0,2fr) 96px;gap:10px;
  align-items:center;font-size:var(--fs-body,12px)}
.bx-bar .tr{height:9px;border-radius:999px;background:var(--panel2);overflow:hidden}
.bx-bar .fl{height:100%;border-radius:inherit;background:var(--gold)}
.bx-bar .v{font:600 var(--fs-label,10px)/1 var(--mm-mono);text-align:right;
  font-variant-numeric:tabular-nums;color:var(--dim)}
.bx-bar.click{cursor:pointer}
.bx-bar.click:hover .tr,.bx-bar.click:focus-visible .tr{background:color-mix(in srgb,var(--gold) 18%,var(--panel2))}

.bx-flag{display:inline-block;font:600 var(--fs-label,10px)/1 var(--mm-mono);letter-spacing:.06em;
  border-radius:3px;padding:3px 7px;border:1px solid var(--line);background:var(--panel2)}
.bx-flag.risk{color:var(--red);border-color:color-mix(in srgb,var(--red) 45%,var(--line))}
.bx-flag.ok{color:var(--green);border-color:color-mix(in srgb,var(--green) 45%,var(--line))}
.bx-flag.wait{color:var(--mut)}

.bx-tl{display:grid;gap:0;position:relative}
.bx-ev{display:grid;grid-template-columns:74px 18px minmax(0,1fr);gap:10px;align-items:start;
  padding:7px 0;font-size:var(--fs-body,12px)}
.bx-ev .clk{font:400 var(--fs-label,10px)/1.5 var(--mm-mono);color:var(--mut);text-align:right;
  font-variant-numeric:tabular-nums}
.bx-ev .dot{display:flex;justify-content:center;position:relative}
.bx-ev .dot i{width:9px;height:9px;border-radius:50%;border:1.5px solid var(--line);
  background:var(--panel);margin-top:3px;display:block}
.bx-ev.hit .dot i{background:var(--red);border-color:var(--red)}
.bx-ev.exit .dot i{background:var(--dim);border-color:var(--dim)}
.bx-ev.post .dot i{background:var(--gold);border-color:var(--gold)}
.bx-ev .dot::before{content:"";position:absolute;top:0;bottom:-14px;width:1px;
  background:var(--line);left:calc(50% - .5px)}
.bx-ev:last-child .dot::before{display:none}
.bx-ev .bd{min-width:0}
.bx-ev .fl{display:flex;gap:6px;flex-wrap:wrap;margin-top:5px}
.bx-ev .act{font-size:var(--fs-label,10px);color:var(--mut);margin-top:4px}

.bx-miss{margin:8px 0 0;padding:0;list-style:none;display:grid;gap:5px}
.bx-miss li{font-size:var(--fs-label,10px);color:var(--dim);line-height:1.5;
  padding-left:15px;position:relative}
.bx-miss li::before{content:"×";position:absolute;left:0;color:var(--red);font-weight:600}
.bx-have li::before{content:"✓";color:var(--green)}

.bx-clickrow{cursor:pointer}
.bx-clickrow:focus-visible{outline:2px solid var(--gold);outline-offset:-2px}
.bx-crumb{display:flex;gap:8px;align-items:center;font-size:var(--fs-label,10px);color:var(--mut);
  flex-wrap:wrap}
.bx-crumb button{border:0;background:transparent;color:var(--gold);cursor:pointer;padding:0;
  font:inherit;text-decoration:underline}
.bx-chart{width:100%;height:auto;display:block;overflow:visible}
.bx-chart .gl{stroke:var(--line);stroke-width:1;opacity:.5}
.bx-chart .ln{fill:none;stroke:var(--gold);stroke-width:1.8}
.bx-chart .pt{fill:var(--gold)}
.bx-chart text{fill:var(--mut);font:400 9px var(--mm-mono)}
}
/* intelligence/mistakes.html: moved here from its page stylesheet so one common file owns it. */
@scope (:root:has([data-q-page="mistakes"])) {
.mxr{display:grid;gap:12px}.mxr-toolbar{display:flex;align-items:end;gap:8px;flex-wrap:wrap}.mxr-toolbar label{display:grid;gap:4px;color:var(--mut);font-size:11px;font-weight:600}.mxr-toolbar input,.mxr-toolbar select{font:inherit;font-size:12px;color:var(--txt);background:var(--panel2);border:1px solid var(--line);border-radius:5px;padding:6px 8px}.mxr-status{margin-left:auto;color:var(--mut);font-size:11px}.mxr-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:10px}.mxr-kpi{background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:12px;min-width:0}.mxr-kpi .label{color:var(--mut);font-size:10px;font-weight:700}.mxr-kpi .value{font-size:20px;font-weight:700;margin-top:6px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mxr-kpi .detail{font-size:12px;color:var(--dim);line-height:1.45;margin-top:4px}.mxr-panel{background:var(--panel);border:1px solid var(--line);border-radius:6px;overflow:hidden}.mxr-panel>h2{margin:0;padding:10px 13px;border-bottom:1px solid var(--line);font-size:12px;font-weight:600}.mxr-body{padding:12px}.mxr-distribution{display:grid;gap:8px}.mxr-dist{display:grid;grid-template-columns:minmax(120px,190px) 1fr 52px;gap:10px;align-items:center;font-size:12px}.mxr-track{height:8px;background:var(--panel2);border-radius:5px;overflow:hidden}.mxr-track i{display:block;height:100%;background:var(--accent)}.mxr-chart-grid{display:grid;grid-template-columns:minmax(0,3fr) minmax(230px,1fr);gap:10px}.mxr-trade-summary{display:grid;gap:8px}.mxr-summary-item{padding:10px;background:var(--panel2);border:1px solid var(--line);border-radius:5px}.mxr-summary-item b{display:block;font-size:11px}.mxr-summary-item span{display:block;color:var(--dim);font-size:12px;line-height:1.45;margin-top:4px}.mxr-table-wrap{overflow:auto;max-height:520px}.mxr-table{width:100%;border-collapse:collapse;font-size:12px}.mxr-table th,.mxr-table td{padding:8px 9px;border-bottom:1px solid var(--line);text-align:left}.mxr-table th{position:sticky;top:0;background:var(--panel);color:var(--mut);font-size:10px}.mxr-table .num{text-align:right;font-variant-numeric:tabular-nums}.mxr-trade{cursor:pointer}.mxr-trade:hover,.mxr-trade.selected{background:color-mix(in srgb,var(--accent) 9%,var(--panel))}.mxr-actions{display:flex;gap:6px;flex-wrap:wrap}.mxr-actions a{font-size:11px}.mxr-screen-nav{display:flex;gap:6px;flex-wrap:wrap}.mxr-screen-nav a[aria-current=page]{border-color:var(--accent);color:var(--txt)}.mxr-context{display:flex;gap:10px;align-items:center;flex-wrap:wrap;padding:10px 12px;background:var(--panel);border:1px solid var(--line);border-radius:6px}.mxr-context strong{font-size:12px}.mxr-context span{color:var(--dim);font-size:12px}.mxr-grid2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.mxr-grid3{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.mxr-card{background:var(--panel2);border:1px solid var(--line);border-radius:5px;padding:12px;min-width:0}.mxr-card h3{margin:0 0 7px;color:var(--mut);font-size:10px;font-weight:700;text-transform:uppercase}.mxr-card .big{font-size:17px;font-weight:700}.mxr-card p,.mxr-note{font-size:12px;line-height:1.55;color:var(--dim);margin:7px 0 0}.mxr-checkpoints{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:7px}.mxr-checkpoint{padding:9px;text-align:center;background:var(--panel2);border:1px solid var(--line);border-radius:4px}.mxr-checkpoint b,.mxr-checkpoint span{display:block;font-size:11px}.mxr-checkpoint span{margin-top:4px}.mxr-sequence{display:flex;gap:7px;align-items:center;flex-wrap:wrap;font-size:11px;font-weight:700}.mxr-empty{padding:24px;text-align:center;color:var(--mut);font-size:12px;line-height:1.6}.up{color:var(--green)}.dn{color:var(--red)}.na{color:var(--mut)}
@media(max-width:1200px){.mxr-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}}@media(max-width:850px){.mxr-chart-grid,.mxr-grid3{grid-template-columns:1fr}.mxr-grid2{grid-template-columns:1fr}.mxr-status{width:100%;margin-left:0}}@media(max-width:620px){.mxr-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.mxr-checkpoints{grid-template-columns:repeat(2,minmax(0,1fr))}.mxr-dist{grid-template-columns:minmax(95px,130px) 1fr 36px}}
.mxr-presets{display:flex;gap:5px;align-items:end;flex-wrap:wrap}.mxr-presets button{font:inherit;font-size:12px;font-weight:600;color:var(--txt);background:var(--panel2);border:1px solid var(--line);border-radius:5px;padding:7px 10px;cursor:pointer}.mxr-presets button:hover,.mxr-presets button[aria-pressed=true]{border-color:var(--accent)}
.tagwrap{position:fixed;inset:0;z-index:10040;display:none;place-items:center;padding:20px;background:color-mix(in srgb,var(--bg) 62%,transparent)}.tagwrap.open{display:grid}.tagcard{width:min(560px,94vw);max-height:84vh;overflow:auto;background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:16px 18px 18px;font-size:12px}.tagcard h4{margin:0 32px 2px 0;font-size:14px}.tagcard .who,.tagcard .foot,.commentstatus{font-size:10px;color:var(--mut)}.tagcard h5{margin:12px 0 5px;font-size:10px;color:var(--mut)}.opts{display:flex;gap:5px;flex-wrap:wrap}.opt{border:1px solid var(--line);background:var(--panel2);color:var(--dim);border-radius:4px;padding:5px 9px;font:inherit;font-size:11px;cursor:pointer}.opt.on{background:color-mix(in srgb,var(--accent) 18%,transparent);color:var(--txt);border-color:var(--accent)}.tagclose{float:right;width:26px;height:26px;border:1px solid var(--line);border-radius:4px;background:transparent;color:inherit;cursor:pointer}.commentbox{margin:10px 0 14px;padding:11px;border:1px solid var(--line);border-radius:6px;background:var(--panel2)}.commentgrid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.commentbox select,.commentbox textarea{width:100%;box-sizing:border-box;border:1px solid var(--line);border-radius:4px;background:var(--panel);color:var(--txt);font:inherit;font-size:11px;padding:7px}.commentbox textarea{min-height:58px;resize:vertical;margin-top:8px}.commentsave{margin-top:8px}.tagcard .foot{margin-top:14px;padding-top:11px;border-top:1px solid var(--line);line-height:1.5}
.mxr-map-filters{display:flex;gap:5px;flex-wrap:wrap;margin-bottom:10px}.mxr-map-filters button{font:inherit;font-size:11px;color:var(--dim);background:var(--panel2);border:1px solid var(--line);border-radius:4px;padding:5px 9px;cursor:pointer}.mxr-map-filters button[aria-pressed=true]{color:var(--txt);border-color:var(--accent)}
.mxr-action-hero{display:grid;justify-items:start;gap:7px;padding:18px;background:var(--panel);border:1px solid var(--line);border-left:3px solid var(--accent);border-radius:6px}.mxr-action-hero>span{font-size:10px;font-weight:700;color:var(--mut);text-transform:uppercase}.mxr-action-hero>strong{font-size:24px;font-weight:700}.mxr-action-hero>p{margin:0;color:var(--dim);font-size:12px;line-height:1.5}.mxr-list{margin:7px 0 0;padding-left:18px;color:var(--dim);font-size:12px;line-height:1.55}.mxr-scenarios{display:grid;gap:7px}.mxr-scenario{display:grid;grid-template-columns:minmax(150px,1fr) auto;gap:4px 12px;padding:10px 11px;background:var(--panel2);border:1px solid var(--line);border-radius:5px}.mxr-scenario div{display:grid;gap:2px}.mxr-scenario b,.mxr-scenario strong{font-size:12px}.mxr-scenario span,.mxr-scenario p{font-size:12px;line-height:1.45;color:var(--dim)}.mxr-scenario p{grid-column:1/-1;margin:0}
@media(max-width:620px){.mxr-action-hero>strong{font-size:20px}.mxr-scenario{grid-template-columns:1fr}.mxr-scenario p{grid-column:1}}
[hidden]{display:none!important}
}
/* psychology-v2.html: moved here from its page stylesheet so one common file owns it. */
@scope (:root:has([data-q-page="psychology"])) {
.py2-kpis{display:grid;grid-template-columns:1.2fr repeat(3,minmax(0,1fr));gap:10px}.py2-kpi{border:1px solid var(--line);border-radius:6px;background:var(--panel);padding:16px;min-width:0}.py2-kpi .label{font-size:var(--fs-label,11px);font-weight:700;letter-spacing:.06em;color:var(--mut)}.py2-kpi .value{font:700 28px/1.08 var(--mm-display);letter-spacing:-.02em;margin:10px 0}.py2-kpi.primary .value{font-size:38px}.py2-kpi .sub{font-size:var(--fs-body,13px);line-height:1.45;color:var(--dim)}
.py2-profile{display:grid;gap:11px}.py2-profile-row{display:grid;grid-template-columns:minmax(150px,1fr) 2fr 66px;gap:10px;align-items:center;font-size:var(--fs-body,13px)}.py2-track{height:11px;background:var(--panel2);border-radius:999px;overflow:hidden}.py2-fill{height:100%;background:var(--gold);border-radius:inherit}.py2-status{font-size:var(--fs-label,11px);font-weight:700;color:var(--mut)}
.py2-event{display:grid;grid-template-columns:72px minmax(150px,1.4fr) 80px 100px minmax(180px,2fr);gap:10px;padding:10px;border-bottom:1px solid var(--line);align-items:center;font-size:var(--fs-body,13px);cursor:pointer}.py2-event:hover,.py2-event:focus{background:var(--panel2)}.py2-event .type{font-weight:700;color:var(--txt)}.py2-event .state{font-size:var(--fs-label,11px);color:var(--gold)}
.py2-requirements{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.py2-req{border:1px solid var(--line);border-radius:6px;background:var(--panel2);padding:13px}.py2-req strong{display:block;margin-bottom:7px}.py2-req p{margin:0;color:var(--dim);font-size:var(--fs-body,13px);line-height:1.5}
.py2-baseline{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.py2-base{background:var(--panel2);border-radius:6px;padding:12px}.py2-base span{display:block;color:var(--mut);font-size:var(--fs-label,11px)}.py2-base strong{display:block;font:700 22px/1.1 var(--mm-mono);margin-top:6px}
.py2-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.py2-form label{display:grid;gap:5px;color:var(--mut);font-size:var(--fs-label,11px);font-weight:600}.py2-form input,.py2-form select,.py2-form textarea{width:100%;min-width:0;border:1px solid var(--line);border-radius:5px;background:var(--panel2);color:var(--txt);padding:8px;font:inherit}.py2-form .wide{grid-column:1/-1}.py2-actions{display:flex;gap:9px;align-items:center;margin-top:10px}.py2-actions button{border:1px solid var(--line);border-radius:5px;background:var(--panel2);color:var(--txt);padding:8px 13px;font:inherit;font-weight:700;cursor:pointer}
.py2-scope{margin-left:auto;color:var(--mut);font:500 var(--fs-label,11px)/1 var(--mm-text)}
.py2-routes{display:flex;gap:6px;flex-wrap:wrap}.py2-routes a{border:1px solid var(--line);border-radius:5px;background:var(--panel);color:var(--dim);padding:7px 10px;text-decoration:none;font-size:var(--fs-label,11px);font-weight:700}.py2-routes a:first-child,.py2-routes a:hover{color:var(--txt);border-color:var(--gold)}
@media(max-width:900px){.py2-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}.py2-requirements{grid-template-columns:minmax(0,1fr)}}
@media(max-width:620px){.py2-kpis,.py2-baseline,.py2-form{grid-template-columns:minmax(0,1fr)}.py2-form .wide{grid-column:auto}.py2-profile-row{grid-template-columns:120px minmax(0,1fr) 50px}.py2-event{grid-template-columns:60px minmax(0,1fr) 70px}.py2-event span:nth-child(n+4){display:none}}
}
/* psychology-timeline-v2.html: moved here from its page stylesheet so one common file owns it. */
@scope (:root:has([data-q-page="timeline"])) {
.py-nav{display:flex;gap:6px;flex-wrap:wrap}.py-nav a{border:1px solid var(--line);border-radius:5px;background:var(--panel);color:var(--dim);padding:7px 10px;text-decoration:none;font-size:var(--fs-label,11px);font-weight:700}.py-nav a.on,.py-nav a:hover{color:var(--txt);border-color:var(--gold)}
.py-list{display:grid}.py-row{display:grid;grid-template-columns:90px minmax(150px,1.3fr) 90px 100px minmax(200px,2fr);gap:10px;padding:10px;border-bottom:1px solid var(--line);align-items:center;font-size:var(--fs-body,13px);cursor:pointer}.py-row:hover,.py-row:focus{background:var(--panel2)}
.py-bars{display:grid;gap:11px}.py-bar{display:grid;grid-template-columns:minmax(150px,1fr) 2fr 90px;gap:10px;align-items:center}.py-track{height:11px;background:var(--panel2);border-radius:999px;overflow:hidden}.py-fill{height:100%;background:var(--gold);border-radius:inherit}
.py-state-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.py-state{border:1px solid var(--line);border-radius:6px;background:var(--panel2);padding:14px}.py-state strong{display:block;margin-bottom:8px}.py-state p{margin:0;color:var(--dim);line-height:1.5;font-size:var(--fs-body,13px)}
@media(max-width:760px){.py-row{grid-template-columns:70px minmax(0,1fr) 80px}.py-row span:nth-child(n+4){display:none}.py-state-grid{grid-template-columns:minmax(0,1fr)}.py-bar{grid-template-columns:120px minmax(0,1fr) 64px}}
}
/* report-entry-new.html: moved here from its page stylesheet so one common file owns it. */
@scope (:root:has([data-q-page="entry"])) {
.qrc{display:grid;gap:10px}.qrc-head,.qrc-controls,.qrc-panel,.qrc-kpi{border:1px solid var(--line);background:var(--panel);border-radius:7px}.qrc-head{padding:14px 16px;display:flex;align-items:flex-start;gap:14px}.qrc-head h1{margin:0;font:700 24px/1.1 var(--mm-display)}.qrc-head p{margin:5px 0 0;color:var(--dim);font-size:11px}.qrc-source{margin-left:auto;color:var(--mut);font-size:9px;text-transform:uppercase;letter-spacing:.08em}.qrc-controls{display:flex;align-items:end;gap:8px;flex-wrap:wrap;padding:9px 11px}.qrc-controls label{display:grid;gap:4px;color:var(--mut);font-size:9px;font-weight:700;text-transform:uppercase}.qrc-controls input,.qrc-controls button{min-height:31px;border:1px solid var(--line);border-radius:5px;background:var(--panel2);color:var(--txt);padding:5px 8px;font:inherit}.qrc-controls button{cursor:pointer;font-weight:700}.qrc-status{margin-left:auto;color:var(--mut);font-size:10px}.qrc-kpis{display:grid;grid-template-columns:repeat(4,minmax(130px,1fr));gap:8px}.qrc-kpi{padding:10px 12px}.qrc-kpi span{display:block;color:var(--mut);font-size:8px;text-transform:uppercase;letter-spacing:.07em}.qrc-kpi b{display:block;margin-top:4px;font:700 17px var(--mm-mono)}.qrc-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(320px,.8fr);gap:10px}.qrc-panel{min-width:0;overflow:hidden}.qrc-panel h2{margin:0;padding:10px 12px;border-bottom:1px solid var(--line);font:700 12px var(--mm-display)}.qrc-body{padding:11px}.qrc-bars{display:grid;gap:8px}.qrc-bar{display:grid;grid-template-columns:minmax(110px,160px) 1fr 85px;align-items:center;gap:8px;font-size:10px}.qrc-track{height:12px;background:var(--panel2);border-radius:4px;overflow:hidden}.qrc-track i{display:block;height:100%;border-radius:4px}.qrc-track i.pos{background:var(--green)}.qrc-track i.neg{background:var(--red)}.qrc-bar strong{text-align:right;font-family:var(--mm-mono)}.qrc-table-wrap{overflow:auto;max-height:520px}.qrc-table{width:100%;border-collapse:collapse;font-size:10px}.qrc-table th,.qrc-table td{padding:8px;border-bottom:1px solid var(--line);text-align:right;white-space:nowrap}.qrc-table th{position:sticky;top:0;background:var(--panel2);color:var(--mut);font-size:8px;text-transform:uppercase}.qrc-table th:first-child,.qrc-table td:first-child{text-align:left}.qrc-table tr.thin{opacity:.58}.qrc-empty{min-height:230px;display:grid;place-items:center;text-align:center;color:var(--mut);font-size:11px;line-height:1.6;padding:24px}.qrc-note{padding:10px 12px;border-left:3px solid var(--gold);background:color-mix(in srgb,var(--gold) 7%,var(--panel));color:var(--dim);font-size:10px;line-height:1.55}@media(max-width:900px){.qrc-grid{grid-template-columns:1fr}.qrc-kpis{grid-template-columns:repeat(2,1fr)}}@media(max-width:560px){.qrc-kpis{grid-template-columns:1fr}.qrc-status{width:100%;margin-left:0}.qrc-bar{grid-template-columns:105px 1fr 72px}}
}
/* analytics-data-readiness.html: moved here from its page stylesheet so one common file owns it. */
@scope (:root:has([data-q-page="readiness"])) {
.dr-list{display:grid;gap:8px}.dr-row{display:grid;grid-template-columns:minmax(150px,210px) 1fr 86px 100px;gap:10px;align-items:center;font-size:var(--fs-body,13px);padding:7px 0;border-bottom:1px solid color-mix(in srgb,var(--line) 55%,transparent)}
  .dr-row:last-child{border-bottom:0}.dr-track{height:8px;border-radius:5px;background:var(--panel2);overflow:hidden}.dr-track i{display:block;height:100%;border-radius:5px;background:var(--blue)}
  .dr-count,.dr-state{text-align:right;font-family:var(--mm-mono);font-variant-numeric:tabular-nums}.dr-state{font-size:10px;color:var(--mut)}
  .dr-source{display:block;margin-top:3px;color:var(--mut);font-family:var(--mm-text);font-size:12px;font-weight:400;letter-spacing:normal;line-height:1.55}
  @media(max-width:650px){.dr-row{grid-template-columns:minmax(110px,1fr) 70px 90px}.dr-track{grid-column:1/-1;grid-row:2}.dr-count{grid-column:2}.dr-state{grid-column:3}}
}
/* Analytics pages on the complete system: Behavior & Psychology and Reports & Data. One appearance for their
   header, range bar, KPIs, sections, tabs and tables, whatever each page's script calls them. Contained by .q-analytics-page. */
.q-design-model[data-q-system].q-analytics-page{
 padding:10px 12px 20px;
 & main.q-page,& .mxr,& .qrc{display:flex;flex-direction:column;gap:8px}
 & .phead,& .qrc-head{display:flex;align-items:center;gap:10px;margin:0 0 8px;padding:0;border:0;background:none;box-shadow:none}
 & .phead h1,& .qrc-head h1{margin:0;font:600 18px/1.3 var(--mm-display)}
 & .phead .sub,& .qrc-head p{margin:2px 0 0;font:400 12px/1.45 var(--mm-text);color:var(--dim)}
 & .phead .sp{flex:1}
 /* A title written by a late script keeps its place, so the page does not move when it arrives. */
 & :is(#py-route-head,#bx-head,#py2-head,#dr-head,#ad-head,#ac-head,#head,#di-head){min-height:51px}
 & #mx-nav{min-height:34px}
 /* None of these pages sets this mm-shell badge, so it would only ever read loading. */
 & #mmStatus{display:none}
 /* Range bar */
 & :is(.q-toolbar,.mxr-toolbar,.qrc-controls){display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px;padding:6px 9px;border:1px solid color-mix(in srgb,var(--accent) 14%,var(--line));border-radius:8px;background:var(--panel)}
 & :is(.q-toolbar,.mxr-toolbar,.qrc-controls)>label{display:inline-flex;align-items:center;gap:6px;color:var(--dim);font:500 12px/1.3 var(--mm-text);white-space:nowrap}
 & :is(.q-toolbar,.mxr-toolbar,.qrc-controls) :is(input,select){width:auto;min-height:28px;padding:3px 7px;font:400 12px/1.3 var(--mm-text);color:var(--txt);border:1px solid var(--line);border-radius:4px;background:var(--panel2)}
 & :is(#bx-status,#py2-status,#py-route-status,#dr-status,#mx-status,#qrc-status,.qrc-status){margin-left:auto;font:400 12px/1.3 var(--mm-text)!important;color:var(--dim)}
 & .mxr-presets{align-items:center;gap:4px}
 /* KPI row */
 & :is(.q-cards,.py2-kpis,.mxr-kpis,.qrc-kpis){display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:8px;margin:0}
 & :is(.q-cards>.q-card,.py2-kpi,.mxr-kpi,.qrc-kpi){display:flex;flex-direction:column;min-width:0;padding:10px 11px;border:1px solid color-mix(in srgb,var(--accent) 14%,var(--line));border-left-width:1px!important;border-radius:8px!important;background:linear-gradient(160deg,color-mix(in srgb,var(--accent) 5%,var(--panel)),var(--panel) 62%);box-shadow:none}
 & :is(.q-card-label,.py2-kpi .label){display:flex;align-items:center;gap:4px;color:var(--dim);font:500 12px/1.3 var(--mm-text);letter-spacing:0;text-transform:none}
 & :is(.mxr-kpi,.qrc-kpi)>:first-child{display:flex;align-items:center;gap:4px;color:var(--dim);font:500 12px/1.3 var(--mm-text);letter-spacing:0;text-transform:none}
 & :is(.q-card-value,.py2-kpi .value,.py2-kpi.primary .value){margin:7px 0 3px;font:700 22px/1.15 var(--mm-text);letter-spacing:-.3px;font-variant-numeric:tabular-nums;overflow-wrap:anywhere}
 & :is(.mxr-kpi,.qrc-kpi)>strong{margin:7px 0 3px;font:700 22px/1.15 var(--mm-text);letter-spacing:-.3px;font-variant-numeric:tabular-nums}
 & :is(.q-card-sub,.py2-kpi .sub){color:var(--dim);font:400 12px/1.4 var(--mm-text)}
 & :is(.mxr-kpi,.qrc-kpi)>:is(small,p){margin:0;color:var(--dim);font:400 12px/1.4 var(--mm-text)}
 & .q-analytics-icon{flex:none;display:inline-grid;place-items:center;width:24px;height:24px;margin-right:3px;border-radius:6px;color:var(--accent);background:color-mix(in srgb,var(--accent) 15%,transparent)}
 & .q-analytics-icon svg{width:15px;height:15px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
 /* Sections */
 & :is(.q-panel,.mxr-panel,.qrc-panel){margin:0;border:1px solid color-mix(in srgb,var(--accent) 14%,var(--line));border-radius:8px;background:linear-gradient(160deg,color-mix(in srgb,var(--accent) 5%,var(--panel)),var(--panel) 62%);box-shadow:none}
 & :is(.q-panel-head,.mxr-panel>h2,.qrc-panel>h2,.qrc-panel>h3){display:flex;align-items:center;gap:5px;min-height:0;margin:0;padding:7px 12px;font:600 16px/1.4 var(--mm-display)!important;letter-spacing:0;text-transform:none;border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent);background:transparent}
 & :is(.q-panel-body,.mxr-body){padding:10px 12px}
 & :is(.q-grid,.mxr-grid3,.mxr-chart-grid){gap:8px}
 /* Tabs read as the model's segmented control. */
 & :is(.bx-tabs,.mxr-nav,.py-nav,.py2-routes,.mx-nav){display:flex;flex-wrap:wrap;gap:2px;padding:3px;border:1px solid var(--line);border-radius:6px;background:var(--panel);width:fit-content;max-width:100%}
 & :is(.bx-tabs button,.mxr-nav a,.py-nav a,.py2-routes a,.mx-nav a){min-height:26px;padding:4px 10px;border:1px solid transparent!important;border-radius:4px;background:transparent;color:var(--dim);font:500 12px/1.3 var(--mm-text);letter-spacing:0;text-decoration:none;display:inline-flex;align-items:center}
 & :is(.bx-tabs button,.mxr-nav a,.py-nav a,.py2-routes a,.mx-nav a):hover{color:var(--txt);background:color-mix(in srgb,var(--accent) 10%,transparent)}
 & :is(.bx-tabs button.on,.mxr-nav a[aria-current],.mxr-nav a.on,.py-nav a.on,.mx-nav a[aria-current],.mx-nav a.on){color:var(--txt);border-color:var(--accent)!important;background:color-mix(in srgb,var(--accent) 18%,transparent)}
 & .py2-routes a:first-child{color:var(--dim)}
 /* The merged Psychology views no longer have their own page. */
 & .py-nav a:is([href*="psychology-edge-v2"],[href*="psychology-feedback-v2"],[href*="psychology-patterns-v2"],[href*="psychology-profile-v2"]){display:none}
 /* Bars and rows */
 & .py2-track{display:block;height:10px}
 & .py2-fill{display:block;background:var(--accent)}
 & .py2-event{grid-template-columns:72px minmax(0,1fr) 190px 80px 170px;padding:6px 8px}
 & .py2-event>span:nth-child(3){white-space:nowrap}
 & .py2-event>span:nth-child(4){text-align:right;font-variant-numeric:tabular-nums}
 & .py2-event .state{font-size:12px;color:var(--dim)}
 & .py-row{padding:6px 8px;font:400 12px/1.4 var(--mm-text)}
 & .py2-actions .q-button{min-height:30px}
 & :is(.dr-count,.dr-state,.dr-source){font-family:var(--mm-text)}
 & .dr-state{font-size:11px}
 & .dr-row{padding:5px 0}
 /* mm-bubble's marker has one size, whatever the adapter maps onto it. */
 & :is(button.info,.q-info){display:inline-grid;place-items:center;flex:none;width:20px!important;height:20px!important;min-width:0;min-height:0!important;margin:0 0 0 2px;padding:0!important;border:1px solid var(--line)!important;border-radius:50%!important;background:transparent!important;color:var(--dim);font:500 11px/1 var(--mm-text)!important}
 & :is(button.info,.q-info):hover{color:var(--accent);border-color:var(--accent)!important}
 & :is(.q-toolbar,.mxr-toolbar,.qrc-controls)>label{text-transform:none;letter-spacing:0}
 & #bx-screen{display:flex;flex-direction:column;gap:8px}
 & #bx-screen>*{margin:0}
 /* These bars are spans, which ignore width and height until they are blocks. */
 & .bx-bar .tr{display:block}
 & .bx-bar .fl{display:block;background:var(--accent)}
 & #mx-nav>nav{display:flex;flex-wrap:wrap;gap:2px;padding:3px;border:1px solid var(--line);border-radius:6px;background:var(--panel);width:fit-content;max-width:100%}
 & #mx-nav>nav a{min-height:26px;padding:4px 10px;border:1px solid transparent!important;border-radius:4px;background:transparent!important;color:var(--dim)!important;font:500 12px/1.3 var(--mm-text);text-decoration:none;display:inline-flex;align-items:center}
 & #mx-nav>nav a:hover{color:var(--txt)!important;background:color-mix(in srgb,var(--accent) 10%,transparent)!important}
 & #mx-nav>nav a:is([aria-current],.on,.active){color:var(--txt)!important;border-color:var(--accent)!important;background:color-mix(in srgb,var(--accent) 18%,transparent)!important}
 & .qrc-empty{grid-template-columns:minmax(0,1fr);min-height:0;padding:28px 16px;font-size:12px}
 & .qrc-head{justify-content:space-between}
 & .qrc-source{color:var(--dim);font:400 11px/1.3 var(--mm-text);letter-spacing:0}
 & .py-row{grid-template-columns:96px minmax(150px,1fr) 190px 72px minmax(200px,2fr)}
 & .py-row>span:nth-child(3){white-space:nowrap}
 & .py-row>span:nth-child(4){text-align:right;font-variant-numeric:tabular-nums}
 /* Figures use Inter everywhere on these pages. */
 --mm-mono:var(--mm-text);
 font-variant-numeric:tabular-nums;
}
@media(max-width:1100px){.q-design-model[data-q-system].q-analytics-page{
 & #bx-screen .q-grid[style*="repeat(3"]{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}}
@media(max-width:800px){.q-design-model[data-q-system].q-analytics-page{
 padding:8px 8px 16px;
 & #bx-screen .q-grid[style*="repeat(3"]{grid-template-columns:minmax(0,1fr)!important}
 & .bx-weights{flex-wrap:wrap;height:auto}
 & .bx-weights span{flex:1 1 30%!important;min-height:28px}
 & .phead{flex-wrap:wrap}
 & :is(#bx-status,#py2-status,#py-route-status,#dr-status,#mx-status,#qrc-status,.qrc-status){margin-left:0;flex-basis:100%}
 & :is(.q-cards,.py2-kpis,.mxr-kpis,.qrc-kpis){grid-template-columns:repeat(2,minmax(0,1fr))}
 & .py-row{grid-template-columns:70px minmax(0,1fr) 70px}
 & .py2-event{grid-template-columns:60px minmax(0,1fr) 70px}
 & .py2-event>span:nth-child(3),& .py2-event>span:nth-child(5){display:none}
}}
/* calendar-newCL.html: moved here from its page stylesheet so one common file owns it. */
@scope (:root:has([data-q-page="calendar"])) {
/* ── Type comes from the original stylesheet ──────────────────────────────
     quantos-page.css sizes every shared class from the app tokens in
     mm-theme.css (--fs-title 16, --fs-body 13, --fs-label 11, --fs-table 11),
     and this page does not override any of them. Page-specific rules below
     read the same tokens rather than carrying their own px, so nothing here
     can drift from the app scale or render smaller than it.

     A previous version of this file matched market-prep.html's RENDERED size
     instead. market-prep overrides the tokens locally to a denser 12/10/9, so
     matching it shrank the page to suit the one page that departs from the
     shared system. */

  /* Page-specific only. Cards, panels, tables, toolbar, notes and empty states
     come from quantos-page.css so this page cannot drift from Market Preparation. */

  .cl-presets{ display:flex; gap:4px; flex-wrap:wrap }
  .cl-presets button.on{ background:var(--panel2); color:var(--txt); border-color:var(--dim) }

  .cl-months{ display:grid; grid-template-columns:repeat(auto-fit,minmax(272px,1fr)); gap:12px }

  .cl-month h4{ font:700 12px/1.2 var(--mm-display); margin:0 0 7px; display:flex;
    align-items:baseline; gap:8px }
  .cl-month h4 .n{ margin-left:auto; font-family:var(--mm-mono); font-weight:600;
    font-variant-numeric:tabular-nums }

  .cl-dow, .cl-grid{ display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:4px }
  .cl-dow span{ font-size:var(--fs-label,11px); letter-spacing:.07em; color:var(--mut); font-weight:600;
    text-align:center; padding-bottom:3px }

  /* A trading calendar has no weekends, so the grid is five columns wide and a
     blank cell means "no session", not "no data". */
  .cl-cell{ min-height:46px; border:1px solid var(--line); border-radius:4px;
    background:var(--panel2); padding:4px 5px; display:flex; flex-direction:column; gap:1px }
  .cl-cell.void{ background:transparent; border-color:transparent }
  .cl-cell .d{ font-size:var(--fs-label,11px); color:var(--mut); font-variant-numeric:tabular-nums }
  .cl-cell .v{ font:600 11px/1.2 var(--mm-mono); font-variant-numeric:tabular-nums }
  .cl-cell .f{ font-size:var(--fs-label,11px); color:var(--mut); margin-top:auto }
  .cl-cell.pos{ background:color-mix(in srgb,var(--green) 13%,var(--panel2));
    border-color:color-mix(in srgb,var(--green) 34%,var(--line)) }
  .cl-cell.neg{ background:color-mix(in srgb,var(--red) 13%,var(--panel2));
    border-color:color-mix(in srgb,var(--red) 34%,var(--line)) }
  .cl-cell.flat{ opacity:.72 }
  a.cl-cell{ text-decoration:none; color:inherit }
  a.cl-cell:hover{ border-color:var(--dim) }
  a.cl-cell:focus-visible{ outline:2px solid var(--gold); outline-offset:1px }

  .cl-legend{ display:flex; gap:12px; flex-wrap:wrap; font-size:var(--fs-label,11px); color:var(--mut);
    align-items:center }
  .cl-legend i{ width:11px; height:11px; border-radius:3px; display:inline-block;
    vertical-align:-1px; margin-right:4px }
  .cl-legend i.pos{ background:color-mix(in srgb,var(--green) 45%,transparent) }
  .cl-legend i.neg{ background:color-mix(in srgb,var(--red) 45%,transparent) }
  .cl-legend i.void{ border:1px solid var(--line); background:transparent }

  /* Session preview. Selected cell is marked so the grid and the panel agree
     about which session is on screen. */
  .cl-cell.on{ outline:2px solid var(--gold); outline-offset:-2px }
  #cl-preview .pv-top{ display:flex; align-items:baseline; gap:10px; flex-wrap:wrap;
    margin-bottom:10px }
  #cl-preview .pv-date{ font-family:var(--mm-display); font-size:var(--fs-title,16px); color:var(--txt) }
  #cl-preview .pv-net{ font-family:var(--mm-mono); font-size:var(--fs-title,16px);
    font-variant-numeric:tabular-nums }
  #cl-preview .pv-open{ margin-left:auto; font-size:var(--fs-label,11px) }
  #cl-preview .pv-figs{ display:grid; grid-template-columns:repeat(auto-fit,minmax(112px,1fr));
    gap:8px; margin-bottom:11px }
  #cl-preview .pv-fig{ background:var(--panel2); border:1px solid var(--line);
    border-radius:4px; padding:7px 9px }
  #cl-preview .pv-fig .k{ display:block; font-size:var(--fs-label,11px); letter-spacing:.06em;
    text-transform:uppercase; color:var(--mut) }
  #cl-preview .pv-fig .v{ font-family:var(--mm-mono); font-size:var(--fs-body,13px);
    font-variant-numeric:tabular-nums; color:var(--txt) }
  /* Outcome sequence. Letters are printed, so colour is never the only channel. */
  #cl-preview .pv-seq{ display:flex; gap:2px; flex-wrap:wrap; margin-bottom:11px }
  #cl-preview .pv-seq i{ font-style:normal; font-family:var(--mm-mono); font-size:var(--fs-label,11px);
    width:15px; height:15px; line-height:15px; text-align:center; border-radius:2px;
    background:var(--panel2); color:var(--dim) }
  #cl-preview .pv-seq i.W{ background:color-mix(in srgb,var(--green) 30%,transparent); color:var(--txt) }
  #cl-preview .pv-seq i.L{ background:color-mix(in srgb,var(--red) 30%,transparent); color:var(--txt) }
  #cl-preview .pv-flag{ display:flex; gap:8px; align-items:baseline; padding:5px 0;
    border-top:1px solid var(--line); font-size:var(--fs-label,11px) }
  #cl-preview .pv-flag .lv{ font-size:var(--fs-label,11px); font-weight:700; letter-spacing:.05em;
    text-transform:uppercase; min-width:52px }
  #cl-preview .pv-flag .lv.bad{ color:var(--red) }
  #cl-preview .pv-flag .lv.good{ color:var(--green) }
  #cl-preview .pv-flag .lv.info{ color:var(--mut) }
  #cl-preview .pv-flag .dt{ color:var(--dim) }
}
/* daily-intelligence.html: moved here from its page stylesheet so one common file owns it. */
@scope (:root:has([data-q-page="daily"])) {
/* One screen, read top to bottom: the verdict, then the shape, then where to
     go next. Prose lives behind the (i) buttons -- the previous version put its
     explanations on the page and buried the numbers underneath them. */

  .di{ display:grid; gap:12px }

  .di-bar{ display:flex; align-items:center; gap:9px; flex-wrap:wrap;
    border:1px solid var(--line); border-radius:6px; background:var(--panel); padding:9px 12px }
  .di-bar input{ background:var(--panel2); border:1px solid var(--line); color:var(--txt);
    border-radius:5px; padding:5px 8px; font:inherit; font-size:12px }
  .di-bar .sp{ margin-left:auto; font-size:11px; color:var(--mut) }

  /* the verdict line */
  .di-head{ border:1px solid var(--line); border-radius:6px; background:var(--panel);
    padding:15px 17px; display:flex; align-items:baseline; gap:16px; flex-wrap:wrap }
  .di-net{ font-size:34px; font-weight:700; letter-spacing:-.5px; line-height:1;
    font-variant-numeric:tabular-nums }
  .di-said{ font-size:13px; color:var(--dim); flex:1 1 260px; line-height:1.5 }

  /* KPI tiles */
  .di-kpi{ display:grid; grid-template-columns:repeat(auto-fit,minmax(132px,1fr)); gap:9px }
  .kpi{ border:1px solid var(--line); border-radius:6px; background:var(--panel); padding:9px 11px }
  .kpi .l{ font-size:9px; letter-spacing:.9px; color:var(--mut); font-weight:600;
    text-transform:uppercase; display:flex; align-items:center }
  .kpi .v{ font-size:20px; font-weight:600; margin-top:3px; font-variant-numeric:tabular-nums }
  .kpi .s{ font-size:9px; color:var(--dim); margin-top:2px }

  .up{ color:var(--green) } .dn{ color:var(--red) } .na{ color:var(--mut) }

  .grid2{ display:grid; grid-template-columns:repeat(auto-fit,minmax(330px,1fr)); gap:10px }
  .pnl{ border:1px solid var(--line); border-radius:6px; background:var(--panel) }
  .pnl h3{ font-size:var(--h-panel,12px); font-weight:var(--h-panel-w,600); letter-spacing:0; padding:9px 12px; margin:0;
    border-bottom:1px solid var(--line); display:flex; align-items:center; gap:8px }
  .pnl .b{ padding:11px 12px }

  /* the W/L strip -- the clustering a win-rate percentage hides */
  .seq{ display:flex; gap:5px; flex-wrap:wrap }
  .seq i{ width:26px; height:26px; border-radius:4px; display:grid; place-items:center;
    font-style:normal; font-size:11px; font-weight:700; font-family:var(--mm-text) }
  .seq i.W{ background:color-mix(in srgb,var(--green) 20%,transparent); color:var(--green) }
  .seq i.L{ background:color-mix(in srgb,var(--red) 20%,transparent); color:var(--red) }
  .seq i.B{ background:var(--panel2); color:var(--mut) }

  /* weekday bars -- position carries the sign, colour reinforces it */
  .wk{ display:grid; gap:7px }
  .wk .row{ display:grid; grid-template-columns:74px 1fr 84px; align-items:center; gap:9px;
    font-size:11px }
  .wk .name{ color:var(--dim) }
  .wk .track{ position:relative; height:16px; background:var(--panel2); border-radius:3px }
  .wk .fill{ position:absolute; top:0; bottom:0; border-radius:3px }
  .wk .fill.pos{ background:color-mix(in srgb,var(--green) 55%,transparent) }
  .wk .fill.neg{ background:color-mix(in srgb,var(--red) 55%,transparent) }
  .wk .mid{ position:absolute; top:-2px; bottom:-2px; width:1px; background:var(--line) }
  .wk .val{ text-align:right; font-variant-numeric:tabular-nums; color:var(--txt) }

  .cards{ display:grid; grid-template-columns:repeat(auto-fit,minmax(210px,1fr)); gap:9px }
  .card{ border:1px solid var(--line); border-radius:5px; background:var(--panel2); padding:9px 11px }
  .card .t{ font-size:9px; letter-spacing:.9px; text-transform:uppercase; font-weight:700 }
  .card .n{ font-size:12px; color:var(--txt); margin-top:3px; line-height:1.45 }
  .card.good .t{ color:var(--green) } .card.bad .t{ color:var(--red) }

  .go{ display:flex; gap:7px; flex-wrap:wrap }
  .go a{ border:1px solid var(--line); border-radius:5px; background:var(--panel2);
    color:var(--dim); text-decoration:none; padding:7px 11px; font-size:11px; font-weight:600 }
  .go a:hover{ color:var(--txt); border-color:var(--dim) }

  .empty{ color:var(--mut); font-size:11px; padding:16px 2px; text-align:center; line-height:1.6 }
  #di-equity{ height:190px; width:100% }
/* Only review-specific wrapping; panels and tables use quantos-page.css. */
[data-market-analysis-review]{min-width:0;font:400 12px/1.55 var(--mm-text);margin-top:8px}
[data-market-analysis-review] h2{margin:0;font:600 14px/1.4 var(--mm-display)}
[data-market-analysis-review] p,[data-market-analysis-review] li,[data-market-analysis-review] label,[data-market-analysis-review] table.q-table td{font:400 12px/1.55 var(--mm-text)}
[data-market-analysis-review] table.q-table th{font:600 12px/1.4 var(--mm-text)}
[data-market-analysis-review] button,[data-market-analysis-review] select,[data-market-analysis-review] input,[data-market-analysis-review] textarea{font:400 12px/1.5 var(--mm-text);color:var(--txt);background:var(--panel2);border:1px solid var(--line);border-radius:4px;padding:4px 6px;max-width:100%;box-sizing:border-box}
[data-market-analysis-review] textarea{display:block;width:100%;resize:vertical}
[data-market-analysis-review] summary{cursor:pointer;font-weight:600;padding:6px 0}
[data-market-analysis-review] td{vertical-align:top;overflow-wrap:anywhere}
[data-market-analysis-review] a{color:var(--accent);overflow-wrap:anywhere}
[data-market-analysis-review] :is(button,select,input,textarea,summary,a):focus-visible{outline:2px solid var(--accent);outline-offset:2px}
[data-market-analysis-review] [hidden]{display:none!important}
}
/* trade-analysis-new.html: moved here from its page stylesheet so one common file owns it. */
@scope (:root:has([data-q-page="trade"])) {
.info{color:var(--mut)}
.q-table th button{border:0;background:transparent;color:inherit;font:inherit;font-weight:inherit;padding:0;cursor:pointer}.q-table th button:hover{color:var(--txt)}
.ta-presets{display:flex;gap:4px;flex-wrap:wrap}.ta-presets button.on{border-color:var(--blue);color:var(--txt)}#ta-status{margin-left:auto;font-size:var(--fs-body,13px)}.ta-tip{position:fixed;z-index:500;width:310px;pointer-events:none;opacity:0;transform:translateY(4px);transition:.16s;padding:12px;border:1px solid var(--line);border-radius:6px;background:var(--panel);box-shadow:0 10px 28px rgba(0,0,0,.3);font-size:var(--fs-body,13px);line-height:1.45}.ta-tip.on{opacity:1;transform:none}#ta-rows tr{cursor:pointer}#ta-rows tr:hover td,#ta-rows tr:focus td{background:var(--panel2)}#ta-chart{min-width:0;width:100%}@media(max-width:700px){#ta-status{width:100%;margin:0}.q-table{min-width:850px}}
}
/* strategy-analysis-new.html: moved here from its page stylesheet so one common file owns it. */
@scope (:root:has([data-q-page="strategy"])) {
.info{color:var(--mut)}
.sa-ranges{display:flex;gap:6px}
.sa-ranges button.on{border-color:var(--blue)}
#sa-status{margin-left:auto}
.sa-bars{display:grid;gap:8px}
.sa-bar{display:grid;width:100%;grid-template-columns:150px 1fr 110px;gap:10px;align-items:center;text-align:left;font-size:var(--fs-body,13px);background:transparent;border:1px solid transparent;padding:8px}
.sa-bar:hover,.sa-bar:focus,.sa-bar.on{background:var(--panel2);border-color:var(--line)}
.sa-track{height:18px;background:var(--panel2);position:relative;border-radius:4px}
.sa-track:after{content:"";position:absolute;left:50%;top:-2px;bottom:-2px;border-left:1px solid var(--line)}
.sa-fill{position:absolute;top:0;bottom:0;border-radius:3px}
.sa-fill.pos{left:50%;background:var(--green)}
.sa-fill.neg{right:50%;background:var(--red)}
#sa-groups tr,#sa-trades tr{cursor:pointer}
#sa-groups tr:hover td,#sa-groups tr:focus td,#sa-trades tr:hover td,#sa-trades tr:focus td{background:var(--panel2)}
.ta-tip{position:fixed;display:none;z-index:10000;width:310px;padding:12px;border:1px solid var(--line);background:var(--panel);box-shadow:0 8px 28px #0008;pointer-events:none;font-size:var(--fs-body,13px);line-height:1.45}
.ta-tip.on{display:block}
.ta-tip div{margin-top:6px}
@media(max-width:560px){.sa-bar{grid-template-columns:105px 1fr 88px;font-size:var(--fs-table,11px)}.q-table{min-width:760px}#sa-status{width:100%;margin-left:0}}
}
/* setup-analysis-newCL.html: moved here from its page stylesheet so one common file owns it. */
@scope (:root:has([data-q-page="setup"])) {
/* ── Type comes from the original stylesheet ──────────────────────────────
     quantos-page.css sizes every shared class from the app tokens in
     mm-theme.css (--fs-title 16, --fs-body 13, --fs-label 11, --fs-table 11),
     and this page does not override any of them. Page-specific rules below
     read the same tokens rather than carrying their own px, so nothing here
     can drift from the app scale or render smaller than it.

     A previous version of this file matched market-prep.html's RENDERED size
     instead. market-prep overrides the tokens locally to a denser 12/10/9, so
     matching it shrank the page to suit the one page that departs from the
     shared system. */

  /* Page-specific only. Cards, panels, tables, toolbar, notes and empty states
     come from quantos-page.css so this page cannot drift from Market Preparation. */

  .su-presets{ display:flex; gap:4px; flex-wrap:wrap }
  .su-presets button.on{ background:var(--panel2); color:var(--txt); border-color:var(--dim) }

  /* Diverging bars from a centre line: position carries the sign and the figure
     is printed beside it, so colour is never the only channel. */
  .su-bars{ display:grid; gap:7px }
  .su-bars .row{ display:grid; grid-template-columns:118px 1fr 96px; align-items:center;
    gap:9px; font-size:var(--fs-label,11px) }
  .su-bars .nm{ color:var(--dim) }
  .su-bars .track{ position:relative; height:15px; background:var(--panel2); border-radius:3px }
  .su-bars .mid{ position:absolute; top:-2px; bottom:-2px; left:50%; width:1px; background:var(--line) }
  .su-bars .fill{ position:absolute; top:0; bottom:0; border-radius:3px }
  .su-bars .fill.pos{ background:color-mix(in srgb,var(--green) 55%,transparent) }
  .su-bars .fill.neg{ background:color-mix(in srgb,var(--red) 55%,transparent) }
  .su-bars .val{ text-align:right; font-variant-numeric:tabular-nums; color:var(--txt) }
  .su-bars .row.thin{ opacity:.55 }

  .su-flag{ font-size:var(--fs-label,11px); font-weight:700; letter-spacing:.06em; padding:1px 5px;
    border-radius:3px; color:var(--gold);
    border:1px solid color-mix(in srgb,var(--gold) 40%,transparent); margin-left:6px }

  #su-rows tr[data-group]{ cursor:pointer }
  #su-rows tr[data-group]:hover td, #su-rows tr[data-group].on td{ background:var(--panel2) }
  #su-rows tr[data-group]:focus-visible td{ outline:2px solid var(--gold); outline-offset:-2px }

  /* Supporting trades. Codes are the day review's own observations, printed as
     words so the table never relies on colour alone. */
  #su-trips td{ font-variant-numeric:tabular-nums }
  #su-trips .code{ font-size:var(--fs-label,11px); letter-spacing:.04em; text-transform:uppercase;
    color:var(--mut); border:1px solid var(--line); border-radius:3px;
    padding:1px 4px; margin-right:3px; white-space:nowrap }
  #su-trips .sym{ font-family:var(--mm-mono); font-size:var(--fs-label,11px); color:var(--dim) }
}
/* opportunity-analysis-new.html: moved here from its page stylesheet so one common file owns it. */
@scope (:root:has([data-q-page="opportunity"])) {
.oa-link{margin-left:auto;color:var(--txt)}
.oa-replay-controls{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.oa-replay-controls button,.oa-replay-controls select{min-height:34px;border:1px solid var(--line);border-radius:5px;background:var(--panel2);color:var(--txt);padding:6px 9px;font:inherit;font-size:var(--fs-body,13px)}
.oa-replay-controls label{display:flex;align-items:center;gap:6px;color:var(--mut);font-size:var(--fs-label,11px)}
#oa-replay-status{margin-left:auto}
.oa-chart-grid{display:grid;grid-template-columns:minmax(0,3fr) minmax(220px,1fr);gap:12px;align-items:stretch}
#oa-chart{height:500px;min-width:0;position:relative}.oa-marker-hit{position:absolute;z-index:8;width:16px;height:16px;transform:translate(-50%,-50%);border:0;border-radius:50%;padding:0;background:transparent;cursor:pointer}.oa-marker-hit:focus-visible{outline:2px solid var(--gold);outline-offset:2px}
.oa-evidence{border:1px solid var(--line);background:var(--panel2);padding:14px;min-width:0}
.oa-evidence h3{margin:0 0 12px;font:700 var(--fs-title,16px)/1.3 var(--mm-display)}
.oa-evidence dl{display:grid;margin:0}.oa-evidence dl div{display:grid;grid-template-columns:minmax(88px,.75fr) minmax(0,1.4fr);gap:8px;padding:7px 0;border-bottom:1px solid var(--line)}
.oa-evidence dt{color:var(--mut)}.oa-evidence dd{margin:0;overflow-wrap:anywhere}
#oa-rows tr[data-i]{cursor:pointer}#oa-rows tr[data-i]:hover td,#oa-rows tr[data-i]:focus td{background:var(--panel2)}
@media(max-width:800px){.oa-chart-grid{grid-template-columns:1fr}#oa-chart{height:430px}.oa-link,#oa-replay-status{margin-left:0}.q-table{min-width:900px}}
@media(max-width:480px){#oa-chart{height:390px}.oa-evidence dl div{grid-template-columns:1fr}.oa-replay-controls button,.oa-replay-controls label{flex:1 1 135px}}
}
/* Analytics pages: shell space, alert controls, merged rows and the Daily Intelligence vocabulary. */
html[data-q-analytics] #quantos-subnav{min-height:46px;box-sizing:border-box}
/* The widget starts at 58px and animates; the reserved width has to win from the first paint. */
@media(min-width:761px){html[data-q-analytics] body{padding-left:86px!important;transition:none!important}html[data-q-analytics] #lnav{width:86px!important;transition:none!important}}
/* The alert controls sit in the free end of the top bar instead of over page content; alerts themselves stay bottom right. */
html[data-q-analytics] #mma-ctl{top:9px;right:14px;bottom:auto;left:auto;z-index:10003}
@media(max-width:1200px){html[data-q-analytics] #mma-ctl:not(:hover):not(:focus-within) button:not(#mma-toggle){display:none}}
@media(max-width:1000px){html[data-q-analytics] #mma-ctl{top:auto;right:10px;bottom:10px}}
.q-design-model[data-q-system].q-analytics-page{
 &:is(main),& main.q-page,& .di{display:flex;flex-direction:column;gap:8px}
 & .q-toolbar-break{flex-basis:100%;height:0}
 /* Status text and links in a range bar share the 12px role. */
 & .q-toolbar>:is(span,a):not(.q-toolbar-break){font:400 12px/1.3 var(--mm-text)}
 /* The adapter maps every button to q-button; these keep their own layout. */
 & .sa-bar.q-button{display:grid!important;grid-template-columns:150px minmax(40px,1fr) 90px;gap:10px;min-height:0;padding:6px 8px;border:1px solid transparent!important;background:transparent!important;text-align:left;font:400 12px/1.3 var(--mm-text)!important}
 & .sa-bar.q-button:is(:hover,:focus,.on){background:color-mix(in srgb,var(--accent) 10%,transparent)!important;border-color:var(--line)!important}
 & .sa-bars{gap:4px}
 & .sa-track{display:block;height:14px}
 & .sa-fill{display:block}
 & th .q-button{display:inline;min-height:0;padding:0;border:0!important;background:none!important;color:inherit;font:inherit!important}
 /* Daily Intelligence KPIs and flags */
 & .di-kpi .kpi{display:flex;flex-direction:column;min-width:0;padding:10px 11px;border:1px solid color-mix(in srgb,var(--accent) 14%,var(--line));border-radius:8px;background:linear-gradient(160deg,color-mix(in srgb,var(--accent) 5%,var(--panel)),var(--panel) 62%)}
 & .di-kpi .kpi>.l{display:flex;align-items:center;gap:4px;color:var(--dim);font:500 12px/1.3 var(--mm-text);letter-spacing:0;text-transform:none}
 & .di-kpi .kpi>.v{margin:7px 0 3px;font:700 22px/1.15 var(--mm-text);letter-spacing:-.3px}
 & .di-kpi .kpi>.s{color:var(--dim);font:400 12px/1.4 var(--mm-text)}
 & .card .t{font:600 12px/1.3 var(--mm-text);letter-spacing:0;text-transform:none}
 & .card .n{font:400 12px/1.45 var(--mm-text)}
 & .card .n b{font-weight:600}
 & .q-analytics-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px;align-items:stretch}
 & .q-analytics-pair>*{min-width:0}
 & .q-analytics-pair :is(.q-table-wrap,.sa-bars){max-height:430px;overflow:auto;scrollbar-width:thin}
 & .q-analytics-pair #oa-shadow{max-height:520px;overflow:auto;scrollbar-width:thin}
 & .q-analytics-pair-wide{grid-template-columns:minmax(0,2fr) minmax(0,1fr)}
 & .q-analytics-pair-wide>.q-grid{display:flex;flex-direction:column;gap:8px;margin:0}
 & .q-analytics-pair-wide>.q-grid>:last-child{flex:1}
 /* Data Readiness rows read on one line. */
 & .dr-row{grid-template-columns:minmax(280px,500px) minmax(60px,1fr) 86px 100px}
 & .dr-source{display:inline;margin:0 0 0 8px}
 /* Daily Intelligence */
 & .di-bar{display:flex;align-items:center;flex-wrap:wrap;gap:6px 8px;margin:0;padding:6px 9px;border:1px solid color-mix(in srgb,var(--accent) 14%,var(--line));border-radius:8px;background:var(--panel)}
 & .di-bar label,& .di-bar b{color:var(--dim);font:500 12px/1.3 var(--mm-text)}
 & .di-bar input{min-height:28px;padding:3px 7px;font:400 12px/1.3 var(--mm-text);color:var(--txt);border:1px solid var(--line);border-radius:4px;background:var(--panel2)}
 & #di-status{margin-left:auto;font:400 12px/1.3 var(--mm-text);color:var(--dim)}
 & .di-head{margin:0;padding:8px 12px;border:1px solid color-mix(in srgb,var(--accent) 14%,var(--line));border-radius:8px;background:var(--panel)}
 & .di-kpi{gap:8px;margin:0}
 & .grid2{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin:0}
 & .grid2>:last-child:nth-child(3n+1){grid-column:1/-1}
 & .pnl{margin:0;border:1px solid color-mix(in srgb,var(--accent) 14%,var(--line));border-radius:8px;background:linear-gradient(160deg,color-mix(in srgb,var(--accent) 5%,var(--panel)),var(--panel) 62%);box-shadow:none}
 & .pnl>:first-child:not(.b){display:flex;align-items:center;gap:5px;margin:0;padding:7px 12px;font:600 13px/1.4 var(--mm-display);letter-spacing:0;text-transform:none;border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent)}
 & .pnl>.b{padding:10px 12px}
}
@media(max-width:1100px){.q-design-model[data-q-system].q-analytics-page{
 & :is(.q-analytics-pair,.q-analytics-pair-wide){grid-template-columns:minmax(0,1fr)}
 & .grid2{grid-template-columns:repeat(2,minmax(0,1fr))}
 & .grid2>:last-child:nth-child(3n+1){grid-column:auto}
}}
@media(max-width:800px){.q-design-model[data-q-system].q-analytics-page{
 & .grid2{grid-template-columns:minmax(0,1fr)}
 & .dr-row{grid-template-columns:minmax(110px,1fr) 70px 90px}
 & .dr-source{display:block;margin:2px 0 0}
}}
/* My Account and User Administration */
.q-design-model[data-q-system].q-analytics-page:is([data-q-page="account"],[data-q-page="admin"]){
 & #ac-content,& #ad-content{display:flex;flex-direction:column;gap:8px}
 & .ac-form{display:flex;flex-direction:column;gap:9px}
 & .ac-form .q-field{color:var(--dim);font:500 12px/1.4 var(--mm-text)}
 & .ac-form .q-field[hidden]{display:none}
 & .ac-actions{display:flex;align-items:center;flex-wrap:wrap;gap:8px}
 & .ac-msg{font:400 12px/1.4 var(--mm-text)}
 & .ac-text{margin:0;color:var(--dim);font:400 12px/1.5 var(--mm-text)}
 & .ac-text code{color:var(--txt);font:500 12px/1.5 var(--mm-text);overflow-wrap:anywhere}
 & .ac-qr{display:block;width:170px;height:170px;padding:6px;border-radius:6px;background:#fff}
 & .ad-activity{margin-top:10px;max-height:260px;overflow:auto}
 & #ad-rows tr[aria-selected=true] td{background:color-mix(in srgb,var(--accent) 12%,transparent)}
 & #ac-content [hidden],& #ad-content [hidden]{display:none!important}
 & :is(.ac-actions,.q-toolbar)>a.py2-more{color:var(--accent);font:500 12px/1.3 var(--mm-text);text-decoration:none;white-space:nowrap}
 & :is(.ac-actions,.q-toolbar)>a.py2-more::after{content:" →"}
 & .ac-scroll{max-height:320px;overflow:auto}
 & .q-toolbar>.q-badge{font:500 11px/1.5 var(--mm-text)}
 & .q-table td small{display:block;color:var(--dim);font:400 11px/1.4 var(--mm-text)}
 & .ad-actions{display:flex;flex-wrap:wrap;gap:4px}
 & .ad-actions .q-button{min-height:24px;padding:2px 7px;font-size:14px!important}
 & .q-empty[hidden]{display:none}
 & .ad-dialog{width:min(440px,calc(100vw - 32px));padding:16px;border:1px solid var(--line);border-radius:8px;background:var(--panel);color:var(--txt);box-shadow:0 18px 40px rgba(0,0,0,.45)}
 & .ad-dialog::backdrop{background:rgba(0,0,0,.55)}
 & .ad-dialog form{display:flex;flex-direction:column;gap:10px}
 & .ad-dialog h2{margin:0;font:600 14px/1.4 var(--mm-display)}
 & .ad-dialog p{margin:0;font:400 12px/1.5 var(--mm-text)}
 & .ad-dialog p:empty{display:none}
 & .ad-dialog .q-field[hidden]{display:none}
 & .ad-dialog .ac-actions{justify-content:flex-end}
}
/* The Settings group's Theme entry is a button in the top bar; it reads as a tab, not a browser button. */
html[data-q-analytics] #quantos-subnav>button{background:transparent;color:var(--dim);border:1px solid transparent}
html[data-q-analytics] #quantos-subnav>button:hover{color:var(--txt);background:color-mix(in srgb,var(--accent) 12%,var(--panel));border-color:var(--line)}

/* 1 November UI audit: contained typography and sparse-panel corrections. */
#stock-screener p{font:400 12px/1.55 var(--mm-text,Inter,Arial,sans-serif)}
#stock-screener h1{font:600 18px/1.3 var(--mm-text,Inter,Arial,sans-serif)}
#stock-screener :is(button,select,input){font:400 12px/1.4 var(--mm-text,Inter,Arial,sans-serif)}
#stock-screener table{font-size:12px}
#stock-screener :is(.screen-filter-group h3,.screen-disclosure>summary,.screen-alert-dock>summary){font:600 12px/1.4 var(--mm-text,Inter,Arial,sans-serif)}
#stock-screener .screener-eyebrow{font-size:10px}

body[data-q-ui="premarket-board"]{font-family:var(--mm-text,Inter,Arial,sans-serif);font-size:14px}
body[data-q-ui="premarket-board"] :is(h1,h2,h3,p,button,input,select,textarea,label){font-family:var(--mm-text,Inter,Arial,sans-serif)}
body[data-q-ui="premarket-board"] :is(.g2,.g3){align-items:start;gap:8px}
body[data-q-ui="premarket-board"] :is(.g2,.g3)>.card>.body{flex:0 1 auto}
body[data-q-ui="premarket-board"] .body{font-size:12px;line-height:1.55}
body[data-q-ui="premarket-board"] :is(.card,.plan2,.strip,.pm){min-width:0}
body[data-q-ui="premarket-command"] :is(.pmc-top-grid,.pmc-middle-grid,.pmc-bottom-grid,.pmc-board-bottom-grid){align-items:start}
body[data-q-ui="calendars"] .grid2,body[data-q-ui="catalysts"] .grid2{align-items:start}
:root:has([data-q-page="calendar"]) .q-analytics-pair-wide>.q-grid{align-self:start;align-content:start;grid-auto-rows:max-content;min-height:0;height:auto}
body[data-q-ui="usage-guide"] :is(.steps p,.steps .why,.warn,.ok,p[style]){font:400 12px/1.6 var(--mm-text)!important}
body[data-q-ui="spx-workspace"] :is(.spx0-plan p,.spx0-note,.spx0-rules p,.spx0-rules small,.spx0-long-results p){font:400 12px/1.55 var(--mm-text)}
.q-analytics-page[data-q-page="behavior"] :is(p,.q-card-sub,.bx-note,.bx-explanation){font:400 14px/1.55 var(--mm-text)!important}
body[data-q-ui="market-widgets"] :is(.grid2,.widgets-grid,.grid){align-items:start}
body[data-q-ui="market-widgets"] :is(.panel,.widget):not(:has(canvas,iframe)){align-self:start;min-height:0}
@media(max-width:680px){
body.stock-reference-page #research-workspace{min-width:0;width:100%;max-width:100%;box-sizing:border-box}
body.stock-reference-page #research-workspace :is(.rw-main-grid,.rw-panel,.sd-panel,.rw-quote,.sd-quote,.sd-kpis,.rw-toolbar){min-width:0;max-width:100%;box-sizing:border-box}
body.stock-reference-page #research-workspace :is(.rw-toolbar,.rw-timeframes,.sd-header-facts){overflow-x:auto}
body[data-q-ui="premarket-board"] .plan2{grid-template-columns:minmax(0,1fr)}
}

/* Remaining audit FLOW-01: existing chart/permission split, with native resize controls. */
#dashboard .ref-trading-row.q-primary-split{display:grid;grid-template-columns:minmax(0,1fr) 8px var(--engine-width,250px);align-items:start;gap:0}
#dashboard .q-primary-split>#dashboard-engine{margin-top:0;min-width:0}
#dashboard .q-primary-split>#ref-engine-resize{display:block}
#dashboard .q-primary-split.engine-hidden{grid-template-columns:minmax(0,1fr)}
#dashboard .q-primary-split.engine-hidden>#dashboard-engine,#dashboard .q-primary-split.engine-hidden>#ref-engine-resize{display:none}
@media(max-width:680px){#dashboard .ref-trading-row.q-primary-split{grid-template-columns:minmax(0,1fr);gap:8px}#dashboard .q-primary-split>#ref-engine-resize{display:none}}

/* Remaining audit FLOW-02/03: chart left, highest-priority supporting pane right. */
#research-workspace[data-q-page="premarket"]:not([data-stock-research]) .rw-main-grid{grid-template-columns:minmax(0,2fr) minmax(260px,1fr);align-items:start}
#research-workspace[data-q-page="premarket"]:not([data-stock-research]) #rw-chart-panel{grid-column:1;grid-row:1/4;width:100%!important;min-height:440px}
#research-workspace[data-q-page="premarket"]:not([data-stock-research]) :is(#rw-permission-panel,#rw-levels-panel,#rw-sentiment-panel){grid-column:2}
.q-audit-primary-split{display:grid;grid-template-columns:minmax(0,2fr) minmax(260px,1fr);gap:8px;align-items:start;min-width:0}
.q-audit-primary-split>*{min-width:0;margin:0!important}
body[data-q-ui="intraday-command"] .id-main{align-items:start}
@media(max-width:800px){.q-audit-primary-split,#research-workspace[data-q-page="premarket"]:not([data-stock-research]) .rw-main-grid{grid-template-columns:minmax(0,1fr)}#research-workspace[data-q-page="premarket"]:not([data-stock-research]) :is(#rw-chart-panel,#rw-permission-panel,#rw-levels-panel,#rw-sentiment-panel){grid-column:auto;grid-row:auto}}

@media(min-width:901px){body[data-q-ui="intraday-command"] .id-main{grid-template-columns:minmax(0,2fr) minmax(280px,1fr);gap:8px}}
body[data-q-ui="premarket-board"] .q-audit-primary-split>#s-plan .plan2{grid-template-columns:1fr}
body[data-q-ui="premarket-board"] .q-audit-primary-split>#s-plan .verdict{border-right:0;border-bottom:1px solid var(--line)}

/* Remaining audit FLOW-04/05: complete reference/evidence stays available on demand. */
.q-audit-reference>summary,.q-audit-diagnostics>summary{padding:8px 10px;cursor:pointer;font:600 12px/1.5 var(--mm-text);background:var(--panel);color:var(--txt);border:1px solid var(--line);border-radius:5px}
.q-audit-reference #lessonBody{margin-top:8px}
[data-q-ui="scalp-audit"] .panel-head h2.title{margin:0;font:600 12px/1.4 var(--mm-text)}
[data-q-ui="scalp-audit"] .q-audit-diagnostics{min-width:0;margin:6px 0}
[data-q-ui="scalp-audit"] .q-audit-diagnostics>.panel{margin-top:0}

/* Post-audit STYLE-04: local account entry pages share app typography. */
body[data-auth-page]{--mm-text:Inter,Arial,sans-serif;--mm-display:var(--mm-text);--text:var(--mm-text);--display:var(--mm-text);font-family:var(--mm-text)}
body[data-auth-page] .auth-card h1{font:600 18px/1.4 var(--mm-display)}
body[data-auth-page] .auth-card :is(p,label,input,button,a){font-family:var(--mm-text);font-size:12px;line-height:1.5}

/* Stocks routed views: count only visible panels; preserve overview composition. */
#research-workspace[data-stock-research][data-research-tab]:not([data-research-tab="overview"]) .rw-main-grid{grid-template-columns:repeat(12,minmax(0,1fr));align-items:start;gap:8px}
#research-workspace[data-stock-research][data-research-tab]:not([data-research-tab="overview"]) .rw-main-grid>.rw-panel{grid-column:span var(--research-panel-span,12)!important;min-width:0;align-self:start}
#research-workspace[data-stock-research][data-research-tab]:not([data-research-tab="overview"]) :is(#rw-chart-panel,#sr-exposure-panel,#sr-technicals-panel,#sr-chain-panel,#sr-financials-panel,#sr-setup-panel){grid-row:auto!important}
#research-workspace[data-stock-research] #rw-options-panel[data-research-band="true"] #rw-options{display:grid;grid-template-columns:repeat(var(--research-option-fields,6),minmax(0,1fr));gap:6px 10px;align-items:start}
#research-workspace[data-stock-research] #rw-options-panel[data-research-band="true"] #rw-options>:not(.rw-row){grid-column:1/-1}
#research-workspace[data-stock-research] #rw-options-panel[data-research-band="true"] .rw-row{display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-width:0;padding:5px 7px;border:1px solid var(--line);border-radius:4px}
#research-workspace[data-stock-research] #rw-options-panel[data-research-band="true"] .rw-row b{font-size:12px;text-align:left}
@media(max-width:900px){#research-workspace[data-stock-research] #rw-options-panel[data-research-band="true"] #rw-options{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:680px){#research-workspace[data-stock-research][data-research-tab]:not([data-research-tab="overview"]) .rw-main-grid>.rw-panel{grid-column:1/-1!important}#research-workspace[data-stock-research] #rw-options-panel[data-research-band="true"] #rw-options{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* Routed research charts occupy their complete chart row, including Market Overview variants. */
#research-workspace[data-stock-research][data-research-tab]:not([data-research-tab="overview"]) #rw-chart-panel:not(.rw-expanded){width:100%!important;max-width:none}

/* AI Update and AI Insights. Only q-ai-* classes, so no existing consumer can match these rules.
   ai-update-widget.js reads this block on pages that do not load this file, so keep the end marker. */
.q-ai-update{margin:0}
.q-ai-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.q-ai-state{font:500 11px/1.4 var(--mm-text);color:var(--dim)}
.q-ai-tools{display:inline-flex;align-items:center;gap:6px;margin-left:auto}
.q-ai-tools button:not(.q-help){font:500 12px/1.4 var(--mm-text);color:var(--txt);background:var(--panel2);border:1px solid var(--line);border-radius:4px;padding:3px 8px;cursor:pointer}
.q-ai-tools button:hover:not(:disabled){border-color:var(--accent)}
.q-ai-tools button:disabled{opacity:.55;cursor:default}
.q-ai-tools button:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.q-ai-about{margin:0;padding:8px 10px;font:400 12px/1.5 var(--mm-text);color:var(--dim);border-top:1px solid var(--line)}
.q-ai-summary{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,.7fr) minmax(0,1.3fr) minmax(0,1.3fr);border-top:1px solid var(--line)}
.q-ai-cell{padding:8px 10px;min-width:0;font:400 12px/1.5 var(--mm-text);color:var(--txt);border-left:1px solid var(--line)}
.q-ai-cell:first-child{border-left:0}
.q-ai-label{display:block;margin-bottom:2px;font:600 10px/1.4 var(--mm-text);color:var(--dim)}
.q-ai-source{font:400 11px/1.4 var(--mm-text);color:var(--dim)}
.q-ai-detail{padding:8px 10px 10px;border-top:1px solid var(--line);font:400 12px/1.5 var(--mm-text);color:var(--txt)}
.q-ai-detail h4{margin:10px 0 4px;font:600 12px/1.4 var(--mm-display);color:var(--txt)}
.q-ai-detail h5{margin:8px 0 2px;font:600 11px/1.4 var(--mm-text);color:var(--dim)}
.q-ai-detail ul{margin:0;padding-left:16px}
.q-ai-detail p{margin:4px 0}
.q-ai-authority{margin-top:0}
.q-ai-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
.q-ai-reviews{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;margin-top:8px}
.q-ai-review{padding:8px 10px;min-width:0;border:1px solid var(--line);border-radius:4px;background:var(--panel2)}
.q-ai-review h4{margin:0 0 4px;display:flex;align-items:center;gap:6px;flex-wrap:wrap}
.q-ai-down{color:var(--dim)}
.q-ai-ref{font:500 11px/1.4 var(--mm-text);color:var(--accent)}
.q-ai-table th[scope=row]{white-space:nowrap;text-align:left;font-weight:500;color:var(--dim)}
.q-ai-table td{overflow-wrap:anywhere}
@media (max-width:1000px){.q-ai-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.q-ai-wide{grid-column:1/-1}.q-ai-cell{border-left:0;border-top:1px solid var(--line)}.q-ai-cell:first-child{border-top:0}.q-ai-reviews{grid-template-columns:1fr}}
.q-ai-access{display:inline-flex;align-items:center;padding:2px 6px;border:1px solid var(--line);border-radius:4px;font:500 11px/1.4 var(--mm-text);color:var(--dim);white-space:nowrap}
.q-ai-stack{display:grid;gap:10px}
.q-ai-form{display:flex;flex-wrap:wrap;align-items:end;gap:8px;padding:8px 10px}
.q-ai-form label{display:grid;gap:3px;font:500 11px/1.4 var(--mm-text);color:var(--dim)}
.q-ai-form :is(input,select){font:400 12px/1.4 var(--mm-text);color:var(--txt);background:var(--panel2);border:1px solid var(--line);border-radius:4px;padding:5px 8px;min-width:0}
.q-ai-form button,.q-ai-button{font:500 12px/1.4 var(--mm-text);color:var(--txt);background:var(--panel2);border:1px solid var(--line);border-radius:4px;padding:5px 10px;cursor:pointer}
.q-ai-form button:hover,.q-ai-button:hover{border-color:var(--accent)}
.q-ai-form button:focus-visible,.q-ai-button:focus-visible,.q-ai-row:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.q-ai-message{margin:0;padding:8px 10px;font:400 12px/1.5 var(--mm-text);color:var(--txt)}
.q-ai-row{cursor:pointer}
.q-ai-row[aria-selected=true]{background:var(--panel2)}
.q-ai-links{display:flex;flex-wrap:wrap;gap:10px;margin:6px 0;font:500 12px/1.4 var(--mm-text)}
.q-ai-links a{color:var(--accent)}
.q-ai-checks{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:6px;padding:8px 10px}
@media (max-width:640px){.q-ai-summary,.q-ai-pair{grid-template-columns:1fr}.q-ai-tools{margin-left:0}}
/* End AI Insights. */

/* Readable presentation mode. Explicit opt-in; terminal consumers retain their sizes. */
html .q-design-model[data-q-readable]{--q-readable-font:Inter,Arial,sans-serif;--mm-text:var(--q-readable-font);--mm-display:var(--mm-text);--panel:var(--deck);--panel2:var(--ink);--txt:var(--fg);--dim:var(--muted);font-family:var(--q-readable-font);font-size:16px;line-height:1.55}
html .q-design-model[data-q-readable] :is(h1,h2,h3,p,a,button,input,select,textarea,table,dt,dd,small){font-family:var(--q-readable-font)}
html .q-design-model[data-q-readable] :is(button,input,select,textarea,.q-table){font-size:14px;line-height:1.5;font-family:var(--q-readable-font)}
html .q-design-model[data-q-readable] :is(.q-note,.reference-note,.disclaimer){font-size:14px;line-height:1.6}
/* Existing public components map to shared readable roles without replacing their owners. */
@scope (.q-design-model[data-q-readable][data-q-page="public-home"]){
 html .ph-editorial :scope :is(.hero-feature-tab,.console-bar,.chart-head,.chart-legend,.legend,.legend span,.cal-foot,.cal .day,.bar-row,.hero-insight,.hero-insight small,.hero-insight b,.trade-card dt,.trade-card dd,.trade-card h3,.verdict,.ph-pricing-link,.ph-home-about,.ph-home-about p,.ph-free-note,.ph-lookup label,.ph-lookup small,.ph-lookup-result,.ph-free-tools a,.ph-free-tools small,.q-mh-table,.q-mh-table th,.q-mh-table td,.q-mh-status,.q-mh-note,.q-mh-news,.q-mh-news a,.q-mh-news small,.q-mh-index small){font-size:14px;line-height:1.5;font-family:var(--q-readable-font)}
 html .ph-editorial :scope :is(.q-mh-head,.q-mh-head b,.q-mh-index b,.ph-path-item b){font-size:16px;line-height:1.45;font-family:var(--q-readable-font)}
 html .ph-editorial :scope :is(.lede,.ph-path-item p,.section-head p,.insight p,.prod p,.step p,.trust p){font-size:16px;line-height:1.65}
 html .ph-editorial :scope .ph-banner .lede{font-size:18px}
 html .ph-editorial :scope .hero-insight small{color:var(--muted)}
 html .ph-editorial :scope .verdict{color:var(--fg);opacity:1}
 html .ph-editorial :scope .hero-feature-tab{white-space:normal;min-height:48px}
 html .ph-editorial :scope .ph-banner .trade-card dl.kv{grid-template-columns:auto minmax(0,1fr) auto minmax(0,1fr);gap:8px 12px}
 html .ph-editorial :scope .q-mh-table th,html .ph-editorial :scope .q-mh-table td{padding:7px 8px}
 html .ph-editorial :scope :is(.q-mh-card,.q-mh-index){border-radius:var(--q-model-radius);box-shadow:inset 0 1px color-mix(in srgb,var(--fg) 4%,transparent),0 3px 10px color-mix(in srgb,var(--fg) 6%,transparent)}
 html .ph-editorial :scope .ph-edge-word{text-decoration-color:var(--fg)}
 @media(max-width:600px){html .ph-editorial :scope .hero-feature-tab{font-size:13px;padding-inline:5px}html .ph-editorial :scope .ph-banner .lede{font-size:17px}}
}

/* Market widget declares its own font; explicit readable-model enrollment owns type. */
html .q-design-model[data-q-readable] :is(.q-mh-table,.q-mh-table th,.q-mh-table td,.q-mh-head,.q-mh-head b,.q-mh-index,.q-mh-index b){font-family:var(--q-readable-font)!important}
/* Public composition adapter: existing content/data owners, shared model only. */
@scope (.q-design-model[data-q-readable][data-q-page="public-home"]){
 html .ph-editorial :scope{--q-home-gap:16px;--q-home-section:24px}
 html .ph-editorial :scope>section{padding-block:var(--q-home-section)!important;scroll-margin-top:110px}
 html .ph-editorial :scope .section-head{margin-bottom:20px;gap:8px;max-width:none}
 html .ph-editorial :scope .section-head h2{font:700 clamp(26px,2.6vw,34px)/1.2 var(--q-readable-font);max-width:32ch;letter-spacing:-.025em}
 html .ph-editorial :scope .section-head p:not(.eyebrow){max-width:72ch;font-size:16px;line-height:1.6}
 html .ph-editorial :scope :is(.prod-grid,.insights,.flow,.trust){gap:var(--q-home-gap);align-items:stretch}
 html .ph-editorial :scope :is(.prod,.insight,.step){padding:16px;min-height:0;border-radius:var(--q-model-radius)}
 html .ph-editorial :scope .prod{display:flex;flex-direction:column;gap:8px}
 html .ph-editorial :scope .prod :is(h3,p){margin:0}
 html .ph-editorial :scope .prod .more{margin-top:auto;padding-top:8px;font-size:14px}
 html .ph-editorial :scope .insight-art{height:100px;margin-bottom:14px;border-radius:4px}
 html .ph-editorial :scope .insight h3{font-size:18px;line-height:1.4}
 html .ph-editorial :scope .insight p{margin-bottom:0}
 html .ph-editorial :scope .ph-banner-grid{gap:24px;align-items:center}
 html .ph-editorial :scope .ph-banner h1{font-size:clamp(44px,4.5vw,62px);max-width:15ch;line-height:1.06}
 html .ph-editorial :scope .ph-banner .hero-grid{gap:16px}
 html .ph-editorial :scope .ph-banner .console{min-height:0}
 html .ph-editorial :scope .ph-banner .hero-insight{padding:8px 12px}
 html .ph-editorial :scope .ph-banner .hero-insight :is(small,b){font-family:var(--q-readable-font);font-size:13px;line-height:1.4}
 html .ph-editorial :scope .ph-banner .kv :is(dt,dd){font-size:14px;line-height:1.45}
 html .ph-editorial :scope .ph-banner .chart-head{font:400 13px/1.4 var(--q-readable-font)}
 html .ph-editorial :scope .ph-banner .hero-chip{font-size:12px;letter-spacing:.08em}
 html .ph-editorial :scope .ph-product-path>.wrap{padding-block:0}
 html .ph-editorial :scope .ph-product-path .ph-path-help{margin-bottom:8px}
 html .ph-editorial :scope .ph-product-path a{padding-block:0}
 html .ph-editorial :scope .q-home-section-help{display:flex;justify-content:flex-end;align-items:flex-start;gap:12px;margin-bottom:8px}
 html .ph-editorial :scope .q-home-section-help:has([hidden]){height:0;margin:0;position:relative;z-index:1}
 html .ph-editorial :scope .q-home-section-help .ph-home-about{flex:1;padding:10px 12px;border:1px solid var(--line);background:var(--deck);color:var(--muted);font:400 14px/1.6 var(--q-readable-font)}
 html .ph-editorial :scope .q-mh-help{width:28px;height:28px;font-size:14px;display:inline-grid;place-items:center;position:relative}
 html .ph-editorial :scope .q-mh{gap:var(--q-home-gap)}
 html .ph-editorial :scope .q-mh-top{gap:8px 16px}
 html .ph-editorial :scope .q-mh-status{font:400 13px/1.5 var(--q-readable-font)}
 html .ph-editorial :scope .q-mh-indices{gap:var(--q-home-gap)}
 html .ph-editorial :scope .q-mh-index{padding:12px}
 html .ph-editorial :scope .q-mh-index-head{display:grid;grid-template-columns:1fr auto;gap:4px 8px}
 html .ph-editorial :scope .q-mh-index-head b{grid-column:1/-1}
 html .ph-editorial :scope .q-mh-index-head .q-mh-num:first-of-type{font-size:20px;font-weight:600}
 html .ph-editorial :scope :is(.q-mh-small,.q-mh-bar-labels,.q-mh-more,.q-mh-list h2){font:400 13px/1.5 var(--q-readable-font)}
 html .ph-editorial :scope .q-mh-head{padding:10px 12px;min-height:48px}
 html .ph-editorial :scope .q-home-research-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--q-home-gap);align-items:stretch}
 html .ph-editorial :scope .q-home-research-grid>.q-mh-card{display:flex;flex-direction:column;min-width:0}
 html .ph-editorial :scope .q-home-research-grid>.q-mh-card>:last-child{min-width:0}
 html .ph-editorial :scope :is(#mh-news,#mh-econ,#mh-earnings,#mh-sectors){max-height:352px;overflow:auto;scrollbar-gutter:stable}
 html .ph-editorial :scope .q-mh-map{height:320px;flex:1;min-height:320px}
 html .ph-editorial :scope #mh-breadth{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px;padding:8px 4px}
 html .ph-editorial :scope #mh-breadth>.q-mh-small{grid-column:1/-1;padding-bottom:0}
 html .ph-editorial :scope .q-home-mover-lists{display:block;background:var(--deck)}
 html .ph-editorial :scope .q-home-mover-tabs{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-bottom:1px solid var(--line);padding:6px;gap:4px}
 html .ph-editorial :scope .q-home-mover-tabs button{border:0;background:transparent;color:var(--fg);border-radius:4px;padding:8px 4px;font:500 13px/1.35 var(--q-readable-font);cursor:pointer}
 html .ph-editorial :scope .q-home-mover-tabs button[aria-selected="true"]{background:var(--fg);color:var(--deck)}
 html .ph-editorial :scope .q-home-mover-tabs button:focus-visible{outline:2px solid var(--fg);outline-offset:1px}
 html .ph-editorial :scope .q-home-mover-lists .q-mh-list{max-height:352px;overflow:auto;scrollbar-gutter:stable}
 html .ph-editorial :scope [hidden]{display:none!important}
 html .ph-editorial :scope .q-mh-news li{grid-template-columns:1fr auto;gap:3px 10px;padding:10px 12px}
 html .ph-editorial :scope .q-mh-news li a{grid-column:1/-1;grid-row:1;font:400 14px/1.5 var(--q-readable-font)}
 html .ph-editorial :scope .q-mh-news li span{font:400 12px/1.5 var(--q-readable-font)}
 html .ph-editorial :scope :is(#mh-econ,#mh-earnings) .q-mh-table{table-layout:fixed}
 html .ph-editorial :scope :is(#mh-econ,#mh-earnings) :is(td,th){white-space:normal;overflow-wrap:normal;word-break:normal}
 html .ph-editorial :scope #mh-econ th:nth-child(1){width:29%}
 html .ph-editorial :scope #mh-econ th:nth-child(3){width:20%}
 html .ph-editorial :scope .feature-story{gap:24px;align-items:center;margin-block:0}
 html .ph-editorial :scope .feature-stories{gap:24px}
 html .ph-editorial :scope .feature-copy h3{font-size:24px;line-height:1.25}
 html .ph-editorial :scope .feature-story :is(table,td,th,.vis-cap,.bar-row,.gate){font-size:14px;line-height:1.5}
 html .ph-editorial :scope .cta{background:var(--deck);color:var(--fg)}
 html .ph-editorial :scope .cta:before{display:none}
 html .ph-editorial :scope .cta h2{font-size:clamp(28px,3.5vw,44px);color:var(--fg)}
 html .ph-editorial :scope .cta p{color:var(--muted)}
 html .ph-editorial :scope .cta .btn-light{background:var(--fg);color:var(--deck)}
 @media(max-width:1100px){html .ph-editorial :scope .q-home-research-grid{grid-template-columns:repeat(2,minmax(0,1fr))}html .ph-editorial :scope .q-home-research-grid>section:last-child{grid-column:auto}}
 @media(max-width:650px){
 html .ph-editorial :scope .q-home-research-grid{grid-template-columns:1fr}
 html .ph-editorial :scope #mh-breadth{grid-template-columns:1fr}
 html .ph-editorial :scope .ph-banner h1{font-size:44px;max-width:15ch}
 html .ph-editorial :scope .ph-banner .hero-feature-tabs{grid-template-columns:1fr 1fr 1.25fr}
 html .ph-editorial :scope .ph-banner .kv{grid-template-columns:auto minmax(0,1fr)}
 html .ph-editorial :scope .ph-banner .chart-head .rec{font-size:12px}
 html .ph-editorial :scope .ph-product-path a{padding-block:12px}
 html .ph-editorial :scope .section-head h2{font-size:28px}
 html .ph-editorial :scope .q-mh-help{min-width:36px;min-height:36px}
 }
}
@scope (.q-design-model[data-q-readable][data-q-page="public-home"]){
 html .ph-editorial :scope .ph-banner .replay{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);grid-template-rows:auto 1fr auto;gap:8px 14px;align-items:start}
 html .ph-editorial :scope .ph-banner .chart-box{grid-column:1;grid-row:1/3;min-width:0}
 html .ph-editorial :scope .ph-banner .trade-card{display:contents}
 html .ph-editorial :scope .ph-banner .trade-card h3{grid-column:2;grid-row:1;margin:0;font-size:14px;line-height:1.4}
 html .ph-editorial :scope .ph-banner .trade-card dl.kv{grid-column:2;grid-row:2;grid-template-columns:auto minmax(0,1fr);gap:6px 8px;align-self:start}
 html .ph-editorial :scope .ph-banner .trade-card .verdict{grid-column:1/-1;grid-row:3;margin:0}
 html .ph-editorial :scope .ph-banner .chart-head{gap:4px 8px}
 html .ph-editorial :scope .ph-banner .chart-head .rec{font-size:12px}
 html .ph-editorial :scope .ph-banner .chart-box .legend{font-size:12px;gap:6px}
 html .ph-editorial :scope .ph-banner .chart-box .legend span{font-size:12px}
 html .ph-editorial :scope .cta .btn-ghost{color:var(--fg);border-color:var(--line)}
 @media(max-width:650px){html .ph-editorial :scope .ph-banner .replay{display:block}html .ph-editorial :scope .ph-banner .trade-card{display:grid;padding-top:12px;gap:10px}html .ph-editorial :scope .ph-banner .trade-card dl.kv{grid-template-columns:auto minmax(0,1fr) auto minmax(0,1fr);gap:8px}html .ph-editorial :scope .ph-banner .trade-card :is(h3,dl.kv,.verdict){grid-column:auto;grid-row:auto}}
}
/* Theme contrast and readable evidence in the opted-in public presentation. */
html[data-theme="dark"] .ph-editorial:has(>main[data-q-readable]) .top .btn-primary{background:var(--fg);color:var(--deck);border-color:var(--fg)}
html[data-theme="dark"] .ph-editorial:has(>main[data-q-readable]) .ph-banner .verdict{background:var(--deck);border-color:var(--line)}
html .ph-editorial main[data-q-readable] .q-mh-table th{background:var(--panel2);color:var(--fg)}
html .ph-editorial main[data-q-readable] #features :is(table,td,th){font:400 14px/1.5 var(--q-readable-font)}
html .ph-editorial main[data-q-readable] .q-mh a.q-mh-tile{font-size:12px;font-family:var(--q-readable-font)}
html .ph-editorial main[data-q-readable] .q-mh a.q-mh-tile:focus-visible{z-index:5;outline:2px solid var(--fg);outline-offset:-2px}
/* Owner readability correction, 2 Nov 2026: final component authority across enrolled apps.
   Public marketing opt-in and non-model legacy pages are excluded. */
html body .q-design-model[data-q-system]{--q-title-size:22px;--q-section-size:18px;--q-body-size:14px;--q-small-size:13px;--q-label-size:12px;--fs-body:14px;--fs-table:14px;--fs-small:13px;--fs-label:12px;font-family:var(--mm-text);font-size:14px;line-height:1.5}
html body .q-design-model[data-q-system] h1{font:600 var(--q-title-size)/1.3 var(--mm-display)!important}
html body .q-design-model[data-q-system] :is(p,li,dt,dd,td,.q-note,.note,.q-prose,.rw-help,.rw-note,.q-empty,.q-key-values,.q-review-kv,.q-review-cell p,.q-review-caption){font-size:var(--q-body-size)!important;line-height:1.5}
html body .q-design-model[data-q-system] :is(button,input,select,textarea,.q-button,.q-tabs a,.rw-tabs a,.sr-tabs a){font-family:var(--mm-text)!important;font-size:var(--q-body-size)!important;line-height:1.4}
html body .q-design-model[data-q-system] :is(.ph,.q-panel-head,.qd-h){font:600 16px/1.4 var(--mm-display)!important;min-height:38px;padding:8px 10px}
html body .q-design-model[data-q-system] :is(.ph,.q-panel-head,.qd-h)>:is(h2,h3,b,strong,span:not(.q-badge):not(.q-chip)){font:inherit!important}
html body .q-design-model[data-q-system] :is(.q-metric-label,.q-card-label,.q-kpi-caption,.lbl,label,.q-field,.q-market-name){font-size:var(--q-label-size)!important;line-height:1.5}
html body .q-design-model[data-q-system] :is(.q-metric-detail,.q-card-sub,.q-kpi-detail,.q-kpi-comparison,.sub,.q-review-cell>b,small,.q-small,.q-badge,.q-chip,.q-status){font-size:var(--q-small-size)!important;line-height:1.45}
html body .q-design-model[data-q-system] :is(th,th button,.q-table th){font-family:var(--mm-text)!important;font-size:var(--q-label-size)!important;line-height:1.45}
html body .q-design-model[data-q-system] :is(td,.q-table td){padding-block:7px}
html body .q-design-model[data-q-system] :is(.q-info,.q-help,button[aria-label^="About "]){font-size:13px!important;min-width:24px;min-height:24px;padding:0;flex:none}
html body .q-design-model[data-q-system] :is(.q-metric-value,.q-card-value,.q-kpi-value){font-size:24px;line-height:1.2}
html body .q-design-model[data-q-system] .q-panel-body{padding:12px}
html body .q-design-model[data-q-system] .q-control-row{gap:8px}
html:has(.q-design-model[data-q-system]) #quantos-subnav :is(a,button,summary){font-size:14px!important}
html:has(.q-design-model[data-q-system]) #terminal-app-rail a span{font-size:12px!important;line-height:1.3}
/* Stock Research retains every native chart, engine and control. */
html body #research-workspace.q-design-model[data-q-system].stock-reference .rw-context{grid-template-columns:minmax(0,1.5fr) minmax(0,1fr) minmax(0,3fr) minmax(100px,.8fr);gap:12px;padding:12px}
html body #research-workspace.q-design-model[data-q-system].stock-reference #sr-company strong{font:600 20px/1.35 var(--mm-text);max-width:100%;white-space:normal;overflow-wrap:break-word}
html body #research-workspace.q-design-model[data-q-system].stock-reference #sr-company{min-width:0;gap:8px}
html body #research-workspace.q-design-model[data-q-system].stock-reference #sr-company>div{min-width:0}
html body #research-workspace.q-design-model[data-q-system].stock-reference #rw-quote{min-width:0;padding:4px 12px}
html body #research-workspace.q-design-model[data-q-system].stock-reference .sr-kpis{grid-template-columns:repeat(4,minmax(0,1fr));gap:10px;margin-block:12px}
html body #research-workspace.q-design-model[data-q-system].stock-reference .sr-kpis button{min-height:90px;padding:12px;border-color:var(--line);border-radius:6px;gap:5px}
html body #research-workspace.q-design-model[data-q-system].stock-reference .sr-kpis :is(span,small){font-size:13px!important;line-height:1.45}
html body #research-workspace.q-design-model[data-q-system].stock-reference .sr-kpis strong{font-size:18px;line-height:1.3}
html body #research-workspace.q-design-model[data-q-system].stock-reference .rw-main-grid{gap:12px}
html body #research-workspace.q-design-model[data-q-system].stock-reference.sr-reference-overview #rw-chart-panel{grid-column:1/9}
html body #research-workspace.q-design-model[data-q-system].stock-reference.sr-reference-overview #sr-reference-summary{grid-column:9/13}
html body #research-workspace.q-design-model[data-q-system].stock-reference .sr-tabs a{padding:8px 12px;border-color:transparent;background:transparent;border-bottom:2px solid transparent;border-radius:4px 4px 0 0}
html body #research-workspace.q-design-model[data-q-system].stock-reference .sr-tabs a[aria-current=page]{background:var(--panel2);border-bottom-color:var(--accent);color:var(--txt)}
html body #research-workspace.q-design-model[data-q-system].stock-reference .sr-reference-stat-grid{gap:10px}
html body .q-design-model[data-q-system],html body .q-design-model[data-q-page="public-home"]{--q-brand:#F58A0A;--q-icon-violet:#9b7bed;--q-icon-cyan:#33b8d1;--q-icon-coral:#f1848b}
html body .q-design-model[data-q-system] .q-brand-mark{background:var(--q-brand);color:#fff}
html body .q-design-model[data-q-system] .q-metric:nth-child(3n+2) .q-icon-tile{color:var(--q-icon-violet);background:color-mix(in srgb,var(--q-icon-violet) 12%,var(--panel))}
html body .q-design-model[data-q-system] .q-metric:nth-child(3n) .q-icon-tile{color:var(--q-icon-cyan);background:color-mix(in srgb,var(--q-icon-cyan) 12%,var(--panel))}
html body .q-design-model[data-q-system] .q-metric:nth-child(4n) .q-icon-tile{color:var(--q-icon-coral);background:color-mix(in srgb,var(--q-icon-coral) 12%,var(--panel))}
@media(max-width:1000px){html body #research-workspace.q-design-model[data-q-system].stock-reference .rw-context{grid-template-columns:repeat(2,minmax(0,1fr))}html body #research-workspace.q-design-model[data-q-system].stock-reference .rw-context #rw-context-metrics{grid-column:1/-1}html body #research-workspace.q-design-model[data-q-system].stock-reference.sr-reference-overview :is(#rw-chart-panel,#sr-reference-summary){grid-column:1/-1;grid-row:auto}}
@media(max-width:650px){html body .q-design-model[data-q-system] .q-button{min-height:36px}html body #research-workspace.q-design-model[data-q-system].stock-reference .rw-context{grid-template-columns:1fr}html body #research-workspace.q-design-model[data-q-system].stock-reference .sr-kpis{grid-template-columns:repeat(2,minmax(0,1fr))}html body .q-design-model[data-q-system] .q-info{min-width:32px;min-height:32px}html body .q-design-model[data-q-system] .q-metric-value{font-size:22px}}
@media(min-width:1001px) and (max-width:1600px){
 html body #research-workspace.q-design-model[data-q-system].stock-reference .rw-context{grid-template-columns:repeat(3,minmax(0,1fr))}
 html body #research-workspace.q-design-model[data-q-system].stock-reference #sr-company{grid-column:1;grid-row:1}
 html body #research-workspace.q-design-model[data-q-system].stock-reference #rw-quote{grid-column:2/4;grid-row:1}
 html body #research-workspace.q-design-model[data-q-system].stock-reference #rw-context-metrics{grid-column:1/3;grid-row:2}
 html body #research-workspace.q-design-model[data-q-system].stock-reference #rw-market-state{grid-column:3;grid-row:2}
}
@media(min-width:1601px){html body #research-workspace.q-design-model[data-q-system].stock-reference .rw-context{grid-template-columns:minmax(0,1.4fr) minmax(300px,1.7fr) minmax(0,3fr) minmax(130px,.8fr)}html body #research-workspace.q-design-model[data-q-system].stock-reference .sr-kpis{grid-template-columns:1.6fr repeat(7,minmax(0,1fr))}}
/* Standalone preview uses the same brand and readable component roles as app roots. */
html body.q-design-model[data-q-system]{--q-brand:#F58A0A;--q-icon-violet:#9b7bed;--q-icon-cyan:#33b8d1;--q-icon-coral:#f1848b}
html .q-design-model[data-q-system] .q-brand-mark{background:var(--q-brand,#F58A0A);color:#fff}
body.q-design-model[data-q-system] .q-metric-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
html .q-design-model[data-q-system] .q-metric:nth-child(3n+2) .q-icon-tile{color:var(--q-icon-violet);background:color-mix(in srgb,var(--q-icon-violet) 12%,var(--panel))}
html .q-design-model[data-q-system] .q-metric:nth-child(3n) .q-icon-tile{color:var(--q-icon-cyan);background:color-mix(in srgb,var(--q-icon-cyan) 12%,var(--panel))}
html .q-design-model[data-q-system] .q-metric:nth-child(4n) .q-icon-tile{color:var(--q-icon-coral);background:color-mix(in srgb,var(--q-icon-coral) 12%,var(--panel))}
@media(max-width:650px){body.q-design-model[data-q-system] .q-metric-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
html #research-workspace.q-design-model[data-q-system][data-stock-dashboard] .q-panel-head{font-size:16px!important;min-height:38px}
/* Keep the chart dominant at desktop widths without shrinking readable type. */
@media(min-width:1101px){
 html body #research-workspace.q-design-model[data-q-system].stock-reference .sr-kpis{grid-template-columns:1.6fr repeat(7,minmax(0,1fr));gap:8px}
 html body #research-workspace.q-design-model[data-q-system].stock-reference .sr-kpis button{padding:8px;min-height:80px}
 html body #research-workspace.q-design-model[data-q-system].stock-reference #rw-quote{display:flex;align-items:center;flex-wrap:wrap;gap:6px 16px}
 html body #research-workspace.q-design-model[data-q-system].stock-reference #rw-quote>div:nth-child(2){flex:0 0 auto;min-width:110px}
 html body #research-workspace.q-design-model[data-q-system].stock-reference #rw-quote>div:nth-child(3){flex:1 1 200px;min-width:0}
 html body #research-workspace.q-design-model[data-q-system].stock-reference #rw-quote>div:nth-child(4){flex:0 0 auto;width:auto}
 html body #research-workspace.q-design-model[data-q-system].stock-reference #rw-market-state>div{display:flex;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:4px 8px;padding:6px 8px;min-height:0;text-align:left}
}
/* Readable values need content width: prevent eight narrow KPI cells clipping amounts. */
@media(min-width:1001px) and (max-width:1600px){html body .q-design-model[data-q-system] :is(#stats,#summary,.q-metric-grid){grid-template-columns:repeat(4,minmax(0,1fr))!important}}
@media(min-width:651px) and (max-width:1000px){html body .q-design-model[data-q-system] :is(#stats,#summary,.q-metric-grid){grid-template-columns:repeat(3,minmax(0,1fr))!important}}
@media(max-width:650px){html body .q-design-model[data-q-system] :is(#stats,#summary,.q-metric-grid){grid-template-columns:repeat(2,minmax(0,1fr))!important}}
/* Reference-inspired icon variety on the public home; green stays semantic data. */
html .q-design-model[data-q-readable] section[aria-label="Market Signals"] .q-mh-head>b:before{background-color:#4775b6}
html .q-design-model[data-q-readable] section[aria-label="Market Breadth"] .q-mh-head>b:before{background-color:#8b65c5}
html .q-design-model[data-q-readable] section[aria-label="Market Map"] .q-mh-head>b:before{background-color:#0897bf}
html .q-design-model[data-q-readable] section[aria-label="Sectors"] .q-mh-head>b:before{background-color:#d87961}
html .q-design-model[data-q-readable] section[aria-label="Headlines"] .q-mh-head>b:before{background-color:#5a67bb}
html .q-design-model[data-q-readable] section[aria-label="Economic Calendar"] .q-mh-head>b:before{background-color:#9e6ba7}
html .q-design-model[data-q-readable] section[aria-label="Earnings"] .q-mh-head>b:before{background-color:#b68425}
html .q-design-model[data-q-readable] section[aria-label="Other Markets"] .q-mh-head>b:before{background-color:#587184}

/* Homepage hero banners: shared typography, manual selection, natural content height. */
html .ph-editorial .q-design-model[data-q-readable][data-q-page="public-home"] .ph-banner :is(h1,.ph-hero-title){font-family:var(--q-home-display)!important;font-weight:800;font-size:clamp(44px,4.5vw,62px);line-height:1.08;letter-spacing:-.035em;max-width:19ch;margin:0}
html .ph-editorial .q-design-model[data-q-readable][data-q-page="public-home"] .ph-hero-copy{display:grid;gap:16px;min-width:0}
html .ph-editorial .q-design-model[data-q-readable][data-q-page="public-home"] .ph-hero-copy[hidden]{display:none}
html .ph-editorial .q-design-model[data-q-readable][data-q-page="public-home"] .ph-hero-selector{display:flex;flex-wrap:wrap;gap:8px}
html .ph-editorial .q-design-model[data-q-readable][data-q-page="public-home"] .ph-hero-selector button{font:500 14px/1.4 var(--q-readable-font);color:var(--fg);background:var(--deck);border:1px solid var(--line);border-radius:6px;padding:10px 14px;cursor:pointer}
html .ph-editorial .q-design-model[data-q-readable][data-q-page="public-home"] .ph-hero-selector button[aria-pressed="true"]{border-color:var(--fg);background:color-mix(in srgb,var(--fg) 8%,var(--deck))}
html .ph-editorial .q-design-model[data-q-readable][data-q-page="public-home"] .ph-hero-selector button:focus-visible{outline:2px solid var(--fg);outline-offset:3px}

/* Public audit remediation — isolated from enrolled application pages. */
html body.ph-home:has(main[data-q-page="public-home"]){--fg:var(--txt);--deck:var(--panel);--muted:var(--dim);font-family:var(--q-home-text)}
body.ph-home :is(#ts-panel,#ts-scrim){display:none!important}
body.ph-home .ph-skip{position:fixed;top:-100px;left:12px;z-index:10000;padding:12px 18px;background:var(--panel);color:var(--txt);border:2px solid var(--app-accent)}
body.ph-home .ph-skip:focus{top:8px}
html body.ph-home main[data-q-page="public-home"] :is(.sample-tag,.status,.tag,.badge,.eyebrow,.hero-chip,.pill,.kicker,.gate .label){font-family:var(--q-home-text)!important;font-size:12px!important}
html body.ph-home main[data-q-page="public-home"] .ph-lookup{min-width:0;grid-template-columns:minmax(0,1fr)}
html body.ph-home main[data-q-page="public-home"] .ph-lookup>*{min-width:0;max-width:100%}
html body.ph-home main[data-q-page="public-home"] .ph-lookup-row{display:flex;flex-wrap:wrap;gap:8px;min-width:0}
html body.ph-home main[data-q-page="public-home"] .ph-lookup-row input{flex:1 1 150px;min-width:0;width:auto}
html body.ph-home main[data-q-page="public-home"] .ph-lookup-result{overflow-wrap:anywhere;grid-column:1/-1}
html body.ph-home .ph-public-themes{display:flex;gap:6px;flex-wrap:wrap}
html body.ph-home .ph-public-themes button{min-height:36px;font:500 14px/1.4 var(--q-home-text);padding:7px 10px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--txt);cursor:pointer}
html body.ph-home .ph-public-themes [aria-pressed="true"]{outline:2px solid var(--app-accent);outline-offset:1px}
html body.ph-home :is(.ph-search button,.ph-ticker-toggle){min-height:28px;min-width:28px}
html body.ph-home .ph-search button{position:static;align-self:stretch;padding:4px 8px}
html body.ph-home .ph-search{display:flex;align-items:center}
html body.ph-home .ph-search input{min-width:0;flex:1}
html body.ph-home main[data-q-page="public-home"] .ph-feature-details>summary{cursor:pointer;padding:12px;border:1px solid var(--line);border-radius:6px;background:var(--panel);font:600 16px/1.5 var(--q-home-text);color:var(--txt)}
html body.ph-home main[data-q-page="public-home"] .stats .stat>b{font-size:24px;font-family:var(--q-home-text)}
html body.ph-home main[data-q-page="public-home"] .q-mh-card:has(.q-mh-empty){min-height:0}
html body.ph-home main[data-q-page="public-home"] :is(.q-mh,.ph-hero-copy,.ph-feature-details){color:var(--txt)}
html[data-theme] body.ph-home :is(.top,.console,.hero-feature-tabs,.hero-insight-row,.schwab,.cta,footer){background:var(--panel)!important;border-color:var(--line)!important;color:var(--txt)}
html[data-theme] body.ph-home :is(.q-mh-map,.ph-banner .verdict,.q-mh-table thead,.vis,.gate,.cal,.ph-search){background:var(--panel2)!important;color:var(--txt)}
html[data-theme] body.ph-home :is(h1,h2,h3,h4,.brand,.ph-banner-link,.nav-link,.dd-btn,.btn-ghost,.q-mh-head b){color:var(--txt)}
html[data-theme="dark"] body.ph-home :is(.dd-panel,.nav-open,.ph-hero-selector button,.q-mh-news li,.q-mh-table td,.q-mh-table th){background:var(--panel)!important;color:var(--txt);border-color:var(--line)}
html[data-theme="dark"] body.ph-home main :is(.pos,.q-mh-up){color:var(--green)}
html[data-theme="dark"] body.ph-home main :is(.neg,.q-mh-down){color:var(--red)}
html body.ph-home :is(.tier,.sample-tag,.state,.gate small,.gate b,.cal-h,.day .d,.ph-free-tools .free,.prod>span){font-family:var(--q-home-text)!important;font-size:12px!important}
@media(max-width:650px){html body.ph-home :is(.ph-search button,.ph-ticker-toggle){min-height:36px}html body.ph-home .ph-public-themes button{min-height:40px}html body.ph-home .ph-banner .hero-grid{gap:12px}}
html[data-theme="dark"] body.ph-home .ph-banner :is(.rot-word,.rotator){color:var(--app-accent)!important}
html[data-theme="dark"] body.ph-home :is(.sample-tag,.tag,.badge,.warn,.ph-example-label){color:var(--dim)!important}
html body.ph-home footer .ph-public-themes{padding-block:12px}
html body.ph-home main[data-q-page="public-home"] :is(.tier-pill,.verdict>b){font:500 12px/1.5 var(--q-home-text)!important}
html body.ph-home main[data-q-page="public-home"] .q-mh-sector{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font:500 12px/1.2 var(--q-home-text)}
@media(max-width:350px){html body.ph-home .top>.wrap{padding-inline:16px;gap:8px}html body.ph-home .top .brand{font-size:18px;gap:5px}html body.ph-home .top .brand-mark{width:26px;height:26px;font-size:19px}html body.ph-home .top>.wrap>.btn-primary{padding-inline:8px;font-size:12px}html body.ph-home .top .menu-btn{width:36px;min-width:36px;padding:8px}}
html body.ph-home main[data-q-page="public-home"] .q-mh-map:has(>p){height:auto!important;min-height:0!important;padding:12px}
html body.ph-home main[data-q-page="public-home"] .hero-feature-label{font:500 14px/1.4 var(--q-home-text)!important}
/* Complete homepage typography enrollment: prose, navigation, badges and examples. */
html body.ph-home :is(main[data-q-page="public-home"],header,footer,.ph-market-bar) *:not(.brand-mark){font-family:var(--q-home-text)!important}
html body.ph-home .ph-market-status{font-size:12px}
html body.ph-home .num{font-variant-numeric:tabular-nums}
@media(max-width:350px){html body.ph-home .top>.wrap>.btn-primary{font-size:14px}}
html body.ph-home main[data-q-page="public-home"] .hero-preview-title{font-size:14px!important;line-height:1.4}

/* Reference-led homepage refinement: preserve typography, content and handlers. */
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"]{--q-home-gap:16px;--q-home-section:24px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .ph-banner{position:relative;background:linear-gradient(120deg,var(--panel2),var(--panel) 70%)!important}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .ph-banner h1{font-size:clamp(44px,5.5vw,62px);font-weight:800;line-height:1.08;letter-spacing:-.035em}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .ph-banner[data-banner="hero-story"] .ph-banner-grid{grid-template-columns:minmax(0,1fr)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .ph-banner[data-banner="hero-story"] .ph-banner-visual{display:none}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .ph-banner[data-banner="hero-story"] .hero-grid{max-width:880px;width:100%;align-items:start}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .ph-banner #hero-story h1{font-size:clamp(44px,5.65vw,56px);line-height:1.1;max-width:none;font-weight:800}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #hero-story .lede{font-size:18px;line-height:1.6;max-width:680px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .ph-banner-about{display:contents}

html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .ph-banner-about .ph-home-about{position:relative;z-index:2;width:auto;max-width:100%;padding:12px;border:1px solid var(--line);border-radius:6px;background:var(--panel);color:var(--dim);font:400 14px/1.6 var(--q-home-text)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .ph-banner .ph-hero-selector{align-items:center}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"]>section:not(.ph-banner){background:color-mix(in srgb,var(--panel2) 45%,var(--panel))!important}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] :is(.q-mh-card,.q-mh-index,.prod,.insight,.step,.feature,.ph-lookup,.ph-free-tools a,.trust>div){background:linear-gradient(135deg,var(--panel),color-mix(in srgb,var(--panel2) 80%,var(--panel)))!important;border:1px solid var(--line);border-radius:8px;box-shadow:0 2px 7px color-mix(in srgb,var(--txt) 6%,transparent)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-mh-head{background:color-mix(in srgb,var(--panel2) 60%,var(--panel))!important}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .features{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;align-items:stretch}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .feature{display:flex;flex-direction:column;gap:16px;align-items:stretch;padding:20px;min-width:0}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .feature :is(.copy,.visual){grid-column:auto;grid-row:auto;min-width:0}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .feature .copy{display:grid;gap:12px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .feature .visual{margin-top:auto}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .feature .vis{box-shadow:none;transform:none!important;min-width:0;background:var(--panel2)!important;border-color:var(--line);padding:12px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .feature h3{font-size:24px;line-height:1.2;max-width:none}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .feature :is(p,li){font-size:16px;line-height:1.6}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .feature .vis-cap{font-size:12px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .feature:last-child{grid-column:1/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:center}
@media(min-width:768px){html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #hero-story h1>span{display:block}}
@media(max-width:767px){html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .features{grid-template-columns:minmax(0,1fr)}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .feature:last-child{display:flex;grid-column:auto}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .feature{padding:16px}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .feature h3{font-size:22px}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .ph-banner #hero-story h1{font-size:44px}}

html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .feature .gates{gap:8px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .feature .gate{padding:8px 10px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"]{--panel:var(--app-surface);--panel2:var(--app-surface-2);--deck:var(--app-surface);--line:var(--app-border);--txt:var(--color-text-primary);--fg:var(--color-text-primary);--dim:var(--app-muted);--muted:var(--app-muted);--accent:var(--app-accent)}

html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #hero-story .eyebrow{color:var(--app-accent);letter-spacing:.12em}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .eyebrow{background:none!important;color:var(--app-accent)!important;-webkit-text-fill-color:currentColor}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .cta.cta-glow{background:color-mix(in srgb,var(--app-accent) 8%,var(--panel2))!important}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .cta.cta-glow:before{display:none}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .cta .btn-light{background:var(--txt);color:var(--panel);border-color:var(--txt)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .cta .btn-outline-light{background:var(--panel);color:var(--txt);border-color:var(--line)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .cta .cta-inner>p:not(.eyebrow){color:var(--dim)}

/* Owner-requested original public typography; application Inter roles are unchanged. */
html body.ph-home{--q-home-display:"Bricolage Grotesque","Segoe UI",system-ui,sans-serif;--q-home-text:"IBM Plex Sans","Segoe UI",system-ui,sans-serif;--q-home-mono:"IBM Plex Mono",ui-monospace,"Cascadia Mono",Consolas,monospace;font-family:var(--q-home-text)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"]{--q-readable-font:var(--q-home-text);--mm-text:var(--q-home-text);--mm-display:var(--q-home-display)}
html[data-theme] body.ph-home :is(main.q-design-model[data-q-page="public-home"],header,footer) :is(h1,h2,h3,h4,.brand),html[data-theme] body.ph-home :is(main.q-design-model[data-q-page="public-home"],header,footer) :is(h1,h2,h3,h4,.brand) *{font-family:var(--q-home-display)!important}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] :is(.num,.q-mh-num,.kv dd,.eyebrow,.tier,.tier-pill,.pill,.sample-tag,.state,.status,.verdict>b,.cal-h,.cal .day .d,.cal .day .v,.cal-foot b,.ph-path-number,.step .t,.evidence code,.chart-head strong,.vis th,.prep b){font-family:var(--q-home-mono)!important}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .trade-card h3{font-family:var(--q-home-text)!important}
html[data-theme] body.ph-home footer .foot-col h2{font-family:var(--q-home-mono)!important}

/* Shared interactive-map component, contained in the existing public map card. */
@scope (.q-design-model[data-q-page="public-home"]){
.map-tools{margin:6px 0}.map-tools-controls{display:flex;flex-wrap:wrap;gap:6px;align-items:end}.map-tools-controls label{display:grid;gap:3px;font-size:10px}.map-tools-controls :is(select,input,button){font:inherit;min-height:28px;max-width:185px}.map-metric-note{font-size:10px;line-height:1.5;margin:6px 0}.map-company-list{margin-top:7px;font-size:11px}.map-company-list summary{padding:7px;cursor:pointer}.map-company-list .q-table-wrap{max-height:400px;overflow:auto}.map-company-list th,.map-company-list td{white-space:nowrap;padding:7px}.map-sector{position:absolute;box-sizing:border-box;border:1px solid var(--line);background:var(--panel);overflow:hidden}.map-sector>button{position:relative;z-index:2;border:0;background:transparent;color:var(--txt);font:600 10px/18px inherit;text-align:left;white-space:nowrap;max-width:100%;overflow:hidden;text-overflow:ellipsis;padding:2px 4px}.map-sector-highlight{outline:2px solid #fbbf24;outline-offset:-2px;z-index:2;pointer-events:none;background:transparent}.map-sector-highlight>button{pointer-events:auto;background:var(--panel)}
#mh-map-canvas .map-company{position:absolute;display:flex;flex-direction:column;align-items:center;justify-content:center;box-sizing:border-box;gap:2px;overflow:hidden;color:#fff!important;text-decoration:none;border:0;border-radius:0;padding:2px;text-align:center;container-type:size}.map-company b{font-size:12px}.map-company span{font-size:10px}.map-company small{font-size:9px;max-width:95%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.map-company:focus-visible,.map-company:hover{outline:2px solid #fff;outline-offset:-2px;z-index:3}.map-company>.company-mark{width:24px;height:24px;margin:0;padding:3px;border:0;border-radius:999px;background:#080b10}.map-tooltip{padding:7px;background:var(--panel2);border:1px solid var(--line);font-size:11px;line-height:1.5}.map-tooltip[hidden]{display:none}.map-expanded{position:fixed!important;inset:48px 12px 12px 92px!important;width:auto!important;height:auto!important;z-index:10030!important;background:var(--panel)!important;box-shadow:0 0 0 100px #000a}
@container(max-width:48px){.map-company>.company-mark{display:none}}@container(max-height:65px){.map-company>.company-mark{display:none}}@media(max-width:680px){.map-tools-controls label{flex:1 1 40%}.map-tools-controls :is(input,select){width:100%;max-width:100%}.map-expanded{inset:60px 6px 6px!important}}

.map-close{position:absolute;right:6px;top:2px;z-index:10}.map-tooltip{position:fixed;bottom:10px;left:100px;right:12px;z-index:10050;pointer-events:none;box-shadow:0 2px 12px #0004}@media(max-width:680px){.map-tooltip{left:8px}}

.map-tools-controls label[hidden],.map-tools-controls button[hidden]{display:none}.map-company b{font-size:clamp(9px,18cqw,14px);line-height:1.1}.map-company span{font-size:clamp(9px,14cqw,11px);line-height:1.15}.map-sector>button{font-family:inherit;font-size:10px;line-height:18px}.map-sector>button[title]{cursor:pointer}

.map-tools-controls :is(select,input,button),.map-close{background:var(--panel2);color:var(--txt);border:1px solid var(--line);border-radius:4px;padding:5px 7px}.map-company-list button{color:var(--txt);background:var(--panel2);border:1px solid var(--line)}.map-tools-controls select option{background:var(--panel);color:var(--txt)}

.map-more-tools>summary{cursor:pointer;border:1px solid var(--line);border-radius:4px;padding:6px 9px;font-size:11px;background:var(--panel2);color:var(--txt)}.map-more-tools[open]{flex:1 1 100%}.map-more-tools[open]>.map-tools-controls{padding-top:6px}

.discovery-histogram small{white-space:normal;text-align:center;font-size:8px;line-height:10px;min-height:20px;max-width:100%;overflow-wrap:anywhere}

}

html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-map{display:flex;flex-direction:column;min-width:0;overflow:hidden}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-map .map-tools{padding:6px 8px;margin:0;flex:0 0 auto;max-height:154px;overflow:auto}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-map .map-tools-controls{gap:6px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-map .map-tools-controls label{font-size:12px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-map :is(.map-metric-note,.map-more-tools>summary,.map-company-list){font-size:12px;line-height:1.4}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-map .map-tools-controls :is(select,input,button){font-size:14px;min-height:28px;max-width:100%}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-map-canvas{flex:1 1 auto;min-height:100px;position:relative;overflow:hidden;width:100%}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-map .map-company-list{flex:0 0 auto;max-height:125px;overflow:auto;margin:0}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-map .map-company-list>summary{font-size:12px;padding:5px 8px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-map .map-sector>button{font-size:12px;line-height:18px;padding:2px 4px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-map .map-company b{font-size:14px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-map .map-company :is(span,small){font-size:12px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-map .map-company span{font-family:var(--q-home-mono)!important}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-map .map-tooltip{font-size:12px;left:12px;right:12px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-map-canvas.map-expanded{inset:108px 12px 12px!important}
@media(max-width:680px){html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-map-canvas.map-expanded{inset:160px 8px 8px!important}}
html[data-theme] body.ph-home:has(main.q-design-model[data-q-page="public-home"]) footer .foot-col h2{font-family:var(--q-home-mono)!important}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-map .map-tools{max-height:128px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-map .map-company-list{max-height:96px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-map-canvas{min-height:72px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"]#top,html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"]>section{scroll-margin-top:calc(var(--q-home-header-height,110px) + 8px)}
/* Homepage research entry: existing free destinations and subscription plans. */
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .ph-research-intro{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px 24px;align-items:center;margin-bottom:16px;max-width:none}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .ph-research-intro h2{grid-column:1;margin:0;font-size:30px;line-height:1.15;letter-spacing:-.025em}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .ph-research-intro>p{grid-column:1;margin:0;max-width:78ch;font-size:16px;line-height:1.5}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .ph-research-intro .ph-subscribe-link{grid-column:2;grid-row:1/3;white-space:nowrap;font-size:14px;min-height:44px;align-self:center;background:var(--txt)!important;color:var(--panel)!important;border-color:var(--txt)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .ph-research-intro .ph-subscribe-link span{color:inherit}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .ph-research-intro .ph-free-about{grid-column:1/-1;max-width:none;margin-top:8px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .ph-free-tools{display:flex;flex-wrap:wrap;align-items:center;gap:0 4px;padding:4px 8px;margin:0 0 16px;background:var(--panel2);border:1px solid var(--line);border-radius:6px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .ph-free-tools a{display:flex;align-items:center;min-height:36px;padding:6px 10px;background:transparent!important;border:0;border-radius:3px;box-shadow:none;font:600 14px/1.4 var(--q-home-text);color:var(--txt);text-decoration:none}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .ph-free-tools a:hover{background:var(--panel)!important;color:var(--accent)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .ph-free-tools a:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .ph-free-tools .q-mh-help{margin-left:auto;flex:none}
@media(max-width:760px){
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .ph-research-intro{grid-template-columns:minmax(0,1fr);gap:10px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .ph-research-intro h2{font-size:26px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .ph-research-intro .ph-subscribe-link{grid-column:1;grid-row:auto;justify-self:start;white-space:normal}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .ph-free-tools{gap:0;padding:4px}
}
/* Stock Snapshot lists: only layout the shared components do not own. */
[data-q-page="top-movers"] [hidden]{display:none!important}
[data-q-page="top-movers"].q-stack{gap:12px}
[data-q-page="top-movers"] .q-toolbar,[data-q-page="top-movers"] .q-page-heading>*{border:0!important;background:none!important;box-shadow:none!important;padding:0!important;min-height:0;border-radius:0}
[data-q-page="top-movers"] .q-panel-body.q-toolbar{padding:8px 12px!important}
[data-q-page="top-movers"] .q-snap-part.q-stack{grid-template-columns:minmax(0,1fr)}
[data-q-page="top-movers"] .q-snap .q-split,[data-q-page="top-movers"] .q-snap .q-grid-equal{gap:24px}
[data-q-page="top-movers"] .q-snap-inline{min-width:0;display:inline-flex!important;align-items:center;white-space:nowrap}
[data-q-page="top-movers"] .q-table-wrap{max-height:none!important}
[data-q-page="top-movers"] .q-table-wide td:nth-child(2){white-space:nowrap}
[data-q-page="top-movers"] h1{margin:0;font-size:22px;font-weight:600;line-height:1.3}
[data-q-page="top-movers"] .q-snap-inline{display:inline-flex;align-items:center;gap:6px}
[data-q-page="top-movers"] .q-snap-fields{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:10px}
[data-q-page="top-movers"] .q-panel-head>.q-control-row{min-width:0;flex:1}
[data-q-page="top-movers"] .q-panel-head>.q-toolbar:first-child{min-width:0}
[data-q-page="top-movers"] .q-snap-symbol{font-size:18px;font-weight:700}
[data-q-page="top-movers"] .q-snap-name{font-size:14px;font-weight:600}
[data-q-page="top-movers"] .q-snap-quote strong{font-size:18px;font-weight:600;font-variant-numeric:tabular-nums}
[data-q-page="top-movers"] .q-snap-part{min-width:0}
[data-q-page="top-movers"] .q-snap-part h3{margin:0;font-size:16px;font-weight:600}
[data-q-page="top-movers"] .q-snap-chart{position:relative;min-width:0}
[data-q-page="top-movers"] .q-snap-chart-head{display:flex;align-items:center;gap:8px;padding:0 0 0 10px;border:0;border-bottom:1px solid var(--line);background:none;height:auto;min-height:0}
[data-q-page="top-movers"] .q-snap-chart-head>.q-toolbar{flex:none;flex-wrap:nowrap}
[data-q-page="top-movers"] .q-snap-chart-head #trade-chart-toolbar{flex:1;min-width:0;border-bottom:0}
[data-q-page="top-movers"] .chart-panel{min-width:0;border:1px solid var(--line);border-radius:6px;overflow:hidden}
[data-q-page="top-movers"] .q-chart-time-scroll{width:100%;height:18px;overflow-x:scroll;overflow-y:hidden;scrollbar-color:var(--accent) var(--panel2);background:var(--panel2)}
[data-q-page="top-movers"] .q-chart-time-scroll>div{height:1px}
[data-q-page="top-movers"] .q-snap-chart-note{display:grid;place-items:center;height:100%;color:var(--dim);font-size:14px;text-align:center}
[data-q-page="top-movers"] .q-snap-about{margin:0;max-height:300px;overflow:auto;line-height:1.5}
[data-q-page="top-movers"] .q-key-values.q-snap-facts{grid-template-columns:repeat(auto-fill,minmax(230px,1fr));column-gap:24px}
[data-q-page="top-movers"] .q-snap-facts>div:last-child{border-bottom:1px solid var(--line)}
[data-q-page="top-movers"] .q-snap-facts dd{white-space:nowrap;text-align:right}
[data-q-page="top-movers"] .q-snap-news{list-style:none;margin:0;padding:0}
[data-q-page="top-movers"] .q-snap-news li{display:grid;gap:2px;padding:6px 0;border-bottom:1px solid var(--line);font-size:14px;line-height:1.45;min-width:0;overflow-wrap:anywhere}
[data-q-page="top-movers"] .q-snap-charts{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(560px,100%),1fr));gap:12px}
@media(max-width:1000px){[data-q-page="top-movers"] :is(.q-split,.q-grid-equal){grid-template-columns:minmax(0,1fr)}}
@media(max-width:600px){[data-q-page="top-movers"] .q-page-heading{justify-content:flex-start;padding-left:0!important}[data-q-page="top-movers"] .q-page-heading .q-toolbar-end{margin-left:0}[data-q-page="top-movers"] .q-snap-inline{white-space:nowrap}[data-q-page="top-movers"] .q-snap-inline select{min-width:0;max-width:100%}[data-q-page="top-movers"] .q-page-heading .q-toolbar-end{width:100%}[data-q-page="top-movers"] .q-page-heading label.q-snap-inline{flex:1 1 100%}[data-q-page="top-movers"] .q-page-heading label.q-snap-inline select{flex:1}[data-q-page="top-movers"] .q-snap-charts{grid-template-columns:minmax(0,1fr)}[data-q-page="top-movers"] .q-toolbar{min-width:0;max-width:100%}[data-q-page="top-movers"] .chart-panel #trade-chart-toolbar{max-width:100%;overflow:hidden}[data-q-page="top-movers"] .q-panel-head{flex-wrap:wrap}[data-q-page="top-movers"] .q-toolbar-end.q-snap-quote{margin-left:0}}
/* Compact market-map presentation; existing shared widget is the behavior owner. */
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-map{position:relative}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-map .map-tools.map-tools-card{overflow:visible;max-height:none;padding:0 5px;z-index:5}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-map .map-card-bar{display:flex;align-items:center;gap:4px;min-height:30px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-map .map-card-title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:12px;line-height:1.3}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-map .map-card-settings{order:3;flex:none}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-map .map-card-settings>summary{display:flex;align-items:center;justify-content:center;width:30px;height:30px;cursor:pointer;list-style:none;color:var(--dim);border-radius:3px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-map .map-card-settings>summary::-webkit-details-marker{display:none}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-map .map-card-settings>summary:hover{background:var(--panel);color:var(--txt)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-map .map-card-options{position:absolute;left:5px;right:5px;top:30px;max-height:280px;overflow:auto;padding:10px;background:var(--panel);color:var(--txt);border:1px solid var(--line);border-radius:5px;box-shadow:0 5px 16px color-mix(in srgb,var(--txt) 20%,transparent);z-index:10}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-map .map-card-options>.map-tools-controls{display:grid;grid-template-columns:1fr 1fr;align-items:end}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-map .map-card-options .map-more-tools{grid-column:1/-1}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-map .map-card-options .map-more-tools>summary{display:none}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-map .map-card-options .map-more-tools>.map-tools-controls{display:grid;grid-template-columns:1fr 1fr;padding-top:0}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-map .map-card-options label{min-width:0}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-map .map-tools-card>.map-metric-note{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap;margin:0;padding:0}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-map-canvas.map-compact-market{background:var(--map-frame)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-map-canvas.map-compact-market .map-sector{border:0;background:var(--map-frame)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-map-canvas.map-compact-market .map-sector>button{display:block;width:100%;height:15px;padding:0 2px;font-size:12px;line-height:15px;text-transform:uppercase;border-radius:0;background:var(--map-sector-color);color:white;overflow:hidden;text-overflow:clip}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-map-canvas.map-compact-market .map-sector>button[hidden]{display:none}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-map-canvas.map-compact-market .map-company{gap:1px;padding:1px;white-space:nowrap}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-map-canvas.map-compact-market .map-company b{font-family:var(--q-home-text)!important;font-size:var(--map-label-size);line-height:1.1}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-map-canvas.map-compact-market .map-company span{font-size:12px;line-height:1.2}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-map .map-card-legend{display:flex;flex:none;gap:1px;padding:3px 1px 1px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-map .map-card-legend>span{flex:1;text-align:center;color:white;font:500 12px/18px var(--q-home-text)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-map .map-company-list>summary{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;padding:5px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-map .map-card-bar>button{font-size:12px;line-height:1.2;min-height:26px;padding:3px 5px;white-space:nowrap}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-map :is(.map-card-settings>summary,.map-sector>button):focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-map-canvas.map-compact-market .map-sector.map-sector-highlight{background:transparent}

/* Homepage paired movers: real snapshot lists; standalone movers pages retain their owners. */
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-mover-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-mover-column{min-width:0;padding:0 8px 8px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-mover-column+.q-home-mover-column{border-left:1px solid var(--line)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-mover-title{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:8px 4px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-mover-title h3{margin:0;font:600 16px/1.4 var(--q-home-text)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-mover-title a{font-size:14px;white-space:nowrap}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-mover-scroll{min-width:0;max-width:100%;overflow:auto}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-mover-scroll table{width:100%;min-width:450px;border-collapse:collapse}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-mover-scroll :is(th,td){padding:5px 8px;white-space:nowrap;font-size:14px;line-height:1.45}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-mover-scroll th{font-weight:500;color:var(--dim)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-mover-scroll tbody tr+tr td{border-top:1px solid color-mix(in srgb,var(--line) 65%,transparent)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-mover-scroll tbody tr:hover{background:var(--panel2)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-mover-scroll :is(a,.q-home-mover-signal){color:var(--accent)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-mover-scroll:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-research-grid .q-home-mover-tabs{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:980px){
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-mover-pair{grid-template-columns:minmax(0,1fr)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-mover-column+.q-home-mover-column{border-left:0;border-top:1px solid var(--line)}
}

/* Homepage observed index charts and compact market evidence. */
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-index-chart{height:168px;min-height:168px;min-width:0;background:var(--panel);color:var(--dim);border:0 solid var(--line);font-family:var(--q-home-text);font-size:14px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-index-chart:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-index-evidence{min-height:32px;margin:6px 0 0;font:400 12px/1.35 var(--q-home-text);color:var(--dim);overflow-wrap:anywhere}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-news-brief{display:flex;align-items:baseline;gap:8px 12px;padding:9px 12px;border:1px solid var(--line);border-radius:6px;background:var(--panel2);font-size:14px;line-height:1.45;min-width:0}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-news-brief a{color:var(--txt);font-weight:500;min-width:0;flex:1}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-news-brief :is(.q-home-brief-time,.q-home-brief-source){font-size:12px;color:var(--dim);white-space:nowrap}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-support{display:grid;gap:var(--q-home-gap)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-calendar-pair{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:var(--q-home-gap);align-items:start}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-calendar-pair>.q-mh-card{min-width:0}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-news .q-mh-news{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin:0;padding:0;list-style:none}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-news .q-mh-news li{display:grid;grid-template-columns:82px minmax(0,1fr) 95px;gap:5px 8px;align-items:baseline;padding:7px 10px;min-width:0;border-bottom:1px solid var(--line)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-news .q-mh-news li a{grid-column:2;grid-row:auto;font-size:14px;line-height:1.4;color:var(--txt)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-news .q-mh-news li span{font-size:12px;line-height:1.4}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-econ .q-mh-table{table-layout:auto;min-width:740px;width:100%}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-econ .q-mh-table :is(th,td){font-size:14px;padding:6px 8px;white-space:nowrap;width:auto}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-econ .q-mh-table :is(th,td):nth-child(4){white-space:normal;min-width:180px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-econ .q-mh-table :is(th,td):nth-child(1){font-family:var(--q-home-text)!important;font-size:12px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-econ{max-height:352px;overflow:auto}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-econ:focus-visible{outline:2px solid var(--accent);outline-offset:-2px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-impact{font-size:12px;font-weight:600}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-impact-high{color:var(--down)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-impact-medium{color:var(--dim)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-cross>div{min-width:0;overflow:auto}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-cross .q-mh-table{min-width:350px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-cross :is(th,td){font-size:14px;padding:5px 8px;white-space:nowrap}
@media(max-width:1000px){html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-calendar-pair{grid-template-columns:minmax(0,1fr)}}
@media(max-width:680px){
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-news-brief{flex-wrap:wrap;gap:4px 10px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-news-brief a{flex-basis:100%;order:3}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-news .q-mh-news{grid-template-columns:minmax(0,1fr)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-news .q-mh-news li{grid-template-columns:82px minmax(0,1fr)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-news .q-home-news-source{grid-column:2}
}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-index-evidence{height:49px;min-height:49px;margin-bottom:0}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-index-chart[tabindex]:focus-visible{outline-offset:0}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-cross{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:1100px){html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-cross{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:680px){html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-cross{grid-template-columns:minmax(0,1fr)}}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-cross{grid-template-columns:repeat(2,minmax(0,1fr))}
@media(max-width:680px){html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-cross{grid-template-columns:minmax(0,1fr)}}
/* Stock Research: issuer facts below the Overview cards. */
#research-workspace:not(.sr-reference-overview) #sr-stock-facts{display:none}
#sr-stock-facts{gap:9px;margin-top:9px}
#sr-stock-facts [hidden]{display:none!important}
#sr-stock-facts .q-toolbar{border:0!important;background:none!important;box-shadow:none!important;padding:0!important;min-height:0}
#sr-stock-facts .q-split{gap:9px}
#sr-stock-facts .q-split>.q-panel{min-width:0}
#sr-stock-facts .q-key-values.sr-facts-grid{grid-template-columns:repeat(auto-fill,minmax(235px,1fr));column-gap:24px}
#sr-stock-facts .sr-facts-grid>div:last-child{border-bottom:1px solid var(--line)}
#sr-stock-facts .sr-facts-grid dd{white-space:nowrap;text-align:right}
#sr-stock-facts .q-table-wrap{max-height:none!important}
#sr-facts-company-body td{white-space:normal!important}
#sr-facts-company-body .q-table{min-width:0!important;width:100%}
#sr-facts-company-body>*{min-width:0}
#research-workspace #sr-reference-backtest{color:#fff}
#sr-stock-facts .sr-facts-about{margin:0;line-height:1.5;max-height:320px;overflow:auto}
#sr-stock-facts .sr-facts-news{list-style:none;margin:0;padding:0}
#sr-stock-facts .sr-facts-news li{display:grid;gap:2px;padding:6px 0;border-bottom:1px solid var(--line);font-size:14px;line-height:1.45;min-width:0;overflow-wrap:anywhere}
@media(max-width:1000px){#sr-stock-facts :is(.q-split,.q-grid-equal){grid-template-columns:minmax(0,1fr)}}

/* Homepage mixed signal board and completed-daily pattern presentation. */
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-market-stage{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:stretch}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-market-stage>.q-mh-card{min-width:0}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-market-stage .q-home-movers,html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-pattern-card{grid-column:span 2}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-market-stage>.q-mh-card[aria-label="Market Map"]{display:flex;flex-direction:column;align-self:stretch}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-mover-pair{grid-template-columns:repeat(2,minmax(0,1fr))}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-mover-column{padding:0 5px 6px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-mover-scroll table{min-width:350px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-mover-scroll :is(th,td){padding:2px 4px;font-size:14px;line-height:1.5}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-mover-scroll tbody tr+tr td{border-top:0}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-mover-scroll{max-height:465px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-signal-empty{color:var(--dim);white-space:normal!important}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-pattern-pair{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:0 8px 8px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-pattern-scroll{overflow:auto;min-width:0}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-pattern-scroll table{width:100%;min-width:350px;border-collapse:collapse}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-pattern-scroll :is(td,th){padding:3px 4px;font:400 14px/1.5 var(--q-home-text);white-space:nowrap}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-pattern-scroll td:not(:last-child){width:14%}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-pattern-scroll th{color:var(--dim);text-align:left}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-pattern-label{color:var(--accent)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-pattern-icon{width:20px;height:20px;vertical-align:middle;margin-right:4px;color:var(--accent)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-pattern-state{font-size:12px;color:var(--dim)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-pattern-status{font:400 12px/1.5 var(--q-home-text);color:var(--dim);padding:6px 12px;margin:0}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .company-mark{display:inline-flex;flex:none;width:16px;height:16px;vertical-align:middle;margin-right:4px;overflow:hidden;border:1px solid var(--line);border-radius:3px;background:var(--panel2)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .company-mark img{width:100%;height:100%;object-fit:contain}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .company-mark-fallback{display:flex;align-items:center;justify-content:center;width:100%;font:500 12px/1 var(--q-home-text);color:var(--dim)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .company-mark-fallback:before{content:attr(data-initials)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .has-company-mark{display:inline-flex;align-items:center}
@media(max-width:1150px){html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-market-stage{grid-template-columns:repeat(2,minmax(0,1fr))}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-market-stage>.q-home-movers{grid-column:1/-1}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-pattern-card{grid-column:auto}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-market-stage>section[aria-label="Sectors"]{grid-column:1/-1}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-pattern-pair{grid-template-columns:minmax(0,1fr)}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-mover-scroll{max-height:none}}
@media(max-width:700px){html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-market-stage{grid-template-columns:minmax(0,1fr)}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-market-stage>.q-mh-card{grid-column:auto}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-mover-pair,html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-pattern-pair{grid-template-columns:minmax(0,1fr)}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-mover-column+.q-home-mover-column{border-left:0;border-top:1px solid var(--line)}}

@media(min-width:1151px){html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-market-stage #mh-map{flex:1;min-height:320px}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-market-stage #mh-map>.map-tools-card{height:auto;min-height:0;flex:none}}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-mover-scroll :is(th,td){line-height:20px!important;padding:1px 4px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-mover-scroll a{line-height:20px;vertical-align:middle}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-market-stage #mh-map>.map-tools-card{display:flex;flex-direction:column}
/* Stock Research routed fact tabs: only the page shell stays visible. */
#research-workspace.sr-facts-view>:not(.rw-context,.sr-kpis,.rw-tabs,#sr-reference-tools,#sr-stock-tab,.sr-reference-actions){display:none!important}
#sr-stock-tab{gap:9px;margin-top:9px}
#sr-stock-tab [hidden]{display:none!important}
#sr-stock-tab>.q-toolbar,#sr-stock-tab .q-panel-body>.q-toolbar,#sr-stock-tab form.q-toolbar{border:0!important;background:none!important;box-shadow:none!important;padding:0!important;min-height:0}
#sr-stock-tab .q-table-wrap{max-height:none!important}
#sr-stock-tab .q-panel-body.q-stack{grid-template-columns:minmax(0,1fr)}
#sr-stock-tab .q-toolbar{min-width:0;max-width:100%}
#sr-filing-table{min-width:0}
@media(max-width:700px){#sr-stock-tab .q-segment{flex-wrap:wrap}#sr-stock-tab .q-note.q-toolbar-end{margin-left:0;flex-basis:100%;min-width:0;overflow-wrap:anywhere}}
#sr-stock-tab .q-snap-line{display:inline-flex!important;align-items:center;gap:6px;white-space:nowrap}
#sr-stock-tab .q-snap-line input{width:min(420px,60vw)}
#sr-stock-tab .sr-chart{position:relative;width:100%;min-width:0;overflow:hidden}
#sr-stock-tab .sr-chart svg{display:block;font-family:var(--mm-text)}
#sr-stock-tab .sr-chart.sr-flow{overflow-x:auto}
/* Stock Research has 17 tabs: one row with an always-visible horizontal scrollbar, so tabs on the right are reachable. */
html body #research-workspace.q-design-model[data-q-system].stock-reference .sr-tabs{flex-wrap:nowrap;overflow-x:scroll;overflow-y:hidden;scrollbar-width:auto;scrollbar-color:var(--dim) transparent;padding-bottom:4px}
html body #research-workspace.q-design-model[data-q-system].stock-reference .sr-tabs::-webkit-scrollbar{height:10px}
html body #research-workspace.q-design-model[data-q-system].stock-reference .sr-tabs::-webkit-scrollbar-thumb{background:var(--dim);border-radius:5px}
html body #research-workspace.q-design-model[data-q-system].stock-reference .sr-tabs a{flex:0 0 auto}
@media(max-width:700px){html body #research-workspace.q-design-model[data-q-system].stock-reference .sr-tabs[data-more]{-webkit-mask-image:linear-gradient(to right,#000 calc(100% - 48px),transparent);mask-image:linear-gradient(to right,#000 calc(100% - 48px),transparent)}}
html body #research-workspace.q-design-model[data-q-system].stock-reference .sr-tabs #rw-status{order:1;flex:0 0 auto;max-width:none;margin-left:12px;white-space:nowrap}
#sr-stock-tab .sr-chart-tip{position:absolute;top:8px;z-index:2;pointer-events:none;padding:6px 9px;border:1px solid var(--line);border-radius:4px;background:var(--panel);color:var(--txt);font-size:13px;line-height:1.45;white-space:nowrap;box-shadow:0 2px 8px color-mix(in srgb,#000 18%,transparent)}
#sr-stock-tab .sr-chart-tip i,#sr-stock-tab .sr-legend-mark{display:inline-block;width:10px;height:10px;border-radius:2px;margin-right:5px}
#sr-stock-facts .q-grid-equal{gap:9px}
#sr-stock-facts .q-grid-equal>.q-panel{min-width:0}
:is(#sr-facts-funds-body,#sr-facts-holders-body) td:first-child{white-space:normal!important}
:is(#sr-facts-funds-body,#sr-facts-holders-body) .q-table{min-width:0!important;width:100%}
#sr-stock-facts .sr-facts-news+.q-button{margin-top:8px}
#sr-stock-facts .q-chip .q-info{width:18px;height:18px;margin-left:4px}

/* Owner reference: six illustrated product cards, no tier badges. */
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .prod-grid{grid-auto-rows:1fr}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .prod{--q-product-tone:var(--accent);display:grid;grid-template-columns:minmax(0,1fr) 94px;grid-template-rows:auto 1fr auto;gap:12px;padding:20px;position:relative;overflow:hidden;background:linear-gradient(125deg,var(--panel) 25%,color-mix(in srgb,var(--q-product-tone) 17%,var(--panel2)))!important;border-color:color-mix(in srgb,var(--q-product-tone) 32%,var(--line));box-shadow:0 3px 9px color-mix(in srgb,var(--txt) 7%,transparent)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-home-product-2{--q-product-tone:var(--q-icon-violet)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-home-product-3{--q-product-tone:var(--q-icon-cyan)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-home-product-4{--q-product-tone:var(--accent)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-home-product-5{--q-product-tone:var(--q-icon-coral)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-home-product-6{--q-product-tone:var(--q-brand)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-home-product-heading{display:flex;align-items:center;gap:12px;grid-column:1/-1}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-home-product-heading h3{font-size:22px;line-height:1.2;color:var(--fg)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-home-product-icon{display:inline-grid;place-items:center;flex:none;width:44px;height:44px;border-radius:11px;background:color-mix(in srgb,var(--q-product-tone) 16%,var(--panel));color:var(--q-product-tone);border:1px solid color-mix(in srgb,var(--q-product-tone) 35%,var(--line));box-shadow:inset 0 1px color-mix(in srgb,var(--panel) 80%,transparent)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-home-product-icon svg{width:27px;height:27px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .prod>p{grid-column:1;grid-row:2;font-size:16px;line-height:1.6;margin:0}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .prod>.more{grid-column:1;grid-row:3;align-self:end;justify-self:start;font-size:14px!important;font-weight:600;padding:9px 12px;margin:0;border:1px solid color-mix(in srgb,var(--q-product-tone) 35%,var(--line));border-radius:6px;background:var(--panel);color:var(--fg)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-home-product-art{grid-column:2;grid-row:2/4;align-self:center;justify-self:center;width:100%;height:auto;max-height:160px;color:color-mix(in srgb,var(--q-product-tone) 60%,var(--dim));filter:drop-shadow(0 6px 4px color-mix(in srgb,var(--txt) 8%,transparent))}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-home-product-art .ink{stroke:var(--q-product-tone);stroke-width:3}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .prod:hover{border-color:var(--q-product-tone);box-shadow:0 4px 14px color-mix(in srgb,var(--q-product-tone) 14%,transparent)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .prod:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
@media(max-width:1150px) and (min-width:701px){html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .prod-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .prod-grid{grid-template-columns:minmax(0,1fr)}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .prod{padding:16px;grid-template-columns:minmax(0,1fr) 80px}}
@media(max-width:360px){html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .prod{grid-template-columns:minmax(0,1fr)}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-home-product-art{display:none}}

html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-market-stage #mh-map{flex:1}

/* Owner requested standard market green/red and grouped feature cards, 3 November 2026. */
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] {--q-home-gain:#15803d;--q-home-loss:#dc2626}
html[data-theme="dark"] body.ph-home main.q-design-model[data-q-page="public-home"],html[data-theme="slate"] body.ph-home main.q-design-model[data-q-page="public-home"]{--q-home-gain:#4ade80;--q-home-loss:#f87171}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] :is(.q-mh-up,.pos){color:var(--q-home-gain)!important}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] :is(.q-mh-down,.neg){color:var(--q-home-loss)!important}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-mh-fill-up{background:var(--q-home-gain)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-mh-fill-down{background:var(--q-home-loss)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #discover .insight{display:flex;flex-direction:column;gap:12px;padding:16px;transform:none}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #discover .insight-art{flex:none;height:100px;margin:0;background:linear-gradient(120deg,color-mix(in srgb,var(--accent) 7%,var(--panel)),color-mix(in srgb,var(--q-icon-cyan) 9%,var(--panel)));border-radius:5px;padding:8px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #discover .ring{width:84px;height:84px;background:conic-gradient(var(--q-home-loss) calc(var(--p)*1%),var(--line) 0)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #discover .ring span{font-size:20px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #discover .hours{height:84px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #discover .capture span{background:var(--q-home-gain)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #discover .capture-l small{font-size:12px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-feature-links{list-style:none;margin:0;padding:0;display:grid;gap:4px;font:400 14px/1.5 var(--q-home-text)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-feature-links li{min-width:0;overflow-wrap:anywhere}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-feature-links a{color:var(--accent);text-decoration:none}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-feature-links a:hover{text-decoration:underline}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-feature-extra{max-height:220px;overflow:auto;margin-top:10px;padding:0 6px 0 0}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-feature-access{font-size:12px;color:var(--dim);margin-left:5px}



/* Owner corrections: hero CTA text and full-width workspace introduction. */
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .ph-banner .hero-cta .btn-primary{color:#fff!important}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .section-head :is(h2,p){max-width:none}

/* Owner map label density and sector comparison / individual native charts. */
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-map-canvas.map-compact-market .map-company b{font-size:var(--map-label-size);line-height:1;letter-spacing:-.02em}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-map-canvas.map-compact-market .map-company span{font-size:var(--map-return-size,12px);line-height:1}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-map-canvas.map-compact-market .map-sector>button{font-size:11px;line-height:14px;height:14px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-map .map-card-bar{gap:5px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-map .map-card-title{font-size:14px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-map .q-home-map-full{font-size:12px;white-space:nowrap;order:1}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-map .q-mh-help{order:2;flex:none}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-map .q-home-map-scope{font:400 12px/1.4 var(--q-home-text);color:var(--dim);margin:0 0 3px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-sectors{max-height:none;overflow:visible;scrollbar-gutter:auto}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-sector-tabs{display:flex;align-items:center;gap:4px;padding:6px;border-bottom:1px solid var(--line)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-sector-tabs button{border:1px solid var(--line);border-radius:4px;background:var(--panel);color:var(--fg);font:500 14px/1.3 var(--q-home-text);padding:6px 7px;cursor:pointer}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-sector-tabs button[aria-selected="true"]{background:var(--accent);color:white;border-color:var(--accent)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-sector-tabs label{margin-left:auto;font-size:12px;display:flex;gap:3px;align-items:center}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-sector-tabs select{min-width:0;width:52px;font:400 14px/1.3 var(--q-home-text);padding:4px;border:1px solid var(--line);background:var(--panel);color:var(--fg);border-radius:4px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-sector-chart{height:180px;min-width:0;background:var(--panel);color:var(--dim);border-color:var(--line);font:400 12px var(--q-home-text)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-sector-status{margin:0;padding:5px 8px;font:400 12px/1.4 var(--q-home-text);color:var(--dim);min-height:26px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-sector-legend{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:4px 8px 8px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-sector-legend button{min-width:0;display:flex;justify-content:space-between;gap:3px;padding:5px 3px;border:1px solid var(--line);border-left-width:3px;border-radius:3px;background:var(--panel);color:var(--fg);font:400 12px/1.3 var(--q-home-text);cursor:pointer}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-sector-legend button[aria-pressed="false"]{opacity:.5;text-decoration:line-through}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-sector-legend button b{font-family:var(--q-home-text);font-size:12px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-sector-legend .q-mh-num{font-size:12px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-sector-select{padding:7px 8px;display:flex;align-items:center;gap:8px;font-size:14px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-sector-select select{min-width:0;flex:1;max-width:100%;padding:5px;border:1px solid var(--line);border-radius:4px;background:var(--panel);color:var(--fg);font:400 14px/1.3 var(--q-home-text)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-sector-research{display:inline-block;padding:6px 8px;font-size:14px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #mh-sectors :is(button,select,[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:-2px}

/* Shared daily-pattern view: homepage and Market Overview, same scan and evidence. */
html .q-design-model .q-daily-patterns{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;padding:0 8px 8px;min-width:0}
html .q-design-model .q-daily-patterns .q-home-pattern-scroll{overflow:auto;min-width:0}
html .q-design-model .q-daily-patterns table{width:100%;min-width:430px;border-collapse:collapse;font:400 14px/1.5 var(--mm-text,Inter,Arial,sans-serif)}
html .q-design-model .q-daily-patterns :is(th,td){padding:3px 4px;text-align:left;white-space:nowrap;font-size:14px}
html .q-design-model .q-daily-patterns td:not(:last-child){width:15%}
html .q-design-model .q-daily-patterns th{font-weight:500;color:var(--dim)}
html .q-design-model .q-daily-patterns a{color:var(--accent)}
html .q-design-model .q-daily-patterns .q-pattern-icon{width:22px;height:20px;vertical-align:middle;margin-right:4px;border-radius:3px;background:var(--panel2)}
html .q-design-model .q-daily-patterns .q-pattern-primary{stroke:var(--accent)}
html .q-design-model .q-daily-patterns .q-pattern-secondary{stroke:var(--q-home-loss,var(--red))}
html .q-design-model .q-daily-patterns .q-home-pattern-state{font-size:12px;color:var(--dim)}
html .q-design-model .q-daily-patterns-panel>.q-panel-head{display:flex;align-items:center;justify-content:space-between;padding:6px 10px;gap:8px;min-height:0}
html .q-design-model .q-daily-patterns-panel h2{margin:0;font-size:16px;line-height:1.4}
html .q-design-model .q-daily-pattern-help{margin:0;padding:10px;font:400 14px/1.5 var(--mm-text,Inter,Arial,sans-serif)}
html .q-design-model .q-daily-pattern-context,html .q-design-model .q-daily-pattern-status{margin:0;padding:5px 10px;font:400 12px/1.5 var(--mm-text,Inter,Arial,sans-serif);color:var(--dim)}
html #research-workspace[data-stock-dashboard] #smd-daily-patterns{grid-column:1/-1;min-width:0}
html .q-design-model .q-daily-patterns :is(a,[tabindex]):focus-visible{outline:2px solid var(--accent);outline-offset:1px}
@media(max-width:700px){html .q-design-model .q-daily-patterns{grid-template-columns:minmax(0,1fr)}}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-mh-head{padding:6px 10px;min-height:0;gap:6px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-mh-head b{font-size:16px;line-height:1.4}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-pattern-scroll table{min-width:430px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-sector-legend{grid-template-columns:repeat(auto-fit,minmax(114px,1fr))}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-sector-legend b{display:flex;align-items:center;white-space:nowrap}

html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-pattern-scroll table{min-width:360px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-pattern-scroll td:not(:last-child){width:auto}
html .q-design-model .q-daily-patterns table{min-width:360px}
html .q-design-model .q-daily-patterns td:not(:last-child){width:auto}
@media(max-width:360px){html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-sector-tabs label{font-size:0;gap:0}}

/* Market widgets (index-card, macro-quote), registered by deploy/test/market-widgets.js. New classes only. */
.qw-index{border-left:3px solid var(--qw-line)}.qw-index.qw-index-up{border-left-color:var(--green)}.qw-index.qw-index-dn{border-left-color:var(--red)}
.qw-index .qw-body,.qw-macro .qw-body{padding:6px 14px 10px;overflow:hidden}
.qw-index-main{display:flex;align-items:baseline;flex-wrap:wrap;gap:2px 8px;padding:0;border:0;background:none;color:inherit;font:inherit;text-align:left;cursor:pointer}
.qw-index-value{font:600 16px/1.2 var(--mm-text)}
.qw-index-main em,.qw-macro-value em{font-style:normal;font-size:12px}
.qw-index-main em.up,.qw-macro-value em.up{color:var(--green)}.qw-index-main em.dn,.qw-macro-value em.dn{color:var(--red)}
.qw-index-spark{display:block;height:26px;margin-top:2px}.qw-index-spark svg{display:block;width:100%;height:100%}
.qw-index-spark polyline{stroke:var(--dim)}.qw-index-spark.up polyline{stroke:var(--green)}.qw-index-spark.dn polyline{stroke:var(--red)}
.qw-index-detail,.qw-macro-group,.qw-macro-source{display:block;font-size:11px;line-height:1.35;color:var(--dim);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.qw-macro-value{display:block;font:600 13px/1.35 var(--mm-text);white-space:nowrap}

html .q-design-model #smd-daily-patterns .q-help{min-width:28px;min-height:28px;line-height:20px;padding:3px;font-size:14px}
html[data-theme="light"] .q-design-model .company-mark img[src$="/AAPL.png"]{filter:brightness(0)}

html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-market-stage>section[aria-label="Market Map"]{min-height:378px}

/* Owner rich feature references, QuantOS fonts and shared tokens retained. */
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .prod{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);grid-template-rows:auto auto 1fr auto;gap:16px 12px;padding:22px;background:linear-gradient(135deg,var(--panel) 12%,color-mix(in srgb,var(--q-product-tone) 25%,var(--panel)) 65%,color-mix(in srgb,var(--q-product-tone) 65%,var(--panel)))!important;border-radius:16px;border-color:color-mix(in srgb,var(--q-product-tone) 55%,var(--line));box-shadow:inset 0 1px 1px #ffffff80,0 7px 20px color-mix(in srgb,var(--q-product-tone) 18%,transparent)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-home-product-icon{width:50px;height:50px;border-radius:14px;color:#fff;background:linear-gradient(145deg,color-mix(in srgb,var(--q-product-tone) 80%,#fff),color-mix(in srgb,var(--q-product-tone) 70%,#121214));box-shadow:inset 0 1px 2px #ffffff90,0 4px 8px #0003}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-home-product-heading{gap:12px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-home-product-heading h3{font-size:23px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .prod>p{line-height:1.5;color:var(--fg)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-home-product-points{grid-column:1;grid-row:3;list-style:none;padding:0;margin:0;display:grid;gap:7px;align-content:start;font:500 14px/1.45 var(--q-home-text);color:var(--fg)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-home-product-points li{display:flex;gap:6px;align-items:baseline}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-home-product-points li>span{color:var(--q-home-gain);font-weight:700}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .prod>.more{grid-row:4;grid-column:1/-1;color:#fff;background:linear-gradient(135deg,color-mix(in srgb,var(--q-product-tone) 55%,#121214),#121214);border-color:color-mix(in srgb,var(--q-product-tone) 80%,#fff);border-radius:24px;padding:10px 16px;box-shadow:0 3px 8px color-mix(in srgb,var(--q-product-tone) 35%,transparent)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-glance-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:12px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-glance-head h3{font:700 24px/1.3 var(--q-home-display);margin:0;color:var(--q-glance-fg)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] .q-home-glance-head>a{color:#6ed5ed;font:600 14px/1.5 var(--q-home-text)}

@media(max-width:700px){html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .prod{padding:18px;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)}}
@media(max-width:360px){html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .prod{grid-template-columns:minmax(0,1fr)}}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .prod-grid{grid-auto-rows:auto}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #feature-catalog{scroll-margin-top:140px}

html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .prod-grid{grid-auto-rows:1fr}

/* Compact complete homepage catalog: owner correction, 3 November 2026. */
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-home-feature-links{display:block;max-height:260px;overflow:auto;padding:8px 0 0;margin:8px 0 0;border-top:1px solid var(--line);list-style:none}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-home-feature-links li{display:flex;align-items:baseline;gap:6px;flex-wrap:wrap;padding:6px 0;border:0}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-home-feature-links a{font-size:14px;line-height:1.5;color:var(--txt);text-decoration:none;overflow-wrap:anywhere}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-home-feature-access{font-size:12px;color:var(--dim);background:var(--panel2);padding:2px 5px;border-radius:4px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-home-feature-explore{grid-column:1/-1;color:var(--accent);font-size:14px;font-weight:600;text-decoration:none}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products :is(a,summary):focus-visible{outline:2px solid var(--accent);outline-offset:3px}

/* Small category illustrations, using the shared icon palette. */

/* Owner exact-reference showcase: scoped dark presentation,3 November2026. */
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products{--rf-bg:#040d19;--rf-ink:#f3f6ff;--rf-dim:#d2dcef;background:radial-gradient(ellipse at 3% 15%,#00446520,transparent 38%),radial-gradient(ellipse at 80% 0%,#00295148,transparent 52%),var(--rf-bg)!important;color:var(--rf-ink);padding:28px 28px 16px;position:relative;isolation:isolate;overflow:hidden}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:url("/test/assets/feature-reference/header.svg") right top/100% 300px no-repeat}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products > .wrap{width:100%;max-width:none;margin:0;padding:0}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-intro{min-height:218px;margin:0 0 22px;padding:8px 30px 0;position:relative}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-platform{display:inline-flex;align-items:center;gap:10px;padding:6px 13px;border:1px solid #008dd27a;border-radius:24px;background:#041325b3;color:#f3f6ff;font:500 16px/1.3 var(--mm-text)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-platform > span{font-size:26px;color:#00dbff;line-height:.8;text-shadow:0 0 12px #00baff}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-intro h2{font-size:68px;line-height:1.1;letter-spacing:-2px;font-weight:700;max-width:none;margin:7px 0 8px;color:#f3f6ff}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-intro h2 > span{background:linear-gradient(100deg,#f3f6ff 0%,#74b8ff 45%,#6674ff 70%,#b945ef 100%);background-clip:text;-webkit-text-fill-color:transparent}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-intro > p:not([hidden]){font-size:22px;line-height:1.25;color:var(--rf-dim);max-width:780px;margin:0}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-benefits{display:flex;gap:22px;list-style:none;margin:17px 0 0;padding:0;color:#e2e8f8;font-size:17px;line-height:1.2}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-benefits li{display:flex;align-items:center;gap:8px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-benefits li+li{border-left:1px solid #24506c;padding-left:22px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-benefits li > span{background:linear-gradient(#00be8a,#007848);color:white;border-radius:50%;width:20px;height:20px;display:grid;place-items:center;font-size:14px;box-shadow:inset 0 1px 0 #ffffff40}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-benefits li:nth-child(2) > span{background:linear-gradient(#00b9cc,#00657c)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-edge{position:absolute;top:9px;right:6px;display:flex;align-items:center;gap:10px;background:linear-gradient(120deg,#001829d9,#130e28df);padding:13px 20px;border:1px solid #5483c8;border-left-color:#00cfff;border-bottom-color:#9252e7;border-radius:28px;color:#fff;font-size:16px;box-shadow:0 0 18px #076cc42e}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-edge svg{width:28px;height:28px;color:#00e1ed}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-help{position:absolute;right:8px;bottom:0;width:25px;height:25px;min-height:25px;color:#bacbe5;background:#071929;border:1px solid #284667;border-radius:50%}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products #home-help-products{background:#091a2b;border:1px solid #284667;color:#d4def0;font-size:14px;line-height:1.5;padding:14px;position:relative;max-width:none;margin-top:14px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px 22px;align-items:start}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-card{--rf-tone:#00baff;position:relative;min-width:0;min-height:164px;padding:18px 18px 12px 135px;box-sizing:border-box;border-radius:17px;overflow:hidden;isolation:isolate;color:var(--rf-ink);border:1px solid color-mix(in srgb,var(--rf-tone) 44%,#172538);background:radial-gradient(ellipse at 0% 0%,color-mix(in srgb,var(--rf-tone) 28%,transparent),transparent 68%),linear-gradient(110deg,#071725,#080d1b);box-shadow:inset 0 1px 0 #ffffff0a}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-card:nth-child(n+7){min-height:144px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-card::before{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(100deg,color-mix(in srgb,var(--rf-tone) 6%,transparent),transparent 70%);pointer-events:none}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-card:nth-child(2){--rf-tone:#a147fc}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-card:nth-child(3){--rf-tone:#00b56d}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-card:nth-child(4){--rf-tone:#f5a424}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-card:nth-child(5){--rf-tone:#00cadb}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-card:nth-child(6){--rf-tone:#6659ff}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-card:nth-child(7){--rf-tone:#49ce76}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-card:nth-child(8){--rf-tone:#e33c76}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-card:nth-child(9){--rf-tone:#1476ff}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-card:nth-child(10){--rf-tone:#b543ef}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-card:nth-child(11){--rf-tone:#6ac77b}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-card:nth-child(12){--rf-tone:#f5ba24}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-icon{position:absolute;left:24px;top:10px;width:82px;height:82px;object-fit:contain;filter:drop-shadow(0 4px 9px color-mix(in srgb,var(--rf-tone) 24%,transparent))}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-copy{position:relative;z-index:2}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-copy h3{font-family:var(--mm-text);font-size:22px;line-height:1.15;letter-spacing:-.6px;font-weight:600;color:#f3f6ff;margin:0 0 4px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-copy h3 a{color:inherit;text-decoration:none}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-copy > p{font-size:16px;line-height:1.16;max-width:235px;min-height:36px;margin:0 0 12px;color:#d7e1f4}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-points{list-style:none;display:grid;gap:2px;margin:0;padding:0;font-size:14px;line-height:1.15;max-width:230px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-points li{display:flex;align-items:center;gap:8px;color:#dce6f6}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-points li span{flex:none;width:14px;height:14px;display:grid;place-items:center;color:#fff;border-radius:50%;font-size:11px;font-weight:600;background:linear-gradient(color-mix(in srgb,var(--rf-tone) 85%,white),color-mix(in srgb,var(--rf-tone) 70%,#001525));box-shadow:inset 0 1px 1px #ffffff50}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-art{position:absolute;right:0;bottom:0;width:44%;height:100%;object-fit:contain;object-position:right center;z-index:0;pointer-events:none;mask-image:linear-gradient(to right,transparent,#000 30%);opacity:.95}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-details{position:relative;z-index:3;margin:0;padding:0}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-details > summary{position:absolute;right:-1px;bottom:-3px;transform:translateY(-100%);display:flex;align-items:center;justify-content:center;gap:16px;width:110px;box-sizing:border-box;padding:8px 15px;border:1px solid #304665;border-radius:24px;background:linear-gradient(#091426e8,#020713f5);color:#f3f6ff;font-size:15px;font-weight:500;line-height:1.2;cursor:pointer;list-style:none;box-shadow:inset 0 1px 0 #ffffff08}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-details > summary::-webkit-details-marker{display:none}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-details > summary:hover{border-color:var(--rf-tone);box-shadow:0 0 12px color-mix(in srgb,var(--rf-tone) 20%,transparent)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-details > summary span{font-size:20px;line-height:.7}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-full{margin:18px 0 0 -117px;padding:14px;border-top:1px solid color-mix(in srgb,var(--rf-tone) 40%,#172538);background:#050d1be6;border-radius:8px;color:#e0e9f8}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-full > strong{display:block;font-size:16px;margin-bottom:8px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-full > .q-home-feature-explore{display:inline-block;font-size:14px;color:#a7d4ff;margin-bottom:8px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-full .q-home-feature-links{max-height:280px;overflow:auto;margin:0;padding:0;list-style:none;display:block;border-color:#253449}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-full .q-home-feature-links li{display:flex;flex-wrap:wrap;align-items:baseline;gap:5px;padding:6px 0}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-full .q-home-feature-links a{font:400 14px/1.45 var(--mm-text);color:#dce7fa;text-decoration:none;overflow-wrap:anywhere}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-full .q-home-feature-links a:hover{text-decoration:underline;color:#fff}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-full .q-home-feature-access{font-size:12px;color:#e4c791;background:#2a2119;padding:2px 5px;border-radius:4px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-access{font-size:12px;line-height:1.4;color:#a7b6ce;margin:9px 0 0;text-align:right}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products :is(a,summary,button):focus-visible{outline:2px solid #42ddff;outline-offset:3px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-details[open] > summary{bottom:auto;top:-38px;transform:none}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-details[open] > summary span{transform:rotate(90deg)}
@media(max-width:1450px){html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-card{padding-left:106px;min-height:174px}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-card:nth-child(n+7){min-height:174px}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-icon{width:66px;height:66px;left:18px}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-copy h3{font-size:19px}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-copy>p{font-size:14px;max-width:210px}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-full{margin-left:-88px}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-points{font-size:14px;max-width:200px}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-art{opacity:.6}}
@media(max-width:1100px){html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-intro{padding-left:4px}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-intro h2{font-size:52px}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-edge{display:none}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-intro>p:not([hidden]){font-size:19px}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-benefits{font-size:14px;gap:14px}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-benefits li+li{padding-left:14px}}
@media(max-width:650px){html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products{padding:22px 16px 16px}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-grid{grid-template-columns:minmax(0,1fr);gap:12px}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-intro{min-height:0;padding:0;margin-bottom:22px}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-intro h2{font-size:42px;letter-spacing:-1.3px;margin-top:12px}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-intro>p:not([hidden]){font-size:16px;line-height:1.4;padding-right:12px}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-desktop-break{display:none}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-benefits{flex-wrap:wrap;gap:8px 14px;margin-top:14px}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-benefits li+li{border:0;padding-left:0}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-platform{font-size:14px}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-help{top:0;bottom:auto;right:0}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-card,html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-card:nth-child(n+7){min-height:190px;padding:16px 14px 44px 96px}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-icon{width:64px;height:64px;left:14px;top:12px}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-copy>p{font-size:14px;line-height:1.3;margin-bottom:12px;min-height:0}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-copy h3{font-size:18px;letter-spacing:-.3px}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-art{width:45%;height:80%;opacity:.28}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-details>summary{bottom:-30px;transform:none;width:102px;padding:7px 14px}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-full{margin-left:-82px;margin-bottom:-30px}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-details[open]>summary{top:8px;bottom:auto}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-details[open] .q-ref-full{margin-top:48px}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-access{text-align:left;font-size:12px}}

html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-details{position:static}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-details>summary{right:16px;bottom:9px;transform:none}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-details[open]>summary{top:118px;right:16px;bottom:auto}
@media(max-width:650px){html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-details>summary{right:14px;bottom:10px}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-details[open]>summary{top:148px;right:14px;bottom:auto}}

html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-intro h2{font-size:72px;letter-spacing:-1.5px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-intro h2>span{margin-left:6px}
@media(min-width:1451px){html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-card:nth-child(3n){padding-left:116px}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-card:nth-child(3n) .q-ref-icon{left:12px}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-card:nth-child(3n) .q-ref-full{margin-left:-98px}}
@media(max-width:1100px){html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-intro h2{font-size:52px}}
@media(max-width:650px){html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-intro h2{font-size:42px}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-intro h2>span{margin-left:0}}

html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-card:has(details[open]) .q-ref-art{height:164px;top:0;bottom:auto}
@media(max-width:650px){html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-card:has(details[open]) .q-ref-art{height:190px}}

/* Owner theme and embedded-section corrections,3 November2026. */
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products{--rf-bg:var(--panel2);--rf-ink:var(--txt);--rf-dim:var(--dim);--rf-glow:22%;padding:24px 0!important;background:radial-gradient(ellipse at 3% 15%,color-mix(in srgb,var(--accent) 5%,transparent),transparent 38%),radial-gradient(ellipse at 80% 0%,color-mix(in srgb,var(--accent) 8%,transparent),transparent 52%),var(--rf-bg)!important;color:var(--rf-ink)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products > .wrap{max-width:1400px;width:100%;margin:0 auto;padding:0 32px;box-sizing:border-box}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-intro{min-height:180px;padding:8px 0 0}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-intro h2{font-size:52px;letter-spacing:-1.2px;color:var(--rf-ink)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-intro h2 > span{background:linear-gradient(100deg,var(--rf-ink) 0%,color-mix(in srgb,var(--accent) 75%,var(--rf-ink)) 45%,var(--q-icon-violet) 100%);background-clip:text}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-intro > p:not([hidden]){font-size:18px;line-height:1.35;color:var(--rf-dim)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-platform{color:var(--rf-ink);background:color-mix(in srgb,var(--panel) 90%,transparent);border-color:color-mix(in srgb,var(--q-icon-cyan) 50%,var(--line));font-size:14px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-edge{color:var(--rf-ink);background:linear-gradient(120deg,var(--panel),color-mix(in srgb,var(--q-icon-violet) 8%,var(--panel)));border-color:color-mix(in srgb,var(--accent) 50%,var(--line));font-size:14px;padding:10px 16px;right:0}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-benefits{color:var(--rf-ink);font-size:14px;margin-top:14px;gap:18px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-benefits li+li{border-color:var(--line);padding-left:18px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-card{color:var(--rf-ink);border-color:color-mix(in srgb,var(--rf-tone) 35%,var(--line));background:radial-gradient(ellipse at 0% 0%,color-mix(in srgb,var(--rf-tone) var(--rf-glow),transparent),transparent 68%),linear-gradient(110deg,var(--panel2),var(--panel));box-shadow:inset 0 1px 0 color-mix(in srgb,var(--rf-ink) 4%,transparent)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-copy h3{color:var(--rf-ink)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-copy > p{color:var(--rf-dim);max-width:205px}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-points li{color:var(--rf-ink)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-details > summary{color:var(--rf-ink);background:linear-gradient(var(--panel),var(--panel2));border-color:color-mix(in srgb,var(--rf-tone) 26%,var(--line))}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-full{color:var(--rf-ink);background:color-mix(in srgb,var(--panel) 97%,transparent);border-color:color-mix(in srgb,var(--rf-tone) 35%,var(--line))}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-full > .q-home-feature-explore{color:var(--accent)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-full .q-home-feature-links{border-color:var(--line)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-full .q-home-feature-links a{color:var(--rf-ink)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-full .q-home-feature-links a:hover{color:var(--accent)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-full .q-home-feature-access{color:var(--rf-dim);background:var(--panel2)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-help{color:var(--rf-dim);background:var(--panel);border-color:var(--line)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products #home-help-products{color:var(--rf-ink);background:var(--panel);border-color:var(--line)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-access{color:var(--rf-dim)}
html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-art{mask-image:linear-gradient(to right,transparent,transparent 15%,#000 55%)}
html[data-public-theme="light"] body.ph-home main.q-design-model[data-q-page="public-home"] #products{--rf-glow:10%}
html[data-public-theme="light"] body.ph-home main.q-design-model[data-q-page="public-home"] #products::before{opacity:.32}
html[data-public-theme="light"] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-art{opacity:.6}
@media(max-width:1100px){html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-intro h2{font-size:44px}}
@media(max-width:650px){html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products{padding:20px 0!important}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products > .wrap{padding:0 20px}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-intro{min-height:0}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-intro h2{font-size:36px}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-intro>p:not([hidden]){font-size:16px}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-benefits{gap:8px 12px}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-benefits li+li{padding-left:0}html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-art{opacity:.25!important}}

html[data-theme] body.ph-home main.q-design-model[data-q-page="public-home"] #products .q-ref-grid{align-items:stretch}
