/* Mile I Shipping V87.03 — system-wide readability upgrade
   Typography only: no structural desktop/tablet/mobile layout rules are changed. */

:root {
  --milei-readable-body: 16px;
  --milei-readable-small: 13px;
  --milei-readable-label: 14.5px;
  --milei-readable-control: 16px;
  --milei-readable-line: 1.5;
}

html {
  -webkit-text-size-adjust: 100%;
  text-size-adjust: 100%;
  text-rendering: optimizeLegibility;
}

body {
  font-size: var(--milei-readable-body);
  line-height: var(--milei-readable-line);
}

/* Public website body copy. Navigation sizing remains controlled by the approved header files. */
.public-site main p,
.public-site main li,
.rates-page main p,
.rates-page main li,
.public-site .section-copy,
.rates-page .section-copy,
.public-site footer,
.rates-page footer {
  font-size: 16.5px !important;
  line-height: 1.58 !important;
  font-weight: 480 !important;
}

/* Portal and application copy. */
.portal-body p,
.portal-body li,
.portal-body td,
.portal-body dd,
.portal-body .card-copy,
.portal-body .page-subtitle,
.portal-body .form-result,
.portal-body .helper-text,
.portal-body .empty-state,
.portal-body .notice,
.portal-body .alert,
.portal-body .status-description,
.portal-body [class*="description"],
.portal-body [class*="subtitle"] {
  font-size: 15px !important;
  line-height: 1.5 !important;
  font-weight: 500 !important;
}

.portal-body label,
.portal-body legend,
.portal-body dt,
.portal-body th,
.portal-body .field-label,
.portal-body .table-heading,
.portal-body .portal-nav a,
.portal-body .sidebar-nav a,
.portal-body .tab-button,
.portal-body [role="tab"] {
  font-size: var(--milei-readable-label) !important;
  line-height: 1.35 !important;
  font-weight: 750 !important;
}

.portal-body input,
.portal-body select,
.portal-body textarea,
.portal-body button,
.auth-page input,
.auth-page select,
.auth-page textarea,
.auth-page button {
  font-size: var(--milei-readable-control) !important;
  line-height: 1.35 !important;
}

.portal-body small,
.portal-body .eyebrow,
.portal-body .overline,
.portal-body .meta,
.portal-body .microcopy,
.auth-page small {
  font-size: var(--milei-readable-small) !important;
  line-height: 1.42 !important;
  font-weight: 600 !important;
}

.portal-body .btn,
.portal-body .button,
.portal-body button,
.auth-page .btn,
.auth-page .button {
  font-weight: 750 !important;
  letter-spacing: .01em !important;
}

.portal-body table tbody td,
.portal-body table tbody th {
  font-size: 14.5px !important;
  line-height: 1.42 !important;
}

.portal-body table thead th {
  font-size: 13px !important;
  line-height: 1.35 !important;
  letter-spacing: .045em !important;
}

/* Dialogs and guided help need stronger readability without becoming oversized. */
.portal-modal,
dialog.portal-modal,
.portal-body dialog {
  font-size: 16px !important;
}

.portal-modal h2,
.portal-modal h3,
.portal-body dialog h2,
.portal-body dialog h3 {
  line-height: 1.22 !important;
  letter-spacing: -.012em !important;
}

.portal-modal p,
.portal-modal li,
.portal-modal label,
.portal-body dialog p,
.portal-body dialog li,
.portal-body dialog label {
  line-height: 1.5 !important;
}

.page-guide,
[class*="page-guide"],
[class*="guided-help"] {
  font-size: 16px !important;
  line-height: 1.5 !important;
}

/* Required-field guidance for the Shipment editor. */
.v8703-required-field {
  position: relative;
}

.v8703-required-field::after {
  content: "Required for this status";
  display: inline-flex;
  align-items: center;
  margin-left: 8px;
  padding: 3px 7px;
  border-radius: 999px;
  background: #fff0f1;
  color: #b51f2c;
  font-size: 11px;
  font-weight: 850;
  line-height: 1.2;
  letter-spacing: .025em;
  vertical-align: middle;
}

.v8703-missing-control {
  border-color: #d92332 !important;
  box-shadow: 0 0 0 3px rgba(217,35,50,.12) !important;
  background: #fffafb !important;
}

.v8703-required-summary {
  display: grid;
  gap: 6px;
  margin: 0 0 12px;
  padding: 12px 14px;
  border: 1px solid #f0b4ba;
  border-radius: 12px;
  background: #fff5f6;
  color: #8f1722;
}

.v8703-required-summary strong {
  font-size: 15px !important;
  line-height: 1.35 !important;
}

.v8703-required-summary span {
  font-size: 14px !important;
  line-height: 1.45 !important;
  font-weight: 600 !important;
}

.v8703-status-requirements {
  display: grid;
  gap: 5px;
  margin-top: 8px;
  padding: 10px 12px;
  border-radius: 10px;
  background: #eef6ff;
  color: #274f78;
  font-size: 13.5px !important;
  line-height: 1.45 !important;
  font-weight: 650 !important;
}

@media (max-width: 767px) {
  :root {
    --milei-readable-body: 16px;
    --milei-readable-small: 13px;
    --milei-readable-label: 14px;
    --milei-readable-control: 16px;
  }

  .portal-body p,
  .portal-body li,
  .portal-body td,
  .portal-body dd,
  .portal-body .form-result,
  .portal-body .helper-text {
    font-size: 15px !important;
  }

  .v8703-required-field::after {
    display: block;
    width: max-content;
    margin: 5px 0 0;
  }
}
