/* ==========================================================================
   ROCKET CRM · V3.595 · MOBILE APP / PWA UX
   Mobile-first shell, compact header, filter drawer, uniform modals and PWA prompt.
   ========================================================================== */

:root{
  --rocket-mobile-search-width:144px;
  --rocket-mobile-control:38px;
  --rocket-mobile-gutter:12px;
  --rocket-mobile-radius:16px;
}

/* Mobile navigation scrim */
.rocket-mobile-nav-scrim{
  position:fixed;
  inset:0;
  z-index:1088;
  background:rgba(8,15,28,.48);
  -webkit-backdrop-filter:blur(2px);
  backdrop-filter:blur(2px);
  opacity:0;
  pointer-events:none;
  transition:opacity .18s ease;
}
body.rocket-mobile-nav-open .rocket-mobile-nav-scrim{
  opacity:1;
  pointer-events:auto;
}
body.rocket-mobile-filter-open{overflow:hidden!important}

/* Mobile filter drawer */
.rocket-mobile-filter-scrim{
  position:fixed;
  inset:0;
  z-index:1200;
  background:rgba(8,15,28,.42);
  -webkit-backdrop-filter:blur(3px);
  backdrop-filter:blur(3px);
}
.rocket-mobile-filter-scrim[hidden]{display:none!important}
.rocket-mobile-filter-drawer{
  position:absolute;
  top:0;
  right:0;
  display:flex;
  width:min(88vw,360px);
  height:100dvh;
  max-width:100%;
  flex-direction:column;
  background:var(--surface);
  color:var(--ink);
  box-shadow:-18px 0 44px rgba(15,23,42,.22);
  transform:translateX(100%);
  transition:transform .2s ease;
}
.rocket-mobile-filter-scrim[data-open="true"] .rocket-mobile-filter-drawer{transform:translateX(0)}
.rocket-mobile-filter-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  min-height:60px;
  padding:10px 12px 10px 16px;
  border-bottom:1px solid var(--line);
}
.rocket-mobile-filter-head h2{
  margin:0;
  font-family:var(--font-caption);
  font-size:15px;
  letter-spacing:.25px;
}
.rocket-mobile-filter-close,
.rocket-mobile-filter-button{
  display:inline-grid;
  place-items:center;
  width:var(--rocket-mobile-control);
  min-width:var(--rocket-mobile-control);
  height:var(--rocket-mobile-control);
  padding:0;
  border:1px solid var(--line);
  border-radius:7px;
  background:var(--surface);
  color:var(--ink);
}
.rocket-mobile-filter-close svg,
.rocket-mobile-filter-button svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.rocket-mobile-filter-button[hidden]{display:none!important}
.rocket-mobile-filter-body{
  display:flex;
  min-height:0;
  flex:1 1 auto;
  flex-direction:column;
  gap:10px;
  padding:14px 14px 18px;
  overflow:auto;
}
.rocket-mobile-filter-body>.select,
.rocket-mobile-filter-body>.advisor-header-filter,
.rocket-mobile-filter-body>.flyers-filter,
.rocket-mobile-filter-body>.search-preset,
.rocket-mobile-filter-body>.search-reset-button{
  display:block!important;
  width:100%!important;
  min-width:0!important;
  max-width:none!important;
  height:42px!important;
  margin:0!important;
}
.rocket-mobile-filter-body>.search-reset-button{
  order:99;
  border:1px solid var(--line)!important;
  border-radius:8px!important;
  background:var(--surface)!important;
  color:var(--muted)!important;
}
.rocket-mobile-filter-foot{
  flex:0 0 auto;
  padding:10px 14px max(14px,env(safe-area-inset-bottom));
  border-top:1px solid var(--line);
  background:var(--surface);
}
.rocket-mobile-filter-done{
  width:100%;
  min-height:42px;
  border:1px solid #0048BE;
  border-radius:8px;
  background:#0055DD;
  color:#fff;
  font-family:var(--font-caption);
  font-size:12px;
  font-weight:800;
  letter-spacing:.35px;
}

/* Install card shown only when JavaScript decides the PWA can/should be suggested. */
.rocket-install-card{
  position:fixed;
  z-index:1300;
  left:calc(var(--sidebar-collapsed) + 12px);
  right:12px;
  bottom:max(12px,env(safe-area-inset-bottom));
  display:grid;
  grid-template-columns:44px minmax(0,1fr) auto;
  align-items:center;
  gap:10px;
  padding:10px 10px;
  border:1px solid rgba(255,255,255,.10);
  border-radius:14px;
  background:#0D172B;
  color:#fff;
  box-shadow:0 16px 42px rgba(8,15,28,.28);
}
.rocket-install-card[hidden]{display:none!important}
.rocket-install-icon{
  display:grid;
  place-items:center;
  width:44px;
  height:44px;
  overflow:hidden;
  border-radius:10px;
  background:#fff;
}
.rocket-install-icon img{display:block;width:40px;height:40px;object-fit:contain}
.rocket-install-copy{min-width:0}
.rocket-install-copy strong{display:block;font-size:13px;line-height:1.2}
.rocket-install-copy span{display:block;margin-top:3px;color:#C9D4E5;font-size:10.5px;line-height:1.35}
.rocket-install-actions{display:flex;align-items:center;gap:6px}
.rocket-install-action{
  min-height:34px;
  padding:0 10px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:8px;
  background:#0055DD;
  color:#fff;
  font-size:10.5px;
  font-weight:800;
}
.rocket-install-dismiss{
  display:grid;
  place-items:center;
  width:32px;
  height:32px;
  padding:0;
  border:0;
  border-radius:8px;
  background:transparent;
  color:#AEBBD0;
  font-size:20px;
  line-height:1;
}
.rocket-install-action[hidden]{display:none!important}

@media(max-width:900px), (orientation:landscape) and (max-height:600px) and (pointer:coarse){
  /* The compact rail remains the default. Tapping hamburger turns it into a true drawer. */
  body.rocket-mobile-nav-open{overflow:hidden!important}
  body.rocket-mobile-nav-open .sidebar{
    z-index:1100!important;
    width:min(82vw,292px)!important;
    max-width:292px!important;
    border-right:1px solid rgba(255,255,255,.12)!important;
    box-shadow:20px 0 46px rgba(8,15,28,.24);
  }
  body.rocket-mobile-nav-open .sidebar-header{justify-content:space-between!important;padding:12px 10px!important}
  body.rocket-mobile-nav-open .sidebar-logo{display:flex!important;width:180px!important}
  body.rocket-mobile-nav-open .sidebar-brand-copy{display:flex!important}
  body.rocket-mobile-nav-open .sidebar .nav-label,
  body.rocket-mobile-nav-open .sidebar .nav-chevron,
  body.rocket-mobile-nav-open .sidebar .sidebar-section-title,
  body.rocket-mobile-nav-open .sidebar .profile-copy{display:block!important}
  body.rocket-mobile-nav-open .sidebar .nav-list,
  body.rocket-mobile-nav-open .sidebar .lower-nav{padding-inline:8px!important}
  body.rocket-mobile-nav-open .sidebar .nav-item,
  body.rocket-mobile-nav-open .sidebar .pinned-list .nav-item{width:100%!important;height:auto!important}
  body.rocket-mobile-nav-open .sidebar .nav-link,
  body.rocket-mobile-nav-open .sidebar .pinned-list .nav-link{
    width:100%!important;
    height:38px!important;
    justify-content:flex-start!important;
    padding:7px 11px!important;
  }
  body.rocket-mobile-nav-open .sidebar .nav-label{margin-left:9px!important;font-size:13px!important;line-height:20px!important}
  body.rocket-mobile-nav-open .sidebar .sidebar-divider{margin-inline:10px!important}
  body.rocket-mobile-nav-open .sidebar .pinned-list{display:flex!important;margin:0!important;padding:4px 8px!important}
  body.rocket-mobile-nav-open .sidebar .profile-button{height:64px!important;padding:12px!important}

  /* Submenus become inline accordion rows inside the mobile drawer instead of detached flyouts. */
  body.rocket-mobile-nav-open .sidebar :is(.broker-submenu,.social-submenu,.contacts-submenu,.captaciones-submenu,.quick-menu,.help-submenu){
    position:static!important;
    left:auto!important;
    top:auto!important;
    right:auto!important;
    display:flex;
    width:auto!important;
    max-width:none!important;
    max-height:none!important;
    margin:2px 0 5px!important;
    padding:2px 4px 3px 34px!important;
    overflow:visible!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
  }
  body.rocket-mobile-nav-open .sidebar :is(.broker-submenu,.social-submenu,.contacts-submenu,.captaciones-submenu,.quick-menu,.help-submenu)[hidden]{display:none!important}
  body.rocket-mobile-nav-open .sidebar :is(.broker-submenu,.social-submenu,.contacts-submenu,.captaciones-submenu,.quick-menu,.help-submenu)::before{content:none!important;display:none!important}
  body.rocket-mobile-nav-open .sidebar :is(.broker-submenu,.social-submenu,.contacts-submenu,.captaciones-submenu,.quick-menu,.help-submenu) .nav-link{
    width:100%!important;
    height:34px!important;
    padding:6px 9px!important;
    color:inherit!important;
  }
  body.rocket-mobile-nav-open .sidebar .quick-group-submenu{padding-left:24px!important}

  /* Ensure the hamburger stays easy to tap in both rail and open states. */
  .sidebar-toggle{touch-action:manipulation}
  .sidebar-tooltip{display:none!important}
}

@media(max-width:720px), (orientation:landscape) and (max-height:600px) and (pointer:coarse){
  :root{--rocket-mobile-search-width:144px;--header-height:58px}

  /* Compact mobile header: no section title competing with search/actions. */
  .workspace-header{
    min-height:58px!important;
    height:58px!important;
    padding:0!important;
    gap:0!important;
  }
  .workspace-title-zone{display:none!important}
  .workspace-search-zone:not([hidden]){
    display:flex!important;
    min-width:0!important;
    flex:1 1 auto!important;
    align-items:center!important;
    justify-content:flex-start!important;
    padding:0 6px 0 10px!important;
  }
  .workspace-search-zone:not([hidden])>.search-input-wrap,
  #flyersSearchZone:not([hidden]) .flyers-toolbar>.search-input-wrap{
    display:flex!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    height:var(--rocket-mobile-control)!important;
    flex:1 1 auto!important;
    margin:0!important;
  }
  .workspace-search-zone:not([hidden]) .search-input{
    min-width:0!important;
    height:36px!important;
    padding-right:8px!important;
    font-size:11.5px!important;
  }
  .workspace-search-zone:not([hidden]) .search-summary{display:none!important}

  /* Hide header filter clutter; all filters are reached from the filter icon. */
  .workspace-search-zone:not([hidden]):not(#canvaDriveHeaderZone)>:not(.search-input-wrap),
  #flyersSearchZone:not([hidden]) .flyers-toolbar>:not(.search-input-wrap){display:none!important}
  #flyersSearchZone:not([hidden]) .flyers-toolbar{display:flex!important;width:100%!important;min-width:0!important;flex:1 1 auto!important;margin:0!important;padding:0!important}

  .workspace-actions{
    display:flex!important;
    min-width:0!important;
    flex:0 0 auto!important;
    align-items:center!important;
    gap:5px!important;
    padding:0 8px 0 0!important;
  }
  .workspace-actions>:is(.header-more,.bulk-delete-reminders-button,.new-lead-button,.rocket-mobile-filter-button){
    width:var(--rocket-mobile-control)!important;
    min-width:var(--rocket-mobile-control)!important;
    height:var(--rocket-mobile-control)!important;
    margin:0!important;
    border-radius:7px!important;
  }
  .workspace-actions .header-more{
    display:inline-grid!important;
    border:1px solid var(--line)!important;
    background:var(--surface)!important;
  }
  .workspace-actions .header-more[hidden]{display:none!important}
  .workspace-actions .bulk-delete-reminders-button{margin-right:0!important}
  .workspace-actions .new-lead-button{
    padding:0!important;
    border-color:#0048BE!important;
    background:#0055DD!important;
    color:#fff!important;
  }
  .workspace-actions .new-lead-button svg{width:14px!important;height:14px!important;margin:0!important}
  .workspace-actions .new-lead-button :is(.new-lead-long,.new-lead-short){display:none!important}
  .rocket-mobile-filter-button{background:var(--surface)!important;color:#0055DD!important}

  /* Existing Leads / Recordatorios / Cierres filter systems become true right-side mobile drawers. */
  .filter-scrim{
    z-index:1190!important;
    inset:0!important;
    background:rgba(8,15,28,.42)!important;
    -webkit-backdrop-filter:blur(3px)!important;
    backdrop-filter:blur(3px)!important;
  }
  .filter-panel,
  .closing-filter-panel{
    z-index:1200!important;
    top:0!important;
    right:0!important;
    bottom:auto!important;
    left:auto!important;
    width:min(88vw,360px)!important;
    max-width:100%!important;
    height:100dvh!important;
    max-height:100dvh!important;
    transform:none!important;
    grid-template-columns:1fr!important;
    grid-template-rows:auto minmax(0,1fr)!important;
    border-radius:0!important;
    background:var(--surface)!important;
    box-shadow:-18px 0 44px rgba(15,23,42,.22)!important;
  }
  .filter-panel[hidden],.closing-filter-panel[hidden]{display:none!important}
  .closing-filter-panel{grid-template-rows:minmax(0,1fr)!important}
  .filter-presets{
    display:flex!important;
    max-height:138px!important;
    flex-direction:row!important;
    flex-wrap:wrap!important;
    align-content:flex-start!important;
    gap:6px!important;
    padding:max(12px,env(safe-area-inset-top)) 14px 10px!important;
    overflow:auto!important;
    border-right:0!important;
    border-bottom:1px solid var(--line)!important;
    background:var(--surface)!important;
  }
  .filter-preset-button{
    width:auto!important;
    height:32px!important;
    padding:0 10px!important;
    border:1px solid var(--line)!important;
    border-radius:999px!important;
    background:var(--surface)!important;
    font-size:10.5px!important;
    line-height:30px!important;
  }
  .filter-preset-button[aria-current="true"]{border-color:rgba(0,85,221,.35)!important;background:rgba(0,85,221,.08)!important}
  .filter-content{grid-template-rows:minmax(0,1fr) auto!important;min-height:0!important;background:var(--surface)!important}
  .filter-scroll{padding:16px 14px 18px!important;background:var(--surface)!important}
  .filter-grid,.closing-filter-grid{grid-template-columns:1fr!important;gap:11px!important}
  .filter-field.wide,.closing-filter-grid .span-2{grid-column:auto!important}
  .filter-actions,
  .closing-filter-panel .filter-actions{
    position:relative!important;
    min-height:64px!important;
    height:auto!important;
    justify-content:flex-start!important;
    gap:7px!important;
    padding:10px 62px max(12px,env(safe-area-inset-bottom)) 14px!important;
    border-top:1px solid var(--line)!important;
    background:var(--surface)!important;
  }
  .filter-actions .button-close{right:14px!important}
  .filter-advisor-shortcut{width:100%!important}
  .filter-field-advisor-mobile:not([hidden]){display:grid!important}

  /* Flyers: advanced filters are not allowed to consume the first screen; they live in the drawer. */
  #flyersAdvancedFilters{display:none!important}
  #rocketMobileFilterDrawer #flyersAdvancedFilters{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:10px!important;
    width:100%!important;
    padding:2px 0!important;
    border:0!important;
    background:transparent!important;
  }
  #rocketMobileFilterDrawer #flyersAdvancedFilters .flyers-advanced-filter-field{min-width:0!important}
  #rocketMobileFilterDrawer #flyersAdvancedFilters :is(.select,.input){width:100%!important;min-width:0!important;height:40px!important}
  #rocketMobileFilterDrawer #flyersAdvancedFilters label{font-size:9px!important;line-height:1.15!important}

  /* A little more usable content area on mobile. */
  .workspace-body{min-width:0!important}

  /* Mobile has labels in the expanded drawer, so desktop hover tooltips are redundant here. */
  .sidebar-tooltip{display:none!important}

  /* Lower rail geometry: every item, including Notifications, shares the same optical center. */
  body:not(.rocket-mobile-nav-open) .sidebar .lower-nav{align-items:center!important}
  body:not(.rocket-mobile-nav-open) .sidebar .lower-nav>li{display:flex!important;width:100%!important;justify-content:center!important}
  body:not(.rocket-mobile-nav-open) .sidebar .lower-nav .nav-link{
    width:40px!important;min-width:40px!important;height:40px!important;padding:0!important;justify-content:center!important;margin:0 auto!important;
  }
  body:not(.rocket-mobile-nav-open) #notificationsButton .notification-badge{top:-4px!important;left:auto!important;right:-5px!important;min-width:18px!important;height:18px!important;padding:0 4px!important}

  /* Notificaciones: vuelve al popover compacto original, con geometría móvil corregida.
     La posición vertical queda a cargo del motor existente para no convertirlo en un panel de pantalla completa. */
  #notificationsPopover{
    width:min(330px,calc(100vw - var(--sidebar-collapsed) - 16px))!important;
    max-height:min(440px,calc(100dvh - 20px))!important;
    padding:8px!important;
    border-radius:10px!important;
    overflow:hidden!important;
  }
  #notificationsPopover:not([hidden]){display:block!important}
  #notificationsPopover .notification-center-head{padding:4px 6px 8px!important}
  #notificationsPopover .notification-list{max-height:min(330px,calc(100dvh - 118px))!important;overflow-y:auto!important}
  #notificationsPopover .notification-item{height:auto!important;min-height:0!important;padding:9px!important}
  #notificationsPopover .notification-item-title{white-space:normal!important;line-height:1.25!important}
  #notificationsPopover .notification-item-meta{white-space:normal!important;line-height:1.32!important}
  #notificationsPopover .notification-center-action{margin-top:7px!important}

  /* PWA install prompt aligns to the usable CRM area beside the compact rail. */
  .rocket-install-card{left:calc(var(--sidebar-collapsed) + 10px);right:10px}
  body.rocket-pwa-auth-context .rocket-install-card{left:12px!important;right:12px!important}
  body.rocket-pwa-auth-context #authScreen{padding-bottom:92px!important;overflow-y:auto!important}


  /* V3.578 · continuidad visual del header móvil.
     Sidebar y workspace comparten exactamente la misma altura y la divisoria superior ocupa todo el ancho. */
  .sidebar-header{
    flex:0 0 var(--header-height)!important;
    height:var(--header-height)!important;
    min-height:var(--header-height)!important;
    padding:9px 8px!important;
  }
  body.rocket-mobile-nav-open .sidebar-header{padding:9px 10px!important}
  .sidebar-header + .sidebar-divider{
    width:100%!important;
    margin:0!important;
  }
  .workspace-header{position:fixed!important}
  .workspace-header::after{
    content:"";
    position:absolute;
    z-index:12;
    right:0;
    bottom:0;
    left:0;
    height:1px;
    background:var(--line);
    pointer-events:none;
  }

  /* Calculadora: conserva el margen superior pero elimina la sombra que invade ese espacio. */
  #calculatorView .calculator-card{box-shadow:none!important}
}

