/* Expansión nutricional: base compartida y ajustes específicos por orientación. */
.today-category-grid,
.mobile-tracking-action {
  display: none;
}

/* Teléfono y tableta vertical: escala aumentada de Seguimiento de hoy. */
@media (max-width: 720px), (min-width: 721px) and (max-width: 1023px) and (orientation: portrait) {
  .page-resumen .tracking-group .desktop-tracking-grid .compact-tracking-card {
    grid-template-columns: clamp(38px, 6.25vw, 48px) minmax(0, 1fr) !important;
    min-height: clamp(80px, 15vw, 96px) !important;
    padding: 6px clamp(7px, 1.5vw, 12px) !important;
    gap: 0 clamp(7px, 1.25vw, 10px) !important;
  }
  .page-resumen .tracking-group .desktop-tracking-grid .compact-tracking-card .tracking-icon {
    width: clamp(38px, 6.25vw, 48px) !important;
    height: clamp(38px, 6.25vw, 48px) !important;
  }
  .page-resumen .tracking-group .desktop-tracking-grid .compact-tracking-card .tracking-icon .asset-icon {
    width: clamp(36px, 6vw, 46px) !important;
    height: clamp(36px, 6vw, 46px) !important;
  }
  .page-resumen .tracking-group .desktop-tracking-grid .compact-tracking-card .tracking-name {
    font-size: clamp(15px, 1.8125vw, 18px) !important;
    line-height: 1.1 !important;
  }
  .page-resumen .tracking-group .desktop-tracking-grid .compact-tracking-card .tracking-value {
    margin-top: 3px !important;
    font-size: clamp(20px, 2.5vw, 25px) !important;
    line-height: 1 !important;
    letter-spacing: -.035em !important;
  }
}

