/* Shared booking layout and controls come from online-booking/page.css. */
.battery-booking{padding-bottom:64px}
.battery-booking [hidden]{display:none!important}
.battery-booking .campaign-period{font-size:13px;color:var(--accent-ink);margin-top:14px}
.battery-booking #api-message:not(:empty){padding:16px 20px;background:var(--bg-soft);border:1px solid var(--line);border-radius:12px;margin-bottom:16px;text-align:center;font-size:15px;line-height:1.6}
.battery-booking #api-message a{color:#169f8a;font-weight:600;text-decoration:underline;text-underline-offset:3px}
.battery-booking #api-message a:hover{color:#0f766e}
.battery-booking #campaign-field{margin-bottom:24px}
.campaign-details{margin-bottom:24px;border:1px solid var(--line);border-radius:var(--r-md);background:var(--bg-elev)}
.campaign-details>summary{cursor:pointer;padding:20px 24px;font-weight:600}
.campaign-details>summary span{font-size:13px;font-weight:400;color:var(--muted);margin-left:12px}
.campaign-details-body{padding:0 24px 24px}
.campaign-details-body h2{font-size:18px;margin:0 0 16px}
.campaign-details-body h3{font-size:16px;margin:24px 0 12px}
.battery-booking #terms{padding-left:22px;line-height:1.9;color:var(--muted)}
.battery-booking .terms-note-box{margin-top:14px;padding:12px 14px;background:#fef3c7;border-left:4px solid #f59e0b;border-radius:6px;font-size:13px;line-height:1.6;color:#92400e}
.battery-booking .terms-note-box strong{color:#78350f;margin-right:4px}
.battery-booking .model-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:12px}
.battery-booking .model-price-note{margin-top:12px;font-size:13px}
.battery-booking .model-card,.battery-booking fieldset{border:1px solid var(--line);border-radius:14px;padding:18px;background:var(--bg-elev);min-width:0}
.battery-booking label.model-card{cursor:pointer;transition:border-color .2s,background .2s}
.battery-booking label.model-card:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}
.battery-booking .model-card strong{display:block;margin:10px 0 0;color:var(--accent-ink);font-size:20px}
.battery-booking .model-card del{font-size:13px;font-weight:400;color:var(--muted);margin-left:10px}
.battery-booking fieldset{margin-bottom:18px}
.battery-booking fieldset p{font-size:13px;color:var(--muted)}
.battery-booking fieldset label{display:inline-flex;align-items:center;gap:8px;margin:12px 20px 0 0;padding:9px 14px;border:1px solid var(--line);border-radius:10px;cursor:pointer}
.battery-booking fieldset label:has(input:checked){border-color:var(--accent);background:var(--accent-soft)}
.battery-booking input[type=radio],.battery-booking input[type=checkbox]{margin:auto 0;appearance:none;-webkit-appearance:none;width:18px;height:18px;flex-shrink:0;border:1.5px solid var(--line);background:var(--bg-elev,#fff);display:inline-grid;place-items:center;cursor:pointer;margin:0;transition:all .15s ease}
.battery-booking input[type=radio]{margin:auto 0;border-radius:50%}
.battery-booking input[type=checkbox]{margin:auto 0;border-radius:5px}
.battery-booking input[type=radio]:checked,.battery-booking input[type=checkbox]:checked{margin:auto 0;border-color:var(--accent);background:var(--accent)}
.battery-booking input[type=radio]:checked::after{content:"";margin:auto 0;width:7px;height:7px;border-radius:50%;background:#fff}
.battery-booking input[type=checkbox]:checked::after{content:"";margin:auto 0;width:9px;height:5px;border-left:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(-45deg) translate(0.5px,-0.5px)}
.battery-booking .model-card input{margin-right:10px;vertical-align:middle}
.battery-booking .model-card input[type=radio]:checked{margin-right:10px;}
.battery-booking legend{font-size:14px;font-weight:600;padding:0 4px;max-width:100%}
.battery-booking .consent-item{margin-top:36px;align-items:flex-start;line-height:1.7}
.battery-booking .tax-toggle{margin:24px 0}
.battery-booking .tax-types{display:flex;padding:5px;gap:5px;margin-bottom:20px;background:var(--bg-soft,#f5f5f5);border-radius:10px}
.battery-booking .tax-types button{flex:1;padding:14px 8px;border:0;border-radius:8px;background:transparent;color:inherit;font:inherit;cursor:pointer}
.battery-booking .tax-types button[aria-pressed="true"]{background:var(--bg,white);box-shadow:0 1px 4px #0002;font-weight:600}
.battery-booking .tax-types button:focus-visible{outline:2px solid var(--accent,#14afa1);outline-offset:2px}
.battery-booking #tax-address-fields{margin-top:20px}
.battery-booking #branch-address{color:var(--muted);font-size:13px;margin:10px 0}
.battery-booking .time-slot{white-space:normal}
.battery-booking .booking-actions{padding:0 36px 28px}
.battery-booking #step-error{color:var(--danger);font-size:13px}
.battery-booking .step-caption{font-size:12px;color:var(--muted);margin:12px 0 0}
.battery-booking .summary-row dd{margin:0;overflow-wrap:anywhere;white-space:pre-line}
.battery-booking button:focus-visible,.battery-booking summary:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
@media(max-width:560px){.battery-booking .booking-actions{padding:0 24px 24px}.campaign-details>summary span{display:block;margin:6px 0 0 16px}.battery-booking .model-grid{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){.battery-booking *{animation:none!important;transition:none!important;scroll-behavior:auto!important}}


.battery-booking .stepper-items{grid-template-columns:repeat(6,1fr)}
.battery-booking dl{margin:0}
.battery-booking .confirm-row dd{margin:0;overflow-wrap:anywhere}

/* -------------------------------------------------------------
   Payment Step Redesign (Modern 2-Column Layout)
------------------------------------------------------------- */
.battery-booking .payment-step{margin:28px 0 64px}
.battery-booking .payment-header{margin-bottom:28px;text-align:left}
.battery-booking .payment-header .pagehead-eyebrow{font-size:12px;text-transform:uppercase;letter-spacing:.12em;color:var(--accent-ink);font-weight:600;margin-bottom:8px}
.battery-booking .payment-header h2{font-size:clamp(26px,3.2vw,36px);font-weight:600;letter-spacing:-.02em;margin:0 0 8px;line-height:1.2}
.battery-booking .payment-header p{margin:0;color:var(--muted);font-size:15px}

.battery-booking .payment-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(360px,420px);gap:28px;align-items:start}

/* Left Column: Summary Card */
.battery-booking .payment-summary-card{background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--r-lg);padding:28px;box-shadow:var(--shadow-sm)}
.battery-booking .summary-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:20px;padding-bottom:18px;border-bottom:1px solid var(--line-soft)}
.battery-booking .summary-card-title .card-badge{display:inline-block;font-size:11px;font-weight:600;text-transform:uppercase;letter-spacing:.08em;color:var(--accent-ink);background:var(--accent-soft);padding:3px 8px;border-radius:6px;margin-bottom:6px}
.battery-booking .summary-card-title h3{font-size:18px;font-weight:600;margin:0}
.battery-booking .booking-ref-chip{text-align:right;background:var(--bg-soft);border:1px solid var(--line-soft);padding:8px 12px;border-radius:10px}
.battery-booking .booking-ref-chip .lbl{display:block;font-size:11px;color:var(--muted);font-weight:500}
.battery-booking .booking-ref-chip strong{font-size:14px;color:var(--ink);letter-spacing:.02em}

.battery-booking .confirm-list{display:flex;flex-direction:column;gap:12px}
.battery-booking .confirm-row{display:flex;justify-content:space-between;align-items:baseline;padding:10px 0;border-bottom:1px dashed var(--line-soft);font-size:14px}
.battery-booking .confirm-row:last-child{border-bottom:none}
.battery-booking .confirm-row .lbl{color:var(--muted);font-weight:500;min-width:110px}
.battery-booking .confirm-row .val{color:var(--ink);font-weight:600;text-align:right}

.battery-booking .summary-card-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:24px;padding-top:20px;border-top:1px solid var(--line-soft)}
.battery-booking .btn-danger-soft{color:var(--danger);background:rgba(220,38,38,.08);border:1px solid rgba(220,38,38,.18);padding:9px 16px;border-radius:10px;font-weight:500;font-size:13px;transition:background .2s}
.battery-booking .btn-danger-soft:hover{background:rgba(220,38,38,.15)}

/* Right Column: Checkout Card */
.battery-booking .payment-checkout-card{background:var(--bg-elev);border:1px solid var(--line);border-radius:var(--r-lg);padding:28px;box-shadow:var(--shadow-md);position:sticky;top:88px;text-align:center;display:flex;flex-direction:column}
.battery-booking .checkout-top-bar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;margin-bottom:16px;padding-bottom:14px;border-bottom:1px solid var(--line-soft)}

.battery-booking .live-status-pill{display:inline-flex;align-items:center;gap:6px;font-size:12px;font-weight:600;color:var(--accent-ink);background:var(--accent-soft);padding:4px 10px;border-radius:999px}
.battery-booking .status-pulse{width:7px;height:7px;border-radius:50%;background:var(--accent-ink);animation:status-pulse-anim 1.8s infinite}
@keyframes status-pulse-anim{0%{transform:scale(.9);opacity:.8}50%{transform:scale(1.3);opacity:1}100%{transform:scale(.9);opacity:.8}}

.battery-booking .countdown-badge{display:inline-flex;align-items:center;gap:6px;padding:6px 12px;background:var(--bg-soft);border:1px solid var(--line);border-radius:999px;font-size:13px;color:var(--muted);transition:background .3s,color .3s}
.battery-booking .countdown-badge strong{color:var(--ink);font-variant-numeric:tabular-nums;font-weight:700}
.battery-booking .countdown-badge.urgent{background:#fee2e2;border-color:#fca5a5;color:#b91c1c}
.battery-booking .countdown-badge.urgent strong{color:#b91c1c}

.battery-booking .payment-status-message{font-size:13px;color:var(--muted);margin:8px 0;line-height:1.5}
.battery-booking .payment-error-text{color:var(--danger);font-size:13px;margin:4px 0;min-height:18px}

.battery-booking .checkout-form-area{display:flex;flex-direction:column;justify-content:center;align-items:center;flex:1 1 auto;width:100%;height:100%}
.battery-booking .payment-qr{width:260px;max-width:100%;padding:14px;margin:0 auto;background:#fff;border:1px solid var(--line);border-radius:16px;box-shadow:var(--shadow-sm)}
.battery-booking .payment-qr img{display:block;width:100%;height:auto;border-radius:8px}

.battery-booking .payment-form-wrap{width:100%;height:100%;flex:1 1 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;margin:0 auto}
.battery-booking .payment-form-wrap form{width:100%;height:100%;flex:1 1 auto;display:flex;flex-direction:column;align-items:center;justify-content:center;margin:0 auto}

/* KBank Inline QR Container Override */
.battery-booking .payment-container[_kpayment],
body .payment-container[_kpayment]{
  position:static!important;
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:340px!important;
  min-height:480px!important;
  background:#fff!important;
  /* border:1px solid var(--line)!important; */
  border-radius:16px!important;
  /* box-shadow:var(--shadow-sm)!important; */
  /* margin:0 auto!important; */
  overflow:hidden!important;
  z-index:1!important;
}
.battery-booking .payment-container[_kpayment] iframe,
body .payment-container[_kpayment] iframe{
  border:none!important;
  width:100%!important;
  height:100%!important;
  min-height:480px!important;
  border-radius:14px!important;
  background:#fff!important;
  display:block!important;
  min-height:880px!important;
}
body.scroll-y-hidden{overflow:auto!important}

.battery-booking .btn-check-status{width:100%;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:10px 16px;border-radius:10px;font-size:13px;font-weight:500;margin-top:12px}

/* Result / Confirmation */
.battery-booking #result-icon{font-size:32px}
.battery-booking .summary-head h2{font-size:22px;margin:0}

@media(max-width:840px){
  .battery-booking .payment-grid{grid-template-columns:1fr;gap:20px}
  .battery-booking .payment-checkout-card{order:1;position:static}
  .battery-booking .payment-summary-card{order:2}
}

/* Fully booked banner */
.battery-booking .campaign-fully-booked-banner {
  margin: 24px 0;
  padding: 24px 28px;
  background: #fff7ed;
  border: 1px solid #fed7aa;
  border-radius: 14px;
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  gap: 12px;
}
.battery-booking .campaign-fully-booked-banner[hidden] {
  display: none !important;
}
.battery-booking .campaign-fully-booked-banner .fully-booked-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  background: #ea580c;
  color: #fff;
  font-size: 13px;
  font-weight: 600;
  padding: 5px 16px;
  border-radius: 999px;
  width: fit-content;
}
.battery-booking .campaign-fully-booked-banner .fully-booked-message {
  font-size: 15px;
  line-height: 1.6;
  color: #7c2d12;
  white-space: pre-wrap;
  text-align: center;
  margin: 0;
}
.battery-booking .campaign-fully-booked-banner .fully-booked-message a {
  color: #c2410c;
  font-weight: 600;
  text-decoration: underline;
  text-underline-offset: 3px;
}
.battery-booking .campaign-fully-booked-banner .fully-booked-message a:hover {
  color: #9a3412;
}

/* Countdown Timer Cards (Teal Brand Theme) */
.battery-booking .campaign-countdown-wrap {
  margin: 16px auto 24px;
  max-width: 500px;
  padding: 18px 24px;
  background: var(--bg-soft);
  border: 1px solid var(--line);
  border-radius: 14px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  box-shadow: 0 2px 8px rgba(15, 118, 110, 0.04);
}
.battery-booking .campaign-countdown-wrap[hidden] {
  display: none !important;
}
.battery-booking .countdown-caption {
  font-size: 14px;
  font-weight: 600;
  color: #0f766e;
  letter-spacing: 0.02em;
}
.battery-booking .countdown-grid {
  display: flex;
  align-items: center;
  gap: 8px;
}
.battery-booking .countdown-unit {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  min-width: 58px;
  padding: 8px 10px;
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 10px;
  box-shadow: 0 2px 4px rgba(20, 184, 166, 0.08);
}
.battery-booking .countdown-value {
  font-size: 24px;
  font-weight: 700;
  line-height: 1.1;
  font-variant-numeric: tabular-nums;
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, monospace;
}
.battery-booking .countdown-label {
  font-size: 11px;
  font-weight: 600;
  margin-top: 2px;
}
.battery-booking .countdown-separator {
  font-size: 20px;
  font-weight: 700;
  margin-bottom: 12px;
}
@media(max-width:480px){
  .battery-booking .countdown-unit {
    min-width: 48px;
    padding: 6px 6px;
  }
  .battery-booking .countdown-value {
    font-size: 18px;
  }
  .battery-booking .countdown-grid {
    gap: 4px;
  }
}

@media(max-width:560px){
  .battery-booking .summary-row{flex-direction:column;align-items:flex-start;gap:6px}
  .battery-booking .summary-row .val{text-align:left}
  .battery-booking .payment-summary-card,.battery-booking .payment-checkout-card{padding:20px}
  .battery-booking .summary-card-head{flex-direction:column;align-items:flex-start}
  .battery-booking .booking-ref-chip{text-align:left;width:100%}
}