@media(max-width:620px), (orientation:landscape) and (max-height:600px) and (pointer:coarse){
  /* Mi Desempeño: compact two-line identity with icon-only actions in the badge row. */
  .performance-view{padding:10px!important;align-items:flex-start!important}
  .performance-shell{
    width:calc(100vw - 20px)!important;
    max-height:calc(100dvh - 20px)!important;
    padding:10px!important;
    border-radius:20px!important;
  }
  .performance-shell .md403-header{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) auto!important;
    gap:7px 8px!important;
    padding:10px 11px!important;
  }
  .performance-shell .md403-header>div:first-child{min-width:0!important}
  .performance-shell .md403-badge{font-size:9px!important;padding:4px 8px!important}
  .performance-shell .md403-header-actions{
    grid-column:2!important;
    grid-row:1!important;
    width:auto!important;
    align-self:start!important;
    justify-content:flex-end!important;
    gap:5px!important;
  }
  .performance-shell :is(.md403-download,.md403-close){
    position:relative!important;
    display:block!important;
    width:32px!important;
    min-width:32px!important;
    height:32px!important;
    padding:0!important;
    overflow:hidden!important;
    border-radius:9px!important;
    font-size:0!important;
    line-height:0!important;
  }
  .performance-shell .md403-download>span:not([aria-hidden="true"]){display:none!important}
  .performance-shell .md403-download span[aria-hidden="true"]{
    position:absolute!important;
    inset:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:32px!important;
    height:32px!important;
    margin:0!important;
    padding:0!important;
    font-size:15px!important;
    line-height:1!important;
    text-align:center!important;
    transform:translateY(-.5px)!important;
  }
  .performance-shell .md403-close{color:transparent!important}
  .performance-shell .md403-close::before{
    content:"✕";
    position:absolute!important;
    inset:0!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:32px!important;
    height:32px!important;
    margin:0!important;
    padding:0!important;
    color:#fff!important;
    font-size:14px!important;
    line-height:1!important;
    text-align:center!important;
  }
  .performance-shell .performance-heading h2{
    margin:7px 0 2px!important;
    font-size:18px!important;
    line-height:1.05!important;
  }
  .performance-title-label,
  .performance-title-separator{display:none!important}
  .performance-title-advisor{display:block!important}
  .performance-shell .performance-heading p{font-size:10px!important;line-height:1.3!important}
  .performance-shell .md403-filters{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:7px!important}
  .performance-shell .md403-kpis{grid-template-columns:1fr!important}

  /* Global modal system: equal side margins, safe-area support and consistent geometry. */
  .modal-backdrop{
    place-items:center!important;
    padding:max(12px,env(safe-area-inset-top)) 12px max(12px,env(safe-area-inset-bottom))!important;
  }
  .modal-card,
  .social-networks-card,
  .flyer-share-card,
  .flyer-gallery-card,
  .billing-plan-modal-card,
  .national-closings-card{
    width:100%!important;
    max-width:calc(100vw - 24px)!important;
    max-height:calc(100dvh - max(24px,env(safe-area-inset-top) + env(safe-area-inset-bottom)))!important;
    margin:0!important;
    border-radius:var(--rocket-mobile-radius)!important;
    overflow:auto!important;
  }
  .modal-card .modal-header{
    min-height:56px!important;
    padding:12px 15px!important;
  }
  .modal-card .modal-header h2{font-size:15px!important;line-height:1.2!important}
  .modal-card .modal-subtitle{font-size:10.5px!important;line-height:1.35!important}
  .modal-card .modal-body{padding:14px 15px!important}
  .modal-card .modal-actions{
    position:sticky;
    z-index:3;
    bottom:0;
    padding:10px 15px max(14px,env(safe-area-inset-bottom))!important;
    border-top:1px solid var(--line);
    background:var(--surface);
  }
  .social-networks-card .social-networks-body{padding:14px 15px!important}
}

@media(max-width:390px){
  :root{--rocket-mobile-search-width:128px}
  .workspace-actions{gap:4px!important;padding-right:6px!important}
  .workspace-search-zone:not([hidden]){padding-left:7px!important;padding-right:4px!important}
  .rocket-install-card{grid-template-columns:40px minmax(0,1fr) auto;gap:8px;padding:9px}
  .rocket-install-icon{width:40px;height:40px}.rocket-install-icon img{width:36px;height:36px}
}

@media(max-width:350px){
  :root{--rocket-mobile-search-width:112px;--rocket-mobile-control:36px}
}

/* Standalone app: keep iOS/Android safe areas clean and remove any install UI. */
@media(display-mode:standalone){
  body{padding:0!important}
  .sidebar{
    height:100dvh!important;
    padding-top:env(safe-area-inset-top)!important;
    padding-bottom:env(safe-area-inset-bottom)!important;
  }
  .workspace-header{
    height:calc(var(--header-height) + env(safe-area-inset-top))!important;
    min-height:calc(var(--header-height) + env(safe-area-inset-top))!important;
    padding-top:env(safe-area-inset-top)!important;
  }
  .workspace-body{padding-top:calc(80px + env(safe-area-inset-top))!important}
  .rocket-install-card{display:none!important}
}


/* V3.579 · Mobile UX: una sola divisoria, listados al ras y densidad adaptable. */
@media(max-width:720px), (orientation:landscape) and (max-height:600px) and (pointer:coarse){
  /* La línea del header es UNA sola: el border nativo del workspace + el mismo border en sidebar-header.
     Se elimina el pseudo-elemento de V3.578 y el divider separado que provocaban doble grosor/desfase. */
  .workspace-header{
    border-bottom:1px solid var(--line)!important;
  }
  .workspace-header::after{
    content:none!important;
    display:none!important;
  }
  .sidebar-header{
    border-bottom:1px solid var(--line)!important;
  }
  .sidebar-header + .sidebar-divider{
    display:none!important;
  }

  /* Leads + Recordatorios usan todo el lienzo útil: sin hueco superior, inferior ni izquierdo. */
  .workspace-body:has(#leadsView:not([hidden])),
  .workspace-body:has(#remindersView:not([hidden])){
    padding-top:var(--header-height)!important;
    padding-bottom:0!important;
  }
  #leadsView:not([hidden]),
  #remindersView:not([hidden]){
    height:calc(100dvh - var(--header-height))!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
  }
  #leadsView .table-scroller,
  #remindersView .reminders-table-wrap{
    margin:0!important;
    padding-left:0!important;
  }
  #leadsView .leads-grid,
  #remindersView .reminders-grid{
    min-width:100%!important;
  }
  #leadsPagination,
  #reminderPagination{
    margin:0!important;
  }

  /* En mobile la cantidad por página la decide automáticamente el alto útil del dispositivo. */
  body.rocket-mobile-adaptive-lists #leadsPagination .pagination-size,
  body.rocket-mobile-adaptive-lists #reminderPagination .pagination-size{
    display:none!important;
  }
}

@media (max-width:720px) and (display-mode:standalone), (orientation:landscape) and (max-height:600px) and (pointer:coarse) and (display-mode:standalone){
  .workspace-body:has(#leadsView:not([hidden])),
  .workspace-body:has(#remindersView:not([hidden])){
    padding-top:calc(var(--header-height) + env(safe-area-inset-top))!important;
  }
  #leadsView:not([hidden]),
  #remindersView:not([hidden]){
    height:calc(100dvh - var(--header-height) - env(safe-area-inset-top))!important;
  }
}

/* V3.581 · Header MOBILE: recuperar la divisoria fina original y completar únicamente el tramo del sidebar.
   La línea del workspace vuelve a ser su border-bottom nativo (1px). El sidebar replica ese mismo trazo
   con un pseudo-elemento alineado al borde inferior, sin crear una segunda línea global. */
@media(max-width:720px), (orientation:landscape) and (max-height:600px) and (pointer:coarse){
  .app-shell::after{
    content:none!important;
    display:none!important;
  }

  .workspace-header{
    border-bottom:1px solid var(--line)!important;
  }
  .workspace-header::after{
    content:none!important;
    display:none!important;
  }

  .sidebar-header{
    position:relative!important;
    border-bottom:0!important;
    box-shadow:none!important;
  }
  .sidebar-header::after{
    content:"";
    position:absolute;
    z-index:12;
    right:0;
    bottom:0;
    left:0;
    height:1px;
    background:var(--line);
    pointer-events:none;
  }
  .sidebar-header + .sidebar-divider{
    display:none!important;
  }
}

/* V3.582 · Header MOBILE: conservar la raya fina original del sidebar, ahora alineada y completa.
   En V3.581 el tramo del sidebar ya estaba en la posición correcta, pero usaba var(--line),
   que sobre el azul ROCKET se veía como un hueco oscuro. Recuperamos EXACTAMENTE el tono
   original de .sidebar-divider (rgba(255,255,255,.16)) sin tocar grosor, posición ni workspace. */
@media(max-width:720px), (orientation:landscape) and (max-height:600px) and (pointer:coarse){
  .sidebar-header::after{
    background:rgba(255,255,255,.16)!important;
  }
}


/* V3.583 · MOBILE/PWA: viewport fijo, paginación adaptativa visible y divisoria original restaurada.
   - El documento raíz deja de desplazarse/rubber-bandear cuando el CRM está abierto: sólo scrollean las superficies internas.
   - Leads/Recordatorios vuelven a mostrar a la izquierda cuántos registros caben por página y la navegación queda a la derecha.
   - El workspace usa una única raya interior de 1px; el sidebar vuelve a usar SU divider original, estirado al 100% y alineado a la misma Y. */
@media(max-width:720px), (orientation:landscape) and (max-height:600px) and (pointer:coarse){
  html.rocket-mobile-crm-context,
  body.rocket-mobile-crm-context{
    width:100%!important;
    height:100dvh!important;
    min-height:0!important;
    overflow:hidden!important;
    overscroll-behavior:none!important;
  }
  body.rocket-mobile-crm-context{
    position:fixed!important;
    inset:0!important;
  }
  body.rocket-mobile-crm-context .app-shell{
    position:fixed!important;
    inset:0!important;
    width:100%!important;
    height:100dvh!important;
    min-height:0!important;
    overflow:hidden!important;
    overscroll-behavior:none!important;
  }
  body.rocket-mobile-crm-context .workspace{
    height:100dvh!important;
    min-height:0!important;
    overflow:hidden!important;
    overscroll-behavior:none!important;
  }
  body.rocket-mobile-crm-context .workspace-body{
    height:100dvh!important;
    max-height:100dvh!important;
    min-height:0!important;
    overflow:hidden!important;
    overscroll-behavior:none!important;
  }
  body.rocket-mobile-crm-context :is(.table-scroller,.reminders-table-wrap,.sidebar-main,.performance-shell,.modal-card,.rocket-mobile-filter-body){
    -webkit-overflow-scrolling:touch;
    overscroll-behavior-y:contain;
  }

  /* Una sola raya fina bajo el buscador: no modifica layout ni suma grosor. */
  .workspace-header{
    border-bottom:0!important;
    box-shadow:inset 0 -1px 0 var(--line)!important;
  }
  .workspace-header::after{
    content:none!important;
    display:none!important;
  }

  /* Restaurar el HR real/original del sidebar. Sólo se estira y se posiciona sobre el borde inferior del header. */
  .sidebar-header{
    border-bottom:0!important;
    box-shadow:none!important;
  }
  .sidebar-header::after{
    content:none!important;
    display:none!important;
  }
  .sidebar-header + .sidebar-divider{
    display:block!important;
    position:absolute!important;
    z-index:96!important;
    top:calc(var(--header-height) - 1px)!important;
    right:0!important;
    left:0!important;
    width:auto!important;
    height:1px!important;
    min-height:1px!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    background:rgba(255,255,255,.16)!important;
    pointer-events:none!important;
  }

  /* Footer adaptativo: cantidad visible a la izquierda + paginación siempre a la derecha. */
  body.rocket-mobile-adaptive-lists #leadsPagination,
  body.rocket-mobile-adaptive-lists #reminderPagination{
    justify-content:flex-start!important;
    gap:8px!important;
    padding:0 10px!important;
  }
  body.rocket-mobile-adaptive-lists #leadsPagination .pagination-size,
  body.rocket-mobile-adaptive-lists #reminderPagination .pagination-size{
    display:flex!important;
    min-width:0!important;
    align-items:center!important;
    gap:4px!important;
    color:var(--muted)!important;
    font-size:11px!important;
    white-space:nowrap!important;
  }
  body.rocket-mobile-adaptive-lists #leadsPagination .pagination-size>span,
  body.rocket-mobile-adaptive-lists #reminderPagination .pagination-size>span{
    display:inline!important;
  }
  body.rocket-mobile-adaptive-lists #leadsPagination .pagination-size-select,
  body.rocket-mobile-adaptive-lists #reminderPagination .pagination-size-select{
    display:none!important;
  }
  .rocket-mobile-adaptive-page-size{
    color:var(--ink)!important;
    font-weight:800!important;
    font-variant-numeric:tabular-nums!important;
  }
  body.rocket-mobile-adaptive-lists #leadsPagination .pagination-range,
  body.rocket-mobile-adaptive-lists #reminderPagination .pagination-range{
    display:none!important;
  }
  body.rocket-mobile-adaptive-lists #leadsPagination .pagination-navigation,
  body.rocket-mobile-adaptive-lists #reminderPagination .pagination-navigation{
    flex:0 0 auto!important;
    margin-left:auto!important;
  }
}

@media (max-width:720px) and (display-mode:standalone), (orientation:landscape) and (max-height:600px) and (pointer:coarse) and (display-mode:standalone){
  .sidebar-header + .sidebar-divider{
    top:calc(env(safe-area-inset-top) + var(--header-height) - 1px)!important;
  }
}

/* V3.584 · MOBILE: divisor continuo real + selector de cantidad restaurado + auto-fit exacto.
   Esta regla final anula todos los intentos previos del divisor: queda UNA sola raya física de 1px.
   Sobre el rail usa el mismo tono original de ROCKET y sobre el workspace usa var(--line). */
