
/* V3.69 | unified dark-portal contrast audit
   Scoped to the signed-in portal; login/signup remain unchanged. */
#app{--rn-surface:#10243f;--rn-surface-2:#172f4e;--rn-line:rgba(173,204,239,.44);--rn-white:#f5f9ff;--rn-muted:#bed0e5;color:var(--rn-white)}
#app main .load-documents,
#app main .document-row,
#app main .document-empty,
#app main .document-icon,
#app main .document-thumb,
#app main .load-collapse-head,
#app main .load-expanded,
#app main .tracking-history,
#app main .address-notes,
#app main .address-picker-label,
#app main .carrier-ops-panel,
#app main .carrier-ops-grid>div,
#app main .carrier-request-status,
#app main .request-note,
#app main .finance-filters,
#app main .filtered-finance-summary,
#app main .finance-route-stop,
#app main .destination-kpi,
#app main .destination-money,
#app main .destination-insight,
#app main .destination-disclosure,
#app main .destination-load,
#app main .destination-route span,
#app main .destination-search-grid,
#app main .portal-users-head,
#app main .password-requirements,
#app main .bol-import-panel,
#app main .bol-import-status,
#app main .stop-edit,
#app main .stop-edit .hours-field,
#app main .customer-summary .latest-update,
#app main .customer-summary .next-stop,
#app main .rn-quick-actions button,
#app main .rn-highlight-update,
#app main .rn-appointment,
#app main .command-panel,
#app main .command-row,
#app main .command-metric,
#app main .command-load-card,
#app main .command-next,
#app main .command-empty,
#app main .command-route span,
#app main .command-load-facts span,
#app main .insight-kpi,
#app main .insight-mix-numbers>div,
#app main .insight-note {
  background:rgba(17,37,65,.88)!important;
  border-color:var(--rn-line)!important;
  color:var(--rn-white)!important;
  text-shadow:none!important;
}
#app main .document-copy,
#app main .document-copy b,
#app main .document-copy span,
#app main .document-icon,
#app main .document-thumb,
#app main .load-documents-head,
#app main .load-documents-head b {color:var(--rn-white)!important;opacity:1!important}
#app main .document-copy small,
#app main .document-upload small,
#app main .document-empty,
#app main .document-thumb span {color:var(--rn-muted)!important;opacity:1!important}
#app main .document-row{min-height:66px}
#app main .document-icon,#app main .document-thumb{background:#254769!important;color:#e6f3ff!important}
#app main .pod-available,#app main .pod-mini{background:#11573f!important;color:#edfff6!important;border:1px solid #59d7a3!important;opacity:1!important}
#app main .document-actions button.secondary,
#app main .document-actions button.view-document,
#app main .document-upload button.upload-document{background:#245b90!important;color:#fff!important;border:1px solid #8abfec!important;opacity:1!important}
#app main .document-actions button.danger,
#app main .document-actions button.delete-document,
#app main .card-actions button.danger,
#app main .delete{background:#982b38!important;color:#fff!important;border:1px solid #f47c8b!important;opacity:1!important}
#app main .document-actions button:hover,
#app main .document-upload button:hover{filter:brightness(1.14)}
#app main .document-upload input,
#app main .document-upload select,
#app main .destination-search-grid input,
#app main .destination-search-grid select,
#app main input:not([type=checkbox]):not([type=radio]),
#app main select,
#app main textarea{
  background:#112844!important;
  color:#f5f9ff!important;
  border:1px solid #83a7ce!important;
  opacity:1!important;
  color-scheme:dark;
}
#app main input[type=file]::file-selector-button,
#app main input[type=file]::-webkit-file-upload-button{
  background:#315b88!important;color:#fff!important;border:1px solid #93bce7!important;
  border-radius:6px;padding:6px 10px;margin-right:10px;cursor:pointer;
}
#app select option,
#app select optgroup,
dialog select option,
dialog select optgroup{background:#10243f!important;color:#fff!important}
#app main input::placeholder,#app main textarea::placeholder{color:#b5cbe2!important;opacity:1!important}
#app main input:disabled,#app main select:disabled,#app main textarea:disabled{opacity:.75!important;color:#c7d7e9!important}
#app main .finance-table th,
#app main .finance-table td,
#app main .finance-table tbody tr,
#app main .destination-load:hover,
#app main .command-row:hover,
#app main .command-load-card:hover{
  background:rgba(19,43,73,.92)!important;color:#f2f8ff!important;border-color:var(--rn-line)!important
}
#app main .stop-seq,
#app main .timeline-marker,
#app main .rn-appointment-number,
#app main .rn-appointment-status,
#app main .latest-icon{background:#284e78!important;color:#fff!important;border-color:#8ab9e9!important}
#app main .badge.user-active{background:#0d6547!important;color:#f0fff8!important}
#app main .badge.user-pending{background:#81531a!important;color:#fff6e4!important}
#app main .badge.user-disabled{background:#4b5567!important;color:#fff!important}
#app main .ops-alert,#app main .ops-alert.overdue,
#app main .customer-approach,#app main .public-note{
  background:#293c5b!important;color:#fff!important;border:1px solid #a0b8d6!important
}
#app main .ops-alert *,#app main .customer-approach *,#app main .public-note *{color:#fff!important}
#app main .rn-tile-icon.purple{background:#63319d!important;color:#fff!important}
#app main .rn-tile-icon.pink{background:#963a75!important;color:#fff!important}
#app main .rn-tile-icon.green{background:#147a58!important;color:#fff!important}
#app main .rn-tile-icon.blue{background:#2166b0!important;color:#fff!important}
#app main .secondary,
#app main .ghost,
#app main .theme-choice button{background:#244c77!important;color:#fff!important;border:1px solid #83b4e7!important}
#app main .secondary:hover,#app main .ghost:hover,#app main .theme-choice button:hover{background:#31689d!important}
#app main .theme-choice button.active{background:#176fbd!important;color:#fff!important}
#app main .address-picker-label{color:#f4faff!important}
#app main .destination-route span.match{background:#235b87!important;color:#fff!important;border-color:#90c8f7!important}
/* Forms and native dropdowns inside dialogs use the same dark palette. */
dialog,dialog form,dialog .stop-edit,dialog .password-requirements{
  background:#10243f!important;color:#f5f9ff!important;border-color:#6e93bc!important;
}
dialog input,dialog select,dialog textarea{
  background:#132b48!important;color:#fff!important;border:1px solid #86acd5!important;color-scheme:dark;
}
dialog input::placeholder,dialog textarea::placeholder{color:#bed0e4!important;opacity:1!important}
dialog .secondary,dialog .ghost{background:#285782!important;color:#fff!important;border:1px solid #88b7e7!important}
dialog .danger{background:#962d3c!important;color:#fff!important;border:1px solid #ec7e8d!important}
dialog input[type=file]::file-selector-button{background:#315b88;color:#fff;border:1px solid #93bce7;border-radius:6px;padding:6px 10px}
#app :is(button,input,select,textarea):focus-visible,dialog :is(button,input,select,textarea):focus-visible{outline:2px solid #72c5ff!important;outline-offset:2px!important}
@media(max-width:850px){#app main .document-row{gap:10px}#app main .document-actions{justify-content:flex-start}}

/* V3.70: status-colored load ROWS, not just the status pills.
   Applies to Active Loads and Load History; keeps the dark glass palette. */
#app main .load-card.load-status-in_transit,
#app main .load-card.load-status-in_transit .load-collapse-head,
#app main .load-card.load-status-in_transit.is-open .load-collapse-head {
  background:rgba(19,90,158,.48)!important;
  border-color:rgba(75,174,255,.68)!important;
}
#app main .load-card.load-status-delivered,
#app main .load-card.load-status-delivered .load-collapse-head,
#app main .load-card.load-status-delivered.is-open .load-collapse-head {
  background:rgba(13,111,77,.46)!important;
  border-color:rgba(63,220,147,.68)!important;
}
#app main .load-card.load-status-scheduled,
#app main .load-card.load-status-scheduled .load-collapse-head,
#app main .load-card.load-status-scheduled.is-open .load-collapse-head,
#app main .load-card.load-status-booked,
#app main .load-card.load-status-booked .load-collapse-head {
  background:rgba(135,77,18,.44)!important;
  border-color:rgba(255,175,65,.70)!important;
}
#app main .load-card.load-status-planned,
#app main .load-card.load-status-planned .load-collapse-head,
#app main .load-card.load-status-planned.is-open .load-collapse-head {
  background:rgba(45,62,84,.48)!important;
  border-color:rgba(154,183,218,.53)!important;
}
#app main .load-card.load-status-at_pickup,
#app main .load-card.load-status-at_pickup .load-collapse-head,
#app main .load-card.load-status-at_delivery,
#app main .load-card.load-status-at_delivery .load-collapse-head {
  background:rgba(91,50,137,.46)!important;
  border-color:rgba(186,127,248,.66)!important;
}
#app main .load-card.load-status-cancelled,
#app main .load-card.load-status-cancelled .load-collapse-head {
  background:rgba(100,39,52,.40)!important;
  border-color:rgba(224,113,133,.57)!important;
}
/* Preserve readability of detailed information when expanded. */
#app main .load-card .load-expanded {background:rgba(13,28,50,.84)!important;}
#app main .load-card.load-status-in_transit {border-left:5px solid #31a9ff!important}
#app main .load-card.load-status-delivered {border-left:5px solid #2fdb92!important}
#app main .load-card.load-status-scheduled,
#app main .load-card.load-status-booked {border-left:5px solid #ffaf42!important}
#app main .load-card.load-status-planned {border-left:5px solid #b2c4db!important}
#app main .load-card.load-status-at_pickup,
#app main .load-card.load-status-at_delivery {border-left:5px solid #bb83ff!important}
#app main .load-card .load-collapse-head:hover {filter:brightness(1.15);}
