/* Stock Ownership — scoped to .hh-tool-stock-ownership, the wrapper the server
   writes around the extracted <main>. Every colour, radius and font is one of
   the SPA's own tokens.

   Page chrome stays a quiet research-terminal register: neutral surfaces,
   hairline rules, tabular numbers. Colour lives in the Ownership Map and is
   limited to the SPA's blue, green and red. Motion is tweened positions, a
   flowing dash along holdings and a soft pulse, all off under reduced motion. */

.hh-tool-stock-ownership, .hh-tool-stock-ownership *, .hh-tool-stock-ownership *::before, .hh-tool-stock-ownership *::after{box-sizing:border-box;margin:0;padding:0}
.hh-tool-stock-ownership{color:var(--text);font-family:var(--sans);font-size:15px;line-height:1.55;letter-spacing:-.011em;-webkit-font-smoothing:antialiased}
.hh-tool-stock-ownership a{color:inherit;text-decoration:none}

/* Map colours use only the SPA's own tokens: blue = stocks (--gold), green =
   Lokal holders (--up), red = Asing holders (--down), grey = not classified. */
.hh-tool-stock-ownership{--so-grid:rgba(0,0,0,.07)}
@media(prefers-color-scheme:dark){
  :root:not([data-theme="light"]) .hh-tool-stock-ownership{--so-grid:rgba(255,255,255,.07)}
}
:root[data-theme="dark"] .hh-tool-stock-ownership{--so-grid:rgba(255,255,255,.07)}
.hh-tool-stock-ownership .so-g-loc{--c:var(--up)}
.hh-tool-stock-ownership .so-g-for{--c:var(--down)}
.hh-tool-stock-ownership .so-g-unk{--c:var(--text-faint)}
.hh-tool-stock-ownership :focus-visible{outline:2px solid var(--gold);outline-offset:2px;border-radius:6px}
.hh-tool-stock-ownership .sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.hh-tool-stock-ownership [hidden]{display:none !important}
.hh-tool-stock-ownership .so-muted{color:var(--text-faint);font-style:italic}
.hh-tool-stock-ownership .so-lbl{display:none}

/* ── Entry: header + search ───────────────────────────────────────────── */
.hh-tool-stock-ownership .page-head{display:block;margin-bottom:16px}
.hh-tool-stock-ownership .tool-crumb{font-size:12px;color:var(--text-faint);margin:0 0 6px}
.hh-tool-stock-ownership .tool-back{display:inline-block;font-size:13px;color:var(--gold-ink);margin:0 0 8px}
.hh-tool-stock-ownership .tool-back:hover{text-decoration:underline}
.hh-tool-stock-ownership .page-head h1{font-size:24px;font-weight:700;letter-spacing:-.022em}
.hh-tool-stock-ownership .page-head p{margin-top:4px;color:var(--text-dim);font-size:14px;max-width:62ch}

.hh-tool-stock-ownership .so-search{position:relative;z-index:30;margin-bottom:24px;max-width:520px}
.hh-tool-stock-ownership .so-search-box{position:relative;display:flex;align-items:center}
.hh-tool-stock-ownership .so-search-box svg{position:absolute;left:12px;width:16px;height:16px;color:var(--text-faint);pointer-events:none}
.hh-tool-stock-ownership .so-search input{width:100%;min-width:0;font-family:inherit;font-size:16px;color:var(--text);min-height:44px;
  padding:10px 12px 10px 38px;border:1px solid var(--border);border-radius:10px;background:var(--surface-2);appearance:none;
  transition:border-color .15s,background-color .15s}
.hh-tool-stock-ownership .so-search input:focus{background:var(--bg);border-color:var(--text-faint)}
.hh-tool-stock-ownership .so-search input::placeholder{color:var(--text-faint)}
.hh-tool-stock-ownership .so-search input::-webkit-search-cancel-button{-webkit-appearance:none}
.hh-tool-stock-ownership .so-suggest{position:absolute;z-index:20;left:0;right:0;top:calc(100% + 6px);list-style:none;
  background:var(--bg);border:1px solid var(--border);border-radius:10px;padding:4px;
  max-height:340px;overflow-y:auto}
.hh-tool-stock-ownership .so-opt{display:grid;grid-template-columns:52px minmax(0,1fr);gap:12px;align-items:center;
  min-height:40px;padding:8px 10px;border-radius:7px;cursor:pointer}
.hh-tool-stock-ownership .so-opt.active,.hh-tool-stock-ownership .so-opt:hover{background:var(--surface-2)}
.hh-tool-stock-ownership .so-opt-code{font-family:var(--mono);font-size:12.5px;font-weight:600;letter-spacing:.02em;color:var(--text)}
.hh-tool-stock-ownership .so-opt-name{font-size:13.5px;color:var(--text-dim);overflow-wrap:anywhere}
.hh-tool-stock-ownership .so-opt-group{list-style:none;padding:8px 10px 4px;font-size:11px;font-weight:600;letter-spacing:.06em;
  text-transform:uppercase;color:var(--text-faint);border-top:1px solid var(--border-soft);margin-top:4px}
.hh-tool-stock-ownership .so-opt-group:first-child{border-top:0;margin-top:0}
.hh-tool-stock-ownership .so-opt-holder{grid-template-columns:minmax(0,1fr) auto}
.hh-tool-stock-ownership .so-opt-hname{color:var(--text);font-weight:500}
.hh-tool-stock-ownership .so-opt-meta{font-size:12px;color:var(--text-faint);font-variant-numeric:tabular-nums;white-space:nowrap}
/* Holder view: one exact name across issuers */
.hh-tool-stock-ownership .so-hv-name{font-family:var(--sans);font-size:20px;letter-spacing:-.01em;overflow-wrap:anywhere}
.hh-tool-stock-ownership .so-hv-link{display:grid;grid-template-columns:52px minmax(0,1fr);gap:10px;align-items:baseline}
.hh-tool-stock-ownership .so-hv-link .so-opt-code{color:var(--gold-ink)}
.hh-tool-stock-ownership .so-hv-link:hover .so-hv-issuer{text-decoration:underline}
.hh-tool-stock-ownership .so-hv-issuer{font-size:13.5px;font-weight:500;color:var(--text)}
.hh-tool-stock-ownership .so-view-holder{margin-top:10px}
.hh-tool-stock-ownership .so-c-val{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--text-dim)}
.hh-tool-stock-ownership .so-map-kicker{font-size:12.5px;font-weight:500;color:var(--text-faint)}

/* Holder view map: the holder at the centre (green Lokal / red Asing), one blue
   bubble per stock, sized by % held; the ticker sits inside the bubble. */
