.mg-app { font-family: var(--mg-font-family); color: var(--mg-text); font-size: 1rem; line-height: 1.5; background: var(--mg-surface-alt); }
.mg-app .mg-shell { background: var(--mg-radial-accent), var(--mg-surface-alt); }
.mg-app .mg-shell > .content-header > .container,
.mg-app .mg-shell > .content > .container,
.mg-app .mg-header-inner { max-width: var(--mg-content-max); padding-inline: var(--mg-space-4); }
.mg-app .mg-header { border: 0; border-bottom: 1px solid var(--mg-border); background: var(--mg-surface); box-shadow: var(--mg-shadow-sm); padding: var(--mg-space-3) 0; }
.mg-app .mg-header-inner { min-height: 44px; gap: var(--mg-space-3); }
.mg-app .mg-brand { display: flex; flex-direction: column; margin: 0; padding: 0; color: var(--mg-text); flex-shrink: 0; line-height: 1.1; }
.mg-app .mg-brand-institution { font-size: .75rem; letter-spacing: .14em; font-weight: 600; }
.mg-app .mg-brand-product { font-size: 1.75rem; font-weight: 700; color: var(--mg-color-primary-strong); margin-top: var(--mg-space-1); }
.mg-app .mg-menu-toggle { min-width: var(--mg-control-height); min-height: var(--mg-control-height); border: 1px solid var(--mg-control-border); border-radius: var(--mg-radius-md); }
.mg-app .mg-header-content { min-width: 0; gap: var(--mg-space-3); padding-top: var(--mg-space-4); }
.mg-app .mg-global-links:has(> li[style*="display: none"]):not(:has(> li:not([style*="display: none"]))) { margin: 0; }
.mg-app .mg-actor-selector { display: flex; flex-wrap: wrap; gap: var(--mg-space-1); padding: var(--mg-space-1); border-radius: var(--mg-radius-md); background: var(--mg-surface-alt); }
.mg-app .mg-actor-selector:not(:has(button:not([style*="display: none"]))) { display: none; }
.mg-app .mg-actor-option { flex: 1 1 auto; color: var(--mg-color-primary-strong); background: var(--mg-surface); border: 1px solid var(--mg-border); font-size: .875rem; }
.mg-app .mg-actor-option:hover { border-color: var(--mg-color-primary); text-decoration: underline; background: var(--mg-surface); color: var(--mg-color-primary-strong); }
.mg-app .mg-nav-link { min-width: var(--mg-control-height); min-height: var(--mg-control-height); display: inline-flex; align-items: center; justify-content: center; color: var(--mg-color-primary-strong); padding: var(--mg-space-2) var(--mg-space-3); border-radius: var(--mg-radius-md); }
.mg-app .mg-user-context:not([hidden]) { display: flex; flex-wrap: wrap; align-items: center; gap: var(--mg-space-3); min-width: 0; flex: 1 1 auto; }
.mg-app .mg-avatar { display: block; width: 44px; height: 44px; flex: 0 0 44px; border-radius: var(--mg-radius-pill); background: var(--mg-gradient-brand); }
.mg-app .mg-context-text { display: flex; flex-direction: column; flex: 1 1 120px; min-width: 0; overflow-wrap: anywhere; }
.mg-app .mg-actor-label { font-size: .875rem; color: var(--mg-text-muted); }
.mg-app .mg-patient-label { font-weight: 600; }
.mg-app .mg-user-controls { flex: 0 1 auto; min-width: 0; }
.mg-app .mg-locale-selector { display: inline-flex; align-items: center; gap: var(--mg-space-1); white-space: nowrap; }
.mg-app .mg-locale-option { min-width: 36px; min-height: 44px; padding: var(--mg-space-1); border: 0; border-radius: var(--mg-radius-sm); background: transparent; color: var(--mg-color-primary-strong); font: inherit; font-weight: 600; cursor: pointer; }
.mg-app .mg-locale-option:hover { text-decoration: underline; }
.mg-app .mg-locale-option:focus-visible { outline: 3px solid var(--mg-color-primary); outline-offset: 2px; }
.mg-app .mg-locale-option.is-active { background: var(--mg-color-primary-strong); color: var(--mg-surface); }
/* In-flow disclosure avoids menu collisions and offscreen absolute positioning. */
.mg-app .mg-user-menu { margin-top: var(--mg-space-2); padding: var(--mg-space-3); border: 1px solid var(--mg-border); border-radius: var(--mg-radius-md); box-shadow: var(--mg-shadow-md); background: var(--mg-surface); max-width: 100%; }
.mg-app .mg-menu-context { display: block; font-size: .875rem; overflow-wrap: anywhere; max-width: 260px; }
.mg-app .mg-shell-feedback { margin: 0; padding-block: var(--mg-space-2); color: var(--mg-text-muted); overflow-wrap: anywhere; }
.mg-app .mg-shell-feedback:empty { display: none; }
.mg-app .mg-page-heading { padding: var(--mg-space-6) 0 var(--mg-space-4); text-align: center; }
.mg-app .mg-eyebrow { color: var(--mg-text-muted); letter-spacing: .08em; font-size: .75rem; font-weight: 600; margin-bottom: var(--mg-space-2); }
.mg-app h1.mg-page-title { background: none; -webkit-text-fill-color: currentColor; color: var(--mg-color-primary-strong); font-size: 1.75rem; line-height: 1.25; font-weight: 700; margin: 0; }
.mg-app .mg-page-description { margin: var(--mg-space-2) 0 0; color: var(--mg-text-muted); }
.mg-app .mg-access-logo { display: block; width: 184px; max-width: 100%; height: auto; margin: var(--mg-space-5) auto 0; }
.mg-app:has(#shellContext:not([hidden])) .mg-access-logo { display: none; }
.mg-app .mg-access-surface { border: 1px solid var(--mg-border); border-top: 1px solid var(--mg-border); border-radius: var(--mg-radius-lg); box-shadow: var(--mg-shadow-sm); background: var(--mg-surface); margin-bottom: var(--mg-space-6); }
.mg-app .main-footer { background: var(--mg-surface); color: var(--mg-text-muted); font-size: .875rem; }
.mg-app .main-footer a { color: var(--mg-color-primary-strong); }
@media (min-width: 576px) { .mg-app .mg-actor-option { white-space: nowrap; } }
@media (min-width: 768px) {
  .mg-app .mg-header-inner { min-height: 48px; flex-wrap: wrap; }
  .mg-app .mg-header-content { flex-wrap: wrap; padding-top: 0; }
  .mg-app .mg-shell > .content-header > .container,
  .mg-app .mg-shell > .content > .container,
  .mg-app .mg-header-inner { padding-inline: var(--mg-space-5); }
  .mg-app h1.mg-page-title { font-size: 2rem; }
  .mg-app .mg-shell-feedback { flex-basis: 100%; }
}
@media (max-width: 767.98px) { .mg-app .mg-locale-selector { padding-block: var(--mg-space-2); } }
@media (min-width: 992px) {
  .mg-app .mg-shell > .content-header > .container,
  .mg-app .mg-shell > .content > .container,
  .mg-app .mg-header-inner { padding-inline: var(--mg-space-6); }
}
@media (min-width: 1200px) { .mg-app .mg-header-content { margin-left: var(--mg-space-6); } }

/* UX2C: only the canonical entry route; legacy ancestry presentation is preserved. */
.mg-home .mg-title-patient, .mg-home .mg-title-institution { display: none; }
.mg-home .mg-entry-choice { max-width: 560px; margin: var(--mg-space-6) auto 0; }
.mg-home .mg-entry-help { color: var(--mg-text-muted); margin-bottom: var(--mg-space-3); }
.mg-home .mg-entry-choice:not(:has(button:not([style*="display: none"]))) { display: none; }
.mg-home .mg-external-links .mg-nav-link { gap: var(--mg-space-2); font-size: .875rem; }
.mg-home:has(#shellContext[hidden]) .mg-page-heading { padding-block: var(--mg-space-5) var(--mg-space-3); }
.mg-home:has(#shellContext[hidden]) .mg-shell { min-height: 0 !important; padding-bottom: var(--mg-space-4); }
.mg-home:has(#shellContext[hidden]) .mg-access-surface { display: none; }
.mg-home:has(#shellContext[hidden]):has(#identificacion:not([style*="display: none"]):not([style*="display:none"])) .mg-access-surface,
.mg-home:has(#shellContext[hidden]):has(#inicioInstitucional:not([style*="display: none"]):not([style*="display:none"])) .mg-access-surface {
  display: block; max-width: 560px; margin: 0 auto var(--mg-space-5);
}
.mg-home:has(#shellContext[hidden]) .bs-stepper-header { display: none !important; }
.mg-home:has(#shellContext[hidden]) #home { display: none !important; }
.mg-home:has(#shellContext[hidden]) #logins-part { padding: var(--mg-space-5); }
.mg-home:has(#shellContext[hidden]) .bs-stepper-content { padding: 0; }
.mg-home:has(#shellContext[hidden]) .mg-access-fields { max-width: 100%; width: 100%; margin-left: 0; padding: 0; }
.mg-home:has(#shellContext[hidden]) .mg-access-panel > .card-body { padding: 0; }
.mg-home:has(#shellContext[hidden]) .mg-access-heading { display: none; }
.mg-home:has(#shellContext[hidden]) #logins-part > .mg-button { margin: 0 var(--mg-space-2) 0 0; }
.mg-home:has(#shellContext[hidden]):has(#identificacion:not([style*="display: none"]):not([style*="display:none"])) .mg-title-patient,
.mg-home:has(#shellContext[hidden]):has(#inicioInstitucional:not([style*="display: none"]):not([style*="display:none"])) .mg-title-institution { display: block; }
.mg-home:has(#shellContext[hidden]):has(#identificacion:not([style*="display: none"]):not([style*="display:none"])) .mg-title-root,
.mg-home:has(#shellContext[hidden]):has(#inicioInstitucional:not([style*="display: none"]):not([style*="display:none"])) .mg-title-root { display: none; }
.mg-home:has(#shellContext[hidden]) .main-footer { position: static; margin-top: var(--mg-space-5); padding: var(--mg-space-4); background: transparent; font-size: .75rem; }
.mg-home:has(#shellContext[hidden]) .main-footer strong,
.mg-home:has(#shellContext[hidden]) .main-footer b { font-weight: 400; }
/* Keep Bootstrap's appended access icons on the same line as their input. */
.mg-home:has(#shellContext[hidden]) #inicioInstitucional .input-group > .mg-input { width: 1%; min-width: 0; flex: 1 1 auto; }
.mg-home:has(#shellContext[hidden]) #inicioInstitucional .input-group-append { flex: 0 0 auto; }
