/*
 * Dent-iOS Clinic · sistema responsive móvil
 * Capa final y deliberadamente única para neutralizar reglas móviles históricas.
 * No cambia flujos ni datos; solo presentación y ergonomía táctil.
 */

@media (max-width: 768px) {
  :root {
    --mobile-header-h: 58px;
    --mobile-nav-h: 70px;
    --mobile-gutter: 12px;
  }

  html,
  body {
    width: 100%;
    max-width: 100%;
    min-height: 100%;
    overflow-x: clip !important;
    -webkit-text-size-adjust: 100%;
  }

  body {
    background: #f4f6fa;
  }

  button,
  [role="button"],
  input,
  select,
  textarea {
    touch-action: manipulation;
  }

  input,
  select,
  textarea {
    min-width: 0;
    max-width: 100%;
    font-size: 16px !important;
  }

  img,
  svg,
  video,
  canvas {
    max-width: 100%;
  }

  /* Login */
  #screen-auth {
    min-height: 100dvh;
    background: #fff;
  }

  #screen-auth .auth-left {
    display: none !important;
  }

  #screen-auth .auth-right {
    width: 100%;
    min-height: 100dvh;
    padding: max(24px, env(safe-area-inset-top)) 20px max(24px, env(safe-area-inset-bottom));
    align-items: flex-start;
    overflow-y: auto;
  }

  #screen-auth .auth-box {
    width: min(100%, 440px);
    margin: auto;
  }

  #screen-auth .auth-box h2 {
    font-size: 25px;
  }

  #screen-auth .fgrid {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  #screen-auth .fg.full {
    grid-column: auto !important;
  }

  /* Shell principal */
  #screen-app.screen.active {
    position: relative !important;
    inset: auto !important;
    display: block !important;
    width: 100%;
    height: 100dvh !important;
    max-height: 100dvh !important;
    overflow: hidden !important;
    background: #f4f6fa;
  }

  #screen-app > .sidebar,
  #screen-app > #mob-menu-btn,
  #screen-app > #mob-overlay {
    display: none !important;
  }

  #screen-app > .main {
    display: block;
    width: 100%;
    height: 100dvh !important;
    min-height: 0 !important;
    margin: 0 !important;
    padding: 0;
    overflow-x: clip !important;
    overflow-y: auto !important;
    overscroll-behavior-y: contain;
    background: #f4f6fa;
    scrollbar-gutter: auto;
    -webkit-overflow-scrolling: touch;
  }

  /* Una sola cabecera móvil; la cabecera de escritorio deja de competir */
  #screen-app .main > .topbar {
    display: none !important;
  }

  #mob-topbar {
    position: fixed !important;
    inset: 0 0 auto 0 !important;
    z-index: 700 !important;
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) auto auto;
    align-items: center !important;
    gap: 8px;
    width: 100% !important;
    height: calc(var(--mobile-header-h) + env(safe-area-inset-top)) !important;
    min-height: 0 !important;
    padding: env(safe-area-inset-top) 12px 0 !important;
    border-bottom: 1px solid #dfe6ec !important;
    background: rgba(255, 255, 255, .97) !important;
    box-shadow: 0 2px 10px rgba(15, 76, 129, .06);
    backdrop-filter: blur(14px);
  }

  #mob-topbar .mobile-clinic-brand {
    display: flex;
    min-width: 0;
    align-items: center;
    gap: 9px;
  }

  #mob-topbar .mobile-clinic-logo {
    display: grid;
    flex: 0 0 36px;
    width: 36px;
    height: 36px;
    place-items: center;
    border-radius: 11px;
  }

  #mob-topbar .mobile-clinic-logo img {
    width: 36px;
    height: 36px;
    object-fit: contain;
  }

  #mob-topbar .mobile-clinic-title-stack {
    display: grid;
    min-width: 0;
    gap: 1px;
  }

  #mob-topbar .mobile-clinic-title-stack small,
  #mob-topbar .mobile-clinic-title-stack strong,
  #mob-topbar #mobile-clinic-name,
  #mob-topbar #mobile-page-title {
    display: block;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  #mob-topbar #mobile-clinic-name {
    font-size: 10px !important;
    font-weight: 600;
    line-height: 1.15;
  }

  #mob-topbar #mobile-page-title {
    font-size: 14px !important;
    font-weight: 800;
    line-height: 1.2;
  }

  #mobile-context-slot {
    display: flex;
    min-width: 0;
    align-items: center;
    justify-content: flex-end;
  }

  #mobile-context-slot:empty {
    display: none;
  }

  #mobile-context-slot .period-nav {
    display: flex !important;
    height: 38px !important;
    min-width: 0 !important;
    margin: 0 !important;
  }

  #mobile-context-slot .period-nav-label {
    min-width: 68px !important;
    padding: 0 5px !important;
    font-size: 11px !important;
  }

  #mobile-context-slot .period-nav-btn {
    width: 30px !important;
    min-width: 30px;
  }

  #mob-topbar > button,
  #home-mobile-actions-button {
    display: grid !important;
    flex: 0 0 40px;
    width: 40px !important;
    height: 40px !important;
    min-height: 40px;
    place-items: center;
    padding: 0 !important;
    margin: 0 !important;
    border-radius: 11px !important;
  }

  /* The current mobile header is white; override the older blue-header icon. */
  #mob-topbar > #mobile-notifications-button {
    width: 44px !important;
    height: 44px !important;
    min-height: 44px;
    color: #0f4c81 !important;
  }

  #mob-topbar > #mobile-notifications-button svg {
    stroke: currentColor !important;
  }

  #mob-topbar > #mobile-notifications-button:focus-visible {
    outline: 2px solid #176fc1;
    outline-offset: -2px;
  }

  #home-mobile-actions-menu {
    top: calc(var(--mobile-header-h) + env(safe-area-inset-top) - 2px) !important;
    right: 10px !important;
    left: 10px !important;
    width: auto !important;
    max-height: calc(100dvh - var(--mobile-header-h) - var(--mobile-nav-h) - 24px);
    overflow-y: auto;
  }

  /* Área de páginas */
  #screen-app .page {
    width: 100%;
    max-width: 100% !important;
    min-height: calc(100dvh - var(--mobile-header-h));
    padding: calc(var(--mobile-header-h) + env(safe-area-inset-top) + 12px) var(--mobile-gutter)
      calc(var(--mobile-nav-h) + env(safe-area-inset-bottom) + 18px) !important;
    overflow: visible !important;
  }

  #screen-app .page > * {
    max-width: 100%;
  }

  #screen-app .page.active {
    display: block;
  }

  #screen-app .app-footer {
    margin: 0 calc(-1 * var(--mobile-gutter));
    padding-bottom: calc(var(--mobile-nav-h) + env(safe-area-inset-bottom) + 12px) !important;
  }

  /* Navegación inferior */
  #mob-tabbar {
    position: fixed !important;
    inset: auto 0 0 0 !important;
    z-index: 710 !important;
    display: grid !important;
    grid-template-columns: repeat(5, minmax(0, 1fr));
    align-items: end;
    width: 100%;
    height: calc(var(--mobile-nav-h) + env(safe-area-inset-bottom));
    padding: 6px 6px env(safe-area-inset-bottom) !important;
    border-top: 1px solid #dfe6ec;
    background: rgba(255, 255, 255, .98);
    box-shadow: 0 -8px 22px rgba(15, 76, 129, .09);
    backdrop-filter: blur(14px);
  }

  #mob-tabbar .mtb-item,
  #mob-tabbar .mtb-add {
    min-width: 0;
    min-height: 54px;
  }

  #mob-tabbar .mtb-item {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-direction: column;
    gap: 3px;
    padding: 4px 2px;
  }

  #mob-tabbar .mtb-item svg {
    width: 21px;
    height: 21px;
  }

  #mob-tabbar .mtb-item span {
    max-width: 100%;
    overflow: hidden;
    font-size: 10px;
    line-height: 1.1;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  #mob-tabbar .mtb-add {
    align-self: center;
    width: 50px;
    height: 50px;
    margin: -15px auto 0;
    border: 4px solid #fff;
    box-shadow: 0 7px 18px rgba(15, 76, 129, .24);
  }

  /* Ritmo y jerarquía */
  #screen-app .card {
    margin-bottom: 12px;
    border-radius: 14px;
  }

  #screen-app .card-head {
    align-items: flex-start;
    flex-direction: column;
    gap: 10px;
    padding: 14px;
  }

  #screen-app .card-head h3 {
    font-size: 15px;
    line-height: 1.25;
  }

  #screen-app .card-head-actions {
    display: flex;
    width: 100%;
    max-width: 100%;
    align-items: stretch;
    flex-wrap: wrap;
    gap: 8px;
  }

  #screen-app .card-head-actions > * {
    min-width: 0;
  }

  #screen-app .card-head-actions input[type="text"],
  #screen-app .card-head-actions input[type="search"],
  #screen-app .card-head-actions select {
    flex: 1 1 180px;
    width: 100% !important;
  }

  #screen-app .btn,
  #screen-app button:not(.period-nav-btn):not(.mtb-item):not(.mtb-add):not(.btn-x) {
    min-height: 44px;
  }

  #screen-app .btn-sm {
    min-height: 40px;
    padding: 8px 12px;
  }

  #screen-app .fgrid,
  #screen-app .form-grid,
  #screen-app .os-modal-grid {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  #screen-app .fgrid > *,
  #screen-app .form-grid > *,
  #screen-app .os-modal-grid > *,
  #screen-app .fg.full {
    grid-column: auto !important;
    min-width: 0;
  }

  /* Encabezados y acciones de módulos */
  #screen-app .amway-hd,
  #screen-app .clinic-management-page .amway-hd {
    display: flex !important;
    align-items: stretch !important;
    flex-direction: column !important;
    gap: 10px !important;
    margin: 0 0 12px !important;
    padding: 0 !important;
  }

  #screen-app .amway-hd-left,
  #screen-app .clinic-management-page .amway-hd-left {
    display: block !important;
    min-width: 0;
  }

  #screen-app .amway-hd-title,
  #screen-app .clinic-management-page .amway-hd-title {
    font-size: 22px !important;
    line-height: 1.15 !important;
  }

  #screen-app .amway-hd-sub,
  #screen-app .clinic-management-page .amway-hd-sub {
    margin-top: 4px !important;
    font-size: 12px !important;
    line-height: 1.45 !important;
  }

  #screen-app .management-page-primary,
  #screen-app #lab-orders-hd-right {
    display: flex;
    width: 100%;
  }

  #screen-app .management-page-primary .btn,
  #screen-app #lab-orders-hd-right .btn {
    width: 100%;
    justify-content: center;
  }

  #screen-app .management-toolbar,
  #screen-app .tbl-toolbar {
    display: flex !important;
    width: 100%;
    align-items: stretch !important;
    flex-direction: column !important;
    gap: 8px !important;
    padding: 6px !important;
    overflow: hidden;
  }

  #screen-app .management-toolbar-actions {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    width: 100%;
    gap: 8px !important;
  }

  #screen-app .management-toolbar-actions > input,
  #screen-app .management-toolbar-actions > div:first-child {
    grid-column: 1 / -1;
    width: 100% !important;
  }

  #screen-app .management-toolbar-actions .btn,
  #screen-app .management-toolbar-actions .btn-fp,
  #screen-app .management-toolbar-actions select {
    width: 100%;
    min-width: 0;
  }

  /* Pestañas: una fila desplazable, sin comprimir etiquetas */
  #screen-app .tabs-row,
  #screen-app .os-unified-tabs,
  #screen-app .settings-tabbar,
  #screen-app [id^="tabsbar-"],
  #screen-app #page-settings > div:first-child {
    display: flex !important;
    max-width: 100%;
    flex-wrap: nowrap !important;
    overflow-x: auto !important;
    overflow-y: hidden;
    scrollbar-width: none;
    overscroll-behavior-x: contain;
    -webkit-overflow-scrolling: touch;
  }

  #screen-app .tabs-row::-webkit-scrollbar,
  #screen-app .os-unified-tabs::-webkit-scrollbar,
  #screen-app .settings-tabbar::-webkit-scrollbar,
  #screen-app [id^="tabsbar-"]::-webkit-scrollbar {
    display: none;
  }

  #screen-app .cfg-tab-btn,
  #screen-app .os-utab,
  #screen-app .tabs-row > button,
  #screen-app .os-unified-tabs > button {
    flex: 0 0 auto !important;
    min-height: 40px;
    padding: 9px 13px !important;
    font-size: 12px !important;
    white-space: nowrap;
  }

  /* KPIs y tarjetas del inicio */
  #screen-app .kpi-grid,
  #screen-app .semaforo-grid,
  #screen-app .home-metrics,
  #screen-app #patients-kpis,
  #screen-app #os-kpis,
  #screen-app .management-kpi-grid.cols-3,
  #screen-app .management-kpi-grid.cols-4,
  #screen-app .management-kpi-grid.cols-5 {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-auto-flow: row !important;
    grid-auto-columns: auto !important;
    gap: 10px !important;
    width: 100%;
    margin: 0 0 14px !important;
    padding: 0 !important;
    overflow: visible !important;
  }

  #screen-app .kpi,
  #screen-app .management-kpi,
  #screen-app .home-metric {
    min-width: 0;
    min-height: 84px;
    padding: 13px;
  }

  #screen-app .kpi .kv {
    font-size: clamp(20px, 7vw, 28px);
    overflow-wrap: anywhere;
  }

  #screen-app .home-quick-create,
  #screen-app .home-patient-finder,
  #screen-app .clinic-home-agent-hero,
  #screen-app .clinic-module-agent-hero,
  #screen-app .clinic-agent-page-hero {
    width: 100%;
    min-width: 0;
  }

  #screen-app .home-quick-groups,
  #screen-app .home-quick-patient,
  #screen-app .home-quick-actions {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  #screen-app .clinic-home-agent-hero,
  #screen-app .clinic-module-agent-hero,
  #screen-app .clinic-agent-page-hero {
    border-radius: 16px;
  }

  #screen-app .clinic-home-agent-cover {
    min-height: 148px;
  }

  #screen-app .clinic-home-agent-identity {
    max-width: 100%;
  }

  /* Agenda semanal */
  #screen-app .home-week-agenda {
    overflow: hidden;
    border-radius: 14px;
  }

  #screen-app .home-agenda-heading,
  #screen-app .home-agenda-controls {
    align-items: stretch;
    flex-direction: column;
    gap: 9px;
  }

  #screen-app .home-agenda-controls > * {
    width: 100%;
  }

  #screen-app .home-agenda-days {
    display: grid;
    grid-auto-flow: column;
    grid-auto-columns: minmax(88px, 28vw);
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  #screen-app .home-agenda-days::-webkit-scrollbar {
    display: none;
  }

  #screen-app .home-agenda-day {
    min-width: 0;
    scroll-snap-align: start;
  }

  #screen-app .home-agenda-row {
    grid-template-columns: 58px minmax(0, 1fr) !important;
    gap: 10px;
  }

  #screen-app .home-agenda-row > :last-child,
  #screen-app .home-agenda-patient-actions {
    grid-column: 1 / -1;
    width: 100%;
  }

  #screen-app .home-agenda-patient-actions {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 7px;
  }

  #screen-app .home-agenda-patient-actions .btn {
    width: 100%;
  }

  /* Tablas: el documento nunca se ensancha; solo la tabla puede desplazarse */
  #screen-app .card:has(table),
  #screen-app [id$="-table"],
  #screen-app .otable-wrap,
  #screen-app .management-table-wrap,
  #screen-app .olab-grid-scroll,
  #screen-app .table-responsive,
  #screen-app [style*="overflow-x"] {
    max-width: 100%;
    overflow-x: auto !important;
    overflow-y: visible;
    overscroll-behavior-inline: contain;
    scrollbar-width: thin;
    -webkit-overflow-scrolling: touch;
  }

  #screen-app table {
    max-width: none;
  }

  #screen-app table.dtable,
  #screen-app .clinic-data-table,
  #screen-app .management-table {
    min-width: 640px;
  }

  #screen-app table th,
  #screen-app table td {
    height: auto !important;
    padding: 10px 12px !important;
    white-space: normal;
    overflow-wrap: anywhere;
  }

  #screen-app table th {
    position: static !important;
    font-size: 11px !important;
  }

  #screen-app table td,
  #screen-app table td * {
    font-size: 13px;
    line-height: 1.35;
  }

  #screen-app .management-mobile-list {
    width: 100%;
  }

  #screen-app .management-mobile-list > * {
    min-width: 0;
  }

  /* Agentes y conexiones */
  #screen-app .clinic-agent-page,
  #screen-app .clinic-agent-page-work,
  #screen-app .clinic-agent-page-list,
  #screen-app .agent-like-grid,
  #screen-app .lab-connections-grid {
    width: 100%;
    min-width: 0;
  }

  #screen-app .clinic-agent-page-switcher,
  #screen-app .clinic-agent-page-summary,
  #screen-app .agent-task-actions,
  #screen-app .clinic-agent-result-row {
    align-items: stretch;
    flex-direction: column;
  }

  #screen-app .agent-task-actions .btn,
  #screen-app .clinic-agent-result-row .btn {
    width: 100%;
  }

  /* Modales y asistentes */
  #screen-app .overlay,
  #modal-overlay,
  .overlay {
    align-items: flex-end !important;
    padding: 0 !important;
  }

  #screen-app .modal,
  #modal-overlay .modal,
  .overlay > .modal {
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
    max-height: calc(94dvh - env(safe-area-inset-top)) !important;
    margin: 0 !important;
    border-radius: 18px 18px 0 0 !important;
  }

  #screen-app .modal-top,
  #modal-overlay .modal-top {
    padding: 16px 16px 13px !important;
  }

  #screen-app .modal-top h2,
  #modal-overlay .modal-top h2 {
    font-size: 19px !important;
  }

  #screen-app .modal-body,
  #modal-overlay .modal-body {
    min-height: 0;
    padding: 15px 16px 20px !important;
    overflow-x: hidden !important;
    overflow-y: auto !important;
    -webkit-overflow-scrolling: touch;
  }

  #screen-app .modal-foot,
  #modal-overlay .modal-foot,
  #screen-app .modal-actions {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
    padding: 12px 16px calc(12px + env(safe-area-inset-bottom)) !important;
  }

  #screen-app .modal-foot .btn,
  #modal-overlay .modal-foot .btn,
  #screen-app .modal-actions .btn {
    width: 100%;
  }

  #lab-order-clinic-overlay .olab-wizard-modal,
  #lab-order-clinic-overlay .modal {
    height: 100dvh !important;
    max-height: 100dvh !important;
    border-radius: 0 !important;
  }

  #lab-order-clinic-overlay .olab-wizard-main {
    padding: 16px 46px calc(24px + env(safe-area-inset-bottom)) !important;
  }

  #lab-order-clinic-overlay .olab-step-breadcrumb > small {
    flex: 1 1 100% !important;
    text-align: left !important;
  }

  #lab-order-clinic-overlay .olab-compatible-lab-grid {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  /* Ficha del paciente */
  body.dedicated-patient-record .patient-record-layout,
  body.dedicated-patient-record .patient-workspace-body {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body.dedicated-patient-record .patient-record-header,
  body.dedicated-patient-record .patient-record-toolbar,
  body.dedicated-patient-record .patient-page-main,
  body.dedicated-patient-record .patient-page-actions,
  body.dedicated-patient-record .patient-admin-context {
    width: 100%;
    min-width: 0;
  }

  body.dedicated-patient-record .patient-record-header,
  body.dedicated-patient-record .patient-record-toolbar,
  body.dedicated-patient-record .patient-page-actions {
    align-items: stretch !important;
    flex-direction: column !important;
    gap: 9px !important;
  }

  body.dedicated-patient-record .patient-page-actions .btn,
  body.dedicated-patient-record .patient-record-toolbar .btn {
    width: 100%;
  }

  body.dedicated-patient-record .patient-orders-nav,
  body.dedicated-patient-record .patient-order-tabs {
    max-width: 100%;
    overflow-x: auto !important;
    scrollbar-width: none;
    -webkit-overflow-scrolling: touch;
  }

  body.dedicated-patient-record .patient-order-tab {
    flex: 0 0 auto;
  }

  body.dedicated-patient-record .prep-workspace-head,
  body.dedicated-patient-record .prep-workspace-toolbar,
  body.dedicated-patient-record .prep-workspace-steps {
    align-items: stretch !important;
    flex-direction: column !important;
  }

  /* Páginas autónomas: detalle OLAB, catálogo, técnico y utilidades */
  body > .main-col {
    width: 100%;
    min-width: 0;
    min-height: 100dvh;
    margin-left: 0 !important;
    overflow-x: clip;
  }

  body > .main-col > #content {
    width: 100%;
    min-width: 0;
  }

  body > .sidebar + .main-col {
    margin-left: 0 !important;
  }

  body:has(> .main-col) > .sidebar {
    display: none !important;
  }

  body > .hdr,
  body > .top,
  body > header:not(.patient-record-header) {
    width: 100%;
    padding: 12px 14px !important;
    gap: 9px;
    flex-wrap: wrap;
  }

  body > .hdr .hdr-actions,
  body > .top .actions {
    width: 100%;
    align-items: stretch;
  }

  body > .hdr .hdr-actions > *,
  body > .top .actions > * {
    flex: 1;
    justify-content: center;
  }

  body > .layout {
    display: block;
    min-height: 0;
  }

  body > .layout > .sidebar {
    position: static;
    width: 100%;
    height: auto;
    padding: 12px;
    border-right: 0;
    border-bottom: 1px solid var(--border, #dce1e6);
  }

  body > .layout > .main {
    width: 100%;
    padding: 16px 12px calc(30px + env(safe-area-inset-bottom));
    overflow: visible;
  }

  body > main,
  body > .container,
  body > .wrap {
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
    padding-right: 12px !important;
    padding-left: 12px !important;
  }

  body > main .card,
  body > .container .card,
  body > .wrap .card {
    padding: 16px;
  }

  body > main .grid,
  body > .container .grid,
  body > .wrap .grid,
  body > .container .equip-info-grid {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  body > main .actions,
  body > .container .actions,
  body > .wrap .actions,
  body > .container .pro-banner {
    align-items: stretch;
    flex-direction: column;
  }

  body > main .actions > *,
  body > .container .actions > *,
  body > .wrap .actions > * {
    width: 100%;
  }

  body > main .scroll,
  body > .container .scroll,
  body > .wrap .scroll {
    max-width: 100%;
    overflow-x: auto;
  }
}

@media (max-width: 480px) {
  :root {
    --mobile-gutter: 10px;
  }

  #mob-topbar {
    gap: 5px;
    padding-right: 9px !important;
    padding-left: 9px !important;
  }

  #mob-topbar .mobile-clinic-logo {
    flex-basis: 32px;
    width: 32px;
    height: 32px;
  }

  #mob-topbar .mobile-clinic-logo img {
    width: 32px;
    height: 32px;
  }

  #mobile-context-slot .period-nav-label {
    min-width: 58px !important;
    font-size: 10px !important;
  }

  #mobile-context-slot .period-nav-btn {
    width: 27px !important;
    min-width: 27px;
  }

  #screen-app .kpi-grid,
  #screen-app .semaforo-grid,
  #screen-app .home-metrics,
  #screen-app #patients-kpis,
  #screen-app #os-kpis,
  #screen-app .management-kpi-grid.cols-3,
  #screen-app .management-kpi-grid.cols-4,
  #screen-app .management-kpi-grid.cols-5 {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  #screen-app .management-toolbar-actions,
  #screen-app .home-agenda-patient-actions {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  #screen-app .home-agenda-days {
    grid-auto-columns: minmax(82px, 33vw);
  }

  #screen-app .home-agenda-row {
    grid-template-columns: 52px minmax(0, 1fr) !important;
  }

  #screen-app table.dtable,
  #screen-app .clinic-data-table,
  #screen-app .management-table {
    min-width: 580px;
  }

  #screen-app .olab-wizard-main,
  #lab-order-clinic-overlay .olab-wizard-main {
    padding-right: 42px !important;
    padding-left: 42px !important;
  }
}

