/* KBM rc.164 — Public expired-card hard compositor grayscale + metallic-gold renewal authority.
 * Presentation only. Lifecycle/payment/data contracts remain owned by rc.161.
 */
:root{
  --kbm-exp162-gray-bg:#eef1f4;
  --kbm-exp162-gray-panel:#e2e6ea;
  --kbm-exp162-gray-border:#c8d0d8;
  --kbm-exp162-gray-text:#5f6872;
  --kbm-exp162-gray-strong:#343b43;
  --kbm-exp162-gold-light:#f4d06f;
  --kbm-exp162-gold:#d4af37;
  --kbm-exp162-gold-dark:#b8860b;
  --kbm-exp162-gold-text:#111827;
}

/* === Public expired cards: one visual state across all marketplace verticals === */
:is(.kbm-ads-recode-card,.kbm-machine-sale-recode-card,.kbm-drivers-recode-card,.kbm-services-recode-card,.kbm-c112-card,.kbm-c30-favorite-card).is-expired{
  /* Apply the grayscale at the card compositor layer, exactly like the canonical rental expiry card.
   * This is intentionally on the parent: later mobile/vertical CSS may repaint child backgrounds
   * navy/yellow, but the browser still renders the complete expired card in grayscale. */
  filter:grayscale(1) saturate(0) contrast(.96)!important;
  -webkit-filter:grayscale(1) saturate(0) contrast(.96)!important;
  opacity:.84!important;
  background:var(--kbm-exp162-gray-bg)!important;
  border-color:var(--kbm-exp162-gray-border)!important;
  color:var(--kbm-exp162-gray-text)!important;
  box-shadow:none!important;
  cursor:default!important;
  transform:none!important;
  isolation:isolate!important;
}
:is(.kbm-ads-recode-card,.kbm-machine-sale-recode-card,.kbm-drivers-recode-card,.kbm-services-recode-card,.kbm-c112-card,.kbm-c30-favorite-card).is-expired:hover{
  transform:none!important;
  box-shadow:none!important;
}
:is(.kbm-ads-recode-card,.kbm-machine-sale-recode-card,.kbm-drivers-recode-card,.kbm-services-recode-card,.kbm-c112-card,.kbm-c30-favorite-card).is-expired::before,
:is(.kbm-ads-recode-card,.kbm-machine-sale-recode-card,.kbm-drivers-recode-card,.kbm-services-recode-card,.kbm-c112-card,.kbm-c30-favorite-card).is-expired::after{
  box-shadow:none!important;
  background:var(--kbm-exp162-gray-border)!important;
  border-color:var(--kbm-exp162-gray-border)!important;
}
:is(.kbm-ads-recode-card,.kbm-machine-sale-recode-card,.kbm-drivers-recode-card,.kbm-services-recode-card,.kbm-c112-card,.kbm-c30-favorite-card).is-expired img{
  filter:grayscale(1) saturate(0) contrast(.9)!important;
  opacity:.78!important;
}
:is(.kbm-machine-sale-recode-card,.kbm-drivers-recode-card,.kbm-services-recode-card,.kbm-c112-card,.kbm-c30-favorite-card).is-expired :where(*){
  text-shadow:none!important;
}
:is(.kbm-machine-sale-recode-card,.kbm-drivers-recode-card,.kbm-services-recode-card,.kbm-c112-card,.kbm-c30-favorite-card).is-expired :where(.kbm-machine-sale-recode-price,.kbm-machine-sale-recode-card__type,.kbm-services-recode-media-badge,.kbm-services-recode-media-source,.kbm-c112-card__eyebrow,.kbm-drivers-recode-card__media>span){
  box-shadow:none!important;
}
:is(.kbm-ads-recode-card,.kbm-machine-sale-recode-card,.kbm-drivers-recode-card,.kbm-services-recode-card,.kbm-c112-card,.kbm-c30-favorite-card).is-expired :where(h2,h3,h4,a,span,b,strong,small,p,mark,em){
  color:var(--kbm-exp162-gray-text)!important;
  -webkit-text-fill-color:var(--kbm-exp162-gray-text)!important;
  text-shadow:none!important;
}
:is(.kbm-ads-recode-card,.kbm-machine-sale-recode-card,.kbm-drivers-recode-card,.kbm-services-recode-card,.kbm-c112-card,.kbm-c30-favorite-card).is-expired :where(h2,h3,h4,.kbm-ads-recode-card-title,.kbm-machine-sale-recode-card__body h3,.kbm-drivers-recode-card h3,.kbm-services-recode-card h3,.kbm-c112-card h3){
  color:var(--kbm-exp162-gray-strong)!important;
  -webkit-text-fill-color:var(--kbm-exp162-gray-strong)!important;
}
:is(.kbm-ads-recode-card,.kbm-machine-sale-recode-card,.kbm-drivers-recode-card,.kbm-services-recode-card,.kbm-c112-card,.kbm-c30-favorite-card).is-expired :where(
  .kbm-ads-recode-card-price,
  .kbm-machine-sale-recode-price,
  .kbm-machine-sale-recode-price__value,
  .kbm-drivers-recode-meta span,
  .kbm-drivers-recode-tags span,
  .kbm-services-recode-card__meta span,
  .kbm-services-recode-card__tags span,
  .kbm-c112-card__meta span,
  .kbm-c112-card__badges span,
  .kbm-machine-sale-recode-badges span,
  .kbm-machine-sale-recode-card__specs span,
  .kbm-ads-recode-chip,
  .kbm-ads-recode-badge
){
  background:var(--kbm-exp162-gray-panel)!important;
  border-color:var(--kbm-exp162-gray-border)!important;
  color:var(--kbm-exp162-gray-text)!important;
  -webkit-text-fill-color:var(--kbm-exp162-gray-text)!important;
  box-shadow:none!important;
}
:is(.kbm-ads-recode-card,.kbm-machine-sale-recode-card,.kbm-drivers-recode-card,.kbm-services-recode-card,.kbm-c112-card,.kbm-c30-favorite-card).is-expired :where(
  .kbm-ads-recode-card-cta,
  .kbm-machine-sale-recode-btn,
  .kbm-drivers-recode-actions a,
  .kbm-services-recode-card__actions a,
  .kbm-c112-card__cta,
  .kbm-exp161-disabled
){
  background:#d8dde2!important;
  border-color:var(--kbm-exp162-gray-border)!important;
  color:#737b84!important;
  -webkit-text-fill-color:#737b84!important;
  box-shadow:none!important;
  pointer-events:none!important;
  cursor:default!important;
}
.kbm-exp161-badge{
  background:#dfe3e7!important;
  border-color:#c6cdd4!important;
  color:#5f6872!important;
  -webkit-text-fill-color:#5f6872!important;
  box-shadow:none!important;
}