@media(max-width:720px), (orientation:landscape) and (max-height:600px) and (pointer:coarse){
  .workspace-header,
  .sidebar-header{
    border-bottom:0!important;
    box-shadow:none!important;
  }
  .workspace-header::before,
  .workspace-header::after,
  .sidebar-header::before,
  .sidebar-header::after{
    content:none!important;
    display:none!important;
  }
  .sidebar-header + .sidebar-divider{
    display:none!important;
  }
  .app-shell::after{
    content:""!important;
    display:block!important;
    position:fixed!important;
    z-index:97!important;
    top:calc(var(--header-height) - 1px)!important;
    right:0!important;
    left:0!important;
    width:100%!important;
    height:1px!important;
    min-height:1px!important;
    max-height:1px!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    background:linear-gradient(to right,
      rgba(255,255,255,.16) 0,
      rgba(255,255,255,.16) var(--sidebar-collapsed),
      var(--line) var(--sidebar-collapsed),
      var(--line) 100%)!important;
    box-shadow:none!important;
    pointer-events:none!important;
  }

  body.rocket-mobile-adaptive-lists #leadsPagination .pagination-size,
  body.rocket-mobile-adaptive-lists #reminderPagination .pagination-size{
    display:flex!important;
    align-items:center!important;
    gap:5px!important;
    min-width:0!important;
    white-space:nowrap!important;
  }
  body.rocket-mobile-adaptive-lists #leadsPagination .pagination-size-select,
  body.rocket-mobile-adaptive-lists #reminderPagination .pagination-size-select{
    display:inline-block!important;
    width:48px!important;
    min-width:48px!important;
    height:30px!important;
    padding:0 18px 0 7px!important;
    font-size:12px!important;
    font-weight:700!important;
    line-height:28px!important;
  }
  .rocket-mobile-adaptive-page-size{display:none!important}
}

@media (max-width:720px) and (display-mode:standalone), (orientation:landscape) and (max-height:600px) and (pointer:coarse) and (display-mode:standalone){
  .app-shell::after{
    top:calc(env(safe-area-inset-top) + var(--header-height) - 1px)!important;
  }
}



/* V3.586 · MOBILE: cierre fino de sidebar y headers.
   - Leads/Recordatorios: se oculta la papelera sólo en móvil.
   - Los separadores internos del rail comparten exactamente el mismo tono y geometría.
   - Se elimina el gradiente oscuro previo a Ajustes para evitar una "raya" negra.
   - El divisor de Bandejas de mensaje usa el mismo tono que el divisor sobre el perfil.
*/
@media(max-width:720px), (orientation:landscape) and (max-height:600px) and (pointer:coarse){
  #bulkDeleteLeadsButton,
  #bulkDeleteRemindersButton{
    display:none!important;
  }

  .sidebar-lower::before{
    content:none!important;
    display:none!important;
  }

  .sidebar-lower > .sidebar-divider{
    display:block!important;
    width:auto!important;
    height:1px!important;
    min-height:1px!important;
    margin:0 8px!important;
    padding:0!important;
    border:0!important;
    background:rgba(255,255,255,.16)!important;
    box-shadow:none!important;
  }

  .sidebar .message-trays-divider{
    display:block!important;
    width:auto!important;
    height:0!important;
    margin:8px 8px 4px!important;
    padding:0!important;
    border:0!important;
    border-top:1px solid rgba(255,255,255,.16)!important;
    background:transparent!important;
    box-shadow:none!important;
  }

  .sidebar-header + .sidebar-divider{
    display:none!important;
  }
}

/* V3.586 · MOBILE: menú lateral nítido + posición inicial estable del Dashboard.
   - El scrim comienza físicamente después del drawer: nunca cubre ni desenfoca el sidebar abierto.
   - Se elimina backdrop-filter del scrim de navegación; el fondo conserva sólo oscurecimiento limpio.
   - En el rail colapsado, Dashboard arranca inmediatamente bajo la divisoria del header, sin padding superior artificial.
   - Se desactiva scroll anchoring en sidebar-main para evitar saltos al entrar al CRM. */
@media(max-width:900px), (orientation:landscape) and (max-height:600px) and (pointer:coarse){
  .rocket-mobile-nav-scrim{
    left:min(82vw,292px)!important;
    -webkit-backdrop-filter:none!important;
    backdrop-filter:none!important;
  }
  body.rocket-mobile-nav-open .sidebar{
    opacity:1!important;
    filter:none!important;
    -webkit-backdrop-filter:none!important;
    backdrop-filter:none!important;
  }
}

@media(max-width:720px), (orientation:landscape) and (max-height:600px) and (pointer:coarse){
  body.rocket-mobile-crm-context .sidebar-main{
    scroll-behavior:auto!important;
    overflow-anchor:none!important;
  }
  body.rocket-mobile-crm-context:not(.rocket-mobile-nav-open) .sidebar-main > #crmNav.nav-list.compact-top{
    padding-top:0!important;
  }
  body.rocket-mobile-nav-open .sidebar-main > #crmNav.nav-list.compact-top{
    padding-top:8px!important;
  }
}

/* V3.587 · MOBILE: las acciones de alta (+) quedan siempre al extremo derecho del header.
   El reordenamiento vive únicamente bajo el breakpoint móvil; ROCKET WEB no cambia. */
@media(max-width:720px), (orientation:landscape) and (max-height:600px) and (pointer:coarse){
  .workspace-actions .header-more{order:10!important;}
  .workspace-actions .bulk-delete-reminders-button{order:20!important;}
  .workspace-actions .rocket-mobile-filter-button{order:30!important;}
  .workspace-actions .new-lead-button{order:40!important;}
}


/* V3.588 · MOBILE: restaurar el margen superior ORIGINAL de todas las secciones.
   El header móvil mide 58px, pero el workspace seguía heredando los 80px del layout WEB,
   generando 22px extra antes del margen propio de cada vista. Desde aquí el body comienza
   exactamente bajo el header móvil. Leads y Recordatorios conservan su excepción al ras. */
@media(max-width:720px), (orientation:landscape) and (max-height:600px) and (pointer:coarse){
  body.rocket-mobile-crm-context .workspace-body{
    padding-top:var(--header-height)!important;
  }
}

@media (max-width:720px) and (display-mode:standalone), (orientation:landscape) and (max-height:600px) and (pointer:coarse) and (display-mode:standalone){
  body.rocket-mobile-crm-context .workspace-body{
    padding-top:calc(var(--header-height) + env(safe-area-inset-top))!important;
  }
}


/* V3.594 · MOBILE/PWA · estabilización consolidada.
   1) iPhone/Android siguen usando chrome MOBILE al rotar a landscape.
   2) Dashboard/Flyers/Canva recuperan scroll vertical normal.
   3) Cierres/Asesores/Productividad/Seprelad/Comisiones/Gastos aprovechan el alto útil.
   4) Asesores conserva columnas legibles con scroll horizontal, sin comprimir la tabla. */
@media(max-width:720px), (orientation:landscape) and (max-height:600px) and (pointer:coarse){
  /* Las vistas de contenido largo usan el workspace como único scroll vertical. */
  body.rocket-mobile-crm-context .workspace-body:has(#dashboardView:not([hidden])),
  body.rocket-mobile-crm-context .workspace-body:has(#flyersView:not([hidden])),
  body.rocket-mobile-crm-context .workspace-body:has(#canvaDriveView:not([hidden])){
    overflow-x:hidden!important;
    overflow-y:auto!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior-y:contain!important;
    touch-action:pan-y!important;
  }
  body.rocket-mobile-crm-context #dashboardView:not([hidden]),
  body.rocket-mobile-crm-context #flyersView:not([hidden]),
  body.rocket-mobile-crm-context #canvaDriveView:not([hidden]){
    height:auto!important;
    max-height:none!important;
    min-height:calc(100dvh - var(--header-height))!important;
    overflow:visible!important;
    touch-action:pan-y!important;
  }
  body.rocket-mobile-crm-context #flyersView .flyers-grid,
  body.rocket-mobile-crm-context #canvaDriveView .canva-drive-grid{
    overflow:visible!important;
  }

  /* Listados administrativos: mismo lienzo útil que Leads/Recordatorios. */
  body.rocket-mobile-crm-context :is(#closingsView,#advisorsView,#productivityView,#sepreladView,#commissionsView,#expensesView):not([hidden]){
    height:calc(100dvh - var(--header-height))!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
  }
  body.rocket-mobile-crm-context :is(.closings-table-wrap,.advisors-table-wrap,.productivity-table-wrap,.seprelad-table-wrap,.commissions-table-wrap,.expenses-table-wrap){
    min-height:0!important;
    overflow:auto!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior:contain!important;
  }
  body.rocket-mobile-crm-context :is(#closingPagination,#advisorPagination,#productivityPagination,#sepreladPagination,#commissionsPagination,#expensesPagination){
    flex:0 0 auto!important;
    min-height:50px!important;
    margin:0!important;
  }

  /* Asesores: nunca aplastar diez columnas dentro del ancho del teléfono. */
  body.rocket-mobile-crm-context #advisorsView .advisors-table-wrap{
    padding-left:0!important;
    overflow-x:auto!important;
    overflow-y:auto!important;
    touch-action:pan-x pan-y!important;
  }
  body.rocket-mobile-crm-context #advisorsView .advisors-table{
    width:1300px!important;
    min-width:1300px!important;
    max-width:none!important;
    table-layout:fixed!important;
  }
  body.rocket-mobile-crm-context #advisorsView .advisors-table th:nth-child(1),
  body.rocket-mobile-crm-context #advisorsView .advisors-table td:nth-child(1){width:44px!important}
  body.rocket-mobile-crm-context #advisorsView .advisors-table th:nth-child(2),
  body.rocket-mobile-crm-context #advisorsView .advisors-table td:nth-child(2){width:58px!important}
  body.rocket-mobile-crm-context #advisorsView .advisors-table th:nth-child(3),
  body.rocket-mobile-crm-context #advisorsView .advisors-table td:nth-child(3){width:190px!important}
  body.rocket-mobile-crm-context #advisorsView .advisors-table th:nth-child(4),
  body.rocket-mobile-crm-context #advisorsView .advisors-table td:nth-child(4){width:145px!important}
  body.rocket-mobile-crm-context #advisorsView .advisors-table th:nth-child(5),
  body.rocket-mobile-crm-context #advisorsView .advisors-table td:nth-child(5){width:140px!important}
  body.rocket-mobile-crm-context #advisorsView .advisors-table th:nth-child(6),
  body.rocket-mobile-crm-context #advisorsView .advisors-table td:nth-child(6){width:125px!important}
  body.rocket-mobile-crm-context #advisorsView .advisors-table th:nth-child(7),
  body.rocket-mobile-crm-context #advisorsView .advisors-table td:nth-child(7){width:135px!important}
  body.rocket-mobile-crm-context #advisorsView .advisors-table th:nth-child(8),
  body.rocket-mobile-crm-context #advisorsView .advisors-table td:nth-child(8){width:125px!important}
  body.rocket-mobile-crm-context #advisorsView .advisors-table th:nth-child(9),
  body.rocket-mobile-crm-context #advisorsView .advisors-table td:nth-child(9){width:230px!important}
  body.rocket-mobile-crm-context #advisorsView .advisors-table th:nth-child(10),
  body.rocket-mobile-crm-context #advisorsView .advisors-table td:nth-child(10){width:108px!important}

  /* Footer adaptativo de los nuevos listados: selector a la izquierda, navegación a la derecha. */
  body.rocket-mobile-adaptive-lists :is(#closingPagination,#advisorPagination,#productivityPagination,#sepreladPagination,#commissionsPagination,#expensesPagination){
    justify-content:flex-start!important;
    gap:8px!important;
    padding:0 10px!important;
  }
  body.rocket-mobile-adaptive-lists :is(#closingPagination,#advisorPagination,#productivityPagination,#sepreladPagination,#commissionsPagination,#expensesPagination) .pagination-size{
    display:flex!important;
    min-width:0!important;
    align-items:center!important;
    gap:5px!important;
    white-space:nowrap!important;
  }
  body.rocket-mobile-adaptive-lists :is(#closingPagination,#advisorPagination,#productivityPagination,#sepreladPagination,#commissionsPagination,#expensesPagination) .pagination-size-select{
    display:inline-block!important;
    width:48px!important;
    min-width:48px!important;
    height:30px!important;
    padding:0 18px 0 7px!important;
    font-size:12px!important;
    font-weight:700!important;
    line-height:28px!important;
  }
  body.rocket-mobile-adaptive-lists :is(#closingPagination,#advisorPagination,#productivityPagination,#sepreladPagination,#commissionsPagination,#expensesPagination) .pagination-navigation{
    flex:0 0 auto!important;
    margin-left:auto!important;
  }
  body.rocket-mobile-adaptive-lists :is(#closingPagination,#advisorPagination,#productivityPagination,#sepreladPagination,#commissionsPagination,#expensesPagination) .pagination-range,
  body.rocket-mobile-adaptive-lists #advisorPagination .advisor-pagination-summary,
  body.rocket-mobile-adaptive-lists #productivityPagination .advisor-pagination-summary,
  body.rocket-mobile-adaptive-lists #sepreladPagination .advisor-pagination-summary,
  body.rocket-mobile-adaptive-lists #commissionsPagination .commissions-total,
  body.rocket-mobile-adaptive-lists #expensesPagination .expenses-total{
    display:none!important;
  }
}

@media (max-width:720px) and (display-mode:standalone), (orientation:landscape) and (max-height:600px) and (pointer:coarse) and (display-mode:standalone){
  body.rocket-mobile-crm-context :is(#closingsView,#advisorsView,#productivityView,#sepreladView,#commissionsView,#expensesView):not([hidden]){
    height:calc(100dvh - var(--header-height) - env(safe-area-inset-top))!important;
  }
}

/* V3.594 · Phone landscape: si el usuario conserva el sidebar "expanded" de desktop en localStorage,
   el rail cerrado sigue usando la geometría MOBILE hasta que pulse la hamburguesa. */
@media(max-width:900px), (orientation:landscape) and (max-height:600px) and (pointer:coarse){
  html:not([data-sidebar="collapsed"]){--sidebar-width:var(--sidebar-collapsed)!important}
  html:not([data-sidebar="collapsed"]) body:not(.rocket-mobile-nav-open) .sidebar-logo,
  html:not([data-sidebar="collapsed"]) body:not(.rocket-mobile-nav-open) .sidebar .nav-label,
  html:not([data-sidebar="collapsed"]) body:not(.rocket-mobile-nav-open) .sidebar .nav-chevron,
  html:not([data-sidebar="collapsed"]) body:not(.rocket-mobile-nav-open) .sidebar .sidebar-section-title,
  html:not([data-sidebar="collapsed"]) body:not(.rocket-mobile-nav-open) .sidebar .profile-copy{
    display:none!important;
  }
  html:not([data-sidebar="collapsed"]) body:not(.rocket-mobile-nav-open) .sidebar-header{justify-content:center!important}
  html:not([data-sidebar="collapsed"]) body:not(.rocket-mobile-nav-open) .sidebar .nav-list,
  html:not([data-sidebar="collapsed"]) body:not(.rocket-mobile-nav-open) .sidebar .lower-nav{padding-inline:8px!important}
  html:not([data-sidebar="collapsed"]) body:not(.rocket-mobile-nav-open) .sidebar .nav-link{width:39.2px!important;padding:6px 10px!important;justify-content:center!important}
  html:not([data-sidebar="collapsed"]) body:not(.rocket-mobile-nav-open) .sidebar .sidebar-divider{margin-inline:8px!important}
  html:not([data-sidebar="collapsed"]) body:not(.rocket-mobile-nav-open) .sidebar .profile-button{height:64px!important;min-height:64px!important;padding:16px 12px!important}
  html:not([data-sidebar="collapsed"]) body:not(.rocket-mobile-nav-open) .sidebar .pinned-list{display:flex!important;align-items:center!important;margin:0!important;padding:4px 8px!important}
}


/* V3.594 FINAL · Flyouts del rail colapsado MOBILE.
   Se renderizan temporalmente en <body> para no ser recortados por overflow del sidebar. */
