/* PriceVia V42 canonical design-system consolidation layer. */
:root{
  --pv-bg-0:#050b14;--pv-bg-1:#07111d;--pv-bg-2:#0a1624;--pv-surface:#0d1b2a;--pv-surface-2:#112235;
  --pv-surface-hover:#14283d;--pv-border:#1d3247;--pv-border-strong:#2d4964;
  --pv-text:#f2f7fb;--pv-text-2:#c6d4e1;--pv-muted:#7f95a9;--pv-disabled:#536679;
  --pv-brand:#8b6dff;--pv-brand-hover:#9e85ff;--pv-brand-soft:rgba(139,109,255,.14);
  --pv-positive:#34d399;--pv-negative:#fb7185;--pv-warning:#f7b955;--pv-info:#58c8ff;
  --pv-shadow-1:0 8px 26px rgba(0,0,0,.16);--pv-shadow-2:0 18px 55px rgba(0,0,0,.28);
  --pv-r-sm:8px;--pv-r-md:12px;--pv-r-lg:16px;--pv-r-xl:22px;
  --pv-sp-1:4px;--pv-sp-2:8px;--pv-sp-3:12px;--pv-sp-4:16px;--pv-sp-5:20px;--pv-sp-6:24px;--pv-sp-8:32px;--pv-sp-10:40px;--pv-sp-12:48px;
  --pv-control-sm:34px;--pv-control-md:42px;--pv-control-lg:48px;--pv-content-max:1440px;
  color-scheme:dark;
}

