/* =============================================================================
   NGD BUYER — DIRECTION A "CLEAN COMMERCE"  (presentation-only reskin)
   Loaded LAST in public/index.html (after role-premium.css). PURE styling: it
   restyles existing class names only. It NEVER renames/removes any element id,
   data-action/data-field/data-value/data-route, form field name, or the JS state
   classes (.active/.on/.hidden/.isWhiteColorMode/.isFancyColorMode/.expanded) —
   so the main + advanced filters, search, cart, checkout and calculator behave
   IDENTICALLY. Only colours/backgrounds/borders/radii/shadows change.

   NOTE ON SPECIFICITY: the legacy buyer CSS styles the desk with high-specificity
   `!important` compound selectors (e.g. `.ngdDeskShell .ngdDiamondTabs`, 0-2-0).
   To win the cascade WITHOUT touching logic, these overrides mirror those
   ancestors (`.ngdDeskShell`, `.buyerDeskMain`, `#shopGrid`, `#diamondFilterOverlay`)
   so they match/beat that specificity and win by source order.
   Palette: white surfaces, near-black ink, single teal accent (Direction A, #0A7266).
   [audit-fix #99] comment corrected — the shipped accent is teal, not cobalt.
   ============================================================================= */
:root{
  --a-accent:#0A7266; --a-accent-strong:#08594F; --a-accent-soft:#E6F7F5; --a-on-accent:#ffffff;
  --a-ink:#0B1220; --a-ink-2:#3A4657; --a-muted:#626B79;
  --a-bg:#FFFFFF; --a-surface:#FFFFFF; --a-surface-2:#F5F7FB; --a-fac:#EEF2F9;
  --a-line:#E7EAF1; --a-line-2:#D7DCE6;
  --a-good:#067A55; --a-good-soft:#E4F5EE; --a-warn:#855c10; --a-warn-soft:#FBF1DC;/* [ui-fix] --a-warn #9A6B15->#855c10 (~4.17->5.29:1) — cross-portal AA parity with admin/ops/seller */
  --a-radius:12px; --a-radius-sm:9px;
  --a-shadow:0 1px 2px rgba(16,24,40,.04),0 8px 24px rgba(16,24,40,.06);
  --a-shadow-lg:0 14px 34px rgba(16,24,40,.10);
}

/* ---- global surfaces ------------------------------------------------------- */
body{background:var(--a-bg)!important;color:var(--a-ink)!important;}
.buyerDeskMain,.buyerFlowPage,.buyerNivodaMain,.ngdBuyerDeskMain{background:var(--a-bg)!important;}

/* Buttons (bare + scoped so they win inside the desk too) */
.btn,.buyerDeskMain .btn,.ngdDeskShell .btn{border-radius:var(--a-radius-sm)!important;font-weight:650!important;}
.btn:not(.light):not(.ghost):not(.secondary),
.buyerDeskMain .btn:not(.light):not(.ghost):not(.secondary){background:var(--a-accent)!important;border:1px solid var(--a-accent)!important;color:var(--a-on-accent)!important;}
.btn:not(.light):not(.ghost):not(.secondary):hover{background:var(--a-accent-strong)!important;border-color:var(--a-accent-strong)!important;}
.btn.light,.btn.secondary{background:var(--a-surface)!important;border:1px solid var(--a-line-2)!important;color:var(--a-ink)!important;}
.btn.light:hover,.btn.secondary:hover{border-color:var(--a-accent)!important;color:var(--a-accent)!important;}
.btn.ghost{background:transparent!important;border-color:transparent!important;color:var(--a-ink-2)!important;}
:focus-visible{outline:2px solid var(--a-accent)!important;outline-offset:2px;}

