:root{
      --bg:#f4f7fb;
      --panel:#ffffff;
      --ink:#172033;
      --muted:#657086;
      --line:#dbe2ee;
      --brand:#1649d8;
      --brand2:#6a39d7;
      --yes:#087a55;
      --yes-bg:#e9f8f2;
      --no:#596274;
      --no-bg:#f0f2f6;
      --unsure:#a75d00;
      --unsure-bg:#fff4dc;
      --danger:#b42318;
      --danger-bg:#fff0ee;
      --shadow:0 16px 40px rgba(29,45,78,.10);
      --radius:18px;
    }
    *{box-sizing:border-box}
    html{scroll-behavior:smooth}
    body{
      margin:0;
      background:
        radial-gradient(circle at 10% 0%, rgba(52,102,255,.10), transparent 26rem),
        radial-gradient(circle at 95% 15%, rgba(129,63,210,.10), transparent 28rem),
        var(--bg);
      color:var(--ink);
      font:15px/1.5 Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
    }
    button,input{font:inherit}
    button{cursor:pointer}
    a{color:var(--brand)}
    .app{max-width:1180px;margin:auto;padding:28px 18px 110px}
    .hero{
      display:block;
      margin-bottom:20px;
    }
    .hero-main,.panel{
      background:rgba(255,255,255,.94);
      border:1px solid rgba(219,226,238,.95);
      border-radius:var(--radius);
      box-shadow:var(--shadow);
    }
    .hero-main{padding:28px}
    .hero-side{
      margin-top:14px;padding:16px 18px;
      display:grid;grid-template-columns:minmax(260px,.72fr) minmax(0,1.55fr);
      align-items:start;column-gap:28px;row-gap:18px;
      background:#f7f9fd;border:1px solid var(--line);border-radius:14px;
    }
    .overall-audit-summary{grid-column:1;grid-row:1;min-width:0}
    .overall-audit-summary .progress-wrap{width:100%;max-width:340px;margin-top:18px}
    .eyebrow{
      display:inline-flex;align-items:center;gap:8px;
      padding:6px 10px;border-radius:999px;
      background:#edf2ff;color:#244ec7;font-weight:800;font-size:12px;
      letter-spacing:.04em;text-transform:uppercase
    }
    h1{font-size:clamp(30px,5vw,52px);line-height:1.02;margin:16px 0 12px;letter-spacing:-.04em}
    .lede{font-size:17px;color:var(--muted);max-width:760px;margin:0}
    .scope{
      display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:22px
    }
    .scope div{
      background:#f7f9fd;border:1px solid var(--line);border-radius:13px;padding:12px
    }
    .scope strong{display:block;font-size:18px}
    .scope span{color:var(--muted);font-size:12px}
    .quick-start{
      margin-top:14px;padding:15px;border:1px solid #b8c8f5;border-radius:14px;
      background:linear-gradient(135deg,#f7f9ff,#eef3ff)
    }
    .quick-start-head{display:flex;justify-content:space-between;gap:16px;align-items:baseline;margin-bottom:10px}
    .quick-start-head strong{font-size:15px;color:#244ec7}
    .quick-start-head span{color:var(--muted);font-size:12px;text-align:right}
    .quick-start-list{
      display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;
      margin:0;padding:0;list-style:none
    }
    .quick-start-list a{
      display:grid;grid-template-columns:28px minmax(0,1fr);column-gap:8px;align-items:center;
      height:100%;padding:10px;border:1px solid #cbd6ef;border-radius:11px;
      background:white;color:var(--ink);text-decoration:none
    }
    .quick-start-list a:hover{border-color:#7f9ee8;background:#fbfcff}
    .quick-start-list a:focus-visible{outline:3px solid rgba(36,78,199,.22);outline-offset:2px}
    .quick-start-list a > span{
      grid-row:1/span 2;display:grid;place-items:center;width:28px;height:28px;
      border-radius:999px;background:#244ec7;color:white;font-size:12px;font-weight:950
    }
    .quick-start-list strong{font-size:12px;line-height:1.25}
    .quick-start-list small{color:var(--muted);font-size:10px;line-height:1.35}
    .hero-explainer{
      margin-top:10px;border:1px solid var(--line);border-radius:12px;background:#fbfcfe
    }
    .hero-explainer summary{cursor:pointer;padding:10px 12px;font-size:12px;font-weight:900;color:#43516c}
    .hero-explainer summary:focus-visible{outline:3px solid rgba(36,78,199,.20);outline-offset:2px;border-radius:10px}
    .hero-explainer > div{padding:0 12px 11px;color:var(--muted);font-size:12px;max-width:90ch}
    .hero-explainer p{margin:0}
    .hero-explainer p + p{margin-top:7px}
    #ownedProductsInput,#matchOwnedProducts,#categories{scroll-margin-top:calc(var(--audit-fixed-toolbar-space) + 18px)}
    .status-kicker{font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted);font-weight:800}
    .status-title{font-size:25px;line-height:1.1;font-weight:900;margin:8px 0}
    .status-note{color:var(--muted);margin:0}
    .progress-wrap{margin-top:18px}
    .progress-meta{display:flex;justify-content:space-between;gap:10px;font-size:12px;color:var(--muted);margin-bottom:6px}
    .progress{height:10px;border-radius:999px;background:#e8edf5;overflow:hidden}
    .progress > div{height:100%;width:0;background:linear-gradient(90deg,var(--brand),var(--brand2));transition:width .25s ease}
    .profile-manager{margin-bottom:18px}
    .profile-manager-head{
      display:flex;align-items:flex-start;justify-content:space-between;gap:18px;margin-bottom:14px
    }
    .profile-manager-head h2{margin:0 0 4px}
    .active-profile-badge{
      flex:0 0 auto;background:#edf2ff;color:#244ec7;border:1px solid #b8c8f5;
      border-radius:999px;padding:7px 11px;font-size:12px
    }
    .profile-controls{
      display:grid;grid-template-columns:repeat(5,minmax(120px,1fr));gap:8px;align-items:end
    }
    .profile-field{display:grid;gap:5px;min-width:0}
    .profile-field span{
      color:var(--muted);font-size:11px;font-weight:850;text-transform:uppercase;
      letter-spacing:.05em
    }
    .profile-field input,.profile-field select{
      width:100%;min-width:0;border:1px solid var(--line);border-radius:11px;
      background:white;color:var(--ink);padding:10px 11px
    }
    .profile-save-status{
      margin-top:11px;padding:10px 11px;border:1px solid var(--line);
      border-radius:11px;background:#f7f9fd;color:var(--muted);font-size:12px
    }
    /* Storage is unavailable or full; answers exist only in this tab. */
    .profile-save-status[data-storage-state="failed"]{
      border-color:#e5a5a0;background:var(--danger-bg);color:var(--danger);font-weight:600
    }

    /* ── Submission panel ─────────────────────────────────────────────────
       Hidden unless this copy is served and an endpoint is configured, so on a
       disk copy these rules never match anything. No touch sizing here — that
       belongs in the mobile pass, and .btn / .profile-field are already
       covered there. (Naming that file here would put its name in the desktop
       single-file build, which the build regression forbids.) */
    .submission-controls{
      display:flex;flex-wrap:wrap;align-items:flex-end;gap:10px;margin-top:11px
    }
    .submission-controls .profile-field{flex:1 1 240px;min-width:0}
    .submission-status{
      margin-top:11px;padding:10px 11px;border:1px solid var(--line);
      border-radius:11px;background:#f7f9fd;color:var(--muted);font-size:12px
    }
    .submission-status:empty{display:none}
    .submission-status.is-error{
      border-color:#e5a5a0;background:var(--danger-bg);color:var(--danger);font-weight:600
    }
    .submission-status.is-ok{
      border-color:#a7cfae;background:#f0f8f2;color:#1f6b35;font-weight:600
    }

    /* ── Supply-chain disclosure ──────────────────────────────────────────
       Visually subordinate to the direct match results above it: this is a
       weaker relationship and should not compete with the primary answer. */
    /* Nested inside the green match box, so it uses a translucent white card to
       stay legible against --yes-bg without fighting it. The card lives on the
       wrapper rather than the <details> so the bulk-confirm button, which is a
       sibling of the disclosure, sits inside the same card. */
    .supply-chain-block{
      margin-top:10px;padding:11px 12px;border:1px solid #a8ddc8;
      border-left:3px solid var(--brand2);border-radius:10px;
      background:rgba(255,255,255,.72)
    }
    .supply-chain{margin:0}
    .supply-chain-summary-toggle{
      cursor:pointer;font-weight:900;font-size:13px;color:var(--ink);
      list-style:none;display:flex;align-items:center;gap:6px
    }
    .supply-chain-summary-toggle::-webkit-details-marker{display:none}
    .supply-chain-summary-toggle::marker{content:""}
    .supply-chain-summary-toggle::after{
      content:"Hide";margin-left:auto;font-size:11px;font-weight:650;
      color:var(--brand);white-space:nowrap
    }
    .supply-chain:not([open]) > .supply-chain-summary-toggle::after{content:"Show"}
    .supply-chain-summary-toggle:focus-visible{
      outline:2px solid var(--brand);outline-offset:2px;border-radius:6px
    }
    .supply-chain:not([open]) > .supply-chain-summary-toggle{margin:0}
    .supply-chain[open] > .supply-chain-summary-toggle{margin:0 0 5px}
    .supply-chain-coverage{
      margin:0 0 6px;font-size:12px;color:var(--muted);font-variant-numeric:tabular-nums
    }
    .supply-chain-summary{margin:0 0 11px;font-size:12px;color:var(--muted);line-height:1.5}
    .supply-list{list-style:none;margin:0;padding:0;display:grid;gap:9px}
    .supply-row{
      padding:10px 11px;border:1px solid var(--line);border-radius:10px;background:var(--panel)
    }
    /* Multi-sourced rows are deliberately muted — they are context, not answers. */
    .supply-row[data-presence="multiSourced"]{background:var(--no-bg);border-style:dashed}
    .supply-row-head{display:flex;flex-wrap:wrap;gap:6px;align-items:center}
    .supply-company{font-weight:650;font-size:13px;color:var(--ink)}
    .supply-ticker-plain{
      display:inline-flex;align-items:center;padding:2px 8px;border:1px dashed var(--line);
      border-radius:999px;background:var(--no-bg);color:var(--muted);
      font-size:12px;font-weight:650;letter-spacing:.02em
    }
    .supply-part{margin:7px 0 0;font-size:12px;color:var(--ink);line-height:1.55}
    .supply-source{margin:6px 0 0;font-size:11px;color:var(--muted)}
    .supply-source a{color:var(--brand)}
    .supply-not-confirmable{
      margin:7px 0 0;font-size:11px;color:var(--muted);font-style:italic;line-height:1.5
    }
    .supply-badge{
      display:inline-flex;align-items:center;padding:2px 8px;border-radius:999px;
      border:1px solid var(--line);background:var(--no-bg);color:var(--no);
      font-size:11px;font-weight:650;white-space:nowrap
    }
    .supply-badge.role-component{background:#eef3ff;border-color:#c3d3f7;color:#1b3fa8}
    .supply-badge.role-foundry{background:#f3eeff;border-color:#d5c6f5;color:#5127b5}
    /* Verified assembly is supplier-revenue exposure, not direct customer use. */
    .supply-badge.role-assembly{background:#eefaf5;border-color:#a8ddc8;color:#0b6b4c}
    /*
      Software roles, build 250. Licensed middleware is a supplier in the same
      sense as a component, so it reads as a peer of the tiers above rather
      than as an exception. Contract development is muted on purpose: it is
      credited, never confirmable, and should not invite a click.
      Both clear 4.5:1 on their own tint — 6.80:1 and 6.20:1.
    */
    .supply-badge.role-middleware{background:#e9f6fa;border-color:#b3dbe8;color:#0f5c73}
    .supply-badge.role-contractDevelopment{background:#fdf3e7;border-color:#eccfa6;color:#8a4b08}
    .supply-badge.presence-everyUnit{background:var(--yes-bg);border-color:#a8ddc8;color:var(--yes)}
    .supply-badge.presence-variant{background:var(--unsure-bg);border-color:#e8c893;color:var(--unsure)}
    .supply-badge.presence-multiSourced{background:#eef0f4;border-color:#c8cedb;color:var(--no)}
    /*
      Dashed, like `cardless`, because both mean the same thing to the reader:
      shown for completeness, nothing here to answer. 5.99:1 on its tint.
    */
    .supply-badge.presence-workForHire{
      background:#f6f4ef;border-color:#dcd3c2;border-style:dashed;color:#6b5b3e
    }
    .supply-badge.cardless{background:#fff;border-style:dashed;color:var(--muted)}
    .supply-badge.excluded{background:var(--danger-bg);border-color:#e5b3ae;color:var(--danger)}
    /* Confirmed rows recede rather than carrying a badge — the tickers are
       already listed on the match box's confirmed-suppliers line. */
    .supply-row[data-answered="yes"]{opacity:.72}
    .supply-row[data-answered="yes"] .supply-part{color:var(--muted)}
    /* Its own line, deliberately not the direct-match ticker line above it. */
    .supply-confirmed-line{
      margin-top:5px;padding-top:5px;border-top:1px dashed #a8ddc8
    }
    .supply-confirmed-label{font-weight:650;color:#0b6b4c}
    .supply-confirmed-note{color:var(--muted);font-size:11px}
    .supply-confirm,.supply-confirm-all,.supply-unconfirm,.supply-unconfirm-all{
      margin-top:9px;font-size:12px
    }
    .supply-confirm-all{margin-top:11px;border-color:#c3d3f7;color:var(--brand)}
    .supply-unconfirm,.supply-unconfirm-all{
      border-color:#d5b1ae;background:#fff;color:var(--danger)
    }
    .supply-unconfirm-all{margin-top:9px}
    /* Collapsed, confirmation stays actionable; reversal waits until the user
       opens the supplier details and can see exactly what will be removed. */
    .supply-chain:not([open]) ~ .supply-confirm-all{
      margin-top:9px;font-weight:650
    }
    .supply-chain:not([open]) ~ .supply-unconfirm-all{display:none}
    @media (max-width:720px){
      .supply-chain-block{padding:12px}
      .supply-row-head{gap:5px}
      .supply-confirm-all,.supply-unconfirm-all{width:100%}
    }
    .toolbar{
      position:sticky;top:10px;z-index:20;
      background:rgba(244,247,251,.86);
      backdrop-filter:blur(18px);
      border:1px solid rgba(219,226,238,.85);
      padding:10px;border-radius:16px;
      display:flex;flex-wrap:wrap;align-items:center;gap:9px;margin-bottom:18px;
      box-shadow:0 10px 30px rgba(23,32,51,.08)
    }
    .toolbar .search{flex:1 1 260px}
    .toolbar .btn{flex:0 0 auto}
    .search{
      border:1px solid var(--line);border-radius:12px;padding:11px 13px;background:white;color:var(--ink);min-width:0
    }
    .btn{
      border:1px solid var(--line);border-radius:12px;padding:10px 14px;background:white;color:var(--ink);font-weight:800
    }
    .btn:hover{border-color:#aeb9cb}
    .btn.primary{background:var(--brand);color:white;border-color:var(--brand)}
    .btn.danger{color:var(--danger)}
    .layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:20px;align-items:start}
    .panel{padding:20px}
    .panel + .panel{margin-top:18px}
    .panel h2{font-size:21px;margin:0 0 5px}
    .panel-sub{color:var(--muted);margin:0 0 17px}
    .category{
      border:1px solid var(--line);border-radius:16px;background:white;overflow:hidden;margin-bottom:14px;
      content-visibility:auto;contain-intrinsic-block-size:auto 240px
    }
    .category-head{
      padding:15px 16px;display:flex;align-items:center;justify-content:space-between;gap:12px;background:#fbfcfe
    }
    .category-name{display:flex;align-items:center;gap:10px;font-weight:900;font-size:17px}
    .category-icon{font-size:22px}
    .category-actions{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end}
    .mini{
      border:1px solid var(--line);background:white;border-radius:9px;padding:6px 9px;font-size:12px;font-weight:800
    }
    .brand-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1px;background:var(--line)}
    .brand-card{background:white;padding:13px;min-width:0}
    .brand-top{display:flex;justify-content:space-between;gap:10px;align-items:flex-start}
    .brand-identity{display:flex;align-items:center;gap:10px;min-width:0;flex:1}
    .brand-name{font-weight:900;font-size:16px;min-width:0}
    .company-logo{
      --logo-color:#3157b7;
      --logo-soft:rgba(49,87,183,.10);
      position:relative;display:inline-grid;place-items:center;overflow:hidden;flex:0 0 auto;
      width:40px;height:40px;border:1px solid #d6deea;border-radius:11px;
      background:var(--logo-soft);box-shadow:0 1px 2px rgba(23,32,51,.08)
    }
    .company-logo img{
      position:absolute;inset:0;width:100%;height:100%;box-sizing:border-box;
      object-fit:contain;padding:6px;background:white;opacity:0;
      transition:opacity .16s ease
    }
    .company-logo.logo-loaded img{opacity:1}
    /*
      The fallback is the only thing shown when a logo image is unavailable —
      including for everyone who turns external logos off — so it has to hold a
      real brand name, not just an initialism. It previously had no overflow
      handling at all, which is fine for "DQ" and spills for "The Shoe Company".
    */
    /*
      `--logo-ink` is the brand colour darkened until it clears 4.5:1 against
      the tile's own tint; `--logo-color` only clears the 3:1 graphics
      threshold, which is right for the border and the tint but too low for
      text. The var() fallback keeps any tile rendered before the ink existed
      looking exactly as it did.
    */
    .company-logo-fallback{
      font-size:10px;font-weight:950;letter-spacing:.02em;color:var(--logo-ink,var(--logo-color));
      text-align:center;line-height:1.05;transition:opacity .16s ease;
      max-width:100%;padding:0 2px;overflow:hidden;
      overflow-wrap:anywhere;word-break:break-word;hyphens:auto
    }
    .company-logo-fallback.long{font-size:8px;letter-spacing:0}
    .company-logo-fallback.longer{font-size:6.5px;letter-spacing:-.01em;line-height:1.1}
    .company-logo.logo-loaded .company-logo-fallback{opacity:0}
    /* WBD's square audit tile uses a legible local monogram. Its full official
       wordmark is horizontal and white, so shrinking it onto the standard
       white square leaves only its symbol visible — the reported grey arrow. */
    .company-logo[data-logo-identity="WBD"]{
      background:#04006C;border-color:#04006C;
      box-shadow:inset 0 3px 0 #FFC200,0 1px 2px rgba(23,32,51,.14)
    }
    .company-logo[data-logo-identity="WBD"] .company-logo-fallback{
      color:#FFFFFF;letter-spacing:.04em
    }
    .company-logo.compact{width:19px;height:19px;border-radius:5px;box-shadow:none}
    .company-logo.compact img{padding:2px}
    .company-logo.compact .company-logo-fallback{font-size:5px}
    .company-logo.compact .company-logo-fallback.long{font-size:4px}
    .tag{font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.05em;background:#eef2f8;border-radius:999px;padding:4px 7px;color:#596274;white-space:nowrap}
    /* The ticker tag is a filter control. Reset the button chrome so it still
       reads as a tag, then give it affordances a span cannot have. */
    .tag-button{
      border:1px solid transparent;font-family:inherit;cursor:pointer;
      appearance:none;-webkit-appearance:none;line-height:inherit
    }
    .tag-button:hover{background:#dfe7f4;color:var(--brand)}
    .tag-button:focus-visible{outline:2px solid var(--brand);outline-offset:2px}
    .tag-button.active{
      background:var(--brand);border-color:var(--brand);color:#fff
    }
    .tag-button.active:hover{background:#1240bd;color:#fff}
    .market-tags{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:5px;align-items:center}
    .robinhood-badge{font-size:9px;font-weight:900;letter-spacing:.035em;border-radius:999px;padding:4px 7px;white-space:nowrap;border:1px solid #badfcb;background:#eefaf3;color:#176b42}
    .robinhood-badge.indirect{border-color:#c8d6f2;background:#f1f5fd;color:#355b9c}
    .description{color:#39445a;font-size:13px;margin:5px 0 4px}
    .aliases{color:var(--muted);font-size:11px;min-height:16px;margin:2px 0 10px}
    /* Provenance sits below the aliases and above the answer buttons: available
       when the answer is in doubt, quiet when it is not. */
    /* Sits under the panel intro, where someone decides whether to keep going. */
    /* Sits on the question itself, so the cost of the decision is visible while
       the decision is being made rather than after. */
    .relevance-impact{display:inline-block;margin:6px 0 0;font-size:10px;font-weight:800;
      letter-spacing:.02em;color:#5a6480;background:#f1f3f9;border:1px solid var(--line);
      border-radius:999px;padding:2px 8px;max-width:100%}
    /* Broad enough to be a bulk shortcut rather than a question. */
    .relevance-impact.bulk{color:#7a4a00;background:#fff4e2;border-color:#f0d5a8}
    /* Everything this one governs is also governed by a larger filter. */
    .relevance-impact.nested{color:#4a5878;background:#eef2fb;border-color:#cddaf0}
    /* The larger filter has already answered it, so it is not a live question. */
    .relevance-impact.settled{color:#176b42;background:var(--yes-bg);border-color:#8ed3b8}
    .relevance-card.relevance-settled{opacity:.62}
    .relevance-card.relevance-settled .profile-options{filter:grayscale(1)}
    .filter-progress-row{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 10px}
    .filter-progress{flex:1 1 240px;font-size:12px;font-weight:800;color:#39445a;background:#f6f7fb;border:1px solid var(--line);border-radius:8px;padding:6px 9px;margin:0}
    #toggleFilterCards{flex:0 0 auto;font-size:12px;padding:6px 11px}
    /* Sits with the count it explains, not with the fine print below it. */
    /*
      Green, and loud enough to read before the zero above it is believed.

      This was amber, which reads as a warning about a mistake. Nothing is
      wrong here: the count is correct and the card is correct, they just
      cannot be joined without naming the product. Green and the app's own
      Yes palette say "this is fine, here is what to do next", and the left
      bar plus the shadow lift it off the card rather than letting it sit as
      one more line of small print.
    */
    .quantity-rule-ambiguous{
      font-size:12.5px;line-height:1.55;font-weight:650;
      color:#05543b;background:var(--yes-bg);
      border:1px solid #8ed3b8;border-left:5px solid var(--yes);
      border-radius:10px;padding:10px 12px;margin:9px 0 0;
      box-shadow:0 2px 8px rgba(8,122,85,.14)
    }
    .card-provenance{display:flex;flex-wrap:wrap;align-items:baseline;gap:5px;font-size:10px;color:var(--muted);margin:0 0 9px;line-height:1.45}
    .card-provenance-basis{font-weight:900;letter-spacing:.03em;text-transform:uppercase;font-size:9px;border:1px solid var(--line);border-radius:999px;padding:2px 6px;white-space:nowrap;color:#5a6480;background:#f6f7fb}
    .card-provenance-source{flex:1 1 auto;min-width:0}
    /*
      The date was dimmed with `opacity:.85`, which is a contrast cut dressed
      as a style: --muted reads 4.98:1 on the white card, and 85% of it
      composites to #7C8598 at 3.71:1. Naming the lighter colour outright keeps
      the date a step quieter than the source beside it — 4.69:1 against 4.98:1
      — while staying above the 4.5:1 text threshold.
    */
    .card-provenance-date{white-space:nowrap;font-variant-numeric:tabular-nums;color:#6b7488}
    .answers{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
    .answer{
      border:1px solid var(--line);background:white;border-radius:9px;padding:7px 6px;font-size:12px;font-weight:850;color:var(--muted)
    }
    .answer.yes.active{background:var(--yes-bg);color:var(--yes);border-color:#79c9ad}
    .answer.no.active{background:var(--no-bg);color:#30394b;border-color:#adb6c6}
    .answer.unsure.active{background:var(--unsure-bg);color:var(--unsure);border-color:#e6b75d}
    .sidebar{position:sticky;top:88px}
    .company-results-panel{
      max-height:calc(100vh - 108px);overflow-y:auto;overscroll-behavior:contain;
      scrollbar-gutter:stable;padding-right:14px;scrollbar-width:thin;
      scrollbar-color:#a8b4c8 transparent
    }
    .company-results-panel::-webkit-scrollbar{width:10px}
    .company-results-panel::-webkit-scrollbar-track{background:transparent}
    .company-results-panel::-webkit-scrollbar-thumb{
      background:#a8b4c8;border:3px solid transparent;border-radius:999px;background-clip:padding-box
    }
    .company-results-panel::-webkit-scrollbar-thumb:hover{background-color:#7f8da5}
    .company-results-panel:focus-visible{
      outline:3px solid rgba(36,78,199,.28);outline-offset:4px
    }
    .result-box{border-radius:15px;padding:16px;border:1px solid var(--line);background:#f7f9fd}
    .result-box.yes{background:var(--yes-bg);border-color:#9bd4c0}
    .result-box.no{background:#eef4ff;border-color:#9ab3f5}
    .result-box.unresolved{background:var(--unsure-bg);border-color:#e5bd6c}
    .company-status-header{
      display:flex;align-items:flex-start;justify-content:space-between;
      gap:10px;margin-bottom:2px
    }
    .company-status-controls{
      display:flex;align-items:flex-end;justify-content:flex-end;gap:8px
    }
    .company-status-hidden-toggle{
      min-height:38px;white-space:nowrap;padding:8px 10px;font-size:11px
    }
    .company-status-hidden-toggle[aria-pressed="true"]{
      border-color:#7b8daf;background:#e8edf6;color:#26344d
    }
    .company-status-hidden-toggle:disabled{opacity:.5;cursor:not-allowed}
    .company-status-sort-control{
      display:grid;gap:5px;color:var(--muted);font-size:10px;font-weight:900;
      letter-spacing:.055em;text-transform:uppercase;min-width:178px
    }
    .company-status-sort-label{padding-left:2px}
    .company-status-select-shell{
      position:relative;display:block;border:1px solid #c9d3e2;border-radius:11px;
      background:linear-gradient(180deg,#fff 0%,#f7f9fd 100%);
      box-shadow:0 1px 2px rgba(23,32,51,.04),inset 0 1px 0 rgba(255,255,255,.9);
      transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease
    }
    .company-status-select-shell::after{
      content:"";position:absolute;right:12px;top:50%;width:7px;height:7px;
      border-right:2px solid #536079;border-bottom:2px solid #536079;
      transform:translateY(-68%) rotate(45deg);pointer-events:none
    }
    .company-status-select-shell:hover{
      border-color:#9aabc1;box-shadow:0 4px 12px rgba(23,32,51,.08)
    }
    .company-status-select-shell:focus-within{
      border-color:#476fda;box-shadow:0 0 0 3px rgba(36,78,199,.16),0 4px 12px rgba(23,32,51,.08)
    }
    .company-status-sort-control select{
      appearance:none;-webkit-appearance:none;width:100%;max-width:210px;min-height:38px;
      border:0;border-radius:11px;background:transparent;color:var(--ink);
      padding:8px 36px 8px 11px;font:inherit;font-size:12px;font-weight:850;
      letter-spacing:0;text-transform:none;cursor:pointer
    }
    .company-status-sort-control select:focus{outline:none}
    .company-status-sort-control select:disabled{cursor:not-allowed;opacity:.6}
    .result-big{font-size:27px;font-weight:950;letter-spacing:-.03em;margin:3px 0 6px}
    .result-detail{color:var(--muted);font-size:13px}
    .match-list,.issue-list{padding:0;margin:12px 0 0;list-style:none}
    .match-list li,.issue-list li{
      display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-top:1px solid rgba(101,112,134,.18);font-size:13px
    }
    .ticker-button{
      --ticker-bg:#f3f4f6;
      --ticker-fg:#374151;
      --ticker-border:#9ca3af;
      display:inline-flex;align-items:center;gap:6px;
      border:2px solid var(--ticker-border);border-radius:9px;
      background:var(--ticker-bg);color:var(--ticker-fg);
      padding:4px 8px;margin:0 2px 0 0;
      font:inherit;font-weight:950;line-height:1.2;
      transition:transform .12s ease,box-shadow .12s ease,filter .12s ease
    }
    .ticker-button::before{
      content:"";width:7px;height:7px;border-radius:50%;
      background:currentColor;opacity:.78;flex:0 0 auto
    }
    .ticker-button:hover{
      filter:brightness(.97);transform:translateY(-1px)
    }
    .ticker-button.active{
      box-shadow:0 0 0 3px #fff,0 0 0 6px var(--ticker-border);
      transform:translateY(-1px)
    }
    .ticker-button.active::after{
      content:"✓";font-size:11px;font-weight:1000
    }
    .ticker-button:focus-visible{
      outline:3px solid #172033;outline-offset:3px
    }
    .ticker-status-actions{
      display:flex;align-items:center;justify-content:flex-end;gap:8px;
      text-align:right
    }
    .ticker-hide-button{
      border:1px solid var(--line);border-radius:8px;background:white;
      color:var(--muted);padding:4px 7px;font-size:11px;font-weight:850
    }
    .ticker-hide-button:hover{
      border-color:#aeb9cb;color:var(--ink);background:#f7f9fd
    }
    .ticker-hide-button:focus-visible{
      outline:3px solid rgba(23,32,51,.22);outline-offset:2px
    }
    .company-status-row.is-hidden{
      margin-inline:-7px;padding-inline:7px;border-radius:9px;
      background:rgba(101,112,134,.08)
    }
    .company-status-row.is-hidden > strong::after{
      content:"Hidden";display:inline-block;margin-left:7px;padding:2px 6px;
      border-radius:999px;background:#e2e8f0;color:#475569;
      font-size:9px;font-weight:950;letter-spacing:.04em;text-transform:uppercase
    }
    .ticker-hide-button.restore{
      border-color:#9ab3f5;background:#eef4ff;color:#244ec7
    }
    .ticker-resolve-button{
      border:1px solid #b8c8f5;border-radius:8px;background:#edf2ff;
      color:#244ec7;padding:4px 7px;font-size:11px;font-weight:900;
      white-space:nowrap
    }
    .ticker-resolve-button.only{
      border-color:#9bd4c0;background:var(--yes-bg);color:var(--yes)
    }
    .ticker-resolve-button:hover{filter:brightness(.98);transform:translateY(-1px)}
    .ticker-resolve-button:focus-visible{
      outline:3px solid rgba(36,78,199,.24);outline-offset:2px
    }
    .hidden-ticker-panel{
      margin-top:14px;border-top:1px solid rgba(101,112,134,.2);
      padding-top:12px
    }
    .hidden-ticker-panel summary{cursor:pointer;font-weight:900}
    .hidden-ticker-panel p{
      color:var(--muted);font-size:12px;margin:9px 0
    }
    .hidden-ticker-list{display:grid;gap:7px;margin:9px 0}
    .hidden-ticker-restore{
      display:flex;align-items:center;justify-content:space-between;gap:10px;
      width:100%;border:1px solid var(--line);border-radius:10px;
      background:white;color:var(--ink);padding:8px 10px;text-align:left
    }
    .hidden-ticker-restore:hover{border-color:#aeb9cb;background:#f7f9fd}
    .hidden-ticker-restore strong{color:var(--brand)}
    .hidden-ticker-empty{
      color:var(--muted);font-size:12px;padding:7px 0
    }

    /* Neutral and unresolved states */
    .ticker-status-incomplete{
      --ticker-bg:#f3f4f6;--ticker-fg:#374151;--ticker-border:#6b7280
    }
    .ticker-status-none{
      --ticker-bg:#fee2e2;--ticker-fg:#7f1d1d;--ticker-border:#b91c1c
    }
    .ticker-status-na{
      --ticker-bg:#e2e8f0;--ticker-fg:#334155;--ticker-border:#64748b
    }
    /* Connected only through confirmed component suppliers. Purple to match the
       supply-chain panel and the supplier-derived answer badge, and deliberately
       outside the warm buyer-tier ramp so it cannot read as a purchase tier. */
    .ticker-status-supplier{
      --ticker-bg:#f3eeff;--ticker-fg:#5127b5;--ticker-border:#7c4dd4
    }

    /* Product-coverage tiers */
    .ticker-tier-buyer{
      --ticker-bg:#fef3c7;--ticker-fg:#78350f;--ticker-border:#b45309
    }
    .ticker-tier-multi{
      --ticker-bg:#ffedd5;--ticker-fg:#7c2d12;--ticker-border:#c2410c
    }
    .ticker-tier-regular{
      --ticker-bg:#dbeafe;--ticker-fg:#1e3a8a;--ticker-border:#2563eb
    }
    .ticker-tier-loyalist{
      --ticker-bg:#ede9fe;--ticker-fg:#4c1d95;--ticker-border:#7c3aed
    }
    .ticker-tier-superfan{
      --ticker-bg:#fce7f3;--ticker-fg:#831843;--ticker-border:#db2777
    }
    .ticker-tier-completionist{
      --ticker-bg:#d1fae5;--ticker-fg:#064e3b;--ticker-border:#059669
    }
    .company-filter-clear{
      background:#edf2ff;color:#244ec7;border-color:#b8c8f5
    }
    .owned-products-panel{margin-bottom:18px}
    .owned-products-head{
      display:flex;align-items:flex-start;justify-content:space-between;
      gap:16px;margin-bottom:12px
    }
    .owned-products-head h2{margin-bottom:3px}
    .owned-products-count{
      flex:0 0 auto;border:1px solid var(--line);border-radius:999px;
      padding:6px 10px;background:#f7f9fd;color:var(--muted);
      font-size:12px;font-weight:900
    }
    .owned-products-field{display:grid;gap:7px}
    .owned-products-field > span{font-size:12px;font-weight:900;color:var(--muted)}
    .owned-products-field textarea{
      width:100%;min-height:150px;resize:vertical;border:1px solid var(--line);
      border-radius:13px;padding:12px 13px;background:white;color:var(--ink);
      font:inherit;line-height:1.45
    }
    .owned-products-field textarea:focus{
      outline:3px solid rgba(36,78,199,.18);border-color:#8eaaf2
    }
    .owned-products-actions{
      display:flex;flex-wrap:wrap;gap:8px;margin-top:10px
    }
    .owned-products-text-actions{justify-content:flex-end}
    .owned-products-match-action{
      padding:8px 11px;font-size:12px;line-height:1.25;white-space:nowrap
    }
    .owned-products-conversion{
      margin-top:13px;border:1px solid var(--line);border-radius:14px;
      background:#fbfcfe;overflow:hidden
    }
    .owned-products-conversion-summary{
      list-style:none;display:grid;grid-template-columns:minmax(0,1fr) auto auto auto;
      align-items:center;gap:11px;padding:13px 14px;cursor:pointer;
      background:linear-gradient(135deg,#fbfcfe,#f4f7ff)
    }
    .owned-products-conversion-summary::-webkit-details-marker{display:none}
    .owned-products-conversion-summary::marker{content:""}
    .owned-products-conversion-summary::after{
      content:"▾";color:var(--muted);font-size:15px;line-height:1;
      transition:transform .16s ease
    }
    /*
      Scoped to `details` on purpose. The matching section is a div-based
      disclosure now, and a bare `:not([open])` matches every element that is
      not a details — so the unscoped rule left its chevron permanently
      sideways.
    */
    details.owned-products-conversion:not([open]) > .owned-products-conversion-summary::after{
      transform:rotate(-90deg)
    }
    .owned-products-disclosure.is-collapsed > .owned-products-conversion-summary::after{
      transform:rotate(-90deg)
    }
    /*
      The toggle is an empty button stretched across the header, sitting under
      the row's contents rather than wrapping them. That keeps the whole header
      clickable — which is what the <summary> gave for free — without making
      the action button a descendant of another control.

      Title and count opt out of pointer events so a click on them reaches the
      toggle underneath. The action button keeps its own, so it stays the
      target within its own box.
    */
    .owned-products-conversion-header{position:relative}
    .owned-products-conversion-toggle{
      position:absolute;inset:0;width:100%;margin:0;padding:0;border:0;
      background:none;cursor:pointer
    }
    .owned-products-conversion-toggle:focus-visible{
      outline:3px solid rgba(36,78,199,.28);outline-offset:-3px;border-radius:13px
    }
    .owned-products-conversion-header > .owned-products-conversion-title,
    .owned-products-conversion-header > .owned-products-conversion-count{
      position:relative;pointer-events:none
    }
    .owned-products-conversion-header > .owned-products-match-action{position:relative}
    .owned-products-conversion-header::after{position:relative}
    .owned-products-conversion-title{min-width:0}
    .owned-products-conversion-title strong{display:block;font-size:15px;line-height:1.3}
    .owned-products-conversion-title span{
      display:block;margin-top:2px;color:var(--muted);font-size:11px;line-height:1.35
    }
    .owned-products-conversion-count{
      border:1px solid #b8c8f5;border-radius:999px;background:white;color:#244ec7;
      padding:4px 8px;font-size:10px;font-weight:900;white-space:nowrap
    }
    .owned-products-conversion-body{
      padding:0 13px 13px;border-top:1px solid var(--line);background:white
    }
    .owned-products-status{
      margin-top:10px;padding:10px 11px;border:1px solid var(--line);
      border-radius:11px;background:#f7f9fd;color:var(--muted);font-size:12px
    }
    .owned-products-results{display:grid;gap:7px;margin-top:9px}
    .owned-products-result{
      border:1px solid var(--line);border-radius:10px;background:white;
      padding:9px 10px;font-size:12px
    }
    .owned-products-result strong{display:block;margin-bottom:2px}
    /* Title left, remove control pinned right, wrapping rather than clipping
       when the title carries several comma-joined entries. */
    .owned-products-result-head{
      display:flex;align-items:flex-start;justify-content:space-between;
      gap:8px;flex-wrap:wrap
    }
    .owned-products-result-head > strong{flex:1 1 auto;min-width:0}
    .owned-products-remove{
      flex:0 0 auto;border:1px solid #d8a7a3;border-radius:8px;
      background:var(--danger-bg);color:var(--danger);padding:3px 8px;
      font-size:10px;font-weight:900;cursor:pointer;line-height:1.5
    }
    .owned-products-remove:hover{background:#ffe4e0}
    .owned-products-remove:focus-visible{
      outline:2px solid var(--danger);outline-offset:2px
    }
    .owned-products-result.matched,
    .owned-products-result.multi{border-color:#9fd6bb;background:var(--yes-bg)}
    .owned-products-result.review{border-color:#ead18d;background:var(--unsure-bg)}
    .owned-products-result.private{
      border-color:#aebfe8;background:#eef3ff
    }
    /* Collapsible group wrapper for result rows of one kind. */
    .owned-products-group{
      border:1px solid var(--line);border-radius:10px;padding:9px 10px;
      background:white;font-size:12px
    }
    .owned-products-group.private{border-color:#aebfe8;background:#f6f9ff}
    .owned-products-group.matched{border-color:#9fd6bb;background:#f4fbf7}
    .owned-products-group-summary{
      cursor:pointer;font-weight:900;list-style:none;
      display:flex;align-items:center;gap:6px
    }
    .owned-products-group-summary::-webkit-details-marker{display:none}
    .owned-products-group-summary::marker{content:""}
    .owned-products-group-summary::after{
      content:"Hide";margin-left:auto;font-size:11px;font-weight:650;
      color:var(--brand);white-space:nowrap
    }
    .owned-products-group:not([open]) > .owned-products-group-summary::after{content:"Show"}
    .owned-products-group-summary:focus-visible{
      outline:2px solid var(--brand);outline-offset:2px;border-radius:6px
    }
    .owned-products-group-note{
      margin:6px 0 0;font-size:11px;color:var(--muted);line-height:1.5
    }
    /* Rows nested in a group drop the outer chrome the group now provides. */
    .owned-products-group > .owned-products-result{
      margin-top:7px;background:white
    }
    .owned-products-group.matched > .owned-products-result.matched,
    .owned-products-group.matched > .owned-products-result.multi{
      border-color:#9fd6bb;background:var(--yes-bg)
    }
    .owned-products-result.unmatched{background:#f7f9fd}
    .owned-products-result.filtered{border-style:dashed}
    .owned-products-match-detail{
      display:flex;flex-wrap:wrap;align-items:center;gap:5px;
      margin-top:3px
    }
    .owned-products-match-connection{
      display:inline-flex;flex-wrap:wrap;align-items:center;gap:4px
    }
    .owned-products-match-separator{
      color:var(--muted);font-weight:800;padding:0 2px
    }
    .owned-products-ticker{
      padding:2px 7px;border-width:1px;border-radius:7px;
      margin:0;font-size:11px;vertical-align:middle
    }
    .owned-products-ticker::before{
      width:6px;height:6px
    }
    .owned-products-ticker.active{
      box-shadow:0 0 0 2px #fff,0 0 0 4px var(--ticker-border)
    }
    .owned-products-ticker .company-logo{user-select:none;-webkit-user-select:none}
    .owned-products-ticker .company-logo-fallback{font-size:0}
    .ticker-button.ticker-jump-highlight{
      position:relative;z-index:1;
      animation:tickerJumpHighlight 1.6s ease-out
    }
    @keyframes tickerJumpHighlight{
      0%,35%{box-shadow:0 0 0 4px rgba(36,78,199,.34),0 0 0 9px rgba(36,78,199,.12)}
      100%{box-shadow:0 0 0 0 rgba(36,78,199,0),0 0 0 0 rgba(36,78,199,0)}
    }
    @media (prefers-reduced-motion:reduce){
      .ticker-button.ticker-jump-highlight{animation:none;outline:3px solid rgba(36,78,199,.34);outline-offset:3px}
    }
    .noninvestable-directory{
      margin-top:14px;border-top:1px solid var(--line);padding-top:12px
    }
    .noninvestable-directory summary{
      cursor:pointer;font-weight:900;line-height:1.35
    }
    .noninvestable-directory > p{
      color:var(--muted);font-size:12px;margin:9px 0
    }
    .noninvestable-search{width:100%;margin-bottom:9px}
    .noninvestable-list{
      display:grid;grid-template-columns:repeat(2,minmax(0,1fr));
      gap:7px;max-height:480px;overflow:auto;padding-right:3px
    }
    .noninvestable-item{
      border:1px solid var(--line);border-radius:10px;background:#f9fbff;
      padding:9px 10px;font-size:12px
    }
    .noninvestable-item strong{display:block;margin-bottom:2px}
    .noninvestable-item .private-category{
      display:inline-block;margin-top:5px;border-radius:999px;
      background:#e9eef9;color:#43516c;padding:2px 7px;
      font-size:10px;font-weight:850
    }
    .noninvestable-empty{
      grid-column:1/-1;color:var(--muted);padding:9px 0;font-size:12px
    }
    .checker-row{display:grid;grid-template-columns:1fr auto;gap:8px}
    .checker-row input{min-width:0;border:1px solid var(--line);border-radius:11px;padding:10px 11px}
    .lookup-result{margin-top:10px;padding:11px;border-radius:11px;background:#f7f9fd;border:1px solid var(--line);display:none}
    .lookup-log{margin-top:12px;display:grid;gap:7px}
    .lookup-chip{font-size:12px;border:1px solid var(--line);border-radius:10px;padding:8px;background:white}
    .note{
      background:#f7f9fd;border:1px solid var(--line);border-radius:12px;padding:12px;color:var(--muted);font-size:12px
    }
    .sources details{border-top:1px solid var(--line);padding-top:12px;margin-top:12px}
    .sources summary{cursor:pointer;font-weight:900}
    .sources ul{padding-left:19px;color:var(--muted);font-size:12px}
    .tier-legend{
      margin-top:14px;border-top:1px solid var(--line);padding-top:12px
    }
    .tier-legend summary{cursor:pointer;font-weight:900}
    .tier-legend p{color:var(--muted);font-size:12px;margin:9px 0}
    .tier-row{
      display:grid;grid-template-columns:14px 1fr auto;align-items:center;gap:9px;
      padding:7px 0;border-top:1px solid rgba(101,112,134,.16);font-size:12px
    }
    .tier-row span:last-child{text-align:right;color:var(--muted);font-weight:800}
    .tier-swatch{
      width:12px;height:12px;border-radius:50%;border:2px solid currentColor
    }
    .swatch-buyer{background:#fef3c7;color:#b45309}
    .swatch-multi{background:#ffedd5;color:#c2410c}
    .swatch-regular{background:#dbeafe;color:#2563eb}
    .swatch-loyalist{background:#ede9fe;color:#7c3aed}
    .swatch-superfan{background:#fce7f3;color:#db2777}
    .swatch-completionist{background:#d1fae5;color:#059669}
    /* ── Confirmed products ─────────────────────────────────────────────── */
    .confirmed-products-search{display:flex;gap:7px;align-items:center;margin-bottom:8px}
    .confirmed-products-search input{
      flex:1;min-width:0;padding:9px 11px;border:1px solid var(--line);
      border-radius:10px;font-size:13px;font-family:inherit
    }
    .confirmed-products-search input:focus-visible{
      outline:2px solid var(--brand);outline-offset:1px
    }
    .confirmed-products-status{
      margin:0 0 10px;font-size:12px;color:var(--muted);min-height:1em
    }
    .confirmed-products-empty{margin:0;font-size:12px;color:var(--muted)}
    /* Explains a miss the audit can account for, so an empty result is not
       mistaken for missing catalog data. */
    .confirmed-products-why{
      margin:7px 0 0;padding:9px 10px;border:1px solid #aebfe8;border-radius:9px;
      background:#f6f9ff;font-size:12px;color:#355b9c;line-height:1.5
    }
    .confirmed-catalog-fallback{
      margin-top:10px;padding:11px;border:1px solid #b8c7e8;border-radius:10px;
      background:#f7f9ff
    }
    .confirmed-catalog-fallback-title{
      margin:0 0 4px;font-size:13px;color:var(--ink)
    }
    .confirmed-catalog-fallback-copy{
      margin:0 0 8px;font-size:12px;color:var(--muted);line-height:1.45
    }
    .confirmed-catalog-fallback-list{
      list-style:none;margin:0 0 9px;padding:0;display:grid;gap:5px
    }
    .confirmed-catalog-fallback-list li{
      display:flex;align-items:flex-start;gap:8px;padding:7px 8px;
      border:1px solid var(--line);border-radius:8px;background:#fff
    }
    .confirmed-catalog-fallback-ticker{
      flex:0 0 auto;padding:2px 6px;border-radius:999px;background:#eef2f8;
      color:#596274;font-size:10px;font-weight:850;letter-spacing:.04em
    }
    .confirmed-catalog-fallback-product{
      min-width:0;display:flex;flex-direction:column;gap:1px;font-size:11px;color:var(--muted)
    }
    .confirmed-catalog-fallback-product strong{font-size:12px;color:var(--ink)}
    .confirmed-catalog-fallback-action{font-size:11px;padding:5px 9px}
    .confirmed-group{
      border:1px solid var(--line);border-radius:11px;padding:10px 11px;
      background:#fbfcff;margin-bottom:8px
    }
    .confirmed-group:last-child{margin-bottom:0}
    .confirmed-group-head{
      display:flex;flex-wrap:wrap;align-items:center;gap:7px;
      cursor:pointer;list-style:none
    }
    .confirmed-group-head::-webkit-details-marker{display:none}
    .confirmed-group-head::marker{content:""}
    .confirmed-group-head::after{
      content:"Hide";font-size:11px;font-weight:650;color:var(--brand);white-space:nowrap
    }
    .confirmed-group:not([open]) > .confirmed-group-head::after{content:"Show"}
    .confirmed-group-head:focus-visible{
      outline:2px solid var(--brand);outline-offset:2px;border-radius:8px
    }
    .confirmed-group[open] > .confirmed-group-head{margin-bottom:7px}
    .confirmed-group-ticker{
      font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.05em;
      background:#eef2f8;border-radius:999px;padding:3px 8px;color:#596274;white-space:nowrap
    }
    .confirmed-group-name{font-weight:650;font-size:12px;color:var(--ink)}
    .confirmed-group-count{
      margin-left:auto;font-size:11px;color:var(--muted);white-space:nowrap
    }
    .confirmed-group-actions{margin:0 0 7px}
    .confirmed-group-ticker.private{background:#eef0f4;color:#4b5563}
    .confirmed-group-note{font-size:11px;color:var(--muted);font-style:italic;line-height:1.5}
    .confirmed-group-filter{font-size:11px;padding:4px 9px}
    .confirmed-group-filter[aria-pressed="true"]{
      background:var(--brand);border-color:var(--brand);color:#fff
    }
    .confirmed-product-list{list-style:none;margin:0;padding:0;display:grid;gap:4px}
    .confirmed-product{
      display:flex;flex-wrap:wrap;align-items:center;gap:6px;
      padding:6px 8px;border-radius:8px;background:white;
      border:1px solid var(--line);font-size:12px
    }
    .confirmed-product-select{
      flex:0 0 auto;width:15px;height:15px;accent-color:var(--brand);cursor:pointer;margin:0
    }
    .confirmed-product.selected{border-color:#b9c8ea;background:#f4f7fe}
    .confirmed-product-name{color:var(--ink)}
    /* ── Selected-product donut ─────────────────────────────────────────── */
    .confirmed-selection{
      margin:0 0 11px;padding:11px 12px;border:1px solid #b9c8ea;
      border-radius:11px;background:#f7f9ff
    }
    .selection-summary{margin:0 0 9px;font-size:12px;font-weight:650;color:var(--ink)}
    .selection-body{display:flex;flex-wrap:wrap;gap:14px;align-items:center}
    .selection-donut{position:relative;width:104px;height:104px;flex:0 0 auto}
    .selection-donut-svg{width:100%;height:100%;transform:rotate(-90deg)}
    .selection-donut-centre{
      position:absolute;inset:0;display:flex;flex-direction:column;
      align-items:center;justify-content:center;text-align:center;pointer-events:none
    }
    .selection-donut-centre strong{font-size:19px;color:var(--ink);line-height:1}
    .selection-donut-centre span{font-size:10px;color:var(--muted)}
    .selection-legend{
      list-style:none;margin:0;padding:0;display:grid;gap:4px;flex:1;min-width:150px
    }
    .selection-legend li{display:flex;align-items:center;gap:7px;font-size:12px}
    .selection-swatch{
      width:11px;height:11px;border-radius:3px;flex:0 0 auto;
      border:1px solid rgba(0,0,0,.12)
    }
    .selection-legend-ticker{font-weight:650;color:var(--ink)}
    .selection-legend-count{margin-left:auto;color:var(--muted);white-space:nowrap}
    .confirmed-products-actions{display:flex;flex-wrap:wrap;gap:7px;margin-bottom:8px}
    .confirmed-products-actions .btn{font-size:12px}
    .confirmed-products-actions .btn:disabled{opacity:.45;cursor:default}
    .confirmed-products-actions .btn.active{
      background:var(--brand);border-color:var(--brand);color:#fff
    }
    @media (max-width:720px){
      .confirmed-products-actions .btn{flex:1}
    }
    @media (max-width:720px){
      .selection-body{gap:11px}
      .selection-donut{width:88px;height:88px}
    }
    /* Explains an alias or description hit, so a result whose visible name does
       not contain the query does not read as a false positive. */
    .confirmed-product-why{
      font-size:11px;color:var(--brand);font-style:italic;white-space:nowrap
    }
    .confirmed-product-tag{
      margin-left:auto;padding:1px 7px;border-radius:999px;
      font-size:10px;font-weight:650;white-space:nowrap
    }
    .confirmed-product-tag.supplier{background:#f3eeff;color:#5127b5;border:1px solid #d5c6f5}
    .confirmed-product-tag.custom{background:var(--no-bg);color:var(--no);border:1px solid var(--line)}
    /* Available but not answered Yes: recedes so a confirmed answer still reads
       as the stronger statement, without hiding the row. */
    .confirmed-product-tag.unconfirmed{
      background:#fff;color:var(--muted);border:1px dashed var(--line)
    }
    .confirmed-product.unconfirmed{background:#fcfdff;border-style:dashed}
    .confirmed-product.unconfirmed .confirmed-product-name{color:var(--muted)}
    @media (max-width:720px){
      .confirmed-products-search{flex-wrap:wrap}
      .confirmed-products-search input{width:100%}
      .confirmed-group-count{margin-left:0;width:100%}
    }

    .swatch-supplier{background:#f3eeff;color:#5127b5}
    .swatch-none{background:#fee2e2;color:#b91c1c}
    .swatch-incomplete{background:#f3f4f6;color:#6b7280}
    .swatch-na{background:#e2e8f0;color:#64748b}
    .remaining-actions{
      display:flex;align-items:center;justify-content:space-between;gap:14px;
      margin:0 0 16px;padding:14px 15px;border:1px solid #b8c8f5;
      border-radius:14px;background:linear-gradient(135deg,#f5f8ff,#eef2ff)
    }
    .remaining-actions-copy{display:grid;gap:2px;min-width:0}
    .remaining-actions-copy strong{font-size:15px;line-height:1.3}
    .remaining-actions-copy span{color:var(--muted);font-size:12px}
    .remaining-actions-buttons{
      display:flex;flex-wrap:wrap;justify-content:flex-end;gap:8px
    }
    .remaining-actions .btn{flex:0 0 auto}
    .remaining-actions .btn:disabled{opacity:.55;cursor:not-allowed}
    .footer-actions{display:grid;grid-template-columns:1fr;gap:8px;margin-top:14px}
    .filters-panel{margin-bottom:18px}
    .filter-cluster{
      min-width:0;margin:0 0 16px;padding:15px;border:1px solid var(--line);
      border-radius:16px;background:#fbfcfe
    }
    .filter-cluster > legend{
      padding:0 8px;color:var(--ink);font-size:17px;font-weight:950;
      letter-spacing:-.01em
    }
    .filter-cluster-description{
      margin:0 0 13px;color:var(--muted);font-size:12px
    }
    .filter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
    .filter-group{
      min-width:0;padding:13px;border:1px solid var(--line);border-radius:13px;
      background:white
    }
    .filter-group.wide{grid-column:1/-1}
    .relevance-section + .relevance-section{
      margin-top:17px;padding-top:17px;border-top:1px solid var(--line)
    }
    .relevance-section-head{
      display:flex;align-items:flex-start;justify-content:space-between;gap:12px;
      margin-bottom:10px
    }
    .relevance-section-head h3{margin:0;font-size:15px;line-height:1.25}
    .relevance-section-head p{margin:3px 0 0;color:var(--muted);font-size:11px}
    .filter-count{
      flex:0 0 auto;border:1px solid var(--line);border-radius:999px;
      padding:4px 8px;background:white;color:var(--muted);font-size:10px;font-weight:900
    }
    .relevance-grid{
      display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px
    }
    .relevance-card{
      border:1px solid var(--line);border-radius:13px;background:white;
      padding:12px;display:flex;flex-direction:column;gap:7px
    }
    .relevance-question{font-weight:900;line-height:1.3}
    .relevance-card > p{margin:0;color:var(--muted);font-size:12px}
    .relevance-card .profile-status{margin-top:auto}
    .filter-title{font-weight:900;margin-bottom:2px}
    .filter-description{font-size:12px;color:var(--muted);margin:0 0 9px}
    .profile-options{display:grid;grid-template-columns:1fr 1fr;gap:7px}
    .profile-options.three{grid-template-columns:repeat(3,1fr)}
    .profile-options.one{grid-template-columns:1fr}
    .profile-choice{
      border:1px solid var(--line);border-radius:11px;padding:9px 10px;background:white;
      color:var(--muted);font-weight:850
    }
    .profile-choice.active{background:#edf2ff;color:#244ec7;border-color:#9ab3f5}
    .profile-status{margin-top:9px;padding:10px;border-radius:11px;background:#f7f9fd;border:1px solid var(--line);font-size:12px;color:var(--muted)}
    .filter-summary{margin-top:12px;padding:11px;border-radius:12px;background:#f7f9fd;border:1px solid var(--line);font-size:12px;color:var(--muted)}
    .bottom-filter-summary{margin-top:18px;margin-bottom:0;line-height:1.55}
    .unanswered-status{
      display:flex;align-items:center;gap:8px;margin:0 0 14px;padding:10px 13px;
      border:1px solid #b8c8f5;border-radius:13px;background:#edf2ff;
      color:#244ec7;font-size:13px;font-weight:800
    }
    .unanswered-status[hidden]{display:none}
    .unanswered-status strong{font-size:16px}
    .performance-diagnostic{
      margin:0 0 12px;padding:10px 12px;border:1px solid #e6b75d;
      border-radius:11px;background:#fff8e8;color:#76510a;font-size:12px;font-weight:750
    }
    .performance-diagnostic[hidden]{display:none}
    .btn.question-mode-active{
      background:#172033;color:white;border-color:#172033;
      box-shadow:0 0 0 3px rgba(23,32,51,.12)
    }
    .brand-card.non-applicable-card{
      background:#f8fafc;color:var(--muted)
    }
    .brand-card.non-applicable-card .brand-name{color:#39445a}
    .exclusion-reason{
      margin:8px 0 10px;padding:8px 10px;border:1px solid #cbd5e1;
      border-radius:10px;background:#eef2f6;color:#475569;font-size:12px;font-weight:800
    }
    .answers.is-disabled{opacity:.58}
    .answers.is-disabled .answer{cursor:not-allowed}
    .category-mode-note{
      color:var(--muted);font-size:12px;font-weight:850
    }
    @media (max-width:1050px){.relevance-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
    @media (max-width:900px){.filter-grid{grid-template-columns:1fr}}
    @media (max-width:620px){
      .profile-options.three{grid-template-columns:1fr}
      .relevance-grid{grid-template-columns:1fr}
      .filter-cluster{padding:12px}
      .relevance-section-head{flex-direction:column}
      details.relevance-section > .relevance-section-head{
        grid-template-columns:minmax(0,1fr) auto;
        grid-template-areas:
          "section-title section-arrow"
          "section-count section-count";
      }
      details.relevance-section > .relevance-section-head .filter-count{
        justify-self:start;margin-top:2px
      }
      .noninvestable-list{grid-template-columns:1fr}
      .company-status-header{flex-direction:column}
      .company-status-controls{width:100%;align-items:stretch;flex-direction:column}
      .company-status-hidden-toggle{width:100%}
      .company-status-sort-control{width:100%;min-width:0}
      .company-status-select-shell,.company-status-sort-control select{max-width:none;width:100%}
    }
    .empty{
      display:none;text-align:center;padding:36px 16px;color:var(--muted);border:1px dashed var(--line);border-radius:15px
    }
    .toast{
      position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(20px);
      background:#172033;color:white;padding:10px 14px;border-radius:11px;opacity:0;pointer-events:none;transition:.2s;
      box-shadow:var(--shadow);z-index:100
    }
    .toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
    @media (max-width:1050px){
      .profile-controls{grid-template-columns:repeat(4,minmax(0,1fr))}
      .profile-field{grid-column:span 2}
    }
    @media (max-width:900px){
      .hero,.layout{grid-template-columns:1fr}
      .sidebar{position:static}
      .company-results-panel{
        max-height:none;overflow:visible;overscroll-behavior:auto;scrollbar-gutter:auto;padding-right:20px
      }
      .toolbar{top:6px}
    }
    @media (max-width:620px){
      .app{padding:14px 10px 90px}
      .hero-main{padding:20px}
      .scope{grid-template-columns:1fr}
      .hero-side{grid-template-columns:1fr;gap:14px;padding:15px}
      .overall-audit-summary .progress-wrap{margin-top:16px}
      .profile-manager-head,.owned-products-head{flex-direction:column}
      .owned-products-conversion-summary{grid-template-columns:minmax(0,1fr) auto}
      .owned-products-conversion-count{grid-column:1/2;justify-self:start}
      .owned-products-conversion-summary::after{grid-column:2;grid-row:1}
      .owned-products-match-action{
        grid-column:1/-1;grid-row:3;justify-self:stretch;width:100%;margin-top:1px
      }
      .profile-controls{grid-template-columns:1fr 1fr}
      .profile-field{grid-column:1/-1}
      .toolbar{display:grid;grid-template-columns:1fr 1fr}
      .toolbar .search{grid-column:1/-1;width:100%}
      .toolbar .btn{width:100%}
      .brand-list{grid-template-columns:1fr}
      .category-head{align-items:flex-start;flex-direction:column}
      .category-actions{justify-content:flex-start}
      .remaining-actions{align-items:stretch;flex-direction:column}
      .remaining-actions-buttons{width:100%;display:grid;grid-template-columns:1fr}
      .remaining-actions .btn{width:100%}
    }
  

    /* Collapsible audit sections */
    details > summary{cursor:pointer}
    details > summary::-webkit-details-marker{display:none}
    details > summary::marker{content:""}
    .filter-cluster{
      padding:0;overflow:hidden
    }
    .filter-cluster-summary{
      list-style:none;display:flex;align-items:center;justify-content:space-between;gap:12px;
      padding:15px;color:var(--ink);font-size:17px;font-weight:950;letter-spacing:-.01em;
      background:linear-gradient(135deg,#fbfcfe,#f5f8ff)
    }
    .filter-cluster-summary::after,
    .relevance-section-head::after,
    .relevance-card > .relevance-question::after,
    .category > .category-head::after{
      content:"▾";flex:0 0 auto;color:var(--muted);font-size:15px;line-height:1;
      transition:transform .16s ease
    }
    details:not([open]) > .filter-cluster-summary::after,
    details:not([open]) > .relevance-section-head::after,
    details:not([open]) > .relevance-question::after,
    details:not([open]) > .category-head::after{transform:rotate(-90deg)}
    .filter-cluster[open] > .filter-cluster-summary{border-bottom:1px solid var(--line)}
    .filter-cluster-body{padding:15px}
    .filter-cluster-body > .filter-cluster-description{margin-top:0}

    details.relevance-section{display:block}
    details.relevance-section + details.relevance-section{
      margin-top:17px;padding-top:17px;border-top:1px solid var(--line)
    }
    details.relevance-section > .relevance-section-head{
      list-style:none;display:grid;
      grid-template-columns:minmax(0,1fr) auto auto;
      grid-template-areas:"section-title section-count section-arrow";
      align-items:start;column-gap:10px;row-gap:6px;
      margin:0;padding:12px 13px;
      border:1px solid var(--line);border-radius:13px;
      background:linear-gradient(135deg,#fbfcfe,#f5f8ff)
    }
    details.relevance-section > .relevance-section-head::after{
      grid-area:section-arrow;margin-top:3px
    }
    .relevance-section-title{
      grid-area:section-title;display:block;min-width:0
    }
    .relevance-section-title strong{
      display:block;margin:0;font-size:16px;line-height:1.25;letter-spacing:-.01em
    }
    .relevance-section-title small{
      display:block;margin-top:5px;max-width:72ch;
      color:var(--muted);font-size:12px;font-weight:500;line-height:1.45
    }
    details.relevance-section > .relevance-section-head .filter-count{
      grid-area:section-count;align-self:start;margin-top:0;white-space:nowrap
    }
    details.relevance-section[open] > .relevance-section-head{
      margin-bottom:11px;border-color:#cfd8ee
    }
    details.relevance-section:not([open]) > .relevance-section-head{padding:12px 13px}

    details.relevance-card{
      display:block;padding:0;overflow:hidden;min-width:0
    }
    details.relevance-card > .relevance-question{
      list-style:none;display:grid;grid-template-columns:minmax(0,1fr) auto;
      align-items:start;gap:8px;padding:12px;font-weight:900;line-height:1.3
    }
    details.relevance-card[open] > .relevance-question{
      border-bottom:1px solid rgba(101,112,134,.15);background:#fbfcfe
    }
    details.relevance-card > p{margin:10px 12px 0;color:var(--muted);font-size:12px}
    details.relevance-card > .profile-options{margin:10px 12px 0}
    details.relevance-card > .profile-status{margin:9px 12px 12px}

    details.category > .category-head{
      list-style:none;display:grid;grid-template-columns:minmax(0,1fr) auto auto;
      align-items:center;gap:12px
    }
    details.category[open] > .category-head{border-bottom:1px solid var(--line)}
    .category-heading-main{display:flex;align-items:center;gap:10px;min-width:0}
    .category-count{
      flex:0 0 auto;border:1px solid var(--line);border-radius:999px;padding:4px 8px;
      background:white;color:var(--muted);font-size:10px;font-weight:900
    }
    details.category > .category-actions{
      padding:10px 16px;border-bottom:1px solid var(--line);background:#fbfcfe
    }



    /* Polished filter-question layout */
    .filters-panel > h2{margin-bottom:5px}
    .filters-panel > .panel-sub{max-width:82ch;line-height:1.5}
    .filter-cluster-summary{
      min-height:52px;text-wrap:balance
    }
    .filter-cluster-description{
      max-width:90ch;line-height:1.5
    }
    .filter-grid{
      grid-template-columns:repeat(2,minmax(0,1fr));gap:14px
    }
    .filter-group{
      display:flex;flex-direction:column;min-width:0;padding:15px
    }
    .filter-title{
      margin:0 0 5px;font-size:14px;line-height:1.35;text-wrap:balance
    }
    .filter-description{
      margin:0 0 12px;line-height:1.5;text-wrap:pretty;overflow-wrap:anywhere
    }
    .filter-group .profile-options{margin-top:auto}

    .relevance-grid{
      grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;align-items:start
    }
    details.relevance-card{
      align-self:start;border-radius:14px;box-shadow:0 1px 2px rgba(23,32,51,.04);
      transition:border-color .16s ease,box-shadow .16s ease,transform .16s ease
    }
    details.relevance-card:hover{
      border-color:#c5cfdf;box-shadow:0 5px 16px rgba(23,32,51,.07)
    }
    details.relevance-card > .relevance-question{
      grid-template-columns:minmax(0,1fr) 18px;gap:12px;align-items:start;
      min-height:52px;padding:14px 15px;font-size:14px;line-height:1.45;
      letter-spacing:-.004em;text-wrap:pretty;overflow-wrap:anywhere
    }
    details.relevance-card > .relevance-question::after{
      justify-self:end;margin-top:3px
    }
    details.relevance-card[open] > .relevance-question{
      background:linear-gradient(135deg,#fbfcfe,#f7f9fd)
    }
    details.relevance-card > p{
      margin:12px 15px 0;font-size:12.5px;line-height:1.5;
      text-wrap:pretty;overflow-wrap:anywhere
    }
    details.relevance-card > .profile-options{
      margin:12px 15px 0;gap:8px
    }
    details.relevance-card > .profile-status{
      margin:10px 15px 15px;padding:9px 10px;line-height:1.4;overflow-wrap:anywhere
    }
    details.relevance-card .profile-choice{
      display:flex;align-items:center;justify-content:center;min-height:40px;
      padding:9px 8px;line-height:1.2;text-align:center;white-space:normal
    }
    .relevance-section-head{
      text-wrap:pretty
    }
    .relevance-section-title strong,
    .relevance-section-title small{overflow-wrap:anywhere}

    @media (max-width:880px){
      .filter-grid,.relevance-grid{grid-template-columns:1fr}
    }
    @media (max-width:620px){
      details.relevance-card > .relevance-question{font-size:13.5px;padding:13px}
      details.relevance-card > p{margin-left:13px;margin-right:13px}
      details.relevance-card > .profile-options{margin-left:13px;margin-right:13px}
      details.relevance-card > .profile-status{margin-left:13px;margin-right:13px}
      details.relevance-card > .profile-options.three{grid-template-columns:repeat(3,minmax(0,1fr))}
    }
    @media (max-width:390px){
      details.relevance-card > .profile-options.three{grid-template-columns:1fr}
    }

    .panel-collapse-toggle{
      flex:0 0 auto;border:1px solid var(--line);border-radius:9px;background:white;
      color:var(--muted);padding:6px 9px;font-size:11px;font-weight:900
    }
    .panel-collapse-toggle:hover{border-color:#aeb9cb;color:var(--ink)}
    .panel-collapse-toggle:focus-visible{outline:3px solid rgba(36,78,199,.24);outline-offset:2px}
    .panel-disclosure-heading{display:flex;align-items:center;justify-content:space-between;gap:12px}
    .panel-collapse-content[hidden]{display:none!important}
    .company-results-panel.panel-is-collapsed{max-height:none;overflow:visible;padding-right:20px}
    .collapse-controls{display:flex;gap:7px}

    @media (max-width:1050px){
      details.relevance-section > .relevance-section-head{grid-template-columns:minmax(0,1fr) auto auto}
    }
    @media (max-width:620px){
      details.relevance-section > .relevance-section-head{grid-template-columns:minmax(0,1fr) auto}
      details.relevance-section > .relevance-section-head .filter-count{grid-column:1/2}
      .filter-cluster-body{padding:12px}
      .category-count{display:none}
    }

  
.company-multiselect-note{margin:.35rem 0 .65rem;color:var(--muted);font-size:.82rem;line-height:1.35}

.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}
.ownership-chart-wrap{
  grid-column:2;grid-row:1/span 2;width:100%;min-width:0;align-self:stretch;
  margin:0;padding:0;border:0
}
.ownership-chart-head{display:flex;flex-direction:column;gap:4px;margin-bottom:12px}
.ownership-chart-search{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:8px;align-items:center;margin-top:8px}
.ownership-chart-search input{width:100%;min-width:0;border:1px solid var(--line);border-radius:10px;padding:9px 11px;background:#fff;color:var(--text);font:inherit}
.ownership-chart-search input:focus{outline:2px solid var(--brand);outline-offset:1px;border-color:var(--brand)}
.ownership-chart-search-clear{border:1px solid var(--line);border-radius:10px;padding:9px 12px;background:#fff;color:var(--text);font:inherit;font-weight:700;cursor:pointer}
.ownership-chart-search-clear:hover,.ownership-chart-search-clear:focus-visible{border-color:var(--brand);background:var(--brand-soft);outline:none}
.ownership-chart-search-clear[hidden]{display:none}
.ownership-chart-search-status{grid-column:1/-1;margin:0;font-size:12px;color:var(--muted)}
.ownership-chart-private-toggle{
  align-self:flex-start;display:inline-flex;align-items:center;gap:7px;
  margin-top:4px;border:1px solid var(--line);border-radius:999px;
  padding:6px 10px;background:#fff;color:var(--muted);font:inherit;
  font-size:11px;font-weight:850;cursor:pointer
}
.ownership-chart-private-toggle:hover:not(:disabled),
.ownership-chart-private-toggle:focus-visible{border-color:#6b7280;background:#f3f4f6;color:var(--ink);outline:none}
.ownership-chart-private-toggle:focus-visible{box-shadow:0 0 0 3px rgba(107,114,128,.20)}
.ownership-chart-private-toggle[aria-pressed="true"]{border-color:#6b7280;background:#eef0f2;color:#374151}
.ownership-chart-private-toggle:disabled{cursor:not-allowed;opacity:.55}
.ownership-chart-private-swatch{width:10px;height:10px;border-radius:999px;background:linear-gradient(135deg,#566b7f 0 50%,#9a6b49 50% 100%);box-shadow:inset 0 0 0 1px rgba(15,23,42,.12)}
.ownership-chart-private-count{min-width:20px;border-radius:999px;padding:1px 5px;background:#e5e7eb;color:#4b5563;text-align:center;font-variant-numeric:tabular-nums}
.ownership-donut{grid-column:1;grid-row:2;justify-self:start;position:relative;width:180px;height:180px;border-radius:50%;background:#e8edf5;box-shadow:inset 0 0 0 1px rgba(15,23,42,.06)}
.ownership-donut-svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;transform:rotate(-90deg)}
.ownership-slice{fill:none;stroke-width:30;cursor:pointer;transition:opacity .16s ease,stroke-width .16s ease,filter .16s ease}
.ownership-slice:hover,.ownership-slice:focus{opacity:.82;stroke-width:34;outline:none;filter:drop-shadow(0 0 2px rgba(15,23,42,.24))}
.ownership-slice.active{stroke-width:36;filter:drop-shadow(0 0 3px rgba(15,23,42,.36))}
.ownership-slice.search-muted{opacity:.12;stroke-width:26;filter:none}
.ownership-slice.search-match{stroke-width:34}
.ownership-donut-center{position:absolute;inset:30px;z-index:1;display:grid;place-content:center;text-align:center;padding:12px;border-radius:50%;background:#fff;box-shadow:inset 0 0 0 1px var(--line);pointer-events:none}
.ownership-donut-center strong{font-size:28px;line-height:1;color:var(--text)}
.ownership-donut-center strong.compact-label{
  display:block;max-width:96px;margin-inline:auto;font-size:14px;line-height:1.15;
  overflow-wrap:normal;word-break:normal;text-wrap:balance
}
.ownership-donut-center span{font-size:11px;line-height:1.25;color:var(--muted);margin-top:5px;max-width:112px;overflow-wrap:anywhere}
.ownership-donut.empty{background:#e8edf5}
.ownership-legend{width:100%;min-width:0;margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:8px;max-height:320px;overflow:auto}
.ownership-legend-item{display:grid;grid-template-columns:2.25rem auto minmax(0,1fr) auto;gap:8px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:12px;background:#fff;transition:border-color .16s ease,background .16s ease}
.ownership-legend-item.active{border-color:var(--brand);background:var(--brand-soft)}
.ownership-legend-rank{color:var(--muted);font-size:12px;font-weight:950;font-variant-numeric:tabular-nums;text-align:right}
.ownership-swatch-button{width:22px;height:22px;border:0;padding:5px;border-radius:999px;background:transparent;cursor:pointer;display:grid;place-items:center}
.ownership-swatch-button:hover,.ownership-swatch-button:focus-visible{background:var(--brand-soft);outline:2px solid var(--brand);outline-offset:1px}
.ownership-swatch-static{width:22px;height:22px;padding:5px;border-radius:999px;display:grid;place-items:center}
.ownership-swatch{display:block;width:12px;height:12px;border-radius:999px;box-shadow:inset 0 0 0 1px rgba(15,23,42,.08)}
.ownership-legend-main{display:flex;align-items:center;gap:8px;min-width:0}
.ownership-legend-label{display:flex;flex-direction:column;min-width:0}
.ownership-legend-ticker{justify-self:start}
.ownership-legend-company{font-size:12px;color:var(--muted);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ownership-legend-meta{font-size:12px;color:var(--muted);white-space:nowrap}
.ownership-legend-private{background:#f8f9fa;border-color:#d1d5db}
.ownership-legend-private .ownership-legend-ticker{color:#374151;font-weight:900}
.ownership-empty{padding:12px;border:1px dashed var(--line);border-radius:12px;color:var(--muted);background:#fff}
@media (max-width:720px){
  .hero-side{grid-template-columns:1fr}
  .overall-audit-summary{grid-column:1;grid-row:1}
  .overall-audit-summary .progress-wrap{max-width:none}
  .ownership-donut{grid-column:1;grid-row:2;justify-self:center;margin:0 auto}
  .ownership-chart-wrap{
    grid-column:1;grid-row:3;
    margin-top:0;padding-top:16px;border-top:1px solid var(--line)
  }
  .ownership-legend{max-height:260px}
}



    /* Quantity-aware product-type rules */
    .quantity-rules-panel{margin-bottom:18px}
    .quantity-rules-head{
      display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:14px
    }
    .quantity-rules-head h2{margin-bottom:3px}
    .quantity-rule-count{
      flex:0 0 auto;border:1px solid var(--line);border-radius:999px;
      padding:6px 10px;background:#f7f9fd;color:var(--muted);font-size:12px;font-weight:900
    }
    .quantity-rule-builder{
      display:grid;grid-template-columns:minmax(220px,1.4fr) minmax(150px,.7fr) auto;
      gap:10px;align-items:end;padding:14px;border:1px solid var(--line);
      border-radius:14px;background:#fbfcfe
    }
    .quantity-rule-field{display:grid;gap:6px;min-width:0}
    .quantity-rule-field > span{
      color:var(--muted);font-size:11px;font-weight:900;text-transform:uppercase;letter-spacing:.05em
    }
    .quantity-rule-field select,.quantity-rule-field input{
      width:100%;min-width:0;border:1px solid var(--line);border-radius:11px;
      background:white;color:var(--ink);padding:10px 11px;font:inherit
    }
    .quantity-rule-field select:focus,.quantity-rule-field input:focus{
      outline:3px solid rgba(36,78,199,.18);border-color:#8eaaf2
    }
    .quantity-rule-preview{
      margin:10px 0 0;padding:10px 11px;border:1px solid var(--line);
      border-radius:11px;background:#f7f9fd;color:var(--muted);font-size:12px;line-height:1.45
    }
    .quantity-rules-list{display:grid;gap:10px;margin-top:12px}
    .quantity-rule-card{
      display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;
      align-items:start;padding:13px;border:1px solid var(--line);border-radius:13px;background:white
    }
    .quantity-rule-card.conflict{border-color:#e5a5a0;background:var(--danger-bg)}
    .quantity-rule-card.complete{border-color:#9bd4c0;background:var(--yes-bg)}
    .quantity-rule-title{font-weight:950;font-size:15px}
    .quantity-rule-summary{color:var(--muted);font-size:12px;margin-top:3px;line-height:1.45}
    .quantity-rule-status{margin-top:7px;font-size:12px;font-weight:850}
    .quantity-rule-card.conflict .quantity-rule-status{color:var(--danger)}
    .quantity-rule-card.complete .quantity-rule-status{color:var(--yes)}
    .quantity-rule-details{margin-top:8px;color:var(--muted);font-size:11px}
    .quantity-rule-details summary{font-weight:850}
    .quantity-rule-details ul{margin:7px 0 0;padding-left:18px}
    .quantity-rule-entry{margin-top:10px}
    .quantity-rule-entry-label{display:block;font-size:11px;font-weight:900;color:var(--muted)}
    .quantity-rule-entry-row{display:flex;gap:7px;margin-top:5px}
    .quantity-rule-entry-input{
      flex:1 1 auto;min-width:0;border:1px solid var(--line);border-radius:9px;
      padding:7px 9px;font-size:12px;font-family:inherit;background:white
    }
    .quantity-rule-entry-input:disabled{background:#f2f4f8;color:var(--muted)}
    .quantity-rule-entry-add{flex:0 0 auto;padding:7px 12px;font-size:11px;font-weight:900}
    .quantity-rule-entry-hint{margin:5px 0 0;color:var(--muted);font-size:11px;line-height:1.45}
    .quantity-rule-entry-notice{
      margin:5px 0 0;padding:6px 8px;border:1px solid #9bd4c0;border-radius:8px;
      background:var(--yes-bg);color:var(--yes);font-size:11px;font-weight:850;line-height:1.45
    }
    .quantity-rule-remove{
      border:1px solid var(--line);border-radius:9px;background:white;color:var(--danger);
      padding:7px 9px;font-size:11px;font-weight:900
    }
    .quantity-rule-remove:hover{border-color:#d9a09b;background:var(--danger-bg)}
    .quantity-card-row{
      display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin:0 0 10px
    }
    .quantity-group-badge{
      display:inline-flex;align-items:center;border:1px solid #b8c8f5;border-radius:999px;
      background:#edf2ff;color:#244ec7;padding:3px 8px;font-size:10px;font-weight:900
    }
    .quantity-item-field{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-size:11px;font-weight:850}
    .quantity-item-field input{
      width:68px;border:1px solid var(--line);border-radius:8px;background:white;
      color:var(--ink);padding:5px 7px;font:inherit;font-size:12px
    }
    /* The group total, once per section in the category header. Tinted to read
       as a setting rather than an answer, so it is not mistaken for one of the
       bulk answer buttons it sits beside. */
    .category-quantity-totals{
      display:flex;flex-wrap:wrap;align-items:center;gap:8px
    }
    .category-quantity-total{
      display:inline-flex;align-items:center;gap:6px;border:1px solid #b8c8f5;
      border-radius:999px;background:#f7f9ff;color:#244ec7;padding:3px 10px 3px 10px;
      font-size:10px;font-weight:900
    }
    .category-quantity-total-label{letter-spacing:.01em}
    .category-quantity-total input{
      width:58px;border:1px solid #b8c8f5;border-radius:8px;background:white;
      color:var(--ink);padding:4px 6px;font:inherit;font-size:12px;font-weight:800
    }
    .category-quantity-total input:focus{border-color:#244ec7;outline:2px solid #dbe4ff;outline-offset:1px}
    .category-quantity-total input:disabled{background:#eef1f6;color:var(--muted)}
    .category-quantity-total-progress{color:#5c6b86;font-weight:850}
    /* The per-rule target, on every rule card in the quantity panel. Inherits
       the card's own state colour rather than carrying its own, so the box
       reads as part of a green, white or red card instead of fighting it. */
    .quantity-rule-title-row{
      display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;
      gap:8px;margin:0 0 4px
    }
    .quantity-rule-target{
      display:inline-flex;align-items:center;gap:6px;color:var(--muted);
      font-size:10px;font-weight:900;text-transform:uppercase;letter-spacing:.04em
    }
    .quantity-rule-target input{
      width:60px;border:1px solid var(--line);border-radius:8px;background:white;
      color:var(--ink);padding:4px 6px;font:inherit;font-size:13px;font-weight:800;
      text-transform:none;letter-spacing:normal
    }
    .quantity-rule-target input:focus{border-color:#244ec7;outline:2px solid #dbe4ff;outline-offset:1px}
    .quantity-rule-target input:disabled{background:#eef1f6;color:var(--muted)}
    .quantity-rule-target-unit{text-transform:none;letter-spacing:normal;font-weight:850}
    .quantity-rule-card.conflict .quantity-rule-target input{border-color:#d9a09b}
    .quantity-rule-card.complete .quantity-rule-target input{border-color:#9fc9a6}
    .quantity-auto-note{
      display:inline-flex;align-items:center;border-radius:999px;background:var(--no-bg);
      color:#30394b;padding:3px 8px;font-size:10px;font-weight:900
    }
    @media (max-width:720px){
      .quantity-rule-builder{grid-template-columns:1fr 1fr}
      .quantity-rule-builder .btn{grid-column:1/-1;width:100%}
      .quantity-rules-head{flex-direction:column}
    }
    @media (max-width:460px){
      .quantity-rule-builder{grid-template-columns:1fr}
      .quantity-rule-builder .btn{grid-column:auto}
      .quantity-rule-card{grid-template-columns:1fr}
      .quantity-rule-remove{justify-self:start}
    }


/* Remaining-question fast pass */
.category-fast-pass{margin:0 16px 13px}
.fast-pass{
  border:1px solid #b8c8f5;border-radius:14px;
  background:linear-gradient(135deg,#f7f9ff,#eef3ff);padding:13px
}
.fast-pass-head{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:10px}
.fast-pass-title{font-weight:950;font-size:14px;line-height:1.3}
.fast-pass-copy{margin:3px 0 0;color:var(--muted);font-size:12px;line-height:1.45;max-width:78ch}
.fast-pass-badge{flex:0 0 auto;border:1px solid #b8c8f5;border-radius:999px;background:white;color:#244ec7;padding:4px 8px;font-size:10px;font-weight:900}
.fast-pass-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:8px}
.fast-pass-option{
  display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:9px;
  width:100%;border:1px solid var(--line);border-radius:11px;background:white;
  color:var(--ink);padding:9px 10px;text-align:left;font:inherit;cursor:pointer
}
.fast-pass-option:hover{border-color:#9aabc1;background:#fbfcff}
.fast-pass-option.active{border-color:#476fda;background:#edf2ff;color:#244ec7;box-shadow:0 0 0 2px rgba(36,78,199,.10)}
.fast-pass-option:focus-visible{outline:3px solid rgba(36,78,199,.22);outline-offset:2px}
.fast-pass-option:disabled{cursor:not-allowed;opacity:.58}
.fast-pass-option-label{font-weight:850;line-height:1.3}
.fast-pass-option-count{white-space:nowrap;color:var(--muted);font-size:11px;font-weight:850}
.fast-pass-option.active .fast-pass-option-count{color:#244ec7}
.fast-pass-actions{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-top:11px}
.fast-pass-confirm{background:#244ec7;color:white;border-color:#244ec7}
.fast-pass-confirm:hover{background:#1d43ad;border-color:#1d43ad}
.fast-pass-status{flex:1 1 260px;margin:0;color:var(--muted);font-size:12px;line-height:1.4}
.fast-pass-funds{display:flex;flex-wrap:wrap;align-items:center;gap:10px}
.fast-pass-funds .fast-pass-status{min-width:220px}
.category-disclosure{margin:0 16px 16px}
.specialist-disclosure{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  border:1px solid #cfd9ef;border-radius:13px;background:#f7f9ff;padding:14px 15px
}
.specialist-disclosure-copy{min-width:0;max-width:82ch}
.specialist-disclosure-title{color:#243b76;font-size:14px;font-weight:900;line-height:1.35}
.specialist-disclosure-text{margin:4px 0 0;color:var(--muted);font-size:12px;line-height:1.5}
.specialist-disclosure-button{flex:0 0 auto;border-color:#879dd2;color:#244ec7;background:white}
.specialist-disclosure-button:hover{border-color:#476fda;background:#edf2ff}
@media (max-width:720px){
  .fast-pass-options{grid-template-columns:1fr}
  .category-fast-pass{margin-left:12px;margin-right:12px}
  .fast-pass-head{flex-direction:column}
  .category-disclosure{margin-left:12px;margin-right:12px}
  .specialist-disclosure{align-items:stretch;flex-direction:column}
  .specialist-disclosure-button{width:100%}
}



  /* Keep the main audit controls visible for the entire page. */
  :root{--audit-fixed-toolbar-space:0px}
  html{scroll-padding-top:calc(var(--audit-fixed-toolbar-space) + 16px)}
  .toolbar{
    position:fixed!important;
    top:max(8px, env(safe-area-inset-top))!important;
    left:50%;
    transform:translateX(-50%);
    width:min(calc(100vw - 24px),1144px);
    z-index:1000!important;
    margin:0!important;
    background:rgba(244,247,251,.98)!important;
    border-color:rgba(190,201,218,.96)!important;
    box-shadow:0 12px 34px rgba(23,32,51,.18)!important;
  }
  .app{padding-top:calc(28px + var(--audit-fixed-toolbar-space))!important}
    @media (max-width:620px){
      .app{padding-top:calc(14px + var(--audit-fixed-toolbar-space))!important}
      .quick-start-head{align-items:flex-start;flex-direction:column;gap:3px}
      .quick-start-head span{text-align:left}
      .quick-start-list{grid-template-columns:1fr}
    }


/* Self-learning unmatched-product resolver */
.learn-match-resolver{
  margin-top:10px;padding-top:10px;border-top:1px solid rgba(101,112,134,.18)
}
.learn-match-label{display:block;font-size:11px;font-weight:900;color:var(--muted);margin-bottom:6px}
.learn-match-search{
  width:100%;border:1px solid var(--line);border-radius:10px;padding:9px 10px;
  background:white;color:var(--ink);font:inherit
}
.learn-match-search:focus{outline:3px solid rgba(36,78,199,.18);border-color:#8eaaf2}
.learn-match-results{display:grid;gap:6px;margin-top:8px}
.learn-match-choice{
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;
  width:100%;border:1px solid var(--line);border-radius:10px;background:white;
  color:var(--ink);padding:8px 9px;text-align:left;font:inherit
}
.learn-match-choice:hover{border-color:#8eaaf2;background:#f7f9ff}
.learn-match-choice strong{font-size:12px;margin:0}
.learn-match-choice span{font-size:10px;color:var(--muted);white-space:nowrap}
.learn-match-actions{display:flex;flex-wrap:wrap;gap:7px;margin-top:8px}
.learn-match-private{font-size:11px;padding:7px 9px}
.learned-match-manager{margin-top:12px;border-top:1px solid var(--line);padding-top:10px}
.learned-match-manager summary{cursor:pointer;font-weight:900}
.learned-match-list{display:grid;gap:7px;margin-top:9px}
.learned-match-row{
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:10px;align-items:center;
  padding:8px 9px;border:1px solid var(--line);border-radius:10px;background:#fff
}
.learned-match-row div{font-size:12px;min-width:0;overflow-wrap:anywhere}
.learned-match-row small{display:block;color:var(--muted);margin-top:2px}
.learned-match-forget{
  border:1px solid #d8a7a3;border-radius:8px;background:var(--danger-bg);
  color:var(--danger);padding:5px 7px;font-size:10px;font-weight:900
}


.noninvestable-directory[hidden]{display:none!important}

/* Advanced faceted card filters */
.more-filters-button[aria-expanded="true"]{
  background:#172033;color:white;border-color:#172033;
  box-shadow:0 0 0 3px rgba(23,32,51,.12)
}
.advanced-filter-panel{
  position:fixed;
  top:calc(var(--audit-fixed-toolbar-space) + 8px);
  left:50%;transform:translateX(-50%);
  z-index:999;
  width:min(calc(100vw - 24px),1040px);
  max-height:calc(100vh - var(--audit-fixed-toolbar-space) - 28px);
  overflow:auto;overscroll-behavior:contain;
  padding:16px;border:1px solid #c8d2e2;border-radius:17px;
  background:rgba(255,255,255,.99);
  box-shadow:0 22px 60px rgba(23,32,51,.24)
}
.advanced-filter-panel[hidden]{display:none!important}
.advanced-filter-head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:16px;
  margin-bottom:14px
}
.advanced-filter-head h2{margin:0 0 3px;font-size:20px}
.advanced-filter-head p{margin:0;color:var(--muted);font-size:12px;max-width:72ch}
.advanced-filter-close{
  flex:0 0 auto;border:1px solid var(--line);border-radius:10px;background:white;
  color:var(--ink);padding:8px 10px;font-weight:900
}
.advanced-filter-grid{
  display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px
}
.advanced-filter-group{
  min-width:0;margin:0;padding:13px;border:1px solid var(--line);
  border-radius:14px;background:#f9fbff
}
.advanced-filter-group legend{
  padding:0 6px;font-size:14px;font-weight:950;color:var(--ink)
}
.advanced-filter-group-copy{
  margin:0 0 9px;color:var(--muted);font-size:11px;line-height:1.45
}
.advanced-filter-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:7px}
.advanced-filter-option{
  display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:8px;
  min-width:0;border:1px solid var(--line);border-radius:10px;background:white;
  color:var(--ink);padding:8px 9px;text-align:left;font:inherit;font-size:12px;font-weight:850
}
.advanced-filter-option:hover{border-color:#9aabc1;background:#fbfcff}
.advanced-filter-option[aria-pressed="true"]{
  border-color:#476fda;background:#edf2ff;color:#244ec7;
  box-shadow:0 0 0 2px rgba(36,78,199,.09)
}
.advanced-filter-option:focus-visible{
  outline:3px solid rgba(36,78,199,.22);outline-offset:2px
}
.advanced-filter-option-count{
  min-width:28px;text-align:center;border-radius:999px;padding:2px 6px;
  background:#eef2f8;color:var(--muted);font-size:10px;font-weight:950
}
.advanced-filter-option[aria-pressed="true"] .advanced-filter-option-count{
  background:white;color:#244ec7
}
.advanced-filter-footer{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  margin-top:13px;padding-top:12px;border-top:1px solid var(--line)
}
.advanced-filter-summary{color:var(--muted);font-size:12px}
.active-filter-overview{
  display:flex;align-items:center;gap:8px;flex-wrap:wrap;
  margin:0 0 14px;padding:10px 11px;border:1px solid #b8c8f5;
  border-radius:13px;background:#f4f7ff
}
.active-filter-overview[hidden]{display:none!important}
.active-filter-overview-label{font-size:11px;font-weight:950;color:#355b9c;text-transform:uppercase;letter-spacing:.04em}
.active-filter-chips{display:flex;align-items:center;gap:7px;flex-wrap:wrap;flex:1 1 320px}
.active-filter-chip{
  display:inline-flex;align-items:center;gap:7px;border:1px solid #aebfe8;
  border-radius:999px;background:white;color:#244ec7;padding:5px 8px;
  font-size:11px;font-weight:900
}
.active-filter-chip::after{content:"×";font-size:14px;line-height:1;color:#657086}
.active-filter-chip:hover{border-color:#476fda;background:#edf2ff}
.active-filter-clear{
  border:0;background:transparent;color:#244ec7;padding:5px 7px;
  font-size:11px;font-weight:950;text-decoration:underline;text-underline-offset:2px
}
@media (max-width:760px){
  .advanced-filter-grid{grid-template-columns:1fr}
  .advanced-filter-panel{padding:13px}
}
@media (max-width:520px){
  .advanced-filter-options{grid-template-columns:1fr}
  .advanced-filter-head{gap:9px}
  .advanced-filter-footer{align-items:stretch;flex-direction:column}
  .advanced-filter-footer .btn{width:100%}
}

/* Hardened modular-build additions */
.profile-logo-toggle{display:flex;align-items:center;gap:8px;min-height:42px;padding:8px 10px;border:1px solid var(--line);border-radius:11px;background:#f7f9fd;color:var(--ink);font-size:12px;font-weight:850}
.profile-logo-toggle input{width:18px;height:18px;margin:0}
.relationship-badges{display:flex;flex-wrap:wrap;gap:5px;margin:8px 0 10px}
.relationship-badge{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:999px;padding:3px 7px;background:#f7f9fd;color:#43516c;font-size:10px;font-weight:900}
.relationship-badge.direct{border-color:#9bd4c0;background:var(--yes-bg);color:#087a55}
.relationship-badge.component{border-color:#c8d6f2;background:#f1f5fd;color:#355b9c}
.relationship-badge.etf{border-color:#e5bd6c;background:var(--unsure-bg);color:#8a5200}
.relationship-badge.investability{border-color:#cbd5e1;background:#f8fafc;color:#475569}
/* Answer origin rather than a product property: purple, matching the
   supply-chain panel's accent, so the two read as the same concept. */
.relationship-badge.supplierDerived{border-color:#d5c6f5;background:#f3eeff;color:#5127b5}
.quantity-rule-confirm{margin-top:10px}
.quantity-rule-confirm[disabled]{opacity:.55;cursor:not-allowed}
.data-portability-note{margin-top:8px;color:var(--muted);font-size:11px;line-height:1.45}
@media (max-width:620px){.profile-logo-toggle{grid-column:1/-1}}

    .quantity-cross-group-list{
      margin:8px 0 0;padding-left:18px;color:var(--muted);font-size:11px;line-height:1.5
    }

    /* The status line sits on its own row under the toolbar controls. */
    .search-status{
      flex:1 0 100%;margin:2px 0 0;display:flex;flex-wrap:wrap;align-items:center;gap:8px;
      font-size:12px;line-height:1.45;color:var(--muted)
    }
    .search-status-warn{font-weight:850;color:var(--danger)}
    .search-status-private{
      border:1px solid var(--line);border-radius:8px;background:white;
      padding:3px 8px;color:var(--ink);font-weight:750
    }
    .search-status-action{padding:4px 9px;font-size:11px;font-weight:900}

    /* Lives in the panel header so it survives collapsing the section. */
    .quantity-rule-head-actions{
      display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex:0 0 auto
    }
    .quantity-confirm-all{padding:7px 11px;font-size:11px;font-weight:900;white-space:nowrap}
    @media (max-width:720px){
      .quantity-rule-head-actions{align-items:flex-start;width:100%}
      .quantity-confirm-all{width:100%;min-height:44px}
    }
