@media (max-width: 540px) {
  /* padding-bottom amplio para que el FAB nunca tape la última cita */
  .diary { padding: 0.4rem 0.4rem 5.5rem; max-width: 100%; }
  /* hoja del diario con altura mínima razonable (parece una hoja, no un recorte) */
  .page { padding: 1.5rem 1.1rem 1.75rem; min-height: 58vh; }
  .page::before { left: 18px; }
  .entry-editor { padding-left: 18px; }
  .entry { margin-left: 18px; }
  .date-weekday { font-size: 0.78rem; }
  .date-day { font-size: 1.4rem; }
  .icon-btn { width: 42px; height: 42px; font-size: 1.4rem; }
  .login-card { padding: 1.5rem 1.25rem; }
  .login-card h1 { font-size: 2.6rem; }
  .login-logo { width: 110px; height: 110px; }

  /* Tipografías más grandes para legibilidad en móvil */
  .entry-title { font-size: 1.3rem; }
  .entry-time { font-size: 1.1rem; padding: 0.3rem 0.95rem; }
  .entry-body { font-size: 1.1rem; line-height: 1.55; }
  .entry-actions { font-size: 1.1rem; gap: 1.15rem; margin-top: 0.6rem; padding-top: 0.55rem; }
  .entry-actions .link { min-height: 38px; padding: 0.25rem 0; }
  .entry { padding: 0.85rem 1rem; margin: 0.6rem 0 0.6rem 18px; }
  .entry-mood { font-size: 1rem; padding: 0.3rem 0.8rem; }

  .muted { font-size: 0.95rem; }
  .empty-text { font-size: 1.1rem; }

  /* Footer compacto: cabe debajo de las citas sin empujar la pantalla */
  .diary-footer { margin-top: 1rem; padding: 0.65rem 0.5rem 0.45rem; gap: 0.1rem; }
  .footer-brand { font-size: 0.95rem; }
  .footer-links, .footer-links .link { font-size: 0.78rem; gap: 0.5rem; }
  .footer-tag { font-size: 0.7rem; }

  .tip { font-size: 1rem; }
  .link { font-size: 1rem; }

  /* Inputs y labels más legibles */
  label { font-size: 1rem; }
  input, textarea, select { font-size: 1.05rem; }
  .field-error { font-size: 0.95rem; }

  /* Header con un buen aire que separe de la agenda */
  .diary-header { padding: 0.3rem 0 1.25rem; margin-bottom: 0.4rem; }
  .date-block { padding: 0.35rem 0.7rem 0.45rem; }

  /* Settings flotante: esquina inferior izquierda, simétrico al FAB */
  .settings-floating {
    width: 48px; height: 48px;
    bottom: calc(1.25rem + env(safe-area-inset-bottom, 0));
    left: 1.1rem;
  }
  .settings-floating svg { width: 22px; height: 22px; }

  /* FAB visible pero sin pegarse al contenido — mismo bottom y tamaño que el botón de ajustes */
  .fab {
    bottom: calc(1.25rem + env(safe-area-inset-bottom, 0));
    right: 1.1rem;
    width: 48px;
    height: 48px;
    font-size: 1.6rem;
  }

  /* Vista semanal en móvil: hace que entre todo en pantalla portrait */
  .week-spread { min-height: 64vh; }
  .day-tab { width: 32px; padding: 7px 0; }
  .day-tab--left { left: -30px; }
  .day-tab--right { right: -30px; }
  .day-tab-dow { font-size: 0.62rem; }
  .day-tab-num { font-size: 1.2rem; }
  .day-paper {
    font-size: 0.88rem;
    line-height: 22px;
    min-height: 96px;
    padding: 6px 7px 4px;
    background-image: repeating-linear-gradient(
      to bottom,
      transparent 0,
      transparent 21px,
      var(--paper-line) 21px,
      var(--paper-line) 22px
    );
  }
  .day-line { height: 22px; }
  .spread-binding { width: 20px; padding: 10px 0; }
  .spread-binding .ring { width: 13px; height: 13px; }
  .spread-col--left { margin-left: 28px; }
  .spread-col--right { margin-right: 28px; }
  .spread-col--left .day-cell { padding-right: 10px; }
  .spread-col--right .day-cell { padding-left: 10px; }
}

/* Settings y modales también con tipografía móvil más grande */
@media (max-width: 540px) {
  .card h2 { font-size: 1.7rem; }
  .card label { font-size: 1rem; }

  /* Wizard / modales con tipografía generosa para móvil */
  .modal { padding: 1.5rem 1.25rem 1rem; font-size: 1.1rem; }
  .modal h2 { font-size: 1.85rem; }
  .modal p { font-size: 1.1rem; line-height: 1.65; }
  .modal ol, .modal ul { font-size: 1.1rem; line-height: 1.7; padding-left: 1.3rem; }
  .modal ol li, .modal ul li { margin: 0.4rem 0; }
  .tip { font-size: 1.05rem; padding: 0.95rem 1rem; }
  .modal kbd, .modal code { font-size: 0.95em; padding: 0.2rem 0.5rem; }
  .modal .actions button { font-size: 1.05rem; padding: 0.75rem 1.2rem; }
  .modal-close { width: 44px; height: 44px; font-size: 2rem; }

  .btn-primary, .btn-secondary { font-size: 1rem; }
  .badge { font-size: 0.85rem !important; }
  .device-list li, .client-list li, .charge-list li { font-size: 1rem; }
  .status { font-size: 0.95rem; }
  .share-actions .btn-share .share-label { font-size: 1.1rem; }
  .share-actions .btn-share .share-sub { font-size: 1rem; }
}

@media (prefers-reduced-motion: reduce) {
  .page, .page--turning { transition: none !important; transform: none !important; }
  .icon-btn:hover { transform: none; }
}

@media (prefers-color-scheme: dark) {
  /* mantenemos la estética clara — Silvia prefiere papel */
}
