/* ============================================================
   sourcing.components.css · trade-specific components for the
   Sourcing Desk content pane (the .wbbody of surface "sourcing").
   Ported from the design-handoff sourcing_desk.css (handoff_out/sourcing_desk),
   2026-06-10, MINUS the preview scaffold/studio/@font-face (the live shell
   already self-hosts the font + owns the chrome). EXTENDS Atlas — every
   value resolves to a supply.tokens.css variable. Loaded AFTER shell.chrome.css.
   Zero-dependency. Greyscale-safe (glyph + edge cues, not colour only).
   ============================================================ */

/* ============================================================
   SPINE-HANDOFF STRIP  (always atop the body — Spine is nav #1 for ล้ง)
   ============================================================ */
.spinestrip{ display:flex; align-items:center; gap:var(--s4); flex-wrap:wrap;
  padding:.8rem 1rem; border-radius:var(--r-lg);
  background:linear-gradient(100deg, var(--brand-soft), color-mix(in srgb,var(--brand-soft) 55%, var(--surface)));
  border:1px solid var(--brand); }
.spinestrip .compass{ width:34px; height:34px; flex:0 0 34px; }
.spinestrip .compass svg{ width:100%; height:100%; display:block; }
.spinestrip .txt{ flex:1; min-width:200px; }
.spinestrip .txt b{ display:block; color:var(--brand-ink); font-weight:var(--fw-bold); font-size:var(--fs-md); }
.spinestrip .txt small{ display:block; color:var(--brand2); font-size:var(--fs-xs); margin-top:2px; line-height:1.4; }

/* ============================================================
   FILTER BAR
   ============================================================ */
.filterbar{ display:flex; align-items:flex-end; gap:var(--s3); flex-wrap:wrap;
  padding:var(--s3) var(--s4); background:var(--surface); border:1px solid var(--line); border-radius:var(--r-lg); box-shadow:var(--sh-sm); }
.fctl{ display:flex; flex-direction:column; gap:4px; min-width:120px; }
.fctl > label{ font-size:var(--fs-2xs); text-transform:uppercase; letter-spacing:.06em; color:var(--muted); font-weight:var(--fw-bold); }
.fctl select, .fctl input{ font:inherit; font-size:var(--fs-sm); color:var(--ink); background:var(--surface2);
  border:1px solid var(--line2); border-radius:var(--r-sm); padding:.5rem .6rem; min-height:40px; cursor:pointer; }
.fctl select:hover, .fctl input:hover{ border-color:var(--muted); }
.fctl select:focus-visible, .fctl input:focus-visible{ outline:2px solid var(--ring); outline-offset:1px; }
.filterbar .fgrow{ flex:1; }
.filterbar .fcount{ font-family:var(--mono); font-variant-numeric:tabular-nums; font-size:var(--fs-sm); color:var(--ink2); white-space:nowrap; align-self:center; }
.filterbar .fcount b{ font-size:var(--fs-md); color:var(--ink); }
@media (pointer:coarse){ .fctl select,.fctl input{ min-height:44px; } }
@media (max-width:560px){ .fctl{ flex:1 1 40%; min-width:0; } }

/* a section heading inside the body */
.wbsec{ display:flex; align-items:baseline; justify-content:space-between; gap:var(--s3); flex-wrap:wrap; margin-top:var(--s2); }
.wbsec h2{ font-size:var(--fs-lg); font-weight:var(--fw-bold); letter-spacing:-.01em; margin:0; }
.wbsec .seccap{ font-size:var(--fs-xs); color:var(--muted); }

/* ============================================================
   LISTING CARD  (extends .wbcard — browse tab)
   asking price = SOLID single figure (not a band)
   ============================================================ */
