/* Shared directory primitives. The page owns placement; identity assets keep their renderer. */
.ds-entity-identity { display:flex; align-items:center; gap:var(--space-content); min-width:0; color:var(--color-text); text-decoration:none; }
.ds-entity-identity>span:last-child { min-width:0; }
.ds-entity-identity>:first-child { flex:none; margin:0; }
.ds-entity-identity strong { display:block; font-weight:var(--font-weight-heading); font-size:var(--font-body); line-height:var(--line-height-heading); overflow-wrap:anywhere; }
.ds-entity-identity small { display:block; margin-top:var(--space-sm); color:var(--color-text-muted); font-size:var(--font-body-small); line-height:var(--line-height-body); overflow-wrap:anywhere; }
.ds-entity-identity:is(:hover,:focus-visible,[data-state="hover"],[data-state="focus"]) strong { color:var(--color-accent); }
.ds-entity-identity:is(:focus-visible,[data-state="focus"]) { outline:var(--focus-width) solid var(--color-focus); outline-offset:var(--focus-offset); border-radius:var(--radius-inner); }

/* One table/directory identity size per density, independent of route and viewport.
   Optical full-tile/wide-mark presets and per-brand scale remain owned by BrandIdentity. */
.tsb-design-system .ds-entity-identity .tsb-prop-logo { --tsb-prop-logo-frame:var(--entity-logo-size); }
.tsb-design-system .ds-entity-identity .tsb-prop-logo:not([data-logo-preset="full-tile"]):not([data-logo-preset="wide-mark"]) { --tsb-prop-logo-art:var(--entity-logo-art); }
.ds-entity-identity>.ds-identity { width:var(--entity-logo-size); height:var(--entity-logo-size); }

/* The same compact offer destination in every public research table. */
.ds-compact-offer { display:grid; box-sizing:border-box; grid-template-columns:var(--primitive-size-20) minmax(0,1fr); align-items:center; gap:var(--space-sm); width:100%; min-width:0; min-height:var(--space-section); padding:var(--space-md); border:var(--stroke-width) solid var(--offer-partner-border); border-radius:var(--radius-control); background:var(--color-accent-soft); color:var(--color-accent); text-align:left; text-decoration:none; font-family:var(--font-family); }
.ds-compact-offer>span { display:grid; min-width:0; gap:var(--space-xs); }
.ds-compact-offer>:is(i,svg) { width:var(--primitive-size-20); height:var(--primitive-size-20); }
.ds-compact-offer strong { color:inherit; font:var(--font-weight-heading) var(--font-caption)/var(--line-height-heading) var(--font-family-data); overflow-wrap:break-word; }
.ds-compact-offer small { color:var(--color-text-muted); font:var(--font-weight-body) var(--font-caption)/var(--line-height-caption) var(--font-family); }
.ds-compact-offer--pending { border-style:dashed; border-color:var(--color-border-strong); background:var(--color-surface-raised); color:var(--color-text-muted); }
.ds-compact-offer:is(:hover,:focus-visible,[data-state="hover"],[data-state="focus"]) { border-color:var(--color-accent); background:var(--color-surface-hover); }
.ds-compact-offer:is(:focus-visible,[data-state="focus"]) { outline:var(--focus-width) solid var(--color-focus); outline-offset:var(--focus-offset); }
.ds-compact-offer:is(:disabled,[aria-disabled="true"],[data-state="disabled"]) { opacity:var(--opacity-disabled); cursor:not-allowed; }
@media (prefers-reduced-motion:reduce) { .ds-compact-offer { transition:none; } }

/* Segmented control: prop-segment control geometry, state colors from the current theme. */
.ds-segmented { display:inline-grid; box-sizing:border-box; grid-auto-flow:column; grid-auto-columns:minmax(0,1fr); min-width:0; max-width:100%; min-height:var(--button-height); gap:0; padding:var(--space-xs); border:var(--stroke-width) solid var(--color-border); border-radius:var(--radius-control); background:var(--color-surface-card); }
.ds-segmented-option { display:flex; align-items:center; justify-content:center; min-width:0; min-height:calc(var(--button-height) - var(--space-xs) * 2 - var(--stroke-width) * 2); padding:0 var(--space-sm); border:var(--stroke-width) solid transparent; border-radius:var(--radius-inner); background:transparent; color:var(--color-text-muted); white-space:nowrap; cursor:pointer; }
.ds-segmented-option:is(:hover,[data-state="hover"]) { color:var(--color-text); background:var(--color-surface-hover); }
.ds-segmented-option[aria-pressed="true"] { color:var(--button-primary-text); background:var(--button-primary-bg); border-color:var(--button-primary-border); }
.ds-segmented-option:is(:focus-visible,[data-state="focus"]) { outline:var(--focus-width) solid var(--color-focus); outline-offset:var(--focus-offset); }
.ds-segmented-option:is(:active,[data-state="active"]) { border-color:var(--color-accent); }
.ds-segmented-option:is(:disabled,[data-state="disabled"]) { opacity:var(--opacity-disabled); cursor:not-allowed; }

/* Explicit component typography must outrank the public shell button reset. */
.tsb-design-system .ds-segmented-option { font:var(--button-weight) var(--button-font)/var(--primitive-line-control) var(--font-family); }

/* Real platform marks keep their natural artwork within one readable link. */
.ds-platform-links { display:grid; gap:var(--space-xs); }
.ds-platform-link { display:flex; align-items:center; gap:var(--space-sm); min-width:0; min-height:var(--primitive-size-32); border-radius:var(--radius-control); color:var(--color-text-muted); font:var(--font-weight-label) var(--font-caption)/var(--line-height-caption) var(--font-family); text-decoration:none; }
.ds-platform-link__mark { display:grid; flex:none; place-items:center; width:var(--primitive-size-32); height:var(--primitive-size-32); border-radius:var(--radius-inner); background:var(--color-surface-raised); }
.ds-platform-link__mark img { display:block; width:var(--primitive-size-24); height:var(--primitive-size-24); object-fit:contain; }
.ds-platform-link__mark[data-logo-preset="embedded-tile"] img { width:100%; height:100%; border-radius:inherit; }
.ds-platform-link__mark[data-logo-theme-ink="white"] img { filter:brightness(0) invert(1); }
.ds-platform-link[data-platform="ctrader"] .ds-platform-link__mark { background:#ff1020; }
.ds-platform-link[data-platform="tradovate"] .ds-platform-link__mark { background:#257fff; }
.ds-platform-link[data-platform="tradingview"] img { filter:brightness(0) invert(1); }
a.ds-platform-link:is(:hover,:focus-visible) { color:var(--color-accent); background:var(--color-surface-hover); }
a.ds-platform-link:focus-visible { outline:var(--focus-width) solid var(--color-focus); outline-offset:var(--focus-offset); }

.ds-compact-offer--pending strong { font-family:var(--font-family); }