@media (max-width: 360px) {
  #mobile-context-slot {
    display: none !important;
  }

  #mob-tabbar .mtb-item span {
    font-size: 9px;
  }

  #screen-app .page {
    padding-right: 8px !important;
    padding-left: 8px !important;
  }
}

@media (prefers-reduced-motion: reduce) {
  #screen-app *,
  #screen-app *::before,
  #screen-app *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}

/* Ajuste fino del dashboard móvil: portada compacta y agenda legible */
@media (max-width: 768px) {
  #mob-topbar #mobile-clinic-name {
    color: #667085 !important;
  }

  #mob-topbar #mobile-page-title {
    color: #172033 !important;
  }

  #page-dashboard .clinic-home-agent-hero {
    min-height: 0 !important;
    margin: 0 0 18px !important;
  }

  #page-dashboard .clinic-home-notion-bar {
    display: flex !important;
    min-height: 30px !important;
    align-items: center;
    padding: 0 2px 8px !important;
  }

  #page-dashboard .clinic-home-breadcrumb {
    display: flex;
    align-items: center;
    gap: 3px;
    min-width: 0;
    font-size: 12px !important;
  }

  #page-dashboard .clinic-home-user-slot {
    display: none !important;
  }

  #page-dashboard .clinic-home-agent-cover {
    width: 100%;
    height: 96px !important;
    min-height: 96px !important;
    border-radius: 16px !important;
    background: linear-gradient(105deg, #dcecff 0%, #eef6ff 64%, #fff 100%) !important;
  }

  #page-dashboard .clinic-home-agent-identity {
    display: flex !important;
    max-width: calc(100% - 24px);
    align-items: center;
    gap: 12px;
    margin: -30px 12px 0 !important;
  }

  #page-dashboard .clinic-home-agent-icon {
    display: grid !important;
    width: 64px !important;
    height: 64px !important;
    min-width: 64px;
    flex: 0 0 64px !important;
    place-items: center;
    border: 8px solid #fff !important;
    border-radius: 18px !important;
    background: #e8f2ff;
    box-shadow: 0 8px 22px rgba(29, 114, 201, .14);
    overflow: hidden;
  }

  #page-dashboard .clinic-home-agent-icon img,
  #page-dashboard .clinic-home-agent-icon svg {
    display: block;
    width: 42px !important;
    height: 42px !important;
    object-fit: contain;
  }

  #page-dashboard .clinic-home-agent-identity > div {
    min-width: 0;
    padding-top: 26px;
  }

  #page-dashboard .clinic-home-agent-identity > div > span {
    display: block;
    color: #145e9f;
    font-size: 10px !important;
    font-weight: 800;
    letter-spacing: .08em;
  }

  #page-dashboard .clinic-home-agent-identity h1 {
    margin: 3px 0 0 !important;
    color: #172033;
    font-size: clamp(23px, 7vw, 29px) !important;
    line-height: 1.08;
  }

  #page-dashboard .clinic-home-agent-hero > p {
    margin: 14px 3px 0 !important;
    color: #344054;
    font-size: 14px !important;
    line-height: 1.45;
  }

  #page-dashboard .home-week-agenda .home-agenda-row,
  #page-dashboard .home-week-agenda .home-agenda-row.is-unidentified {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    align-items: start !important;
    gap: 5px !important;
    min-height: 0 !important;
    padding: 13px 14px !important;
    text-align: left !important;
  }

  #page-dashboard .home-week-agenda .home-agenda-row > time,
  #page-dashboard .home-week-agenda .home-agenda-row.is-unidentified > time {
    grid-column: 1 !important;
    color: #145e9f;
    font-size: 12px !important;
    line-height: 1.35;
    white-space: normal !important;
  }

  #page-dashboard .home-week-agenda .home-agenda-row > span {
    display: grid !important;
    grid-column: 1 !important;
    gap: 5px !important;
    min-width: 0;
  }

  #page-dashboard .home-week-agenda .home-agenda-row > span > strong {
    overflow: visible !important;
    color: #172033;
    font-size: 14px !important;
    line-height: 1.3;
    text-overflow: clip !important;
    white-space: normal !important;
    overflow-wrap: anywhere;
  }

  #page-dashboard .home-week-agenda .home-agenda-row > span > small {
    width: fit-content !important;
    max-width: 100%;
    font-size: 11px !important;
    line-height: 1.25;
    white-space: normal;
  }

  #page-dashboard .home-week-agenda .home-agenda-row > b {
    display: none !important;
  }

  #page-dashboard .home-agenda-patient-actions {
    grid-column: 1 !important;
    width: 100%;
    margin-top: 4px;
  }

  #page-dashboard .home-agenda-patient-actions button {
    min-height: 44px;
    white-space: normal;
  }
}

