/* Mobile audit T1 — 375px baseline (home, nav, perfil, directorio) */

html {
  overflow-x: hidden;
}

body {
  overflow-x: clip;
}

/* ── Nav ── */
@media (max-width: 991px) {
  .tpda-navbar .navbar-collapse {
    max-height: calc(100dvh - var(--nav-height, 64px));
    overflow-y: auto;
    padding-bottom: 1rem;
    margin-top: 0.5rem;
    border-top: 1px solid rgba(255, 255, 255, 0.22);
  }

  .tpda-navbar .navbar-nav .nav-link {
    min-height: 44px;
    padding: 0.65rem 0.75rem !important;
    width: 100%;
  }

  .tpda-navbar .navbar-nav.ms-auto {
    padding-top: 0.5rem;
    border-top: 1px solid rgba(255, 255, 255, 0.22);
    margin-top: 0.5rem;
  }

  .tpda-navbar .navbar-nav.ms-auto .nav-item {
    width: 100%;
  }

  .tpda-navbar .navbar-nav.ms-auto .btn-tpda-primary,
  .tpda-navbar .navbar-nav.ms-auto .btn-tpda-secondary {
    width: 100%;
    justify-content: center;
    margin: 0.25rem 0 !important;
  }

  .tpda-navbar .dropdown-menu {
    position: static !important;
    float: none;
    width: 100%;
    margin-top: 0.25rem;
    box-shadow: none;
    border: 1px solid var(--border-subtle);
  }

  .notif-dropdown {
    right: 0;
    left: auto;
    max-width: min(320px, calc(100vw - 24px));
  }
}

@media (max-width: 375px) {
  .tpda-navbar .container {
    padding-left: 0.75rem;
    padding-right: 0.75rem;
  }

  .tpda-navbar .navbar-brand img {
    height: 32px !important;
  }
}

/* ── Home ── */
@media (max-width: 900px) {
  .index .hero-text-col {
    padding: 1.5rem 1rem !important;
  }

  .index .hero-title {
    font-size: clamp(1.75rem, 8vw, 2.4rem) !important;
  }

  .index .hero-subtitle {
    font-size: 0.92rem !important;
  }

  .index .tpda-trust-line {
    font-size: 0.72rem !important;
    line-height: 1.5;
  }

  .index .d-flex.gap-3.flex-wrap {
    flex-direction: column;
    width: 100%;
  }

  .index .d-flex.gap-3.flex-wrap .btn-tpda-primary,
  .index .d-flex.gap-3.flex-wrap .btn-tpda-secondary {
    width: 100%;
    justify-content: center;
  }

  .index .home-benefits-grid {
    grid-template-columns: 1fr !important;
  }
}

@media (max-width: 375px) {
  .index .hero-section {
    padding-top: 4.5rem !important;
    min-height: auto !important;
  }

  .index .hero-badge {
    font-size: 0.72rem;
    padding: 5px 14px;
  }

  .index .scroll-hint {
    display: none;
  }

  .index .home-benefit-card {
    padding: 1.1rem !important;
  }

  .page-conversion .landing-hero h1 {
    font-size: clamp(1.45rem, 7vw, 2rem);
  }
}

/* ── Perfil tarotista ── */
@media (max-width: 900px) {
  .perfil-sidebar {
    position: static;
  }
}

@media (max-width: 375px) {
  .perfil-hero {
    padding: 1.5rem 0.75rem 1.25rem;
  }

  .perfil-avatar,
  .perfil-avatar-ph {
    width: 110px;
    height: 110px;
  }

  .perfil-cta-row {
    flex-direction: column;
    width: 100%;
  }

  .perfil-cta-row .btn-tpda-primary,
  .perfil-cta-row .btn-tpda-secondary {
    width: 100%;
    justify-content: center;
  }

  .perfil-body {
    padding: 1.25rem 0.75rem 0;
  }

  .perfil-meta {
    justify-content: center;
    font-size: 0.78rem;
  }
}

/* ── Directorio ── */
@media (max-width: 576px) {
  .dir-page {
    padding: 1.5rem 0.75rem 3rem;
  }

  .dir-filter-bar {
    flex-direction: column;
    align-items: stretch;
  }

  .dir-filter-input,
  .dir-filter-select {
    width: 100% !important;
    min-width: 0 !important;
  }

  .dir-filter-bar .btn-tpda-primary {
    width: 100%;
    justify-content: center;
  }

  .dir-share-row {
    gap: 8px;
  }

  .dir-share-btn {
    padding: 8px 12px;
    font-size: 0.75rem;
  }

  .dir-grid {
    grid-template-columns: 1fr !important;
  }

  .dir-top-ethics-row {
    flex-direction: column;
  }

  .dir-top-ethics-card {
    width: 100%;
  }

  .dir-ethics-pill {
    margin-left: 0;
    margin-top: 4px;
  }

  .dir-rating {
    flex-wrap: wrap;
  }

  .mk-intenciones {
    justify-content: flex-start;
    gap: 6px;
  }

  .mk-int-chip {
    min-height: 36px;
    padding: 6px 12px;
    font-size: 0.72rem;
  }
}