@media(max-width:900px), (orientation:landscape) and (max-height:600px) and (pointer:coarse){
  body>.rocket-mobile-rail-flyout{
    position:fixed!important;
    z-index:1400!important;
    display:flex!important;
    flex-direction:column!important;
    width:min(250px,calc(100vw - var(--sidebar-collapsed) - 18px))!important;
    min-width:210px!important;
    max-height:calc(100dvh - 20px)!important;
    margin:0!important;
    padding:8px!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    border:1px solid var(--line)!important;
    border-radius:8px!important;
    background:var(--surface)!important;
    color:var(--ink)!important;
    box-shadow:0 14px 30px rgba(0,0,0,.22)!important;
    list-style:none!important;
    -webkit-overflow-scrolling:touch!important;
  }
  body>.rocket-mobile-rail-flyout[hidden]{display:none!important}
  body>.rocket-mobile-rail-flyout::before{
    display:block!important;
    flex:0 0 auto!important;
    padding:5px 10px 10px!important;
    color:var(--ink)!important;
    font-size:15px!important;
    font-weight:700!important;
    line-height:20px!important;
  }
  body>#brokerSubmenu.rocket-mobile-rail-flyout::before{content:"Menú Broker"!important}
  body>#socialSubmenu.rocket-mobile-rail-flyout::before{content:"Redes Sociales"!important}
  body>#contactsSubmenu.rocket-mobile-rail-flyout::before{content:"Colegas"!important}
  body>#captacionesSubmenu.rocket-mobile-rail-flyout::before{content:"Captaciones"!important}
  body>#quickMenu.rocket-mobile-rail-flyout::before{content:"Accesos Directos"!important}
  body>.rocket-mobile-rail-flyout .nav-link,
  body>.rocket-mobile-rail-flyout .quick-group-toggle,
  body>.rocket-mobile-rail-flyout .quick-link{
    display:flex!important;
    align-items:center!important;
    width:100%!important;
    min-width:0!important;
    height:38px!important;
    padding:7px 10px!important;
    border:0!important;
    border-radius:5px!important;
    color:var(--ink)!important;
    font-size:14px!important;
    line-height:20px!important;
    text-align:left!important;
  }
  body>.rocket-mobile-rail-flyout .nav-label,
  body>.rocket-mobile-rail-flyout .quick-group-title{
    display:block!important;
    min-width:0!important;
    margin-left:9px!important;
    overflow:hidden!important;
    flex:1 1 auto!important;
    color:inherit!important;
    font-size:14px!important;
    line-height:20px!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
  }
  body>.rocket-mobile-rail-flyout .nav-icon{width:20px!important;height:20px!important;flex:0 0 20px!important}
  body>.rocket-mobile-rail-flyout .quick-group-submenu{display:flex;flex-direction:column;gap:1px;padding:1px 4px 4px 28px!important;list-style:none!important}
  body>.rocket-mobile-rail-flyout .quick-group-submenu[hidden]{display:none!important}
  body>.rocket-mobile-rail-flyout .nav-link:hover,
  body>.rocket-mobile-rail-flyout .quick-group-toggle:hover,
  body>.rocket-mobile-rail-flyout .quick-link:hover{background:var(--surface-hover)!important}
}

/* V3.594 FINAL · En MOBILE los listados solicitados conservan exactamente el mismo
   borde izquierdo que en WEB: sin gutter extra, incluso con paginación adaptativa activa. */
@media(max-width:720px), (orientation:landscape) and (max-height:600px) and (pointer:coarse){
  body.rocket-mobile-crm-context :is(.closings-table-wrap,.productivity-table-wrap,.seprelad-table-wrap,.commissions-table-wrap,.expenses-table-wrap){
    padding-left:0!important;
  }
  body.rocket-mobile-crm-context :is(.closings-grid,.productivity-table,.seprelad-table,.commissions-table){min-width:100%!important}
  body.rocket-mobile-crm-context .expenses-table{width:100%!important}
  body.rocket-mobile-crm-context :is(.tops-board,.tops-footer,#royaltiesView,#costsView,#commissionsSearchZone,#expensesSearchZone){padding-left:0!important}
  body.rocket-mobile-adaptive-lists :is(#closingPagination,#productivityPagination,#sepreladPagination,#commissionsPagination,#expensesPagination){padding-left:0!important}
}

/* V3.595 · MOBILE/PWA ONLY · aprovechamiento total del viewport y WhatsApp navegable.
   WEB no cambia: todas las reglas permanecen dentro del contexto handheld/táctil. */
@media(max-width:720px), (orientation:landscape) and (max-height:600px) and (pointer:coarse){
  /* Calculadora: sin gutters laterales; conserva únicamente su separación vertical. */
  body.rocket-mobile-crm-context #calculatorView.calculator-view:not([hidden]){
    width:100%!important;
    max-width:none!important;
    margin-left:0!important;
    margin-right:0!important;
    padding-left:0!important;
    padding-right:0!important;
  }
  body.rocket-mobile-crm-context #calculatorView .calculator-shell{
    width:100%!important;
    max-width:none!important;
    margin-left:0!important;
    margin-right:0!important;
  }

  /* Calendario: encaja de borde a borde en horizontal sin alterar el padding interno de las tarjetas. */
  body.rocket-mobile-crm-context #calendarView.calendar-view:not([hidden]){
    width:100%!important;
    max-width:none!important;
    margin-left:0!important;
    margin-right:0!important;
    padding-left:0!important;
    padding-right:0!important;
  }
  body.rocket-mobile-crm-context #calendarView .calendar-shell{
    width:100%!important;
    max-width:none!important;
    margin-left:0!important;
    margin-right:0!important;
  }

  /* Mis Cierres / Cierres: al ras bajo el header y sin gutters laterales. */
  body.rocket-mobile-crm-context .workspace-body:has(#closingsView:not([hidden])){
    padding-top:var(--header-height)!important;
    padding-bottom:0!important;
  }
  body.rocket-mobile-crm-context #closingsView:not([hidden]){
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:0!important;
  }
  body.rocket-mobile-crm-context #closingsView .closings-table-wrap{
    margin:0!important;
    padding:0!important;
  }
  body.rocket-mobile-crm-context #closingsView #closingPagination{
    margin:0!important;
    padding-left:0!important;
    padding-right:0!important;
  }

  /* WhatsApp V3.595 retirado en V3.599: quedó totalmente supersedido por el pager V3.596/V3.599. */
}

@media (max-width:720px) and (display-mode:standalone), (orientation:landscape) and (max-height:600px) and (pointer:coarse) and (display-mode:standalone){
  body.rocket-mobile-crm-context .workspace-body:has(#closingsView:not([hidden])){
    padding-top:calc(var(--header-height) + env(safe-area-inset-top))!important;
  }
  body.rocket-mobile-crm-context #whatsappView.whatsapp-view:not([hidden]){
    height:calc(100dvh - var(--header-height) - env(safe-area-inset-top))!important;
  }
}


/* ========================================================================== 
   ROCKET V3.596 · MOBILE/PWA ONLY · refinamiento de formularios, flyouts y WhatsApp
   WEB permanece intacta: todas las reglas de este bloque viven exclusivamente en el
   contexto handheld/táctil de ROCKET MOBILE.
   ========================================================================== */
@media(max-width:720px), (orientation:landscape) and (max-height:600px) and (pointer:coarse){
  /* 1) Captaciones · flyout colapsado: mostrar sólo "C21 Platinum". */
  body>#captacionesSubmenu.rocket-mobile-rail-flyout .captaciones-platinum-label{
    min-width:0!important;
    margin-left:0!important;
    font-size:0!important;
    line-height:20px!important;
  }
  body>#captacionesSubmenu.rocket-mobile-rail-flyout .captaciones-platinum-label::after{
    content:"C21 Platinum"!important;
    font-size:14px!important;
    font-weight:inherit!important;
    line-height:20px!important;
    letter-spacing:inherit!important;
  }

  /* 2) Menú Broker · en el flyout del rail colapsado el estado activo usa azul ROCKET,
        exactamente igual al drawer expandido; nunca hereda el dorado Century. */
  body>#brokerSubmenu.rocket-mobile-rail-flyout .nav-link[aria-current="page"]{
    background:var(--blue-soft)!important;
    color:var(--blue-ink)!important;
  }
  body>#brokerSubmenu.rocket-mobile-rail-flyout .nav-link[aria-current="page"] .nav-icon{
    color:var(--blue-ink)!important;
  }

  /* 3–7) iOS: los controles date/time tienen tamaño intrínseco propio. Forzamos el
        mismo ancho/alto de los inputs ROCKET sin tocar ningún otro campo ni desktop. */
  body.rocket-mobile-crm-context :is(
    #generalReminderDate,
    #generalReminderTime,
    #newLeadDate,
    #newLeadReminderDate,
    #newLeadReminderTime,
    #filterDate,
    #profileBirthDate
  ){
    display:block!important;
    box-sizing:border-box!important;
    inline-size:100%!important;
    width:100%!important;
    min-inline-size:0!important;
    min-width:0!important;
    max-inline-size:100%!important;
    max-width:100%!important;
    block-size:38px!important;
    height:38px!important;
    min-height:38px!important;
    max-height:38px!important;
    margin:0!important;
    padding:0 10px!important;
    line-height:36px!important;
  }
  body.rocket-mobile-crm-context :is(
    #newLeadModal .field,
    #generalReminderModal .field,
    #filterPanel .filter-field,
    #profileView .field,
    .reminder-form-section .field
  ){
    min-width:0!important;
    max-width:100%!important;
  }

  /* WhatsApp · dos pantallas horizontales reales: Bandeja | Chat.
     Cada panel ocupa exactamente el ancho disponible del workspace y el contenedor
     exterior es el único scroll horizontal. Esto evita la compresión y funciona en iOS. */
  body.rocket-mobile-crm-context #whatsappView.whatsapp-view:not([hidden]){
    width:100%!important;
    max-width:100%!important;
    overflow-x:scroll!important;
    overflow-y:hidden!important;
    scroll-snap-type:x mandatory!important;
    scroll-behavior:smooth!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior-x:contain!important;
    touch-action:pan-x pan-y!important;
  }
  body.rocket-mobile-crm-context #whatsappView .whatsapp-shell{
    display:flex!important;
    grid-template-columns:none!important;
    width:200%!important;
    min-width:200%!important;
    max-width:none!important;
    height:100%!important;
    overflow:visible!important;
  }
  body.rocket-mobile-crm-context #whatsappView .whatsapp-sidebar,
  body.rocket-mobile-crm-context #whatsappView .whatsapp-main{
    box-sizing:border-box!important;
    flex:0 0 50%!important;
    width:50%!important;
    min-width:0!important;
    max-width:50%!important;
    scroll-snap-align:start!important;
    scroll-snap-stop:always!important;
  }
  body.rocket-mobile-crm-context #whatsappView .whatsapp-sidebar{
    overflow:hidden!important;
  }
  body.rocket-mobile-crm-context #whatsappView .whatsapp-main{
    overflow:hidden!important;
  }
}


/* ========================================================================== 
   ROCKET V3.597 · MOBILE/PWA ONLY · Colegas/Captaciones compactos + estado activo
   WEB permanece intacta: todas las reglas viven exclusivamente en contexto handheld.
   ========================================================================== */
@media(max-width:720px), (orientation:landscape) and (max-height:600px) and (pointer:coarse){
  /* Captaciones · las dos opciones del flyout parten exactamente de la misma X. */
  body>#captacionesSubmenu.rocket-mobile-rail-flyout .nav-link .nav-label{
    margin-left:0!important;
  }

  /* Colegas + Captaciones: sin gutter izquierdo y ocupando todo el viewport útil. */
  body.rocket-mobile-crm-context :is(#contactsView,#captacionesView):not([hidden]){
    display:flex!important;
    box-sizing:border-box!important;
    width:100%!important;
    max-width:none!important;
    height:calc(100dvh - var(--header-height))!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
  }
  body.rocket-mobile-crm-context :is(#contactsView .contacts-panel,#captacionesView .captaciones-panel){
    display:flex!important;
    min-height:0!important;
    flex:1 1 auto!important;
    flex-direction:column!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
  }
  body.rocket-mobile-crm-context :is(#contactsView .contacts-table-wrap,#captacionesView .captaciones-table-wrap){
    min-height:0!important;
    flex:1 1 auto!important;
    margin:0!important;
    padding-left:0!important;
    padding-right:0!important;
    overflow:auto!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior:contain!important;
  }
  body.rocket-mobile-crm-context #contactsView .contacts-table{
    width:max(100%,1120px)!important;
    min-width:1120px!important;
    max-width:none!important;
  }
  body.rocket-mobile-crm-context #captacionesView .captaciones-table{
    width:max(100%,2110px)!important;
    min-width:2110px!important;
    max-width:none!important;
  }

  /* Footer/paginación: misma cinta compacta del resto de listados MOBILE. */
  body.rocket-mobile-crm-context :is(#contactsPagination,#captacionesPagination){
    display:flex!important;
    box-sizing:border-box!important;
    width:100%!important;
    min-height:50px!important;
    max-height:50px!important;
    flex:0 0 50px!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:8px!important;
    margin:0!important;
    padding:0 10px!important;
    overflow:hidden!important;
    border-top:1px solid var(--line)!important;
    background:var(--surface)!important;
  }
  body.rocket-mobile-crm-context :is(#contactsPagination,#captacionesPagination) .pagination-size{
    display:flex!important;
    min-width:0!important;
    align-items:center!important;
    gap:5px!important;
    white-space:nowrap!important;
  }
  body.rocket-mobile-crm-context #contactsPagination .contacts-fixed-page-size,
  body.rocket-mobile-crm-context #captacionesPagination .pagination-size-select{
    box-sizing:border-box!important;
    width:48px!important;
    min-width:48px!important;
    height:30px!important;
    min-height:30px!important;
    padding:0 7px!important;
    font-size:12px!important;
    font-weight:700!important;
    line-height:28px!important;
  }
  body.rocket-mobile-crm-context #captacionesPagination .pagination-size-select{padding-right:18px!important}
  body.rocket-mobile-crm-context :is(#contactsPagination,#captacionesPagination) .pagination-navigation{
    display:flex!important;
    flex:0 0 auto!important;
    align-items:center!important;
    margin-left:auto!important;
  }
  body.rocket-mobile-crm-context :is(#contactsPagination,#captacionesPagination) :is(.pagination-range,.advisor-pagination-summary){
    display:none!important;
  }
  body.rocket-mobile-crm-context :is(#contactsPagination,#captacionesPagination) .pagination-pages{
    display:flex!important;
    align-items:center!important;
  }

  /* Estado persistente: el icono padre queda pintado mientras una ruta de su grupo está abierta. */
  body.rocket-mobile-crm-context:not(.rocket-mobile-nav-open) .sidebar .nav-link[data-rocket-mobile-section-active="true"]{
    background:rgba(255,255,255,.16)!important;
    color:#fff!important;
  }
  body.rocket-mobile-crm-context:not(.rocket-mobile-nav-open) .sidebar .nav-link[data-rocket-mobile-section-active="true"] .nav-icon{
    color:#fff!important;
  }
}

@media (max-width:720px) and (display-mode:standalone), (orientation:landscape) and (max-height:600px) and (pointer:coarse) and (display-mode:standalone){
  body.rocket-mobile-crm-context :is(#contactsView,#captacionesView):not([hidden]){
    height:calc(100dvh - var(--header-height) - env(safe-area-inset-top))!important;
  }
}


/* ROCKET V3.598 · MOBILE/PWA ONLY · cierre visual Leads + paginación compacta + estado de rail */
@media(max-width:720px), (orientation:landscape) and (max-height:600px) and (pointer:coarse){
  /* Leads: la última fila también conserva su línea inferior, igual que el resto de listados. */
  body.rocket-mobile-crm-context #leadsRows .lead-row:last-child{
    border-bottom:1px solid var(--line)!important;
  }

  /* Colegas + Captaciones: mostrar siempre la leyenda completa del tamaño de página. */
  body.rocket-mobile-crm-context :is(#contactsPagination,#captacionesPagination) .pagination-size>span{
    display:inline!important;
    color:var(--muted)!important;
    font-size:11px!important;
    font-weight:500!important;
  }
  body.rocket-mobile-crm-context :is(#contactsPagination,#captacionesPagination) .pagination-size{
    gap:4px!important;
    font-size:11px!important;
  }

  /* Un flyout abierto NO pinta su icono padre: sólo permanece pintada la sección realmente activa. */
  body.rocket-mobile-crm-context:not(.rocket-mobile-nav-open) .sidebar .nav-link[aria-expanded="true"]:not([data-rocket-mobile-section-active="true"]):not([aria-current="page"]){
    background:transparent!important;
    box-shadow:none!important;
  }
}

/* ==========================================================================
   ROCKET V3.599 · MOBILE/PWA ONLY · paginación 3-visible + Mis Cierres + WhatsApp snap
   ========================================================================== */
@media(max-width:720px), (orientation:landscape) and (max-height:600px) and (pointer:coarse){
  /* El CSS WEB ocultaba todas las páginas excepto la actual bajo 760px.
     MOBILE controla ahora cuáles 3 son visibles mediante style inline en rocket-mobile.js. */
  body.rocket-mobile-crm-context .pagination-pages .pagination-page-button{
    align-items:center!important;
    justify-content:center!important;
  }

  /* Mis Cierres/Cierres: conservar la leyenda completa Mostrar __ por página. */
  body.rocket-mobile-crm-context #closingPagination .pagination-size>span{
    display:inline!important;
    color:var(--muted)!important;
    font-size:11px!important;
    font-weight:500!important;
  }
  body.rocket-mobile-crm-context #closingPagination .pagination-size{
    gap:4px!important;
    font-size:11px!important;
  }
}



/* ========================================================================== 
   ROCKET V3.600 · MOBILE/PWA ONLY · iOS date/time sizing hotfix
   Corrige el ancho/alto intrínseco de Safari iOS en Nuevo lead y
   Nuevo recordatorio sin alterar WEB ni otros formularios.
   ========================================================================== */
