
body{
  font-family:Arial, sans-serif;
  background:linear-gradient(135deg,#f4f9ff 0%,#fff 55%,#e9f3ff 100%);
  margin:0;padding:20px;
}
h2{text-align:center;color:#1769b0;font-size:1.6em;}
form{
  background:#fff;padding:25px;border-radius:12px;
  box-shadow:0 4px 10px rgba(0,0,0,0.1);
  max-width:900px;margin:20px auto;
}
label{display:block;margin-top:14px;color:#444;font-weight:bold;font-size:1.1em;}
input,select,textarea{
  padding:12px;font-size:16px;border:1px solid #ccc;border-radius:8px;
  margin-top:6px;width:100%;box-sizing:border-box;
}
input[type=number].small{width:100px;text-align:center;}
input[type=number].pack-qty{
  appearance:auto;
  -moz-appearance:auto;
  font-size:18px;
  font-weight:bold;
  padding-right:4px;
}
input[type=number].pack-qty::-webkit-inner-spin-button,
input[type=number].pack-qty::-webkit-outer-spin-button{
  opacity:1;
  width:24px;
  height:34px;
  cursor:pointer;
}
.opcion-adultos{
  display:grid;
  grid-template-columns:26px minmax(0,1fr);
  align-items:start;
  column-gap:8px;
  width:100%;
  box-sizing:border-box;
}
.opcion-adultos input[type=checkbox]{
  width:22px;
  height:22px;
  min-width:22px;
  margin:1px 0 0;
  padding:0;
}
.opcion-adultos span{
  min-width:0;
  text-align:left;
  line-height:1.35;
}
.opcion-adultos small{display:block;margin-top:3px;}
textarea{min-height:80px;resize:vertical;}
button{
  margin-top:20px;padding:14px 22px;font-size:18px;
  background:#1769b0;border:2px solid #111;border-radius:10px;color:#111;
  font-weight:bold;cursor:pointer;transition:.3s;width:100%;
}
button:hover{background:#111;color:#1769b0;border-color:#1769b0;}
button[disabled]{opacity:.6;cursor:not-allowed;}
.grid-2,.grid-3{display:grid;gap:15px;}
.grid-2{grid-template-columns:1fr 1fr;}
.grid-3{grid-template-columns:1fr 1fr 1fr;}
.campo-centro-compacto{
  width:170px;
  max-width:100%;
}
.fila-fecha,
.fila-hora-tipo{
  display:grid;
  gap:15px;
  align-items:start;
}
.fila-fecha{grid-template-columns:minmax(0,1fr) minmax(0,1fr);}
.fila-hora-tipo{grid-template-columns:minmax(0,.7fr) minmax(0,1.3fr);}
.fila-fecha > *,
.fila-hora-tipo > *{min-width:0;}
.campos-menus{
  display:grid;
  grid-template-columns:repeat(5, 1fr);
  gap:15px;
}
.campos-menus input[type=number]{
  width:100%;
  text-align:center;
}
.note{color:green;text-align:center;font-weight:bold;white-space:pre-line;font-size:1.1em;}
.warning{color:red;font-weight:bold;text-align:center;font-size:1.1em;}
.helper{margin-top:8px;text-align:center;font-size:.95em;color:#333;opacity:.9;}
body.loading{overflow:hidden;}
#overlay{
  position:fixed;inset:0;background:rgba(255,255,255,0.92);
  display:none;align-items:center;justify-content:center;z-index:9999;
}
#overlay.show{display:flex;}
.loader-wrap{text-align:center;color:#333;}
.spinner{
  width:70px;height:70px;border:6px solid #f3f3f3;
  border-top:6px solid #1769b0;border-radius:50%;
  margin:0 auto 16px;animation:spin 1s linear infinite;
}
@keyframes spin{to{transform:rotate(360deg);}}
.loader-text{font-weight:bold;font-size:1.1em;}
#toast-container{
  position:fixed;left:50%;bottom:24px;transform:translateX(-50%);
  z-index:10000;display:flex;flex-direction:column;gap:10px;
  align-items:center;pointer-events:none;
}
.toast{
  min-width:260px;max-width:90vw;background:#333;color:#fff;border-radius:10px;
  padding:12px 16px;box-shadow:0 8px 24px rgba(0,0,0,0.2);
  opacity:0;transform:translateY(10px);animation:toast-in .25s ease forwards;
}
.toast.info{background:#2b6cb0;}
.toast.warn{background:#b7791f;}
.toast.error{background:#c53030;}
.toast.success{background:#2f855a;}
@keyframes toast-in{to{opacity:1;transform:translateY(0);}}
@keyframes toast-out{to{opacity:0;transform:translateY(8px);}}

/* resaltado invalid */
input.invalid, select.invalid{
  border-color:#c53030;box-shadow:0 0 0 3px rgba(197,48,48,.15);
}

/* día semana como indicador */
#dia_semana_txt{
  background:#f9fafb;
  border:1px dashed #cbd5e1;
  font-weight:bold;
  color:#111827;
}

@media (max-width:1000px){
  .campos-menus{grid-template-columns:repeat(2, 1fr);}
}
@media (max-width:768px){
  .grid-2,.grid-3{grid-template-columns:1fr;}
  input[type=number].small{width:100%;}
  .fila-fecha,.fila-hora-tipo{gap:8px;}
  .fila-fecha label,.fila-hora-tipo label{font-size:.95em;}
  .fila-fecha input,.fila-hora-tipo input,.fila-hora-tipo select{
    padding:9px 7px;
    font-size:14px;
  }
}
.summary-card{
  background:#fff;max-width:900px;margin:24px auto;padding:24px;
  border-radius:12px;box-shadow:0 10px 30px rgba(0,0,0,.08);
}
.summary-card h3{margin-top:0;margin-bottom:8px;}
.summary-warnings{background:#fff8e5;border:1px solid #f6c453;color:#6b4e00;padding:12px;border-radius:10px;margin-top:14px;}
.summary-warnings ul{margin:6px 0 0 18px;}
.summary-footer{margin-top:16px;color:#333;}
a.btn{
  display:inline-block;padding:10px 16px;background:#1769b0;
  color:#111 !important;border-radius:8px;text-decoration:none;font-weight:bold
}
a.btn:hover{background:#111;color:#1769b0 !important;}
.vertigo-brand{
  max-width:900px;margin:0 auto 18px;padding:14px 22px;box-sizing:border-box;
  display:flex;align-items:center;justify-content:center;gap:20px;
  background:#050505;border:2px solid #1769b0;border-radius:14px;
  box-shadow:0 10px 28px rgba(0,0,0,.35);color:#fff;text-align:left;
}
.vertigo-brand img{width:105px;max-height:85px;object-fit:contain;}
.vertigo-brand strong{display:block;color:#1769b0;font-size:1.75rem;letter-spacing:1px;}
.vertigo-brand span{display:block;font-size:1.05rem;margin-top:3px;}
form,.summary-card{border:2px solid #1769b0;}
input:focus,select:focus,textarea:focus{outline:none;border-color:#d4ad00;box-shadow:0 0 0 3px rgba(255,210,28,.25);}
@media (max-width:520px){.vertigo-brand{gap:12px}.vertigo-brand img{width:78px}.vertigo-brand strong{font-size:1.3rem}}

body{color:#163b5e}h2{color:#145d9c}.vertigo-brand{background:#fff!important;border-color:#9cc4e9!important;color:#145d9c!important}.vertigo-brand strong{color:#145d9c!important}.vertigo-brand span{color:#526d84!important}button{background:#1769b0;color:#fff;border-color:#1769b0}button:hover{background:#114f89;color:#fff;border-color:#114f89}main{margin:0;padding:0;max-width:none}.panel{background:transparent;border:0;box-shadow:none;border-radius:0;padding:0;margin:0 0 22px}.panel h2{font-size:20px;text-align:left}.grid{display:grid;grid-template-columns:1fr 1fr;gap:15px}.wide{grid-column:span 2}.notice{max-width:900px;margin:15px auto;padding:12px 15px;border:1px solid #a5c9e8;border-radius:8px;background:#edf6ff;color:#174d7b;line-height:1.5}.error{border-color:#eaa6a6;background:#fff0f0;color:#982424}.success{border-color:#95c6ab;background:#edf8f2;color:#215d3b}.muted{font-size:13px;line-height:1.5;color:#587186}.check{display:flex;align-items:center;gap:8px}.check input{width:22px;margin:0}.summary{white-space:pre-wrap;line-height:1.7}.summary-box{max-width:900px;margin:20px auto;padding:25px;background:#fff;border:1px solid #bad2e9;border-radius:12px}.admin-nav{text-align:center;margin:10px auto}.admin-nav a{color:#1769b0;margin:0 10px;font-size:13px}.small{max-width:110px}.menu-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px}.total{font-weight:bold;font-size:20px;color:#145d9c}.activity-box{padding:16px;border:1px solid #b6cde3;background:#f0f7ff;border-radius:8px}.brand-bolera-logo{width:100px!important;height:78px!important;object-fit:contain}@media(max-width:650px){.grid,.menu-grid{grid-template-columns:1fr 1fr}.wide{grid-column:span 2}}

.grid2{display:grid;grid-template-columns:1fr 1fr;gap:15px}.menu-grid{grid-template-columns:repeat(3,minmax(0,1fr))}input:focus,select:focus,textarea:focus{border-color:#1769b0;box-shadow:0 0 0 3px #d8eafa}.activity-box{margin-top:22px}.activity-box h3{margin-top:0}.activity-box .check{margin-top:24px;font-size:15px}@media(max-width:520px){.grid2{grid-template-columns:1fr}.fila-hora-tipo{grid-template-columns:1fr}.vertigo-brand strong{font-size:1.15rem}body{padding:12px}h2{font-size:1.25rem}form{padding:18px}}
