:root {
  --navy: #07152f;
  --navy-2: #0d2146;
  --blue: #0878d1;
  --cyan: #52d8ee;
  --red: #d91f3d;
  --paper: #f4f7fb;
  --white: #ffffff;
  --ink: #14213a;
  --muted: #60708d;
  --line: #d7dfeb;
  --ok: #0c9366;
  --bad: #c92845;
}

* { box-sizing: border-box; }

body {
  margin: 0;
  min-height: 100vh;
  color: var(--ink);
  background:
    linear-gradient(180deg, rgba(8,120,209,.05), transparent 310px),
    var(--paper);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}

button, input, select, textarea { font: inherit; }

.order-header {
  position: sticky;
  top: 0;
  z-index: 5;
  display: flex;
  justify-content: space-between;
  align-items: center;
  min-height: 72px;
  padding: 10px max(20px, calc((100% - 1240px) / 2));
  border-bottom: 1px solid rgba(255,255,255,.12);
  background: rgba(7, 21, 47, .97);
  box-shadow: 0 8px 28px rgba(7, 21, 47, .14);
}

.order-brand {
  display: flex;
  align-items: center;
  gap: 11px;
  color: #fff;
  text-decoration: none;
}

.order-brand img {
  width: 48px;
  height: 48px;
  object-fit: contain;
  padding: 3px;
  border-radius: 8px;
  background: #fff;
}

