/* ============== Minassa Cars — component styles ============== */

/* ---------- car card ---------- */
.carcard {
  background: var(--surface); border-radius: var(--r-card);
  box-shadow: var(--sh-sm); overflow: hidden; cursor: pointer;
  transition: box-shadow .18s, transform .18s; display: flex; flex-direction: column;
  position: relative;
}
.carcard:hover { box-shadow: var(--sh-md); transform: translateY(-3px); }
.carcard.sponsored { box-shadow: inset 0 0 0 1.5px #ecc969, var(--sh-sm); }
.carcard.sponsored:hover { box-shadow: inset 0 0 0 1.5px #ecc969, var(--sh-md); }

.carcard-img { position: relative; aspect-ratio: 16/11; background: var(--sand-150); }
.carcard-tags { position: absolute; top: 12px; left: 12px; display: flex; gap: 6px; z-index: 2; }
.heart-pos { position: absolute; top: 11px; right: 11px; z-index: 2; }

.carcard-body { padding: 15px 16px 16px; display: flex; flex-direction: column; gap: 12px; flex: 1; }
.carcard-head { display: flex; align-items: flex-start; justify-content: space-between; gap: 10px; }
.carcard-title { font-size: 16px; font-weight: 700; letter-spacing: -.01em; line-height: 1.2; }
.carcard-title.light { color: #fff; }
.carcard-sub { font-size: 12.5px; color: var(--ink-2); margin-top: 3px; }
.carcard-foot { display: flex; align-items: center; justify-content: space-between; gap: 10px; margin-top: auto; }
.card-price { font-size: 18px; font-weight: 800; letter-spacing: -.02em; color: var(--ink); }
.card-price-unit { font-size: 12.5px; font-weight: 600; color: var(--ink-2); }

/* horizontal variant */
.carcard.horiz { flex-direction: row; }
.carcard.horiz .horiz-img { aspect-ratio: auto; width: 168px; flex: 0 0 168px; align-self: stretch; }
.mob .carcard.horiz { flex-direction: column; }
.mob .carcard.horiz .horiz-img { width: 100%; aspect-ratio: 16/11; }

/* overlay variant */
.carcard.overlay .overlay-img { aspect-ratio: 4/5; }
.overlay-grad { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.05) 0%, rgba(0,0,0,0) 38%, rgba(10,8,4,.78) 100%); }
.overlay-top { position: absolute; top: 12px; left: 12px; right: 12px; display: flex; align-items: flex-start; justify-content: space-between; z-index: 2; }
.overlay-bot { position: absolute; left: 16px; right: 16px; bottom: 15px; z-index: 2; display: flex; flex-direction: column; gap: 4px; }
.overlay-specs { font-size: 12px; color: rgba(255,255,255,.82); font-weight: 500; }
.overlay-price { margin-top: 5px; }
.overlay-price .card-price { color: #fff; font-size: 19px; }
.overlay-price .card-price-unit { color: rgba(255,255,255,.8); }

.price-wrap { display: flex; align-items: baseline; gap: 1px; }

/* ---------- countdown blocks ---------- */
.cd-block { background: var(--ink); color: var(--sand-50); border-radius: 11px; padding: 9px 11px 7px; min-width: 50px; text-align: center; }
.cd-block.urgent { background: var(--red); }
.cd-val { font-size: 22px; font-weight: 800; line-height: 1; letter-spacing: -.02em; }
.cd-unit { font-size: 10px; font-weight: 600; opacity: .65; margin-top: 4px; text-transform: uppercase; letter-spacing: .06em; }
@keyframes pulseRed { 0%,100% { opacity: 1; } 50% { opacity: .55; } }
.cd-urgent { animation: pulseRed 1s ease-in-out infinite; }

/* ---------- skeleton ---------- */
@keyframes shimmer { 0% { background-position: -300px 0; } 100% { background-position: 300px 0; } }
.sk { background: linear-gradient(90deg, #ece2d2 25%, #f4ecdf 50%, #ece2d2 75%); background-size: 600px 100%; animation: shimmer 1.3s infinite linear; border-radius: 8px; }
.sk-img { aspect-ratio: 16/11; border-radius: 0; }
.sk-line { height: 14px; }

/* ---------- empty state ---------- */
.empty { text-align: center; padding: 56px 24px; color: var(--ink-2); display: flex; flex-direction: column; align-items: center; gap: 10px; }
.empty-ico { width: 56px; height: 56px; border-radius: 16px; background: var(--sand-100); display: grid; place-items: center; color: var(--ink-3); margin-bottom: 4px; }
.empty-title { font-size: 16px; font-weight: 700; color: var(--ink); }
.empty-sub { font-size: 13.5px; max-width: 320px; }

/* ---------- live-bid row ---------- */
.bidrow { display: flex; align-items: center; gap: 12px; padding: 11px 4px; border-bottom: 1px solid var(--line); }
.bidrow:last-child { border-bottom: none; }
.bidrow .avatar { width: 34px; height: 34px; border-radius: 999px; background: var(--sand-150); display: grid; place-items: center; color: var(--ink-3); flex: 0 0 auto; }
.bidrow.you .avatar { background: var(--blue-soft); color: var(--blue-700); }
.bidrow.lead .avatar { background: var(--green-soft); color: var(--green); }
.bid-who { font-size: 13.5px; font-weight: 700; }
.bid-ago { font-size: 11.5px; color: var(--ink-3); }
.bid-amt { margin-left: auto; font-size: 15px; font-weight: 800; letter-spacing: -.01em; }
@keyframes bidIn { from { opacity: 0; transform: translateX(-8px); background: var(--green-soft); } to { opacity: 1; transform: none; } }
.bid-new { animation: bidIn .5s ease both; }

/* ---------- alert banners ---------- */
.banner { display: flex; align-items: center; gap: 11px; padding: 13px 16px; border-radius: 14px; font-size: 13.5px; font-weight: 600; }
.banner-red { background: var(--red-soft); color: var(--red); }
.banner-amber { background: var(--amber-soft); color: var(--amber); }
.banner-green { background: var(--green-soft); color: var(--green); }
.banner-blue { background: var(--blue-soft); color: var(--blue-700); }