.listcard{ cursor:pointer; gap:.65rem; transition:border-color .12s, box-shadow .12s, transform .05s; }
.listcard:hover{ border-color:var(--brand); box-shadow:var(--sh-md); }
.listcard:active{ transform:translateY(1px); }
.listcard .lc-top{ display:flex; align-items:flex-start; justify-content:space-between; gap:.5rem; }
.listcard .lc-ttl{ display:flex; align-items:center; gap:.45rem; flex-wrap:wrap; }
.listcard .lc-ttl .vname{ font-weight:var(--fw-bold); font-size:var(--fs-md); }
.listcard .lc-where{ font-size:var(--fs-xs); color:var(--muted); margin-top:1px; }

/* solid price block */
.priceblock{ display:flex; align-items:baseline; gap:.4rem; flex-wrap:wrap; }
.priceblock .pbig{ font-family:var(--mono); font-variant-numeric:tabular-nums; font-size:1.7rem; font-weight:var(--fw-bold); letter-spacing:-.01em; line-height:1; color:var(--ink); }
.priceblock .punit{ font-size:var(--fs-xs); color:var(--muted); font-weight:var(--fw-semi); }
.priceblock .pmkt{ font-family:var(--mono); font-size:1.15rem; font-weight:var(--fw-bold); color:var(--ink); }
.pdelta{ font-family:var(--mono); font-size:var(--fs-xs); font-weight:var(--fw-bold); padding:.05rem .4rem; border-radius:var(--r-pill);
  background:var(--surface2); border:1px solid var(--line2); color:var(--ink2); }
.ptmeta{ font-size:var(--fs-xs); color:var(--muted); }
.ptmeta .resv{ font-family:var(--mono); color:var(--ink2); font-weight:var(--fw-semi); }

/* qty + window facts row */
.lc-facts{ display:grid; grid-template-columns:1fr 1fr; gap:.4rem var(--s3); margin-top:.1rem; }
.lc-facts .f{ display:flex; flex-direction:column; }
.lc-facts .f .fk{ font-size:var(--fs-2xs); text-transform:uppercase; letter-spacing:.05em; color:var(--muted); }
.lc-facts .f .fv{ font-size:var(--fs-sm); color:var(--ink); font-weight:var(--fw-semi); }
.lc-facts .f .fv .num{ font-family:var(--mono); font-variant-numeric:tabular-nums; }