@media(max-width:720px), (orientation:landscape) and (max-height:600px) and (pointer:coarse){
  /* El contenedor no puede crecer por el min-content nativo de date/time en iOS. */
  body.rocket-mobile-crm-context :is(
    #newLeadModal,
    #generalReminderModal
  ) :is(
    .field:has(#newLeadDate),
    .field:has(#newLeadReminderDate),
    .field:has(#newLeadReminderTime),
    .field:has(#generalReminderDate),
    .field:has(#generalReminderTime)
  ){
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    overflow:hidden!important;
  }

  /* Safari/iOS conserva un ancho intrínseco especial en date/time incluso con width:100%.
     appearance:none + fill-available evita que el control desborde el modal. */
  body.rocket-mobile-crm-context :is(
    #newLeadDate,
    #newLeadReminderDate,
    #newLeadReminderTime,
    #generalReminderDate,
    #generalReminderTime
  ){
    -webkit-appearance:none!important;
    appearance:none!important;
    display:block!important;
    box-sizing:border-box!important;
    width:100%!important;
    inline-size:100%!important;
    max-width:100%!important;
    max-inline-size:100%!important;
    min-width:0!important;
    min-inline-size:0!important;
    height:38px!important;
    block-size:38px!important;
    min-height:38px!important;
    max-height:38px!important;
    margin:0!important;
    padding:0 10px!important;
    border-radius:4px!important;
    font-family:inherit!important;
    font-size:13px!important;
    font-weight:400!important;
    line-height:36px!important;
    text-align:left!important;
  }

  /* Ajuste interno WebKit: evita que el texto editable imponga un ancho mínimo propio. */
  body.rocket-mobile-crm-context :is(
    #newLeadDate,
    #newLeadReminderDate,
    #newLeadReminderTime,
    #generalReminderDate,
    #generalReminderTime
  )::-webkit-date-and-time-value{
    min-width:0!important;
    width:100%!important;
    margin:0!important;
    padding:0!important;
    text-align:left!important;
  }

  body.rocket-mobile-crm-context :is(
    #newLeadDate,
    #newLeadReminderDate,
    #newLeadReminderTime,
    #generalReminderDate,
    #generalReminderTime
  )::-webkit-datetime-edit{
    min-width:0!important;
    padding:0!important;
  }
}

/* ==========================================================================
   ROCKET CRM · V3.601 · MOBILE SEARCH FOCUS — NO AUTO ZOOM ON iOS
   iOS/Safari amplía automáticamente inputs con tipografía menor a 16 px al
   recibir foco. La barra de búsqueda móvil usa 16 px efectivos para evitar
   ese zoom sin bloquear el zoom manual/accesible del usuario ni tocar WEB.
   ========================================================================== */
@media(max-width:720px), (orientation:landscape) and (max-height:600px) and (pointer:coarse){
  body.rocket-mobile-crm-context .workspace-header :is(
    .search-input,
    input[type="search"]
  ),
  body.rocket-mobile-crm-context :is(
    .workspace-search-zone,
    #flyersSearchZone
  ) input{
    font-size:16px!important;
    line-height:1.2!important;
    -webkit-text-size-adjust:100%!important;
    text-size-adjust:100%!important;
    touch-action:manipulation!important;
  }
}


/* ==========================================================
   ROCKET CRM V3.602 · MOBILE · Mi Desempeño en 2 columnas
   Exclusivo MOBILE/PWA. Reduce scroll vertical sin afectar WEB.
   ========================================================== */
@media(max-width:620px), (orientation:landscape) and (max-height:600px) and (pointer:coarse){
  /* 8 KPI cards: 4 filas x 2 columnas. */
  .performance-shell .md403-kpis{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
  }
  .performance-shell .md403-kpis .performance-kpi{
    min-width:0!important;
    width:auto!important;
    padding:9px 10px!important;
  }
  .performance-shell .md403-kpis .performance-kpi>span{
    font-size:10px!important;
    line-height:1.15!important;
  }
  .performance-shell .md403-kpis .performance-kpi>strong{
    font-size:15px!important;
    line-height:1.08!important;
    letter-spacing:-.2px!important;
    overflow-wrap:anywhere!important;
  }
  .performance-shell .md403-kpis .performance-kpi>small{
    font-size:8.5px!important;
    line-height:1.2!important;
  }

  /* Orden solicitado:
     Cierres | Ranking
     Total vendido | GCI
     Split | Conversión
     Leads | Recordatorios */
  .performance-shell .md403-kpis .performance-kpi:nth-child(1){order:7!important} /* Leads */
  .performance-shell .md403-kpis .performance-kpi:nth-child(2){order:1!important} /* Cierres */
  .performance-shell .md403-kpis .performance-kpi:nth-child(3){order:4!important} /* GCI */
  .performance-shell .md403-kpis .performance-kpi:nth-child(4){order:5!important} /* Split */
  .performance-shell .md403-kpis .performance-kpi:nth-child(5){order:3!important} /* Total vendido */
  .performance-shell .md403-kpis .performance-kpi:nth-child(6){order:6!important} /* Conversión */
  .performance-shell .md403-kpis .performance-kpi:nth-child(7){order:8!important} /* Recordatorios */
  .performance-shell .md403-kpis .performance-kpi:nth-child(8){order:2!important} /* Ranking */

  /* Funnel: 2 filas x 2 columnas.
     Prospectos | Contacto / Gestión
     Propuesta  | Cierre */
  .performance-shell .md403-funnel{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
  }
  .performance-shell .md403-funnel .performance-funnel-step{
    min-width:0!important;
    width:auto!important;
    margin:0!important;
    padding:9px 10px!important;
  }
  .performance-shell .md403-funnel .performance-funnel-step>span{
    font-size:10px!important;
    line-height:1.15!important;
    overflow-wrap:anywhere!important;
  }
  .performance-shell .md403-funnel .performance-funnel-step>strong{
    font-size:15px!important;
    line-height:1.08!important;
  }
  .performance-shell .md403-funnel .performance-funnel-step>small{
    font-size:8.5px!important;
    line-height:1.2!important;
  }
}

/* ========================================================================== 
   ROCKET V3.610 · MOBILE/PWA ONLY · correcciones de navegación y scroll
   1) Captaciones: etiqueta real "C21 Platinum" sin pseudo-concatenaciones.
   2) Calculadora: scroll vertical completo hasta resultados e historial.
   3) Manuales: scroll vertical completo en Uso / Diseño / Optimización.
   4) Redes Sociales: estados hover/activo/focus azules en Rocket/Dark Rocket.
   WEB permanece intacta.
   ========================================================================== */
@media(max-width:720px), (orientation:landscape) and (max-height:600px) and (pointer:coarse){
  /* Captaciones · drawer expandido: usar exclusivamente el texto real del DOM. */
  body.rocket-mobile-nav-open #captacionesSubmenu::before{
    content:none!important;
    display:none!important;
  }
  body.rocket-mobile-nav-open #captacionesSubmenu .nav-link[data-route="captaciones"] .captaciones-platinum-label{
    display:block!important;
    margin-left:0!important;
    font-size:14px!important;
    line-height:20px!important;
  }
  body.rocket-mobile-nav-open #captacionesSubmenu .nav-link[data-route="captaciones"] .captaciones-platinum-label::before,
  body.rocket-mobile-nav-open #captacionesSubmenu .nav-link[data-route="captaciones"] .captaciones-platinum-label::after{
    content:none!important;
    display:none!important;
  }

  /* Calculadora + Manuales · el workspace es el único scroll vertical. */
  body.rocket-mobile-crm-context .workspace-body:has(#calculatorView:not([hidden])),
  body.rocket-mobile-crm-context .workspace-body:has(#placeholderView[data-route="ayuda-manual"]:not([hidden])),
  body.rocket-mobile-crm-context .workspace-body:has(#placeholderView[data-route="ayuda-diseno"]:not([hidden])),
  body.rocket-mobile-crm-context .workspace-body:has(#placeholderView[data-route="ayuda-optimizacion"]:not([hidden])){
    overflow-x:hidden!important;
    overflow-y:auto!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior-y:contain!important;
    touch-action:pan-y!important;
  }
  body.rocket-mobile-crm-context #calculatorView.calculator-view:not([hidden]){
    height:auto!important;
    max-height:none!important;
    min-height:calc(100dvh - var(--header-height))!important;
    overflow:visible!important;
    touch-action:pan-y!important;
  }
  body.rocket-mobile-crm-context #calculatorView .calculator-shell{
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
  }
  body.rocket-mobile-crm-context #placeholderView[data-mode="manual"]:not([hidden]){
    height:auto!important;
    max-height:none!important;
    min-height:calc(100dvh - var(--header-height))!important;
    overflow:visible!important;
    touch-action:pan-y!important;
  }
  body.rocket-mobile-crm-context #placeholderView[data-mode="manual"] .placeholder-card,
  body.rocket-mobile-crm-context #placeholderView[data-mode="manual"] .manual-content{
    height:auto!important;
    max-height:none!important;
    overflow:visible!important;
  }

  /* Redes Sociales · flyout desacoplado del sidebar: Rocket nunca hereda dorado Century. */
  html[data-brand-theme="rocket"] body>#socialSubmenu.rocket-mobile-rail-flyout .nav-link:hover,
  html[data-brand-theme="rocket"] body>#socialSubmenu.rocket-mobile-rail-flyout .nav-link:focus-visible,
  html[data-brand-theme="rocket"] body>#socialSubmenu.rocket-mobile-rail-flyout .nav-link[aria-current="page"]{
    background:var(--blue-soft)!important;
    color:var(--blue-ink)!important;
  }
  html[data-brand-theme="rocket"] body>#socialSubmenu.rocket-mobile-rail-flyout .nav-link:hover .nav-icon,
  html[data-brand-theme="rocket"] body>#socialSubmenu.rocket-mobile-rail-flyout .nav-link:focus-visible .nav-icon,
  html[data-brand-theme="rocket"] body>#socialSubmenu.rocket-mobile-rail-flyout .nav-link[aria-current="page"] .nav-icon{
    color:var(--blue-ink)!important;
  }
  html[data-brand-theme="rocket"] body>#socialSubmenu.rocket-mobile-rail-flyout .nav-link:focus-visible{
    outline:0!important;
    box-shadow:0 0 0 2px color-mix(in srgb,var(--blue) 32%,transparent)!important;
  }
}

/* ========================================================================== 
   ROCKET V3.611 · MOBILE/PWA ONLY · Captaciones submenu text/alignment fix
   - La opción propia se conserva siempre como "C21 Platinum" incluso después
     de aplicar idioma.
   - C21 Platinum y C21 Paraguay parten exactamente de la misma coordenada X.
   ========================================================================== */
@media(max-width:720px), (orientation:landscape) and (max-height:600px) and (pointer:coarse){
  body.rocket-mobile-nav-open #captacionesSubmenu .nav-link .nav-label{
    margin-left:0!important;
  }
}

/* V3.612 · MOBILE/PWA · sidebars secundarios coherentes con el drawer principal.
   Ajustes, Ayuda y Notificaciones se convierten en submenús inline al abrir la barra
   lateral; cualquier flyout previo se cierra antes de expandir el drawer. */
@media(max-width:900px), (orientation:landscape) and (max-height:600px) and (pointer:coarse){
  body.rocket-mobile-nav-open .sidebar-lower{
    max-height:min(62dvh,560px)!important;
    overflow-x:hidden!important;
    overflow-y:auto!important;
    overscroll-behavior:contain!important;
    -webkit-overflow-scrolling:touch!important;
  }

  body.rocket-mobile-nav-open .sidebar .rocket-mobile-inline-submenu{
    position:static!important;
    left:auto!important;
    right:auto!important;
    top:auto!important;
    bottom:auto!important;
    z-index:auto!important;
    min-width:0!important;
    max-width:none!important;
    box-shadow:none!important;
  }

  body.rocket-mobile-nav-open .sidebar #settingsPopover.rocket-mobile-inline-submenu{
    display:flex!important;
    flex-direction:column!important;
    width:auto!important;
    max-height:none!important;
    margin:2px 0 5px!important;
    padding:2px 4px 3px 34px!important;
    overflow:visible!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
  }
  body.rocket-mobile-nav-open .sidebar #settingsPopover.rocket-mobile-inline-submenu[hidden]{display:none!important}
  body.rocket-mobile-nav-open .sidebar #settingsPopover.rocket-mobile-inline-submenu>.popover-title{display:none!important}
  body.rocket-mobile-nav-open .sidebar #settingsPopover.rocket-mobile-inline-submenu .popover-item{
    display:flex!important;
    align-items:center!important;
    width:100%!important;
    min-width:0!important;
    height:34px!important;
    margin:0!important;
    padding:6px 9px!important;
    border:0!important;
    border-radius:5px!important;
    background:transparent!important;
    color:inherit!important;
    font-size:13px!important;
    line-height:20px!important;
    text-align:left!important;
  }
  body.rocket-mobile-nav-open .sidebar #settingsPopover.rocket-mobile-inline-submenu .popover-item:hover,
  body.rocket-mobile-nav-open .sidebar #settingsPopover.rocket-mobile-inline-submenu .popover-item:focus-visible{
    background:var(--surface-hover)!important;
  }
  body.rocket-mobile-nav-open .sidebar #settingsPopover.rocket-mobile-inline-submenu .popover-item svg{
    width:18px!important;
    height:18px!important;
    flex:0 0 18px!important;
    margin-right:8px!important;
  }

  body.rocket-mobile-nav-open .sidebar #helpSubmenu.rocket-mobile-inline-submenu{
    position:static!important;
  }

  body.rocket-mobile-nav-open .sidebar #notificationsPopover.rocket-mobile-inline-submenu{
    display:block!important;
    box-sizing:border-box!important;
    width:100%!important;
    max-height:min(300px,42dvh)!important;
    /* V3.613 · el drawer de Notificaciones ocupa exactamente el mismo ancho útil
       que el sombreado de su fila: sin sangría por icono y sin recorte derecho. */
    margin:3px 0 7px!important;
    padding:8px!important;
    overflow:hidden!important;
    border:1px solid var(--line)!important;
    border-radius:8px!important;
    background:var(--surface)!important;
    color:var(--ink)!important;
  }
  body.rocket-mobile-nav-open .sidebar #notificationsPopover.rocket-mobile-inline-submenu[hidden]{display:none!important}
  body.rocket-mobile-nav-open .sidebar #notificationsPopover.rocket-mobile-inline-submenu .popover-title{display:none!important}
  body.rocket-mobile-nav-open .sidebar #notificationsPopover.rocket-mobile-inline-submenu .notification-center-head{
    min-height:24px!important;
    padding:2px 3px 7px!important;
  }
  body.rocket-mobile-nav-open .sidebar #notificationsPopover.rocket-mobile-inline-submenu .notification-list{
    max-height:min(210px,30dvh)!important;
    overflow-y:auto!important;
    -webkit-overflow-scrolling:touch!important;
  }
  body.rocket-mobile-nav-open .sidebar #notificationsPopover.rocket-mobile-inline-submenu .notification-center-action{
    width:100%!important;
    min-height:34px!important;
    margin-top:6px!important;
  }
}


/* ==========================================================================
   ROCKET V3.616 · MOBILE/PWA · Login fijo + logout seguro + navegación inferior
   ========================================================================== */
.profile-route-chevron{display:none}

@media(max-width:900px), (orientation:landscape) and (max-height:600px) and (pointer:coarse){
  /* Login: la pantalla completa queda fija, sin scroll/overscroll vertical.
     El tamaño 16px en credenciales evita el zoom automático de iOS al enfocar. */
  body.rocket-mobile-login-visible{
    height:100dvh!important;
    max-height:100dvh!important;
    overflow:hidden!important;
    overscroll-behavior:none!important;
  }
  body.rocket-mobile-login-visible #authScreen:not([hidden]){
    width:100%!important;
    height:100dvh!important;
    min-height:100dvh!important;
    max-height:100dvh!important;
    padding:16px!important;
    overflow:hidden!important;
    overscroll-behavior:none!important;
  }
  body.rocket-mobile-login-visible #authScreen .auth-card{
    max-height:calc(100dvh - 32px)!important;
    overflow:hidden!important;
  }
  body.rocket-mobile-login-visible #authScreen :is(input,select,textarea){
    font-size:16px!important;
  }
  /* La regla antigua reservaba espacio con scroll para la tarjeta de instalación.
     V3.614 conserva la pantalla fija y deja la tarjeta como overlay no desplazable. */
  body.rocket-mobile-login-visible.rocket-pwa-auth-context #authScreen{
    padding-bottom:16px!important;
    overflow-y:hidden!important;
  }

  /* Ajustes / Ayuda / Notificaciones: chevron hacia abajo en el drawer expandido,
     igual que las demás entradas que contienen submenú. */
  body.rocket-mobile-nav-open .sidebar :is(#settingsButton,#helpButton,#notificationsButton) .nav-chevron{
    transform:rotate(90deg)!important;
  }

  /* Perfil no es acordeón: flecha a la derecha para comunicar navegación a una sección. */
  body.rocket-mobile-nav-open .sidebar .profile-button .profile-route-chevron{
    display:block!important;
    width:20px!important;
    height:20px!important;
    flex:0 0 20px!important;
    margin-left:auto!important;
    margin-right:7px!important;
    color:currentColor!important;
  }

  /* El diálogo de salida siempre queda por encima del drawer MOBILE. */
  #logoutConfirmModal{z-index:1500!important;padding:18px!important}
  #logoutConfirmModal .logout-confirm-card{width:min(360px,100%)!important;overflow:hidden!important}
  #logoutConfirmModal .modal-body{padding:18px 20px!important}
  #logoutConfirmModal .logout-confirm-actions{display:grid!important;grid-template-columns:1fr 1fr!important;gap:9px!important;padding:8px 20px 20px!important}
  #logoutConfirmModal .logout-confirm-actions .button{width:100%!important;min-width:0!important}
}

