/* Bootstrap supplies components and layout. These tokens retain property branding. */
:root { color-scheme: light; --brand: #2466a6; --brand-ink: #fff; --ink: var(--bs-body-color); --muted: var(--bs-secondary-color); --line: var(--bs-border-color); }
body { min-width: 320px; }
[hidden] { display: none !important; }
.btn-primary { --bs-btn-bg: var(--brand); --bs-btn-border-color: var(--brand); --bs-btn-color: var(--brand-ink); --bs-btn-hover-bg: var(--brand); --bs-btn-hover-border-color: var(--brand); --bs-btn-hover-color: var(--brand-ink); --bs-btn-active-bg: var(--brand); --bs-btn-active-border-color: var(--brand); --bs-btn-active-color: var(--brand-ink); --bs-btn-disabled-bg: var(--brand); --bs-btn-disabled-border-color: var(--brand); --bs-btn-disabled-color: var(--brand-ink); }
.btn-primary:hover { filter: brightness(.92); }
.btn { white-space: normal; }
.form-label { font-size: .875rem; font-weight: 500; }
.form-label > .form-control, .form-label > .form-select, .form-label > .input-group { margin-top: .4rem; }
.form-check-input { flex-shrink: 0; }
.form-error:empty, .signup-error:empty { display: none; }
.form-control, .form-select, .card, .row > * { min-width: 0; }
.icon-button { min-width: 2.4rem; }
button:disabled { cursor: default; }
form[inert] { opacity: .6; }
[data-property-logo] { width: auto; max-width: 150px; max-height: 52px; object-fit: contain; }
.property-brand { display: flex; align-items: center; gap: 12px; min-width: 0; }
.property-brand h1 { overflow-wrap: anywhere; }

/* Keep zoom available while making touch controls comfortable on small screens. */
@media screen and (max-width: 767px), screen and (pointer: coarse) {
  .btn { min-height: 44px; min-width: 44px; }
  .btn-close { flex-shrink: 0; min-width: 44px; min-height: 44px; box-sizing: border-box; padding: 12px; }
  .form-control, .form-select { font-size: 16px; min-height: 44px; }
  .form-control[type="date"] { width: 100%; max-width: 100%; min-width: 0; }
  .form-check-input { width: 20px; height: 20px; }
  .form-check { padding-block: .5rem; }
  .form-check-label, label:has(> .form-check-input), summary { min-height: 44px; }
  label:has(> .form-check-input) { align-content: center; }
  summary { padding-block: .65rem; }
  .cost-summary { grid-template-columns: minmax(0, 1fr) minmax(0, auto); }
  .cost-summary dd { overflow-wrap: anywhere; }
}

/* One platform release badge, controlled by the administrator on every page. */
.site-stage { flex: 0 0 auto; align-self: center; background: #fff0e5; color: #87370b; border: 1px solid #efc7aa; font-size: .6rem; letter-spacing: .08em; line-height: 1.25; }
.site-stage[data-stage="BETA"] { background: #e0f5fd; color: #13779e; border-color: #a8def4; }