.listcard .lc-seller{ display:flex; align-items:center; justify-content:space-between; gap:.5rem; padding-top:.55rem; border-top:1px solid var(--line); }
.listcard .lc-seller .snm{ font-size:var(--fs-xs); color:var(--ink2); min-width:0; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.listcard .lc-act{ display:flex; gap:.4rem; }

/* ============================================================
   RELIABILITY BADGE  — honest score, NOT a credit-bureau number
   word + glyph + the deal counts it's derived from (transparent)
   ============================================================ */
.rel{ display:inline-flex; align-items:center; gap:.35rem; font-size:var(--fs-2xs); font-weight:var(--fw-bold);
  padding:.16rem .5rem; border-radius:var(--r-pill); border:1px solid transparent; white-space:nowrap; }
.rel .rg{ font-size:.95em; line-height:1; }
.rel.good{ background:var(--pv-verified-bg); color:var(--pv-verified); border-color:var(--pv-verified-ln); }
.rel.watch{ background:var(--pv-est-bg); color:var(--pv-est); border-color:var(--pv-est-ln); }
.rel.flagged{ background:var(--bad-bg); color:var(--bad); border-color:color-mix(in srgb,var(--bad) 40%, transparent); }
.relline{ font-size:var(--fs-2xs); color:var(--muted); font-family:var(--mono); font-variant-numeric:tabular-nums; }

/* ============================================================
   MOAT ROW — latest deals with a VISIBLE take-rate line
   reuses .ledger; adds a 6-column grid + fee cell (scoped to .moat only)
   ============================================================ */
.moat .ledger .lr{ grid-template-columns:1.1fr 1.3fr .9fr 1fr 1.2fr auto; }
.moat .ledger .fee{ display:flex; flex-direction:column; line-height:1.2; }
.moat .ledger .fee .num{ color:var(--brand2); font-weight:var(--fw-bold); }
.moat .ledger .fee small{ font-size:var(--fs-2xs); color:var(--muted); }
.moat .ledger .vok{ display:inline-flex; align-items:center; gap:.25rem; color:var(--pv-verified); font-weight:var(--fw-bold); font-size:var(--fs-xs); }
.moat .ledger .vmid{ color:var(--muted); font-size:var(--fs-xs); }
@media (max-width:720px){
  .moat .ledger .lr{ grid-template-columns:1fr 1fr; gap:.3rem var(--s3); padding:.7rem var(--s4); }
  .moat .ledger .lr:first-child{ display:none; }
  .moat .ledger .lr > span::before{ content:attr(data-k); display:block; font-size:var(--fs-2xs);
    text-transform:uppercase; letter-spacing:.05em; color:var(--muted); font-weight:var(--fw-bold); }
}

/* ============================================================
   RFQ ROWS (requests tab) — cards that open a drawer
   ============================================================ */
.rfqlist{ display:flex; flex-direction:column; gap:var(--s3); }
.rfqrow{ display:grid; grid-template-columns:auto 1fr auto; gap:var(--s4); align-items:center;
  border:1px solid var(--line); border-radius:var(--r); background:var(--surface); box-shadow:var(--sh-sm);
  padding:var(--s4); cursor:pointer; transition:border-color .12s, box-shadow .12s; }
.rfqrow:hover{ border-color:var(--brand); box-shadow:var(--sh-md); }
.rfqrow .rfq-id{ font-family:var(--mono); font-size:var(--fs-xs); color:var(--muted); }
.rfqrow .rfq-main .rfq-ttl{ font-weight:var(--fw-bold); font-size:var(--fs-md); }
.rfqrow .rfq-main .rfq-meta{ font-size:var(--fs-xs); color:var(--muted); margin-top:2px; }
.rfqrow .rfq-main .rfq-meta .num{ font-family:var(--mono); font-variant-numeric:tabular-nums; color:var(--ink2); }
.rfqrow .rfq-side{ display:flex; flex-direction:column; align-items:flex-end; gap:.4rem; text-align:right; min-width:90px; }
.rfqrow .rfq-meta{ display:flex; align-items:center; gap:.5rem; flex-wrap:wrap; }
.rfqrow .qcount{ font-size:var(--fs-xs); color:var(--ink2); }
.rfqrow .qcount b{ font-family:var(--mono); font-size:var(--fs-md); color:var(--ink); }

/* status chip (open / quoting / awarded) — reuses provenance palette tokens */
.stchip{ display:inline-flex; align-items:center; gap:.3rem; font-size:var(--fs-2xs); font-weight:var(--fw-bold);
  padding:.14rem .5rem; border-radius:var(--r-pill); border:1px solid transparent; white-space:nowrap; }
.stchip.open{ background:var(--pv-official-bg); color:var(--pv-official); border-color:var(--pv-official-ln); }
.stchip.quoting{ background:var(--brand-soft); color:var(--brand-ink); border-color:var(--brand); }
.stchip.awarded{ background:var(--pv-verified-bg); color:var(--pv-verified); border-color:var(--pv-verified-ln); }
.stchip.expired{ background:var(--pv-stale-bg); color:var(--pv-stale); border-color:var(--pv-stale-ln); border-style:dashed; }
@media (max-width:560px){
  .rfqrow{ grid-template-columns:1fr auto; }
  .rfqrow .rfq-id{ grid-column:1 / -1; }
}

/* the "Target (private)" pill — owner-only, lock glyph */
.privpill{ display:inline-flex; align-items:center; gap:.3rem; font-size:var(--fs-2xs); font-weight:var(--fw-semi);
  color:var(--pv-private); background:var(--pv-private-bg); border:1px solid var(--pv-private-ln);
  border-radius:var(--r-pill); padding:.12rem .5rem; white-space:nowrap; line-height:1.5; }
.privpill .num{ font-family:var(--mono); font-weight:var(--fw-bold); }

/* ============================================================
   WATCHLIST — strong empty state + 3 invite cards
   ============================================================ */
.watchwrap{ display:flex; flex-direction:column; align-items:center; gap:var(--s5); padding:var(--s6) var(--s4); text-align:center; }
.watchwrap .weye{ width:60px; height:60px; opacity:.92; }
.watchwrap .weye svg{ width:100%; height:100%; }
.watchwrap h2{ margin:0; font-size:var(--fs-xl); font-weight:var(--fw-x); letter-spacing:-.01em; }
.watchwrap p{ margin:0; color:var(--muted); max-width:46ch; }
.watchgrid{ display:grid; grid-template-columns:repeat(auto-fit,minmax(200px,1fr)); gap:var(--s3); width:min(720px,100%); }
.watchcard{ text-align:left; border:1px solid var(--line); border-radius:var(--r); background:var(--surface); padding:var(--s4); box-shadow:var(--sh-sm); }
.watchcard .wic{ width:26px; height:26px; color:var(--brand2); margin-bottom:.4rem; }
.watchcard .wic svg{ width:100%; height:100%; }
.watchcard b{ display:block; font-size:var(--fs-md); }
.watchcard span{ display:block; font-size:var(--fs-xs); color:var(--muted); margin-top:2px; line-height:1.45; }
.watchcta{ display:flex; gap:var(--s3); flex-wrap:wrap; justify-content:center; }

/* ============================================================
   FEED TEASER — locked, value behind 🔒, NO payment flow
   ============================================================ */
.feedlock{ border:1.5px dashed var(--brand); border-radius:var(--r-lg); overflow:hidden;
  background:repeating-linear-gradient(135deg, var(--surface2) 0 14px, transparent 14px 28px); }
.feedlock .fl-head{ display:flex; align-items:flex-start; gap:var(--s4); padding:var(--s5); border-bottom:1px solid var(--line); background:var(--surface); }
.feedlock .fl-lock{ width:46px; height:46px; flex:0 0 46px; border-radius:var(--r); display:grid; place-items:center;
  background:var(--brand-soft); color:var(--brand-ink); font-size:1.4rem; }
.feedlock .fl-h{ flex:1; min-width:0; }
.feedlock .fl-h h2{ margin:0 0 .25rem; font-size:var(--fs-lg); font-weight:var(--fw-bold); }
.feedlock .fl-h p{ margin:0; color:var(--muted); font-size:var(--fs-sm); max-width:60ch; }
.feedlock .fl-badge{ flex:0 0 auto; font-size:var(--fs-2xs); font-weight:var(--fw-bold); text-transform:uppercase; letter-spacing:.06em;
  color:var(--pv-est); background:var(--pv-est-bg); border:1px solid var(--pv-est-ln); border-radius:var(--r-pill); padding:.16rem .6rem; }
.feedlock .fl-vals{ display:grid; grid-template-columns:repeat(auto-fit,minmax(220px,1fr)); gap:var(--s4); padding:var(--s5); }
.feedlock .fval{ display:flex; gap:.6rem; }
.feedlock .fval .vi{ width:22px; height:22px; flex:0 0 22px; color:var(--brand2); margin-top:2px; }
.feedlock .fval .vi svg{ width:100%; height:100%; }
.feedlock .fval b{ display:block; font-size:var(--fs-sm); }
.feedlock .fval span{ display:block; font-size:var(--fs-xs); color:var(--muted); margin-top:1px; line-height:1.4; }
.feedlock .fl-foot{ display:flex; align-items:center; gap:var(--s3); flex-wrap:wrap; padding:var(--s5); border-top:1px solid var(--line); background:var(--surface); }
.feedlock .fl-foot .fnote{ font-size:var(--fs-xs); color:var(--muted); }

/* ============================================================
   DRAWER — opens OVER the desk on a scrim (reuses .panel pattern)
   never a new route; bottom-sheet on mobile
   ============================================================ */
.drawerscrim{ position:fixed; inset:0; background:rgba(15,16,12,.5); z-index:80;
  opacity:0; pointer-events:none; }
.drawerscrim.on{ opacity:1; pointer-events:auto; }
.drawer{ position:fixed; top:0; right:0; bottom:0; z-index:81; width:min(440px,100%);
  background:var(--surface); border-left:1px solid var(--line); box-shadow:var(--sh-lg);
  display:flex; flex-direction:column; overflow-y:auto;
  transform:translateX(100%); }
.drawer.on{ transform:none; }
.drawer .dr-head{ position:sticky; top:0; z-index:2; display:flex; align-items:center; justify-content:space-between; gap:var(--s3);
  padding:var(--s4) var(--s5); background:var(--surface); border-bottom:1px solid var(--line); }
.drawer .dr-eyebrow{ font-size:var(--fs-2xs); text-transform:uppercase; letter-spacing:.1em; color:var(--muted); font-weight:var(--fw-bold); }
.drawer .dr-head h2{ margin:.15rem 0 0; font-size:var(--fs-lg); font-weight:var(--fw-bold); letter-spacing:-.01em; }
.drawer .dr-body{ padding:var(--s5); display:flex; flex-direction:column; gap:var(--s4); }
.drawer .dr-foot{ position:sticky; bottom:0; background:var(--surface); border-top:1px solid var(--line); display:flex; gap:var(--s3);
  /* reserve the mobile home-indicator safe area so the footer buttons (cancel/save/
     next) aren't clipped at the bottom edge of a bottom-sheet on a notched phone. */
  padding:var(--s4) var(--s5) calc(var(--s4) + env(safe-area-inset-bottom)); }
@media (max-width:560px){
  .drawer{ top:auto; left:0; right:0; width:auto; max-height:var(--sheet-max-h, calc(100dvh - 64px)); border-left:0; border-top:1px solid var(--line);
    border-radius:var(--r-lg) var(--r-lg) 0 0; transform:translateY(100%); }
  .drawer.on{ transform:none; }
}

/* a labelled fact list inside the drawer */
.drow{ display:flex; align-items:baseline; justify-content:space-between; gap:var(--s3); padding:.4rem 0; border-top:1px solid var(--line); }
.drow:first-child{ border-top:0; }
.drow .dk{ font-size:var(--fs-sm); color:var(--muted); }
.drow .dv{ font-size:var(--fs-sm); font-weight:var(--fw-semi); text-align:right; }
.drow .dv .num{ font-family:var(--mono); font-variant-numeric:tabular-nums; }
.drow .dv .big{ font-family:var(--mono); font-size:1.15rem; font-weight:var(--fw-bold); }

/* offer form inputs */
.offerfield{ display:flex; flex-direction:column; gap:.35rem; }
.offerfield label{ font-size:var(--fs-xs); color:var(--muted); font-weight:var(--fw-semi); }
.offerfield input, .offerfield textarea{ font:inherit; font-size:var(--fs-md); color:var(--ink);
  background:var(--surface2); border:1px solid var(--line2); border-radius:var(--r-sm); padding:.6rem .7rem; }
.offerfield input.num{ font-family:var(--mono); }
.offerfield input:focus-visible, .offerfield textarea:focus-visible{ outline:2px solid var(--ring); outline-offset:1px; }

/* quote / candidate rows inside drawer */
.qrow{ display:flex; align-items:center; gap:var(--s3); padding:var(--s3) 0; border-top:1px solid var(--line); }
.qrow:first-of-type{ border-top:0; }
.qrow .qmain{ flex:1; min-width:0; }
.qrow .qmain b{ font-size:var(--fs-sm); display:flex; align-items:center; gap:.4rem; flex-wrap:wrap; }
.qrow .qmain .qsub{ font-size:var(--fs-xs); color:var(--muted); margin-top:2px; }
.qrow .qmain .qsub .num{ font-family:var(--mono); color:var(--ink2); font-weight:var(--fw-semi); }
.qrow .qprice{ font-family:var(--mono); font-variant-numeric:tabular-nums; font-weight:var(--fw-bold); font-size:var(--fs-md); text-align:right; }
.qrow .qact{ display:flex; gap:.35rem; }
.matchbar{ width:46px; height:6px; border-radius:var(--r-pill); background:var(--bg2); overflow:hidden; }
.matchbar i{ display:block; height:100%; background:linear-gradient(90deg,var(--ramp-2),var(--ramp-4)); }

/* ============================================================
   STATES — loading skeleton / empty / error
   ============================================================ */
.skelgrid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:var(--s3); }
.skelcard{ border:1px solid var(--line); border-radius:var(--r); background:var(--surface); padding:var(--s4);
  display:flex; flex-direction:column; gap:.6rem; }
