/* Fuerza Católica — UX móvil iOS v2.7.28
   Capa de presentación y ergonomía. Mantiene la identidad visual y la lógica existente. */
:root{
  --fc-ios-blue:#0191F2;
  --fc-ios-blue-2:#018DEF;
  --fc-ios-cyan:#54B4F5;
  --fc-ios-text:#F9FCFF;
  --fc-ios-muted:#91A8BE;
  --fc-ios-card:rgba(7,24,42,.78);
  --fc-ios-card-strong:rgba(5,20,36,.94);
  --fc-ios-line:rgba(84,180,245,.20);
  --fc-ios-danger:#ff5b66;
  --fc-ios-off:#62656d;
  --fc-ios-radius:18px;
  --fc-ios-ease:cubic-bezier(.2,.8,.2,1);
}

/* Controles táctiles: ergonomía iPhone sin cambiar los iconos existentes. */
button,[role="button"],select,input[type="checkbox"],input[type="radio"]{-webkit-tap-highlight-color:transparent;touch-action:manipulation}
button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid rgba(84,180,245,.8)!important;outline-offset:2px}

/* Hamburguesa: centro geométrico dentro de su casilla. */
.mobile-menu{
  display:inline-flex!important;align-items:center!important;justify-content:center!important;
  padding:0!important;line-height:0!important;
}
.mobile-menu svg{display:block!important;margin:0!important;width:22px!important;height:22px!important;transform:none!important;flex:0 0 22px!important}

/* Switch iOS global. */
.fc-ios-switch{
  appearance:none!important;-webkit-appearance:none!important;
  position:relative!important;display:inline-flex!important;align-items:center!important;justify-content:flex-start!important;
  width:51px!important;min-width:51px!important;height:31px!important;min-height:31px!important;
  padding:2px!important;margin:0!important;border:0!important;border-radius:999px!important;
  background:var(--fc-ios-off)!important;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)!important;
  transition:background .22s var(--fc-ios-ease),box-shadow .22s var(--fc-ios-ease)!important;
  cursor:pointer!important;vertical-align:middle!important;
}
.fc-ios-switch::before{
  content:"";display:block;width:27px;height:27px;border-radius:50%;background:#fff;
  box-shadow:0 2px 7px rgba(0,0,0,.34);transform:translateX(0);
  transition:transform .22s var(--fc-ios-ease);pointer-events:none;
}
.fc-ios-switch[aria-checked="true"]{background:linear-gradient(135deg,var(--fc-ios-blue),var(--fc-ios-blue-2))!important;box-shadow:0 0 0 1px rgba(84,180,245,.18),0 4px 14px rgba(1,145,242,.22)!important}
.fc-ios-switch[aria-checked="true"]::before{transform:translateX(20px)}
.fc-ios-switch:disabled{opacity:.45!important;cursor:not-allowed!important}
.fc-sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

/* Campana: un único control general de push, estilo Ajustes de iOS. */
.push-card270{
  padding:0!important;overflow:hidden!important;border-radius:20px!important;
  background:linear-gradient(155deg,rgba(9,31,53,.82),rgba(3,17,31,.90))!important;
}
.push-card270>h3{margin:0!important;padding:16px 18px 6px!important;font-size:17px!important;letter-spacing:-.2px!important}
.push-card270>.push-status270{margin:0!important;padding:0 18px 16px!important;color:var(--fc-ios-muted)!important;font-size:13px!important;line-height:1.35!important}
.push-card270 .push-actions270{display:none!important}
.fc-notification-setting2728{
  display:flex;align-items:center;gap:14px;padding:14px 18px 16px;border-top:1px solid var(--fc-ios-line);
  min-height:66px;
}
.fc-notification-setting2728 .fc-setting-copy{min-width:0;flex:1}
.fc-notification-setting2728 strong{display:block;color:var(--fc-ios-text);font-size:15px;line-height:1.2}
.fc-notification-setting2728 small{display:block;margin-top:4px;color:var(--fc-ios-muted);font-size:12px;line-height:1.3}

