:root{font-family:Pretendard,"Noto Sans KR",Arial,sans-serif;color:#17202a;background:#f4f6f8}
*{box-sizing:border-box}body{margin:0;background:#f4f6f8}.hidden{display:none!important}
.mobile-shell{width:min(100%,560px);min-height:100vh;margin:0 auto;padding:0 16px 28px;background:#f7f8fa}
.mobile-header{height:72px;display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #e1e5e9}
.brand{display:flex;align-items:center;gap:10px}.brand img{width:112px;max-height:34px;object-fit:contain}.brand-copy{display:flex;flex-direction:column}.brand-copy strong{font-size:16px}.brand-copy span{margin-top:2px;color:#7b8590;font-size:10px;font-weight:700;letter-spacing:.06em}
.icon-btn{width:42px;height:42px;border:1px solid #dce1e7;border-radius:12px;background:#fff;color:#697480}
.user-card{display:flex;align-items:center;gap:12px;margin-top:18px;padding:14px 15px;border:1px solid #e0e5ea;border-radius:15px;background:#fff}.user-icon{display:grid;place-items:center;width:42px;height:42px;border-radius:12px;background:#edf2f6;color:#334b60}.user-copy{display:flex;min-width:0;flex-direction:column}.user-copy strong{font-size:14px}.user-copy span{margin-top:3px;color:#7d8791;font-size:11px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.intro{padding:27px 2px 16px}.intro h1{margin:0;font-size:23px;letter-spacing:-.04em}.intro p{margin:7px 0 0;color:#7b8590;font-size:12px;line-height:1.55}
.services{display:grid;grid-template-columns:1fr 1fr;gap:12px}.service-btn{min-height:150px;padding:20px 14px;border:1px solid #dfe4e9;border-radius:18px;background:#fff;box-shadow:0 7px 22px rgba(22,31,42,.045);text-align:center;color:#18232e;cursor:pointer}.service-btn:active:not(:disabled){transform:scale(.985)}.service-btn:disabled{cursor:not-allowed;opacity:.55}.service-icon{display:grid;place-items:center;width:52px;height:52px;margin:0 auto 13px;border-radius:15px;background:#eaf1f6;color:#244964;font-size:21px}.service-btn.vehicle .service-icon{background:#f0f1f3;color:#737b84}.service-title{display:block;font-size:17px;font-weight:850;line-height:1.25}.service-sub{display:block;margin-top:6px;color:#66727e;font-size:12px;font-weight:700}.coming{display:inline-block;margin-top:12px;padding:5px 9px;border-radius:999px;background:#eef0f2;color:#737c84;font-size:10px;font-weight:800}
.note{margin-top:15px;padding:12px 13px;border-radius:12px;background:#eef5f2;color:#49665c;font-size:11px;line-height:1.5}.footer{margin-top:26px;padding-top:15px;border-top:1px solid #e1e5e9;color:#8a939b;font-size:10px;text-align:center}
.login-wrap{display:grid;place-items:center;min-height:100vh;padding:20px}.login-card{width:min(100%,420px);padding:24px 20px;border:1px solid #e0e5ea;border-radius:18px;background:#fff;box-shadow:0 12px 36px rgba(20,31,42,.08)}.login-card img{width:130px;display:block;margin:0 auto 20px;filter:brightness(.45)}.login-card h1{margin:0;text-align:center;font-size:22px}.login-card p{margin:7px 0 22px;text-align:center;color:#78838e;font-size:12px}.login-card label{display:block;margin:13px 0 6px;font-size:12px;font-weight:800}.login-card input{width:100%;height:46px;padding:0 13px;border:1px solid #d8dee5;border-radius:11px;font-size:14px}.primary{width:100%;height:48px;margin-top:18px;border:0;border-radius:12px;background:#1f425e;color:#fff;font-size:14px;font-weight:850}.error{margin-top:12px;padding:10px 11px;border-radius:10px;background:#fff0f0;color:#a33;font-size:11px}.loading{opacity:.7;pointer-events:none}
/* Force the copied CRM registration wizard into a single-column mobile flow. */
.customer-registration-modal{width:min(760px,calc(100vw - 16px))!important;max-height:calc(100vh - 16px)!important}.customer-registration-modal .modal-body{padding:14px!important}.customer-registration-modal .form-grid{grid-template-columns:1fr!important}.customer-registration-modal .span-2,.customer-registration-modal .span-3{grid-column:1!important}.customer-registration-modal .sticky-actions{position:sticky;bottom:-14px;margin:14px -14px -14px;padding:11px 14px;background:#fff;border-top:1px solid #e2e6ea;z-index:5}
@media(max-width:380px){.services{grid-template-columns:1fr}.service-btn{min-height:128px}.mobile-shell{padding-left:12px;padding-right:12px}}

/* ============================================================
   v1.0.5 - HyForce-MPP two-column mobile registration UX
   This project is a mobile-only shell. Keep CRM data/validation logic intact
   while presenting the copied registration wizard like a native mobile form.
   ============================================================ */
body.mobile-registration-open{background:#f7f8fc;overscroll-behavior:none}
.mobile-registration-overlay.modal-overlay{
  align-items:stretch!important;justify-content:center!important;padding:0!important;
  background:#f5f7fb!important;backdrop-filter:none!important;
}
.mobile-registration-overlay .customer-registration-modal.mobile-registration-panel{
  display:flex!important;flex-direction:column!important;width:min(100%,560px)!important;
  height:100dvh!important;max-width:560px!important;max-height:none!important;margin:0 auto!important;
  overflow:hidden!important;border:0!important;border-radius:0!important;background:#f7f8fc!important;box-shadow:none!important;
}
.mobile-registration-overlay .customer-registration-modal .modal-header{
  flex:0 0 auto;min-height:58px!important;padding:10px 16px!important;border-bottom:1px solid #e5e9f0!important;
  color:#172033!important;background:rgba(255,255,255,.98)!important;box-shadow:none!important;backdrop-filter:blur(10px)!important;
}
.mobile-registration-overlay .customer-registration-modal .modal-header h3{
  gap:8px!important;color:#172033!important;font-size:17px!important;font-weight:850!important;letter-spacing:-.03em!important;
}
.mobile-registration-overlay .customer-registration-modal .modal-header h3 i{
  width:30px!important;height:30px!important;border-radius:9px!important;color:#4159b8!important;background:#eef2ff!important;box-shadow:none!important;
}
.mobile-registration-overlay .customer-registration-modal .modal-body{
  flex:1 1 auto!important;min-height:0!important;overflow-y:auto!important;-webkit-overflow-scrolling:touch;
  padding:12px 14px calc(18px + env(safe-area-inset-bottom))!important;background:#f7f8fc!important;
}
.mobile-registration-overlay #customer-wizard{width:100%;max-width:none!important}

/* Compact, touch-friendly step navigator */
.mobile-registration-overlay .registration-progress{
  display:grid!important;grid-template-columns:repeat(3,minmax(0,1fr))!important;gap:6px!important;
  margin:0 0 16px!important;padding:8px!important;border:1px solid #e5e9f0!important;border-radius:14px!important;
  background:#fff!important;box-shadow:0 4px 14px rgba(31,42,72,.04)!important;
}
.mobile-registration-overlay .registration-progress>i{display:none!important}
.mobile-registration-overlay .registration-step{
  display:flex!important;min-width:0!important;align-items:center!important;justify-content:center!important;gap:6px!important;
  padding:7px 5px!important;border-radius:10px!important;color:#8992a3!important;background:#f7f8fb!important;
}
.mobile-registration-overlay .registration-step span{
  width:27px!important;height:27px!important;flex:0 0 27px!important;font-size:10px!important;border:0!important;background:#eef1f6!important;box-shadow:none!important;
}
.mobile-registration-overlay .registration-step strong{min-width:0;font-size:11px!important;line-height:1.2!important;white-space:nowrap!important;overflow:hidden;text-overflow:ellipsis}
.mobile-registration-overlay .registration-step.active{color:#263455!important;background:#eef2ff!important}
.mobile-registration-overlay .registration-step.active span{color:#fff!important;background:#5066d5!important;box-shadow:none!important}
.mobile-registration-overlay .registration-step.done{color:#28735e!important;background:#eff9f5!important}
.mobile-registration-overlay .registration-step.done span{color:#fff!important;background:#47a486!important}

.mobile-registration-overlay .wizard-section-head{margin:0 0 12px!important;padding:0 0 11px!important;border-bottom:1px solid #e7eaf0!important}
.mobile-registration-overlay .wizard-section-head:before{display:none!important}
.mobile-registration-overlay .wizard-section-head>strong{font-size:18px!important;font-weight:850!important}
.mobile-registration-overlay .wizard-section-head>span{margin-top:5px!important;font-size:12px!important;line-height:1.45!important}
.mobile-registration-overlay .wizard-success-line{margin-bottom:10px!important;padding:10px 12px!important}

/* Mobile optimization: use a compact 2-column grid where possible to reduce vertical scroll. */
.mobile-registration-overlay .form-stack{gap:12px!important}
.mobile-registration-overlay .form-grid,
.mobile-registration-overlay .customer-basic-grid,
.mobile-registration-overlay .registration-step-form .customer-step-grid,
.mobile-registration-overlay .power-step-grid,
.mobile-registration-overlay .form-grid-2,
.mobile-registration-overlay .consent-meta-grid{
  display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important;
}
.mobile-registration-overlay .form-grid>*{min-width:0!important}
.mobile-registration-overlay .span-2,
.mobile-registration-overlay .span-3,
.mobile-registration-overlay .customer-memo-field,
.mobile-registration-overlay #customer-type-detail-row,
.mobile-registration-overlay .site-contact-sync,
.mobile-registration-overlay .address-search-help{grid-column:1/-1!important;min-width:0!important}
.mobile-registration-overlay .mobile-two-column-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
.mobile-registration-overlay .field-label,
.mobile-registration-overlay .field-label-with-help{display:flex!important;align-items:center!important;gap:5px!important;margin-bottom:6px!important;font-size:13px!important;font-weight:800!important}
.mobile-registration-overlay .field,
.mobile-registration-overlay input:not([type="checkbox"]):not([type="radio"]),
.mobile-registration-overlay select,
.mobile-registration-overlay textarea{
  width:100%!important;min-width:0!important;min-height:50px!important;padding:11px 12px!important;border-radius:12px!important;
  font-size:16px!important;line-height:1.35!important;box-shadow:none!important;
}
.mobile-registration-overlay textarea.field{min-height:94px!important;resize:vertical!important}
.mobile-registration-overlay .country-phone-field{display:flex!important;width:100%!important}
.mobile-registration-overlay .country-phone-prefix{display:flex!important;align-items:center!important;min-height:50px!important;padding:0 12px!important;font-size:14px!important}
.mobile-registration-overlay .country-phone-local{flex:1 1 auto!important;min-width:0!important}

/* Ownership / privacy / evidence become lightweight mobile cards */
.mobile-registration-overlay .wizard-subsection,
.mobile-registration-overlay .evidence-panel,
.mobile-registration-overlay .consent-confirmation-panel,
.mobile-registration-overlay .power-entry-method{
  padding:13px!important;border-radius:14px!important;background:#fff!important;box-shadow:none!important;
}
.mobile-registration-overlay .wizard-subsection{margin-top:3px!important}
.mobile-registration-overlay .evidence-panel-head{display:flex!important;flex-wrap:wrap!important;gap:9px!important;margin-bottom:11px!important}
.mobile-registration-overlay .consent-panel-title{display:grid!important;grid-template-columns:30px 1fr!important;align-items:center!important}
.mobile-registration-overlay .consent-preview-btn{grid-column:1/-1!important;width:100%!important;min-height:44px!important;margin-top:3px!important}
.mobile-registration-overlay .consent-final-check{padding:12px!important;line-height:1.45!important}
.mobile-registration-overlay .check-row input[type="checkbox"],
.mobile-registration-overlay .site-contact-sync input[type="checkbox"]{width:22px!important;height:22px!important;min-width:22px!important}
.mobile-registration-overlay .duplicate-status-card{padding:12px!important;border-radius:12px!important}

/* Address search: input first, full-width touch button below */
.mobile-registration-overlay .postcode-search-field{display:grid!important;grid-template-columns:1fr!important;gap:8px!important}
.mobile-registration-overlay .postcode-search-btn{width:100%!important;min-height:46px!important;border-radius:11px!important;justify-content:center!important}
.mobile-registration-overlay .address-search-help{margin-top:-4px!important;padding:0 2px!important;font-size:11px!important;line-height:1.45!important}
.mobile-registration-overlay .site-contact-sync{display:flex!important;align-items:center!important;gap:9px!important;padding:11px 12px!important;border-radius:12px!important}

/* Power input mode and summary */
.mobile-registration-overlay .power-entry-method-head{display:grid!important;grid-template-columns:1fr!important;gap:9px!important}
.mobile-registration-overlay .power-entry-mode-buttons{display:grid!important;grid-template-columns:1fr 1fr!important;width:100%!important;gap:6px!important}
.mobile-registration-overlay .power-mode-btn{min-height:43px!important;padding:8px!important;border-radius:10px!important;font-size:12px!important}
.mobile-registration-overlay .subscription-estimate-values{display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important}
.mobile-registration-overlay .subscription-estimate-values>div{min-width:0!important;padding:10px!important}

/* 12-month electricity inputs become stacked mobile cards instead of a desktop table */
.mobile-registration-overlay .monthly-power-head{display:none!important}
.mobile-registration-overlay .monthly-power-rows{display:grid!important;grid-template-columns:1fr!important;gap:9px!important;margin-top:10px!important}
.mobile-registration-overlay .monthly-power-row.mobile-month-card{
  display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;padding:11px!important;
  border:1px solid #e4e8ef!important;border-radius:12px!important;background:#fff!important;
}
.mobile-registration-overlay .monthly-power-row.mobile-month-card>strong{
  grid-column:1/-1!important;padding-bottom:7px!important;border-bottom:1px solid #edf0f4!important;color:#253049!important;font-size:13px!important;text-align:left!important;
}
.mobile-registration-overlay .mobile-month-field{display:block!important;min-width:0!important}
.mobile-registration-overlay .mobile-month-field>span{display:block!important;margin:0 0 5px!important;color:#7a8495!important;font-size:10px!important;font-weight:750!important}
.mobile-registration-overlay .monthly-power-row .field{min-height:45px!important;padding:9px 10px!important;font-size:15px!important;text-align:right!important}
.mobile-registration-overlay .monthly-power-summary{display:grid!important;grid-template-columns:1fr 1fr!important;gap:7px!important;padding:11px!important;border-radius:12px!important}
.mobile-registration-overlay .monthly-power-summary>span{grid-column:1/-1!important;font-size:11px!important}
.mobile-registration-overlay .monthly-power-summary strong{font-size:12px!important;white-space:normal!important}

/* File upload is a clear, full-width mobile target; mobile browsers can offer camera/gallery. */
.mobile-registration-overlay .compact-upload-box,
.mobile-registration-overlay #legal-document-row{padding:13px!important;border:1px dashed #cdd5e0!important;border-radius:13px!important;background:#fff!important}
.mobile-registration-overlay input[type="file"],
.mobile-registration-overlay .field-file{display:block!important;width:100%!important;min-height:48px!important;padding:8px!important;border:1px solid #dde3ea!important;border-radius:11px!important;background:#f9fafc!important;font-size:13px!important}
.mobile-registration-overlay .compact-upload-box small{display:block!important;margin-top:7px!important;line-height:1.45!important}

/* Native-app style bottom action bar. Step 1 uses two small actions + one prominent full-width Next. */
.mobile-registration-overlay .sticky-actions{
  position:sticky!important;bottom:calc(-18px - env(safe-area-inset-bottom))!important;z-index:20!important;
  display:grid!important;grid-template-columns:1fr 1fr!important;gap:8px!important;
  margin:16px -14px calc(-18px - env(safe-area-inset-bottom))!important;
  padding:11px 14px calc(11px + env(safe-area-inset-bottom))!important;border-top:1px solid #e3e7ee!important;
  background:rgba(255,255,255,.98)!important;box-shadow:0 -8px 20px rgba(25,35,55,.07)!important;backdrop-filter:blur(12px)!important;
}
.mobile-registration-overlay .sticky-actions .btn{width:100%!important;min-height:47px!important;margin:0!important;border-radius:12px!important;font-size:13px!important;font-weight:800!important}
.mobile-registration-overlay #customer-basic-form .sticky-actions button[type="submit"]{grid-column:1/-1!important}
.mobile-registration-overlay .registration-step-form .sticky-actions{grid-template-columns:1fr 1.35fr!important}

/* Keep content readable on very narrow phones. */
@media(max-width:430px){
  .mobile-registration-overlay .customer-registration-modal .modal-body{padding-left:11px!important;padding-right:11px!important}
  .mobile-registration-overlay .registration-step{gap:4px!important;padding:6px 3px!important}
  .mobile-registration-overlay .registration-step span{width:24px!important;height:24px!important;flex-basis:24px!important}
  .mobile-registration-overlay .registration-step strong{font-size:10px!important}
}
@media(max-width:380px){
  .mobile-registration-overlay .form-grid,
  .mobile-registration-overlay .customer-basic-grid,
  .mobile-registration-overlay .registration-step-form .customer-step-grid,
  .mobile-registration-overlay .power-step-grid,
  .mobile-registration-overlay .form-grid-2,
  .mobile-registration-overlay .consent-meta-grid,
  .mobile-registration-overlay .subscription-estimate-values{grid-template-columns:1fr!important}
  .mobile-registration-overlay .monthly-power-row.mobile-month-card{grid-template-columns:1fr!important}
  .mobile-registration-overlay .monthly-power-row.mobile-month-card>strong{grid-column:1!important}
  .mobile-registration-overlay .monthly-power-summary{grid-template-columns:1fr!important}
  .mobile-registration-overlay .monthly-power-summary>span{grid-column:1!important}
}

/* v1.0.7 - consent document preview stays inside the authenticated mobile app. */
.mobile-consent-preview{position:fixed;inset:0;z-index:99999;display:flex;flex-direction:column;background:#eef1f4}
.mobile-consent-preview-bar{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:58px;padding:10px 14px;background:#fff;border-bottom:1px solid #dfe4e9;box-shadow:0 2px 10px rgba(20,30,40,.06)}
.mobile-consent-preview-bar strong{font-size:16px;color:#172033}
.mobile-consent-preview-close{min-height:40px;padding:0 13px;border:1px solid #d7dee6;border-radius:10px;background:#fff;color:#263443;font-size:13px;font-weight:800}
.mobile-consent-preview-frame{display:block;flex:1 1 auto;width:100%;min-height:0;border:0;background:#fff}


/* v1.0.8 - HyForce vehicle customer registration */
.vehicle-application-form .vehicle-customer-basic-grid {
  display: grid;
  grid-template-columns: minmax(0, .9fr) minmax(0, .9fr) minmax(0, 1.2fr);
  gap: 15px 16px;
}
.vehicle-application-form .vehicle-customer-basic-grid > div { min-width: 0; }
.vehicle-application-form .vehicle-business-number-row { grid-column: 1 / -1; }
.vehicle-application-form .vehicle-postcode-search {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 7px;
  align-items: stretch;
}
.vehicle-application-form .vehicle-postcode-search .btn {
  min-width: 94px;
  padding-left: 10px;
  padding-right: 10px;
  white-space: nowrap;
}
.vehicle-application-form .vehicle-address-main { grid-column: 1 / span 2; }
.vehicle-application-form .vehicle-address-detail { grid-column: 3; }
.vehicle-application-form input[readonly] { background: #f7f9fb; color: #44515e; }
@media (max-width: 760px) {
  .vehicle-application-form .vehicle-customer-basic-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .vehicle-application-form .vehicle-customer-basic-grid > div:nth-child(3),
  .vehicle-application-form .vehicle-business-number-row,
  .vehicle-application-form .vehicle-address-main,
  .vehicle-application-form .vehicle-address-detail { grid-column: 1 / -1; }
}


/* ============================================================
   v636 - Vehicle preorder application UI (runtime stylesheet)
   Loaded by /static/css/app.css; modal width is unchanged.
   ============================================================ */
/* v636 vehicle preorder application / electronic signature */
.vehicle-application-form .optional-badge{display:inline-flex;align-items:center;margin-left:6px;padding:2px 7px;border-radius:999px;background:#eef1f4;color:#6d7782;font-size:10px;font-weight:800;vertical-align:middle}
.vehicle-application-form .section-unit{color:#758293;font-size:11px;font-weight:800}
.vehicle-info-compact-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 14px}.vehicle-info-compact-grid .vehicle-category-cell,.vehicle-info-compact-grid .vehicle-wide-row{grid-column:1/-1}.vehicle-info-compact-grid .field{width:100%}
.vehicle-section-card{margin-top:16px;padding:14px;border:1px solid #dfe5ec;border-radius:14px;background:#fff;box-shadow:0 5px 18px rgba(31,45,61,.045)}
.vehicle-section-heading{display:flex;align-items:flex-start;gap:10px;margin-bottom:12px;padding-bottom:10px;border-bottom:1px solid #e9edf2}.vehicle-section-icon{display:grid;place-items:center;width:34px;height:34px;flex:0 0 34px;border-radius:10px;background:#eef4fb;color:#2e67a1;font-size:14px}.vehicle-section-heading>div{min-width:0}.vehicle-section-heading strong{display:block;color:#182432;font-size:14px;line-height:1.35}.vehicle-section-heading small{display:block;margin-top:3px;color:#74808d;font-size:10px;line-height:1.45}
.vehicle-contract-section{background:linear-gradient(180deg,#fbfdff 0%,#f7fbff 100%);border-color:#d8e5f2}.vehicle-contract-card.refined{display:grid;grid-template-columns:minmax(145px,.72fr) minmax(240px,1.28fr);gap:10px 12px;padding:0;border:0;background:transparent}.vehicle-grade-cell{align-self:start}.vehicle-contract-values{display:grid;grid-template-columns:1fr 1fr;gap:8px}.contract-metric{padding:11px 12px;border:1px solid #dce6ef;border-radius:10px;background:#fff}.vehicle-contract-values span,.vehicle-contract-values small{display:block;color:#707c89;font-size:10px}.vehicle-contract-values strong{display:block;margin-top:4px;color:#12385a;font-size:17px;line-height:1.25}.vehicle-contract-values small{margin-top:3px}.vehicle-contract-example{grid-column:1/-1;display:flex;align-items:flex-start;gap:7px;padding:9px 11px;border-radius:9px;background:#edf6ff;color:#4b6075;font-size:11px;line-height:1.45}.vehicle-contract-example i{margin-top:2px;color:#3f78ae}
.vehicle-documents-section{background:#fcfcfd}.vehicle-document-grid.refined{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:9px}.vehicle-upload-card{display:grid;grid-template-columns:34px minmax(0,1fr);gap:8px;align-items:center;padding:10px;border:1px solid #dfe5ec;border-radius:11px;background:#fff;cursor:pointer;transition:border-color .15s ease,box-shadow .15s ease}.vehicle-upload-card:hover{border-color:#bfcbd7;box-shadow:0 4px 12px rgba(31,45,61,.05)}.vehicle-upload-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:#eef4f8;color:#31566f}.vehicle-upload-copy{display:flex;min-width:0;flex-direction:column;gap:2px}.vehicle-upload-copy strong{font-size:11px;line-height:1.3}.vehicle-upload-copy small{color:#7b8590;font-size:9px}.vehicle-upload-card .field-file{grid-column:1/-1;width:100%;min-height:36px;padding:5px;border:1px solid #e0e6ed;border-radius:8px;background:#f8fafc;font-size:10px}.vehicle-upload-card .field-file::file-selector-button{margin-right:8px;padding:6px 9px;border:1px solid #cad4de;border-radius:7px;background:#fff;color:#334b60;font-size:10px;font-weight:800;cursor:pointer}
.vehicle-consent-section{background:#fbfefc;border-color:#d9e9df}.vehicle-consent-row{display:flex;align-items:flex-start;gap:10px;padding:10px 11px;border:1px solid #dce7e1;border-radius:9px;background:#f6fbf8;font-size:12px;line-height:1.45}.vehicle-consent-row.compact{padding:9px 10px}.vehicle-consent-row input{width:18px;height:18px;flex:0 0 18px;margin-top:1px}.vehicle-consent-row span{min-width:0}.vehicle-consent-row b{display:block;color:#26372f;font-size:11px}.vehicle-consent-row small{display:block;margin-top:2px;color:#77857d;font-size:9px}
.vehicle-signature-section{background:#fcfdff;border-color:#dbe3ee}.vehicle-signature-panel.refined{padding:0;border:0;background:transparent}.vehicle-signature-head{display:grid;grid-template-columns:minmax(0,1fr) 180px;gap:12px;align-items:end;margin-bottom:8px}.vehicle-signature-guide{color:#6f7b88;font-size:10px;line-height:1.4}.vehicle-signature-name{margin:0}.vehicle-signature-panel canvas{display:block;width:100%;height:104px;touch-action:none;border:1px dashed #aeb9c5;border-radius:9px;background:#fff}.vehicle-signature-actions{display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:7px;color:#6f7a86;font-size:10px}.application-confirmation{margin-top:10px;border-color:#d8e5dd;background:#f8fcfa}.vehicle-doc-list{display:flex;flex-wrap:wrap;gap:8px;margin-top:12px}
@media(max-width:760px){.vehicle-info-compact-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.vehicle-contract-card.refined{grid-template-columns:1fr}.vehicle-contract-values{grid-template-columns:1fr 1fr}.vehicle-document-grid.refined{grid-template-columns:repeat(3,minmax(0,1fr))}.vehicle-signature-head{grid-template-columns:1fr}.vehicle-section-heading{gap:8px}}
@media(max-width:520px){.vehicle-info-compact-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.vehicle-document-grid.refined{grid-template-columns:1fr}.vehicle-contract-values{grid-template-columns:1fr 1fr}}


/* v636 - HyForce vehicle consent / pre-contract document actions */
.vehicle-section-heading{position:relative;display:flex;align-items:center;gap:12px}
.vehicle-section-heading>div{min-width:0;flex:1}
.vehicle-section-action{margin-left:auto;white-space:nowrap;flex:0 0 auto}
.vehicle-detail-document-actions{display:flex;align-items:center;justify-content:space-between;gap:16px}
.vehicle-detail-document-actions p{margin:5px 0 0;color:var(--text-muted,#68788a);font-size:12px;line-height:1.55}
.vehicle-detail-document-buttons{display:flex;gap:8px;flex-wrap:wrap;justify-content:flex-end}
@media(max-width:860px){.vehicle-section-heading{align-items:flex-start;flex-wrap:wrap}.vehicle-section-action{width:100%;margin-left:0}.vehicle-detail-document-actions{align-items:stretch;flex-direction:column}.vehicle-detail-document-buttons{justify-content:flex-start}.vehicle-detail-document-buttons .btn{flex:1 1 220px}}

/* ============================================================
   v636 - HyForce multi-vehicle customer management
   ============================================================ */
.vehicle-fleet-section{border-color:#cbd9e3;background:linear-gradient(180deg,#fbfdff 0%,#f7fafc 100%)}
.vehicle-fleet-table{margin-top:14px;border:1px solid #dbe4eb;border-radius:12px;overflow:hidden;background:#fff}
.vehicle-fleet-head,.vehicle-fleet-row{display:grid;grid-template-columns:1.05fr 1.55fr 1.15fr 1.15fr .7fr;gap:12px;align-items:center;padding:11px 14px}
.vehicle-fleet-head{background:#edf4f8;color:#435563;font-size:11px;font-weight:800;border-bottom:1px solid #dbe4eb}
.vehicle-fleet-row{min-height:62px;border-bottom:1px solid #e8eef2;font-size:12px}
.vehicle-fleet-row:last-child{border-bottom:0}
.vehicle-fleet-row>span{min-width:0;word-break:break-word}
.vehicle-fleet-row small{display:block;margin-top:3px;color:#7a8791;font-size:10px}
.primary-vehicle-badge{display:inline-block!important;width:max-content;margin-top:4px!important;padding:2px 6px;border-radius:999px;background:#e7f4eb;color:#2f6f45;font-weight:800}
.empty-inline{padding:22px;text-align:center;color:#7b8790;background:#fff;border:1px dashed #ccd8e0;border-radius:10px;margin-top:12px}
.muted{color:#8a96a0}
.vehicle-customer-basic-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.vehicle-customer-basic-grid .vehicle-address-main{grid-column:span 2}
.vehicle-customer-basic-grid .vehicle-address-detail{grid-column:span 1}
.vehicle-info-compact-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.vehicle-info-compact-grid .vehicle-category-cell{grid-column:span 2}
.vehicle-info-compact-grid .vehicle-wide-row{grid-column:1/-1}
@media(max-width:900px){.vehicle-fleet-head{display:none}.vehicle-fleet-row{grid-template-columns:1fr 1fr;gap:8px}.vehicle-fleet-row>span:last-child{grid-column:1/-1}.vehicle-customer-basic-grid,.vehicle-info-compact-grid{grid-template-columns:1fr!important}.vehicle-customer-basic-grid .vehicle-address-main,.vehicle-customer-basic-grid .vehicle-address-detail,.vehicle-info-compact-grid .vehicle-category-cell,.vehicle-info-compact-grid .vehicle-wide-row{grid-column:auto}}

/* ============================================================
   v638 - vehicle customer detail readability / stale-client guard UI
   ============================================================ */
.vehicle-customer-detail-card .detail-list > div{
  display:grid;
  grid-template-columns:76px minmax(0,1fr);
  gap:8px;
  align-items:start;
}
.vehicle-customer-detail-card .detail-list > div > span{
  white-space:nowrap;
  color:var(--text-muted,#667788);
}
.vehicle-customer-detail-card .detail-list > div > b{
  min-width:0;
  word-break:keep-all;
  overflow-wrap:anywhere;
}
.vehicle-customer-detail-card .detail-list > div:nth-child(2) > b,
.vehicle-customer-detail-card .detail-list > div:nth-child(3) > b{
  white-space:nowrap;
  overflow-wrap:normal;
}
@media(max-width:520px){
  .vehicle-customer-detail-card .detail-list > div{grid-template-columns:70px minmax(0,1fr)}
}


.mobile-vehicle-registration-overlay{padding:0!important;align-items:stretch!important;background:#f2f4f7!important;backdrop-filter:none!important}
.mobile-vehicle-registration-overlay .modal-panel{width:100%!important;max-width:560px!important;height:100dvh!important;max-height:100dvh!important;margin:0 auto!important;border:0!important;border-radius:0!important;display:flex!important;flex-direction:column!important;overflow:hidden!important;background:#f7f8fb!important;box-shadow:none!important}
.mobile-vehicle-registration-overlay .modal-header{flex:0 0 auto!important;min-height:60px!important;padding:13px 15px!important;background:linear-gradient(110deg,#173f58,#235c79)!important;color:#fff!important;border-bottom:0!important}
.mobile-vehicle-registration-overlay .modal-header h3{font-size:16px!important;color:#fff!important}
.mobile-vehicle-registration-overlay .modal-header .modal-close{color:#fff!important}
.mobile-vehicle-registration-overlay .modal-body{flex:1 1 auto!important;min-height:0!important;overflow-y:auto!important;padding:13px 12px calc(88px + env(safe-area-inset-bottom))!important;background:#f6f8fb!important}
.mobile-vehicle-registration-overlay .vehicle-application-form{gap:11px!important}
.mobile-vehicle-registration-overlay .vehicle-customer-basic-grid,
.mobile-vehicle-registration-overlay .vehicle-info-compact-grid{grid-template-columns:1fr 1fr!important;gap:10px!important}
.mobile-vehicle-registration-overlay .vehicle-customer-basic-grid .vehicle-business-number-row,
.mobile-vehicle-registration-overlay .vehicle-customer-basic-grid .vehicle-address-main,
.mobile-vehicle-registration-overlay .vehicle-customer-basic-grid .vehicle-address-detail,
.mobile-vehicle-registration-overlay .vehicle-info-compact-grid .vehicle-wide-row{grid-column:1/-1!important}
.mobile-vehicle-registration-overlay .vehicle-info-compact-grid .vehicle-category-cell{grid-column:1/-1!important}
.mobile-vehicle-registration-overlay .field-label{font-size:11px!important;margin-bottom:5px!important}
.mobile-vehicle-registration-overlay .field,
.mobile-vehicle-registration-overlay select,
.mobile-vehicle-registration-overlay input[type="text"],
.mobile-vehicle-registration-overlay input[type="tel"],
.mobile-vehicle-registration-overlay input[type="number"]{min-height:46px!important;font-size:16px!important;border-radius:11px!important}
.mobile-vehicle-registration-overlay .vehicle-postcode-search{grid-template-columns:1fr!important;gap:7px!important}
.mobile-vehicle-registration-overlay .vehicle-postcode-search .btn{width:100%!important;min-height:44px!important}
.mobile-vehicle-registration-overlay .vehicle-section-card{margin-top:10px!important;padding:12px!important;border-radius:14px!important}
.mobile-vehicle-registration-overlay .vehicle-section-heading{align-items:flex-start!important;flex-wrap:wrap!important;gap:8px!important;margin-bottom:10px!important;padding-bottom:9px!important}
.mobile-vehicle-registration-overlay .vehicle-section-action{width:100%!important;margin-left:0!important;min-height:43px!important}
.mobile-vehicle-registration-overlay .vehicle-contract-card.refined{grid-template-columns:1fr!important}
.mobile-vehicle-registration-overlay .vehicle-contract-values{grid-template-columns:1fr 1fr!important}
.mobile-vehicle-registration-overlay .vehicle-document-grid.refined{grid-template-columns:1fr!important}
.mobile-vehicle-registration-overlay .vehicle-upload-card{grid-template-columns:38px 1fr!important;padding:11px!important}
.mobile-vehicle-registration-overlay .vehicle-upload-card .field-file{min-height:48px!important;font-size:12px!important}
.mobile-vehicle-registration-overlay .vehicle-signature-head{grid-template-columns:1fr!important}
.mobile-vehicle-registration-overlay .vehicle-signature-panel canvas{height:145px!important;touch-action:none!important}
.mobile-vehicle-registration-overlay .vehicle-consent-row{padding:12px!important}
.mobile-vehicle-registration-overlay .vehicle-consent-row input{width:22px!important;height:22px!important;flex-basis:22px!important}
.mobile-vehicle-registration-overlay .modal-actions{position:sticky!important;bottom:calc(-1 * (88px + env(safe-area-inset-bottom)))!important;z-index:20!important;display:grid!important;grid-template-columns:1fr 1.35fr!important;gap:8px!important;margin:14px -12px calc(-88px - env(safe-area-inset-bottom))!important;padding:11px 12px calc(11px + env(safe-area-inset-bottom))!important;background:rgba(255,255,255,.98)!important;border-top:1px solid #dfe5ec!important;box-shadow:0 -8px 20px rgba(25,35,55,.07)!important}
.mobile-vehicle-registration-overlay .modal-actions .btn{width:100%!important;min-height:48px!important;margin:0!important;border-radius:12px!important;font-size:13px!important;font-weight:800!important}
.mobile-vehicle-document-preview{position:fixed;inset:0;z-index:100000;display:flex;flex-direction:column;background:#eef1f4}
.mobile-vehicle-document-preview-bar{flex:0 0 auto;display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:58px;padding:9px 12px;background:#fff;border-bottom:1px solid #dfe4e9;box-shadow:0 2px 10px rgba(20,30,40,.06)}
.mobile-vehicle-document-preview-bar strong{font-size:14px;color:#172033;min-width:0}
.mobile-vehicle-document-preview-close{min-height:40px;padding:0 13px;border:1px solid #d7dee6;border-radius:10px;background:#fff;color:#263443;font-size:13px;font-weight:800}
.mobile-vehicle-document-preview-frame{display:block;flex:1 1 auto;width:100%;min-height:0;border:0;background:#fff}
@media(max-width:390px){
  .mobile-vehicle-registration-overlay .vehicle-customer-basic-grid,
  .mobile-vehicle-registration-overlay .vehicle-info-compact-grid,
  .mobile-vehicle-registration-overlay .vehicle-contract-values{grid-template-columns:1fr!important}
  .mobile-vehicle-registration-overlay .vehicle-customer-basic-grid>* ,
  .mobile-vehicle-registration-overlay .vehicle-info-compact-grid>*{grid-column:1!important}
}


/* ============================================================
   v1.0.16 - compact mobile registration density
   Applies to both MPP and HyForce vehicle registration.
   Goal: reduce vertical space and make input text two steps smaller.
   ============================================================ */
.mobile-registration-overlay .wizard-section-head{margin-bottom:8px!important;padding-bottom:7px!important}
.mobile-registration-overlay .wizard-section-head>strong{font-size:16px!important}
.mobile-registration-overlay .wizard-section-head>span{margin-top:3px!important;font-size:10px!important;line-height:1.35!important}
.mobile-registration-overlay .form-stack{gap:8px!important}
.mobile-registration-overlay .form-grid,
.mobile-registration-overlay .customer-basic-grid,
.mobile-registration-overlay .registration-step-form .customer-step-grid,
.mobile-registration-overlay .power-step-grid,
.mobile-registration-overlay .form-grid-2,
.mobile-registration-overlay .consent-meta-grid{gap:8px!important}
.mobile-registration-overlay .field-label,
.mobile-registration-overlay .field-label-with-help{margin-bottom:4px!important;font-size:11px!important;gap:4px!important}
.mobile-registration-overlay .field,
.mobile-registration-overlay input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),
.mobile-registration-overlay select,
.mobile-registration-overlay textarea{
  min-height:42px!important;padding:8px 9px!important;border-radius:9px!important;font-size:14px!important;line-height:1.3!important;
}
.mobile-registration-overlay textarea.field{min-height:72px!important}
.mobile-registration-overlay .country-phone-prefix{min-height:42px!important;padding:0 9px!important;font-size:12px!important}
.mobile-registration-overlay .wizard-subsection,
.mobile-registration-overlay .evidence-panel,
.mobile-registration-overlay .consent-confirmation-panel,
.mobile-registration-overlay .power-entry-method{padding:9px!important;border-radius:11px!important}
.mobile-registration-overlay .evidence-panel-head{gap:6px!important;margin-bottom:7px!important}
.mobile-registration-overlay .consent-panel-title{grid-template-columns:26px 1fr!important}
.mobile-registration-overlay .consent-preview-btn{min-height:38px!important}
.mobile-registration-overlay .consent-final-check{padding:9px!important;font-size:11px!important}
.mobile-registration-overlay .check-row input[type="checkbox"],
.mobile-registration-overlay .site-contact-sync input[type="checkbox"]{width:18px!important;height:18px!important;min-width:18px!important}
.mobile-registration-overlay .duplicate-status-card{padding:9px!important;border-radius:10px!important}
.mobile-registration-overlay .postcode-search-field{gap:6px!important}
.mobile-registration-overlay .postcode-search-btn{min-height:40px!important;border-radius:9px!important;font-size:11px!important}
.mobile-registration-overlay .address-search-help{font-size:9px!important;line-height:1.35!important}
.mobile-registration-overlay .site-contact-sync{gap:7px!important;padding:8px 9px!important;border-radius:9px!important;font-size:11px!important}
.mobile-registration-overlay .power-entry-method-head{gap:6px!important}
.mobile-registration-overlay .power-mode-btn{min-height:38px!important;padding:6px!important;font-size:10px!important}
.mobile-registration-overlay .subscription-estimate-values{gap:6px!important}
.mobile-registration-overlay .subscription-estimate-values>div{padding:8px!important}
.mobile-registration-overlay .monthly-power-rows{gap:6px!important;margin-top:7px!important}
.mobile-registration-overlay .monthly-power-row.mobile-month-card{gap:6px!important;padding:8px!important;border-radius:10px!important}
.mobile-registration-overlay .monthly-power-row.mobile-month-card>strong{padding-bottom:5px!important;font-size:11px!important}
.mobile-registration-overlay .mobile-month-field>span{margin-bottom:3px!important;font-size:9px!important}
.mobile-registration-overlay .monthly-power-row .field{min-height:39px!important;padding:7px 8px!important;font-size:13px!important}
.mobile-registration-overlay .monthly-power-summary{gap:5px!important;padding:8px!important;border-radius:10px!important}
.mobile-registration-overlay .monthly-power-summary>span{font-size:9px!important}
.mobile-registration-overlay .monthly-power-summary strong{font-size:10px!important}
.mobile-registration-overlay .compact-upload-box,
.mobile-registration-overlay #legal-document-row{padding:9px!important;border-radius:10px!important}
.mobile-registration-overlay input[type="file"],
.mobile-registration-overlay .field-file{min-height:40px!important;padding:6px!important;border-radius:9px!important;font-size:11px!important}
.mobile-registration-overlay .compact-upload-box small{margin-top:5px!important;font-size:9px!important}
.mobile-registration-overlay .sticky-actions{gap:6px!important;margin-top:10px!important;padding-top:8px!important}
.mobile-registration-overlay .sticky-actions .btn{min-height:41px!important;border-radius:10px!important;font-size:11px!important}

.mobile-vehicle-registration-overlay .modal-header{min-height:54px!important;padding:10px 12px!important}
.mobile-vehicle-registration-overlay .modal-header h3{font-size:14px!important}
.mobile-vehicle-registration-overlay .modal-body{padding:9px 9px calc(78px + env(safe-area-inset-bottom))!important}
.mobile-vehicle-registration-overlay .vehicle-application-form{gap:8px!important}
.mobile-vehicle-registration-overlay .vehicle-customer-basic-grid,
.mobile-vehicle-registration-overlay .vehicle-info-compact-grid{gap:7px!important}
.mobile-vehicle-registration-overlay .field-label{font-size:10px!important;margin-bottom:3px!important}
.mobile-vehicle-registration-overlay .field,
.mobile-vehicle-registration-overlay select,
.mobile-vehicle-registration-overlay input[type="text"],
.mobile-vehicle-registration-overlay input[type="tel"],
.mobile-vehicle-registration-overlay input[type="number"]{min-height:40px!important;padding:7px 8px!important;font-size:14px!important;border-radius:9px!important}
.mobile-vehicle-registration-overlay .vehicle-postcode-search{gap:5px!important}
.mobile-vehicle-registration-overlay .vehicle-postcode-search .btn{min-height:39px!important;font-size:11px!important}
.mobile-vehicle-registration-overlay .vehicle-section-card{margin-top:7px!important;padding:9px!important;border-radius:11px!important}
.mobile-vehicle-registration-overlay .vehicle-section-heading{gap:6px!important;margin-bottom:7px!important;padding-bottom:6px!important}
.mobile-vehicle-registration-overlay .vehicle-section-heading strong{font-size:12px!important}
.mobile-vehicle-registration-overlay .vehicle-section-heading small{font-size:9px!important}
.mobile-vehicle-registration-overlay .vehicle-section-icon{width:28px!important;height:28px!important;flex-basis:28px!important;font-size:12px!important}
.mobile-vehicle-registration-overlay .vehicle-section-action{min-height:38px!important;font-size:11px!important}
.mobile-vehicle-registration-overlay .contract-metric{padding:8px 9px!important;border-radius:8px!important}
.mobile-vehicle-registration-overlay .vehicle-contract-values span,
.mobile-vehicle-registration-overlay .vehicle-contract-values small{font-size:9px!important}
.mobile-vehicle-registration-overlay .vehicle-contract-values strong{font-size:15px!important}
.mobile-vehicle-registration-overlay .vehicle-contract-example{padding:7px 8px!important;font-size:9px!important}
.mobile-vehicle-registration-overlay .vehicle-upload-card{grid-template-columns:32px 1fr!important;padding:8px!important}
.mobile-vehicle-registration-overlay .vehicle-upload-icon{width:32px!important;height:32px!important}
.mobile-vehicle-registration-overlay .vehicle-upload-copy strong{font-size:10px!important}
.mobile-vehicle-registration-overlay .vehicle-upload-copy small{font-size:8px!important}
.mobile-vehicle-registration-overlay .vehicle-upload-card .field-file{min-height:40px!important;font-size:10px!important;padding:5px!important}
.mobile-vehicle-registration-overlay .vehicle-signature-panel canvas{height:112px!important}
.mobile-vehicle-registration-overlay .vehicle-consent-row{padding:9px!important;font-size:10px!important}
.mobile-vehicle-registration-overlay .vehicle-consent-row input{width:18px!important;height:18px!important;flex-basis:18px!important}
.mobile-vehicle-registration-overlay .modal-actions{gap:6px!important;margin-top:10px!important;padding-top:8px!important}
.mobile-vehicle-registration-overlay .modal-actions .btn{min-height:42px!important;border-radius:10px!important;font-size:11px!important}


/* ============================================================
   v1.0.16 - ultra-compact mobile registration + existing customer vehicle add
   ============================================================ */
#ui-modal-overlay.mobile-registration-overlay .customer-registration-modal.mobile-registration-panel .modal-body{padding:7px 10px 60px!important}
#ui-modal-overlay.mobile-registration-overlay .customer-registration-modal .registration-progress{margin:0 0 8px!important;padding:5px 7px!important;border-radius:10px!important;gap:4px!important}
#ui-modal-overlay.mobile-registration-overlay .registration-step{min-height:32px!important;padding:3px 5px!important;border-radius:8px!important;gap:4px!important}
#ui-modal-overlay.mobile-registration-overlay .registration-step span{width:24px!important;height:24px!important;flex-basis:24px!important;font-size:8px!important}
#ui-modal-overlay.mobile-registration-overlay .registration-step strong{font-size:9px!important}
#ui-modal-overlay.mobile-registration-overlay .wizard-section-head{margin-bottom:5px!important;padding-bottom:5px!important}
#ui-modal-overlay.mobile-registration-overlay .wizard-section-head>strong{font-size:14px!important;line-height:1.2!important}
#ui-modal-overlay.mobile-registration-overlay .wizard-section-head>span{margin-top:2px!important;font-size:9px!important;line-height:1.25!important}
#ui-modal-overlay.mobile-registration-overlay .form-stack{gap:5px!important}
#ui-modal-overlay.mobile-registration-overlay .form-grid,#ui-modal-overlay.mobile-registration-overlay .customer-basic-grid,#ui-modal-overlay.mobile-registration-overlay .registration-step-form .customer-step-grid,#ui-modal-overlay.mobile-registration-overlay .power-step-grid,#ui-modal-overlay.mobile-registration-overlay .form-grid-2,#ui-modal-overlay.mobile-registration-overlay .consent-meta-grid{gap:5px 7px!important}
#ui-modal-overlay.mobile-registration-overlay .field-label,#ui-modal-overlay.mobile-registration-overlay .field-label-with-help{margin-bottom:2px!important;font-size:10px!important;line-height:1.15!important}
#ui-modal-overlay.mobile-registration-overlay .field,#ui-modal-overlay.mobile-registration-overlay input:not([type="checkbox"]):not([type="radio"]):not([type="file"]),#ui-modal-overlay.mobile-registration-overlay select,#ui-modal-overlay.mobile-registration-overlay textarea{min-height:34px!important;height:34px!important;padding:5px 7px!important;border-radius:7px!important;font-size:12px!important;line-height:1.15!important}
#ui-modal-overlay.mobile-registration-overlay textarea,#ui-modal-overlay.mobile-registration-overlay textarea.field{height:auto!important;min-height:50px!important}
#ui-modal-overlay.mobile-registration-overlay .country-phone-prefix{min-height:34px!important;height:34px!important;padding:0 7px!important;font-size:10px!important}
#ui-modal-overlay.mobile-registration-overlay .wizard-subsection,#ui-modal-overlay.mobile-registration-overlay .evidence-panel,#ui-modal-overlay.mobile-registration-overlay .consent-confirmation-panel,#ui-modal-overlay.mobile-registration-overlay .power-entry-method{padding:6px!important;border-radius:8px!important;margin-top:2px!important}
#ui-modal-overlay.mobile-registration-overlay .postcode-search-field{grid-template-columns:minmax(0,1fr) auto!important;gap:4px!important}
#ui-modal-overlay.mobile-registration-overlay .postcode-search-btn{width:auto!important;min-height:34px!important;padding:4px 7px!important;border-radius:7px!important;font-size:9px!important}
#ui-modal-overlay.mobile-registration-overlay .address-search-help{font-size:8px!important;line-height:1.2!important;margin-top:1px!important}
#ui-modal-overlay.mobile-registration-overlay .consent-preview-btn{min-height:32px!important;font-size:9px!important;margin-top:2px!important}
#ui-modal-overlay.mobile-registration-overlay .consent-final-check{padding:6px!important;font-size:9px!important;line-height:1.25!important}
#ui-modal-overlay.mobile-registration-overlay .check-row input[type="checkbox"],#ui-modal-overlay.mobile-registration-overlay .site-contact-sync input[type="checkbox"]{width:15px!important;height:15px!important;min-width:15px!important}
#ui-modal-overlay.mobile-registration-overlay .sticky-actions{gap:5px!important;margin-top:5px!important;padding:5px 0 0!important}
#ui-modal-overlay.mobile-registration-overlay .sticky-actions .btn{min-height:36px!important;font-size:10px!important;border-radius:8px!important}

#ui-modal-overlay.mobile-vehicle-registration-overlay .modal-header{min-height:46px!important;padding:7px 10px!important}
#ui-modal-overlay.mobile-vehicle-registration-overlay .modal-header h3{font-size:13px!important}
#ui-modal-overlay.mobile-vehicle-registration-overlay .modal-body{padding:7px 10px 62px!important}
#ui-modal-overlay.mobile-vehicle-registration-overlay .access-policy-note{margin:0 0 5px!important;padding:5px 7px!important;font-size:8.5px!important;line-height:1.3!important;border-radius:7px!important}
#ui-modal-overlay.mobile-vehicle-registration-overlay .wizard-section-head{margin:4px 0 5px!important;padding:0 0 4px!important}
#ui-modal-overlay.mobile-vehicle-registration-overlay .wizard-section-head strong{font-size:14px!important}
#ui-modal-overlay.mobile-vehicle-registration-overlay .wizard-section-head span{font-size:8.5px!important;line-height:1.25!important;margin-top:1px!important}
#ui-modal-overlay.mobile-vehicle-registration-overlay .vehicle-application-form{gap:5px!important}
#ui-modal-overlay.mobile-vehicle-registration-overlay .vehicle-customer-basic-grid,#ui-modal-overlay.mobile-vehicle-registration-overlay .vehicle-info-compact-grid{gap:5px 7px!important}
#ui-modal-overlay.mobile-vehicle-registration-overlay .field-label{font-size:9.5px!important;margin-bottom:2px!important;line-height:1.15!important}
#ui-modal-overlay.mobile-vehicle-registration-overlay .field,#ui-modal-overlay.mobile-vehicle-registration-overlay select,#ui-modal-overlay.mobile-vehicle-registration-overlay input:not([type="checkbox"]):not([type="file"]),#ui-modal-overlay.mobile-vehicle-registration-overlay textarea{min-height:34px!important;height:34px!important;padding:5px 7px!important;font-size:12px!important;line-height:1.15!important;border-radius:7px!important}
#ui-modal-overlay.mobile-vehicle-registration-overlay textarea{height:auto!important;min-height:48px!important}
#ui-modal-overlay.mobile-vehicle-registration-overlay .vehicle-postcode-search{grid-template-columns:minmax(0,1fr) auto!important;gap:4px!important}
#ui-modal-overlay.mobile-vehicle-registration-overlay .vehicle-postcode-search .btn{min-width:auto!important;min-height:34px!important;padding:4px 7px!important;font-size:9px!important;border-radius:7px!important}
#ui-modal-overlay.mobile-vehicle-registration-overlay .vehicle-section-card{margin-top:5px!important;padding:6px!important;border-radius:8px!important}
#ui-modal-overlay.mobile-vehicle-registration-overlay .vehicle-section-heading{gap:5px!important;margin-bottom:5px!important;padding-bottom:4px!important}
#ui-modal-overlay.mobile-vehicle-registration-overlay .vehicle-section-heading strong{font-size:11px!important}
#ui-modal-overlay.mobile-vehicle-registration-overlay .vehicle-section-heading small{font-size:8px!important;line-height:1.2!important}
#ui-modal-overlay.mobile-vehicle-registration-overlay .vehicle-section-icon{width:24px!important;height:24px!important;flex-basis:24px!important;font-size:10px!important;border-radius:7px!important}
#ui-modal-overlay.mobile-vehicle-registration-overlay .vehicle-section-action{min-height:30px!important;padding:3px 6px!important;font-size:8.5px!important}
#ui-modal-overlay.mobile-vehicle-registration-overlay .contract-metric{padding:5px 6px!important;border-radius:7px!important}
#ui-modal-overlay.mobile-vehicle-registration-overlay .vehicle-contract-values{gap:4px!important}
#ui-modal-overlay.mobile-vehicle-registration-overlay .vehicle-contract-values span,#ui-modal-overlay.mobile-vehicle-registration-overlay .vehicle-contract-values small{font-size:7.5px!important}
#ui-modal-overlay.mobile-vehicle-registration-overlay .vehicle-contract-values strong{font-size:12px!important;margin-top:1px!important}
#ui-modal-overlay.mobile-vehicle-registration-overlay .vehicle-contract-example{padding:5px 6px!important;font-size:8px!important;line-height:1.25!important}
#ui-modal-overlay.mobile-vehicle-registration-overlay .vehicle-upload-card{grid-template-columns:26px 1fr!important;gap:5px!important;padding:5px!important;border-radius:7px!important}
#ui-modal-overlay.mobile-vehicle-registration-overlay .vehicle-upload-icon{width:26px!important;height:26px!important;border-radius:6px!important}
#ui-modal-overlay.mobile-vehicle-registration-overlay .vehicle-upload-copy strong{font-size:9px!important}
#ui-modal-overlay.mobile-vehicle-registration-overlay .vehicle-upload-copy small{font-size:7px!important}
#ui-modal-overlay.mobile-vehicle-registration-overlay .vehicle-upload-card .field-file{min-height:32px!important;padding:3px!important;font-size:8px!important}
#ui-modal-overlay.mobile-vehicle-registration-overlay .vehicle-consent-row{gap:6px!important;padding:5px 6px!important;font-size:8.5px!important;line-height:1.25!important}
#ui-modal-overlay.mobile-vehicle-registration-overlay .vehicle-consent-row input{width:15px!important;height:15px!important;flex-basis:15px!important}
#ui-modal-overlay.mobile-vehicle-registration-overlay .vehicle-consent-row b{font-size:9px!important}.mobile-vehicle-registration-overlay .vehicle-consent-row small{font-size:7.5px!important}
#ui-modal-overlay.mobile-vehicle-registration-overlay .vehicle-signature-head{gap:5px!important;margin-bottom:4px!important}
#ui-modal-overlay.mobile-vehicle-registration-overlay .vehicle-signature-guide{font-size:8px!important}
#ui-modal-overlay.mobile-vehicle-registration-overlay .vehicle-signature-panel canvas{height:82px!important}
#ui-modal-overlay.mobile-vehicle-registration-overlay .vehicle-signature-actions{margin-top:4px!important;font-size:8px!important}
#ui-modal-overlay.mobile-vehicle-registration-overlay .modal-actions{gap:5px!important;margin-top:5px!important;padding-top:5px!important}
#ui-modal-overlay.mobile-vehicle-registration-overlay .modal-actions .btn{min-height:36px!important;font-size:10px!important;border-radius:8px!important}

.mobile-vehicle-mode-menu{display:grid;gap:7px}.mobile-vehicle-mode-card{display:grid;grid-template-columns:34px 1fr 14px;align-items:center;gap:8px;width:100%;padding:9px;border:1px solid #d9e2eb;border-radius:10px;background:#fff;text-align:left;color:#1d2c3a}.mobile-vehicle-mode-card .mode-icon{display:grid;place-items:center;width:34px;height:34px;border-radius:9px;background:#eaf2ff;color:#3567bb}.mobile-vehicle-mode-card strong{display:block;font-size:11px}.mobile-vehicle-mode-card small{display:block;margin-top:2px;color:#74808d;font-size:8.5px;line-height:1.3}.mobile-vehicle-mode-menu>.btn{min-height:36px!important;font-size:10px!important}
.mobile-existing-vehicle-flow{display:grid;gap:7px}.mobile-customer-search{position:relative}.mobile-customer-search>i{position:absolute;left:9px;top:50%;transform:translateY(-50%);font-size:10px;color:#758292}.mobile-customer-search .field{padding-left:26px!important}.mobile-existing-customer-list{display:grid;gap:5px}.mobile-existing-customer-card{display:grid;grid-template-columns:minmax(0,1fr) auto 12px;align-items:center;gap:7px;width:100%;padding:7px 8px;border:1px solid #dde5ec;border-radius:8px;background:#fff;text-align:left;color:#20303f}.mobile-existing-customer-card strong,.mobile-existing-customer-card b{display:block;font-size:10px}.mobile-existing-customer-card small{display:block;margin-top:1px;color:#7c8792;font-size:7.5px;line-height:1.25}.mobile-existing-customer-card>span:nth-child(2){text-align:right;white-space:nowrap}


/* ============================================================
   v1.0.16 - vehicle address same-row + three-up attachment cards
   ============================================================ */
/* Customer address / detail address: one row, two equal columns. */
.mobile-vehicle-registration-overlay .vehicle-customer-basic-grid .vehicle-address-main,
.mobile-vehicle-registration-overlay .vehicle-customer-basic-grid .vehicle-address-detail{
  grid-column:auto!important;
  min-width:0!important;
}
.mobile-vehicle-registration-overlay .vehicle-address-main .field,
.mobile-vehicle-registration-overlay .vehicle-address-detail .field{
  width:100%!important;
  min-width:0!important;
}

/* Vehicle document cards: always three cards in one row on normal mobile widths. */
.mobile-vehicle-registration-overlay .vehicle-document-grid.refined{
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:5px!important;
}
.mobile-vehicle-registration-overlay .vehicle-upload-card{
  grid-template-columns:1fr!important;
  align-content:start!important;
  gap:4px!important;
  min-width:0!important;
  padding:6px!important;
  border-radius:8px!important;
}
.mobile-vehicle-registration-overlay .vehicle-upload-icon{
  width:24px!important;
  height:24px!important;
  margin:0 auto!important;
  border-radius:7px!important;
  font-size:10px!important;
}
.mobile-vehicle-registration-overlay .vehicle-upload-copy{
  align-items:center!important;
  gap:1px!important;
  text-align:center!important;
}
.mobile-vehicle-registration-overlay .vehicle-upload-copy strong{
  font-size:9px!important;
  line-height:1.15!important;
  white-space:normal!important;
}
.mobile-vehicle-registration-overlay .vehicle-upload-copy small{
  font-size:7px!important;
  line-height:1.1!important;
}
.mobile-vehicle-registration-overlay .vehicle-upload-card .field-file{
  grid-column:auto!important;
  width:100%!important;
  min-width:0!important;
  min-height:30px!important;
  padding:2px!important;
  border-radius:6px!important;
  font-size:8px!important;
}
.mobile-vehicle-registration-overlay .vehicle-upload-card .field-file::file-selector-button{
  display:block!important;
  width:100%!important;
  margin:0 0 2px!important;
  padding:4px 2px!important;
  border-radius:5px!important;
  font-size:8px!important;
}

@media(max-width:390px){
  /* Keep requested one-row address and three attachment cards even on narrow phones. */
  .mobile-vehicle-registration-overlay .vehicle-customer-basic-grid .vehicle-address-main,
  .mobile-vehicle-registration-overlay .vehicle-customer-basic-grid .vehicle-address-detail{
    grid-column:auto!important;
  }
  .mobile-vehicle-registration-overlay .vehicle-document-grid.refined{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
}


/* ============================================================
   v1.0.16 - corrected address rows + full-width custom attachment controls
   ============================================================ */
/* Row 1: postcode + address-search button. Row 2: address + detail address. */
.mobile-vehicle-registration-overlay .vehicle-customer-basic-grid .vehicle-postcode-cell{
  grid-column:1 / -1!important;
  min-width:0!important;
}
.mobile-vehicle-registration-overlay .vehicle-postcode-cell .vehicle-postcode-search{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  gap:5px!important;
  align-items:stretch!important;
}
.mobile-vehicle-registration-overlay .vehicle-customer-basic-grid .vehicle-address-main,
.mobile-vehicle-registration-overlay .vehicle-customer-basic-grid .vehicle-address-detail{
  grid-column:auto!important;
  min-width:0!important;
}

/* Replace cramped native file control with a card-filling custom control. */
.mobile-vehicle-registration-overlay .vehicle-upload-card{
  position:relative!important;
  display:flex!important;
  flex-direction:column!important;
  align-items:stretch!important;
  justify-content:flex-start!important;
  min-height:104px!important;
  overflow:hidden!important;
}
.mobile-vehicle-registration-overlay .vehicle-file-native{
  position:absolute!important;
  width:1px!important;
  height:1px!important;
  opacity:0!important;
  pointer-events:none!important;
}
.mobile-vehicle-registration-overlay .vehicle-file-control{
  display:flex!important;
  flex:1 1 auto!important;
  min-width:0!important;
  flex-direction:column!important;
  justify-content:flex-end!important;
  gap:3px!important;
  width:100%!important;
  margin-top:auto!important;
}
.mobile-vehicle-registration-overlay .vehicle-file-button{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:100%!important;
  min-height:26px!important;
  padding:4px 3px!important;
  border:1px solid #cbd6e0!important;
  border-radius:6px!important;
  background:#f8fafc!important;
  color:#2d465a!important;
  font-size:8.5px!important;
  font-weight:800!important;
  line-height:1.1!important;
  white-space:nowrap!important;
}
.mobile-vehicle-registration-overlay .vehicle-file-name{
  display:block!important;
  width:100%!important;
  min-height:18px!important;
  color:#6f7d89!important;
  font-size:7.5px!important;
  line-height:1.18!important;
  text-align:center!important;
  white-space:normal!important;
  overflow-wrap:anywhere!important;
  word-break:break-word!important;
}

/* ============================================================
   v1.0.16 - vehicle duplicate gate + reliable mobile address search
   ============================================================ */
.mobile-vehicle-registration-overlay .vehicle-duplicate-check-row{
  grid-column:1 / -1!important;
  display:grid!important;
  grid-template-columns:auto minmax(0,1fr)!important;
  align-items:stretch!important;
  gap:5px!important;
  min-width:0!important;
}
.mobile-vehicle-registration-overlay .vehicle-duplicate-check-row>[data-vehicle-duplicate-check]{
  min-height:34px!important;
  padding:4px 9px!important;
  border-radius:7px!important;
  font-size:9px!important;
  font-weight:800!important;
  white-space:nowrap!important;
}
.mobile-vehicle-registration-overlay .vehicle-duplicate-status{
  display:flex!important;
  align-items:center!important;
  gap:5px!important;
  min-width:0!important;
  min-height:34px!important;
  padding:5px 7px!important;
  border:1px solid #d7e0e8!important;
  border-radius:7px!important;
  background:#f8fafc!important;
  color:#657483!important;
  font-size:8.5px!important;
  line-height:1.25!important;
}
.mobile-vehicle-registration-overlay .vehicle-duplicate-status span{min-width:0!important;overflow-wrap:anywhere!important}
.mobile-vehicle-registration-overlay .vehicle-duplicate-status.pending{background:#f8fafc!important;color:#667788!important}
.mobile-vehicle-registration-overlay .vehicle-duplicate-status.success{border-color:#b9ddc6!important;background:#effaf3!important;color:#247042!important}
.mobile-vehicle-registration-overlay .vehicle-duplicate-status.warning{border-color:#ead59c!important;background:#fff9e8!important;color:#795d1e!important}
.mobile-vehicle-registration-overlay .vehicle-duplicate-status.duplicate{border-color:#e6bcbc!important;background:#fff3f3!important;color:#8c3333!important}
.mobile-vehicle-registration-overlay [data-duplicate-gate-locked="1"]{
  cursor:not-allowed!important;
}
.mobile-vehicle-registration-overlay .vehicle-application-form[data-duplicate-verified="0"] .wizard-section-head:nth-of-type(n+2),
.mobile-vehicle-registration-overlay .vehicle-application-form[data-duplicate-verified="0"] .vehicle-info-compact-grid,
.mobile-vehicle-registration-overlay .vehicle-application-form[data-duplicate-verified="0"] .vehicle-section-card{
  opacity:.58;
}
@media(max-width:360px){
  .mobile-vehicle-registration-overlay .vehicle-duplicate-check-row{
    grid-template-columns:1fr!important;
  }
}
\n\n/* ============================================================
   v1.0.16 - duplicate precheck usability + compact postcode + vehicle row
   ============================================================ */
/* Allow the user to enter both telephone fields before duplicate verification. */
.mobile-vehicle-registration-overlay .vehicle-application-form[data-duplicate-verified="0"] input[name="landline_phone"]{
  opacity:1!important;
  cursor:text!important;
}

/* Postcode is only five digits: keep the field compact and keep search beside it. */
.mobile-vehicle-registration-overlay .vehicle-customer-basic-grid .vehicle-postcode-cell{
  grid-column:1 / -1!important;
}
.mobile-vehicle-registration-overlay .vehicle-postcode-cell .vehicle-postcode-search{
  display:grid!important;
  grid-template-columns:82px auto!important;
  justify-content:start!important;
  width:max-content!important;
  max-width:100%!important;
  gap:5px!important;
}
.mobile-vehicle-registration-overlay .vehicle-postcode-cell input[name="postal_code"]{
  width:82px!important;
  min-width:82px!important;
  max-width:82px!important;
}

/* Vehicle status + vehicle category share the first row as two equal columns. */
.mobile-vehicle-registration-overlay .vehicle-info-compact-grid{
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
}
.mobile-vehicle-registration-overlay .vehicle-info-compact-grid > div:first-child,
.mobile-vehicle-registration-overlay .vehicle-info-compact-grid .vehicle-category-cell{
  grid-column:auto!important;
  min-width:0!important;
}
.mobile-vehicle-registration-overlay .vehicle-info-compact-grid .vehicle-wide-row{
  grid-column:1 / -1!important;
}
@media(max-width:390px){
  .mobile-vehicle-registration-overlay .vehicle-info-compact-grid{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  .mobile-vehicle-registration-overlay .vehicle-info-compact-grid > div:first-child,
  .mobile-vehicle-registration-overlay .vehicle-info-compact-grid .vehicle-category-cell{
    grid-column:auto!important;
  }
  .mobile-vehicle-registration-overlay .vehicle-info-compact-grid .vehicle-wide-row{
    grid-column:1 / -1!important;
  }
}

/* ============================================================
   v1.0.16 - permission-scoped server search for CRM/mobile vehicle customers
   ============================================================ */
.mobile-customer-source-badge {
  display: inline-flex;
  align-items: center;
  min-height: 18px;
  padding: 1px 6px;
  border-radius: 999px;
  font-size: 9px;
  font-weight: 800;
  line-height: 1.2;
  vertical-align: middle;
}
.mobile-customer-source-badge.crm { background:#e8f0ff; color:#254f9b; }
.mobile-customer-source-badge.mobile { background:#e8f7ee; color:#236940; }
