:root {
  --blue:#2563eb;--blue-lt:#eff4ff;--blue-mid:#dbeafe;--blue-dk:#1d4ed8;
  --navy:#0f1b35;--gray:#6b7280;--gray-lt:#9ca3af;--gray-dk:#374151;
  --green:#16a34a;--green-lt:#dcfce7;
  --red:#dc2626;--red-lt:#fee2e2;
  --orange:#d97706;--orange-lt:#fef3c7;
  --bg:#ffffff;--bg2:#fff;--bg3:#f1f5f9;
  --border:#e5e7eb;--border2:#d1d5db;
  --shadow:0 1px 3px rgba(0,0,0,.07),0 1px 2px rgba(0,0,0,.05);
  --shadow-md:0 4px 6px -1px rgba(0,0,0,.07),0 2px 4px -1px rgba(0,0,0,.04);
}
*{box-sizing:border-box;margin:0;padding:0}
body{font-family:'Inter',sans-serif;background:var(--bg);color:var(--navy);-webkit-font-smoothing:antialiased}
/* NAV */
nav{display:flex;justify-content:space-between;align-items:center;padding:12px 28px;border-bottom:1px solid var(--border);background:#fff;position:sticky;top:0;z-index:100}
/* HERO */
.hero{background:linear-gradient(135deg,var(--navy) 0%,#1a3a6e 100%);padding:52px 28px 48px;color:#fff}
.hero-inner{max-width:860px;margin:0 auto}
.hero-eyebrow{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.2);border-radius:100px;padding:5px 14px;font-size:12px;color:#93c5fd;font-weight:700;letter-spacing:.3px;margin-bottom:18px;text-transform:uppercase}
.hero h1{font-size:clamp(28px,3.5vw,46px);font-weight:800;line-height:1.1;letter-spacing:-1.2px;margin-bottom:12px}
.hero h1 span{color:#60a5fa}
.hero p{font-size:14px;color:rgba(255,255,255,.7);max-width:560px;line-height:1.6}
/* MAIN */
.main{max-width:860px;margin:0 auto;padding:28px 20px 80px}
/* PROGRESS */
.progress-bar{background:#fff;border:1px solid var(--border);border-radius:12px;padding:16px 20px;margin-bottom:20px;display:flex;align-items:center;gap:6px;box-shadow:var(--shadow);overflow-x:auto}
.step-pill{display:flex;align-items:center;gap:8px;padding:8px 16px;border-radius:8px;font-size:12px;font-weight:500;color:var(--gray);white-space:nowrap;cursor:default}
.step-pill .sn{width:22px;height:22px;border-radius:50%;border:1.5px solid var(--border2);display:flex;align-items:center;justify-content:center;font-size:11px;font-weight:700;flex-shrink:0}
.step-pill.active{background:var(--blue-lt);color:var(--blue);font-weight:600}
.step-pill.active .sn{background:var(--blue);color:#fff;border-color:var(--blue)}
.step-pill.done{color:var(--green)}
.step-pill.done .sn{background:var(--green-lt);color:var(--green);border-color:var(--green)}
.step-sep{width:24px;height:1px;background:var(--border2);margin:0 2px;flex-shrink:0}
/* CARD */
.card{background:#fff;border:1px solid var(--border);border-radius:16px;padding:28px 24px;margin-bottom:14px;box-shadow:var(--shadow)}
.card-header{display:flex;align-items:center;gap:12px;margin-bottom:22px;padding-bottom:18px;border-bottom:1px solid var(--border)}
.card-icon{width:38px;height:38px;background:var(--blue-lt);border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:18px;flex-shrink:0}
.card-title{font-size:17px;font-weight:700;color:var(--navy);letter-spacing:-.3px}
.card-sub{font-size:12px;color:var(--gray);margin-top:1px}
/* FORM */
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.fg{display:flex;flex-direction:column;gap:5px}
.fg.full{grid-column:1/-1}
label{font-size:11px;font-weight:600;color:var(--gray-dk);letter-spacing:.6px;text-transform:uppercase}
input,select,textarea{background:#fff;border:1px solid var(--border2);border-radius:8px;padding:10px 12px;font-size:13px;font-family:'Inter',sans-serif;color:var(--navy);outline:none;transition:border-color .15s,box-shadow .15s;width:100%}
input::placeholder{color:var(--gray-lt)}
input:focus,select:focus,textarea:focus{border-color:var(--blue);box-shadow:0 0 0 3px rgba(37,99,235,.1)}
select{color:var(--gray-dk)}
.req{color:var(--red);margin-left:2px}
/* ADDR AUTOCOMPLETE */
.addr-wrap{position:relative}
.addr-dropdown{position:absolute;top:calc(100% + 4px);left:0;right:0;background:#fff;border:1px solid var(--border2);border-radius:10px;box-shadow:var(--shadow-md);z-index:300;max-height:280px;overflow-y:auto;display:none}
.addr-dropdown.open{display:block}
.addr-option{padding:10px 13px;cursor:pointer;font-size:13px;border-bottom:1px solid var(--border);transition:background .1s}
.addr-option:last-child{border-bottom:none}
.addr-option:hover,.addr-option.hl{background:var(--blue-lt)}
.addr-main{font-size:13px;font-weight:600;color:var(--navy)}
.addr-sub{font-size:11px;color:var(--gray);margin-top:1px}

.guest-addr-wrap{position:relative;width:100%}
#guestStreetDropdown{top:calc(100% + 4px);left:0;right:0;max-height:240px;z-index:650;overflow-y:auto}
#guestStreetDropdown.open{display:block}
/* STOPS */
.stops-wrap{display:flex;flex-direction:column;gap:10px;margin-bottom:12px}
.stop-card{background:var(--bg3);border:1px solid var(--border);border-radius:12px;overflow:hidden}
.stop-head{display:flex;align-items:center;gap:10px;padding:12px 14px;background:#fff;border-bottom:1px solid var(--border)}
.stop-num{width:28px;height:28px;border-radius:50%;background:var(--blue);color:#fff;font-size:11px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.stop-addr-lbl{font-size:13px;font-weight:600;color:var(--navy);flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.stop-addr-lbl.empty{color:var(--gray-lt);font-weight:400;font-style:italic}
.stop-body{padding:14px}
.stop-actions{display:flex;gap:8px;margin-top:10px}
/* ITEMS TABLE */
.items-wrap{overflow-x:auto;border:1px solid var(--border);border-radius:10px;margin-top:10px}
.items-table{width:100%;border-collapse:collapse;min-width:600px}
.items-table th{text-align:left;font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--gray);padding:9px 10px;background:var(--bg3);border-bottom:1px solid var(--border)}
.items-table td{padding:5px;border-bottom:1px solid var(--border);background:#fff}
.items-table tr:last-child td{border-bottom:none}
.items-table input{padding:8px 9px;font-size:12px}
.del-btn{background:none;border:none;border-radius:6px;color:var(--gray-lt);cursor:pointer;width:30px;height:30px;font-size:16px;display:flex;align-items:center;justify-content:center;transition:all .15s}
.del-btn:hover{background:var(--red-lt);color:var(--red)}
.add-row-btn{margin-top:8px;background:none;border:1px dashed var(--border2);border-radius:8px;padding:8px;font-size:12px;font-weight:600;color:var(--gray);cursor:pointer;font-family:'Inter',sans-serif;width:100%;transition:all .15s}
.add-row-btn:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-lt)}
.csv-upload-bar{display:flex;align-items:center;gap:8px;margin-top:8px;padding:8px 10px;background:var(--bg3);border:1px solid var(--border);border-radius:8px}
.bulk-upload-panel{border:1.5px dashed #bfdbfe;border-radius:12px;background:var(--blue-lt);padding:16px 18px;margin-bottom:16px}
.bulk-upload-panel.has-data{border-color:var(--green);background:var(--green-lt)}
.bulk-mode-tabs{display:flex;gap:0;border:1px solid var(--border);border-radius:10px;overflow:hidden;margin-bottom:16px}
.bulk-mode-tab{flex:1;padding:10px;font-size:12px;font-weight:700;background:#fff;border:none;cursor:pointer;font-family:'Inter',sans-serif;color:var(--gray-dk);transition:all .15s}
.bulk-mode-tab.active{background:var(--blue);color:#fff}
.bulk-mode-tab:first-child{border-right:1px solid var(--border)}
.csv-upload-bar span{font-size:11px;color:var(--gray);flex:1}
.csv-upload-btn{font-size:11px;font-weight:700;color:var(--blue);background:var(--blue-lt);border:1px solid #bfdbfe;border-radius:6px;padding:5px 10px;cursor:pointer;font-family:'Inter',sans-serif;white-space:nowrap}
.csv-upload-btn:hover{background:#dbeafe}
.csv-tmpl-link{font-size:11px;color:var(--gray);text-decoration:underline;cursor:pointer;white-space:nowrap}
.csv-tmpl-link:hover{color:var(--blue)}
/* QUICK PRESETS */
.presets-row{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:10px}
.preset-btn{background:#fff;border:1px solid var(--border2);border-radius:7px;padding:5px 11px;font-size:11px;font-weight:600;color:var(--gray-dk);cursor:pointer;font-family:'Inter',sans-serif;transition:all .15s}
.preset-btn:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-lt)}
.preset-lbl{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--gray);margin-bottom:6px}
/* DG */
.dg-panel{background:#fff7ed;border:1px solid #fed7aa;border-radius:10px;padding:14px 16px;margin-top:12px;display:none}
.dg-panel.show{display:block}
.dg-panel-title{font-size:12px;font-weight:700;color:#9a3412;text-transform:uppercase;letter-spacing:.6px;margin-bottom:10px}
.dg-upload{border:1.5px dashed #fed7aa;border-radius:8px;padding:12px;text-align:center;cursor:pointer;font-size:12px;color:#c2410c;background:#fff;transition:all .15s;margin-bottom:10px}
.dg-upload:hover{border-color:#f97316;background:#fff7ed}
.dg-file-name{font-size:11px;color:var(--green);font-weight:600;margin-top:4px}
/* STOP NOTES & DOCS */
.stop-notes-wrap{margin-top:12px;padding-top:12px;border-top:1px solid var(--border)}
.stop-notes-wrap label{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.6px;color:var(--gray);display:block;margin-bottom:5px}
.stop-notes-wrap textarea{font-size:12px;resize:vertical;min-height:56px}
.doc-upload-btn{display:flex;align-items:center;gap:8px;background:#fff;border:1.5px dashed var(--border2);border-radius:8px;padding:9px 12px;font-size:12px;color:var(--gray-dk);cursor:pointer;font-family:'Inter',sans-serif;width:100%;text-align:left;transition:all .15s;margin-top:6px}
.doc-upload-btn:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-lt)}
.doc-file-list{display:flex;flex-direction:column;gap:4px;margin-top:6px}
.doc-file-tag{display:inline-flex;align-items:center;gap:6px;background:var(--green-lt);border:1px solid #86efac;border-radius:6px;padding:3px 9px;font-size:11px;color:var(--green);font-weight:600}
.doc-file-tag button{background:none;border:none;cursor:pointer;color:var(--green);font-size:13px;line-height:1;padding:0 0 0 2px}
/* PICKUP DOCS */
.pickup-upload-wrap{margin-top:10px}
/* OTHER DOCS in step 3 */
.other-docs-section{margin-top:14px;padding-top:14px;border-top:1px solid var(--border)}
.other-docs-title{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.7px;color:var(--gray-dk);margin-bottom:10px;display:flex;align-items:center;gap:6px}
/* TOGGLE */
.toggle-row{display:flex;align-items:center;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--border)}
.toggle-row:last-child{border-bottom:none}
.toggle-lbl{font-size:13px;font-weight:500;color:var(--navy)}
.toggle-sub{font-size:11px;color:var(--gray);margin-top:2px}
.toggle{position:relative;width:42px;height:24px;flex-shrink:0}
.toggle input{opacity:0;width:0;height:0}
.toggle-slider{position:absolute;inset:0;background:var(--border2);border-radius:100px;cursor:pointer;transition:background .2s}
.toggle-slider::before{content:'';position:absolute;width:18px;height:18px;left:3px;top:3px;background:#fff;border-radius:50%;transition:transform .2s;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.toggle input:checked+.toggle-slider{background:var(--blue)}
.toggle input:checked+.toggle-slider::before{transform:translateX(18px)}
/* BTNS */
.btn-primary{background:var(--blue);color:#fff;border:none;padding:12px 22px;border-radius:9px;font-size:14px;font-weight:600;font-family:'Inter',sans-serif;cursor:pointer;transition:background .15s}
.btn-primary:hover{background:var(--blue-dk)}
.btn-primary:disabled{background:var(--border2);color:var(--gray-lt);cursor:not-allowed}
.btn-secondary{background:#fff;border:1px solid var(--border2);color:var(--gray-dk);padding:10px 18px;border-radius:8px;font-size:13px;font-weight:500;font-family:'Inter',sans-serif;cursor:pointer;transition:all .15s}
.btn-secondary:hover{border-color:var(--blue);color:var(--blue)}
.btn-danger{background:none;border:1px solid var(--red-lt);color:var(--red);padding:7px 14px;border-radius:7px;font-size:12px;font-weight:600;font-family:'Inter',sans-serif;cursor:pointer;transition:all .15s}
.btn-danger:hover{background:var(--red-lt)}
.add-stop-btn{width:100%;background:none;border:1.5px dashed var(--blue-mid);border-radius:10px;padding:12px;font-size:13px;font-weight:600;color:var(--blue);cursor:pointer;font-family:'Inter',sans-serif;display:flex;align-items:center;justify-content:center;gap:8px;transition:all .15s}
.add-stop-btn:hover{background:var(--blue-lt)}
/* LOADING */
.loading-overlay{display:none;text-align:center;padding:60px 20px}
.loading-overlay.show{display:block}
.spinner{width:44px;height:44px;border:3px solid var(--border);border-top-color:var(--blue);border-radius:50%;animation:spin .7s linear infinite;margin:0 auto 20px}
@keyframes spin{to{transform:rotate(360deg)}}
.loading-overlay p{font-size:13px;color:var(--gray);font-weight:500;margin-top:8px}
.loading-overlay .loading-steps{margin-top:18px;display:flex;flex-direction:column;gap:8px}
.loading-step{font-size:12px;color:var(--gray-lt);display:flex;align-items:center;gap:8px;justify-content:center}
.loading-step.done{color:var(--green)}
.loading-step.active{color:var(--blue);font-weight:600}
/* PRICE LOADER SPLASH */
body.custm-shifts-price-loading{overflow:hidden}
body.custm-shifts-price-loading nav,
body.custm-shifts-price-loading .hero,
body.custm-shifts-price-loading footer{visibility:hidden}
.shifts-price-splash{display:none;position:fixed;inset:0;z-index:1200;background:#fff;padding:32px 20px}
.shifts-price-splash.show{display:flex !important;align-items:center;justify-content:center}
.shifts-price-splash-shell{width:min(100%,760px);text-align:center}
.shifts-price-splash-badge{display:inline-flex;align-items:center;justify-content:center;background:var(--blue-lt);border:1px solid #bfdbfe;border-radius:999px;padding:7px 16px;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:var(--blue);margin-bottom:18px}
.shifts-price-splash h2{font-size:clamp(28px,4vw,44px);font-weight:900;line-height:1.05;letter-spacing:-1.2px;color:var(--navy);margin-bottom:12px}
.shifts-price-splash p{font-size:14px;line-height:1.7;color:var(--gray);max-width:620px;margin:0 auto 28px}
.shifts-price-route{margin:0 auto 18px;max-width:640px}
.shifts-price-road{position:relative;height:108px;border-radius:999px;background:linear-gradient(180deg,#f8fafc 0%,#eef2ff 100%);border:1px solid #dbeafe;overflow:hidden}
.shifts-price-road::before{content:'';position:absolute;left:28px;right:28px;top:50%;height:8px;transform:translateY(-50%);border-radius:999px;background:repeating-linear-gradient(90deg,#cbd5e1 0 24px,transparent 24px 44px)}
.shifts-price-road::after{content:'';position:absolute;inset:12px;border-radius:999px;border:1px dashed rgba(37,99,235,.15)}
.shifts-price-truck{position:absolute;left:0;top:50%;width:132px;transform:translate(-10%,-50%);transition:left .28s ease,transform .28s ease;z-index:2}
.shifts-price-truck img{display:block;width:100%;height:auto;object-fit:contain}
.shifts-price-progress{max-width:640px;height:12px;background:#e5e7eb;border-radius:999px;overflow:hidden;margin:0 auto 12px}
.shifts-price-progress-bar{height:100%;width:0;background:linear-gradient(90deg,#2563eb 0%,#60a5fa 100%);border-radius:999px;transition:width .28s ease}
.shifts-price-progress-meta{display:flex;align-items:center;justify-content:space-between;gap:16px;max-width:640px;margin:0 auto 22px;font-size:13px;font-weight:700;color:var(--navy)}
.shifts-price-progress-meta span:last-child{text-align:left;flex:1;color:var(--gray-dk);font-weight:600}
.shifts-price-stage-list{max-width:420px;margin:0 auto;display:flex;flex-direction:column;gap:9px;text-align:left}
.shifts-price-stage-item{font-size:13px;color:#94a3b8;display:flex;align-items:center;gap:10px}
.shifts-price-stage-item::before{content:'◻';font-size:13px;color:#cbd5e1}
.shifts-price-stage-item.active{color:var(--blue);font-weight:700}
.shifts-price-stage-item.active::before{content:'◼';color:var(--blue)}
.shifts-price-stage-item.done{color:var(--green);font-weight:700}
.shifts-price-stage-item.done::before{content:'✓';color:var(--green)}
.loading-overlay{display:none !important}
@media (max-width:640px){.shifts-price-splash{padding:24px 16px}.shifts-price-road{height:92px}.shifts-price-truck{width:104px}.shifts-price-progress-meta{flex-direction:column;align-items:flex-start}.shifts-price-stage-list{max-width:100%}}

/* RESULT */
.result-section{display:none}
.result-section.show{display:block}
.result-hero{background:linear-gradient(135deg,var(--navy),#1a3a6e);border-radius:16px;padding:24px 28px;margin-bottom:16px;color:#fff}
.result-hero-top{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap}
.vehicle-badge{display:inline-flex;align-items:center;gap:8px;background:rgba(255,255,255,.15);border:1px solid rgba(255,255,255,.25);border-radius:8px;padding:6px 14px;font-size:12px;font-weight:700;color:#fff;letter-spacing:.3px;text-transform:uppercase}
.price-big{text-align:right}
.price-big .exc{font-size:11px;color:rgba(255,255,255,.5);margin-bottom:4px;letter-spacing:.5px;text-transform:uppercase}
.price-big .amt{font-size:40px;font-weight:900;letter-spacing:-2px;line-height:1}
.price-big .inc{font-size:12px;color:rgba(255,255,255,.6);margin-top:4px}
.result-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(120px,1fr));gap:10px;margin-top:18px}
.stat-box{background:rgba(255,255,255,.1);border-radius:9px;padding:10px 12px}
.stat-lbl{font-size:10px;color:rgba(255,255,255,.5);text-transform:uppercase;letter-spacing:.8px;font-weight:600;margin-bottom:4px}
.stat-val{font-size:18px;font-weight:800;color:#fff}
.stat-unit{font-size:11px;color:rgba(255,255,255,.6);margin-top:1px}
/* BREAKDOWN */
.breakdown-card{background:#fff;border:1px solid var(--border);border-radius:14px;overflow:hidden;margin-bottom:14px}
.breakdown-head{background:var(--bg3);padding:14px 18px;font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.8px;color:var(--gray);border-bottom:1px solid var(--border)}
.breakdown-row{display:flex;justify-content:space-between;align-items:center;padding:11px 18px;border-bottom:1px solid var(--border)}
.breakdown-row:last-child{border-bottom:none}
.bd-lbl{font-size:13px;color:var(--gray-dk)}
.bd-sub{font-size:11px;color:var(--gray);margin-top:1px}
.bd-amt{font-size:14px;font-weight:700;color:var(--navy);text-align:right}
.bd-amt.surcharge{color:var(--orange)}
.bd-amt.total{font-size:18px;color:var(--blue);font-weight:900}
.bd-amt.gst{color:var(--gray)}
.total-row{background:var(--blue-lt);padding:16px 18px;display:flex;justify-content:space-between;align-items:center}
.total-lbl{font-size:14px;font-weight:700;color:var(--navy)}
.total-sub{font-size:11px;color:var(--gray);margin-top:2px}
.total-amt{font-size:28px;font-weight:900;color:var(--blue);letter-spacing:-1px}
/* ROUTE MAP PLACEHOLDER */
.route-map{background:var(--bg3);border:1px solid var(--border);border-radius:12px;height:340px;margin-bottom:14px;overflow:hidden;position:relative}
.route-map-inner{text-align:center;color:var(--gray)}
.route-map-inner p{font-size:12px;margin-top:8px}
#leafletMap{width:100%;height:100%;border-radius:12px}
.map-loading{display:flex;align-items:center;justify-content:center;height:100%;font-size:13px;color:var(--gray);gap:10px}
/* OVERNIGHT ALERT */
.overnight-alert{background:#fef3c7;border:1px solid #fde68a;border-radius:10px;padding:14px 16px;margin-bottom:14px;display:none}
.overnight-alert.show{display:block}
.overnight-alert-head{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:.7px;color:#92400e;margin-bottom:6px}
.overnight-alert p{font-size:13px;color:#78350f;line-height:1.5}
/* MANUAL REVIEW */
.manual-review{background:#fff7ed;border:1.5px solid #fed7aa;border-radius:12px;padding:20px;text-align:center;display:none}
.manual-review.show{display:block}
.manual-review .mr-icon{font-size:36px;margin-bottom:10px}
.manual-review h3{font-size:17px;font-weight:700;color:#9a3412;margin-bottom:6px}
.manual-review p{font-size:13px;color:#c2410c;line-height:1.5}
/* ERROR MSG */
.err-msg{background:var(--red-lt);border:1px solid #fca5a5;border-radius:8px;padding:10px 14px;font-size:13px;color:var(--red);font-weight:500;margin-top:8px;display:none}
.err-msg.show{display:block}
/* SUBMIT ROW */
.submit-row{display:flex;gap:10px;align-items:center;justify-content:flex-end;margin-top:16px;flex-wrap:wrap}
/* ACTION BAR */
.action-bar{background:#fff;border:1px solid var(--border);border-radius:12px;padding:16px 20px;display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:16px;box-shadow:var(--shadow)}
/* PAYMENT MODAL */
.modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,0,0,.55);z-index:1000;align-items:center;justify-content:center;padding:16px}
.modal-overlay.show{display:flex}
.modal-box{background:#fff;border-radius:18px;width:100%;max-width:560px;max-height:90vh;overflow-y:auto;box-shadow:0 20px 60px rgba(0,0,0,.25);position:relative}
.modal-header{padding:9px 15px;border-bottom:1px solid var(--border);display:flex;align-items:center;gap:12px}
.modal-header-icon{width:40px;height:40px;background:var(--blue-lt);border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}
.modal-header h2{font-size:17px;font-weight:800;color:var(--navy);letter-spacing:-.3px;margin:0}
.modal-header p{font-size:12px;color:var(--gray);margin:2px 0 0}
.modal-close{position:absolute;top:16px;right:16px;background:none;border:none;font-size:20px;cursor:pointer;color:var(--gray);width:32px;height:32px;border-radius:6px;display:flex;align-items:center;justify-content:center;transition:all .15s}
.modal-close:hover{background:var(--bg3);color:var(--navy)}
.modal-body{padding:22px 24px}
/* Price strip */
.pay-price-strip{background:linear-gradient(135deg,var(--navy),#1a3a6e);border-radius:12px;padding:8px 20px;margin-bottom:20px;display:flex;justify-content:space-between;align-items:center;color:#fff}
.pay-price-strip .lbl{font-size:11px;color:rgba(255,255,255,.6);text-transform:uppercase;letter-spacing:.6px;margin-bottom:4px}
.pay-price-strip .amt{font-size:28px;font-weight:900;letter-spacing:-1px}
.pay-price-strip .gst{font-size:11px;color:rgba(255,255,255,.5);margin-top:2px}
.pay-price-strip .desc{font-size:12px;color:rgba(255,255,255,.75);max-width:200px;line-height:1.4}
/* Steps */
.pay-step{display:none}.pay-step.active{display:block}
/* Signup options */
.signup-opts{display:flex;flex-direction:column;gap:10px;margin-bottom:18px}
.signup-opt{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1.5px solid var(--border2);border-radius:12px;cursor:pointer;transition:all .15s;text-decoration:none;color:inherit}
.signup-opt:hover{border-color:var(--blue);background:var(--blue-lt)}
.signup-opt-icon{width:38px;height:38px;border-radius:9px;display:flex;align-items:center;justify-content:center;font-size:20px;flex-shrink:0}
.signup-opt-title{font-size:13px;font-weight:700;color:var(--navy)}
.signup-opt-sub{font-size:11px;color:var(--gray);margin-top:2px}
.pay-divider{display:flex;align-items:center;gap:10px;margin:16px 0;font-size:11px;color:var(--gray);font-weight:600;text-transform:uppercase;letter-spacing:.5px}
.pay-divider::before,.pay-divider::after{content:'';flex:1;height:1px;background:var(--border)}
/* Test card box */
.test-box{background:#fffbeb;border:1px solid #fde68a;border-radius:10px;padding:14px 18px;margin-bottom:18px}
.test-box-title{font-size:11px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:#92400e;margin-bottom:10px}
.tc-row{display:flex;justify-content:space-between;align-items:center;padding:5px 0;border-bottom:1px solid #fde68a}
.tc-row:last-of-type{border-bottom:none}
.tc-cnum{font-family:monospace;font-size:13px;color:#78350f;cursor:pointer;letter-spacing:.5px;font-weight:600;background:none;border:none;padding:0;font-family:monospace}
.tc-cnum:hover{color:var(--blue)}
.tc-clbl{font-size:11px;color:#92400e;font-weight:600}
.tc-hint{font-size:11px;color:#a16207;margin-top:8px}
/* Fake card input */
.card-field-wrap{background:#fff;border:1.5px solid var(--border2);border-radius:9px;padding:12px 14px;font-size:14px;color:var(--navy);margin-bottom:10px;transition:border-color .15s,box-shadow .15s;cursor:text}
.card-field-wrap:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px rgba(37,99,235,.1)}
.card-field-wrap input{border:none;outline:none;width:100%;font-size:14px;color:var(--navy);background:transparent;font-family:'Inter',sans-serif}
.card-field-wrap input::placeholder{color:var(--gray-lt)}
.stripe-element-wrap{background:#fff;border:1.5px solid var(--border2);border-radius:9px;padding:12px 14px;font-size:14px;color:var(--navy);margin-bottom:10px;transition:border-color .15s,box-shadow .15s;min-height:46px}
.stripe-element-wrap:focus-within{border-color:var(--blue);box-shadow:0 0 0 3px rgba(37,99,235,.1)}
.stripe-element-wrap .StripeElement{width:100%}
.booking-summary-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:20px;text-align:left}
.booking-summary-card{border:1px solid #e2e8f0;border-radius:12px;padding:14px 16px;background:#fff}
.booking-summary-card .lbl{font-size:11px;font-weight:700;color:#64748b;text-transform:uppercase;letter-spacing:.05em;margin-bottom:4px}
.booking-summary-card .val{font-size:13px;color:#0f172a;line-height:1.45;font-weight:600}
.booking-price-preview{margin-top:18px;background:#0f1b35;border-radius:14px;padding:16px 18px;text-align:left;color:#fff}
.booking-price-preview .head{font-size:11px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:rgba(255,255,255,.72);margin-bottom:12px}
.card-row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.secure-note{font-size:11px;color:var(--gray);text-align:center;margin:12px 0 18px;display:flex;align-items:center;justify-content:center;gap:5px}
.stripe-errors{color:var(--red);font-size:12px;margin-bottom:10px;min-height:16px;font-weight:500}
/* Success */
.pay-success{text-align:center;padding:10px 0}
.pay-success-icon{width:64px;height:64px;background:var(--green-lt);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:30px;margin:0 auto 16px}
.pay-success h3{font-size:20px;font-weight:800;color:var(--navy);margin-bottom:8px}
.pay-success p{font-size:13px;color:var(--gray);line-height:1.6}
.booking-ref-badge{background:var(--blue-lt);border:1px solid var(--blue-mid);border-radius:10px;padding:12px 20px;font-size:22px;font-weight:900;color:var(--blue);letter-spacing:.5px;margin:16px auto;display:inline-block}
/* Email preview inside modal */
.email-preview-wrap{margin-top:20px;border:1px solid var(--border);border-radius:12px;overflow:hidden;max-height:420px;overflow-y:auto}
.email-preview-label{background:var(--bg3);border-bottom:1px solid var(--border);padding:9px 14px;font-size:11px;font-weight:700;letter-spacing:.6px;text-transform:uppercase;color:var(--gray);display:flex;align-items:center;gap:7px}
.ep{font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif}
.ep-head{background:linear-gradient(135deg,#0f1b35 0%,#1a3a6e 100%);padding:22px 24px 18px;text-align:center}
.ep-logo{font-size:20px;font-weight:900;color:#fff;letter-spacing:-1px;margin-bottom:10px}
.ep-badge{display:inline-block;background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.18);border-radius:100px;padding:4px 12px;font-size:10px;color:#93c5fd;font-weight:700;letter-spacing:.5px;text-transform:uppercase;margin-bottom:12px}
.ep-tick{width:52px;height:52px;background:linear-gradient(135deg,#22c55e,#16a34a);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:24px;margin:0 auto 12px;box-shadow:0 4px 14px rgba(34,197,94,.35)}
.ep-head h2{font-size:17px;font-weight:900;color:#fff;margin-bottom:4px}
.ep-head p{font-size:11px;color:rgba(255,255,255,.6)}
.ep-ref{background:#f8faff;border-bottom:1px solid #e8eef8;padding:16px 24px;text-align:center}
.ep-ref-lbl{font-size:10px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:#94a3b8;margin-bottom:5px}
.ep-ref-num{font-size:22px;font-weight:900;color:#1e40af;letter-spacing:2px;font-family:'Courier New',monospace}
.ep-ref-date{font-size:11px;color:#94a3b8;margin-top:4px}
.ep-body{padding:20px 24px;background:#fff}
.ep-greeting{font-size:12px;color:#475569;line-height:1.7;margin-bottom:16px}
.ep-route{display:flex;border:1px solid #dbeafe;border-radius:10px;overflow:hidden;margin-bottom:14px;background:#f8faff}
.ep-route-bar{width:3px;background:linear-gradient(180deg,#2563eb,#1d4ed8);flex-shrink:0}
.ep-route-stops{flex:1}
.ep-stop{padding:11px 14px}
.ep-stop:first-child{border-bottom:1px solid #dbeafe}
.ep-stop-type{font-size:9px;font-weight:800;letter-spacing:.8px;text-transform:uppercase;color:#2563eb;margin-bottom:3px}
.ep-stop-addr{font-size:12px;font-weight:700;color:#0f1b35}
.ep-stop-sub{font-size:11px;color:#64748b;margin-top:1px}
.ep-card{border:1px solid #e2e8f0;border-radius:10px;overflow:hidden;margin-bottom:14px}
.ep-card-hd{background:#0f1b35;padding:9px 14px;font-size:10px;font-weight:700;letter-spacing:.7px;text-transform:uppercase;color:#93c5fd}
.ep-row{display:flex;align-items:flex-start;padding:9px 14px;border-bottom:1px solid #f1f5f9;gap:10px}
.ep-row:last-child{border-bottom:none}
.ep-row-lbl{font-size:10px;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:#94a3b8;min-width:90px;padding-top:1px}
.ep-row-val{font-size:12px;color:#1e293b;font-weight:600;flex:1}
.ep-row-val.lt{font-weight:400;color:#475569}
.ep-price{background:linear-gradient(135deg,#0f1b35,#1a3a6e);border-radius:10px;padding:18px;margin-bottom:14px;color:#fff}
.ep-price-title{font-size:10px;font-weight:700;letter-spacing:.8px;text-transform:uppercase;color:rgba(255,255,255,.5);margin-bottom:12px}
.ep-price-row{display:flex;justify-content:space-between;font-size:12px;margin-bottom:7px}
.ep-price-row-lbl{color:rgba(255,255,255,.65)}
.ep-price-row-val{font-weight:600;color:#fff}
.ep-price-div{height:1px;background:rgba(255,255,255,.15);margin:8px 0}
.ep-price-total{display:flex;justify-content:space-between;align-items:center}
.ep-price-total-lbl{font-size:12px;color:rgba(255,255,255,.85);font-weight:600}
.ep-price-total-val{font-size:22px;font-weight:900;color:#fff;letter-spacing:-1px}
.ep-price-gst{font-size:10px;color:rgba(255,255,255,.45);text-align:right;margin-top:3px}
.ep-next{background:#f0fdf4;border:1px solid #bbf7d0;border-radius:10px;padding:14px;margin-bottom:14px}
.ep-next-title{font-size:10px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:#166534;margin-bottom:10px}
.ep-next-item{display:flex;align-items:flex-start;gap:10px;margin-bottom:8px}
.ep-next-item:last-child{margin-bottom:0}
.ep-next-num{width:18px;height:18px;border-radius:50%;background:#22c55e;color:#fff;font-size:10px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px}
.ep-next-txt{font-size:12px;color:#166534;line-height:1.5}
.ep-contact{border:1px solid #e2e8f0;border-radius:10px;padding:12px 14px;display:flex;align-items:center;gap:12px;margin-bottom:14px}
.ep-contact-icon{width:36px;height:36px;background:#eff6ff;border-radius:8px;display:flex;align-items:center;justify-content:center;font-size:16px;flex-shrink:0}
.ep-contact-title{font-size:12px;font-weight:700;color:#0f1b35;margin-bottom:2px}
.ep-contact-detail{font-size:11px;color:#64748b}
.ep-contact-detail a{color:#2563eb;font-weight:600;text-decoration:none}
.ep-foot{background:#0f1b35;padding:18px 24px;text-align:center}
.ep-foot-logo{font-size:17px;font-weight:900;color:#fff;letter-spacing:-1px;margin-bottom:5px}
.ep-foot-tag{font-size:10px;color:rgba(255,255,255,.4);margin-bottom:10px}
.ep-foot-links{display:flex;justify-content:center;gap:14px;margin-bottom:10px}
.ep-foot-links a{font-size:10px;color:rgba(255,255,255,.4);text-decoration:none}
.ep-foot-copy{font-size:10px;color:rgba(255,255,255,.25);line-height:1.6}
/* FOOTER */
footer{background:#0f1b35;color:#fff;padding:48px 0 0;font-family:'Inter',sans-serif}
/* BADGE */
.badge{display:inline-flex;align-items:center;gap:4px;padding:3px 10px;border-radius:100px;font-size:11px;font-weight:700}
.badge.blue{background:var(--blue-lt);color:var(--blue)}
.badge.green{background:var(--green-lt);color:var(--green)}
.badge.orange{background:var(--orange-lt);color:var(--orange)}
/* NOTICE */
.notice{background:var(--blue-lt);border:1px solid var(--blue-mid);border-radius:10px;padding:12px 16px;font-size:12px;color:var(--navy);line-height:1.5;margin-bottom:20px;display:flex;gap:10px;align-items:flex-start}
.notice-icon{font-size:16px;flex-shrink:0;margin-top:1px}
/* API KEY NOTE */
.api-note{background:#fefce8;border:1px solid #fde047;border-radius:8px;padding:10px 14px;font-size:11px;color:#854d0e;margin-bottom:12px}
@media(max-width:768px){
  nav{padding:12px 16px}
  .hero{padding:36px 16px}
  .main{padding:16px 12px 60px}
  .card{padding:18px 14px}
  .form-grid{grid-template-columns:1fr}
  footer{padding:36px 0 0}
  .result-hero-top{flex-direction:column}
  .price-big{text-align:left}
  .submit-row{flex-direction:column;align-items:stretch}
  .submit-row .btn-primary,.submit-row .btn-secondary{width:100%;text-align:center}
}

footer.footer { display: none !important; }
nav .custm-shifts-logo{width:120px;object-fit:contain}
.presets-row{gap:10px;margin-bottom:12px}
.preset-btn{background:#eef2f7;border:1px solid #c7d2fe;border-radius:8px;padding:8px 14px;font-size:14px;font-weight:600;color:#2563eb;line-height:1.15}
.preset-btn:hover{background:#e8efff;border-color:#93c5fd;color:#1d4ed8}
.items-table th:nth-child(2), .items-table td:nth-child(2){min-width:120px}

.geoapify-powered{font-size:10px;color:var(--gray);text-align:right;margin-top:4px}

.shifts-price-stage-list{display:none !important;}
.shifts-price-truck img{width:120px;height:auto;object-fit:contain;}

.fee-note{font-size:11px;color:#bababa;margin-top:2px;font-weight:700}
.guest-choice-stack{display:flex;flex-direction:column;gap:10px;margin-bottom:14px}.guest-choice-btn{width:100%;text-align:center}.guest-choice-btn.btn-secondary,.guest-choice-btn.btn-primary{justify-content:center}
.guest-form-title{font-size:14px;font-weight:800;color:var(--navy);margin-bottom:3px}.guest-form-sub{font-size:11px;color:var(--gray);margin-bottom:10px;line-height:1.35}.compact-grid{gap:8px;margin-bottom:8px}.compact-fg label{font-size:11px;letter-spacing:.05em}.compact-fg input,.compact-fg select{font-size:13px;padding:10px 12px}#guestMiniForm .guest-form-title{font-size:16px}#guestMiniForm .guest-form-sub{font-size:13px}#guestMiniForm .compact-fg label{font-size:13px}#guestMiniForm .compact-fg input,#guestMiniForm .compact-fg select{font-size:15px;padding:12px 14px}.guest-form-error{color:var(--red);font-size:11px;margin-bottom:8px;min-height:14px;font-weight:500}.guest-check-row{display:flex;gap:8px;align-items:center;margin-bottom:8px;font-size:10px;color:var(--gray-dk);font-weight:700;line-height:1.35}.guest-check-row input{margin:0;flex:0;}.guest-check-row span{display:inline-block}.pay-step .fg label{font-size:11px}.pay-step .fg input,.pay-step .fg select{font-size:11px;padding:6px 12px}.pay-step .req{font-size:11px}.guest-form-grid-two{display:grid;grid-template-columns:1fr 1fr}.modal-box .section-label{font-size:11px}@media (max-width:640px){.guest-form-grid-two{grid-template-columns:1fr}}

.summary-card{background:linear-gradient(180deg,#ffffff 0%,#f8fbff 100%);border:1px solid #dbe7ff;border-radius:14px;padding:14px 15px;box-shadow:0 6px 18px rgba(15,27,53,.06)}
.summary-card .k{font-size:10px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#64748b;margin-bottom:6px}
.summary-card .v{font-size:14px;line-height:1.45;color:#0f172a;font-weight:700;word-break:break-word}
.booking-summary-grid{gap:14px}
#payStep2 .booking-summary-grid{margin-bottom:18px}
#payStep2 .secure-note{background:#f8fafc;border:1px solid #e2e8f0;border-radius:12px;padding:12px 14px;text-align:left;justify-content:flex-start;gap:10px}
#payStep2 .section-label{font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase;color:#64748b;margin-bottom:8px}
.guest-check-row{align-items:center}
.guest-check-row span{display:inline-flex;align-items:center}.guest-check-row a{color:#2563eb;text-decoration:none}.guest-check-row a:hover{text-decoration:underline}
.shifts-toast-wrap{position:fixed;left:50%;bottom:36px;transform:translateX(-50%);z-index:2200;display:flex;flex-direction:column;align-items:center;gap:10px;pointer-events:none;max-width:calc(100vw - 32px);width:max-content}
.shifts-toast{min-width:260px;max-width:360px;background:#111827;color:#fff;border-radius:12px;padding:12px 14px;box-shadow:0 16px 40px rgba(0,0,0,.28);font-size:12px;line-height:1.45;font-weight:600;opacity:0;transform:translateY(-8px);transition:all .18s ease;pointer-events:auto}
.shifts-toast.show{opacity:1;transform:translateY(0)}
.shifts-toast.error{background:#7f1d1d}.shifts-toast.success{background:#14532d}.shifts-toast.info{background:#1f2937}
.post-payment-page{display:none;margin:26px 0 0}
.post-payment-page.show{display:block}
.post-payment-shell{background:#fff;border:1px solid var(--border);border-radius:18px;box-shadow:var(--shadow-md);overflow:hidden}
.post-payment-head{padding:44px 24px 28px;text-align:center;background:#fff}
.post-payment-icon{width:64px;height:64px;border-radius:999px;background:#dcfce7;border:2px solid #9fe4b2;color:#0f172a;font-size:34px;display:flex;align-items:center;justify-content:center;margin:0 auto 18px}
.post-payment-head h2{font-size:28px;font-weight:900;letter-spacing:-.03em;margin:0 0 8px;color:var(--navy)}
.post-payment-head p{font-size:13px;color:#64748b;margin:0}
.post-payment-status{display:inline-flex;align-items:center;gap:8px;border-radius:999px;padding:7px 12px;font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase;margin:0 auto 18px}
.post-payment-status.success{background:#dcfce7;color:#166534}
.post-payment-status.failed{background:#fee2e2;color:#991b1b}
.post-payment-email-lead{margin-top:4px;font-size:13px;color:#64748b}
.post-payment-email-lead strong{color:#0f172a}
.post-payment-number-wrap{margin:24px auto 0;max-width:350px}
.post-payment-number-label{font-size:12px;font-weight:700;letter-spacing:.14em;text-transform:uppercase;color:#94a3b8;margin-bottom:10px}
.post-payment-number{background:#f8fafc;border:1px solid #e2e8f0;border-radius:14px;padding:16px 18px;font-size:28px;font-weight:900;letter-spacing:.08em;color:#0f172a}
.post-payment-body{padding:0 24px 34px;text-align:center}
.post-payment-msg{font-size:16px;color:#334155;line-height:1.6;margin:0 auto 12px;max-width:760px;font-weight:700}
.post-payment-note{font-size:14px;color:#64748b;line-height:1.6;margin:0 auto 10px;max-width:680px}
.post-payment-pdf-wrap{font-size:14px;color:#64748b;line-height:1.6;margin:0 auto 22px;display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap}
.post-payment-pdf-wrap a{color:#2563eb;text-decoration:none;font-weight:700}
.post-payment-failure-note{font-size:14px;color:#991b1b;line-height:1.6;margin:0 auto 22px;max-width:680px}
.post-payment-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap;margin-top:22px}
.post-payment-actions .btn-primary,.post-payment-actions .btn-secondary{min-width:260px}
@media(max-width:640px){
  .post-payment-head{padding:32px 18px 22px}
  .post-payment-head h2{font-size:24px}
  .post-payment-number{font-size:24px}
  .post-payment-body{padding:0 18px 26px}
}
@media(max-width:640px){.strip-topline{justify-content:space-between}.summary-card .v{font-size:13px}}


.section-label-row{display:flex;align-items:center;gap:10px;margin-bottom:8px}
.mode-badge{display:inline-flex;align-items:center;justify-content:center;padding:4px 12px;border-radius:999px;border:1px solid #f8d56b;background:#fff8db;color:#a16207;font-size:11px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}

.pod-upload-note{font-size:11px;color:var(--gray);line-height:1.5;margin-top:2px}
.pod-upload-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:10px}
.pod-upload-card{border:1px dashed #dbe3f5;border-radius:12px;padding:10px;background:#fbfdff}
.pod-upload-title{font-size:11px;font-weight:700;color:var(--navy);margin-bottom:8px;text-transform:uppercase;letter-spacing:.05em}
@media(max-width:900px){.pod-upload-grid{grid-template-columns:1fr}}


.post-payment-shell-rich{max-width:760px;margin:0 auto}
.post-payment-head-rich{padding:36px 24px 20px;text-align:center;background:#fff}
.post-payment-number-date{font-size:11px;color:#94a3b8;margin-top:6px}
.post-payment-body-rich{text-align:left;padding:0 24px 30px}
.post-payment-status-card{background:#f8fafc;border:1px solid #dbeafe;border-radius:12px;padding:16px 20px;margin-bottom:20px;text-align:left}
.post-payment-status-label{font-size:11px;font-weight:700;color:#2563eb;text-transform:uppercase;letter-spacing:.05em;margin-bottom:8px}
.post-payment-status-message{font-size:14px;font-weight:700;color:var(--navy);margin-bottom:6px}
.post-payment-status-state{font-size:12px;color:var(--gray)}
.post-payment-status-state strong{color:var(--navy)}
.post-payment-summary-grid{margin-bottom:20px}
.post-payment-price-preview #postPaymentPriceRows .pr{display:flex;justify-content:space-between;gap:10px;color:#fff;font-size:15px;font-weight:700}
.post-payment-help{font-size:12px;color:var(--gray);margin:24px 0 0;text-align:center}
.post-payment-help a{color:var(--blue);text-decoration:none}
@media(max-width:640px){.post-payment-shell-rich{max-width:none}.post-payment-body-rich{padding:0 18px 26px}}