/* Cuentas Admin: evita columnas de una letra y mantiene acciones utilizables. */
#accountList .account-row{
  min-width:0!important;display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;
  gap:12px 16px!important;align-items:start!important;
  padding:15px!important;border-radius:18px!important;
}
#accountList .account-row>div:first-child{min-width:0!important;width:100%!important}
#accountList .account-row>div:first-child>b{display:block!important;min-width:0!important;overflow-wrap:break-word!important;word-break:normal!important;line-height:1.28!important}
#accountList .account-row>div:first-child>small{
  display:block!important;min-width:0!important;margin-top:6px!important;line-height:1.5!important;
  white-space:normal!important;overflow-wrap:anywhere!important;word-break:normal!important;
}
#accountList .account-row-actions{
  display:flex!important;align-items:center!important;justify-content:flex-end!important;flex-wrap:wrap!important;
  gap:9px!important;min-width:0!important;max-width:100%!important;
}
#accountList .account-row-actions>span{font-size:12px!important;color:var(--fc-ios-muted)!important;white-space:nowrap!important}
#accountList .account-row-actions button:not(.fc-ios-switch){min-height:38px!important;white-space:nowrap!important}
#accountList .account-row-actions .fc-ios-switch{order:2!important}
#accountList .account-row-actions .danger-action{order:4!important}

/* Fases e insignias: nombre, metadatos, insignia y controles dejan de competir por ancho. */
#userPhaseList.phase-list{display:grid!important;gap:10px!important}
#userPhaseList .phase-user{
  min-width:0!important;display:grid!important;grid-template-columns:minmax(0,1fr) auto!important;
  gap:12px 14px!important;align-items:center!important;padding:14px!important;border-radius:18px!important;
}
#userPhaseList .phase-user-main{display:grid!important;grid-template-columns:36px minmax(0,1fr)!important;gap:10px!important;align-items:start!important;min-width:0!important}
#userPhaseList .phase-user-main>.person-avatar{grid-row:1 / span 3!important;align-self:start!important}
#userPhaseList .phase-user-main>div{min-width:0!important;display:flex!important;flex-wrap:wrap!important;align-items:center!important;gap:4px 8px!important}
#userPhaseList .phase-user-main b{display:block!important;flex:1 1 100%!important;min-width:0!important;line-height:1.28!important;overflow-wrap:break-word!important;word-break:normal!important}
#userPhaseList .phase-user-main small{display:block!important;flex:1 1 100%!important;min-width:0!important;line-height:1.42!important;overflow-wrap:break-word!important;word-break:normal!important}
#userPhaseList .phase-badge{position:static!important;display:inline-flex!important;flex:0 0 auto!important;width:auto!important;max-width:100%!important;margin:2px 0 0!important;white-space:nowrap!important}
#userPhaseList .phase-user-controls{display:flex!important;align-items:center!important;justify-content:flex-end!important;gap:8px!important;min-width:0!important;flex-wrap:wrap!important}
#userPhaseList .phase-user-controls select{min-width:132px!important;max-width:168px!important}
#userPhaseList .phase-user-controls button{min-height:40px!important}
#userPhaseList .phase-user-controls>small{display:block!important;color:var(--fc-ios-muted)!important;white-space:normal!important;text-align:right!important;line-height:1.35!important}