@media(max-width:720px) and (max-height:720px){
  /* Compactación preventiva para que el login siga completo y fijo en teléfonos bajos. */
  body.rocket-mobile-login-visible #authScreen{padding:10px 14px!important}
  body.rocket-mobile-login-visible #authScreen .auth-card{max-height:calc(100dvh - 20px)!important;padding:16px 18px 14px!important}
  body.rocket-mobile-login-visible #authScreen .auth-brand{margin-bottom:10px!important}
  body.rocket-mobile-login-visible #authScreen .auth-rocket-lockup{margin-bottom:5px!important}
  body.rocket-mobile-login-visible #authScreen .auth-rocket-icon{width:46px!important;height:46px!important}
  body.rocket-mobile-login-visible #authScreen .auth-rocket-name{font-size:23px!important}
  body.rocket-mobile-login-visible #authScreen .auth-brand h1{margin-top:4px!important;font-size:25px!important}
  body.rocket-mobile-login-visible #authScreen .field{margin-bottom:8px!important}
  body.rocket-mobile-login-visible #authScreen .input{min-height:41px!important}
  body.rocket-mobile-login-visible #authScreen .auth-actions{margin-top:9px!important}
  body.rocket-mobile-login-visible #authScreen .auth-divider{margin:8px 0 7px!important}
  body.rocket-mobile-login-visible #authScreen .google-auth-button,
  body.rocket-mobile-login-visible #authScreen #authSubmit{min-height:41px!important}
  body.rocket-mobile-login-visible #authScreen .auth-register-prompt{margin:7px 0 3px!important}
}


/* ==========================================================================
   ROCKET V3.616 · MOBILE · Perfil alineado + tarjetas de recordatorios compactas
   ========================================================================== */
@media(max-width:900px), (orientation:landscape) and (max-height:600px) and (pointer:coarse){
  /* Foto + nombre + rol usa el mismo eje derecho de los chevrons del menú. */
  body.rocket-mobile-nav-open .sidebar .profile-button .profile-route-chevron{
    margin-right:7px!important;
  }

  /* En Dashboard MOBILE, Seguimientos/Reuniones crecen sólo según las filas reales.
     No se reserva altura para recordatorios inexistentes. */
  #dashboardView .dashboard-followups-card,
  #dashboardView .dashboard-meetings-card{
    min-height:0!important;
    height:auto!important;
    max-height:none!important;
    grid-template-rows:48px auto!important;
  }
  #dashboardView .dashboard-followups-card .dashboard-list,
  #dashboardView .dashboard-meetings-card .dashboard-meetings-list{
    height:auto!important;
    min-height:0!important;
    overflow:visible!important;
  }
}

/* V3.617 · Importar asesores: cinco métricas compactas en MOBILE. */
@media (max-width:900px){#advisorImportPreview{grid-template-columns:repeat(2,minmax(0,1fr))}#advisorImportPreview .captaciones-import-stat:first-child{grid-column:span 2}}


/* V3.628 · MOBILE: tarjetas ajustadas al contenido real.
   Evolución de gestión elimina altura vacía superior/inferior y conserva sólo
   el alto necesario para su header + gráfico. Regla MOBILE: cero huecos vacíos evitables. */
@media(max-width:720px), (orientation:landscape) and (max-height:600px) and (pointer:coarse){
  #dashboardView .dashboard-chart-card{
    min-height:0!important;
    height:auto!important;
    grid-template-rows:48px auto!important;
    align-self:start!important;
  }
  #dashboardView .dashboard-chart-body{
    display:block!important;
    min-height:0!important;
    height:auto!important;
    padding:0 4px 2px!important;
    place-items:initial!important;
  }
  #dashboardView .dashboard-chart-svg{
    display:block!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    aspect-ratio:1000 / 220!important;
    margin:0!important;
  }
}


/* V3.629 · Dashboard MOBILE: regla de compactación preservada;
   accesos rápidos funcionales e Inventario usan el mismo patrón de tarjeta. */

/* ROCKET V3.637 · Dashboard MOBILE · buscador ID expandible + atajo Cierres.
   El input conserva 16px efectivos para evitar focus-zoom en iOS y absorbe todo el ancho libre antes de los accesos rápidos. */
@media(max-width:720px), (orientation:landscape) and (max-height:600px) and (pointer:coarse){
  body.rocket-mobile-crm-context #dashboardHeaderActions:not([hidden]){
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:4px!important;
    width:100%!important;
    min-width:0!important;
    height:var(--header-height)!important;
    margin:0!important;
    padding:0 10px!important;
  }
  body.rocket-mobile-crm-context .dashboard-mobile-id-search{
    position:relative!important;
    display:flex!important;
    flex:1 1 auto!important;
    width:auto!important;
    min-width:72px!important;
    max-width:none!important;
    height:33px!important;
    margin:0!important;
  }
  body.rocket-mobile-crm-context .dashboard-mobile-id-search input{
    width:100%!important;
    min-width:0!important;
    height:33px!important;
    margin:0!important;
    padding:0 29px 0 9px!important;
    border:1px solid var(--line)!important;
    border-radius:10px!important;
    outline:0!important;
    background:var(--surface)!important;
    color:var(--ink)!important;
    font:700 16px/1 var(--font-ui)!important;
    letter-spacing:0!important;
    -webkit-appearance:none!important;
    appearance:none!important;
    box-shadow:none!important;
  }
  body.rocket-mobile-crm-context .dashboard-mobile-id-search input::placeholder{
    color:var(--muted)!important;
    opacity:.9!important;
    font-size:12px!important;
    font-weight:700!important;
  }
  body.rocket-mobile-crm-context .dashboard-mobile-id-search input:focus{
    border-color:rgba(0,85,221,.55)!important;
    box-shadow:0 0 0 2px rgba(0,85,221,.12)!important;
  }
  body.rocket-mobile-crm-context .dashboard-mobile-id-search button{
    position:absolute!important;
    top:0!important;
    right:0!important;
    display:grid!important;
    place-items:center!important;
    width:29px!important;
    height:33px!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    background:transparent!important;
    color:var(--muted)!important;
  }
  body.rocket-mobile-crm-context .dashboard-mobile-id-search button:active{
    color:var(--blue)!important;
  }
  body.rocket-mobile-crm-context .dashboard-mobile-id-search button svg{
    width:14px!important;
    height:14px!important;
    fill:none!important;
    stroke:currentColor!important;
    stroke-width:1.8!important;
    stroke-linecap:round!important;
  }
  body.rocket-mobile-crm-context .dashboard-header-icon{
    width:33px!important;
    height:33px!important;
    flex:0 0 33px!important;
  }
  body.rocket-mobile-crm-context .dashboard-mobile-only{
    display:grid!important;
  }
}

@media(max-width:360px){
  body.rocket-mobile-crm-context .dashboard-mobile-id-search{
    flex:1 1 auto!important;
    width:auto!important;
    min-width:62px!important;
    max-width:none!important;
  }
  body.rocket-mobile-crm-context #dashboardHeaderActions:not([hidden]){
    gap:3px!important;
    padding-left:7px!important;
    padding-right:7px!important;
  }
}



/* ROCKET V3.639 · Dashboard MOBILE · reuniones debajo de KPIs + inventario compacto.
   En MOBILE, Próximas reuniones debe ser el primer bloque después de la grilla 2×3.
   No altera el orden ni la distribución WEB. */
@media(max-width:720px), (orientation:landscape) and (max-height:600px) and (pointer:coarse){
  #dashboardView .dashboard-bottom{
    display:flex!important;
    flex-direction:column!important;
    gap:10px!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    overflow:visible!important;
  }
  #dashboardView .dashboard-meetings-card{
    order:-1!important;
    width:100%!important;
    min-height:0!important;
    height:auto!important;
    max-height:none!important;
  }
}


/* ==========================================================================
   ROCKET V3.652 · MOBILE/PWA ONLY · Ayuda + footer de Cierres
   - Ayuda colapsada se renderiza como flyout desacoplado a la derecha del rail.
   - Cierres recupera el mismo gutter izquierdo de paginación que Asesores/Productividad.
   WEB permanece intacta.
   ========================================================================== */
@media(max-width:720px), (orientation:landscape) and (max-height:600px) and (pointer:coarse){
  body.rocket-mobile-crm-context #closingPagination{
    padding-left:10px!important;
    padding-right:10px!important;
  }

  body>#helpSubmenu.rocket-mobile-rail-flyout{
    width:min(300px,calc(100vw - var(--sidebar-width) - 18px))!important;
    min-width:214px!important;
    box-sizing:border-box!important;
  }
}


/* ==========================================================================
   ROCKET V3.653 · MOBILE/PWA ONLY · alineación footer Cierres + Productividad
   El bloque "Mostrar / selector / por página" conserva el mismo inset visual
   que los demás listados MOBILE. Se aplica al contenido y no al contenedor para
   evitar que reglas históricas de padding-left:0 anulen el margen. WEB intacta.
   ========================================================================== */
@media(max-width:720px), (orientation:landscape) and (max-height:600px) and (pointer:coarse){
  body.rocket-mobile-crm-context #closingPagination .pagination-size,
  body.rocket-mobile-crm-context #productivityPagination .pagination-size{
    margin-left:18px!important;
  }
}

/* ==========================================================================
   ROCKET CRM · V3.663 · ANDROID LIGHT MODE · SIDEBAR SUBMENU COLOR GUARD
   En Android/Chromium el drawer expandido no debe heredar --ink desde las
   superficies claras usadas por los flyouts. Cuando el submenu vive inline
   dentro del sidebar azul ROCKET, su tinta es siempre blanca.
   Exclusivo MOBILE + tema ROCKET; WEB y Century quedan intactos.
   ========================================================================== */
@media(max-width:900px), (orientation:landscape) and (max-height:600px) and (pointer:coarse){
  html[data-brand-theme="rocket"] body.rocket-mobile-nav-open .sidebar :is(
    .broker-submenu,
    .social-submenu,
    .contacts-submenu,
    .captaciones-submenu,
    .quick-menu,
    .help-submenu,
    #settingsPopover.rocket-mobile-inline-submenu
  ){
    color:#fff!important;
  }

  html[data-brand-theme="rocket"] body.rocket-mobile-nav-open .sidebar :is(
    .broker-submenu,
    .social-submenu,
    .contacts-submenu,
    .captaciones-submenu,
    .quick-menu,
    .help-submenu,
    #settingsPopover.rocket-mobile-inline-submenu
  ) :is(
    .nav-link,
    .nav-label,
    .quick-group-toggle,
    .quick-group-title,
    .quick-link,
    .quick-text,
    .popover-item
  ){
    color:#fff!important;
    -webkit-text-fill-color:#fff!important;
  }

  html[data-brand-theme="rocket"] body.rocket-mobile-nav-open .sidebar :is(
    .broker-submenu,
    .social-submenu,
    .contacts-submenu,
    .captaciones-submenu,
    .quick-menu,
    .help-submenu,
    #settingsPopover.rocket-mobile-inline-submenu
  ) :is(.nav-icon,.nav-chevron,.quick-group-chevron,.popover-item svg){
    color:#fff!important;
  }

  html[data-brand-theme="rocket"] body.rocket-mobile-nav-open .sidebar :is(
    .broker-submenu,
    .social-submenu,
    .contacts-submenu,
    .captaciones-submenu,
    .quick-menu,
    .help-submenu,
    #settingsPopover.rocket-mobile-inline-submenu
  ) :is(.nav-link:hover,.nav-link:focus-visible,.quick-group-toggle:hover,.quick-link:hover,.popover-item:hover,.popover-item:focus-visible){
    background:rgba(255,255,255,.10)!important;
    color:#fff!important;
    -webkit-text-fill-color:#fff!important;
  }
}


/* ROCKET V3.679 · MOBILE/WEB angosto · Canva usa el mismo patrón compacto de Flyers. */
@media(max-width:720px), (orientation:landscape) and (max-height:600px) and (pointer:coarse){
  body.rocket-mobile-crm-context #canvaDriveHeaderZone:not([hidden]){
    display:flex!important;
    min-width:0!important;
    flex:1 1 auto!important;
    align-items:center!important;
    gap:5px!important;
    padding:0 8px 0 10px!important;
    overflow:visible!important;
  }
  body.rocket-mobile-crm-context #canvaDriveHeaderZone .canva-header-filter-group{display:none!important}
  body.rocket-mobile-crm-context #canvaDriveHeaderZone.is-filters-open .canva-header-filter-group{display:grid!important}
  body.rocket-mobile-crm-context #canvaDriveHeaderZone .canva-header-search-wrap{display:flex!important;flex:1 1 auto!important;min-width:0!important;width:auto!important}
  body.rocket-mobile-crm-context #canvaDriveHeaderZone .canva-header-compact-filter{display:inline-grid!important}
  body.rocket-mobile-crm-context #canvaDriveHeaderZone :is(.canva-header-compact-filter,.canva-header-drive,.canva-header-refresh){flex:0 0 38px!important}
}


/* ========================================================================== 
   ROCKET V3.742 · PWA · Reglas universales de filtros y controles iOS
   - "borrar filtros" siempre rojo, borde rojo y fondo transparente.
   - date / month / time nunca pueden usar un ancho intrínseco mayor al contenedor.
   - campos de filtros y formularios móviles conservan box-sizing + min-width:0.
   ========================================================================== */
