/* ============================================================
   FileSure — Data & Coverage page
   Built on the v2 token system (tokens.css + home-v2 look).
   ============================================================ */

.dp{background:#fff;color:var(--fg-body);font-family:var(--font-sans)}
.dp .wrap{max-width:1180px;margin:0 auto;padding:0 32px;width:100%}
.dp-sec{padding:var(--space-20) 0}
.dp-tint{background:var(--surface-1);border-top:1px solid var(--border-faint);border-bottom:1px solid var(--border-faint)}

/* section heads */
.dp-head{max-width:760px}
.dp-eyebrow{font-size:13px;font-weight:var(--w-semibold);letter-spacing:.1em;text-transform:uppercase;color:var(--iris-600);margin:0}
.dp-title{font-size:var(--heading-2xl);line-height:1.08;letter-spacing:-.02em;font-weight:var(--w-semibold);color:var(--fg-strong);margin:12px 0 0;text-wrap:balance}
.dp-sub{font-size:var(--body-lg);line-height:1.6;color:var(--fg-muted);margin:14px 0 0;text-wrap:pretty}
.dp-note{font-size:var(--body-sm);color:var(--fg-faint);margin-top:10px}

/* ---------- HERO ---------- */
.dp-hero{padding:var(--space-16) 0 var(--space-12)}
.dp-hero__eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:13px;font-weight:var(--w-semibold);letter-spacing:.08em;text-transform:uppercase;color:var(--iris-600)}
.dp-hero__eyebrow .live{width:8px;height:8px;border-radius:50%;background:var(--success-500);box-shadow:0 0 0 3px rgba(22,163,74,.16);animation:dppulse 2s infinite}
@keyframes dppulse{0%,100%{opacity:1}50%{opacity:.4}}
.dp-hero__title{font-size:clamp(40px,5.4vw,68px);line-height:1;letter-spacing:-.03em;font-weight:var(--w-semibold);color:var(--fg-strong);margin:18px 0 0;text-wrap:balance}
.dp-hero__title .acc{background:var(--accent-grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.dp-hero__sub{font-size:var(--heading-sm);line-height:1.55;color:var(--fg-3);margin:18px 0 0;max-width:640px}

.dp-tiles{display:grid;grid-template-columns:repeat(12,1fr);gap:16px;margin-top:var(--space-10)}
.dp-tile{background:#fff;border:1px solid var(--border-card);border-radius:var(--radius-2xl);box-shadow:var(--elev-1);padding:24px 24px 22px;transition:box-shadow .2s,transform .2s,border-color .2s}
.dp-tile:hover{box-shadow:var(--elev-2);transform:translateY(-3px);border-color:var(--lavender-400)}
.dp-tile__num{font-size:clamp(30px,3.6vw,44px);font-weight:var(--w-semibold);letter-spacing:-.02em;color:var(--iris-600);line-height:1;font-variant-numeric:tabular-nums}
.dp-tile__lab{font-size:var(--body-md);font-weight:var(--w-semibold);color:var(--fg-strong);margin-top:12px}
.dp-tile__sub{font-size:var(--body-sm);color:var(--fg-muted);margin-top:5px;line-height:1.5}
.col-3{grid-column:span 3}.col-4{grid-column:span 4}.col-5{grid-column:span 5}.col-6{grid-column:span 6}.col-7{grid-column:span 7}.col-8{grid-column:span 8}.col-12{grid-column:span 12}

/* ---------- IDENTITY (standout dark band) ---------- */
.dp-identity{position:relative;overflow:hidden;background:var(--ink-900);padding:var(--space-20) 0}
.dp-identity::before{content:"";position:absolute;inset:0;background:var(--glow-iris);opacity:.9;pointer-events:none}
.dp-identity::after{content:"";position:absolute;inset:0;background-image:radial-gradient(circle,rgba(199,125,214,.14) 1px,transparent 1.4px);background-size:30px 30px;-webkit-mask-image:radial-gradient(ellipse 70% 60% at 75% 25%,#000,transparent 70%);mask-image:radial-gradient(ellipse 70% 60% at 75% 25%,#000,transparent 70%);opacity:.6;pointer-events:none}
.dp-identity .wrap{position:relative;z-index:1}
.dp-identity__grid{display:grid;grid-template-columns:0.95fr 1.05fr;gap:56px;align-items:center}
.dp-identity__eyebrow{display:inline-flex;align-items:center;gap:7px;font-size:13px;font-weight:var(--w-semibold);letter-spacing:.08em;text-transform:uppercase;color:var(--orchid-400)}
.dp-identity h2{font-size:var(--heading-2xl);line-height:1.1;letter-spacing:-.02em;font-weight:var(--w-semibold);color:var(--ink-fg);margin:14px 0 0;text-wrap:balance}
.dp-identity h2 .acc{background:linear-gradient(100deg,var(--orchid-400),#E9C7F2);-webkit-background-clip:text;background-clip:text;color:transparent}
.dp-identity p{font-size:var(--body-lg);line-height:1.6;color:var(--ink-fg-muted);margin:16px 0 0;max-width:46ch}
.dp-identity__badge{display:inline-flex;align-items:center;gap:8px;margin-top:22px;font-size:var(--body-sm);font-weight:var(--w-medium);color:var(--orchid-400);background:rgba(199,125,214,.12);border:1px solid var(--ink-border);padding:8px 14px;border-radius:var(--radius-pill)}
.dp-identity__badge .m{font-size:17px}
.dp-istats{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.dp-istat{background:var(--ink-800);border:1px solid var(--ink-border);border-radius:var(--radius-xl);padding:22px}
.dp-istat--wide{grid-column:span 2}
.dp-istat__num{font-size:clamp(28px,3vw,38px);font-weight:var(--w-semibold);letter-spacing:-.02em;color:var(--ink-fg);line-height:1;font-variant-numeric:tabular-nums}
.dp-istat__lab{font-size:var(--body-sm);color:var(--ink-fg-muted);margin-top:9px;line-height:1.45}

/* ---------- COVERAGE GRID ---------- */
.dp-cov{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:var(--space-10)}
.dp-covcell{background:#fff;border:1px solid var(--border-card);border-radius:var(--radius-xl);box-shadow:var(--elev-1);padding:22px;transition:box-shadow .2s,transform .2s,border-color .2s}
.dp-covcell:hover{box-shadow:var(--elev-2);transform:translateY(-2px);border-color:var(--lavender-400)}
.dp-covcell .m{font-size:22px;color:var(--iris-600)}
.dp-covcell__num{font-size:28px;font-weight:var(--w-semibold);letter-spacing:-.01em;color:var(--fg-strong);margin-top:12px;line-height:1;font-variant-numeric:tabular-nums}
.dp-covcell__lab{font-size:var(--body-md);font-weight:var(--w-medium);color:var(--fg-2);margin-top:6px}
.dp-covcell__sub{font-size:var(--body-sm);color:var(--fg-muted);margin-top:3px}

/* ---------- CHART CARDS ---------- */
.dp-grid2{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:var(--space-10)}
.dp-card{background:#fff;border:1px solid var(--border-card);border-radius:var(--radius-2xl);box-shadow:var(--elev-1);padding:26px 28px}
.dp-card__h{font-size:var(--heading-md);font-weight:var(--w-semibold);color:var(--fg-1);margin:0}
.dp-card__sub{font-size:var(--body-md);line-height:var(--body-md-lh);color:var(--fg-muted);margin:6px 0 0}
.dp-chartbox{position:relative;margin-top:18px}

/* donut + legend */
.dp-donutwrap{display:grid;grid-template-columns:200px 1fr;gap:28px;align-items:center;margin-top:18px}
.dp-legend{display:flex;flex-direction:column;gap:9px}
.dp-leg{display:flex;align-items:center;gap:10px;font-size:var(--body-sm)}
.dp-leg__dot{width:10px;height:10px;border-radius:3px;flex:none}
.dp-leg__name{color:var(--fg-2)}
.dp-leg__val{margin-left:auto;font-variant-numeric:tabular-nums;color:var(--fg-strong);font-weight:var(--w-semibold)}
.dp-leg__pct{color:var(--fg-faint);font-size:var(--body-xs);width:38px;text-align:right}

/* CSS/SVG horizontal bars */
.dp-bars{display:flex;flex-direction:column;gap:14px;margin-top:20px}
.dp-bar{display:grid;grid-template-columns:160px 1fr 92px;align-items:center;gap:14px}
.dp-bar__lab{font-size:var(--body-sm);color:var(--fg-2);text-align:right;line-height:1.3}
.dp-bar__track{height:18px;background:var(--surface-3);border-radius:var(--radius-pill);overflow:hidden}
.dp-bar__fill{height:100%;width:0;border-radius:var(--radius-pill);background:var(--accent-grad);transition:width 1.1s cubic-bezier(.3,.7,.3,1)}
.dp-bar__val{font-size:var(--body-sm);font-weight:var(--w-semibold);color:var(--fg-strong);font-variant-numeric:tabular-nums}
.dp-bar--rust .dp-bar__fill{background:linear-gradient(100deg,var(--rust-500),var(--rust-dot))}

/* class composition pills/bars */
.dp-segs{display:flex;flex-direction:column;gap:16px;margin-top:4px}
.dp-seg__top{display:flex;align-items:baseline;justify-content:space-between;margin-bottom:7px}
.dp-seg__name{font-size:var(--body-md);font-weight:var(--w-medium);color:var(--fg-1)}
.dp-seg__val{font-size:var(--body-sm);color:var(--fg-muted);font-variant-numeric:tabular-nums}
.dp-seg__track{height:10px;background:var(--surface-3);border-radius:var(--radius-pill);overflow:hidden}
.dp-seg__fill{height:100%;width:0;border-radius:var(--radius-pill);transition:width 1.1s cubic-bezier(.3,.7,.3,1)}

/* notable chips */
.dp-chips{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}
.dp-chip{display:inline-flex;align-items:baseline;gap:7px;font-size:var(--body-sm);color:var(--fg-2);background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-pill);padding:8px 14px}
.dp-chip b{color:var(--iris-700);font-weight:var(--w-semibold);font-variant-numeric:tabular-nums}

/* new-incorporation counters */
.dp-newrow{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:18px}
.dp-newcell{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-xl);padding:18px 20px}
.dp-newcell__num{font-size:30px;font-weight:var(--w-semibold);letter-spacing:-.01em;color:var(--iris-600);line-height:1;font-variant-numeric:tabular-nums}
.dp-newcell__lab{font-size:var(--body-sm);color:var(--fg-muted);margin-top:7px}

/* filings table */
.dp-table{width:100%;border-collapse:collapse;margin-top:18px;font-size:var(--body-md)}
.dp-table th{text-align:left;font-size:var(--body-sm);font-weight:var(--w-semibold);color:var(--fg-slate);text-transform:uppercase;letter-spacing:.04em;padding:0 12px 12px;border-bottom:1px solid var(--border)}
.dp-table th:last-child,.dp-table td:last-child{text-align:right}
.dp-table td{padding:13px 12px;border-bottom:1px solid var(--border-faint);vertical-align:middle}
.dp-table tr:last-child td{border-bottom:0}
.dp-table .form{font-family:var(--font-mono);font-size:13px;color:var(--iris-700);font-weight:var(--w-semibold)}
.dp-table .desc{color:var(--fg-muted);font-size:var(--body-sm)}
.dp-table .cnt{font-variant-numeric:tabular-nums;font-weight:var(--w-semibold);color:var(--fg-strong)}
.dp-table__barcell{width:160px}
.dp-table__bar{height:8px;background:var(--surface-3);border-radius:var(--radius-pill);overflow:hidden}
.dp-table__fill{height:100%;width:0;background:var(--accent-grad);border-radius:var(--radius-pill);transition:width 1.1s cubic-bezier(.3,.7,.3,1)}

/* filings headline split */
.dp-filhead{display:grid;grid-template-columns:0.8fr 1.2fr;gap:40px;align-items:center}
.dp-bignum{font-size:clamp(48px,6vw,84px);font-weight:var(--w-semibold);letter-spacing:-.03em;color:var(--iris-600);line-height:.95;font-variant-numeric:tabular-nums}
.dp-bignum__lab{font-size:var(--body-lg);color:var(--fg-2);margin-top:12px;font-weight:var(--w-medium)}
.dp-substats{display:flex;gap:28px;margin-top:18px;flex-wrap:wrap}
.dp-substat b{display:block;font-size:22px;font-weight:var(--w-semibold);color:var(--fg-strong);font-variant-numeric:tabular-nums}
.dp-substat span{font-size:var(--body-sm);color:var(--fg-muted)}

/* ---------- CLOSING / PROVENANCE ---------- */
.dp-close{position:relative;overflow:hidden;background:var(--ink-900);border-radius:var(--radius-2xl);padding:var(--space-16) var(--space-12);text-align:center}
.dp-close::before{content:"";position:absolute;inset:0;background:var(--glow-iris);opacity:.9;pointer-events:none}
.dp-close__in{position:relative;z-index:1}
.dp-close h2{font-size:var(--heading-2xl);line-height:1.1;letter-spacing:-.02em;font-weight:var(--w-semibold);color:var(--ink-fg);margin:0;text-wrap:balance}
.dp-close p{font-size:var(--body-lg);color:var(--ink-fg-muted);margin:16px auto 0;max-width:560px}
.dp-meta{display:flex;flex-wrap:wrap;justify-content:center;gap:10px;margin-top:26px}
.dp-metachip{display:inline-flex;align-items:center;gap:7px;font-size:var(--body-sm);color:var(--ink-fg);background:rgba(255,255,255,.05);border:1px solid var(--ink-border);border-radius:var(--radius-pill);padding:7px 14px}
.dp-metachip .m{font-size:16px;color:var(--orchid-400)}
.dp-close__cta{display:flex;gap:14px;justify-content:center;margin-top:30px;flex-wrap:wrap}

/* count-up base */
.count{font-variant-numeric:tabular-nums}

/* reveal */
.r .reveal{opacity:0;transform:translateY(22px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}
.reveal.in{opacity:1;transform:none}
.reveal[data-delay="1"]{transition-delay:.08s}.reveal[data-delay="2"]{transition-delay:.16s}.reveal[data-delay="3"]{transition-delay:.24s}

/* ---------- responsive ---------- */
@media (max-width:1080px){
  .dp-identity__grid{grid-template-columns:1fr;gap:32px}
  .dp-grid2{grid-template-columns:1fr}
  .dp-cov{grid-template-columns:repeat(2,1fr)}
  .dp-donutwrap{grid-template-columns:170px 1fr;gap:20px}
  .dp-filhead{grid-template-columns:1fr;gap:24px}
  .col-3{grid-column:span 6}.col-4{grid-column:span 6}.col-5{grid-column:span 6}.col-6{grid-column:span 6}.col-7{grid-column:span 12}.col-8{grid-column:span 12}
}
@media (max-width:680px){
  .dp .wrap{padding:0 20px}
  .dp-sec{padding:var(--space-14) 0}
  .dp-tiles{grid-template-columns:repeat(2,1fr)}
  .col-3,.col-4,.col-5,.col-6,.col-7,.col-8{grid-column:span 2}
  .dp-cov{grid-template-columns:1fr 1fr}
  .dp-newrow{grid-template-columns:1fr 1fr}
  .dp-istats{grid-template-columns:1fr}
  .dp-istat--wide{grid-column:span 1}
  .dp-donutwrap{grid-template-columns:1fr}
  .dp-bar{grid-template-columns:110px 1fr 76px;gap:10px}
  .dp-table__barcell{display:none}
}
@media (prefers-reduced-motion: reduce){
  .r .reveal{opacity:1;transform:none;transition:none}
  .dp-bar__fill,.dp-seg__fill,.dp-table__fill{transition:none}
  .dp-hero__eyebrow .live{animation:none}
}

/* ============================================================
   Interactive viz — toggle, map, themes (data-viz.js)
   ============================================================ */
.dp-head__row{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;flex-wrap:wrap}
.basis-toggle{display:inline-flex;background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-pill);padding:3px}
.basis-toggle button{font-family:var(--font-sans);font-size:13px;font-weight:var(--w-semibold);color:var(--fg-muted);background:transparent;border:0;padding:7px 18px;border-radius:var(--radius-pill);cursor:pointer;transition:background .15s,color .15s,box-shadow .15s}
.basis-toggle button.on{background:#fff;color:var(--iris-700);box-shadow:var(--elev-1)}
.basis-toggle button:hover:not(.on){color:var(--fg-2)}
.basis-hint{font-size:var(--body-sm);color:var(--fg-faint);margin-top:6px}

/* geography */
.geo-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:24px;align-items:stretch;margin-top:var(--space-10)}
#geoMap{width:100%;height:472px}
.geo-list{max-height:472px;overflow-y:auto;padding:2px 8px 2px 2px}
.geo-list::-webkit-scrollbar{width:8px}
.geo-list::-webkit-scrollbar-thumb{background:var(--border);border-radius:var(--radius-pill)}
.geo-bar{display:grid;grid-template-columns:154px 1fr 80px;align-items:center;gap:12px;padding:5px 0}
.geo-bar__lab{font-size:12.5px;color:var(--fg-2);text-align:right;line-height:1.25}
.geo-bar__rank{display:inline-block;min-width:30px;text-align:right;color:var(--fg-faint);font-variant-numeric:tabular-nums;margin-left:6px}
.geo-bar__track{height:15px;background:var(--surface-3);border-radius:var(--radius-pill);overflow:hidden}
.gbar__fill{display:block;height:100%;width:0;border-radius:var(--radius-pill);background:linear-gradient(90deg,#6d28d9,#a78bfa);transition:width 1s cubic-bezier(.3,.7,.3,1)}
.geo-bar__val{font-size:12.5px;font-weight:var(--w-semibold);color:var(--fg-strong);font-variant-numeric:tabular-nums;text-align:right}

/* growth annotations */
.dp-annote{display:flex;gap:20px;flex-wrap:wrap;margin-top:14px;font-size:var(--body-sm);color:var(--fg-muted)}
.dp-annote span{display:inline-flex;align-items:center;gap:7px}
.dp-annote i{width:11px;height:11px;border-radius:3px;display:inline-block}

/* industries themes */
.theme-list{display:flex;flex-direction:column;gap:9px;margin-top:var(--space-8)}
.theme-row{border:1px solid var(--border-card);border-radius:var(--radius-xl);background:#fff;box-shadow:var(--elev-1);overflow:hidden;transition:box-shadow .2s,border-color .2s}
.theme-row:hover{box-shadow:var(--elev-2);border-color:var(--lavender-400)}
.theme-head{display:grid;grid-template-columns:40px 220px 1fr 96px 24px;align-items:center;gap:16px;padding:15px 20px;cursor:pointer}
.theme-ico{width:40px;height:40px;border-radius:11px;background:var(--lavender-200);color:var(--iris-700);display:flex;align-items:center;justify-content:center}
.theme-ico .m{font-size:22px}
.theme-name{font-size:var(--body-lg);font-weight:var(--w-semibold);color:var(--fg-1)}
.theme-track{height:14px;background:var(--surface-3);border-radius:var(--radius-pill);overflow:hidden}
.theme-val{font-size:var(--body-md);font-weight:var(--w-bold);color:var(--fg-strong);font-variant-numeric:tabular-nums;text-align:right}
.theme-chev{color:var(--fg-faint);font-size:22px;transition:transform .2s;justify-self:center}
.theme-row.open .theme-chev{transform:rotate(180deg)}
.theme-nics{display:none;flex-wrap:wrap;gap:8px;align-items:center;padding:2px 20px 18px 76px}
.theme-row.open .theme-nics{display:flex}
.theme-nics__lbl{font-size:var(--body-sm);color:var(--fg-faint);margin-right:4px}
.nic-chip{font-size:12px;color:var(--fg-2);background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius-pill);padding:6px 12px}
.nic-chip code{font-family:var(--font-mono);color:var(--iris-700);font-weight:var(--w-semibold);margin-right:6px}

/* provenance footnote */
.provenance{font-size:var(--body-sm);color:var(--fg-faint);margin-top:18px;display:flex;align-items:center;gap:7px}
.provenance .m{font-size:15px}

/* industry treemap icon watermarks */
#themeIcons{position:absolute;inset:0;pointer-events:none;overflow:hidden}
.theme-ic-wm{position:absolute;font-family:'Material Symbols Rounded';color:rgba(46,18,71,.13);line-height:1;font-weight:400}

@media (max-width:980px){
  .geo-grid{grid-template-columns:1fr}
  #geoMap{height:380px}
  .geo-list{max-height:none}
  .theme-head{grid-template-columns:40px 1fr 96px 24px}
  .theme-track{display:none}
}
@media (max-width:560px){
  .theme-head{grid-template-columns:36px 1fr auto 22px;gap:12px;padding:14px 16px}
  .theme-name{font-size:var(--body-md)}
  .theme-nics{padding-left:16px}
  .geo-bar{grid-template-columns:120px 1fr 72px;gap:10px}
}