/* V43.1 semantic token bridge: one meaning, page/theme-specific source values. */
body.v42-ui{
  --pv-bg-0:var(--bg);--pv-bg-1:var(--bg-elev);--pv-bg-2:var(--surface);
  --pv-surface:var(--surface);--pv-surface-2:var(--surface-2);--pv-surface-hover:var(--surface-3);
  --pv-border:var(--line);--pv-border-strong:color-mix(in srgb,var(--line) 58%,var(--text));
  --pv-text:var(--text);--pv-text-2:color-mix(in srgb,var(--text) 82%,var(--muted));--pv-muted:var(--muted);--pv-disabled:var(--muted-2);
  --pv-brand:var(--accent);--pv-brand-hover:color-mix(in srgb,var(--accent) 84%,white);--pv-brand-soft:rgba(var(--accent-rgb),.14);
  --pv-positive:var(--good);--pv-negative:var(--bad);--pv-warning:var(--warn);--pv-info:var(--blue);
}
body.public-site{
  --pv-bg-0:var(--bg);--pv-bg-1:var(--bg2);--pv-bg-2:var(--panel);--pv-surface:var(--panel);--pv-surface-2:var(--panel2);
  --pv-surface-hover:color-mix(in srgb,var(--panel2) 78%,white);--pv-border:var(--line);--pv-border-strong:var(--line2);
  --pv-text:var(--text);--pv-text-2:color-mix(in srgb,var(--text) 82%,var(--muted));--pv-muted:var(--muted);--pv-disabled:var(--muted2);
  --pv-brand:var(--purple);--pv-brand-hover:color-mix(in srgb,var(--purple) 84%,white);--pv-brand-soft:color-mix(in srgb,var(--purple) 15%,transparent);
  --pv-positive:var(--green);--pv-negative:var(--red);--pv-warning:var(--amber);--pv-info:var(--blue);
}
html{scroll-behavior:smooth}
body.v42-ui,body.public-site{background:var(--pv-bg-0);color:var(--pv-text)}
body.v42-ui :where(.kpi-value,.metric-value,.price,.pnl,.status-number,.research-number,td[data-number]),body.public-site :where(.price,.change,.metric-value){font-variant-numeric:tabular-nums lining-nums}
body.v42-ui :where(.panel,.kpi,.research-card,.strategy-card,.admin-card),body.public-site :where(.market-card,.news-card,.trust-card){border-color:var(--pv-border)}
body.v42-ui :where(button,.btn,input,select,textarea,a,[role="button"]):focus-visible,body.public-site :where(button,input,select,textarea,a,[role="button"]):focus-visible{outline:2px solid var(--pv-brand);outline-offset:3px;box-shadow:0 0 0 5px var(--pv-brand-soft)}
body.v42-ui :where(button,.btn,[role="button"]),body.public-site :where(button,.primary-button,.secondary-button,[role="button"]){min-height:var(--pv-control-sm);touch-action:manipulation}
body.v42-ui :where(input,select,textarea),body.public-site :where(input,select,textarea){border-radius:var(--pv-r-sm);border-color:var(--pv-border);background:var(--pv-bg-1);color:var(--pv-text)}
body.v42-ui :where(input,select,textarea):hover,body.public-site :where(input,select,textarea):hover{border-color:var(--pv-border-strong)}
body.v42-ui :where(input,select,textarea):disabled{opacity:.58;cursor:not-allowed}
body.v42-ui .field>label,body.public-site label{color:var(--pv-text-2)}
body.v42-ui .muted,body.v42-ui .panel-sub,body.public-site .muted{color:var(--pv-muted)}
body.v42-ui .status-pill.positive,body.v42-ui .notice.good{color:#a7f3d0;border-color:rgba(52,211,153,.34);background:rgba(52,211,153,.08)}
body.v42-ui .status-pill.negative,body.v42-ui .notice.bad{color:#fecdd3;border-color:rgba(251,113,133,.36);background:rgba(251,113,133,.08)}
body.v42-ui .status-pill.warning{color:#fde7b1;border-color:rgba(247,185,85,.34);background:rgba(247,185,85,.08)}
body.v42-ui .status-pill.info{color:#c6efff;border-color:rgba(88,200,255,.34);background:rgba(88,200,255,.08)}
body.v42-ui .table-wrap{position:relative;overscroll-behavior-x:contain;overscroll-behavior-y:auto}
body.v42-ui table{border-collapse:separate;border-spacing:0;font-variant-numeric:tabular-nums}
body.v42-ui thead th{position:sticky;top:0;z-index:2;background:color-mix(in srgb,var(--pv-bg-1) 94%,transparent);backdrop-filter:blur(10px);white-space:nowrap}
body.v42-ui tbody tr{transition:background-color .14s ease}
body.v42-ui tbody tr:hover{background:rgba(139,109,255,.045)}
body.v42-ui td.numeric,body.v42-ui th.numeric{text-align:right;font-variant-numeric:tabular-nums}
body.v42-ui .v42-mode-banner{display:flex;align-items:center;gap:10px;padding:9px 12px;border:1px solid var(--pv-border);border-radius:10px;background:var(--pv-bg-1);font-size:11px;letter-spacing:.04em}
body.v42-ui .v42-mode-banner strong{color:var(--pv-text)}
body.v42-ui .v42-mode-banner[data-mode="LIVE"]{border-color:rgba(251,113,133,.45);background:rgba(251,113,133,.08)}
body.v42-ui .v42-mode-banner[data-mode="SHADOW"],body.v42-ui .v42-mode-banner[data-mode="RESEARCH"]{border-color:rgba(88,200,255,.30);background:rgba(88,200,255,.055)}
body.v42-ui .v42-account-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(320px,.72fr);gap:16px;align-items:start}
body.v42-ui .v42-security-list{display:grid;gap:10px}.v42-security-row{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--pv-border)}
body.v42-ui .v42-security-row:last-child{border-bottom:0}.v42-security-row span{color:var(--pv-muted);font-size:11px}.v42-security-row b{color:var(--pv-text);font-size:12px;text-align:right}
body.v42-ui .v42-secret{font-family:ui-monospace,SFMono-Regular,Consolas,monospace;word-break:break-all;padding:12px;border-radius:10px;background:var(--pv-bg-0);border:1px solid var(--pv-border);color:var(--pv-text-2)}
body.v42-ui .v42-health-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px}.v42-health-card{padding:16px;border:1px solid var(--pv-border);border-radius:12px;background:var(--pv-bg-1)}
body.v42-ui .v42-health-card span{font-size:9px;letter-spacing:.12em;color:var(--pv-muted)}.v42-health-card strong{display:block;margin-top:8px;font-size:18px}.v42-health-card small{display:block;margin-top:5px;color:var(--pv-muted)}
body.v42-ui .v42-audit-table td:first-child,body.v42-ui .v42-audit-table th:first-child{white-space:nowrap}
body.v42-ui .v42-online-banner{position:fixed;left:50%;top:12px;transform:translateX(-50%);z-index:9999;padding:8px 13px;border:1px solid var(--pv-warning);background:#2c2110;color:#ffe7b3;border-radius:999px;box-shadow:var(--pv-shadow-2);font-size:11px}
body.v42-ui .v42-unsaved{color:var(--pv-warning)!important}
body.public-site .legal-copy,body.public-site .article-body{max-width:78ch}
body.public-site .article-body p{font-size:clamp(16px,1.1vw,18px);line-height:1.78}.public-site .article-body h2{line-height:1.2;text-wrap:balance}
body.public-site .public-header{backdrop-filter:blur(18px)}
body.public-site .public-footer a:focus-visible{text-decoration:underline}
@media(max-width:1180px){body.v42-ui .v42-account-grid{grid-template-columns:1fr}.v42-health-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){body.v42-ui input,body.v42-ui select,body.v42-ui textarea,body.public-site input,body.public-site select,body.public-site textarea{font-size:16px}.v42-health-grid{grid-template-columns:1fr}.v42-security-row{align-items:flex-start;flex-direction:column}.v42-security-row b{text-align:left}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}body.v42-ui *,body.v42-ui *::before,body.v42-ui *::after,body.public-site *,body.public-site *::before,body.public-site *::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}
@media(forced-colors:active){body.v42-ui :where(.status-pill,.notice,.panel),body.public-site :where(.news-card,.market-card){border:1px solid CanvasText}}
