/* ============================================================================
   Global Data — "Our Data Sources" page component styles.
   Scoped under .portal (the shared flexible-content design system). Pairs with
   the site-wide portal.css (pt-* system) + ds.js. Drop into your theme assets
   and enqueue on the Data Sources page, or inline into flexible-content.php.
   Tokens: primary #13ec80 / accessible green #047857 / Manrope / Material Symbols.
   ============================================================================ */

html{ scroll-behavior:smooth; }
  body{ font-family:'Manrope',sans-serif; background:#f1f5f9; color:#0f172a; }
  .material-symbols-outlined{ font-variation-settings:'FILL' 0,'wght' 400,'GRAD' 0,'opsz' 24; }

  /* ---- bookmark sidebar nav (mirrors flexible-content.php) ---- */
  .fc-bookmark-nav{ position:absolute; left:0; top:0; transform:translateY(-50%); width:56px; max-height:84vh;
    transition:width .4s cubic-bezier(.32,.72,0,1); z-index:100; border-radius:0 20px 20px 0; overflow:hidden;
    display:flex; flex-direction:column; background:rgba(255,255,255,.85); backdrop-filter:blur(16px);
    border:1px solid rgba(255,255,255,.6); border-left:none; box-shadow:0 10px 40px -12px rgba(15,23,42,.22); }
  .fc-bookmark-nav:hover{ width:264px; }
  .fc-bookmark-nav .nav-label{ opacity:0; white-space:nowrap; max-width:0; overflow:hidden; margin-left:0;
    transition:max-width .4s ease,opacity .3s ease,margin .4s ease; }
  .fc-bookmark-nav:hover .nav-label{ opacity:1; max-width:180px; margin-left:12px; }
  .fc-bookmark-nav.is-closed{ width:56px!important; }
  .fc-bookmark-nav.is-closed .nav-label{ opacity:0!important; max-width:0!important; margin-left:0!important; }
  .tab-progress-container{ position:absolute; right:0; top:0; bottom:0; width:3px; background:rgba(15,23,42,.06); }
  .tab-progress-bar{ width:100%; background:#13ec80; height:0%; }
  .nav-link.active{ background:#ecfdf5; color:#065f46; font-weight:600; }
  .nav-link.active .material-symbols-outlined{ color:#047857; }
  .bottom-action-btn{ width:38px; height:38px; border-radius:10px; display:flex; align-items:center; justify-content:center;
    transition:all .3s ease; padding:0; background:#0b1220; color:#fff; }
  .fc-bookmark-nav:hover .bottom-action-btn{ width:100%; justify-content:flex-start; padding:0 12px; }
  .fc-bookmark-nav.is-closed .bottom-action-btn{ width:38px!important; justify-content:center!important; padding:0!important; }
  .mobile-close-nav{ opacity:0; pointer-events:none; transition:opacity .3s; }
  .fc-bookmark-nav:hover .mobile-close-nav{ opacity:1; pointer-events:auto; }
  .mesh-gradient{ background-image:radial-gradient(at 0% 0%,rgba(19,236,128,.06) 0,transparent 50%),radial-gradient(at 100% 100%,rgba(4,120,87,.04) 0,transparent 50%); }
  @media (max-width:1023px){ .fc-bookmark-nav{ display:none; } }

  /* ---- data-sources page specifics ---- */
  .portal .ds-new{ display:inline-flex; align-items:center; gap:5px; font-size:10px; font-weight:800; letter-spacing:.1em;
    text-transform:uppercase; color:var(--green-700); background:var(--green-soft); border:1px solid var(--green-line);
    padding:3px 8px; border-radius:100px; }
  .portal .ds-new::before{ content:""; width:5px; height:5px; border-radius:50%; background:var(--p); }

  /* hero sources panel */
  .portal .ds-panel{ border-radius:18px; overflow:hidden; border:1px solid var(--line); background:#fff;
    box-shadow:0 25px 50px -12px rgba(15,23,42,.18); }
  .portal .ds-panel-top{ display:flex; align-items:center; justify-content:space-between; gap:10px; padding:13px 16px;
    background:var(--surface-2); border-bottom:1px solid var(--line); }
  .portal .ds-panel-top b{ font-size:12.5px; font-weight:800; color:var(--ink); display:flex; align-items:center; gap:8px; }
  .portal .ds-panel-top b .material-symbols-outlined{ font-size:17px; color:var(--green); }
  .portal .ds-panel-top span{ font-size:10.5px; font-weight:700; color:var(--muted); }
  .portal .ds-panel-grid{ display:grid; grid-template-columns:1fr 1fr; gap:8px; padding:14px; }
  .portal .ds-tile{ display:flex; align-items:center; gap:10px; padding:10px 11px; border:1px solid var(--line);
    border-radius:11px; background:#fff; }
  .portal .ds-tile .ti{ width:34px; height:34px; border-radius:9px; flex:none; display:flex; align-items:center; justify-content:center;
    background:var(--green-soft); border:1px solid var(--green-line); color:var(--green); }
  .portal .ds-tile .ti .material-symbols-outlined{ font-size:18px; }
  .portal .ds-tile b{ display:block; font-size:11.5px; font-weight:800; color:var(--ink); line-height:1.2; }
  .portal .ds-tile span{ font-size:9.5px; font-weight:700; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); }
  .portal .ds-tile.is-new{ border-color:var(--green-line); background:linear-gradient(180deg,#ffffff,var(--green-soft)); }
  .portal .ds-panel-foot{ display:flex; align-items:center; gap:8px; padding:11px 16px; border-top:1px solid var(--line);
    background:var(--surface-2); font-size:11.5px; font-weight:600; color:var(--green-700); }
  .portal .ds-panel-foot .material-symbols-outlined{ font-size:16px; color:var(--green); }

  /* ============ CATALOGUE: category sections + feature/compact tiles ============ */
  .portal .dc-sec{ margin-top:48px; }
  .portal .dc-sec:first-child{ margin-top:0; }
  .portal .dc-sec[hidden]{ display:none; }
  .portal .dc-sec-h{ display:flex; align-items:center; justify-content:center; gap:11px; margin-bottom:22px; }
  .portal .dc-sec-h .ci{ width:36px; height:36px; border-radius:10px; flex:none; display:flex; align-items:center; justify-content:center;
    background:var(--accent-soft,var(--green-soft)); border:1px solid var(--accent-line,var(--green-line)); color:var(--accent,var(--green)); }
  .portal .dc-sec-h .ci .material-symbols-outlined{ font-size:20px; }
  .portal .dc-sec-h b{ font-size:13px; font-weight:800; letter-spacing:.14em; text-transform:uppercase; color:var(--ink); }
  .portal .dc-sec-h .cnt{ font-size:11px; font-weight:800; color:var(--accent,var(--green-700)); background:var(--accent-soft,var(--green-soft));
    border:1px solid var(--accent-line,var(--green-line)); border-radius:100px; padding:3px 11px; }

  .portal .dc-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:16px; }
  @media (max-width:900px){ .portal .dc-grid{ grid-template-columns:repeat(2,1fr); } }
  @media (max-width:600px){ .portal .dc-grid{ grid-template-columns:1fr; } }

  .portal .dc-tile{ background:#fff; border:1px solid var(--line); border-radius:16px; padding:20px; display:flex; flex-direction:column;
    box-shadow:0 2px 10px -4px rgba(15,23,42,.06); transition:transform .22s ease, box-shadow .22s ease, border-color .22s ease; }
  .portal .dc-tile[hidden]{ display:none; }
  .portal .dc-tile:hover{ transform:translateY(-4px); border-color:var(--accent-line,var(--green-line)); box-shadow:0 18px 40px -16px rgba(15,23,42,.2); }
  .portal .dc-tile .ti{ width:46px; height:46px; border-radius:13px; flex:none; display:flex; align-items:center; justify-content:center;
    background:var(--accent-soft,var(--green-soft)); border:1px solid var(--accent-line,var(--green-line)); color:var(--accent,var(--green));
    margin-bottom:15px; transition:background .22s ease, color .22s ease, border-color .22s ease; }
  .portal .dc-tile .ti .material-symbols-outlined{ font-size:24px; }
  .portal .dc-tile:hover .ti{ background:var(--accent,var(--p)); border-color:var(--accent,var(--p)); color:#fff; }
  .portal .dc-tile .tname{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
  .portal .dc-tile .tname b{ font-size:16px; font-weight:800; color:var(--ink); line-height:1.25; }
  .portal .dc-tile .tdesc{ font-size:13px; color:var(--muted); margin-top:6px; line-height:1.45; }
  .portal .dc-tile .tchips{ display:flex; flex-wrap:wrap; gap:6px; margin-top:auto; padding-top:14px; }

  /* feature tile (flagship per category, full-width) */
  .portal .dc-feat{ grid-column:1 / -1; display:flex; align-items:center; gap:24px; padding:24px 26px; border-radius:18px;
    background:linear-gradient(118deg,#ffffff 0%,var(--accent-soft,var(--green-soft)) 100%); border:1px solid var(--accent-line,var(--green-line));
    box-shadow:0 14px 36px -20px rgba(15,23,42,.2); transition:transform .22s ease, box-shadow .22s ease; }
  .portal .dc-feat[hidden]{ display:none; }
  .portal .dc-feat:hover{ transform:translateY(-3px); box-shadow:0 24px 52px -22px rgba(15,23,42,.28); }
  .portal .dc-feat .fi{ width:64px; height:64px; border-radius:17px; flex:none; display:flex; align-items:center; justify-content:center;
    background:#fff; border:1px solid var(--accent-line,var(--green-line)); color:var(--accent,var(--green)); box-shadow:0 6px 16px -8px rgba(15,23,42,.2); }
  .portal .dc-feat .fi .material-symbols-outlined{ font-size:32px; }
  .portal .dc-feat .fmain{ flex:1; min-width:0; }
  .portal .dc-feat .fname{ display:flex; align-items:center; gap:9px; flex-wrap:wrap; }
  .portal .dc-feat .fname b{ font-size:20px; font-weight:800; color:var(--ink); letter-spacing:-.01em; }
  .portal .dc-feat .fstat{ display:inline-flex; align-items:center; gap:7px; font-size:13px; color:var(--accent,var(--green-700)); font-weight:700; margin-top:6px; }
  .portal .dc-feat .fstat .material-symbols-outlined{ font-size:16px; }
  .portal .dc-feat .fdesc{ font-size:13.5px; color:var(--body); margin-top:7px; line-height:1.5; max-width:680px; }
  .portal .dc-feat .tchips{ display:flex; flex-wrap:wrap; gap:6px; margin-top:14px; }
  @media (max-width:600px){ .portal .dc-feat{ flex-direction:column; align-items:flex-start; gap:16px; padding:20px; } }

  .portal .dc-rt{ font-size:11px; font-weight:700; color:var(--body); background:var(--surface-2); border:1px solid var(--line);
    border-radius:7px; padding:4px 9px; transition:.16s; }
  .portal .dc-tile:hover .dc-rt, .portal .dc-feat:hover .dc-rt{ border-color:var(--accent-line,var(--green-line)); color:var(--accent,var(--green-700)); }

  /* category accents */
  .portal [data-accent="amber"]{ --accent:#b45309; --accent-soft:#fef3c7; --accent-line:#fcd34d; }
  .portal [data-accent="green"]{ --accent:#047857; --accent-soft:#ecfdf5; --accent-line:#a7f3d0; }

  /* category explorer (two-column master / detail) */
  .portal .dc-ex{ display:grid; grid-template-columns:340px 1fr; gap:22px; align-items:start; }
  @media(max-width:880px){ .portal .dc-ex{ grid-template-columns:1fr; } }
  .portal .dc-menu{ display:flex; flex-direction:column; gap:12px; position:sticky; top:24px; }
  @media(max-width:880px){ .portal .dc-menu{ position:static; flex-direction:row; flex-wrap:wrap; } }
  .portal .dc-cat{ font-family:inherit; cursor:pointer; text-align:left; background:#fff; border:1px solid var(--line); border-radius:16px;
    padding:18px; position:relative; transition:transform .18s ease, box-shadow .2s ease, border-color .2s ease, background .2s ease; }
  @media(max-width:880px){ .portal .dc-menu .dc-cat{ flex:1 1 230px; } }
  .portal .dc-cat:hover{ border-color:var(--accent-line); box-shadow:0 14px 30px -16px rgba(15,23,42,.18); }
  .portal .dc-cat .ci{ width:46px; height:46px; border-radius:13px; display:flex; align-items:center; justify-content:center;
    background:var(--accent-soft); border:1px solid var(--accent-line); color:var(--accent); margin-bottom:13px; transition:.2s; }
  .portal .dc-cat .ci .material-symbols-outlined{ font-size:24px; }
  .portal .dc-cat .cx{ display:flex; align-items:baseline; gap:9px; flex-wrap:wrap; }
  .portal .dc-cat h3{ font-size:16.5px; font-weight:800; color:var(--ink); line-height:1.2; }
  .portal .dc-cat .cn{ font-size:11px; font-weight:800; color:var(--accent); white-space:nowrap; }
  .portal .dc-cat p{ font-size:12.5px; color:var(--muted); margin-top:7px; line-height:1.45; }
  .portal .dc-cat .chev{ position:absolute; top:20px; right:18px; font-size:19px; color:var(--faint); transition:.2s; }
  .portal .dc-cat:hover .chev{ color:var(--accent); }
  .portal .dc-cat.on{ border-color:var(--accent); background:#fff;
    box-shadow:0 0 0 1px var(--accent) inset, 0 16px 36px -18px rgba(15,23,42,.22); }
  .portal .dc-cat.on .ci{ background:var(--accent); border-color:var(--accent); color:#fff; }
  .portal .dc-cat.on .chev{ color:var(--accent); transform:translateX(2px); }

  .portal .dc-panel{ background:#fff; border:1px solid var(--line); border-radius:20px; overflow:hidden; box-shadow:0 18px 50px -26px rgba(15,23,42,.2); }
  .portal .dc-pane{ display:none; }
  .portal .dc-pane.on{ display:block; }
  .portal .dc-phead{ display:flex; align-items:center; gap:12px; padding:18px 20px; border-bottom:1px solid var(--line);
    background:#fff; }
  .portal .dc-phead .ph-ic{ width:40px; height:40px; border-radius:11px; flex:none; display:flex; align-items:center; justify-content:center; background:var(--accent); color:#fff; }
  .portal .dc-phead .ph-ic .material-symbols-outlined{ font-size:22px; }
  .portal .dc-phead b{ display:block; font-size:15px; font-weight:800; color:var(--ink); }
  .portal .dc-phead span{ font-size:11.5px; font-weight:700; color:var(--accent); }
  .portal .dc-srow{ display:flex; align-items:flex-start; gap:15px; padding:16px 20px; border-bottom:1px solid var(--line-soft); transition:background .16s ease; }
  .portal .dc-srow:last-child{ border-bottom:none; }
  .portal .dc-srow:hover{ background:var(--accent-soft); }
  .portal .dc-srow .si{ width:44px; height:44px; border-radius:12px; flex:none; display:flex; align-items:center; justify-content:center;
    background:var(--accent-soft); border:1px solid var(--accent-line); color:var(--accent); transition:.16s; }
  .portal .dc-srow:hover .si{ background:var(--accent); border-color:var(--accent); color:#fff; }
  .portal .dc-srow .si .material-symbols-outlined{ font-size:22px; }
  .portal .dc-srow .sx{ flex:1; min-width:0; }
  .portal .dc-srow .sname{ display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
  .portal .dc-srow .sname b{ font-size:15.5px; font-weight:800; color:var(--ink); }
  .portal .dc-srow .sstat{ display:inline-flex; align-items:center; gap:6px; font-size:12.5px; font-weight:700; color:var(--accent); margin-top:4px; }
  .portal .dc-srow .sstat .material-symbols-outlined{ font-size:15px; }
  .portal .dc-srow .sdesc{ font-size:13px; color:var(--muted); margin-top:4px; line-height:1.45; }
  .portal .dc-srow .schips{ display:flex; flex-wrap:wrap; gap:6px; margin-top:11px; }
  .portal .dc-srow.is-feat{ background:#fff; }
  .portal .dc-srow.is-feat .si{ width:52px; height:52px; background:#fff; box-shadow:0 6px 16px -8px rgba(15,23,42,.2); }
  .portal .dc-srow.is-feat .sname b{ font-size:17px; }
  html[data-catalogue="compact"] .portal .dc-srow .sdesc{ display:none; }

  /* density (Tweak): compact hides descriptions */
  html[data-catalogue="compact"] .portal .dc-tile .tdesc,
  html[data-catalogue="compact"] .portal .dc-feat .fdesc{ display:none; }
  html[data-catalogue="compact"] .portal .dc-tile{ padding:16px; }

  /* coverage light theme (Tweak) */
  html[data-coverage="light"] .portal #coverage{ background:#fff!important; }
  html[data-coverage="light"] .portal #coverage .ds-cv-mesh{ display:none; }
  html[data-coverage="light"] .portal #coverage .ds-cv-badge{ background:var(--green-soft)!important; color:var(--green-700)!important; border-color:var(--green-line)!important; }
  html[data-coverage="light"] .portal #coverage h2{ color:var(--ink)!important; }
  html[data-coverage="light"] .portal #coverage .ds-cv-sub{ color:var(--body)!important; }
  html[data-coverage="light"] .portal #coverage .ds-cv-tile{ background:#fff!important; border-color:var(--line)!important; }
  html[data-coverage="light"] .portal #coverage .ds-cv-tile .lbl{ color:var(--muted)!important; }
  html[data-coverage="light"] .portal #coverage .ds-cv-cap{ color:var(--muted)!important; }
  html[data-coverage="light"] .portal #coverage .ds-cv-num{ color:var(--green)!important; }

  .portal .ds-cv-num{ font-weight:800; line-height:1; color:var(--p); }

  /* ============ HERO: source constellation ============ */
  .portal .ds-orbit{ position:relative; width:100%; max-width:520px; aspect-ratio:1/1; margin-inline:auto; }
  .portal .ds-orbit-lines{ position:absolute; inset:0; width:100%; height:100%; overflow:visible; z-index:1; }
  .portal .ds-orbit-lines circle{ fill:none; stroke:var(--line); stroke-dasharray:3 8; stroke-width:1.4; }
  .portal .ds-orbit-lines line{ stroke:var(--green-line); stroke-width:1.6; transition:stroke .35s ease, stroke-width .35s ease; }
  .portal .ds-orbit-lines line.live{ stroke:var(--p); stroke-width:3; }
  .portal .ds-pulse{ fill:var(--p); filter:drop-shadow(0 0 6px rgba(19,236,128,.9)); opacity:0; }

  /* center record card */
  .portal .ds-core{ position:absolute; left:50%; top:50%; transform:translate(-50%,-50%); z-index:3; width:212px;
    background:radial-gradient(circle at 30% 0%,#11223e,var(--deep)); color:#fff; border-radius:16px; padding:13px;
    box-shadow:0 22px 50px -14px rgba(4,40,26,.7), 0 0 0 7px rgba(19,236,128,.07); }
  .portal .ds-core-h{ display:flex; align-items:center; gap:8px; padding-bottom:9px; margin-bottom:9px; border-bottom:1px solid rgba(255,255,255,.12); }
  .portal .ds-core-h .material-symbols-outlined{ font-size:18px; color:var(--p); }
  .portal .ds-core-h b{ font-size:12.5px; font-weight:800; }
  .portal .ds-core-h .lv{ margin-left:auto; display:inline-flex; align-items:center; gap:4px; font-size:8.5px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; color:#6ee7b7; }
  .portal .ds-core-h .lv::before{ content:""; width:5px; height:5px; border-radius:50%; background:var(--p); box-shadow:0 0 0 0 rgba(19,236,128,.6); animation:pt-pulse 1.6s infinite; }
  .portal .ds-core-row{ display:flex; align-items:center; gap:8px; padding:4.5px 0; font-size:10.5px; }
  .portal .ds-core-row .tk{ width:15px; height:15px; border-radius:5px; flex:none; display:flex; align-items:center; justify-content:center;
    background:rgba(255,255,255,.08); color:rgba(255,255,255,.32); transition:background .3s ease, color .3s ease; }
  .portal .ds-core-row .tk .material-symbols-outlined{ font-size:12px; }
  .portal .ds-core-row .lbl{ font-weight:700; color:rgba(255,255,255,.55); transition:color .3s ease; }
  .portal .ds-core-row .src{ margin-left:auto; font-size:9px; font-weight:700; color:rgba(255,255,255,.32); letter-spacing:.02em; }
  .portal .ds-core-row.matched .tk{ background:var(--p); color:var(--deep); }
  .portal .ds-core-row.matched .tk .material-symbols-outlined{ font-variation-settings:'FILL' 1; }
  .portal .ds-core-row.matched .lbl{ color:#fff; }
  .portal .ds-core-row.flash{ animation:ds-flash .6s ease; }
  @keyframes ds-flash{ 0%{ background:rgba(19,236,128,.18); } 100%{ background:transparent; } }

  /* source nodes */
  .portal .ds-node{ position:absolute; transform:translate(-50%,-50%); z-index:2; width:88px; display:flex; flex-direction:column;
    align-items:center; gap:6px; text-align:center; }
  .portal .ds-node .ndi{ width:54px; height:54px; border-radius:16px; background:#fff; border:1px solid var(--line); color:var(--green);
    display:flex; align-items:center; justify-content:center; box-shadow:0 8px 20px -8px rgba(15,23,42,.18);
    transition:transform .3s ease, box-shadow .3s ease, border-color .3s ease, background .3s ease; position:relative; }
  .portal .ds-node .ndi .material-symbols-outlined{ font-size:25px; }
  .portal .ds-node b{ font-size:10.5px; color:var(--ink); font-weight:800; line-height:1.15; }
  .portal .ds-node .ndtag{ display:none; }
  .portal .ds-node.is-new .ndi{ border-color:var(--green-line); background:linear-gradient(180deg,#fff,var(--green-soft)); }
  .portal .ds-node.live .ndi{ border-color:var(--p); background:var(--p); color:var(--deep); transform:translateY(-3px) scale(1.08);
    box-shadow:0 16px 32px -10px rgba(19,236,128,.55); }
  .portal .ds-node.is-new .ndi::after{ content:""; position:absolute; top:-3px; right:-3px; width:9px; height:9px; border-radius:50%;
    background:var(--p); border:2px solid #fff; }
  .portal .ds-node.n0{ left:50%; top:9%; }   .portal .ds-node.n1{ left:81%; top:25%; }
  .portal .ds-node.n2{ left:90%; top:59%; }  .portal .ds-node.n3{ left:67%; top:86%; }
  .portal .ds-node.n4{ left:33%; top:86%; }  .portal .ds-node.n5{ left:10%; top:59%; }
  .portal .ds-node.n6{ left:19%; top:25%; }
  @media (max-width:560px){
    .portal .ds-orbit{ aspect-ratio:auto; max-width:380px; }
    .portal .ds-orbit-lines{ display:none; }
    .portal .ds-core{ position:static; transform:none; width:100%; margin-bottom:14px; }
    .portal .ds-nodes-wrap{ display:grid; grid-template-columns:1fr 1fr; gap:8px; }
    .portal .ds-node{ position:static; transform:none; width:100%; flex-direction:row; gap:10px; padding:9px 11px;
      border:1px solid var(--line); border-radius:13px; background:#fff; text-align:left; }
    .portal .ds-node .ndi{ width:40px; height:40px; border-radius:11px; box-shadow:none; }
    .portal .ds-node .ndi .material-symbols-outlined{ font-size:20px; }
    .portal .ds-node.live .ndi{ transform:none; }
  }

  /* ============ BUSINESS: interactive KYB panel ============ */
  .portal .ds-kyb{ display:grid; grid-template-columns:300px 1fr; gap:18px; align-items:start; }
  .portal .ds-kyb-rail{ display:flex; flex-direction:column; gap:8px; }
  .portal .ds-kyb-tab{ font-family:inherit; text-align:left; cursor:pointer; display:flex; align-items:center; gap:12px;
    padding:14px 15px; border-radius:14px; border:1px solid var(--line); background:#fff; transition:.2s; position:relative; }
  .portal .ds-kyb-tab:hover{ border-color:var(--green-line); transform:translateX(2px); }
  .portal .ds-kyb-tab .kt-ico{ width:42px; height:42px; border-radius:12px; flex:none; display:flex; align-items:center; justify-content:center;
    background:var(--green-soft); border:1px solid var(--green-line); color:var(--green); transition:.2s; }
  .portal .ds-kyb-tab .kt-ico .material-symbols-outlined{ font-size:22px; }
  .portal .ds-kyb-tab .kt-x{ min-width:0; }
  .portal .ds-kyb-tab .kt-x b{ display:block; font-size:14.5px; font-weight:800; color:var(--ink); line-height:1.2; }
  .portal .ds-kyb-tab .kt-x span{ font-size:11.5px; color:var(--muted); font-weight:600; }
  .portal .ds-kyb-tab .ds-new{ position:absolute; top:10px; right:11px; }
  .portal .ds-kyb-tab.on{ border-color:var(--ink); background:var(--ink); box-shadow:0 16px 34px -16px rgba(15,23,42,.4); }
  .portal .ds-kyb-tab.on .kt-x b{ color:#fff; }
  .portal .ds-kyb-tab.on .kt-x span{ color:rgba(255,255,255,.6); }
  .portal .ds-kyb-tab.on .kt-ico{ background:var(--p); border-color:var(--p); color:var(--deep); }
  .portal .ds-kyb-tab.on .ds-new{ background:rgba(255,255,255,.16); color:#fff; border-color:rgba(255,255,255,.25); }

  .portal .ds-kyb-stage{ position:relative; }
  .portal .ds-kyb-pane{ display:none; }
  .portal .ds-kyb-pane.on{ display:block; animation:dp-in .42s cubic-bezier(.22,.8,.2,1); }
  .portal .ds-rr{ border-radius:16px; overflow:hidden; border:1px solid var(--line); background:#fff;
    box-shadow:0 18px 40px -18px rgba(15,23,42,.16); }
  .portal .ds-rr-top{ display:flex; align-items:center; gap:9px; padding:13px 16px; background:var(--surface-2); border-bottom:1px solid var(--line); }
  .portal .ds-rr-top .material-symbols-outlined{ font-size:18px; color:var(--green); }
  .portal .ds-rr-top b{ font-size:13.5px; font-weight:800; color:var(--ink); }
  .portal .ds-rr-top .rr-src{ margin-left:auto; font-size:10px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; color:var(--muted); }
  .portal .ds-rr-body{ padding:6px 16px; }
  .portal .ds-rr-row{ display:flex; align-items:center; gap:12px; padding:10px 0; border-bottom:1px solid var(--line-soft); }
  .portal .ds-rr-row:last-child{ border-bottom:none; }
  .portal .ds-rr-row .rl{ font-size:12.5px; color:var(--muted); font-weight:600; width:148px; flex:none; }
  .portal .ds-rr-row .rv{ font-size:13px; color:var(--ink); font-weight:700; }
  .portal .ds-rr-row .rv.ok{ display:inline-flex; align-items:center; gap:5px; color:var(--green-700); }
  .portal .ds-rr-row .rv.ok .material-symbols-outlined{ font-size:17px; color:var(--green); font-variation-settings:'FILL' 1; }
  .portal .ds-rr-foot{ padding:14px 16px; border-top:1px solid var(--line); }
  .portal .ds-rr-note{ display:flex; align-items:flex-start; gap:8px; font-size:11.5px; line-height:1.45; color:var(--green-700);
    background:var(--green-soft); border:1px solid var(--green-line); border-radius:11px; padding:10px 12px; margin-bottom:12px; }
  .portal .ds-rr-note .material-symbols-outlined{ font-size:16px; color:var(--green); flex:none; margin-top:1px; }
  @media (max-width:820px){
    .portal .ds-kyb{ grid-template-columns:1fr; }
    .portal .ds-kyb-rail{ flex-direction:row; flex-wrap:wrap; }
    .portal .ds-kyb-tab{ flex:1 1 220px; }
  }
  @media (max-width:520px){
    .portal .ds-rr-row{ flex-direction:column; align-items:flex-start; gap:2px; }
    .portal .ds-rr-row .rl{ width:auto; }
  }

  /* ============ CATALOGUE: filter chips + count ============ */
  .portal .ds-filter{ display:flex; flex-wrap:wrap; gap:8px; }
  .portal .ds-fbtn{ font-family:inherit; font-size:13px; font-weight:700; color:var(--body); background:#fff;
    border:1px solid var(--line); border-radius:100px; padding:9px 16px; cursor:pointer; transition:.18s; }
  .portal .ds-fbtn:hover{ border-color:var(--green-line); color:var(--green-700); }
  .portal .ds-fbtn.on{ background:var(--ink); color:#fff; border-color:var(--ink); }
  .portal .ds-count{ display:inline-flex; align-items:center; gap:6px; font-size:12.5px; font-weight:700; color:var(--muted);
    background:#fff; border:1px solid var(--line); border-radius:100px; padding:7px 14px; }
  .portal .ds-count b{ color:var(--ink); font-weight:800; }

  /* hero motion tweak: static disables animation */
  html[data-heromotion="static"] .portal .ds-pulse{ display:none; }

  /* tweaks panel */
  .ds-tweaks{ position:fixed; right:18px; bottom:18px; z-index:9999; width:248px; background:#fff; border:1px solid #e2e8f0;
    border-radius:16px; box-shadow:0 24px 60px -16px rgba(15,23,42,.34); font-family:'Manrope',sans-serif; padding:16px; display:none; }
  .ds-tweaks.open{ display:block; }
  .ds-tweaks .tw-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; }
  .ds-tweaks .tw-head b{ font-size:14px; color:#0f172a; font-weight:800; }
  .ds-tweaks .tw-x{ border:none; background:#f1f5f9; width:26px; height:26px; border-radius:8px; cursor:pointer; color:#475569; font-size:16px; line-height:1; }
  .ds-tweaks .tw-lbl{ font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:#64748b; margin:14px 0 8px; }
  .ds-tweaks .tw-lbl:first-of-type{ margin-top:0; }
  .ds-tweaks .seg{ display:flex; background:#f1f5f9; border-radius:10px; padding:3px; gap:3px; }
  .ds-tweaks .seg button{ flex:1; border:none; background:transparent; cursor:pointer; font-family:inherit; font-weight:700; font-size:12.5px; color:#475569; padding:8px 4px; border-radius:8px; transition:.15s; }
  .ds-tweaks .seg button.on{ background:#fff; color:#065f46; box-shadow:0 1px 4px rgba(15,23,42,.12); }
