body { background: #f5f7fa; color: #182334; }
.app-width { max-width: 1600px; }
h1 { font-size: 1.7rem; font-weight: 650; margin-bottom: 1rem; overflow-wrap: anywhere; }
h2 { font-size: 1.1rem; font-weight: 650; margin-bottom: 1rem; }
a { text-underline-offset: .2em; }
.card { border-color: #dce2e9; border-radius: .7rem; }
.login-card { max-width: 440px; margin-top: 5vh; }
.form-card { max-width: 760px; }
.source-form label { display: block; font-weight: 600; margin-bottom: .35rem; }
.source-form input:not([type=hidden]), .source-form select, .source-form textarea {
  display: block; width: 100%; padding: .55rem .7rem; color: #182334;
  background: white; border: 1px solid #abb7c5; border-radius: .375rem;
}
.source-form textarea { min-height: 6rem; max-height: 18rem; }
.source-form input:focus, .source-form select:focus, .source-form textarea:focus {
  outline: 3px solid #b6d4fe; outline-offset: 1px; border-color: #0d6efd;
}
.source-form [aria-invalid=true] { border-color: #b02a37; }
.errorlist { color: #b02a37; padding-left: 1.25rem; }
.helptext { font-size: .875rem; color: #526173; margin-top: .3rem; }
.order-table { min-width: 1350px; font-size: .875rem; margin-bottom: 0; }
.order-table th { white-space: nowrap; background: #eef2f6; padding-block: 1rem; }
.order-table td { vertical-align: middle; }
.order-table td:first-child { min-width: 130px; font-weight: 600; }
.data-grid { display: grid; grid-template-columns: minmax(130px, 1fr) minmax(0, 2fr); gap: .5rem 1rem; }
.data-grid dt { font-weight: 500; color: #526173; }
.data-grid dd { margin: 0; overflow-wrap: anywhere; }
.actions { display: flex; align-items: center; flex-wrap: wrap; gap: .75rem; }
@media (max-width: 575px) {
  .data-grid { grid-template-columns: 1fr; gap: .2rem; }
  .data-grid dd { margin-bottom: .75rem; }
}

/* Owner status list colours (same idea as the AppSheet "TT ..." format rules). */
.team-status { display: inline-block; padding: 0.1rem 0.5rem; border-radius: 999px; font-weight: 600; font-size: 0.85rem; background: #eef0f4; color: #475467; }
.team-status-new { background: #f1eaff; color: #6d28d9; }
.team-status-on_sheet { background: #e7efff; color: #1d4ed8; }
.team-status-tracked { background: #dff4f3; color: #0e6b73; }
.team-status-delivered { background: #e6f6ee; color: #087443; }
.team-status-cancelled, .team-status-refunded { background: #fdeceb; color: #b42318; }
.team-status-case_warranty, .team-status-case_receive, .team-status-case_payment, .team-status-case_return { background: #fff3dc; color: #9a5b00; }
