/* =========================================================
   Alpha Mine X — Glassmorphism / iOS design system
   Black • Gold • Silver  (logo colors)
   ========================================================= */
:root {
  --gold: #f7b500;
  --gold-hi: #ffd65a;
  --gold-lo: #b98100;
  --silver: #dfe3e8;
  --bg: #050505;
  --glass: rgba(255, 255, 255, .055);
  --glass-hi: rgba(255, 255, 255, .09);
  --stroke: rgba(255, 255, 255, .10);
  --safe-b: env(safe-area-inset-bottom, 0px);
  --ease-ios: cubic-bezier(.32, .72, 0, 1);
}

html { -webkit-tap-highlight-color: transparent; scroll-behavior: smooth; }
body {
  background: var(--bg);
  color: #ececee;
  font-family: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", "Inter", system-ui, sans-serif;
  -webkit-font-smoothing: antialiased;
  letter-spacing: -.01em;
}
[x-cloak] { display: none !important; }
::selection { background: rgba(247, 181, 0, .35); color: #fff; }

/* thin dark scrollbars */
* { scrollbar-width: thin; scrollbar-color: rgba(255,255,255,.15) transparent; }
::-webkit-scrollbar { width: 8px; height: 8px; }
::-webkit-scrollbar-thumb { background: rgba(255,255,255,.14); border-radius: 99px; }
.no-scrollbar { scrollbar-width: none; }
.no-scrollbar::-webkit-scrollbar { display: none; }

/* ---------- Ambient background ---------- */
.amx-bg { position: fixed; inset: 0; z-index: -1; overflow: hidden; pointer-events: none; background: #050505; }
.amx-bg::before, .amx-bg::after { content: ""; position: absolute; border-radius: 50%; filter: blur(90px); }
.amx-bg::before { width: 70vmax; height: 70vmax; top: -30vmax; right: -25vmax; background: radial-gradient(circle, rgba(247,181,0,.20), transparent 65%); animation: amxFloat 18s ease-in-out infinite alternate; }
.amx-bg::after { width: 60vmax; height: 60vmax; bottom: -30vmax; left: -25vmax; background: radial-gradient(circle, rgba(200,206,216,.10), transparent 65%); animation: amxFloat 22s ease-in-out infinite alternate-reverse; }
.amx-bg .grid { position: absolute; inset: 0; background-image: linear-gradient(rgba(255,255,255,.035) 1px, transparent 1px), linear-gradient(90deg, rgba(255,255,255,.035) 1px, transparent 1px); background-size: 56px 56px; mask-image: radial-gradient(ellipse at 50% 0%, #000 10%, transparent 70%); -webkit-mask-image: radial-gradient(ellipse at 50% 0%, #000 10%, transparent 70%); }
@keyframes amxFloat { to { transform: translate(-6vmax, 8vmax) scale(1.1); } }

/* ---------- Glass surfaces ---------- */
.glass {
  background: linear-gradient(160deg, rgba(255,255,255,.085), rgba(255,255,255,.025));
  backdrop-filter: blur(24px) saturate(170%);
  -webkit-backdrop-filter: blur(24px) saturate(170%);
  border: 1px solid var(--stroke);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.08), 0 18px 40px -18px rgba(0,0,0,.7);
}
.glass-strong {
  background: rgba(18, 18, 20, .72);
  backdrop-filter: blur(30px) saturate(180%);
  -webkit-backdrop-filter: blur(30px) saturate(180%);
  border: 1px solid rgba(255,255,255,.09);
}
.glass-gold {
  background: linear-gradient(150deg, rgba(247,181,0,.16), rgba(247,181,0,.03) 45%, rgba(255,255,255,.03));
  backdrop-filter: blur(24px) saturate(170%);
  -webkit-backdrop-filter: blur(24px) saturate(170%);
  border: 1px solid rgba(247,181,0,.28);
  box-shadow: inset 0 1px 0 rgba(255,228,150,.18), 0 20px 50px -20px rgba(247,181,0,.35);
}
.hairline { border-color: rgba(255,255,255,.08) !important; }

/* shine sweep (hover / auto) */
.shine { position: relative; overflow: hidden; isolation: isolate; }
.shine::after { content: ""; position: absolute; inset: -50% auto -50% -60%; width: 40%; transform: rotate(20deg); background: linear-gradient(90deg, transparent, rgba(255,255,255,.18), transparent); animation: shine 5s ease-in-out infinite; pointer-events: none; z-index: 2; }
@keyframes shine { 0%, 70% { left: -60%; } 100% { left: 140%; } }

/* ---------- Text ---------- */
.text-gold { background: linear-gradient(135deg, #fff1b8 0%, #ffd65a 25%, #f7b500 55%, #c98a00 100%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.text-silver { background: linear-gradient(180deg, #ffffff 0%, #d4d8de 55%, #8c929b 100%); -webkit-background-clip: text; background-clip: text; color: transparent; }
.tracking-wider-x { letter-spacing: .28em; }

/* ---------- Buttons ---------- */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: .5rem; font-weight: 600; border-radius: 1rem; padding: .85rem 1.25rem; transition: transform .2s var(--ease-ios), box-shadow .3s, background .3s, opacity .2s; user-select: none; }
.btn:active { transform: scale(.96); }
.btn:disabled { opacity: .5; pointer-events: none; }
.btn-gold { color: #120d00; background: linear-gradient(135deg, #ffe08a 0%, #f7b500 45%, #d99a00 100%); box-shadow: 0 10px 30px -8px rgba(247,181,0,.55), inset 0 1px 0 rgba(255,255,255,.55); }
.btn-gold:hover { box-shadow: 0 14px 40px -8px rgba(247,181,0,.7), inset 0 1px 0 rgba(255,255,255,.6); }
.btn-glass { color: #fff; background: rgba(255,255,255,.08); border: 1px solid rgba(255,255,255,.12); backdrop-filter: blur(20px); -webkit-backdrop-filter: blur(20px); }
.btn-glass:hover { background: rgba(255,255,255,.13); }
.btn-danger { color: #fff; background: linear-gradient(135deg, #ff6b6b, #e11d48); box-shadow: 0 10px 25px -10px rgba(225,29,72,.6); }
.btn-success { color: #04130a; background: linear-gradient(135deg, #6ee7b7, #10b981); box-shadow: 0 10px 25px -10px rgba(16,185,129,.6); }
.btn-sm { padding: .5rem .85rem; border-radius: .8rem; font-size: .85rem; }
.icon-btn { width: 2.6rem; height: 2.6rem; display: grid; place-items: center; border-radius: 999px; color: #e5e7eb; transition: background .2s, transform .2s; }
.icon-btn:hover { background: rgba(255,255,255,.08); }
.icon-btn:active { transform: scale(.9); }

/* ---------- Forms (iOS style) ---------- */
.amx-label { display: block; font-size: .78rem; font-weight: 600; color: #a1a1aa; margin: 0 0 .45rem .25rem; text-transform: uppercase; letter-spacing: .06em; }
.amx-field { position: relative; }
.amx-field > i.lead { position: absolute; left: 1rem; top: 50%; transform: translateY(-50%); color: #71717a; font-size: .95rem; pointer-events: none; transition: color .2s; }
.amx-input {
  width: 100%; background: rgba(255,255,255,.055); border: 1px solid rgba(255,255,255,.10); color: #fff;
  border-radius: 1rem; padding: .95rem 1rem; font-size: 1rem; outline: none;
  transition: border-color .2s, box-shadow .2s, background .2s;
}
.amx-field > i.lead ~ .amx-input { padding-left: 2.8rem; }
.amx-input::placeholder { color: #6b6b73; }
.amx-input:focus { border-color: rgba(247,181,0,.7); background: rgba(255,255,255,.075); box-shadow: 0 0 0 4px rgba(247,181,0,.14); }
.amx-field:focus-within > i.lead { color: var(--gold); }
.amx-input.is-invalid { border-color: rgba(244,63,94,.75); box-shadow: 0 0 0 4px rgba(244,63,94,.12); }
select.amx-input { appearance: none; -webkit-appearance: none; background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none'%3E%3Cpath d='M1 1.5l5 5 5-5' stroke='%23a1a1aa' stroke-width='1.6' stroke-linecap='round'/%3E%3C/svg%3E"); background-repeat: no-repeat; background-position: right 1rem center; padding-right: 2.5rem; }
select.amx-input option { background: #141416; color: #fff; }
textarea.amx-input { min-height: 7rem; resize: vertical; }
.amx-error { color: #fb7185; font-size: .8rem; margin: .4rem 0 0 .25rem; display: flex; gap: .35rem; align-items: center; }
.amx-check { width: 1.25rem; height: 1.25rem; accent-color: var(--gold); }

/* iOS switch */
.ios-switch { position: relative; width: 51px; height: 31px; flex: none; }
.ios-switch input { opacity: 0; width: 0; height: 0; position: absolute; }
.ios-switch span { position: absolute; inset: 0; border-radius: 999px; background: rgba(255,255,255,.16); transition: background .25s; cursor: pointer; }
.ios-switch span::before { content: ""; position: absolute; width: 27px; height: 27px; left: 2px; top: 2px; border-radius: 50%; background: #fff; box-shadow: 0 3px 8px rgba(0,0,0,.35); transition: transform .3s var(--ease-ios); }
.ios-switch input:checked + span { background: linear-gradient(135deg, #ffd65a, #f7b500); }
.ios-switch input:checked + span::before { transform: translateX(20px); }

/* Segmented control */
.seg { display: flex; padding: 4px; gap: 4px; border-radius: 14px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.08); }
.seg > * { flex: 1; text-align: center; padding: .55rem .5rem; border-radius: 10px; font-size: .85rem; font-weight: 600; color: #a1a1aa; transition: all .25s var(--ease-ios); white-space: nowrap; }
.seg > .on { background: rgba(255,255,255,.14); color: #fff; box-shadow: 0 4px 14px rgba(0,0,0,.35), inset 0 1px 0 rgba(255,255,255,.1); }

/* iOS grouped list */
.ios-list { border-radius: 1.25rem; overflow: hidden; }
.ios-list > * + * { border-top: 1px solid rgba(255,255,255,.07); }
.ios-row { display: flex; align-items: center; gap: .85rem; padding: .95rem 1rem; transition: background .2s; }
a.ios-row:hover, button.ios-row:hover { background: rgba(255,255,255,.04); }
.ios-icon { width: 2rem; height: 2rem; border-radius: .6rem; display: grid; place-items: center; font-size: .85rem; flex: none; }

/* App icon squircle */
.app-icon { width: 3.6rem; height: 3.6rem; border-radius: 1.15rem; display: grid; place-items: center; font-size: 1.35rem; position: relative; }
.app-icon::before { content: ""; position: absolute; inset: 0; border-radius: inherit; background: linear-gradient(180deg, rgba(255,255,255,.18), transparent 50%); pointer-events: none; }

/* ---------- Badges ---------- */
.amx-badge { display: inline-flex; align-items: center; gap: .35rem; font-size: .72rem; font-weight: 600; padding: .28rem .6rem; border-radius: 999px; border: 1px solid transparent; white-space: nowrap; }
.amx-badge-pending { color: #fcd34d; background: rgba(245,158,11,.12); border-color: rgba(245,158,11,.25); }
.amx-badge-success { color: #6ee7b7; background: rgba(16,185,129,.12); border-color: rgba(16,185,129,.25); }
.amx-badge-danger { color: #fda4af; background: rgba(244,63,94,.12); border-color: rgba(244,63,94,.25); }
.amx-badge-muted { color: #d4d4d8; background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.12); }
.amx-badge-pending i { animation: pulse 1.6s ease-in-out infinite; }
@keyframes pulse { 50% { opacity: .35; } }

/* ---------- Header ---------- */
.amx-header { position: sticky; top: 0; z-index: 40; transition: background .3s, border-color .3s, backdrop-filter .3s; border-bottom: 1px solid transparent; }
.amx-header.scrolled { background: rgba(8,8,9,.68); backdrop-filter: blur(24px) saturate(180%); -webkit-backdrop-filter: blur(24px) saturate(180%); border-bottom-color: rgba(255,255,255,.07); }
.nav-link { position: relative; padding: .5rem .9rem; border-radius: 999px; font-size: .9rem; font-weight: 500; color: #a1a1aa; transition: color .2s, background .2s; }
.nav-link:hover { color: #fff; background: rgba(255,255,255,.06); }
.nav-link.active { color: #fff; background: rgba(255,255,255,.1); }

/* ---------- Mobile bottom tab bar ---------- */
.tabbar { background: rgba(14,14,16,.86) !important; position: fixed; left: 12px; right: 12px; bottom: calc(10px + var(--safe-b)); z-index: 45; border-radius: 26px; padding: 8px 6px; display: grid; grid-template-columns: repeat(5, 1fr); align-items: end; }
.tab { display: flex; flex-direction: column; align-items: center; gap: 4px; font-size: 10.5px; font-weight: 600; color: #8e8e95; padding: 4px 0 2px; position: relative; transition: color .2s; }
.tab i { font-size: 1.15rem; transition: transform .3s var(--ease-ios); }
.tab.active { color: var(--gold-hi); }
.tab.active i { transform: translateY(-2px); filter: drop-shadow(0 0 8px rgba(247,181,0,.6)); }
.tab.active::after { content: ""; position: absolute; bottom: -5px; width: 5px; height: 5px; border-radius: 50%; background: var(--gold); box-shadow: 0 0 8px var(--gold); }
.tab:active i { transform: scale(.85); }
.tab-center { margin-top: -30px; }
.tab-center .orb { width: 58px; height: 58px; border-radius: 20px; display: grid; place-items: center; font-size: 1.35rem; color: #120d00; background: linear-gradient(135deg, #ffe08a, #f7b500 50%, #c98a00); box-shadow: 0 10px 25px -5px rgba(247,181,0,.6), inset 0 1px 0 rgba(255,255,255,.6), 0 0 0 5px rgba(10,10,11,.9); transform: rotate(45deg); transition: transform .3s var(--ease-ios); }
.tab-center .orb i { transform: rotate(-45deg); filter: none !important; }
.tab-center:active .orb { transform: rotate(45deg) scale(.9); }
.tab-center.active::after { display: none; }

/* ---------- Drawer ---------- */
.drawer-panel { transition: transform .45s var(--ease-ios); }

/* ---------- Hero slider ---------- */
.hero { position: relative; overflow: hidden; border-radius: 28px; isolation: isolate; touch-action: pan-y; }
.hero-slide { position: absolute; inset: 0; opacity: 0; visibility: hidden; z-index: 1; transition: opacity .9s ease, transform 1.1s var(--ease-ios), filter 1s ease, visibility 0s linear 1.1s; }
.hero-slide.is-active { opacity: 1; visibility: visible; z-index: 3; transition: opacity .9s ease, transform 1.1s var(--ease-ios), filter 1s ease, visibility 0s; }
.hero-slide.is-prev { visibility: visible; z-index: 2; transition: opacity .9s ease, transform 1.1s var(--ease-ios), filter 1s ease, visibility 0s linear 1.1s; }
.hero-slide img.bg { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transform-origin: 60% 40%; }
.hero-slide.is-active img.bg { animation: heroBreath 12s ease-out forwards; }
@keyframes heroBreath { from { transform: scale(1.06); } to { transform: scale(1); } }

.hero-slide[data-anim="slide"] { transform: translateX(100%); opacity: 1; }
.hero-slide[data-anim="slide"].is-active { transform: none; }
.hero-slide[data-anim="slide"].is-prev { transform: translateX(-30%); opacity: 0; }

.hero-slide[data-anim="zoom"] { transform: scale(1.18); }
.hero-slide[data-anim="zoom"].is-active { transform: none; }
.hero-slide[data-anim="zoom"].is-prev { transform: scale(.92); opacity: 0; }

.hero-slide[data-anim="blur"] { filter: blur(24px) saturate(1.6); transform: scale(1.06); }
.hero-slide[data-anim="blur"].is-active { filter: none; transform: none; }

.hero-slide[data-anim="flip"] { transform: perspective(1400px) rotateY(-28deg) scale(.88); transform-origin: left center; }
.hero-slide[data-anim="flip"].is-active { transform: none; }
.hero-slide[data-anim="flip"].is-prev { transform: perspective(1400px) rotateY(22deg) scale(.9); transform-origin: right center; opacity: 0; }

.hero-slide[data-anim="kenburns"].is-active img.bg { animation: kenburns 14s ease-out forwards; }
@keyframes kenburns { from { transform: scale(1.25) translate(3%, 2%); } to { transform: scale(1.02) translate(-1%, -1%); } }

.hero-copy > * { opacity: 0; transform: translateY(22px); filter: blur(6px); transition: opacity .7s ease, transform .9s var(--ease-ios), filter .7s; }
.is-active .hero-copy > * { opacity: 1; transform: none; filter: none; }
.is-active .hero-copy > *:nth-child(1) { transition-delay: .25s; }
.is-active .hero-copy > *:nth-child(2) { transition-delay: .4s; }
.is-active .hero-copy > *:nth-child(3) { transition-delay: .55s; }
.is-active .hero-copy > *:nth-child(4) { transition-delay: .7s; }

.hero-dots button { height: 6px; width: 6px; border-radius: 99px; background: rgba(255,255,255,.35); overflow: hidden; position: relative; transition: width .45s var(--ease-ios), background .3s; }
.hero-dots button.on { width: 28px; background: rgba(255,255,255,.25); }
.hero-dots button.on span { position: absolute; inset: 0; background: linear-gradient(90deg, #ffd65a, #f7b500); transform-origin: left; animation: dotfill var(--int, 5000ms) linear forwards; }
@keyframes dotfill { from { transform: scaleX(0); } to { transform: scaleX(1); } }

/* ---------- Promo banner cards (like example) ---------- */
.promo { position: relative; overflow: hidden; border-radius: 24px; isolation: isolate; }
.promo img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: -2; transition: transform 1.2s var(--ease-ios); }
.promo:hover img { transform: scale(1.06); }
.promo::before { content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(90deg, rgba(0,0,0,.82), rgba(0,0,0,.35) 60%, rgba(0,0,0,.1)); }

/* ---------- Reveal on scroll ---------- */
.reveal { opacity: 0; transform: translateY(26px); transition: opacity .8s ease, transform .9s var(--ease-ios); }
.reveal.in { opacity: 1; transform: none; }

/* ---------- Footer ---------- */
.amx-footer-mtn path.ridge { stroke-dasharray: 2400; stroke-dashoffset: 2400; animation: drawRidge 4s ease forwards .3s; }
@keyframes drawRidge { to { stroke-dashoffset: 0; } }
.foot-link { color: #a1a1aa; transition: color .2s, padding .3s var(--ease-ios); display: inline-flex; align-items: center; gap: .5rem; }
.foot-link:hover { color: var(--gold-hi); padding-left: 4px; }
.social { width: 2.75rem; height: 2.75rem; border-radius: 999px; display: grid; place-items: center; color: #e4e4e7; transition: all .3s var(--ease-ios); }
.social:hover { color: #120d00; background: linear-gradient(135deg, #ffe08a, #f7b500); transform: translateY(-3px); box-shadow: 0 10px 25px -8px rgba(247,181,0,.7); }
.marquee { display: flex; width: max-content; animation: marquee 28s linear infinite; }
@keyframes marquee { to { transform: translateX(-50%); } }

/* ---------- Toast ---------- */
.toast-wrap { position: fixed; top: calc(10px + env(safe-area-inset-top, 0px)); left: 50%; transform: translateX(-50%); z-index: 100; width: min(92vw, 420px); }

/* ---------- Prose for CMS pages ---------- */
.prose-amx h2 { font-size: 1.15rem; font-weight: 700; color: #fff; margin: 1.6rem 0 .6rem; }
.prose-amx h3 { font-size: 1.02rem; font-weight: 700; color: #fff; margin: 1.2rem 0 .5rem; }
.prose-amx p, .prose-amx li { color: #b4b4bb; line-height: 1.75; margin-bottom: .8rem; }
.prose-amx ul { list-style: disc; padding-left: 1.3rem; }
.prose-amx ol { list-style: decimal; padding-left: 1.3rem; }
.prose-amx a { color: var(--gold-hi); text-decoration: underline; }
.prose-amx strong { color: #fff; }

/* ---------- Upload dropzone ---------- */
.dropzone { border: 1.5px dashed rgba(255,255,255,.18); border-radius: 1.25rem; transition: border-color .2s, background .2s; }
.dropzone.drag, .dropzone:hover { border-color: rgba(247,181,0,.7); background: rgba(247,181,0,.05); }

/* ---------- Tables (admin) ---------- */
.amx-table { width: 100%; font-size: .875rem; }
.amx-table th { text-align: left; font-weight: 600; color: #8e8e95; font-size: .72rem; text-transform: uppercase; letter-spacing: .06em; padding: .8rem 1rem; white-space: nowrap; }
.amx-table td { padding: .85rem 1rem; border-top: 1px solid rgba(255,255,255,.06); vertical-align: middle; }
.amx-table tbody tr { transition: background .2s; }
.amx-table tbody tr:hover { background: rgba(255,255,255,.03); }

/* skeleton/loader for submit buttons */
.spinner { width: 1rem; height: 1rem; border-radius: 50%; border: 2px solid currentColor; border-right-color: transparent; animation: spin .7s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }

/* =========================================================
   Live updates
   ========================================================= */
.live-flash { animation: liveFlash 2.4s ease-out; }
@keyframes liveFlash { 0%, 30% { background-color: rgba(247,181,0,.18); box-shadow: inset 0 0 0 1px rgba(247,181,0,.5); } 100% { background-color: transparent; box-shadow: none; } }
.live-bump { animation: liveBump .6s var(--ease-ios); display: inline-block; }
@keyframes liveBump { 0% { transform: scale(1); } 40% { transform: scale(1.12); color: #ffd65a; } 100% { transform: scale(1); } }

/* =========================================================
   WhatsApp-style chat
   ========================================================= */
.chat-wall {
  background-color: #0a0a0b;
  background-image:
    radial-gradient(circle at 20% 0%, rgba(247,181,0,.07), transparent 40%),
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='120' viewBox='0 0 120 120'%3E%3Cg fill='none' stroke='%23ffffff' stroke-opacity='.035' stroke-width='1.2'%3E%3Cpath d='M10 40 L22 22 L34 40 Z'/%3E%3Ccircle cx='86' cy='26' r='9'/%3E%3Cpath d='M62 92 L74 74 L82 86 L90 78 L102 92'/%3E%3Cpath d='M20 86 h14 M27 79 v14'/%3E%3Cpath d='M70 50 l6 6 l10 -12'/%3E%3C/g%3E%3C/svg%3E");
}
.chat-sep { display: flex; justify-content: center; margin: 14px 0 10px; position: sticky; top: 6px; z-index: 5; }
.chat-sep span { font-size: 11.5px; font-weight: 600; color: #c9c9cf; background: rgba(30,30,33,.92); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); padding: 5px 12px; border-radius: 8px; box-shadow: 0 1px 2px rgba(0,0,0,.4); }
.bubble { position: relative; max-width: min(78%, 520px); padding: 6px 9px 6px 10px; border-radius: 12px; font-size: 14.5px; line-height: 1.38; box-shadow: 0 1px 1px rgba(0,0,0,.35); word-wrap: break-word; overflow-wrap: anywhere; animation: bubbleIn .28s var(--ease-ios); }
@keyframes bubbleIn { from { opacity: 0; transform: translateY(6px) scale(.98); } to { opacity: 1; transform: none; } }
.bubble-in { background: #1f1f23; color: #ececef; border-top-left-radius: 12px; }
.bubble-out { background: linear-gradient(160deg, #3a2e08, #2a2106); color: #fff6dc; border: 1px solid rgba(247,181,0,.18); }
.bubble.tail.bubble-in { border-top-left-radius: 0; }
.bubble.tail.bubble-out { border-top-right-radius: 0; }
.bubble.tail.bubble-in::before { content: ""; position: absolute; top: 0; left: -7px; border-top: 0 solid transparent; border-right: 8px solid #1f1f23; border-bottom: 10px solid transparent; }
.bubble.tail.bubble-out::before { content: ""; position: absolute; top: -1px; right: -8px; border-left: 8px solid #3a2e08; border-bottom: 10px solid transparent; }
.bubble .meta { float: right; margin: 6px 0 -4px 10px; font-size: 10.5px; color: rgba(255,255,255,.5); display: inline-flex; align-items: center; gap: 4px; white-space: nowrap; }
.bubble-out .meta { color: rgba(255,230,160,.55); }
.bubble img.chat-img { display: block; border-radius: 8px; max-width: 260px; max-height: 320px; width: 100%; object-fit: cover; margin: -2px -3px 4px; cursor: zoom-in; }
.typing-dots { display: inline-flex; gap: 4px; padding: 10px 12px; }
.typing-dots i { width: 7px; height: 7px; border-radius: 50%; background: #9a9aa2; animation: tdot 1.2s infinite ease-in-out; }
.typing-dots i:nth-child(2) { animation-delay: .15s; } .typing-dots i:nth-child(3) { animation-delay: .3s; }
@keyframes tdot { 0%, 60%, 100% { transform: translateY(0); opacity: .5; } 30% { transform: translateY(-4px); opacity: 1; } }
.chat-input { background: #1b1b1e; border: 1px solid rgba(255,255,255,.07); border-radius: 22px; color: #fff; resize: none; outline: none; line-height: 1.35; max-height: 140px; }
.chat-input:focus { border-color: rgba(247,181,0,.45); }
.chip { white-space: nowrap; font-size: 12.5px; padding: 7px 12px; border-radius: 999px; background: rgba(255,255,255,.06); border: 1px solid rgba(255,255,255,.09); color: #e4e4e7; transition: background .2s, border-color .2s; }
.chip:hover { background: rgba(247,181,0,.12); border-color: rgba(247,181,0,.4); }
.thread-row { display: flex; gap: 12px; align-items: center; padding: 11px 14px; cursor: pointer; transition: background .15s; border-bottom: 1px solid rgba(255,255,255,.04); }
.thread-row:hover { background: rgba(255,255,255,.04); }
.thread-row.on { background: rgba(247,181,0,.09); }
.online-dot { position: absolute; right: -1px; bottom: -1px; width: 12px; height: 12px; border-radius: 50%; background: #22c55e; border: 2px solid #111113; }

/* component classes set `display`; make Tailwind's responsive hide utilities still win */
@media (min-width: 768px) { .md\:hidden { display: none !important; } }
@media (min-width: 1024px) { .lg\:hidden { display: none !important; } }

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; transition-duration: .01ms !important; }
}
