/* SGC Team Portal — front-end */
.sgc-tp{--tp-navy:#071426;--tp-navy2:#102b4f;--tp-accent:#D4AF37;--tp-ink:#0f172a;
  font-family:'DM Sans',Arial,sans-serif;max-width:960px;margin:24px auto;padding:0 12px;color:var(--tp-ink)}
.sgc-tp *{box-sizing:border-box}

/* Gate */
.tp-gate{max-width:520px;margin:30px auto;padding:32px 28px;border-radius:24px;color:#fff;
  background:linear-gradient(135deg,var(--tp-navy),var(--tp-navy2));box-shadow:0 24px 70px rgba(0,0,0,.25)}
.tp-gate h2{color:#fff;margin:18px 0 6px}
.tp-brand{display:flex;align-items:center;gap:12px}
.tp-brand small{display:block;opacity:.8}
.tp-logo{background:var(--tp-accent);color:var(--tp-navy);border-radius:999px;padding:8px 13px;font-weight:800}
.tp-gate-form{display:flex;flex-direction:column;gap:14px;margin-top:18px}
.tp-code-input{padding:16px;border-radius:14px;border:1px solid #cbd5e1;font-size:22px;letter-spacing:6px;
  text-transform:uppercase;text-align:center;color:var(--tp-ink);width:100%}

/* Shell */
.tp-shell{background:#fff;border:1px solid #e2e8f0;border-radius:22px;overflow:hidden;box-shadow:0 16px 50px rgba(2,6,23,.08)}
.tp-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:18px 20px;
  background:linear-gradient(135deg,var(--tp-navy),var(--tp-navy2));color:#fff}
.tp-head small{opacity:.85;display:block}
.tp-tabs{display:flex;gap:4px;flex-wrap:wrap;padding:10px 14px;background:#f8fafc;border-bottom:1px solid #e2e8f0}
.tp-tabs a{padding:9px 16px;border-radius:999px;text-decoration:none;color:#334155;font-weight:600;font-size:14px}
.tp-tabs a.on{background:var(--tp-navy);color:#fff}
.tp-tabs a:hover{background:#e2e8f0}
.tp-tabs a.on:hover{background:var(--tp-navy)}

/* Cards & layout */
.tp-card{margin:16px;padding:18px;border:1px solid #e2e8f0;border-radius:16px;background:#fff}
.tp-card h3{margin:0 0 10px}
.tp-hero{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin:16px}
.tp-hero-card{padding:20px;border-radius:18px;background:linear-gradient(135deg,var(--tp-navy),var(--tp-navy2));color:#fff}
.tp-hero-card h3{color:#fff;margin:8px 0 0;font-size:20px;line-height:1.4}
.tp-hero-confession{background:linear-gradient(135deg,#1e293b,#0f172a);border:1px solid rgba(212,175,55,.35)}
.tp-kicker{display:inline-block;font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--tp-accent);font-weight:800}
.tp-confession{font-size:16px;line-height:1.7;margin:8px 0 0;font-style:italic}
.tp-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:16px}
.tp-stat{padding:16px;border-radius:14px;border:1px solid #e2e8f0;text-align:center;background:#f8fafc}
.tp-stat span{display:block;font-size:12px;color:#64748b;margin-bottom:4px}
.tp-stat strong{font-size:26px;color:var(--tp-navy)}

/* Goals */
.tp-goal{margin:12px 0}
.tp-goal-top{display:flex;justify-content:space-between;gap:10px;font-size:14px;margin-bottom:5px}
.tp-bar{height:12px;border-radius:999px;background:#e2e8f0;overflow:hidden}
.tp-bar-fill{height:100%;border-radius:999px;background:linear-gradient(90deg,var(--tp-accent),#b8860b);transition:width .4s}

/* Forms */
.tp-input{width:100%;padding:11px 12px;border-radius:12px;border:1px solid #cbd5e1;font-size:15px;background:#fff;color:var(--tp-ink)}
.tp-input-big{padding:16px;font-size:20px}
.tp-bigform{display:flex;flex-direction:column;gap:12px;max-width:420px}
.tp-bigform label,.tp-grid-form label{font-weight:600;font-size:14px;display:block}
.tp-bigform .tp-input,.tp-grid-form .tp-input{margin-top:5px}
.tp-grid-form{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;align-items:end}
.tp-btn{display:inline-block;border:0;border-radius:999px;padding:11px 22px;font-weight:800;cursor:pointer;font-size:15px;text-decoration:none}
.tp-btn-big{padding:15px 30px;font-size:17px}
.tp-btn-gold{background:var(--tp-accent);color:var(--tp-navy)}
.tp-btn-blue{background:#2563EB;color:#fff}
.tp-btn-ghost{background:rgba(255,255,255,.14);color:#fff;border:1px solid rgba(255,255,255,.3)}
.tp-card .tp-btn-ghost{background:#f1f5f9;color:#334155;border:1px solid #cbd5e1}
.tp-link-danger{background:none;border:0;color:#dc2626;cursor:pointer;font-size:13px;text-decoration:underline;padding:0}
.tp-inline{display:inline}
.tp-inline-row{display:flex;gap:10px;flex-wrap:wrap;align-items:center}
.tp-inline-row .tp-input{width:auto}
.tp-details{margin-top:16px}
.tp-details summary{cursor:pointer;font-weight:700;color:#2563EB}
.tp-details form{display:flex;flex-direction:column;gap:10px;max-width:420px;margin-top:12px}

/* Tables */
.tp-table{width:100%;border-collapse:collapse;font-size:14px}
.tp-table th{text-align:left;padding:9px 10px;background:#f1f5f9;border-bottom:2px solid #e2e8f0;font-size:12px;
  text-transform:uppercase;letter-spacing:.6px;color:#475569}
.tp-table td{padding:9px 10px;border-bottom:1px solid #f1f5f9;vertical-align:top}
.tp-pill{background:#eef2ff;color:#4338ca;border-radius:999px;padding:2px 9px;font-size:11px;font-weight:700}

/* Chips / register / follow-up */
.tp-chiprow{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 16px}
.tp-chip{padding:7px 14px;border-radius:999px;border:1px solid #cbd5e1;background:#fff;color:#334155;text-decoration:none;
  font-size:13px;font-weight:700}
.tp-chip.on{background:var(--tp-navy);color:#fff;border-color:var(--tp-navy)}
.tp-register{display:grid;grid-template-columns:repeat(auto-fill,minmax(190px,1fr));gap:8px;margin:12px 0 16px}
.tp-reg-row{padding:10px 12px;border:1px solid #e2e8f0;border-radius:12px;cursor:pointer;font-size:14px;background:#fff}
.tp-reg-row.on{background:#ecfdf5;border-color:#6ee7b7}
.tp-fu{border:1px solid #e2e8f0;border-radius:14px;padding:14px;margin:12px 0;background:#fcfcfd}
.tp-fu-head{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;margin-bottom:8px}
.tp-fu-actions{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:10px}
.tp-fu-form{display:flex;gap:8px;flex-wrap:wrap}
.tp-fu-form .tp-input{width:auto;flex:1;min-width:130px}

/* Flash */
.tp-flash{margin:14px 16px;padding:13px 16px;border-radius:12px;font-size:15px;line-height:1.5}
.tp-gate .tp-flash{margin:14px 0}
.tp-ok{background:#ecfdf5;border:1px solid #6ee7b7;color:#065f46}
.tp-bad{background:#fef2f2;border:1px solid #fca5a5;color:#991b1b}
.tp-muted{color:#64748b;font-size:14px}
.tp-report-title{margin:18px 16px 0;color:var(--tp-navy)}

/* Mobile */
@media (max-width:640px){
  .tp-hero,.tp-stats{grid-template-columns:1fr}
  .tp-tabs{overflow-x:auto;flex-wrap:nowrap}
  .tp-tabs a{white-space:nowrap}
  .tp-fu-form .tp-input{min-width:100%}
}

/* Print: clean report only */
@media print{
  body *{visibility:hidden}
  .tp-report,.tp-report *{visibility:visible}
  .tp-report{position:absolute;left:0;top:0;width:100%}
  .tp-noprint{display:none!important}
  .tp-card{border:1px solid #999;page-break-inside:avoid}
}

/* v2.1 — team portal additions */
.tp-btn-wa{background:#25D366;color:#fff}
.tp-nextmeeting{border-left:4px solid var(--tp-accent)}
.tp-next-big{font-size:20px;font-weight:800;color:var(--tp-navy);margin:6px 0 10px}

/* v2.2 — testimonies + minutes archive */
.tp-testimony{border:1px solid #e2e8f0;border-left:4px solid var(--tp-accent);border-radius:12px;padding:14px;margin:12px 0;background:#fffdf5}
.tp-min-month{border:1px solid #e2e8f0;border-radius:14px;margin:10px 0;background:#fff}
.tp-min-month>summary{cursor:pointer;padding:14px 16px;font-weight:800;font-size:16px;color:var(--tp-navy);list-style:none;display:flex;align-items:center;gap:10px}
.tp-min-month>summary::before{content:"▸";transition:transform .15s}
.tp-min-month[open]>summary::before{transform:rotate(90deg)}
.tp-min-entry{border-top:1px solid #f1f5f9;margin:0 12px}
.tp-min-entry>summary{cursor:pointer;padding:11px 6px;font-weight:600;color:#334155;list-style:none}
.tp-min-entry>summary:hover{color:var(--tp-navy)}
.tp-min-body{padding:4px 6px 16px}

/* v2.4 — weekly to-do checklist */
.tp-todo{border-left:4px solid var(--tp-accent)}
.tp-todo-row{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:11px 0;border-bottom:1px solid #f1f5f9}
.tp-todo-row:last-of-type{border-bottom:0}
.tp-todo-label{font-weight:700;font-size:15px;color:var(--tp-navy);flex:1;min-width:180px}
.tp-done-pill{background:#ecfdf5;color:#065f46;font-size:13px;padding:6px 14px}
.tp-notdone-pill{background:#dc2626;color:#fff;font-size:13px;padding:6px 14px;font-weight:900;letter-spacing:.5px;
  animation:tp-scream 1.1s ease-in-out infinite}
@keyframes tp-scream{
  0%,100%{opacity:1;transform:scale(1);box-shadow:0 0 0 0 rgba(220,38,38,.55)}
  50%{opacity:.85;transform:scale(1.05);box-shadow:0 0 0 7px rgba(220,38,38,0)}
}
@media (prefers-reduced-motion: reduce){.tp-notdone-pill{animation:none}}

/* ============================================================
   v2.6 — App shell: full page, bottom nav, playful
   ============================================================ */
.sgc-app-body{margin:0;padding:0;background:#eef1f8;min-height:100vh}
.sgc-app{font-family:'Nunito','DM Sans',Arial,sans-serif;max-width:760px;margin:0 auto;padding:0}
.sgc-app-body .sgc-app{padding:0 0 96px}
.sgc-app .tp-shell{border:0;border-radius:0;box-shadow:none;background:transparent;overflow:visible}
.sgc-app .tp-head{position:sticky;top:0;z-index:40;border-radius:0 0 22px 22px;box-shadow:0 10px 30px rgba(7,20,38,.25);padding:16px 18px}
.sgc-app .tp-content{padding:2px 0 8px}
.sgc-app .tp-card,.sgc-app .tp-hero,.sgc-app .tp-stats,.sgc-app .tp-flash{margin-left:14px;margin-right:14px}
.sgc-app .tp-card{border-radius:20px;border:0;box-shadow:0 6px 24px rgba(15,23,42,.07)}
.sgc-app .tp-hero-card{border-radius:20px}
.sgc-app .tp-btn{transition:transform .12s ease}
.sgc-app .tp-btn:active{transform:scale(.94)}
.sgc-app .tp-tabs{display:none}
.sgc-app .tp-gate{margin:8vh 16px 0;border-radius:26px}

/* Bottom nav — floating pill */
.tp-appnav{position:fixed;left:50%;transform:translateX(-50%);bottom:calc(12px + env(safe-area-inset-bottom));z-index:60;
  display:flex;gap:2px;background:#0b1e38;border-radius:999px;padding:7px 9px;width:min(94%,560px);
  box-shadow:0 14px 40px rgba(7,20,38,.4);justify-content:space-around}
.tp-appnav-item{flex:1;display:flex;flex-direction:column;align-items:center;gap:2px;text-decoration:none;color:#8ea3c2;
  font-size:11px;font-weight:800;padding:7px 2px;border-radius:16px;transition:all .15s ease}
.tp-appnav-ico{font-size:19px;line-height:1}
.tp-appnav-item.on{color:#fff;background:rgba(212,175,55,.22);transform:translateY(-2px)}
.tp-appnav-item:active{transform:scale(.92)}

/* More sheet */
.tp-overlay{position:fixed;inset:0;background:rgba(7,20,38,.5);z-index:70;opacity:0;pointer-events:none;transition:opacity .2s}
.tp-overlay.open{opacity:1;pointer-events:auto}
.tp-moresheet{position:fixed;left:0;right:0;bottom:0;z-index:80;background:#fff;border-radius:26px 26px 0 0;
  padding:10px 18px calc(22px + env(safe-area-inset-bottom));transform:translateY(105%);transition:transform .25s cubic-bezier(.34,1.4,.64,1);
  box-shadow:0 -14px 50px rgba(7,20,38,.3);max-width:560px;margin:0 auto}
.tp-moresheet.open{transform:translateY(0)}
.tp-moresheet-grab{width:44px;height:5px;border-radius:99px;background:#e2e8f0;margin:6px auto 14px}
.tp-moresheet form{margin:0}
.tp-moresheet-item{display:flex;align-items:center;gap:12px;width:100%;text-align:left;padding:14px 12px;border:0;background:none;
  border-radius:14px;font:800 16px 'Nunito',Arial,sans-serif;color:#0f172a;text-decoration:none;cursor:pointer}
.tp-moresheet-item span{font-size:20px}
.tp-moresheet-item:hover,.tp-moresheet-item.on{background:#f1f5f9}
.tp-moresheet-out{color:#dc2626}

/* Minister chips */
.tp-minister-chip{background:#fffdf5;border-color:var(--tp-accent);color:#7c5c10;font-weight:800}

/* Print: hide app chrome */
@media print{.tp-appnav,.tp-moresheet,.tp-overlay,.tp-head{display:none!important}}

/* v2.7.1 — tithe blessing moment */
.tp-blessing{background:linear-gradient(135deg,#fffbeb,#fef3c7);border:2px solid var(--tp-accent)!important;text-align:center;
  animation:tp-bless-pop .5s cubic-bezier(.34,1.56,.64,1)}
.tp-blessing h3{color:#92400e;font-size:22px;margin:6px 0 10px}
.tp-blessing-emoji{font-size:34px;line-height:1}
.tp-blessing-verse{font-size:16px;line-height:1.75;font-style:italic;color:#78350f;margin:0 0 8px}
.tp-blessing-ref{font-weight:900;color:#b45309;margin:0;letter-spacing:.5px}
@keyframes tp-bless-pop{0%{transform:scale(.85);opacity:0}100%{transform:scale(1);opacity:1}}
@media (prefers-reduced-motion: reduce){.tp-blessing{animation:none}}