/* === Owner dashboard: everything gray except the one renewal action === */
.kbm-dashboard-recode-card.is-expired{
  filter:none!important;
  opacity:1!important;
  background:var(--kbm-exp162-gray-bg)!important;
  border-color:var(--kbm-exp162-gray-border)!important;
  color:var(--kbm-exp162-gray-text)!important;
  box-shadow:none!important;
}
.kbm-dashboard-recode-card.is-expired :where(.kbm-dashboard-recode-card-media img){
  filter:grayscale(1) saturate(0) contrast(.9)!important;
  opacity:.76!important;
}
.kbm-dashboard-recode-card.is-expired :where(.kbm-dashboard-recode-card-title,.kbm-dashboard-recode-card-title *,h2,h3,h4,p,span,b,strong,small){
  color:var(--kbm-exp162-gray-text)!important;
  -webkit-text-fill-color:var(--kbm-exp162-gray-text)!important;
}
.kbm-dashboard-recode-card.is-expired :where(.kbm-dashboard-recode-commercial,.kbm-dashboard-recode-lifecycle,.kbm-dashboard-recode-status,.kbm-dashboard-recode-edit-note,.kbm-dashboard-recode-meta>* ){
  background:var(--kbm-exp162-gray-panel)!important;
  border-color:var(--kbm-exp162-gray-border)!important;
  color:var(--kbm-exp162-gray-text)!important;
  box-shadow:none!important;
}
.kbm-dashboard-recode-card.is-expired .kbm-dashboard-recode-actions>*{
  filter:grayscale(1)!important;
  opacity:.5!important;
  pointer-events:none!important;
  background:#d8dde2!important;
  border-color:var(--kbm-exp162-gray-border)!important;
  color:#737b84!important;
  -webkit-text-fill-color:#737b84!important;
  box-shadow:none!important;
}
/* Renewal is the only live/color action on an expired owner card. Dependency ordering
 * makes this authority run after the global navy contrast layer. */
