:root{
  --blue:#1b71d6; --blue2:#4aa3ff; --navy:#0c2d5c; --ink:#173a68; --muted:#5b7da6;
  --glass:rgba(255,255,255,.62); --glass-b:rgba(255,255,255,.85);
  --shadow:0 8px 30px rgba(20,70,140,.16); --r:22px;
  --font:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Helvetica,Arial,sans-serif;
}
*{box-sizing:border-box;margin:0;-webkit-tap-highlight-color:transparent}
html{scroll-behavior:smooth}
body{font-family:var(--font);color:var(--ink);min-height:100vh;line-height:1.5;
  background:
   radial-gradient(900px 500px at 12% 0%,#fff 0,transparent 60%),
   radial-gradient(700px 420px at 90% 18%,rgba(255,255,255,.85) 0,transparent 60%),
   linear-gradient(180deg,#5aa9ee 0%,#9fd0f7 40%,#e6f3ff 100%) fixed;}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.ic{flex:none}
.glass{background:var(--glass);backdrop-filter:blur(16px) saturate(1.4);-webkit-backdrop-filter:blur(16px) saturate(1.4);border:1px solid var(--glass-b);box-shadow:var(--shadow);border-radius:var(--r)}
.card{padding:18px}
.muted{color:var(--muted);font-size:.9rem}
.eyebrow{font-size:.74rem;font-weight:800;letter-spacing:.09em;text-transform:uppercase;color:var(--blue);margin-bottom:10px}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;cursor:pointer;font:inherit;font-weight:700;font-size:.92rem;padding:12px 22px;border-radius:999px;color:#fff;background:linear-gradient(135deg,var(--blue),var(--blue2));box-shadow:0 6px 16px rgba(27,113,214,.35)}
.btn.ghost{background:var(--glass);color:var(--blue);box-shadow:none;border:1px solid var(--glass-b)}

/* ---------- Estructura ---------- */
.app{display:grid;grid-template-columns:236px minmax(0,1fr) 290px;gap:18px;max-width:1280px;margin:0 auto;padding:18px;align-items:start}
.side{grid-column:1;grid-row:1/span 3;position:sticky;top:18px;padding:20px 14px;display:flex;flex-direction:column;gap:6px;max-height:calc(100vh - 36px);overflow:auto}
.side-brand{display:block;text-align:center;margin-bottom:12px}
.side-brand img{width:150px;height:150px;margin:0 auto 10px;filter:drop-shadow(0 8px 14px rgba(10,42,90,.35))}
.side-brand b{display:block;font-size:.95rem;color:var(--navy);line-height:1.25}
.side nav{display:flex;flex-direction:column;gap:4px}
.side nav a{display:flex;align-items:center;gap:12px;padding:12px 14px;border-radius:15px;font-weight:700;font-size:.95rem;color:#17457e;transition:.15s}
.side nav a:hover{background:rgba(255,255,255,.7)}
.side nav a.on{background:linear-gradient(135deg,var(--blue),var(--blue2));color:#fff;box-shadow:0 6px 16px rgba(27,113,214,.35)}
.side-cta{margin-top:10px;text-align:center;padding:12px;border-radius:15px;font-weight:700;font-size:.9rem;background:rgba(255,255,255,.75);color:var(--blue)}
.main{grid-column:2;display:flex;flex-direction:column;gap:16px;min-width:0}
.rail{grid-column:3;grid-row:1/span 3;position:sticky;top:18px;display:flex;flex-direction:column;gap:14px;max-height:calc(100vh - 36px);overflow:auto}
.topbar,.tabbar,.sheet,.sheet-bg{display:none}

/* ---------- Historias ---------- */
.stories{display:flex;gap:14px;padding:14px 16px;overflow-x:auto;scrollbar-width:none}
.stories::-webkit-scrollbar{display:none}
.story{flex:none;width:72px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;text-align:center;background:none;border:0;font:inherit;cursor:pointer;color:var(--navy)}
.story i{display:grid;place-items:center;width:62px;height:62px;border-radius:50%;margin:0 auto 5px;font-style:normal;font-size:26px;
  background:linear-gradient(135deg,#8fcbff,var(--blue));border:3px solid #fff;box-shadow:0 0 0 2.5px var(--blue2)}
.story span{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;font-size:.7rem;font-weight:700;line-height:1.2}

/* ---------- Publicaciones ---------- */
.post{overflow:hidden}
.post-h{display:flex;align-items:center;gap:11px;padding:14px 16px}
.post-h img{width:42px;height:42px;border-radius:50%;background:#fff;object-fit:cover}
.post-h b{display:block;font-size:.95rem;color:var(--navy);line-height:1.2}
.post-h small{color:var(--muted);font-size:.78rem}
.pin{white-space:nowrap;margin-left:auto;font-size:.72rem;font-weight:800;color:var(--blue);background:#fff;border-radius:99px;padding:3px 10px}
.post-t{padding:0 16px 4px;font-size:1.08rem;font-weight:800;color:var(--navy)}
.post-b{padding:2px 16px 12px;white-space:pre-line;font-size:.97rem}
.post-im{width:100%;max-height:560px;object-fit:cover;background:#cfe6fb}
.post-v{aspect-ratio:16/9;width:100%;border:0;background:#000;display:block;max-height:80vh}
.post-link{display:block;margin:0 16px 12px}
.post-a{display:flex;gap:6px;padding:8px 10px 12px;border-top:1px solid rgba(255,255,255,.7)}
.post-a button,.post-a a{white-space:nowrap;display:flex;align-items:center;gap:7px;border:0;background:none;font:inherit;font-weight:700;font-size:.88rem;color:var(--blue);padding:9px 12px;border-radius:12px;cursor:pointer}
.post-a button:hover,.post-a a:hover{background:rgba(255,255,255,.7)}
.like .f{display:none}.like.on{color:#e0245e}.like.on .f{display:block}.like.on .o{display:none}

/* ---------- Tarjetas laterales ---------- */
.ev{display:flex;gap:12px;align-items:center;margin-bottom:12px;font-size:.9rem;line-height:1.3}
.ev-d{flex:none;width:46px;height:50px;border-radius:13px;background:linear-gradient(135deg,var(--blue),var(--blue2));color:#fff;text-align:center;padding-top:6px}
.ev-d small{display:block;font-size:.62rem;font-weight:800;letter-spacing:.06em}
.ev-d b{font-size:1.2rem;line-height:1}
.ev b{color:var(--navy)}.ev span{display:block;color:var(--muted);font-size:.82rem}
.more{font-size:.85rem;font-weight:700;color:var(--blue)}
.sv{display:grid;grid-template-columns:auto 1fr;gap:0 10px;padding:8px 0;border-bottom:1px solid rgba(255,255,255,.7);font-size:.9rem}
.sv:last-child{border:0}.sv b{color:var(--navy)}.sv span{text-align:right;font-weight:700;color:var(--blue)}.sv em{grid-column:1/-1;font-style:normal;color:var(--muted);font-size:.82rem}
.give-card2{display:flex;align-items:center;justify-content:center;gap:10px;font-weight:800;color:#fff;background:linear-gradient(135deg,rgba(27,113,214,.92),rgba(74,163,255,.92))}

/* ---------- Páginas interiores ---------- */
.page-h{padding:26px 22px}
.page-h h1{font-size:1.7rem;color:var(--navy);line-height:1.15;margin-bottom:6px}
.page-h p{color:var(--ink)}
.list{display:flex;flex-direction:column;gap:12px}
.item{display:flex;gap:14px;align-items:center;padding:16px}
.item .ev-d{width:56px;height:62px;padding-top:9px}.item .ev-d b{font-size:1.5rem}
.item h3{font-size:1.02rem;color:var(--navy)}.item p{color:var(--muted);font-size:.9rem}
.grid2{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
.mini{padding:18px}.mini .e{font-size:30px;margin-bottom:6px}.mini h3{color:var(--navy);font-size:1rem;margin-bottom:4px}.mini p{color:var(--muted);font-size:.88rem}
.give-opt{padding:20px;text-align:center}.give-opt .l{font-size:.72rem;font-weight:800;letter-spacing:.09em;color:var(--blue);margin-bottom:6px}.give-opt .v{font-size:1.15rem;font-weight:800;color:var(--navy);word-break:break-word}
.verse{font-style:italic;color:var(--navy);padding:18px 22px;border-left:4px solid var(--blue2)}
.pastor{display:flex;gap:18px;align-items:center;padding:20px}
.pastor .av{overflow:hidden;flex:none;width:120px;height:120px;border-radius:50%;background:linear-gradient(135deg,#8fcbff,var(--blue));display:grid;place-items:center;font-size:42px}
.pastor h3{color:var(--navy)}
.map{overflow:hidden;padding:0}.map iframe{width:100%;height:320px;border:0;display:block}
.info-line{display:flex;gap:10px;align-items:flex-start;margin-bottom:10px}
form.pray{display:flex;flex-direction:column;gap:10px;padding:20px}
form.pray label{font-size:.8rem;font-weight:700;color:var(--muted)}
form.pray input,form.pray textarea{width:100%;font:inherit;padding:12px 14px;border-radius:14px;border:1.5px solid rgba(27,113,214,.2);background:rgba(255,255,255,.85);color:var(--ink)}
form.pray textarea{min-height:110px;resize:vertical}
.gal{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;padding:12px}
.gal img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:14px}
.fb{padding:14px;display:flex;justify-content:center;overflow:hidden}

/* ---------- Modal, toast ---------- */
.modal-bg{position:fixed;inset:0;background:rgba(10,40,80,.45);display:none;align-items:center;justify-content:center;padding:20px;z-index:60}
.modal-bg.open{display:flex}
.modal{max-width:380px;width:100%;padding:28px;text-align:center;background:rgba(255,255,255,.92)}
.m-emoji{font-size:54px}.modal h3{color:var(--navy);margin:6px 0}.modal p{color:var(--ink);margin-bottom:18px}
.toast{position:fixed;left:50%;bottom:90px;transform:translateX(-50%) translateY(20px);background:var(--navy);color:#fff;padding:10px 18px;border-radius:99px;font-weight:700;font-size:.88rem;opacity:0;pointer-events:none;transition:.25s;z-index:80}
.toast.show{opacity:1;transform:translateX(-50%)}

/* ---------- Tablet ---------- */
@media (max-width:1060px){
  .app{grid-template-columns:200px minmax(0,1fr)}
  .rail{grid-column:2;grid-row:auto;position:static;max-height:none;display:grid;grid-template-columns:1fr 1fr}
  .rail .give-card2{grid-column:1/-1}
  .side-brand img{width:120px;height:120px}
}
/* ---------- Celular ---------- */
@media (max-width:760px){
  body{background-attachment:scroll}
  .app{display:block;padding:0 12px calc(96px + env(safe-area-inset-bottom))}
  .side{display:none}
  .main,.rail{margin-top:14px}
  .rail{display:flex;flex-direction:column;position:static}
  .topbar{display:flex;position:sticky;top:0;z-index:30;margin:0 -12px;border-radius:0 0 22px 22px;align-items:center;justify-content:space-between;padding:calc(10px + env(safe-area-inset-top)) 16px 10px}
  .tb-brand{display:flex;align-items:center;gap:11px}
  .tb-brand img{width:56px;height:56px;filter:drop-shadow(0 4px 8px rgba(10,42,90,.35))}
  .tb-brand b{display:block;font-size:1rem;color:var(--navy);line-height:1.1}
  .tb-brand span{font-size:.8rem;font-weight:700;color:var(--blue)}
  .tb-give{display:flex;align-items:center;gap:6px;font-weight:800;font-size:.85rem;color:#fff;background:linear-gradient(135deg,var(--blue),var(--blue2));padding:9px 16px;border-radius:99px}
  .tabbar{display:flex;position:fixed;left:12px;right:12px;bottom:calc(12px + env(safe-area-inset-bottom));z-index:40;justify-content:space-around;padding:8px 4px;border-radius:28px}
  .tabbar a,.tabbar button{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;background:none;border:0;font:inherit;font-size:.66rem;font-weight:800;color:#4a77ad;padding:4px 0;cursor:pointer}
  .tabbar .on{color:var(--blue)}
  .sheet-bg{display:block;position:fixed;inset:0;background:rgba(10,40,80,.4);opacity:0;pointer-events:none;transition:.25s;z-index:50}
  .sheet-bg.open{opacity:1;pointer-events:auto}
  .sheet{display:flex;flex-direction:column;gap:4px;position:fixed;left:0;right:0;bottom:0;z-index:55;border-radius:26px 26px 0 0;padding:10px 16px calc(24px + env(safe-area-inset-bottom));background:rgba(255,255,255,.94);transform:translateY(105%);transition:.3s}
  .sheet.open{transform:none}
  .sheet .grab{width:42px;height:5px;border-radius:9px;background:#b9d3ee;margin:4px auto 10px}
  .sheet a{display:flex;align-items:center;gap:14px;padding:14px 8px;font-weight:700;color:var(--navy);border-bottom:1px solid rgba(27,113,214,.1)}
  .page-h h1{font-size:1.45rem}
  .grid2{grid-template-columns:1fr}
  .gal{grid-template-columns:repeat(2,1fr)}
  .pastor{flex-direction:column;text-align:center}
  .post-im{max-height:440px}
  .post-a{gap:0;justify-content:space-between}
  .post-a button,.post-a a{font-size:.8rem;padding:9px 8px;gap:5px}
  .post-a .ic{width:18px;height:18px}
}
@media (prefers-reduced-motion:reduce){*{transition:none!important;scroll-behavior:auto!important}}

.prog{height:8px;border-radius:9px;background:#dbe9f9;overflow:hidden;margin-top:10px;display:none}.prog i{display:block;height:100%;width:0;background:linear-gradient(90deg,#1b71d6,#4aa3ff);transition:width .2s}

/* ---------- Compositor (solo administrador) ---------- */
.composer{padding:14px 16px}
.cp-top{display:flex;gap:12px;align-items:flex-start}
.cp-top img{width:44px;height:44px;border-radius:50%;background:#fff;flex:none}
.cp-top textarea{flex:1;min-height:56px;resize:none;font:inherit;font-size:1rem;color:var(--ink);padding:12px 16px;border-radius:22px;border:1.5px solid rgba(27,113,214,.2);background:rgba(255,255,255,.85)}
.cp-top textarea:focus{outline:none;border-color:var(--blue)}
.cp-prev{display:flex;gap:10px;flex-wrap:wrap;margin-top:10px}.cp-prev img,.cp-prev video{max-width:100%;max-height:260px;border-radius:14px}
.cp-bar{display:flex;align-items:center;gap:8px;margin-top:12px;border-top:1px solid rgba(255,255,255,.8);padding-top:12px}
.cp-opt{white-space:nowrap;display:flex;align-items:center;gap:6px;cursor:pointer;font-weight:700;font-size:.88rem;color:var(--blue);padding:9px 12px;border-radius:12px;background:rgba(255,255,255,.7)}
.cp-pin input{margin-right:2px}
.cp-bar .btn{margin-left:auto;padding:10px 22px}
.cp-err{color:#b3261e;font-size:.85rem;font-weight:700;margin-top:8px;min-height:0}
.cp-adm{margin-top:8px;font-size:.75rem;color:var(--muted);text-align:center}.cp-adm a{color:var(--blue);font-weight:700}
.post-a .del{margin-left:auto;color:#b3261e}

.pastor .av img{width:100%;height:100%;object-fit:cover}

/* ---------- Compartir ---------- */
.sh-list{display:flex;flex-direction:column;gap:8px;margin:14px 0 18px;text-align:left}
.sh-list a,.sh-list button{display:block;width:100%;font:inherit;font-weight:700;font-size:1rem;color:var(--navy);padding:14px 16px;border-radius:14px;border:1px solid rgba(27,113,214,.15);background:rgba(255,255,255,.85);cursor:pointer;text-align:left}
.sh-list a:hover,.sh-list button:hover{background:#fff}
.side-share{display:flex;align-items:center;justify-content:center;gap:8px;margin-top:10px;border:0;font:inherit;font-weight:800;font-size:.9rem;color:#fff;padding:12px;border-radius:15px;cursor:pointer;background:linear-gradient(135deg,var(--blue),var(--blue2));box-shadow:0 6px 16px rgba(27,113,214,.3)}
.tb-right{display:flex;align-items:center;gap:8px}
.tb-share{display:grid;place-items:center;width:40px;height:40px;border:0;border-radius:50%;cursor:pointer;color:var(--blue);background:rgba(255,255,255,.85)}
.post-a .share-btn{background:rgba(27,113,214,.1)}
.back{display:inline-flex;align-items:center;gap:6px;font-weight:800;color:var(--blue);padding:4px 6px}

/* --- En Vivo --- */
.livecard{display:flex;align-items:center;gap:12px;padding:14px 16px;margin-bottom:14px;border-radius:var(--r);text-decoration:none;color:var(--ink)}
.livecard .lc-dot{width:12px;height:12px;border-radius:50%;background:#9db6d3;flex:none}
.livecard.on .lc-dot{background:#e5232d;box-shadow:0 0 0 0 rgba(229,35,45,.6);animation:lcp 1.5s infinite}
@keyframes lcp{70%{box-shadow:0 0 0 12px rgba(229,35,45,0)}100%{box-shadow:0 0 0 0 rgba(229,35,45,0)}}
.livecard .lc-t{flex:1;min-width:0;display:flex;flex-direction:column}
.livecard .lc-t small{color:var(--muted);font-size:13px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.livecard .lc-go{background:linear-gradient(135deg,var(--blue2),var(--blue));color:#fff;font-weight:700;border-radius:999px;padding:8px 18px;font-size:14px}
.livecard.on{border-color:rgba(229,35,45,.5)}
.livecard.on .lc-go{background:linear-gradient(135deg,#ff4d57,#e5232d)}
.livehost{display:block;text-align:center;margin:-4px 0 14px;font-weight:700;font-size:14px;color:#e5232d;text-decoration:none}

.tabbar .tab-live{display:flex;align-items:center;justify-content:center}
.tabbar .tab-live b{background:linear-gradient(135deg,#ff2d6f,#ff4d3d);color:#fff;font-size:14px;letter-spacing:.8px;padding:10px 18px;border-radius:14px;box-shadow:0 6px 18px rgba(255,45,85,.45)}
.side a[href="/live.php"]{color:#e5232d;font-weight:800}

.live-fab{position:fixed;right:16px;bottom:96px;z-index:60;display:flex;align-items:center;gap:7px;background:linear-gradient(135deg,#ff2d6f,#ff4d3d);color:#fff;font-weight:800;letter-spacing:.8px;font-size:15px;text-decoration:none;padding:13px 20px;border-radius:999px;border:2px solid rgba(255,255,255,.8);box-shadow:0 10px 28px rgba(255,45,85,.55);animation:fabp 2s infinite}
.live-fab i{width:9px;height:9px;border-radius:50%;background:#fff}
@keyframes fabp{50%{transform:scale(1.06)}}
@media(min-width:761px){.live-fab{bottom:24px;right:24px}}
.tabbar .tab-live{display:none}
@media(max-width:760px){.live-fab{display:none}.tabbar .tab-live{display:flex}}