/* ---- top bar --------------------------------------------------------------- */
.ngdDeskShell .ngdDeskTop,.ngdDeskShell .buyerNivodaTop,.ngdDeskTop{background:var(--a-surface)!important;color:var(--a-ink)!important;border-bottom:1px solid var(--a-line)!important;}
.ngdDeskShell .ngdDeskTop *{color:inherit;}
.ngdDeskShell .buyerLogoMark,.buyerSideBrand{background:var(--a-accent)!important;color:#fff!important;border-radius:8px!important;padding:4px 9px!important;font-weight:650!important;}
.ngdDeskShell .buyerDeskMenuBtn{background:var(--a-surface)!important;border:1px solid var(--a-line-2)!important;color:var(--a-ink-2)!important;border-radius:var(--a-radius-sm)!important;}
.ngdDeskShell .buyerDeskMenuBtn:hover{border-color:var(--a-accent)!important;color:var(--a-accent)!important;}
.ngdDeskShell .buyerDeskSearch{background:var(--a-surface-2)!important;border:1px solid var(--a-line-2)!important;border-radius:11px!important;}
.ngdDeskShell .buyerDeskSearch input,.ngdDeskShell #q{background:transparent!important;border:0!important;color:var(--a-ink)!important;}
.ngdDeskShell .buyerSearchIcon{color:var(--a-muted)!important;}
.ngdDeskShell .buyerSearchGo{background:var(--a-accent)!important;color:#fff!important;border:0!important;border-radius:8px!important;height:30px!important;padding:0 13px!important;font-weight:650!important;}
.ngdDeskShell .buyerSearchGo:hover{background:var(--a-accent-strong)!important;}
.ngdDeskShell .buyerShortlistTop,.ngdDeskShell .buyerDeskCart,.ngdDeskShell .buyerDeskHelp,.ngdDeskShell .buyerDeskAccount{background:transparent!important;border:1px solid transparent!important;color:var(--a-ink-2)!important;border-radius:var(--a-radius-sm)!important;font-weight:600!important;}
.ngdDeskShell .buyerShortlistTop:hover,.ngdDeskShell .buyerDeskCart:hover,.ngdDeskShell .buyerDeskHelp:hover,.ngdDeskShell .buyerDeskAccount:hover{background:var(--a-surface-2)!important;color:var(--a-ink)!important;}
.ngdDeskShell .buyerDeskCart b,.buyerShortlistTop b{background:var(--a-accent)!important;color:#fff!important;border-radius:999px!important;padding:1px 6px!important;font-size:11px!important;}
.ngdDeskShell .buyerAvatar{background:var(--a-accent)!important;color:#fff!important;}

/* ---- diamond-type nav (legacy: dark 2-col grid; fix contrast + fit 3 tabs) -- */
.ngdDeskShell .ngdDiamondTabs,.ngdDeskShell .buyerDeskBlackNav{background:var(--a-surface)!important;border-bottom:1px solid var(--a-line)!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:8px!important;height:auto!important;min-height:0!important;padding:8px 16px!important;}
.ngdDeskShell .ngdDiamondTabs button,.ngdDeskShell .buyerDeskBlackNav button{background:var(--a-surface-2)!important;color:var(--a-ink)!important;border:1px solid var(--a-line)!important;border-radius:10px!important;height:auto!important;min-height:0!important;padding:9px 14px!important;box-shadow:none!important;}
.ngdDeskShell .ngdDiamondTabs button small,.ngdDeskShell .buyerDeskBlackNav button small{color:var(--a-ink-2)!important;}
.ngdDeskShell .ngdDiamondTabs button:hover,.ngdDeskShell .buyerDeskBlackNav button:hover{border-color:var(--a-accent)!important;background:var(--a-surface)!important;}
.ngdDeskShell .ngdDiamondTabs button.active,.ngdDeskShell .buyerDeskBlackNav button.active{background:var(--a-accent-soft)!important;color:var(--a-accent)!important;border-color:var(--a-accent)!important;box-shadow:none!important;}
.ngdDeskShell .ngdDiamondTabs button.active small,.ngdDeskShell .buyerDeskBlackNav button.active small{color:var(--a-accent)!important;}

/* ---- side menu ------------------------------------------------------------- */
.ngdDeskShell .buyerNivodaSideMenu,.buyerNivodaSideMenu{background:var(--a-surface)!important;color:var(--a-ink)!important;}
.ngdDeskShell .buyerNivodaSideMenu h4{color:var(--a-muted)!important;}
.ngdDeskShell .buyerNivodaSideMenu a{color:var(--a-ink-2)!important;border-radius:8px!important;}
.ngdDeskShell .buyerNivodaSideMenu a:hover,.ngdDeskShell .buyerNivodaSideMenu a.active{background:var(--a-accent-soft)!important;color:var(--a-accent)!important;}
.ngdDeskShell .buyerNivodaSideMenu .new{background:var(--a-accent)!important;color:#fff!important;border-radius:999px!important;}
.ngdDeskShell .buyerSideUser{border-top:1px solid var(--a-line)!important;}

/* ---- hero (legacy: white text on transparent = invisible) ------------------ */
.buyerDeskMain .ngdDeskHero,.ngdBuyerDeskMain .ngdDeskHero,.ngdDeskHero{background:linear-gradient(180deg,var(--a-surface-2),var(--a-surface))!important;color:var(--a-ink)!important;border:1px solid var(--a-line)!important;border-radius:var(--a-radius)!important;padding:20px 22px!important;}
.buyerDeskMain .ngdDeskHero *,.ngdBuyerDeskMain .ngdDeskHero *{color:inherit;}
.buyerDeskMain .ngdDeskHero>div>span,.buyerDeskMain .roleKicker,.roleKicker{color:var(--a-accent)!important;font-weight:700!important;letter-spacing:.08em;text-transform:uppercase;}
.buyerDeskMain .ngdDeskHero h1,.buyerDeskMain .ngdDeskTitle h2{color:var(--a-ink)!important;}
.buyerDeskMain .ngdDeskHero p{color:var(--a-muted)!important;}
.buyerDeskMain #resultCount,.buyerDeskMain .ngdDeskHeroMeta b,#resultCount{color:var(--a-ink)!important;font-weight:650!important;}
.buyerDeskMain .ngdDeskHeroMeta small{color:var(--a-muted)!important;}

/* ---- shop toolbar ---------------------------------------------------------- */
.buyerDeskMain .buyerDeskToolbar,.buyerDeskMain .ngdDeskToolbar,.buyerDeskToolbar{background:var(--a-surface)!important;border:1px solid var(--a-line)!important;border-radius:var(--a-radius)!important;box-shadow:var(--a-shadow)!important;}
/* [premium-refresh] 'All filters' is now a SOLID teal primary so an ON quick-toggle (accent-soft, L90)
   is unmistakably a different, engaged state — previously both were accent-soft and indistinguishable. */
.buyerDeskMain .buyerFilterBtn,.buyerFilterBtn{background:var(--a-accent)!important;border:1px solid var(--a-accent)!important;color:var(--a-on-accent)!important;border-radius:var(--a-radius-sm)!important;font-weight:650!important;}
.buyerDeskMain .buyerFilterBtn:hover{background:var(--a-accent-strong)!important;border-color:var(--a-accent-strong)!important;color:#fff!important;}
.buyerDeskMain .buyerCertInput,.buyerDeskMain .buyerDeskSort,.buyerDeskMain #priceQuick,.buyerDeskMain #sort,.buyerDeskMain #certificateLookup{background:var(--a-surface)!important;border:1px solid var(--a-line-2)!important;color:var(--a-ink)!important;border-radius:var(--a-radius-sm)!important;}
.buyerDeskMain .buyerQuickToggle{background:var(--a-surface)!important;border:1px solid var(--a-line-2)!important;color:var(--a-ink-2)!important;border-radius:var(--a-radius-sm)!important;}
.buyerDeskMain .buyerQuickToggle:hover{border-color:var(--a-accent)!important;color:var(--a-accent)!important;}
.buyerDeskMain .buyerQuickToggle.active{background:var(--a-accent-soft)!important;border-color:var(--a-accent)!important;color:var(--a-accent)!important;}
.buyerDeskMain .buyerViewSwitch{background:var(--a-surface)!important;border:1px solid var(--a-line-2)!important;color:var(--a-ink-2)!important;border-radius:var(--a-radius-sm)!important;}
.buyerDeskMain .buyerViewSwitch.active,.buyerDeskMain .buyerViewSwitch:hover{border-color:var(--a-accent)!important;color:var(--a-accent)!important;}
/* Saved Searches: role-premium sizes the WRAPPER to 34px but leaves the inner button unsized
   (~19px), so its bordered pill looked squished next to the 34px "List View". Match List View. */
.buyerDeskMain .buyerDeskSaved{height:34px!important;}
.buyerDeskMain .buyerDeskSaved>button{height:34px!important;padding:0 14px!important;display:inline-flex!important;align-items:center!important;gap:6px;background:var(--a-surface)!important;color:var(--a-ink)!important;border:1px solid var(--a-line-2)!important;border-radius:9px!important;font-weight:700!important;line-height:1!important;white-space:nowrap!important;}
.buyerDeskMain .buyerDeskSaved>button:hover{border-color:var(--a-accent)!important;color:var(--a-accent)!important;background:var(--a-accent-soft)!important;}
.buyerDeskMain .buyerDeskDropdown{background:var(--a-surface)!important;color:var(--a-ink)!important;border:1px solid var(--a-line-2)!important;border-radius:var(--a-radius)!important;box-shadow:var(--a-shadow-lg)!important;}
.buyerDeskMain .buyerBulkBar,.buyerBulkBar{background:var(--a-ink)!important;color:#fff!important;border-radius:var(--a-radius)!important;}
.buyerDeskMain .buyerBulkBar button{background:rgba(255,255,255,.14)!important;color:#fff!important;border:0!important;border-radius:8px!important;}
.buyerDeskMain .buyerBulkBar button:hover{background:var(--a-accent)!important;}

/* ---- diamond cards (grid) — scope under #shopGrid (id beats class rules) ---- */
#shopGrid .buyerNivodaStoneCard,#shopGrid .buyerStoneCard,#shopGrid .buyerDeskGridCard{background:var(--a-surface)!important;border:1px solid var(--a-line)!important;border-radius:var(--a-radius)!important;box-shadow:var(--a-shadow)!important;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease!important;overflow:hidden;}
#shopGrid .buyerNivodaStoneCard:hover,#shopGrid .buyerStoneCard:hover{transform:translateY(-3px)!important;box-shadow:var(--a-shadow-lg)!important;border-color:var(--a-line-2)!important;}
#shopGrid .buyerStoneMedia{background:#fff!important;border:0!important;border-bottom:1px solid var(--a-line)!important;}
#shopGrid .buyerStoneActions button{background:rgba(255,255,255,.94)!important;border:1px solid var(--a-line)!important;color:var(--a-ink-2)!important;border-radius:8px!important;font-weight:600!important;}
#shopGrid .buyerStoneActions button:hover{border-color:var(--a-accent)!important;color:var(--a-accent)!important;}
#shopGrid .buyerMedia360{background:rgba(11,18,32,.72)!important;color:#fff!important;border-radius:6px!important;}
#shopGrid .buyerStoneBody{background:var(--a-surface)!important;}
#shopGrid .buyerStoneNumbers span{background:var(--a-surface-2)!important;border:1px solid var(--a-line)!important;color:var(--a-ink-2)!important;border-radius:6px!important;}
/* [ui] A DEFECT must not wear the positive colour. This rule used to paint EVERY tag green, so a stone
   tagged 'BGM' (7,260 of them) or 'Not eye clean' (4,196) read as a quality badge. Clean findings keep the
   good tone (.ok); defects read amber (.warn). The wording itself also states which is which, so colour is
   never the only signal. Untagged spans keep the old colour so nothing else regresses. */
#shopGrid .buyerStoneBadges span{color:var(--a-good)!important;}
#shopGrid .buyerStoneBadges span.ok,#shopGrid .ngdCardTags span.ok{color:var(--a-good)!important;}
#shopGrid .buyerStoneBadges span.warn,#shopGrid .ngdCardTags span.warn{color:#8A5A00!important;}
#shopGrid .buyerStonePrice{color:var(--a-ink)!important;}
#shopGrid .buyerStonePrice b,#shopGrid .buyerStonePrice strong{color:var(--a-accent)!important;}
#shopGrid .buyerStoneBuy{background:var(--a-accent)!important;border:1px solid var(--a-accent)!important;color:#fff!important;border-radius:var(--a-radius-sm)!important;font-weight:650!important;}
#shopGrid .buyerStoneBuy:hover{background:var(--a-accent-strong)!important;}
#shopGrid .buyerStoneBuy[disabled],#shopGrid .buyerDisabledBuy[disabled]{background:var(--a-surface-2)!important;border-color:var(--a-line-2)!important;color:var(--a-muted)!important;cursor:not-allowed;}
/* list view + expanded */
/* [pass3-fix] `overflow:hidden` here makes the table a scroll container, so anything that nudges its
   content sideways (browser zoom rounding, a fallback font with a wider left side bearing, a scrollbar)
   is silently cut instead of shown. The rounded corners are the only reason the clip exists, and
   `clip` gives exactly that without the scroll-container behaviour. A little padding is added below so
   no text ever sits flush against this boundary in the first place. */
#shopGrid .buyerDeskTable,#shopGrid .buyerNivodaTable{background:var(--a-surface)!important;border:1px solid var(--a-line)!important;border-radius:var(--a-radius)!important;overflow:clip;}
#shopGrid .buyerDeskTableHead{background:var(--a-surface-2)!important;color:var(--a-muted)!important;border-bottom:1px solid var(--a-line)!important;}
#shopGrid .buyerDeskTableItem{border-top:1px solid var(--a-line)!important;}
#shopGrid .buyerDeskTableItem:hover{background:var(--a-surface-2)!important;}
#shopGrid .buyerRowToggle{background:var(--a-surface)!important;border:1px solid var(--a-line-2)!important;color:var(--a-ink-2)!important;border-radius:8px!important;}
#shopGrid .buyerDeskExpanded,#shopGrid .buyerExpandedMedia,#shopGrid .buyerDiamondDetails,#shopGrid .buyerDelivery{background:var(--a-surface-2)!important;border-color:var(--a-line)!important;}
#shopGrid .buyerDeskEmpty,#shopGrid .ngdDeskEmpty{background:var(--a-surface)!important;border:1px dashed var(--a-line-2)!important;border-radius:var(--a-radius)!important;color:var(--a-muted)!important;}
#shopGrid .ngdEmptyIcon{background:var(--a-accent)!important;color:#fff!important;}

/* ---- FILTER DRAWER — scope under #diamondFilterOverlay (id) to win + remap purple */
#diamondFilterOverlay,.diamondFilterOverlay{background:rgba(11,18,32,.5)!important;}
#diamondFilterOverlay .diamondFilterPanel,.diamondFilterPanel{background:var(--a-surface)!important;border-radius:16px!important;box-shadow:var(--a-shadow-lg)!important;}
#diamondFilterOverlay .diamondFilterHeader{border-bottom:1px solid var(--a-line)!important;}
#diamondFilterOverlay .diamondFilterHeader h3{color:var(--a-ink)!important;}
#diamondFilterOverlay .diamondFilterHeader p{color:var(--a-muted)!important;}
#diamondFilterOverlay .filterTabGroup{border:1px solid var(--a-line-2)!important;border-radius:10px!important;}
#diamondFilterOverlay .filterTabGroup button{background:var(--a-surface)!important;color:var(--a-ink-2)!important;}
#diamondFilterOverlay .filterTabGroup button.active{background:var(--a-accent-soft)!important;color:var(--a-accent)!important;}
#diamondFilterOverlay .filterCloseBtn{color:var(--a-muted)!important;}
#diamondFilterOverlay .filterBlock{border-bottom:1px solid var(--a-line)!important;}
#diamondFilterOverlay .filterBlock h3,#diamondFilterOverlay .filterBlock h4{color:var(--a-ink)!important;}
#diamondFilterOverlay .filterChip{border:1px solid var(--a-line-2)!important;background:var(--a-surface)!important;color:var(--a-ink-2)!important;border-radius:9px!important;}
#diamondFilterOverlay .filterChip:hover{border-color:var(--a-accent)!important;background:var(--a-accent-soft)!important;color:var(--a-accent)!important;}
#diamondFilterOverlay .filterChip.active{border-color:var(--a-accent)!important;background:var(--a-accent-soft)!important;color:var(--a-accent)!important;}
#diamondFilterOverlay .shapeChip{border:1px solid var(--a-line)!important;background:var(--a-surface)!important;border-radius:10px!important;}
#diamondFilterOverlay .shapeChip:hover{border-color:var(--a-accent)!important;}
#diamondFilterOverlay .shapeChip.active{border-color:var(--a-accent)!important;background:var(--a-accent-soft)!important;color:var(--a-accent)!important;}
#diamondFilterOverlay .shapeChipIcon{color:var(--a-muted)!important;}
#diamondFilterOverlay .shapeChip.active .shapeChipIcon{color:var(--a-accent)!important;}
#diamondFilterOverlay .switchLine span{background:var(--a-line-2)!important;}
#diamondFilterOverlay .switchLine.on span,#diamondFilterOverlay .switchLine.active span{background:var(--a-accent)!important;}
#diamondFilterOverlay .rangeInputs input,#diamondFilterOverlay .advancedRangeInputs input,#diamondFilterOverlay .buyerRangePair input,#diamondFilterOverlay .buyerFancySelect,#diamondFilterOverlay .advancedSelect{border:1px solid var(--a-line-2)!important;border-radius:9px!important;background:var(--a-surface)!important;color:var(--a-ink)!important;}
#diamondFilterOverlay .rangeInputs input:focus,#diamondFilterOverlay .buyerRangePair input:focus{border-color:var(--a-accent)!important;box-shadow:0 0 0 3px var(--a-accent-soft)!important;}
#diamondFilterOverlay .priceTabs button.active,#diamondFilterOverlay .keyModeRow button.active,#diamondFilterOverlay .mainFilterRadioRow button.active{background:var(--a-accent-soft)!important;color:var(--a-accent)!important;border-color:var(--a-accent)!important;}
#diamondFilterOverlay .diamondFilterFooter{border-top:1px solid var(--a-line)!important;background:var(--a-surface)!important;}
#diamondFilterOverlay .filterInfoDot,#diamondFilterOverlay .advancedInfoDot{background:var(--a-accent-soft)!important;color:var(--a-accent)!important;}

/* ---- calculator + floating chat + help + notice ---------------------------- */
.buyerFloatingChat{background:var(--a-accent)!important;color:#fff!important;box-shadow:0 10px 24px rgba(10,114,102,.35)!important;}
.buyerHelpBox{background:var(--a-surface)!important;border:1px solid var(--a-line)!important;box-shadow:var(--a-shadow-lg)!important;color:var(--a-ink)!important;}
.buyerHelpBox a{background:var(--a-accent)!important;color:#fff!important;}/* [ui-fix] was dark-teal text left on the legacy #111 pill (~3.25:1); make it a teal button w/ white text (~5.6:1 AA). */
.buyerDeskNotice,.ngdDeskNotice{background:var(--a-warn-soft)!important;border:1px solid #EAD9AE!important;color:var(--a-ink-2)!important;border-radius:10px!important;}

/* ---- flow pages: cart / checkout / account / orders / shortlist / melee ----- */
.buyerFlowHead h1{color:var(--a-ink)!important;}
.buyerFlowHead p{color:var(--a-muted)!important;}
.buyerDeskMain .card,.buyerDeskMain .buyerCartPanel,.buyerDeskMain .buyerCartItem,.buyerDeskMain .buyerCheckoutForm,.buyerDeskMain .buyerCheckoutStep,.buyerDeskMain .roleHeroPanel,.buyerDeskMain .roleOptionCard,.buyerDeskMain .buyerOrderCard,.buyerDeskMain .buyerPanel,.buyerDeskMain .meleePanel,.buyerDeskMain .summary{background:var(--a-surface)!important;border:1px solid var(--a-line)!important;border-radius:var(--a-radius)!important;box-shadow:var(--a-shadow)!important;}
.buyerDeskMain .buyerCartQty button,.buyerDeskMain .buyerRemoveBtn{border:1px solid var(--a-line-2)!important;background:var(--a-surface)!important;color:var(--a-ink-2)!important;border-radius:8px!important;}
.buyerDeskMain .buyerCheckoutForm input,.buyerDeskMain .buyerCheckoutForm select,.buyerDeskMain .buyerCheckoutForm textarea{border:1px solid var(--a-line-2)!important;border-radius:9px!important;background:var(--a-surface)!important;color:var(--a-ink)!important;}
.buyerDeskMain .buyerCheckoutForm input:focus,.buyerDeskMain .buyerCheckoutForm select:focus{border-color:var(--a-accent)!important;box-shadow:0 0 0 3px var(--a-accent-soft)!important;}
.buyerDeskMain .roleHero,.buyerDeskMain .buyerAccountHero,.buyerDeskMain .ngdShortlistHero,.ngdShortlistHero{background:linear-gradient(180deg,var(--a-surface-2),var(--a-surface))!important;color:var(--a-ink)!important;border:1px solid var(--a-line)!important;border-radius:var(--a-radius)!important;}
.buyerDeskMain .roleHero *,.buyerDeskMain .buyerAccountHero *,.buyerDeskMain .ngdShortlistHero *{color:inherit;}
.ngdShortlistMain{background:var(--a-bg)!important;}
.pill{border-radius:999px!important;}
.pill.ok,.pill.approved{background:var(--a-good-soft)!important;color:var(--a-good)!important;}
.buyerDeskMain .meleeSearchBar input{border:1px solid var(--a-line-2)!important;border-radius:9px!important;background:var(--a-surface)!important;color:var(--a-ink)!important;}
.buyerDeskMain .buyerCard{border-color:var(--a-line)!important;background:var(--a-surface)!important;border-radius:var(--a-radius)!important;}

/* ---- persistent desk footer (dark ink anchor, Direction A) ------------------ */
.buyerDeskFooter{background:var(--a-ink)!important;color:#D7DEEC!important;border-top:1px solid rgba(255,255,255,.08)!important;}
.buyerDeskFooter h5{color:#8A93A6!important;text-transform:uppercase;letter-spacing:.09em;font-size:12px!important;}
.buyerDeskFooter a{color:#D7DEEC!important;opacity:.86;}
.buyerDeskFooter a:hover{opacity:1;color:#9FB6FF!important;}
.buyerDeskFooter .buyerLogoMark{background:var(--a-accent)!important;color:#fff!important;}
/* [ui-fix] The "NGD" wordmark carries its own dark-ink color, which beat the footer's inherited
   light color → invisible dark-on-dark on this dark footer. Force it (and its meta line) light. */
.buyerDeskFooter .ngdBrandWord,.buyerDeskFooter .buyerSideBrand b{color:#fff!important;}
.buyerDeskFooter .ngdBrandMeta{color:#8A93A6!important;}
.buyerDeskFooter .buyerDeskFootBrand p{color:#8A93A6!important;}
/* [ui-fix] Disabled checkout button ("Cart is empty" / "Approval required") was near-invisible
   light-grey-on-grey (contrast 1.76). Keep it clearly disabled but readable — muted ink on a soft fill. */
.buyerSummaryPanel button:disabled{background:var(--a-surface-2)!important;color:var(--a-muted)!important;border:1px solid var(--a-line)!important;cursor:not-allowed;}
.buyerDeskFootGrid{display:grid!important;grid-template-columns:1.6fr 1fr 1fr 1fr 1fr!important;gap:26px!important;padding:32px 22px 24px!important;max-width:1320px;margin:0 auto;}
.buyerDeskFootGrid nav{display:flex;flex-direction:column;}
.buyerDeskFootGrid nav a{padding:5px 0!important;}
.buyerDeskFootBar{border-top:1px solid rgba(255,255,255,.08)!important;color:#8A93A6!important;display:flex!important;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:16px 22px!important;max-width:1320px;margin:0 auto;}
@media(max-width:820px){.buyerDeskFootGrid{grid-template-columns:1fr 1fr!important;}}

/* ---- compare page ---------------------------------------------------------- */
.ngdShortlistHeroActions{display:flex;gap:8px;flex-wrap:wrap;align-items:center;}
.ngdShortlistCompareBtn{background:var(--a-accent)!important;color:#fff!important;border:1px solid var(--a-accent)!important;border-radius:var(--a-radius-sm)!important;padding:9px 15px!important;font-weight:650!important;cursor:pointer;}
.ngdShortlistCompareBtn:hover{background:var(--a-accent-strong)!important;}
.buyerCompareNote{color:var(--a-muted)!important;font-size:13px!important;margin:0 0 12px!important;}
.buyerCompareWrap{border:1px solid var(--a-line)!important;border-radius:var(--a-radius)!important;background:var(--a-surface)!important;box-shadow:var(--a-shadow)!important;}
.buyerCompareTable{border-collapse:separate!important;border-spacing:0!important;width:100%!important;min-width:520px!important;}
.buyerCompareTable th,.buyerCompareTable td{text-align:left;vertical-align:top;}
.buyerCompareTable thead th{border-bottom:1px solid var(--a-line)!important;padding:14px!important;background:var(--a-surface)!important;}
.buyerCompareTable .buyerCompareLabelHead{color:var(--a-muted)!important;font-size:11px!important;letter-spacing:.06em;text-transform:uppercase;font-weight:700!important;vertical-align:bottom;}
.buyerCompareTable tbody th{color:var(--a-muted)!important;font-size:12px!important;font-weight:600!important;padding:11px 14px!important;border-top:1px solid var(--a-line)!important;background:var(--a-surface-2)!important;white-space:nowrap;position:sticky;left:0;}
.buyerCompareTable tbody td{color:var(--a-ink)!important;font-size:13px!important;font-weight:600!important;padding:11px 14px!important;border-top:1px solid var(--a-line)!important;border-left:1px solid var(--a-line)!important;}
.buyerCompareCol{position:relative;display:flex;flex-direction:column;gap:8px;min-width:170px;}
.buyerCompareRemove{position:absolute;top:-6px;right:-6px;width:26px;height:26px;border-radius:50%;border:1px solid var(--a-line-2)!important;background:var(--a-surface)!important;color:var(--a-muted)!important;cursor:pointer;font-size:12px;line-height:1;}
.buyerCompareRemove:hover{border-color:var(--a-bad,#BB4A3F)!important;color:var(--a-bad,#BB4A3F)!important;}
.buyerCompareMedia{aspect-ratio:1/1;border-radius:10px;overflow:hidden;background:radial-gradient(120% 100% at 50% 12%,#fff,var(--a-fac))!important;border:1px solid var(--a-line)!important;cursor:pointer;}
.buyerCompareMedia img{width:100%;height:100%;object-fit:cover;display:block;}
.buyerCompareCol h4{font-size:14px!important;font-weight:650!important;color:var(--a-ink)!important;cursor:pointer;margin:0;}
.buyerComparePrice{font-size:16px!important;font-weight:650!important;color:var(--a-accent)!important;display:flex;flex-direction:column;gap:4px;}
.buyerCompareBest{align-self:flex-start;font-size:10px;font-weight:700;letter-spacing:.03em;text-transform:uppercase;color:var(--a-good)!important;background:var(--a-good-soft)!important;border-radius:999px;padding:2px 8px;}
.buyerCompareColActions{display:flex;flex-direction:column;gap:6px;margin-top:2px;}
.buyerCompareColActions button{border-radius:8px!important;height:34px!important;font-weight:600!important;font-size:12.5px!important;border:1px solid var(--a-accent)!important;background:var(--a-accent)!important;color:#fff!important;cursor:pointer;}
.buyerCompareColActions button.secondary{background:var(--a-surface)!important;color:var(--a-ink)!important;border-color:var(--a-line-2)!important;}
.buyerCompareColActions button[disabled]{background:var(--a-surface-2)!important;border-color:var(--a-line-2)!important;color:var(--a-muted)!important;cursor:not-allowed;}
.buyerCompareEmpty{text-align:center;padding:50px 0;}

/* ---- product detail page --------------------------------------------------- */
.buyerDetailPage{background:var(--a-bg)!important;padding:18px 20px 44px!important;max-width:1200px;margin:0 auto;}
.buyerDetailPage .buyerDetailBack{background:var(--a-surface)!important;border:1px solid var(--a-line-2)!important;color:var(--a-ink-2)!important;border-radius:var(--a-radius-sm)!important;padding:8px 14px!important;font-weight:600!important;margin-bottom:16px!important;}
.buyerDetailPage .buyerDetailBack:hover{border-color:var(--a-accent)!important;color:var(--a-accent)!important;}
.buyerDetailPage .buyerDetailCard{background:transparent!important;border:0!important;box-shadow:none!important;display:grid!important;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr)!important;gap:28px!important;align-items:start!important;}
@media(max-width:860px){.buyerDetailPage .buyerDetailCard{grid-template-columns:1fr!important;}}
.buyerDetailPage .buyerDetailMainMedia{background:radial-gradient(120% 100% at 50% 10%,#fff,var(--a-fac))!important;border:1px solid var(--a-line)!important;border-radius:var(--a-radius)!important;box-shadow:var(--a-shadow)!important;overflow:hidden;aspect-ratio:1/1;}
.buyerDetailPage .buyerDetailThumbs{display:flex!important;gap:10px!important;margin-top:12px!important;}
.buyerDetailPage .buyerDetailThumbs button{border:1px solid var(--a-line-2)!important;background:var(--a-surface-2)!important;color:var(--a-ink-2)!important;border-radius:11px!important;overflow:hidden;}
.buyerDetailPage .buyerDetailThumbs button.active{border-color:var(--a-accent)!important;color:var(--a-accent)!important;box-shadow:0 0 0 2px var(--a-accent-soft)!important;}
.buyerDetailPage .buyerDetailInfoCol h1{color:var(--a-ink)!important;font-size:26px!important;letter-spacing:-.01em!important;}
.buyerDetailPage .buyerDetailCertLine{display:flex!important;flex-wrap:wrap;align-items:center;gap:10px!important;margin:12px 0!important;}
.buyerDetailPage .buyerDetailVerified{display:inline-flex;align-items:center;gap:6px;font-size:12.5px!important;font-weight:650!important;color:var(--a-good)!important;background:var(--a-good-soft)!important;border-radius:999px!important;padding:6px 12px!important;}
.buyerDetailPage .buyerDetailReport{color:var(--a-muted)!important;font-size:12.5px!important;}
.buyerDetailPage .buyerDetailGreenTags{display:flex;flex-wrap:wrap;gap:6px!important;margin:8px 0 14px!important;}
.buyerDetailPage .buyerDetailTag{background:var(--a-good-soft)!important;color:var(--a-good)!important;border:0!important;border-radius:6px!important;padding:3px 9px!important;font-size:11.5px!important;font-weight:600!important;}
.buyerDetailPage .buyerDetailPriceBox{background:var(--a-surface)!important;border:1px solid var(--a-line)!important;border-radius:var(--a-radius)!important;box-shadow:var(--a-shadow)!important;padding:16px 18px!important;margin:0 0 16px!important;}
.buyerDetailPage .buyerDetailPriceTot{display:flex;align-items:baseline;justify-content:space-between;gap:10px;}
.buyerDetailPage .buyerDetailPriceTot span{color:var(--a-muted)!important;font-size:12.5px!important;}
.buyerDetailPage .buyerDetailPriceTot b{font-size:28px!important;font-weight:650!important;letter-spacing:-.02em!important;color:var(--a-ink)!important;}
.buyerDetailPage .buyerDetailPriceRow{display:flex;justify-content:space-between;gap:10px;padding:8px 0 0;border-top:1px dashed var(--a-line);margin-top:10px;font-size:13px!important;}
.buyerDetailPage .buyerDetailPriceRow span{color:var(--a-muted)!important;}
.buyerDetailPage .buyerDetailPriceRow b{font-weight:650!important;color:var(--a-ink)!important;}
.buyerDetailPage .buyerDetailFree{color:var(--a-good)!important;}
.buyerDetailPage .buyerDetailActionRow{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important;margin:0 0 16px!important;}
.buyerDetailPage .buyerDetailBuy{grid-column:1/3!important;background:var(--a-accent)!important;border:1px solid var(--a-accent)!important;color:#fff!important;border-radius:var(--a-radius-sm)!important;height:46px!important;font-weight:700!important;font-size:14.5px!important;}
.buyerDetailPage .buyerDetailBuy:hover{background:var(--a-accent-strong)!important;}
.buyerDetailPage .buyerDetailBuy[disabled]{background:var(--a-surface-2)!important;border-color:var(--a-line-2)!important;color:var(--a-muted)!important;cursor:not-allowed;}
.buyerDetailPage .buyerDetailShortlist{background:var(--a-surface)!important;border:1px solid var(--a-line-2)!important;color:var(--a-ink)!important;border-radius:var(--a-radius-sm)!important;height:42px!important;font-weight:600!important;}
.buyerDetailPage .buyerDetailShortlist:hover{border-color:var(--a-accent)!important;color:var(--a-accent)!important;}
.buyerDetailPage .buyerDetailIds{display:grid!important;grid-template-columns:1fr 1fr!important;gap:10px!important;margin:0 0 16px!important;}
.buyerDetailPage .buyerDetailIds>div{background:var(--a-surface-2)!important;border:1px solid var(--a-line)!important;border-radius:10px!important;padding:10px 12px!important;}
.buyerDetailPage .buyerDetailIds span{display:block;color:var(--a-muted)!important;font-size:11px!important;text-transform:uppercase;letter-spacing:.05em;}
.buyerDetailPage .buyerDetailIds b{color:var(--a-ink)!important;font-size:13.5px!important;}
.buyerDetailPage .buyerDetailSpecGrid{display:grid!important;grid-template-columns:1fr 1fr!important;gap:0!important;background:var(--a-surface)!important;border:1px solid var(--a-line)!important;border-radius:var(--a-radius)!important;box-shadow:var(--a-shadow)!important;overflow:hidden;}
.buyerDetailPage .buyerDetailSpecGrid>*{padding:10px 14px!important;border-top:1px solid var(--a-line)!important;display:flex;justify-content:space-between;gap:10px;font-size:13px!important;}
.buyerDetailPage .buyerDetailSpecGrid>*:nth-child(-n+2){border-top:0!important;}
.buyerDetailLoading{display:grid;place-items:center;gap:14px;padding:60px 0;color:var(--a-muted);}
.pdpSpinner{width:34px;height:34px;border-radius:50%;border:3px solid var(--a-line-2);border-top-color:var(--a-accent);animation:pdpSpin .8s linear infinite;}
@keyframes pdpSpin{to{transform:rotate(360deg)}}

/* ---- auth + public marketing (light Direction A pass) ---------------------- */
.ngdAuthTopbar{background:var(--a-surface)!important;border-bottom:1px solid var(--a-line)!important;}
.buyerAuthAside{background:radial-gradient(90% 60% at 78% 12%,rgba(10,114,102,.34),transparent 62%),linear-gradient(180deg,rgba(11,18,32,0) 0%,rgba(11,18,32,.28) 19%,rgba(11,18,32,.86) 43%,rgba(15,31,52,.97) 60%),url('/brand/auth-aside.webp') 62% 34%/cover no-repeat!important;color:#fff!important;display:flex!important;flex-direction:column!important;justify-content:flex-end!important;overflow:hidden;}
.buyerAuthAside *{color:inherit;}
.ngdHeader,.hdr{background:var(--a-surface)!important;border-bottom:1px solid var(--a-line)!important;}
.badge{background:var(--a-accent-soft)!important;color:var(--a-accent)!important;border-radius:999px!important;}

/* ===== [Direction A · cross-portal unify] shared font + sticky top bar ===== */
body{font-family:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,Helvetica,Arial,sans-serif!important;}
button,input,select,textarea,.btn,h1,h2,h3,h4,h5{font-family:inherit!important;}
/* keep the top bar visible on scroll (sticky), the diamond-type nav sticks just below it */
.ngdDeskShell .ngdDeskTop,.ngdDeskShell .buyerNivodaTop{position:sticky!important;top:0!important;z-index:950!important;}
/* Fix sticky: style.css sets html,body{overflow-x:hidden} which forces body overflow-y:auto,
   making BODY a scroll container that breaks the sticky top bar. `clip` clips horizontally
   WITHOUT creating a scroll container, so the top bar sticks to the real (html) scroller.
   Menu scroll-lock (inline body overflow:hidden) still works. */
html,body{overflow-x:clip!important;}

/* ===== [Buyer layout -> seller-style permanent LEFT SIDEBAR] =================
   The buyer side menu was an off-canvas overlay (hamburger). On desktop (>=901px)
   it becomes a permanent 240px left rail like the seller; all app content shifts
   right to clear it; redundant chrome (hamburger, backdrop, close-X, top-bar logo,
   duplicate horizontal diamond-type tabs) is hidden. Mobile (<=900px) keeps the
   original slide-in overlay untouched. CSS-only; no ids/data-actions changed. */
/* sidebar brand = the logo (cobalt NGD mark), consistent with seller */
.ngdDeskShell .buyerSideHead{border-bottom:1px solid var(--a-line)!important;}
.ngdDeskShell .buyerSideBrand{background:var(--a-accent)!important;color:#fff!important;border-radius:8px!important;padding:6px 12px!important;font-weight:650!important;font-size:17px!important;letter-spacing:.02em;}
.ngdDeskShell .buyerNivodaSideMenu section h4{color:var(--a-muted)!important;text-transform:uppercase;letter-spacing:.08em;font-size:10.5px!important;font-weight:700!important;}
@media(min-width:901px){
  .ngdDeskShell .buyerNivodaSideMenu{position:fixed!important;left:0!important;top:0!important;width:240px!important;height:100vh!important;transform:none!important;overflow-y:auto!important;z-index:940!important;border-right:1px solid var(--a-line)!important;box-shadow:none!important;border-radius:0!important;}
  /* padding-left scoped to the sidebar's presence, so sidebar-less public/auth/gate pages
     (home, login, signup, forgot, access gate) don't get a 240px blank left gutter. */
  #app:has(.buyerNivodaSideMenu){padding-left:240px!important;box-sizing:border-box!important;}
  /* Real sticky-top-bar fix: the bar lives in .ngdDeskShell (a ~62px header) while the page
     content is a SIBLING <main>, so position:sticky can only hold it within those 62px and it
     scrolls away. Pin it with position:fixed (offset past the 240px sidebar). Force a single
     non-wrapping row (was a CSS grid that wrapped to 2-3 rows at 901-1150px, hiding content
     under the taller bar). Reserve the bar height on the SHELL (not just <main>) so the
     approval-pending notice — the shell's only in-flow child — clears the bar too. */
  .ngdDeskShell .ngdDeskTop,.ngdDeskShell .buyerNivodaTop{position:fixed!important;top:0!important;left:240px!important;right:0!important;z-index:930!important;display:flex!important;align-items:center!important;gap:10px!important;flex-wrap:nowrap!important;}
  .ngdDeskShell .ngdDeskTop .buyerDeskSearch{flex:1 1 auto!important;min-width:0!important;}
  .ngdDeskShell .ngdDeskTop .buyerShortlistTop,.ngdDeskShell .ngdDeskTop .buyerDeskCart,.ngdDeskShell .ngdDeskTop .buyerDeskAccount,.ngdDeskShell .ngdDeskTop .buyerDeskHelp{flex:0 0 auto!important;}
  .ngdDeskShell{padding-top:72px!important;}
  /* [sidebar toggle] show the Menu button on desktop so the sidebar can be collapsed; backdrop stays
     hidden (no overlay on desktop). */
  .ngdDeskShell .buyerSideBackdrop{display:none!important;}
  .ngdDeskShell .buyerDeskLogo{display:none!important;}
  .ngdDeskShell .buyerDeskMenuBtn{display:inline-flex!important;align-items:center;gap:7px;flex:0 0 auto;}
  .ngdDeskShell .buyerNivodaSideMenu .buyerSideHead button[data-action="menu-close"]{display:none!important;}
  /* horizontal Natural/Lab/Melee tabs duplicate the sidebar Browse links -> hide on desktop */
  .ngdDeskShell .ngdDiamondTabs{display:none!important;}
  /* Collapsed state: slide the fixed side menu off, drop the desk's left offset -> full-width desk. */
  .ngdDeskShell.ngdSideCollapsed .buyerNivodaSideMenu{left:-260px!important;}
  #app:has(.ngdDeskShell.ngdSideCollapsed){padding-left:0!important;}
  .ngdDeskShell.ngdSideCollapsed .ngdDeskTop,.ngdDeskShell.ngdSideCollapsed .buyerNivodaTop{left:0!important;}
  .ngdDeskShell.ngdSideCollapsed .buyerDeskLogo{display:inline-flex!important;}
}

/* buyer sidebar nav items styled like the seller: icon chip + label, cobalt active */
.ngdDeskShell .buyerNivodaSideMenu section a{display:flex!important;align-items:center;gap:10px!important;padding:9px 11px!important;border-radius:9px!important;color:var(--a-ink-2)!important;font-weight:600!important;text-decoration:none;}
.ngdDeskShell .buyerNivodaSideMenu section a>i{width:26px;height:26px;flex:0 0 auto;display:grid;place-items:center;border-radius:7px;background:var(--a-surface-2)!important;color:var(--a-muted)!important;border:1px solid var(--a-line)!important;font-style:normal;font-size:13px;line-height:1;}
.ngdDeskShell .buyerNivodaSideMenu section a>span{flex:1;min-width:0;}
.ngdDeskShell .buyerNivodaSideMenu section a:hover{background:var(--a-surface-2)!important;color:var(--a-ink)!important;}
.ngdDeskShell .buyerNivodaSideMenu section a.active{background:var(--a-accent-soft)!important;color:var(--a-accent)!important;box-shadow:inset 3px 0 0 var(--a-accent)!important;}
.ngdDeskShell .buyerNivodaSideMenu section a.active>i{background:var(--a-accent)!important;color:#fff!important;border-color:var(--a-accent)!important;}
.ngdDeskShell .buyerNivodaSideMenu .new{margin-left:auto;background:var(--a-accent)!important;color:#fff!important;font-size:9px!important;font-weight:650!important;border-radius:999px!important;padding:1px 6px!important;}
/* [buyer-ui review] the old neutral account-card + logout block was fully superseded by the
   seller-style block below (317-327). Removed: its stale logout :hover set cobalt text on the
   cobalt hover background (invisible), and the rest was dead code. */

/* [match seller] sidebar logo = "◆ NGD" (no box, ink) + account card = circle avatar + full-width cobalt Log out */
.ngdDeskShell .buyerSideHead{border-bottom:1px solid var(--a-line)!important;display:flex!important;align-items:center;padding:14px 14px 12px!important;}
.ngdDeskShell .buyerSideBrand{background:transparent!important;color:var(--a-ink)!important;padding:0!important;border-radius:0!important;font-weight:650!important;font-size:19px!important;display:inline-flex!important;align-items:center;gap:8px;letter-spacing:.01em;}
.ngdDeskShell .buyerSideBrand::before{content:"\25C6";color:var(--a-accent);font-size:15px;font-weight:400;}
.ngdDeskShell .buyerSideUser{display:flex!important;flex-wrap:wrap;align-items:center;gap:10px;background:var(--a-surface-2)!important;border:1px solid var(--a-line)!important;border-radius:10px!important;margin:12px!important;padding:11px!important;}
.ngdDeskShell .buyerSideUser>div{flex:1;min-width:0;}
.ngdDeskShell .buyerSideUser .buyerAvatar{background:var(--a-accent)!important;color:#fff!important;border-radius:50%!important;width:34px!important;height:34px!important;display:grid!important;place-items:center!important;font-weight:650!important;flex:0 0 auto;}
.ngdDeskShell .buyerSideUser b{color:var(--a-ink)!important;display:block;}
.ngdDeskShell .buyerSideUser small{color:var(--a-ink-2)!important;display:block;font-size:11.5px;}
.ngdDeskShell .buyerSideUser button[data-action="logout"]{background:var(--a-accent)!important;border:1px solid var(--a-accent)!important;color:#fff!important;border-radius:8px!important;width:100%!important;flex:1 0 100%;font-weight:650!important;height:36px!important;margin-top:4px!important;}
.ngdDeskShell .buyerSideUser button[data-action="logout"]:hover{background:var(--a-accent-strong)!important;}

/* ============================================================================
   [BUYER UI REVIEW — batch fixes]  CSS-only; no id/data-action/class renamed.
   ============================================================================ */

/* [#3] Purchase-flow primary CTAs (cart Checkout, Pay, empty-state, order-success)
   were bare <button> painted near-black #050505 by role-premium. Retint to cobalt.
   :not(:disabled) keeps the empty/unapproved cart's grey disabled state. */
.buyerDeskMain .buyerSummaryPanel>button:not(.secondary):not(:disabled),
.buyerDeskMain .buyerCheckoutButtons button:not(.secondary):not(.ghost),
.buyerDeskMain .buyerEmptyState button:not(.secondary),
.buyerDeskMain .buyerSuccessPanel button:not(.secondary){background:var(--a-accent)!important;border:1px solid var(--a-accent)!important;color:var(--a-on-accent)!important;border-radius:var(--a-radius-sm)!important;}
.buyerDeskMain .buyerSummaryPanel>button:not(.secondary):not(:disabled):hover,
.buyerDeskMain .buyerCheckoutButtons button:not(.secondary):not(.ghost):hover,
.buyerDeskMain .buyerEmptyState button:not(.secondary):hover,
.buyerDeskMain .buyerSuccessPanel button:not(.secondary):hover{background:var(--a-accent-strong)!important;border-color:var(--a-accent-strong)!important;}

/* [#8] Account action buttons used role-premium royal-blue #0BB5A6 (a 2nd accent). Cobalt. */
.buyerDeskMain .roleInlineActions button:not(.secondary):not(.warning),
.buyerDeskMain .roleOptionCard button:not(.secondary):not(.warning){background:var(--a-accent)!important;border-color:var(--a-accent)!important;color:var(--a-on-accent)!important;}
.buyerDeskMain .roleInlineActions button:not(.secondary):not(.warning):hover,
.buyerDeskMain .roleOptionCard button:not(.secondary):not(.warning):hover{background:var(--a-accent-strong)!important;border-color:var(--a-accent-strong)!important;}

/* [#7] Status pills: warn/gold/red tones were un-themed (flat white / legacy amber) in
   orders / cases / refunds. Theme them (--a-bad/-soft are undefined -> explicit fallbacks). */
.pill.warn{background:var(--a-warn-soft)!important;color:var(--a-warn)!important;}
/* [ui-fix] .pill.gold (Shipped / in-transit) was identical to .pill.warn (Processing) — buyers couldn't tell an
   unshipped order from a dispatched one. Give it a distinct blue "in-transit" tone. */
.pill.gold{background:#e8effd!important;color:#1b4fc0!important;}
.pill.red{background:var(--a-bad-soft,#F7E7E4)!important;color:var(--a-bad,#BB4A3F)!important;}

/* [#11] Main-filter Colour radio dot (White/Fancy) rendered legacy purple #6d28d9 when active. */
#diamondFilterOverlay .mainFilterRadioRow button.active span{background:var(--a-accent)!important;border-color:var(--a-accent)!important;}

/* [mobile menu — was fully broken] On <=900px the off-canvas menu is positioned via `left`,
   but on this build `left` is inert at runtime (only transform responds), so tapping the
   hamburger showed the backdrop with NO menu sliding in. Slide it in with transform, and gate
   visibility so the closed menu isn't in the keyboard tab order (a11y). The permanent desktop
   rail (>=901px, which never receives .active) is untouched. */
@media(max-width:900px){
  .buyerNivodaSideMenu{transition:left .22s ease!important;}
  .buyerNivodaSideMenu:not(.active){visibility:hidden!important;}
  /* legacy `@media(max-width:560){.buyerNivodaSideMenu{left:-304}}` (0-1-0) was beating
     `.buyerNivodaSideMenu.active{left:0}` — so the open menu stayed off-screen. This higher-
     specificity active rule (0-3-0) wins deterministically and brings it fully on-screen. */
  .ngdDeskShell .buyerNivodaSideMenu.active,.buyerNivodaSideMenu.active{visibility:visible!important;left:0!important;transform:none!important;}
}

/* ============================================================================
   [Buyer UI review — INFO / MARKETING pages -> Direction A]
   The public pages reachable from the buyer menu (home, about, faq, resources,
   reviews, ethical/responsible, contact, sell, retail tools) render the marketing
   chrome (.ngdHeader / .ngdPageHero / .ngdCta / .ngdFooter). b2b-theme.css had
   flattened that to a monochrome black + warm palette (#0c0c0b / #2c2a29 / #e8e3df /
   gold), so it read as a different product than the cobalt desk. Retint the brand
   bits to cobalt and clean the warm greys. buyer-clean-a.css loads last, so these
   unscoped selectors + !important beat b2b-theme. CSS-only; no markup/logic changed.
   (The dark hero + dark footer are kept — they read as intentional and match the
   desk's own dark footer.) ============================================================ */

/* brand mark: black/navy box -> cobalt */
.ngdLogo .mark,.footerMark,.ngdFooter .footerMark{background:var(--a-accent)!important;border:1px solid var(--a-accent)!important;color:#fff!important;}
.ngdLogo b,.footerLogo b{color:var(--a-ink)!important;}
.ngdLogo small,.footerLogo small{color:var(--a-muted)!important;}

/* header: white surface, ink nav, cobalt hover/active (was warm grey + warm off-white active) */
.ngdHeader,.hdr.ngdHeader{background:var(--a-surface)!important;border-bottom:1px solid var(--a-line)!important;}
.ngdHeader .nav button{color:var(--a-ink-2)!important;background:transparent!important;}
.ngdHeader .nav button:hover,.ngdHeader .nav .active,.ngdHeader .nav button.active{background:var(--a-accent-soft)!important;color:var(--a-accent)!important;box-shadow:none!important;}

/* hero + CTA kicker/badge -> cobalt (hero band stays dark, text stays white) */
.ngdPageHero .badge,.ngdPageHero .kicker,.ngdCta .badge{background:var(--a-accent-soft)!important;color:var(--a-accent)!important;}

/* footer stays dark, but links/text off the warm #e8e3df -> clean light */
.ngdFooter a,.ngdFooter p,.ngdFooter span,.siteFooter.ngdFooter a{color:rgba(255,255,255,.74)!important;}
.ngdFooter a:hover{color:#fff!important;}
.ngdFooter h4,.ngdFooter b,.ngdFooter .footerLogo b{color:#fff!important;}

/* primary marketing CTAs (bare/non-light buttons) -> cobalt */
.ngdCta .btn:not(.light),.ngdPageHero .btn:not(.light),.ngdHeader .btn:not(.light):not(.miniBtn){background:var(--a-accent)!important;border-color:var(--a-accent)!important;color:#fff!important;}
.ngdCta .btn:not(.light):hover,.ngdPageHero .btn:not(.light):hover{background:var(--a-accent-strong)!important;border-color:var(--a-accent-strong)!important;}

/* in-content links on the light marketing sections -> cobalt (not warm/black) */
.section.white a:not(.btn),.b2bCtaBand a:not(.btn){color:var(--a-accent)!important;}

/* [info pages — remaining warm spots] cart button was black; gold eyebrow/accents; footer logo */
.ngdHeader .cart{background:var(--a-surface)!important;border:1px solid var(--a-line-2)!important;color:var(--a-ink-2)!important;}
.ngdHeader .cart:hover{border-color:var(--a-accent)!important;color:var(--a-accent)!important;}
.ngdHeader .cart #cartCount,.ngdHeader .cart span{background:var(--a-accent)!important;color:#fff!important;}
.ngdHeader .buyerStatusBtn{color:var(--a-ink-2)!important;}
.ngdFooter .footerLogo,.ngdFooter .footerLogo b{color:#fff!important;}
.ngdFooter .footerLogo small{color:rgba(255,255,255,.6)!important;}
/* retint the legacy warm gold accent token -> cobalt (eyebrows, "Private" badge, thin rules) */
:root{--ngd-gold:#0A7266;}/* [ui-fix] was #0BB5A6 — .ngdFeatureGrid eyebrows were ~2.57:1 on white (fail WCAG AA); #0A7266 ~5.6:1. Decorative bright teal stays in gradients/tints/theme-color. */
/* [ui-fix] product-detail media/spec tab bold label ("Cert"/"Front"/"360") from b2b-theme.css was #888 (~3.31:1 on the #f6f6f6 thumb); darken to clear WCAG AA. */
.buyerDetailThumbs b{color:#5b6472!important;}
/* [ui-fix] shortlist summary stat labels (.ngdShortlistStats small, style.css) were #6a7b8d (~4.35:1 on white, just under AA); align to the muted token (~5.4:1). */
.ngdShortlistStats small{color:#626b79!important;}

/* [info pages] footer column links are <button>s (not <a>) -> clean light off the warm #e8e3df */
.ngdFooter button,.ngdFooter .footerCol button,.b2bFooter button{background:transparent!important;color:rgba(255,255,255,.74)!important;border-color:rgba(255,255,255,.18)!important;}
.ngdFooter button:hover,.ngdFooter .footerCol button:hover{color:#fff!important;border-color:rgba(255,255,255,.4)!important;}
/* [ui-fix] "Chat on WhatsApp" CTA was invisible — b2b-theme forced a WHITE background while the
   footer's generic <a> rule painted the text translucent-white. Restore a solid, recognizable
   WhatsApp-green button (legible on the dark navy footer, stands out as the intended CTA). */
.ngdFooter .footerWhatsapp,.siteFooter.ngdFooter .footerWhatsapp{background:#25D366!important;color:#04220f!important;border:1px solid #1fae56!important;font-weight:650!important;opacity:1!important;}
.ngdFooter .footerWhatsapp:hover{background:#1ebe5a!important;color:#04220f!important;}

/* [premium-refresh] The top brand hairline now lives once in ngd-brand.css (solid teal, all four
   portals). The old purple/amber "Spectra" gradient here was already overridden by ngd-brand.css
   and is removed so there is a single source of truth. */

/* =============================================================================
   NGD BUYER UI COMPACT REFRESH
   Final buyer-only density and responsive layer. Existing routes, ids, state
   classes and data-action contracts remain unchanged.
   ============================================================================= */

/* Shared buyer rhythm */
body{background:var(--a-bg)!important;color:var(--a-ink)!important;}
#app>.section,.buyerFlowPage{min-width:0;}
.container{width:min(1180px,calc(100% - 36px))!important;max-width:1180px!important;}
.section{padding:58px 0!important;}
.section .head{margin-bottom:22px!important;}
.section .head h2,.ngdShowcase h2,.ngdCta h2{
  margin:6px 0 10px!important;
  font-size:34px!important;
  line-height:1.16!important;
  letter-spacing:0!important;
}
.section .head p,.ngdShowcase>div>div>p{max-width:720px;line-height:1.6!important;}

/* Public header */
.ngdHeader{position:sticky!important;top:0;z-index:800;box-shadow:0 1px 0 rgba(11,18,32,.04)!important;}
.ngdHeader .hi{
  min-height:68px!important;
  padding:8px 0!important;
  grid-template-columns:auto minmax(0,1fr) auto!important;
  gap:16px!important;
}
.ngdLogo{gap:9px!important;min-width:180px;}
.ngdLogo .mark{width:38px!important;height:38px!important;border-radius:7px!important;font-size:11px!important;}
.ngdLogo b{font-size:20px!important;line-height:1!important;}
.ngdLogo small{font-size:11px!important;line-height:1.2!important;margin-top:3px!important;}
.ngdHeader .nav{gap:2px!important;}
.ngdHeader .nav button{padding:7px 8px!important;font-size:12.5px!important;font-weight:650!important;}
.ngdHeader .buyerHeaderActions{gap:7px!important;}
.ngdHeader .buyerHeaderActions .btn,.ngdHeader .buyerHeaderActions .cart,.ngdHeader .buyerStatusBtn{
  min-height:36px!important;
  padding:7px 11px!important;
  font-size:12.5px!important;
  box-shadow:none!important;
}
.ngdMobileNav{display:none;}

/* Marketing pages */
.ngdHomeHero{min-height:520px!important;}
.ngdHomeHero .container{padding-top:60px!important;padding-bottom:60px!important;}
.ngdHeroCopy{max-width:610px!important;}
.ngdHeroCopy h1{
  max-width:560px;
  margin:14px 0!important;
  font-size:52px!important;
  line-height:1.02!important;
}
.ngdHeroCopy p,.ngdPageHero p{font-size:16px!important;line-height:1.58!important;}
.ngdHomeHero .badge,.ngdPageHero .badge{font-size:10.5px!important;padding:7px 10px!important;}
.heroActions{gap:9px!important;margin-top:22px!important;}
.heroActions .btn,.heroActions button{min-height:42px!important;padding:10px 16px!important;box-shadow:none!important;}
.ngdMetricBand article{padding:18px 22px!important;}
.ngdMetricBand b{font-size:25px!important;line-height:1.1!important;}
.ngdMetricBand span{font-size:10.5px!important;}
.ngdMetricBand p{font-size:12.5px!important;line-height:1.45!important;}
.ngdShowcase .container{gap:30px!important;}
.ngdFeatureGrid,.ngdStepGrid,.ngdImageCards{gap:12px!important;}
.ngdFeatureGrid article,.ngdStepGrid article,.ngdImageCards article,
.ngdContactPanel>div,.b2bFaqGroup,.privateInventoryCard{
  padding:18px!important;
  box-shadow:0 4px 16px rgba(15,31,52,.06)!important;
}
.ngdFeatureGrid h2,.ngdFeatureGrid h3,.ngdImageCards h3{font-size:17px!important;margin:6px 0!important;font-weight:650!important;letter-spacing:0!important;}
.ngdFeatureGrid p,.ngdImageCards p,.ngdStepGrid p{font-size:13px!important;line-height:1.5!important;}
.ngdStepGrid i{width:34px!important;height:34px!important;margin-bottom:11px!important;font-size:12px!important;}
.ngdStepGrid b{font-size:15px!important;}
.ngdPageHero{min-height:360px!important;}
.ngdPageHero .container{padding-top:72px!important;padding-bottom:44px!important;}
.ngdPageHero h1{max-width:700px;font-size:42px!important;line-height:1.1!important;}
.ngdCta .container{min-height:0!important;padding-top:34px!important;padding-bottom:34px!important;}
.ngdFooter{padding-top:42px!important;}
.ngdFooter .footerGrid{gap:28px!important;padding-bottom:30px!important;}
.ngdFooter h4{font-size:13px!important;}
.ngdFooter p,.ngdFooter a,.ngdFooter button{font-size:12.5px!important;line-height:1.55!important;}

/* Authentication */
.ngdAuthTopbar{height:68px!important;padding:0 max(18px,calc((100vw - 1180px) / 2))!important;}
.ngdAuthLogo span{width:36px!important;height:36px!important;}
.ngdAuthLogo b{font-size:20px!important;}
.ngdAuthLogo small{font-size:11px!important;}
.ngdAuthTopbar>div{gap:7px!important;}
.ngdAuthTopbar .btn{min-height:36px!important;padding:7px 11px!important;box-shadow:none!important;}
.ngdAuthPolished{padding:36px 0!important;}
.ngdAuthPolished .buyerAuthLayout{
  grid-template-columns:minmax(0,1fr) minmax(360px,430px)!important;
  gap:20px!important;
}
.ngdAuthPolished .buyerAuthAside{min-height:600px!important;padding:28px!important;}
.ngdAuthPolished .buyerAuthAside h1{font-size:31px!important;line-height:1.12!important;margin:16px 0 10px!important;}
.ngdAuthPolished .buyerAuthAside>p{font-size:13.5px!important;line-height:1.55!important;}
.ngdAuthPolished .buyerAccessSteps{gap:9px!important;margin-top:20px!important;}
.ngdAuthPolished .buyerAccessSteps>div{padding:12px!important;grid-template-columns:38px minmax(0,1fr)!important;}
.ngdAuthPolished .buyerAccessSteps b{width:34px!important;height:34px!important;font-size:13px!important;}
.ngdAuthPolished .buyerAccessSteps span{font-size:13px!important;}
.ngdAuthPolished .buyerAccessSteps p{font-size:11.5px!important;}
.ngdAuthTrust{margin-top:16px!important;}
.ngdAuthTrust span{padding:6px 8px!important;font-size:10.5px!important;}
.ngdAuthPolished .buyerAuthCard{padding:26px!important;}
.ngdAuthPolished .buyerAuthCard h1{font-size:28px!important;line-height:1.14!important;margin:13px 0 8px!important;}
.ngdAuthPolished .buyerAuthCard>p{font-size:13px!important;line-height:1.5!important;margin-bottom:8px!important;}
.ngdAuthPolished .buyerAuthCard label{margin:9px 0!important;font-size:12.5px!important;gap:6px!important;}
.ngdAuthPolished .buyerAuthCard input{height:44px!important;padding:10px 12px!important;font-size:13px!important;}
.ngdAuthPolished .buyerAuthCard .btn,.ngdAuthPolished .buyerAuthCard button{min-height:42px!important;}
.ngdPrivateGate{min-height:480px!important;}
.privateInventoryCard h1{font-size:38px!important;line-height:1.12!important;}

/* Logged-in sourcing desk */
@media(min-width:901px){
  .ngdDeskShell .buyerNivodaSideMenu{width:220px!important;}
  #app:has(.buyerNivodaSideMenu){padding-left:220px!important;}
  .ngdDeskShell .ngdDeskTop,.ngdDeskShell .buyerNivodaTop{left:220px!important;min-height:60px!important;padding:7px 14px!important;}
  .ngdDeskShell{padding-top:62px!important;}
}
.ngdDeskShell .buyerNivodaSideMenu section{padding:6px 10px!important;}
.ngdDeskShell .buyerNivodaSideMenu a{min-height:36px!important;padding:8px 10px!important;font-size:12.5px!important;}
.ngdDeskShell .buyerSideHead{padding:12px!important;}
.ngdDeskShell .buyerSideBrand{font-size:17px!important;}
.ngdDeskShell .buyerSideUser{margin:10px!important;padding:9px!important;}
.ngdDeskTop .buyerDeskSearch input{height:40px!important;font-size:13px!important;}
.ngdDeskTop .buyerShortlistTop,.ngdDeskTop .buyerDeskCart,.ngdDeskTop .buyerDeskHelp,.ngdDeskTop .buyerDeskAccount{height:40px!important;font-size:12.5px!important;}
.ngdBuyerDeskMain{padding:14px!important;}
.ngdDeskHero{padding:16px 18px!important;margin-bottom:10px!important;gap:14px!important;}
.ngdDeskHero span{padding:5px 8px!important;font-size:10px!important;}
.ngdDeskHero h1{font-size:26px!important;margin:8px 0 4px!important;}
.ngdDeskHero p{font-size:12.5px!important;}
.ngdDeskHeroMeta{min-width:170px!important;padding:12px!important;}
.ngdDeskHeroMeta b{font-size:19px!important;}
.ngdDeskHeroMeta small{font-size:11px!important;}
.ngdDeskTitle{padding:10px 12px!important;}
.ngdDeskTitle h2{font-size:19px!important;}
.ngdDeskToolbar{padding:9px!important;gap:8px!important;}
.ngdDeskToolbar>*{height:40px!important;font-size:12.5px!important;}
.buyerDeskMain .buyerDeskSaved,.buyerDeskMain .buyerDeskSaved>button{height:40px!important;}
.buyerDeskMain .buyerDeskSaved>button{font-size:12.5px!important;}
.buyerDeskGrid{grid-template-columns:repeat(auto-fill,minmax(245px,1fr))!important;gap:12px!important;}
#shopGrid .buyerStoneBody{padding:13px!important;}
#shopGrid .buyerStoneMedia{min-height:180px!important;}
#shopGrid .buyerStoneNumbers,#shopGrid .buyerStoneBadges{gap:5px!important;}
#shopGrid .buyerStoneNumbers span,#shopGrid .buyerStoneBadges span{font-size:10.5px!important;}
#shopGrid .buyerStonePrice{font-size:13px!important;}
#shopGrid .buyerStonePrice b,#shopGrid .buyerStonePrice strong{font-size:18px!important;}
#shopGrid .buyerStoneBuy{min-height:38px!important;font-size:12.5px!important;}
.buyerFloatingChat{width:44px!important;height:44px!important;font-size:17px!important;}

/* Product, cart, checkout, account and orders */
.buyerFlowPage{padding:18px!important;}
.buyerFlowHead{margin-bottom:14px!important;padding-bottom:14px!important;}
.buyerFlowHead h1{font-size:27px!important;line-height:1.15!important;margin:7px 0!important;}
.buyerFlowHead p{font-size:13px!important;}
.buyerBackBtn{font-size:12px!important;}
.buyerDeskMain .buyerCartPanel,.buyerDeskMain .buyerCartItem,.buyerDeskMain .buyerCheckoutForm,
.buyerDeskMain .buyerCheckoutStep,.buyerDeskMain .roleHeroPanel,.buyerDeskMain .roleOptionCard,
.buyerDeskMain .buyerOrderCard,.buyerDeskMain .buyerPanel,.buyerDeskMain .meleePanel,.buyerDeskMain .summary{
  box-shadow:0 3px 14px rgba(16,24,40,.06)!important;
}
.buyerDetailPage .buyerDetailInfoCol h1{font-size:28px!important;line-height:1.15!important;}
.buyerDetailPage .buyerDetailPrice{font-size:24px!important;}
.buyerDetailPage .buyerDetailSpecGrid>*{font-size:12px!important;}
.buyerSummaryPanel h2,.buyerCheckoutStep h2,.roleHero h2{font-size:20px!important;}
.buyerDeskFooter{padding-top:34px!important;}
.buyerDeskFooter h5{font-size:12.5px!important;}
.buyerDeskFooter a,.buyerDeskFooter p,.buyerDeskFootBar{font-size:11.5px!important;}

@media(max-width:1060px){
  .ngdHeader .hi{grid-template-columns:auto 1fr!important;}
  .ngdHeader .nav{grid-column:1/-1!important;order:3;}
  .ngdAuthPolished .buyerAuthLayout{grid-template-columns:1fr!important;}
}

@media(max-width:900px){
  .container{width:min(100% - 28px,1180px)!important;}
  .section{padding:40px 0!important;}
  .section .head h2,.ngdShowcase h2,.ngdCta h2{font-size:27px!important;}

  /* Mobile public header: logo plus two useful actions in one row */
  .ngdHeader .hi{
    display:grid!important;
    grid-template-columns:auto minmax(0,1fr) auto!important;
    min-height:64px!important;
    gap:8px!important;
    align-items:center!important;
    padding:8px 0!important;
  }
  .ngdLogo{min-width:0!important;}
  .ngdLogo .mark{width:34px!important;height:34px!important;}
  .ngdLogo b{font-size:18px!important;}
  .ngdLogo small{display:none!important;}
  .ngdHeader .nav{display:none!important;}
  .ngdHeader .buyerHeaderActions{
    grid-column:2;
    grid-row:1;
    width:auto!important;
    display:flex!important;
    justify-content:flex-end!important;
    flex-wrap:nowrap!important;
    gap:6px!important;
  }
  .ngdHeader .buyerHeaderActions>.btn.light:first-child{display:none!important;}
  .ngdHeader .buyerHeaderActions .btn,.ngdHeader .buyerHeaderActions .cart{
    min-height:34px!important;
    padding:6px 9px!important;
    font-size:11.5px!important;
  }
  .ngdMobileNav{
    display:block;
    grid-column:3;
    grid-row:1;
    position:relative;
    z-index:10;
  }
  .ngdMobileNav summary{
    width:34px;
    height:34px;
    display:grid;
    place-items:center;
    list-style:none;
    cursor:pointer;
    background:var(--a-surface);
    border:1px solid var(--a-line-2);
    border-radius:8px;
  }
  .ngdMobileNav summary::-webkit-details-marker{display:none;}
  .ngdMobileMenuGlyph,.ngdMobileMenuGlyph::before,.ngdMobileMenuGlyph::after{
    width:15px;
    height:2px;
    display:block;
    background:var(--a-ink);
    border-radius:2px;
  }
  .ngdMobileMenuGlyph{position:relative;}
  .ngdMobileMenuGlyph::before,.ngdMobileMenuGlyph::after{content:"";position:absolute;left:0;}
  .ngdMobileMenuGlyph::before{top:-5px;}
  .ngdMobileMenuGlyph::after{top:5px;}
  .ngdMobileMenuGlyph i{display:none;}
  .ngdMobileNav>div{
    position:absolute;
    top:42px;
    right:0;
    width:min(290px,calc(100vw - 28px));
    padding:8px;
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:6px;
    background:var(--a-surface);
    border:1px solid var(--a-line);
    border-radius:8px;
    box-shadow:var(--a-shadow-lg);
  }
  .ngdMobileNav>div button{
    min-height:38px;
    padding:8px 10px;
    text-align:left;
    background:var(--a-surface-2);
    color:var(--a-ink-2);
    border:1px solid var(--a-line);
    border-radius:7px;
    font-weight:650;
  }
  .ngdMobileNav>div button.active,.ngdMobileNav>div button:hover{
    color:var(--a-accent);
    border-color:var(--a-accent);
    background:var(--a-accent-soft);
  }

  .ngdHomeHero{min-height:0!important;}
  .ngdHomeHero .container{min-height:500px;padding-top:44px!important;padding-bottom:44px!important;display:flex;align-items:center;}
  .ngdHeroCopy h1{font-size:34px!important;line-height:1.04!important;}
  .ngdHeroCopy p,.ngdPageHero p{font-size:14px!important;line-height:1.55!important;}
  .ngdHeroCopy .heroActions{display:grid!important;grid-template-columns:1fr 1fr!important;}
  .ngdHeroCopy .heroActions .ghostBtn{grid-column:1/-1;}
  .ngdMetricBand .container{grid-template-columns:repeat(3,minmax(0,1fr))!important;}
  .ngdMetricBand article{padding:14px 10px!important;}
  .ngdMetricBand b{font-size:20px!important;}
  .ngdMetricBand span{font-size:9px!important;}
  .ngdMetricBand p{display:none;}
  .ngdShowcase .container{grid-template-columns:1fr!important;gap:22px!important;}
  .ngdPageHero{min-height:300px!important;}
  .ngdPageHero .container{padding-top:52px!important;padding-bottom:34px!important;}
  .ngdPageHero h1{font-size:31px!important;}
  .ngdFeatureGrid article,.ngdStepGrid article,.ngdImageCards article{padding:16px!important;}

  /* Auth form first; supporting story follows instead of blocking login */
  .ngdAuthTopbar{
    min-height:62px!important;
    height:auto!important;
    padding:8px 14px!important;
    align-items:center!important;
  }
  .ngdAuthLogo{gap:7px!important;}
  .ngdAuthLogo span{width:32px!important;height:32px!important;}
  .ngdAuthLogo b{font-size:18px!important;}
  .ngdAuthLogo small{display:none!important;}
  .ngdAuthTopbar>div{gap:5px!important;flex-wrap:nowrap!important;}
  .ngdAuthTopbar .btn{min-height:34px!important;padding:6px 8px!important;font-size:11px!important;}
  .ngdAuthPolished{padding:18px 0!important;}
  .ngdAuthPolished .buyerAuthCard{order:-1;padding:20px!important;}
  .ngdAuthPolished .buyerAuthCard h1{font-size:24px!important;}
  .ngdAuthPolished .buyerAuthAside{min-height:0!important;padding:20px!important;}
  .ngdAuthPolished .buyerAuthAside h1{font-size:24px!important;}
  .ngdAuthPolished .buyerAccessSteps{display:none!important;}
  .ngdAuthTrust{margin-top:12px!important;}
  .ngdPrivateGate{min-height:420px!important;}
  .privateInventoryCard h1{font-size:29px!important;}

  .buyerFlowPage{padding:14px!important;}
  .buyerFlowHead{display:grid!important;gap:10px!important;}
  .buyerFlowHead h1{font-size:23px!important;}
  .buyerFlowActions{width:100%;}
  .buyerFlowActions>*{width:100%;}
  .ngdDeskHero,.ngdDeskTitle{grid-template-columns:1fr!important;}
  .ngdDeskHero h1{font-size:23px!important;}
  .ngdDeskHeroMeta{min-width:0!important;}
  .ngdDeskToolbar{grid-template-columns:1fr 1fr!important;}
  .ngdDeskToolbar>*{width:100%!important;max-width:none!important;}
  .ngdDeskToolbar .buyerFilterBtn,.ngdDeskToolbar .buyerCertInput,.ngdDeskToolbar .buyerDeskSort{grid-column:1/-1;}
  .buyerDeskGrid{grid-template-columns:1fr!important;}
  #shopGrid .buyerStoneMedia{min-height:210px!important;}
  .buyerDetailPage .buyerDetailActionRow,.buyerDetailPage .buyerDetailIds{grid-template-columns:1fr!important;}
  .buyerDetailPage .buyerDetailBuy{grid-column:1!important;}
  .buyerDetailPage .buyerDetailSpecGrid{grid-template-columns:1fr!important;}
  .buyerDetailPage .buyerDetailSpecGrid>*:nth-child(2){border-top:1px solid var(--a-line)!important;}
}

@media(max-width:430px){
  .ngdHeader .buyerHeaderActions .btn,.ngdHeader .buyerHeaderActions .cart{padding:6px 7px!important;font-size:10.5px!important;}
  .ngdHeroCopy .heroActions{grid-template-columns:1fr!important;}
  .ngdHeroCopy .heroActions .ghostBtn{grid-column:auto;}
  .ngdHomeHero .container{min-height:480px;}
  .ngdMetricBand .container{width:100%!important;}
  .ngdDeskToolbar{grid-template-columns:1fr!important;}
  .ngdDeskToolbar>*{grid-column:1!important;}
}

/* =============================================================================
   BUYER MARKETPLACE WORKSPACE
   Table-first sourcing, visible commercial context and working bulk selection.
   ============================================================================= */
.ngdMarketStatus{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  margin:0 0 10px;
  background:var(--a-surface);
  border:1px solid var(--a-line);
  border-radius:8px;
  overflow:hidden;
}
.ngdMarketStatus>span{
  min-width:0;
  padding:10px 14px;
  border-right:1px solid var(--a-line);
}
.ngdMarketStatus>span:last-child{border-right:0;}
.ngdMarketStatus small,.ngdMarketStatus b{display:block;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.ngdMarketStatus small{margin-bottom:3px;color:var(--a-muted);font-size:10.5px!important;}
.ngdMarketStatus b{color:var(--a-ink);font-size:12.5px!important;}

.ngdDeskTitleActions{display:flex;align-items:center;justify-content:flex-end;gap:8px;}
.buyerViewSegment{
  height:40px;
  display:inline-grid;
  grid-template-columns:1fr 1fr;
  align-items:stretch;
  padding:3px;
  background:var(--a-surface-2);
  border:1px solid var(--a-line-2);
  border-radius:9px;
}
.buyerDeskMain .buyerViewSegment .buyerViewBtn{
  min-width:62px;
  height:32px;
  padding:0 11px;
  background:transparent;
  color:var(--a-muted);
  border:0;
  border-radius:6px;
  font-size:11.5px!important;
  font-weight:700;
  cursor:pointer;
}
.buyerDeskMain .buyerViewSegment .buyerViewBtn.active{
  background:var(--a-surface);
  color:var(--a-accent);
  box-shadow:0 1px 4px rgba(16,24,40,.12);
}

.buyerBulkCheck{display:inline-grid!important;place-items:center;margin:0!important;cursor:pointer;}
.buyerBulkCheck input{position:absolute;opacity:0;pointer-events:none;}
.buyerBulkCheck>span{
  width:17px!important;
  height:17px!important;
  display:block!important;
  margin:0!important;
  background:#fff!important;
  border:1px solid var(--a-line-2)!important;
  border-radius:4px!important;
  box-shadow:none!important;
}
.buyerBulkCheck input:checked+span{background:var(--a-accent)!important;border-color:var(--a-accent)!important;}
.buyerBulkCheck input:checked+span::after{
  content:"";
  width:7px;
  height:4px;
  display:block;
  margin:4px 0 0 4px;
  border-left:2px solid #fff;
  border-bottom:2px solid #fff;
  transform:rotate(-45deg);
}

#shopGrid .buyerStoneActions{justify-content:flex-end!important;padding:0 9px!important;}
#shopGrid .buyerStoneActions .buyerBulkCheck{margin-right:auto!important;}
#shopGrid .buyerStoneActions button{height:27px!important;padding:0 8px!important;font-size:10.5px!important;}
#shopGrid .buyerStoneSupplier{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  margin:-2px 0 9px;
  color:var(--a-muted);
  font-size:10.5px;
}
#shopGrid .buyerStoneSupplier b{
  min-width:0;
  overflow:hidden;
  color:var(--a-ink-2);
  text-overflow:ellipsis;
  white-space:nowrap;
}
#shopGrid .buyerStoneSupplier span{flex:0 0 auto;white-space:nowrap;}
#shopGrid .buyerStoneTrust{display:flex;gap:5px;flex-wrap:wrap;margin:7px 0 9px;}
#shopGrid .buyerStoneTrust span{
  padding:4px 6px;
  background:var(--a-surface-2);
  color:var(--a-ink-2);
  border:1px solid var(--a-line);
  border-radius:5px;
  font-size:9.5px;
  font-weight:650;
}

#shopGrid.buyerDeskListWrap{overflow-x:auto!important;-webkit-overflow-scrolling:touch;}
#shopGrid .buyerDeskTable{min-width:1000px!important;}
#shopGrid .buyerDeskTableHead,#shopGrid .buyerDeskTableRow{
  grid-template-columns:28px 40px 112px 52px 50px 42px 48px 70px 48px 48px 80px 84px minmax(130px,1fr) 28px!important;
  column-gap:6px!important;
  padding:0 10px!important;
}
#shopGrid .buyerDeskTableHead{
  position:sticky;
  top:0;
  z-index:2;
  height:40px!important;
  font-size:10.5px!important;
  text-transform:uppercase;
}
#shopGrid .buyerDeskTableRow{min-height:56px!important;font-size:11.5px!important;}
#shopGrid .buyerDeskTableRow>span{min-width:0;overflow:hidden;text-overflow:ellipsis;}
#shopGrid .buyerDeskTableRow img{width:40px!important;height:40px!important;border-radius:5px!important;}
#shopGrid .buyerTableSupplier,#shopGrid .buyerTableFinish,#shopGrid .buyerTablePrice,#shopGrid .buyerTableDelivery{display:grid;gap:3px;}
#shopGrid .buyerTableSupplier b,#shopGrid .buyerTableFinish b,#shopGrid .buyerTablePrice b,#shopGrid .buyerTableDelivery b{
  overflow:hidden;
  color:var(--a-ink);
  font-size:11.5px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
#shopGrid .buyerTableSupplier small,#shopGrid .buyerTableFinish small,#shopGrid .buyerTablePrice small,#shopGrid .buyerTableDelivery small{
  overflow:hidden;
  color:var(--a-muted);
  font-size:9.5px;
  text-overflow:ellipsis;
  white-space:nowrap;
}
#shopGrid .buyerTablePrice b{font-variant-numeric:tabular-nums;}
#shopGrid .buyerDeskTableItem.expanded{background:var(--a-accent-soft)!important;}
#shopGrid .buyerDeskExpanded{grid-template-columns:135px minmax(150px,1fr) minmax(190px,1.25fr) 120px 115px 135px!important;gap:12px!important;padding:16px 16px 18px 48px!important;}
/* [pass3-fix] Reported from a real screen: the first character of the grey labels in the expanded row was
   being shaved ("Supplier" -> "upplier", "Stock ID" -> "tock ID"). Every column placed its text at exactly
   x=0 of its grid track with zero padding, so there was no margin of safety against any sub-pixel shift or
   ancestor clip. 4px of inline padding costs nothing visually and makes a 1-2px shave impossible.
   min-width:0 lets a track shrink to its content instead of forcing the row wider than the table. */
#shopGrid .buyerDeskExpanded>*{min-width:0!important;padding-inline:4px 2px!important;overflow-wrap:anywhere;}
/* [pass3-fix] THE actual cause of the "first character is missing" report — and it was never a clip.
   role-premium.css:1752 pins .buyerExpandedMedia to width:150px, sized for ITS OWN 240px first track
   (role-premium.css:1724). This file narrows that track to 135px, so the tile overspills by 15px; the
   12px gap absorbs 12 and the remaining 3px lands inside the Information column. The tile is
   position:relative with z-index:auto, so it paints in the positioned-descendants pass — ABOVE the
   in-flow text of the later sibling column. The text is therefore occluded, not clipped, which is why
   every Range.getBoundingClientRect measurement came back clean: layout was always correct.
   3px erases the 3.2px-wide "I" of "IGI certificate" outright and eats the left bowl of the "S" in
   "Supplier"/"Stock ID". The near-black values survive the same 3px only because their first glyphs are
   7-9px wide and high-contrast, which is why only the grey labels looked broken.
   The tile is sized to its real track instead of a fixed 150px. position:relative is deliberately NOT
   touched: .buyerExpandedMedia span (role-premium.css:1767) is the "LAB" badge, absolutely positioned
   against this box — making it static throws the badge off the tile. */
#shopGrid .buyerDeskExpanded .buyerExpandedMedia{width:100%!important;max-width:100%!important;height:auto!important;aspect-ratio:1/1!important;}
/* [pass3-fix] The 360 fills the tile exactly as the still did (role-premium.css:1762 styles only `img`).
   The iframe carries no border and cannot be scrolled by the buyer — it is an inspection view inside a
   129px tile, not a page. The LAB badge stays on top of either one. */
#shopGrid .buyerDeskExpanded .buyerExpandedSpin{width:100%!important;height:100%!important;display:block!important;border:0!important;object-fit:cover!important;background:#cfd4d7!important;}
/* [pass3-fix] Click-to-play affordance. The row opens on the still; this is what the buyer presses to load
   the 360. Centred over the tile with a dark scrim pill so it reads on a pale diamond or a dark one alike,
   above the LAB badge's z-index:2. A real <button>, so it is keyboard reachable and gets a focus ring. */
#shopGrid .buyerDeskExpanded .buyerExpandedPlay{position:absolute!important;left:50%!important;top:50%!important;transform:translate(-50%,-50%)!important;display:inline-flex!important;align-items:center!important;gap:6px!important;padding:5px 10px 5px 9px!important;margin:0!important;border:0!important;border-radius:999px!important;background:rgba(12,12,11,.72)!important;color:#fff!important;font:inherit!important;font-size:11px!important;font-weight:700!important;line-height:1!important;letter-spacing:.04em!important;cursor:pointer!important;z-index:3!important;min-height:0!important;width:auto!important;height:auto!important;box-shadow:0 2px 8px rgba(0,0,0,.28)!important;}
#shopGrid .buyerDeskExpanded .buyerExpandedPlay>span{width:0!important;height:0!important;display:inline-block!important;border-left:8px solid currentColor!important;border-top:5px solid transparent!important;border-bottom:5px solid transparent!important;border-right:0!important;background:none!important;}
#shopGrid .buyerDeskExpanded .buyerExpandedPlay:hover{background:rgba(12,12,11,.9)!important;}
#shopGrid .buyerDeskExpanded .buyerExpandedPlay:focus-visible{outline:2px solid #fff!important;outline-offset:2px!important;}
#shopGrid .buyerDeskExpanded .buyerExpandedMedia>span{z-index:2!important;}
#shopGrid .buyerDeskExpanded p,#shopGrid .buyerDeskExpanded p span{overflow:visible!important;text-indent:0!important;}
#shopGrid .buyerActionButtons{display:grid!important;gap:6px!important;align-content:start;}
#shopGrid .buyerActionButtons button{min-height:31px!important;font-size:10.5px!important;}
#shopGrid .buyerActionButtons .buyerExpandedBuy:not(:disabled){
  background:var(--a-accent)!important;
  border-color:var(--a-accent)!important;
  color:#fff!important;
}

/* Authenticated page polish */
.ngdDeskShell .ngdDeskTop .buyerShortlistTop.active,
.ngdDeskShell .ngdDeskTop .buyerDeskCart.active,
.ngdDeskShell .ngdDeskTop .buyerDeskAccount.active{
  background:var(--a-accent-soft)!important;
  border-color:var(--a-accent)!important;
  color:var(--a-accent)!important;
}
.buyerDetailPage .buyerDetailActionRow .buyerDetailShortlist:last-child{grid-column:1/-1!important;}
.ngdShortlistHero>div:first-child{display:grid;align-items:start;}
.ngdShortlistHero .ngdShortlistBack{justify-self:start;margin:0 0 7px!important;}
.ngdShortlistHero>div:first-child>span{margin-top:0!important;}
.ngdShortlistHeroActions>button{
  min-height:38px;
  padding:8px 14px!important;
  border:1px solid var(--a-line-2)!important;
  border-radius:var(--a-radius-sm)!important;
  background:var(--a-surface)!important;
  color:var(--a-ink-2)!important;
  font-weight:650!important;
  cursor:pointer;
}
.ngdShortlistHeroActions>.ngdShortlistCompareBtn{
  background:var(--a-accent)!important;
  border-color:var(--a-accent)!important;
  color:#fff!important;
}
.ngdShortlistActions button:last-child{grid-column:1/-1!important;}

.buyerCompareTable thead th:not(.buyerCompareLabelHead){width:calc((100% - 112px) / 4);}
.buyerCompareTable .buyerCompareLabelHead{width:112px;}
.buyerCompareMedia{
  width:100%!important;
  max-width:180px!important;
  height:180px!important;
  aspect-ratio:auto!important;
  align-self:center;
}
.buyerCompareMedia img{object-fit:contain!important;}

.buyerDeskMain .meleePanel{padding:16px!important;}
.buyerDeskMain .meleeSearchBar{
  display:grid!important;
  grid-template-columns:minmax(260px,540px) auto!important;
  gap:8px!important;
  justify-content:start;
  align-items:center;
}
.buyerDeskMain .meleeSearchBar input{width:100%!important;min-width:0!important;height:42px!important;padding:0 12px!important;}
.buyerDeskMain .meleeSearchBar button{height:42px!important;padding:0 18px!important;}
.buyerDeskMain .meleePanel>#meleeBackend{margin:12px 0 0!important;font-size:11px!important;color:var(--a-muted)!important;}
.meleeEmpty{
  min-height:250px;
  display:grid;
  place-items:center;
  align-content:center;
  gap:7px;
  padding:28px 16px;
  text-align:center;
}
.meleeEmpty>span{
  width:42px;
  height:42px;
  display:grid;
  place-items:center;
  border-radius:8px;
  background:var(--a-accent-soft);
  color:var(--a-accent);
  font-weight:650;
}
.meleeEmpty h2{margin:4px 0 0!important;font-size:19px!important;}
.meleeEmpty p{max-width:470px;margin:0!important;color:var(--a-muted)!important;font-size:12.5px!important;line-height:1.5!important;}
.meleeEmpty>div{display:flex;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:8px;}

@media(min-width:1240px){
  .ngdDeskToolbar{flex-wrap:nowrap!important;}
  .ngdDeskToolbar .buyerCertInput{width:140px!important;flex:1 1 140px!important;}
  .ngdDeskToolbar #priceQuick{width:170px!important;flex:0 0 170px!important;}
  .ngdDeskToolbar .buyerDeskSort{width:195px!important;flex:0 0 195px!important;}
}

@media(max-width:900px){
  .ngdMarketStatus{grid-template-columns:1fr 1fr;}
  .ngdMarketStatus>span:nth-child(2){border-right:0;}
  .ngdMarketStatus>span:nth-child(-n+2){border-bottom:1px solid var(--a-line);}
  .ngdDeskTitleActions{width:100%;justify-content:space-between;}
  .ngdDeskTitleActions .buyerDeskSaved{flex:1;}
  .ngdDeskTitleActions .buyerDeskSaved>button{width:100%;justify-content:center;}
  #shopGrid .buyerDeskTable{min-width:1000px!important;}
  .ngdDeskShell .ngdDiamondTabs{
    overflow-x:hidden!important;
    scrollbar-width:none;
  }
  .ngdDeskShell .ngdDiamondTabs::-webkit-scrollbar{display:none;}
  .ngdDeskShell .buyerDeskMenuBtn{width:42px!important;min-width:42px!important;padding:0!important;}
  .ngdDeskShell .buyerDeskMenuBtn>span:last-child{display:none!important;}
  .ngdDeskShell .buyerDeskMenuIcon{margin:0 auto!important;}
  .buyerCompareMedia{max-width:150px!important;height:150px!important;}
}

@media(max-width:430px){
  .ngdMarketStatus>span{padding:9px 10px;}
  .buyerViewSegment{flex:0 0 auto;}
  .buyerDeskMain .buyerViewSegment .buyerViewBtn{min-width:52px;padding:0 8px;}
  .ngdShortlistMedia{height:165px!important;}
  .ngdShortlistHeroActions{display:grid!important;grid-template-columns:1fr 1fr;width:100%;}
  .ngdShortlistHeroActions>button{width:100%;}
  .buyerCompareMedia{max-width:132px!important;height:132px!important;}
  .buyerCompareTable thead th{padding:10px!important;}
  .buyerCompareCol{min-width:150px;gap:6px;}
  .buyerDeskMain .meleeSearchBar{grid-template-columns:1fr!important;}
  .buyerDeskMain .meleeSearchBar button{width:100%!important;}
}

/* Wider product cards with a shorter, crop-safe media frame. */
#shopGrid.buyerDeskGrid{
  grid-template-columns:repeat(auto-fill,minmax(290px,1fr))!important;
}
#shopGrid .buyerStoneMedia{
  width:auto!important;
  height:auto!important;
  min-height:0!important;
  aspect-ratio:1/1!important;   /* [Nivoda-layout] big square media, whole stone visible */
  position:relative!important;
}
/* [Nivoda-layout] type badge (Natural/Lab) top-left over the media, matching the seller card */
#shopGrid .ngdCardType{position:absolute;top:10px;left:10px;z-index:3;background:rgba(255,255,255,.96);color:var(--a-accent);font-size:11px;font-weight:700;padding:4px 11px;border-radius:999px;box-shadow:0 1px 3px rgba(11,18,32,.14);}
#shopGrid .buyerStoneMedia img{
  width:100%!important;
  height:100%!important;
  object-fit:contain!important;
  object-position:center!important;
}

@media(max-width:900px){
  #shopGrid.buyerDeskGrid{grid-template-columns:1fr!important;}
}

/* [ui-fix] The header/desk NGD logo is the brand image, not a boxed button — strip the
   control border/background/radius so it sits cleanly (the real logo renders via ::before). */
.ngdDeskShell .ngdDeskTop .buyerDeskLogo,
.ngdDeskShell .buyerNivodaTop .buyerNivodaLogo,
.ngdDeskShell .ngdDeskTop .ngdDeskLogo,
.ngdHeader .ngdBrandLockup,
header .ngdLogo.ngdBrandLockup{
  background:transparent!important;border:0!important;box-shadow:none!important;border-radius:0!important;padding:0 2px!important;
}

/* [ui-fix] Buyer desk top-bar: the account "avatar" rendered as a flat teal rectangle jammed against
   the word "Account" (no circle, no gap). Make it a clean circular initial chip + consistent spacing,
   and lay out the Shortlist/Cart/Account/Help controls as tidy icon+label pills. */
.ngdDeskShell .buyerDeskAccount{display:inline-flex!important;align-items:center!important;gap:8px!important;width:auto!important;justify-self:start;padding:0 10px!important;height:38px!important;}
.ngdDeskShell .buyerDeskAccount .buyerAvatar,.ngdDeskShell .buyerSideUser .buyerAvatar{display:inline-flex!important;align-items:center!important;justify-content:center!important;width:24px!important;height:24px!important;min-width:24px!important;border-radius:50%!important;background:var(--a-accent)!important;color:#fff!important;font-size:11px!important;font-weight:700!important;flex:0 0 auto!important;margin:0!important;line-height:1!important;}
.ngdDeskShell .buyerDeskAccount .buyerDeskAccountName{font-weight:600!important;}
.ngdDeskShell .buyerShortlistTop,.ngdDeskShell .buyerDeskCart,.ngdDeskShell .buyerDeskHelp{display:inline-flex!important;align-items:center!important;gap:7px!important;height:38px!important;padding:0 12px!important;width:auto!important;justify-self:start;white-space:nowrap;}
.ngdDeskShell .buyerDeskCart b,.buyerShortlistTop b{order:2;}

/* [ui] Melee search + filter bar (type / carat range / availability). */
.meleePanel .meleeSearchBar{display:flex!important;flex-wrap:wrap!important;gap:8px!important;align-items:center!important;margin-bottom:14px!important;}
.meleePanel .meleeSearchBar input[type=search]{flex:1 1 220px!important;min-width:170px!important;}
.meleePanel .meleeSearchBar input,.meleePanel .meleeSearchBar select{height:40px!important;border:1px solid var(--a-line-2)!important;border-radius:8px!important;background:#fff!important;color:var(--a-ink)!important;padding:0 10px!important;font-size:13px!important;}
.meleePanel .meleeSearchBar .meleeAvailToggle{display:inline-flex!important;align-items:center!important;gap:6px!important;font-size:13px!important;color:var(--a-ink-2)!important;white-space:nowrap!important;}
.meleePanel .meleeSearchBar .meleeAvailToggle input{height:auto!important;width:auto!important;margin:0!important;}


/* [part8-r8] Buyer Account premium refresh (workflow: buyer-account-premium, critic-approved).
   Scoped under .buyerDeskMain; overrides role-premium.css + buyer-clean-a.css option-card/hero rules. */
/* ============================================================
   Buyer Account — final synthesis ("Refined console, editorial restraint")
   Spine: Refined SaaS Console (D1). Grafts: single-teal-thread discipline
   + tracked micro-labels (D2); one clean labelled stat, no competing
   clusters (distilled from D3). Scoped under .buyerDeskMain.
   High-specificity + !important beat buyer-clean-a.css (hero gradient L169,
   teal option-buttons L355) and role-premium.css global role rules.
   ============================================================ */

/* ---- hero shell: one quiet white console card ---- */
.buyerDeskMain .roleHero.buyerAccountHero{
  display:block!important;
  background:var(--a-surface)!important;
  border:1px solid var(--a-line)!important;
  border-radius:var(--a-radius)!important;
  box-shadow:var(--a-shadow)!important;
  padding:22px 22px 20px!important;
  margin:0 0 16px!important;
}

/* ---- header row: avatar · identity · commission stat ---- */
.buyerDeskMain .buyerAccountHero .ngdAcctHead{
  display:flex;align-items:center;gap:16px;flex-wrap:wrap;
}
.buyerDeskMain .buyerAccountHero .ngdAcctIdentity{
  display:flex;align-items:center;gap:14px;min-width:0;flex:1 1 260px;
}
.buyerDeskMain .buyerAccountHero .ngdAcctAvatar{
  flex:0 0 auto;width:52px;height:52px;border-radius:14px;
  display:inline-flex;align-items:center;justify-content:center;
  background:linear-gradient(150deg,var(--a-accent),var(--a-accent-strong))!important;
  color:var(--a-on-accent)!important;
  font-weight:700;font-size:18px;letter-spacing:.02em;
  box-shadow:0 6px 16px rgba(11,181,166,.28);
}
.buyerDeskMain .buyerAccountHero .ngdAcctWho{min-width:0;}
.buyerDeskMain .buyerAccountHero .ngdAcctKicker{
  display:block;color:var(--a-accent-strong)!important;font-weight:700;
  font-size:11px;letter-spacing:.12em;text-transform:uppercase;margin:0 0 3px;
}
.buyerDeskMain .buyerAccountHero .ngdAcctWho h2{
  margin:0!important;color:var(--a-ink)!important;
  font-size:22px!important;line-height:1.15!important;font-weight:700!important;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%;
}
.buyerDeskMain .buyerAccountHero .ngdAcctMeta{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-top:7px;
}
.buyerDeskMain .buyerAccountHero .ngdAcctPill{
  display:inline-flex;align-items:center;gap:7px;
  padding:4px 11px;border-radius:999px;
  font-size:12px;font-weight:650;line-height:1;border:1px solid transparent;
}
.buyerDeskMain .buyerAccountHero .ngdAcctPill .ngdAcctDot{
  width:7px;height:7px;border-radius:50%;flex:0 0 auto;
}
.buyerDeskMain .buyerAccountHero .ngdAcctPill.is-approved{
  background:var(--a-accent-soft)!important;color:var(--a-accent-strong)!important;
  border-color:rgba(11,181,166,.28)!important;
}
.buyerDeskMain .buyerAccountHero .ngdAcctPill.is-approved .ngdAcctDot{background:var(--a-accent)!important;}
.buyerDeskMain .buyerAccountHero .ngdAcctPill.is-pending{
  background:var(--a-warn-soft)!important;color:var(--a-warn)!important;border-color:#EAD9AE!important;
}
.buyerDeskMain .buyerAccountHero .ngdAcctPill.is-pending .ngdAcctDot{
  background:var(--a-warn)!important;box-shadow:0 0 0 3px rgba(154,107,21,.14);
}
.buyerDeskMain .buyerAccountHero .ngdAcctEmail{
  color:var(--a-muted)!important;font-size:13px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:230px;
}
.buyerDeskMain .buyerAccountHero .ngdAcctStat{
  margin-left:auto;align-self:center;text-align:right;
  padding-left:18px;border-left:1px solid var(--a-line);
}
.buyerDeskMain .buyerAccountHero .ngdAcctStatLabel{
  display:block;color:var(--a-muted)!important;
  font-size:11px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
}
.buyerDeskMain .buyerAccountHero .ngdAcctStatValue{
  display:block;margin-top:5px;color:var(--a-ink)!important;
  font-size:26px;line-height:1;font-weight:750;
}
.buyerDeskMain .buyerAccountHero .ngdAcctStatValue i{
  font-style:normal;font-size:16px;font-weight:650;color:var(--a-muted)!important;margin-left:2px;
}

/* ---- slim access-status strip with icon ---- */
.buyerDeskMain .buyerAccountHero .ngdAcctStatus{
  display:flex;align-items:center;gap:13px;
  margin-top:18px;padding:12px 14px;
  border:1px solid var(--a-line);border-radius:var(--a-radius-sm);
  background:var(--a-surface-2);
}
.buyerDeskMain .buyerAccountHero .ngdAcctStatusIcon{
  flex:0 0 auto;width:38px;height:38px;border-radius:10px;
  display:inline-flex;align-items:center;justify-content:center;background:#fff;
}
.buyerDeskMain .buyerAccountHero .ngdAcctStatus.is-approved{background:var(--a-accent-soft);border-color:rgba(11,181,166,.30);}
.buyerDeskMain .buyerAccountHero .ngdAcctStatus.is-approved .ngdAcctStatusIcon{color:var(--a-accent-strong);border:1px solid rgba(11,181,166,.32);}
.buyerDeskMain .buyerAccountHero .ngdAcctStatus.is-pending{background:var(--a-warn-soft);border-color:#EAD9AE;}
.buyerDeskMain .buyerAccountHero .ngdAcctStatus.is-pending .ngdAcctStatusIcon{color:var(--a-warn);border:1px solid #EAD9AE;}
.buyerDeskMain .buyerAccountHero .ngdAcctStatusText{min-width:0;flex:1 1 auto;}
.buyerDeskMain .buyerAccountHero .ngdAcctStatusText b{display:block;color:var(--a-ink)!important;font-size:14px;font-weight:700;line-height:1.2;}
.buyerDeskMain .buyerAccountHero .ngdAcctStatusText p{margin:3px 0 0!important;color:var(--a-ink-2)!important;font-size:13px;line-height:1.4;}

/* quiet Refresh button on the status strip */
.buyerDeskMain .buyerAccountHero .ngdAcctRefresh{
  flex:0 0 auto;align-self:center;
  display:inline-flex;align-items:center;gap:6px;
  min-height:34px!important;padding:0 13px!important;
  background:var(--a-surface)!important;border:1px solid var(--a-line-2)!important;
  color:var(--a-ink-2)!important;border-radius:var(--a-radius-sm)!important;
  font-weight:650!important;font-size:13px!important;box-shadow:none!important;cursor:pointer;
  transition:border-color .16s ease,color .16s ease;
}
.buyerDeskMain .buyerAccountHero .ngdAcctRefresh:hover{
  border-color:var(--a-accent)!important;color:var(--a-accent)!important;
  background:var(--a-surface)!important;filter:none!important;transform:none!important;
}
.buyerDeskMain .buyerAccountHero .ngdAcctRefresh svg{opacity:.9;}
.buyerDeskMain .buyerAccountHero .ngdAcctRefresh:focus-visible{outline:2px solid var(--a-accent)!important;outline-offset:2px;}

/* ---- restrained secondary action row ---- */
.buyerDeskMain .buyerAccountHero .ngdAcctActions{
  display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;
}
.buyerDeskMain .buyerAccountHero .ngdAcctActions button,
.buyerDeskMain .buyerAccountHero .ngdAcctActions button.secondary{
  min-height:36px!important;padding:0 14px!important;
  background:var(--a-surface)!important;border:1px solid var(--a-line-2)!important;
  color:var(--a-ink-2)!important;border-radius:var(--a-radius-sm)!important;
  font-weight:650!important;font-size:13px!important;box-shadow:none!important;cursor:pointer;
  transition:border-color .16s ease,color .16s ease,background .16s ease;
}
.buyerDeskMain .buyerAccountHero .ngdAcctActions button:hover{
  border-color:var(--a-accent)!important;color:var(--a-accent)!important;
  background:var(--a-accent-soft)!important;filter:none!important;transform:none!important;
}
.buyerDeskMain .buyerAccountHero .ngdAcctActions button:focus-visible{outline:2px solid var(--a-accent)!important;outline-offset:2px;}

/* ============================================================
   Tools grid — quiet white cards, tracked label + line-icon + "Open ->" ghost link
   ============================================================ */
.buyerDeskMain .roleOptionGrid.buyerAccountTools{
  display:grid!important;grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:14px!important;
}
.buyerDeskMain .buyerAccountTools .roleOptionCard.ngdAcctTool{
  position:relative;display:grid!important;grid-template-rows:auto 1fr auto;gap:12px!important;
  min-height:158px!important;align-content:stretch!important;
  padding:16px!important;background:var(--a-surface)!important;
  border:1px solid var(--a-line)!important;border-radius:var(--a-radius)!important;
  box-shadow:var(--a-shadow)!important;overflow:hidden;
  transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease!important;
}
/* single teal thread reveals along the top edge on hover */
.buyerDeskMain .buyerAccountTools .roleOptionCard.ngdAcctTool::before{
  content:"";position:absolute;left:0;right:0;top:0;height:2px;
  background:var(--a-accent);transform:scaleX(0);transform-origin:left center;
  transition:transform .3s ease;
}
.buyerDeskMain .buyerAccountTools .roleOptionCard.ngdAcctTool:hover::before{transform:scaleX(1);}
.buyerDeskMain .buyerAccountTools .roleOptionCard.ngdAcctTool:hover{
  transform:translateY(-3px)!important;box-shadow:var(--a-shadow-lg)!important;border-color:var(--a-line-2)!important;
}
.buyerDeskMain .buyerAccountTools .ngdAcctTool .ngdAcctToolIcon{
  width:40px;height:40px;border-radius:11px;
  display:inline-flex;align-items:center;justify-content:center;
  background:var(--a-accent-soft)!important;color:var(--a-accent-strong)!important;
  border:1px solid rgba(11,181,166,.22);
  transition:background .16s ease,color .16s ease,border-color .16s ease;
}
.buyerDeskMain .buyerAccountTools .ngdAcctTool:hover .ngdAcctToolIcon{
  background:var(--a-accent)!important;color:var(--a-on-accent)!important;border-color:var(--a-accent)!important;
}
.buyerDeskMain .buyerAccountTools .ngdAcctTool .ngdAcctToolBody{align-self:start;}
.buyerDeskMain .buyerAccountTools .ngdAcctTool .ngdAcctToolLabel{
  display:block;color:var(--a-muted)!important;font-size:10.5px;font-weight:700;
  letter-spacing:.14em;text-transform:uppercase;margin:0 0 5px;
}
.buyerDeskMain .buyerAccountTools .ngdAcctTool strong{
  display:block;color:var(--a-ink)!important;font-size:15px;font-weight:700;line-height:1.25;
}
.buyerDeskMain .buyerAccountTools .ngdAcctTool p{
  margin:5px 0 0!important;color:var(--a-muted)!important;font-size:13px;line-height:1.45;
}

/* ghost "Open ->" link — strips the teal option-card button fill (buyer-clean L355) */
.buyerDeskMain .buyerAccountTools .roleOptionCard.ngdAcctTool button.ngdAcctToolLink{
  align-self:end;justify-self:start;
  display:inline-flex;align-items:center;gap:6px;
  min-height:0!important;padding:2px 0!important;margin:0!important;
  background:transparent!important;border:0!important;box-shadow:none!important;
  color:var(--a-ink-2)!important;font-weight:650!important;font-size:13px!important;
  cursor:pointer;transition:color .16s ease;
}
.buyerDeskMain .buyerAccountTools .roleOptionCard.ngdAcctTool button.ngdAcctToolLink .ngdAcctArrow{
  transition:transform .16s ease;
}
/* stretched link: whole card is the click target; data-action resolves via closest() */
.buyerDeskMain .buyerAccountTools .roleOptionCard.ngdAcctTool button.ngdAcctToolLink::after{
  content:"";position:absolute;inset:0;border-radius:var(--a-radius);
}
.buyerDeskMain .buyerAccountTools .roleOptionCard.ngdAcctTool button.ngdAcctToolLink:hover,
.buyerDeskMain .buyerAccountTools .roleOptionCard.ngdAcctTool:hover button.ngdAcctToolLink{
  color:var(--a-accent)!important;background:transparent!important;filter:none!important;transform:none!important;
}
.buyerDeskMain .buyerAccountTools .roleOptionCard.ngdAcctTool:hover button.ngdAcctToolLink .ngdAcctArrow{
  transform:translateX(3px);
}
.buyerDeskMain .buyerAccountTools .roleOptionCard.ngdAcctTool button.ngdAcctToolLink:focus-visible{
  outline:2px solid var(--a-accent)!important;outline-offset:3px;border-radius:6px;
}

/* ---- mobile collapse ---- */
@media(max-width:760px){
  .buyerDeskMain .roleOptionGrid.buyerAccountTools{grid-template-columns:1fr!important;}
  .buyerDeskMain .roleHero.buyerAccountHero{padding:18px!important;}
  .buyerDeskMain .buyerAccountHero .ngdAcctHead{align-items:flex-start;}
  .buyerDeskMain .buyerAccountHero .ngdAcctStat{
    margin-left:0;padding-left:0;border-left:0;text-align:left;width:100%;
    margin-top:12px;padding-top:12px;border-top:1px solid var(--a-line);
  }
  .buyerDeskMain .buyerAccountHero .ngdAcctStatus{flex-wrap:wrap;}
  .buyerDeskMain .buyerAccountHero .ngdAcctStatusText{flex:1 1 60%;}
  .buyerDeskMain .buyerAccountHero .ngdAcctRefresh{margin-left:auto;}
  .buyerDeskMain .buyerAccountHero .ngdAcctActions button{flex:1 1 auto;justify-content:center;}
}
/* [part8-melee] Buyer melee parcel filter panel (opens on the "Filters" button). Teal/neutral theme. */
.meleePanel .meleeFilterPanel{margin-top:10px;padding:12px 14px;border:1px solid var(--a-line)!important;border-radius:10px;background:var(--a-surface-2)!important;}
.meleePanel .meleeFilterGrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px 12px;}
.meleePanel .meleeFilterGrid label{display:flex;flex-direction:column;gap:4px;font-size:12px;font-weight:700;color:var(--a-muted)!important;letter-spacing:.02em;}
.meleePanel .meleeFilterGrid select,.meleePanel .meleeFilterGrid input{height:36px!important;border:1px solid var(--a-line-2)!important;border-radius:8px!important;background:#fff!important;color:var(--a-ink)!important;padding:0 8px!important;font-size:13px!important;font-weight:500!important;}

/* [part8-legal] Global-standard footer assurance/trust row (dark footer, teal icon tiles).
   Sits above .footerGrid; scoped under .ngdFooter so it inherits the dark footer surface. */
.ngdFooter .footerTrust{display:grid;grid-template-columns:repeat(4,1fr);gap:20px;padding:2px 0 28px;margin-bottom:26px;border-bottom:1px solid rgba(255,255,255,.12);}
.ngdFooter .footerTrustItem{display:flex;align-items:center;gap:12px;min-width:0;}
.ngdFooter .footerTrustIcon{flex:0 0 auto;width:42px;height:42px;display:grid;place-items:center;border-radius:12px;background:rgba(11,181,166,.14);color:var(--a-accent,#0BB5A6)!important;border:1px solid rgba(11,181,166,.32);}
.ngdFooter .footerTrustIcon svg{width:20px;height:20px;display:block;}
.ngdFooter .footerTrustTxt{display:flex;flex-direction:column;line-height:1.3;min-width:0;}
.ngdFooter .footerTrustTxt b{color:#fff!important;font-size:13px!important;font-weight:650!important;}
.ngdFooter .footerTrustTxt small{color:rgba(255,255,255,.6)!important;font-size:11.5px!important;}
@media (max-width:900px){.ngdFooter .footerTrust{grid-template-columns:1fr 1fr;gap:16px;}}
@media (max-width:520px){.ngdFooter .footerTrust{grid-template-columns:1fr;gap:14px;padding-bottom:22px;margin-bottom:20px;}}

/* [ui-fix] Card TOTAL price is the anchor of each card — promote it above the caption + body text. */
#shopGrid .buyerStoneBody>p{margin:6px 0 2px!important;}
#shopGrid .buyerStoneBody>p b{font-size:19px!important;font-weight:700!important;color:var(--a-ink)!important;line-height:1.2;}
#shopGrid .buyerStoneBody>p small{display:block;color:var(--a-muted)!important;font-size:11px!important;font-weight:500;}

/* [ui-fix] Larger tap targets on card actions + quick toggles (were ~27-30px, below comfortable touch). */
#shopGrid .buyerStoneActions button{min-height:30px!important;padding:5px 10px!important;font-size:11px!important;}
.buyerDeskMain .buyerQuickToggle{min-height:34px!important;}
/* [ui-fix] Home metric-band supporting line stays visible on mobile (was collapsed, so stats lost their context). */
@media (max-width:640px){.ngdMetricBand p{display:block!important;font-size:11px!important;line-height:1.4!important;margin-top:4px!important;}}

/* =====================================================================================
   [desk-card + sourcing-status drawer] Presentation-only.
   - The dashboard stat-strip (.ngdMarketStatus) is gone; its four facts now live in a
     slide-out "Sourcing status" drawer opened from the .buyerDeskStatusBtn topbar button.
   - Product-card media filled edge-to-edge (kills the grey letterbox bars); the no-image
     placeholder stays contained. Save/RFQ chips cleaned up (the old role-premium.css
     pseudo-icons that overlapped the labels are neutralised inside #shopGrid).
   No handler ids, data-* or filter classes touched.
   ===================================================================================== */

/* --- topbar Status button (matches Help/Cart pills) --- */
.ngdDeskShell .buyerDeskStatusBtn{
  display:inline-flex!important;align-items:center!important;gap:7px!important;
  flex:0 0 auto!important;height:38px!important;padding:0 12px!important;
  background:transparent!important;border:1px solid transparent!important;
  color:var(--a-ink-2)!important;border-radius:var(--a-radius-sm)!important;
  font-weight:600!important;font-size:12.5px!important;white-space:nowrap!important;cursor:pointer;
}
.ngdDeskShell .buyerDeskStatusBtn:hover{background:var(--a-surface-2)!important;color:var(--a-ink)!important;}
.ngdDeskShell .buyerDeskStatusBtn[aria-expanded="true"]{background:var(--a-surface-2)!important;color:var(--a-ink)!important;border-color:var(--a-line)!important;}
.ngdDeskShell .buyerDeskStatusGlyph{
  display:inline-flex;align-items:center;justify-content:center;
  width:19px;height:19px;border-radius:50%;
  background:#E6F7F5;color:var(--a-accent);font-style:normal;
  font-weight:800;font-size:12px;line-height:1;font-family:Georgia,'Times New Roman',serif;
}
@media(max-width:520px){.ngdDeskShell .buyerDeskStatusBtn span:not(.buyerDeskStatusGlyph){position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);}}

/* --- Sourcing status drawer + backdrop --- */
.buyerStatusBackdrop{
  position:fixed;inset:0;background:rgba(11,18,32,.44);
  opacity:0;visibility:hidden;transition:opacity .22s ease,visibility .22s ease;z-index:2400;
}
.buyerStatusBackdrop.active{opacity:1;visibility:visible;}
.buyerStatusDrawer{
  position:fixed;top:0;bottom:0;right:0;width:360px;max-width:88vw;
  transform:translateX(102%);transition:transform .26s cubic-bezier(.4,0,.2,1);
  background:var(--a-surface);color:var(--a-ink);z-index:2401;
  box-shadow:-22px 0 55px rgba(11,18,32,.22);
  display:flex;flex-direction:column;overflow-y:auto;padding:20px 20px 26px;
}
.buyerStatusDrawer.active{transform:translateX(0);}
.buyerStatusHead{display:flex;align-items:flex-start;justify-content:space-between;gap:12px;margin-bottom:4px;}
.buyerStatusKicker{display:block;font-size:11px;font-weight:700;letter-spacing:.09em;text-transform:uppercase;color:var(--a-accent);margin-bottom:3px;}
.buyerStatusHead h4{margin:0;font-size:19px;font-weight:700;line-height:1.15;color:var(--a-ink);}
.buyerStatusHead button{
  flex:0 0 auto;width:32px;height:32px;border:1px solid var(--a-line);background:var(--a-surface);
  border-radius:8px;color:var(--a-ink-2);font-size:17px;line-height:1;cursor:pointer;
}
.buyerStatusHead button:hover{border-color:var(--a-accent);color:var(--a-accent);}
.buyerStatusIntro{margin:8px 0 16px;color:var(--a-muted);font-size:13px;line-height:1.5;}
.buyerStatusList{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:12px;}
.buyerStatusList li{
  display:flex;gap:13px;align-items:flex-start;padding:14px;
  background:var(--a-surface-2);border:1px solid var(--a-line);border-radius:12px;
}
.buyerStatusIcon{
  flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;
  width:34px;height:34px;border-radius:9px;background:#E6F7F5;color:var(--a-accent);
  font-style:normal;font-weight:700;font-size:16px;line-height:1;
}
.buyerStatusList li>div{min-width:0;}
.buyerStatusList b{display:block;font-size:12px;font-weight:600;color:var(--a-muted);letter-spacing:.02em;text-transform:uppercase;}
.buyerStatusList em{display:block;font-style:normal;font-size:16px;font-weight:700;color:var(--a-ink);margin:1px 0 4px;}
.buyerStatusList small{display:block;font-size:12.5px;line-height:1.5;color:var(--a-ink-2);}
@media(max-width:520px){.buyerStatusDrawer{width:100vw;max-width:100vw;}}

/* --- product-card media: show the WHOLE diamond. Real vendor thumbnails are square stones on a
       white ground and non-round shapes (baguette/triangle/pear/marquise) get their tips cropped by
       object-fit:cover — so use contain on a clean white media background: every stone fully visible,
       framed consistently, no grey letterbox (the white image ground blends into the white media). --- */
#shopGrid .buyerStoneMedia img,
#shopGrid .buyerStoneNoImageFrame img{object-fit:contain!important;object-position:center!important;padding:8px!important;}

/* --- product-card Save / RFQ chips: neutralise stale pseudo-icons, clean pill buttons --- */
#shopGrid .buyerStoneActions button::before,
#shopGrid .buyerStoneActions button::after{content:none!important;display:none!important;}
#shopGrid .buyerStoneActions{height:auto!important;gap:8px!important;padding:9px 10px 0!important;align-items:center!important;}
#shopGrid .buyerStoneActions button{
  width:auto!important;min-width:54px!important;min-height:30px!important;height:30px!important;
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  padding:0 13px!important;font-size:11px!important;font-weight:650!important;
  letter-spacing:.01em!important;white-space:nowrap!important;
  background:var(--a-surface)!important;border:1px solid var(--a-line)!important;
  color:var(--a-ink-2)!important;border-radius:999px!important;
  box-shadow:0 1px 2px rgba(11,18,32,.05)!important;
}
#shopGrid .buyerStoneActions button:hover{border-color:var(--a-accent)!important;color:var(--a-accent)!important;background:#fff!important;}

/* ============================================================================
   [premium-refresh wave 2 — buyer] Remove dark-on-light + off-brand (navy / sky-blue /
   lilac / pure-black) holdovers across the desk flows. Presentation-only; scoped
   overrides reusing brand tokens. No handler ids / data-* / filter classes touched.
   ============================================================================ */

/* Desk hero results/approval meta box was styled for a DARK hero (translucent-white
   on the new light hero = an invisible ghost panel). Give it a real card surface. */
.buyerDeskMain .ngdDeskHeroMeta,.ngdBuyerDeskMain .ngdDeskHeroMeta{background:var(--a-surface)!important;border:1px solid var(--a-line)!important;border-radius:var(--a-radius-sm)!important;box-shadow:var(--a-shadow)!important;backdrop-filter:none!important;}

/* Empty-state CTAs (Reset filters / Switch type / Ask support) were navy + baby-blue. */
#shopGrid .ngdEmptyActions button{background:var(--a-accent)!important;border:1px solid var(--a-accent)!important;color:var(--a-on-accent)!important;border-radius:var(--a-radius-sm)!important;}
#shopGrid .ngdEmptyActions button:hover{background:var(--a-accent-strong)!important;border-color:var(--a-accent-strong)!important;}
#shopGrid .ngdEmptyActions button.secondary{background:var(--a-surface)!important;color:var(--a-ink)!important;border-color:var(--a-line-2)!important;}
#shopGrid .ngdEmptyActions button.secondary:hover{border-color:var(--a-accent)!important;color:var(--a-accent)!important;}
#shopGrid .ngdEmptyActions button.ghost{background:var(--a-accent-soft)!important;color:var(--a-accent)!important;border-color:transparent!important;}

/* Shortlist page primary CTAs were legacy navy. */
.buyerDeskMain .ngdShortlistActions button:not(.secondary):not(:disabled),.buyerDeskMain .ngdShortlistEmpty button:not(.secondary){background:var(--a-accent)!important;border-color:var(--a-accent)!important;color:var(--a-on-accent)!important;border-radius:var(--a-radius-sm)!important;}
.buyerDeskMain .ngdShortlistActions button:not(.secondary):not(:disabled):hover,.buyerDeskMain .ngdShortlistEmpty button:not(.secondary):hover{background:var(--a-accent-strong)!important;border-color:var(--a-accent-strong)!important;}
.buyerDeskMain .ngdShortlistActions button.secondary:hover{border-color:var(--a-accent)!important;color:var(--a-accent)!important;}

/* Auth inputs (login/signup/reset) glowed sky-blue on focus — a 2nd off-brand accent. */
.ngdAuthPolished .buyerAuthCard input:focus{border-color:var(--a-accent)!important;box-shadow:0 0 0 3px var(--a-accent-soft)!important;outline:0!important;}
.ngdAuthPolished .buyerAuthCard label{color:var(--a-ink)!important;}

/* Order-detail / cases / refunds used a pre-Direction-A lilac-grey palette. */
.buyerDeskMain .buyerOrderItem,.buyerDeskMain .buyerRefundRow,.buyerDeskMain .buyerCaseRow{border-color:var(--a-line)!important;}
.buyerDeskMain .buyerOrderItem small,.buyerDeskMain .buyerOrderMeta{color:var(--a-muted)!important;}
.buyerDeskMain .buyerOrderPreview{color:var(--a-ink-2)!important;}
.buyerDeskMain .buyerOrderTotals{border-top-color:var(--a-line)!important;}
.buyerDeskMain .buyerCaseEvent{border-left-color:var(--a-accent)!important;background:var(--a-surface-2)!important;}
.buyerDeskMain .buyerCaseRow:hover{background:var(--a-surface-2)!important;}
.buyerDeskMain .buyerOrdersState{color:var(--a-muted)!important;}

/* Multi-step checkout step-number badges ('01'/'02') were solid pure-black #050505. */
.buyerDeskMain .buyerCheckoutStep b{background:var(--a-accent-soft)!important;color:var(--a-accent-strong)!important;font-weight:700!important;}

/* Melee parcel cards were flat inline-styled boxes; match the premium stone grid. */
.buyerDeskMain .meleePanel .buyerCard{background:var(--a-surface)!important;border:1px solid var(--a-line)!important;border-radius:var(--a-radius)!important;box-shadow:var(--a-shadow)!important;padding:14px!important;transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease!important;}
.buyerDeskMain .meleePanel .buyerCard:hover{transform:translateY(-3px)!important;box-shadow:var(--a-shadow-lg)!important;border-color:var(--a-line-2)!important;}
.buyerDeskMain .meleePanel .buyerCard h3{color:var(--a-ink)!important;}
.buyerDeskMain .meleePanel .buyerCard .muted{color:var(--a-muted)!important;}

/* .pill.bad (rejected / withdrawn / expired) was never defined -> looked like a neutral
   pill. Mirror .pill.red so negative statuses read at a glance. */
.pill.bad{background:var(--a-bad-soft,#F7E7E4)!important;color:var(--a-bad,#BB4A3F)!important;}

/* ============================================================================
   [audit-fix — buyer UI/UX + a11y sweep] Appended LAST so these win by source order.
   ============================================================================ */

/* [audit-fix #96] Comfortable targets: card Save/RFQ chips >=32px tall at >=11.5px text; the bulk-select
   label is a 24px hit area around the 17px box; the buy button may wrap its long disabled label
   ('Complete verification to purchase') instead of clipping in a fixed 38px row. */
#shopGrid .buyerStoneActions button{min-height:32px!important;height:32px!important;padding:0 14px!important;font-size:11.5px!important;}
#shopGrid .buyerBulkCheck,#shopGrid .buyerDeskTableHead .buyerBulkCheck{width:24px!important;height:24px!important;min-width:24px!important;min-height:24px!important;}
#shopGrid .buyerStoneBuy{height:auto!important;min-height:38px!important;padding:7px 10px!important;white-space:normal!important;line-height:1.25!important;}

/* [audit-fix #97] Measurement chip: own row, never overflows its pill (long "L x W x D" values ellipsise; the
   full value is in the chip's title). Price context <small> is now two labelled variants (Rap vs delivery). */
#shopGrid .buyerStoneNumbers .buyerStoneMeasure{flex:1 1 100%!important;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
#shopGrid .buyerStoneBody>p small.buyerStoneRap{color:var(--a-ink-2)!important;font-weight:600;}
#shopGrid .buyerStoneBody>p small.buyerStoneDeliveryCtx{color:var(--a-muted)!important;}

/* [audit-fix #98] Cert-verified trust chip via stylesheet (was an inline style attribute). */
#shopGrid .buyerStoneTrust span.buyerCertVerified{color:var(--a-good)!important;background:var(--a-good-soft)!important;border-color:var(--a-good-soft)!important;font-weight:700!important;}

/* [audit-fix #92] Results loading skeleton (search/filter swap + load-more append). Reuses .ngd-skeleton +
   the ngd-shimmer keyframes from the shared component layer; the media block shimmers the same way. */
#shopGrid .buyerStoneSkeleton{pointer-events:none;}
#shopGrid .buyerNivodaStoneCard.buyerStoneSkeleton:hover{transform:none!important;box-shadow:var(--a-shadow)!important;}
#shopGrid .buyerStoneSkeleton .buyerStoneMedia{min-height:180px!important;border-bottom:1px solid var(--a-line)!important;background:linear-gradient(90deg,#eef1f6,#e2e7ef,#eef1f6)!important;background-size:200% 100%!important;animation:ngd-shimmer 1.2s infinite;}
#shopGrid .buyerStoneSkeleton .buyerStoneBody{padding:13px!important;}
#shopGrid .buyerStoneSkeleton .ngd-skeleton{display:block;height:12px;margin:0 0 9px;}
#shopGrid .buyerStoneSkeleton .ngd-skeleton.short{width:55%;}
#shopGrid .buyerDeskTable .buyerSkeletonRow{display:flex;gap:14px;align-items:center;padding:14px 16px;border-bottom:1px solid var(--a-line);}
#shopGrid .buyerDeskTable .buyerSkeletonRow .ngd-skeleton{flex:1 1 auto;height:12px;}
#shopGrid .buyerDeskTable .buyerSkeletonRow .ngd-skeleton.short{flex:0 0 22%;}
#shopGrid[aria-busy="true"]{min-height:240px;}

/* [audit-fix #172] Skip-link target: focusing the <main> region programmatically must not paint a page-wide outline. */
#app main:focus{outline:none!important;}

/* [audit-fix #93] Reduced motion (WCAG 2.3.3): this sheet's own !important transitions/transforms ignored the
   token-layer 0ms override, so re-state them here — no card lift, no shimmer/spinner animation, no smooth
   transitions anywhere in the buyer portal. (The 360 hover auto-play is gated in app.js start360Preview.) */
@media (prefers-reduced-motion:reduce){
  .buyerDeskMain *,.buyerDeskMain *::before,.buyerDeskMain *::after,.ngdDeskShell *,.buyerFlowPage *,#app *{animation:none!important;transition:none!important;scroll-behavior:auto!important;}
  #shopGrid .buyerNivodaStoneCard:hover,#shopGrid .buyerStoneCard:hover,.buyerDeskMain .meleePanel .buyerCard:hover{transform:none!important;}
  #shopGrid .buyerStoneSkeleton .buyerStoneMedia,#shopGrid .buyerStoneSkeleton .ngd-skeleton{animation:none!important;background:var(--a-surface-2)!important;}
  .pdpSpinner,.pdpSpinner::before,.pdpSpinner::after{animation:none!important;}
}

/* =============================================================================
   [ui] BUYER DESK — SELLER-DESK PARITY (presentation only)
   Mirrors the seller inventory desk the owner approved: pill TABS, then ONE hero
   panel (title + real result count + Table/Grid segment), then ONE toolbar row,
   then a four-up results grid. Pure styling — no id, data-action, data-field or
   state class is renamed, so every buyer filter/search control behaves as before.
   Seller reference: .sellerTopTabs / .sellerInventoryHero / .sellerInventoryToolbar
   / .sellerInventoryGrid.buyerDeskGrid in public/seller/seller.css.
   ============================================================================= */

/* (a) pill tabs — the seller's .sellerTopTabs, on the buyer's teal accent --------
   Applied to the EXISTING diamond-type nav (.buyerDeskBlackNav.ngdDiamondTabs from header.js), NOT to a
   second copy: an earlier pass rendered a duplicate pill nav in dashboard.js, so the desk showed the same
   Natural/Lab control twice and exposed two landmarks both named "Diamond type". The duplicate is gone and
   the original nav — which also carries "Melee parcels" — is restyled here as the single pill row.
   The per-button subtitle is hidden so the row reads as compact tabs like the seller's. */
.ngdDeskShell .ngdDiamondTabs,.ngdDeskShell .buyerDeskBlackNav{
  display:flex!important;grid-template-columns:none!important;gap:6px!important;align-items:center;
  overflow-x:auto;background:var(--a-surface)!important;border:1px solid var(--a-line)!important;
  border-bottom:1px solid var(--a-line)!important;border-radius:14px!important;
  padding:6px!important;margin:12px 16px 0!important;box-shadow:var(--a-shadow);
}
.ngdDeskShell .ngdDiamondTabs button,.ngdDeskShell .buyerDeskBlackNav button{
  flex:0 0 auto!important;height:38px!important;min-height:38px!important;padding:0 14px!important;
  display:inline-flex!important;align-items:center!important;border:0!important;border-radius:10px!important;
  background:transparent!important;color:var(--a-muted)!important;font-size:12.5px!important;font-weight:700!important;
  white-space:nowrap!important;cursor:pointer;box-shadow:none!important;
}
.ngdDeskShell .ngdDiamondTabs button b,.ngdDeskShell .buyerDeskBlackNav button b{font-size:12.5px!important;font-weight:700!important;}
/* subtitle dropped: the seller's tabs are a single line, and the label alone already says what each is */
.ngdDeskShell .ngdDiamondTabs button small,.ngdDeskShell .buyerDeskBlackNav button small{display:none!important;}
.ngdDeskShell .ngdDiamondTabs button:hover,.ngdDeskShell .buyerDeskBlackNav button:hover{background:var(--a-surface-2)!important;color:var(--a-ink)!important;border-color:transparent!important;}
.ngdDeskShell .ngdDiamondTabs button.active,.ngdDeskShell .buyerDeskBlackNav button.active{
  background:var(--a-accent-soft)!important;color:var(--a-accent)!important;border-color:transparent!important;
  box-shadow:inset 0 0 0 1px rgba(10,114,102,.22)!important;
}
.ngdDeskShell .ngdDiamondTabs button:focus-visible,.ngdDeskShell .buyerDeskBlackNav button:focus-visible{outline:2px solid var(--a-accent)!important;outline-offset:2px!important;}

/* (b) ONE header panel — the seller's .sellerInventoryHero ---------------------- */
.buyerDeskMain .ngdDeskHero.buyerDeskHeroPanel{
  display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;
  gap:14px!important;align-items:center!important;
  background:var(--a-surface)!important;border:1px solid var(--a-line)!important;
  border-radius:var(--a-radius)!important;box-shadow:var(--a-shadow)!important;
  color:var(--a-ink)!important;padding:18px 20px!important;margin-bottom:12px!important;
}
.buyerDeskMain .buyerDeskHeroPanel .roleKicker{
  border:1px solid var(--a-line)!important;background:var(--a-accent-soft)!important;
  border-radius:999px!important;padding:4px 10px!important;font-size:10px!important;
}
.buyerDeskMain .buyerDeskHeroPanel h1{
  font-size:23px!important;font-weight:700!important;letter-spacing:-.03em!important;
  margin:9px 0 0!important;color:var(--a-ink)!important;
}
.buyerDeskMain .buyerDeskHeroPanel .buyerDeskHeroFacts{
  display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin:7px 0 0!important;
}
.buyerDeskMain .buyerDeskHeroPanel #resultCount{font-size:14px!important;font-weight:700!important;color:var(--a-ink)!important;}
.buyerDeskMain .buyerDeskHeroPanel .buyerDeskApproval{
  color:var(--a-muted)!important;font-size:11.5px!important;font-weight:650!important;
  border:1px solid var(--a-line);border-radius:999px;padding:3px 9px;
}

/* (c) ONE toolbar row — the seller's .sellerInventoryToolbar rhythm ------------- */
.buyerDeskMain .ngdDeskToolbar.buyerDeskToolbarRow{
  display:flex!important;flex-wrap:wrap!important;align-items:center!important;
  gap:8px!important;padding:10px!important;
}
.buyerDeskMain .buyerDeskToolbarRow .buyerFilterBtn,
.buyerDeskMain .buyerDeskToolbarRow .buyerQuickToggle{flex:0 0 auto!important;}
.buyerDeskMain .buyerDeskToolbarRow .buyerCertInput{flex:1 1 200px!important;min-width:170px!important;max-width:300px!important;}
.buyerDeskMain .buyerDeskToolbarRow #priceQuick{flex:0 0 auto!important;min-width:160px!important;}
.buyerDeskMain .buyerDeskToolbarRow .buyerDeskSort{margin-left:auto!important;flex:0 0 auto!important;min-width:190px!important;}

/* (d) results grid — FOUR up, with the seller's 1280px / 900px step-downs ------- */
#shopGrid.buyerDeskGrid{grid-template-columns:repeat(4,minmax(210px,1fr))!important;gap:14px!important;}
@media(max-width:1280px){
  #shopGrid.buyerDeskGrid{grid-template-columns:repeat(3,minmax(210px,1fr))!important;}
}
@media(max-width:900px){
  #shopGrid.buyerDeskGrid{grid-template-columns:1fr!important;}
  .buyerDeskMain .ngdDeskHero.buyerDeskHeroPanel{grid-template-columns:1fr!important;}
  .buyerDeskMain .buyerDeskHeroPanel .ngdDeskTitleActions{justify-content:flex-start;}
}

/* Distinct results ERROR state (never the empty state) -------------------------- */
#shopGrid .ngdDeskError{grid-column:1/-1;border:1px solid var(--a-line-2)!important;background:var(--a-surface-2)!important;}
#shopGrid .ngdDeskError h2{color:var(--a-ink)!important;}
#shopGrid .ngdDeskError p{color:var(--a-muted)!important;}
#shopGrid .ngdDeskError button{
  margin-top:12px;height:38px;padding:0 16px;border:1px solid var(--a-accent);border-radius:var(--a-radius-sm);
  background:var(--a-accent);color:var(--a-on-accent);font-weight:700;cursor:pointer;
}

/* =====================================================================================
   [2026-09-22] Buyer desk topbar control polish
   Fixes inconsistent/default browser buttons in the buyer header (especially Create Account)
   and normalises Menu / Search / Shortlist / Cart / Login / Create Account / Status / Help.
   ===================================================================================== */
.ngdDeskShell .ngdDeskTop,
.ngdDeskShell .buyerNivodaTop{
  --ngd-top-control-h:40px;
  gap:8px!important;
  align-items:center!important;
}

.ngdDeskShell .buyerDeskMenuBtn,
.ngdDeskShell .buyerShortlistTop,
.ngdDeskShell .buyerDeskCart,
.ngdDeskShell .buyerDeskAccount,
.ngdDeskShell .buyerDeskSignupTop,
.ngdDeskShell .buyerDeskStatusBtn,
.ngdDeskShell .buyerDeskHelp{
  appearance:none!important;
  -webkit-appearance:none!important;
  height:var(--ngd-top-control-h)!important;
  min-height:var(--ngd-top-control-h)!important;
  width:auto!important;
  min-width:0!important;
  box-sizing:border-box!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:7px!important;
  flex:0 0 auto!important;
  margin:0!important;
  padding:0 12px!important;
  border:1px solid transparent!important;
  border-radius:10px!important;
  background:transparent!important;
  color:var(--a-ink-2)!important;
  font:600 12.5px/1 Inter,Arial,sans-serif!important;
  letter-spacing:0!important;
  text-decoration:none!important;
  white-space:nowrap!important;
  cursor:pointer!important;
  box-shadow:none!important;
  transition:background .16s ease,border-color .16s ease,color .16s ease,box-shadow .16s ease,transform .16s ease!important;
}

.ngdDeskShell .buyerDeskMenuBtn:hover,
.ngdDeskShell .buyerShortlistTop:hover,
.ngdDeskShell .buyerDeskCart:hover,
.ngdDeskShell .buyerDeskAccount:hover,
.ngdDeskShell .buyerDeskStatusBtn:hover,
.ngdDeskShell .buyerDeskHelp:hover{
  background:var(--a-surface-2)!important;
  border-color:var(--a-line-2)!important;
  color:var(--a-ink)!important;
}

.ngdDeskShell .buyerDeskMenuBtn:active,
.ngdDeskShell .buyerShortlistTop:active,
.ngdDeskShell .buyerDeskCart:active,
.ngdDeskShell .buyerDeskAccount:active,
.ngdDeskShell .buyerDeskSignupTop:active,
.ngdDeskShell .buyerDeskStatusBtn:active,
.ngdDeskShell .buyerDeskHelp:active{
  transform:translateY(1px)!important;
}

/* Menu: compact, balanced hamburger + text. */
.ngdDeskShell .buyerDeskMenuBtn{
  padding:0 11px!important;
  border-color:var(--a-line-2)!important;
  background:var(--a-surface)!important;
}
.ngdDeskShell .buyerDeskMenuIcon{
  width:20px!important;
  height:14px!important;
  flex:0 0 20px!important;
  margin:0!important;
}
.ngdDeskShell .buyerDeskMenuIcon::before,
.ngdDeskShell .buyerDeskMenuIcon::after,
.ngdDeskShell .buyerDeskMenuIcon i{
  width:20px!important;
  height:1.5px!important;
  left:0!important;
  background:currentColor!important;
}
.ngdDeskShell .buyerDeskMenuIcon::before{top:0!important;}
.ngdDeskShell .buyerDeskMenuIcon i{top:6px!important;}
.ngdDeskShell .buyerDeskMenuIcon::after{bottom:0!important;}

/* Search: make the field and CTA feel like one control. */
.ngdDeskShell .ngdDeskTop .buyerDeskSearch,
.ngdDeskShell .buyerNivodaTop .buyerDeskSearch{
  height:44px!important;
  min-height:44px!important;
  padding:0 7px 0 14px!important;
  gap:8px!important;
  border-radius:11px!important;
  border:1px solid var(--a-line-2)!important;
  background:var(--a-surface-2)!important;
  box-shadow:none!important;
}
.ngdDeskShell .buyerDeskSearch input,
.ngdDeskShell .buyerDeskSearch #q{
  height:42px!important;
  min-width:0!important;
  padding:0!important;
  font-size:13px!important;
}
.ngdDeskShell .buyerSearchGo{
  appearance:none!important;
  -webkit-appearance:none!important;
  height:34px!important;
  min-height:34px!important;
  padding:0 15px!important;
  border:1px solid var(--a-accent)!important;
  border-radius:9px!important;
  background:var(--a-accent)!important;
  color:var(--a-on-accent,#fff)!important;
  font:700 12px/1 Inter,Arial,sans-serif!important;
  white-space:nowrap!important;
  cursor:pointer!important;
  box-shadow:none!important;
}
.ngdDeskShell .buyerSearchGo:hover{
  background:var(--a-accent-strong)!important;
  border-color:var(--a-accent-strong)!important;
}

/* Cart count: compact badge on the right, always vertically centered. */
.ngdDeskShell .buyerDeskCart b{
  order:2!important;
  min-width:19px!important;
  height:19px!important;
  padding:0 5px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  border-radius:999px!important;
  background:var(--a-accent)!important;
  color:#fff!important;
  font-size:10.5px!important;
  line-height:1!important;
}

/* Login account control: consistent avatar and no squeezed label. */
.ngdDeskShell .buyerDeskAccount{
  padding:0 10px!important;
}
.ngdDeskShell .buyerDeskAccount .buyerAvatar{
  width:24px!important;
  height:24px!important;
  min-width:24px!important;
  flex:0 0 24px!important;
  margin:0!important;
  border-radius:50%!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  background:var(--a-accent)!important;
  color:#fff!important;
  font-size:11px!important;
  font-weight:800!important;
  line-height:1!important;
}
.ngdDeskShell .buyerDeskAccountName{
  display:inline-block!important;
  white-space:nowrap!important;
}

/* Primary guest CTA — fixes the raw two-line browser-default button from the screenshot. */
.ngdDeskShell .buyerDeskSignupTop{
  padding:0 15px!important;
  border-color:var(--a-accent)!important;
  background:var(--a-accent)!important;
  color:var(--a-on-accent,#fff)!important;
  font-weight:700!important;
  white-space:nowrap!important;
}
.ngdDeskShell .buyerDeskSignupTop:hover{
  background:var(--a-accent-strong)!important;
  border-color:var(--a-accent-strong)!important;
  color:var(--a-on-accent,#fff)!important;
  box-shadow:0 5px 14px rgba(9,122,111,.14)!important;
}

/* Active header destinations: subtle teal state instead of a heavy button. */
.ngdDeskShell .buyerShortlistTop.active,
.ngdDeskShell .buyerDeskCart.active,
.ngdDeskShell .buyerDeskAccount.active,
.ngdDeskShell .buyerDeskStatusBtn[aria-expanded="true"]{
  background:var(--a-accent-soft)!important;
  border-color:rgba(9,122,111,.18)!important;
  color:var(--a-accent)!important;
}

/* Status icon remains compact and aligned to the common 40px control. */
.ngdDeskShell .buyerDeskStatusGlyph{
  width:20px!important;
  height:20px!important;
  min-width:20px!important;
  margin:0!important;
  border-radius:50%!important;
}

/* Help is intentionally a quiet utility control, not a black CTA. */
.ngdDeskShell .buyerDeskHelp{
  color:var(--a-ink-2)!important;
}

/* Keep the desktop row stable. Search is the only item allowed to shrink. */
@media (min-width:901px){
  .ngdDeskShell .ngdDeskTop .buyerDeskSearch,
  .ngdDeskShell .buyerNivodaTop .buyerDeskSearch{
    flex:1 1 360px!important;
    min-width:220px!important;
  }
  .ngdDeskShell .buyerDeskSignupTop,
  .ngdDeskShell .buyerDeskStatusBtn{
    flex:0 0 auto!important;
  }
}

/* Mid-size desktop: save horizontal space without breaking controls. */
@media (min-width:901px) and (max-width:1180px){
  .ngdDeskShell .buyerShortlistTop,
  .ngdDeskShell .buyerDeskCart,
  .ngdDeskShell .buyerDeskAccount,
  .ngdDeskShell .buyerDeskSignupTop,
  .ngdDeskShell .buyerDeskStatusBtn,
  .ngdDeskShell .buyerDeskHelp{
    padding-left:9px!important;
    padding-right:9px!important;
    font-size:12px!important;
  }
  .ngdDeskShell .buyerDeskHelp{display:none!important;}
}

/* Mobile/tablet: allow a clean two-row header instead of crushed/wrapped buttons. */
@media (max-width:900px){
  .ngdDeskShell .ngdDeskTop,
  .ngdDeskShell .buyerNivodaTop{
    display:flex!important;
    flex-wrap:wrap!important;
    gap:7px!important;
    padding:8px 10px!important;
  }
  .ngdDeskShell .ngdDeskTop .buyerDeskSearch,
  .ngdDeskShell .buyerNivodaTop .buyerDeskSearch{
    order:20!important;
    flex:1 0 100%!important;
    width:100%!important;
  }
  .ngdDeskShell .buyerDeskSignupTop{
    padding:0 12px!important;
  }
}

@media (max-width:560px){
  .ngdDeskShell .buyerShortlistTop span,
  .ngdDeskShell .buyerDeskHelp span,
  .ngdDeskShell .buyerDeskStatusBtn span:not(.buyerDeskStatusGlyph){
    position:absolute!important;
    width:1px!important;
    height:1px!important;
    padding:0!important;
    margin:-1px!important;
    overflow:hidden!important;
    clip:rect(0,0,0,0)!important;
    white-space:nowrap!important;
    border:0!important;
  }
  .ngdDeskShell .buyerShortlistTop,
  .ngdDeskShell .buyerDeskHelp,
  .ngdDeskShell .buyerDeskStatusBtn{
    width:40px!important;
    padding:0!important;
  }
}


/* =========================================================
   SIMPLE PUBLIC DIAMOND ENTRY — 2026-09-22
   Purpose: a first-time visitor should immediately understand
   how to browse diamonds without needing an account.
========================================================= */
.ngdSimpleMainHeader .hi{gap:18px!important;}
.ngdSimpleMainNav{gap:5px!important;}
.ngdSimpleMainNav button{white-space:nowrap!important;}
.ngdSimpleMainNav .ngdMainDiamondsBtn{
  background:var(--a-accent,#087f73)!important;
  color:#fff!important;
  border:1px solid var(--a-accent,#087f73)!important;
  border-radius:10px!important;
  padding:9px 16px!important;
  font-weight:750!important;
}
.ngdSimpleMainNav .ngdMainDiamondsBtn:hover,
.ngdSimpleMainNav .ngdMainDiamondsBtn.active{
  background:#066d63!important;
  color:#fff!important;
}
.ngdSimpleMainActions{flex-wrap:nowrap!important;}
.ngdMainCreateBtn{white-space:nowrap!important;}

.ngdSimpleHome{background:#fff;color:var(--a-ink,#111827);}
.ngdSimpleHero{padding:68px 0 54px;background:linear-gradient(180deg,#f7fbfb 0%,#fff 100%);border-bottom:1px solid var(--a-line,#e4e7ec);}
.ngdSimpleHeroGrid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(340px,.95fr);gap:56px;align-items:center;}
.ngdSimpleEyebrow{display:inline-flex;align-items:center;min-height:28px;padding:5px 10px;border-radius:999px;background:#e7f6f3;color:#087f73;font-size:12px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;}
.ngdSimpleHeroCopy h1{margin:18px 0 16px;max-width:780px;font-size:clamp(42px,5vw,68px);line-height:1.02;letter-spacing:-.045em;color:#101828;}
.ngdSimpleHeroCopy>p{max-width:720px;margin:0;color:#5f6b7a;font-size:18px;line-height:1.7;}
.ngdSimpleHeroActions{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:28px;}
.ngdSimpleHeroActions .btn{min-height:48px;padding:12px 22px!important;font-size:15px!important;}
.ngdBrowseDiamondsCta{min-width:190px;}
.ngdSimpleTrustLine{display:flex;gap:18px;flex-wrap:wrap;margin-top:22px;color:#344054;font-size:13px;font-weight:650;}
.ngdSimpleHeroVisual{position:relative;overflow:hidden;min-height:390px;border:1px solid #dce5e8;border-radius:24px;background:#eef4f5;box-shadow:0 20px 60px rgba(16,24,40,.09);}
.ngdSimpleHeroVisual>img{display:block;width:100%;height:390px;object-fit:cover;}
.ngdSimpleHeroVisualCard{position:absolute;left:18px;right:18px;bottom:18px;display:grid;grid-template-columns:1fr auto;gap:4px 16px;align-items:center;padding:16px 18px;border:1px solid rgba(255,255,255,.75);border-radius:16px;background:rgba(255,255,255,.94);backdrop-filter:blur(12px);box-shadow:0 10px 32px rgba(16,24,40,.12);}
.ngdSimpleHeroVisualCard b{font-size:16px;color:#101828;}
.ngdSimpleHeroVisualCard span{font-size:12px;color:#667085;}
.ngdSimpleHeroVisualCard button{grid-column:2;grid-row:1/3;border:0;background:#087f73;color:#fff;border-radius:10px;padding:10px 13px;font-weight:750;cursor:pointer;}

.ngdSimpleChoose,.ngdSimpleHow{padding:58px 0;}
.ngdSimpleChoose{background:#fff;}
.ngdSimpleHow{background:#f8fafb;border-top:1px solid #e6eaee;}
.ngdSimpleSectionHead{max-width:720px;margin-bottom:24px;}
.ngdSimpleSectionHead small{display:block;margin-bottom:7px;color:#087f73;font-weight:800;text-transform:uppercase;letter-spacing:.05em;}
.ngdSimpleSectionHead h2{margin:0 0 8px;font-size:32px;letter-spacing:-.025em;color:#101828;}
.ngdSimpleSectionHead p{margin:0;color:#667085;line-height:1.6;}
.ngdSimpleChoiceGrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;}
.ngdSimpleChoiceCard{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;text-align:left;padding:20px;border:1px solid #dfe5ea;border-radius:16px;background:#fff;color:#101828;cursor:pointer;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease;}
.ngdSimpleChoiceCard:hover{transform:translateY(-2px);border-color:#9bcfc7;box-shadow:0 12px 30px rgba(16,24,40,.08);}
.ngdSimpleChoiceIcon{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:#eef8f6;color:#087f73;font-size:20px;font-weight:800;}
.ngdSimpleChoiceCard b{display:block;margin-bottom:4px;font-size:16px;}
.ngdSimpleChoiceCard small{display:block;color:#667085;font-size:12px;line-height:1.45;}
.ngdSimpleChoiceCard i{font-style:normal;font-size:22px;color:#087f73;}
.ngdSimpleChoicePrimary{border-color:#b8dcd6;background:#f4fbfa;}
.ngdSimpleFeatured{padding-top:54px!important;padding-bottom:58px!important;border-top:1px solid #eef1f4;}
.ngdSimpleFeaturedHead{margin-bottom:22px;}
.ngdSimpleBrowseMore{display:flex;justify-content:center;margin-top:24px;}
.ngdSimpleSteps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;}
.ngdSimpleSteps article{padding:22px;border:1px solid #e1e6eb;border-radius:16px;background:#fff;}
.ngdSimpleSteps article>b{display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:#087f73;color:#fff;margin-bottom:14px;}
.ngdSimpleSteps h3{margin:0 0 7px;font-size:17px;color:#101828;}
.ngdSimpleSteps p{margin:0;color:#667085;line-height:1.55;font-size:13px;}

/* Buyer desk: clear Diamonds entry and less guest clutter. */
.buyerDeskDiamondsTop{
  display:inline-flex!important;align-items:center;justify-content:center!important;
  min-height:38px!important;padding:8px 14px!important;border:1px solid #087f73!important;
  border-radius:10px!important;background:#087f73!important;color:#fff!important;
  font:inherit!important;font-size:13px!important;font-weight:800!important;white-space:nowrap!important;cursor:pointer!important;
}
.buyerDeskDiamondsTop:hover,.buyerDeskDiamondsTop.active{background:#066d63!important;color:#fff!important;}

@media(max-width:1000px){
  .ngdSimpleHeroGrid{grid-template-columns:1fr;gap:30px;}
  .ngdSimpleHeroVisual{min-height:320px;}
  .ngdSimpleHeroVisual>img{height:320px;}
  .ngdSimpleChoiceGrid,.ngdSimpleSteps{grid-template-columns:1fr;}
}
@media(max-width:720px){
  .ngdSimpleHero{padding:42px 0 36px;}
  .ngdSimpleHeroCopy h1{font-size:40px;}
  .ngdSimpleHeroCopy>p{font-size:16px;}
  .ngdSimpleHeroVisualCard{grid-template-columns:1fr;}
  .ngdSimpleHeroVisualCard button{grid-column:auto;grid-row:auto;margin-top:8px;width:100%;}
  .ngdSimpleMainActions .ngdMainCreateBtn{display:none!important;}
  .buyerDeskDiamondsTop{padding:7px 10px!important;font-size:12px!important;}
}


/* =========================================================
   SIMPLE BROWSE V3 — forced visible primary inventory entry
   Cache-busted from index.html/bootstrap.js on 2026-09-22.
========================================================= */
.ngdDeskShell .buyerDeskDiamondsTop{
  appearance:none!important;
  -webkit-appearance:none!important;
  display:inline-flex!important;
  visibility:visible!important;
  opacity:1!important;
  align-items:center!important;
  justify-content:center!important;
  flex:0 0 auto!important;
  min-width:132px!important;
  height:40px!important;
  min-height:40px!important;
  padding:0 15px!important;
  margin:0!important;
  border:1px solid #087f73!important;
  border-radius:10px!important;
  background:#087f73!important;
  color:#fff!important;
  font:800 12.5px/1 Inter,Arial,sans-serif!important;
  white-space:nowrap!important;
  cursor:pointer!important;
  position:relative!important;
  z-index:2!important;
}
.ngdDeskShell .buyerDeskDiamondsTop:hover,
.ngdDeskShell .buyerDeskDiamondsTop.active{
  background:#066d63!important;
  border-color:#066d63!important;
  color:#fff!important;
}
@media (min-width:901px){
  .ngdDeskShell .ngdDeskTop .buyerDeskSearch,
  .ngdDeskShell .buyerNivodaTop .buyerDeskSearch{
    flex:1 1 280px!important;
    min-width:180px!important;
  }
}
@media (max-width:1180px) and (min-width:901px){
  .ngdDeskShell .buyerDeskDiamondsTop{
    min-width:116px!important;
    padding:0 11px!important;
    font-size:12px!important;
  }
}
@media (max-width:900px){
  .ngdDeskShell .buyerDeskDiamondsTop{
    order:2!important;
    min-width:auto!important;
    padding:0 12px!important;
  }
}


/* =========================================================
   SIMPLE BROWSE V4 — guaranteed visible Diamonds CTA.
========================================================= */
.ngdDeskShell .buyerDeskDiamondsTop,
.buyerDeskShell .buyerDeskDiamondsTop{
  display:inline-flex!important;
  visibility:visible!important;
  opacity:1!important;
  align-items:center!important;
  justify-content:center!important;
  flex:0 0 auto!important;
  min-width:104px!important;
  height:40px!important;
  min-height:40px!important;
  padding:0 16px!important;
  border:1px solid #06786e!important;
  border-radius:10px!important;
  background:#087f73!important;
  color:#fff!important;
  font-family:Inter,Arial,sans-serif!important;
  font-size:13px!important;
  font-weight:800!important;
  line-height:1!important;
  white-space:nowrap!important;
  cursor:pointer!important;
  order:0!important;
}
.ngdDeskShell .buyerDeskDiamondsTop:hover,
.ngdDeskShell .buyerDeskDiamondsTop.active,
.buyerDeskShell .buyerDeskDiamondsTop:hover,
.buyerDeskShell .buyerDeskDiamondsTop.active{
  background:#066d63!important;
  border-color:#066d63!important;
  color:#fff!important;
}
@media (min-width:901px){
  .ngdDeskShell .buyerDeskSearch,
  .buyerDeskShell .buyerDeskSearch{
    flex:1 1 320px!important;
    min-width:220px!important;
  }
}
@media (max-width:900px){
  .ngdDeskShell .buyerDeskDiamondsTop,
  .buyerDeskShell .buyerDeskDiamondsTop{
    min-width:92px!important;
    padding:0 12px!important;
  }
}


/* =========================================================
   NGD V5 · Public homepage browse-first CTA
   The public landing header must make diamond browsing obvious
   to a first-time visitor before login/account actions.
========================================================= */
.ngdHeader .ngdBrowseDiamondsBtn {
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 8px;
  min-height: 42px;
  padding: 0 16px;
  border-radius: 10px;
  white-space: nowrap;
  font-weight: 800;
  letter-spacing: -0.01em;
  flex: 0 0 auto;
}

.ngdHeader .ngdBrowseDiamondIcon {
  font-size: 14px;
  line-height: 1;
  transform: rotate(45deg);
  display: inline-block;
}

.ngdHomeHero .ngdHeroBrowseBtn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-weight: 800;
}

.ngdHomeHero .ngdHeroBrowseBtn > span {
  font-size: 14px;
}

.ngdHomeHero .ngdBrowseNote {
  margin: 14px 0 0;
  font-size: 13px;
  line-height: 1.5;
  opacity: .92;
}

@media (max-width: 1120px) {
  .ngdHeader .nav {
    gap: 2px;
  }
  .ngdHeader .ngdBrowseDiamondsBtn {
    padding-inline: 12px;
  }
}

@media (max-width: 900px) {
  .ngdHeader .ngdBrowseDiamondsBtn {
    order: 2;
    min-height: 40px;
  }
}


/* =========================================================
   NGD V6 · Public header final layout
   Three-column desktop header: brand | navigation | account.
   Keeps every control on one row and makes Diamonds the clear
   primary catalogue entry without stretching across the header.
========================================================= */
.ngdHeader .hi {
  display: grid !important;
  grid-template-columns: auto minmax(0, 1fr) auto !important;
  align-items: center !important;
  gap: 24px !important;
  min-height: 72px !important;
  padding: 9px 0 !important;
}

.ngdHeader .ngdLogo {
  min-width: 142px !important;
  width: auto !important;
  flex: 0 0 auto !important;
}

.ngdHeader .ngdPublicNav {
  grid-column: 2 !important;
  grid-row: 1 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
  gap: 4px !important;
  min-width: 0 !important;
  padding: 0 !important;
  overflow: visible !important;
}

.ngdHeader .ngdPublicNav > button {
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;
  min-height: 38px !important;
  padding: 0 11px !important;
  border: 1px solid transparent !important;
  border-radius: 9px !important;
  background: transparent !important;
  color: var(--a-ink-2) !important;
  font-size: 12.5px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  white-space: nowrap !important;
  box-shadow: none !important;
}

.ngdHeader .ngdPublicNav > button:hover,
.ngdHeader .ngdPublicNav > button.active:not(.ngdTopDiamondsBtn) {
  background: var(--a-accent-soft) !important;
  color: var(--a-accent) !important;
  border-color: transparent !important;
}

.ngdHeader .ngdPublicNav .ngdTopDiamondsBtn {
  gap: 8px !important;
  min-width: 122px !important;
  padding: 0 15px !important;
  margin-right: 5px !important;
  background: var(--a-accent) !important;
  border-color: var(--a-accent) !important;
  color: #fff !important;
  font-weight: 800 !important;
}

.ngdHeader .ngdPublicNav .ngdTopDiamondsBtn:hover,
.ngdHeader .ngdPublicNav .ngdTopDiamondsBtn.active {
  background: #066d63 !important;
  border-color: #066d63 !important;
  color: #fff !important;
}

.ngdTopDiamondSvg {
  width: 17px !important;
  height: 17px !important;
  flex: 0 0 17px !important;
  fill: none !important;
  stroke: currentColor !important;
  stroke-width: 1.7 !important;
  stroke-linecap: round !important;
  stroke-linejoin: round !important;
}

.ngdHeader .buyerHeaderActions {
  grid-column: 3 !important;
  grid-row: 1 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: flex-end !important;
  gap: 7px !important;
  width: auto !important;
  min-width: max-content !important;
  flex-wrap: nowrap !important;
}

.ngdHeader .buyerHeaderActions .btn,
.ngdHeader .buyerHeaderActions .cart,
.ngdHeader .buyerStatusBtn {
  min-height: 38px !important;
  padding: 0 12px !important;
  border-radius: 9px !important;
  font-size: 12px !important;
  font-weight: 750 !important;
  line-height: 1 !important;
  white-space: nowrap !important;
}

.ngdHeader .ngdLoginBtn {
  background: #fff !important;
  color: var(--a-ink-2) !important;
  border: 1px solid var(--a-line-2) !important;
}

.ngdHeader .ngdLoginBtn:hover {
  border-color: var(--a-accent) !important;
  color: var(--a-accent) !important;
}

.ngdHeader .ngdCreateBtn {
  background: var(--a-accent) !important;
  border-color: var(--a-accent) !important;
  color: #fff !important;
}

.ngdHeader .ngdCreateBtn:hover {
  background: #066d63 !important;
  border-color: #066d63 !important;
}

/* Retire the old standalone V5 CTA if stale markup is ever restored. */
.ngdHeader > .ngdBrowseDiamondsBtn,
.ngdHeader .hi > .ngdBrowseDiamondsBtn {
  display: none !important;
}

@media (max-width: 1180px) and (min-width: 901px) {
  .ngdHeader .hi {
    grid-template-columns: auto minmax(0, 1fr) auto !important;
    gap: 12px !important;
  }
  .ngdHeader .ngdLogo {
    min-width: 108px !important;
  }
  .ngdHeader .ngdLogo small {
    display: none !important;
  }
  .ngdHeader .ngdPublicNav {
    grid-column: 2 !important;
    grid-row: 1 !important;
    justify-content: center !important;
    overflow: visible !important;
    padding: 0 !important;
  }
  .ngdHeader .ngdPublicNav > button {
    padding-inline: 8px !important;
    font-size: 11.5px !important;
  }
  .ngdHeader .ngdPublicNav .ngdTopDiamondsBtn {
    min-width: 108px !important;
    padding-inline: 11px !important;
  }
  .ngdHeader .buyerHeaderActions {
    grid-column: 3 !important;
    grid-row: 1 !important;
    justify-content: flex-end !important;
  }
  .ngdHeader .buyerHeaderActions .btn,
  .ngdHeader .buyerHeaderActions .cart,
  .ngdHeader .buyerStatusBtn {
    padding-inline: 9px !important;
    font-size: 11.5px !important;
  }
}

@media (max-width: 900px) {
  .ngdHeader .hi {
    display: grid !important;
    grid-template-columns: auto minmax(0, 1fr) auto !important;
    gap: 8px !important;
    min-height: 64px !important;
    padding: 8px 0 !important;
  }
  .ngdHeader .ngdPublicNav {
    display: none !important;
  }
  .ngdHeader .buyerHeaderActions {
    grid-column: 2 !important;
    grid-row: 1 !important;
    min-width: 0 !important;
    width: auto !important;
    justify-content: flex-end !important;
  }
  .ngdHeader .ngdMobileNav {
    display: block !important;
    grid-column: 3 !important;
    grid-row: 1 !important;
  }
}

@media (max-width: 560px) {
  .ngdHeader .buyerHeaderActions .ngdLoginBtn {
    display: none !important;
  }
  .ngdHeader .buyerHeaderActions .ngdCreateBtn {
    min-height: 34px !important;
    padding-inline: 10px !important;
    font-size: 11px !important;
  }
}

/* ========================================================================== */
/* DIAMVO BUYER DRAWER — FINAL OVERRIDE                                        */
/* Desktop + mobile: closed by default; opens only after Menu click.           */
/* ========================================================================== */

/* Remove every legacy permanent-sidebar offset. */
html body #app:has(.buyerNivodaSideMenu),
html body #app:has(.ngdDeskShell.ngdSideCollapsed),
html body #app {
  padding-left:0 !important;
}

html body .ngdDeskShell,
html body .ngdDeskShell.ngdSideCollapsed {
  padding-left:0 !important;
}

html body .ngdDeskShell .ngdDeskTop,
html body .ngdDeskShell .buyerNivodaTop,
html body .ngdDeskShell.ngdSideCollapsed .ngdDeskTop,
html body .ngdDeskShell.ngdSideCollapsed .buyerNivodaTop {
  left:0 !important;
  right:0 !important;
  width:auto !important;
}

/* Drawer is never a permanent rail. */
html body #app .ngdDeskShell .buyerNivodaSideMenu {
  position:fixed !important;
  inset:0 auto 0 0 !important;
  left:0 !important;
  top:0 !important;
  width:min(312px, 90vw) !important;
  max-width:312px !important;
  height:100dvh !important;
  z-index:5001 !important;
  display:flex !important;
  flex-direction:column !important;
  overflow-y:auto !important;
  overflow-x:hidden !important;
  overscroll-behavior:contain !important;
  background:#fff !important;
  border:0 !important;
  border-right:1px solid #e5e9ef !important;
  border-radius:0 16px 16px 0 !important;
  box-shadow:18px 0 52px rgba(15,23,42,.18) !important;
  transform:translate3d(-105%,0,0) !important;
  transition:transform .24s cubic-bezier(.2,.7,.2,1), visibility .24s ease !important;
  visibility:hidden !important;
  pointer-events:none !important;
}

html body #app .ngdDeskShell .buyerNivodaSideMenu.active {
  left:0 !important;
  transform:translate3d(0,0,0) !important;
  visibility:visible !important;
  pointer-events:auto !important;
}

/* Backdrop must work on desktop too. */
html body #app .ngdDeskShell .buyerSideBackdrop {
  position:fixed !important;
  inset:0 !important;
  display:block !important;
  z-index:5000 !important;
  margin:0 !important;
  background:rgba(15,23,42,.30) !important;
  backdrop-filter:blur(1.5px) !important;
  -webkit-backdrop-filter:blur(1.5px) !important;
  opacity:0 !important;
  visibility:hidden !important;
  pointer-events:none !important;
  transition:opacity .18s ease, visibility .18s ease !important;
}

html body #app .ngdDeskShell .buyerSideBackdrop.active {
  opacity:1 !important;
  visibility:visible !important;
  pointer-events:auto !important;
}

/* Proper menu head: no blank 90px space. */
html body #app .ngdDeskShell .buyerNivodaSideMenu .buyerSideHead {
  position:sticky !important;
  top:0 !important;
  z-index:3 !important;
  min-height:64px !important;
  height:64px !important;
  flex:0 0 64px !important;
  display:flex !important;
  align-items:center !important;
  justify-content:space-between !important;
  gap:12px !important;
  padding:10px 14px !important;
  margin:0 !important;
  background:rgba(255,255,255,.98) !important;
  border-bottom:1px solid #e8ecf1 !important;
  box-sizing:border-box !important;
}

html body #app .ngdDeskShell .buyerNivodaSideMenu .buyerSideBrand {
  display:inline-flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  width:auto !important;
  height:40px !important;
  min-width:0 !important;
  margin:0 !important;
  padding:4px 2px !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  cursor:pointer !important;
}

html body #app .ngdDeskShell .buyerNivodaSideMenu .buyerSideBrand::before {
  content:none !important;
  display:none !important;
}

html body #app .ngdDeskShell .buyerSideNivodaBrand,
html body #app .ngdDeskShell .buyerSideBrand .ngdBrandDiamond,
html body #app .ngdDeskShell .buyerSideBrand .ngdBrandWord {
  display:none !important;
}

html body #app .ngdDeskShell .buyerSideBrandLogo {
  display:block !important;
  width:auto !important;
  height:28px !important;
  max-width:130px !important;
  object-fit:contain !important;
}

html body #app .ngdDeskShell .buyerNivodaSideMenu .buyerSideHead .buyerSideCloseBtn,
html body #app .ngdDeskShell .buyerNivodaSideMenu .buyerSideHead button[data-action="menu-close"] {
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:38px !important;
  height:38px !important;
  min-width:38px !important;
  margin:0 !important;
  padding:0 !important;
  border:1px solid #e3e8ef !important;
  border-radius:10px !important;
  background:#f7f9fb !important;
  color:#18243a !important;
  box-shadow:none !important;
  font-size:24px !important;
  line-height:1 !important;
  cursor:pointer !important;
}

html body #app .ngdDeskShell .buyerNivodaSideMenu .buyerSideHead .buyerSideCloseBtn:hover {
  background:#eef3f5 !important;
  color:#087d6d !important;
  border-color:#d9e4e3 !important;
}

/* Compact, cleaner section rhythm. */
html body #app .ngdDeskShell .buyerNivodaSideMenu section {
  flex:0 0 auto !important;
  padding:12px 12px 7px !important;
  margin:0 !important;
  border:0 !important;
}

html body #app .ngdDeskShell .buyerNivodaSideMenu section + section {
  border-top:1px solid #edf0f4 !important;
}

html body #app .ngdDeskShell .buyerNivodaSideMenu section h4 {
  margin:0 8px 8px !important;
  padding:0 !important;
  color:#657287 !important;
  font-size:10px !important;
  font-weight:750 !important;
  line-height:1.3 !important;
  letter-spacing:.08em !important;
  text-transform:uppercase !important;
}

html body #app .ngdDeskShell .buyerNivodaSideMenu section > a {
  display:flex !important;
  align-items:center !important;
  gap:10px !important;
  min-height:42px !important;
  margin:2px 0 !important;
  padding:6px 9px !important;
  border:1px solid transparent !important;
  border-radius:10px !important;
  background:transparent !important;
  color:#3d4b60 !important;
  box-shadow:none !important;
  font-size:13px !important;
  font-weight:600 !important;
  line-height:1.2 !important;
  text-decoration:none !important;
}

html body #app .ngdDeskShell .buyerNivodaSideMenu section > a > i {
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  width:30px !important;
  height:30px !important;
  min-width:30px !important;
  flex:0 0 30px !important;
  margin:0 !important;
  border:1px solid #e1e6ed !important;
  border-radius:8px !important;
  background:#f6f8fa !important;
  color:#68778d !important;
  font-size:13px !important;
  font-style:normal !important;
  line-height:1 !important;
}

html body #app .ngdDeskShell .buyerNivodaSideMenu section > a:hover {
  background:#f6f9f9 !important;
  color:#18243a !important;
  border-color:#eef1f4 !important;
}

html body #app .ngdDeskShell .buyerNivodaSideMenu section > a.active {
  background:#e5f4f1 !important;
  color:#087d6d !important;
  border-color:#d6ebe7 !important;
  box-shadow:inset 3px 0 0 #087d6d !important;
  font-weight:700 !important;
}

html body #app .ngdDeskShell .buyerNivodaSideMenu section > a.active > i {
  background:#087d6d !important;
  border-color:#087d6d !important;
  color:#fff !important;
}

/* Guest note: no duplicated Login/Create account buttons. */
html body #app .ngdDeskShell .buyerSideGuestNote {
  flex:0 0 auto !important;
  display:grid !important;
  grid-template-columns:34px minmax(0,1fr) !important;
  align-items:center !important;
  gap:10px !important;
  margin-top:auto !important;
  padding:12px 14px !important;
  background:#fafbfc !important;
  border-top:1px solid #e8ecf1 !important;
}

html body #app .ngdDeskShell .buyerSideGuestNote .buyerAvatar {
  width:32px !important;
  height:32px !important;
  min-width:32px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
  border-radius:50% !important;
  background:#087d6d !important;
  color:#fff !important;
  font-size:12px !important;
  font-weight:750 !important;
}

html body #app .ngdDeskShell .buyerSideGuestNote b {
  display:block !important;
  color:#18243a !important;
  font-size:12.5px !important;
  line-height:1.25 !important;
}

html body #app .ngdDeskShell .buyerSideGuestNote small {
  display:block !important;
  margin-top:2px !important;
  color:#6b7789 !important;
  font-size:10.5px !important;
  line-height:1.35 !important;
}

/* Logged-in user card remains neat and usable. */
html body #app .ngdDeskShell .buyerSideUser:not(.buyerSideGuest) {
  flex:0 0 auto !important;
  margin:10px 12px 12px !important;
  padding:10px !important;
  border:1px solid #e6eaf0 !important;
  border-radius:11px !important;
  background:#f8fafb !important;
}

/* The drawer controls itself at every breakpoint. */
@media (min-width:901px) {
  html body #app .ngdDeskShell .buyerSideBackdrop { display:block !important; }
  html body #app .ngdDeskShell .buyerDeskMenuBtn { display:inline-flex !important; }
  html body #app .ngdDeskShell .buyerDeskLogo { display:inline-flex !important; }
  html body #app .ngdDeskShell .ngdDiamondTabs { display:none !important; }
  html body #app .ngdDeskShell { padding-top:62px !important; }
}

@media (max-width:900px) {
  html body #app .ngdDeskShell .buyerNivodaSideMenu {
    width:min(300px, 92vw) !important;
    max-width:300px !important;
  }
}

@media (prefers-reduced-motion:reduce) {
  html body #app .ngdDeskShell .buyerNivodaSideMenu,
  html body #app .ngdDeskShell .buyerSideBackdrop {
    transition:none !important;
  }
}


/* =========================================================
   DIAMVO BUYER DESK — OFFICIAL HEADER LOGO FIX
   Use the real brand SVG directly; never draw/rebuild the wordmark.
========================================================= */
html body #app .ngdDeskShell .buyerDeskBrandButton {
  appearance:none !important;
  -webkit-appearance:none !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:flex-start !important;
  flex:0 0 118px !important;
  width:118px !important;
  min-width:118px !important;
  max-width:118px !important;
  height:40px !important;
  min-height:40px !important;
  padding:0 2px !important;
  margin:0 !important;
  border:0 !important;
  border-radius:0 !important;
  background:transparent !important;
  box-shadow:none !important;
  overflow:visible !important;
  cursor:pointer !important;
}

html body #app .ngdDeskShell .buyerDeskBrandButton::before,
html body #app .ngdDeskShell .buyerDeskBrandButton::after {
  content:none !important;
  display:none !important;
}

html body #app .ngdDeskShell .buyerDeskBrandLogo {
  display:block !important;
  width:112px !important;
  max-width:112px !important;
  height:31px !important;
  max-height:31px !important;
  object-fit:contain !important;
  object-position:left center !important;
  flex:0 0 auto !important;
  margin:0 !important;
  padding:0 !important;
}

/* Keep a clean gap between the official logo and Diamonds CTA. */
html body #app .ngdDeskShell .buyerDeskBrandButton + .buyerDeskDiamondsTop {
  margin-left:2px !important;
}

@media (max-width:1180px) and (min-width:901px) {
  html body #app .ngdDeskShell .buyerDeskBrandButton {
    flex-basis:102px !important;
    width:102px !important;
    min-width:102px !important;
    max-width:102px !important;
  }
  html body #app .ngdDeskShell .buyerDeskBrandLogo {
    width:96px !important;
    max-width:96px !important;
    height:28px !important;
    max-height:28px !important;
  }
}

@media (max-width:900px) {
  html body #app .ngdDeskShell .buyerDeskBrandButton {
    flex-basis:96px !important;
    width:96px !important;
    min-width:96px !important;
    max-width:96px !important;
  }
  html body #app .ngdDeskShell .buyerDeskBrandLogo {
    width:90px !important;
    max-width:90px !important;
    height:27px !important;
    max-height:27px !important;
  }
}
/* DIAMVO HEADER ACTION BUTTONS */

.buyerTopActionBtn,
.buyerDeskSignupTop {
  height: 40px !important;
  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  padding: 0 18px !important;

  border: 1px solid #087f70 !important;
  border-radius: 9px !important;

  background: #087f70 !important;
  color: #ffffff !important;

  font-size: 13px !important;
  font-weight: 700 !important;
  line-height: 1 !important;

  white-space: nowrap !important;
  cursor: pointer !important;

  transition: all 0.18s ease !important;
}

.buyerTopActionBtn:hover,
.buyerDeskSignupTop:hover {
  background: #06695e !important;
  border-color: #06695e !important;
  transform: translateY(-1px) !important;
}

/* Login secondary style */

.buyerDeskLoginTop {
  background: #ffffff !important;
  color: #087f70 !important;
}

.buyerDeskLoginTop:hover {
  background: #edf8f6 !important;
  color: #06695e !important;
}

/* Header spacing */

.ngdDeskTop .buyerDeskCart,
.ngdDeskTop .buyerDeskLoginTop,
.ngdDeskTop .buyerDeskAccount,
.ngdDeskTop .buyerDeskSignupTop {
  flex: 0 0 auto !important;
  margin: 0 !important;
}
/* CART BUTTON - SAME PREMIUM BOUNDARY AS LOGIN */

.ngdDeskTop .buyerDeskCart.buyerTopActionBtn {
  height: 40px !important;

  display: inline-flex !important;
  align-items: center !important;
  justify-content: center !important;

  padding: 0 18px !important;

  background: #ffffff !important;
  color: #087f70 !important;

  border: 1px solid #087f70 !important;
  border-radius: 9px !important;

  font-size: 13px !important;
  font-weight: 700 !important;

  line-height: 1 !important;
  white-space: nowrap !important;

  box-shadow: none !important;

  cursor: pointer !important;
}

.ngdDeskTop .buyerDeskCart.buyerTopActionBtn:hover {
  background: #edf8f6 !important;
  border-color: #06695e !important;
  color: #06695e !important;
}

.ngdDeskTop .buyerDeskCart.buyerTopActionBtn.active {
  background: #edf8f6 !important;
  border-color: #087f70 !important;
  color: #087f70 !important;
}
/* =============================================================================
   [ui] BUYER DESK CARD — OWNER REFERENCE GRID CARD (presentation only)
   Rebuilds .buyerNivodaStoneCard to the owner-supplied reference: flat white card, 1px hairline, 10px
   radius, NO shadow and NO hover lift; a square flat-grey media stage with the stone contained (never
   cropped); then cert lab / 2-line title / four spec cells / teal quality tags / supplier / two price rows,
   separated by hairline dividers.
   The card markup now uses its OWN .buyerRef* class names, so none of the earlier layered !important card
   rules in this sheet (or in b2b-theme.css / role-premium.css, which style .buyerStoneMedia, .buyerStoneBody,
   .buyerStoneActions, .buyerStoneSpecGrid, .buyerStonePricePanel, .buyerStoneBuy …) reach it any more — the
   look is defined once, here. The ROOT class .buyerNivodaStoneCard is kept because app.js counts rendered
   results with it, and .buyerBulkCheck / .bulkDiamondCheck are kept because the bulk-select wiring uses them.
   No id, data-action, data-id, data-field or state class is renamed, so filters / search / sort / bulk
   select / cart behave exactly as before, and the grid keeps its 4-up step-downs (set further up).
   Buyer-only controls (bulk select, Save, RFQ, Add to cart) are NOT in the resting card: they sit in a
   hover/focus-revealed strip over the media. opacity (not display/visibility) is used so they stay in the
   tab order and reveal themselves on focus; on touch/narrow viewports they are always visible.
   ============================================================================= */
#shopGrid .buyerNivodaStoneCard.buyerRefCard{
  --a-ref-disc:#6D4AFF;            /* reference discount violet; only used by .buyerRefDisc */
  --a-ref-stage:#D8D8DA;           /* reference media-stage grey */
  display:flex!important;flex-direction:column!important;min-width:0!important;
  background:#fff!important;border:1px solid var(--a-line)!important;border-radius:10px!important;
  box-shadow:none!important;overflow:hidden!important;
  transition:border-color .16s ease!important;
}
#shopGrid .buyerNivodaStoneCard.buyerRefCard:hover,
#shopGrid .buyerNivodaStoneCard.buyerRefCard:focus-within{
  transform:none!important;box-shadow:none!important;border-color:var(--a-line-2)!important;
}

/* ---- media stage: ~1:1, flat grey, stone contained -------------------------- */
#shopGrid .buyerRefCard .buyerRefStage{position:relative!important;width:100%!important;}
#shopGrid .buyerRefCard .buyerRefMedia{
  position:relative!important;display:block!important;width:100%!important;height:auto!important;
  min-height:0!important;aspect-ratio:1/1!important;overflow:hidden!important;
  background:var(--a-ref-stage)!important;border:0!important;border-bottom:1px solid var(--a-line)!important;
  cursor:pointer!important;
}
#shopGrid .buyerRefCard .buyerRefMedia:focus-visible{outline:2px solid var(--a-accent)!important;outline-offset:-3px!important;}
#shopGrid .buyerRefCard .buyerRefImg{
  position:absolute!important;inset:0!important;width:100%!important;height:100%!important;
  object-fit:contain!important;object-position:center!important;padding:10px!important;
  background:transparent!important;transition:opacity .15s ease!important;
}
#shopGrid .buyerRefCard .buyerRefNoMedia{
  position:absolute!important;inset:0!important;display:grid!important;place-items:center!important;
  background:var(--a-ref-stage)!important;color:#5B6069!important;font-size:12px!important;font-weight:600!important;
}

/* top-left Natural / Lab pill (omitted entirely when the row has no diamond type) */
#shopGrid .buyerRefCard .buyerRefType{
  position:absolute!important;top:10px!important;left:10px!important;z-index:5!important;
  padding:3px 10px!important;border-radius:999px!important;background:#fff!important;
  color:var(--a-ink)!important;font-size:11px!important;font-weight:700!important;line-height:1.45!important;
  box-shadow:0 1px 2px rgba(11,18,32,.10)!important;
}

/* bottom-left 360 chip (only when the stone really has a video) */
#shopGrid .buyerRefCard .buyerRef360{
  position:absolute!important;left:10px!important;bottom:10px!important;z-index:5!important;
  width:26px!important;height:26px!important;display:grid!important;place-items:center!important;
  border-radius:50%!important;background:#fff!important;color:var(--a-ink-2)!important;
  font-size:9px!important;font-weight:800!important;letter-spacing:.01em!important;
  box-shadow:0 1px 3px rgba(11,18,32,.16)!important;
}

/* bottom-centre carousel dots — one per medium the stone actually has */
#shopGrid .buyerRefCard .buyerRefDots{
  position:absolute!important;left:50%!important;bottom:12px!important;z-index:5!important;
  transform:translateX(-50%)!important;display:flex!important;align-items:center!important;gap:5px!important;
}
#shopGrid .buyerRefCard .buyerRefDots i{
  width:6px!important;height:6px!important;border-radius:50%!important;
  background:rgba(11,18,32,.26)!important;
}
#shopGrid .buyerRefCard .buyerRefDots i.on{background:#fff!important;box-shadow:0 0 0 1px rgba(11,18,32,.16)!important;}

/* hover 360 preview (app.js start360Preview appends .diamond360Crop into the stage) */
#shopGrid .buyerRefCard .buyerRefMedia .diamond360Crop{
  position:absolute!important;inset:0!important;z-index:3!important;overflow:hidden!important;
  background:var(--a-ref-stage)!important;
}
#shopGrid .buyerRefCard .buyerRefMedia .diamond360Crop iframe.diamond360Frame{
  position:absolute!important;left:0!important;top:0!important;width:100%!important;
  height:calc(100% + 34px)!important;max-width:none!important;max-height:none!important;
  border:0!important;margin:0!important;padding:0!important;background:var(--a-ref-stage)!important;
}
#shopGrid .buyerRefCard .buyerRefMedia .diamond360Crop::after{
  content:""!important;position:absolute!important;left:0!important;right:0!important;bottom:0!important;
  height:26px!important;background:var(--a-ref-stage)!important;pointer-events:none!important;z-index:4!important;
}

/* ---- buyer controls: revealed on hover / keyboard focus --------------------- */
#shopGrid .buyerRefCard .buyerRefTools{
  position:absolute!important;top:8px!important;right:8px!important;z-index:7!important;
  display:flex!important;align-items:center!important;gap:6px!important;
  opacity:0!important;pointer-events:none!important;transition:opacity .14s ease!important;
}
/* [ui] The buy row is in NORMAL FLOW under the card body — it must never sit on the media.
   It used to be absolutely positioned across the bottom of the media stage with a 44% gradient, so it
   cropped the stone and, on a 360 listing, cut into the video. The stone image is the product; nothing
   covers it. In flow it is also always visible (no hover needed), so it works on touch and sits in
   keyboard reading order, and the card height is stable because the space is permanent. */
#shopGrid .buyerRefCard .buyerRefBuyWrap{
  padding:0 14px 14px!important;
  opacity:1!important;pointer-events:auto!important;
}
#shopGrid .buyerRefCard:hover .buyerRefTools,
#shopGrid .buyerRefCard:focus-within .buyerRefTools{opacity:1!important;pointer-events:auto!important;}
/* a stone already picked for a bulk action keeps its checkbox visible after the pointer leaves */
#shopGrid .buyerRefCard .buyerRefTools:has(input:checked){opacity:1!important;pointer-events:auto!important;}

#shopGrid .buyerRefCard .buyerRefSelect{
  background:#fff!important;border-radius:6px!important;padding:2px!important;
  box-shadow:0 1px 3px rgba(11,18,32,.16)!important;
}
#shopGrid .buyerRefCard .buyerRefTool{
  height:30px!important;min-height:30px!important;padding:0 12px!important;
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  border:1px solid var(--a-line-2)!important;border-radius:999px!important;background:#fff!important;
  color:var(--a-ink-2)!important;font:700 11.5px/1 Inter,Arial,sans-serif!important;
  white-space:nowrap!important;cursor:pointer!important;box-shadow:0 1px 3px rgba(11,18,32,.14)!important;
}
#shopGrid .buyerRefCard .buyerRefTool:hover{border-color:var(--a-accent)!important;color:var(--a-accent)!important;}
#shopGrid .buyerRefCard .buyerRefBuy{
  width:100%!important;min-height:34px!important;padding:7px 10px!important;
  border:1px solid var(--a-accent)!important;border-radius:8px!important;
  background:var(--a-accent)!important;color:var(--a-on-accent)!important;
  font:700 12px/1.25 Inter,Arial,sans-serif!important;cursor:pointer!important;
}
#shopGrid .buyerRefCard .buyerRefBuy:hover{background:var(--a-accent-strong)!important;border-color:var(--a-accent-strong)!important;}
#shopGrid .buyerRefCard .buyerRefBuy[disabled]{
  background:var(--a-surface-2)!important;border-color:var(--a-line-2)!important;
  color:var(--a-muted)!important;cursor:not-allowed!important;
}

/* ---- body ------------------------------------------------------------------- */
#shopGrid .buyerRefCard .buyerRefBody{display:block!important;padding:14px!important;background:#fff!important;}

/* 1. cert lab — plain grey line, no pill (absent => the line is not rendered at all) */
#shopGrid .buyerRefCard .buyerRefLab{
  margin:0 0 6px!important;padding:0!important;color:var(--a-muted)!important;
  font-size:12px!important;font-weight:600!important;
}

/* 2. title — 17px/700, clamped to two lines, keyboard-operable (it opens the stone) */
#shopGrid .buyerRefCard .buyerRefTitle{
  margin:0!important;padding:0!important;color:var(--a-ink)!important;
  font-size:17px!important;font-weight:700!important;line-height:1.3!important;letter-spacing:-.01em!important;
}
#shopGrid .buyerRefCard .buyerRefTitleBtn{
  display:-webkit-box!important;-webkit-line-clamp:2!important;-webkit-box-orient:vertical!important;
  overflow:hidden!important;width:100%!important;min-height:44px!important;margin:0!important;padding:0!important;
  border:0!important;background:none!important;box-shadow:none!important;text-align:left!important;
  color:inherit!important;font:inherit!important;cursor:pointer!important;
}
#shopGrid .buyerRefCard .buyerRefTitleBtn:hover{color:var(--a-accent)!important;}
#shopGrid .buyerRefCard .buyerRefTitleBtn:focus-visible{outline:2px solid var(--a-accent)!important;outline-offset:2px!important;}

/* 3. specs — one row, up to four cells (T / D / R / M), each only when the value exists */
#shopGrid .buyerRefCard .buyerRefSpecs{
  display:flex!important;align-items:baseline!important;justify-content:space-between!important;
  gap:8px!important;margin:10px 0 0!important;padding:10px 0 0!important;
  border-top:1px solid var(--a-line)!important;
}
#shopGrid .buyerRefCard .buyerRefSpec{
  display:flex!important;align-items:baseline!important;gap:3px!important;
  flex:0 1 auto!important;min-width:0!important;
}
#shopGrid .buyerRefCard .buyerRefSpec small{
  flex:0 0 auto!important;color:var(--a-muted)!important;font-size:12px!important;font-weight:600!important;
}
#shopGrid .buyerRefCard .buyerRefSpec b{
  min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;
  color:var(--a-ink)!important;font-size:12px!important;font-weight:700!important;
}

/* 4. quality tags — teal, bullet-separated. The row is only rendered when the stone HAS attributes. */
#shopGrid .buyerRefCard .buyerRefTags{
  display:flex!important;flex-wrap:wrap!important;align-items:center!important;gap:0!important;
  margin:9px 0 0!important;padding:9px 0 0!important;border-top:1px solid var(--a-line)!important;
}
#shopGrid .buyerRefCard .buyerRefTags span{
  padding:0!important;border:0!important;background:none!important;
  color:var(--a-accent)!important;font-size:12px!important;font-weight:650!important;
}
#shopGrid .buyerRefCard .buyerRefTags span+span::before{
  content:"\2022"!important;margin:0 6px!important;color:var(--a-line-2)!important;font-weight:700!important;
}

/* 5. supplier — initials avatar + name, location right-aligned on the same row */
#shopGrid .buyerRefCard .buyerRefSupplier{
  display:flex!important;align-items:center!important;gap:8px!important;
  margin:9px 0 0!important;padding:9px 0 0!important;border-top:1px solid var(--a-line)!important;
}
#shopGrid .buyerRefCard .buyerRefAvatar{
  flex:0 0 auto!important;width:26px!important;height:26px!important;border-radius:50%!important;
  display:grid!important;place-items:center!important;background:var(--a-surface-2)!important;
  border:1px solid var(--a-line)!important;color:var(--a-ink-2)!important;
  font-size:10.5px!important;font-weight:700!important;line-height:1!important;
}
#shopGrid .buyerRefCard .buyerRefSupplier b{
  min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;
  color:var(--a-ink)!important;font-size:13px!important;font-weight:700!important;
}
#shopGrid .buyerRefCard .buyerRefLoc{
  flex:0 0 auto!important;margin-left:auto!important;white-space:nowrap!important;
  color:var(--a-muted)!important;font-size:12px!important;font-weight:500!important;
}

/* 6. price — row A label + discount (only a stored one), row B price/ct + total */
#shopGrid .buyerRefCard .buyerRefPrice{
  margin:10px 0 0!important;padding:10px 0 0!important;border-top:1px solid var(--a-line)!important;
}
#shopGrid .buyerRefCard .buyerRefPriceTop,
#shopGrid .buyerRefCard .buyerRefPriceMain{
  display:flex!important;align-items:baseline!important;justify-content:space-between!important;gap:8px!important;
}
#shopGrid .buyerRefCard .buyerRefPriceMain{margin-top:3px!important;}
#shopGrid .buyerRefCard .buyerRefPriceLabel{color:var(--a-muted)!important;font-size:12px!important;font-weight:500!important;}
#shopGrid .buyerRefCard .buyerRefDisc{color:var(--a-ref-disc)!important;font-size:13px!important;font-weight:700!important;}
#shopGrid .buyerRefCard .buyerRefPerCt{
  min-width:0!important;overflow:hidden!important;text-overflow:ellipsis!important;white-space:nowrap!important;
  color:var(--a-muted)!important;font-size:11px!important;font-weight:500!important;
}
#shopGrid .buyerRefCard .buyerRefTotal{
  flex:0 0 auto!important;margin-left:auto!important;color:var(--a-ink)!important;
  font-size:19px!important;font-weight:700!important;line-height:1.2!important;
}
#shopGrid .buyerRefCard .buyerRefLocked{color:var(--a-muted)!important;font-size:12px!important;font-weight:650!important;}

/* ---- touch / narrow: no hover exists, so the controls must stay on screen --- */
@media(hover:none){
  #shopGrid .buyerRefCard .buyerRefTools{opacity:1!important;pointer-events:auto!important;}
  #shopGrid .buyerRefCard .buyerRefTool{height:34px!important;min-height:34px!important;padding:0 14px!important;}
}
@media(max-width:900px){
  #shopGrid .buyerRefCard .buyerRefTools,
  #shopGrid .buyerRefCard .buyerRefBuyWrap{opacity:1!important;pointer-events:auto!important;}
}
@media(prefers-reduced-motion:reduce){
  #shopGrid .buyerNivodaStoneCard.buyerRefCard,
  #shopGrid .buyerRefCard .buyerRefTools,
  #shopGrid .buyerRefCard .buyerRefBuyWrap,
  #shopGrid .buyerRefCard .buyerRefImg{transition:none!important;}
}

/* =============================================================================
   [ui] CARD SCALE — match the owner's reference proportions.
   Measured at a 1920 viewport BEFORE: the desk ran full-bleed at 1877px, which made each card 459px
   wide with a 457px media square and a 744px card. The reference constrains the whole desk panel to
   ~1490px, which is what actually produces its compact card (~342px wide, ~327px media). So the fix is
   the CONTAINER, not shrinking type: cap the desk width and the 4-up grid resolves to reference size.
   1490 - (2 x 26 padding) - (3 x 20 gap) = 1378 / 4 = ~344px per card.
   ============================================================================= */
.buyerDeskMain.ngdBuyerDeskMain{max-width:1490px!important;margin-left:auto!important;margin-right:auto!important;padding-left:26px!important;padding-right:26px!important;}
#shopGrid.buyerDeskGrid{gap:20px!important;}
@media (max-width:1560px){
  .buyerDeskMain.ngdBuyerDeskMain{max-width:100%!important;padding-left:18px!important;padding-right:18px!important;}
}
/* [ui] Tablet step. Without this the grid jumped 3 columns -> 1, so at an 820px viewport a single card
   (and its square media) stretched to 769px — the same "too big" problem, just at a smaller screen.
   Two columns keeps the card near its intended size until the screen is genuinely narrow. */
@media (max-width:900px) and (min-width:620px){
  #shopGrid.buyerDeskGrid{grid-template-columns:repeat(2,minmax(0,1fr))!important;}
}
/* [ui] With the buy row now in flow at the card foot, the PRICE keeps the bottom-aligned slot it had
   (so prices still line up across a row) and the buy row sits under it. */
#shopGrid .buyerRefCard .buyerRefBody{display:flex!important;flex-direction:column!important;flex:1 1 auto!important;}
#shopGrid .buyerRefCard .buyerRefPrice{margin-top:auto!important;}

/* =========================================================
   INLINE 360 — a way out
   =========================================================
   Opening the 360 replaced the card's media with an iframe and nothing else. When a supplier viewer
   failed to load there was no control of any kind left on the card, so the buyer was stuck looking at
   an empty box. The close button is rendered before the frame and sits above it, so it is reachable
   even when nothing inside the frame ever paints.
   b2b-theme.css carries `.buyerDeskExpanded button { width:100%; height:34px }`, and a tag+class
   selector (0,1,1) beats a plain class (0,1,0) — so the first version of this rule lost and the close
   control rendered 129px wide across the card instead of a 30px circle. The selectors below are
   qualified to outrank it rather than reaching for !important.
   ========================================================= */
.buyerExpandedMedia { position: relative; }
.buyerExpandedMedia button.buyerExpandedSpinClose {
  position: absolute; top: 6px; right: 6px; z-index: 5;
  width: 30px; height: 30px; padding: 0;
  display: flex; align-items: center; justify-content: center;
  font-size: 19px; line-height: 1; cursor: pointer;
  color: #fff; background: rgba(12,12,14,.72);
  border: 1px solid rgba(255,255,255,.28); border-radius: 50%;
}
.buyerExpandedMedia button.buyerExpandedSpinClose:hover { background: rgba(12,12,14,.88); }
.buyerExpandedMedia button.buyerExpandedSpinClose:focus-visible { outline: 2px solid #fff; outline-offset: 2px; }
.buyerExpandedMedia p.buyerSpinNotice {
  position: absolute; left: 8px; right: 8px; bottom: 8px; z-index: 4;
  margin: 0; padding: 8px 10px; border-radius: 8px;
  font-size: 12px; line-height: 1.45; text-align: center;
  color: #fff; background: rgba(12,12,14,.82);
}
.buyerExpandedMedia p.buyerSpinNotice.isFail { background: rgba(140,30,30,.9); }
