:root{
  --noche:#16101B;
  --barra:#221826;
  --barra-alta:#2C2033;
  --luz:#F0A830;
  --botella:#2E6B54;
  --vino:#9B2748;
  --papel:#F3EDE2;
  --tinta:#1B1520;
  --humo:rgba(243,237,226,.82);
  --linea:rgba(243,237,226,.18);
  --r:14px;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
body{
  background:var(--noche);
  color:var(--papel);
  font-family:"Space Grotesk",system-ui,sans-serif;
  -webkit-font-smoothing:antialiased;
  line-height:1.5;
}
body::before{
  content:"";position:fixed;inset:0;pointer-events:none;z-index:0;
  background:
    radial-gradient(60vw 40vw at 78% -6%, rgba(240,168,48,.16), transparent 62%),
    radial-gradient(50vw 40vw at 6% 104%, rgba(155,39,72,.20), transparent 60%);
}
.wrap{position:relative;z-index:1;max-width:1180px;margin:0 auto;padding:0 20px 80px}
.top{padding:34px 0 8px}
.marca{display:flex;align-items:baseline;gap:14px;flex-wrap:wrap}
.logo{
  font-family:"Bodoni Moda",Georgia,serif;
  font-weight:800;font-size:clamp(40px,7vw,68px);
  letter-spacing:.14em;line-height:.9;margin:0;
}
.logo em{font-style:italic;color:var(--luz)}
.claim{font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--humo)}
.pitch{max-width:52ch;margin:18px 0 0;color:var(--humo);font-size:15px}
.pitch b{color:var(--papel);font-weight:500}
.tabs{display:flex;gap:6px;flex-wrap:wrap;margin:26px 0 34px;border-bottom:1px solid var(--linea);padding-bottom:14px}
.tab{
  appearance:none;border:1px solid var(--linea);background:transparent;color:var(--humo);
  font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;
  padding:9px 14px;border-radius:999px;cursor:pointer;transition:.18s;
}
.tab:hover{color:var(--papel);border-color:rgba(243,237,226,.35)}
.tab[aria-selected="true"]{background:var(--luz);border-color:var(--luz);color:var(--tinta);font-weight:700}
.tab:focus-visible{outline:2px solid var(--luz);outline-offset:3px}
.panel{display:none;animation:sube .35s ease both}
.panel.on{display:block}
@keyframes sube{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}
.rotulo{font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--luz);margin:0 0 6px}
.h2{font-family:"Bodoni Moda",Georgia,serif;font-size:clamp(24px,3.4vw,34px);font-weight:600;margin:0 0 10px;letter-spacing:.01em}
.sub{color:var(--humo);max-width:60ch;margin:0 0 26px;font-size:14.5px}
.fila{display:flex;gap:26px;flex-wrap:wrap;align-items:flex-start}
.tel{
  width:100%;max-width:480px;background:transparent;border:none;
  border-radius:0;padding:0;box-shadow:none;
  margin:0 auto;
}
.tel-in{background:transparent;border-radius:0;overflow:visible;min-height:auto;display:flex;flex-direction:column}
.status{display:none}
.pant{padding:0;flex:1}
.pie-tel{display:none}
.cab-pant{display:flex;justify-content:space-between;align-items:center;margin:8px 0 18px;width:100%}
.cab-pant h3{font-family:"Bodoni Moda",serif;font-size:30px;font-weight:700;margin:0;letter-spacing:-.01em;white-space:nowrap}
.cab-pant span{font-family:"JetBrains Mono",monospace;font-size:11px;color:var(--humo);letter-spacing:.08em;white-space:nowrap}
.noche-card{
  background:rgba(28,19,36,.65);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  border:1px solid rgba(243,237,226,.09);border-radius:18px;
  padding:18px 20px;margin-bottom:14px;position:relative;overflow:hidden;
  transition:transform .25s cubic-bezier(0.16,1,0.3,1), border-color .25s ease, box-shadow .25s ease;
}
.noche-card:hover{
  transform:translateY(-2px);border-color:rgba(240,168,48,.35);
  box-shadow:0 12px 30px -8px rgba(0,0,0,.6);
}
.noche-card::before{content:"";position:absolute;left:0;top:0;bottom:0;width:3.5px;background:var(--linea)}
.noche-card.ok::before{background:var(--botella)}
.noche-card.escaso::before{background:var(--luz)}
.noche-card.lleno{opacity:.5}
.dia{font-family:"JetBrains Mono",monospace;font-size:10px;letter-spacing:.16em;text-transform:uppercase;color:var(--humo)}
.local{font-family:"Bodoni Moda",serif;font-size:19px;margin:3px 0 2px;font-weight:600}
.detalle{font-size:12.5px;color:var(--humo)}
.linea-precio{display:flex;justify-content:space-between;align-items:flex-end;margin-top:12px;gap:8px}
.precio{font-family:"JetBrains Mono",monospace;font-size:20px;font-weight:700}
.precio small{font-size:10px;color:var(--humo);font-weight:400;display:block;letter-spacing:.06em}
.chip{
  font-family:"JetBrains Mono",monospace;font-size:9.5px;letter-spacing:.1em;text-transform:uppercase;
  padding:4px 8px;border-radius:999px;white-space:nowrap;
}
.chip.verde{background:rgba(46,107,84,.22);color:#79D3AC;border:1px solid rgba(46,107,84,.5)}
.chip.ambar{background:rgba(240,168,48,.16);color:var(--luz);border:1px solid rgba(240,168,48,.45)}
.chip.vino{background:rgba(155,39,72,.2);color:#F08CA8;border:1px solid rgba(155,39,72,.5)}
.chip.gris{background:rgba(243,237,226,.07);color:var(--humo);border:1px solid var(--linea)}
.barra-balance{height:5px;border-radius:99px;background:rgba(243,237,226,.1);display:flex;overflow:hidden;margin-top:11px}
.barra-balance i{display:block;height:100%}
.leyenda{display:flex;justify-content:space-between;font-family:"JetBrains Mono",monospace;font-size:9.5px;color:var(--humo);margin-top:5px;letter-spacing:.08em}
.aviso{
  border:1px dashed rgba(240,168,48,.45);border-radius:var(--r);padding:11px 13px;
  font-size:12.5px;color:var(--luz);margin:14px 0 4px;background:rgba(240,168,48,.05)
}
.aviso b{color:var(--papel);font-weight:500}
.reserva{
  background:var(--papel);color:var(--tinta);border-radius:8px;padding:20px 18px 16px;
  font-family:"JetBrains Mono",monospace;position:relative;margin-top:4px;
  box-shadow:0 20px 40px -22px rgba(0,0,0,.9);
}
.reserva::after{
  content:"";position:absolute;left:0;right:0;bottom:-9px;height:10px;
  background:radial-gradient(circle at 5px -1px, transparent 5px, var(--papel) 5.5px);
  background-size:10px 10px;
}
.res-tit{font-family:"Bodoni Moda",serif;font-size:22px;letter-spacing:.2em;text-align:center;margin:0 0 2px;font-weight:800}
.res-sub{text-align:center;font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:#6B5F55;margin-bottom:14px}
.rule{border-top:1px dashed #B9AC9C;margin:11px 0}
.kv{display:flex;justify-content:space-between;font-size:11.5px;padding:3px 0;gap:10px}
.kv span:first-child{color:#6B5F55}
.kv b{font-weight:700}
.mesa-num{font-family:"Bodoni Moda",serif;font-size:52px;line-height:.9;text-align:center;font-weight:800;margin:6px 0 0}
.mesa-lab{text-align:center;font-size:9.5px;letter-spacing:.2em;text-transform:uppercase;color:#6B5F55;margin-bottom:8px}
.qr{width:96px;height:96px;margin:12px auto 6px;display:grid;grid-template-columns:repeat(11,1fr);grid-template-rows:repeat(11,1fr)}
.qr i{background:var(--tinta)}
.res-pie{text-align:center;font-size:9.5px;letter-spacing:.1em;color:#6B5F55;margin-top:8px;text-transform:uppercase}
.ronda-head{display:flex;justify-content:space-between;align-items:center;margin:14px 0 6px}
.ronda-n{font-family:"JetBrains Mono",monospace;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--luz)}
.crono{
  font-family:"JetBrains Mono",monospace;font-weight:700;font-size:62px;letter-spacing:-.02em;
  text-align:center;margin:6px 0 2px;font-variant-numeric:tabular-nums;
}
.crono.fin{color:var(--vino); animation: pulseWarning 0.8s infinite alternate;}
.progreso{height:3px;background:rgba(243,237,226,.12);border-radius:99px;overflow:hidden}
.progreso i{display:block;height:100%;background:var(--luz);transition:width 1s linear}
.frente{
  background:var(--barra);border:1px solid var(--linea);border-radius:var(--r);padding:16px;margin:16px 0 12px;text-align:center;
}
.frente h4{font-family:"Bodoni Moda",serif;font-size:28px;margin:0 0 2px;font-weight:600}
.frente p{margin:0 0 12px;font-size:12px;color:var(--humo)}
.tags{display:flex;gap:6px;justify-content:center;flex-wrap:wrap}
.acciones{display:flex;gap:10px;margin-top:14px}
.btn{
  flex:1;padding:13px;border-radius:12px;border:1px solid var(--linea);background:transparent;color:var(--papel);
  font-family:"Space Grotesk",sans-serif;font-size:14px;font-weight:500;cursor:pointer;transition:.16s;
  width:100%;
}
.btn:hover{background:rgba(243,237,226,.06)}
.btn.si{background:var(--botella);border-color:var(--botella);color:#F3EDE2;font-weight:700}
.btn.si:hover{filter:brightness(1.12)}
.btn.pri, .btn.amber, .btn.ambar{background:var(--luz);border-color:var(--luz);color:var(--tinta);font-weight:700}
.btn.pri:hover, .btn.amber:hover, .btn.ambar:hover{filter:brightness(1.12)}
.btn:focus-visible{outline:2px solid var(--luz);outline-offset:2px}
.privado{text-align:center;font-family:"JetBrains Mono",monospace;font-size:9.5px;color:var(--humo);margin-top:9px;letter-spacing:.08em}
.mapa{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:16px}
.mesa{
  aspect-ratio:1;border:1px solid var(--linea);border-radius:9px;display:grid;place-items:center;
  font-family:"JetBrains Mono",monospace;font-size:11px;color:var(--humo);
}
.mesa.tuya{background:var(--luz);color:var(--tinta);border-color:var(--luz);font-weight:700}
.mesa.siguiente{border-color:var(--luz);color:var(--luz);border-style:dashed}
.mesa.libre{opacity:.35}
.campana{
  border:1px solid rgba(240,168,48,.45);background:rgba(240,168,48,.08);border-radius:var(--r);
  padding:12px;margin-top:14px;font-size:12.5px;color:var(--luz);display:flex;gap:10px;align-items:center;
}
.campana b{color:var(--papel);font-weight:500}
.panel-local{background:var(--barra);border:1px solid var(--linea);border-radius:20px;overflow:hidden}
.pl-head{padding:20px 22px;border-bottom:1px solid var(--linea);display:flex;justify-content:space-between;align-items:center;gap:14px;flex-wrap:wrap}
.pl-head h3{font-family:"Bodoni Moda",serif;font-size:24px;margin:0;font-weight:600}
.pl-head p{margin:2px 0 0;font-family:"JetBrains Mono",monospace;font-size:10px;letter-spacing:.14em;text-transform:uppercase;color:var(--humo)}
.kpis{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));border-bottom:1px solid var(--linea)}
.kpi{padding:18px 20px;border-right:1px solid var(--linea)}
.kpi:last-child{border-right:none}
.kpi .n{font-family:"JetBrains Mono",monospace;font-size:27px;font-weight:700;letter-spacing:-.02em}
.kpi .n.up{color:#79D3AC}
.kpi .l{font-size:11px;color:var(--humo);margin-top:3px}
.kpi .d{font-family:"JetBrains Mono",monospace;font-size:9.5px;color:var(--luz);margin-top:5px;letter-spacing:.06em}
.pl-body{display:grid;grid-template-columns:1.25fr .85fr;gap:0}
.pl-col{padding:22px}
.pl-col+.pl-col{border-left:1px solid var(--linea)}
.pl-tit{font-family:"JetBrains Mono",monospace;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--humo);margin:0 0 14px}
.semana{display:grid;grid-template-columns:repeat(7,1fr);gap:7px;margin-bottom:20px}
.dia-col{text-align:center}
.dia-col .d{font-family:"JetBrains Mono",monospace;font-size:9.5px;color:var(--humo);letter-spacing:.08em;margin-bottom:6px}
.torre{height:104px;background:rgba(243,237,226,.06);border-radius:6px;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;position:relative}
.torre i{display:block;background:rgba(243,237,226,.22)}
.torre.valle i{background:var(--luz)}
.torre .pct{position:absolute;top:6px;left:0;right:0;font-family:"JetBrains Mono",monospace;font-size:9px;color:var(--humo)}
.torre.valle .pct{color:var(--tinta);top:auto;bottom:6px;font-weight:700}
.prox{border:1px solid rgba(240,168,48,.4);background:rgba(240,168,48,.06);border-radius:var(--r);padding:16px}
.prox h4{margin:0 0 3px;font-family:"Bodoni Moda",serif;font-size:20px;font-weight:600}
.prox .meta{font-family:"JetBrains Mono",monospace;font-size:10px;color:var(--humo);letter-spacing:.1em;text-transform:uppercase}
.lista{margin:14px 0 0;padding:0;list-style:none;font-size:13px}
.lista li{display:flex;justify-content:space-between;padding:7px 0;border-top:1px solid var(--linea);gap:12px}
.lista li b{font-family:"JetBrains Mono",monospace;font-weight:700}
.acciones-local{display:flex;gap:8px;margin-top:16px;flex-wrap:wrap}
.btn-mini{
  border:1px solid var(--linea);background:transparent;color:var(--papel);border-radius:9px;padding:9px 13px;
  font-size:12.5px;cursor:pointer;font-family:"Space Grotesk",sans-serif;transition:.16s
}
.btn-mini:hover{background:rgba(243,237,226,.07)}
.btn-mini.pri{background:var(--luz);border-color:var(--luz);color:var(--tinta);font-weight:700}
.cuenta{background:var(--papel);color:var(--tinta);border-radius:8px;padding:18px;font-family:"JetBrains Mono",monospace;position:relative}
.cuenta::after{content:"";position:absolute;left:0;right:0;bottom:-9px;height:10px;background:radial-gradient(circle at 5px -1px, transparent 5px, var(--papel) 5.5px);background-size:10px 10px}
.cuenta h4{font-family:"Bodoni Moda",serif;text-align:center;font-size:17px;letter-spacing:.14em;margin:0 0 3px;font-weight:800}
.cuenta .fecha{text-align:center;font-size:9px;letter-spacing:.16em;color:#6B5F55;text-transform:uppercase;margin-bottom:12px}
.total{display:flex;justify-content:space-between;font-size:15px;font-weight:700;padding-top:8px;border-top:2px solid var(--tinta);margin-top:8px}
.compara{font-size:10px;color:#6B5F55;text-align:center;margin-top:10px;line-height:1.5}
.compara b{color:#2E6B54}
.grid3{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px}
.caja{background:var(--barra);border:1px solid var(--linea);border-radius:var(--r);padding:20px}
.caja h4{font-family:"Bodoni Moda",serif;font-size:20px;margin:0 0 4px;font-weight:600}
.caja .quien{font-family:"JetBrains Mono",monospace;font-size:9.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--luz);margin-bottom:12px}
.caja ul{margin:0;padding-left:16px;font-size:13.5px;color:var(--humo)}
.caja li{margin-bottom:7px}
.caja li b{color:var(--papel);font-weight:500}
.flujo{display:flex;gap:12px;align-items:stretch;flex-wrap:wrap;margin:26px 0}
.nodo{flex:1;min-width:180px;border:1px solid var(--linea);border-radius:var(--r);padding:16px;background:var(--barra)}
.nodo .eur{font-family:"JetBrains Mono",monospace;font-size:26px;font-weight:700}
.nodo .qui{font-family:"JetBrains Mono",monospace;font-size:9.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--humo);margin-bottom:6px}
.nodo p{margin:6px 0 0;font-size:12.5px;color:var(--humo)}
.nodo.local{border-color:rgba(46,107,84,.55)}
.nodo.local .eur{color:#79D3AC}
.nodo.plat{border-color:rgba(240,168,48,.5)}
.nodo.plat .eur{color:var(--luz)}
table{width:100%;border-collapse:collapse;font-size:13.5px;margin-top:8px}
th,td{text-align:left;padding:10px 8px;border-bottom:1px solid var(--linea)}
th{font-family:"JetBrains Mono",monospace;font-size:9.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--humo);font-weight:400}
td:last-child,th:last-child{text-align:right;font-family:"JetBrains Mono",monospace}
tr.tot td{border-bottom:none;border-top:2px solid var(--linea);font-weight:700;color:var(--luz)}
footer{margin-top:60px;padding-top:22px;border-top:1px solid var(--linea);font-family:"JetBrains Mono",monospace;font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:var(--humo);display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap}
@media (max-width:860px){
  .pl-body{grid-template-columns:1fr}
  .pl-col+.pl-col{border-left:none;border-top:1px solid var(--linea)}
  .kpi{border-right:none;border-bottom:1px solid var(--linea)}
  .tel{margin:0 auto}
}
@media (prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
}

/* Modal de Completar Perfil */
.modal-overlay {
  position: fixed;
  inset: 0;
  background: rgba(22, 16, 27, 0.9);
  display: none;
  align-items: center;
  justify-content: center;
  z-index: 1000;
  padding: 20px;
}
.modal-overlay.active {
  display: flex;
}
.modal-overlay .tel {
  width: 320px;
}
.modal-overlay select {
  width: 100%;
  padding: 12px;
  border-radius: 8px;
  border: 1px solid var(--linea);
  background: rgba(243,237,226,.06);
  color: var(--papel);
  outline: none;
  font-family: 'Space Grotesk', sans-serif;
  margin-bottom: 10px;
}
.modal-overlay select option {
  background: var(--noche);
  color: var(--papel);
}
.icon-svg {
  width: 18px;
  height: 18px;
  fill: currentColor;
  display: inline-block;
  vertical-align: middle;
}
.lobby-box {
  background: var(--barra);
  border: 1px solid var(--linea);
  border-radius: var(--r);
  padding: 20px;
  text-align: center;
  margin-bottom: 20px;
}
