/* Public-site branding and app-specific details; Bootstrap handles components. */
.public-site {
  --logo-blue: #3cb5e6;
  --logo-orange: #dc631a;
  --brand: var(--logo-blue);
  --brand-ink: #102c3d;
  --bs-body-bg: #f3faff;
  --bs-body-color: #102c3d;
  --bs-secondary-color: #506978;
  --bs-secondary-bg: #e5f2f9;
  --bs-tertiary-bg: #eaf5fc;
  --bs-border-color: #cbdfe9;
  --bs-link-color: #176487;
  --bs-link-color-rgb: 23, 100, 135;
  --bs-link-hover-color: #b4490f;
  --bs-link-hover-color-rgb: 180, 73, 15;
}
.page-shell { max-width: 1440px; }
.wordmark { color: var(--bs-body-color); font-size: 1.5rem; font-weight: 750; letter-spacing: -.04em; }
.site-logo { display: block; width: clamp(130px, 18vw, 180px); max-width: 100%; height: auto; }
.alpha-badge { background: #ffe6d4; color: #87370b; border: 1px solid #efb68f; font-size: .6rem; letter-spacing: .08em; }
.alpha-notice { --bs-alert-bg: #fff0e5; --bs-alert-color: #87370b; --bs-alert-border-color: #efc7aa; font-size: .875rem; }
.launch-label { background: #d8f2fd; color: #145471; border: 1px solid #a8def4; }
.address-preview { --bs-alert-bg: #e3f5fd; --bs-alert-color: #145471; --bs-alert-border-color: #aedff2; }
.public-site .btn-outline-secondary { --bs-btn-color: #176487; --bs-btn-border-color: #7cb9d1; --bs-btn-hover-color: #102c3d; --bs-btn-hover-bg: #d8f2fd; --bs-btn-hover-border-color: #3cb5e6; --bs-btn-active-color: #102c3d; --bs-btn-active-bg: #bde7f8; --bs-btn-active-border-color: #3cb5e6; }
.public-site .form-control:focus, .public-site .form-select:focus { border-color: var(--logo-blue); box-shadow: 0 0 0 .25rem #3cb5e633; }
.public-site .form-check-input:checked { background-color: #176487; border-color: #176487; }
.nav-link { color: var(--bs-body-color); }
.hero h1 { letter-spacing: -.055em; line-height: 1.05; }
.hero h1 span { color: #b4490f; }
.eyebrow, .signup-step { color: var(--muted); font-size: .75rem; }
.signup-step { letter-spacing: .1em; }
.hero .description { max-width: 380px; font-size: 1rem; line-height: 1.6; margin: 16px 0 0; }
.address-example { display: grid; gap: 10px; margin-top: 30px; border-left: 3px solid var(--logo-orange); padding: 8px 0 8px 18px; overflow-wrap: anywhere; }
.address-example span { color: var(--muted); font-size: .65rem; letter-spacing: .1em; }
.address-example strong { font-size: .95rem; font-weight: 500; }
.signup-card, #licenseCustomerPanel, #createProperty { scroll-margin-top: 24px; }
.signup-card p { line-height: 1.65; }
.signup-card .card { --bs-card-bg: #fff; }
.signup-button { display: flex; align-items: center; justify-content: center; gap: 12px; width: 100%; }
.workspace-link { text-decoration: none; overflow-wrap: anywhere; }
.workspace-link:hover { border-color: var(--brand); }
.workspace-link span { color: var(--muted); font-size: .8rem; }
.workspace-link strong { font-size: .95rem; }
.license-card .license-key { color: var(--muted); font-size: .8rem; overflow-wrap: anywhere; }
.license-card dl { display: grid; gap: 12px; margin: 20px 0; }
.license-card dl > div { display: flex; justify-content: space-between; gap: 12px; font-size: .875rem; }
.license-card dt { color: var(--muted); font-weight: 400; }
.license-card dd { margin: 0; font-weight: 600; text-align: right; }
.license-card h4 { font-size: .875rem; margin-top: 18px; }
.license-card ul { font-size: .875rem; overflow-wrap: anywhere; }
.license-card > a, .license-note, #licenseListStatus { font-size: .875rem; }
.license-note, #licenseListStatus { color: var(--muted); }
#portalEmail { overflow-wrap: anywhere; }
#createProperty summary, #assignLicense summary { cursor: pointer; }
#assignLicense > p, #assignLicense > form, #assignLicense > #redeemLicenseStatus { margin: 16px; }
body:not(.signed-in) .create-property { border: 0; margin-block: 0 !important; }
body:not(.signed-in) .create-property summary { display: none; }
body:not(.signed-in) .create-property-content { padding: 0; }
.signed-in .hero, .signed-in .signup-note { display: none; }
.signed-in .create-property-content, #assignLicense .portal-form { max-width: 680px; }
.site-footer p { margin: 0; }
.license-entry { min-width: 0; margin: 0; padding: 0; border: 0; }
.license-entry legend { padding: 0; margin-bottom: 8px; font-size: .875rem; font-weight: 500; }
.license-key-fields { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 8px; }
.license-key-fields .form-control { padding: 10px 3px; text-align: center; font-family: var(--bs-font-monospace); letter-spacing: .03em; font-size: .95rem; }
@media (max-width: 600px) { .wordmark { font-size: 1.3rem; } .hero h1 { font-size: clamp(32px, 8vw, 42px); } .address-example { display: none; } }

@media screen and (max-width: 767px) {
  .site-header { padding-block: 16px !important; }
  .signup-layout { padding-block: 16px !important; }
  .hero .launch-label { margin-bottom: 16px !important; white-space: normal; text-align: left; }
  .hero .description { margin-bottom: 0; }
  .alpha-notice { gap: 12px !important; padding: 12px; }
  .dashboard-nav { flex-wrap: wrap; gap: 4px !important; }
  .dashboard-nav .nav-link { display: flex; align-items: center; min-height: 44px; padding-block: 8px; }
  .license-key-fields { gap: 4px; }
  .license-key-fields .form-control { font-size: 16px; letter-spacing: 0; padding-inline: 1px; }
  .license-card dl > div { flex-wrap: wrap; gap: 4px 12px; }
  .license-card dd { overflow-wrap: anywhere; }
  .subdomain-input { flex-wrap: wrap; }
  .subdomain-input > .form-control { flex: 1 1 120px; }
  .subdomain-input > .input-group-text { max-width: 100%; overflow-wrap: anywhere; white-space: normal; }
  .portal-account { flex-wrap: wrap; }
  #assignLicense > form { margin-inline: 12px; }
}
@media screen and (pointer: coarse) {
  .license-key-fields .form-control { font-size: 16px; }
}
@media screen and (pointer: coarse) {
  .public-site .page-shell { padding-left: max(16px, env(safe-area-inset-left)) !important; padding-right: max(16px, env(safe-area-inset-right)) !important; }
}

body:not(.signed-in) #signupStep { display: none; }
.license-options > summary { cursor: pointer; }
.license-options > summary + p { margin-top: 12px; }
@media (min-width: 992px) {
  body:not(.signed-in) .signup-layout { flex: 1 0 auto; align-content: center; }
}

/* Public page content colors are scoped to this homepage. */
.hero h1 [data-public-text="heroTitle"] { color: inherit; }
.hero h1 [data-public-text="heroHighlight"] { color: var(--public-accent, #b4490f); }
.public-site .card { --bs-body-color: #102c3d; --bs-secondary-color: #506978; color: #102c3d; }
.public-site .hero, #publicAnnouncement { overflow-wrap: anywhere; }
#publicAnnouncement { white-space: pre-line; }

.public-holding { flex: 1 0 auto; display: flex; align-items: center; justify-content: center; min-height: 50vh; }
.public-holding > section { max-width: 580px; overflow-wrap: anywhere; }
.public-holding h1 { letter-spacing: -.045em; color: var(--public-accent, #b4490f); }
