:root{
  --booking-bg:#06111d;
  --booking-bg-2:#081827;
  --booking-panel:#0b1724;
  --booking-panel-2:#0e1d2c;
  --booking-line:#20364a;
  --booking-line-soft:#172a3b;
  --booking-text:#f4f8fb;
  --booking-muted:#a9bdcc;
  --booking-blue:#1683ff;
  --booking-blue-2:#0b5f9f;
  --booking-blue-soft:rgba(22,131,255,.13);
  --booking-danger:#ff6b6b;
}

html,body{background:var(--booking-bg);color:var(--booking-text)}
body{min-height:100vh}

.site-header{
  background:#071522!important;
  border-bottom:1px solid var(--booking-line-soft)!important;
  box-shadow:0 8px 28px rgba(0,0,0,.18);
}
.site-header .nav{background:transparent}
.site-header .btn-secondary{
  color:#dceaf4!important;
  background:#0b1b29!important;
  border-color:#2a455d!important;
}
.site-header .btn-secondary:hover{
  color:#fff!important;
  border-color:var(--booking-blue)!important;
  background:#0d2437!important;
}

.booking-shell{
  min-height:75vh;
  background:
    radial-gradient(circle at 9% 18%,rgba(0,103,255,.20),transparent 27%),
    radial-gradient(circle at 87% 8%,rgba(0,157,255,.08),transparent 23%),
    linear-gradient(180deg,#06111d 0%,#07131f 48%,#081827 100%);
  color:var(--booking-text);
  padding:64px 0 80px;
}

.booking-head{max-width:900px}
.booking-head .eyebrow{color:#36a0ff!important;letter-spacing:.16em;font-weight:900}
.booking-head h1{
  color:#fff;
  font-size:clamp(2rem,5vw,3.5rem);
  line-height:1.05;
  margin-bottom:16px;
  text-shadow:0 4px 24px rgba(0,0,0,.22);
}
.booking-head p{color:#b6c8d6;font-size:1.05rem}

.booking-notice{
  margin-top:22px;
  padding:16px 18px;
  border:1px solid rgba(22,131,255,.45);
  border-radius:14px;
  background:linear-gradient(135deg,rgba(22,131,255,.13),rgba(5,24,40,.72));
  color:#d9e9f5;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.025);
}
.booking-notice strong{color:#fff}
.booking-notice.soft{margin:18px 0}

.booking-card{
  margin-top:30px;
  background:linear-gradient(180deg,rgba(12,25,38,.98),rgba(7,19,31,.98));
  border:1px solid var(--booking-line);
  border-radius:20px;
  padding:26px;
  box-shadow:0 24px 65px rgba(0,0,0,.34),inset 0 1px 0 rgba(255,255,255,.025);
}

.steps{
  display:flex;
  gap:8px;
  overflow:auto;
  padding-bottom:18px;
  border-bottom:1px solid var(--booking-line-soft);
  margin-bottom:24px;
}
.steps span{
  white-space:nowrap;
  padding:8px 12px;
  border-radius:999px;
  background:#122231;
  border:1px solid #1e3447;
  color:#8fa7b8;
  font-size:.86rem;
  font-weight:800;
}
.steps span.active{
  background:linear-gradient(135deg,#0d69b0,#1683ff);
  border-color:#1683ff;
  color:#fff;
  box-shadow:0 8px 20px rgba(22,131,255,.18);
}

.booking-step{display:none}
.booking-step.active{display:block}
.booking-step h2{margin-bottom:18px;color:#fff}
.booking-step>p{color:#a9bdcc}

.booking-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.booking-grid label,.booking-wide{
  display:flex;
  flex-direction:column;
  gap:7px;
  font-weight:700;
  color:#d9e5ee;
}
.booking-grid input,.booking-grid select,.booking-wide input,.booking-wide textarea{
  width:100%;
  border:1px solid #2a4053;
  border-radius:11px;
  padding:11px 12px;
  background:#0b1825;
  color:#f4f8fb;
  outline:none;
  transition:border-color .18s ease,box-shadow .18s ease,background .18s ease;
  color-scheme:dark;
}
.booking-grid input::placeholder,.booking-wide textarea::placeholder{color:#70889a}
.booking-grid input:focus,.booking-grid select:focus,.booking-wide input:focus,.booking-wide textarea:focus{
  border-color:var(--booking-blue);
  background:#0c1c2b;
  box-shadow:0 0 0 3px rgba(22,131,255,.13);
}
.booking-grid input:disabled,.booking-grid select:disabled,.booking-wide input:disabled{
  background:#101c27;
  color:#8398a8;
  border-color:#223545;
  opacity:1;
}
.booking-grid select option{background:#0b1825;color:#f4f8fb}
.booking-wide{margin-top:16px}
.booking-wide small{color:#91a8b8;font-weight:600}

.person-toggle{display:flex;gap:8px;margin-bottom:20px}
.person-toggle button{
  border:1px solid #2a4053;
  background:#0b1825;
  color:#a9bdcc;
  padding:10px 14px;
  border-radius:10px;
  font-weight:800;
  cursor:pointer;
  transition:.18s ease;
}
.person-toggle button:hover{border-color:#3b5d76;color:#eaf4fb}
.person-toggle button.active{
  background:linear-gradient(135deg,#0d69b0,#1683ff);
  color:#fff;
  border-color:#1683ff;
  box-shadow:0 8px 20px rgba(22,131,255,.18);
}

.booking-actions{display:flex;justify-content:flex-end;gap:10px;margin-top:26px}
.booking-card .btn-primary{
  background:linear-gradient(135deg,#0d69b0,#1683ff)!important;
  color:#fff!important;
  border-color:#1683ff!important;
}
.booking-card .btn-primary:hover{filter:brightness(1.08)}
.booking-card .btn-secondary{
  color:#dceaf4!important;
  background:#0b1825!important;
  border-color:#2a4053!important;
}
.booking-card .btn-secondary:hover{border-color:#1683ff!important;color:#fff!important}

.hidden{display:none!important}
.helper{margin-top:12px;color:#8fa7b8}

.summary-box{
  display:grid;
  gap:10px;
  padding:18px;
  border-radius:14px;
  background:#091725;
  border:1px solid #23394c;
  color:#dce8f1;
}
.summary-row-booking{
  display:flex;
  justify-content:space-between;
  gap:18px;
  border-bottom:1px solid #1d3244;
  padding-bottom:8px;
}
.summary-row-booking:last-child{border-bottom:0;padding-bottom:0}
.summary-row-booking span:first-child{color:#8fa7b8}
.summary-row-booking strong,.summary-row-booking span:last-child{color:#f4f8fb}

.terms-check{display:flex;align-items:flex-start;gap:10px;margin-top:18px;color:#c9d8e3}
.terms-check input{accent-color:var(--booking-blue);margin-top:3px}

.payment-box{
  margin-top:18px;
  padding:18px;
  border-radius:14px;
  background:linear-gradient(135deg,#07131f,#0b1d2d);
  border:1px solid #24435b;
  color:#fff;
}
.payment-box strong{color:#fff}
.payment-box p{color:#a9bdcc;margin-top:6px}

.booking-error{margin-top:18px;color:var(--booking-danger);font-weight:700}

.site-footer{
  background:#050d15!important;
  color:#9fb3c2!important;
  border-top:1px solid #172a3b!important;
}
.site-footer p{color:#9fb3c2!important}

@media(max-width:720px){
  .booking-shell{padding-top:38px}
  .booking-card{padding:18px}
  .booking-grid{grid-template-columns:1fr}
  .booking-actions{flex-wrap:wrap}
  .booking-actions .btn{flex:1}
  .nav .btn{padding:9px 12px;font-size:.88rem}
  .person-toggle{flex-direction:column}
}

/* Fase 2 - autenticação, disponibilidade e reserva */
.existing-login,
.logged-account {
  margin: 18px 0 22px;
  padding: 18px;
  border: 1px solid rgba(42, 145, 255, .35);
  border-radius: 16px;
  background: rgba(8, 24, 40, .82);
}
.existing-login p { margin: 6px 0 14px; color: #9eb0c2; }
.compact-grid { margin-bottom: 12px; }
.logged-account { display: flex; align-items: center; justify-content: space-between; gap: 14px; }
.logged-account div { display: grid; gap: 4px; }
.logged-account span { color: #8eb6d8; font-size: .94rem; }
.date-choices { display: flex; flex-wrap: wrap; gap: 9px; margin: 14px 0 18px; }
.date-choice {
  border: 1px solid rgba(75, 151, 220, .34);
  background: #0b1724;
  color: #dcecff;
  border-radius: 12px;
  padding: 10px 13px;
  cursor: pointer;
  font-weight: 700;
}
.date-choice:hover,
.date-choice.active { border-color: #1683ff; background: rgba(22, 131, 255, .16); color: #61b0ff; }
.booking-success { min-height: 0; color: #53e6a8; font-weight: 700; margin: 14px 0 0; }
#data[readonly] { cursor: default; }
