/* Public pages keep their own palette and layout. Shared application controls
 * and the mobile font floor are deliberately inherited without overrides. */
[data-public-page] { --public-muted: #9aa9bd; }
[data-public-page] :is(input, textarea)::placeholder { color: var(--public-muted); opacity: 1; }
[data-public-page] :is(button, a, input, select, textarea, [tabindex]):focus-visible {
  outline: 2px solid #e3c782; outline-offset: 3px;
}
[data-public-page] .toast { visibility: hidden; overflow-wrap: anywhere; }
[data-public-page="questionnaire"] .toast { left: 14px; right: 14px; max-width: 620px; margin-inline: auto; }
[data-public-page] .toast.show {
  visibility: visible; display: flex; align-items: start; gap: 12px;
  pointer-events: auto; max-height: min(40vh, 280px); overflow: auto;
  bottom: max(calc(18px + env(safe-area-inset-bottom, 0px)), var(--public-keyboard-bottom, 0px));
}
[data-public-page] .toast-message { min-width: 0; flex: 1; }
[data-public-page] .toast-dismiss { flex: none; min-width: 44px; min-height: 44px; border: 1px solid #9aa9bd; border-radius: 8px; background: #111d2d; color: #f4f7fb; font: inherit; }
[data-public-page] .public-field-error { color: #f9a0aa; overflow-wrap: anywhere; }
[data-public-page] :is(.chip, .choice) { position: relative; min-height: 44px; max-width: 100%; }
[data-public-page] :is(.chip, .choice):focus-within { outline: 2px solid #e3c782; outline-offset: 3px; }
[data-public-page] :is(.chip, .choice) input {
  display: block; position: absolute; width: 1px; height: 1px; min-height: 0;
  padding: 0; margin: 0; opacity: 0; clip-path: inset(50%); overflow: hidden;
}
[data-public-page] :is(.hint, .privacy, .footnote, .summary-row small, .choice-text small, .step-name) { color: var(--public-muted); }
[data-public-page] :is(.question-card, .summary-row, .field, .card-head > div) { min-width: 0; }
[data-public-page] :is(.summary-row strong, .question-label, .hint, .choice-text, .chip, .top-title, .q-head, .state, .q-state) { overflow-wrap: anywhere; }
[data-public-page] .summary-row strong { display: block; white-space: pre-wrap; word-break: normal; }
[data-public-page="registration"] .step { flex-wrap: wrap; gap: 5px; }
[data-public-page="registration"] .step-name { white-space: normal; overflow: visible; }
[data-public-page="registration"] .step.active .step-name { color: #f4f7fb; }
[data-public-page="registration"] .step:not(.active):not(.done) .step-num { color: var(--public-muted); }
[data-public-page="registration"] .chip-box { flex: none; }
[data-public-page="registration"] .actions-left { min-width: 0; }
[data-public-page="landing"] .public-header-row { flex-wrap: wrap; gap: 12px !important; }
[data-public-page="landing"] .public-brand { max-width: 100%; }
[data-public-page="landing"] .public-mobile-actions { margin-left: auto; display: flex; align-items: center; gap: 10px; min-width: 0; flex-wrap: wrap; }
[data-public-page="landing"] .public-mobile-actions a { min-height: 44px; display: inline-flex; align-items: center; justify-content: center; white-space: normal !important; }
[data-public-page="landing"] #mobileMenuToggle { flex: none; }
[data-public-page="landing"] #mobileMenu { max-height: calc(100dvh - var(--public-header-height, 138px) - env(safe-area-inset-bottom, 0px)); overflow-y: auto; }
[data-public-page="landing"] #regNote { color: var(--public-muted) !important; }
[data-public-page="landing"] :is([data-faq-toggle], #registrationError) { overflow-wrap: anywhere; }
[data-public-page="landing"] [data-faq-toggle] { min-height: 44px; }
[data-public-page="landing"] [data-faq-toggle] > span:first-child { min-width: 0; }
[data-public-page="portal"] { --muted: #9aa9bd; }
[data-public-page="portal"] :is(.brand-row, .progress-meta, .crumb) { flex-wrap: wrap; }
[data-public-page="portal"] :is(.hero-row > *, .brand, .trainer-meta, .ex-title, .crumb > *, .message-actions > *) { min-width: 0; }
[data-public-page="portal"] :is(#greeting, #planName, .trainer-meta strong, .trainer-meta span, .crumb, .tab small, .ex-title, .ex-note p, .day-notes p, .ex-instructions p, .message-card, .footer-note) { overflow-wrap: anywhere; }
[data-public-page="portal"] .trainer-meta strong { white-space: normal; max-width: none; overflow: visible; }
[data-public-page="portal"] .group-head { display: grid; grid-template-columns: minmax(0, 1fr) minmax(12px, .15fr) max-content; gap: 10px; }
[data-public-page="portal"] .group-head strong { white-space: normal; overflow-wrap: anywhere; min-width: 0; }
[data-public-page="portal"] .group-head small { min-width: 0; }
[data-public-page="portal"] :is(.tab small, .load-note, .message-actions small) { color: var(--public-muted); }
[data-public-page="portal"] .trainer-meta span { color: var(--public-muted); }
[data-public-page="portal"] .tab.active small { color: #dfcc9f; }
[data-public-page="portal"] .load-box { display: grid; grid-template-columns: 3px max-content minmax(0, 1fr); gap: 8px; overflow: visible; }
[data-public-page="portal"] .load-edit { display: grid; grid-template-columns: minmax(0, 1fr) max-content; width: 100%; margin: 0; }
[data-public-page="portal"] .load-input { width: 100%; max-width: none; min-width: 0; }
[data-public-page="portal"] .load-save { opacity: 1; min-width: 44px; min-height: 44px; }
[data-public-page="portal"] .load-note { position: static; grid-column: 2 / -1; overflow-wrap: anywhere; padding-bottom: 3px; }
[data-public-page="portal"] .message-label { display: block; font-size: 13px; color: #b7c2d0; margin: 12px 0 7px; }
[data-public-page="portal"] .gold-btn { min-height: 44px; }
[data-public-page="portal"] .ex-instructions summary { min-height: 44px; display: flex; align-items: center; }
@media (max-width: 820px), (pointer: coarse) {
  [data-public-page="login"] :is(.pw-toggle, #forgotPassword, .register-row a, #authForm a) { min-width: 44px; min-height: 44px; display: inline-flex; align-items: center; justify-content: center; }
  [data-public-page="landing"] #termsToggle { min-height: 44px; }
}
@media (max-width: 480px) {
  [data-public-page="landing"] .public-header-row { padding-inline: 14px !important; }
  [data-public-page="landing"] .public-mobile-actions { flex: 1 0 100%; justify-content: flex-end; }
  [data-public-page="portal"] .trainer-chip { max-width: 100%; }
}

/* The existing price-card glow is decorative; its paint and clipping stay the same. */
[data-public-page="landing"] .public-price-card::before { content: ""; position: absolute; top: -40%; left: -10%; width: 60%; height: 120%; background: radial-gradient(50% 50% at 50% 50%, rgba(253,211,111,.1), rgba(253,211,111,0) 70%); pointer-events: none; }
[data-public-page="landing"] #mobileMenu a { min-height: 44px; display: flex; align-items: center; }

/* V3.2.2: registration errors and a compact header only while signing up. */
#registrationFormWrap .public-field-error { display: block; margin-top: 6px; font-size: 13px; font-weight: 500; line-height: 1.4; color: #f9a0aa; }
#registrationFormWrap [aria-invalid="true"] { border-color: #f9a0aa !important; }
@media (max-width: 820px) {
  body[data-public-page="landing"][data-register-active] .public-header-row { flex-wrap: nowrap; gap: 8px !important; padding-block: 8px; }
  body[data-public-page="landing"][data-register-active] .public-brand { flex: 1 1 auto !important; min-width: 0; gap: 7px !important; }
  body[data-public-page="landing"][data-register-active] .public-brand > span:last-child { width: min(170px, 47vw) !important; background-size: 227px 284px !important; background-position: -28.6px -177px !important; }
  body[data-public-page="landing"][data-register-active] .public-mobile-actions { flex: 0 0 auto; flex-wrap: nowrap; margin-left: 0; }
  body[data-public-page="landing"][data-register-active] .public-mobile-actions > a { display: none; }
  #registrationFormWrap label > span { letter-spacing: 0 !important; text-transform: none !important; }
}

@media (max-width: 820px), (pointer: coarse) {
  [data-public-page="landing"] :is(.public-brand, footer a) { min-height: 44px; display: inline-flex; align-items: center; }
  [data-public-page="landing"] :is(.public-header-row nav a, #cadastro a) { min-width: 44px; min-height: 44px; max-width: 100%; display: inline-flex; align-items: center; }
}