/* Login: recuperación de contraseña como acción secundaria del formulario. */
.fc-forgot-link2728{
  display:block;width:100%;border:0;background:transparent;color:var(--fc-ios-cyan);font:inherit;
  font-size:14px;font-weight:650;text-align:center;padding:11px 8px 5px;cursor:pointer;
}
.fc-forgot-link2728:hover{text-decoration:underline}
.fc-reset-note2728{font-size:12px;line-height:1.45;color:var(--fc-ios-muted);margin:2px 0 0}
.fc-reset-result2728{min-height:18px;font-size:13px;line-height:1.4;margin:3px 0 0;color:#cbeaff}

/* Navegación móvil y safe areas. */
@media (max-width:760px){
  html,body{font-family:-apple-system,BlinkMacSystemFont,"SF Pro Text","SF Pro Display",Inter,system-ui,sans-serif!important}
  body{padding-bottom:env(safe-area-inset-bottom,0px)!important}
  .topbar{padding-top:max(0px,env(safe-area-inset-top))!important}
  .mobile-bottom{
    bottom:max(8px,env(safe-area-inset-bottom))!important;
    min-height:64px!important;padding-bottom:2px!important;
  }
  .mobile-bottom button{min-height:54px!important;min-width:44px!important}
  .mobile-bottom svg{pointer-events:none}

  /* Modal tipo bottom sheet en iPhone. */
  .modal-layer.show{align-items:flex-end!important;padding:0!important}
  .modal-layer.show .modal{
    width:100%!important;max-width:none!important;max-height:min(88dvh,760px)!important;margin:0!important;
    border-radius:24px 24px 0 0!important;padding-bottom:max(22px,calc(14px + env(safe-area-inset-bottom)))!important;
    animation:fcSheetIn2728 .28s var(--fc-ios-ease) both!important;
  }
  .modal-layer.show .modal::before{
    content:"";display:block;width:36px;height:5px;border-radius:999px;background:rgba(255,255,255,.24);
    margin:-2px auto 13px;
  }
  @keyframes fcSheetIn2728{from{transform:translateY(24px);opacity:.72}to{transform:none;opacity:1}}

  /* Admin: tarjeta móvil compacta y horizontal, acciones debajo cuando haga falta. */
  #accountList .account-row{grid-template-columns:minmax(0,1fr)!important;gap:11px!important;padding:14px!important}
  #accountList .account-row-actions{justify-content:flex-start!important;width:100%!important}
  #accountList .account-row-actions>span{order:1!important}
  #accountList .account-row-actions [data-edit-account-profile]{order:0!important}
  #accountList .account-row-actions .fc-ios-switch{order:2!important;margin-left:auto!important}
  #accountList .account-row-actions .danger-action{order:3!important;flex:0 0 auto!important}

  #userPhaseList .phase-user{grid-template-columns:minmax(0,1fr)!important;align-items:start!important}
  #userPhaseList .phase-user-controls{justify-content:flex-start!important;padding-left:46px!important}
  #userPhaseList .phase-user-controls select{flex:0 1 132px!important;min-width:116px!important;max-width:150px!important}
  #userPhaseList .phase-user-controls>small{text-align:left!important}

  .notification-card{grid-template-columns:auto minmax(0,1fr)!important;gap:10px!important;align-items:start!important}
  .notification-card>div{min-width:0!important}
  .notification-card h3,.notification-card p{overflow-wrap:break-word!important;word-break:normal!important}
  .notification-card time{grid-column:2!important;justify-self:start!important;margin-top:-3px!important}
}

@media (max-width:380px){
  #userPhaseList .phase-user-controls{padding-left:0!important}
  #userPhaseList .phase-user-controls select{flex:1 1 125px!important}
  #accountList .account-row-actions .fc-ios-switch{margin-left:0!important}
}

/* Indicador de no leído reutilizable en Chat/otros ítems, sin desplazar el icono. */
.fc-nav-badge2728{position:absolute!important;top:4px!important;right:calc(50% - 20px)!important;min-width:16px!important;height:16px!important;padding:0 4px!important;border-radius:999px!important;background:#ff4055!important;color:#fff!important;font-size:10px!important;font-weight:800!important;line-height:16px!important;text-align:center!important;box-shadow:0 0 0 2px #061322!important;pointer-events:none!important}
.mobile-bottom button{position:relative}

/* v2.7.28 · Diagnóstico Web Push visible únicamente para Admin. */
.fc-push-admin2728{border-top:1px solid var(--fc-ios-line);padding:14px 18px 18px;background:rgba(0,0,0,.08)}
.fc-push-admin2728[hidden]{display:none!important}
.fc-push-admin-head2728{display:flex;align-items:center;gap:12px;justify-content:space-between}
.fc-push-admin-head2728>div{min-width:0;flex:1}
.fc-push-admin-head2728 strong{display:block;font-size:14px;line-height:1.25;color:var(--fc-ios-text)}
.fc-push-admin-head2728 small{display:block;margin-top:4px;font-size:11.5px;line-height:1.35;color:var(--fc-ios-muted)}
.fc-push-admin-head2728 button{flex:0 0 auto;min-height:38px!important}
.fc-push-diag-body2728{margin-top:12px}
.fc-push-diag-list2728{display:grid;gap:7px}
.fc-push-check2728{display:grid;grid-template-columns:24px minmax(0,1fr);align-items:start;gap:8px;padding:8px 10px;border:1px solid rgba(255,255,255,.06);border-radius:12px;background:rgba(255,255,255,.025)}
.fc-check-icon2728{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;font-size:12px;font-weight:900;background:rgba(255,255,255,.08);color:#a9bdcd}
.fc-check-text2728{font-size:12px;line-height:1.4;color:#c9d8e5;overflow-wrap:break-word}
.fc-push-check2728[data-state="ok"] .fc-check-icon2728{background:rgba(45,202,111,.16);color:#69eca0}
.fc-push-check2728[data-state="warn"] .fc-check-icon2728{background:rgba(255,190,46,.14);color:#ffd36d}
.fc-push-check2728[data-state="bad"] .fc-check-icon2728{background:rgba(255,72,85,.15);color:#ff8a94}
.fc-push-test-actions2728{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px}
.fc-push-test-actions2728 button{min-height:40px!important;flex:1 1 170px}
.fc-push-result2728{margin:11px 0 0;padding:10px 12px;border-radius:12px;font-size:12px;line-height:1.45;color:#b9ccdb;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.06)}
.fc-push-result2728[data-state="ok"]{color:#a7f4c4;border-color:rgba(45,202,111,.22);background:rgba(45,202,111,.07)}
.fc-push-result2728[data-state="warn"]{color:#ffe09a;border-color:rgba(255,190,46,.22);background:rgba(255,190,46,.06)}
.fc-push-result2728[data-state="bad"]{color:#ffb4ba;border-color:rgba(255,72,85,.24);background:rgba(255,72,85,.07)}
.fc-push-result2728[data-state="working"]{color:#bfe7ff;border-color:rgba(84,180,245,.22);background:rgba(84,180,245,.06)}
@media(max-width:520px){.fc-push-admin-head2728{align-items:flex-start}.fc-push-admin-head2728 button{padding-inline:12px!important}.fc-push-test-actions2728{display:grid;grid-template-columns:1fr}.fc-push-test-actions2728 button{width:100%;flex:none}}

/* Admin · usuarios con notificaciones Push v2.7.28 */
.fc-push-users-admin2728{border-top:1px solid rgba(84,180,245,.16);padding:15px 18px 18px;background:rgba(0,0,0,.10)}
.fc-push-users-admin2728[hidden]{display:none!important}
.fc-push-users-head2728{display:flex;align-items:flex-start;gap:12px;justify-content:space-between}
.fc-push-users-head2728>div{min-width:0;flex:1}
.fc-push-users-head2728 strong{display:block;font-size:14px;line-height:1.25;color:var(--fc-ios-text)}
.fc-push-users-head2728 small{display:block;margin-top:4px;color:var(--fc-ios-muted);font-size:11.5px;line-height:1.4}
.fc-push-users-head2728 button{flex:0 0 auto;min-height:38px!important}
.fc-push-summary-grid2728{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px;margin-top:12px}
.fc-push-summary-grid2728>div{min-width:0;padding:10px 9px;border:1px solid rgba(255,255,255,.065);background:rgba(255,255,255,.028);border-radius:13px;text-align:center}
.fc-push-summary-grid2728 span{display:block;color:#f5fbff;font-weight:850;font-size:19px;line-height:1}
.fc-push-summary-grid2728 small{display:block;margin-top:5px;color:var(--fc-ios-muted);font-size:9.5px;line-height:1.2}
.fc-push-users-tools2728{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,220px);gap:9px;margin-top:11px;align-items:center}
.fc-push-filter2728{display:flex;gap:5px;overflow-x:auto;scrollbar-width:none;padding-bottom:1px}.fc-push-filter2728::-webkit-scrollbar{display:none}
.fc-push-filter2728 button{border:1px solid rgba(84,180,245,.16);background:rgba(7,24,42,.82);color:#b8cad8;border-radius:999px;padding:7px 9px;font:inherit;font-size:10.5px;white-space:nowrap;cursor:pointer}
.fc-push-filter2728 button.active{background:rgba(1,145,242,.16);border-color:rgba(84,180,245,.4);color:#edf8ff}
.fc-push-filter2728 button span{display:inline-block;min-width:16px;padding:1px 4px;border-radius:999px;background:rgba(255,190,46,.15);color:#ffd36d;margin-left:2px}
#pushUsersSearch2728{width:100%;height:36px;border-radius:11px;border:1px solid rgba(84,180,245,.16);background:rgba(4,17,30,.76);color:#f6fbff;padding:0 10px;font:inherit;font-size:11px;outline:none}
#pushUsersSearch2728::placeholder{color:#718ba1}
.fc-push-users-list2728{display:grid;gap:7px;margin-top:10px;max-height:360px;overflow:auto;padding-right:2px;scrollbar-width:thin}
.fc-push-user-row2728{display:grid;grid-template-columns:minmax(0,1fr) minmax(150px,auto);gap:12px;align-items:center;padding:10px 11px;border:1px solid rgba(255,255,255,.055);border-radius:13px;background:rgba(255,255,255,.024)}
.fc-push-user-main2728{min-width:0}.fc-push-user-main2728 strong{display:block;min-width:0;color:#f3f9ff;font-size:12px;line-height:1.3;overflow-wrap:break-word}.fc-push-user-main2728 small{display:block;color:#829db2;font-size:10px;margin-top:3px}
.fc-push-user-status2728{display:grid;justify-items:end;gap:3px;min-width:0;text-align:right}.fc-push-user-status2728>small{color:#9bb0c1;font-size:9.5px;line-height:1.3}.fc-push-user-status2728>em{display:block;max-width:250px;color:#70889b;font-style:normal;font-size:9px;line-height:1.25}
.fc-push-state2728{display:inline-flex;align-items:center;justify-content:center;width:max-content;border-radius:999px;padding:4px 8px;font-size:9.5px;font-weight:800;letter-spacing:.01em}
.fc-push-user-row2728[data-state="active"] .fc-push-state2728{background:rgba(45,202,111,.13);color:#72eaa0;border:1px solid rgba(45,202,111,.2)}
.fc-push-user-row2728[data-state="review"] .fc-push-state2728{background:rgba(255,190,46,.12);color:#ffd36d;border:1px solid rgba(255,190,46,.2)}
.fc-push-user-row2728[data-state="off"] .fc-push-state2728{background:rgba(255,255,255,.055);color:#a8bac8;border:1px solid rgba(255,255,255,.07)}
.fc-push-users-empty2728{padding:15px 10px;margin:9px 0 0;text-align:center;color:#8fa6b8;font-size:11px;border:1px dashed rgba(255,255,255,.08);border-radius:12px}
#pushUsersStatus2728{margin-top:9px!important}
@media(max-width:620px){
  .fc-push-summary-grid2728{grid-template-columns:repeat(2,minmax(0,1fr))}
  .fc-push-users-tools2728{grid-template-columns:1fr}
  .fc-push-user-row2728{grid-template-columns:minmax(0,1fr);gap:7px;align-items:start}
  .fc-push-user-status2728{justify-items:start;text-align:left}
  .fc-push-user-status2728>em{max-width:none}
  .fc-push-users-list2728{max-height:420px}
}


/* Admin · envío general v2.7.28 */
.fc-push-broadcast-admin2728{border-top:1px solid rgba(84,180,245,.16);padding:15px 18px 18px;background:linear-gradient(145deg,rgba(1,145,242,.055),rgba(0,0,0,.11))}
.fc-push-broadcast-admin2728[hidden]{display:none!important}.fc-push-broadcast-head2728 strong{display:block;color:var(--fc-ios-text);font-size:14px;line-height:1.25}.fc-push-broadcast-head2728 small{display:block;margin-top:4px;color:var(--fc-ios-muted);font-size:11.5px;line-height:1.4}
.fc-push-broadcast-preview2728{margin:11px 0;padding:12px 13px;border-radius:14px;border:1px solid rgba(84,180,245,.18);background:rgba(5,20,36,.72)}.fc-push-broadcast-preview2728>span{display:block;color:#5acffc;font-size:9px;font-weight:850;letter-spacing:.09em}.fc-push-broadcast-preview2728>strong{display:block;margin-top:7px;color:#fff;font-size:14px}.fc-push-broadcast-preview2728>p{margin:4px 0 0;color:#b9ccdb;font-size:11.5px;line-height:1.4}
.fc-push-broadcast-confirm2728{margin-top:9px;padding:11px;border-radius:13px;background:rgba(255,190,46,.055);border:1px solid rgba(255,190,46,.18)}.fc-push-broadcast-confirm2728[hidden]{display:none!important}.fc-push-broadcast-confirm2728 p{margin:0 0 9px;color:#ffe09a;font-size:11.5px;line-height:1.4}.fc-push-broadcast-confirm2728>div{display:flex;gap:8px}.fc-push-broadcast-confirm2728 button{flex:1;min-height:39px!important}
@media(max-width:520px){.fc-push-broadcast-confirm2728>div{display:grid;grid-template-columns:1fr}.fc-push-broadcast-confirm2728 button{width:100%}}
