/* Great Hope Nepali Church CRM — app theme (self-contained) */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&display=swap');

:root{
  --gh-primary:#3557f0; --gh-primary-2:#5a86ff; --gh-navy:#141b45; --gh-navy-2:#1d2660;
  --gh-bg:#dfe2f0; --gh-surface:#fff; --gh-ink:#151b34; --gh-muted:#8b91ab;
  --gh-chip:#f3f5fb; --gh-soft:#e9eefe; --gh-line:#eef0f7;
  --gh-radius:22px; --gh-shadow:0 14px 34px -20px rgba(30,40,100,.32);
}
*{box-sizing:border-box}
body{
  margin:0;font-family:'Inter',system-ui,-apple-system,sans-serif;color:var(--gh-ink);
  background:radial-gradient(1100px 640px at 82% -12%,#eef0fb 0%,transparent 55%),
             linear-gradient(160deg,#e4e7f4 0%,#dcdfef 60%,#d9ddee 100%);
  background-attachment:fixed;-webkit-font-smoothing:antialiased;min-height:100vh;
}
a{color:var(--gh-primary);text-decoration:none}
h2{font-size:1.5rem;font-weight:800;letter-spacing:-.02em;margin:0}
h3{margin:0}

/* ---------- shell ---------- */
.shell{display:flex;gap:18px;padding:18px;max-width:1300px;margin:0 auto}
.side{width:238px;flex:none;background:var(--gh-surface);border-radius:24px;box-shadow:var(--gh-shadow);padding:16px 12px;height:calc(100vh - 36px);position:sticky;top:18px}
.brand{display:flex;align-items:center;gap:10px;padding:8px 10px 16px}
.brand .mark{width:32px;height:32px;border-radius:10px;background:linear-gradient(150deg,var(--gh-primary),#7aa2ff);color:#fff;display:grid;place-items:center;font-size:16px;box-shadow:0 6px 14px -6px rgba(53,87,240,.6);flex:none}
.brand-text{font-weight:800;font-size:14.5px;letter-spacing:-.01em;line-height:1.15}
.side-nav{display:flex;flex-direction:column;gap:3px}
.nav-link{display:flex;align-items:center;gap:12px;padding:11px 13px;border-radius:13px;color:#5b6178;font-weight:500;font-size:13.5px;transition:.16s}
.nav-link:hover{background:var(--gh-chip);color:var(--gh-ink)}
.nav-link.active{background:var(--gh-navy);color:#fff;box-shadow:0 8px 18px -10px rgba(20,27,69,.8)}
.nav-link .ni{width:20px;height:20px;flex:none}
.nav-link .ni svg{width:20px;height:20px}

.main{flex:1;min-width:0;display:flex;flex-direction:column;gap:18px}
.topbar{display:flex;align-items:center;justify-content:space-between;background:var(--gh-surface);border-radius:20px;box-shadow:var(--gh-shadow);padding:12px 18px}
.topbar .pt{font-weight:700;font-size:15px}
.topbar .tools{display:flex;align-items:center;gap:8px}
.chip-btn{width:38px;height:38px;border-radius:12px;background:var(--gh-chip);display:grid;place-items:center;color:#5b6178;transition:.16s}
.chip-btn:hover{background:#e7eaf5;color:var(--gh-ink)}
.chip-btn svg{width:18px;height:18px}
.me{width:38px;height:38px;border-radius:12px;background:linear-gradient(150deg,#ffd27a,#ff9e6d);color:#fff;display:grid;place-items:center;font-weight:700;font-size:13px}
.content{display:flex;flex-direction:column;gap:16px;padding-bottom:30px}

.menu-toggle{display:none;position:fixed;top:16px;left:16px;z-index:40;width:42px;height:42px;border:none;border-radius:12px;background:var(--gh-navy);color:#fff;font-size:18px;box-shadow:var(--gh-shadow)}

/* ---------- generic components ---------- */
.card{background:var(--gh-surface);border-radius:var(--gh-radius);box-shadow:var(--gh-shadow);padding:20px}
.card-h{font-size:14px;font-weight:700;margin-bottom:12px}
.page-head{display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap}
.hd-actions{display:flex;gap:8px}
.count-pill{font-size:12px;font-weight:600;color:var(--gh-primary);background:var(--gh-soft);padding:3px 10px;border-radius:20px;vertical-align:middle;margin-left:6px}
.muted{color:var(--gh-muted)}

.btn{display:inline-flex;align-items:center;gap:6px;border:none;border-radius:12px;padding:10px 16px;font-weight:600;font-size:13.5px;cursor:pointer;font-family:inherit;transition:.16s;text-decoration:none}
.btn-primary{background:linear-gradient(90deg,var(--gh-primary),var(--gh-primary-2));color:#fff;box-shadow:0 10px 22px -12px rgba(53,87,240,.8)}
.btn-primary:hover{filter:brightness(1.04)}
.btn-ghost{background:var(--gh-chip);color:#48506e}
.btn-ghost:hover{background:#e7eaf5}
.btn-sm{padding:7px 12px;font-size:12.5px}
.btn-block{width:100%;justify-content:center;margin-top:8px}

.searchbar{display:flex;gap:10px}
.searchbar input{flex:1}
input,select,textarea{width:100%;padding:11px 13px;border:1px solid #e3e7f2;border-radius:12px;background:#fbfcff;font-size:14px;font-family:inherit;color:var(--gh-ink)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--gh-primary);box-shadow:0 0 0 3px rgba(53,87,240,.14)}
label{display:block;font-size:12.5px;font-weight:600;color:#48506e;margin:0 0 5px}
.form-card{display:flex;flex-direction:column;gap:14px}
.form-card.compact{gap:12px}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:14px}
.grid4{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.grid5{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.check{display:flex;align-items:center;gap:8px;font-weight:600;color:#48506e}
.check input{width:auto}
.form-actions{display:flex;gap:10px;margin-top:6px}

/* tables */
.table-card{padding:6px 6px}
.table{width:100%;border-collapse:collapse}
.table th{text-align:left;font-size:11.5px;font-weight:600;color:var(--gh-muted);padding:14px 14px;border-bottom:1px solid var(--gh-line)}
.table td{padding:12px 14px;border-bottom:1px solid var(--gh-line);font-size:13.5px;vertical-align:middle}
.table tbody tr:last-child td{border-bottom:none}
.table tbody tr:hover{background:var(--gh-chip)}
.ta-r,.table th.ta-r{text-align:right}
.rowlink{display:flex;align-items:center;gap:10px;color:var(--gh-ink);font-weight:600}
.mini-av{width:30px;height:30px;border-radius:9px;background:linear-gradient(150deg,#5772e6,#8aa6ff);color:#fff;display:inline-grid;place-items:center;font-size:11px;font-weight:700;flex:none}
.row-actions{display:flex;gap:6px;justify-content:flex-end;align-items:center}
.ico{width:32px;height:32px;border:none;border-radius:10px;background:var(--gh-chip);color:#5b6178;display:grid;place-items:center;cursor:pointer;font-size:14px;text-decoration:none}
.ico:hover{background:#e7eaf5}
.ico-danger:hover{background:#fde8e8;color:#c0392b}
.empty{padding:34px;text-align:center;color:var(--gh-muted)}
.mini-table{width:100%;border-collapse:collapse}
.mini-table td{padding:9px 4px;border-bottom:1px solid var(--gh-line);font-size:13px}
.mini-table td.dt{color:var(--gh-muted);white-space:nowrap}
.mini-table td.num{text-align:right;font-weight:700}
.mini-table tr:last-child td{border-bottom:none}

/* tags */
.tag{display:inline-block;font-size:11px;font-weight:600;padding:3px 9px;border-radius:20px}
.tag-blue{background:var(--gh-soft);color:var(--gh-primary)}
.tag-green{background:#e5f7ef;color:#1f9d6b}
.tag-grey{background:var(--gh-chip);color:#5b6178}

/* flash */
.flash{border-radius:14px;padding:12px 16px;font-size:13.5px;font-weight:500}
.flash-ok{background:#e5f7ef;color:#1f8f63}
.flash-err{background:#fde8e8;color:#c0392b}

/* cards grid (groups) */
.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:16px}
.group-card{display:flex;flex-direction:column;gap:8px}
.gc-top{display:flex;align-items:center;justify-content:space-between}
.gc-name{font-weight:700;font-size:15px}
.gc-meta{font-size:12.5px;color:var(--gh-muted)}
.gc-leader{font-size:12px;color:#5b6178}
.gc-actions{display:flex;align-items:center;gap:6px;margin-top:8px}
.gc-actions .btn{margin-right:auto}
.add-row{display:flex;gap:10px;align-items:center}
.add-row select{flex:1}

/* profile */
.profile-grid{display:grid;grid-template-columns:280px 1fr;gap:16px;align-items:start}
.profile-card{text-align:center}
.prof-av{width:96px;height:96px;border-radius:26px;margin:6px auto 14px;background:linear-gradient(160deg,#5772e6,#8aa6ff);color:#fff;display:grid;place-items:center;font-size:36px;font-weight:800}
.prof-name{font-size:18px;font-weight:800}
.prof-role{color:var(--gh-muted);font-size:13px;margin-top:2px}
.prof-tags{display:flex;gap:6px;justify-content:center;margin-top:12px;flex-wrap:wrap}
.deflist{display:grid;grid-template-columns:130px 1fr;gap:10px 14px;margin:0}
.deflist dt{color:var(--gh-muted);font-size:12.5px}
.deflist dd{margin:0;font-size:13.5px;font-weight:500}
.notes{font-size:13.5px;color:#48506e;line-height:1.5}

/* giving stat tiles */
.stat-row{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.stat-tile .st-l{font-size:12px;color:var(--gh-muted);font-weight:600}
.stat-tile .st-v{font-size:26px;font-weight:800;letter-spacing:-.02em;margin-top:4px}
.stat-tile .st-s{font-size:11.5px;color:var(--gh-muted);margin-top:2px}

/* attendance check grid */
.attend-tools{display:flex;gap:8px;margin-bottom:14px}
.check-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}
.check-tile{display:flex;align-items:center;gap:10px;padding:10px 12px;border:1px solid var(--gh-line);border-radius:14px;cursor:pointer;transition:.14s;font-weight:500;color:var(--gh-ink);margin:0}
.check-tile:has(input:checked){background:var(--gh-soft);border-color:var(--gh-primary)}
.check-tile input{width:auto;flex:none}
.ct-av{width:30px;height:30px;border-radius:9px;background:#c3ccec;color:#3a447f;display:grid;place-items:center;font-size:11px;font-weight:700;flex:none}
.ct-n{font-size:13px;line-height:1.2}
.ct-n small{display:block;color:var(--gh-muted);font-weight:500;font-size:11px}

/* ---------- login ---------- */
.login-page{display:grid;place-items:center;padding:24px}
.login-card{width:100%;max-width:380px;background:#fff;border-radius:26px;box-shadow:0 24px 60px -30px rgba(30,40,100,.4);padding:34px;text-align:center;margin-top:8vh}
.login-card .mark{width:44px;height:44px;border-radius:13px;background:linear-gradient(150deg,var(--gh-primary),#7aa2ff);color:#fff;display:grid;place-items:center;font-size:22px;margin:0 auto 14px}
.login-hello{font-size:12px;letter-spacing:.14em;color:var(--gh-muted);font-weight:600}
.login-card h1{font-size:20px;font-weight:800;margin:6px 0 2px}
.login-card form{text-align:left;margin-top:18px;display:flex;flex-direction:column;gap:6px}
.login-card label{margin-top:8px}

/* ============ DASHBOARD (scoped) ============ */
.gh-dash{--r:26px}
.gh-dash .gh-hero{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;margin:0 4px 4px;flex-wrap:wrap}
.gh-dash .gh-hello{font-size:11px;letter-spacing:.14em;color:var(--gh-muted);font-weight:600}
.gh-dash .gh-hero h1{font-size:30px;font-weight:800;letter-spacing:-.02em;margin:6px 0 0;line-height:1.05}
.gh-dash .gh-hero h1 span{color:var(--gh-primary)}
.gh-dash .gh-sub{color:var(--gh-muted);font-size:13.5px;margin-top:7px}
.gh-dash .gh-band{display:grid;grid-template-columns:1.55fr 1fr;gap:26px;align-items:center;margin:0 4px}
.gh-dash .gh-bars{display:flex;gap:12px}
.gh-dash .gh-bar{flex:1;min-width:0}
.gh-dash .gh-bar .l{font-size:11.5px;color:var(--gh-muted);font-weight:500;margin-bottom:8px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gh-dash .gh-track{height:34px;border-radius:11px;background:#d6dbec;overflow:hidden}
.gh-dash .gh-fill{height:100%;border-radius:11px;background:linear-gradient(90deg,#20296b,#2c3a86);display:flex;align-items:center;justify-content:flex-end;padding-right:10px;min-width:26px}
.gh-dash .gh-fill span{color:#fff;font-size:11px;font-weight:600;opacity:.92}
.gh-dash .gh-bar.hi .gh-track{background:transparent}
.gh-dash .gh-bar.hi .gh-fill{background:linear-gradient(90deg,var(--gh-primary),var(--gh-primary-2));box-shadow:0 10px 20px -10px rgba(53,87,240,.8)}
.gh-dash .gh-bar.light .gh-fill{background:#c7cee4}
.gh-dash .gh-bar.light .gh-fill span{color:#5b6178}
.gh-dash .gh-stats{display:flex;justify-content:flex-end;gap:28px;flex-wrap:wrap}
.gh-dash .gh-stat{text-align:left;color:var(--gh-ink)}
.gh-dash .gh-stat .n{font-size:30px;font-weight:800;letter-spacing:-.02em;line-height:1}
.gh-dash .gh-stat .c{display:flex;align-items:center;gap:6px;color:var(--gh-muted);font-size:12.5px;margin-top:8px;font-weight:500}
.gh-dash .gh-stat .dot{width:7px;height:7px;border-radius:50%}

.gh-dash .gh-grid{display:grid;grid-template-columns:250px 1fr 316px;gap:16px;align-items:start;margin-top:4px}
.gh-dash .gh-col{display:flex;flex-direction:column;gap:16px}
.gh-dash .gh-card{background:var(--gh-surface);border-radius:var(--r);box-shadow:var(--gh-shadow);padding:20px}
.gh-dash .gh-card h3{font-size:14.5px;font-weight:700}
.gh-dash .gh-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.gh-dash .gh-go{width:30px;height:30px;border-radius:10px;background:var(--gh-chip);display:grid;place-items:center;color:#5b6178;transition:.16s}
.gh-dash .gh-go:hover{background:var(--gh-primary);color:#fff}
.gh-dash .gh-go svg{width:15px;height:15px}
.gh-dash .gh-spot{padding:16px;background:linear-gradient(160deg,#eaf0ff,#dfe7ff);position:relative;overflow:hidden}
.gh-dash .gh-eyebrow{position:absolute;top:16px;left:18px;font-size:10.5px;font-weight:700;letter-spacing:.12em;color:#6d7bb5;z-index:2}
.gh-dash .gh-photo{height:172px;border-radius:20px;margin-top:22px;background:linear-gradient(160deg,#5772e6,#8aa6ff);display:grid;place-items:center;position:relative;overflow:hidden}
.gh-dash .gh-photo .in{font-size:52px;font-weight:800;color:rgba(255,255,255,.92)}
.gh-dash .gh-photo::after{content:"";position:absolute;inset:0;background:radial-gradient(120px 120px at 70% 20%,rgba(255,255,255,.35),transparent 60%)}
.gh-dash .gh-spotname{display:flex;align-items:center;justify-content:space-between;margin-top:14px;gap:8px}
.gh-dash .gh-spotname .nm{font-weight:700;font-size:15px}
.gh-dash .gh-spotname .ro{font-size:11.5px;color:#6b73a0}
.gh-dash .gh-pill{background:linear-gradient(90deg,var(--gh-primary),var(--gh-primary-2));color:#fff;font-size:11.5px;font-weight:600;padding:7px 12px;border-radius:20px;white-space:nowrap;box-shadow:0 8px 16px -8px rgba(53,87,240,.8)}
.gh-dash .gh-menu{padding:8px}
.gh-dash .gh-mrow{display:flex;align-items:center;gap:12px;padding:13px 12px;border-radius:14px;transition:.16s;color:var(--gh-ink)}
.gh-dash .gh-mrow:hover{background:var(--gh-chip)}
.gh-dash .gh-mi{width:34px;height:34px;border-radius:11px;background:var(--gh-soft);display:grid;place-items:center;color:var(--gh-primary);flex:none}
.gh-dash .gh-mi svg{width:16px;height:16px}
.gh-dash .gh-mt{flex:1;font-size:13px;font-weight:500}
.gh-dash .gh-cnt{font-size:11px;color:var(--gh-primary);font-weight:600;background:var(--gh-soft);padding:3px 9px;border-radius:20px;white-space:nowrap}
.gh-dash .gh-center-top{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.gh-dash .gh-big{font-size:30px;font-weight:800;letter-spacing:-.02em;margin-top:2px}
.gh-dash .gh-big small{font-size:13px;font-weight:600;color:var(--gh-muted)}
.gh-dash .gh-meta{font-size:11.5px;color:var(--gh-muted);margin-top:2px}
.gh-dash .gh-chart{display:flex;align-items:flex-end;gap:10px;height:110px;margin-top:22px}
.gh-dash .gh-cbar{flex:1;height:100%;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:8px}
.gh-dash .gh-stick{width:9px;border-radius:6px;background:#dfe3f2;transition:height .6s cubic-bezier(.4,0,.2,1);min-height:6px}
.gh-dash .gh-cbar.on .gh-stick{background:linear-gradient(180deg,#3557f0,#6d8dff);box-shadow:0 8px 16px -8px rgba(53,87,240,.8)}
.gh-dash .gh-cbar .d{font-size:10.5px;color:var(--gh-muted);font-weight:500}
.gh-dash .gh-ringwrap{display:grid;place-items:center;margin:6px 0 10px;position:relative}
.gh-dash .gh-ring{transform:rotate(-90deg)}
.gh-dash .gh-ringc{position:absolute;text-align:center}
.gh-dash .gh-ringc .rl{font-size:10.5px;color:var(--gh-muted);font-weight:600;letter-spacing:.04em}
.gh-dash .gh-ringc .rn{font-size:30px;font-weight:800;letter-spacing:-.02em;margin-top:2px}
.gh-dash .gh-ringc .rsub{font-size:10px;color:var(--gh-muted);margin-top:2px}
.gh-dash .gh-ctrls{display:flex;justify-content:center;gap:10px;margin-top:4px}
.gh-dash .gh-tc{width:42px;height:42px;border-radius:14px;display:grid;place-items:center;transition:.16s}
.gh-dash .gh-tc.ghost{background:var(--gh-chip);color:#5b6178}
.gh-dash .gh-tc.ghost:hover{background:#e7eaf5}
.gh-dash .gh-tc.solid{background:linear-gradient(150deg,var(--gh-primary),var(--gh-primary-2));color:#fff;box-shadow:0 10px 20px -10px rgba(53,87,240,.9)}
.gh-dash .gh-tc svg{width:16px;height:16px}
.gh-dash .gh-shead{display:flex;align-items:center;justify-content:space-between;margin-bottom:14px}
.gh-dash .gh-shead .m{font-size:14.5px;font-weight:700}
.gh-dash .gh-seg{display:flex;gap:6px;margin-bottom:14px}
.gh-dash .gh-seg .s{height:12px;border-radius:8px}
.gh-dash .gh-seg .s1{flex:.42;background:linear-gradient(90deg,var(--gh-primary),var(--gh-primary-2))}
.gh-dash .gh-seg .s2{flex:.25;background:var(--gh-navy)}
.gh-dash .gh-seg .s3{flex:.33;background:#dfe3f2}
.gh-dash .gh-leg{display:flex;justify-content:space-between;font-size:11px;color:var(--gh-muted)}
.gh-dash .gh-leg b{color:var(--gh-ink);display:block;font-size:13px;margin-top:2px}
.gh-dash .gh-dtask{display:flex;gap:8px;margin-top:14px}
.gh-dash .gh-dt{flex:1;background:var(--gh-chip);border-radius:14px;padding:11px;text-align:center}
.gh-dash .gh-dt .dv{font-size:16px;font-weight:800}
.gh-dash .gh-dt .dl{font-size:10px;color:var(--gh-muted);margin-top:2px}
.gh-dash .gh-tasks{background:linear-gradient(165deg,var(--gh-navy),var(--gh-navy-2));color:#fff}
.gh-dash .gh-tasks h3{color:#fff}
.gh-dash .gh-badge{background:rgba(255,255,255,.14);color:#fff;font-size:12px;font-weight:700;padding:6px 12px;border-radius:20px}
.gh-dash .gh-task{display:flex;align-items:center;gap:12px;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.06);border-radius:15px;padding:12px;margin-top:10px}
.gh-dash .gh-ti{width:34px;height:34px;border-radius:11px;background:rgba(255,255,255,.12);display:grid;place-items:center;color:#cfe0ff;flex:none}
.gh-dash .gh-ti svg{width:16px;height:16px}
.gh-dash .gh-tx{flex:1;min-width:0}
.gh-dash .gh-tn{font-size:12.5px;font-weight:600;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.gh-dash .gh-td{font-size:10.5px;color:rgba(255,255,255,.55);margin-top:2px}

/* ---------- responsive ---------- */
@media(max-width:1180px){
  .gh-dash .gh-grid{grid-template-columns:1fr}
  .gh-dash .gh-band{grid-template-columns:1fr;gap:16px}
  .gh-dash .gh-stats{justify-content:flex-start}
  .gh-dash .gh-center-top{grid-template-columns:1fr}
  .profile-grid{grid-template-columns:1fr}
}
@media(max-width:860px){
  .menu-toggle{display:grid}
  .shell{padding:12px}
  .side{position:fixed;left:-260px;top:0;height:100vh;border-radius:0 22px 22px 0;z-index:50;transition:left .22s;padding-top:64px}
  body.nav-open .side{left:0}
  .grid3,.grid4,.grid5,.grid2,.stat-row{grid-template-columns:1fr 1fr}
}
@media(max-width:560px){
  .gh-dash .gh-bars{flex-wrap:wrap}.gh-dash .gh-bar{flex:1 1 42%}
  .gh-dash .gh-hero h1{font-size:24px}
  .grid3,.grid4,.grid5,.grid2,.stat-row{grid-template-columns:1fr}
  .table th:nth-child(3),.table td:nth-child(3){display:none}
  .topbar .pt{display:none}
}

/* ===== v2 modules: nav sep, tabs, calendar, finance, reports ===== */
.nav-sep{height:1px;background:var(--gh-line);margin:8px 10px}

.seg-tabs{display:inline-flex;gap:4px;background:var(--gh-chip);padding:4px;border-radius:12px}
.seg-tab{padding:7px 16px;border-radius:9px;font-size:13px;font-weight:600;color:#5b6178}
.seg-tab.on{background:#fff;color:var(--gh-primary);box-shadow:0 4px 10px -6px rgba(30,40,100,.3)}

/* calendar */
.cal-card{padding:14px}
.cal-dow{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;margin-bottom:8px}
.cal-dow span{font-size:11px;font-weight:600;color:var(--gh-muted);text-align:center}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}
.cal-cell{min-height:96px;border:1px solid var(--gh-line);border-radius:12px;padding:8px;background:#fbfcff}
.cal-cell.empty{background:transparent;border:none}
.cal-cell.today{border-color:var(--gh-primary);box-shadow:0 0 0 2px rgba(53,87,240,.14)}
.cal-d{font-size:12px;font-weight:700;color:#48506e;margin-bottom:6px}
.cal-cell.today .cal-d{color:var(--gh-primary)}
.cal-ev{display:block;font-size:10.5px;line-height:1.3;padding:3px 6px;border-radius:7px;margin-bottom:4px;background:var(--gh-soft);color:var(--gh-primary);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.cal-ev.t-meeting{background:#fff2e6;color:#c9720f}
.cal-ev.t-program{background:#e9f7ef;color:#1f9d6b}
.cal-ev.t-outreach{background:#fdeaf3;color:#c0398a}
.cal-ev.t-fellowship{background:#eef0ff;color:#4759d6}

/* finance fund rows */
.fund-row{display:flex;align-items:center;gap:14px;padding:9px 0;border-bottom:1px solid var(--gh-line)}
.fund-row:last-child{border-bottom:none}
.fund-name{width:180px;font-size:13.5px;font-weight:600;flex:none}
.fund-bar{flex:1;height:12px;border-radius:8px;background:#eef0f7;overflow:hidden}
.fund-fill{height:100%;border-radius:8px;background:linear-gradient(90deg,var(--gh-primary),var(--gh-primary-2))}
.fund-amt{width:110px;text-align:right;font-weight:700;font-size:13.5px;flex:none}

/* reports */
.rep-head{font-size:14px;font-weight:700;margin-bottom:14px}
.rep-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.export-row{display:flex;flex-wrap:wrap;gap:10px}
.bar-chart{display:flex;align-items:flex-end;gap:8px;height:160px;padding-top:10px}
.bc-col{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;height:100%;gap:6px}
.bc-val{font-size:10px;color:var(--gh-muted);font-weight:600}
.bc-bar{width:70%;max-width:34px;border-radius:7px 7px 0 0;background:#dfe3f2;min-height:6px}
.bc-bar.blue{background:linear-gradient(180deg,var(--gh-primary),var(--gh-primary-2))}
.bc-lbl{font-size:10px;color:var(--gh-muted)}

/* viewer read-only: hide obvious write controls (server also enforces) */
body.role-viewer .page-head .btn-primary,
body.role-viewer .row-actions,
body.role-viewer .add-row,
body.role-viewer .attend-tools{display:none}

@media(max-width:1180px){.rep-grid{grid-template-columns:1fr}}
@media(max-width:720px){
  .cal-cell{min-height:70px;padding:5px}
  .cal-ev{font-size:9px}
  .fund-name{width:120px}
}

/* ===== v3: nested nav, admin lists, directory, kiosk, get-started ===== */
.side{overflow-y:auto}
.side-nav{padding-bottom:20px}
.nav-group{margin:1px 0}
.nav-sum{display:flex;align-items:center;gap:12px;padding:11px 13px;border-radius:13px;color:#5b6178;font-weight:500;font-size:13.5px;cursor:pointer;list-style:none;user-select:none}
.nav-sum::-webkit-details-marker{display:none}
.nav-sum:hover{background:var(--gh-chip);color:var(--gh-ink)}
.nav-sum .ni{width:20px;height:20px;flex:none}.nav-sum .ni svg{width:20px;height:20px}
.nav-sum .chev{margin-left:auto;transition:transform .18s;color:#b8bed2;font-size:15px}
.nav-group[open] > .nav-sum{color:var(--gh-ink);font-weight:600}
.nav-group[open] > .nav-sum .chev{transform:rotate(90deg)}
.nav-sub{padding:2px 0 6px 16px;margin-left:19px;border-left:1.5px solid var(--gh-line)}
.nav-leaf{display:block;padding:8px 12px;border-radius:10px;color:#6b7290;font-size:12.7px;font-weight:500}
.nav-leaf:hover{background:var(--gh-chip);color:var(--gh-ink)}
.nav-leaf.active{background:var(--gh-navy);color:#fff}
.nav-admin-h{font-size:10px;letter-spacing:.1em;color:#aab0c6;font-weight:700;margin:8px 0 3px 12px;text-transform:uppercase}

/* admin managed lists */
.admin-lists{display:flex;flex-wrap:wrap;gap:6px;margin:6px 0 2px}
.pill-tab{padding:7px 13px;border-radius:20px;background:var(--gh-chip);color:#5b6178;font-size:12.5px;font-weight:600}
.pill-tab.on{background:var(--gh-navy);color:#fff}

/* photo directory */
.dir-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:14px}
.dir-card{background:var(--gh-surface);border-radius:18px;box-shadow:var(--gh-shadow);padding:18px 14px;text-align:center;display:flex;flex-direction:column;align-items:center;gap:6px;color:var(--gh-ink)}
.dir-av{width:66px;height:66px;border-radius:20px;background:linear-gradient(160deg,#5772e6,#8aa6ff);color:#fff;display:grid;place-items:center;font-size:24px;font-weight:800}
.dir-n{font-weight:700;font-size:13.5px}
.dir-r{font-size:11.5px;color:var(--gh-muted)}

/* admin dashboard links */
.admin-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:10px}
.admin-link{display:flex;justify-content:space-between;align-items:center;padding:14px 16px;border:1px solid var(--gh-line);border-radius:13px;font-weight:600;font-size:13.5px;color:var(--gh-ink)}
.admin-link:hover{border-color:var(--gh-primary);background:var(--gh-soft)}
.admin-link span{color:var(--gh-primary)}

/* get started */
.gs-list{display:flex;flex-direction:column;gap:8px;margin-top:16px}
.gs-item{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1px solid var(--gh-line);border-radius:14px;color:var(--gh-ink)}
.gs-item:hover{border-color:var(--gh-primary)}
.gs-check{width:26px;height:26px;border-radius:50%;border:2px solid #d6dbec;display:grid;place-items:center;color:#fff;font-size:14px;flex:none}
.gs-item.done .gs-check{background:#2fbf87;border-color:#2fbf87}
.gs-tx{flex:1}.gs-t{display:block;font-weight:600;font-size:14px}.gs-d{display:block;font-size:12px;color:var(--gh-muted)}
.gs-go{color:var(--gh-muted)}
.gs-item.done .gs-t{color:var(--gh-muted);text-decoration:line-through}

/* kiosk */
body.kiosk{background:linear-gradient(160deg,#1a2350,#0f1636);min-height:100vh;padding:24px}
.kiosk-top{display:flex;justify-content:space-between;align-items:center;max-width:1100px;margin:0 auto 10px}
.kiosk-church{color:#fff;font-weight:800;font-size:20px}
.kiosk-ev{color:#aab6e6;font-size:13px}
.kiosk-hint{text-align:center;color:#cdd6f5;font-size:15px;margin:14px 0 18px}
.kiosk-ok{max-width:1100px;margin:10px auto 0;background:#2fbf87;color:#fff;text-align:center;padding:14px;border-radius:14px;font-weight:700}
.kiosk-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(180px,1fr));gap:14px;max-width:1100px;margin:0 auto}
.kiosk-tile{width:100%;padding:26px 14px;border:none;border-radius:18px;background:#fff;color:#151b34;font-size:17px;font-weight:700;cursor:pointer;box-shadow:0 14px 30px -18px rgba(0,0,0,.5);transition:.14s}
.kiosk-tile:hover{transform:translateY(-2px);background:#eef2ff}

@media(max-width:1180px){.admin-grid{grid-template-columns:1fr 1fr}}
