/* ── Section header ── */
.sec-header {
  display: flex; align-items: center; gap: 12px; margin-bottom: 18px;
}
.sec-title {
  font-family: 'Black Han Sans', sans-serif;
  font-size: 1.05rem; color: #ffe066;
  letter-spacing: 0.04em;
  text-shadow: 0 1px 0 #7a5000;
}
.sec-sub {
  font-family: 'Do Hyeon', sans-serif;
  font-size: 0.78rem; color: rgba(220,235,255,0.75);
}
.sec-line {
  flex: 1; height: 1px;
  background: linear-gradient(90deg, rgba(255,224,102,0.4), transparent);
}

/* ── Ad banner ── */
.ad-banner {
  background: rgba(0,0,0,0.22);
  border: 1px dashed rgba(255,255,255,0.15);
  border-radius: 10px; height: 80px;
  display: flex; align-items: center; justify-content: center;
  color: rgba(255,255,255,0.22);
  font-size: 0.7rem; letter-spacing: 0.1em; text-transform: uppercase;
}

/* ── Map grid ── */
.map-section { padding: 22px 24px; }

.map-grid {
  display: grid; grid-template-columns: repeat(4, 1fr); gap: 12px;
}

.map-card {
  background: rgba(255,255,255,0.08);
  border: 1px solid rgba(255,255,255,0.18);
  border-radius: 11px; overflow: hidden;
  cursor: pointer; text-decoration: none;
  transition: transform 0.18s, box-shadow 0.18s, border-color 0.18s;
  display: block;
}
.map-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 28px rgba(0,100,200,0.28);
  border-color: rgba(126,207,255,0.5);
}

