/* UX3B: shared result presentation. No product visibility/authorization is decided here. */
.mg-app > .wrapper { min-height: 100vh; min-height: 100svh; display: flex; flex-direction: column; }
.mg-app .mg-shell { flex: 1 0 auto; min-height: 0 !important; }
.mg-app .main-footer { position: static; flex: 0 0 auto; margin-top: auto; }
.mg-app .mg-header .mg-brand-product { font-size: 1.25rem; line-height: 1.2; }
.mg-app:has(.mg-result-center) .mg-page-heading { display: none; }
.mg-app:has(.mg-result-center[data-actor="patient"]) .mg-access-surface { display: none; }
.mg-app:has(.mg-result-center) #reinicio { display: none !important; }
.mg-app .mg-result-center { margin-block: var(--mg-space-5) var(--mg-space-7); color: var(--mg-text); }
.mg-app .mg-result-center h1 { font-size: 1.75rem; line-height: 1.25; font-weight: 700; color: var(--mg-color-primary-strong); overflow-wrap: anywhere; margin: 0; }
.mg-app .mg-result-intro { color: var(--mg-text-muted); margin: var(--mg-space-2) 0 var(--mg-space-6); }
.mg-app .mg-result-center h2 { font-size: 1.25rem; line-height: 1.4; font-weight: 600; color: var(--mg-text); margin: 0 0 var(--mg-space-3); }
.mg-app .mg-result-center h3 { font-size: 1rem; line-height: 1.5; font-weight: 600; overflow-wrap: anywhere; margin: 0 0 var(--mg-space-2); }
.mg-app .mg-result-grid { display: grid; grid-template-columns: minmax(0, 1fr); gap: var(--mg-space-4); align-items: stretch; }
.mg-app .mg-result-grid:empty { display: none; }
.mg-app .mg-result-grid:has(> :only-child) { max-width: 440px; grid-template-columns: minmax(0, 1fr); }
.mg-app .mg-result-card { display: flex; flex-direction: column; background: var(--mg-surface); padding: var(--mg-space-5); border: 1px solid var(--mg-border); border-top: 3px solid var(--mg-color-primary); border-radius: var(--mg-radius-lg); min-width: 0; box-shadow: var(--mg-shadow-sm); }
.mg-app .mg-result-card[data-product="ancestry"] { border-top-color: #7a8c24; }
.mg-app .mg-product-description { color: var(--mg-text-muted); font-size: .9375rem; line-height: 1.5; margin-bottom: var(--mg-space-4); }
.mg-app .mg-product-count { font-weight: 600; }
.mg-app .mg-result-card > .mg-button, .mg-app .mg-result-card > .mg-report-action { margin-top: auto; align-self: flex-start; }
.mg-app .mg-status { display: inline-flex; gap: var(--mg-space-2); align-items: baseline; padding: var(--mg-space-1) var(--mg-space-2); border-radius: var(--mg-radius-sm); font-size: .875rem; line-height: 1.5; margin: 0 0 var(--mg-space-4); max-width: 100%; overflow-wrap: anywhere; }
.mg-app .mg-status i { flex: 0 0 auto; }
.mg-app .mg-status--ready { color: var(--mg-success); background: var(--mg-success-surface); }
.mg-app .mg-status--processing { color: var(--mg-info); background: var(--mg-info-surface); }
.mg-app .mg-status--prepare { color: var(--mg-color-primary-strong); background: var(--mg-surface-alt); }
.mg-app .mg-status--warning { color: var(--mg-warning); background: var(--mg-warning-surface); }
.mg-app .mg-status--error { color: var(--mg-danger); background: var(--mg-danger-surface); }
.mg-app .mg-product-list { margin-top: var(--mg-space-6); background: var(--mg-surface); border: 1px solid var(--mg-border); border-radius: var(--mg-radius-lg); padding: var(--mg-space-5); }
.mg-app .mg-result-row { display: flex; flex-direction: column; gap: var(--mg-space-3); padding-block: var(--mg-space-4); border-top: 1px solid var(--mg-border); overflow-wrap: anywhere; }
.mg-app .mg-report-content { flex: 1 1 auto; min-width: 0; }
.mg-app .mg-report-content .mg-status { margin: 0; }
.mg-app .mg-report-action { min-width: 0; }
.mg-app .mg-report-action button { min-height: 44px; max-width: 100%; }
.mg-app .mg-report-action p:empty { display: none; }
.mg-app .mg-action-feedback { color: var(--mg-text-muted); font-size: .875rem; margin: var(--mg-space-2) 0 0; max-width: 24rem; }
.mg-app .mg-report-type { text-transform: uppercase; letter-spacing: .06em; color: var(--mg-text-muted); font-size: .75rem; margin: 0 0 var(--mg-space-1); }
.mg-app .mg-result-feedback, .mg-app .mg-result-empty { padding: var(--mg-space-5); background: var(--mg-surface); border: 1px solid var(--mg-border); border-radius: var(--mg-radius-md); }
.mg-app .mg-result-empty { max-width: 640px; }
.mg-app .mg-result-empty p:last-child { margin-bottom: 0; color: var(--mg-text-muted); }
.mg-app .mg-result-skeleton { display: grid; gap: var(--mg-space-4); grid-template-columns: 1fr; }
.mg-app .mg-result-skeleton span { display: block; height: 140px; border-radius: var(--mg-radius-lg); background: var(--mg-surface-alt); border: 1px solid var(--mg-border); }
@media (min-width: 576px) { .mg-app .mg-result-row { flex-direction: row; align-items: center; justify-content: space-between; } .mg-app .mg-result-row .mg-report-action { flex: 0 0 auto; max-width: 45%; } }
@media (min-width: 768px) { .mg-app .mg-result-grid, .mg-app .mg-result-skeleton { grid-template-columns: repeat(2, minmax(0, 1fr)); } .mg-app .mg-header .mg-brand-product { font-size: 1.5rem; } .mg-app .mg-result-center h1 { font-size: 2rem; } }
@media (min-width: 1200px) { .mg-app .mg-result-grid:has(> :nth-child(3)) { grid-template-columns: repeat(3, minmax(0, 1fr)); } }

.mg-app .mg-result-brand { display: block; width: 160px; height: 64px; object-fit: contain; object-position: left center; margin-bottom: var(--mg-space-3); }

/* UX4B: native indeterminate progress, no fabricated percentage. */
.mg-app .mg-report-progress { display: block; width: 100%; max-width: 20rem; height: .5rem; margin-top: var(--mg-space-3); accent-color: var(--mg-color-primary); }
.mg-app .mg-report-progress[hidden] { display: none; }
@media (prefers-reduced-motion: reduce) { .mg-app .mg-report-progress { appearance: none; background: var(--mg-surface-alt); border: 1px solid var(--mg-color-primary); } .mg-app .mg-report-progress::-webkit-progress-bar { background: var(--mg-surface-alt); } .mg-app .mg-report-progress::-moz-progress-bar { background: var(--mg-color-primary); animation: none; } }

/* UX6A: local navigation and institutional operation feedback. */
.mg-app .mg-logout { min-width:44px; min-height:44px; }
.mg-app .mg-patient-search { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:.5rem; padding:1rem; }
.mg-app .mg-patient-search label, .mg-app #mgPatientCount { grid-column:1 / -1; margin:0; }
.mg-app .mg-patient-search input { width:100%; min-width:0; min-height:44px; }
.mg-app .mg-shell:has(> .mg-selection-overlay) { position:relative; }
.mg-app .mg-selection-overlay { position:absolute; inset:0; z-index:20; background:rgba(248,251,252,.94); display:flex; justify-content:center; align-items:flex-start; padding:clamp(2rem,12vh,8rem) 1rem; }
.mg-app .mg-selection-overlay p { position:sticky; top:2rem; padding:1.5rem; background:white; border:1px solid var(--mg-border); border-radius:var(--mg-radius-md); color:var(--mg-text); box-shadow:var(--mg-shadow-sm); }
.mg-app .mg-result-navigation { display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:1rem; }
.mg-app .mg-product-list, .mg-app [id^="resultados-"], .mg-app .mg-result-center { scroll-margin-top:6rem; }
.mg-app .mg-product-list:focus-visible, .mg-app [id^="resultados-"]:focus-visible, .mg-app .mg-result-center:focus-visible { outline:2px solid var(--mg-color-primary); outline-offset:4px; }
.mg-app #jsGrid button { min-height:44px; white-space:normal; }
.mg-app #relaciones > .card-body { padding:.75rem; }
.mg-app .mg-patient-search { padding:.25rem 0 1rem; }
@media (max-width:575.98px) {
  .mg-app .mg-patient-search input { grid-column:1 / -1; }
  .mg-app .mg-patient-search > button { grid-column:2; grid-row:3; }
  .mg-app .mg-patient-search #mgPatientCount { grid-column:1; grid-row:3; align-self:center; }
  .mg-app #jsGrid .jsgrid-grid-header { display:none; }
  .mg-app #jsGrid .jsgrid-grid-body table, .mg-app #jsGrid .jsgrid-grid-body tbody { display:block; width:100% !important; }
  .mg-app #jsGrid .jsgrid-grid-body tr { display:block; padding:.75rem; border-bottom:1px solid var(--mg-border); }
  .mg-app #jsGrid .jsgrid-grid-body td { display:block; width:100% !important; border:0; padding:.25rem 0; overflow-wrap:anywhere; }
  .mg-app #jsGrid .jsgrid-grid-body tr:not(.jsgrid-nodata-row) td:first-child { display:none; }
  .mg-app #jsGrid .jsgrid-grid-body tr:not(.jsgrid-nodata-row) td:nth-child(2)::before { content:'Documento: '; font-weight:600; }
  .mg-app #jsGrid .jsgrid-grid-body tr:not(.jsgrid-nodata-row) td:nth-child(3)::before { content:'Paciente: '; font-weight:600; }
  .mg-app #jsGrid .jsgrid-grid-body button { width:100%; }
}

/* UX6B: one inline feedback pattern; loaders remain local to their operation. */
.mg-app .mg-feedback { display:flex; align-items:flex-start; flex-wrap:wrap; gap:.5rem; padding:.75rem; border:1px solid var(--mg-border); border-radius:var(--mg-radius-md); line-height:1.5; font-size:.9375rem; margin-block:.5rem; overflow-wrap:anywhere; }
.mg-app .mg-feedback[hidden], .mg-app .mg-feedback:empty { display:none; }
.mg-app .mg-feedback > i { flex:0 0 auto; margin-top:.25rem; }
.mg-app .mg-feedback > span { flex:1 1 10rem; min-width:0; }
.mg-app .mg-feedback > button { min-height:44px; max-width:100%; }
.mg-app .mg-feedback--info { color:var(--mg-info); background:var(--mg-info-surface); }
.mg-app .mg-feedback--success { color:var(--mg-success); background:var(--mg-success-surface); }
.mg-app .mg-feedback--warning { color:var(--mg-warning); background:var(--mg-warning-surface); }
.mg-app .mg-feedback--error { color:var(--mg-danger); background:var(--mg-danger-surface); }
.mg-app .mg-feedback:focus-visible { outline:2px solid var(--mg-color-primary); outline-offset:3px; }
.mg-app .mg-is-loading::before { content:''; display:inline-block; width:1em; height:1em; margin-right:.5rem; border:2px solid currentColor; border-right-color:transparent; border-radius:50%; animation:mg-feedback-spin .8s linear infinite; vertical-align:-.1em; }
.mg-app .mg-result-skeleton { animation:mg-feedback-pulse 1.8s ease-in-out infinite; }
@keyframes mg-feedback-spin { to { transform:rotate(360deg); } }
@keyframes mg-feedback-pulse { 50% { opacity:.55; } }
@media (prefers-reduced-motion:reduce) { .mg-app .mg-is-loading::before, .mg-app .mg-result-skeleton { animation:none; } }

.mg-app .mg-shell > #shellFeedback { max-width:52rem; margin:1rem auto; }

/* UX6C: operation-owned indicator, no timer or fabricated percentage. */
.mg-app .mg-selection-overlay p { display:flex; align-items:center; gap:1rem; }
.mg-app .mg-selection-overlay p::before { content:''; display:block; flex:0 0 auto; width:2rem; height:2rem; border:3px solid var(--mg-border); border-top-color:var(--mg-color-primary); border-right-color:var(--mg-color-primary); border-radius:50%; animation:mg-feedback-spin .85s linear infinite; }
@media (prefers-reduced-motion:reduce) { .mg-app .mg-selection-overlay p::before { animation:none; border-top-color:var(--mg-color-primary-strong); } }