.hh-tool-stock-ownership .so-node-selected_holder .so-shape{fill:var(--c)}
.hh-tool-stock-ownership .so-node-selected_holder .so-halo{fill:var(--c)}
.hh-tool-stock-ownership .so-t-hinit{fill:#fff;font:700 18px var(--sans);letter-spacing:.02em;pointer-events:none}
.hh-tool-stock-ownership .so-t-hname{fill:var(--text);font:600 calc(12.5px / var(--k)) var(--sans);pointer-events:none;
  paint-order:stroke;stroke:var(--surface-2);stroke-width:calc(4px / var(--k));stroke-linejoin:round}
.hh-tool-stock-ownership .so-node-held_stock .so-shape{fill:var(--gold)}
.hh-tool-stock-ownership .so-node-held_stock .so-aura{--c:var(--gold);fill-opacity:.09}
.hh-tool-stock-ownership .so-t-bub{fill:#fff;font:700 10.5px var(--mono);letter-spacing:.02em;pointer-events:none}
.hh-tool-stock-ownership .so-leg-bub{width:12px;height:12px;border-radius:50%;background:var(--gold)}
.hh-tool-stock-ownership .so-leg-key .so-leg-dot{width:9px;height:9px;border-radius:50%;background:var(--c)}

/* Start page: real shortcuts, one tap each */
.hh-tool-stock-ownership .so-chips{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.hh-tool-stock-ownership .so-chips li{animation:so-rise .32s ease both}
.hh-tool-stock-ownership .so-chips li:nth-child(2){animation-delay:.03s}
.hh-tool-stock-ownership .so-chips li:nth-child(3){animation-delay:.06s}
.hh-tool-stock-ownership .so-chips li:nth-child(4){animation-delay:.09s}
.hh-tool-stock-ownership .so-chips li:nth-child(5){animation-delay:.12s}
.hh-tool-stock-ownership .so-chips li:nth-child(6){animation-delay:.15s}
.hh-tool-stock-ownership .so-chips li:nth-child(7){animation-delay:.18s}
.hh-tool-stock-ownership .so-chips li:nth-child(8){animation-delay:.21s}
.hh-tool-stock-ownership .so-chip{display:inline-flex;align-items:baseline;gap:8px;min-height:36px;padding:8px 12px;border-radius:10px;
  border:1px solid var(--border);background:var(--bg);transition:border-color .15s,background .15s}
.hh-tool-stock-ownership .so-chip-k{font:700 13px var(--mono);letter-spacing:.02em;color:var(--gold-ink)}
.hh-tool-stock-ownership .so-chip-name{font-size:13px;font-weight:600;color:var(--text);max-width:34ch;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hh-tool-stock-ownership .so-chip-v{font-size:12px;color:var(--text-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:22ch}
.hh-tool-stock-ownership .so-entry-col{min-width:0}
@keyframes so-rise{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}

.hh-tool-stock-ownership .so-result.so-loading{opacity:.45;transition:opacity .15s}
.hh-tool-stock-ownership .so-state{padding:28px 2px;text-align:center;border-top:1px solid var(--border)}
.hh-tool-stock-ownership .so-state-title{font-size:14px;font-weight:600;color:var(--text-dim)}
.hh-tool-stock-ownership .so-state-body{font-size:13px;color:var(--text-faint);margin-top:4px}
.hh-tool-stock-ownership .so-state-body a{color:var(--gold-ink);text-decoration:underline}

/* ── Identity bar ─────────────────────────────────────────────────────── */
.hh-tool-stock-ownership .so-selected{container-type:inline-size}
.hh-tool-stock-ownership .so-idbar{padding:0 0 14px;margin-bottom:18px;border-bottom:1px solid var(--border)}
.hh-tool-stock-ownership .so-id{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap}
.hh-tool-stock-ownership .so-ticker{font-family:var(--mono);font-size:22px;font-weight:700;letter-spacing:.01em;line-height:1.2}
.hh-tool-stock-ownership .so-issuer{font-size:14px;color:var(--text-dim)}
.hh-tool-stock-ownership .so-meta{font-size:12px;color:var(--text-dim);margin-top:4px}
.hh-tool-stock-ownership .so-meta-dim{color:var(--text-faint)}
.hh-tool-stock-ownership .so-stats{display:flex;flex-wrap:wrap;gap:12px 32px;margin-top:14px;align-items:flex-start}
.hh-tool-stock-ownership .so-metrics{display:flex;flex-wrap:wrap;gap:8px 24px}
.hh-tool-stock-ownership .so-metric{display:flex;flex-direction:column;min-width:0}
.hh-tool-stock-ownership .so-metric dt,.hh-tool-stock-ownership .so-conc-item dt{font-size:11.5px;color:var(--text-dim);letter-spacing:.01em}
.hh-tool-stock-ownership .so-metric dd,.hh-tool-stock-ownership .so-conc-item dd{font-size:17px;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.hh-tool-stock-ownership .so-metric dd.so-metric-hint{font-size:11px;font-weight:400;color:var(--text-faint);letter-spacing:0}
.hh-tool-stock-ownership .so-conc{padding-left:24px;border-left:1px solid var(--border)}
.hh-tool-stock-ownership .so-stat-cap{font-size:11px;font-weight:600;color:var(--text-faint);text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px}
.hh-tool-stock-ownership .so-conc-list{display:flex;flex-wrap:wrap;gap:8px 20px}
.hh-tool-stock-ownership .so-conc-item{display:flex;flex-direction:column}
.hh-tool-stock-ownership .so-conc-note{font-size:11.5px;color:var(--text-faint);margin-top:4px;max-width:52ch}
.hh-tool-stock-ownership .so-basis{font-size:11.5px;color:var(--text-faint);margin-top:12px}

/* ── Page layout: full-width content + a floating detail card ─────────── */
/* The card floats over the right edge of the window while something is
   selected, so the map and table always keep the full width. Below 600px
   the bottom sheet takes over. */
.hh-tool-stock-ownership .so-inspector{display:none}
@container (min-width: 600px){
  .hh-tool-stock-ownership .so-inspector{display:block;position:fixed;z-index:30;right:20px;top:calc(var(--so-top,97px) + 16px);
    width:340px;max-height:calc(100vh - var(--so-top,97px) - 110px);overflow-y:auto;padding:14px 16px 16px;font-size:13px;
    background:var(--bg);border:1px solid var(--border);border-radius:14px;
    transition:opacity .2s ease,transform .2s ease,visibility .2s}
  .hh-tool-stock-ownership .so-inspector:not(.is-open){opacity:0;visibility:hidden;transform:translateX(16px);pointer-events:none}
}
.hh-tool-stock-ownership .so-sec-title{font-size:13px;font-weight:600;letter-spacing:.01em;margin:0 0 8px}

/* ── Ownership Map ────────────────────────────────────────────────────── */
.hh-tool-stock-ownership .so-map{margin:0 0 28px}
.hh-tool-stock-ownership .so-map-head{margin-bottom:10px}
.hh-tool-stock-ownership .so-map-desc{font-size:12px;color:var(--text-dim);max-width:72ch}
.hh-tool-stock-ownership .so-map-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-bottom:8px}
/* Segmented control: one track, the active segment is a raised pill. */
.hh-tool-stock-ownership .so-seg{display:inline-flex;padding:2px;border-radius:9px;background:var(--surface-2);border:1px solid var(--border-soft)}
.hh-tool-stock-ownership .so-seg-btn{font:inherit;font-size:12.5px;font-weight:500;min-height:30px;padding:0 12px;border:0;border-radius:7px;
  background:none;color:var(--text-dim);cursor:pointer;transition:background-color .15s,color .15s}
.hh-tool-stock-ownership .so-seg-btn:hover{color:var(--text)}
.hh-tool-stock-ownership .so-seg-btn[aria-pressed="true"]{background:var(--bg);color:var(--text);box-shadow:0 0 0 1px var(--border)}
.hh-tool-stock-ownership .so-map-ctrl{display:inline-flex;border:1px solid var(--border);border-radius:9px;overflow:hidden}
.hh-tool-stock-ownership .so-ctl{font:inherit;font-size:15px;line-height:1;min-width:34px;min-height:32px;padding:0 10px;border:0;
  border-left:1px solid var(--border);background:var(--bg);color:var(--text);cursor:pointer;transition:background-color .15s}
.hh-tool-stock-ownership .so-ctl:first-child{border-left:0}
.hh-tool-stock-ownership .so-ctl-text{font-size:12px;font-weight:500}
.hh-tool-stock-ownership .so-ctl:hover{background:var(--surface-2)}

.hh-tool-stock-ownership .so-map-canvas{position:relative;border:1px solid var(--border);border-radius:12px;overflow:hidden;
  background-color:var(--surface-2);
  background-image:radial-gradient(circle,var(--so-grid) 1px,transparent 1.3px);background-size:20px 20px;background-position:10px 10px}
.hh-tool-stock-ownership .so-map-svg{display:block;width:100%;height:420px;touch-action:pan-y;cursor:grab;outline:none;
  -webkit-user-select:none;user-select:none}
.hh-tool-stock-ownership .so-map-svg:active,.hh-tool-stock-ownership .so-map-svg.is-dragging{cursor:grabbing}
.hh-tool-stock-ownership .so-map-svg:focus-visible{box-shadow:inset 0 0 0 2px var(--gold)}
.hh-tool-stock-ownership .so-map-empty{position:absolute;left:12px;right:12px;bottom:10px;font-size:12.5px;color:var(--text-dim);
  text-align:center;pointer-events:none}
.hh-tool-stock-ownership .so-map-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-top:8px}
.hh-tool-stock-ownership .so-map-count{font-size:12px;color:var(--text-faint);font-variant-numeric:tabular-nums}
.hh-tool-stock-ownership .so-map-note{font-size:12px;color:var(--text-dim);margin-top:6px}

/* Legend: one chip per colour family present (click to spotlight it), then
   the shape keys. Colour is never the only carrier: every chip is named. */
.hh-tool-stock-ownership .so-legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px;margin-top:10px}
.hh-tool-stock-ownership .so-leg{display:inline-flex;align-items:center;gap:6px;font:inherit;font-size:12px;color:var(--text-dim);
  min-height:28px;padding:0 10px 0 8px;border-radius:999px;border:1px solid var(--border);background:var(--bg);cursor:pointer;
  transition:background .16s,border-color .16s,color .16s}
.hh-tool-stock-ownership .so-leg:hover{color:var(--text);border-color:var(--c)}
.hh-tool-stock-ownership .so-leg[aria-pressed="true"]{color:var(--text);border-color:var(--c);
  background:color-mix(in srgb,var(--c) 12%,var(--bg))}
.hh-tool-stock-ownership .so-leg-dot{width:9px;height:9px;border-radius:50%;background:var(--c);flex:none}
.hh-tool-stock-ownership .so-leg-n{font-variant-numeric:tabular-nums;color:var(--text-faint)}
.hh-tool-stock-ownership .so-leg-keys{display:inline-flex;flex-wrap:wrap;gap:4px 12px;margin-left:6px;font-size:11.5px;color:var(--text-faint)}
.hh-tool-stock-ownership .so-leg-key{display:inline-flex;align-items:center;gap:5px}
.hh-tool-stock-ownership .so-leg-pill{width:18px;height:10px;border-radius:5px;background:var(--gold-soft);box-shadow:inset 3px 0 0 0 var(--gold)}
.hh-tool-stock-ownership .so-leg-size{width:14px;height:10px;background:radial-gradient(circle at 3px 6px,var(--text-faint) 2.5px,transparent 3px),
  radial-gradient(circle at 10px 5px,var(--text-faint) 4.5px,transparent 5px)}

/* ── Network marks ─────────────────────────────────────────────────────
   Every effect says something: size and aura = weight, brightness = focus,
   motion = direction (holder -> stock). Idle is quiet; the spotlight traces a
   relationship. Flat and borderless; --c is the family colour, --k the zoom.
   States: idle · hover (grows, lights its network) · selected (ring + halo) ·
   connected (visible, quieter) · unrelated (fades). */
.hh-tool-stock-ownership .so-world{--k:1}
.hh-tool-stock-ownership .so-st-a{stop-color:var(--c,var(--text-faint))}
.hh-tool-stock-ownership .so-st-b{stop-color:var(--gold)}
.hh-tool-stock-ownership .so-edge,.hh-tool-stock-ownership .so-node,.hh-tool-stock-ownership .so-nlbl{transition:opacity .18s ease-out}

/* Lines: hairlines at rest; width = the published % (edgeWidth, unchanged). */
.hh-tool-stock-ownership .so-edge-line{fill:none;stroke-opacity:.34;stroke-linecap:round;stroke-dasharray:100;
  animation:so-draw .46s cubic-bezier(.3,.7,.3,1) both;transition:stroke-opacity .18s ease-out}
.hh-tool-stock-ownership .so-edge.is-inward .so-edge-line{animation-name:so-draw-in}   /* draws out of the selected stock */
.hh-tool-stock-ownership .so-edge-cross .so-edge-line{stroke-opacity:.14;animation-duration:.42s}
.hh-tool-stock-ownership .so-edge-cross.so-rel-strong .so-edge-line{stroke-opacity:.26}
.hh-tool-stock-ownership .so-edge.is-hl .so-edge-line{stroke-opacity:.95}
/* Direction: a comet runs holder -> stock. At rest only on holdings, faint and
   slow (the network breathing); on a lit relationship it brightens and speeds up. */
.hh-tool-stock-ownership .so-edge-flow{fill:none;stroke-linecap:round;stroke-dasharray:9 91;opacity:0;animation:none;
  pointer-events:none;transition:opacity .18s ease-out}
.hh-tool-stock-ownership .is-live .so-edge-flow{animation:so-flow 4.2s linear infinite}
.hh-tool-stock-ownership .is-live .so-edge-direct .so-edge-flow{opacity:.4}
.hh-tool-stock-ownership .is-live .so-edge.is-hl .so-edge-flow{opacity:1;animation-duration:1.5s}
.hh-tool-stock-ownership .is-compact.is-live .so-edge-direct:not(.is-hl) .so-edge-flow{opacity:0}   /* phones: only the active path moves */
.hh-tool-stock-ownership .so-edge-hit{fill:none;stroke:transparent;stroke-width:12;pointer-events:stroke}
.hh-tool-stock-ownership .so-edge-lbl{font:600 calc(10.5px / var(--k)) var(--sans);fill:var(--text-dim);font-variant-numeric:tabular-nums;
  paint-order:stroke;stroke:var(--surface-2);stroke-width:calc(4px / var(--k));stroke-linejoin:round;opacity:0;pointer-events:none;
  transition:opacity .18s ease-out}
.hh-tool-stock-ownership .has-focus .so-edge.is-hl .so-edge-lbl.is-ok{opacity:1}
.hh-tool-stock-ownership .has-focus .so-edge.is-hl.no-lbl .so-edge-lbl{opacity:0}
.hh-tool-stock-ownership .so-map-svg.many-lit.has-focus .so-edge.is-hl .so-edge-lbl{opacity:0}
/* A click: one pulse, all at once, down every relationship it lights. */
.hh-tool-stock-ownership .so-spark{fill:none;stroke-width:3.5;stroke-linecap:round;stroke-dasharray:14 200;stroke-dashoffset:14;
  pointer-events:none;animation:so-spark .7s cubic-bezier(.4,0,.2,1) both}

/* Nodes */
.hh-tool-stock-ownership .so-node{cursor:pointer}
.hh-tool-stock-ownership .so-shape,.hh-tool-stock-ownership .so-aura{transform-box:fill-box;transform-origin:center;
  transition:transform .16s ease-out,fill .18s ease-out,fill-opacity .18s ease-out,stroke-opacity .2s ease-out}
.hh-tool-stock-ownership .so-aura{fill:var(--c,var(--gold));fill-opacity:.12;stroke:var(--c,var(--gold));stroke-width:1.2;stroke-opacity:0;pointer-events:none}
.hh-tool-stock-ownership .so-node.is-hl .so-aura{transform:scale(1.2);fill-opacity:.16}
.hh-tool-stock-ownership .so-node:hover .so-shape,.hh-tool-stock-ownership .so-node.is-hover .so-shape{transform:scale(1.1)}
.hh-tool-stock-ownership .so-node:hover .so-aura,.hh-tool-stock-ownership .so-node.is-hover .so-aura{transform:scale(1.5);fill-opacity:.22}
/* Selected: the node grows, its halo widens and gains a thin ring (a shape cue, not colour alone). */
.hh-tool-stock-ownership .so-node.is-sel .so-shape{transform:scale(1.12);transition-duration:.22s}
.hh-tool-stock-ownership .so-node.is-sel .so-aura{transform:scale(1.75);fill-opacity:.2;stroke-opacity:.6;transition-duration:.22s}
.hh-tool-stock-ownership .so-node-reported_holder .so-shape{fill:var(--c);stroke:var(--surface-2);stroke-width:1.5}
.hh-tool-stock-ownership .is-dim{opacity:.1}
.hh-tool-stock-ownership .so-node.is-focus .so-shape{stroke:var(--text);stroke-width:2;stroke-dasharray:3 2}

/* Selected stock: the anchor. Solid blue pill with its logo, a restrained glow,
   and a slow breath once the network has landed. */
.hh-tool-stock-ownership .so-node-selected_stock .so-shape{fill:var(--gold)}
.hh-tool-stock-ownership .so-node-selected_stock .so-aura{--c:var(--gold);fill-opacity:.1}
.hh-tool-stock-ownership .so-node-selected_stock.so-node .so-aura{transform:none;stroke-opacity:0}
.hh-tool-stock-ownership .so-node-selected_stock.so-node:hover .so-shape,.hh-tool-stock-ownership .so-node-selected_stock.is-sel .so-shape{transform:scale(1.04)}
.hh-tool-stock-ownership .so-t-sel{fill:#fff;font:700 15px var(--mono);letter-spacing:.04em;pointer-events:none}
.hh-tool-stock-ownership .so-t-cap{fill:var(--text-faint);font:500 calc(10.5px / var(--k)) var(--sans);pointer-events:none;
  paint-order:stroke;stroke:var(--surface-2);stroke-width:calc(3px / var(--k))}
.hh-tool-stock-ownership .so-halo{fill:var(--gold);fill-opacity:.1;stroke:none;opacity:0;transform-box:fill-box;transform-origin:center;
  animation:none;pointer-events:none}
.hh-tool-stock-ownership .is-live .so-halo{animation:so-pulse 4.2s cubic-bezier(.3,.7,.3,1) infinite}
.hh-tool-stock-ownership .is-live .so-halo-2{animation-delay:2.1s}

/* Logos */
.hh-tool-stock-ownership .so-logo-disc{fill:#fff}
.hh-tool-stock-ownership .so-logo-dot{fill:var(--gold);transform:scale(.45);transform-box:fill-box;transform-origin:center}
.hh-tool-stock-ownership .so-node-selected_stock .so-logo-dot{fill:#fff}
.hh-tool-stock-ownership .so-logo-img{pointer-events:none}
.hh-tool-stock-ownership .so-badge{pointer-events:none}
.hh-tool-stock-ownership .so-badge .so-logo-disc{stroke:var(--surface-2);stroke-width:2}

/* Related stocks: strong relationships read louder, weak ones stay quiet until lit. */
.hh-tool-stock-ownership .so-node-other_stock .so-shape{fill:var(--gold-soft)}
.hh-tool-stock-ownership .so-node-other_stock .so-logo-disc{fill:var(--bg)}
.hh-tool-stock-ownership .so-t-oth{fill:var(--gold-ink);font:700 11px var(--mono);letter-spacing:.03em;pointer-events:none;transition:fill .18s ease-out}
.hh-tool-stock-ownership .so-rel-strong .so-shape{fill:color-mix(in srgb,var(--gold) 18%,var(--surface))}
.hh-tool-stock-ownership .so-rel-weak .so-shape{fill-opacity:.7}
.hh-tool-stock-ownership .so-rel-weak .so-t-oth{fill:var(--text-dim);font-weight:600}
.hh-tool-stock-ownership .so-rel-weak .so-logo-img,.hh-tool-stock-ownership .so-rel-weak .so-logo-disc{opacity:.75}
.hh-tool-stock-ownership .so-node-other_stock.is-hl .so-shape{fill:color-mix(in srgb,var(--gold) 26%,var(--surface));fill-opacity:1}
.hh-tool-stock-ownership .so-node-other_stock.is-hl .so-t-oth{fill:var(--gold-ink);font-weight:700}
.hh-tool-stock-ownership .so-node-other_stock.is-hl .so-logo-img,.hh-tool-stock-ownership .so-node-other_stock.is-hl .so-logo-disc{opacity:1}
.hh-tool-stock-ownership .so-node-other_stock.is-sel .so-shape{fill:var(--gold);fill-opacity:1}
.hh-tool-stock-ownership .so-node-other_stock.is-sel .so-t-oth{fill:#fff}

/* Labels: ticker first, then the name, then the %. Quiet until their node is in focus. */
.hh-tool-stock-ownership .so-t-hold{fill:var(--text-dim);font:500 calc(11.5px / var(--k)) var(--sans);pointer-events:none;
  paint-order:stroke;stroke:var(--surface-2);stroke-width:calc(3.5px / var(--k));stroke-linejoin:round;transition:fill .18s ease-out}
.hh-tool-stock-ownership .so-t-sub{fill:var(--text-faint);font:500 calc(10.5px / var(--k)) var(--sans);font-variant-numeric:tabular-nums;
  pointer-events:none;paint-order:stroke;stroke:var(--surface-2);stroke-width:calc(3.5px / var(--k));stroke-linejoin:round}
.hh-tool-stock-ownership .so-nlbl.is-hl .so-t-hold,.hh-tool-stock-ownership .so-nlbl.is-hover .so-t-hold{fill:var(--text)}
.hh-tool-stock-ownership .so-nlbl.is-sel .so-t-hold{fill:var(--text);font-weight:700}
.hh-tool-stock-ownership .so-nlbl{cursor:pointer}
.hh-tool-stock-ownership .so-nlbl.is-dim{opacity:0}
.hh-tool-stock-ownership .so-nlbl text{pointer-events:auto}   /* a printed name selects its holder */
.hh-tool-stock-ownership .so-nlbl-off{display:none}
.hh-tool-stock-ownership .is-moving .so-nlbl,.hh-tool-stock-ownership .is-dragging .so-nlbl{opacity:0}

@keyframes so-draw{from{stroke-dashoffset:100}to{stroke-dashoffset:0}}
@keyframes so-draw-in{from{stroke-dashoffset:-100}to{stroke-dashoffset:0}}
@keyframes so-flow{from{stroke-dashoffset:100}to{stroke-dashoffset:0}}
@keyframes so-spark{from{stroke-dashoffset:14;opacity:1}to{stroke-dashoffset:-100;opacity:.35}}
@keyframes so-pulse{0%{opacity:.8;transform:scale(1)}100%{opacity:0;transform:scale(1.9)}}

.hh-tool-stock-ownership .so-tip{position:absolute;z-index:5;max-width:260px;padding:8px 10px;border-radius:10px;pointer-events:none;
  background:var(--bg);border:1px solid var(--border);font-size:12px;line-height:1.45;animation:so-fade .12s ease}
.hh-tool-stock-ownership .so-tip-title{font-weight:600;color:var(--text);overflow-wrap:anywhere}
.hh-tool-stock-ownership .so-tip.has-dot .so-tip-title::before{content:'';display:inline-block;width:8px;height:8px;margin-right:6px;
  border-radius:50%;background:var(--c);vertical-align:1px}
.hh-tool-stock-ownership .so-tip-line{color:var(--text-dim)}

/* ── Shared-holder summary ────────────────────────────────────────────── */
.hh-tool-stock-ownership .so-sh{margin:0 0 28px}
.hh-tool-stock-ownership .so-sh-desc{font-size:12px;color:var(--text-dim);margin:0 0 6px;max-width:72ch}
.hh-tool-stock-ownership .so-sh-list{list-style:none;border-top:1px solid var(--border)}
.hh-tool-stock-ownership .so-sh-list li{border-bottom:1px solid var(--border-soft)}
.hh-tool-stock-ownership .so-sh-btn{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:baseline;gap:2px 16px;width:100%;
  min-height:44px;padding:9px 4px;background:none;border:none;font:inherit;color:inherit;text-align:left;cursor:pointer;transition:background-color .15s}
.hh-tool-stock-ownership .so-sh-btn:hover{background:var(--surface-2)}
.hh-tool-stock-ownership .so-sh-name{font-size:13.5px;font-weight:500;overflow-wrap:anywhere}
.hh-tool-stock-ownership .so-sh-meta{font-size:12px;color:var(--text-dim);font-variant-numeric:tabular-nums;white-space:nowrap}
.hh-tool-stock-ownership .so-sh-flag,.hh-tool-stock-ownership .so-h-role{grid-column:1/-1;justify-self:start;font-size:11px;color:var(--text-dim);
  border:1px solid var(--border);border-radius:4px;padding:0 6px;margin-top:3px;display:inline-block}
.hh-tool-stock-ownership .so-sh-empty{font-size:12.5px;color:var(--text-faint)}

/* ── Holder table ─────────────────────────────────────────────────────── */
.hh-tool-stock-ownership .so-table{width:100%;border-collapse:collapse;font-size:13.5px;border-top:1px solid var(--border)}
.hh-tool-stock-ownership .so-table thead th{font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text-faint);
  text-align:left;padding:9px 12px 9px 4px;border-bottom:1px solid var(--border);background:var(--bg)}
.hh-tool-stock-ownership .so-table td,.hh-tool-stock-ownership .so-table tbody th{padding:0 12px 0 4px;border-bottom:1px solid var(--border-soft);
  vertical-align:middle;text-align:left;font-weight:400}
.hh-tool-stock-ownership .so-table tbody tr{transition:background-color .15s}
.hh-tool-stock-ownership .so-table tbody tr:hover{background:var(--surface-2)}
.hh-tool-stock-ownership .so-table tbody tr.so-row-sel{background:var(--up-soft)}
.hh-tool-stock-ownership .so-table tbody tr.so-row-sel .so-c-name{box-shadow:inset 2px 0 0 var(--up)}
.hh-tool-stock-ownership .so-c-cls,.hh-tool-stock-ownership .so-c-lf{color:var(--text-dim);white-space:nowrap;font-size:13px}
.hh-tool-stock-ownership .so-table .so-c-pct{text-align:right;white-space:nowrap;padding-right:4px;width:120px}
.hh-tool-stock-ownership .so-pct{display:block;font-size:14.5px;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
/* Hairline magnitude bar: width = the published percentage, set by the server. */
.hh-tool-stock-ownership .so-bar{display:block;height:2px;margin:3px 0 0 auto;width:100%;background:var(--border);border-radius:1px;position:relative}
.hh-tool-stock-ownership .so-bar::after{content:"";position:absolute;right:0;top:0;bottom:0;width:var(--w);max-width:100%;background:var(--text-dim);border-radius:1px}
.hh-tool-stock-ownership .so-row-sel .so-bar::after{background:var(--up)}
.hh-tool-stock-ownership .so-h-btn{display:flex;flex-direction:column;align-items:flex-start;gap:1px;width:100%;min-height:48px;
  padding:9px 0;background:none;border:none;font:inherit;color:inherit;text-align:left;cursor:pointer}
.hh-tool-stock-ownership .so-h-name{font-size:14px;font-weight:500;color:var(--text);overflow-wrap:anywhere}
.hh-tool-stock-ownership .so-h-btn:hover .so-h-name{text-decoration:underline;text-decoration-color:var(--text-faint);text-underline-offset:3px}
.hh-tool-stock-ownership .so-h-other{font-size:11.5px;color:var(--text-faint)}
.hh-tool-stock-ownership .so-foot{font-size:12px;color:var(--text-faint);margin-top:10px}
@media(min-width:1080px){
  .hh-tool-stock-ownership .so-table thead th{position:sticky;top:var(--so-top,97px);z-index:2}
}

/* ── Inspector + sheet content (one builder, two surfaces) ────────────── */
.hh-tool-stock-ownership .so-insp-head{display:flex;align-items:flex-start;gap:10px;margin-bottom:10px}
.hh-tool-stock-ownership .so-insp-title{flex:1;font-size:15px;font-weight:600;line-height:1.35;margin-top:4px;overflow-wrap:anywhere;outline:none}
.hh-tool-stock-ownership .so-insp-close{flex:none;width:32px;height:32px;display:grid;place-items:center;margin:-2px -6px 0 0;
  border:0;border-radius:8px;background:none;color:var(--text-dim);cursor:pointer}
.hh-tool-stock-ownership .so-insp-close:hover{background:var(--surface-2);color:var(--text)}
.hh-tool-stock-ownership .so-insp-close svg{width:16px;height:16px}
.hh-tool-stock-ownership .so-insp-hero{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 10px;padding-bottom:10px;border-bottom:1px solid var(--border)}
.hh-tool-stock-ownership .so-insp-k{flex-basis:100%;font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text-faint)}
.hh-tool-stock-ownership .so-insp-pct{font-size:26px;font-weight:700;letter-spacing:-.02em;font-variant-numeric:tabular-nums;line-height:1.15}
.hh-tool-stock-ownership .so-role{font-size:11.5px;color:var(--text-dim);border:1px solid var(--border);border-radius:4px;padding:1px 7px}
.hh-tool-stock-ownership .so-role-intermediary,.hh-tool-stock-ownership .so-role-direct_reported_holder{color:var(--text);border-color:var(--text-faint)}
.hh-tool-stock-ownership .so-role-note{font-size:12px;color:var(--text-dim);margin:8px 0 4px;line-height:1.5}
.hh-tool-stock-ownership .so-d-row{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;padding:7px 0;border-bottom:1px solid var(--border-soft)}
.hh-tool-stock-ownership .so-d-row dt{font-size:12px;color:var(--text-dim)}
.hh-tool-stock-ownership .so-d-row dd{font-size:13px;text-align:right;overflow-wrap:anywhere;font-variant-numeric:tabular-nums}
.hh-tool-stock-ownership .so-code{color:var(--text-faint);font-family:var(--mono);font-size:12px}
.hh-tool-stock-ownership .so-d-sub{font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text-faint);margin:18px 0 6px}
.hh-tool-stock-ownership .so-others{list-style:none;border-top:1px solid var(--border-soft)}
.hh-tool-stock-ownership .so-others a{display:grid;grid-template-columns:48px minmax(0,1fr) auto;gap:10px;align-items:center;
  min-height:44px;padding:7px 2px;border-bottom:1px solid var(--border-soft);transition:background-color .15s}
.hh-tool-stock-ownership .so-others a:hover{background:var(--surface-2)}
.hh-tool-stock-ownership .so-others-name{font-size:12.5px;color:var(--text-dim);overflow-wrap:anywhere}
.hh-tool-stock-ownership .so-others-pct{font-size:13px;font-weight:600;font-variant-numeric:tabular-nums}
.hh-tool-stock-ownership .so-d-empty{font-size:12.5px;color:var(--text-dim);line-height:1.5}
/* The caveat is set apart from the evidence, never mixed into it. */
.hh-tool-stock-ownership .so-d-note{font-size:11.5px;color:var(--text-dim);line-height:1.5;margin-top:14px;padding:9px 11px;
  border-left:2px solid var(--border);background:var(--surface-2)}
.hh-tool-stock-ownership .so-d-src{font-size:11px;color:var(--text-faint);margin-top:10px}
.hh-tool-stock-ownership .so-d-lead{font-size:13px;color:var(--text-dim);margin-bottom:2px}
.hh-tool-stock-ownership .so-why-lead{font-size:13px;line-height:1.5;margin:0 0 8px}
/* Evidence table: one shared holder per row, both percentages aligned. */
.hh-tool-stock-ownership .so-ev{width:100%;border-collapse:collapse;font-size:12.5px}
.hh-tool-stock-ownership .so-ev thead th{font-size:10.5px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;color:var(--text-faint);
  text-align:left;padding:0 0 6px;border-bottom:1px solid var(--border)}
.hh-tool-stock-ownership .so-ev tbody th{font-weight:500;text-align:left;padding:8px 8px 8px 0;border-bottom:1px solid var(--border-soft);overflow-wrap:anywhere}
.hh-tool-stock-ownership .so-ev td{padding:8px 0 8px 8px;border-bottom:1px solid var(--border-soft)}
.hh-tool-stock-ownership .so-ev .so-ev-n{text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;width:1%}
.hh-tool-stock-ownership .so-ev td.so-ev-n{font-weight:600}
.hh-tool-stock-ownership .so-view-btn{display:inline-flex;align-items:center;min-height:36px;margin-top:14px;padding:0 14px;
  border-radius:8px;background:var(--text);color:var(--bg) !important;font-size:13px;font-weight:600;transition:opacity .15s}
.hh-tool-stock-ownership .so-view-btn:hover{opacity:.85}

/* ── Bottom sheet (phones) / fallback panel ───────────────────────────── */
.hh-tool-stock-ownership .so-sheet{position:fixed;inset:0;z-index:1000}
.hh-tool-stock-ownership .so-sheet-backdrop{position:absolute;inset:0;background:rgba(0,0,0,.28);animation:so-fade .18s ease}
.hh-tool-stock-ownership .so-sheet-panel{position:absolute;top:0;right:0;bottom:0;width:min(400px,100%);
  background:var(--bg);border-left:1px solid var(--border);display:flex;flex-direction:column;outline:none;
  animation:so-slide-x .2s ease}
.hh-tool-stock-ownership .so-sheet-head{display:flex;align-items:flex-start;gap:12px;padding:18px 18px 10px}
.hh-tool-stock-ownership .so-sheet-title{flex:1;font-size:15px;font-weight:600;line-height:1.35;overflow-wrap:anywhere}
.hh-tool-stock-ownership .so-sheet-close{flex:none;width:40px;height:40px;display:grid;place-items:center;margin:-8px -8px 0 0;
  background:none;border:none;border-radius:8px;color:var(--text-dim);cursor:pointer}
.hh-tool-stock-ownership .so-sheet-close:hover{background:var(--surface-2)}
.hh-tool-stock-ownership .so-sheet-close svg{width:18px;height:18px}
.hh-tool-stock-ownership .so-sheet-body{padding:0 18px 24px;overflow-y:auto;-webkit-overflow-scrolling:touch}
html.so-sheet-open{overflow:hidden}
@keyframes so-fade{from{opacity:0}to{opacity:1}}
@keyframes so-slide-x{from{transform:translateX(16px);opacity:.6}to{transform:none;opacity:1}}
@keyframes so-slide-y{from{transform:translateY(24px);opacity:.6}to{transform:none;opacity:1}}

/* ── Flat, simple surfaces ─────────────────────────────────────────────
   No shadows, blur or gradients: sections are plain surfaces with a hairline
   border, figures sit on light tiles. Colour is HakaHaki's blue, green, red. */
.hh-tool-stock-ownership{--so-r-lg:16px;--so-r-md:12px;--so-ease:cubic-bezier(.2,.8,.2,1)}
.hh-tool-stock-ownership .so-g-stock{--c:var(--gold)}
.hh-tool-stock-ownership .page-head h1{font-size:28px;font-weight:800;letter-spacing:-.025em}

/* Sections */
.hh-tool-stock-ownership .so-idbar,.hh-tool-stock-ownership .so-map,.hh-tool-stock-ownership .so-sh,
.hh-tool-stock-ownership .so-entry-col{background:var(--surface);border:1px solid var(--border);border-radius:var(--so-r-lg)}
.hh-tool-stock-ownership .so-idbar{padding:20px 22px;margin-bottom:16px;display:grid;gap:14px;animation:so-fade .25s ease both}
.hh-tool-stock-ownership .so-map{padding:18px 18px 14px;margin-bottom:16px}
.hh-tool-stock-ownership .so-sh{padding:16px 18px 18px;margin-bottom:16px}
.hh-tool-stock-ownership .so-entry-col{padding:16px 16px 18px}
.hh-tool-stock-ownership .so-sec-title{font-size:15px;font-weight:700;letter-spacing:-.01em;margin:4px 2px 10px}

/* Identity: tiles */
.hh-tool-stock-ownership .so-id{align-items:center;gap:12px}
.hh-tool-stock-ownership .so-ticker{font-size:28px;font-weight:800;letter-spacing:-.01em}
.hh-tool-stock-ownership .so-hv-name{font-size:24px;letter-spacing:-.02em}
.hh-tool-stock-ownership .so-meta{margin-top:0}
.hh-tool-stock-ownership .so-stats{display:grid;grid-template-columns:minmax(0,1fr);gap:8px;margin-top:0;align-items:stretch}
.hh-tool-stock-ownership .so-metrics{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.hh-tool-stock-ownership .so-metric,.hh-tool-stock-ownership .so-conc{padding:12px 14px;border-radius:var(--so-r-md);background:var(--surface-2);border:0}
.hh-tool-stock-ownership .so-metric dd,.hh-tool-stock-ownership .so-conc-item dd{font-size:20px;font-weight:700;letter-spacing:-.02em;margin-top:2px}
.hh-tool-stock-ownership .so-conc{display:flex;flex-direction:column}
.hh-tool-stock-ownership .so-conc-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:auto}
.hh-tool-stock-ownership .so-conc-item{position:relative;padding-bottom:10px}
.hh-tool-stock-ownership .so-cbar{position:absolute;left:0;right:0;bottom:0;height:4px;border-radius:2px;background:var(--surface-3);overflow:hidden}
.hh-tool-stock-ownership .so-cbar::after{content:"";position:absolute;left:0;top:0;bottom:0;width:var(--w);max-width:100%;border-radius:2px;
  background:var(--gold);animation:so-grow .6s var(--so-ease) .1s both}
.hh-tool-stock-ownership .so-metrics > .so-metric:last-child:nth-child(odd){grid-column:1/-1}
@container (min-width:760px){
  .hh-tool-stock-ownership .so-stats{grid-template-columns:minmax(0,1.3fr) minmax(0,1fr)}
  .hh-tool-stock-ownership .so-holder-view .so-stats{grid-template-columns:minmax(0,1fr)}
  .hh-tool-stock-ownership .so-holder-view .so-metrics{grid-template-columns:none;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr)}
  .hh-tool-stock-ownership .so-holder-view .so-metrics > .so-metric:last-child:nth-child(odd){grid-column:auto}
}
.hh-tool-stock-ownership .so-holder-view .so-stats{grid-template-columns:minmax(0,1fr)}
.hh-tool-stock-ownership .so-avatar{--c:var(--text-faint);flex:none;width:44px;height:44px;border-radius:12px;display:grid;place-items:center;
  font:800 15px var(--sans);letter-spacing:.02em;color:#fff;background:var(--c)}
.hh-tool-stock-ownership .so-avatar.so-g-loc{--c:var(--up)}
.hh-tool-stock-ownership .so-avatar.so-g-for{--c:var(--down)}
.hh-tool-stock-ownership .so-avatar-stock{--c:var(--gold);width:auto;min-width:56px;height:36px;padding:0 10px;border-radius:10px;font:800 13px var(--mono)}

/* Section bar: HakaHaki's own underline tabs (as on /ticker), stuck under the
   header, with who you are looking at and one live fact on the left. */
.hh-tool-stock-ownership{--so-jump-h:49px}
.hh-tool-stock-ownership .so-jump{position:sticky;top:var(--so-top,97px);z-index:20;display:flex;align-items:center;gap:16px;
  margin:0 0 16px;padding:0 2px;background:var(--bg);border-bottom:1px solid var(--border-soft)}
.hh-tool-stock-ownership .so-jump-id{display:inline-flex;align-items:center;gap:8px;min-width:0}
.hh-tool-stock-ownership .so-jump-id strong{font-size:14px;font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:32ch}
.hh-tool-stock-ownership .so-jump-sub{font-size:12.5px;color:var(--text-faint);white-space:nowrap;font-variant-numeric:tabular-nums}
.hh-tool-stock-ownership .so-jump-sub .so-chg{font-weight:600}
.hh-tool-stock-ownership .so-avatar-xs{width:22px;height:22px;border-radius:6px;font-size:9px}
.hh-tool-stock-ownership .so-jump-links{display:flex;gap:24px;margin-left:auto;overflow-x:auto;scrollbar-width:none}
.hh-tool-stock-ownership .so-jump-links::-webkit-scrollbar{display:none}
.hh-tool-stock-ownership .so-jump a{padding:14px 0 13px;font-size:14px;font-weight:500;color:var(--text-faint);white-space:nowrap;
  border-bottom:2px solid transparent;margin-bottom:-1px;transition:color .15s,border-color .15s}
.hh-tool-stock-ownership .so-jump a:hover{color:var(--text)}
.hh-tool-stock-ownership .so-jump a.is-current{color:var(--text);font-weight:600;border-bottom-color:var(--gold)}
@media(min-width:1080px){
  .hh-tool-stock-ownership .so-table thead th{top:calc(var(--so-top,97px) + var(--so-jump-h))}
}

/* Ticker header: logo, name, company facts */
.hh-tool-stock-ownership .so-id{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.hh-tool-stock-ownership .so-id-t{display:flex;align-items:baseline;gap:2px 12px;flex-wrap:wrap;min-width:0;flex:1 1 220px}
.hh-tool-stock-ownership .so-id-link{margin-left:auto;font-size:13px;font-weight:600;color:var(--gold-ink);white-space:nowrap}
.hh-tool-stock-ownership .so-id-link:hover{text-decoration:underline}
.hh-tool-stock-ownership .so-logo{flex:none;width:48px;height:48px;border-radius:12px;object-fit:contain;background:#fff;
  border:1px solid var(--border);padding:4px}
.hh-tool-stock-ownership .so-logo-fb{display:grid;place-items:center;padding:0;background:var(--gold-soft);border-color:transparent;
  color:var(--gold-ink);font:800 12px var(--mono);letter-spacing:.02em}
.hh-tool-stock-ownership .so-logo-sm{flex:none;width:20px;height:20px;border-radius:6px;object-fit:contain;background:#fff;
  border:1px solid var(--border-soft);vertical-align:middle}
.hh-tool-stock-ownership span.so-logo-sm.so-logo-fb{display:inline-grid;place-items:center;font:800 10px var(--mono);border-radius:6px}
.hh-tool-stock-ownership .so-facts{display:flex;flex-wrap:wrap;gap:8px}
.hh-tool-stock-ownership .so-fact{display:flex;flex-direction:column;gap:2px;padding:8px 12px;border-radius:10px;border:1px solid var(--border)}
.hh-tool-stock-ownership .so-fact-k{font-size:10.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-faint)}
.hh-tool-stock-ownership .so-fact-v{font-size:13.5px;font-weight:600;font-variant-numeric:tabular-nums}
.hh-tool-stock-ownership .so-chg{font-size:12px;font-weight:700;margin-left:4px}
.hh-tool-stock-ownership .so-up{color:var(--up)}
.hh-tool-stock-ownership .so-down{color:var(--down)}
.hh-tool-stock-ownership .so-flat{color:var(--text-faint)}
.hh-tool-stock-ownership .so-about{font-size:13px;color:var(--text-dim)}
.hh-tool-stock-ownership .so-about summary{display:inline-flex;align-items:center;gap:6px;cursor:pointer;font-weight:600;color:var(--gold-ink);
  list-style:none;min-height:32px}
.hh-tool-stock-ownership .so-about summary::-webkit-details-marker{display:none}
.hh-tool-stock-ownership .so-about summary::after{content:"";width:7px;height:7px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;
  transform:rotate(45deg) translateY(-2px);transition:transform .15s}
.hh-tool-stock-ownership .so-about[open] summary::after{transform:rotate(225deg) translateY(-1px)}
.hh-tool-stock-ownership .so-about p{margin-top:4px;line-height:1.6;max-width:78ch}
.hh-tool-stock-ownership .so-hv-link{grid-template-columns:20px 52px minmax(0,1fr);align-items:center}
.hh-tool-stock-ownership .so-oth-id{display:inline-flex;align-items:center;gap:6px}
.hh-tool-stock-ownership .so-others a{grid-template-columns:auto minmax(0,1fr) auto}
.hh-tool-stock-ownership .so-d-row dd .so-logo-sm{margin-right:6px}

/* Map */
.hh-tool-stock-ownership .so-map-canvas{border-radius:var(--so-r-md);border:0;background-color:var(--surface-2);
  background-image:radial-gradient(ellipse 55% 50% at 50% 50%,color-mix(in srgb,var(--gold) 6%,transparent),transparent 72%),
    radial-gradient(ellipse 80% 80% at 50% 50%,transparent 60%,color-mix(in srgb,var(--text) 3%,transparent)),
    radial-gradient(circle,var(--so-grid) .7px,transparent 1px);
  background-size:100% 100%,100% 100%,16px 16px;background-position:0 0,0 0,8px 8px}
.hh-tool-stock-ownership .so-seg{border-radius:999px;padding:3px;background:var(--surface-2);border:0}
.hh-tool-stock-ownership .so-seg-btn{border-radius:999px;transition:background .15s,color .15s}
.hh-tool-stock-ownership .so-seg-btn[aria-pressed="true"]{background:var(--bg);box-shadow:inset 0 0 0 1px var(--border)}
.hh-tool-stock-ownership .so-map-ctrl{border-radius:999px;border:1px solid var(--border);background:var(--surface)}
.hh-tool-stock-ownership .so-ctl{background:none}
.hh-tool-stock-ownership .so-ctl:hover{background:var(--surface-2)}
.hh-tool-stock-ownership .so-leg{border-radius:999px;background:var(--surface);border-color:var(--border)}
.hh-tool-stock-ownership .so-tip{background:var(--surface);border:1px solid var(--border);border-radius:var(--so-r-md);box-shadow:none}
.hh-tool-stock-ownership .so-map-svg.is-many .so-edge-cross:not(.is-hl) .so-edge-flow{animation:none;opacity:0}

/* Shared holders */
.hh-tool-stock-ownership .so-sh-list{border-top:0;display:grid;gap:2px}
.hh-tool-stock-ownership .so-sh-list li{border-bottom:0}
.hh-tool-stock-ownership .so-sh-btn{border-radius:var(--so-r-md);padding:10px 12px}
.hh-tool-stock-ownership .so-sh-btn:hover{background:var(--surface-2)}

/* Holder table */
.hh-tool-stock-ownership .so-table{border-collapse:separate;border-spacing:0;border:1px solid var(--border);border-radius:var(--so-r-lg);
  background:var(--surface);clip-path:inset(0 round var(--so-r-lg))}
.hh-tool-stock-ownership .so-table thead th{background:var(--surface);border-bottom:1px solid var(--border);padding-top:12px;padding-bottom:10px}
.hh-tool-stock-ownership .so-table thead th:first-child,.hh-tool-stock-ownership .so-table tbody th{padding-left:18px}
.hh-tool-stock-ownership .so-table thead th:last-child,.hh-tool-stock-ownership .so-table td:last-child{padding-right:18px}
.hh-tool-stock-ownership .so-table td,.hh-tool-stock-ownership .so-table tbody th{border-bottom:1px solid var(--border-soft)}
.hh-tool-stock-ownership .so-table tbody tr:last-child > *{border-bottom:0}
.hh-tool-stock-ownership .so-table tbody tr:hover,.hh-tool-stock-ownership .so-table tbody tr.is-hover{background:var(--surface-2)}
.hh-tool-stock-ownership .so-table tbody tr.so-row-sel{background:var(--gold-soft)}
.hh-tool-stock-ownership .so-table tbody tr.so-row-sel .so-c-name{box-shadow:inset 3px 0 0 var(--gold)}
.hh-tool-stock-ownership .so-bar{height:4px;border-radius:2px;background:var(--surface-3)}
.hh-tool-stock-ownership .so-bar::after{border-radius:2px;background:var(--text-faint)}
.hh-tool-stock-ownership .so-row-sel .so-bar::after{background:var(--gold)}
/* Row breathing room: the % and its bar never touch the row line. */
.hh-tool-stock-ownership .so-hv-table td,.hh-tool-stock-ownership .so-hv-table tbody th{padding-top:10px;padding-bottom:10px}
.hh-tool-stock-ownership .so-table .so-bar{margin-top:7px}
/* Holder view: the list continues the map card, straight under the chart. */
.hh-tool-stock-ownership .so-list .so-sec-title{margin:0;padding:16px 18px 12px;background:var(--surface);
  border:1px solid var(--border);border-bottom:0;border-radius:var(--so-r-lg) var(--so-r-lg) 0 0}
.hh-tool-stock-ownership .so-list .so-table{border-top-left-radius:0;border-top-right-radius:0;
  clip-path:inset(0 round 0 0 var(--so-r-lg) var(--so-r-lg))}
.hh-tool-stock-ownership .so-holder-view .so-map:not([hidden]){margin-bottom:0;border-bottom:0;border-radius:var(--so-r-lg) var(--so-r-lg) 0 0}
.hh-tool-stock-ownership .so-holder-view .so-map:not([hidden]) .so-map-count{display:none}
.hh-tool-stock-ownership .so-map:not([hidden]) + .so-list .so-sec-title{border-radius:0;border-top:1px solid var(--border-soft)}
/* Holder table: a coloured initial (L green / F red / blank grey) beside each name. */
.hh-tool-stock-ownership .so-h-cell{display:flex;align-items:center;gap:12px}
.hh-tool-stock-ownership .so-h-cell .so-h-btn{flex:1;min-width:0}
/* Cross-issuer names: cards with the other issuers as logo chips. */
.hh-tool-stock-ownership .so-sh-head{display:flex;align-items:center;gap:10px;margin:4px 2px 6px}
.hh-tool-stock-ownership .so-sh-head .so-sec-title{margin:0}
.hh-tool-stock-ownership .so-sh-count{font-size:11.5px;font-weight:700;color:var(--gold-ink);background:var(--gold-soft);
  padding:3px 9px;border-radius:999px;font-variant-numeric:tabular-nums;white-space:nowrap;flex:none}
.hh-tool-stock-ownership .so-sh-desc{margin:0 2px 12px;color:var(--text-faint)}
.hh-tool-stock-ownership .so-sh-list{display:grid;gap:10px}
@media(min-width:900px){.hh-tool-stock-ownership .so-sh-list{grid-template-columns:repeat(2,minmax(0,1fr))}}
.hh-tool-stock-ownership .so-sh-list li{min-width:0}
.hh-tool-stock-ownership .so-sh-btn{display:grid;grid-template-columns:32px minmax(0,1fr);align-items:center;align-content:start;gap:10px 12px;height:100%;
  padding:14px;border:1px solid var(--border);border-radius:var(--so-r-md);background:var(--surface);transition:border-color .15s,background-color .15s}
.hh-tool-stock-ownership .so-sh-btn:hover{background:var(--surface-2);border-color:var(--gold)}
.hh-tool-stock-ownership .so-sh-t{display:flex;flex-direction:column;gap:2px;min-width:0}
.hh-tool-stock-ownership .so-sh-name{font-size:13.5px;font-weight:600;color:var(--text);overflow-wrap:anywhere}
.hh-tool-stock-ownership .so-sh-meta{white-space:normal;color:var(--text-faint)}
.hh-tool-stock-ownership .so-sh-chips{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:6px}
.hh-tool-stock-ownership .so-sh-chip{display:inline-flex;align-items:center;gap:5px;padding:3px 8px 3px 3px;border-radius:999px;
  background:var(--surface-2);font-size:11.5px;color:var(--text-dim);font-variant-numeric:tabular-nums}
.hh-tool-stock-ownership .so-sh-chip b{font:700 11.5px var(--mono);color:var(--gold-ink)}
.hh-tool-stock-ownership .so-sh-chip .so-logo-sm{width:18px;height:18px;font-size:9px}
.hh-tool-stock-ownership .so-sh-more{padding:3px 9px;font-weight:700}
.hh-tool-stock-ownership .so-sh-btn .so-sh-flag{grid-column:1/-1}

/* Search */
.hh-tool-stock-ownership .so-search input{min-height:48px;border-radius:12px;background:var(--surface-2);border:1px solid transparent;
  padding-left:42px;padding-right:44px;transition:border-color .15s,background .15s}
.hh-tool-stock-ownership .so-search input:focus{background:var(--bg);border-color:var(--gold);box-shadow:none;outline:none}
.hh-tool-stock-ownership .so-search-box svg{left:15px}
.hh-tool-stock-ownership .so-clear{position:absolute;right:6px;width:36px;height:36px;display:grid;place-items:center;border:0;border-radius:999px;
  background:none;color:var(--text-faint);cursor:pointer}
.hh-tool-stock-ownership .so-clear:hover{background:var(--surface-3);color:var(--text)}
.hh-tool-stock-ownership .so-clear svg{position:static;width:16px;height:16px;color:currentColor}
.hh-tool-stock-ownership .so-kbd{position:absolute;right:12px;font:600 11px var(--mono);color:var(--text-faint);border:1px solid var(--border);
  border-radius:6px;padding:2px 6px;pointer-events:none}
.hh-tool-stock-ownership .so-search input:focus ~ .so-kbd,.hh-tool-stock-ownership .so-clear:not([hidden]) ~ .so-kbd{display:none}
.hh-tool-stock-ownership .so-suggest{border-radius:var(--so-r-lg);background:var(--surface);border:1px solid var(--border);box-shadow:none;padding:6px;
  animation:so-fade .12s ease}
.hh-tool-stock-ownership .so-opt{border-radius:10px}
.hh-tool-stock-ownership .so-opt.active,.hh-tool-stock-ownership .so-opt:hover{background:var(--surface-2)}

/* Start page */
.hh-tool-stock-ownership .so-chip{border-radius:var(--so-r-md);background:var(--surface-2);border:1px solid transparent;box-shadow:none;transform:none}
.hh-tool-stock-ownership .so-chip:hover{background:var(--bg);border-color:var(--gold);box-shadow:none;transform:none}

/* Detail panel (opens on click): slides in from the right over the shell's
   right column (Market / News / Community), or as a drawer where there is no
   column. Laid out to fit the viewport without scrolling. */
@container (min-width:600px){
  .hh-tool-stock-ownership .so-inspector{display:flex;flex-direction:column;position:fixed;z-index:40;
    top:var(--so-top,97px);bottom:var(--so-panel-bottom,0px);right:0;left:auto;width:var(--so-panel-w,400px);max-height:none;
    padding:16px 20px 14px;border:0;border-left:1px solid var(--border);border-radius:0;background:var(--bg);box-shadow:none;
    overflow-y:auto;overscroll-behavior:contain;opacity:1;font-size:13px;
    transform:translateX(100%);visibility:hidden;transition:transform .3s var(--so-ease),visibility 0s linear .3s}
  .hh-tool-stock-ownership .so-inspector.is-open{transform:none;visibility:visible;transition:transform .3s var(--so-ease),visibility 0s}
  .hh-tool-stock-ownership .so-inspector:not(.is-open){opacity:1;pointer-events:none}
}
.hh-tool-stock-ownership .so-inspector.is-open > *,.hh-tool-stock-ownership .so-sheet-body > *{animation:so-card .24s var(--so-ease) both}
.hh-tool-stock-ownership .so-insp-head{display:flex;align-items:flex-start;gap:6px;margin-bottom:12px}
.hh-tool-stock-ownership .so-insp-ht{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.hh-tool-stock-ownership .so-insp-title,.hh-tool-stock-ownership .so-sheet-title{font-size:16px;font-weight:700;letter-spacing:-.01em;line-height:1.3;
  margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.hh-tool-stock-ownership .so-dc-pos{font-size:11px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-faint);
  font-variant-numeric:tabular-nums}
.hh-tool-stock-ownership .so-dc-navbtns{display:flex;gap:4px}
.hh-tool-stock-ownership .so-insp-close,.hh-tool-stock-ownership .so-sheet-close,.hh-tool-stock-ownership .so-nav-btn{flex:none;width:32px;height:32px;
  display:grid;place-items:center;margin:0;border:0;border-radius:999px;background:var(--surface-2);color:var(--text-dim);cursor:pointer}
.hh-tool-stock-ownership .so-insp-close:hover,.hh-tool-stock-ownership .so-sheet-close:hover,.hh-tool-stock-ownership .so-nav-btn:hover:not(:disabled){
  background:var(--surface-3);color:var(--text)}
.hh-tool-stock-ownership .so-nav-btn:disabled{opacity:.35;cursor:default}
.hh-tool-stock-ownership .so-nav-btn svg,.hh-tool-stock-ownership .so-insp-close svg{width:15px;height:15px}
.hh-tool-stock-ownership .so-dc-nav{display:flex;align-items:center;gap:6px;margin:0 0 10px}
.hh-tool-stock-ownership .so-dc-hero{--c:var(--text-faint);display:flex;align-items:center;gap:14px;padding:12px 14px;border-radius:var(--so-r-md);
  background:color-mix(in srgb,var(--c) 9%,var(--bg));border:0}
.hh-tool-stock-ownership .so-dc-hero-stock{--c:var(--gold)}
.hh-tool-stock-ownership .so-dc-hero-t{min-width:0;display:flex;flex-direction:column;gap:1px}
.hh-tool-stock-ownership .so-dc-hero .so-insp-k{font-size:10.5px}
.hh-tool-stock-ownership .so-dc-hero .so-insp-pct{font-size:26px;font-weight:800;letter-spacing:-.03em;line-height:1.1}
.hh-tool-stock-ownership .so-dc-hero .so-d-lead{font-size:13.5px;font-weight:600;color:var(--text);margin:0}
.hh-tool-stock-ownership .so-ring{flex:none;width:54px;height:54px}
.hh-tool-stock-ownership .so-ring svg{width:100%;height:100%;display:block}
.hh-tool-stock-ownership .so-ring circle{fill:none;stroke-width:8}
.hh-tool-stock-ownership .so-ring-bg{stroke:color-mix(in srgb,var(--c) 18%,transparent)}
.hh-tool-stock-ownership .so-ring-fg{stroke:var(--c);stroke-linecap:round;animation:so-ring .7s var(--so-ease) .05s both}
.hh-tool-stock-ownership .so-ring-loc{--c:var(--up)}
.hh-tool-stock-ownership .so-ring-for{--c:var(--down)}
.hh-tool-stock-ownership .so-ring-stock{--c:var(--gold)}
.hh-tool-stock-ownership .so-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:5px}
.hh-tool-stock-ownership .so-tag,.hh-tool-stock-ownership .so-dc-hero .so-role{font-size:11px;font-weight:600;line-height:1;padding:5px 8px;
  border-radius:999px;background:var(--bg);color:var(--text-dim);border:0}
.hh-tool-stock-ownership .so-tag-muted{color:var(--text-faint);font-style:italic}
.hh-tool-stock-ownership .so-tag-role{color:var(--text)}
.hh-tool-stock-ownership .so-tag-loc{background:var(--up-soft);color:var(--up)}
.hh-tool-stock-ownership .so-tag-for{background:var(--down-soft);color:var(--down)}
.hh-tool-stock-ownership .so-tag-stock{background:var(--gold-soft);color:var(--gold-ink)}
/* Facts: a dense spec sheet, two columns, hairlines — no tiles, no scrolling. */
.hh-tool-stock-ownership .so-d{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));column-gap:16px;margin-top:6px}
.hh-tool-stock-ownership .so-d-row{display:flex;flex-direction:column;gap:1px;padding:9px 0 8px;border:0;border-bottom:1px solid var(--border-soft);
  border-radius:0;background:none}
.hh-tool-stock-ownership .so-d-wide{grid-column:1/-1}
.hh-tool-stock-ownership .so-d-row dt{font-size:10.5px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;color:var(--text-faint)}
.hh-tool-stock-ownership .so-d-row dd{text-align:left;font-size:13.5px;font-weight:600;overflow-wrap:anywhere}
.hh-tool-stock-ownership .so-val{font-size:17px;font-weight:800;letter-spacing:-.02em;color:var(--gold-ink)}
.hh-tool-stock-ownership .so-d-sub{margin:14px 0 6px}
.hh-tool-stock-ownership .so-others{border-top:0;display:grid;gap:4px}
.hh-tool-stock-ownership .so-others a{grid-template-columns:auto minmax(0,1fr) auto;row-gap:5px;min-height:0;padding:8px 10px;border:0;
  border-radius:10px;background:var(--surface-2);transition:background .15s}
.hh-tool-stock-ownership .so-others a:hover{background:var(--surface-3)}
.hh-tool-stock-ownership .so-others-name{font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hh-tool-stock-ownership .so-mbar{grid-column:1/-1;display:block;height:3px;border-radius:2px;background:var(--surface-3);overflow:hidden}
.hh-tool-stock-ownership .so-mbar > span{display:block;min-width:3px;height:100%;border-radius:2px;background:var(--gold);animation:so-grow .5s var(--so-ease) both}
.hh-tool-stock-ownership .so-more-link{display:inline-block;margin-top:6px;font-size:12px;font-weight:600;color:var(--gold-ink)}
.hh-tool-stock-ownership .so-more-link:hover{text-decoration:underline}
.hh-tool-stock-ownership .so-dc-foot{margin-top:auto;padding-top:12px}
.hh-tool-stock-ownership .so-d-note{margin:0;border-left:0;border-radius:10px;background:var(--surface-2);padding:8px 10px;font-size:11.5px;line-height:1.45}
.hh-tool-stock-ownership .so-d-src{font-size:11px;color:var(--text-faint);margin:0}
.hh-tool-stock-ownership .so-ev{border-collapse:separate;border-spacing:0;border:0;border-radius:var(--so-r-md);background:var(--surface-2);
  clip-path:inset(0 round var(--so-r-md))}
.hh-tool-stock-ownership .so-ev thead th{padding:9px 12px 7px}
.hh-tool-stock-ownership .so-ev tbody th{padding:8px 8px 8px 12px}
.hh-tool-stock-ownership .so-ev td{padding:8px 12px 8px 8px}
.hh-tool-stock-ownership .so-ev tbody tr:last-child > *{border-bottom:0}
.hh-tool-stock-ownership .so-why-lead{font-size:12.5px;margin:0 0 6px}
.hh-tool-stock-ownership .so-dc-actions{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px;margin-top:10px}
.hh-tool-stock-ownership .so-view-btn,.hh-tool-stock-ownership .so-view-holder{margin-top:0;min-height:38px;padding:0 16px;border-radius:999px;
  background:var(--gold);color:#fff !important;box-shadow:none;transition:background .15s;font-size:13px}
.hh-tool-stock-ownership .so-view-btn:hover{opacity:1;background:var(--gold-ink);transform:none;box-shadow:none}

/* Short screens (e.g. 1280x760 laptops): tighter rhythm so the panel still fits
   without scrolling — every item stays, only the spacing shrinks. */
@media(max-height:840px){
  .hh-tool-stock-ownership .so-inspector{padding-top:12px;padding-bottom:10px}
  .hh-tool-stock-ownership .so-insp-head{margin-bottom:8px}
  .hh-tool-stock-ownership .so-dc-hero{padding:9px 12px;gap:12px}
  .hh-tool-stock-ownership .so-ring{width:44px;height:44px}
  .hh-tool-stock-ownership .so-dc-hero .so-insp-pct{font-size:23px}
  .hh-tool-stock-ownership .so-tags{margin-top:3px}
  .hh-tool-stock-ownership .so-d-row{padding:6px 0 5px}
  .hh-tool-stock-ownership .so-d-sub{margin:10px 0 4px}
  .hh-tool-stock-ownership .so-others a{padding:6px 10px;row-gap:4px}
  .hh-tool-stock-ownership .so-dc-foot{padding-top:8px}
  .hh-tool-stock-ownership .so-d-note{padding:6px 10px}
  .hh-tool-stock-ownership .so-dc-actions{margin-top:8px}
  .hh-tool-stock-ownership .so-view-btn,.hh-tool-stock-ownership .so-view-holder{min-height:34px}
}

/* Bottom sheet / side drawer */
.hh-tool-stock-ownership .so-sheet-backdrop{background:rgba(0,0,0,.28)}
.hh-tool-stock-ownership .so-sheet-panel{background:var(--surface);border-color:var(--border);box-shadow:none}

@keyframes so-card{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:none}}
@keyframes so-ring{from{stroke-dasharray:0 100}}
@keyframes so-grow{from{transform:scaleX(0);transform-origin:left}to{transform:scaleX(1);transform-origin:left}}

/* ── Start page ─────────────────────────────────────────────────────────
   What the report covers, then real shortcuts: large-cap stocks and the
   holder names reported under the most issuers, by type. */
.hh-tool-stock-ownership .so-entry{display:grid;gap:16px;margin-top:2px}
.hh-tool-stock-ownership .so-band{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:20px 24px;
  border:1px solid var(--border);border-radius:var(--so-r-lg);background:var(--surface);overflow:hidden}
.hh-tool-stock-ownership .so-band-facts{min-width:0}
.hh-tool-stock-ownership .so-band-k{font-size:12px;font-weight:600;color:var(--text-faint);letter-spacing:.02em}
.hh-tool-stock-ownership .so-band-stats{display:flex;flex-wrap:wrap;gap:12px 40px;margin-top:10px}
.hh-tool-stock-ownership .so-band-stats dt{font-size:12px;color:var(--text-dim)}
.hh-tool-stock-ownership .so-band-stats dd{font-size:30px;font-weight:800;letter-spacing:-.03em;line-height:1.15;font-variant-numeric:tabular-nums}
.hh-tool-stock-ownership .so-band-art{flex:none;width:300px;height:150px;margin:-10px -6px -10px 0}
.hh-tool-stock-ownership .so-art-lines line{stroke:var(--border);stroke-width:1.5}
.hh-tool-stock-ownership .so-band-art circle{transform-box:fill-box;transform-origin:center;animation:so-float 5s ease-in-out var(--d) infinite alternate}
.hh-tool-stock-ownership .so-art-c{fill:var(--gold)}
.hh-tool-stock-ownership .so-art-l{fill:var(--up)}
.hh-tool-stock-ownership .so-art-f{fill:var(--down)}
.hh-tool-stock-ownership .so-art-s{fill:var(--surface-3)}
@keyframes so-float{from{transform:translateY(-3px)}to{transform:translateY(3px)}}
.hh-tool-stock-ownership .so-entry-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:16px}
.hh-tool-stock-ownership .so-entry-col{min-width:0}
.hh-tool-stock-ownership .so-chips{list-style:none;margin-top:10px}
/* Popular stocks: cards */
.hh-tool-stock-ownership .so-pop-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
@media(max-width:1079px){.hh-tool-stock-ownership .so-pop-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
.hh-tool-stock-ownership .so-pop-grid .so-chip{display:grid;grid-template-columns:40px minmax(0,1fr);column-gap:10px;row-gap:8px;align-items:center;
  width:100%;min-height:0;padding:12px;border-radius:var(--so-r-md);background:var(--surface-2);border:1px solid transparent}
.hh-tool-stock-ownership .so-pop-grid .so-chip:hover{background:var(--bg);border-color:var(--gold)}
.hh-tool-stock-ownership .so-pop-grid .so-logo{width:40px;height:40px;border-radius:10px;padding:3px}
.hh-tool-stock-ownership .so-pop-t{display:flex;flex-direction:column;min-width:0}
.hh-tool-stock-ownership .so-pop-t .so-chip-k{font:800 14px var(--mono);letter-spacing:.02em;color:var(--text)}
.hh-tool-stock-ownership .so-pop-t .so-chip-v{font-size:12px;color:var(--text-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:none}
.hh-tool-stock-ownership .so-pop-m{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 6px;font-size:12.5px;font-variant-numeric:tabular-nums}
.hh-tool-stock-ownership .so-pop-px{font-weight:700;color:var(--text);white-space:nowrap}
.hh-tool-stock-ownership .so-pop-m .so-chg{margin-left:0}
.hh-tool-stock-ownership .so-pop-n{flex-basis:100%;color:var(--text-dim);font-size:12px;white-space:nowrap}
/* Holders by reach: tabs + ranked list */
.hh-tool-stock-ownership .so-reach-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px}
.hh-tool-stock-ownership .so-reach-head .so-stat-cap{margin:0}
.hh-tool-stock-ownership .so-tabs .so-seg-btn{min-height:30px;padding:0 12px;font-size:12.5px}
.hh-tool-stock-ownership .so-tabs .so-seg-btn[aria-selected="true"]{background:var(--bg);box-shadow:inset 0 0 0 1px var(--border);color:var(--text)}
.hh-tool-stock-ownership .so-rank{display:grid;gap:2px}
@media(min-width:900px){.hh-tool-stock-ownership .so-rank{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:16px}}
.hh-tool-stock-ownership .so-rank li{min-width:0}
.hh-tool-stock-ownership .so-rank .so-chip{display:grid;grid-template-columns:18px 32px minmax(0,1fr) auto;align-items:center;gap:10px;
  width:100%;min-height:0;padding:8px 10px;border:0;border-radius:10px;background:none}
.hh-tool-stock-ownership .so-rank .so-chip:hover{background:var(--surface-2);border:0}
.hh-tool-stock-ownership .so-rank-n{font:700 12px var(--mono);color:var(--text-faint);text-align:right;font-variant-numeric:tabular-nums}
.hh-tool-stock-ownership .so-avatar-sm{width:32px;height:32px;border-radius:10px;font-size:11px}
.hh-tool-stock-ownership .so-avatar.so-g-unk{--c:var(--text-faint)}
.hh-tool-stock-ownership .so-rank-t{display:flex;flex-direction:column;gap:3px;min-width:0}
.hh-tool-stock-ownership .so-rank .so-chip-name{font-size:13px;font-weight:600;color:var(--text);max-width:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hh-tool-stock-ownership .so-rank-meta{font-size:11.5px;color:var(--text-faint);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hh-tool-stock-ownership .so-rank-bar{display:block;height:3px;border-radius:2px;background:var(--surface-3);overflow:hidden}
.hh-tool-stock-ownership .so-rank-bar > span{display:block;height:100%;border-radius:2px;background:var(--gold);animation:so-grow .6s var(--so-ease) both}
.hh-tool-stock-ownership .so-rank .so-chip-v{font-size:12px;color:var(--text-faint);max-width:none;white-space:nowrap}
.hh-tool-stock-ownership .so-rank .so-chip-v strong{font-size:14px;font-weight:800;color:var(--text);font-variant-numeric:tabular-nums}
.hh-tool-stock-ownership .so-reach-note{font-size:11.5px;color:var(--text-faint);margin-top:8px}
.hh-tool-stock-ownership .so-rank[hidden]{display:none}

/* ── Phones: a deliberate single column, not a squeezed desktop ───────── */
@media(max-width:600px){
  .hh-tool-stock-ownership .page-head{margin-bottom:12px}
  .hh-tool-stock-ownership .page-head h1{font-size:22px}
  .hh-tool-stock-ownership .page-head p{font-size:13.5px}
  /* The shell hides .page-head p on phones; the entry state needs it, so it
     comes back here until a ticker is chosen. */
  .hh-tool-stock-ownership .page-head p{display:block}
  .hh-tool-stock-ownership:has(.so-selected) .page-head p{display:none}
  .hh-tool-stock-ownership .so-search{margin-bottom:18px;max-width:none}
  .hh-tool-stock-ownership .so-search input{min-height:46px;font-size:16px}   /* 16px: no iOS zoom */
  .hh-tool-stock-ownership .so-suggest{max-height:50vh}
  .hh-tool-stock-ownership .so-opt{min-height:44px}

  .hh-tool-stock-ownership .so-stats{display:grid;grid-template-columns:1fr;gap:12px}
  .hh-tool-stock-ownership .so-metrics{display:grid;grid-template-columns:1fr 1fr;gap:10px 16px}
  .hh-tool-stock-ownership .so-conc{padding:12px 0 0;border-left:none;border-top:1px solid var(--border-soft)}
  .hh-tool-stock-ownership .so-conc-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}

  .hh-tool-stock-ownership .so-map-bar{flex-direction:column;align-items:stretch}
  .hh-tool-stock-ownership .so-seg{display:grid;grid-template-columns:repeat(3,1fr)}
  .hh-tool-stock-ownership .so-seg-btn{min-height:40px}
  .hh-tool-stock-ownership .so-map-ctrl{align-self:flex-end}
  .hh-tool-stock-ownership .so-ctl{min-width:44px;min-height:40px}
  .hh-tool-stock-ownership .so-t-hold{font-size:calc(12.5px / var(--k))}
  .hh-tool-stock-ownership .so-t-sub{font-size:calc(11.5px / var(--k))}
  .hh-tool-stock-ownership .so-t-oth{font-size:12px}
  .hh-tool-stock-ownership .so-leg-keys{margin-left:0}

  .hh-tool-stock-ownership .so-table thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}
  .hh-tool-stock-ownership .so-table,.hh-tool-stock-ownership .so-table tbody{display:block}
  /* One record per holder: name + percentage on the first line, then
     "classification · Lokal/Asing" as a single wrapped line beneath. */
  .hh-tool-stock-ownership .so-table tbody tr{display:flex;flex-wrap:wrap;align-items:baseline;padding:11px 0;border-bottom:1px solid var(--border-soft)}
  .hh-tool-stock-ownership .so-table td,.hh-tool-stock-ownership .so-table tbody th{display:block;border:none;padding:0}
  .hh-tool-stock-ownership .so-table .so-c-name{order:1;flex:1 0 calc(100% - 92px);min-width:0}
  .hh-tool-stock-ownership .so-table .so-c-pct{order:2;flex:0 0 84px;width:auto}
  .hh-tool-stock-ownership .so-table .so-c-cls,.hh-tool-stock-ownership .so-table .so-c-lf{order:3;font-size:12.5px;white-space:normal;margin-top:2px}
  .hh-tool-stock-ownership .so-table .so-c-cls{margin-right:5px}
  .hh-tool-stock-ownership .so-table .so-c-val{order:3;font-size:12.5px;margin:2px 0 0 5px;text-align:left}
  .hh-tool-stock-ownership .so-table .so-c-val::before{content:"· ";color:var(--text-faint)}
  .hh-tool-stock-ownership .so-table .so-c-lf::before{content:"· ";color:var(--text-faint);font-style:normal}
  .hh-tool-stock-ownership .so-table .so-c-lf.so-muted::before{content:none}
  .hh-tool-stock-ownership .so-table .so-c-cls.so-muted{flex-basis:100%}
  .hh-tool-stock-ownership .so-lbl{display:inline;font-style:normal}
  .hh-tool-stock-ownership .so-table .so-h-btn{min-height:0;padding:0}
  .hh-tool-stock-ownership .so-h-name{font-size:14.5px}

  .hh-tool-stock-ownership .so-sheet-panel{top:auto;left:0;right:0;width:100%;max-height:86vh;border-left:none;
    border-top:1px solid var(--border);border-radius:14px 14px 0 0;padding-bottom:env(safe-area-inset-bottom,0px);
    animation:so-slide-y .2s ease}
  .hh-tool-stock-ownership .so-sheet-head{position:relative;padding-top:22px}
  .hh-tool-stock-ownership .so-sheet-head::before{content:'';position:absolute;top:8px;left:50%;width:36px;height:4px;
    margin-left:-18px;border-radius:2px;background:var(--border)}
}

@media(max-width:1079px){
  .hh-tool-stock-ownership{padding-bottom:calc(env(safe-area-inset-bottom,0px) + 16px)}
}
@media(prefers-reduced-motion:reduce){
  .hh-tool-stock-ownership *,.hh-tool-stock-ownership *::before,.hh-tool-stock-ownership *::after{
    transition:none !important;animation:none !important}
  .hh-tool-stock-ownership .so-edge-flow{display:none}   /* a still comet would read as a stray mark */
}

/* ── Flat on phones ───────────────────────────────────────────────────── */
@media(max-width:600px){
  .hh-tool-stock-ownership .page-head h1{font-size:24px}
  .hh-tool-stock-ownership .so-idbar{padding:16px}
  .hh-tool-stock-ownership .so-ticker{font-size:24px}
  .hh-tool-stock-ownership .so-hv-name{font-size:20px}
  .hh-tool-stock-ownership .so-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hh-tool-stock-ownership .so-map{padding:12px 10px 10px}
  .hh-tool-stock-ownership .so-sh{padding:12px 10px 6px}
  .hh-tool-stock-ownership .so-table tbody tr{padding:12px 16px}
  .hh-tool-stock-ownership .so-table tbody th{padding-left:0}
  .hh-tool-stock-ownership .so-table td:last-child{padding-right:0}
  .hh-tool-stock-ownership .so-sheet-panel{border-radius:18px 18px 0 0}
  .hh-tool-stock-ownership .so-entry-col{padding:14px}
  .hh-tool-stock-ownership .so-kbd,.hh-tool-stock-ownership .so-dc-hint{display:none}
  .hh-tool-stock-ownership .so-band{padding:16px;flex-direction:column;align-items:stretch;gap:4px}
  .hh-tool-stock-ownership .so-band-art{width:100%;height:110px;margin:0}
  .hh-tool-stock-ownership .so-band-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
  .hh-tool-stock-ownership .so-band-stats dd{font-size:21px}
  .hh-tool-stock-ownership .so-band-stats dt{font-size:11px}
  .hh-tool-stock-ownership .so-entry-grid{grid-template-columns:minmax(0,1fr)}
  .hh-tool-stock-ownership .so-pop-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .hh-tool-stock-ownership .so-pop-grid .so-chip{padding:10px;grid-template-columns:32px minmax(0,1fr)}
  .hh-tool-stock-ownership .so-pop-grid .so-logo{width:32px;height:32px}
  .hh-tool-stock-ownership .so-pop-m{flex-wrap:wrap;row-gap:2px}
  .hh-tool-stock-ownership .so-tabs{width:100%;display:grid;grid-template-columns:repeat(4,1fr)}
  .hh-tool-stock-ownership .so-jump{gap:12px}
  .hh-tool-stock-ownership .so-jump-id{flex:none}
  .hh-tool-stock-ownership .so-jump-id strong,.hh-tool-stock-ownership .so-jump-sub{display:none}
  .hh-tool-stock-ownership .so-jump-links{gap:18px;margin-left:0}
  .hh-tool-stock-ownership .so-jump a{font-size:13px}
  .hh-tool-stock-ownership .so-id-link{margin-left:0;flex-basis:100%}
  .hh-tool-stock-ownership .so-logo{width:42px;height:42px}
  .hh-tool-stock-ownership .so-id-t{flex:1 1 0;flex-direction:column;gap:0}
  .hh-tool-stock-ownership .so-fact{flex:1 1 40%}
}

/* ── Phase 5.8 · art direction ─────────────────────────────────────────
   Less, sharper, more intentional. One hierarchy for the whole map:
   selected stock → lit relationships → strong related stocks → the rest.
   At rest the network is calm (no looping motion but the anchor's breath);
   motion appears only on a relationship in focus, where it shows direction. */

/* Canvas: an almost-silent grid that recedes further behind a lit relationship. */
.hh-tool-stock-ownership .so-map-canvas{isolation:isolate;
  background-image:radial-gradient(ellipse 50% 46% at 50% 50%,color-mix(in srgb,var(--bg) 55%,transparent),transparent 75%),
    radial-gradient(ellipse 85% 85% at 50% 50%,transparent 62%,color-mix(in srgb,var(--text) 2.5%,transparent));
  background-size:100% 100%,100% 100%;background-position:0 0,0 0}
.hh-tool-stock-ownership .so-map-canvas::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;
  background-image:radial-gradient(circle,var(--so-grid) .6px,transparent .9px);background-size:16px 16px;background-position:8px 8px;
  transition:opacity .3s ease-out}
.hh-tool-stock-ownership .so-map-canvas.is-focus::before{opacity:.35}

/* Selected stock: compact, confident; the logo sits in the pill's own cap. */
.hh-tool-stock-ownership .so-node-selected_stock .so-aura{fill-opacity:.08}
.hh-tool-stock-ownership .so-node-selected_stock.so-node.so-node .so-aura{transform:none;fill-opacity:.08;stroke-opacity:0}   /* the anchor never balloons */
.hh-tool-stock-ownership .so-labels-top text{pointer-events:none}
.hh-tool-stock-ownership .so-sel-edge{fill:none;stroke:#fff;stroke-opacity:.22;stroke-width:1;pointer-events:none}
.hh-tool-stock-ownership .so-t-sel{font:700 14.5px var(--mono);letter-spacing:.06em}
.hh-tool-stock-ownership .so-t-cap{font:500 calc(10px / var(--k)) var(--sans);letter-spacing:.01em}
.hh-tool-stock-ownership .so-node-selected_stock .so-halo{fill:var(--gold);fill-opacity:.14}
.hh-tool-stock-ownership .is-live .so-node-selected_stock .so-halo{animation:so-breath 5.6s cubic-bezier(.4,0,.2,1) infinite}
@keyframes so-breath{0%{opacity:.9;transform:scale(1)}70%,100%{opacity:0;transform:scale(1.22,1.6)}}

/* Holders: quiet at rest; only what is in focus glows. */
.hh-tool-stock-ownership .so-aura{fill-opacity:.06}
.hh-tool-stock-ownership .so-node.is-hl .so-aura{transform:scale(1.2);fill-opacity:.13}
.hh-tool-stock-ownership .so-node:hover .so-aura,.hh-tool-stock-ownership .so-node.is-hover .so-aura{transform:scale(1.4);fill-opacity:.18}
.hh-tool-stock-ownership .so-node.is-sel .so-aura{transform:scale(1.45);fill-opacity:.16;stroke-opacity:.5}
.hh-tool-stock-ownership .is-dim{opacity:.12}

/* Related stocks: strong ones are pills; quiet ones are only a logo and a
   ticker, and become a pill when their relationship is lit. */
.hh-tool-stock-ownership .so-node-other_stock .so-shape{fill:var(--gold-soft)}
.hh-tool-stock-ownership .so-rel-strong .so-shape{fill:color-mix(in srgb,var(--gold) 13%,var(--surface))}
.hh-tool-stock-ownership .so-rel-weak .so-shape{fill:var(--surface-2);fill-opacity:0}
.hh-tool-stock-ownership .so-t-oth{font:700 10.5px var(--mono);letter-spacing:.04em}
.hh-tool-stock-ownership .so-rel-weak .so-t-oth{fill:var(--text-dim);font-weight:600}
.hh-tool-stock-ownership .so-rel-weak .so-logo-img,.hh-tool-stock-ownership .so-rel-weak .so-logo-disc,
.hh-tool-stock-ownership .so-rel-weak .so-logo-dot{opacity:.7}
.hh-tool-stock-ownership .so-node-other_stock.is-hl .so-shape,
.hh-tool-stock-ownership .so-node-other_stock:hover .so-shape{fill:color-mix(in srgb,var(--gold) 20%,var(--surface));fill-opacity:1}

/* Lines: at rest part of the background; lit, obvious and directional. */
.hh-tool-stock-ownership .so-edge-line{stroke-opacity:.3}
.hh-tool-stock-ownership .so-edge-cross .so-edge-line{stroke-opacity:.11}
.hh-tool-stock-ownership .so-edge-cross.so-rel-strong .so-edge-line{stroke-opacity:.22}
.hh-tool-stock-ownership .so-edge.is-hl .so-edge-line{stroke-opacity:.9}
.hh-tool-stock-ownership .is-live .so-edge-flow,.hh-tool-stock-ownership .is-live .so-edge-direct .so-edge-flow{animation:none;opacity:0}
.hh-tool-stock-ownership .is-live .so-edge.is-hl .so-edge-flow{animation:so-flow 1.8s cubic-bezier(.45,0,.55,1) infinite;opacity:.9}
.hh-tool-stock-ownership .so-edge-lbl{font:600 calc(10px / var(--k)) var(--sans)}

/* Type: ticker, then name, then %. Names stay quiet until they are in focus. */
.hh-tool-stock-ownership .so-t-hold{font:500 calc(11.5px / var(--k)) var(--sans);letter-spacing:.005em}
.hh-tool-stock-ownership .so-t-sub{font:500 calc(10px / var(--k)) var(--sans);letter-spacing:.01em}
.hh-tool-stock-ownership .so-nlbl.is-sel .so-t-hold{font-weight:600}

/* Controls: one quiet toolbar. */
.hh-tool-stock-ownership .so-seg{border-radius:10px;padding:2px;background:var(--surface-2)}
.hh-tool-stock-ownership .so-seg-btn{border-radius:8px;min-height:30px;padding:0 12px;font-size:12.5px;font-weight:500;color:var(--text-dim)}
.hh-tool-stock-ownership .so-seg-btn:hover{color:var(--text)}
.hh-tool-stock-ownership .so-seg-btn[aria-pressed="true"]{background:var(--surface);color:var(--text);box-shadow:inset 0 0 0 1px var(--border)}
.hh-tool-stock-ownership .so-map-ctrl{border-radius:10px;border:1px solid var(--border-soft);background:var(--surface)}
.hh-tool-stock-ownership .so-ctl{min-width:32px;min-height:30px;padding:0 9px;font-size:14px;color:var(--text-dim);transition:color .15s,background .15s}
.hh-tool-stock-ownership .so-ctl + .so-ctl{border-left:1px solid var(--border-soft)}
.hh-tool-stock-ownership .so-ctl:hover{color:var(--text);background:var(--surface-2)}
.hh-tool-stock-ownership .so-ctl-text{font-size:12px;font-weight:500}

/* Inspector: an institutional research card — hairlines, sentence case,
   aligned numbers, quiet metadata. */
.hh-tool-stock-ownership .so-dc-pos{text-transform:none;letter-spacing:0;font-size:12px;font-weight:500}
.hh-tool-stock-ownership .so-dc-hero{padding:4px 0 14px;border-radius:0;background:none;border-bottom:1px solid var(--border-soft)}
.hh-tool-stock-ownership .so-dc-hero .so-insp-k,.hh-tool-stock-ownership .so-insp-k{text-transform:none;letter-spacing:0;font-size:12px;font-weight:500;color:var(--text-faint)}
.hh-tool-stock-ownership .so-dc-hero .so-insp-pct{font-weight:700}
.hh-tool-stock-ownership .so-tag,.hh-tool-stock-ownership .so-dc-hero .so-role{background:var(--surface-2)}
.hh-tool-stock-ownership .so-tag-loc{background:var(--up-soft)}
.hh-tool-stock-ownership .so-tag-for{background:var(--down-soft)}
.hh-tool-stock-ownership .so-tag-stock{background:var(--gold-soft)}
.hh-tool-stock-ownership .so-ring circle{stroke-width:6}
.hh-tool-stock-ownership .so-d-sub{text-transform:none;letter-spacing:0;font-size:12px;font-weight:600;color:var(--text-dim);margin:14px 0 2px}
.hh-tool-stock-ownership .so-d-row dt{text-transform:none;letter-spacing:0;font-size:11.5px;font-weight:500;color:var(--text-faint)}
.hh-tool-stock-ownership .so-d-row dd{font-weight:600;font-variant-numeric:tabular-nums}
.hh-tool-stock-ownership .so-others{gap:0;border-top:1px solid var(--border-soft)}
.hh-tool-stock-ownership .so-others a{padding:8px 2px;border-radius:0;background:none;border-bottom:1px solid var(--border-soft)}
.hh-tool-stock-ownership .so-others a:hover{background:var(--surface-2)}
.hh-tool-stock-ownership .so-others-pct{font-variant-numeric:tabular-nums}
.hh-tool-stock-ownership .so-d-note{background:none;padding:0;color:var(--text-faint);font-size:11.5px}
.hh-tool-stock-ownership .so-ev{background:none;border-top:1px solid var(--border-soft);border-radius:0}
.hh-tool-stock-ownership .so-ev thead th{text-transform:none;letter-spacing:0;font-size:11.5px;font-weight:500;padding-left:0}
.hh-tool-stock-ownership .so-ev tbody th{padding-left:0}
.hh-tool-stock-ownership .so-ev td{padding-right:0}
@media(max-height:840px){
  .hh-tool-stock-ownership .so-dc-hero{padding:2px 0 10px}
  .hh-tool-stock-ownership .so-d-sub{margin:10px 0 2px}
  .hh-tool-stock-ownership .so-others a{padding:6px 2px}
  .hh-tool-stock-ownership .so-d-note{padding:0}
}
@media(max-width:600px){
  .hh-tool-stock-ownership .so-seg{flex:1}
  .hh-tool-stock-ownership .so-seg-btn{flex:1}
}

/* ── Phase 6.4 · Riwayat kepemilikan ─────────────────────────────────────
   One more section in the same register: a plain surface, hairline rules
   between parts, tabular figures, the page's accent only for the selected
   dates and reported points. A hollow mark always means "not in that report",
   never 0 %. */
.hh-tool-stock-ownership .so-hist{background:var(--surface);border:1px solid var(--border);border-radius:var(--so-r-lg);
  padding:16px 18px 18px;margin:16px 0}
.hh-tool-stock-ownership .so-hist-head{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:2px 16px}
.hh-tool-stock-ownership .so-hist-head .so-sec-title{margin-bottom:6px}
.hh-tool-stock-ownership .so-hist-range{font-size:12.5px;color:var(--text-dim);font-variant-numeric:tabular-nums}
.hh-tool-stock-ownership .so-hist-state{padding:14px 2px 4px;font-size:13px;color:var(--text-dim)}
.hh-tool-stock-ownership .so-hist-state .so-state-title{font-size:13.5px;font-weight:600;color:var(--text)}
.hh-tool-stock-ownership .so-hist-open,.hh-tool-stock-ownership .so-link-btn{font:inherit;font-size:13px;font-weight:600;color:var(--gold-ink);
  background:none;border:0;padding:0;cursor:pointer;text-decoration:underline;text-underline-offset:3px}
.hh-tool-stock-ownership a.so-hist-open{display:inline-block;margin-top:6px}
.hh-tool-stock-ownership .so-hist-open{min-height:32px}
.hh-tool-stock-ownership .so-hist-loading{display:grid;gap:8px}
.hh-tool-stock-ownership .so-hist-bar{display:block;height:12px;border-radius:6px;background:var(--surface-2)}
.hh-tool-stock-ownership .so-hist-bar:nth-child(2){width:72%}
.hh-tool-stock-ownership .so-hist-bar:nth-child(3){width:48%}
.hh-tool-stock-ownership .so-hist-note{font-size:12px;color:var(--text-dim);margin:8px 0 0;max-width:78ch}
.hh-tool-stock-ownership .so-hist-basis{font-size:11.5px;color:var(--text-faint);margin-top:14px;max-width:78ch}

/* overview facts: one editorial line of label / value pairs */
.hh-tool-stock-ownership .so-hist-over{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px 20px;
  padding:10px 0 14px;border-bottom:1px solid var(--border-soft)}
.hh-tool-stock-ownership .so-hist-over dt{font-size:11.5px;color:var(--text-dim)}
.hh-tool-stock-ownership .so-hist-over dd{font-size:13.5px;font-weight:600;font-variant-numeric:tabular-nums;margin-top:1px}

/* timeline: the report dates are the navigation */
.hh-tool-stock-ownership .so-tl{padding:12px 0 2px}
.hh-tool-stock-ownership .so-tl ol{list-style:none;display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);position:relative}
.hh-tool-stock-ownership .so-tl ol::before{content:"";position:absolute;left:calc(100% / 14);right:calc(100% / 14);top:17px;
  border-top:1px solid var(--border)}
.hh-tool-stock-ownership .so-tl li{position:relative;display:flex;justify-content:center}
.hh-tool-stock-ownership .so-tl-mark{position:absolute;left:0;top:6px;height:22px;border-left:1px dashed var(--text-faint)}
.hh-tool-stock-ownership .so-tl-btn{display:flex;flex-direction:column;align-items:center;gap:3px;min-width:44px;min-height:44px;
  padding:4px 2px 6px;font:inherit;color:var(--text-dim);background:none;border:0;border-radius:8px;cursor:pointer}
.hh-tool-stock-ownership .so-tl-btn:hover{background:var(--surface-2)}
.hh-tool-stock-ownership .so-tl-dot{width:11px;height:11px;margin:3px 0 2px;border-radius:50%;background:var(--surface);
  border:2px solid var(--text-faint);position:relative}
.hh-tool-stock-ownership .so-tl-dot.is-absent{border-style:dashed}
.hh-tool-stock-ownership .so-tl-btn.is-before .so-tl-dot{border-color:var(--gold)}
.hh-tool-stock-ownership .so-tl-btn.is-after .so-tl-dot{border-color:var(--gold);background:var(--gold)}
.hh-tool-stock-ownership .so-tl-btn.is-before,.hh-tool-stock-ownership .so-tl-btn.is-after{color:var(--text)}
.hh-tool-stock-ownership .so-tl-d{font-size:12px;font-weight:600;white-space:nowrap;font-variant-numeric:tabular-nums}
.hh-tool-stock-ownership .so-tl-n{font-size:11px;color:var(--text-faint);white-space:nowrap}
.hh-tool-stock-ownership .so-tl-legend{display:flex;align-items:center;gap:6px;margin-top:4px}
.hh-tool-stock-ownership .so-tl-key{display:inline-block;height:12px;border-left:1px dashed var(--text-faint)}

/* "Apa yang berubah?" */
.hh-tool-stock-ownership .so-hx,.hh-tool-stock-ownership .so-hh,.hh-tool-stock-ownership .so-hc{padding-top:14px;margin-top:14px;
  border-top:1px solid var(--border-soft)}
.hh-tool-stock-ownership .so-hx-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:8px 16px}
.hh-tool-stock-ownership .so-hx-title{font-size:14px;font-weight:700;letter-spacing:-.01em}
.hh-tool-stock-ownership .so-pair{display:flex;align-items:flex-end;gap:8px}
.hh-tool-stock-ownership .so-pair label{display:flex;flex-direction:column;gap:2px;font-size:11px;color:var(--text-dim)}
.hh-tool-stock-ownership .so-pair-arrow{padding-bottom:9px;color:var(--text-faint)}
.hh-tool-stock-ownership .so-pair select,.hh-tool-stock-ownership .so-map-date select{font:inherit;font-size:13px;color:var(--text);
  min-height:36px;padding:6px 28px 6px 10px;border:1px solid var(--border);border-radius:8px;background-color:var(--surface-2);cursor:pointer}
.hh-tool-stock-ownership .so-cx{margin-top:10px;transition:opacity .15s}
.hh-tool-stock-ownership .so-cx.is-loading{opacity:.5}
.hh-tool-stock-ownership .so-cx-range{font-size:13px;color:var(--text-dim);font-variant-numeric:tabular-nums}
.hh-tool-stock-ownership .so-cx-range strong{color:var(--text);font-weight:600}
.hh-tool-stock-ownership .so-cx-comp{margin:6px 0 10px}
.hh-tool-stock-ownership .so-cx-avail{font-size:12.5px;color:var(--text)}
.hh-tool-stock-ownership .so-cx-avail::before{content:"";display:inline-block;width:7px;height:7px;border-radius:50%;
  background:var(--up);margin-right:7px;vertical-align:1px}
.hh-tool-stock-ownership .so-cx-avail.is-off::before{background:var(--text-faint)}
.hh-tool-stock-ownership .so-cx-notes{list-style:none;margin-top:6px;display:grid;gap:4px}
.hh-tool-stock-ownership .so-cx-notes li{font-size:12px;color:var(--text-dim);line-height:1.45;padding-left:14px;position:relative}
.hh-tool-stock-ownership .so-cx-notes li::before{content:"";position:absolute;left:1px;top:6px;width:6px;height:6px;border-radius:50%;
  border:1px solid var(--text-faint)}
.hh-tool-stock-ownership .so-cx-dim{font-weight:600;color:var(--text)}
.hh-tool-stock-ownership .so-cx-st{margin-left:4px;color:var(--text-faint)}
.hh-tool-stock-ownership .so-cx-st::after{content:" \2014\00a0"}
.hh-tool-stock-ownership .so-cx-counts{font-size:13px;margin:4px 0 8px;font-variant-numeric:tabular-nums}
.hh-tool-stock-ownership .so-cx-scroll{overflow-x:auto}
.hh-tool-stock-ownership .so-cx-table,.hh-tool-stock-ownership .so-hd-table,.hh-tool-stock-ownership .so-hh-table{width:100%;border-collapse:collapse;font-size:13px;
  font-variant-numeric:tabular-nums}
.hh-tool-stock-ownership .so-cx-table thead th,.hh-tool-stock-ownership .so-hd-table thead th,.hh-tool-stock-ownership .so-hh-table thead th{font-size:11px;font-weight:600;
  letter-spacing:.05em;text-transform:uppercase;color:var(--text-faint);text-align:left;padding:6px 8px 6px 2px;border-bottom:1px solid var(--border)}
.hh-tool-stock-ownership .so-cx-table td,.hh-tool-stock-ownership .so-cx-table tbody th,
.hh-tool-stock-ownership .so-hd-table td,.hh-tool-stock-ownership .so-hd-table tbody th,
.hh-tool-stock-ownership .so-hh-table td,.hh-tool-stock-ownership .so-hh-table tbody th{padding:7px 8px 7px 2px;
  border-bottom:1px solid var(--border-soft);text-align:left;font-weight:400;vertical-align:top}
.hh-tool-stock-ownership .so-cx-table th.so-cx-n,.hh-tool-stock-ownership .so-cx-table td.so-cx-n,
.hh-tool-stock-ownership .so-hd-table .so-cx-n{text-align:right;white-space:nowrap}
.hh-tool-stock-ownership .so-cx-group th{padding-top:14px;font-size:11px;font-weight:600;letter-spacing:.05em;text-transform:uppercase;
  color:var(--text-dim);border-bottom:1px solid var(--border)}
.hh-tool-stock-ownership .so-cx-group span,.hh-tool-stock-ownership .so-cx-sub span,.hh-tool-stock-ownership .so-cx-minor summary span{
  font-weight:500;color:var(--text-faint);margin-left:4px}
.hh-tool-stock-ownership .so-cx-name span:first-child{overflow-wrap:anywhere}
.hh-tool-stock-ownership .so-cx-var,.hh-tool-stock-ownership .so-cx-move{display:block;font-size:11.5px;color:var(--text-faint);font-style:italic}
.hh-tool-stock-ownership .so-cx-move{font-style:normal}
.hh-tool-stock-ownership .so-cx-chg.is-up{color:var(--up)}
.hh-tool-stock-ownership .so-cx-chg.is-down{color:var(--down)}
.hh-tool-stock-ownership .so-cx-kind{color:var(--text-dim);font-size:12px}
.hh-tool-stock-ownership .so-cx-sub{font-size:12.5px;font-weight:600;margin:16px 0 4px}
.hh-tool-stock-ownership .so-cx-minor{margin-top:12px;font-size:13px}
.hh-tool-stock-ownership .so-cx-minor summary{cursor:pointer;color:var(--text-dim);min-height:32px;display:flex;align-items:center;gap:2px}
.hh-tool-stock-ownership .so-cx-minor summary:hover{color:var(--text)}
.hh-tool-stock-ownership .so-cx-events{list-style:none;margin-top:6px}
.hh-tool-stock-ownership .so-cx-events li{display:flex;flex-wrap:wrap;gap:2px 10px;padding:5px 0;border-bottom:1px solid var(--border-soft);font-size:12.5px}
.hh-tool-stock-ownership .so-cx-ek{color:var(--text-dim);min-width:190px}
.hh-tool-stock-ownership .so-cx-en{flex:1;overflow-wrap:anywhere}
.hh-tool-stock-ownership .so-cx-src{font-size:11.5px;color:var(--text-faint);margin-top:12px;overflow-wrap:anywhere}

/* holder history */
.hh-tool-stock-ownership .so-hh-table{margin-top:8px}
.hh-tool-stock-ownership .so-hh-table .so-c-pct{text-align:right;white-space:nowrap;vertical-align:middle}
.hh-tool-stock-ownership .so-hh-table td.so-hh-c-dots{vertical-align:middle}
.hh-tool-stock-ownership .so-hh-table tbody tr:hover{background:var(--surface-2)}
.hh-tool-stock-ownership .so-hh-table .so-pct{font-weight:600;font-variant-numeric:tabular-nums}
.hh-tool-stock-ownership .so-hh-btn{display:flex;flex-direction:column;align-items:flex-start;width:100%;min-height:44px;justify-content:center;
  font:inherit;color:inherit;text-align:left;background:none;border:0;padding:6px 0;cursor:pointer}
.hh-tool-stock-ownership .so-hh-name{font-size:13.5px;font-weight:500;overflow-wrap:anywhere}
.hh-tool-stock-ownership .so-hh-btn:hover .so-hh-name{text-decoration:underline;text-underline-offset:3px}
.hh-tool-stock-ownership .so-hh-meta{font-size:11.5px;color:var(--text-dim)}
.hh-tool-stock-ownership .so-hh-c-dots{width:1%;white-space:nowrap}
.hh-tool-stock-ownership .so-dots{display:inline-flex;gap:5px;vertical-align:middle}
.hh-tool-stock-ownership .so-dot{display:inline-block;width:9px;height:9px;border-radius:50%;vertical-align:middle}
.hh-tool-stock-ownership .so-dot.is-r{background:var(--gold)}
.hh-tool-stock-ownership .so-dot.is-a{border:1.5px solid var(--text-faint)}
.hh-tool-stock-ownership .so-dot.is-m{background:var(--gold);box-shadow:0 0 0 2px var(--surface),0 0 0 3px var(--gold)}

/* concentration: three small multiples */
.hh-tool-stock-ownership .so-hc-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin-top:8px}
.hh-tool-stock-ownership .so-hc-item figcaption{display:flex;flex-direction:column}
.hh-tool-stock-ownership .so-hc-k{font-size:11.5px;color:var(--text-dim)}
.hh-tool-stock-ownership .so-hc-v{font-size:17px;font-weight:600;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.hh-tool-stock-ownership .so-hc-chg{font-size:11.5px;color:var(--text-faint);font-variant-numeric:tabular-nums}
.hh-tool-stock-ownership .so-trend{display:block;width:100%;height:auto;margin-top:6px;overflow:visible}
.hh-tool-stock-ownership .so-sp-seg line{stroke:var(--gold);stroke-width:1.5}
.hh-tool-stock-ownership .so-sp-pt{fill:var(--gold)}
.hh-tool-stock-ownership .so-sp-abs{fill:none;stroke:var(--text-faint);stroke-width:1.5}
.hh-tool-stock-ownership .so-sp-x{font-size:10px;fill:var(--text-faint);text-anchor:middle}

/* sources */
.hh-tool-stock-ownership .so-hsrc{margin-top:14px;padding-top:10px;border-top:1px solid var(--border-soft);font-size:12.5px}
.hh-tool-stock-ownership .so-hsrc summary{cursor:pointer;color:var(--text-dim);min-height:32px;display:flex;align-items:center}
.hh-tool-stock-ownership .so-hsrc ul{list-style:none;margin-top:4px}
.hh-tool-stock-ownership .so-hsrc li{display:grid;grid-template-columns:92px minmax(0,1fr);gap:0 12px;padding:4px 0;border-bottom:1px solid var(--border-soft)}
.hh-tool-stock-ownership .so-hsrc-f{font-family:var(--mono);font-size:11.5px;overflow-wrap:anywhere}
.hh-tool-stock-ownership .so-hsrc-m{grid-column:2;font-size:11.5px;color:var(--text-faint)}

/* holder detail (card / sheet) */
.hh-tool-stock-ownership .so-hd{display:grid;gap:8px}
.hh-tool-stock-ownership .so-hd-status{font-size:13px;color:var(--text-dim)}
.hh-tool-stock-ownership .so-hd-status strong{color:var(--text);font-weight:600}
.hh-tool-stock-ownership .so-hd .so-hist-note{margin:0}
.hh-tool-stock-ownership .so-hd-chart{padding:8px 0 2px}
.hh-tool-stock-ownership .so-hd-chart .so-trend{max-width:420px}
.hh-tool-stock-ownership .so-hd-legend{font-size:11.5px;color:var(--text-faint);margin-top:4px}
.hh-tool-stock-ownership .so-hd-var{font-size:12px;color:var(--text-dim);padding:8px 10px;border-radius:8px;background:var(--surface-2)}

/* the map date control and its note */
.hh-tool-stock-ownership .so-map-head{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:6px 12px}
.hh-tool-stock-ownership .so-map-date{display:inline-flex;align-items:center;gap:8px;font-size:12px;color:var(--text-dim)}
.hh-tool-stock-ownership .so-map-date select{min-height:32px;padding:4px 26px 4px 8px;font-size:12.5px}
.hh-tool-stock-ownership .so-map-when{font-size:12.5px;color:var(--text-dim);background:var(--surface-2);border-radius:8px;
  padding:8px 10px;margin:8px 0 0}
.hh-tool-stock-ownership .so-map-when strong{color:var(--text);font-weight:600}

@media(max-width:600px){
  .hh-tool-stock-ownership .so-hist{padding:14px 14px 16px}
  .hh-tool-stock-ownership .so-tl-n{display:none}
  .hh-tool-stock-ownership .so-tl-d{font-size:11px}
  .hh-tool-stock-ownership .so-tl-btn{min-width:0;width:100%}
  .hh-tool-stock-ownership .so-pair{width:100%}
  .hh-tool-stock-ownership .so-pair label{flex:1}
  .hh-tool-stock-ownership .so-pair select{width:100%}
  /* change tables reflow: the name on its own line, figures labelled beneath */
  .hh-tool-stock-ownership .so-cx-table thead{display:none}
  .hh-tool-stock-ownership .so-cx-table tr{display:flex;flex-wrap:wrap;column-gap:10px;border-bottom:1px solid var(--border-soft);padding:6px 0}
  .hh-tool-stock-ownership .so-cx-table tr.so-cx-group{display:block;border-bottom:0;padding:0}
  .hh-tool-stock-ownership .so-cx-table tbody th{flex:1 0 100%;border:0;padding:2px 0}
  .hh-tool-stock-ownership .so-cx-table td{flex:1 1 0;min-width:0;border:0;padding:2px 0;text-align:left !important}
  .hh-tool-stock-ownership .so-cx-table td.so-cx-n{white-space:normal;overflow-wrap:anywhere}
  .hh-tool-stock-ownership .so-cx-table td[data-l]::before{content:attr(data-l);display:block;font-size:10.5px;letter-spacing:.04em;
    text-transform:uppercase;color:var(--text-faint)}
  .hh-tool-stock-ownership .so-cx-ek{min-width:0;width:100%}
  .hh-tool-stock-ownership .so-hc-grid{grid-template-columns:minmax(0,1fr);gap:14px}
  .hh-tool-stock-ownership .so-hh-table thead{display:none}
  .hh-tool-stock-ownership .so-hh-table tr{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;column-gap:10px;
    border-bottom:1px solid var(--border-soft);padding:2px 0 8px}
  .hh-tool-stock-ownership .so-hh-table tbody th,.hh-tool-stock-ownership .so-hh-table tbody td{border:0;padding:0}
  .hh-tool-stock-ownership .so-hh-table .so-hh-c-dots{grid-row:2;grid-column:1/-1;width:auto}
  .hh-tool-stock-ownership .so-hsrc li{grid-template-columns:minmax(0,1fr)}
  .hh-tool-stock-ownership .so-hsrc-m{grid-column:1}
}
@media(prefers-reduced-motion:reduce){.hh-tool-stock-ownership .so-cx{transition:none}}
.hh-tool-stock-ownership .so-cx-minor summary::before,.hh-tool-stock-ownership .so-hsrc summary::before{content:"";width:6px;height:6px;
  margin:0 8px 0 2px;border-right:1.5px solid currentColor;border-bottom:1.5px solid currentColor;transform:rotate(-45deg);transition:transform .15s}
.hh-tool-stock-ownership .so-cx-minor[open] > summary::before,.hh-tool-stock-ownership .so-hsrc[open] > summary::before{transform:rotate(45deg)}
.hh-tool-stock-ownership .so-cx-minor summary::-webkit-details-marker,.hh-tool-stock-ownership .so-hsrc summary::-webkit-details-marker{display:none}
.hh-tool-stock-ownership .so-hd-table td.so-cx-n{white-space:normal}
.hh-tool-stock-ownership .so-hd-table tbody th{white-space:nowrap}
@media(max-width:600px){.hh-tool-stock-ownership .so-hd-table{font-size:12.5px}
  .hh-tool-stock-ownership .so-hd-table td,.hh-tool-stock-ownership .so-hd-table tbody th{padding:6px 6px 6px 0}}

/* ── Phase 6.4.1 · comparison marks on the map ───────────────────────────
   Only a server-marked comparison payload carries these classes (the current map
   has none). Entered: the line in the page accent at full strength, the node with
   a thin accent ring. No longer reported: a thin dashed ghost, drawn on the
   earlier date where the relationship WAS reported. Unchanged lines step back a
   little so the two states read without colour alone (solid vs dashed). */
.hh-tool-stock-ownership .so-map-svg.is-compare .so-edge:not(.so-hist-entered):not(.so-hist-left) .so-edge-line{stroke-opacity:.18}
.hh-tool-stock-ownership .so-map-svg.is-compare .so-edge-cross:not(.so-hist-entered):not(.so-hist-left) .so-edge-line{stroke-opacity:.08}
.hh-tool-stock-ownership .so-edge.so-hist-entered .so-edge-line{stroke:var(--gold);stroke-opacity:.85}
.hh-tool-stock-ownership .so-edge.so-hist-left .so-edge-line{stroke:var(--text-dim);stroke-opacity:.6;stroke-dasharray:1.2 1.6;animation:none}
.hh-tool-stock-ownership .so-edge.so-hist-left .so-edge-flow{display:none}
.hh-tool-stock-ownership .so-node.so-hist-entered .so-shape{stroke:var(--gold);stroke-width:2}
.hh-tool-stock-ownership .so-node.so-hist-left .so-shape{stroke:var(--text-dim);stroke-width:1.5;stroke-dasharray:3 2;fill-opacity:.55}
.hh-tool-stock-ownership .so-map-when .so-cmp-t{margin-right:8px}
.hh-tool-stock-ownership .so-map-when{display:flex;flex-wrap:wrap;align-items:center;gap:6px 12px}
.hh-tool-stock-ownership .so-cmp-seg .so-seg-btn{min-height:32px}
.hh-tool-stock-ownership .so-cmp-leg{display:inline-flex;align-items:center;gap:6px;font-size:12px}
.hh-tool-stock-ownership .so-hk{display:inline-block;width:18px;height:0;border-top:2px solid var(--text-faint);opacity:.6;margin-left:6px}
.hh-tool-stock-ownership .so-hk:first-child{margin-left:0}
.hh-tool-stock-ownership .so-hk-in{border-top-color:var(--gold);opacity:1}
.hh-tool-stock-ownership .so-hk-left{border-top:2px dashed var(--text-dim);opacity:1}
.hh-tool-stock-ownership .so-cmp-none{font-size:12px;color:var(--text-faint)}
.hh-tool-stock-ownership .so-hist-flag{font-size:12px;color:var(--text-dim);padding:6px 10px;border-radius:8px;background:var(--surface-2);margin:6px 0}
.hh-tool-stock-ownership .so-cx-mapbtn{margin-left:8px;font-size:12.5px}
@media(max-width:600px){.hh-tool-stock-ownership .so-cx-mapbtn{display:block;margin:6px 0 0}}
@media(max-width:600px){
  .hh-tool-stock-ownership .so-map-when{font-size:11.5px;padding:6px 8px;gap:4px 10px}
  .hh-tool-stock-ownership .so-cmp-w{display:none}
  .hh-tool-stock-ownership .so-cmp-seg .so-seg-btn{min-height:30px;padding:2px 10px}
  .hh-tool-stock-ownership .so-cmp-leg{font-size:11.5px}
}

/* ── Phase 6.4.2 · source versions ───────────────────────────────────────
   A date with several source versions is used only through the version the
   reader chose. The choice is a plain radio group (state = the checked radio and
   "(dipakai sekarang)", not colour), on the page's own subtle surface. */
.hh-tool-stock-ownership .so-ver{margin:10px 0 4px;padding:12px 14px;border-radius:10px;background:var(--surface-2);font-size:13px}
.hh-tool-stock-ownership .so-ver + .so-ver{margin-top:8px}
.hh-tool-stock-ownership .so-ver-t{color:var(--text-dim);max-width:72ch}
.hh-tool-stock-ownership .so-ver-t strong{color:var(--text);font-weight:600}
.hh-tool-stock-ownership .so-ver-list{border:0;margin:8px 0 0;padding:0;display:grid;gap:6px}
.hh-tool-stock-ownership .so-ver-opt{display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start;
  padding:8px 10px;border-radius:8px;border:1px solid var(--border-soft);background:var(--surface);cursor:pointer}
.hh-tool-stock-ownership .so-ver-opt:has(input:checked){border-color:var(--text-faint)}
.hh-tool-stock-ownership .so-ver-opt input{width:18px;height:18px;margin-top:1px;accent-color:var(--gold)}
.hh-tool-stock-ownership .so-ver-body{display:flex;flex-direction:column;gap:2px;min-width:0}
.hh-tool-stock-ownership .so-ver-name{font-weight:600}
.hh-tool-stock-ownership .so-ver-cur{font-weight:400;color:var(--text-dim)}
.hh-tool-stock-ownership .so-ver-meta{font-size:12px;color:var(--text-dim);overflow-wrap:anywhere}
.hh-tool-stock-ownership .so-ver > .so-ver-meta{margin-top:6px}
.hh-tool-stock-ownership .so-ver-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-top:10px}
.hh-tool-stock-ownership .so-ver-use{font:inherit;font-size:13px;font-weight:600;min-height:36px;padding:6px 14px;border-radius:8px;
  border:1px solid var(--gold);background:var(--gold);color:#fff;cursor:pointer}
.hh-tool-stock-ownership .so-ver-use:disabled{background:transparent;color:var(--text-faint);border-color:var(--border);cursor:not-allowed}
.hh-tool-stock-ownership .so-tl-v{font-size:10.5px;color:var(--text-dim);white-space:nowrap}
.hh-tool-stock-ownership .so-cx-ver{font-weight:400;color:var(--text-dim)}
@media(max-width:600px){
  .hh-tool-stock-ownership .so-tl-v{font-size:9.5px;white-space:normal;text-align:center;line-height:1.2}
  .hh-tool-stock-ownership .so-ver{padding:10px 10px}
}

/* ── Phase 6.4.3 · holder history in the existing card / sheet ───────────
   Additional evidence under a holder's current detail: one hairline, a
   disclosure row, then the same facts grid and table idiom as the card. */
.hh-tool-stock-ownership .so-hd-hist{margin-top:14px;border-top:1px solid var(--border-soft);
  --text-faint:var(--text-dim)}   /* labels, "Tidak tercantum", rank notes: readable (AA) in both themes */
.hh-tool-stock-ownership .so-hd-hist.is-full{margin-top:0;border-top:0}
.hh-tool-stock-ownership .so-hd-h{margin:0}
.hh-tool-stock-ownership .so-hd-hist.is-full .so-hd-h{margin:0 0 6px}
.hh-tool-stock-ownership .so-hd-toggle{display:flex;align-items:center;gap:10px;width:100%;min-height:44px;padding:0;border:0;background:none;
  font:inherit;font-size:13px;font-weight:600;color:var(--text);text-align:left;cursor:pointer}
.hh-tool-stock-ownership .so-hd-toggle-m{margin-left:auto;font-size:12px;font-weight:500;color:var(--text-faint);white-space:nowrap}
.hh-tool-stock-ownership .so-hd-toggle::after{content:"";flex:none;width:6px;height:6px;margin:0 3px 3px 0;border:solid var(--text-faint);
  border-width:0 1.5px 1.5px 0;transform:rotate(45deg);transition:transform .2s var(--so-ease)}
.hh-tool-stock-ownership .so-hd-toggle[aria-expanded="true"]::after{transform:rotate(-135deg);margin:3px 3px 0 0}
.hh-tool-stock-ownership .so-hd-toggle:hover span:first-child{text-decoration:underline;text-underline-offset:3px}
.hh-tool-stock-ownership .so-hd-body{padding-bottom:6px}
.hh-tool-stock-ownership .so-hd-facts{margin-top:0}
.hh-tool-stock-ownership .so-hd-ctx{font-size:12px;color:var(--text-dim);margin:0 0 10px}
.hh-tool-stock-ownership .so-hd-ctx strong{color:var(--text);font-weight:600}
.hh-tool-stock-ownership .so-hd-ver{display:block;font-size:11px;font-weight:500;color:var(--text-faint)}
.hh-tool-stock-ownership .so-hd-table tr.is-ctx > *{background:var(--surface-2)}
.hh-tool-stock-ownership .so-hd-table tr.is-ctx th{font-weight:700}
.hh-tool-stock-ownership .so-hd-oth tbody th{white-space:normal}
.hh-tool-stock-ownership .so-hd-oth a{color:var(--gold-ink)}
.hh-tool-stock-ownership .so-hd-oth a .so-opt-code{color:inherit}
.hh-tool-stock-ownership .so-hd-oi{display:block;font-size:11.5px;font-weight:400;color:var(--text-dim);overflow-wrap:anywhere}
.hh-tool-stock-ownership .so-hd-legend .so-dot{margin-right:2px}
.hh-tool-stock-ownership .so-sp-multi{fill:var(--gold);stroke:var(--surface);stroke-width:1.5}