/* ── Performance: below-fold home sections ── */
@media (max-width: 991px) {
  .index .how-section,
  .index .ritual-section,
  .index .features-section {
    content-visibility: auto;
    contain-intrinsic-size: auto 480px;
  }
}

@media (max-width: 375px) {
  .dir-card-body {
    padding: 1rem !important;
  }
}

/* ── Dashboard tabs ── */
@media (max-width: 375px) {
  .dash-tabs {
    gap: 0.25rem;
  }

  .dash-tab {
    font-size: 0.72rem;
    padding: 0.5rem 0.65rem;
    white-space: nowrap;
  }

  .dash-stats {
    grid-template-columns: 1fr !important;
  }

  .dashboard-container {
    padding: 1.5rem 0 3rem;
  }
}

/* ── CTAs touch targets ── */
@media (max-width: 576px) {
  .btn-tpda-primary,
  .btn-tpda-secondary {
    min-height: 44px;
  }
}

/* ── Agenda (agendar sesión) — sin tocar chat ── */
@media (max-width: 767px) {
  .page-agenda .agenda-wrapper {
    padding: 1.25rem 0.75rem 3rem;
  }

  .page-agenda .agenda-header h1 {
    font-size: 1.35rem;
  }

  .page-agenda .tarotista-card {
    display: grid;
    grid-template-columns: 72px 1fr;
    grid-template-rows: auto auto;
    gap: 0 1rem;
    padding: 1rem;
    align-items: center;
  }

  .page-agenda .tarotista-avatar,
  .page-agenda .tarotista-avatar-placeholder {
    margin: 0;
    grid-row: span 2;
  }

  .page-agenda .tarotista-name,
  .page-agenda .tarotista-role-badge {
    text-align: left;
  }

  .page-agenda .tarotista-meta {
    grid-column: 1 / -1;
    margin-top: 0.75rem;
  }

  .page-agenda .calendar-inner {
    padding: 1rem 0.75rem 1.25rem;
  }

  .page-agenda .cal-grid th {
    font-size: 0.6rem;
    padding: 6px 0;
  }

  .page-agenda .cal-day {
    min-height: 52px;
    padding: 4px 2px 6px;
  }

  .page-agenda .cal-day-num {
    width: 32px;
    height: 32px;
    font-size: 0.8rem;
  }

  .page-agenda .cal-chip {
    font-size: 0.52rem;
    margin: 0 2px;
  }

  .page-agenda .slot-panel.open {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    top: auto;
    z-index: 1050;
    border-radius: 20px 20px 0 0;
    max-height: min(72vh, 520px);
    box-shadow: 0 -12px 40px rgba(0, 0, 0, 0.55);
  }

  .page-agenda .slots-list {
    max-height: min(36vh, 280px);
  }

  .page-agenda .slot-btn {
    min-height: 48px;
    padding: 14px 16px;
  }

  .page-agenda .btn-confirm,
  .page-agenda .btn-cancel-slot {
    min-height: 48px;
  }

  .page-agenda .cal-nav-btn,
  .page-agenda .cal-today-btn {
    min-height: 44px;
    min-width: 44px;
  }
}

@media (max-width: 375px) {
  .page-agenda .cal-toolbar-title {
    font-size: 1rem;
  }

  .page-agenda .legend {
    display: none;
  }
}

/* ── Cartera CRM mobile ── */
@media (max-width: 768px) {
  .crm-wrap {
    height: auto;
    min-height: calc(100vh - 80px);
    padding-bottom: 2rem;
  }

  .kpi-row {
    grid-template-columns: repeat(2, 1fr);
  }

  .crm-grid {
    min-height: 420px;
  }

  .panel-r {
    min-height: 360px;
  }

  .tag-bar .tf {
    min-height: 32px;
    display: inline-flex;
    align-items: center;
  }
}

/* ── Diario ── */
@media (max-width: 576px) {
  .diario-container .filtros-bar {
    flex-direction: column;
    align-items: stretch;
  }

  .diario-container .btn-new-entry,
  .diario-container .pdf-btn {
    width: 100%;
    justify-content: center;
  }
}