@media (max-width: 420px) {
  #page-dashboard .home-agenda-patient-actions {
    grid-template-columns: minmax(0, 1fr) !important;
  }
}

/* Agenda móvil: casos identificados sobre blanco con señal positiva */
@media (max-width: 768px) {
  #page-dashboard .home-week-agenda .home-agenda-row:has(.is-linked) {
    position: relative;
    border: 1px solid #e3e9ef !important;
    border-left: 4px solid #12a474 !important;
    border-radius: 0 !important;
    background: #fff !important;
    box-shadow: none !important;
  }

  #page-dashboard .home-week-agenda .home-agenda-row:has(.is-linked) + .home-agenda-row:has(.is-linked) {
    border-top-color: #eef2f6 !important;
  }

  #page-dashboard .home-week-agenda .home-agenda-row .is-linked {
    display: inline-flex !important;
    width: fit-content !important;
    align-items: center;
    gap: 5px;
    padding: 4px 8px !important;
    border-radius: 999px;
    background: #e8f7f1 !important;
    color: #087a57 !important;
    font-weight: 750 !important;
  }

  #page-dashboard .home-week-agenda .home-agenda-row .is-linked::before {
    content: "✓";
    display: grid;
    width: 15px;
    height: 15px;
    place-items: center;
    border-radius: 50%;
    background: #12a474;
    color: #fff;
    font-size: 10px;
    font-weight: 900;
    line-height: 1;
  }
}