.map-thumb-wrap {
  width: 100%; aspect-ratio: 4/3; position: relative; overflow: hidden;
}
.map-thumb {
  width: 100%; height: 100%; object-fit: cover; display: block;
}
.map-thumb-fallback {
  position: absolute; inset: 0; display: none;
}
.zone-color-0 { background: linear-gradient(135deg,#1a3a6b,#2e6b9e,#a8d8ea); }
.zone-color-1 { background: linear-gradient(135deg,#2d5a1b,#4a8c35,#a8e8a0); }
.zone-color-2 { background: linear-gradient(135deg,#6b1a1a,#9e3030,#e8a8a8); }
.zone-color-3 { background: linear-gradient(135deg,#3b1a6b,#6b35a0,#d0a8e8); }
.zone-color-4 { background: linear-gradient(135deg,#1a5a5a,#2a9a9a,#a0e0e8); }
.zone-color-5 { background: linear-gradient(135deg,#5a4a1a,#9a8030,#e8d890); }
.zone-color-6 { background: linear-gradient(135deg,#1a2a5a,#2a3a9a,#8090e8); }
.zone-color-7 { background: linear-gradient(135deg,#4a1a4a,#8a308a,#e090e8); }

.map-info { padding: 8px 10px 10px; }
.map-name {
  font-family: 'Do Hyeon', sans-serif;
  font-size: 0.88rem; color: #f0f6ff;
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
  margin-bottom: 2px;
}
.map-en {
  font-family: 'Do Hyeon', sans-serif;
  font-size: 0.68rem; color: rgba(220,235,255,0.6);
}

/* ── Hot section ── */
.hot-section { padding: 22px 24px; }
.hot-grid { display: grid; grid-template-columns: repeat(3,1fr); gap: 12px; }

.hot-card {
  background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.16);
  border-radius: 12px; padding: 14px 16px;
  cursor: pointer; position: relative; overflow: hidden;
  transition: transform 0.16s, box-shadow 0.16s;
}
.hot-card::before {
  content: ''; position: absolute; top:0; left:0; right:0; height:2px;
}
.rank1::before { background: linear-gradient(90deg,#ffe066,#ffaa00); }
.rank2::before { background: linear-gradient(90deg,#c0c8d8,#8898b0); }
.rank3::before { background: linear-gradient(90deg,#e8a060,#c07040); }
.rank4::before,.rank5::before,.rank6::before { background: linear-gradient(90deg,rgba(126,207,255,.5),transparent); }
.hot-card:hover { transform:translateY(-2px); box-shadow: 0 8px 24px rgba(0,80,200,0.22); }

.hot-rank-row { display:flex; align-items:center; gap:8px; margin-bottom:8px; }
.hot-rank {
  font-family: 'Black Han Sans', sans-serif;
  font-size: 1.1rem;
}
.rank1 .hot-rank { color:#ffe066; text-shadow:0 2px 0 #a06800; }
.rank2 .hot-rank { color:#c8d0e0; }
.rank3 .hot-rank { color:#e8a060; }
.rank4 .hot-rank,.rank5 .hot-rank,.rank6 .hot-rank { color:rgba(220,235,255,.75); }

.hot-trend { font-family:'Do Hyeon',sans-serif; font-size:0.72rem; font-weight:700; }
.trend-up   { color:#66ee88; }
.trend-same { color:rgba(220,235,255,.75); }
.trend-down { color:#ee8866; }

.hot-name { font-family:'Do Hyeon',sans-serif; font-size:0.95rem; color:#f0f6ff; margin-bottom:3px; }
.hot-zone { font-family:'Do Hyeon',sans-serif; font-size:0.72rem; color:rgba(220,235,255,.75); margin-bottom:10px; }
.hot-link {
  display:inline-block;
  font-family:'Do Hyeon',sans-serif; font-size:0.72rem;
  padding: 4px 12px; border-radius:12px;
  background:rgba(126,207,255,0.15); border:1px solid rgba(126,207,255,0.35);
  color:#7ecfff; text-decoration:none; transition:background 0.15s;
}
.hot-link:hover { background:rgba(126,207,255,0.28); }

.hot-live-dot {
  width:6px; height:6px; border-radius:50%;
  background:#66ee88; box-shadow:0 0 6px #66ee88;
  animation: pulse 1.4s ease-in-out infinite;
}
@keyframes pulse {
  0%,100% { opacity:1; transform:scale(1); }
  50%      { opacity:.5; transform:scale(.7); }
}

/* ── Auth pages ── */
.auth-wrap {
  padding: 40px 32px; max-width: 400px; margin: 40px auto;
  text-align: center; display:flex; flex-direction:column; align-items:center; gap:16px;
}
.auth-title {
  font-family:'Black Han Sans',sans-serif; font-size:1.4rem; color:#ffe066;
  text-shadow: 0 2px 0 #a06800;
}
.auth-sub { font-family:'Do Hyeon',sans-serif; font-size:0.85rem; color:rgba(220,235,255,.75); }
.discord-login-big { padding:12px 28px; font-size:1rem; gap:12px; }
.auth-error { color:#ff8888; font-family:'Do Hyeon',sans-serif; font-size:0.82rem; }

.banned-wrap { border: 1px solid rgba(220,50,50,0.4); }
.banned-icon { margin-bottom:4px; }
.banned-title { color:#ff8888; text-shadow:0 2px 0 #880000; }
.banned-reason {
  background:rgba(220,50,50,0.15); border:1px solid rgba(220,50,50,0.3);
  border-radius:8px; padding:10px 18px; color:#ffbbbb;
}

/* ══════════════════════════════════
   메인 — 경매 카드 (map-card 위에 덮어쓰기)
══════════════════════════════════ */
.auction-thumb {
  object-fit: contain !important;   /* 짤리지 않게 */
  background: rgba(0,0,0,0.18);
  padding: 6px;
}
.auction-fallback {
  position: absolute; inset: 0;
  display: none;
  align-items: center;
  justify-content: center;
  background: rgba(0,0,0,0.22);
}

/* 카드 우상단 뱃지 (입찰수 / 종료) */
.map-card-badge {
  position: absolute;
  top: 7px; right: 7px;
  font-family: 'Do Hyeon', sans-serif;
  font-size: 0.62rem;
  padding: 2px 8px;
  border-radius: 20px;
  letter-spacing: 0.03em;
}
.badge-open   { background: rgba(100,220,100,0.85); color: #003a00; }
.badge-closed { background: rgba(0,0,0,0.65); color: rgba(220,235,255,0.55);
                border: 1px solid rgba(255,255,255,0.1); }

/* map-price (경매 가격) */
.map-price {
  font-family: 'Black Han Sans', sans-serif;
  font-size: 0.82rem;
  color: #f0f6ff;
  display: flex;
  align-items: center;
  gap: 4px;
}

/* 빈 상태 */
.map-empty {
  grid-column: 1 / -1;
  text-align: center;
  padding: 28px 0;
  font-family: 'Do Hyeon', sans-serif;
  font-size: 0.85rem;
  color: rgba(220,235,255,0.42);
}

/* ══════════════════════════════════
   메인 — 닉네임 미니카드
══════════════════════════════════ */
.nick-mini-card {
  background: rgba(255,255,255,0.07);
  border: 1px solid rgba(255,255,255,0.15);
  border-radius: 12px;
  padding: 16px 14px 14px;
  display: flex;
  flex-direction: column;
  gap: 8px;
  text-decoration: none;
  cursor: pointer;
  transition: transform 0.17s, box-shadow 0.17s, border-color 0.17s;
  min-height: 110px;
  justify-content: space-between;
}
.nick-mini-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 10px 24px rgba(0,80,180,0.22);
  border-color: rgba(255,224,102,0.4);
}
.nick-mini-name {
  font-family: 'Black Han Sans', sans-serif;
  font-size: 1.05rem;
  color: #ffe066;
  text-shadow: 0 1px 0 #7a5000;
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.nick-mini-meta {
  display: flex;
  align-items: center;
  gap: 7px;
}
.nick-mini-avatar {
  width: 20px; height: 20px;
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,0.2);
  flex-shrink: 0;
}
.nick-mini-seller {
  font-family: 'Do Hyeon', sans-serif;
  font-size: 0.72rem;
  color: rgba(220,235,255,0.65);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
.nick-mini-end {
  font-family: 'Do Hyeon', sans-serif;
  font-size: 0.68rem;
  color: rgba(220,235,255,0.42);
  display: flex;
  align-items: center;
  gap: 6px;
}
.nick-mini-badge {
  font-size: 0.6rem;
  padding: 1px 7px;
  border-radius: 10px;
}
.nick-mini-badge.open   { background: rgba(100,220,100,0.15); color: #88ee88;
                          border: 1px solid rgba(100,220,100,0.3); }
.nick-mini-badge.closed { background: rgba(120,120,120,0.15); color: rgba(220,235,255,0.4);
                          border: 1px solid rgba(180,180,180,0.15); }

/* ── 경매 그리드: 모바일에서 2열 ── */
@media (max-width: 480px) {
  /* 사냥터/닉네임은 기존 4열 유지, 경매만 2열로 */
  .auction-grid {
    grid-template-columns: repeat(2, 1fr);
    gap: 10px;
  }

  /* 카드 내 가격 텍스트 약간 키우기 */
  .auction-grid .map-price {
    font-size: 0.78rem;
  }

  /* 카드 이름 줄수 제한 */
  .auction-grid .map-name {
    font-size: 0.82rem;
    white-space: normal;
    display: -webkit-box;
    -webkit-line-clamp: 2;
    -webkit-box-orient: vertical;
    overflow: hidden;
  }
}