@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Fraunces:opsz,wght@9..144,600;9..144,700&display=swap');
:root{--forest:#173d33;--forest-2:#245849;--mint:#e8f4ee;--gold:#d7a83c;--cream:#f7f5ef;--ink:#1e2925;--muted:#72807a;--line:#e2e7e3;--white:#fff;--coral:#c96857;--blue:#4d7893;--purple:#786b9f;--shadow:0 10px 32px rgba(23,61,51,.07)}
*{box-sizing:border-box}html{font-family:'DM Sans',sans-serif;color:var(--ink);background:var(--cream)}body{margin:0}.sidebar{position:fixed;inset:0 auto 0 0;width:248px;background:var(--forest);color:#fff;padding:26px 18px;display:flex;flex-direction:column;z-index:5}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:#fff;padding:0 8px}.brand-mark{width:46px;height:46px;border:1px solid rgba(255,255,255,.35);border-radius:50%;display:grid;place-items:center;font-family:'Fraunces',serif;font-size:15px;letter-spacing:1px;background:rgba(255,255,255,.08)}.brand strong,.brand small{display:block}.brand strong{font-family:'Fraunces',serif;font-size:19px}.brand small{font-size:11px;opacity:.65;margin-top:2px}.sidebar nav{margin-top:44px;display:grid;gap:7px}.sidebar nav a{color:rgba(255,255,255,.74);text-decoration:none;padding:12px 14px;border-radius:9px;font-weight:600;font-size:14px;display:flex;gap:13px;align-items:center}.sidebar nav a span{font-size:18px;width:20px;text-align:center}.sidebar nav a:hover,.sidebar nav a.active{color:#fff;background:rgba(255,255,255,.1)}.sidebar nav a.active{box-shadow:inset 3px 0 var(--gold)}.sidebar-foot{margin-top:auto;border-top:1px solid rgba(255,255,255,.12);padding:18px 7px 0;display:flex;align-items:center;gap:9px}.sidebar-foot strong,.sidebar-foot small{display:block;font-size:12px}.sidebar-foot small{opacity:.58;margin-top:2px}.sidebar-foot>a{margin-left:auto;color:#fff;text-decoration:none}.main{margin-left:248px;padding:32px 38px 56px;max-width:1600px}.topbar{display:flex;align-items:flex-start;justify-content:space-between;margin-bottom:28px}.topbar h1{font-family:'Fraunces',serif;font-size:34px;line-height:1;margin:0 0 7px;color:var(--forest)}.topbar p,.muted{color:var(--muted);margin:0;font-size:14px}.today{background:#fff;border:1px solid var(--line);padding:9px 14px;border-radius:30px;font-size:13px;color:var(--forest)}.menu-button{display:none}.stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-bottom:20px}.stat-grid.compact{grid-template-columns:repeat(2,1fr);max-width:650px}.stat-card{background:#fff;border:1px solid var(--line);border-radius:14px;padding:21px;display:flex;gap:15px;box-shadow:var(--shadow)}.stat-icon{width:42px;height:42px;display:grid;place-items:center;border-radius:10px;background:var(--mint);color:var(--forest);font-size:20px}.stat-card.blue .stat-icon{background:#e9f1f5;color:var(--blue)}.stat-card.gold .stat-icon{background:#fbf2db;color:#a97816}.stat-card.purple .stat-icon{background:#efedf7;color:var(--purple)}.stat-card.coral .stat-icon{background:#f9ebe7;color:var(--coral)}.stat-card small,.stat-card strong,.stat-card em{display:block}.stat-card small{font-size:10px;letter-spacing:.08em;color:var(--muted);font-weight:700}.stat-card strong{font-family:'Fraunces',serif;font-size:29px;color:var(--forest);line-height:1.1;margin:3px 0}.stat-card em{font-size:11px;color:var(--muted);font-style:normal}.card{background:#fff;border:1px solid var(--line);border-radius:14px;box-shadow:var(--shadow);padding:22px}.dashboard-grid,.reports-grid{display:grid;grid-template-columns:2fr 1fr;gap:20px;margin-bottom:20px}.reports-grid{grid-template-columns:repeat(2,1fr)}.span-2{grid-column:span 1}.reports-grid .span-2{grid-column:span 2}.card-head{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:20px}.card h2{font-family:'Fraunces',serif;color:var(--forest);font-size:19px;margin:0}.card-head p{font-size:12px;color:var(--muted);margin:4px 0 0}.button{border:0;border-radius:8px;padding:10px 15px;font:600 13px 'DM Sans';cursor:pointer;text-decoration:none;display:inline-flex;align-items:center;justify-content:center}.button.primary{background:var(--forest);color:#fff}.button.primary:hover{background:var(--forest-2)}.button.ghost{background:#fff;color:var(--forest);border:1px solid var(--line)}.button.wide{width:100%;padding:13px}.text-link{font-size:12px;color:var(--forest-2);font-weight:700;text-decoration:none}.table-wrap{overflow:auto}table{width:100%;border-collapse:collapse;font-size:13px}th{text-align:left;color:var(--muted);font-size:10px;text-transform:uppercase;letter-spacing:.08em;padding:10px 12px;border-bottom:1px solid var(--line)}td{padding:13px 12px;border-bottom:1px solid #edf0ee;vertical-align:middle}tr:last-child td{border:0}.person{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink)}.person strong,.person small{display:block}.person small,.block{font-size:11px;color:var(--muted);margin-top:2px}.avatar{width:36px;height:36px;flex:0 0 36px;border-radius:50%;display:grid;place-items:center;background:var(--mint);color:var(--forest);font-weight:700;font-size:11px}.avatar.small{width:31px;height:31px;flex-basis:31px;background:rgba(255,255,255,.12);color:#fff}.avatar.xl{width:76px;height:76px;flex-basis:76px;font-size:21px}.avatar.coral{background:#f9ebe7;color:var(--coral)}.badge{display:inline-block;font-size:10px;font-weight:700;border-radius:20px;padding:5px 8px;background:#edf0ee}.badge.green{background:var(--mint);color:var(--forest-2)}.empty{color:var(--muted);padding:24px;text-align:center}.birthday-list{display:grid}.birthday-list a{display:flex;align-items:center;gap:11px;padding:9px 0;text-decoration:none;color:var(--ink);border-bottom:1px solid #edf0ee}.birthday-list a:last-child{border:0}.birthday-list strong,.birthday-list small{display:block;font-size:12px}.birthday-list small{color:var(--muted);margin-top:2px}.quick{display:flex;align-items:center;gap:14px}.quick>div{margin-right:auto}.quick p{margin:4px 0 0;font-size:12px;color:var(--muted)}.quick>a{border:1px solid var(--line);padding:11px 15px;border-radius:9px;text-decoration:none;color:var(--ink);font-weight:600;font-size:12px}.quick>a span{color:var(--gold);font-size:16px;margin-right:5px}.toolbar{display:flex;justify-content:space-between;align-items:center;margin-bottom:18px;gap:15px}.filters{display:flex;gap:9px;flex:1}.filters .search{max-width:340px;flex:1}input,select,textarea{width:100%;border:1px solid #d7dfda;background:#fff;border-radius:8px;padding:10px 11px;font:400 13px 'DM Sans';color:var(--ink);outline:none}input:focus,select:focus,textarea:focus{border-color:var(--forest-2);box-shadow:0 0 0 3px rgba(36,88,73,.1)}label{display:grid;gap:6px;font-size:12px;font-weight:600;color:#405048}label small{font-weight:400;color:var(--muted)}textarea{resize:vertical}.form-layout{display:grid;gap:18px;max-width:1050px}.form-card{padding:26px}.section-title{display:flex;gap:13px;align-items:center;margin-bottom:25px}.section-title>span{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;background:var(--mint);color:var(--forest);font-weight:700}.section-title p{margin:3px 0 0;color:var(--muted);font-size:12px}.form-grid{display:grid;gap:18px}.form-grid.three{grid-template-columns:repeat(3,1fr)}.form-grid.two{grid-template-columns:repeat(2,1fr)}.form-grid .full{grid-column:1/-1}.checkbox{display:flex;flex-direction:row;align-items:center}.checkbox input{width:17px;height:17px}.form-actions{display:flex;justify-content:flex-end;gap:10px}.alert{padding:12px 15px;border-radius:8px;font-size:13px;margin-bottom:18px}.alert.success{background:#e1f2e9;color:#205640}.alert.error{background:#fae8e4;color:#8c382b}.profile-head{display:flex;align-items:center;gap:18px;margin-bottom:20px}.profile-head h2{font-size:27px;margin-top:7px}.profile-head p{color:var(--muted);margin:5px 0}.profile-head>a{margin-left:auto}.profile-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.details{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin:0}.details div.full{grid-column:1/-1}.details dt{font-size:10px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;margin-bottom:4px}.details dd{font-size:13px;margin:0}.timeline{display:grid;gap:0}.timeline>div{position:relative;padding:8px 0 15px 36px;display:grid}.timeline>div:before{content:'';position:absolute;left:12px;top:30px;bottom:-2px;width:1px;background:var(--line)}.timeline>div:last-child:before{display:none}.timeline>div>span{position:absolute;left:0;top:6px;width:25px;height:25px;border-radius:50%;display:grid;place-items:center;background:#edf0ee;color:var(--muted)}.timeline>div.done>span{background:var(--forest);color:#fff}.timeline strong{font-size:12px}.timeline small{font-size:11px;color:var(--muted);margin-top:2px}.timeline.large{margin-top:20px}.training-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-bottom:20px}.training-summary article{position:relative}.training-summary article>span{font-size:10px;font-weight:700;background:var(--mint);color:var(--forest);padding:5px 7px;border-radius:5px}.training-summary strong{display:inline-block;font-family:'Fraunces',serif;font-size:28px;margin:0 5px 0 15px;color:var(--forest)}.training-summary small{font-size:10px;color:var(--muted)}.training-summary p{margin:13px 0 0;font-size:12px}.two-col{display:grid;grid-template-columns:1.15fr .85fr;gap:20px}.group-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}.group-card{display:grid;grid-template-columns:auto 1fr auto;gap:13px;align-items:center}.group-icon{width:39px;height:39px;border-radius:10px;background:var(--mint);display:grid;place-items:center;color:var(--forest)}.group-card h2{font-size:17px}.group-card p{font-size:11px;color:var(--muted);margin:3px 0}.group-count{text-align:center}.group-count strong,.group-count small{display:block}.group-count strong{font-family:'Fraunces';font-size:22px;color:var(--forest)}.group-count small{font-size:9px;color:var(--muted)}.group-location{grid-column:1/-1;border-top:1px solid var(--line);padding-top:12px;color:var(--muted);font-size:11px}dialog{border:0;padding:0;border-radius:14px;box-shadow:0 25px 80px rgba(0,0,0,.25);width:min(440px,92vw)}dialog::backdrop{background:rgba(14,31,26,.62)}.dialog-card{padding:25px;display:grid;gap:15px}.dialog-card .card-head button{border:0;background:none;font-size:25px;cursor:pointer}.report-list{display:grid}.report-list div{display:flex;justify-content:space-between;padding:12px 0;border-bottom:1px solid var(--line);font-size:13px}.report-list div:last-child{border:0}.bar-chart{height:205px;display:flex;align-items:flex-end;gap:12px;padding:25px 5px 0}.bar-chart div{height:100%;flex:1;display:flex;flex-direction:column-reverse;align-items:center;gap:8px}.bar-chart i{width:70%;min-width:18px;background:var(--forest);border-radius:5px 5px 0 0;display:flex;justify-content:center;position:relative}.bar-chart b{position:absolute;top:-19px;font-size:10px;font-style:normal}.bar-chart span{font-size:9px;color:var(--muted)}.login-page{display:grid;grid-template-columns:1.15fr .85fr;min-height:100vh;background:#fff}.login-story{background:linear-gradient(140deg,rgba(12,41,32,.94),rgba(23,61,51,.82)),url('https://images.unsplash.com/photo-1438232992991-995b7058bbb3?auto=format&fit=crop&w=1500&q=80') center/cover;display:flex;padding:55px}.story-content{display:flex;flex-direction:column;max-width:650px;color:#fff}.story-content blockquote{font:600 53px/1.08 'Fraunces',serif;margin:auto 0 0;max-width:590px}.story-content>p{color:#d9c17b;font-weight:600}.story-tags{display:flex;gap:9px;margin-top:35px;flex-wrap:wrap}.story-tags span{font-size:11px;border:1px solid rgba(255,255,255,.25);padding:7px 11px;border-radius:20px}.login-panel{display:grid;place-items:center;padding:40px}.login-card{width:min(390px,100%)}.eyebrow{font-size:10px;letter-spacing:.15em;color:var(--gold);font-weight:700}.login-card h1{font:700 34px 'Fraunces';color:var(--forest);margin:10px 0}.login-card>p{font-size:13px;line-height:1.6;color:var(--muted);margin-bottom:30px}.login-card label{margin-bottom:17px}.login-help{display:block;text-align:center;color:var(--muted);margin-top:20px}
@media(max-width:1100px){.stat-grid{grid-template-columns:repeat(2,1fr)}.group-grid{grid-template-columns:repeat(2,1fr)}.training-summary{grid-template-columns:repeat(2,1fr)}.form-grid.three{grid-template-columns:repeat(2,1fr)}}
@media(max-width:800px){.sidebar{transform:translateX(-100%);transition:.2s}.nav-open .sidebar{transform:none}.main{margin-left:0;padding:24px 18px}.menu-button{display:inline-block;border:0;background:none;font-size:20px;float:left;margin-right:10px}.dashboard-grid,.profile-grid,.two-col,.reports-grid{grid-template-columns:1fr}.reports-grid .span-2{grid-column:auto}.quick{align-items:stretch;flex-wrap:wrap}.quick>div{width:100%}.login-page{grid-template-columns:1fr}.login-story{display:none}.login-panel{min-height:100vh}.toolbar,.filters{align-items:stretch;flex-direction:column}.group-grid{grid-template-columns:1fr}}
@media(max-width:520px){.stat-grid,.stat-grid.compact,.training-summary,.form-grid.two,.form-grid.three{grid-template-columns:1fr}.topbar .today{display:none}.details{grid-template-columns:1fr}.details div.full{grid-column:auto}.profile-head{align-items:flex-start;flex-wrap:wrap}.profile-head>a{margin-left:0;width:100%}}

/* Clear, accessible logout control */
.sidebar-foot{display:grid;align-items:initial;gap:13px}
.user-summary{display:flex;align-items:center;gap:9px}
.sidebar-foot .logout-link{margin-left:0;display:flex;align-items:center;justify-content:center;gap:8px;color:#fff;text-decoration:none;font-size:12px;font-weight:700;padding:10px 12px;border:1px solid rgba(255,255,255,.18);border-radius:8px;background:rgba(255,255,255,.06)}
.sidebar-foot .logout-link:hover{background:rgba(255,255,255,.13);border-color:rgba(255,255,255,.28)}

/* Member photo capture and upload */
.photo-upload{display:flex;align-items:center;gap:18px;padding:16px;margin:0 0 22px;border:1px dashed #c8d4cd;border-radius:12px;background:#fafcfb}
.photo-upload>div:last-child{flex:1}.photo-upload p{font-size:11px;color:var(--muted);margin:7px 0 10px}.photo-preview,.profile-photo{width:88px;height:88px;flex:0 0 88px;border-radius:50%;object-fit:cover;border:3px solid #fff;box-shadow:0 0 0 1px var(--line)}
.photo-preview{display:grid;place-items:center;overflow:hidden;background:var(--mint);color:var(--forest);font:700 24px 'Fraunces',serif}.photo-preview img{width:100%;height:100%;object-fit:cover}.profile-photo{width:76px;height:76px;flex-basis:76px}
@media(max-width:520px){.photo-upload{align-items:flex-start}.photo-preview{width:70px;height:70px;flex-basis:70px}}

/* Monthly celebrations and member directory controls */
.celebrations-stack{display:grid;gap:20px}.compact-list a{padding:7px 0}.compact-list .empty{padding:14px}.avatar.photo-avatar{object-fit:cover;padding:0;border:0}.gold-avatar{background:#fbf2db;color:#a97816}.section-heading{display:flex;justify-content:space-between;align-items:end;margin:2px 0 15px}.section-heading h2{font:700 25px 'Fraunces',serif;color:var(--forest);margin:0}.section-heading p{font-size:12px;color:var(--muted);margin:4px 0 0}.celebration-report{margin-bottom:20px;scroll-margin-top:20px}.celebration-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:20px}.celebration-list{display:grid}.celebration-list a{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:11px;padding:10px 0;border-bottom:1px solid #edf0ee;text-decoration:none;color:var(--ink)}.celebration-list a:last-child{border:0}.celebration-list strong,.celebration-list small{display:block;font-size:12px}.celebration-list small{color:var(--muted);margin-top:2px}.celebration-list b{width:31px;height:31px;border-radius:8px;display:grid;place-items:center;background:var(--cream);color:var(--forest);font-size:12px}.members-toolbar{align-items:flex-start}.members-toolbar .filters{flex-wrap:wrap}.search-box{display:flex;gap:8px;flex:1 1 390px}.search-box .search{max-width:none}.members-toolbar select{width:auto;min-width:145px}
@media(max-width:900px){.celebration-grid{grid-template-columns:1fr}.members-toolbar{align-items:stretch;flex-direction:column}.members-toolbar>a{align-self:flex-start}}
@media(max-width:800px){.celebrations-stack{grid-column:1}.search-box{flex-basis:auto;width:100%}.members-toolbar select{width:100%}}
@media(max-width:520px){.search-box{display:grid}.members-toolbar>a{width:100%}}
.photo-status{display:block;min-height:16px;color:var(--forest-2);font-size:11px;font-weight:600;margin-bottom:8px}
.photo-status.error{color:#a4372a}

/* Attendance module, dashboard, and reporting */
.attendance-stats{grid-template-columns:repeat(3,1fr);max-width:none}.attendance-layout{display:grid;grid-template-columns:1.35fr .65fr;gap:20px;margin-bottom:20px}.attendance-recent{display:flex;flex-direction:column}.attendance-total{text-align:center;padding:12px 0 24px}.attendance-total strong{display:block;font:700 58px/1 'Fraunces',serif;color:var(--forest)}.attendance-total span{font-size:12px;color:var(--muted)}.attendance-breakdown{display:grid;grid-template-columns:repeat(2,1fr);gap:10px}.attendance-breakdown div{background:var(--cream);border-radius:9px;padding:13px;text-align:center}.attendance-breakdown strong,.attendance-breakdown small{display:block}.attendance-breakdown strong{font:700 21px 'Fraunces',serif;color:var(--forest)}.attendance-breakdown small{font-size:10px;color:var(--muted)}.attendance-pill{display:inline-grid;place-items:center;min-width:38px;padding:6px 9px;border-radius:20px;background:var(--forest);color:#fff;font-weight:700}.attendance-dashboard,.attendance-report{margin-bottom:20px}.attendance-overview{display:grid;grid-template-columns:.65fr 1fr 1.6fr;gap:24px;align-items:end}.attendance-kpi small,.attendance-kpi strong,.attendance-kpi span{display:block}.attendance-kpi small{font-size:10px;letter-spacing:.08em;color:var(--muted);font-weight:700}.attendance-kpi strong{font:700 47px/1.1 'Fraunces',serif;color:var(--forest)}.attendance-kpi span{font-size:11px;color:var(--muted);margin-top:4px}.attendance-kpi em{font-style:normal;font-weight:700}.positive{color:var(--forest-2)}.negative{color:var(--coral)}.attendance-breakdown.horizontal{display:grid;grid-template-columns:repeat(4,1fr)}.mini-bars{height:120px;display:flex;align-items:flex-end;gap:9px}.mini-bars div{height:100%;flex:1;display:flex;flex-direction:column-reverse;align-items:center;gap:6px}.mini-bars i{display:block;width:70%;min-width:15px;background:linear-gradient(var(--forest-2),var(--forest));border-radius:5px 5px 0 0}.mini-bars span{font-size:8px;color:var(--muted);white-space:nowrap}.attendance-report-kpis{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:25px}.attendance-report-kpis div{padding:12px 15px;background:var(--cream);border-radius:9px}.attendance-report-kpis small,.attendance-report-kpis strong{display:block}.attendance-report-kpis small{font-size:9px;color:var(--muted);letter-spacing:.08em}.attendance-report-kpis strong{font:700 24px 'Fraunces',serif;color:var(--forest)}.attendance-chart{height:225px;display:flex;align-items:flex-end;gap:10px;border-bottom:1px solid var(--line);padding:25px 4px 0}.attendance-chart>div{height:100%;flex:1;display:flex;flex-direction:column;justify-content:flex-end;align-items:center;gap:5px}.attendance-chart b{font-size:9px}.attendance-chart>div>i{position:relative;display:block;width:70%;min-width:15px;background:#dbe9e3;border-radius:5px 5px 0 0;overflow:hidden}.attendance-chart .adult-segment{position:absolute;bottom:0;left:0;width:100%;background:var(--forest)}.attendance-chart small{font-size:8px;color:var(--muted);white-space:nowrap}.chart-legend{display:flex;gap:18px;margin-top:12px;font-size:10px;color:var(--muted)}.chart-legend span{display:flex;align-items:center;gap:5px}.chart-legend i{width:9px;height:9px;border-radius:2px}.chart-legend .adult{background:var(--forest)}.chart-legend .other{background:#dbe9e3}
@media(max-width:1100px){.attendance-overview{grid-template-columns:1fr 1fr}.mini-bars{grid-column:1/-1}.quick{align-items:stretch;flex-wrap:wrap}.quick>div{width:100%}}
@media(max-width:800px){.attendance-layout,.attendance-overview{grid-template-columns:1fr}.attendance-stats{grid-template-columns:1fr 1fr}.attendance-report-kpis{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.attendance-stats,.attendance-report-kpis{grid-template-columns:1fr}.attendance-breakdown.horizontal{grid-template-columns:repeat(2,1fr)}.attendance-chart{gap:5px;overflow-x:auto}.attendance-chart>div{min-width:28px}}
.stat-grid.attendance-stats{grid-template-columns:repeat(3,1fr);max-width:none}
@media(max-width:800px){.stat-grid.attendance-stats{grid-template-columns:1fr 1fr}}
@media(max-width:520px){.stat-grid.attendance-stats{grid-template-columns:1fr}}

/* Member users, lesson administration, and restricted learning portal */
.account-list{display:grid}.account-list>div{display:grid;grid-template-columns:auto 1fr auto;gap:10px;align-items:center;padding:11px 0;border-bottom:1px solid var(--line)}.account-list>div:last-child{border-bottom:0}.account-list strong,.account-list small{display:block;font-size:12px}.account-list small{color:var(--muted);margin-top:2px}.account-list form{margin:0}.inline-form{display:grid;grid-template-columns:1fr 1fr auto;gap:12px}.lesson-admin-list h3{font:700 15px 'Fraunces',serif;color:var(--forest);margin:20px 0 5px}.lesson-admin-list h3:first-child{margin-top:0}.lesson-admin-list>div{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:11px;padding:10px 0;border-bottom:1px solid var(--line)}.lesson-admin-list strong,.lesson-admin-list small{display:block;font-size:12px}.lesson-admin-list small{color:var(--muted);margin-top:3px}.lesson-number{width:31px;height:31px;border-radius:50%;display:grid;place-items:center;background:var(--mint);color:var(--forest);font-size:11px;font-weight:700}
.member-sidebar{background:linear-gradient(180deg,#173d33,#102e27)}.member-stats{grid-template-columns:repeat(3,1fr)}.next-lesson-card>p{font-size:13px;line-height:1.65;color:var(--muted)}.next-lesson-actions{display:flex;align-items:center;justify-content:space-between;margin-top:18px}.next-lesson-actions small{color:var(--muted)}.progress-track{height:8px;border-radius:20px;background:#edf1ef;overflow:hidden;margin-top:18px}.progress-track span{height:100%;display:block;border-radius:inherit;background:linear-gradient(90deg,var(--gold),#edca6c)}.progress-track.full{grid-column:1/-1;margin:0}.password-card{margin-top:20px}.training-overview{display:grid;grid-template-columns:1fr auto;align-items:center;gap:18px;margin-bottom:20px}.training-overview h2{font-size:26px;margin:7px 0}.training-overview p{font-size:12px;color:var(--muted);margin:0}.training-overview>strong{font:700 37px 'Fraunces',serif;color:var(--forest)}.training-overview>a{grid-column:1/-1;justify-self:start}.course-list{display:grid;gap:20px}.course-head{display:grid;grid-template-columns:1fr auto;gap:20px}.course-head h2{font-size:23px;margin:10px 0 5px}.course-head p{color:var(--muted);font-size:12px;margin:0;max-width:650px}.course-percent{text-align:right}.course-percent strong,.course-percent small{display:block}.course-percent strong{font:700 28px 'Fraunces',serif;color:var(--forest)}.course-percent small{font-size:10px;color:var(--muted)}.module-list{display:grid;margin-top:16px}.module-row{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:13px;padding:13px 6px;text-decoration:none;color:var(--ink);border-bottom:1px solid var(--line);border-radius:8px}.module-row:hover{background:#fafbf9}.module-row:last-child{border-bottom:0}.module-row strong,.module-row small{display:block}.module-row strong{font-size:13px}.module-row small{font-size:10px;color:var(--muted);margin-top:3px}.module-row.completed .lesson-number{background:var(--forest);color:#fff}.module-row.in_progress .lesson-number{box-shadow:0 0 0 2px var(--gold)}.module-arrow{font-size:24px;color:var(--muted)}
.lesson-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(290px,.65fr);gap:20px;align-items:start}.lesson-player{padding:0;overflow:hidden}.video-frame{position:relative;padding-top:56.25%;background:#0d1814}.video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}.external-video{min-height:330px;background:linear-gradient(140deg,#173d33,#245849);color:#fff;display:grid;place-items:center;align-content:center;text-align:center;padding:35px}.external-video>span{font-size:45px;color:#edca6c}.external-video h2{color:#fff;font-size:25px;margin:12px 0 4px}.external-video p{opacity:.7;font-size:12px}.external-video .button{background:#fff;color:var(--forest);margin-top:10px}.lesson-copy{padding:25px}.lesson-copy>div:first-child{display:flex;align-items:center;gap:10px}.lesson-copy>div small{color:var(--muted)}.lesson-copy h2{font-size:27px;margin:15px 0 8px}.lesson-copy p{font-size:13px;color:var(--muted);line-height:1.7}.lesson-notes{position:sticky;top:25px}.lesson-navigation{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:20px}.next-module{display:flex;align-items:center;gap:30px;padding:15px 18px;min-width:330px;text-decoration:none;color:var(--ink)}.next-module span>*{display:block}.next-module small{font-size:9px;color:var(--gold);font-weight:700;letter-spacing:.1em}.next-module strong{font-size:13px;margin:3px 0}.next-module em{font-size:10px;color:var(--muted);font-style:normal}.next-module b{font-size:25px;margin-left:auto;color:var(--forest)}
@media(max-width:900px){.lesson-layout{grid-template-columns:1fr}.lesson-notes{position:static}.lesson-navigation{align-items:stretch;flex-direction:column}.next-module{min-width:0}.member-stats{grid-template-columns:repeat(2,1fr)}}
@media(max-width:800px){.inline-form{grid-template-columns:1fr}.lesson-admin-layout{grid-template-columns:1fr}.member-stats{grid-template-columns:1fr}.external-video{min-height:250px}}
@media(max-width:520px){.training-overview,.course-head{grid-template-columns:1fr}.training-overview>strong{font-size:28px}.course-percent{text-align:left}.next-lesson-actions{align-items:stretch;flex-direction:column;gap:12px}.next-lesson-actions .button{width:100%}}

/* Course management */
.toolbar-actions{display:flex;gap:9px}.course-admin-list{display:grid}.course-admin-list article{display:grid;grid-template-columns:auto 1fr auto;gap:13px;align-items:start;padding:16px 0;border-bottom:1px solid var(--line)}.course-admin-list article:last-child{border-bottom:0}.course-admin-list article.inactive{opacity:.62}.course-order{width:34px;height:34px;border-radius:9px;background:var(--cream);display:grid;place-items:center;font:700 16px 'Fraunces',serif;color:var(--forest)}.course-title-line{display:flex;align-items:center;gap:8px}.course-title-line strong{font-size:14px}.course-admin-list p{font-size:11px;color:var(--muted);line-height:1.5;margin:7px 0}.course-admin-list small{font-size:10px;color:var(--muted)}.course-actions{display:flex;gap:12px;padding-top:7px}
@media(max-width:600px){.toolbar-actions{display:grid;width:100%}.course-admin-list article{grid-template-columns:auto 1fr}.course-actions{grid-column:2}.course-admin-layout{grid-template-columns:1fr}}

/* Project Nehemiah calendar and outreach */
.church-calendar {min-width:700px;table-layout:fixed}
.church-calendar td{height:120px;vertical-align:top;white-space:normal;padding:10px}
.calendar-event{display:block;margin-top:6px;padding:5px;background:#edf5ee;border-radius:5px;overflow-wrap:anywhere;font-size:12px}
.event-list,.outreach-summary{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:16px;margin:20px 0}
.event-thumbnail{width:100%;height:180px;object-fit:cover;border-radius:10px}
.journey-nav{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}.journey-nav a{padding:10px;background:#eef6f0;border-radius:8px}.journey-section{margin-top:20px;scroll-margin-top:20px}.journey-section form{margin-top:18px}.vip-request{padding:16px 0;border-bottom:1px solid #e0e6e2}

/* Scrollable sidebar keeps the brand and logout accessible. */
.sidebar{height:100vh;height:100dvh;overflow:hidden}.sidebar>.brand,.sidebar-foot{flex-shrink:0}.sidebar nav{min-height:0;flex:1;overflow-y:auto;overflow-x:hidden;align-content:start;padding-right:5px;scrollbar-width:thin;scrollbar-color:#a6bfb4 transparent;overscroll-behavior:contain}.sidebar nav::-webkit-scrollbar{width:7px}.sidebar nav::-webkit-scrollbar-thumb{background:#a6bfb4;border-radius:8px}.sidebar-foot{margin-top:16px}
.lesson-thumb{width:112px;height:63px;object-fit:cover;border-radius:8px;flex-shrink:0}.lesson-thumb-preview{width:240px;max-width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:8px}.lesson-hero-thumbnail{display:block;width:100%;max-height:320px;object-fit:cover;aspect-ratio:16/9;border-radius:8px}.calendar-event.birthday,.calendar-legend .birthday{background:#fff0d4;color:#775016}.calendar-event.anniversary,.calendar-legend .anniversary{background:#f5e8f1;color:#78365b}.calendar-legend{display:flex;flex-wrap:wrap;gap:8px}.calendar-legend span{background:#edf5ee;padding:6px 10px;border-radius:5px;font-size:12px}
@media(max-width:600px){.lesson-thumb{width:80px;height:45px}.sidebar nav{margin-top:22px}}

@media(max-width:760px){.sidebar{width:min(280px,86vw);padding:16px 14px}.sidebar nav{margin-top:20px;-webkit-overflow-scrolling:touch;touch-action:pan-y}.sidebar nav a{min-height:44px}.sidebar-foot{padding-top:12px}.brand{flex-shrink:0}}
