/* ═══════════════════════════════════════════════════════════════
   market.css  —  ttt.tg Market & Auction styles
   Import: <link rel="stylesheet" href="/static/css/market.css">
═══════════════════════════════════════════════════════════════ */

/* ── DESIGN TOKENS ── */
:root {
  --bg-deep:                #0a0b0f;
  --glass-surface:          rgba(255, 255, 255, 0.03);
  --glass-border:           rgba(255, 255, 255, 0.10);
  --glass-border-hi:        rgba(255, 255, 255, 0.22);

  --accent-primary:         #29b6f6;
  --accent-glow:            rgba(41, 182, 246, 0.45);
  --accent-green:           #4ade80;
  --accent-amber:           #fbbf24;
  --accent-red:             #f87171;
  --accent-purple:          #a78bfa;

  --text-main:              #ffffff;
  --text-muted:             rgba(235, 235, 245, 0.60);
  --text-dim:               rgba(255, 255, 255, 0.30);

  --shadow-card:
    inset 0 1px 0 rgba(255, 255, 255, 0.14),
    inset 0 0 0 1px rgba(255, 255, 255, 0.02),
    0 16px 40px -8px rgba(0, 0, 0, 0.55);

  --r-xl:  28px;
  --r-l:   20px;
  --r-m:   14px;
  --r-s:   10px;

  --font: "SF Pro Text", "SF Pro Display", -apple-system, BlinkMacSystemFont,
          "Segoe UI", Roboto, "Apple Color Emoji", "Noto Color Emoji", sans-serif;
}

/* ── RESET ── */
*, *::before, *::after {
  box-sizing: border-box;
  -webkit-tap-highlight-color: transparent;
  font-family: var(--font);
}

/* ── BASE ── */
body {
  margin: 0;
  background: var(--bg-deep);
  color: var(--text-main);
  height: 100vh;
  overflow: hidden;
  display: flex;
  flex-direction: column;
}