/* El título de la página vive en el encabezado móvil; los controles quedan en el contenido. */
@media(max-width:768px){
  html body #screen-app.screen.active .main>.topbar{display:none!important;margin-top:0!important}
  html body #mob-topbar #mobile-clinic-name{display:none!important}
  html body #mob-topbar #mobile-page-title{
    font-size:16px!important;white-space:normal!important;line-height:1.15!important;
    display:-webkit-box!important;-webkit-line-clamp:2;-webkit-box-orient:vertical;
  }
  html body #screen-app.screen.active .main>.page{padding-top:calc(var(--mobile-header-h) + env(safe-area-inset-top) + 12px)!important}
  html body #screen-app.screen.active .main>.page>.clinic-home-agent-hero,
  html body #screen-app.screen.active .main>.page>.clinic-home-agent-hero>.clinic-home-notion-bar{display:contents!important}
  html body #screen-app.screen.active .main>.page>.clinic-home-agent-hero .clinic-home-agent-identity,
  html body #screen-app.screen.active .main>.page>.clinic-home-agent-hero .clinic-home-agent-cover,
  html body #screen-app.screen.active .main>.page>.clinic-home-agent-hero .clinic-home-breadcrumb,
  html body #screen-app.screen.active .main>.page>.clinic-home-agent-hero .clinic-home-user-slot,
  html body #screen-app.screen.active .main>.page>.clinic-home-agent-hero>p{display:none!important}
  html body #screen-app.screen.active .main>.page>.clinic-home-agent-hero .clinic-halo-action-dock{
    margin:0 0 12px!important;padding:0!important;min-height:0!important;
  }
  html body #screen-app.screen.active .main>.page>.amway-hd .amway-hd-title,
  html body #screen-app.screen.active .main>.page>.amway-hd .amway-hd-sub{display:none!important}
}
