:root { --navy:#0d1f3c; --navy-mid:#1a3257; --gold:#c9a84c; --gold-light:#e8c96a; --gold-pale:#fbf5e6; --slate:#4a5568; --white:#fff; --warm:#f7f5f0; --border:#e8e2d6; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; color:var(--slate); background:var(--warm); font-family:Inter,Arial,sans-serif; line-height:1.65; }
h1,h2,h3 { margin-top:0; color:var(--navy); font-family:"Playfair Display",Georgia,serif; line-height:1.2; }
a { color:inherit; }
button,input { font:inherit; }
a:focus-visible,button:focus-visible,input:focus-visible { outline:3px solid var(--gold); outline-offset:3px; }
.member-header { min-height:72px; padding:6px 5%; display:flex; align-items:center; justify-content:space-between; background:rgba(255,255,255,.97); border-bottom:1px solid var(--border); }
.brand { display:flex; align-items:center; gap:9px; text-decoration:none; color:var(--navy); font-family:"Playfair Display",serif; font-weight:700; }
.brand img { width:56px; height:56px; object-fit:contain; }
.brand em { color:var(--gold); font-style:normal; }
.home-link,.portal-header nav a { text-decoration:none; font-size:.87rem; font-weight:600; }
.home-link:hover,.portal-header nav a:hover { color:var(--gold); }
.member-header-actions { display:flex; align-items:center; gap:18px; }
.language-switcher { position:relative; color:var(--navy); font-size:.78rem; }
.language-switcher summary { display:flex; align-items:center; gap:6px; padding:7px 11px; border:1px solid var(--border); border-radius:999px; background:#fff; cursor:pointer; font-weight:700; list-style:none; white-space:nowrap; }
.language-switcher summary::-webkit-details-marker { display:none; }
.language-switcher summary::after { content:"▾"; color:#8a6c1e; font-size:.68rem; }
.language-switcher[open] summary::after { transform:rotate(180deg); }
.language-switcher-label { position:absolute; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; border:0; }
.language-options { position:absolute; top:calc(100% + 7px); right:0; z-index:50; min-width:145px; padding:6px; border:1px solid var(--border); border-radius:12px; background:#fff; box-shadow:0 12px 30px rgba(13,31,60,.14); }
.language-options a { display:block; padding:8px 10px; border-radius:8px; color:var(--slate); text-decoration:none; font-weight:600; white-space:nowrap; }
.language-options a:hover,.language-options a[aria-current=true] { color:var(--navy); background:var(--gold-pale); }
.auth-page { min-height:100vh; background:linear-gradient(150deg,#fff 35%,var(--gold-pale)); }
.auth-main { width:min(1120px,90%); min-height:calc(100vh - 72px); margin:auto; display:grid; grid-template-columns:1fr 460px; gap:80px; align-items:center; padding:64px 0; }
.eyebrow,.module-label { margin:0 0 10px; color:#8a6c1e; text-transform:uppercase; letter-spacing:.11em; font-size:.76rem; font-weight:700; }
.auth-intro h1 { font-size:clamp(2.5rem,5vw,4.25rem); }
.auth-intro h1 em { color:var(--gold); font-style:normal; }
.auth-intro>p:not(.eyebrow) { max-width:610px; font-size:1.05rem; }
.auth-intro ul { list-style:none; padding:0; margin-top:28px; }
.auth-intro li { margin:12px 0; }
.auth-intro li::before { content:"✓"; display:inline-grid; place-items:center; width:24px; height:24px; margin-right:10px; border-radius:50%; background:var(--gold-pale); color:#8a6c1e; font-weight:700; }
.auth-card { padding:32px; border:1px solid var(--border); border-radius:24px; background:var(--white); box-shadow:0 20px 60px rgba(13,31,60,.13); }
.auth-tabs { display:grid; grid-template-columns:1fr 1fr; padding:4px; margin-bottom:26px; border-radius:12px; background:var(--warm); }
.auth-tab { padding:11px; border:0; border-radius:9px; background:transparent; color:var(--slate); cursor:pointer; font-weight:600; }
.auth-tab.active { background:var(--white); color:var(--navy); box-shadow:0 2px 10px rgba(13,31,60,.08); }
.auth-form { display:none; }
.auth-form.active { display:block; }
.auth-form h2 { margin-bottom:6px; }
.auth-form>p { margin-top:0; font-size:.9rem; }
.auth-form label { display:block; margin:17px 0; color:var(--navy); font-size:.84rem; font-weight:600; }
.auth-form label small { color:#718096; font-weight:400; }
.auth-form input:not([type=checkbox]) { width:100%; padding:13px 14px; margin-top:7px; border:1px solid #d8d3c9; border-radius:10px; color:var(--navy); background:#fff; }
.auth-form button[type=submit] { width:100%; padding:14px; border:0; border-radius:999px; background:var(--gold); color:var(--navy); cursor:pointer; font-weight:700; }
.auth-form button[type=submit]:hover { background:var(--gold-light); }
.turnstile-wrap { display:flex; justify-content:center; min-height:65px; margin:17px 0; }
.consent { display:flex!important; gap:9px; align-items:flex-start; font-weight:400!important; }
.consent input { margin-top:5px; accent-color:var(--gold); }
.form-errors { padding:12px 15px; margin-bottom:20px; border:1px solid #efb8b8; border-radius:10px; background:#fff0f0; color:#7f1d1d; font-size:.84rem; }
.form-errors ul { margin:5px 0 0; padding-left:20px; }
.form-notice { padding:13px 15px; margin-bottom:20px; border:1px solid #c7dfc9; border-radius:10px; background:#effaf0; color:#245b2b; font-size:.84rem; }
.form-notice strong { display:block; margin-bottom:4px; color:#174b20; font-size:.92rem; }
.form-notice p { margin:0; }
.account-help { padding-top:20px; margin-top:22px; border-top:1px solid var(--border); }
.account-help h3 { margin-bottom:12px; font-family:Inter,sans-serif; font-size:.9rem; }
.account-help p { margin:0 0 10px; font-size:.78rem; }
.auth-form .account-help button { width:auto; padding:9px 14px; border:1px solid var(--border); border-radius:999px; background:var(--warm); color:var(--navy); box-shadow:none; }
.auth-form .account-help button:hover { border-color:var(--gold); background:var(--gold-pale); }
.activation-main { min-height:calc(100vh - 72px); display:grid; place-items:center; padding:40px 5%; }
.activation-card { width:min(520px,100%); padding:44px; border:1px solid var(--border); border-radius:24px; background:var(--white); text-align:center; box-shadow:0 20px 60px rgba(13,31,60,.13); }
.activation-icon { width:64px; height:64px; display:grid; place-items:center; margin:0 auto 22px; border-radius:50%; background:#fff0f0; color:#9b2c2c; font-size:1.6rem; font-weight:700; }
.activation-icon.success { background:#effaf0; color:#245b2b; }
.activation-button { display:inline-block; padding:12px 22px; margin-top:14px; border-radius:999px; background:var(--gold); color:var(--navy); text-decoration:none; font-weight:700; }
.reset-form { text-align:left; }
.portal-header { position:sticky; top:0; z-index:20; }
.portal-header nav { display:flex; align-items:center; gap:22px; font-size:.86rem; }
.portal-header nav span { color:#718096; }
.logout-form { margin:0; }
.logout-form button { padding:0; border:0; background:transparent; color:var(--slate); cursor:pointer; font:inherit; font-weight:600; }
.logout-form button:hover { color:var(--gold); }
.portal-shell { width:min(1240px,92%); margin:0 auto; display:grid; grid-template-columns:260px 1fr; gap:54px; padding:48px 0 80px; }
.resource-sidebar { position:sticky; top:120px; align-self:start; }
.resource-sidebar h2 { font-size:1.35rem; }
.resource-sidebar .resource-toc { display:flex; max-height:calc(100vh - 245px); overflow-y:auto; flex-direction:column; border-left:1px solid var(--border); scrollbar-width:thin; }
.resource-toc details { border-bottom:1px solid var(--border); }
.resource-toc summary { display:grid; grid-template-columns:34px minmax(0,1fr) 18px; align-items:start; padding:10px 12px; color:var(--navy); cursor:pointer; font-size:.83rem; font-weight:600; line-height:1.35; list-style:none; }
.resource-toc summary::-webkit-details-marker { display:none; }
.resource-toc summary::after { content:"+"; grid-column:3; text-align:right; color:#9a8b67; }
.resource-toc details[open] summary::after { content:"−"; }
.resource-toc summary:hover,.resource-toc summary:focus-visible { color:#8a6c1e; background:var(--gold-pale); }
.resource-toc summary span { display:block; grid-column:1; width:auto; color:#9a8b67; font-size:.7rem; }
.toc-lessons { display:flex; flex-direction:column; padding:0 10px 10px 34px; }
.toc-lessons a { display:block; padding:5px 8px; color:#647084; text-decoration:none; font-size:.74rem; line-height:1.35; }
.toc-lessons a:hover { color:#8a6c1e; }
.toc-lessons .published-text { width:auto; margin-left:4px; color:#2f6b4f; font-size:.62rem; font-weight:700; text-transform:uppercase; }
.toc-lessons .toc-overview { color:var(--navy); font-weight:600; }
.education-notice { padding:16px; margin-top:28px; border-radius:14px; background:var(--gold-pale); font-size:.78rem; }
.education-notice strong { color:#6f5718; }
.education-notice p { margin:5px 0 0; }
.welcome-message { padding:13px 16px; margin-bottom:24px; border:1px solid #c7dfc9; border-radius:12px; background:#effaf0; color:#245b2b; }
.resource-hero { padding:42px; margin-bottom:24px; border-radius:24px; background:linear-gradient(135deg,var(--navy),var(--navy-mid)); box-shadow:0 15px 45px rgba(13,31,60,.15); }
.resource-hero h1 { margin-bottom:12px; color:var(--white); font-size:clamp(2rem,4vw,3.1rem); }
.resource-hero>p:last-child { max-width:760px; margin-bottom:0; color:rgba(255,255,255,.72); }
.member-progress-summary { margin-bottom:22px; overflow:hidden; border:1px solid var(--border); border-radius:20px; background:#fff; box-shadow:0 5px 24px rgba(13,31,60,.05); }
.member-progress-summary>summary { display:grid; grid-template-columns:minmax(0,1fr) auto 20px; gap:18px; align-items:center; padding:22px 30px; color:var(--navy); cursor:pointer; list-style:none; }
.member-progress-summary>summary::-webkit-details-marker { display:none; }
.member-progress-summary>summary::after { content:"+"; color:#8a6c1e; font-size:1.35rem; font-weight:700; text-align:right; }
.member-progress-summary[open]>summary::after { content:"−"; }
.member-progress-summary[open]>summary { border-bottom:1px solid var(--border); background:var(--gold-pale); }
.member-progress-summary>summary small,.member-progress-summary>summary strong { display:block; }
.member-progress-summary>summary small { margin-bottom:3px; color:#8a6c1e; font-size:.7rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; }
.member-progress-summary>summary strong { font-family:"Playfair Display",Georgia,serif; font-size:1.3rem; }
.progress-summary-count { color:#647084; font-size:.78rem; font-weight:700; white-space:nowrap; }
.progress-summary-content { padding:28px 30px 30px; }
.progress-summary-heading { display:flex; align-items:center; justify-content:space-between; gap:20px; }
.progress-summary-heading h2 { margin-bottom:0; }
.progress-summary-heading>a { padding:10px 16px; border-radius:999px; background:var(--gold); color:var(--navy); text-decoration:none; font-size:.82rem; font-weight:700; white-space:nowrap; }
.progress-stat-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:12px; margin-top:24px; }
.progress-stat-grid article { padding:18px; border-radius:13px; background:var(--gold-pale); }
.progress-stat-grid strong,.progress-stat-grid span { display:block; }
.progress-stat-grid strong { color:var(--navy); font-family:"Playfair Display",Georgia,serif; font-size:1.5rem; }
.progress-stat-grid span { margin-top:3px; color:#718096; font-size:.73rem; font-weight:600; }
.communication-preferences { padding:20px 24px; margin-bottom:22px; border:1px solid var(--border); border-radius:16px; background:#fff; }
.communication-preferences summary { color:var(--navy); cursor:pointer; font-weight:700; }
.communication-preferences form { display:grid; gap:12px; padding-top:18px; }
.communication-preferences form>p { margin:0 0 4px; font-size:.84rem; }
.communication-preferences label { display:flex; gap:10px; align-items:flex-start; color:var(--navy); font-size:.84rem; }
.communication-preferences input[type=checkbox] { margin-top:5px; accent-color:var(--gold); }
.communication-preferences .privacy-copy { padding:12px 14px; border-left:4px solid var(--gold); background:var(--gold-pale); color:#5d6675; font-size:.76rem; }
.communication-preferences button { width:max-content; padding:10px 17px; border:0; border-radius:999px; background:var(--navy); color:#fff; cursor:pointer; font-weight:700; }
.engagement-report { width:min(1240px,92%); margin:0 auto; padding:55px 0 80px; }
.report-heading { max-width:760px; margin-bottom:30px; }
.report-heading h1 { margin-bottom:10px; font-size:clamp(2.2rem,4vw,3.5rem); }
.report-stat-grid { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin-bottom:26px; }
.report-stat-grid article { padding:24px; border-radius:16px; background:var(--navy); }
.report-stat-grid strong,.report-stat-grid span { display:block; }
.report-stat-grid strong { color:var(--gold-light); font-family:"Playfair Display",Georgia,serif; font-size:1.8rem; }
.report-stat-grid span { color:#d5deea; font-size:.78rem; }
.report-section { padding:28px; margin-top:20px; border:1px solid var(--border); border-radius:18px; background:#fff; }
.report-table-wrap { overflow-x:auto; }
.report-section table { width:100%; border-collapse:collapse; font-size:.8rem; }
.report-section th,.report-section td { padding:11px 12px; border-bottom:1px solid var(--border); text-align:left; white-space:nowrap; }
.report-section th { color:var(--navy); background:var(--gold-pale); }
.module-list { display:grid; gap:18px; }
.resource-module { scroll-margin-top:110px; display:grid; grid-template-columns:74px 1fr; gap:22px; padding:30px; border:1px solid var(--border); border-radius:20px; background:var(--white); box-shadow:0 5px 24px rgba(13,31,60,.055); }
.module-number { width:58px; height:58px; display:grid; place-items:center; border-radius:16px; background:var(--gold-pale); color:#8a6c1e; font-family:"Playfair Display",serif; font-size:1.2rem; font-weight:700; }
.module-body h2 { margin-bottom:10px; font-size:1.65rem; }
.module-body h3 { margin:22px 0 8px; font-family:Inter,sans-serif; font-size:.83rem; text-transform:uppercase; letter-spacing:.08em; }
.module-body ul { padding-left:20px; }
.lesson-list { display:grid; grid-template-columns:1fr; gap:8px; padding-left:22px; }
.lesson-list li { scroll-margin-top:110px; padding-left:4px; }
.published-lesson { color:var(--navy); text-decoration:none; font-weight:700; }
.published-lesson:hover { color:#8a6c1e; }
.illustrated-lessons-layout { display:grid; grid-template-columns:minmax(0,1fr) 240px; gap:20px; align-items:start; }
.illustrated-lessons-layout .lesson-list { min-width:0; margin:0; }
.part-illustration { width:240px; max-width:100%; margin:0; background:transparent; }
.part-illustration img { display:block; width:100%; max-width:100%; height:auto; }
.part-illustration figcaption { padding:10px 8px 0; color:#647084; font-size:.75rem; font-weight:600; text-align:center; letter-spacing:.04em; }
.module-button { padding:10px 16px; border:1px solid var(--border); border-radius:999px; background:var(--warm); color:#718096; }
.module-link { display:inline-block; color:var(--navy); text-decoration:none; font-weight:700; }
.module-link:hover { border-color:var(--gold); background:var(--gold-pale); }
.development-note { padding:16px; text-align:center; font-size:.82rem; }
@media(max-width:850px){.auth-main{grid-template-columns:1fr;gap:36px}.auth-intro{text-align:center}.auth-intro>p:not(.eyebrow){margin-left:auto;margin-right:auto}.portal-shell{grid-template-columns:1fr}.resource-sidebar{position:static}.resource-sidebar .resource-toc{display:flex;max-height:none;flex-direction:column;border:0}.portal-header nav span{display:none}.illustrated-lessons-layout{grid-template-columns:1fr}.progress-stat-grid,.report-stat-grid{grid-template-columns:1fr 1fr}}
@media(max-width:560px){.member-header{padding-left:4%;padding-right:4%}.brand span{display:none}.member-header-actions{gap:10px}.language-switcher summary{padding:7px 9px}.auth-main{padding:35px 0}.auth-card{padding:22px}.portal-header nav{gap:10px}.portal-shell{padding-top:28px}.resource-sidebar .resource-toc{grid-template-columns:1fr}.resource-hero{padding:28px}.resource-module{grid-template-columns:1fr;padding:22px}.module-number{width:48px;height:48px}.lesson-list{grid-template-columns:1fr}.member-progress-summary>summary{grid-template-columns:1fr 18px;padding:19px 20px}.progress-summary-count{grid-column:1;font-size:.72rem;white-space:normal}.member-progress-summary>summary::after{grid-column:2;grid-row:1/3}.progress-summary-content{padding:22px 20px}.progress-summary-heading{align-items:flex-start;flex-direction:column}.progress-stat-grid,.report-stat-grid{grid-template-columns:1fr}.communication-preferences{padding:18px}.report-section{padding:20px}}