/* ═══════════════════════════════════════
   ANIMATED BACKGROUND
═══════════════════════════════════════ */
.ambient-bg {
  position: fixed; inset: 0; z-index: 0;
  background: radial-gradient(circle at 50% -20%, #1a202c, #000);
  overflow: hidden;
  pointer-events: none;
}
.orb {
  position: absolute; border-radius: 50%;
  filter: blur(90px); opacity: 0.55;
  mix-blend-mode: screen;
  animation: orbFloat 20s infinite ease-in-out alternate;
}
.orb-1 { width:600px; height:600px; background: radial-gradient(circle, #1b4f78 0%, transparent 70%); top:-150px; left:-100px; animation-duration:22s; }
.orb-2 { width:500px; height:500px; background: radial-gradient(circle, #0d3a4a 0%, transparent 70%); bottom:-100px; right:-100px; animation-duration:28s; animation-delay:-6s; }
.orb-3 { width:320px; height:320px; background: radial-gradient(circle, #381d55 0%, transparent 70%); top:40%; left:30%; opacity:0.4; animation-duration:19s; }
.orb-4 { width:260px; height:260px; background: radial-gradient(circle, #183818 0%, transparent 70%); top:20%; right:8%; opacity:0.3; animation-duration:24s; }
@keyframes orbFloat {
  from { transform: translate(0, 0) scale(1); }
  to   { transform: translate(-22px, 22px) scale(0.94); }
}
.noise {
  position: fixed; inset: 0; z-index: 1;
  opacity: 0.045; pointer-events: none;
  background: url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.65' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
  mix-blend-mode: overlay;
}

/* ═══════════════════════════════════════
   LAYOUT SHELL
═══════════════════════════════════════ */
.app {
  position: relative; z-index: 2;
  display: flex; flex-direction: column;
  height: 100%;
}

/* ── TOPBAR ── */
.topbar {
  padding: 12px 20px;
  display: flex; align-items: center; justify-content: space-between;
  background: linear-gradient(180deg, rgba(10,11,15,0.18) 0%, transparent 100%);
  flex-shrink: 0;
}
.back-btn {
  width: 36px; height: 36px; border-radius: 12px;
  background: rgba(255,255,255,0.06);
  border: 1px solid var(--glass-border);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.10);
  display: grid; place-items: center;
  color: #fff; cursor: pointer; text-decoration: none;
  transition: transform 0.15s, background 0.15s;
}
.back-btn:active { transform: scale(0.91); background: rgba(255,255,255,0.10); }

.topbar-center { display: flex; flex-direction: column; align-items: center; }
.topbar-title  { font-size: 17px; font-weight: 800; letter-spacing: -0.3px; }
.topbar-sub    { font-size: 11px; color: var(--text-muted); font-weight: 500; margin-top: 1px; }

.topbar-right  { display: flex; align-items: center; gap: 10px; }

.balance-pill {
  min-height: 44px; text-decoration: none; white-space: nowrap; cursor: pointer;
  background: rgba(74,222,128,0.12);
  color: var(--accent-green);
  padding: 7px 12px; border-radius: 12px;
  font-weight: 700; font-size: 13px;
  border: 1px solid rgba(74,222,128,0.25);
  display: flex; align-items: center; gap: 5px;
}

.notif-btn {
  position: relative;
  width: 36px; height: 36px; border-radius: 12px;
  background: rgba(255,255,255,0.06);
  border: 1px solid var(--glass-border);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.10);
  display: grid; place-items: center;
  color: var(--text-muted); cursor: pointer;
  transition: transform 0.15s, color 0.15s;
}
.notif-btn:active { transform: scale(0.91); }
.notif-btn.has-unread { color: #fff; }

.notif-badge {
  position: absolute; top: -4px; right: -4px;
  min-width: 17px; height: 17px; padding: 0 4px;
  background: var(--accent-red);
  border-radius: 99px;
  font-size: 9px; font-weight: 800;
  display: grid; place-items: center;
  border: 2px solid var(--bg-deep);
  color: #fff;
}
.notif-badge[hidden] { display: none; }

/* ── TABS ── */
.tabs-wrap { padding: 0 20px 14px; flex-shrink: 0; }
.tabs {
  display: flex; gap: 4px;
  background: rgba(255,255,255,0.05);
  border: 1px solid var(--glass-border);
  padding: 4px; border-radius: 16px;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.04);
}
.tab-btn {
  flex: 1; border: none;
  background: transparent; color: var(--text-muted);
  padding: 9px 6px; border-radius: 12px;
  font-weight: 600; font-size: 13px; cursor: pointer;
  display: flex; align-items: center; justify-content: center; gap: 5px;
  transition: all 0.25s cubic-bezier(0.16,1,0.3,1);
}
.tab-btn.active {
  background: linear-gradient(160deg, rgba(255,255,255,0.10), rgba(255,255,255,0.04));
  color: #fff;
  box-shadow: 0 2px 12px rgba(0,0,0,0.3), inset 0 1px 0 rgba(255,255,255,0.14);
  border: 1px solid rgba(255,255,255,0.08);
}

/* ── CONTENT SCROLL ── */
.content {
  flex: 1;
  overflow-y: auto; overflow-x: hidden;
  padding: 0 20px 130px; /* + остров дока (dock) снизу */
  scroll-behavior: smooth;
}
.content::-webkit-scrollbar { display: none; }

/* ── TAB PAGES ── */
.tab-page { display: none; }
.tab-page.active {
  display: block;
  animation: tabIn 0.35s cubic-bezier(0.2,0.8,0.2,1);
}
@keyframes tabIn {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: translateY(0); }
}

/* ═══════════════════════════════════════
   SKELETON LOADING
═══════════════════════════════════════ */
.skeleton {
  background: linear-gradient(90deg,
    rgba(255,255,255,0.04) 0%,
    rgba(255,255,255,0.09) 50%,
    rgba(255,255,255,0.04) 100%);
  background-size: 200% 100%;
  animation: shimmer 1.6s infinite;
  border-radius: var(--r-s);
}
@keyframes shimmer {
  0%   { background-position: -200% 0; }
  100% { background-position:  200% 0; }
}
.skel-card {
  border: 1px solid var(--glass-border);
  border-radius: var(--r-l);
  padding: 18px; margin-bottom: 12px;
}
.skel-line { height: 14px; margin-bottom: 9px; }
.skel-btn  { height: 44px; border-radius: var(--r-m); margin-top: 14px; }

/* ═══════════════════════════════════════
   EMPTY STATE
═══════════════════════════════════════ */
.empty-state {
  text-align: center; padding: 60px 20px;
  display: flex; flex-direction: column; align-items: center; gap: 12px;
}
.empty-icon  { font-size: 50px; }
.empty-title { font-size: 17px; font-weight: 700; }
.empty-sub   { font-size: 14px; color: var(--text-muted); max-width: 240px; line-height: 1.55; }

/* ═══════════════════════════════════════
   AUCTION TAB — SECTION HEADERS
═══════════════════════════════════════ */
.section-head {
  display: flex; align-items: center; justify-content: space-between;
  margin: 6px 0 12px;
}
.section-title { font-size: 17px; font-weight: 800; }
.section-count {
  font-size: 12px; color: var(--text-muted); font-weight: 600;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.08);
  padding: 4px 10px; border-radius: 8px;
}

/* ═══════════════════════════════════════
   FEATURED AUCTION CARDS  (horizontal scroll)
═══════════════════════════════════════ */
.auction-scroll {
  overflow-x: auto; overflow-y: visible;
  scrollbar-width: none;
  margin: 0 -20px;
  padding: 4px 20px 18px;
}
.auction-scroll::-webkit-scrollbar { display: none; }
.auction-row {
  display: flex; gap: 14px;
  width: max-content;
  padding-right: 20px;
}

/* Premium card shell */
.acp {
  width: 272px; flex-shrink: 0;
  border-radius: 24px; overflow: hidden;
  position: relative; cursor: pointer;
  transition: transform 0.22s cubic-bezier(0.16,1,0.3,1);
}
.acp:active { transform: scale(0.96); }

.acp-shell {
  padding: 20px;
  position: relative; z-index: 1;
}

/* Colour variants */
.acp.v-purple .acp-shell {
  background: linear-gradient(148deg, #1d1040 0%, #2b195c 45%, #190e38 100%);
  box-shadow: 0 0 0 1px rgba(167,139,250,0.28), 0 24px 50px rgba(124,58,237,0.35),
              inset 0 1px 0 rgba(255,255,255,0.12);
}
.acp.v-blue .acp-shell {
  background: linear-gradient(148deg, #051830 0%, #0a2d55 45%, #041525 100%);
  box-shadow: 0 0 0 1px rgba(41,182,246,0.28), 0 24px 50px rgba(36,129,204,0.35),
              inset 0 1px 0 rgba(255,255,255,0.12);
}
.acp.v-gold .acp-shell {
  background: linear-gradient(148deg, #1a1100 0%, #2f2000 45%, #140e00 100%);
  box-shadow: 0 0 0 1px rgba(251,191,36,0.32), 0 24px 50px rgba(180,130,0,0.40),
              inset 0 1px 0 rgba(255,255,255,0.10);
}
.acp.v-rose .acp-shell {
  background: linear-gradient(148deg, #200a18 0%, #3c1230 45%, #18080f 100%);
  box-shadow: 0 0 0 1px rgba(244,114,182,0.28), 0 24px 50px rgba(180,50,100,0.35),
              inset 0 1px 0 rgba(255,255,255,0.12);
}

/* Glow orb */
.acp-orb {
  position: absolute; width: 200px; height: 200px;
  border-radius: 50%; top: -50px; right: -50px;
  filter: blur(55px); z-index: 0; pointer-events: none;
}
.acp.v-purple .acp-orb { background: radial-gradient(circle, rgba(167,139,250,0.38), transparent 70%); }
.acp.v-blue   .acp-orb { background: radial-gradient(circle, rgba(41,182,246,0.38),  transparent 70%); }
.acp.v-gold   .acp-orb { background: radial-gradient(circle, rgba(251,191,36,0.38),  transparent 70%); }
.acp.v-rose   .acp-orb { background: radial-gradient(circle, rgba(244,114,182,0.38), transparent 70%); }

/* Sparkles */
.acp-sparkles { position: absolute; inset: 0; pointer-events: none; z-index: 0; overflow: hidden; }
.sparkle {
  position: absolute; width: 3px; height: 3px; border-radius: 50%;
  animation: sparklePop 3s infinite ease-in-out;
}
.acp.v-purple .sparkle { background: rgba(210,195,255,0.75); }
.acp.v-blue   .sparkle { background: rgba(160,215,255,0.75); }
.acp.v-gold   .sparkle { background: rgba(255,220,100,0.75); }
.acp.v-rose   .sparkle { background: rgba(255,185,215,0.75); }
@keyframes sparklePop {
  0%,100% { opacity: 0; transform: scale(0.4); }
  50%      { opacity: 1; transform: scale(1.3); }
}

/* Emoji row */
.acp-emoji-row {
  position: relative; z-index: 1;
  display: flex; justify-content: space-between; align-items: flex-start;
  margin-bottom: 14px;
}
.acp-emoji {
  font-size: 44px; line-height: 1;
  filter: drop-shadow(0 4px 18px rgba(0,0,0,0.5));
  animation: emojiFloat 4s ease-in-out infinite;
}
@keyframes emojiFloat {
  0%,100% { transform: translateY(0); }
  50%      { transform: translateY(-5px); }
}
.acp-badges { display: flex; flex-direction: column; gap: 5px; align-items: flex-end; }
.acp-badge {
  padding: 4px 10px; border-radius: 8px;
  font-size: 11px; font-weight: 700; letter-spacing: 0.4px;
  backdrop-filter: blur(8px);
}
.acp.v-purple .acp-badge { background: rgba(167,139,250,0.18); color: #c4b5fd; border: 1px solid rgba(167,139,250,0.28); }
.acp.v-blue   .acp-badge { background: rgba(41,182,246,0.18);  color: #7dd3fc; border: 1px solid rgba(41,182,246,0.28);  }
.acp.v-gold   .acp-badge { background: rgba(251,191,36,0.18);  color: #fde68a; border: 1px solid rgba(251,191,36,0.28);  }
.acp.v-rose   .acp-badge { background: rgba(244,114,182,0.18); color: #fbcfe8; border: 1px solid rgba(244,114,182,0.28); }
.acp-hot-badge { background: rgba(251,191,36,0.15)!important; color: #fde68a!important; border-color: rgba(251,191,36,0.3)!important; }

/* Slug */
.acp-slug   { position: relative; z-index: 1; font-size: 20px; font-weight: 800; letter-spacing: -0.4px; color: #fff; margin-bottom: 3px; }
.acp-domain { font-size: 12px; color: rgba(255,255,255,0.38); font-weight: 500; margin-bottom: 14px; position: relative; z-index: 1; }

/* Timer panel */
.acp-timer-panel {
  position: relative; z-index: 1;
  display: flex; align-items: center; justify-content: space-between;
  background: rgba(0,0,0,0.28);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: 12px; padding: 10px 13px;
  margin-bottom: 12px;
}
.acp-timer-label { font-size: 10px; text-transform: uppercase; letter-spacing: 1px; color: rgba(255,255,255,0.38); font-weight: 700; margin-bottom: 3px; }
.acp-timer-val {
  font-size: 19px; font-weight: 800;
  font-variant-numeric: tabular-nums; letter-spacing: 1.5px;
}
.acp.v-purple .acp-timer-val { color: #c4b5fd; text-shadow: 0 0 14px rgba(167,139,250,0.55); }
.acp.v-blue   .acp-timer-val { color: #7dd3fc; text-shadow: 0 0 14px rgba(41,182,246,0.55);  }
.acp.v-gold   .acp-timer-val { color: #fde68a; text-shadow: 0 0 14px rgba(251,191,36,0.55);  }
.acp.v-rose   .acp-timer-val { color: #fbcfe8; text-shadow: 0 0 14px rgba(244,114,182,0.55); }
.acp-bids-col { text-align: right; }
.acp-bids-num   { font-size: 14px; font-weight: 800; color: rgba(255,255,255,0.85); }
.acp-bids-label { font-size: 10px; color: rgba(255,255,255,0.38); font-weight: 600; }

/* Progress bar */
.acp-progress { position: relative; z-index: 1; margin-bottom: 14px; }
.acp-progress-labels {
  display: flex; justify-content: space-between;
  font-size: 10px; color: rgba(255,255,255,0.35); font-weight: 600;
  margin-bottom: 5px;
}
.acp-track { height: 4px; background: rgba(255,255,255,0.08); border-radius: 99px; overflow: hidden; }
.acp-fill  { height: 100%; border-radius: 99px; transition: width 1.2s ease; }
.acp.v-purple .acp-fill { background: linear-gradient(90deg, #6d28d9, #a78bfa); }
.acp.v-blue   .acp-fill { background: linear-gradient(90deg, #1d64c0, #29b6f6); }
.acp.v-gold   .acp-fill { background: linear-gradient(90deg, #b45309, #fbbf24); }
.acp.v-rose   .acp-fill { background: linear-gradient(90deg, #be185d, #f472b6); }

/* Price + leader row */
.acp-bottom {
  position: relative; z-index: 1;
  display: flex; align-items: flex-end; justify-content: space-between;
  margin-bottom: 14px;
}
.acp-price-label { font-size: 10px; text-transform: uppercase; letter-spacing: 1px; color: rgba(255,255,255,0.38); font-weight: 700; margin-bottom: 4px; }
.acp-price-val   { font-size: 23px; font-weight: 900; color: #fff; letter-spacing: -1px; }
.acp-leader { display: flex; align-items: center; gap: 7px; }
.acp-avatars { display: flex; }
.acp-avatar {
  width: 24px; height: 24px; border-radius: 8px;
  display: grid; place-items: center;
  font-size: 10px; font-weight: 800; color: #fff;
  border: 2px solid rgba(0,0,0,0.5);
  margin-left: -7px;
}
.acp-avatar:first-child { margin-left: 0; }
.acp-leader-name { font-size: 12px; color: rgba(255,255,255,0.55); font-weight: 600; }

/* Bid button */
.acp-bid-btn {
  position: relative; z-index: 1;
  width: 100%; height: 46px; border: none; border-radius: 14px;
  font-size: 15px; font-weight: 800; color: #fff;
  cursor: pointer;
  display: flex; align-items: center; justify-content: center; gap: 8px;
  letter-spacing: 0.2px;
  transition: transform 0.18s, filter 0.18s;
}
.acp-bid-btn:active { transform: scale(0.95); filter: brightness(0.82); }
.acp.v-purple .acp-bid-btn { background: linear-gradient(135deg,#6d28d9,#a78bfa); box-shadow: 0 8px 22px rgba(109,40,217,0.45), inset 0 1px 0 rgba(255,255,255,0.22); }
.acp.v-blue   .acp-bid-btn { background: linear-gradient(135deg,#1d64c0,#29b6f6); box-shadow: 0 8px 22px rgba(36,129,204,0.45), inset 0 1px 0 rgba(255,255,255,0.22); }
.acp.v-gold   .acp-bid-btn { background: linear-gradient(135deg,#b45309,#fbbf24); box-shadow: 0 8px 22px rgba(180,83,9,0.45),   inset 0 1px 0 rgba(255,255,255,0.18); }
.acp.v-rose   .acp-bid-btn { background: linear-gradient(135deg,#be185d,#f472b6); box-shadow: 0 8px 22px rgba(190,24,93,0.45),  inset 0 1px 0 rgba(255,255,255,0.22); }
.acp.ended .acp-bid-btn    { background: rgba(255,255,255,0.08)!important; box-shadow: none!important; color: rgba(255,255,255,0.35); cursor: default; }
.acp.ended .acp-shell      { filter: saturate(0.25); }

/* ═══════════════════════════════════════
   AUCTION LIST  (full-width rows)
═══════════════════════════════════════ */
.auction-list { display: grid; gap: 10px; margin-top: 4px; }

.alc {
  border-radius: var(--r-l); overflow: hidden;
  cursor: pointer;
  transition: transform 0.18s;
}
.alc:active { transform: scale(0.984); }

.alc-inner {
  display: flex; align-items: center; gap: 13px;
  padding: 13px 15px;
  border-radius: var(--r-l);
}
.alc-inner.v-purple { background: linear-gradient(110deg, rgba(109,40,217,0.14), rgba(167,139,250,0.05)); border: 1px solid rgba(167,139,250,0.18); }
.alc-inner.v-blue   { background: linear-gradient(110deg, rgba(36,129,204,0.14), rgba(41,182,246,0.05));  border: 1px solid rgba(41,182,246,0.18);  }
.alc-inner.v-gold   { background: linear-gradient(110deg, rgba(180,83,9,0.14),   rgba(251,191,36,0.05));  border: 1px solid rgba(251,191,36,0.18);  }
.alc-inner.v-rose   { background: linear-gradient(110deg, rgba(190,24,93,0.14),  rgba(244,114,182,0.05)); border: 1px solid rgba(244,114,182,0.18); }

.alc-icon {
  width: 50px; height: 50px; flex-shrink: 0;
  border-radius: 15px; display: grid; place-items: center;
  font-size: 26px;
}
.alc-icon.v-purple { background: rgba(109,40,217,0.22); }
.alc-icon.v-blue   { background: rgba(36,129,204,0.22); }
.alc-icon.v-gold   { background: rgba(180,83,9,0.22);   }
.alc-icon.v-rose   { background: rgba(190,24,93,0.22);  }

/* ── МОБАЙЛ: аукционные карточки и шиты ставок ──────────────────── */
@media (max-width: 380px) {
  .alc-inner { gap: 10px; padding: 11px 12px; }
  .alc-icon  { width: 42px; height: 42px; border-radius: 12px; font-size: 22px; }
  .alc-slug  { font-size: 14px; }
  .alc-price { font-size: 14px; }
  .alc-timer { font-size: 11px; }
  .alc-right { max-width: 44%; }
}
/* Шит ставки: на узких экранах боковые паддинги 24px съедали ширину */
@media (max-width: 420px) {
  .sheet { padding: 8px 16px 32px; border-radius: 24px 24px 0 0; }
}

.alc-body { flex: 1; min-width: 0; }
/* Мобайл: длинные slug (до 20 символов + бейджи 🚩/👑) не выпирают
   за карточку — эллипсис; цена и дата очереди в одну строку. */
.alc-slug {
  font-size: 15px; font-weight: 800; color: #fff; margin-bottom: 3px;
  overflow: hidden; text-overflow: ellipsis; white-space: nowrap;
}
.alc-meta { font-size: 12px; color: rgba(255,255,255,0.42); line-height: 1.4; }

.alc-right { text-align: right; flex-shrink: 0; max-width: 42%; }
.alc-price { font-size: 15px; font-weight: 800; color: #fff; margin-bottom: 3px; white-space: nowrap; }
.alc-timer { font-size: 12px; font-weight: 700; font-variant-numeric: tabular-nums; white-space: nowrap; }
.alc-timer.v-purple { color: #c4b5fd; }
.alc-timer.v-blue   { color: #7dd3fc; }
.alc-timer.v-gold   { color: #fde68a; }
.alc-timer.v-rose   { color: #fbcfe8; }

/* ═══════════════════════════════════════
   MY LINKS TAB
═══════════════════════════════════════ */
.my-grid { display: grid; gap: 12px; padding-top: 4px; }

.my-card {
  background: linear-gradient(160deg, rgba(255,255,255,0.04) 0%, rgba(255,255,255,0.01) 100%);
  backdrop-filter: blur(22px);
  border: 1px solid var(--glass-border);
  border-top-color: var(--glass-border-hi);
  border-radius: var(--r-l);
  padding: 16px;
  box-shadow: var(--shadow-card);
  position: relative; overflow: hidden;
  transition: transform 0.18s;
}
.my-card::before {
  content: "";
  position: absolute; inset: 0;
  background: linear-gradient(110deg, transparent 30%, rgba(255,255,255,0.02) 46%, transparent 62%);
  pointer-events: none;
}
.my-card:active { transform: scale(0.985); }

.my-card-top    { display: flex; justify-content: space-between; align-items: flex-start; margin-bottom: 10px; }
.my-card-slug   { font-size: 17px; font-weight: 800; letter-spacing: -0.3px; color: #fff; }
.my-card-domain { font-size: 12px; color: var(--text-muted); margin-top: 2px; }
.my-card-stats  { display: flex; gap: 12px; margin-bottom: 12px; }
.my-stat        { font-size: 12px; color: var(--text-muted); display: flex; align-items: center; gap: 4px; }

.badge {
  padding: 4px 9px; border-radius: 8px;
  font-size: 11px; font-weight: 700; letter-spacing: 0.3px;
  flex-shrink: 0;
}
.badge-selling { background: rgba(74,222,128,0.14); color: var(--accent-green); border: 1px solid rgba(74,222,128,0.25); }
.badge-idle    { background: rgba(255,255,255,0.07); color: var(--text-muted);  border: 1px solid rgba(255,255,255,0.1);  }

.selling-row {
  display: flex; align-items: center; gap: 10px;
}
.selling-badge {
  background: rgba(74,222,128,0.12); color: var(--accent-green);
  border: 1px solid rgba(74,222,128,0.25);
  padding: 6px 11px; border-radius: 9px;
  font-size: 13px; font-weight: 700;
  display: flex; align-items: center; gap: 4px;
  white-space: nowrap;
}

/* ── BUTTONS ── */
.btn-buy {
  height: 42px; padding: 0 20px; border: none; border-radius: 13px;
  background: linear-gradient(135deg, #29b6f6 0%, #1e6bc7 100%);
  color: #fff; font-size: 14px; font-weight: 700; cursor: pointer;
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.28), 0 6px 16px rgba(36,129,204,0.32);
  display: flex; align-items: center; gap: 6px; transition: 0.18s;
}
.btn-buy:active { transform: scale(0.95); }

.btn-sell {
  height: 42px; padding: 0 20px; border-radius: 13px;
  background: rgba(41,182,246,0.12); color: var(--accent-primary);
  border: 1px solid rgba(41,182,246,0.28);
  font-size: 14px; font-weight: 700; cursor: pointer;
  display: flex; align-items: center; gap: 6px; transition: 0.18s;
}
.btn-sell:active { transform: scale(0.95); }

.btn-cancel {
  height: 42px; padding: 0 18px; border-radius: 13px;
  background: rgba(248,113,113,0.12); color: var(--accent-red);
  border: 1px solid rgba(248,113,113,0.28);
  font-size: 14px; font-weight: 700; cursor: pointer;
  display: flex; align-items: center; gap: 5px; transition: 0.18s;
  white-space: nowrap;
}
.btn-cancel:active { transform: scale(0.95); }

/* ═══════════════════════════════════════
   BOTTOM SHEET MODALS
═══════════════════════════════════════ */
.sheet-backdrop {
  position: fixed; inset: 0;
  background: rgba(0,0,0,0.72);
  backdrop-filter: blur(9px);
  z-index: 100;
  display: flex; align-items: flex-end; justify-content: center;
  opacity: 0; pointer-events: none;
  transition: opacity 0.3s;
}
.sheet-backdrop.open { opacity: 1; pointer-events: auto; }

.sheet {
  background: linear-gradient(180deg, #1e2029 0%, #141418 100%);
  border: 1px solid rgba(255,255,255,0.10);
  border-top-color: rgba(255,255,255,0.20);
  border-radius: 28px 28px 0 0;
  padding: 8px 24px 40px;
  width: 100%; max-width: 600px;
  transform: translateY(32px);
  transition: transform 0.42s cubic-bezier(0.16,1,0.3,1);
  box-shadow: 0 -24px 60px rgba(0,0,0,0.55), inset 0 1px 0 rgba(255,255,255,0.12);
  position: relative;
}
.sheet-backdrop.open .sheet { transform: translateY(0); }

.sheet-handle {
  width: 40px; height: 5px;
  background: rgba(255,255,255,0.18); border-radius: 10px;
  margin: 10px auto 22px;
}
.sheet-title { font-size: 19px; font-weight: 800; margin-bottom: 5px; }
.sheet-sub   { font-size: 14px; color: var(--text-muted); margin-bottom: 20px; }
.sheet-slug  { color: var(--accent-primary); font-weight: 700; }

.field-label {
  font-size: 11px; text-transform: uppercase; letter-spacing: 1.2px;
  color: var(--text-dim); font-weight: 700; margin-bottom: 8px;
}
.sheet-input {
  width: 100%;
  background: rgba(255,255,255,0.06);
  border: 1px solid var(--glass-border);
  border-top-color: rgba(255,255,255,0.14);
  color: #fff; padding: 14px 16px;
  border-radius: var(--r-m);
  font-size: 18px; font-weight: 700;
  margin-bottom: 8px; outline: none;
  transition: border-color 0.25s, box-shadow 0.25s;
}
.sheet-input:focus {
  border-color: rgba(41,182,246,0.45);
  box-shadow: 0 0 0 3px rgba(41,182,246,0.10);
}
.sheet-hint { font-size: 12px; color: var(--text-muted); margin-bottom: 20px; line-height: 1.55; }

/* Bid info box */
.bid-info-box {
  background: rgba(255,255,255,0.04);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 12px; padding: 12px 14px;
  display: flex; justify-content: space-between;
  margin-bottom: 16px;
}
.bid-info-item { display: flex; flex-direction: column; gap: 3px; }
.bid-info-label { font-size: 10px; color: var(--text-dim); text-transform: uppercase; letter-spacing: 1px; font-weight: 700; }
.bid-info-val   { font-size: 15px; font-weight: 800; color: #fff; }
.bid-info-val.accent { color: var(--accent-purple); }

/* Price preset chips */
.preset-row { display: flex; gap: 8px; flex-wrap: wrap; margin-bottom: 16px; }
.preset-chip {
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.10);
  color: var(--text-muted);
  padding: 6px 13px; border-radius: 10px;
  font-size: 13px; font-weight: 600; cursor: pointer;
  transition: 0.18s;
}
.preset-chip:hover, .preset-chip:active {
  background: rgba(41,182,246,0.14);
  border-color: rgba(41,182,246,0.35);
  color: var(--accent-primary);
}

/* Sheet action row */
.sheet-actions { display: flex; gap: 10px; }
.btn-sheet-cancel {
  flex: 1; height: 52px; border-radius: 15px;
  background: rgba(255,255,255,0.06);
  border: 1px solid rgba(255,255,255,0.10);
  color: var(--text-muted); font-size: 15px; font-weight: 700;
  cursor: pointer; transition: 0.18s;
}
.btn-sheet-cancel:active { transform: scale(0.96); }
.btn-sheet-confirm {
  flex: 2; height: 52px; border-radius: 15px;
  border: none; color: #fff;
  font-size: 15px; font-weight: 800; cursor: pointer;
  display: flex; align-items: center; justify-content: center; gap: 8px;
  transition: 0.18s;
}
.btn-sheet-confirm.blue {
  /* §CTA: фирменный градиент + glow + press */
  background: linear-gradient(135deg, #38c7ff 0%, #1f8fe0 100%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.35), 0 8px 24px -6px rgba(41,182,246,0.55);
  transition: transform .15s ease, box-shadow .25s ease;
}
.btn-sheet-confirm.blue:active { transform: scale(0.97); }
.btn-sheet-confirm.purple {
  background: linear-gradient(135deg, #a78bfa, #7c3aed);
  box-shadow: inset 0 1px 0 rgba(255,255,255,0.25), 0 8px 22px rgba(124,58,237,0.35);
}
.btn-sheet-confirm:active { transform: scale(0.96); filter: brightness(0.88); }

/* ── Outbid warning banner inside bid sheet ── */
.outbid-banner {
  background: rgba(248,113,113,0.12);
  border: 1px solid rgba(248,113,113,0.28);
  border-radius: 11px; padding: 10px 14px;
  font-size: 13px; color: #fca5a5; font-weight: 600;
  margin-bottom: 14px; display: flex; gap: 8px; align-items: center;
  display: none;
}
.outbid-banner.show { display: flex; }

/* ═══════════════════════════════════════
   NOTIFICATIONS PANEL
═══════════════════════════════════════ */
.notif-backdrop {
  position: fixed; inset: 0;
  background: rgba(0,0,0,0.50);
  backdrop-filter: blur(5px);
  z-index: 199;
  opacity: 0; pointer-events: none; transition: opacity 0.3s;
}
.notif-backdrop.open { opacity: 1; pointer-events: auto; }

.notif-panel {
  position: fixed; top: 0; right: 0; bottom: 0;
  width: min(320px, 90vw);
  background: linear-gradient(180deg, #1e2029 0%, #141418 100%);
  border-left: 1px solid rgba(255,255,255,0.09);
  box-shadow: -24px 0 60px rgba(0,0,0,0.65);
  z-index: 200;
  transform: translateX(105%);
  transition: transform 0.42s cubic-bezier(0.16,1,0.3,1);
  display: flex; flex-direction: column;
  overflow: hidden;
}
.notif-panel.open { transform: translateX(0); }

.notif-panel-head {
  padding: 56px 20px 14px;
  border-bottom: 1px solid rgba(255,255,255,0.07);
  display: flex; align-items: center; justify-content: space-between;
  flex-shrink: 0;
}
.notif-panel-title { font-size: 20px; font-weight: 800; }
.notif-close {
  width: 32px; height: 32px; border-radius: 10px;
  background: rgba(255,255,255,0.06);
  border: 1px solid var(--glass-border);
  display: grid; place-items: center;
  cursor: pointer; color: var(--text-muted);
  transition: 0.15s;
}
.notif-close:active { transform: scale(0.91); }

.notif-list {
  flex: 1; overflow-y: auto; padding: 12px;
}
.notif-list::-webkit-scrollbar { display: none; }

.notif-item {
  background: rgba(255,255,255,0.03);
  border: 1px solid rgba(255,255,255,0.07);
  border-radius: var(--r-m);
  padding: 13px; margin-bottom: 9px;
  display: flex; gap: 11px; align-items: flex-start;
  position: relative; cursor: pointer;
  transition: background 0.2s;
}
.notif-item.unread::after {
  content: "";
  position: absolute; top: 13px; right: 13px;
  width: 7px; height: 7px; border-radius: 50%;
  background: var(--accent-primary);
  box-shadow: 0 0 8px var(--accent-glow);
}
.notif-item:active { background: rgba(255,255,255,0.06); }

.notif-icon {
  width: 36px; height: 36px; border-radius: 11px;
  display: grid; place-items: center; font-size: 18px; flex-shrink: 0;
}
.notif-icon.green  { background: rgba(74,222,128,0.12); }
.notif-icon.blue   { background: rgba(41,182,246,0.12); }
.notif-icon.amber  { background: rgba(251,191,36,0.12); }
.notif-icon.red    { background: rgba(248,113,113,0.12); }
.notif-icon.purple { background: rgba(167,139,250,0.12); }

.notif-body-wrap {}
.notif-title { font-size: 13px; font-weight: 700; margin-bottom: 3px; }
.notif-body  { font-size: 12px; color: var(--text-muted); line-height: 1.42; }
.notif-time  { font-size: 11px; color: var(--text-dim); margin-top: 4px; }

.notif-clear {
  margin: 0 12px 20px;
  background: rgba(255,255,255,0.05);
  border: 1px solid rgba(255,255,255,0.08);
  border-radius: 12px; color: var(--text-muted);
  font-size: 13px; font-weight: 600;
  padding: 10px; cursor: pointer; transition: 0.18s;
  flex-shrink: 0;
}
.notif-clear:active { transform: scale(0.97); }

/* ═══════════════════════════════════════
   TOAST NOTIFICATIONS
═══════════════════════════════════════ */
.toast-container {
  position: fixed; top: 20px; left: 50%;
  transform: translateX(-50%);
  z-index: 500; display: flex; flex-direction: column; align-items: center; gap: 8px;
  pointer-events: none;
}
.toast {
  background: rgba(30,32,42,0.95);
  border: 1px solid rgba(255,255,255,0.12);
  border-radius: 14px; padding: 11px 18px;
  font-size: 13px; font-weight: 600; color: #fff;
  box-shadow: 0 8px 30px rgba(0,0,0,0.5);
  backdrop-filter: blur(20px);
  display: flex; align-items: center; gap: 8px;
  animation: toastIn 0.35s cubic-bezier(0.16,1,0.3,1) forwards;
  pointer-events: auto;
  max-width: 320px; text-align: center;
}
.toast.out { animation: toastOut 0.28s ease forwards; }
@keyframes toastIn  { from { opacity:0; transform:translateY(-14px) scale(0.9); } to { opacity:1; transform:translateY(0) scale(1); } }
@keyframes toastOut { to   { opacity:0; transform:translateY(-10px) scale(0.92); } }
.toast.success .toast-icon { color: var(--accent-green); }
.toast.error   .toast-icon { color: var(--accent-red);   }
.toast.info    .toast-icon { color: var(--accent-primary);}
.toast.warning .toast-icon { color: var(--accent-amber);  }

/* ── Flash animation: real-time bid price update ── */
@keyframes flashUpdate {
  0%   { color: #fbbf24; transform: scale(1.10); text-shadow: 0 0 12px rgba(251,191,36,0.7); }
  70%  { color: #fbbf24; }
  100% { color: inherit; transform: scale(1); text-shadow: none; }
}
.flash-update {
  animation: flashUpdate 0.75s cubic-bezier(0.16,1,0.3,1);
}
/* Auction: readable mobile cards, explicit actions and accessible sheets. */
[hidden] { display: none !important; }
.app { width:100%; max-width:1040px; margin-inline:auto; }
#tab-auction .fs-wrap, #tab-auction .fs-footer { padding-inline:0; }
.auction-heading { display:flex; gap:16px; align-items:center; justify-content:space-between; padding:18px 0 4px; }
.auction-heading h1 { font-size:23px; margin:0 0 6px; letter-spacing:-.6px; }
.auction-heading p { color:var(--text-muted); font-size:13px; line-height:1.5; margin:0; }
.auction-primary, .auction-secondary, .auction-picker-link {
  font:inherit; font-size:14px; font-weight:650; border-radius:12px; padding:11px 14px;
  min-height:44px; cursor:pointer; line-height:1.3; white-space:normal;
}
.auction-primary { background:linear-gradient(135deg,#7950cf,#a78bfa); border:1px solid rgba(255,255,255,.16); color:white; }
.auction-secondary, .auction-picker-link { background:rgba(255,255,255,.06); border:1px solid var(--glass-border); color:#ddd9e9; }
button:disabled { opacity:.5; cursor:default; }
button:focus-visible, select:focus-visible, input:focus-visible { outline:2px solid #c4b5fd; outline-offset:3px; }
.auction-heading > button { flex-shrink:0; }
.auction-filters { display:flex; gap:10px; flex-wrap:wrap; align-items:flex-end; margin:12px 0 8px; }
.auction-filters label { display:grid; gap:5px; flex:1; min-width:120px; }
.auction-filters label > span { color:var(--text-muted); font-size:12px; }
.auction-filters select { width:100%; min-height:44px; padding:10px; font-size:14px; border:1px solid var(--glass-border); border-radius:12px; color:white; background:#20232e; }
#aFilterMine[aria-pressed="true"] { color:#e0d5ff; border-color:#a78bfa; background:rgba(139,92,246,.22); }
.fs-count { color:var(--text-muted); }
.fs-reset:not(.visible) { visibility:hidden; }
.auction-notice { display:flex; gap:10px; align-items:center; justify-content:space-between; border:1px solid rgba(251,191,36,.3); background:rgba(251,191,36,.08); border-radius:14px; padding:12px; color:#f3dda7; font-size:13px; line-height:1.5; }
.auction-notice button { flex-shrink:0; }
.auction-list { gap:12px; }
.alc { cursor:default; }
.alc:active { transform:none; }
.alc-inner { display:grid; grid-template-columns:42px minmax(0,1fr); gap:12px; padding:16px; }
.alc-icon { width:42px; height:42px; border-radius:13px; font-size:24px; align-self:start; }
.alc-body { min-width:0; }
.alc-slug { display:block; width:100%; text-align:start; border:0; padding:0; background:none; color:white; font-size:17px; line-height:1.4; cursor:pointer; white-space:normal; overflow-wrap:anywhere; overflow:visible; margin:0 0 7px; }
.alc-status-row { display:flex; flex-wrap:wrap; gap:6px; align-items:center; }
.auction-tag { font-size:11px; padding:4px 8px; border-radius:7px; color:#d2c9e8; background:rgba(255,255,255,.07); line-height:1.3; }
.auction-tag.leading { color:#86efac; background:rgba(74,222,128,.12); }
.auction-tag.outbid { color:#fda4af; background:rgba(248,113,113,.12); }
.alc-numbers { grid-column:1/-1; display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:12px; margin-top:4px; }
.alc-label { display:block; color:#b5b3c0; font-size:11px; margin-bottom:5px; }
.alc-price { font-size:20px; white-space:normal; overflow-wrap:anywhere; margin:0; font-variant-numeric: tabular-nums; }
.alc-time-block { text-align:end; }
.alc-timer { font-size:16px; white-space:normal; overflow-wrap:anywhere; font-variant-numeric: tabular-nums; }
.alc-meta { grid-column:1/-1; color:#b5b3c0; font-size:12px; overflow-wrap:anywhere; }
.alc-actions { grid-column:1/-1; display:grid; grid-template-columns:1fr 1.5fr; gap:8px; }
.alc.ended { opacity:.7; }
.sheet-backdrop { top:var(--visible-top,0px); bottom:auto; height:var(--visible-height,100dvh); }
.sheet { display:flex; flex-direction:column; padding:0; max-height:calc(100% - 12px); overflow:hidden; }
.sheet-scroll { overflow-y:auto; overscroll-behavior:contain; min-height:0; padding:8px 24px 20px; }
.sheet-actions { flex-shrink:0; padding:12px 24px max(16px, env(safe-area-inset-bottom)); border-top:1px solid var(--glass-border); background:#17181f; }
.sheet-actions > button { height:auto; min-height:48px; padding:12px 10px; overflow-wrap:anywhere; }
.sheet-slug, .detail-slug { overflow-wrap:anywhere; }
.detail-slug { font-size:22px; font-weight:750; margin:14px 0; }
.field-label { display:block; color:#b5b3c0; }
.bid-info-box { gap:12px; }
.bid-info-item { min-width:0; }
.bid-info-label { color:#b5b3c0; }
.bid-info-val { overflow-wrap:anywhere; }
.bid-summary { display:grid; gap:10px; margin:8px 0 14px; font-size:14px; }
.bid-summary > div { display:flex; gap:12px; justify-content:space-between; }
.bid-summary strong { text-align:end; overflow-wrap:anywhere; }
.bid-summary span { color:var(--text-muted); }
.bid-error { color:#fda4af; font-size:13px; line-height:1.5; min-height:0; margin:10px 0; }
.bid-error:empty { display:none; }
.auction-facts { margin:16px 0; }
.auction-facts > div { display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:10px; padding:11px 0; border-bottom:1px solid var(--glass-border); font-size:14px; }
.auction-facts dt { color:var(--text-muted); }
.auction-facts dd { text-align:end; margin:0; font-weight:650; overflow-wrap:anywhere; }
.reserve-note { color:#fde68a; background:rgba(251,191,36,.07); border-radius:10px; padding:12px; font-size:13px; }
.auction-history { padding:0; list-style:none; margin:10px 0 0; }
.auction-history li { display:flex; gap:12px; justify-content:space-between; padding:12px 0; border-bottom:1px solid var(--glass-border); font-size:14px; }
.auction-history small { display:block; color:var(--text-muted); font-size:11px; margin-top:5px; }
.auction-history strong { text-align:end; overflow-wrap:anywhere; }
.auction-picker { display:grid; gap:10px; color:var(--text-muted); line-height:1.5; }
.auction-picker-link { text-align:start; overflow-wrap:anywhere; }
@media (min-width:720px) {
  .auction-list { grid-template-columns:repeat(2,minmax(0,1fr)); align-items:start; }
  .auction-list > .empty-state { grid-column:1/-1; }
}
@media (max-width:420px) {
  .content { padding-inline:14px; }
  .topbar { padding-inline:14px; }
  .tabs-wrap { padding-inline:14px; }
  .tab-btn { padding-inline:8px; font-size:12px; white-space:nowrap; }
  .auction-heading { align-items:stretch; flex-direction:column; gap:12px; }
  .auction-heading h1 { font-size:21px; }
  .auction-heading > button { align-self:flex-start; }
  .sheet { padding:0; border-radius:24px 24px 0 0; }
  .sheet-scroll { padding:8px 16px 16px; }
  .sheet-actions { padding:10px 16px max(12px, env(safe-area-inset-bottom)); }
  .alc-inner { padding:14px; gap:10px; }
  .alc-price { font-size:18px; }
}
@media (prefers-reduced-motion:reduce) {
  .orb, .tab-page, .skeleton { animation:none !important; }
  .sheet, .sheet-backdrop, .alc { transition:none; }
}

/* Compact auction list: color communicates the viewer's state. */
.auction-heading { padding:12px 0 2px; gap:10px; }
.auction-heading h1 { margin:0; }
.auction-switches { display:flex; gap:6px; margin:8px 0 0; }
.auction-switches button { padding:10px 12px; font-size:13px; }
.auction-switches [aria-pressed="true"] { color:#e0d5ff; border-color:#a78bfa; background:rgba(139,92,246,.18); }
#aFilterToggle { margin-inline-start:auto; }
#aFilterToggle.has-filters::after { content:' •'; color:#c4b5fd; }
.auction-mine-summary { font-size:12px; line-height:1.5; color:#ccc5dc; margin:10px 0 0; }
#tab-auction .fs-wrap { margin-top:8px; }
#tab-auction .fs-footer { min-height:28px; margin:2px 0; }
.alc-inner { grid-template-columns:minmax(0,1fr); gap:10px; padding:13px 15px; background:rgba(255,255,255,.035); border:1px solid var(--glass-border); }
.alc-slug { font-size:17px; margin:0; line-height:1.4; min-height:30px; }
.alc-slug > span { color:#aaa4b6; float:right; }
.alc-status-row:empty { display:none; }
.alc-status-row:not(:empty) { margin-top:4px; }
.alc-numbers { margin:0; gap:8px; }
.alc-label { margin-bottom:3px; }
.alc-timer { color:#d6d2df; font-size:15px; }
.alc-actions { grid-template-columns:minmax(0,1fr); }
.alc-actions button { min-height:44px; padding:10px; }
.alc.leading .alc-inner, .alc.won .alc-inner { border-color:rgba(74,222,128,.3); }
.alc.outbid .alc-inner { border-color:rgba(251,191,36,.4); }
.auction-tag.outbid { color:#fcd976; background:rgba(251,191,36,.12); }
.auction-tag.urgency { color:#fdba74; background:rgba(251,146,60,.1); }
.alc.ending-soon .alc-timer { color:#fdba74; }
.alc.ended { opacity:1; }
.alc-result-note { margin:0; color:#c5ccce; font-size:12px; line-height:1.5; }
@media (max-width:420px) {
  .auction-heading { flex-direction:row; align-items:center; }
  .auction-heading > button { align-self:auto; }
  .alc-inner { padding:12px; gap:9px; }
}

/* Fixed-price market shares the auction controls, with explicit card actions. */
#tab-market .fs-wrap, #tab-market .fs-footer { padding-inline:0; }
#tab-market .auction-heading h1 { font-size:21px; }
#marketFilters input { min-height:44px; width:100%; min-width:0; padding:10px; border:1px solid var(--glass-border); border-radius:12px; background:#20232e; color:#fff; font:inherit; }
#mFilterToggle { margin-inline-start:auto; }
#mFilterToggle.has-filters::after { content:' •'; color:#c4b5fd; }
.market-card { min-width:0; padding:13px; }
.market-card:active { transform:none; }
.market-slug { display:block; width:100%; border:0; background:none; color:#fff; padding:0; text-align:start; font:inherit; font-weight:800; font-size:17px; overflow-wrap:anywhere; cursor:pointer; min-height:32px; }
.market-slug span { float:right; color:#aaa4b6; }
.market-title { margin:2px 0 8px; color:var(--text-muted); font-size:13px; overflow-wrap:anywhere; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.market-card-bottom { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:10px; }
.market-card-bottom > div { min-width:0; }
.market-card-bottom > button { flex-shrink:0; }
.market-price { font-size:22px; font-weight:800; overflow-wrap:anywhere; font-variant-numeric: tabular-nums; }
.market-more { display:block; width:100%; margin:16px 0; }
.market-description { white-space:pre-wrap; overflow-wrap:anywhere; line-height:1.6; }
#marketDetailContent h3, #marketDetailMessage { overflow-wrap:anywhere; }
#marketDetailAction { overflow-wrap:anywhere; }
#marketGrid > .empty-state { grid-column:1/-1; }
#marketGrid[aria-busy="true"] { opacity:.75; }
@media(min-width:720px) { #marketGrid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:360px) { #tab-market .auction-heading h1 { font-size:18px; } }

.balance-pill:focus-visible { outline: 2px solid var(--accent-green); outline-offset: 3px; }
.balance-pill:active { background: rgba(74,222,128,0.22); }