@media (max-width:900px){
  /* Regla universal PWA: toda acción "borrar filtros" conserva semántica destructiva
     visual idéntica a WEB, incluso cuando el nodo es trasladado al drawer móvil. */
  body.rocket-mobile-crm-context .search-reset-button,
  body.rocket-mobile-crm-context .rocket-mobile-filter-body > .search-reset-button{
    border:1px solid #d65a5a!important;
    background:transparent!important;
    color:#c64747!important;
    box-shadow:none!important;
  }
  body.rocket-mobile-crm-context .search-reset-button:active,
  body.rocket-mobile-crm-context .search-reset-button:focus-visible,
  body.rocket-mobile-crm-context .rocket-mobile-filter-body > .search-reset-button:active,
  body.rocket-mobile-crm-context .rocket-mobile-filter-body > .search-reset-button:focus-visible{
    border-color:#b83d3d!important;
    background:transparent!important;
    color:#b83d3d!important;
  }

  /* Regla universal PWA: una celda de formulario nunca puede crecer por el tamaño
     intrínseco que Safari asigna a date/month/time/select. */
  body.rocket-mobile-crm-context :is(
    .filter-field,
    .field,
    .general-reminder-schedule > .field,
    .general-reminder-grid > .field
  ){
    min-width:0!important;
    max-width:100%!important;
    box-sizing:border-box!important;
  }

  body.rocket-mobile-crm-context :is(
    #filterPanel,
    #reminderFilterPanel,
    #closingFilterPanel,
    #generalReminderModal
  ) :is(
    input.input,
    select.select,
    textarea.textarea,
    input[type="date"],
    input[type="month"],
    input[type="time"]
  ){
    display:block!important;
    box-sizing:border-box!important;
    inline-size:100%!important;
    width:100%!important;
    min-inline-size:0!important;
    min-width:0!important;
    max-inline-size:100%!important;
    max-width:100%!important;
  }

  /* iOS: Fecha exacta / Mes de filtros y los tres campos Fecha/Horas de Recordatorios
     usan exactamente la misma geometría; Hora finalización ya no puede sobresalir. */
  body.rocket-mobile-crm-context :is(
    #reminderFilterDate,
    #reminderFilterMonth,
    #generalReminderDate,
    #generalReminderTime,
    #generalReminderEndTime
  ){
    display:block!important;
    box-sizing:border-box!important;
    inline-size:100%!important;
    width:100%!important;
    min-inline-size:0!important;
    min-width:0!important;
    max-inline-size:100%!important;
    max-width:100%!important;
    block-size:38px!important;
    height:38px!important;
    min-height:38px!important;
    max-height:38px!important;
    margin:0!important;
    padding:0 10px!important;
    font-size:16px!important;
    line-height:36px!important;
  }

  /* Todos los controles interactivos de los paneles de filtros quedan a 16 px
     efectivos para evitar focus-zoom de iOS sin alterar su altura visual. */
  body.rocket-mobile-crm-context :is(#filterPanel,#reminderFilterPanel,#closingFilterPanel)
  :is(input.input,select.select,input[type="date"],input[type="month"],input[type="time"]){
    font-size:16px!important;
  }
}

/* ========================================================================== 
   ROCKET V3.744 · MOBILE/PWA ONLY · iOS Recordatorios + footer de filtros
   - Fecha exacta / Mes respetan el ancho real del drawer en Safari iOS.
   - Fecha / Hora inicio / Hora finalización comparten geometría idéntica.
   - La X de filtros vuelve al flujo flex para quedar centrada con las acciones,
     incluso con safe-area inferior de iPhone.
   ========================================================================== */
@media (max-width:900px){
  /* Safari trata date/month/time como controles reemplazados con min-content propio.
     appearance:none + fill-available hacen que el borde pertenezca al ancho real del
     contenedor, no al ancho intrínseco del picker nativo. */
  body.rocket-mobile-crm-context :is(
    #reminderFilterDate,
    #reminderFilterMonth,
    #generalReminderDate,
    #generalReminderTime,
    #generalReminderEndTime
  ){
    -webkit-appearance:none!important;
    appearance:none!important;
    display:block!important;
    box-sizing:border-box!important;
    width:100%!important;
    width:-webkit-fill-available!important;
    inline-size:100%!important;
    min-width:0!important;
    min-inline-size:0!important;
    max-width:100%!important;
    max-inline-size:100%!important;
    height:38px!important;
    min-height:38px!important;
    max-height:38px!important;
    block-size:38px!important;
    margin:0!important;
    padding:0 10px!important;
    border-radius:4px!important;
    font-family:inherit!important;
    font-size:16px!important;
    font-weight:400!important;
    line-height:36px!important;
    text-align:left!important;
  }

  body.rocket-mobile-crm-context :is(
    #reminderFilterDate,
    #reminderFilterMonth,
    #generalReminderDate,
    #generalReminderTime,
    #generalReminderEndTime
  )::-webkit-date-and-time-value{
    box-sizing:border-box!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    margin:0!important;
    padding:0!important;
    overflow:hidden!important;
    text-align:left!important;
  }

  body.rocket-mobile-crm-context :is(
    #reminderFilterDate,
    #reminderFilterMonth,
    #generalReminderDate,
    #generalReminderTime,
    #generalReminderEndTime
  )::-webkit-datetime-edit{
    box-sizing:border-box!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    padding:0!important;
    overflow:hidden!important;
  }

  body.rocket-mobile-crm-context :is(
    #reminderFilterDate,
    #reminderFilterMonth,
    #generalReminderDate,
    #generalReminderTime,
    #generalReminderEndTime
  )::-webkit-calendar-picker-indicator{
    flex:0 0 auto!important;
    margin:0!important;
    padding:0!important;
  }

  /* Los contenedores tampoco pueden conservar un min-content heredado del picker. */
  body.rocket-mobile-crm-context #reminderFilterPanel .filter-field,
  body.rocket-mobile-crm-context #generalReminderModal .general-reminder-schedule,
  body.rocket-mobile-crm-context #generalReminderModal .general-reminder-schedule > .field{
    box-sizing:border-box!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
  }

  /* La X deja de posicionarse contra la caja completa del footer. En iPhone el
     safe-area hacía que top:50% la empujara hacia abajo respecto de Aplicar/Restablecer. */
  body.rocket-mobile-crm-context .filter-actions,
  body.rocket-mobile-crm-context .closing-filter-panel .filter-actions{
    align-items:center!important;
    padding:10px 14px max(12px,env(safe-area-inset-bottom)) 14px!important;
  }
  body.rocket-mobile-crm-context .filter-actions .button-close,
  body.rocket-mobile-crm-context .closing-filter-panel .filter-actions .button-close{
    position:static!important;
    top:auto!important;
    right:auto!important;
    bottom:auto!important;
    left:auto!important;
    transform:none!important;
    flex:0 0 42px!important;
    width:42px!important;
    min-width:42px!important;
    height:42px!important;
    margin:0 0 0 auto!important;
    align-self:center!important;
  }
}


/* ==========================================================================
   ROCKET V3.746 · MOBILE/PWA · normalización iOS de campos fecha
   Safari iOS asigna un ancho intrínseco a input[type=date]. Se neutraliza en
   los tres puntos reportados y en los campos fecha hermanos del mismo modal.
   ========================================================================== */
@media (max-width: 900px) {
  /* El contenedor debe poder encogerse dentro de drawers y grids de dos columnas. */
  body.rocket-mobile-crm-context #filterPanel .filter-field,
  body.rocket-mobile-crm-context #advisorModal .advisor-form-grid > .field,
  body.rocket-mobile-crm-context #closingModal .closing-form-grid > .field {
    box-sizing: border-box !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }

  /* Fecha de Leads, fechas de Nuevo asesor y Fecha de Cargar cierre:
     mismo ancho real que cualquier input/select vecino y 38 px de alto. */
  body.rocket-mobile-crm-context :is(
    #filterDate,
    #advisorBirthday,
    #advisorEntryDate,
    #advisorRecategorizationDate,
    #closingDate
  ) {
    -webkit-appearance: none !important;
    appearance: none !important;
    display: block !important;
    box-sizing: border-box !important;
    width: 100% !important;
    width: -webkit-fill-available !important;
    inline-size: 100% !important;
    min-width: 0 !important;
    min-inline-size: 0 !important;
    max-width: 100% !important;
    max-inline-size: 100% !important;
    height: 38px !important;
    min-height: 38px !important;
    max-height: 38px !important;
    block-size: 38px !important;
    margin: 0 !important;
    padding: 0 10px !important;
    border-radius: 4px !important;
    font-family: inherit !important;
    font-size: 16px !important;
    font-weight: 400 !important;
    line-height: 36px !important;
    text-align: left !important;
  }

  body.rocket-mobile-crm-context :is(
    #filterDate,
    #advisorBirthday,
    #advisorEntryDate,
    #advisorRecategorizationDate,
    #closingDate
  )::-webkit-date-and-time-value {
    box-sizing: border-box !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    overflow: hidden !important;
    text-align: left !important;
  }

  body.rocket-mobile-crm-context :is(
    #filterDate,
    #advisorBirthday,
    #advisorEntryDate,
    #advisorRecategorizationDate,
    #closingDate
  )::-webkit-datetime-edit {
    box-sizing: border-box !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    padding: 0 !important;
    overflow: hidden !important;
  }

  body.rocket-mobile-crm-context :is(
    #filterDate,
    #advisorBirthday,
    #advisorEntryDate,
    #advisorRecategorizationDate,
    #closingDate
  )::-webkit-calendar-picker-indicator {
    flex: 0 0 auto !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  /* Cargar cierre conserva las dos columnas, pero ambas celdas quedan
     matemáticamente simétricas: el date ya no invade Tipo de cierre. */
  body.rocket-mobile-crm-context #closingModal .closing-form-grid {
    min-width: 0 !important;
  }
  body.rocket-mobile-crm-context #closingModal :is(#closingDate, #closingType) {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    height: 38px !important;
    min-height: 38px !important;
    max-height: 38px !important;
    box-sizing: border-box !important;
  }
}

/* ========================================================================== 
   ROCKET V3.748 · PWA/MOBILE · filtros con geometría única y simétrica
   - Todos los campos de filtro abiertos desde el icono embudo usan 42 px.
   - 42 px es la misma altura efectiva de "borrar filtros" en el drawer móvil.
   - Cubre el drawer genérico, Flyers avanzado, Leads/Recordatorios/Cierres y
     el drawer avanzado de Canva, sin alterar los chips/presets superiores.
   ========================================================================== */
@media (max-width:900px){
  :root{
    --rocket-mobile-filter-control-height:42px;
  }

  /* Drawer genérico: Asesores, Colegas, Captaciones, Productividad, Top's,
     Fee, Seprelad, Comisiones, Gastos, Contabilidad y cualquier zona futura
     que se monte en rocketMobileFilterBody. */
  body.rocket-mobile-crm-context #rocketMobileFilterDrawer #rocketMobileFilterBody > :is(
    select,
    button,
    .select,
    .input,
    .advisor-header-filter,
    .flyers-filter,
    .search-preset,
    .search-reset-button,
    .fee-header-button
  ){
    box-sizing:border-box!important;
    height:var(--rocket-mobile-filter-control-height)!important;
    min-height:var(--rocket-mobile-filter-control-height)!important;
    max-height:var(--rocket-mobile-filter-control-height)!important;
    margin:0!important;
  }

  /* "Borrar filtros" define la referencia visual del drawer. */
  body.rocket-mobile-crm-context #rocketMobileFilterDrawer #rocketMobileFilterBody > .search-reset-button{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    height:var(--rocket-mobile-filter-control-height)!important;
    min-height:var(--rocket-mobile-filter-control-height)!important;
    max-height:var(--rocket-mobile-filter-control-height)!important;
    line-height:1!important;
  }

  /* Flyers contiene filtros avanzados anidados dentro del mismo drawer. */
  body.rocket-mobile-crm-context #rocketMobileFilterDrawer #flyersAdvancedFilters :is(select.select,input.input){
    box-sizing:border-box!important;
    height:var(--rocket-mobile-filter-control-height)!important;
    min-height:var(--rocket-mobile-filter-control-height)!important;
    max-height:var(--rocket-mobile-filter-control-height)!important;
    margin:0!important;
  }

  /* Drawers propios de Leads, Recordatorios y Cierres: inputs/selects idénticos
     a la altura de las acciones inferiores, manteniendo presets/chips compactos. */
  body.rocket-mobile-crm-context :is(#filterPanel,#reminderFilterPanel,#closingFilterPanel)
  :is(.filter-grid,.closing-filter-grid) :is(input.input,select.select){
    box-sizing:border-box!important;
    height:var(--rocket-mobile-filter-control-height)!important;
    min-height:var(--rocket-mobile-filter-control-height)!important;
    max-height:var(--rocket-mobile-filter-control-height)!important;
    block-size:var(--rocket-mobile-filter-control-height)!important;
    min-width:0!important;
    max-width:100%!important;
  }

  /* Safari iOS: los pickers nativos mantienen el centrado al crecer de 38 a 42 px. */
  body.rocket-mobile-crm-context :is(#filterDate,#reminderFilterDate,#reminderFilterMonth){
    height:var(--rocket-mobile-filter-control-height)!important;
    min-height:var(--rocket-mobile-filter-control-height)!important;
    max-height:var(--rocket-mobile-filter-control-height)!important;
    block-size:var(--rocket-mobile-filter-control-height)!important;
    line-height:40px!important;
  }

  /* Canva: el embudo avanzado ya estaba cercano al estándar; se fija también
     en 42 px para evitar diferencias entre campos y acciones del mismo panel. */
  body.rocket-mobile-crm-context .canva-advanced-filter-drawer .canva-advanced-field :is(.input,.select),
  body.rocket-mobile-crm-context .canva-advanced-filter-drawer .canva-advanced-filter-actions .button{
    box-sizing:border-box!important;
    height:var(--rocket-mobile-filter-control-height)!important;
    min-height:var(--rocket-mobile-filter-control-height)!important;
    max-height:var(--rocket-mobile-filter-control-height)!important;
  }

  /* Compatibilidad con el panel compacto histórico de Canva si vuelve a mostrarse. */
  body.rocket-mobile-crm-context #canvaDriveHeaderZone.is-filters-open .canva-header-filter-group :is(
    #canvaDriveType,#canvaDriveAvailability,#canvaDriveSort,#canvaDriveResetFilters
  ){
    box-sizing:border-box!important;
    height:var(--rocket-mobile-filter-control-height)!important;
    min-height:var(--rocket-mobile-filter-control-height)!important;
    max-height:var(--rocket-mobile-filter-control-height)!important;
  }
}


/* ========================================================================== 
   ROCKET V3.749 · PWA/MOBILE · geometría de filtros anclada a “Ver resultados”
   - “Ver resultados” pasa a ser la única referencia de altura del drawer.
   - Selects, inputs y acciones de filtros reutilizan exactamente esa medida.
   - Los controles [hidden] permanecen realmente ocultos aunque una regla del
     drawer fuerce display:block; corrige el selector vacío de Top's en Anual.
   ========================================================================== */
@media (max-width:900px){
  :root{
    --rocket-mobile-filter-action-height:42px;
    --rocket-mobile-filter-control-height:var(--rocket-mobile-filter-action-height);
  }

  /* Referencia única: botón inferior “Ver resultados”. */
  body.rocket-mobile-crm-context #rocketMobileFilterDrawer .rocket-mobile-filter-done{
    box-sizing:border-box!important;
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:100%!important;
    height:var(--rocket-mobile-filter-action-height)!important;
    min-height:var(--rocket-mobile-filter-action-height)!important;
    max-height:var(--rocket-mobile-filter-action-height)!important;
    padding:0 16px!important;
    line-height:1!important;
  }

  /* Todos los controles directos del drawer heredan exactamente la altura
     de “Ver resultados”, incluyendo “borrar filtros” y acciones auxiliares. */
  body.rocket-mobile-crm-context #rocketMobileFilterDrawer #rocketMobileFilterBody > :is(
    select,
    input,
    button,
    .select,
    .input,
    .advisor-header-filter,
    .flyers-filter,
    .search-preset,
    .search-reset-button,
    .fee-header-button
  ){
    box-sizing:border-box!important;
    height:var(--rocket-mobile-filter-action-height)!important;
    min-height:var(--rocket-mobile-filter-action-height)!important;
    max-height:var(--rocket-mobile-filter-action-height)!important;
    margin:0!important;
  }

  body.rocket-mobile-crm-context #rocketMobileFilterDrawer #rocketMobileFilterBody > .search-reset-button{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    height:var(--rocket-mobile-filter-action-height)!important;
    min-height:var(--rocket-mobile-filter-action-height)!important;
    max-height:var(--rocket-mobile-filter-action-height)!important;
    padding-block:0!important;
    line-height:1!important;
  }

  /* Regla crítica: un filtro marcado hidden nunca debe materializar una caja
     vacía dentro del drawer. Top's usa esto para ocultar el selector de segmento
     cuando el periodo actual no necesita una selección específica. */
  body.rocket-mobile-crm-context #rocketMobileFilterDrawer #rocketMobileFilterBody > [hidden],
  body.rocket-mobile-crm-context #rocketMobileFilterDrawer #rocketMobileFilterBody [hidden]{
    display:none!important;
  }

  /* Flyers: controles anidados usan la misma referencia inferior. */
  body.rocket-mobile-crm-context #rocketMobileFilterDrawer #flyersAdvancedFilters :is(select.select,input.input,button){
    box-sizing:border-box!important;
    height:var(--rocket-mobile-filter-action-height)!important;
    min-height:var(--rocket-mobile-filter-action-height)!important;
    max-height:var(--rocket-mobile-filter-action-height)!important;
  }

  /* Drawers propios de Leads / Recordatorios / Cierres: misma geometría para
     campos y botones de acción, sin alterar los chips/presets compactos. */
  body.rocket-mobile-crm-context :is(#filterPanel,#reminderFilterPanel,#closingFilterPanel)
  :is(.filter-grid,.closing-filter-grid) :is(input.input,select.select,input[type="date"],input[type="month"],input[type="time"]){
    box-sizing:border-box!important;
    height:var(--rocket-mobile-filter-action-height)!important;
    min-height:var(--rocket-mobile-filter-action-height)!important;
    max-height:var(--rocket-mobile-filter-action-height)!important;
    block-size:var(--rocket-mobile-filter-action-height)!important;
  }

  body.rocket-mobile-crm-context :is(#filterPanel,#reminderFilterPanel,#closingFilterPanel) .filter-actions > :is(button,.button){
    box-sizing:border-box!important;
    height:var(--rocket-mobile-filter-action-height)!important;
    min-height:var(--rocket-mobile-filter-action-height)!important;
    max-height:var(--rocket-mobile-filter-action-height)!important;
  }

  /* Canva PWA: el drawer avanzado comparte la misma métrica universal. */
  body.rocket-mobile-crm-context .canva-advanced-filter-drawer .canva-advanced-field :is(.input,.select),
  body.rocket-mobile-crm-context .canva-advanced-filter-drawer .canva-advanced-filter-actions .button,
  body.rocket-mobile-crm-context #canvaDriveHeaderZone.is-filters-open .canva-header-filter-group :is(
    #canvaDriveType,#canvaDriveAvailability,#canvaDriveSort,#canvaDriveResetFilters
  ){
    box-sizing:border-box!important;
    height:var(--rocket-mobile-filter-action-height)!important;
    min-height:var(--rocket-mobile-filter-action-height)!important;
    max-height:var(--rocket-mobile-filter-action-height)!important;
  }
}