.skelcard .sk{ height:12px; border-radius:6px; }
.skelcard .sk.lg{ height:30px; width:55%; }
.skelcard .sk.w70{ width:70%; } .skelcard .sk.w40{ width:40%; } .skelcard .sk.w90{ width:90%; }
.statebox{ border:1.5px dashed var(--line2); border-radius:var(--r-lg); background:var(--surface2);
  padding:var(--s7) var(--s5); display:flex; flex-direction:column; align-items:center; gap:.6rem; text-align:center; }
.statebox .sic{ font-size:2rem; opacity:.85; }
.statebox h3{ margin:.2rem 0 0; font-size:var(--fs-lg); }
.statebox p{ margin:0; color:var(--muted); max-width:42ch; }
.statebox.err{ border-color:color-mix(in srgb,var(--bad) 45%, var(--line2)); }
.statebox.err .sic{ color:var(--bad); }

/* ============================================================
   TRUST TREATMENT (ported from handoff_out/trust_treatment) —
   PUBLIC-SAFE provenance on the seller row, replacing the buyer-side
   reliability badge (now private, FR-RV11). Reuses .pv/.pv.verified.
   Nothing here encodes/implies the private reliability score.
   ============================================================ */
.lc-seller{ flex-wrap:wrap; row-gap:.4rem; }
.lc-seller .snm{ font-weight:var(--fw-semi); }
.trustrow{ display:inline-flex; align-items:center; gap:.4rem; flex-wrap:wrap; justify-content:flex-end; }