.kbm-dashboard-recode-card.is-expired .kbm-dashboard-recode-actions>.kbm-dashboard-recode-act--pay,
.kbm-dashboard-recode-card.is-expired a.kbm-dashboard-recode-act--pay{
  filter:none!important;
  opacity:1!important;
  pointer-events:auto!important;
  cursor:pointer!important;
  background:linear-gradient(135deg,var(--kbm-exp162-gold-light) 0%,var(--kbm-exp162-gold) 48%,var(--kbm-exp162-gold-dark) 100%)!important;
  border:1px solid #a77b08!important;
  color:var(--kbm-exp162-gold-text)!important;
  -webkit-text-fill-color:var(--kbm-exp162-gold-text)!important;
  font-weight:950!important;
  box-shadow:0 7px 18px rgba(184,134,11,.28),inset 0 1px 0 rgba(255,255,255,.45)!important;
  text-shadow:0 1px 0 rgba(255,255,255,.22)!important;
}
.kbm-dashboard-recode-card.is-expired .kbm-dashboard-recode-actions>.kbm-dashboard-recode-act--pay :where(span,b,strong,small),
.kbm-dashboard-recode-card.is-expired a.kbm-dashboard-recode-act--pay :where(span,b,strong,small){
  color:var(--kbm-exp162-gold-text)!important;
  -webkit-text-fill-color:var(--kbm-exp162-gold-text)!important;
}
.kbm-dashboard-recode-card.is-expired .kbm-dashboard-recode-actions>.kbm-dashboard-recode-act--pay:hover,
.kbm-dashboard-recode-card.is-expired a.kbm-dashboard-recode-act--pay:hover{
  transform:translateY(-1px);
  box-shadow:0 10px 22px rgba(184,134,11,.34),inset 0 1px 0 rgba(255,255,255,.5)!important;
}

/* Direct expired single: same real-gold renewal treatment. */
.kbm-exp161-expired{max-width:900px;margin:40px auto;padding:36px 24px;border:1px solid #d7dee7;border-radius:28px;background:#fff;box-shadow:0 18px 50px rgba(15,23,42,.08);text-align:center;color:#0b2a3b}
.kbm-exp161-expired>span{display:inline-flex;padding:7px 13px;border-radius:999px;background:#e5e7eb;color:#475569;font-weight:950}
.kbm-exp161-expired h1{margin:16px 0 8px;font-size:clamp(24px,4vw,40px);font-weight:950}.kbm-exp161-expired p{color:#64748b;font-weight:750}
.kbm-exp161-expired>div{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:18px}.kbm-exp161-expired a{display:inline-flex;min-height:46px;align-items:center;justify-content:center;padding:8px 18px;border-radius:14px;text-decoration:none;background:#eef2f7;color:#0b2a3b;font-weight:950}
.kbm-exp161-expired .kbm-exp161-expired__renew{
  background:linear-gradient(135deg,var(--kbm-exp162-gold-light),var(--kbm-exp162-gold) 50%,var(--kbm-exp162-gold-dark))!important;
  border:1px solid #a77b08!important;
  color:var(--kbm-exp162-gold-text)!important;
  -webkit-text-fill-color:var(--kbm-exp162-gold-text)!important;
  box-shadow:0 7px 18px rgba(184,134,11,.25)!important;
}
