/* Портрет компании в таблицах и портфеле (lib/snowflake-mini.js). Светлый
 * синий нашей системы, всё на токенах --cf-*. */
.sfk { display: block; overflow: visible; }
.sfk .ring { fill: none; stroke-width: 17; stroke: var(--sfk-ring); }
.sfk .blob { fill: var(--sfk-fill); fill-opacity: var(--sfk-op); stroke: var(--sfk-edge); stroke-width: 2.5; stroke-linejoin: round; }
.sfk .wedge { fill: var(--sfk-wedge); }
.sfk .lab { font-size: 15px; font-weight: 600; letter-spacing: .06em; text-transform: uppercase; fill: var(--cf-ink-2); cursor: pointer; }
.sfk .lab[data-on] { fill: var(--cf-accent); }
.sfk .hit { fill: transparent; cursor: pointer; }
:root {
  --sfk-ring: color-mix(in srgb, var(--cf-ink) 12%, var(--cf-surface));
  --sfk-fill: color-mix(in srgb, var(--cf-chart-1) 78%, var(--cf-surface));
  --sfk-op: .58;
  --sfk-edge: color-mix(in srgb, var(--cf-chart-1) 80%, var(--cf-surface));
  --sfk-wedge: color-mix(in srgb, var(--cf-chart-1) 9%, transparent);
}
[data-theme="dark"] {
  --sfk-ring: color-mix(in srgb, var(--cf-ink) 13%, var(--cf-surface));
  --sfk-fill: var(--cf-chart-1);
  --sfk-op: .6;
  --sfk-edge: var(--cf-chart-1);
  --sfk-wedge: color-mix(in srgb, var(--cf-ink) 10%, transparent);
}

/* ── ячейка таблицы (скринер, активы портфеля): снежинка + балл ── */
.sfc { display: inline-flex; align-items: center; gap: 10px; border-radius: var(--cf-radius-sm); cursor: default; vertical-align: middle; }
/* та же жирность, что у цифр в соседних колонках (500) */
.sfc b { min-width: 18px; font-size: 14px; font-weight: 500; color: var(--cf-ink); font-variant-numeric: tabular-nums; }
.sfc:focus-visible { outline: 2px solid var(--cf-accent); outline-offset: 3px; }
.sfc-none { color: var(--cf-ink-3); }
/* колонка «Портрет» прижата к названию: по левому краю и по ширине содержимого */
th.col-portrait, td.col-portrait { width: 84px; text-align: left; padding-left: 4px; }
th.col-portrait .th-inner { justify-content: flex-start; }

.sfm-pop {
  position: fixed; z-index: 90; width: 260px; padding: 14px 16px 12px;
  background: var(--cf-surface); border-radius: var(--cf-radius-lg); box-shadow: var(--cf-shadow-popover);
  opacity: 0; transform: translateY(-4px) scale(.98); transform-origin: top left; pointer-events: none;
  transition: opacity 140ms ease, transform 160ms var(--cf-ease);
}
.sfm-pop.is-on { opacity: 1; transform: none; pointer-events: auto; }
.sfm-pop-h { display: flex; align-items: center; gap: 10px; margin-bottom: 8px; }
.sfm-pop-h b { display: block; font-size: 14px; font-weight: 600; color: var(--cf-ink); }
.sfm-pop-h small { font-size: 12px; color: var(--cf-ink-2); }
.sfm-tot { white-space: nowrap; margin-left: auto; font-size: 18px; font-weight: 700; color: var(--cf-ink); font-variant-numeric: tabular-nums; }
.sfm-tot span { font-size: 11.5px; font-weight: 400; color: var(--cf-ink-3); }
.sfm-row { display: grid; grid-template-columns: 1fr auto 34px; gap: 8px; align-items: center; padding: 3px 0; font-size: 13px; color: var(--cf-ink); }
.sfm-row em { font-style: normal; font-weight: 700; text-align: right; }
.sfm-row em span { font-weight: 400; font-size: 11.5px; color: var(--cf-ink-3); }
.sfm-dots { display: inline-grid; grid-template-columns: repeat(6, 7px); gap: 2px; }
.sfm-dots i { height: 7px; border-radius: 2px; background: var(--cf-surface-3); }
.sfm-dots i.on { background: var(--sfk-edge); }
.sfm-pop a { display: inline-block; margin-top: 8px; font-size: 13px; font-weight: 600; color: var(--cf-accent); text-decoration: none; }
.sfm-pop a:hover { text-decoration: underline; text-underline-offset: 3px; }

