/* =========================================================
   MAMBO LIVE MUSIC — estilos principales
   ========================================================= */

:root{
  --bg:            #0b0605;
  --bg-alt:        #160b09;
  --bg-card:       #1c110d;
  --red:           #8c1015;
  --red-bright:    #c31824;
  --gold:          #e7b449;
  --gold-bright:   #ffd873;
  --gold-dim:      #8a6a2b;
  --cream:         #f4e8d3;
  --muted:         #cbb79c;
  --line:          rgba(231,180,73,.25);
  --shadow:        0 20px 50px rgba(0,0,0,.55);
  --radius:        18px;
  --ff-display:    'Bebas Neue', 'Oswald', sans-serif;
  --ff-script:     'Great Vibes', cursive;
  --ff-body:       'Poppins', 'Segoe UI', sans-serif;
}

*,*::before,*::after{ box-sizing:border-box; }
html{ scroll-behavior:smooth; }
body{
  margin:0;
  background:var(--bg);
  color:var(--cream);
  font-family:var(--ff-body);
  line-height:1.6;
  overflow-x:hidden;
}
img{ max-width:100%; display:block; }
a{ color:inherit; text-decoration:none; }
ul{ list-style:none; margin:0; padding:0; }
button{ font-family:inherit; cursor:pointer; }
.container{ width:min(1180px, 92%); margin-inline:auto; }
::selection{ background:var(--gold); color:#1a0e08; }

/* scrollbar */
::-webkit-scrollbar{ width:10px; }
::-webkit-scrollbar-track{ background:var(--bg); }
::-webkit-scrollbar-thumb{ background:var(--gold-dim); border-radius:10px; }

/* =========================== headings =========================== */
h1,h2,h3,h4{ font-family:var(--ff-display); letter-spacing:.03em; margin:0; }
.eyebrow{
  display:inline-flex; align-items:center; gap:.5em;
  font-family:var(--ff-display); letter-spacing:.35em; font-size:.8rem;
  color:var(--gold); text-transform:uppercase;
}
.eyebrow::before,.eyebrow::after{ content:""; width:26px; height:1px; background:var(--gold-dim); }
.section-title{
  font-size:clamp(2rem, 4.5vw, 3.4rem);
  color:var(--cream);
  text-shadow:0 0 18px rgba(231,180,73,.25);
}
.section-title em{ font-style:normal; color:var(--gold-bright); }
.section-head{ text-align:center; margin-bottom:2.6rem; display:grid; gap:.6rem; justify-items:center; }
.section-sub{ color:var(--muted); max-width:560px; margin-inline:auto; font-size:.98rem; }
section{ padding:5.5rem 0; position:relative; }

/* =========================== marquee bulb border =========================== */
.bulb-border{
  --bulb: 22px;
  position:relative;
  background-image:
    radial-gradient(circle, var(--gold-bright) 0 3px, transparent 3.5px);
  background-size: var(--bulb) var(--bulb);
  background-repeat:repeat-x;
  background-position:0 center;
  height:10px;
  animation: bulbFlicker 1.4s steps(2) infinite;
  opacity:.85;
}
@keyframes bulbFlicker{
  0%,100%{ filter:brightness(1); }
  50%{ filter:brightness(.55); }
}

/* =========================== buttons =========================== */
.btn{
  display:inline-flex; align-items:center; justify-content:center; gap:.55em;
  padding:.9em 1.9em;
  border-radius:999px;
  font-family:var(--ff-display);
  font-size:1.05rem; letter-spacing:.06em;
  border:1px solid transparent;
  transition:transform .25s ease, box-shadow .25s ease, background .25s ease, color .25s ease;
  white-space:nowrap;
}
.btn-primary{
  background:linear-gradient(135deg, var(--gold-bright), var(--gold) 60%, var(--gold-dim));
  color:#1a0e08;
  box-shadow:0 10px 30px rgba(231,180,73,.25);
}
.btn-primary:hover{ transform:translateY(-3px); box-shadow:0 16px 36px rgba(231,180,73,.4); }
.btn-outline{
  background:transparent; color:var(--cream); border-color:var(--gold-dim);
}
.btn-outline:hover{ border-color:var(--gold-bright); color:var(--gold-bright); transform:translateY(-3px); }
.btn-ghost{
  background:rgba(244,232,211,.06); color:var(--cream); border-color:rgba(244,232,211,.18);
  padding:.7em 1.3em; font-size:.9rem;
}
.btn-ghost:hover{ background:rgba(244,232,211,.12); }
.btn-sm{ padding:.55em 1.1em; font-size:.85rem; border-radius:10px; }
.btn-danger{ background:rgba(195,24,36,.15); color:#ff8b8b; border-color:rgba(195,24,36,.4); }
.btn-danger:hover{ background:rgba(195,24,36,.3); }
.btn[disabled]{ opacity:.4; pointer-events:none; }
.btn-wa{ background:#1fae59; color:#fff; }
.btn-wa:hover{ background:#199249; transform:translateY(-3px); }

/* =========================== navbar =========================== */
.navbar{
  position:fixed; inset:0 0 auto 0; z-index:100;
  padding:1.1rem 0;
  transition:background .35s ease, padding .35s ease, box-shadow .35s ease;
}
.navbar .container{ display:flex; align-items:center; justify-content:space-between; gap:1rem; }
.navbar.scrolled{
  background:rgba(11,6,5,.92);
  backdrop-filter:blur(10px);
  padding:.6rem 0;
  box-shadow:0 10px 30px rgba(0,0,0,.4);
  border-bottom:1px solid var(--line);
}
.brand{ display:flex; align-items:center; gap:.7rem; }
.brand img{ height:46px; width:46px; object-fit:cover; border-radius:50%; border:2px solid var(--gold); background:#000; }
.brand-text{ font-family:var(--ff-display); font-size:1.35rem; letter-spacing:.08em; color:var(--cream); line-height:1; }
.brand-text span{ display:block; font-family:var(--ff-body); font-size:.6rem; letter-spacing:.3em; color:var(--gold); font-weight:600; }

.nav-links{ display:flex; align-items:center; gap:2rem; }
.nav-links a{
  font-size:.92rem; font-weight:500; color:var(--muted); position:relative; padding:.2rem 0;
  transition:color .25s ease;
}
.nav-links a::after{
  content:""; position:absolute; left:0; right:0; bottom:-4px; height:2px; background:var(--gold-bright);
  transform:scaleX(0); transform-origin:right; transition:transform .3s ease;
}
.nav-links a:hover{ color:var(--cream); }
.nav-links a:hover::after,
.nav-links a.active::after{ transform:scaleX(1); transform-origin:left; }
.nav-links a.active{ color:var(--gold-bright); }

.nav-actions{ display:flex; align-items:center; gap:.7rem; }
.nav-toggle{
  display:none; width:42px; height:42px; border-radius:10px; background:rgba(244,232,211,.08);
  border:1px solid var(--line); align-items:center; justify-content:center; color:var(--cream);
}

@media (max-width:900px){
  .nav-links{
    position:fixed; inset:0 0 0 auto; width:min(320px,80%); height:100vh;
    background:linear-gradient(180deg,#160b09,#0b0605);
    flex-direction:column; justify-content:center; align-items:flex-start; gap:1.6rem;
    padding:2rem 2.2rem; transform:translateX(100%); transition:transform .4s ease;
    border-left:1px solid var(--line); z-index:120;
  }
  .nav-links.open{ transform:translateX(0); }
  .nav-links a{ font-size:1.2rem; }
  .nav-toggle{ display:inline-flex; }
  .nav-actions .btn-primary{ display:none; }
}

/* =========================== hero =========================== */
.hero{
  position:relative; min-height:100vh; display:flex; align-items:center;
  overflow:hidden; padding-top:6rem;
}
.hero-media{ position:absolute; inset:0; z-index:0; }
.hero-media video, .hero-media img{
  width:100%; height:100%; object-fit:cover; position:absolute; inset:0;
}
.hero-media::after{
  content:""; position:absolute; inset:0;
  background:
    radial-gradient(ellipse at 50% 20%, rgba(140,16,21,.35), transparent 60%),
    linear-gradient(180deg, rgba(11,6,5,.55) 0%, rgba(11,6,5,.75) 55%, var(--bg) 100%);
}
.hero-content{ position:relative; z-index:2; width:100%; text-align:center; }
.hero-eyebrow{
  font-family:var(--ff-display); letter-spacing:.5em; color:var(--gold-bright);
  font-size:.95rem; text-transform:uppercase;
}
.hero-title{
  font-size:clamp(3.2rem, 10vw, 7.5rem);
  color:var(--cream);
  text-shadow:0 0 40px rgba(231,180,73,.45), 0 6px 30px rgba(0,0,0,.6);
  margin:.2rem 0 0;
  line-height:.95;
}
.hero-title .accent{
  color:var(--red-bright);
  -webkit-text-stroke:2px var(--gold-bright);
  text-shadow:0 0 26px rgba(195,24,36,.65);
}
.hero-script{ font-family:var(--ff-script); font-size:clamp(1.6rem,4vw,2.6rem); color:var(--gold-bright); margin-top:.4rem; }
.hero-desc{ max-width:560px; margin:1.4rem auto 0; color:var(--muted); font-size:1.05rem; }
.hero-cta{ display:flex; gap:1rem; justify-content:center; margin-top:2.3rem; flex-wrap:wrap; }
.hero-stats{
  display:flex; gap:2.6rem; justify-content:center; margin-top:3.4rem; flex-wrap:wrap;
}
.hero-stat b{ display:block; font-family:var(--ff-display); font-size:1.9rem; color:var(--gold-bright); }
.hero-stat span{ font-size:.78rem; letter-spacing:.18em; color:var(--muted); text-transform:uppercase; }
.scroll-cue{
  position:absolute; bottom:1.8rem; left:50%; transform:translateX(-50%); z-index:2;
  color:var(--gold); font-size:.7rem; letter-spacing:.3em; text-align:center; opacity:.8;
}
.scroll-cue .dot{
  width:6px; height:6px; border-radius:50%; background:var(--gold-bright); margin:.5rem auto 0;
  animation:scrollDot 1.6s ease-in-out infinite;
}
@keyframes scrollDot{ 0%,100%{ transform:translateY(0); opacity:1;} 50%{ transform:translateY(10px); opacity:.3;} }

/* =========================== ticker =========================== */
.ticker{
  background:var(--red); border-top:1px solid var(--line); border-bottom:1px solid var(--line);
  overflow:hidden; white-space:nowrap; padding:.9rem 0;
}
.ticker-track{ display:inline-flex; gap:2.4rem; animation:tickerScroll 26s linear infinite; }
.ticker-track span{
  font-family:var(--ff-display); font-size:1.25rem; letter-spacing:.12em; color:var(--gold-bright);
  display:inline-flex; align-items:center; gap:.9rem; text-transform:uppercase;
}
.ticker-track span::after{ content:"✦"; color:var(--cream); opacity:.7; }
@keyframes tickerScroll{ from{ transform:translateX(0);} to{ transform:translateX(-50%);} }

/* =========================== eventos =========================== */
.events-toolbar{
  display:flex; justify-content:center; flex-wrap:wrap; gap:.7rem; margin-bottom:2.6rem;
}
.chip{
  padding:.55em 1.3em; border-radius:999px; border:1px solid var(--line); background:rgba(244,232,211,.04);
  font-size:.85rem; letter-spacing:.04em; color:var(--muted); transition:all .25s ease;
}
.chip:hover{ color:var(--cream); border-color:var(--gold-dim); }
.chip.active{ background:var(--gold-bright); color:#1a0e08; border-color:var(--gold-bright); font-weight:600; }

.events-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(300px,1fr)); gap:1.8rem; }
.event-card{
  background:var(--bg-card); border:1px solid var(--line); border-radius:var(--radius);
  overflow:hidden; position:relative; box-shadow:var(--shadow); transition:transform .3s ease, box-shadow .3s ease;
  display:flex; flex-direction:column;
}
.event-card:hover{ transform:translateY(-8px); box-shadow:0 26px 60px rgba(0,0,0,.6); }
.event-media{ position:relative; aspect-ratio:4/5; overflow:hidden; }
.event-media img{ width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.event-card:hover .event-media img{ transform:scale(1.08); }
.event-media::after{
  content:""; position:absolute; inset:0;
  background:linear-gradient(180deg, rgba(11,6,5,0) 40%, rgba(11,6,5,.95) 100%);
}
.event-badge{
  position:absolute; top:.9rem; left:.9rem; z-index:2;
  background:rgba(11,6,5,.75); border:1px solid var(--gold-dim); color:var(--gold-bright);
  font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; padding:.4em .8em; border-radius:999px;
}
.event-date-badge{
  position:absolute; top:.9rem; right:.9rem; z-index:2; text-align:center;
  background:var(--red-bright); color:#fff; border-radius:10px; padding:.4em .7em; line-height:1.05;
  box-shadow:0 8px 18px rgba(0,0,0,.4);
}
.event-date-badge b{ display:block; font-family:var(--ff-display); font-size:1.15rem; }
.event-date-badge span{ font-size:.62rem; letter-spacing:.1em; text-transform:uppercase; }
.event-info{ position:relative; z-index:2; padding:1.3rem 1.3rem 1.5rem; margin-top:-3.2rem; }
.event-info h3{ font-size:1.5rem; color:var(--cream); line-height:1.05; }
.event-meta{ display:flex; flex-wrap:wrap; gap:.5rem 1rem; margin:.6rem 0 .8rem; color:var(--muted); font-size:.82rem; }
.event-meta span{ display:inline-flex; align-items:center; gap:.4em; }
.event-desc{ color:var(--muted); font-size:.9rem; margin-bottom:1rem; }
.event-actions{ display:flex; gap:.6rem; flex-wrap:wrap; }
.event-price{ font-family:var(--ff-display); color:var(--gold-bright); font-size:1rem; margin-bottom:.7rem; }
.empty-state{ text-align:center; color:var(--muted); padding:3rem 1rem; grid-column:1/-1; }

/* =========================== categorias =========================== */
.cats-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1.4rem; }
@media (max-width:900px){ .cats-grid{ grid-template-columns:repeat(2,1fr); } }
.cat-card{
  position:relative; border-radius:var(--radius); overflow:hidden; aspect-ratio:3/4;
  border:1px solid var(--line); box-shadow:var(--shadow);
}
.cat-card img{ width:100%; height:100%; object-fit:cover; transition:transform .6s ease; }
.cat-card:hover img{ transform:scale(1.1); }
.cat-card::after{ content:""; position:absolute; inset:0; background:linear-gradient(180deg, rgba(11,6,5,.1), rgba(11,6,5,.92)); }
.cat-label{ position:absolute; inset:auto 0 0 0; padding:1.2rem; z-index:2; }
.cat-label b{ font-family:var(--ff-display); font-size:1.3rem; color:var(--cream); display:block; }
.cat-label span{ font-size:.78rem; color:var(--gold-bright); letter-spacing:.08em; }

/* =========================== about / split =========================== */
.split{ display:grid; grid-template-columns:1fr 1fr; gap:3.2rem; align-items:center; }
@media (max-width:860px){ .split{ grid-template-columns:1fr; } }
.split-media{ position:relative; border-radius:var(--radius); overflow:hidden; box-shadow:var(--shadow); border:1px solid var(--line); }
.split-media img{ width:100%; aspect-ratio:4/3.2; object-fit:cover; }
.split-text p{ color:var(--muted); }
.tag-row{ display:flex; gap:.7rem; flex-wrap:wrap; margin:1.2rem 0 1.6rem; }
.tag-row span{
  border:1px solid var(--gold-dim); color:var(--gold-bright); padding:.4em 1em; border-radius:999px; font-size:.8rem;
}

/* =========================== pasos =========================== */
.steps{ display:grid; grid-template-columns:repeat(3,1fr); gap:1.8rem; }
@media (max-width:860px){ .steps{ grid-template-columns:1fr; } }
.step-card{
  background:var(--bg-card); border:1px solid var(--line); border-radius:var(--radius);
  padding:2.2rem 1.8rem; text-align:center; position:relative;
}
.step-num{
  width:56px; height:56px; margin:0 auto 1.1rem; border-radius:50%;
  display:flex; align-items:center; justify-content:center; font-family:var(--ff-display); font-size:1.5rem;
  background:linear-gradient(135deg,var(--gold-bright),var(--gold-dim)); color:#1a0e08;
}
.step-card h3{ font-size:1.4rem; margin-bottom:.6rem; }
.step-card p{ color:var(--muted); font-size:.92rem; }

/* =========================== galeria =========================== */
.gallery-grid{
  columns:4 220px; column-gap:1rem;
}
@media (max-width:700px){ .gallery-grid{ columns:2 160px; } }
.gallery-item{
  break-inside:avoid; margin-bottom:1rem; border-radius:14px; overflow:hidden; position:relative;
  border:1px solid var(--line); cursor:zoom-in;
}
.gallery-item img,.gallery-item video{ width:100%; display:block; transition:transform .5s ease; }
.gallery-item:hover img,.gallery-item:hover video{ transform:scale(1.06); }
.gallery-item .play-ico{
  position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
  background:rgba(11,6,5,.25); color:#fff; font-size:2rem; pointer-events:none;
}

.lightbox{
  position:fixed; inset:0; background:rgba(6,3,2,.94); z-index:300; display:none;
  align-items:center; justify-content:center; padding:2rem;
}
.lightbox.open{ display:flex; }
.lightbox img,.lightbox video{ max-width:min(92vw,900px); max-height:86vh; border-radius:10px; box-shadow:0 30px 80px rgba(0,0,0,.6); }
.lightbox-close{
  position:absolute; top:1.4rem; right:1.6rem; width:44px; height:44px; border-radius:50%;
  background:rgba(244,232,211,.08); color:var(--cream); border:1px solid var(--line); font-size:1.2rem;
}

/* =========================== ubicacion / contacto =========================== */
.contact-grid{ display:grid; grid-template-columns:1.1fr 1fr; gap:2.4rem; }
@media (max-width:900px){ .contact-grid{ grid-template-columns:1fr; } }
.contact-card{
  background:var(--bg-card); border:1px solid var(--line); border-radius:var(--radius); padding:2.2rem;
}
.contact-list{ display:grid; gap:1.1rem; margin-top:1.4rem; }
.contact-list li{ display:flex; gap:.9rem; align-items:flex-start; color:var(--muted); font-size:.94rem; }
.contact-list b{ color:var(--cream); display:block; }
.map-wrap{ border-radius:var(--radius); overflow:hidden; border:1px solid var(--line); box-shadow:var(--shadow); min-height:340px; }
.map-wrap iframe{ width:100%; height:100%; min-height:340px; border:0; filter:grayscale(.3) invert(.92) contrast(.9); }
.social-row{ display:flex; gap:.7rem; margin-top:1.4rem; }
.social-row a{
  width:42px; height:42px; border-radius:50%; border:1px solid var(--gold-dim); display:flex; align-items:center;
  justify-content:center; color:var(--gold-bright); transition:all .25s ease;
}
.social-row a:hover{ background:var(--gold-bright); color:#1a0e08; }

/* =========================== footer =========================== */
footer{ background:var(--bg-alt); border-top:1px solid var(--line); padding:3.6rem 0 1.6rem; }
.footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr; gap:2.4rem; }
@media (max-width:800px){ .footer-grid{ grid-template-columns:1fr; } }
.footer-grid h4{ color:var(--gold-bright); font-size:1rem; letter-spacing:.1em; margin-bottom:1rem; }
.footer-grid ul{ display:grid; gap:.6rem; }
.footer-grid a{ color:var(--muted); font-size:.9rem; }
.footer-grid a:hover{ color:var(--cream); }
.footer-bottom{
  margin-top:2.6rem; padding-top:1.6rem; border-top:1px solid var(--line);
  display:flex; justify-content:space-between; flex-wrap:wrap; gap:.8rem; font-size:.8rem; color:var(--muted);
}

/* whatsapp float */
.wa-float{
  position:fixed; bottom:1.6rem; right:1.6rem; z-index:150; width:58px; height:58px; border-radius:50%;
  background:#25D366; color:#fff; display:flex; align-items:center; justify-content:center; font-size:1.6rem;
  box-shadow:0 12px 30px rgba(0,0,0,.4); animation:waPulse 2.4s ease-in-out infinite;
}
@keyframes waPulse{ 0%,100%{ box-shadow:0 12px 30px rgba(37,211,102,.35);} 50%{ box-shadow:0 12px 30px rgba(37,211,102,.75);} }

/* misc */
.reveal{ opacity:0; transform:translateY(26px); transition:opacity .7s ease, transform .7s ease; }
.reveal.in{ opacity:1; transform:none; }
.page-hero{
  padding:9.5rem 0 3.5rem; text-align:center; background:
    radial-gradient(ellipse at 50% 0%, rgba(140,16,21,.35), transparent 60%), var(--bg);
  border-bottom:1px solid var(--line);
}
.badge-soon{ background:var(--red-bright); color:#fff; }

/* =========================== admin =========================== */
.admin-shell{ min-height:100vh; background:var(--bg); }
.admin-topbar{
  position:sticky; top:0; z-index:50; background:rgba(11,6,5,.95); backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line); padding:1rem 0;
}
.admin-topbar .container{ display:flex; align-items:center; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
.admin-main{ padding:2.4rem 0 5rem; }
.admin-grid{ display:grid; grid-template-columns:.9fr 1.1fr; gap:2rem; align-items:start; }
@media (max-width:960px){ .admin-grid{ grid-template-columns:1fr; } }

.panel{
  background:var(--bg-card); border:1px solid var(--line); border-radius:var(--radius);
  padding:1.8rem; box-shadow:var(--shadow);
}
.panel h2{ font-size:1.5rem; margin-bottom:.3rem; }
.panel-sub{ color:var(--muted); font-size:.85rem; margin-bottom:1.4rem; }

.form-grid{ display:grid; gap:1rem; }
.form-row{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
@media (max-width:520px){ .form-row{ grid-template-columns:1fr; } }
.field{ display:grid; gap:.4rem; }
.field label{ font-size:.78rem; letter-spacing:.06em; color:var(--gold-bright); text-transform:uppercase; }
.field input, .field select, .field textarea{
  background:rgba(244,232,211,.05); border:1px solid var(--line); border-radius:10px;
  padding:.7em .9em; color:var(--cream); font-family:inherit; font-size:.94rem; width:100%;
}
.field input:focus, .field select:focus, .field textarea:focus{
  outline:none; border-color:var(--gold-bright); background:rgba(244,232,211,.09);
}
.field textarea{ min-height:90px; resize:vertical; }
.field-hint{ font-size:.74rem; color:var(--muted); }
.img-pick{ display:flex; gap:.7rem; align-items:center; }
.img-pick img{ width:64px; height:64px; object-fit:cover; border-radius:10px; border:1px solid var(--line); }
.form-actions{ display:flex; gap:.7rem; margin-top:.4rem; flex-wrap:wrap; }
.thumb-strip{ display:flex; gap:.5rem; flex-wrap:wrap; margin-top:.5rem; }
.thumb-strip img{
  width:52px; height:52px; object-fit:cover; border-radius:8px; border:2px solid transparent; cursor:pointer; opacity:.7;
}
.thumb-strip img:hover, .thumb-strip img.picked{ border-color:var(--gold-bright); opacity:1; }

.admin-list{ display:grid; gap:.9rem; max-height:78vh; overflow:auto; padding-right:.3rem; }
.admin-row{
  display:flex; gap:1rem; background:var(--bg-card); border:1px solid var(--line); border-radius:14px;
  padding:.8rem; align-items:center;
}
.admin-row img{ width:64px; height:64px; object-fit:cover; border-radius:10px; flex:none; }
.admin-row .info{ flex:1; min-width:0; }
.admin-row .info h4{ font-family:var(--ff-display); font-size:1.15rem; color:var(--cream); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.admin-row .info p{ margin:.15rem 0 0; font-size:.78rem; color:var(--muted); }
.admin-row .row-actions{ display:flex; gap:.4rem; flex:none; }
.icon-btn{
  width:34px; height:34px; border-radius:8px; display:flex; align-items:center; justify-content:center;
  background:rgba(244,232,211,.06); border:1px solid var(--line); color:var(--cream);
}
.icon-btn:hover{ background:rgba(244,232,211,.14); }
.icon-btn.danger:hover{ background:rgba(195,24,36,.3); color:#ff8b8b; }

.toolbar-row{ display:flex; justify-content:space-between; align-items:center; gap:1rem; margin-bottom:1rem; flex-wrap:wrap; }
.search-box input{
  background:rgba(244,232,211,.05); border:1px solid var(--line); border-radius:10px; padding:.6em .9em;
  color:var(--cream); min-width:220px;
}
.toast{
  position:fixed; bottom:1.6rem; left:50%; transform:translate(-50%, 20px); z-index:400;
  background:var(--gold-bright); color:#1a0e08; padding:.8em 1.4em; border-radius:999px; font-weight:600;
  opacity:0; transition:all .3s ease; pointer-events:none; font-size:.9rem;
}
.toast.show{ opacity:1; transform:translate(-50%,0); }

.gate{
  min-height:100vh; display:flex; align-items:center; justify-content:center; padding:2rem;
  background:radial-gradient(ellipse at 50% 20%, rgba(140,16,21,.35), transparent 60%), var(--bg);
}
.gate-card{
  background:var(--bg-card); border:1px solid var(--line); border-radius:var(--radius); padding:2.6rem;
  width:min(380px,100%); text-align:center; box-shadow:var(--shadow);
}
.gate-card img{ width:64px; margin:0 auto 1rem; border-radius:50%; border:2px solid var(--gold); }
.gate-card input{
  width:100%; margin:1.2rem 0 1rem; background:rgba(244,232,211,.05); border:1px solid var(--line);
  border-radius:10px; padding:.8em; color:var(--cream); text-align:center; letter-spacing:.2em;
}
.gate-error{ color:#ff8b8b; font-size:.82rem; min-height:1.2em; }
.stat-row{ display:flex; gap:1rem; flex-wrap:wrap; margin-bottom:1.6rem; }
.stat-pill{
  flex:1; min-width:120px; background:var(--bg-card); border:1px solid var(--line); border-radius:14px;
  padding:1rem; text-align:center;
}
.stat-pill b{ font-family:var(--ff-display); font-size:1.7rem; color:var(--gold-bright); display:block; }
.stat-pill span{ font-size:.72rem; color:var(--muted); letter-spacing:.1em; text-transform:uppercase; }