/* Registro rápido: base compartida para escritorio, teléfono y tablet. */
.quick-tracking-form { display: grid; gap: 12px; }
.quick-tracking-section { display: grid; gap: 0; }
.quick-tracking-section {
  overflow: hidden;
  padding: 0;
  border: 1px solid rgba(31, 68, 94, .78);
  border-radius: 14px;
  background: rgba(5, 23, 39, .66);
}
.quick-tracking-section > h3 {
  margin: 0;
  padding: 9px 11px 7px;
  border-bottom: 1px solid rgba(31, 68, 94, .62);
  background: rgba(9, 34, 53, .58);
}
.quick-tracking-section .register-field {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 112px;
  align-items: center;
  gap: 10px;
  min-height: 62px;
  margin: 0;
  padding: 8px 10px;
  border: 0;
  border-bottom: 1px solid rgba(31, 68, 94, .54);
  border-radius: 0;
  background: transparent;
}
.quick-tracking-section .register-field:last-child { border-bottom: 0; }
.quick-tracking-section .register-field > span:first-child { color: #c7d2df; font-size: 13px; font-weight: 700; }
.quick-tracking-section .register-input { min-width: 0; min-height: 42px; padding: 5px 8px; border: 1px solid #1b4865; border-radius: 11px; background: #031321; }
.quick-tracking-section .register-input > span { display: grid; width: 27px; height: 27px; flex: 0 0 27px; place-items: center; }
.quick-tracking-section .register-input .asset-icon { width: 27px; height: 27px; object-fit: contain; }
.quick-tracking-section .register-input input { min-width: 0; width: 100%; min-height: 30px; padding: 0 4px; border: 0; background: transparent; color: #f1f7ff; font-size: 15px; text-align: center; box-shadow: none; }
.quick-tracking-field {
  min-height: 62px;
  display: grid;
  grid-template-columns: 32px minmax(0, 1fr) 86px;
  align-items: center;
  gap: 9px;
  padding: 8px 10px;
  border-bottom: 1px solid rgba(31, 68, 94, .54);
  border-radius: 0;
  background: transparent;
}
.quick-tracking-field:last-child { border-bottom: 0; }
.quick-tracking-icon { display: grid; width: 32px; height: 32px; place-items: center; }
.quick-tracking-icon .asset-icon { width: 31px; height: 31px; object-fit: contain; }
.quick-tracking-field > span:nth-child(2) { min-width: 0; display: grid; gap: 2px; }
.quick-tracking-field small { color: #94a8bd; font-size: 12px; line-height: 1.35; }
.quick-tracking-field input { min-width: 0; width: 100%; min-height: 44px; padding: 6px 8px; border: 1px solid #1b4865; border-radius: 10px; background: #031321; color: #f1f7ff; font-size: 15px; text-align: center; }
.quick-tracking-counter { grid-template-columns: 32px minmax(0, 1fr) 42px 94px; }
.quick-tracking-counter > input { padding-inline: 2px; border: 0; background: transparent; }
.quick-counter-inline { display: grid; grid-template-columns: repeat(2, 42px); gap: 10px; transform: translateX(-4px); }
.quick-counter-inline button { min-width: 42px; min-height: 42px; border: 1px solid #1c506f; border-radius: 10px; background: #071b2d; color: #23c9e8; font-size: 20px; touch-action: manipulation; }
.quick-counter-inline button:first-child { color: #ff5964; }

.quick-tracking-field { min-width: 0; margin: 0; }
.quick-tracking-field strong { font-size: 14px; line-height: 1.3; overflow-wrap: anywhere; }
.quick-tracking-field input:focus-visible,
.quick-counter-inline button:focus-visible { outline: 2px solid #23c9e8; outline-offset: 2px; }
.quick-tracking-section > h3 { font-size: 16px; line-height: 1.4; }

/* El formulario y sus iconos también existen fuera del modo móvil. */
@media (min-width: 1024px), (min-width: 721px) and (orientation: landscape) {
  .quick-tracking-modal { display: flex; flex-direction: column; overflow: hidden; }
  .quick-tracking-modal .modal-body { min-height: 0; overflow-y: auto; overscroll-behavior: contain; }
  .quick-tracking-modal .modal-head,
  .quick-tracking-modal .modal-actions { flex-shrink: 0; }
  .quick-tracking-modal .modal-actions { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px; }
  .quick-tracking-modal .modal-actions button { width: 100%; min-height: 48px; margin: 0; }
  .quick-tracking-form { gap: 20px; }
  .quick-tracking-section > h3 { padding: 13px 16px; font-size: 17px; }
  .quick-tracking-field { min-height: 72px; grid-template-columns: 40px minmax(0, 1fr) 120px; padding: 12px 16px; gap: 14px; }
  .quick-tracking-icon, .quick-tracking-icon .asset-icon { width: 36px; height: 36px; }
  .quick-tracking-field strong { font-size: 15px; }
  .quick-tracking-counter { grid-template-columns: 40px minmax(0, 1fr) 48px 98px; }
  .quick-counter-inline { grid-template-columns: repeat(2, 44px); transform: none; }
  .quick-counter-inline button { min-width: 44px; min-height: 44px; }
  .quick-tracking-section .register-field { min-height: 72px; padding: 12px 16px; grid-template-columns: minmax(0, 1fr) 160px; }
}

/* Legibilidad mínima en teléfono y tablet vertical. Se limita a textos de
   apoyo; títulos, valores y geometría principal conservan su escala actual. */
@media (max-width: 720px), (min-width: 721px) and (max-width: 1023px) and (orientation: portrait) {
  .calculator-plan-summary small,
  .calculator-plan-summary > b,
  .calculator-track-choice small,
  .calculator-apply-choice,
  .target-result-modal .calculation-note,
  .quick-tracking-field small { font-size: 12px !important; line-height: 1.35 !important; }
  .calculator-goal-value b,
  .page-progreso .progress-mobile-kpis small,
  .page-progreso .progress-mobile-kpis span,
  .page-progreso .progress-chart-card p,
  .page-progreso .chart-legend,
  .progress-nutrition-row > div small { font-size: 12px !important; line-height: 1.3 !important; }
  .page-progreso .progress-mobile-care small,
  .page-progreso .progress-mobile-care em,
  .page-progreso .progress-mobile-care b { font-size: 11px !important; line-height: 1.3 !important; }
}

/* El entrenamiento debe preceder al comparador en el resumen de progreso.
   Este override vive aquí porque este archivo se carga después del layout
   adaptativo y era el que fijaba el comparador en una fila anterior. */
@media (min-width: 721px) and (orientation: landscape) {
  .page-progreso .progress-screen.mode-summary > .metric-entrenamiento {
    grid-column: 1 / -1 !important;
    grid-row: auto !important;
  }
.page-progreso .progress-screen.mode-summary > .progress-compare {
    grid-column: 1 / -1 !important;
    grid-row: auto !important;
    order: 50 !important;
  }
}


/* Paridad funcional en pantallas amplias. La composición vertical anterior no
   participa en estas reglas: tablet horizontal y escritorio ordenan el mismo
   contenido en tableros de mayor ancho. */
.language-choice-list {
  display: grid;
  gap: 10px;
}

.language-choice {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 30px;
  align-items: center;
  width: 100%;
  min-height: 70px;
  padding: 12px 16px;
  gap: 14px;
  border: 1px solid var(--line, #173650);
  border-radius: 15px;
  background: rgba(5, 23, 39, .76);
  color: inherit;
  text-align: left;
}

.language-choice > span { display: grid; gap: 4px; }
.language-choice strong { font-size: 16px; }
.language-choice small { color: var(--muted, #8190a5); font-size: 14px; line-height: 1.35; }
.language-choice > b { display: grid; width: 28px; height: 28px; place-items: center; border-radius: 50%; color: #031321; }
.language-choice.active { border-color: #16b9d4; background: linear-gradient(100deg, rgba(11, 73, 98, .9), rgba(11, 53, 73, .9)); }
.language-choice.active > b { background: #22d3ee; }

.comparison-sheet { width: min(920px, calc(100vw - 28px)); max-width: 920px; }
.comparison-overview { display: grid; gap: 5px; margin-bottom: 16px; padding: 15px 17px; border: 1px solid #1b526f; border-radius: 16px; background: linear-gradient(110deg, rgba(13, 75, 112, .48), rgba(5, 35, 56, .7)); }
.comparison-overview strong { font-size: 18px; }
.comparison-overview span { color: #34ccdf; font-size: 14px; }
.comparison-overview small { color: var(--muted, #91a2b7); font-size: 13px; line-height: 1.4; }
.comparison-head,
.comparison-row { display: grid; grid-template-columns: minmax(180px, 1.4fr) minmax(100px, .75fr) minmax(100px, .75fr) minmax(145px, 1fr); align-items: center; gap: 14px; }
.comparison-head { padding: 0 15px 8px; color: #8fa2b8; font-size: 12px; font-weight: 800; letter-spacing: .04em; text-transform: uppercase; }
.previous-period-row.comparison-row { min-height: 78px; padding: 12px 15px; border-left-width: 4px; }
.comparison-row.better { border-left-color: #31d482; }
.comparison-row.worse { border-left-color: #ff6c72; }
.comparison-row.same { border-left-color: #8293a8; }
.comparison-row.neutral { border-left-color: #31bddd; }
.comparison-row.unknown { border-left-color: #52677c; }
.comparison-row > b { font-size: 16px; text-align: left; }
.comparison-metric strong { font-size: 15px; }
.comparison-metric span,
.comparison-result span { margin-top: 4px; color: var(--muted, #91a2b7); font-size: 12px; line-height: 1.3; }
.comparison-result strong { font-size: 14px; }
.comparison-row.better .comparison-result strong { color: #47dc91; }
.comparison-row.worse .comparison-result strong { color: #ff858a; }
.comparison-row.neutral .comparison-result strong { color: #34c9e0; }

@media (min-width: 721px) and (orientation: landscape), (min-width: 1200px) {
  .content,
  .content:has(.android-summary-stack),
  .content:has(.registration-stack),
  .content:has(.progress-screen),
  .content:has(.settings-screen) {
    max-inline-size: none !important;
    margin-inline: 0 !important;
  }

  .page-resumen .desktop-tracking-grid { display: grid !important; }
  .page-resumen .today-category-grid { display: none !important; }
  .page-resumen .today-category-card {
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr);
    grid-template-areas: "icon name" "icon value" "detail detail" "progress progress";
    align-items: center;
    min-width: 0;
    min-height: 116px;
    padding: 16px;
    gap: 4px 12px;
    border: 1px solid var(--q-line, #1b4564);
    border-radius: 18px;
    background: linear-gradient(145deg, #0b2033, #061524);
    color: inherit;
    text-align: left;
  }
  .page-resumen .today-category-card .tracking-icon { grid-area: icon; width: 46px !important; height: 46px !important; }
  .page-resumen .today-category-card .tracking-icon .asset-icon { width: 42px !important; height: 42px !important; }
  .page-resumen .today-category-card .tracking-name { grid-area: name; color: var(--q-muted, #91a2b7); font-size: 13px; font-weight: 750; }
  .page-resumen .today-category-card .tracking-value { grid-area: value; min-width: 0; font-size: 17px; line-height: 1.15; }
  .page-resumen .today-category-card > small { grid-area: detail; margin-top: 8px; color: var(--q-muted, #91a2b7); font-size: 12px; }
  .page-resumen .today-category-card .tracking-progress { grid-area: progress; margin-top: 5px; }

  .page-resumen .summary-kcal { min-width: 0; }
  .page-resumen .summary-kcal strong { flex: 0 1 auto; min-width: 0; }
  .page-resumen .summary-kcal span { flex: 0 0 auto; }
  .page-resumen .weekly-rows p > span { padding-right: 12px; }

  .page-registro .registration-stack {
    width: 100% !important;
    grid-template-columns: minmax(280px, .9fr) minmax(380px, 1.1fr) !important;
    gap: 20px !important;
  }
  .page-registro .registration-food-panel,
  .page-registro .registration-fields,
  .page-registro .history-section { padding: 20px !important; }
  .page-registro .history-row { min-height: 78px !important; padding-block: 11px !important; }
  .page-registro .history-copy { min-width: 0; }
  .page-registro .history-other-summary { color: #24c4dc; font-size: 12px; white-space: nowrap; }
  .page-registro .history-values { min-width: 154px; justify-content: flex-end; }

  .unified-goals-sheet {
    width: min(1040px, calc(100vw - 56px)) !important;
    max-width: 1040px !important;
    max-height: min(90dvh, 900px) !important;
  }
  .unified-goals-sheet .modal-body {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    align-items: start;
    gap: 14px;
  }
  .unified-goals-sheet .planner-launch {
    min-height: 82px;
    padding: 15px 18px;
    border: 1px solid #1f607f;
    border-radius: 17px;
    background: linear-gradient(120deg, rgba(16, 92, 148, .38), rgba(8, 154, 177, .24));
    color: inherit;
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) auto;
    align-items: center;
    gap: 13px;
    text-align: left;
  }
  .unified-goals-sheet .planner-launch > span:nth-child(2) { display: grid; gap: 4px; }
  .unified-goals-sheet .planner-launch strong { font-size: 17px; }
  .unified-goals-sheet .planner-launch small { color: var(--q-muted, #91a2b7); font-size: 13px; }
  .unified-goals-sheet .mobile-goal-section {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(215px, 1fr));
    align-content: start;
    gap: 10px;
    padding: 16px;
    border: 1px solid var(--q-line, #1b4564);
    border-radius: 18px;
    background: rgba(4, 20, 38, .44);
  }
  .unified-goals-sheet .mobile-goal-section > h3 { grid-column: 1 / -1; margin: 0 0 3px; color: #9caec1; font-size: 13px; letter-spacing: .07em; text-transform: uppercase; }
  .unified-goals-sheet .mobile-goal-control {
    display: grid;
    grid-template-columns: 44px minmax(0, 1fr);
    align-items: center;
    min-width: 0;
    min-height: 128px;
    padding: 13px;
    gap: 11px;
    border: 1px solid #183c58;
    border-radius: 15px;
    background: #061526;
  }
  .unified-goals-sheet .mobile-goal-control.is-disabled { opacity: .58; }
  .unified-goals-sheet .mobile-goal-control > .settings-row-icon,
  .unified-goals-sheet .mobile-goal-control > .settings-row-icon .asset-icon { width: 42px; height: 42px; }
  .unified-goals-sheet .mobile-goal-copy { display: grid; min-width: 0; gap: 8px; }
  .unified-goals-sheet .mobile-goal-copy > strong { font-size: 16px; }
  .unified-goals-sheet :is(.goal-track-switch, .goal-target-line, .goal-target-line > label, .goal-target-line > span) { display: flex; align-items: center; gap: 6px; }
  .unified-goals-sheet .goal-track-switch { color: #a8b5c6; font-size: 13px; }
  .unified-goals-sheet .goal-target-line { justify-content: space-between; color: #d0d8e2; font-size: 13px; }
  .unified-goals-sheet .goal-target-line input[data-mobile-goal-value] { width: 88px; min-height: 44px; padding: 7px 9px; border: 1px solid #1a4967; border-radius: 10px; background: #031321; color: #ecf7ff; font-size: 15px; text-align: center; }
  .unified-goals-sheet .modal-actions { position: sticky; bottom: 0; display: block !important; width: 100%; background: linear-gradient(180deg, transparent, #06172a 30%); }
  .unified-goals-sheet .modal-actions .primary { width: 100%; }

  .language-sheet { width: min(540px, calc(100vw - 56px)) !important; }

  .page-ajustes .settings-config-panel {
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
    overflow: visible !important;
  }
  .page-ajustes .settings-config-panel .settings-menu {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 16px !important;
    border: 0 !important;
    overflow: visible !important;
  }
  .page-ajustes .settings-config-panel .settings-menu-row {
    width: 100% !important;
    min-height: 132px !important;
    margin: 0 !important;
    padding: 20px !important;
    border: 1px solid var(--q-line, #1b4564) !important;
    border-radius: 18px !important;
    background: var(--q-panel, #07192a) !important;
  }
  .page-ajustes .settings-config-panel .settings-menu-row:hover,
  .page-ajustes .settings-config-panel .settings-menu-row:focus-visible {
    border-color: #1b9dc1 !important;
    background: linear-gradient(125deg, #0b2b43, #082238) !important;
    outline: 0;
  }
  .page-ajustes .settings-row-copy small { font-size: 15px !important; line-height: 1.45; }
  .page-ajustes .settings-row-copy strong { font-size: 19px !important; }
  .page-ajustes .account-identity-copy small { font-size: 15px !important; }
  .sidebar .nav-item { font-size: 15px; }
  .progress-desktop-nav-item b { font-size: 13px !important; }
  .page-progreso :is(.progress-wide-copy span, .progress-nutrition-row small, .progress-nutrition-summary header small) { font-size: 13px !important; }
  .page-registro :is(.history-copy small, .history-other-summary, .register-field > span) { font-size: 13px !important; }
  .modal-head p { font-size: 15px !important; line-height: 1.45; }
  .language-choice small { font-size: 14px; }

  .page-progreso .progress-screen.mode-summary > .progress-nutrition-summary {
    grid-column: 1 / -1 !important;
    grid-row: 4 !important;
    overflow: hidden;
    border: 1px solid var(--q-line, #1b4564);
    border-radius: 20px;
    background: var(--q-panel, #07192a);
  }
  .page-progreso .progress-nutrition-summary > header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    min-height: 76px;
    padding: 14px 18px;
    border-bottom: 1px solid var(--q-line, #1b4564);
  }
  .page-progreso .progress-nutrition-summary > header > div { display: flex; align-items: center; gap: 12px; }
  .page-progreso .progress-nutrition-summary > header > div > span { display: grid; gap: 3px; }
  .page-progreso .progress-nutrition-summary > header .asset-icon { width: 42px; height: 42px; }
  .page-progreso .progress-nutrition-summary > header small { color: var(--q-muted, #91a2b7); font-size: 12px; font-weight: 800; }
  .page-progreso .progress-nutrition-summary > header strong { font-size: 18px; }
  .page-progreso .progress-nutrition-summary > header > b { color: #20c9df; font-size: 13px; }
  .page-progreso .progress-nutrition-summary > div { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .page-progreso .progress-nutrition-row {
    display: grid;
    grid-template-columns: 38px minmax(0, 1fr) auto 12px;
    align-items: center;
    min-width: 0;
    min-height: 80px;
    padding: 12px 14px;
    gap: 10px;
    border: 0;
    border-right: 1px solid var(--q-line, #1b4564);
    border-bottom: 1px solid var(--q-line, #1b4564);
    background: transparent;
    color: inherit;
    text-align: left;
  }
  .page-progreso .progress-nutrition-row:nth-child(3n) { border-right: 0; }
  .page-progreso .progress-nutrition-row > span { display: grid; width: 38px; height: 38px; place-items: center; }
  .page-progreso .progress-nutrition-row .asset-icon { width: 35px; height: 35px; }
  .page-progreso .progress-nutrition-row > div { display: grid; min-width: 0; gap: 3px; }
  .page-progreso .progress-nutrition-row > div strong { font-size: 14px; }
  .page-progreso .progress-nutrition-row > div small { color: var(--q-muted, #91a2b7); font-size: 11px; }
  .page-progreso .progress-nutrition-row > b { font-size: 14px; white-space: nowrap; }
  .page-progreso .progress-nutrition-row > i { color: #5a809d; font-size: 20px; font-style: normal; }

  .page-progreso .progress-screen { max-inline-size: none !important; }
  .page-progreso .progress-screen.mode-summary {
    grid-template-columns: repeat(4, minmax(0, 1fr)) !important;
    gap: 16px !important;
  }
  .page-progreso .progress-screen.mode-summary > .progress-wide-card,
  .page-progreso .progress-screen.mode-summary > .progress-mini-grid > .progress-mini-card {
    min-height: 132px !important;
    padding: 17px !important;
  }
  .page-progreso .progress-screen.mode-summary > .progress-wide-card.metric-calorias { grid-column: 1 !important; grid-row: 3 !important; }
  .page-progreso .progress-screen.mode-summary > .progress-wide-card.metric-peso { grid-column: 2 !important; grid-row: 3 !important; }
  .page-progreso .progress-screen.mode-summary > .progress-wide-card.metric-agua { grid-column: 3 !important; grid-row: 3 !important; }
  .page-progreso .progress-screen.mode-summary > .progress-wide-card.metric-cintura { grid-column: 4 !important; grid-row: 3 !important; }
  .page-progreso .progress-screen.mode-summary > .progress-wide-card.metric-cuidado-personal { grid-column: 1 / 3 !important; grid-row: 5 !important; }
  .page-progreso .progress-screen.mode-summary > .progress-wide-card.metric-actividad {
    grid-column: 1 / -1 !important;
    grid-row: 6 !important;
    justify-self: center !important;
    width: min(50%, 620px) !important;
    min-width: 320px !important;
    justify-content: center !important;
  }
  .page-progreso .progress-screen.mode-summary > .progress-wide-card.metric-actividad .progress-wide-copy {
    flex: 0 1 auto !important;
    text-align: center !important;
  }
  .page-progreso .progress-screen.mode-summary > .metric-entrenamiento {
    grid-column: 3 / 5 !important;
    grid-row: 5 !important;
    order: 40 !important;
  }
  .page-progreso .progress-screen.mode-summary > .progress-compare {
    position: relative !important;
    grid-column: 1 / -1 !important;
    grid-row: 7 !important;
    order: 50 !important;
    width: 100% !important;
    min-height: 56px !important;
    margin: 0 !important;
    padding: 0 52px 0 20px !important;
    border-radius: 16px !important;
    font-size: 14px !important;
    box-shadow: none !important;
  }
  .page-progreso .progress-screen.mode-summary > .progress-compare::before { display: none !important; }
  .page-progreso .progress-screen.mode-summary > .progress-compare::after {
    right: 18px !important;
    font-size: 25px !important;
  }

  .page-progreso .progress-screen:has(.progress-nutrition-chart) {
    display: grid !important;
    grid-template-columns: minmax(260px, .42fr) minmax(0, 1fr) !important;
    gap: 18px !important;
  }
  .page-progreso .progress-screen:has(.progress-nutrition-chart) > .progress-desktop-periods { grid-column: 1 / -1; }
  .page-progreso .progress-screen:has(.progress-nutrition-chart) > .progress-wide-card { grid-column: 1; margin: 0; min-height: 150px; }
  .page-progreso .progress-screen:has(.progress-nutrition-chart) > .progress-mobile-kpis { grid-column: 1; display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; margin: 0 !important; }
  .page-progreso .progress-screen:has(.progress-nutrition-chart) > .progress-chart-card { grid-column: 2; grid-row: 2 / span 2; min-height: 500px; margin: 0; }
  .page-progreso .progress-nutrition-chart .progress-chart-wide { display: block !important; width: 100% !important; height: auto !important; }
  .page-progreso .progress-nutrition-chart .progress-chart-compact { display: none !important; }
  .page-progreso .progress-nutrition-chart .chart-legend .neutral,
  .page-progreso .progress-nutrition-chart .chart-legend .below { color: var(--progress-under, #38c9eb) !important; }
  .page-progreso .progress-nutrition-chart .chart-legend .complete { color: var(--progress-goal, #42dfb2) !important; }
  .page-progreso .progress-nutrition-chart .chart-legend .over { color: var(--progress-over, #9b6be8) !important; }

  .modal-backdrop:has(.unified-goals-sheet),
  .modal-backdrop:has(.language-sheet) { align-items: center !important; padding: 28px !important; }

  .progress-choice-groups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 14px; }
  .progress-choice-groups section { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-content: start; gap: 9px; }
  .progress-choice-groups h3 { grid-column: 1 / -1; margin: 2px; color: #8ea0b6; font-size: 12px; letter-spacing: .06em; text-transform: uppercase; }
  .progress-choice-groups .progress-choice { min-width: 0; min-height: 58px; margin: 0; padding: 8px 12px; }
}

.registration-category {
  display: contents;
}

.registration-category > h3 {
  display: none;
}

@media (max-width: 720px), (min-width: 721px) and (max-width: 1023px) and (orientation: portrait) {
  .comparison-sheet { width: 100% !important; }
  .comparison-head { display: none; }
  .previous-period-row.comparison-row {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    grid-template-areas: "metric result" "current previous";
    gap: 12px 14px;
    min-height: 0;
    padding: 14px;
  }
  .comparison-metric { grid-area: metric; }
  .comparison-result { grid-area: result; text-align: right; }
  .comparison-row > b { position: relative; padding-top: 18px; font-size: 16px; }
  .comparison-row > b:nth-of-type(1) { grid-area: current; }
  .comparison-row > b:nth-of-type(2) { grid-area: previous; }
  .comparison-row > b:nth-of-type(1)::before,
  .comparison-row > b:nth-of-type(2)::before { position: absolute; top: 0; left: 0; color: #8799ae; font-size: 10px; font-weight: 800; letter-spacing: .05em; text-transform: uppercase; }
  .comparison-row > b:nth-of-type(1)::before { content: "Actual"; }
  .comparison-row > b:nth-of-type(2)::before { content: "Anterior"; }
  html[lang="en"] .comparison-row > b:nth-of-type(1)::before { content: "Current"; }
  html[lang="en"] .comparison-row > b:nth-of-type(2)::before { content: "Previous"; }
  .comparison-overview strong { font-size: 17px; }
  .comparison-overview span { font-size: 13px; }
  .comparison-overview small { font-size: 12px; }
  .page-resumen .today-category-card :is(.tracking-name, small),
  .page-progreso :is(.progress-wide-copy small, .progress-wide-copy span, .progress-mini-card span),
  .page-registro :is(.register-field > span, .history-copy small) { font-size: 12px !important; line-height: 1.35; }
}

@media (max-width: 720px), (min-width: 721px) and (max-width: 1023px) and (orientation: portrait) {
  .portrait-hidden-setting,
  .desktop-tracking-action,
  .desktop-tracking-grid {
    display: none !important;
  }

  .mobile-tracking-action {
    display: inline-flex;
  }

  .today-category-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .today-category-card {
    min-width: 0;
    min-height: 108px;
    padding: 12px;
    border: 1px solid var(--line, #173650);
    border-radius: 14px;
    background: linear-gradient(145deg, rgba(12, 37, 57, .94), rgba(5, 22, 37, .98));
    color: inherit;
    display: grid;
    grid-template-columns: 28px minmax(0, 1fr);
    grid-template-areas:
      "icon name"
      "icon value"
      "detail detail"
      "progress progress";
    gap: 3px 8px;
    text-align: left;
  }

  .today-category-card .tracking-icon { grid-area: icon; align-self: center; }
  .today-category-card .tracking-name { grid-area: name; color: var(--muted, #8190a5); font-size: 12px; font-weight: 700; }
  .today-category-card .tracking-value { grid-area: value; font-size: 15px; line-height: 1.15; white-space: normal; }
  .today-category-card > small { grid-area: detail; color: var(--muted, #8190a5); font-size: 10px; margin-top: 4px; }
  .today-category-card .tracking-progress { grid-area: progress; margin-top: 4px; }

  .nutrient-glyph {
    width: 24px;
    height: 24px;
    border-radius: 8px;
    display: inline-grid;
    place-items: center;
    color: #22d3ee;
    background: rgba(8, 145, 178, .16);
    border: 1px solid rgba(34, 211, 238, .22);
    font-size: 9px;
    font-weight: 800;
  }

  .registration-grid {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
  }

  .registration-category {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 9px;
    padding: 12px;
    border: 1px solid rgba(31, 68, 94, .8);
    border-radius: 15px;
    background: rgba(6, 24, 40, .6);
  }

  .registration-category > h3 {
    display: block;
    grid-column: 1 / -1;
    margin: 0 0 2px;
    font-size: 13px;
    color: #c7d2df;
  }

  .registration-category .register-field,
  .registration-category .counter-field {
    min-width: 0;
  }

  .page-registro .registration-category {
    gap: 7px;
    padding: 10px;
  }

  .page-registro .registration-category .register-field,
  .page-registro .registration-category .counter-field {
    grid-template-rows: auto minmax(54px, auto) !important;
    gap: 5px !important;
  }

  .page-registro .registration-category .register-input,
  .page-registro .registration-category .counter-input {
    min-height: 54px !important;
  }

  .page-registro .registration-category .register-input > span,
  .page-registro .registration-category .register-input .asset-icon,
  .page-registro .registration-category .counter-glyph,
  .page-registro .registration-category .counter-glyph .asset-icon {
    width: 28px !important;
    height: 28px !important;
    flex-basis: 28px !important;
  }

  .page-registro .registration-category .register-input input { font-size: 19px !important; }
  .page-registro .registration-category .counter-actions { grid-template-columns: repeat(2, 40px) !important; gap: 8px !important; }
  .page-registro .registration-category .counter-button { width: 40px !important; height: 40px !important; }
  .page-registro .registration-category .counter-button.minus { color: #ff5964 !important; }

  .mobile-goals-sheet .modal-body,
  .quick-tracking-modal .modal-body {
    display: grid;
    gap: 12px;
  }

  .planner-launch {
    width: 100%;
    min-height: 68px;
    padding: 12px;
    border-radius: 15px;
    border: 1px solid rgba(34, 211, 238, .5);
    background: linear-gradient(120deg, rgba(16, 92, 148, .38), rgba(8, 154, 177, .24));
    color: inherit;
    display: grid;
    grid-template-columns: 34px minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    text-align: left;
  }

  .planner-launch span:nth-child(2) { display: grid; gap: 3px; }
  .planner-launch strong { font-size: 15px; line-height: 1.2; }
  .planner-launch small { color: var(--muted, #8190a5); font-size: 12px; line-height: 1.3; }
  .planner-launch > b { font-size: 17px; }

  .mobile-goal-section {
    display: grid;
    gap: 8px;
  }

  .mobile-goal-section > h3,
  .quick-tracking-section > h3 {
    margin: 4px 2px 0;
    color: #8fa0b6;
    font-size: 12px;
    letter-spacing: .08em;
    text-transform: uppercase;
  }

  .mobile-goal-control {
    display: grid;
    grid-template-columns: 46px minmax(0, 1fr);
    align-items: center;
    gap: 12px;
    min-height: 116px;
    padding: 13px 14px;
    border: 1px solid rgba(31, 68, 94, .75);
    border-radius: 14px;
    background: rgba(5, 23, 39, .76);
  }

  .mobile-goal-control.is-disabled { opacity: .58; }
  .mobile-goal-control > .settings-row-icon {
    align-self: center;
    justify-self: start;
    width: 46px;
    height: 46px;
    margin: 0;
  }
  .mobile-goal-control > .settings-row-icon .asset-icon { width: 42px; height: 42px; }
  .mobile-goal-copy { min-width: 0; display: grid; gap: 9px; }
  .mobile-goal-copy > strong { color: #e1e7f0; font-size: 16px; line-height: 1.2; }
  .goal-track-switch,
  .goal-target-line,
  .goal-target-line > label,
  .goal-target-line > span { display: flex; align-items: center; gap: 6px; }
  .goal-track-switch { color: #a8b5c6; font-size: 13px; line-height: 1.25; }
  .goal-target-line { justify-content: space-between; color: #d0d8e2; font-size: 13px; line-height: 1.25; }
  .goal-track-switch input,
  .goal-target-line > label input { width: 18px; height: 18px; flex: 0 0 18px; }
  .goal-target-line input[type="number"],
  .goal-target-line input[data-mobile-goal-value] {
    width: 84px;
    min-height: 42px;
    padding: 7px 10px;
    text-align: center;
    color: #ecf7ff;
    font-size: 15px;
    border: 1px solid #1a4967;
    border-radius: 9px;
    background: #031321;
  }

  .calculator-plan-summary {
    display: grid;
    grid-template-columns: 42px minmax(0, 1fr) auto;
    align-items: center;
    gap: 10px;
    min-height: 70px;
    padding: 10px 12px;
    border: 1px solid rgba(31, 68, 94, .82);
    border-radius: 15px;
    background: linear-gradient(145deg, rgba(9, 35, 55, .94), rgba(4, 19, 33, .98));
  }
  .calculator-plan-summary > span { display: grid; width: 42px; height: 42px; place-items: center; }
  .calculator-plan-summary .asset-icon { width: 40px; height: 40px; object-fit: contain; }
  .calculator-plan-summary > div { min-width: 0; display: grid; gap: 2px; }
  .calculator-plan-summary small { color: #8fa0b6; font-size: 10px; }
  .calculator-plan-summary strong { color: #f1f7ff; font-size: 17px; line-height: 1.15; }
  .calculator-plan-summary > b { max-width: 86px; color: #20cfe4; font-size: 10px; line-height: 1.2; text-align: right; }

  .calculator-goal-choices {
    display: grid;
    gap: 0;
    overflow: hidden;
    border: 1px solid rgba(31, 68, 94, .82);
    border-radius: 15px;
    background: rgba(5, 23, 39, .72);
  }
  .calculator-goal-choice {
    display: grid;
    grid-template-columns: 32px minmax(0, 1fr) 94px;
    grid-template-areas: "icon track apply" "icon value value";
    align-items: center;
    gap: 6px 9px;
    min-height: 82px;
    padding: 10px 11px;
    border: 0;
    border-bottom: 1px solid rgba(31, 68, 94, .62);
    border-radius: 0;
    background: transparent;
  }
  .calculator-goal-choice:last-child { border-bottom: 0; }
  .calculator-goal-choice.is-disabled { opacity: .55; }
  .calculator-goal-icon { grid-area: icon; display: grid; width: 32px; height: 32px; place-items: center; }
  .calculator-goal-icon .asset-icon { width: 31px; height: 31px; object-fit: contain; }
  .calculator-track-choice { grid-area: track; display: flex; align-items: center; gap: 8px; }
  .calculator-track-choice > span { display: grid; gap: 2px; }
  .calculator-track-choice small { color: #8190a5; font-size: 10px; }
  .calculator-apply-choice { grid-area: apply; display: flex; align-items: center; justify-content: flex-end; gap: 5px; font-size: 10px; white-space: nowrap; }
  .calculator-goal-value { grid-area: value; display: flex; align-items: center; gap: 7px; }
  .calculator-goal-value input { flex: 1; min-width: 0; min-height: 38px; padding: 6px 9px; border-color: #1b4865; border-radius: 10px; background: #031321; color: #ecf7ff; text-align: center; }
  .calculator-goal-value b { min-width: 34px; color: #8fa0b6; font-size: 11px; }

  .multi-editor-modal {
    display: flex !important;
    flex-direction: column !important;
    max-height: 94dvh !important;
    overflow: hidden !important;
  }
  .multi-editor-modal .modal-body { min-height: 0; overflow-y: auto; overscroll-behavior: contain; }
  .multi-editor-modal .modal-actions {
    position: sticky !important;
    bottom: 0 !important;
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    gap: 10px !important;
    padding: 12px 18px calc(16px + env(safe-area-inset-bottom)) !important;
    background: linear-gradient(180deg, transparent, #06182d 18%) !important;
  }
  .multi-editor-modal .modal-actions button { width: 100% !important; min-height: 54px !important; margin: 0 !important; border-radius: 16px !important; }

  .history-edit-modal .modal-body { padding: 13px 12px 7px !important; }
  .history-edit-modal #history-edit-form { display: grid; gap: 10px; }
  .history-edit-modal .registration-grid {
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 10px !important;
  }
  .history-edit-modal .registration-category {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 0 !important;
    overflow: hidden !important;
    padding: 0 !important;
    border: 1px solid rgba(31, 68, 94, .78) !important;
    border-radius: 14px !important;
    background: rgba(5, 23, 39, .66) !important;
  }
  .history-edit-modal .registration-category > h3 {
    display: block !important;
    grid-column: 1 !important;
    margin: 0 !important;
    padding: 9px 11px 7px !important;
    border-bottom: 1px solid rgba(31, 68, 94, .62) !important;
    background: rgba(9, 34, 53, .58) !important;
    color: #8fa0b6 !important;
    font-size: 10px !important;
    letter-spacing: .08em !important;
    text-transform: uppercase !important;
  }
  .history-edit-modal .registration-category .register-field {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) 142px !important;
    grid-template-rows: minmax(44px, auto) !important;
    align-items: center !important;
    min-height: 58px !important;
    margin: 0 !important;
    padding: 7px 10px !important;
    gap: 10px !important;
    border: 0 !important;
    border-bottom: 1px solid rgba(31, 68, 94, .54) !important;
    border-radius: 0 !important;
    background: transparent !important;
  }
  .history-edit-modal .registration-category .register-field:last-child { border-bottom: 0 !important; }
  .history-edit-modal .registration-category .register-field > span {
    grid-column: 1 !important;
    grid-row: 1 !important;
    overflow: visible !important;
    color: #c7d2df !important;
    font-size: 12px !important;
    font-weight: 700 !important;
    text-overflow: clip !important;
    white-space: normal !important;
  }
  .history-edit-modal .registration-category .register-input {
    display: flex !important;
    grid-column: 2 !important;
    grid-row: 1 !important;
    align-items: center !important;
    width: 142px !important;
    min-width: 0 !important;
    min-height: 42px !important;
    padding: 5px 8px !important;
    gap: 5px !important;
    border: 1px solid #1b4865 !important;
    border-radius: 11px !important;
    background: #031321 !important;
  }
  .history-edit-modal .registration-category .register-input > span,
  .history-edit-modal .registration-category .register-input .asset-icon {
    position: static !important;
    display: grid !important;
    width: 28px !important;
    height: 28px !important;
    flex: 0 0 28px !important;
    place-items: center !important;
  }
  .history-edit-modal .registration-category .register-input input {
    position: static !important;
    width: 100% !important;
    min-width: 0 !important;
    min-height: 30px !important;
    padding: 0 3px !important;
    border: 0 !important;
    background: transparent !important;
    color: #f1f7ff !important;
    font-size: 15px !important;
    font-weight: 650 !important;
    text-align: center !important;
    box-shadow: none !important;
  }
  .history-edit-modal .registration-category .counter-field { grid-template-columns: minmax(0, 1fr) 160px !important; }
  .history-edit-modal .registration-category .counter-input {
    display: grid !important;
    grid-column: 2 !important;
    grid-row: 1 !important;
    grid-template-columns: 28px minmax(18px, 1fr) 94px !important;
    align-items: center !important;
    width: 160px !important;
    min-width: 0 !important;
    min-height: 44px !important;
    margin: 0 !important;
    padding: 0 4px !important;
    gap: 5px !important;
    border: 1px solid #1b4865 !important;
    border-radius: 11px !important;
    background: #031321 !important;
    transform: none !important;
  }
  .history-edit-modal .registration-category .counter-glyph,
  .history-edit-modal .registration-category .counter-glyph .asset-icon { width: 28px !important; height: 28px !important; }
  .history-edit-modal .registration-category .counter-input input { width: 100% !important; min-width: 0 !important; min-height: 40px !important; font-size: 15px !important; }
  .history-edit-modal .registration-category .counter-actions { display: grid !important; grid-template-columns: repeat(2, 42px) !important; gap: 10px !important; }
  .history-edit-modal .registration-category .counter-button { width: 42px !important; height: 42px !important; border: 1px solid #1c506f !important; border-radius: 10px !important; background: #071b2d !important; }
  .history-edit-modal .registration-category .counter-button.minus { color: #ff5964 !important; }

  .target-result-modal .calculation-note { margin: 0; font-size: 10px; line-height: 1.35; }
  .target-result-modal .suggested-details { margin: 0 !important; }

  /* Progreso nutricional: resumen compacto y una sola plantilla de detalle. */
  .page-progreso .progress-screen.mode-summary .progress-mini-grid .metric-proteina {
    display: none !important;
  }

  .page-progreso .progress-screen.mode-summary .progress-mini-grid > :only-child,
  .page-progreso .progress-screen.mode-summary .progress-wide-card.metric-agua {
    grid-column: 1 / -1;
  }

  .progress-nutrition-summary {
    overflow: hidden;
    margin: 7px 0;
    border: 1px solid #173b59;
    border-radius: 18px;
    background: linear-gradient(145deg, #0b1c2e, #061422);
  }

  .progress-nutrition-summary > header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    min-height: 68px;
    padding: 11px 13px;
    border-bottom: 1px solid #15344d;
  }

  .progress-nutrition-summary > header > div {
    display: flex;
    align-items: center;
    min-width: 0;
    gap: 10px;
  }

  .progress-nutrition-summary > header .asset-icon {
    width: 38px;
    height: 38px;
  }

  .progress-nutrition-summary > header span {
    display: grid;
    gap: 2px;
  }

  .progress-nutrition-summary > header small {
    color: #8fa1b6;
    font-size: 11px;
    font-weight: 800;
    letter-spacing: .04em;
  }

  .progress-nutrition-summary > header strong {
    font-size: 15px;
  }

  .progress-nutrition-summary > header > b {
    color: #18bfd7;
    font-size: 11px;
    text-align: right;
  }

  .progress-nutrition-row {
    display: grid;
    grid-template-columns: 36px minmax(0, 1fr) auto 12px;
    align-items: center;
    width: 100%;
    min-height: 66px;
    padding: 9px 12px;
    gap: 9px;
    border: 0;
    border-bottom: 1px solid #122f47;
    background: transparent;
    color: #d9e2ed;
    text-align: left;
  }

  .progress-nutrition-row:last-child { border-bottom: 0; }
  .progress-nutrition-row > span { display: grid; width: 36px; height: 36px; place-items: center; }
  .progress-nutrition-row .asset-icon { width: 34px; height: 34px; }
  .progress-nutrition-row > div { display: grid; min-width: 0; gap: 3px; }
  .progress-nutrition-row > div strong { font-size: 14px; }
  .progress-nutrition-row > div small { color: #8192a7; font-size: 11px; }
  .progress-nutrition-row > b { color: #f0f5fb; font-size: 14px; white-space: nowrap; }
  .progress-nutrition-row > i { color: #4f7594; font-size: 20px; font-style: normal; }

  .page-progreso .progress-mobile-kpis.nutrition article {
    min-height: 78px;
  }

  .page-progreso .progress-mobile-kpis.nutrition article strong {
    font-size: 19px !important;
  }

  .page-progreso .progress-mobile-kpis.nutrition article span {
    overflow-wrap: anywhere;
  }

  .progress-nutrition-chart .chart-legend {
    margin-top: 15px;
  }

  .progress-nutrition-chart .chart-legend .neutral {
    color: #24c4dc;
  }

  .progress-nutrition-chart .chart-legend .below { color: #24c4dc !important; }
  .progress-nutrition-chart .chart-legend .complete { color: #42dfb2 !important; }
  .progress-nutrition-chart .chart-legend .over { color: #9b6be8 !important; }

  .page-progreso .metric-bar.neutral {
    fill: #199bb8;
  }

  .page-progreso .progress-nutrition-chart .metric-bar.below { fill: #199bb8 !important; }
  .page-progreso .progress-nutrition-chart .metric-bar.complete { fill: #42b98d !important; }
  .page-progreso .progress-nutrition-chart .metric-bar.over { fill: #d88916 !important; }

  .progress-choice-groups {
    display: grid;
    gap: 13px;
  }

  .progress-choice-groups section {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 8px;
  }

  .progress-choice-groups h3 {
    grid-column: 1 / -1;
    margin: 0 2px 1px;
    color: #8ea0b6;
    font-size: 12px;
    letter-spacing: .04em;
    text-transform: uppercase;
  }

  .progress-choice-groups .progress-choice {
    min-width: 0;
    min-height: 55px;
    margin: 0;
    padding: 7px 10px;
    font-size: 13px;
  }

  .progress-choice-groups .progress-choice span {
    flex: 0 0 29px;
    width: 29px;
  }

  .progress-choice-groups .progress-choice .asset-icon {
    width: 28px;
    height: 28px;
  }

  .page-progreso .progress-toolbar {
    margin-bottom: calc(30px + env(safe-area-inset-bottom)) !important;
  }
}

/* Panel historico: contadores compactos y centrados en todos los dispositivos. */
.history-edit-modal .registration-category .counter-field { display:grid !important; grid-template-columns:minmax(0,1fr) auto !important; grid-template-rows:minmax(54px,auto) !important; align-items:center !important; gap:10px !important; }
.history-edit-modal .registration-category .counter-input { display:grid !important; grid-column:2 !important; grid-row:1 !important; grid-template-columns:28px 42px auto !important; align-items:center !important; justify-content:end !important; width:auto !important; min-width:0 !important; min-height:46px !important; margin:0 !important; padding:0 6px !important; gap:5px !important; }
.history-edit-modal .registration-category .counter-glyph, .history-edit-modal .registration-category .counter-glyph .asset-icon { width:28px !important; height:28px !important; object-fit:contain !important; }
.history-edit-modal .registration-category .counter-input input { width:42px !important; min-width:42px !important; min-height:34px !important; padding:0 !important; text-align:center !important; font-size:15px !important; }
.history-edit-modal .registration-category .counter-actions { display:grid !important; grid-template-columns:repeat(2,30px) !important; gap:4px !important; }
.history-edit-modal .registration-category .counter-button { display:grid !important; place-items:center !important; width:30px !important; height:30px !important; min-height:30px !important; padding:0 !important; border-radius:8px !important; font-size:18px !important; }

/* Metas: tarjetas y controles con una escala común, incluido entrenamiento. */
.unified-goals-sheet .mobile-goal-control { min-height:139px !important; padding:16px 17px !important; grid-template-columns:55px minmax(0,1fr) !important; gap:14px !important; }
.unified-goals-sheet .mobile-goal-control > .settings-row-icon,
.unified-goals-sheet .mobile-goal-control > .settings-row-icon .asset-icon { width:55px !important; height:55px !important; }
.unified-goals-sheet .mobile-goal-copy > strong { font-size:18px !important; }
.unified-goals-sheet .goal-track-switch { min-height:24px !important; font-size:15px !important; }
.unified-goals-sheet .goal-track-switch input,
.unified-goals-sheet .goal-target-line > label input { width:21px !important; height:21px !important; flex-basis:21px !important; }
.unified-goals-sheet .goal-target-line { min-height:50px !important; font-size:15px !important; }
.unified-goals-sheet .goal-target-line input[data-mobile-goal-value],
.unified-goals-sheet .training-goal-section input[data-training-goal-value] { width:101px !important; min-height:50px !important; font-size:17px !important; }
.unified-goals-sheet .training-goal-section .mobile-goal-control { min-height:139px !important; grid-template-columns:55px minmax(0,1fr) !important; }
.unified-goals-sheet .training-goal-section .goal-target-line { justify-content:flex-start !important; }
.unified-goals-sheet .training-goal-section .goal-target-line > span { display:grid !important; grid-template-columns:auto auto !important; align-items:center !important; gap:8px !important; }

/* Editores: los iconos ocupan una celda centrada, sin depender de la línea de texto. */
.quick-tracking-modal .quick-tracking-icon,
.quick-tracking-modal .quick-tracking-icon .asset-icon,
.history-edit-modal .register-input > span,
.history-edit-modal .register-input > span .asset-icon,
.history-edit-modal .comment-input > span,
.history-edit-modal .comment-input > span .asset-icon { display:grid !important; place-items:center !important; align-self:center !important; object-fit:contain !important; }

/* Escritorio: los seguimientos nutricionales muestran siempre el gráfico real. */
@media (min-width:1024px) {
  .page-progreso .progress-screen:has(.progress-nutrition-chart) > .progress-chart-card { min-height:500px !important; display:block !important; overflow:visible !important; }
  .page-progreso .progress-screen:has(.progress-nutrition-chart) > .progress-chart-card .progress-chart-wide { display:block !important; width:100% !important; height:360px !important; max-width:none !important; }
  .page-progreso .progress-screen:has(.progress-nutrition-chart) > .progress-chart-card .progress-chart-compact { display:none !important; }
  .page-progreso .progress-screen:has(.progress-nutrition-chart) .progress-mobile-kpis { gap:14px !important; }
  .page-progreso .progress-screen:has(.progress-nutrition-chart) .progress-mobile-kpis article { display:grid !important; grid-template-columns:auto auto !important; justify-content:space-between !important; column-gap:8px !important; white-space:nowrap !important; }
}

/* En escritorio y tablet horizontal el panel de metas vuelve a la escala de sus tarjetas. */
@media (min-width:721px) and (orientation:landscape) {
  .unified-goals-sheet .mobile-goal-control,
  .unified-goals-sheet .training-goal-section .mobile-goal-control { min-height:116px !important; padding:13px 14px !important; grid-template-columns:46px minmax(0,1fr) !important; gap:12px !important; }
  .unified-goals-sheet .mobile-goal-control > .settings-row-icon,
  .unified-goals-sheet .mobile-goal-control > .settings-row-icon .asset-icon { width:46px !important; height:46px !important; }
  .unified-goals-sheet .mobile-goal-copy > strong { font-size:16px !important; }
  .unified-goals-sheet .goal-track-switch { min-height:20px !important; font-size:13px !important; }
  .unified-goals-sheet .goal-track-switch input,
  .unified-goals-sheet .goal-target-line > label input { width:18px !important; height:18px !important; flex-basis:18px !important; }
  .unified-goals-sheet .goal-target-line { min-height:42px !important; font-size:13px !important; }
  .unified-goals-sheet .goal-target-line input[data-mobile-goal-value],
  .unified-goals-sheet .training-goal-section input[data-training-goal-value] { width:84px !important; min-height:42px !important; font-size:15px !important; }
  .unified-goals-sheet .training-goal-section .goal-target-line { justify-content:flex-start !important; }
  .unified-goals-sheet .training-goal-section .goal-target-line > span { display:grid !important; grid-template-columns:auto auto !important; align-items:center !important; gap:6px !important; white-space:nowrap !important; }
}

/* El gráfico ancho ocupa toda la columna en escritorio y tablet horizontal. */
@media (min-width:721px) and (orientation:landscape) {
  .page-progreso .progress-screen:has(.progress-nutrition-chart) .progress-nutrition-chart .progress-chart-wide { display:block !important; width:100% !important; max-width:none !important; height:auto !important; }
  .page-progreso .progress-screen:has(.progress-nutrition-chart) .progress-nutrition-chart .progress-chart-compact { display:none !important; }
  .page-progreso .progress-screen:has(.progress-nutrition-chart) .progress-nutrition-chart { width:100% !important; min-width:0 !important; }
}

/* En teléfono y tablet vertical el gráfico compacto ocupa toda la tarjeta. */
@media (max-width:1023px) and (orientation:portrait) {
  .page-progreso .progress-screen:has(.progress-nutrition-chart) > .progress-chart-card { grid-column:1 / -1 !important; width:100% !important; min-width:0 !important; }
  .page-progreso .progress-screen:has(.progress-nutrition-chart) .progress-nutrition-chart .progress-chart-compact { display:block !important; width:100% !important; max-width:none !important; height:auto !important; }
  .page-progreso .progress-screen:has(.progress-nutrition-chart) .progress-nutrition-chart .progress-chart-wide { display:none !important; }
}

/* Cabecera uniforme para todos los seguimientos nutricionales en escritorio. */
.nutrition-desktop-metrics { display:none; }
@media (min-width:1020px) {
  .page-progreso .nutrition-desktop-metrics { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:18px; grid-column:1 / -1; }
  .page-progreso .nutrition-desktop-metrics .progress-kpi-card { min-width:0; min-height:96px; padding:18px 22px; }
}
.page-progreso .metric-bar.neutral { fill:#27c7df !important; opacity:1 !important; }

/* Todos los checkboxes de metas comparten tamaño, margen y alineación. */
.unified-goals-sheet :is(.goal-track-switch, .goal-target-line > label) > input[type="checkbox"] { inline-size:18px !important; block-size:18px !important; min-inline-size:18px !important; min-block-size:18px !important; margin:0 !important; padding:0 !important; flex:0 0 18px !important; transform:none !important; }
@media (min-width:1024px) {
  .unified-goals-sheet :is(.goal-track-switch, .goal-target-line > label) > input[type="checkbox"] { inline-size:16px !important; block-size:16px !important; min-inline-size:16px !important; min-block-size:16px !important; flex-basis:16px !important; }
}

.page-progreso .chart-legend .neutral { color:#27c7df !important; }

/* Todos los seguimientos nutricionales comparten la plantilla de calorías y
   proteína. La tarjeta antigua queda fuera cuando existe el bloque de KPI. */
.page-progreso .progress-screen:has(.progress-nutrition-chart) > .progress-wide-card { display:none !important; }
.page-progreso .progress-screen:has(.progress-nutrition-chart) .progress-nutrition-chart .metric-bar.over { fill:#9b6be8 !important; }
.page-progreso .progress-screen:has(.progress-nutrition-chart) .progress-nutrition-chart .metric-bar.neutral { fill:#27c7df !important; }
.page-progreso .progress-screen:has(.progress-nutrition-chart) .progress-nutrition-chart .chart-legend .over { color:#9b6be8 !important; }
.page-progreso .progress-screen:has(.progress-nutrition-chart) .progress-nutrition-chart .chart-legend .neutral { color:#27c7df !important; }
.history-edit-modal .counter-button { touch-action: manipulation !important; pointer-events:auto !important; }

/* Contador común de cuidado personal: zonas separadas - valor +. */
.counter-input {
  display:grid !important;
  grid-template-columns:28px 42px minmax(36px,1fr) 42px !important;
  align-items:center !important;
  justify-content:stretch !important;
  gap:8px !important;
  min-width:0 !important;
}
.counter-input > .counter-glyph,
.counter-input > .counter-glyph .asset-icon { width:28px !important; height:28px !important; display:grid !important; place-items:center !important; }
.counter-input > .counter-button { display:grid !important; place-items:center !important; width:42px !important; height:42px !important; min-height:42px !important; padding:0 !important; border:1px solid #1c506f !important; border-radius:10px !important; background:#071b2d !important; touch-action:manipulation !important; }
.counter-input > .counter-button.minus { grid-column:2 !important; color:#ff5964 !important; }
.counter-input > .counter-value { grid-column:3 !important; width:100% !important; min-width:0 !important; min-height:40px !important; padding:0 2px !important; border:0 !important; background:transparent !important; text-align:center !important; font-size:16px !important; font-weight:700 !important; }
.counter-input > .counter-button.plus { grid-column:4 !important; color:#14c8e7 !important; }
.counter-actions { display:contents !important; }
.history-edit-modal .registration-category .counter-input,
.page-registro .registration-category .counter-input { grid-template-columns:28px 42px minmax(36px,1fr) 42px !important; }
@media (max-width: 720px) {
  .counter-input { grid-template-columns:28px 44px minmax(36px,1fr) 44px !important; gap:7px !important; }
  .counter-input > .counter-button { width:44px !important; height:44px !important; min-height:44px !important; }
}

@media (max-width: 1019px) {
  .page-progreso .progress-screen:has(.progress-nutrition-chart) { display:grid !important; grid-template-columns:minmax(0,1fr) !important; gap:10px !important; }
  .page-progreso .progress-screen:has(.progress-nutrition-chart) > .progress-mobile-kpis.nutrition { display:grid !important; grid-template-columns:repeat(4,minmax(0,1fr)) !important; grid-column:1 !important; grid-row:auto !important; margin:0 !important; }
  .page-progreso .progress-screen:has(.progress-nutrition-chart) > .nutrition-desktop-metrics { display:none !important; }
  .page-progreso .progress-screen:has(.progress-nutrition-chart) > .progress-chart-card { grid-column:1 !important; grid-row:auto !important; min-height:0 !important; margin:0 !important; }
  .page-progreso .progress-screen:has(.progress-nutrition-chart) .progress-nutrition-chart h2 { font-size:20px !important; }
  .page-progreso .progress-screen:has(.progress-nutrition-chart) .progress-nutrition-chart .chart-legend { font-size:12px !important; }
}

/* En tablet vertical todos los seguimientos nutricionales usan el mismo ancho de gráfico. */
@media (min-width: 721px) and (max-width: 1019px) and (orientation: portrait) {
  .page-progreso .progress-screen:has(.progress-nutrition-chart) .progress-nutrition-chart .progress-chart-compact {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    height: auto !important;
  }
  .page-progreso .progress-screen:has(.progress-nutrition-chart) .progress-nutrition-chart .progress-chart-wide {
    display: none !important;
  }
}

@media (min-width: 1020px) {
  .page-progreso .progress-screen:has(.progress-nutrition-chart) { display:grid !important; grid-template-columns:minmax(0,1fr) !important; grid-template-rows:auto auto auto auto !important; gap:18px !important; }
  .page-progreso .progress-screen:has(.progress-nutrition-chart) > .progress-desktop-periods { grid-column:1 !important; grid-row:1 !important; }
  .page-progreso .progress-screen:has(.progress-nutrition-chart) > .nutrition-desktop-metrics { display:grid !important; grid-column:1 !important; grid-row:2 !important; grid-template-columns:repeat(4,minmax(0,1fr)) !important; gap:18px !important; }
  .page-progreso .progress-screen:has(.progress-nutrition-chart) > .progress-mobile-kpis.nutrition { display:none !important; }
  .page-progreso .progress-screen:has(.progress-nutrition-chart) > .progress-chart-card { grid-column:1 !important; grid-row:3 !important; min-height:520px !important; margin:0 !important; padding:26px 28px 20px !important; }
  .page-progreso .progress-screen:has(.progress-nutrition-chart) .progress-nutrition-chart h2 { font-size:20px !important; }
  .page-progreso .progress-screen:has(.progress-nutrition-chart) .progress-nutrition-chart .chart-legend { margin:18px 0 8px !important; gap:24px !important; font-size:13px !important; }
  .page-progreso .progress-screen:has(.progress-nutrition-chart) .progress-chart-compact { display:none !important; }
  .page-progreso .progress-screen:has(.progress-nutrition-chart) .progress-chart-wide { display:block !important; width:100% !important; max-width:none !important; height:auto !important; margin:3px 0 0 !important; }
  .page-progreso .progress-screen:has(.progress-nutrition-chart) > .progress-toolbar { grid-column:1 !important; grid-row:4 !important; }
}

/* Peso y cintura usan la misma composición visual en ambos estados. */
@media (min-width: 1020px) {
  .page-progreso .progress-screen.mode-weight.goal-active,
  .page-progreso .progress-screen.mode-waist.goal-active {
    grid-template-columns: minmax(0, 1.04fr) minmax(0, 1fr) !important;
    grid-template-rows: auto auto auto auto !important;
    gap: 18px 20px !important;
  }
  .page-progreso .progress-screen.mode-weight.goal-active > .progress-desktop-periods,
  .page-progreso .progress-screen.mode-waist.goal-active > .progress-desktop-periods,
  .page-progreso .progress-screen.mode-weight.no-goal > .progress-desktop-periods,
  .page-progreso .progress-screen.mode-waist.no-goal > .progress-desktop-periods { grid-column: 1 / -1 !important; grid-row: 1 !important; margin-bottom: 4px !important; }

  .page-progreso .progress-screen.mode-weight.goal-active > .progress-chart-card,
  .page-progreso .progress-screen.mode-waist.goal-active > .progress-chart-card { grid-column: 1 !important; grid-row: 2 / 5 !important; min-height: 674px !important; }
  .page-progreso .progress-screen.mode-weight.goal-active > .progress-chart-card .progress-chart-compact,
  .page-progreso .progress-screen.mode-waist.goal-active > .progress-chart-card .progress-chart-compact { display: none !important; }
  .page-progreso .progress-screen.mode-weight.goal-active > .progress-chart-card .progress-chart-wide,
  .page-progreso .progress-screen.mode-waist.goal-active > .progress-chart-card .progress-chart-wide { display: block !important; width: 100% !important; max-width: none !important; height: 520px !important; margin: 0 !important; }

  .page-progreso .progress-screen.mode-weight.goal-active > .progress-wide-card,
  .page-progreso .progress-screen.mode-waist.goal-active > .progress-wide-card { grid-column: 2 !important; grid-row: 2 !important; }
  .page-progreso .progress-screen.mode-weight.goal-active > .progress-mini-grid,
  .page-progreso .progress-screen.mode-waist.goal-active > .progress-mini-grid,
  .page-progreso .progress-screen.mode-weight.goal-active > .progress-detail-card,
  .page-progreso .progress-screen.mode-waist.goal-active > .progress-detail-card { display: none !important; }
  .page-progreso .progress-screen.mode-weight.goal-active > .weight-desktop-metrics,
  .page-progreso .progress-screen.mode-waist.goal-active > .weight-desktop-metrics { grid-column: 2 !important; grid-row: 3 !important; display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 14px !important; }
  .page-progreso .progress-screen.mode-weight.goal-active > .weight-desktop-footer,
  .page-progreso .progress-screen.mode-waist.goal-active > .weight-desktop-footer { grid-column: 2 !important; grid-row: 4 !important; display: grid !important; }
  .page-progreso .progress-screen.mode-waist.goal-active > .waist-desktop-metrics { display: none !important; }

  .page-progreso .progress-screen.mode-weight.no-goal,
  .page-progreso .progress-screen.mode-waist.no-goal { grid-template-columns: 1fr !important; grid-template-rows: auto auto auto !important; gap: 18px !important; }
  .page-progreso .progress-screen.mode-weight.no-goal > .progress-wide-card,
  .page-progreso .progress-screen.mode-waist.no-goal > .progress-wide-card { display: none !important; }
  .page-progreso .progress-screen.mode-weight.no-goal > .weight-desktop-metrics,
  .page-progreso .progress-screen.mode-weight.no-goal > .weight-desktop-footer { display: none !important; }
  .page-progreso .progress-screen.mode-weight.no-goal > .waist-desktop-metrics,
  .page-progreso .progress-screen.mode-waist.no-goal > .waist-desktop-metrics { grid-column: 1 !important; grid-row: 2 !important; display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 18px !important; }
  .page-progreso .progress-screen.mode-weight.no-goal > .progress-chart-card,
  .page-progreso .progress-screen.mode-waist.no-goal > .progress-chart-card { grid-column: 1 !important; grid-row: 3 !important; min-height: 500px !important; }
  .page-progreso .progress-screen.mode-weight.no-goal > .progress-chart-card .progress-chart-compact,
  .page-progreso .progress-screen.mode-waist.no-goal > .progress-chart-card .progress-chart-compact { display: none !important; }
  .page-progreso .progress-screen.mode-weight.no-goal > .progress-chart-card .progress-chart-wide,
  .page-progreso .progress-screen.mode-waist.no-goal > .progress-chart-card .progress-chart-wide { display: block !important; width: 100% !important; max-width: none !important; height: 360px !important; margin: 0 !important; }
}

/* Escritorio: una sola cabecera nutricional antes del gráfico. */
@media (min-width:1020px) {
  .page-progreso .progress-screen:has(.progress-nutrition-chart) > .nutrition-desktop-metrics { grid-row:2 !important; order:0 !important; }
  .page-progreso .progress-screen:has(.progress-nutrition-chart) > .progress-wide-card,
  .page-progreso .progress-screen:has(.progress-nutrition-chart) > .progress-mobile-kpis { display:none !important; }
  .page-progreso .progress-screen:has(.progress-nutrition-chart) > .progress-chart-card { grid-column:1 / -1 !important; grid-row:3 !important; order:1 !important; position:relative !important; min-height:520px !important; margin:0 !important; padding:26px 28px 20px !important; border-radius:20px !important; border-color:#1b5578 !important; }
  .page-progreso .progress-screen:has(.progress-nutrition-chart) > .progress-chart-card::before { display:none !important; content:none !important; }
}

@media (min-width:721px) and (max-width:1019px) and (orientation:landscape) {
  .page-progreso .progress-screen:has(.progress-nutrition-chart) { display:grid !important; grid-template-columns:minmax(0,1fr) !important; grid-template-rows:auto auto auto auto !important; gap:14px !important; }
  .page-progreso .progress-screen:has(.progress-nutrition-chart) > .progress-desktop-periods { grid-column:1 !important; grid-row:1 !important; }
  .page-progreso .progress-screen:has(.progress-nutrition-chart) > .progress-mobile-kpis.nutrition { grid-column:1 !important; grid-row:2 !important; }
  .page-progreso .progress-screen:has(.progress-nutrition-chart) > .progress-chart-card { grid-column:1 !important; grid-row:3 !important; }
  .page-progreso .progress-screen:has(.progress-nutrition-chart) > .progress-toolbar { grid-column:1 !important; grid-row:4 !important; }
}

/* Resumen vertical: una estructura única para todos los seguimientos. */
@media (max-width: 720px), (min-width: 721px) and (max-width: 1023px) and (orientation: portrait) {
  .page-progreso .progress-screen.mode-summary {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    grid-template-rows: none !important;
    gap: 14px !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    overflow: visible !important;
  }
  .page-progreso .progress-screen.mode-summary > *,
  .page-progreso .progress-screen.mode-summary > .progress-mini-grid > * {
    grid-column: 1 / -1 !important;
    grid-row: auto !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }
  .page-progreso .progress-screen.mode-summary > .progress-mini-grid {
    display: contents !important;
    width: 100% !important;
    min-width: 0 !important;
  }
  .page-progreso .progress-screen.mode-summary > .progress-wide-card,
  .page-progreso .progress-screen.mode-summary > .progress-mini-grid > .progress-mini-card {
    overflow: hidden !important;
  }
  .page-progreso .progress-screen.mode-summary > .progress-wide-card {
    display: grid !important;
    grid-template-columns: 44px minmax(0, 1fr) auto !important;
    grid-template-rows: auto !important;
    align-items: center !important;
    justify-items: stretch !important;
    text-align: left !important;
  }
  .page-progreso .progress-screen.mode-summary > .progress-wide-card .progress-wide-copy {
    min-width: 0 !important;
    justify-items: start !important;
    text-align: left !important;
  }
  .page-progreso .progress-screen.mode-summary > .progress-wide-card .progress-wide-side {
    grid-column: 3 !important;
    grid-row: 1 !important;
    justify-self: end !important;
    text-align: right !important;
  }

  .page-progreso .progress-screen.mode-care > .progress-wide-card,
  .page-progreso .progress-screen.mode-care > .care-desktop-cards,
  .page-progreso .progress-screen.mode-care > .care-desktop-activity { display: none !important; }
  .page-progreso .progress-screen.mode-care > .progress-mobile-care {
    display: grid !important;
    grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
    grid-column: 1 / -1 !important;
    width: 100% !important;
    min-width: 0 !important;
    gap: 8px !important;
  }
  .page-progreso .progress-screen.mode-care > .progress-mobile-care article {
    width: 100% !important;
    min-width: 0 !important;
    min-height: 112px !important;
  }
.page-progreso .progress-screen.mode-care > .progress-chart-card {
    display: block !important;
    grid-column: 1 / -1 !important;
    width: 100% !important;
    min-width: 0 !important;
  }
}

.page-progreso .progress-screen.mode-water .metric-bar.neutral { fill: var(--progress-under, #38c9eb) !important; }
.page-progreso .progress-screen.mode-water .metric-bar.over { fill: var(--progress-over, #9b6be8) !important; }
.page-progreso .progress-screen.mode-water .chart-legend .neutral { color: var(--progress-under, #38c9eb) !important; }
.page-progreso .progress-screen.mode-water .chart-legend .over { color: var(--progress-over, #9b6be8) !important; }
.page-progreso .progress-screen.mode-water .chart-legend .goal { color: var(--progress-goal, #7edbe7) !important; }

/* Resumen vertical: “Esta semana” conserva la tarjeta completa. */
@media (max-width: 1023px) and (orientation: portrait) {
  .page-resumen .weekly-summary {
    width: 100% !important;
    min-width: 0 !important;
    padding: 16px !important;
    border: 1px solid var(--line-soft) !important;
    border-radius: 20px !important;
    background: linear-gradient(135deg, rgb(10 29 49 / .94), rgb(4 16 30 / .92)) !important;
  }
  .page-resumen .weekly-summary .weekly-heading {
    display: flex !important;
    align-items: center !important;
    justify-content: space-between !important;
    margin: 0 0 16px !important;
    padding: 0 0 13px !important;
    border-bottom: 1px solid var(--line-soft) !important;
  }
  .page-resumen .weekly-summary .weekly-heading .group-title {
    margin: 0 !important;
    font-size: 23px !important;
  }
  .page-resumen .weekly-summary .weekly-rows {
    margin: 0 !important;
    overflow: hidden !important;
    border: 1px solid #244762 !important;
    border-radius: 15px !important;
    background: #061624 !important;
  }
}
.quick-tracking-counter { grid-template-columns: minmax(0, 1fr) minmax(160px, auto) !important; align-items: center !important; }
.quick-tracking-counter .counter-label { min-width: 0; }
.quick-tracking-counter .counter-input { display: grid; grid-template-columns: 28px 42px minmax(28px, 1fr) 42px; align-items: center; gap: 5px; min-width: 160px; min-height: 50px; padding: 0 5px; border: 1px solid #1c506f; border-radius: 12px; background: #071b2d; }
.quick-tracking-counter .counter-button { width: 42px; height: 42px; min-height: 42px; border: 0; border-radius: 10px; background: transparent; }
.quick-tracking-counter .counter-value { width: 100%; min-width: 0; padding: 0; border: 0; background: transparent; text-align: center; }
.quick-tracking-counter .counter-button.minus { color: #ff5964; }
.quick-tracking-counter .counter-button.plus { color: #23c9e8; }
.quick-tracking-counter .counter-label { display: grid; gap: 2px; align-content: center; white-space: nowrap; overflow: visible; }
.quick-tracking-counter .counter-label strong,
.quick-tracking-counter .counter-label small { white-space: nowrap; overflow: visible; }
.page-progreso .progress-screen .metric-bar.estimated { fill: #101d32 !important; stroke: #1b2b43 !important; stroke-width: 1 !important; opacity: 1 !important; }
.page-progreso .progress-screen:has(.progress-nutrition-chart) .progress-nutrition-chart .metric-bar.estimated,
.page-progreso .progress-screen.mode-water .metric-bar.estimated { fill: #101d32 !important; stroke: #1b2b43 !important; stroke-width: 1 !important; opacity: 1 !important; }

/* Registro y registro rápido: el contador conserva el patrón compacto del historial. */
.page-registro .registration-category .counter-field {
  grid-template-columns: minmax(0, 1fr) minmax(160px, auto) !important;
  grid-template-rows: minmax(54px, auto) !important;
  align-items: center !important;
  gap: 10px !important;
}
.page-registro .registration-category .counter-input {
  grid-column: 2 !important;
  grid-row: 1 !important;
  width: 180px !important;
  min-width: 160px !important;
  justify-self: end !important;
}
.quick-tracking-counter {
  grid-template-columns: minmax(0, 1fr) 180px !important;
}
.quick-tracking-counter .counter-input {
  width: 180px !important;
  min-width: 160px !important;
  justify-self: end !important;
}
@media (max-width: 420px) {
  .page-registro .registration-category .counter-input,
  .quick-tracking-counter .counter-input {
    width: 160px !important;
    min-width: 160px !important;
  }
  .quick-tracking-counter { grid-template-columns: minmax(0, 1fr) 160px !important; }
}

/* Cuidado personal en teléfono: cada dato ocupa su propia línea. */
.page-progreso .progress-mobile-care article {
  display: grid !important;
  grid-template-rows: 31px auto auto auto 1fr !important;
  justify-items: center !important;
  align-content: start !important;
  text-align: center !important;
}
.page-progreso .progress-mobile-care .care-card-icon { display: grid !important; place-items: center !important; }
.page-progreso .progress-mobile-care .care-card-label,
.page-progreso .progress-mobile-care .care-card-value,
.page-progreso .progress-mobile-care .care-card-today,
.page-progreso .progress-mobile-care .care-card-summary { display: block !important; white-space: nowrap !important; }
.page-progreso .progress-mobile-care .care-card-label { margin-top: 4px !important; }
.page-progreso .progress-mobile-care .care-card-value { margin-top: 3px !important; }
.page-progreso .progress-mobile-care .care-card-today { margin-top: 2px !important; }
.page-progreso .progress-mobile-care .care-card-summary { width: 100% !important; margin-top: 6px !important; }

/* Override final: fila inferior del resumen en horizontal. */
@media (min-width: 721px) and (orientation: landscape), (min-width: 1200px) {
  .page-progreso .progress-screen.mode-summary > .progress-wide-card.metric-cuidado-personal { grid-column: 1 !important; grid-row: 5 !important; }
  .page-progreso .progress-screen.mode-summary > .metric-entrenamiento { grid-column: 2 !important; grid-row: 5 !important; order: initial !important; }
  .page-progreso .progress-screen.mode-summary > .progress-wide-card.metric-actividad { grid-column: 3 !important; grid-row: 5 !important; width: 100% !important; min-width: 0 !important; justify-self: stretch !important; justify-content: initial !important; }
  .page-progreso .progress-screen.mode-summary > .progress-wide-card.metric-actividad .progress-wide-copy { flex: 1 1 auto !important; text-align: left !important; }
  .page-progreso .progress-screen.mode-summary > .progress-compare { grid-row: 6 !important; }
}

/* Peso y cintura comparten dos composiciones: con meta, tablero lateral;
   sin meta, cuatro indicadores y gráfico a ancho completo. */
@media (min-width: 1020px) {
  .page-progreso .progress-screen.mode-waist.goal-active {
    grid-template-columns: minmax(0, 1.04fr) minmax(0, 1fr) !important;
    grid-template-rows: auto auto auto auto !important;
    gap: 18px 20px !important;
  }
  .page-progreso .progress-screen.mode-waist.goal-active > .progress-desktop-periods,
  .page-progreso .progress-screen.mode-weight.no-goal > .progress-desktop-periods { grid-column: 1 / -1 !important; grid-row: 1 !important; margin-bottom: 4px !important; }
  .page-progreso .progress-screen.mode-waist.goal-active > .progress-chart-card,
  .page-progreso .progress-screen.mode-weight.no-goal > .progress-chart-card { position: relative !important; grid-column: 1 !important; grid-row: 2 / 5 !important; min-height: 500px !important; margin: 0 !important; padding: 26px 28px 24px !important; border-radius: 20px !important; border-color: #1b5578 !important; }
  .page-progreso .progress-screen.mode-waist.goal-active > .progress-wide-card { display: grid !important; grid-column: 2 !important; grid-row: 2 !important; min-height: 164px !important; margin: 0 !important; padding: 24px 26px !important; grid-template-columns: 74px minmax(0,1fr) 180px !important; align-items: center !important; gap: 16px !important; border: 1px solid #078fd0 !important; border-radius: 20px !important; }
  .page-progreso .progress-screen.mode-waist.goal-active > .progress-wide-card .progress-wide-icon { width: 64px !important; height: 64px !important; border: 1px solid #078fd0 !important; border-radius: 16px !important; background: #061725 !important; }
  .page-progreso .progress-screen.mode-waist.goal-active > .progress-wide-card .progress-wide-icon .asset-icon { width: 51px !important; height: 51px !important; }
  .page-progreso .progress-screen.mode-waist.goal-active > .progress-wide-card .progress-wide-copy strong { font-size: 27px !important; }
  .page-progreso .progress-screen.mode-waist.goal-active > .progress-wide-card .progress-wide-copy span { font-size: 14px !important; }
  .page-progreso .progress-screen.mode-waist.goal-active > .progress-wide-card .progress-wide-side { max-width: none !important; padding: 10px 0 10px 22px !important; border-left: 1px solid #174765 !important; font-size: 22px !important; text-align: right !important; }
  .page-progreso .progress-screen.mode-waist.goal-active > .weight-desktop-metrics { grid-column: 2 !important; grid-row: 3 !important; display: grid !important; grid-template-columns: repeat(2,minmax(0,1fr)) !important; gap: 14px !important; }
  .page-progreso .progress-screen.mode-waist.goal-active > .weight-desktop-footer { grid-column: 2 !important; grid-row: 4 !important; display: grid !important; grid-template-columns: 1fr 1fr !important; border: 1px solid #1b5578 !important; border-radius: 18px !important; overflow: hidden !important; }
  .page-progreso .progress-screen.mode-waist.goal-active > .waist-desktop-metrics { display: none !important; }
  .page-progreso .progress-screen.mode-weight.no-goal,
  .page-progreso .progress-screen.mode-waist.no-goal { grid-template-columns: 1fr !important; gap: 18px !important; }
  .page-progreso .progress-screen.mode-weight.no-goal > .progress-wide-card { display: none !important; }
  .page-progreso .progress-screen.mode-weight.no-goal > .waist-desktop-metrics,
  .page-progreso .progress-screen.mode-waist.no-goal > .waist-desktop-metrics { grid-column: 1 !important; grid-row: 2 !important; display: grid !important; grid-template-columns: repeat(4,minmax(0,1fr)) !important; gap: 18px !important; }
  .page-progreso .progress-screen.mode-weight.no-goal > .progress-chart-card,
  .page-progreso .progress-screen.mode-waist.no-goal > .progress-chart-card { grid-column: 1 !important; grid-row: 3 !important; min-height: 500px !important; }
  .page-progreso .progress-screen.mode-weight.no-goal > .weight-desktop-metrics,
  .page-progreso .progress-screen.mode-weight.no-goal > .weight-desktop-footer { display: none !important; }
}

/* Última capa compartida: evita que las reglas históricas de cada modo cambien
   el tamaño del gráfico o vuelvan a mostrar estructuras móviles en escritorio. */
.page-progreso .progress-desktop-metrics { display: none; }
@media (min-width: 1020px) {
  .page-progreso .progress-screen > .progress-desktop-metrics { grid-column: 1 !important; grid-row: 2 !important; display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 18px !important; }
  .page-progreso .progress-screen > .progress-desktop-metrics .weight-desktop-metric { min-height: 126px !important; }
  .page-progreso .progress-screen.mode-weight .progress-chart-card:after,
  .page-progreso .progress-screen.mode-waist .progress-chart-card:after { display: none !important; content: none !important; }
  .page-progreso .progress-screen.mode-weight .progress-chart-card h2,
  .page-progreso .progress-screen.mode-waist .progress-chart-card h2 { font-size: 21px !important; }
  .page-progreso .progress-screen.mode-weight .progress-chart-card p,
  .page-progreso .progress-screen.mode-waist .progress-chart-card p { margin-top: 7px !important; font-size: 14px !important; }
  .page-progreso .progress-screen.mode-weight .progress-chart-card .chart-legend,
  .page-progreso .progress-screen.mode-waist .progress-chart-card .chart-legend { margin: 22px 0 8px !important; gap: 24px !important; font-size: 13px !important; }
  .page-progreso .progress-screen.mode-weight.no-goal > .progress-desktop-metrics,
  .page-progreso .progress-screen.mode-waist.no-goal > .progress-desktop-metrics { grid-column: 1 !important; grid-row: 2 !important; }
  .page-progreso .progress-screen.mode-weight.goal-active > .progress-mini-grid,
  .page-progreso .progress-screen.mode-waist.goal-active > .progress-mini-grid { display: none !important; }
  .page-progreso .progress-screen.mode-weight.goal-active .progress-chart-compact,
  .page-progreso .progress-screen.mode-waist.goal-active .progress-chart-compact,
  .page-progreso .progress-screen.mode-weight.no-goal .progress-chart-compact,
  .page-progreso .progress-screen.mode-waist.no-goal .progress-chart-compact { display: none !important; }
  .page-progreso .progress-screen.mode-weight.goal-active .progress-chart-wide,
  .page-progreso .progress-screen.mode-waist.goal-active .progress-chart-wide { display: block !important; width: 100% !important; max-width: none !important; height: 520px !important; }
  .page-progreso .progress-screen.mode-weight.no-goal .progress-chart-wide,
  .page-progreso .progress-screen.mode-waist.no-goal .progress-chart-wide { display: block !important; width: 100% !important; max-width: none !important; height: 360px !important; }
  .page-progreso .progress-screen.mode-weight.no-goal > .progress-chart-card,
  .page-progreso .progress-screen.mode-waist.no-goal > .progress-chart-card { grid-column: 1 !important; grid-row: 3 !important; min-height: 500px !important; }
  .page-progreso .progress-screen.mode-weight.no-goal > .progress-desktop-metrics,
  .page-progreso .progress-screen.mode-waist.no-goal > .progress-desktop-metrics { display: grid !important; grid-column: 1 !important; grid-row: 2 !important; grid-template-columns: repeat(4, minmax(0, 1fr)) !important; }
}

/* Plantilla única para las mediciones: Peso y Cintura cambian solo sus datos. */
@media (max-width: 1019px) {
  .page-progreso .progress-screen.mode-measurement > .progress-wide-card { display: none !important; }
  .page-progreso .progress-screen.mode-measurement > .progress-mobile-kpis { display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)) !important; grid-column: 1 / -1 !important; grid-row: auto !important; margin: 2px 0 0 !important; overflow: hidden !important; border: 1px solid #168bb4 !important; border-radius: 16px !important; background: linear-gradient(145deg,#0a2438,#061623) !important; }
  .page-progreso .progress-screen.mode-measurement > .progress-mobile-kpis article { display: grid !important; align-content: center !important; justify-items: center !important; min-width: 0 !important; min-height: 74px !important; padding: 8px 4px !important; border-right: 1px solid #1b506b !important; text-align: center !important; }
  .page-progreso .progress-screen.mode-measurement > .progress-mobile-kpis article:last-child { border-right: 0 !important; }
  .page-progreso .progress-screen.mode-measurement > .progress-mobile-kpis small { min-height: 22px !important; color: #9fb3c6 !important; font-size: 9px !important; font-weight: 800 !important; line-height: 1.15 !important; text-transform: uppercase !important; }
  .page-progreso .progress-screen.mode-measurement > .progress-mobile-kpis strong { max-width: 100% !important; overflow: hidden !important; color: #f2f7ff !important; font-size: 18px !important; line-height: 1.08 !important; text-overflow: ellipsis !important; white-space: nowrap !important; }
  .page-progreso .progress-screen.mode-measurement > .progress-mobile-kpis article:last-child strong { overflow: visible !important; text-overflow: clip !important; white-space: normal !important; overflow-wrap: normal !important; line-height: 1.04 !important; }
  .page-progreso .progress-screen.mode-measurement > .progress-mobile-kpis span { max-width: 100% !important; margin-top: 3px !important; color: #b8c9d9 !important; font-size: 9px !important; line-height: 1.1 !important; white-space: normal !important; }
  .page-progreso .progress-screen.mode-measurement > .progress-chart-card { grid-column: 1 / -1 !important; grid-row: auto !important; margin: 0 !important; }
  .page-progreso .progress-screen.mode-measurement .progress-chart-compact { display: block !important; width: 100% !important; max-width: none !important; height: min(34vh, 330px) !important; margin: 0 auto !important; }
  .page-progreso .progress-screen.mode-measurement .progress-chart-wide { display: none !important; }
  .page-progreso .progress-screen.mode-measurement > .progress-desktop-metrics,
  .page-progreso .progress-screen.mode-measurement > .weight-desktop-metrics,
  .page-progreso .progress-screen.mode-measurement > .weight-desktop-footer { display: none !important; }
  .page-progreso .progress-screen.mode-measurement > .progress-mini-grid { display: grid !important; grid-column: 1 / -1 !important; grid-row: auto !important; }
}
@media (min-width: 1020px) {
  .page-progreso .progress-screen.mode-measurement {
    gap: 18px 20px !important;
  }
  .page-progreso .progress-screen.mode-measurement.goal-active {
    grid-template-columns: minmax(0, 1.04fr) minmax(0, 1fr) !important;
    grid-template-rows: auto auto auto auto !important;
  }
  .page-progreso .progress-screen.mode-measurement.no-goal {
    grid-template-columns: 1fr !important;
    grid-template-rows: auto auto auto !important;
  }
  .page-progreso .progress-screen.mode-measurement > .progress-desktop-periods { grid-column: 1 / -1 !important; grid-row: 1 !important; margin-bottom: 4px !important; }
  .page-progreso .progress-screen.mode-measurement.goal-active > .progress-chart-card { grid-column: 1 !important; grid-row: 2 / 5 !important; min-height: 674px !important; }
  .page-progreso .progress-screen.mode-measurement.no-goal > .progress-chart-card { grid-column: 1 !important; grid-row: 3 !important; min-height: 500px !important; }
  .page-progreso .progress-screen.mode-measurement > .progress-chart-card { margin: 0 !important; padding: 26px 28px 24px !important; border-radius: 20px !important; border-color: #1b5578 !important; }
  .page-progreso .progress-screen.mode-measurement > .progress-chart-card h2 { font-size: 21px !important; }
  .page-progreso .progress-screen.mode-measurement > .progress-chart-card p { margin-top: 7px !important; font-size: 14px !important; }
  .page-progreso .progress-screen.mode-measurement > .progress-chart-card .chart-legend { margin: 22px 0 8px !important; gap: 24px !important; font-size: 13px !important; }
  .page-progreso .progress-screen.mode-measurement .progress-chart-compact { display: none !important; }
  .page-progreso .progress-screen.mode-measurement.goal-active .progress-chart-wide { display: block !important; width: 100% !important; max-width: none !important; height: 520px !important; margin: 0 !important; }
  .page-progreso .progress-screen.mode-measurement.no-goal .progress-chart-wide { display: block !important; width: 100% !important; max-width: none !important; height: 360px !important; margin: 0 !important; }
  .page-progreso .progress-screen.mode-measurement.goal-active > .progress-wide-card { grid-column: 2 !important; grid-row: 2 !important; min-height: 164px !important; display: grid !important; grid-template-columns: 74px minmax(0, 1fr) 180px !important; align-items: center !important; gap: 16px !important; margin: 0 !important; padding: 24px 26px !important; border: 1px solid #078fd0 !important; border-radius: 20px !important; }
  .page-progreso .progress-screen.mode-measurement.goal-active > .progress-wide-card .progress-wide-icon { width: 64px !important; height: 64px !important; border: 1px solid #078fd0 !important; border-radius: 16px !important; background: #061725 !important; }
  .page-progreso .progress-screen.mode-measurement.goal-active > .progress-wide-card .progress-wide-icon .asset-icon { width: 51px !important; height: 51px !important; }
  .page-progreso .progress-screen.mode-measurement.goal-active > .progress-wide-card .progress-wide-copy small { font-size: 13px !important; }
  .page-progreso .progress-screen.mode-measurement.goal-active > .progress-wide-card .progress-wide-copy strong { font-size: 27px !important; }
  .page-progreso .progress-screen.mode-measurement.goal-active > .progress-wide-card .progress-wide-copy span { font-size: 14px !important; }
  .page-progreso .progress-screen.mode-measurement.goal-active > .progress-wide-card .progress-wide-side { max-width: none !important; padding: 10px 0 10px 22px !important; border-left: 1px solid #174765 !important; font-size: 22px !important; text-align: right !important; }
  .page-progreso .progress-screen.mode-measurement.goal-active > .progress-mini-grid,
  .page-progreso .progress-screen.mode-measurement > .progress-detail-card { display: none !important; }
  .page-progreso .progress-screen.mode-measurement.goal-active > .weight-desktop-metrics { grid-column: 2 !important; grid-row: 3 !important; display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; gap: 14px !important; }
  .page-progreso .progress-screen.mode-measurement.goal-active > .weight-desktop-footer { grid-column: 2 !important; grid-row: 4 !important; display: grid !important; grid-template-columns: repeat(2, minmax(0, 1fr)) !important; border: 1px solid #1b5578 !important; border-radius: 18px !important; background: linear-gradient(145deg,#0b2033,#061522) !important; overflow: hidden !important; }
  .page-progreso .progress-screen.mode-measurement.goal-active > .weight-desktop-footer .weight-desktop-metric { min-height: 126px !important; border: 0 !important; border-radius: 0 !important; background: transparent !important; }
  .page-progreso .progress-screen.mode-measurement.goal-active > .weight-desktop-footer .weight-desktop-metric + .weight-desktop-metric { border-left: 1px solid #174765 !important; }
  .page-progreso .progress-screen.mode-measurement.no-goal > .progress-desktop-metrics { grid-column: 1 !important; grid-row: 2 !important; display: grid !important; grid-template-columns: repeat(4, minmax(0, 1fr)) !important; gap: 18px !important; align-items: stretch !important; }
  .page-progreso .progress-screen.mode-measurement.no-goal > .progress-desktop-metrics .weight-desktop-metric { height: 100% !important; min-height: 126px !important; }
  .page-progreso .progress-screen.mode-measurement.no-goal > .progress-wide-card { display: none !important; }
  .page-progreso .progress-screen.mode-measurement .progress-chart-card:after { display: none !important; content: none !important; }
}

/* La acción de editar nombre comparte el mismo tratamiento azul que las acciones principales. */
.page-ajustes .account-name-edit { border: 0 !important; background: linear-gradient(105deg,#1876ef,#08c8d8) !important; color: #fff !important; box-shadow: 0 8px 20px #0070cc3d !important; }
.page-ajustes .account-name-edit:hover { border: 0 !important; background: linear-gradient(105deg,#2385ff,#17d4e4) !important; color: #fff !important; }