/* ── портфель: Scorecard во вкладке «Аналитика» ── */
.sc { margin-top: 16px; }
.sc-h h2 { margin: 0; font-size: 18px; font-weight: 600; letter-spacing: -0.02em; color: var(--cf-ink); }
.sc-h p { margin: 4px 0 0; max-width: 78ch; font-size: 13px; line-height: 1.45; color: var(--cf-ink-3); }
.sc-grid { display: grid; grid-template-columns: 232px minmax(0, 1fr); gap: 32px; align-items: start; margin-top: 12px; }
.sc-flake .sfk { width: 232px; height: 232px; }
.sc-axis { display: flex; align-items: baseline; gap: 12px; }
.sc-axis h3 { margin: 0; font-size: 18px; font-weight: 600; color: var(--cf-ink); }
.sc-axis b { font-size: 18px; font-weight: 700; color: var(--cf-ink); font-variant-numeric: tabular-nums; }
.sc-axis b span { font-weight: 400; color: var(--cf-ink-3); }
.sc-hint { margin: 2px 0 12px; font-size: 13px; color: var(--cf-ink-3); }
.sc-cols { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; }
.sc-cols h4 { margin: 0 0 4px; font-size: 12.5px; font-weight: 600; color: var(--cf-ink-3); }
.sc-cols ul { list-style: none; margin: 0; padding: 0; }
.sc-hold { display: grid; grid-template-columns: 24px minmax(0, 1fr) 44px; gap: 10px; align-items: center; padding: 7px 0; }
.sc-logo { width: 24px; height: 24px; border-radius: 6px; overflow: hidden; display: grid; place-items: center;
  background: var(--cf-surface-2); font-size: 10px; font-weight: 700; color: var(--cf-ink-2); }
.sc-logo img { width: 100%; height: 100%; object-fit: contain; }
.sc-body { display: grid; gap: 5px; min-width: 0; }
.sc-top { display: flex; align-items: baseline; justify-content: space-between; gap: 8px; }
.sc-top a { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; font-size: 14px; font-weight: 500; color: var(--cf-ink);
  text-decoration: underline dotted var(--cf-line-strong); text-underline-offset: 4px; }
.sc-top a:hover { text-decoration-color: var(--cf-ink-3); }
.sc-top em { flex: 0 0 auto; font-style: normal; font-size: 12.5px; color: var(--cf-ink-2); font-variant-numeric: tabular-nums; }
.sc-bar { display: block; height: 4px; border-radius: var(--cf-radius-bar); background: var(--cf-surface-3); overflow: hidden; }
.sc-bar i { display: block; height: 100%; border-radius: var(--cf-radius-bar); }
.sc-hold.up .sc-bar i { background: var(--sfk-edge); }
.sc-hold.down .sc-bar i { background: var(--cf-ink-3); }
.sc-hold small { text-align: right; font-size: 12.5px; color: var(--cf-ink-3); font-variant-numeric: tabular-nums; }

@media (max-width: 860px) {
  .sc { padding: 18px 16px; }
  .sc-grid { grid-template-columns: 1fr; gap: 16px; }
  .sc-flake { display: flex; justify-content: center; }
  .sc-cols { grid-template-columns: 1fr; gap: 12px; }
}


/* ── мини для таблиц: диск + силуэт, без сетки ── */
.sfg-mini { display: block; flex: 0 0 auto; }
.sfg-mini .disc { fill: color-mix(in srgb, var(--cf-chart-1) 7%, var(--cf-surface)); }
.sfg-mini .shape { fill: color-mix(in srgb, var(--cf-chart-1) 30%, var(--cf-surface));
  stroke: color-mix(in srgb, var(--cf-chart-1) 62%, var(--cf-surface)); stroke-width: 1.5;
  stroke-linejoin: round; vector-effect: non-scaling-stroke; }
[data-theme="dark"] .sfg-mini .disc { fill: color-mix(in srgb, var(--cf-chart-1) 12%, var(--cf-surface)); }
[data-theme="dark"] .sfg-mini .shape { fill: color-mix(in srgb, var(--cf-chart-1) 40%, var(--cf-surface)); stroke: color-mix(in srgb, var(--cf-chart-1) 85%, var(--cf-ink)); }
.sfc:hover .sfg-mini .disc { fill: color-mix(in srgb, var(--cf-chart-1) 13%, var(--cf-surface)); }

.sfm-row > span:first-child small { display: block; font-size: 11.5px; color: var(--cf-ink-3); line-height: 1.25; }
.sfm-note { display: block; margin-top: 6px; font-size: 11.5px; color: var(--cf-ink-3); }