/* .tchip — NEUTRAL identity/locator chip (NOT a verified chip, NOT a score) */
.tchip{ display:inline-flex; align-items:center; gap:.3rem; white-space:nowrap;
  font-size:var(--fs-2xs); font-weight:var(--fw-semi); line-height:1.5;
  padding:.13rem .5rem; border-radius:var(--r-pill);
  background:var(--surface2); color:var(--ink2); border:1px solid var(--line2); }
.tchip .ic{ width:13px; height:13px; flex:0 0 13px; display:inline-flex; }
.tchip .ic svg{ width:100%; height:100%; display:block; }
.tchip.loc .ic{ color:var(--brand2); }
.tchip.member{ color:var(--muted); }
.tchip.member .ic{ color:var(--muted); }

/* GAP credential reuses the LIVE .pv.verified chip */
.pv.verified .g{ font-weight:var(--fw-x); }

/* asking-price provenance caption (the honest "firm, not an estimate" substitute) */
.priceprov{ display:inline-flex; align-items:center; gap:.3rem; margin-top:.25rem;
  font-size:var(--fs-2xs); color:var(--muted); line-height:1.4; }
.priceprov .d{ color:var(--brand2); font-weight:var(--fw-x); }
.priceprov b{ color:var(--ink2); font-weight:var(--fw-semi); }

