/* Phantom PenTest Booking • bespoke booking interface */
#booking-dialog.phantom-booking{
  position:fixed;inset:0;margin:auto;box-sizing:border-box;
  width:min(1060px,calc(100vw - 36px));max-width:none;max-height:min(900px,calc(100dvh - 34px));
  overflow:auto;border:1px solid rgba(20,201,243,.65);border-radius:0;
  padding:0;background:#04121c;color:#f7fbfd;box-shadow:0 32px 100px rgba(0,0,0,.8);
  font-family:system-ui,-apple-system,"Segoe UI",Arial,sans-serif;
}
#booking-dialog::backdrop{background:rgba(0,6,11,.91)}
body:has(#booking-dialog[open]){overflow:hidden}
#booking-dialog *{box-sizing:border-box}
#booking-dialog [hidden]{display:none!important}
#booking-dialog button,#booking-dialog input,#booking-dialog select,#booking-dialog textarea{font:inherit}
#booking-dialog button{cursor:pointer}
#booking-dialog button:disabled{cursor:not-allowed;opacity:.35}
#booking-dialog .booking-head{
  display:flex;gap:22px;align-items:center;justify-content:space-between;
  padding:24px 34px;border-bottom:1px solid rgba(20,201,243,.28);
  background:linear-gradient(110deg,#041a27,#04111b);
}
#booking-dialog .booking-brand{display:flex;gap:16px;align-items:center}
#booking-dialog .booking-mark{width:124px;height:54px;flex:0 0 124px;display:flex;align-items:center;justify-content:center;background:#071923;border:1px solid rgba(20,201,243,.42);padding:5px 7px}
#booking-dialog .booking-mark img{width:100%;height:100%;object-fit:contain}
#booking-dialog .booking-kicker{font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.14em;color:#16cef7;margin:0 0 5px}
#booking-dialog .booking-head h2{font-size:clamp(22px,2.6vw,29px);line-height:1.2;letter-spacing:-.02em;margin:0;color:#fff}
#booking-dialog .booking-close{width:43px;height:43px;flex:0 0 43px;background:#092532;border:1px solid rgba(22,206,247,.5);color:#fff;font-size:29px;line-height:1;display:grid;place-items:center}
#booking-dialog .booking-close:hover{background:#104156}
#booking-dialog .booking-steps{display:flex;align-items:center;gap:18px;padding:21px 35px;border-bottom:1px solid rgba(22,206,247,.16);background:#051720}
#booking-dialog .booking-step{display:flex;align-items:center;gap:9px;color:#a8bfc9;font-size:14px;font-weight:750;letter-spacing:.02em}
#booking-dialog .booking-step .booking-step-no{width:29px;height:29px;border:1px solid #366071;display:grid;place-items:center;font-size:12px}
#booking-dialog .booking-step.current{color:#fff}
#booking-dialog .booking-step.current .booking-step-no{color:#05141c;background:#16cef7;border-color:#16cef7}
#booking-dialog .booking-step-divider{width:40px;height:1px;background:#2b5362}
#booking-dialog .booking-modal-content{padding:30px 34px 34px}
#booking-dialog .booking-intro{margin:0 0 24px}
#booking-dialog .booking-intro h3{color:#fff;margin:0 0 7px;font-size:25px;line-height:1.22}
#booking-dialog .booking-intro p{margin:0;font-size:16px;line-height:1.58;color:#bcd1db}
#booking-dialog .booking-columns{display:grid;grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);gap:23px}
#booking-dialog .booking-panel{border:1px solid rgba(22,206,247,.27);background:#061d2a;padding:23px}
#booking-dialog .booking-panel-top{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:19px}
#booking-dialog .booking-panel-top h4{font-size:19px;line-height:1.3;margin:0;color:#fff}
#booking-dialog .booking-month-controls{display:flex;align-items:center;gap:10px}
#booking-dialog .booking-month-nav{width:34px;height:34px;display:grid;place-items:center;background:#072633;border:1px solid rgba(22,206,247,.3);color:#e1f4fc;font-size:22px}
#booking-dialog #booking-month-label{font-size:15px;color:#fff;font-weight:800;margin:0}
#booking-dialog .booking-weekdays,#booking-dialog #booking-day-grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:6px}
#booking-dialog .booking-weekdays{margin:0 0 9px}
#booking-dialog .booking-weekdays span{font-size:12px;font-weight:750;color:#99b6c3;text-align:center}
#booking-dialog #booking-day-grid{min-height:252px;align-content:start}
#booking-dialog .booking-blank{display:block;height:42px}
#booking-dialog .booking-day{min-width:0;height:42px;padding:0;border:1px solid transparent;background:transparent;color:#d8e7ed;font-size:15px;font-weight:650}
#booking-dialog .booking-day.today{border-color:rgba(22,206,247,.45)}
#booking-dialog .booking-day:hover:not(:disabled){background:#0d4157;border-color:#16cef7}
#booking-dialog .booking-day.selected,#booking-dialog .booking-day.selected:hover{background:#16cef7;border-color:#16cef7;color:#03141a}
#booking-dialog .booking-day:disabled{opacity:.25}
#booking-dialog .booking-panel-caption{font-size:13px;line-height:1.5;color:#aac2cd;margin:14px 0 0}
#booking-dialog #booking-date-label{font-size:15px;color:#9bdaf0;margin:0 0 16px;line-height:1.4}
#booking-dialog #booking-times{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;max-height:310px;overflow:auto;align-content:start}
#booking-dialog .booking-time{padding:12px 8px;min-height:47px;border:1px solid #227d9a;background:#082734;color:#e5f7fd;font-size:16px;font-weight:750}
#booking-dialog .booking-time:hover,#booking-dialog .booking-time:focus-visible{background:#0d455a;border-color:#16cef7}
#booking-dialog #booking-status{font-size:16px;color:#bdd1dc;line-height:1.6;margin:0 0 14px}
#booking-dialog #booking-status[data-type="error"]{color:#ffc3bd}
#booking-dialog #booking-status[data-type="pending"]{color:#f0d8a4;background:#222013;padding:15px;border:1px solid #625127}
#booking-dialog #booking-status[data-type="success"]{color:#a9d7e6;font-size:14px}
#booking-dialog .booking-note{border-top:1px solid rgba(22,206,247,.21);margin-top:24px;padding-top:16px;color:#9fbbc7;font-size:13px;line-height:1.52}
#booking-dialog .booking-selected{font-size:16px;color:#16cef7;border:1px solid rgba(22,206,247,.38);padding:13px 16px;background:#072431;margin:0 0 23px}
#booking-dialog #booking-form{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:17px 20px}
#booking-dialog .booking-field{display:flex;flex-direction:column;gap:7px;min-width:0}
#booking-dialog .booking-field label{color:#d8e9f0;font-size:15px;line-height:1.45;font-weight:650}
#booking-dialog .booking-field input,#booking-dialog .booking-field select,#booking-dialog .booking-field textarea{width:100%;min-height:50px;max-width:100%;padding:12px 14px;border:1px solid #2e6276;background:#082330;color:#fff;font-size:16px;border-radius:0}
#booking-dialog .booking-field select{color-scheme:dark}
#booking-dialog .booking-field input:focus,#booking-dialog .booking-field select:focus,#booking-dialog .booking-field textarea:focus{outline:2px solid #16cef7;outline-offset:1px;border-color:#16cef7}
#booking-dialog .booking-field input::placeholder,#booking-dialog .booking-field textarea::placeholder{color:#8faebc}
#booking-dialog .booking-field.wide{grid-column:1/-1}
#booking-dialog .booking-field textarea{min-height:86px;resize:vertical}
#booking-dialog .booking-honeypot{position:absolute!important;left:-9999px!important;height:1px!important;width:1px!important;overflow:hidden!important}
#booking-dialog .booking-form-notice{grid-column:1/-1;font-size:13.5px;color:#aabfca;margin:0;line-height:1.55}
#booking-dialog .booking-verification{grid-column:1/-1;min-height:34px}
#booking-dialog .booking-security-retry{grid-column:1/-1;width:max-content;max-width:100%;background:#0b2e3d;border:1px solid #16cef7;color:#dffaff;font-size:14px;font-weight:750;padding:10px 14px;min-height:42px}
#booking-dialog .booking-security-retry:hover{background:#12465d}
#booking-dialog .booking-security-help{grid-column:1/-1;margin:-12px 0 0;color:#aabfca;font-size:13px;line-height:1.45}
#booking-dialog .booking-security-help a{color:#16cef7;text-decoration:underline;text-underline-offset:3px}
#booking-dialog #booking-form-error{overflow-wrap:anywhere}
#booking-dialog #booking-form-error{color:#ffc3bd;font-size:14px;line-height:1.5;margin:0;grid-column:1/-1;min-height:0}
#booking-dialog .booking-form-actions{display:flex;align-items:center;justify-content:space-between;gap:12px;grid-column:1/-1;margin-top:5px}
#booking-dialog .booking-primary{display:inline-flex;justify-content:center;align-items:center;min-height:51px;background:#16cef7;border:1px solid #16cef7;color:#00131b;padding:12px 24px;font-size:16px;font-weight:800}
#booking-dialog .booking-primary:hover:not(:disabled){background:#61e6ff}
#booking-dialog .booking-secondary{display:inline-flex;align-items:center;justify-content:center;padding:12px 19px;min-height:51px;background:transparent;border:1px solid #3684a0;color:#eaf9fc;font-size:16px;font-weight:750}
#booking-dialog .booking-secondary:hover{background:#0a3649}
#booking-dialog .booking-success{text-align:center;padding:50px 20px 58px}
#booking-dialog .booking-success-icon{width:75px;height:75px;border:1px solid #16cef7;margin:0 auto 22px;color:#16cef7;font-size:38px;display:grid;place-items:center}
#booking-dialog .booking-success h3{font-size:32px;line-height:1.1;margin:0 0 14px}
#booking-dialog .booking-success p{font-size:17px;max-width:650px;line-height:1.6;margin:0 auto 15px;color:#c8dce4}
#booking-dialog .booking-success strong{color:#16cef7}
#booking-dialog .booking-success .booking-primary{margin-top:13px}
@media(max-width:740px){
  #booking-dialog.phantom-booking{width:calc(100vw - 12px);max-height:calc(100dvh - 12px)}
  #booking-dialog .booking-head{padding:15px 17px;gap:12px}
  #booking-dialog .booking-head h2{font-size:20px}
  #booking-dialog .booking-mark{width:92px;height:43px;flex-basis:92px}
  #booking-dialog .booking-mark img{width:100%;height:100%}
  #booking-dialog .booking-close{height:38px;width:38px;flex-basis:38px}
  #booking-dialog .booking-steps{padding:13px 17px;gap:10px}
  #booking-dialog .booking-step{font-size:12px;gap:6px}
  #booking-dialog .booking-step-divider{width:14px}
  #booking-dialog .booking-modal-content{padding:22px 17px}
  #booking-dialog .booking-intro h3{font-size:22px}
  #booking-dialog .booking-columns{grid-template-columns:1fr;gap:13px}
  #booking-dialog .booking-panel{padding:18px}
  #booking-dialog #booking-day-grid{min-height:210px}
  #booking-dialog .booking-blank,#booking-dialog .booking-day{height:38px}
  #booking-dialog #booking-times{max-height:250px}
  #booking-dialog #booking-form{grid-template-columns:1fr;gap:15px}
  #booking-dialog .booking-form-actions{flex-direction:column-reverse;align-items:stretch}
  #booking-dialog .booking-form-actions button{width:100%}
}
