.hub-page { --hub-cream:#f6f3ee; --hub-ink:#192b29; --hub-muted:#62716a; --hub-line:#dfE3dc; background:var(--hub-cream); color:var(--hub-ink); }
.hub-page h1,.hub-page h2,.hub-page h3,.hub-page h4 { font-family:'Outfit',sans-serif; letter-spacing:-.025em; line-height:1.15; margin:0; }
.hub-page h1 { font-size:clamp(42px,5.4vw,70px); font-weight:500; }
.hub-page h2 { font-size:32px; font-weight:500; }
.hub-page h3 { font-size:27px; font-weight:500; }
.hub-page h4 { font-size:17px; font-weight:600; margin-bottom:20px; }
.hub-page p { margin:12px 0; }
.hub-page button,.hub-page input,.hub-page select,.hub-page textarea { font:inherit; }
.hub-page a,.hub-page button { -webkit-tap-highlight-color:transparent; }
.hub-page :focus-visible { outline:3px solid #be792f; outline-offset:4px; }
.hub-page .button { border-radius:6px; padding:13px 21px; font-size:14px; font-weight:600; min-height:48px; box-shadow:none; }
.hub-page .button.primary { background:#8b1e3f; color:#fff; border:1px solid #8b1e3f; }
.hub-page .button.primary:hover { background:#6e1732; transform:none; }
.hub-page .button:disabled { opacity:.5; cursor:not-allowed; }
.hub-page .hub-eyebrow { font-size:10px; text-transform:uppercase; letter-spacing:2px; font-weight:700; margin:0 0 16px; }
.small-label { font-size:11px; color:var(--hub-muted); }
.hub-header { background:#132825; color:#fff; border-bottom:1px solid #ffffff20; }
.hub-nav { display:flex; justify-content:space-between; align-items:center; padding:23px 0; gap:20px; }
.hub-nav-links { display:flex; gap:28px; align-items:center; font-size:13px; }
.hub-nav-links a { text-decoration:none; }
.hub-nav-links a:hover { text-decoration:underline; }
.hub-nav-links form { margin:0; }
.logout { padding:8px 16px; border:1px solid #ffffff50; color:#fff; border-radius:5px; background:transparent; cursor:pointer; }
.skip-link { position:fixed; left:16px; top:-100px; z-index:100; padding:14px; background:white; color:#132825; }
.skip-link:focus { top:12px; }
.hub-hero { background:radial-gradient(ellipse at 12% 100%,#2e5145 0%,transparent 65%),#132825; color:#fff; padding:60px 0 66px; }
.hero-grid { display:grid; grid-template-columns:1.5fr 1fr; gap:70px; align-items:center; }
.hub-hero .hub-eyebrow { color:#dfc29f; }
.hub-hero-subtitle { font-family:'Outfit',sans-serif; font-size:26px; color:#e5c39d; }
.hub-hero p:not(.hub-eyebrow):not(.hub-hero-subtitle) { font-size:14px; color:#d5e0d8; }
.hero-tags { display:flex; flex-wrap:wrap; gap:10px; margin-top:29px; }
.hero-tags span { font-size:11px; border:1px solid #ffffff28; border-radius:30px; padding:6px 12px; color:#d5e0d8; }
.next-session { border:1px solid #ffffff26; background:#ffffff07; border-radius:12px; padding:27px 30px; }
.next-session h2 { font-size:25px; max-width:330px; }
.next-session .next-date { margin:20px 0; line-height:1.7; }
.next-session .next-date span { color:#c2cfc8; }
.next-session .button { width:100%; justify-content:space-between; }
.calendar-link { font-size:12px; font-weight:500; text-decoration:none; display:inline-block; padding:8px 0; }
.calendar-link:hover { text-decoration:underline; }
.next-session .calendar-link { display:block; text-align:center; margin-top:8px; color:#e7d5be; }
.hub-layout { display:grid; grid-template-columns:190px minmax(0,1fr); gap:54px; align-items:start; padding-top:50px; }
.hub-sidebar { position:sticky; top:30px; }
.hub-sidebar nav { display:grid; gap:5px; }
.hub-sidebar nav a { display:flex; align-items:center; gap:12px; border-bottom:1px solid var(--hub-line); padding:13px 0; text-decoration:none; font-size:12px; }
.hub-sidebar nav a:hover { color:var(--cabernet); }
.hub-sidebar nav a>span:last-child { margin-left:auto; }
.hub-sidebar .nav-number { font-size:10px; border:1px solid #d5dcd3; padding:3px 7px; border-radius:5px; color:#63746a; }
.sidebar-note { padding-top:35px; }
.sidebar-note .small-label { display:block; margin-bottom:16px; text-transform:uppercase; letter-spacing:1px; font-size:9px; }
.sidebar-note img { width:48px; height:48px; object-fit:cover; object-position:50% 25%; border-radius:50%; margin-bottom:10px; }
.sidebar-note strong { font-size:13px; }
.sidebar-note p,.sidebar-note a { font-size:12px; color:var(--hub-muted); }
.hub-content { min-width:0; }
.hub-content section[id],.hub-session { scroll-margin-top:24px; }
.start-panel { background:#e9eee4; border:1px solid #dce3d7; border-radius:10px; padding:30px; }
.start-panel h2 { font-size:28px; }
.start-panel>p:not(.hub-eyebrow) { font-size:13px; color:#536457; max-width:560px; }
.start-steps { display:grid; grid-template-columns:repeat(3,1fr); gap:23px; margin:24px 0 14px; }
.start-steps span { display:block; color:#52674c; font-family:'Outfit',sans-serif; font-size:12px; margin-bottom:9px; }
.start-steps strong { font-size:13px; font-weight:600; }
.start-steps p { font-size:12px; line-height:1.7; color:#536457; }
.inline-link { font-size:12px; font-weight:600; text-decoration:none; }
.inline-link:hover { text-decoration:underline; }
.section-title { display:flex; align-items:end; gap:20px; justify-content:space-between; margin:44px 0 24px; }
.section-title .hub-eyebrow { margin-bottom:9px; color:#766549; }
.section-title .small-label { text-align:right; }
.hub-session { background:#fff; border:1px solid var(--hub-line); border-radius:10px; padding:30px; margin-bottom:24px; }
.session-heading { display:flex; gap:18px; align-items:start; }
.hub-session-number { flex:none; font-family:'Outfit',sans-serif; font-size:30px; font-weight:300; color:#866649; border-right:1px solid #e5dfd7; padding:0 18px 0 0; line-height:1.3; }
.session-heading .hub-eyebrow { margin:0 0 10px; display:flex; align-items:center; gap:14px; color:#6b766d; font-size:9px; }
.status-pill { font:500 10px 'Inter',sans-serif; letter-spacing:0; text-transform:none; color:#4e6448; background:#edf1e8; border-radius:20px; padding:5px 9px; display:inline-block; }
.session-date { font-size:12px; color:#6b5745; font-weight:500; padding-top:10px; }
.session-date span { margin:0 8px; }
.session-summary { font-size:13px; color:var(--hub-muted); max-width:650px; }
.topic-list { padding-left:18px; font-size:12px; color:#475d50; line-height:1.9; margin:15px 0 22px; }
.topic-list li::marker { color:#af8760; }
.session-actions { display:flex; gap:25px; align-items:center; flex-wrap:wrap; margin-bottom:27px; }
.session-materials { border-top:1px solid #e7e9e4; padding-top:25px; display:grid; grid-template-columns:1fr 1fr; gap:25px; }
.recording-placeholder { background:#eef1eb; border:1px solid #e2e6dd; border-radius:7px; min-height:210px; display:flex; flex-direction:column; align-items:center; justify-content:center; text-align:center; padding:20px; }
.play-mark { display:grid; place-items:center; width:43px; height:43px; border:1px solid #bac6b4; border-radius:50%; color:#586d4e; font-size:29px; line-height:1; padding-left:3px; margin-bottom:14px; }
.recording-placeholder strong,.notes-area strong { font-size:12px; font-weight:600; }
.recording-placeholder p,.notes-area p { color:var(--hub-muted); font-size:12px; line-height:1.7; }
.recording-placeholder p { margin:8px 0 0; }
.notes-area { padding-left:3px; overflow-wrap:anywhere; }
.notes-icon { display:block; color:#94754d; font-size:32px; line-height:1; margin:24px 0 14px; }
.notes-area strong { display:block; max-width:210px; }
.notes-area .small-label { display:inline-block; font-size:10px; padding-top:5px; color:#6e735f; }
.notes-area ul { padding-left:18px; font-size:12px; }
.video-frame { display:block; width:100%; aspect-ratio:16/9; border:0; border-radius:6px; background:#132825; }
.discussion-section>p { font-size:14px; color:var(--hub-muted); }
.composer { background:#fff; border:1px solid #b9c8b1; border-radius:9px; margin-top:25px; overflow:hidden; }
.composer summary { display:flex; justify-content:space-between; gap:10px; cursor:pointer; list-style:none; padding:22px; font-weight:600; font-size:14px; }
.composer summary::-webkit-details-marker { display:none; }
.composer summary span { font-size:11px; font-weight:400; color:var(--hub-muted); }
.composer[open] summary { border-bottom:1px solid var(--hub-line); }
.post-form { padding:22px; display:grid; gap:18px; }
.hub-page label { display:grid; gap:7px; font-size:12px; font-weight:600; }
.hub-page input,.hub-page textarea,.hub-page select { width:100%; border:1px solid #c8cfc5; background:#fff; border-radius:5px; padding:12px; color:var(--hub-ink); min-width:0; font-size:14px; }
.hub-page textarea { resize:vertical; min-height:100px; }
.form-row { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.hub-page .form-hint { font-size:11px; font-weight:400; color:var(--hub-muted); margin:0; }
.optional { font-weight:400; display:contents; }
.post-form .button { justify-self:start; }
.discussion-filters { display:flex; gap:8px; flex-wrap:wrap; margin:26px 0; }
.discussion-filters a { text-decoration:none; border:1px solid #d5dcd1; border-radius:24px; padding:8px 12px; font-size:11px; background:transparent; }
.discussion-filters a:hover { border-color:#4a6451; }
.discussion-filters a.selected { color:white; background:#264735; border-color:#264735; }
.empty-discussion { text-align:center; border:1px dashed #bdc9b7; border-radius:10px; padding:42px 28px; }
.empty-discussion>span { font-size:35px; color:#a88b66; }
.empty-discussion h3 { font-size:23px; margin:8px 0 15px; }
.empty-discussion p { font-size:13px; max-width:440px; margin:0 auto 18px; color:var(--hub-muted); }
.text-button { border:0; background:none; padding:8px 0; font-size:12px!important; color:#354f35; cursor:pointer; text-decoration:underline; text-underline-offset:4px; }
.discussion-post { background:#fff; padding:26px; border:1px solid var(--hub-line); border-radius:10px; margin:18px 0; overflow-wrap:anywhere; }
.post-category { color:#7c633f; text-transform:uppercase; letter-spacing:1px; font-size:9px; }
.discussion-post h3 { margin:12px 0; font-size:23px; }
.post-byline { font-size:11px; color:#627160; }
.post-byline strong { color:#2b4633; }
.post-byline time { display:block; color:#778172; font-size:10px; margin-top:4px; }
.message-body { font-size:14px; line-height:1.8; margin:18px 0; }
.project-link { display:block; border:1px solid #d9e0d2; background:#f4f6f0; padding:12px 16px; border-radius:5px; font-size:12px; text-decoration:none; }
.project-link span { margin-left:12px; font-size:11px; color:#5d6e56; }
.reply { margin:20px 0 0 10px; padding:5px 0 5px 20px; border-left:2px solid #d2dec8; }
.reply .message-body { font-size:13px; margin:10px 0; }
.reply-composer { margin-top:20px; border-top:1px solid var(--hub-line); padding-top:18px; }
.reply-composer summary { cursor:pointer; font-size:12px; color:#3e5b3d; }
.reply-composer summary span { color:#6e7867; }
.reply-composer .post-form { padding:20px 0 0; }
.danger { color:#8b1e3f; }
.notice { padding:15px 18px; border-radius:6px; font-size:13px; margin-bottom:24px; }
.notice.error { color:#821b35; background:#fff0f2; border:1px solid #edc6cc; }
.notice.success { color:#214f35; background:#edf5e8; border:1px solid #c7d8bc; }
.pagination { display:flex; gap:12px; margin:20px 0; }
.pagination a { padding:6px 12px; border:1px solid #bac9b1; border-radius:5px; }
.pagination [aria-current] { background:#264735; color:#fff; }
.closing-note { text-align:center; padding:48px 10px 64px; }
.closing-note p { font:400 26px 'Outfit',sans-serif; }
.closing-note span { font-size:12px; color:var(--hub-muted); }
.hub-footer { background:#ecece4; border-top:1px solid #dadfd5; padding:26px 0; }
.hub-footer>.page-shell { display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:20px; }
.hub-footer p,.hub-footer a { font-size:11px; color:#51634f; }
.hub-footer p span { margin:0 12px; color:#8c7860; }
.admin-tools { width:100%; font-size:11px; }
.admin-tools summary { cursor:pointer; color:#697662; }
.admin-tools form { max-width:340px; display:grid; gap:14px; margin-top:15px; }
.login-main { display:grid; grid-template-columns:1.15fr 1fr; gap:90px; padding-block:80px; align-items:center; min-height:calc(100vh - 190px); }
.is-login { background:radial-gradient(ellipse at 0 90%,#dce5d5 0,transparent 60%),#f6f3ee; }
.login-intro .hub-eyebrow { color:#7b6341; }
.login-intro h1 { color:#213e2d; font-size:clamp(44px,4.9vw,63px); }
.login-lead { font:400 23px/1.45 'Outfit',sans-serif; padding-top:14px; color:#4d614c; }
.login-description { font-size:14px; color:#64735e; max-width:400px; padding-top:10px; }
.login-series { display:flex; gap:36px; margin-top:36px; padding-top:25px; border-top:1px solid #cbd4c1; max-width:400px; }
.login-series>span { font:400 29px 'Outfit',sans-serif; color:#8c6846; }
.login-series small { font:400 11px 'Inter',sans-serif; display:block; color:#607057; margin-top:7px; }
.login-card { background:#fff; padding:40px; border:1px solid #e1e2d7; border-radius:12px; box-shadow:0 18px 60px #22351e09; }
.partner-logo { width:145px; max-height:80px; object-fit:contain; object-position:left; margin-bottom:35px; }
.login-card .hub-eyebrow { color:#856747; font-size:9px; margin-bottom:12px; }
.login-card h2 { font-size:30px; }
.login-card>p:not(.hub-eyebrow) { color:#68735f; font-size:13px; }
.login-form { margin-top:27px; display:grid; gap:10px; }
.login-form .button { width:100%; justify-content:space-between; margin-top:8px; }
.password-wrap { position:relative; }
.password-wrap input { padding-right:68px; }
.show-password { position:absolute; right:5px; top:5px; height:36px; border:0; background:transparent; color:#5a6b50; cursor:pointer; font-size:11px!important; padding:8px; }
.login-card .login-help { margin-top:25px; font-size:11px!important; }
@media(max-width:1000px) { .hero-grid { gap:35px; } .hub-layout { grid-template-columns:150px minmax(0,1fr); gap:30px; } .login-main { gap:45px; } .login-card { padding:30px; } .hub-session { padding:25px; } }
@media(max-width:760px) { .hero-grid { grid-template-columns:1fr; gap:30px; } .hub-hero { padding:40px 0; } .next-session { max-width:none; } .next-session h2 { max-width:none; } .hub-layout { display:block; padding-top:30px; } .hub-sidebar { position:static; margin-bottom:30px; } .hub-sidebar>.hub-eyebrow,.sidebar-note { display:none; } .hub-sidebar nav { display:flex; gap:12px; overflow-x:auto; padding-bottom:8px; } .hub-sidebar nav a { flex:none; border:1px solid #d4dbcf; padding:9px 12px; border-radius:5px; gap:7px; } .hub-sidebar nav a>span:last-child { display:none; } .hub-sidebar .nav-number { border:none; padding:0; } .section-title { align-items:start; } .section-title .small-label { max-width:120px; } .login-main { grid-template-columns:1fr; gap:35px; padding-block:40px; } .login-intro h1 { font-size:48px; } .login-series,.login-description { display:none; } .login-lead { font-size:20px; } .login-card { max-width:550px; width:100%; } }
@media(max-width:480px) { .hub-nav { align-items:center; padding-block:17px; } .hub-nav-links { gap:12px; font-size:11px; } .hub-nav-links>a[href="#sessions"] { display:none; } .hub-page .brand-mark { width:34px; height:34px; font-size:17px; } .hub-page .brand-name { font-size:14px; } .hub-page .brand-tag { font-size:7px; letter-spacing:.7px; } .hub-page .brand-link { gap:8px; } .logout { padding:7px 10px; } .hub-hero-subtitle { font-size:22px; } .next-session { padding:23px; } .start-panel,.hub-session { padding:22px; } .start-steps { grid-template-columns:1fr; gap:12px; } .start-steps span { float:left; margin-right:12px; margin-top:3px; } .start-steps p { margin-left:27px; } .section-title { display:block; } .section-title>.small-label { display:block; text-align:left; margin-top:12px; max-width:none; } .session-heading { gap:13px; } .hub-session-number { padding-right:13px; font-size:26px; } .session-heading h3 { font-size:24px; } .session-heading .hub-eyebrow { gap:8px; flex-wrap:wrap; } .session-date { font-size:11px; } .session-date span { margin:0 4px; } .session-actions { gap:8px; } .session-materials { grid-template-columns:1fr; gap:25px; } .notes-area { padding:0; } .notes-area strong { max-width:none; } .notes-icon { margin-top:10px; } .form-row { grid-template-columns:1fr; } .composer summary { flex-direction:column; } .discussion-post { padding:20px; } .login-card { padding:26px; } .login-intro h1 { font-size:42px; } .hub-footer>.page-shell { gap:4px; } .reply { margin-left:0; padding-left:14px; } }
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } .hub-page * { transition:none!important; animation:none!important; } }