/* drawer's public-safe trust block — replaces the old reliability .disc line */
.trustnote{ display:flex; gap:.55rem; align-items:flex-start;
  background:var(--surface2); border:1px solid var(--line); border-radius:var(--r);
  padding:.6rem .7rem; font-size:var(--fs-xs); color:var(--ink2); line-height:1.45; }
.trustnote .ic{ width:15px; height:15px; flex:0 0 15px; color:var(--brand2); margin-top:1px; display:inline-flex; }
.trustnote .ic svg{ width:100%; height:100%; display:block; }
.trustnote.verified .ic{ color:var(--pv-verified); }
.trustnote b{ color:var(--ink); font-weight:var(--fw-semi); }

/* ---- seller trust drill-in (Phase 1) — opener affordance + scoped .selldrill body.
   Ported from docs/design/handoff_out/seller_detail/. Reuses Atlas tokens; the
   seller name becomes a dotted-underline opener, the drawer body is self-scoped. ---- */
.opener{ display:inline-flex; align-items:center; gap:.25rem; cursor:pointer; border:0; background:transparent; padding:0; font:inherit; color:inherit; text-align:left; }
.opener .nm{ font-weight:var(--fw-semi); border-bottom:1.5px dotted var(--brand); }
.opener:hover .nm{ border-bottom-style:solid; color:var(--brand-ink); }
.opener .caret{ color:var(--brand2); font-weight:800; }
.opener:focus-visible{ outline:2px solid var(--ring); outline-offset:2px; border-radius:2px; }
@media (pointer:coarse){ .opener{ min-height:44px; } }