.order-brand span { display: grid; gap: 2px; }
.order-brand strong { font-size: 16px; }
.order-brand small { color: #a8bad7; font-size: 11px; }

.staff-link {
  color: #b9c9e2;
  font-size: 12px;
  font-weight: 750;
  text-decoration: none;
}

.staff-link:hover { color: #fff; }

.order-main {
  display: grid;
  grid-template-columns: minmax(320px, 390px) minmax(0, 820px);
  align-items: start;
  gap: 36px;
  width: min(1240px, calc(100% - 40px));
  margin: 36px auto 60px;
}

.office-status-banner {
  grid-column: 1 / -1;
  display: grid;
  grid-template-columns: auto 1fr;
  align-items: center;
  gap: 14px;
  padding: 15px 18px;
  border: 1px solid #cbd8ea;
  border-radius: 10px;
  background: #fff;
  box-shadow: 0 18px 45px rgba(24, 44, 78, .08);
}

.office-status-banner > span {
  width: 14px;
  height: 14px;
  border-radius: 50%;
  background: #7b8ba5;
  box-shadow: 0 0 0 7px rgba(123, 139, 165, .12);
}

.office-status-banner strong {
  display: block;
  color: var(--navy);
  font-size: 15px;
}

.office-status-banner p {
  margin: 3px 0 0;
  color: var(--muted);
  line-height: 1.45;
}

.office-status-banner.open {
  border-color: rgba(12, 147, 102, .34);
  background: linear-gradient(135deg, rgba(12,147,102,.08), #fff 48%);
}

.office-status-banner.open > span {
  background: var(--ok);
  box-shadow: 0 0 0 7px rgba(12, 147, 102, .13), 0 0 18px rgba(12, 147, 102, .35);
}

.office-status-banner.closed {
  border-color: rgba(201, 40, 69, .32);
  background: linear-gradient(135deg, rgba(201,40,69,.08), #fff 52%);
}

.office-status-banner.closed > span {
  background: var(--bad);
  box-shadow: 0 0 0 7px rgba(201, 40, 69, .12), 0 0 18px rgba(201, 40, 69, .3);
}

.order-intro {
  position: sticky;
  top: 96px;
  overflow: hidden;
  border: 1px solid #cfdae8;
  border-radius: 8px;
  background: #fff;
  box-shadow: 0 22px 60px rgba(24, 44, 78, .10);
}

.order-photo {
  width: 100%;
  aspect-ratio: 4 / 3;
  background:
    linear-gradient(0deg, rgba(7,21,47,.34), transparent 45%),
    url('/assets/ahlink-branded-rider-hero-v2.png') 70% center / cover no-repeat;
}

.order-intro-copy { padding: 25px 26px 28px; }

.eyebrow, .step-label {
  margin: 0 0 9px;
  color: var(--red);
  font-size: 11px;
  font-weight: 850;
  text-transform: uppercase;
}

.order-intro h1 {
  margin: 0;
  color: var(--navy);
  font-size: 34px;
  line-height: 1.12;
  letter-spacing: 0;
}

.order-intro-copy > p:not(.eyebrow) {
  margin: 18px 0 0;
  color: var(--muted);
  font-size: 16px;
  line-height: 1.65;
}

.trust-row {
  display: grid;
  gap: 12px;
  margin-top: 30px;
}

.trust-row span {
  display: flex;
  align-items: center;
  gap: 10px;
  color: #42516b;
  font-size: 13px;
  font-weight: 750;
}

.trust-row b {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  color: #fff;
  background: var(--blue);
  font-size: 12px;
}

.order-card {
  border: 1px solid var(--line);
  border-top: 4px solid var(--blue);
  border-radius: 8px;
  background: var(--white);
  box-shadow: 0 24px 70px rgba(24, 44, 78, .12);
  overflow: hidden;
}

.card-heading {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  align-items: start;
  padding: 24px 28px 20px;
  border-bottom: 1px solid var(--line);
}

.card-heading h2, .success-card h2 {
  margin: 0;
  color: var(--navy);
  font-size: 24px;
  letter-spacing: 0;
}

.step-label { display: block; color: var(--blue); }
.required-note { color: var(--muted); font-size: 11px; font-weight: 700; }

.form-guide {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1px;
  padding: 0 28px;
  border-bottom: 1px solid var(--line);
  background: #eef3f9;
}

.form-guide span {
  position: relative;
  padding: 12px 5px 10px;
  color: #7a879c;
  font-size: 10px;
  font-weight: 800;
  text-align: center;
  text-transform: uppercase;
}

.form-guide span::after {
  content: "";
  position: absolute;
  right: 5px;
  bottom: 0;
  left: 5px;
  height: 3px;
  border-radius: 2px 2px 0 0;
  background: transparent;
}

.form-guide span.active { color: var(--blue); }
.form-guide span.active::after { background: var(--blue); }

.order-smart-tools {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-start;
  gap: 12px;
  align-items: stretch;
  padding: 16px 28px;
  border-bottom: 1px solid var(--line);
  background: linear-gradient(135deg, #f8fbff, #ffffff);
}

.repeat-order-button,
.track-delivery-toggle,
.client-portal-toggle {
  border: 1px solid #bfd0e4;
  border-radius: 7px;
  padding: 10px 13px;
  color: #173d72;
  background: #edf5ff;
  cursor: pointer;
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
}

.track-delivery-toggle {
  border-color: rgba(226, 31, 59, .25);
  color: #7d1830;
  background: #fff2f5;
}

.client-portal-toggle {
  border-color: rgba(8, 120, 209, .3);
  color: #063a66;
  background: linear-gradient(135deg, #e9fbff, #f5f9ff);
}

.repeat-order-button:hover,
.track-delivery-toggle:hover,
.client-portal-toggle:hover {
  border-color: var(--blue);
  color: #fff;
  background: var(--blue);
}

.client-account-panel {
  display: grid;
  gap: 18px;
  padding: 22px 28px 26px;
  border-bottom: 1px solid var(--line);
  background:
    radial-gradient(circle at top right, rgba(82, 216, 238, .22), transparent 34%),
    linear-gradient(135deg, #ffffff, #f6fbff);
}

.client-account-head {
  display: flex;
  align-items: flex-start;
  justify-content: space-between;
  gap: 16px;
}

.client-account-head strong {
  display: block;
  color: var(--navy);
  font-size: 20px;
  font-weight: 950;
}

.client-account-head p,
.client-portal-message {
  margin: 5px 0 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.5;
}

.client-account-head button,
.client-auth-card button,
.client-contact-card button,
.client-portal-actions button {
  border: 0;
  border-radius: 8px;
  padding: 10px 13px;
  color: #fff;
  background: var(--navy);
  cursor: pointer;
  font-size: 11px;
  font-weight: 900;
  text-transform: uppercase;
}

.client-auth-grid {
  display: grid;
  grid-template-columns: 1fr;
  gap: 14px;
}

.client-phone-card {
  border-top: 4px solid var(--blue);
}

.client-phone-lookup-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
}

.client-phone-card small {
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
}

.client-whatsapp-dashboard {
  border-top: 4px solid var(--red);
}

.client-auth-card,
.client-portal-card,
.client-contact-card {
  display: grid;
  gap: 10px;
  padding: 16px;
  border: 1px solid var(--line);
  border-radius: 12px;
  background: rgba(255,255,255,.92);
  box-shadow: 0 12px 30px rgba(7, 21, 47, .07);
}

.client-auth-card h3,
.client-portal-card h3 {
  margin: 0;
  color: var(--navy);
}

.client-auth-card label,
.client-contact-card label {
  color: #7890b2;
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
}

.client-auth-card input,
.client-contact-card input,
.client-contact-card select {
  width: 100%;
  border: 1px solid #cbd7e8;
  border-radius: 8px;
  padding: 11px 12px;
  color: var(--navy);
  background: #fff;
}

.client-portal-dashboard {
  display: grid;
  gap: 14px;
}

.client-portal-kpis,
.client-contact-list,
.client-delivery-history {
  display: grid;
  gap: 10px;
}

.client-portal-kpis {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}

.client-portal-kpis span {
  padding: 13px;
  border: 1px solid #dbe5f3;
  border-radius: 10px;
  background: #f8fbff;
}

.client-portal-kpis b {
  display: block;
  color: var(--navy);
  font-size: 22px;
}

.client-portal-kpis small,
.client-delivery-row small,
.client-contact-card small {
  color: var(--muted);
  font-size: 11px;
}

.client-contact-list {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.client-delivery-row {
  display: grid;
  gap: 5px;
  padding: 12px;
  border: 1px solid #dbe5f3;
  border-radius: 10px;
  background: #fff;
}

.client-portal-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.client-portal-actions button.secondary,
.client-contact-card button.secondary {
  color: var(--navy);
  background: #eaf3ff;
}

.track-delivery-panel {
  display: grid;
  gap: 16px;
  border-bottom: 1px solid var(--line);
  padding: 20px 28px 24px;
  background:
    linear-gradient(135deg, rgba(14, 116, 255, .08), rgba(226, 31, 59, .05)),
    #fff;
}

.track-delivery-copy {
  display: grid;
  gap: 6px;
}

.track-delivery-copy strong {
  color: var(--navy);
  font-size: 18px;
  font-weight: 950;
}

.track-delivery-copy p {
  max-width: 760px;
  margin: 0;
  color: var(--muted);
  font-size: 13px;
  line-height: 1.55;
}

.track-delivery-form {
  display: grid;
  gap: 8px;
}

.track-delivery-form label {
  color: #7890b2;
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
}

.track-delivery-form > div {
  display: grid;
  grid-template-columns: minmax(180px, 1fr) auto;
  gap: 10px;
}

.track-delivery-form > .track-date-filters {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  align-items: end;
  margin-top: 6px;
}

.track-delivery-form input {
  min-height: 46px;
  border: 1px solid #c8d4e4;
  border-radius: 8px;
  padding: 0 14px;
  color: var(--navy);
  background: #fff;
  font-size: 15px;
  font-weight: 800;
}

.track-delivery-form button,
.lookup-track-link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  border: 0;
  border-radius: 8px;
  padding: 0 18px;
  color: #fff;
  background: linear-gradient(135deg, var(--blue), #59d0ef);
  cursor: pointer;
  font-size: 11px;
  font-weight: 950;
  text-decoration: none;
  text-transform: uppercase;
}

.track-delivery-form button:disabled { cursor: wait; opacity: .65; }

.track-delivery-results {
  display: grid;
  gap: 12px;
}

.lookup-summary,
.lookup-empty {
  display: grid;
  gap: 4px;
  border: 1px solid #cbd9ea;
  border-radius: 10px;
  padding: 14px 16px;
  color: var(--navy);
  background: #f8fbff;
}

.lookup-empty.error {
  border-color: rgba(226, 31, 59, .25);
  color: #8a1730;
  background: #fff5f6;
}

.lookup-summary strong,
.lookup-empty strong { font-size: 14px; font-weight: 950; }
.lookup-summary span,
.lookup-empty p { margin: 0; color: var(--muted); font-size: 12px; line-height: 1.45; }

.lookup-summary.premium-history {
  gap: 10px;
  background:
    linear-gradient(135deg, rgba(14, 116, 255, .08), rgba(226, 31, 59, .05)),
    #fff;
}

.lookup-wallet {
  display: grid;
  gap: 12px;
  border: 1px solid rgba(8, 120, 209, .22);
  border-top: 4px solid var(--red);
  border-radius: 12px;
  padding: 16px;
  background:
    linear-gradient(135deg, rgba(8, 120, 209, .10), rgba(217, 31, 61, .06)),
    #fff;
  box-shadow: 0 18px 42px rgba(11, 31, 68, .08);
}

.lookup-wallet small,
.lookup-wallet-kpis small {
  color: #7b8da7;
  font-size: 9px;
  font-weight: 950;
  text-transform: uppercase;
}

.lookup-wallet strong {
  display: block;
  margin-top: 2px;
  color: var(--navy);
  font-size: 20px;
  font-weight: 950;
}

.lookup-wallet span,
.lookup-wallet p {
  margin: 3px 0 0;
  color: var(--muted);
  font-size: 12px;
  line-height: 1.45;
}

.lookup-wallet-kpis {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: 8px;
}

.lookup-wallet-kpis b {
  display: grid;
  gap: 3px;
  border: 1px solid #d2deee;
  border-radius: 8px;
  padding: 9px 10px;
  color: var(--navy);
  background: #fff;
  font-size: 16px;
}

.credit-use-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.credit-use-actions button {
  min-height: 38px;
  border: 1px solid rgba(8, 120, 209, .24);
  border-radius: 999px;
  padding: 8px 12px;
  color: #123d74;
  background: #edf6ff;
  cursor: pointer;
  font-size: 10px;
  font-weight: 950;
  text-transform: uppercase;
}

.credit-use-actions button:hover,
.credit-use-actions button:focus-visible {
  border-color: var(--blue);
  color: #fff;
  background: var(--blue);
  outline: none;
}

.lookup-kpis {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 8px;
}

.lookup-kpis b {
  display: grid;
  gap: 3px;
  border: 1px solid #d3e0ef;
  border-radius: 8px;
  padding: 9px 10px;
  color: var(--navy);
  background: #fff;
  font-size: 16px;
  font-weight: 950;
}

.lookup-kpis small {
  color: #8292aa;
  font-size: 9px;
  font-weight: 900;
  text-transform: uppercase;
}

.lookup-rewards {
  display: grid;
  gap: 5px;
  border: 1px solid rgba(13, 159, 106, .22);
  border-radius: 8px;
  padding: 10px;
  background: #f0fbf6;
}

.lookup-rewards strong {
  color: #0d694d;
  font-size: 11px;
  text-transform: uppercase;
}

.lookup-rewards span {
  color: #315242;
  font-size: 11px;
}

.loyalty-credit-request {
  border: 1px solid rgba(8, 120, 209, .22);
  border-radius: 8px;
  padding: 12px;
  background: linear-gradient(135deg, #f2f8ff, #fff);
}

.credit-request-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 12px;
}

.credit-request-row input {
  min-height: 32px;
  padding: 0;
  accent-color: var(--blue);
}

.credit-request-row strong {
  min-width: 54px;
  border-radius: 7px;
  padding: 8px 10px;
  color: #fff;
  background: var(--navy);
  text-align: center;
}

.lookup-section-title {
  margin: 8px 0 0;
  color: var(--navy);
  font-size: 13px;
  font-weight: 950;
  text-transform: uppercase;
}

.lookup-delivery-card {
  display: grid;
  gap: 14px;
  border: 1px solid #c8d7e9;
  border-radius: 12px;
  padding: 16px;
  background: linear-gradient(135deg, #ffffff, #f5f9ff);
  box-shadow: 0 16px 36px rgba(11, 31, 68, .08);
}

.lookup-delivery-card.history {
  background: linear-gradient(135deg, #ffffff, #f8fbff);
  box-shadow: 0 8px 22px rgba(11, 31, 68, .06);
}

.lookup-card-head {
  display: flex;
  justify-content: space-between;
  gap: 12px;
  align-items: flex-start;
}

.lookup-card-head small {
  display: block;
  color: #8092ad;
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
}

.lookup-card-head strong {
  color: var(--navy);
  font-size: 18px;
  font-weight: 950;
}

.lookup-card-head em {
  display: block;
  margin-top: 2px;
  color: #74849b;
  font-size: 11px;
  font-style: normal;
  font-weight: 800;
}

.lookup-status {
  max-width: 320px;
  border: 1px solid rgba(14, 116, 255, .18);
  border-radius: 999px;
  padding: 8px 11px;
  color: #0d4e8e;
  background: #edf6ff;
  font-size: 11px;
  font-weight: 900;
  line-height: 1.25;
  text-align: right;
}

.lookup-status.delivered,
.lookup-status.closed {
  border-color: rgba(13, 159, 106, .25);
  color: #0f6c4d;
  background: #eefaf5;
}

.lookup-progress {
  display: grid;
  grid-template-columns: repeat(5, minmax(0, 1fr));
  gap: 8px;
}

.lookup-progress span {
  display: grid;
  gap: 5px;
  min-width: 0;
  border-top: 3px solid #cbd6e6;
  padding-top: 8px;
  color: #71819a;
}

.lookup-progress span.done {
  border-color: var(--ok);
  color: #0e684b;
}

.lookup-progress i {
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: currentColor;
}

.lookup-progress b,
.lookup-progress small {
  overflow-wrap: anywhere;
  font-size: 10px;
  line-height: 1.25;
}

.lookup-detail-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 10px;
}

.lookup-detail-grid span {
  display: grid;
  gap: 4px;
  border: 1px solid #d7e2ef;
  border-radius: 8px;
  padding: 10px 11px;
  color: #44536a;
  background: #fff;
  font-size: 12px;
  line-height: 1.35;
}

.lookup-detail-grid b {
  color: var(--navy);
  font-size: 10px;
  font-weight: 950;
  text-transform: uppercase;
}

.lookup-live-note {
  margin: 0;
  color: var(--muted);
  font-size: 12px;
}

.lookup-track-link { justify-self: start; }

.track-delivery-actions,
.client-portal-quick-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 12px;
}

.client-portal-quick-actions.compact {
  margin-top: 10px;
}

.secondary-track-action,
.client-portal-quick-actions button {
  min-height: 40px;
  border: 1px solid #bfd0e4;
  border-radius: 8px;
  padding: 0 13px;
  color: #103866;
  background: linear-gradient(135deg, #f7fbff, #e9f3ff);
  cursor: pointer;
  font-size: 11px;
  font-weight: 950;
  text-transform: uppercase;
}

.secondary-track-action:hover,
.secondary-track-action:focus-visible,
.client-portal-quick-actions button:hover,
.client-portal-quick-actions button:focus-visible {
  border-color: var(--blue);
  color: #fff;
  background: var(--blue);
  outline: none;
}

.fee-catalogue-panel {
  border-bottom: 1px solid var(--line);
  background: #fff;
}

.fee-catalogue-panel summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 16px 28px;
  cursor: pointer;
  color: var(--navy);
  font-size: 12px;
  font-weight: 900;
  list-style: none;
  text-transform: uppercase;
}

.fee-catalogue-panel summary::-webkit-details-marker { display: none; }
.fee-catalogue-panel summary span { color: var(--blue); }

.fee-catalogue-panel summary button {
  min-height: 36px;
  border: 1px solid #c7d6e8;
  border-radius: 7px;
  padding: 8px 12px;
  color: #193c6c;
  background: #edf5ff;
  cursor: pointer;
  font-size: 10px;
  font-weight: 900;
  text-transform: uppercase;
}

.fee-catalogue-content { padding: 0 28px 24px; }

.fee-catalogue-grid {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 12px;
}

.fee-zone-card {
  display: grid;
  gap: 9px;
  border: 1px solid #d4deea;
  border-left: 4px solid var(--blue);
  border-radius: 8px;
  padding: 14px;
  background: linear-gradient(135deg, #f8fbff, #fff);
}

.fee-zone-head {
  display: flex;
  justify-content: space-between;
  gap: 10px;
  align-items: baseline;
}

.fee-zone-head strong {
  color: var(--red);
  font-size: 13px;
  text-transform: uppercase;
}

.fee-zone-head span {
  color: var(--navy);
  font-size: 13px;
  font-weight: 900;
  text-align: right;
}

.fee-zone-card p,
.fee-zone-card small,
.fee-zone-card em,
.catalogue-note {
  margin: 0;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.45;
}

.fee-zone-card small { display: block; }
.fee-zone-card em { color: #4f5f77; font-style: normal; }

.fee-zone-prices {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 8px;
}

.fee-zone-prices b {
  border-radius: 7px;
  padding: 9px 10px;
  color: #fff;
  background: var(--navy-2);
  font-size: 12px;
  text-align: center;
}

.fee-zone-prices b:first-child { background: var(--blue); }
.catalogue-note { margin-top: 14px; }

.form-section {
  padding: 22px 28px 25px;
  border-bottom: 1px solid var(--line);
}

.form-section h3 {
  margin: 0;
  color: var(--navy-2);
  font-size: 14px;
}

.form-section-title {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin-bottom: 17px;
}

.form-section-title > b {
  display: grid;
  place-items: center;
  flex: 0 0 auto;
  width: 27px;
  height: 27px;
  border-radius: 50%;
  color: #fff;
  background: var(--navy-2);
  font-size: 11px;
}

.form-section-title p { margin: 4px 0 0; color: var(--muted); font-size: 11px; line-height: 1.45; }

.form-grid { display: grid; gap: 15px; }
.form-grid.two { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.form-grid .wide { grid-column: 1 / -1; }

label {
  display: block;
  margin: 0 0 6px;
  color: #42516b;
  font-size: 11px;
  font-weight: 800;
  text-transform: uppercase;
}

input, select, textarea {
  width: 100%;
  min-height: 46px;
  border: 1px solid #cbd5e3;
  border-radius: 7px;
  padding: 11px 12px;
  color: var(--ink);
  background: #fff;
  outline: none;
}

.optional-details {
  margin-top: 20px;
  border: 1px solid #d4deea;
  border-radius: 7px;
  background: #f7fafe;
}

.optional-details summary {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 14px;
  color: #284665;
  cursor: pointer;
  font-size: 12px;
  font-weight: 800;
  list-style: none;
}

.optional-details summary::-webkit-details-marker { display: none; }
.optional-details summary::before { content: "+"; color: var(--blue); font-size: 18px; }
.optional-details[open] summary::before { content: "-"; }
.optional-details summary span {
  margin-left: auto;
  padding: 4px 7px;
  border-radius: 4px;
  color: #61728b;
  background: #e7eef7;
  font-size: 9px;
  text-transform: uppercase;
}
.optional-details-grid { padding: 0 14px 16px; }

textarea { min-height: 82px; resize: vertical; line-height: 1.45; }
input:focus, select:focus, textarea:focus { border-color: var(--blue); box-shadow: 0 0 0 3px rgba(8,120,209,.12); }
input::placeholder, textarea::placeholder { color: #919db0; }
.field-help { display: block; margin-top: 5px; color: #73829a; font-size: 10px; line-height: 1.35; }
input.phone-valid { border-color: #4aaf8b; background: #f7fffc; }
input.phone-invalid { border-color: var(--bad); background: #fff8f9; }

.phone-bonus-preview {
  display: grid;
  gap: 7px;
  min-height: 72px;
  margin-top: 10px;
  border: 1px solid #d7e1ee;
  border-radius: 9px;
  padding: 11px 12px;
  color: #40516b;
  background: linear-gradient(135deg, #f8fbff, #ffffff);
  font-size: 11px;
  line-height: 1.4;
}

.phone-bonus-preview strong,
.lookup-promotions > strong {
  color: var(--navy);
  font-size: 11px;
  font-weight: 950;
  letter-spacing: .03em;
  text-transform: uppercase;
}

.phone-bonus-preview.has-bonus {
  border-color: rgba(8, 120, 209, .28);
  background: linear-gradient(135deg, #eef7ff, #fff8fb);
}

.phone-bonus-preview.is-loading {
  opacity: .8;
}

.promotion-choice-list {
  display: grid;
  gap: 8px;
  margin-top: 8px;
}

.promotion-choice-list.compact {
  margin-top: 2px;
}

.promotion-choice-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center;
  gap: 10px;
  border: 1px solid rgba(8, 120, 209, .18);
  border-radius: 8px;
  padding: 10px;
  background: rgba(255, 255, 255, .82);
}

.promotion-choice-card.selected {
  border-color: rgba(11, 92, 173, .65);
  background: linear-gradient(135deg, rgba(230, 246, 255, .98), rgba(255, 255, 255, .92));
  box-shadow: 0 10px 24px rgba(11, 92, 173, .12);
}

.promotion-choice-card div {
  display: grid;
  gap: 3px;
  min-width: 0;
}

.promotion-choice-card strong {
  color: var(--navy-2);
  font-size: 12px;
  font-weight: 950;
}

.promotion-choice-card span,
.promotion-choice-card small,
.promotion-choice-empty {
  color: var(--muted);
  font-size: 10px;
  line-height: 1.35;
}

.promotion-choice-card button {
  min-height: 34px;
  border: 0;
  border-radius: 7px;
  padding: 0 11px;
  color: #fff;
  background: linear-gradient(135deg, var(--blue), #0b5cad);
  cursor: pointer;
  font-size: 10px;
  font-weight: 950;
  text-transform: uppercase;
  white-space: nowrap;
}

.promotion-choice-card button.selected {
  background: linear-gradient(135deg, #10b981, #087f5b);
}

.promotion-choice-card em {
  color: #17624e;
  font-size: 10px;
  font-style: normal;
  font-weight: 900;
  text-transform: uppercase;
  white-space: nowrap;
}

.lookup-promotions {
  display: grid;
  gap: 8px;
  margin-top: 12px;
  padding-top: 12px;
  border-top: 1px solid rgba(20, 35, 60, .1);
}

.contact-input-row {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 8px;
  align-items: stretch;
}

.contact-input-row input {
  min-width: 0;
}

.contact-picker-button {
  min-height: 46px;
  border: 1px solid #c7d6e8;
  border-radius: 7px;
  padding: 0 11px;
  color: #173d72;
  background: #edf5ff;
  cursor: pointer;
  font-size: 10px;
  font-weight: 950;
  text-transform: uppercase;
  white-space: nowrap;
}

.contact-picker-button:hover,
.contact-picker-button:focus-visible {
  border-color: var(--blue);
  color: #fff;
  background: var(--blue);
  outline: none;
}

.receiver-self {
  display: flex;
  align-items: center;
  gap: 9px;
  width: fit-content;
  margin: -4px 0 15px;
  padding: 9px 11px;
  border: 1px solid #cbd9e8;
  border-radius: 6px;
  color: #365372;
  background: #f1f6fb;
  cursor: pointer;
  text-transform: none;
}

.receiver-self input { width: 18px; min-height: 18px; margin: 0; accent-color: var(--blue); }

.location-tools {
  display: grid;
  grid-template-columns: 1fr auto;
  gap: 7px;
  margin-top: 7px;
}

.location-tools input { min-width: 0; min-height: 40px; font-size: 11px; }
.location-tools button, .secondary-button {
  min-height: 40px;
  border: 1px solid #b9c9dd;
  border-radius: 6px;
  padding: 8px 11px;
  color: #244465;
  background: #eef5fb;
  cursor: pointer;
  font-size: 11px;
  font-weight: 800;
}

.consent {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  margin: 20px 28px 0;
  text-transform: none;
  line-height: 1.45;
}

.consent input { flex: 0 0 auto; width: 18px; min-height: 18px; margin-top: 1px; accent-color: var(--blue); }

.submit-order, .whatsapp-button {
  display: block;
  width: calc(100% - 56px);
  min-height: 50px;
  margin: 16px 28px 0;
  border: 0;
  border-radius: 6px;
  padding: 14px 18px;
  color: #fff;
  background: linear-gradient(135deg, #0878d1, #0a63b8);
  cursor: pointer;
  font-size: 13px;
  font-weight: 850;
  text-align: center;
  text-decoration: none;
}

.submit-order:hover { background: #0668b5; }
.submit-order:disabled { cursor: wait; opacity: .65; }

.submit-note {
  margin: 10px 28px 24px;
  color: var(--muted);
  font-size: 11px;
  line-height: 1.5;
  text-align: center;
}

.form-message { min-height: 20px; margin: 14px 28px 0; font-size: 12px; font-weight: 750; }
.form-message.error { color: var(--bad); }
.form-message.working { color: var(--blue); }
.honeypot { position: absolute; left: -10000px; width: 1px; height: 1px; overflow: hidden; }
.hidden { display: none !important; }

.success-card {
  padding: 46px 36px;
  text-align: center;
  border-top-color: var(--ok);
}

.success-mark {
  display: grid;
  place-items: center;
  width: 52px;
  height: 52px;
  margin: 0 auto 18px;
  border-radius: 50%;
  color: #fff;
  background: var(--ok);
  font-size: 26px;
  font-weight: 900;
}

.success-card > p { color: var(--muted); line-height: 1.55; }
.order-reference { display: block; margin: 12px 0 20px; color: var(--navy); font-size: 25px; }
.success-copy { max-width: 560px; margin: 0 auto; }
.client-promotion-box {
  display: grid;
  gap: 5px;
  max-width: 520px;
  margin: 16px auto 0;
  padding: 14px 16px;
  border: 1px solid rgba(14, 116, 255, .2);
  border-left: 5px solid var(--blue);
  border-radius: 10px;
  color: #0b2a55;
  background: linear-gradient(135deg, #eef6ff, #fff6f7);
  text-align: left;
}

.client-promotion-box strong {
  color: var(--red);
  text-transform: uppercase;
  font-size: 11px;
  letter-spacing: .04em;
}

.client-promotion-box span { color: var(--navy); line-height: 1.45; }
.client-promotion-box small { color: var(--muted); line-height: 1.35; }
.whatsapp-button { max-width: 440px; margin: 26px auto 0; background: linear-gradient(135deg, #18a36e, #117b54); }
.whatsapp-button:hover { background: #11734b; }
.whatsapp-button.disabled { pointer-events: none; opacity: .55; }
.secondary-button { display: block; width: min(440px, 100%); margin: 10px auto 0; }
.text-button { border: 0; margin-top: 26px; color: var(--blue); background: transparent; cursor: pointer; font-weight: 750; }

.tracking-box {
  display: grid;
  gap: 5px;
  max-width: 440px;
  margin: 14px auto 0;
  padding: 13px;
  border: 1px solid #b9d9cd;
  border-radius: 6px;
  color: #1d4f40;
  background: #effaf6;
  font-size: 12px;
}

.tracking-details {
  display: grid;
  gap: 6px;
  margin-top: 8px;
  padding-top: 9px;
  border-top: 1px solid rgba(29, 79, 64, .16);
  text-align: left;
}

.tracking-details span {
  display: block;
  color: #315f52;
  line-height: 1.4;
}

footer { padding: 0 20px 32px; color: #72819a; font-size: 11px; text-align: center; }

@media (max-width: 900px) {
  .order-main { grid-template-columns: 1fr; margin-top: 24px; }
  .order-intro { position: static; display: grid; grid-template-columns: minmax(240px, .8fr) 1.2fr; }
  .order-photo { height: 100%; min-height: 280px; aspect-ratio: auto; }
  .order-intro h1 { max-width: 680px; font-size: 32px; }
  .order-intro-copy > p:not(.eyebrow) { max-width: 720px; }
  .trust-row { grid-template-columns: repeat(3, 1fr); }
  .fee-catalogue-grid { grid-template-columns: 1fr; }
}

@media (max-width: 620px) {
  .order-header { min-height: 64px; padding: 8px 14px; }
  .order-brand img { width: 42px; height: 42px; }
  .order-brand small, .staff-link { font-size: 10px; }
  .order-main { width: min(100% - 24px, 1240px); margin: 20px auto 40px; gap: 22px; }
  .order-intro { grid-template-columns: 1fr; }
  .order-photo { min-height: 210px; aspect-ratio: 16 / 9; }
  .order-intro-copy { padding: 21px 19px 23px; }
  .order-intro h1 { font-size: 28px; }
  .order-intro-copy > p:not(.eyebrow) { margin-top: 12px; font-size: 14px; }
  .trust-row { grid-template-columns: 1fr; gap: 8px; margin-top: 18px; }
  .card-heading, .form-section { padding-left: 17px; padding-right: 17px; }
  .order-smart-tools { padding-left: 17px; padding-right: 17px; }
  .track-delivery-panel { padding-left: 17px; padding-right: 17px; }
  .client-account-panel { padding-left: 17px; padding-right: 17px; }
  .client-auth-grid,
  .client-contact-list,
  .client-portal-kpis { grid-template-columns: 1fr; }
  .client-account-head { display: grid; }
  .track-delivery-form > div,
  .track-delivery-form > .track-date-filters,
  .lookup-detail-grid,
  .lookup-progress { grid-template-columns: 1fr; }
  .lookup-kpis,
  .lookup-wallet-kpis { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .contact-input-row { grid-template-columns: 1fr; }
  .contact-picker-button { min-height: 42px; }
  .lookup-card-head { display: grid; }
  .lookup-status { max-width: none; text-align: left; }
  .fee-catalogue-panel summary { align-items: flex-start; flex-direction: column; padding-left: 17px; padding-right: 17px; }
  .fee-catalogue-content { padding-left: 17px; padding-right: 17px; }
  .form-guide { padding: 0 12px; }
  .card-heading h2 { font-size: 20px; }
  .form-grid.two { grid-template-columns: 1fr; }
  .form-grid .wide { grid-column: auto; }
  .consent { margin-left: 17px; margin-right: 17px; }
  .submit-order { width: calc(100% - 34px); margin-left: 17px; margin-right: 17px; }
  .submit-note, .form-message { margin-left: 17px; margin-right: 17px; }
  .success-card { padding: 34px 18px; }
}

@media print {
  body { background: #fff; }
  .order-header,
  .office-status-banner,
  .order-intro,
  #clientOrderForm,
  .form-guide,
  .order-smart-tools,
  footer { display: none !important; }
  .order-main { display: block; width: 100%; margin: 0; }
  .order-card { border: 0; box-shadow: none; }
  .card-heading { display: none; }
  .fee-catalogue-panel { display: block !important; border: 0; }
  .fee-catalogue-panel summary { display: block; padding: 0 0 14px; }
  .fee-catalogue-panel summary button { display: none; }
  .fee-catalogue-content { padding: 0; }
  .fee-catalogue-grid { grid-template-columns: 1fr; }
  .fee-zone-card { break-inside: avoid; }
}