/* ========================================================================== 
   ROCKET V3.750 · PWA/MOBILE · anchos uniformes + Fee Azul Rocket
   - Todos los controles directos del drawer ocupan el ancho útil completo.
   - Corrige Mes en Gastos y Pago de Comisiones frente a reglas WEB de 160 px.
   - Corrige Fecha en Cargar gasto para Safari/iOS.
   - Fee adopta Azul Rocket también dentro del drawer móvil.
   ========================================================================== */
@media (max-width:900px){
  /* El drawer móvil manda sobre anchos heredados del header WEB. Esto evita que
     IDs con width/min-width/max-width fijos (ej. Mes de Gastos/Comisiones)
     conserven una caja parcial al ser reubicados dentro del embudo. */
  body.rocket-mobile-crm-context #rocketMobileFilterDrawer #rocketMobileFilterBody > :is(
    select,
    input,
    button,
    .select,
    .input,
    .advisor-header-filter,
    .flyers-filter,
    .search-preset,
    .search-reset-button,
    .fee-header-button,
    .search-input-wrap
  ){
    box-sizing:border-box!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
    inline-size:100%!important;
    min-inline-size:0!important;
    max-inline-size:100%!important;
  }

  /* Cargar gasto · Safari iOS: input[type=date] no puede usar su ancho
     intrínseco ni desbordar el modal. Replica el patrón ya validado en Cierres. */
  body.rocket-mobile-crm-context #expenseModal .field{
    box-sizing:border-box!important;
    min-width:0!important;
    max-width:100%!important;
  }
  body.rocket-mobile-crm-context #expenseModal #expenseDate{
    -webkit-appearance:none!important;
    appearance:none!important;
    display:block!important;
    box-sizing:border-box!important;
    width:100%!important;
    width:-webkit-fill-available!important;
    inline-size:100%!important;
    min-width:0!important;
    min-inline-size:0!important;
    max-width:100%!important;
    max-inline-size:100%!important;
    margin:0!important;
    font-size:16px!important;
  }
  body.rocket-mobile-crm-context #expenseModal #expenseDate::-webkit-date-and-time-value{
    min-width:0!important;
    text-align:center!important;
  }
  body.rocket-mobile-crm-context #expenseModal #expenseDate::-webkit-calendar-picker-indicator{
    flex:0 0 auto!important;
    margin:0!important;
    padding:0!important;
  }

  /* Fee · PWA: los controles del embudo usan la misma identidad Rocket que
     Productividad/Top's/Seprelad: fondo azul, borde azul oscuro y texto blanco. */
  body.rocket-mobile-crm-context #rocketMobileFilterDrawer #rocketMobileFilterBody > #feeYearFilter,
  body.rocket-mobile-crm-context #rocketMobileFilterDrawer #rocketMobileFilterBody > #feeExportButton{
    border-color:#0048BE!important;
    background-color:#0055DD!important;
    color:#fff!important;
    font-family:var(--font-ui)!important;
    font-weight:700!important;
  }
  body.rocket-mobile-crm-context #rocketMobileFilterDrawer #rocketMobileFilterBody > #feeYearFilter{
    -webkit-appearance:none!important;
    appearance:none!important;
    padding:0 36px 0 12px!important;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='m1 1 5 5 5-5' fill='none' stroke='%23ffffff' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important;
    background-repeat:no-repeat!important;
    background-position:right 12px center!important;
    background-size:12px 8px!important;
  }
  body.rocket-mobile-crm-context #rocketMobileFilterDrawer #rocketMobileFilterBody > #feeExportButton{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    padding:0 14px!important;
    line-height:1!important;
  }
  body.rocket-mobile-crm-context #rocketMobileFilterDrawer #rocketMobileFilterBody > #feeYearFilter:focus,
  body.rocket-mobile-crm-context #rocketMobileFilterDrawer #rocketMobileFilterBody > #feeExportButton:focus-visible{
    outline:0!important;
    border-color:#003FAF!important;
    box-shadow:0 0 0 3px rgba(0,85,221,.22)!important;
  }
}


/* ========================================================================== 
   ROCKET V3.751 · PWA/MOBILE · ajustes urgentes de simetría y scroll
   1) Canva: se retira el filtro compacto redundante; el embudo avanzado queda
      como único acceso de filtros en PWA.
   2) Contabilidad: selects del drawer adoptan Azul Rocket.
   3) Fee: la tabla deja de tener scroll vertical interno; conserva scroll
      horizontal y el módulo usa scroll vertical sólo como fallback.
   4) Pago de Comisiones: el buscador recupera el margen izquierdo estándar.
   WEB no se modifica.
   ========================================================================== */
@media (max-width:900px){
  /* Canva · PWA: el filtro compacto antiguo sólo desplegaba “borrar filtros”.
     El embudo avanzado ya contiene filtros generales + avanzados + Restablecer. */
  body.rocket-mobile-crm-context #canvaDriveHeaderZone .canva-header-compact-filter,
  body.rocket-mobile-crm-context #canvaDriveHeaderZone .canva-header-filter-group,
  body.rocket-mobile-crm-context #canvaDriveHeaderZone.is-filters-open .canva-header-filter-group,
  body.rocket-mobile-crm-context #canvaDriveHeaderZone #canvaDriveResetFilters{
    display:none!important;
  }

  /* Contabilidad · PWA: misma identidad de Productividad / Top's / Seprelad. */
  body.rocket-mobile-crm-context #rocketMobileFilterDrawer #rocketMobileFilterBody > :is(
    #accountingYearFilter,
    #accountingMonthFilter,
    #accountingStatusFilter,
    #accountingAdvisorFilter
  ){
    -webkit-appearance:none!important;
    appearance:none!important;
    border-color:#0048BE!important;
    background-color:#0055DD!important;
    color:#fff!important;
    font-family:var(--font-ui)!important;
    font-weight:700!important;
    padding:0 36px 0 12px!important;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='m1 1 5 5 5-5' fill='none' stroke='%23ffffff' stroke-width='1.6' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E")!important;
    background-repeat:no-repeat!important;
    background-position:right 12px center!important;
    background-size:12px 8px!important;
  }
  body.rocket-mobile-crm-context #rocketMobileFilterDrawer #rocketMobileFilterBody > :is(
    #accountingYearFilter,
    #accountingMonthFilter,
    #accountingStatusFilter,
    #accountingAdvisorFilter
  ):focus{
    outline:0!important;
    border-color:#003FAF!important;
    box-shadow:0 0 0 3px rgba(0,85,221,.22)!important;
  }

  /* Fee · PWA: sin scrollbar vertical dentro de la tarjeta mensual.
     Si un dispositivo más bajo necesita desplazamiento, scrollea el módulo Fee
     completo; la tabla conserva sólo el desplazamiento horizontal. */
  body.rocket-mobile-crm-context #feeView.fee-view:not([hidden]){
    overflow-x:hidden!important;
    overflow-y:auto!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior-y:contain!important;
  }
  body.rocket-mobile-crm-context #feeView .fee-dashboard{
    height:auto!important;
    min-height:100%!important;
  }
  body.rocket-mobile-crm-context #feeView .fee-period-card{
    flex:0 0 auto!important;
    min-height:0!important;
  }
  body.rocket-mobile-crm-context #feeView .fee-table-wrap{
    flex:0 0 auto!important;
    min-height:0!important;
    max-height:none!important;
    height:auto!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior-x:contain!important;
    touch-action:pan-x pan-y!important;
  }
  body.rocket-mobile-crm-context #feeView .fee-table{
    height:auto!important;
  }

  /* Pago de Comisiones · PWA: restaura el gutter izquierdo de todos los
     buscadores del header móvil. V3.594 lo había llevado a cero. */
  body.rocket-mobile-crm-context #commissionsSearchZone:not([hidden]){
    box-sizing:border-box!important;
    padding-left:10px!important;
  }
}


/* ========================================================================== 
   ROCKET V3.752 · PWA/MOBILE · Gastos + Cargar cierre
   1) Gastos: el buscador recupera el mismo gutter izquierdo estándar de los
      demás buscadores del header móvil.
   2) Cargar cierre: ID propiedad / ID cierre y Monto total / TC se muestran
      en pares de dos columnas en PWA. WEB conserva los span-2 originales.
   ========================================================================== */
@media (max-width:900px){
  /* Gastos · PWA: V3.594 quitaba el gutter del header completo. Se restituye
     sólo para el buscador, igual que Pago de Comisiones en V3.751. */
  body.rocket-mobile-crm-context #expensesSearchZone:not([hidden]){
    box-sizing:border-box!important;
    padding-left:10px!important;
  }

  /* Cargar cierre · PWA: reorganización solicitada sin alterar WEB. */
  body.rocket-mobile-crm-context #closingModal .closing-form-grid > .field.closing-mobile-half{
    grid-column:auto!important;
    min-width:0!important;
    max-width:100%!important;
  }
  body.rocket-mobile-crm-context #closingModal .closing-mobile-half :is(.input,.select){
    box-sizing:border-box!important;
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
  }
}

/* ROCKET V3.756 · Dashboard PWA · misma señal visual del buscador ID.
   Se replica con !important para prevalecer sobre la compactación iOS vigente. */
@media(max-width:720px), (orientation:landscape) and (max-height:600px) and (pointer:coarse){
  body.rocket-mobile-crm-context .dashboard-mobile-id-search input{
    border-color:transparent!important;
    background:
      linear-gradient(var(--surface),var(--surface)) padding-box,
      linear-gradient(100deg,
        #0055DD 0%,
        #0055DD 26%,
        #8AB7FF 42%,
        #D7E7FF 50%,
        #6EA5FF 58%,
        #0055DD 74%,
        #0055DD 100%) border-box!important;
    background-size:100% 100%,240% 100%!important;
    background-position:0 0,120% 0!important;
    animation:
      rocket-dashboard-search-border-loading 2.35s linear infinite,
      rocket-dashboard-search-pulse 1.75s ease-in-out infinite!important;
    box-shadow:0 0 0 0 rgba(0,85,221,.05)!important;
  }
  body.rocket-mobile-crm-context .dashboard-mobile-id-search input:focus{
    border-color:transparent!important;
    animation:
      rocket-dashboard-search-border-loading 1.45s linear infinite,
      rocket-dashboard-search-pulse-focus 1.25s ease-in-out infinite!important;
  }
  body.rocket-mobile-crm-context .dashboard-mobile-id-search button{
    color:#0055DD!important;
  }
}
@media (prefers-reduced-motion:reduce){
  body.rocket-mobile-crm-context .dashboard-mobile-id-search input{
    animation:none!important;
    border-color:#0055DD!important;
    background:var(--surface)!important;
    box-shadow:0 0 0 2px rgba(0,85,221,.10)!important;
  }
}


/* ROCKET V3.760 · Calendario nativo PWA */
@media(max-width:760px){
  body.rocket-mobile-crm-context #calendarView.rocket-calendar-view:not([hidden]){padding:10px!important;overflow:auto!important;}
  body.rocket-mobile-crm-context #calendarView .rocket-calendar-toolbar{align-items:stretch;gap:8px;}
  body.rocket-mobile-crm-context #calendarView .rocket-calendar-period-nav{width:100%;}
  body.rocket-mobile-crm-context #calendarView .rocket-calendar-period-copy{min-width:0;flex:1 1 auto;}
  body.rocket-mobile-crm-context #calendarView .rocket-calendar-period-copy strong{font-size:14px;overflow:hidden;text-overflow:ellipsis;}
  body.rocket-mobile-crm-context #calendarView .rocket-calendar-toolbar-actions{width:100%;margin-left:0;display:grid;grid-template-columns:minmax(0,1fr) 42px 112px;gap:7px;}
  body.rocket-mobile-crm-context #calendarView .rocket-calendar-view-switch{min-width:0;overflow:auto;justify-content:flex-start;}
  body.rocket-mobile-crm-context #calendarView .rocket-calendar-view-switch button{min-width:58px;padding:0 8px;}
  body.rocket-mobile-crm-context #calendarView .rocket-calendar-icon-button{width:42px;height:42px;min-width:42px;}
  body.rocket-mobile-crm-context #calendarView .rocket-calendar-new{width:112px;height:42px;min-height:42px;padding:0 10px;justify-content:center;}
  body.rocket-mobile-crm-context #calendarView .rocket-calendar-today{height:36px;min-height:36px;}
  body.rocket-mobile-crm-context #calendarView .rocket-calendar-layout{display:flex;flex-direction:column;}
  body.rocket-mobile-crm-context #calendarView .rocket-calendar-main-card{min-height:560px;}
  body.rocket-mobile-crm-context #calendarView .rocket-calendar-side{display:grid;grid-template-columns:1fr;gap:8px;}
  body.rocket-mobile-crm-context #calendarView .rocket-calendar-mini-card{display:none;}
  body.rocket-mobile-crm-context #calendarView .rocket-calendar-upcoming-card{order:1;}
  body.rocket-mobile-crm-context #calendarView .rocket-calendar-sync-card{order:2;}
  body.rocket-mobile-crm-context #calendarView .rocket-calendar-agenda{padding:8px;}
  body.rocket-mobile-crm-context #calendarView .rocket-calendar-agenda-row{grid-template-columns:70px minmax(0,1fr) 16px;min-height:64px;padding:8px;}
  body.rocket-mobile-crm-context #calendarView .rocket-calendar-month{min-width:650px;}
  body.rocket-mobile-crm-context #calendarView .rocket-calendar-schedule{min-width:720px;}
  body.rocket-mobile-crm-context #calendarView .rocket-calendar-sync-actions .button{height:42px;min-height:42px;font-size:11px;}
}


/* ========================================================================== 
   ROCKET V3.772 · DESARROLLOS · PWA HEADER / DRAWER / SCROLL
   ========================================================================== */
@media(max-width:900px){
  body.rocket-mobile-crm-context .workspace-body:has(#developmentsView:not([hidden])){
    overflow-x:hidden!important;
    overflow-y:auto!important;
    -webkit-overflow-scrolling:touch!important;
    overscroll-behavior-y:contain!important;
    touch-action:pan-y!important;
  }
  body.rocket-mobile-crm-context #developmentsView.developments-view:not([hidden]){
    height:auto!important;
    min-height:calc(100dvh - var(--header-height,58px))!important;
    max-height:none!important;
    overflow:visible!important;
    touch-action:pan-y!important;
    padding-bottom:calc(18px + env(safe-area-inset-bottom))!important;
  }

  body.rocket-mobile-crm-context #developmentsSearchZone:not([hidden]) > .developments-search-field{
    display:flex!important;
    position:relative!important;
    flex:1 1 auto!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    height:38px!important;
    margin:0!important;
  }
  body.rocket-mobile-crm-context #developmentsSearchZone .developments-search-field input{
    width:100%!important;
    min-width:0!important;
    height:38px!important;
    padding:0 9px 0 32px!important;
    border:1px solid #314157!important;
    border-radius:8px!important;
    background:#111b29!important;
    color:var(--ink,#fff)!important;
    font-size:16px!important;
    outline:none!important;
  }
  body.rocket-mobile-crm-context #developmentsSearchZone .developments-search-field svg{
    display:block!important;
    position:absolute!important;
    z-index:1!important;
    left:10px!important;
    top:11px!important;
    width:16px!important;
    height:16px!important;
    pointer-events:none!important;
  }
  body.rocket-mobile-crm-context .rocket-mobile-filter-body > :is(#developmentsSourceFilter,#developmentsStatusFilter,#developmentsTypologyFilter,#developmentsPriceRangeFilter){
    display:block!important;
    width:100%!important;
    min-width:0!important;
    max-width:none!important;
    height:42px!important;
    margin:0!important;
    padding:0 32px 0 12px!important;
    border:1px solid #0055DD!important;
    border-radius:8px!important;
    background:#0055DD!important;
    color:#fff!important;
    font-size:12px!important;
    font-weight:800!important;
    box-sizing:border-box!important;
  }
  body.rocket-mobile-crm-context .rocket-mobile-filter-body > #developmentsResetFilters{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    width:100%!important;
    height:42px!important;
    margin:0!important;
    padding:0 12px!important;
    border:1px solid #d65a5a!important;
    border-radius:8px!important;
    background:transparent!important;
    color:#c64747!important;
    font-size:12px!important;
    font-weight:800!important;
    box-sizing:border-box!important;
  }
}