.selldrill .sdid{ display:flex; align-items:flex-start; gap:.6rem; }
.selldrill .sdid .idmain{ flex:1; min-width:0; }
.selldrill .sdid .nm{ font-size:var(--fs-lg); font-weight:var(--fw-bold); letter-spacing:-.01em; line-height:1.2; }
.selldrill .sdid .loc{ margin-top:.35rem; }
.selldrill .sdlbl{ display:flex; align-items:center; gap:.5rem; margin-top:14px; }
.selldrill .sdlbl .st{ font-size:var(--fs-2xs); text-transform:uppercase; letter-spacing:.1em; color:var(--muted); font-weight:var(--fw-bold); }
.selldrill .sdlbl .ln{ flex:1; height:1px; background:var(--line); }
.selldrill .priceblock{ display:flex; align-items:baseline; gap:.15rem; }
.selldrill .selledger{ margin-top:.5rem; border:1px solid var(--line); border-radius:var(--r); overflow:hidden; }
.selldrill .plrow{ display:grid; grid-template-columns:22px 1fr auto; gap:.5rem; align-items:baseline; padding:.55rem .7rem; border-top:1px solid var(--line); }
.selldrill .plrow:first-child{ border-top:0; }
.selldrill .plg{ font-weight:800; line-height:1.3; }
.selldrill .plg.pub{ color:var(--pv-official); }
.selldrill .plg.priv{ color:var(--pv-private); }
.selldrill .plmain b{ display:block; font-size:var(--fs-sm); color:var(--ink); font-weight:var(--fw-semi); }
.selldrill .plmain span{ font-size:var(--fs-xs); color:var(--muted); line-height:1.4; }
.selldrill .pllab{ align-self:center; white-space:nowrap; font-size:var(--fs-2xs); text-transform:uppercase; letter-spacing:.05em; font-weight:var(--fw-bold); padding:.12rem .45rem; border-radius:999px; }
.selldrill .pllab.pub{ color:var(--pv-official); background:var(--pv-official-bg); }
.selldrill .pllab.priv{ color:var(--pv-private); background:var(--pv-private-bg); }
.selldrill .selunlock{ margin-top:.5rem; border:1px dashed var(--brand); border-radius:var(--r); overflow:hidden; }
.selldrill .selunlock .un-step{ display:grid; grid-template-columns:22px 1fr; gap:.6rem; align-items:baseline; padding:.5rem .7rem; border-top:1px solid var(--line); }
.selldrill .selunlock .un-step:first-child{ border-top:0; }
.selldrill .selunlock .un-step .g{ color:var(--brand2); font-weight:800; }
.selldrill .selunlock .un-step .txt{ font-size:var(--fs-xs); color:var(--ink2); line-height:1.45; }
.selldrill .thin{ display:flex; gap:.55rem; align-items:flex-start; font-size:var(--fs-xs); color:var(--muted); line-height:1.5; }
.selldrill .thin .ic{ width:15px; height:15px; flex:0 0 15px; color:var(--muted); margin-top:1px; display:inline-flex; }
.selldrill .thin .ic svg{ width:100%; height:100%; display:block; }
