/* File: modul/nptbooking/nptbooking-style.css */
.nptherbie-penida-area-cost{display:block;margin-top:7px;color:#0f766e;font-size:12px;line-height:1.5;font-weight:500}
.nptherbie-penida-area-note{display:block;margin-top:9px;color:#64748b;font-size:12px;line-height:1.5}

/* MODAL */
.nptbooking-modal-overlay { display:none; position:fixed; inset:0; width:100%; height:100%; background:rgba(15,23,42,.70); z-index:99999; justify-content:center; align-items:center; backdrop-filter:blur(4px); -webkit-backdrop-filter:blur(4px); }
.nptbooking-modal-overlay.active { display:flex; }
.nptbooking-modal-content, .nptbooking-modal-content * { box-sizing:border-box; }
.nptbooking-modal-content { background:#fff; width:92%; max-width:620px; max-height:88vh; overflow-y:auto; border-radius:16px; padding:25px; position:relative; box-shadow:0 25px 50px -12px rgba(0,0,0,.25); }
.nptbooking-modal-close { position:absolute; top:18px; right:20px; font-size:26px; color:#94a3b8; cursor:pointer; font-weight:700; line-height:1; transition:color .2s ease; z-index:10; }
.nptbooking-modal-close:hover { color:#ef4444; }
.nptbooking-modal-title { font-size:22px; font-weight:800; color:#0f172a; margin:0 0 15px; padding-right:30px; text-align:center; }

/* STEP */
.npt-step-indicator { display:flex; gap:8px; margin-bottom:25px; }
.npt-step { flex:1; padding:10px; text-align:center; background:#f1f5f9; color:#94a3b8; border-radius:8px; font-weight:700; font-size:13px; transition:.3s; border:1px solid #e2e8f0; }
.npt-step.active { background:var(--brand-color,#ff5b00); color:#fff; border-color:var(--brand-color,#ff5b00); }
.npt-fastboat-choice-card { padding:24px; border:1px solid #bae6fd; border-radius:14px; background:linear-gradient(145deg,#f0f9ff,#fff); text-align:center; }
.npt-fastboat-choice-icon { width:56px; height:56px; margin:0 auto 12px; display:flex; align-items:center; justify-content:center; border-radius:50%; background:#e0f2fe; font-size:28px; }
.npt-fastboat-choice-card h4 { margin:0 0 7px; color:#0f172a; font-size:19px; font-weight:800; }
.npt-fastboat-choice-card > p { max-width:450px; margin:0 auto 20px; color:#64748b; font-size:13px; line-height:1.55; }
.npt-fastboat-choice-actions { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px; }
.npt-fastboat-choice-btn { min-height:92px; padding:14px; display:grid; grid-template-columns:28px 1fr; grid-template-rows:auto auto; align-items:center; text-align:left; border:1px solid #cbd5e1; border-radius:11px; background:#fff; color:#0f172a; cursor:pointer; transition:.2s; }
.npt-fastboat-choice-btn > span { grid-row:1/3; width:26px; height:26px; display:flex; align-items:center; justify-content:center; border-radius:50%; background:#f1f5f9; color:#475569; font-weight:800; }
.npt-fastboat-choice-btn strong { font-size:14px; font-weight:800; }
.npt-fastboat-choice-btn small { color:#64748b; font-size:11px; line-height:1.35; }
.npt-fastboat-choice-btn:hover { transform:translateY(-2px); border-color:#38bdf8; box-shadow:0 7px 18px rgba(14,165,233,.12); }
.npt-fastboat-choice-yes.selected { border-color:#0284c7; background:#f0f9ff; }
.npt-fastboat-choice-no.selected { border-color:#64748b; background:#f8fafc; }
.npt-fastboat-toggle-input { position:absolute!important; width:1px!important; height:1px!important; overflow:hidden!important; opacity:0!important; pointer-events:none!important; }
.npt-fastboat-ticket-panel { padding:20px; border:1px solid #bae6fd; border-radius:14px; background:#f0f9ff; }
.npt-fastboat-panel-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:14px; margin-bottom:18px; padding-bottom:14px; border-bottom:1px dashed #7dd3fc; }
.npt-fastboat-panel-heading h4 { margin:3px 0 0; color:#0f172a; font-size:18px; font-weight:800; }
.npt-fastboat-panel-kicker { display:block; color:#0284c7; font-size:10px; font-weight:800; letter-spacing:.08em; }
.npt-fastboat-change-btn { padding:7px 10px; border:1px solid #bae6fd; border-radius:7px; background:#fff; color:#0369a1; font-size:11px; font-weight:700; cursor:pointer; white-space:nowrap; }
.npt-fastboat-change-btn:hover { background:#e0f2fe; }
.npt-fastboat-price-preview { margin:2px 0 10px; padding:14px; display:block; border:1px solid #7dd3fc; border-radius:10px; background:#fff; color:#0f172a; font-size:12.5px; }
.npt-fastboat-estimate-heading { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-bottom:9px; padding-bottom:9px; border-bottom:1px dashed #bae6fd; }
.npt-fastboat-estimate-heading > strong { color:#075985; font-size:13px; font-weight:800; }
.npt-fastboat-estimate-heading > span { color:#64748b; font-size:10px; font-weight:700; }
.npt-fastboat-estimate-row, .npt-fastboat-estimate-total { display:flex; justify-content:space-between; align-items:flex-start; gap:14px; padding:5px 0; line-height:1.4; }
.npt-fastboat-estimate-row > span { color:#475569; }
.npt-fastboat-estimate-row > strong { flex:0 0 auto; color:#0f172a; font-size:13px; font-weight:800; }
.npt-fastboat-passenger-rates { margin:5px 0 8px; border:1px solid #dbeafe; border-radius:8px; background:#f8fbff; overflow:hidden; }
.npt-fastboat-passenger-rates-heading { padding:7px 9px; border-bottom:1px solid #dbeafe; background:#eff6ff; color:#075985; font-size:10.5px; font-weight:800; }
.npt-fastboat-passenger-rate-row { display:grid; grid-template-columns:minmax(70px,.65fr) minmax(145px,1.35fr); align-items:center; gap:10px; padding:8px 9px; border-bottom:1px dashed #dbeafe; }
.npt-fastboat-passenger-rate-row:last-child { border-bottom:0; }
.npt-fastboat-passenger-type, .npt-fastboat-passenger-price { display:flex; flex-direction:column; min-width:0; }
.npt-fastboat-passenger-type > strong { color:#1e293b; font-size:11.5px; font-weight:800; }
.npt-fastboat-passenger-type > small, .npt-fastboat-passenger-price > small { color:#64748b; font-size:9.5px; line-height:1.35; }
.npt-fastboat-passenger-price { align-items:flex-end; text-align:right; }
.npt-fastboat-passenger-price > strong { color:#0f172a; font-size:11.5px; font-weight:800; white-space:nowrap; }
.npt-fastboat-passenger-price > strong > small { margin-left:3px; color:#64748b; font-size:9px; font-weight:700; }
.npt-fastboat-passenger-price .calc-currency { margin-right:2px; }
.npt-fastboat-estimate-total { margin-top:7px; padding-top:10px; border-top:1px solid #cbd5e1; color:#0f172a; font-size:13.5px; font-weight:800; }
.npt-fastboat-estimate-total > strong { flex:0 0 auto; color:var(--brand-color,#ff5b00); font-size:17px; font-weight:900; }
.npt-fastboat-price-preview .calc-currency { margin-right:3px; font-size:.72em; font-weight:700; }
.npt-guest-price-breakdown { margin:22px 0 12px; padding:14px; border:1px solid #7dd3fc; border-radius:10px; background:#fff; color:#0f172a; font-size:12.5px; }
.npt-guest-price-section { margin:8px 0; padding:9px 0; border-bottom:1px dashed #cbd5e1; }
.npt-guest-price-section-heading { display:flex; justify-content:space-between; align-items:flex-start; gap:12px; margin-bottom:6px; color:#0f172a; font-size:11.5px; font-weight:800; }
.npt-guest-price-section-heading > strong { flex:0 0 auto; color:#075985; }
.npt-guest-price-items { display:flex; flex-direction:column; gap:6px; }
.npt-guest-price-line { display:grid; grid-template-columns:minmax(0,1fr) auto; align-items:center; gap:12px; padding:5px 7px; border-radius:7px; background:#f8fafc; }
.npt-guest-price-line-copy { display:flex; flex-direction:column; min-width:0; }
.npt-guest-price-line-copy > strong { color:#334155; font-size:11px; font-weight:750; line-height:1.35; overflow-wrap:anywhere; }
.npt-guest-price-line-copy > small { margin-top:2px; color:#64748b; font-size:9.5px; line-height:1.35; }
.npt-guest-price-line-total { color:#0f172a; font-size:11px; font-weight:800; white-space:nowrap; }
.npt-guest-price-line .calc-currency, .npt-guest-price-section-heading .calc-currency { margin-right:2px; font-size:.72em; }
.npt-guest-vehicle-allocation { display:flex; justify-content:space-between; align-items:center; gap:12px; margin-top:7px; padding:9px 10px; border:1px solid #bae6fd; border-radius:8px; background:#f0f9ff; color:#075985; font-weight:800; }
.npt-guest-vehicle-allocation > strong { flex:0 0 auto; color:#0369a1; }
.npt-vehicle-price-notice { margin:0 0 12px; padding:11px 12px; display:flex; flex-direction:column; gap:4px; border:1px solid #fde68a; border-radius:9px; background:#fffbeb; color:#92400e; font-size:11.5px; line-height:1.45; }
.npt-vehicle-price-notice > strong { color:#b45309; font-size:12px; font-weight:800; }
.npt-vehicle-price-notice.is-multiple { border-color:#fdba74; background:#fff7ed; color:#9a3412; }
.npt-vehicle-price-notice.is-multiple > strong { color:var(--brand-color,#ff5b00); }
.npt-fastboat-schedule-row { padding-top:2px; }
.npt-fastboat-duration-note { margin-top:5px; color:#166534; font-size:10.5px; font-weight:700; line-height:1.35; }
.npt-fastboat-sync-summary { margin:0 0 14px; padding:11px 13px; border:1px solid #7dd3fc; border-radius:9px; background:#f0f9ff; color:#075985; font-size:12px; font-weight:700; line-height:1.55; }
.npt-fastboat-auto-notice { margin:-2px 0 12px; padding:8px 10px; border:1px solid #bbf7d0; border-radius:7px; background:#f0fdf4; color:#166534; font-size:11px; font-weight:700; }
.nptbooking-form-group input.npt-fastboat-locked-field, .nptbooking-form-group select.npt-fastboat-locked-field { border-color:#bae6fd; background:#f0f9ff; color:#075985; cursor:not-allowed; opacity:1; }
.npt-pax-fields { margin-top:4px; }
.npt-pax-title { display:block; margin-bottom:7px; color:#334155; font-size:12.5px; font-weight:700; }
.npt-pax-help { display:block; margin:-2px 0 14px; color:#64748b; font-size:11px; font-weight:600; line-height:1.4; }

/* FORM */
.nptbooking-form-row { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:12px 14px; margin-bottom:12px; }
.nptbooking-pax-row { grid-template-columns:repeat(3,minmax(0,1fr)); gap:10px; }
.nptbooking-form-group { display:flex; flex-direction:column; margin-bottom:12px; min-width:0; }
.nptbooking-form-row .nptbooking-form-group { margin-bottom:0; }
.nptbooking-form-group label { font-size:12.5px; font-weight:700; color:#334155; margin-bottom:6px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.nptbooking-form-group input, .nptbooking-form-group select { width:100%; height:42px; padding:0 12px; border:1px solid #cbd5e1; border-radius:8px; font-size:14px; color:#1e293b; background:#f8fafc; outline:none; transition:.2s; font-weight:500; }
.nptbooking-form-group input::placeholder { color:#94a3b8; font-weight:400; }
.nptbooking-form-group input:focus, .nptbooking-form-group select:focus { border-color:#3b82f6; background:#fff; box-shadow:0 0 0 3px rgba(59,130,246,.15); }
.nptbooking-form-group input.nptbooking-field-invalid, .nptbooking-form-group select.nptbooking-field-invalid { border-color:#dc2626!important; background:#fff7f7!important; box-shadow:0 0 0 3px rgba(220,38,38,.10)!important; }
.nptbooking-time-input-wrap { position:relative; width:100%; }
.nptbooking-time-input-wrap .nptbooking-time-input { padding-right:42px; cursor:pointer; }
.nptbooking-time-icon { position:absolute; top:50%; right:13px; transform:translateY(-50%); z-index:2; font-size:16px; line-height:1; pointer-events:none; }
.nptbooking-validation-message { display:block; margin-top:5px; color:#dc2626; font-size:11px; font-weight:700; line-height:1.35; }
.nptbooking-step-validation-notice { margin:0 0 12px; padding:10px 12px; border:1px solid #fecaca; border-radius:8px; background:#fff7f7; color:#b91c1c; font-size:12px; font-weight:700; line-height:1.4; }
.nptbooking-person-name-grid { display:grid; grid-template-columns:86px minmax(0,1fr); gap:8px; }
.nptbooking-additional-guests { margin:2px 0 14px; padding:13px; border:1px solid #fed7c3; border-color:color-mix(in srgb,var(--brand-color) 38%,#cbd5e1); border-radius:10px; background:#fffaf7; background:color-mix(in srgb,var(--brand-color) 5%,#fff); }
.nptbooking-additional-guests-heading { display:flex; flex-direction:column; gap:3px; margin-bottom:11px; color:#0f172a; font-size:13px; }
.nptbooking-additional-guests-heading strong { color:var(--brand-color); }
.nptbooking-additional-guests-heading span { color:#64748b; font-size:11px; font-weight:600; }
.nptbooking-additional-guest-row { display:grid; grid-template-columns:125px minmax(0,1fr); gap:10px; padding:10px 0; border-top:1px dashed #cbd5e1; }
.nptbooking-additional-guest-row:first-child { padding-top:0; border-top:0; }
.nptbooking-additional-guest-row:last-child { padding-bottom:0; }
.nptbooking-additional-guest-row .nptbooking-form-group { margin-bottom:0; }
.nptbooking-section { margin-top:5px; border-top:1px solid #e2e8f0; padding-top:16px; }
.nptbooking-section-title { display:block; font-size:14.5px; font-weight:800; color:#001d3d; margin-bottom:12px; }
.nptbooking-dynamic-wrap { background:#fff; border:1px solid #e2e8f0; padding:14px; border-radius:10px; margin-top:6px; margin-bottom:12px; box-shadow:0 1px 2px rgba(0,0,0,.02); }
.nptbooking-alert-box { background:#fffbeb; border:1px dashed #f59e0b; padding:14px; border-radius:10px; }
.nptbooking-note { font-size:11.5px; color:#d97706; margin:6px 0 0; line-height:1.4; }
.nptbooking-note-red { display:block; font-size:11.5px; color:#dc2626; margin-top:7px; line-height:1.45; }
.nptbooking-total-box { background:#f1f5f9; border:1px solid #cbd5e1; border-radius:10px; padding:14px 18px; display:flex; justify-content:space-between; align-items:center; font-size:15px; font-weight:800; color:#0f172a; margin-bottom:15px; }
.nptbooking-total-box div:last-child { color:var(--brand-color,#ff5b00); font-size:18px; }
.nptbooking-btn-submit { height:46px; background:var(--brand-color,#ff5b00); color:#fff; padding:0 20px; border:none; border-radius:8px; font-size:15px; font-weight:800; cursor:pointer; touch-action:manipulation; transition:.2s; width:100%; display:flex; justify-content:center; align-items:center; position:relative; z-index:2; }
.nptbooking-btn-submit:hover { filter:brightness(.9); }
.nptbooking-btn-secondary { height:46px; background:#e2e8f0; color:#475569; padding:0 20px; border:none; border-radius:8px; font-size:15px; font-weight:800; cursor:pointer; transition:.2s; }
.nptbooking-btn-secondary:hover { background:#cbd5e1; color:#0f172a; }
.nptbooking-button-row { display:flex; gap:10px; margin-top:15px; }
.nptbooking-button-row .nptbooking-btn-submit { flex:2; }
.nptbooking-button-row .nptbooking-btn-secondary { flex:0 0 auto; }

/* AUTOCOMPLETE */
.npt-autocomplete-list { position:absolute; top:100%; left:0; right:0; z-index:50; background:#fff; border:1px solid #e2e8f0; border-radius:8px; box-shadow:0 10px 25px rgba(15,23,42,.12); max-height:220px; overflow-y:auto; display:none; }
.npt-autocomplete-item { padding:10px 12px; font-size:13px; color:#334155; cursor:pointer; border-bottom:1px solid #f1f5f9; }
.npt-autocomplete-item:last-child { border-bottom:none; }
.npt-autocomplete-item:hover { background:#f8fafc; }

/* FLATPICKR CALENDAR */
.flatpickr-calendar { font-family:inherit!important; background:#fff!important; border:1px solid #e5e7eb!important; box-shadow:0 24px 70px rgba(15,23,42,.16)!important; border-radius:0!important; padding:22px!important; width:auto!important; overflow:hidden!important; }
.flatpickr-calendar.open { animation:nptCalendarFade .2s ease both; }
.flatpickr-calendar.multiMonth { width:810px!important; max-width:calc(100vw - 30px)!important; }
.flatpickr-calendar.multiMonth .flatpickr-innerContainer { display:flex!important; gap:56px!important; width:100%!important; }
.flatpickr-calendar.multiMonth .flatpickr-rContainer { width:50%!important; min-width:0!important; flex:1!important; }
.flatpickr-calendar:not(.multiMonth) { width:390px!important; max-width:calc(100vw - 30px)!important; }

/* CUSTOM HEADER */
.npt-fp-custom-header { display:flex!important; align-items:center!important; justify-content:space-between!important; width:100%!important; margin:0 0 22px!important; padding:0!important; }
.npt-fp-title { margin:0!important; padding:0!important; font-size:24px!important; line-height:1!important; font-weight:800!important; color:#3f4752!important; letter-spacing:.1px!important; }
.npt-fp-close { width:32px!important; height:32px!important; padding:0!important; border:0!important; background:transparent!important; color:#4b5563!important; font-size:29px!important; line-height:1!important; font-weight:300!important; cursor:pointer!important; display:flex!important; align-items:center!important; justify-content:center!important; border-radius:50%!important; transition:all .2s ease!important; }
.npt-fp-close:hover { background:#f1f5f9!important; color:#111827!important; }

/* MODERN TRANSPORT TIME PICKER */
.flatpickr-calendar.nptbooking-timepicker-popup { width:320px!important; max-width:calc(100vw - 30px)!important; padding:18px!important; border-radius:16px!important; }
.npt-timepicker-header { display:flex; align-items:center; justify-content:space-between; margin-bottom:14px; color:#0f172a; font-size:18px; font-weight:800; }
.npt-timepicker-close { display:flex; align-items:center; justify-content:center; width:34px; height:34px; padding:0; border:0; border-radius:50%; background:#f1f5f9; color:#475569; font-size:25px; line-height:1; cursor:pointer; }
.nptbooking-timepicker-popup .flatpickr-time { display:flex!important; align-items:stretch!important; height:76px!important; max-height:76px!important; border:1px solid #cbd5e1!important; border-radius:12px!important; background:#f8fafc!important; overflow:hidden!important; }
.nptbooking-timepicker-popup .flatpickr-time .numInputWrapper { height:74px!important; flex:1 1 0!important; }
.nptbooking-timepicker-popup .flatpickr-time input { height:74px!important; color:#0f172a!important; font-size:25px!important; font-weight:800!important; }
.nptbooking-timepicker-popup .flatpickr-time .flatpickr-time-separator { display:flex!important; align-items:center!important; height:74px!important; color:#64748b!important; font-size:22px!important; font-weight:800!important; }
.nptbooking-timepicker-popup .flatpickr-time .flatpickr-am-pm { height:74px!important; color:#0f172a!important; font-size:17px!important; font-weight:800!important; }
.nptbooking-timepicker-popup .flatpickr-time .numInputWrapper span { width:28px!important; border-left:1px solid #e2e8f0!important; opacity:1!important; }
.nptbooking-timepicker-popup .flatpickr-time .numInputWrapper span.arrowUp { border-bottom:1px solid #e2e8f0!important; }
.npt-timepicker-actions { margin-top:14px; }
.npt-timepicker-done { width:100%; min-height:44px; padding:0 16px; border:0; border-radius:9px; background:var(--brand-color,#ff5b00); color:#fff; font-size:14px; font-weight:800; cursor:pointer; }

/* MONTH NAVIGATION */
.flatpickr-months { position:relative!important; display:flex!important; align-items:center!important; width:100%!important; margin:0 0 22px!important; min-height:28px!important; }
.flatpickr-month { position:relative!important; flex:1!important; width:auto!important; height:auto!important; text-align:center!important; }
.flatpickr-current-month { position:relative!important; left:0!important; width:100%!important; height:auto!important; padding:0!important; display:flex!important; align-items:center!important; justify-content:center!important; gap:3px!important; font-size:17px!important; font-weight:700!important; color:#3f4752!important; }
.flatpickr-current-month .flatpickr-monthDropdown-months { appearance:none!important; -webkit-appearance:none!important; background:transparent!important; color:#3f4752!important; font-size:17px!important; font-weight:700!important; padding:0!important; margin:0!important; cursor:pointer!important; }
.flatpickr-current-month input.cur-year { color:#3f4752!important; font-size:17px!important; font-weight:700!important; padding:0!important; }
.flatpickr-current-month .numInputWrapper:hover { background:transparent!important; }
.flatpickr-current-month .numInputWrapper span { display:none!important; }
.flatpickr-prev-month, .flatpickr-next-month { top:50%!important; width:30px!important; height:30px!important; padding:0!important; display:flex!important; align-items:center!important; justify-content:center!important; border-radius:50%!important; transform:translateY(-50%)!important; transition:background .2s ease!important; z-index:10!important; }
.flatpickr-prev-month { left:0!important; }
.flatpickr-next-month { right:0!important; }
.flatpickr-prev-month:hover, .flatpickr-next-month:hover { background:#f3f4f6!important; }
.flatpickr-prev-month svg, .flatpickr-next-month svg { width:13px!important; height:13px!important; fill:#4b5563!important; }
.flatpickr-prev-month:hover svg, .flatpickr-next-month:hover svg { fill:#111827!important; }

/* WEEKDAYS */
.flatpickr-weekdays { height:auto!important; margin:0 0 14px!important; }
.flatpickr-weekdaycontainer { display:flex!important; width:100%!important; }
span.flatpickr-weekday { flex:1 1 14.285%!important; width:14.285%!important; height:auto!important; margin:0!important; color:#4b5563!important; font-size:12px!important; line-height:20px!important; font-weight:500!important; text-align:center!important; }
span.flatpickr-weekday:first-child { color:#d9534f!important; }

/* DAYS */
.flatpickr-days { width:100%!important; border:0!important; }
.dayContainer { width:100%!important; min-width:100%!important; max-width:100%!important; display:flex!important; flex-wrap:wrap!important; border:0!important; box-shadow:none!important; }
.flatpickr-day { width:14.285%!important; max-width:14.285%!important; flex-basis:14.285%!important; height:48px!important; margin:0!important; border:0!important; border-radius:7px!important; color:#4b5563!important; font-size:14px!important; line-height:48px!important; font-weight:600!important; background:transparent!important; transition:background .18s ease,color .18s ease,transform .18s ease!important; }
.flatpickr-day.prevMonthDay, .flatpickr-day.nextMonthDay { color:#b9c0c8!important; font-weight:500!important; }
.flatpickr-day:hover, .flatpickr-day:focus { background:#f3f4f6!important; color:#111827!important; border-color:transparent!important; }
.flatpickr-day:nth-child(7n+1):not(.selected):not(.startRange):not(.endRange):not(.inRange):not(.today) { color:#df5b54!important; }

/* TODAY */
.flatpickr-day.today { border:0!important; color:#4b5563!important; position:relative!important; font-weight:700!important; }
.flatpickr-day.today::after { content:'Today'; position:absolute; left:50%; bottom:1px; transform:translateX(-50%); color:#2f7ed8; font-size:9px; line-height:10px; font-weight:700; }
.flatpickr-day.today:hover { background:#f3f4f6!important; }

/* SELECTED DATE */
.flatpickr-day.selected, .flatpickr-day.startRange, .flatpickr-day.endRange { background:#2f76bc!important; border-color:#2f76bc!important; color:#fff!important; font-weight:700!important; box-shadow:0 4px 10px rgba(47,118,188,.22)!important; }
.flatpickr-day.selected:hover, .flatpickr-day.startRange:hover, .flatpickr-day.endRange:hover { background:#2567a9!important; border-color:#2567a9!important; color:#fff!important; }
.flatpickr-day.selected.today::after, .flatpickr-day.startRange.today::after, .flatpickr-day.endRange.today::after { color:#fff!important; }
.flatpickr-day.inRange { background:#edf4fb!important; border-color:#edf4fb!important; color:#3f4752!important; box-shadow:none!important; border-radius:0!important; }

/* DISABLED */
.flatpickr-day.flatpickr-disabled, .flatpickr-day.flatpickr-disabled:hover { color:#d1d5db!important; cursor:not-allowed!important; background:transparent!important; }

/* ANIMATION */
@keyframes nptCalendarFade { from { opacity:0; transform:translateY(8px); } to { opacity:1; transform:translateY(0); } }

/* MOBILE */
@media (max-width:768px) {
    .nptbooking-modal-content { width:95%; max-height:90vh; padding:18px; }
    .nptbooking-form-row { grid-template-columns:1fr; gap:10px; }
    .nptbooking-pax-row { grid-template-columns:repeat(3,minmax(0,1fr)); }
    .npt-step { padding:9px 5px; font-size:11px; }
    .npt-fastboat-choice-card { padding:19px 14px; }
    .npt-fastboat-choice-actions { grid-template-columns:1fr; }
    .npt-fastboat-choice-btn { min-height:76px; }
    .npt-fastboat-ticket-panel { padding:16px 14px; }
	    .nptbooking-form-group input, .nptbooking-form-group select { min-height:48px; font-size:16px; }
    .nptbooking-person-name-grid { grid-template-columns:82px minmax(0,1fr); }
    .nptbooking-additional-guest-row { grid-template-columns:96px minmax(0,1fr); gap:8px; }
    .flatpickr-calendar, .flatpickr-calendar:not(.multiMonth), .flatpickr-calendar.multiMonth { position:fixed!important; top:auto!important; right:0!important; bottom:0!important; left:0!important; width:100%!important; max-width:100%!important; padding:20px 16px 28px!important; border:0!important; border-radius:22px 22px 0 0!important; box-shadow:0 -12px 45px rgba(15,23,42,.16)!important; }
    .flatpickr-calendar.multiMonth .flatpickr-innerContainer { gap:0!important; }
    .flatpickr-calendar.multiMonth .flatpickr-rContainer { width:100%!important; }
	    .flatpickr-calendar::before { content:''; display:block; width:42px; height:4px; border-radius:10px; background:#cbd5e1; margin:0 auto 18px; }
	    .flatpickr-calendar.nptbooking-timepicker-popup { padding:18px 18px max(24px,env(safe-area-inset-bottom))!important; border-radius:22px 22px 0 0!important; }
	    .nptbooking-timepicker-popup .flatpickr-time { height:84px!important; max-height:84px!important; }
	    .nptbooking-timepicker-popup .flatpickr-time .numInputWrapper, .nptbooking-timepicker-popup .flatpickr-time input, .nptbooking-timepicker-popup .flatpickr-time .flatpickr-time-separator, .nptbooking-timepicker-popup .flatpickr-time .flatpickr-am-pm { height:82px!important; }
	    .npt-timepicker-done { min-height:50px; font-size:16px; }
    .npt-fp-custom-header { margin-bottom:20px!important; }
    .npt-fp-title { font-size:22px!important; }
    .flatpickr-months { margin-bottom:18px!important; }
    .flatpickr-day { height:46px!important; line-height:46px!important; font-size:15px!important; }
    .flatpickr-day.today::after { font-size:9px; bottom:0; }
}

/* SMALL MOBILE */
@media (max-width:420px) {
    .nptbooking-pax-row { gap:6px; }
    .nptbooking-pax-row .nptbooking-form-group input { padding:0 7px; }
    .flatpickr-calendar { padding-right:10px!important; padding-left:10px!important; }
    .flatpickr-day { font-size:14px!important; }
}
