/* Scoped to the Academy portal so theme button/layout rules cannot resize its drawer. */
body.cga-portal-page [data-cga-refresh] { display:block; width:100%; min-height:40px; height:auto; padding:8px 12px; border:1px solid currentColor; border-radius:8px; background:transparent; color:inherit; font:inherit; cursor:pointer; margin:0 0 10px; }
body.cga-portal-page .cga-video__playback-note { padding:12px; color:#fff; background:#15283d; font-size:14px; }
body.cga-portal-page .cga-toc > .cga-toc__resize { position:absolute !important; top:0 !important; right:0 !important; bottom:0 !important; width:12px !important; height:100% !important; min-height:0 !important; margin:0 !important; padding:0 !important; flex:none !important; }
body.cga-portal-page .cga-toc > .cga-toc__heading { flex:0 0 auto; margin:0; }
body.cga-portal-page .cga-toc > nav { flex:1 1 0%; min-height:0; overflow-y:auto; overscroll-behavior:contain; }
body.cga-portal-page .cga-toc > .cga-toc__footer { flex:0 0 auto; margin:0; }
body.cga-portal-page .cga-school { padding:clamp(20px,4vw,52px); max-width:1100px; margin:auto; }
body.cga-portal-page .cga-school-card { background:#fff; color:var(--cga-text); border:1px solid var(--cga-line); border-radius:16px; padding:24px; margin:24px 0; overflow-wrap:anywhere; }
body.cga-portal-page .cga-school-content img { max-width:100%; height:auto; }
body.cga-portal-page .cga-school-content { line-height:1.7; }
body.cga-portal-page .cga-school-actions { display:flex; gap:10px; flex-wrap:wrap; margin-top:20px; }
body.cga-portal-page .cga-school-downloads { list-style:none; padding:0; display:flex; flex-wrap:wrap; gap:12px; }
body.cga-portal-page .cga-school-state { color:var(--cga-muted); font-size:14px; }
body.cga-portal-page .cga-school-bell { position:fixed; right:20px; bottom:calc(100px + env(safe-area-inset-bottom)); display:flex; align-items:center; justify-content:center; width:48px; height:48px; border-radius:50%; background:var(--cga-primary); color:#fff; box-shadow:0 3px 15px #0003; z-index:60; text-decoration:none; }
body.cga-portal-page .cga-school-badge { position:absolute; top:-7px; right:-7px; min-width:24px; padding:2px 5px; border-radius:16px; background:#a62038; color:#fff; font:700 13px/20px sans-serif; text-align:center; }
body.cga-portal-page .cga-player-controls { flex-wrap:wrap; height:auto; min-height:54px; }
body.cga-portal-page .cga-player-controls .cga-player-audio,
body.cga-portal-page .cga-player-controls .cga-player-reload { display:inline-flex !important; align-items:center; justify-content:center; min-height:40px; flex:0 0 auto; font-size:13px; }
body.cga-portal-page .cga-course-library-layout { display:grid; grid-template-columns:minmax(0,2fr) minmax(270px,.8fr); gap:clamp(24px,3vw,42px); align-items:start; }
body.cga-portal-page .cga-course-library-layout.has-no-suggestions { grid-template-columns:1fr; }
body.cga-portal-page .cga-course-library-main { min-width:0; }
body.cga-portal-page .cga-course-library-main .cga-course-grid { grid-template-columns:repeat(auto-fit,minmax(260px,1fr)); }
body.cga-portal-page .cga-course-suggestions { position:sticky; top:24px; padding:24px; border:1px solid rgba(21,40,61,.09); border-radius:var(--cga-radius); background:linear-gradient(145deg,rgba(255,255,255,.98),rgba(248,245,237,.94)); box-shadow:0 16px 42px rgba(18,36,55,.08); }
body.cga-portal-page .cga-course-suggestions__heading { padding:0 2px 18px; border-bottom:1px solid var(--cga-line); }
body.cga-portal-page .cga-course-suggestions__heading h2 { margin:6px 0 0; color:var(--cga-primary); font-family:Georgia,"Times New Roman",serif; font-size:26px; font-weight:400; line-height:1.12; }
body.cga-portal-page .cga-course-suggestions__list { display:grid; gap:16px; margin-top:18px; }
body.cga-portal-page .cga-course-suggestion { display:grid; grid-template-columns:96px minmax(0,1fr); gap:15px; padding:10px; border:1px solid rgba(21,40,61,.08); border-radius:14px; background:#fff; box-shadow:0 8px 22px rgba(18,36,55,.055); }
body.cga-portal-page .cga-course-suggestion__image { min-height:122px; border-radius:10px; background:linear-gradient(145deg,#2a5068,#12283c) center/cover no-repeat; }
body.cga-portal-page .cga-course-suggestion__body { display:flex; min-width:0; flex-direction:column; align-items:flex-start; padding:5px 3px 3px 0; }
body.cga-portal-page .cga-course-suggestion__price { color:var(--cga-accent-text); font-size:12px; font-weight:800; }
body.cga-portal-page .cga-course-suggestion h3 { margin:5px 0 12px; color:var(--cga-primary); font-family:Georgia,"Times New Roman",serif; font-size:18px; font-weight:400; line-height:1.2; overflow-wrap:anywhere; }
body.cga-portal-page .cga-course-suggestion .cga-button { width:100%; min-height:36px; margin-top:auto; padding:8px 10px; font-size:11px; text-align:center; }
body.cga-portal-page .cga-course-suggestion__soon { margin-top:auto; color:var(--cga-muted); font-size:11px; }
body.cga-portal-page .cga-access-required { display:grid; min-height:100vh; min-height:100dvh; place-items:center; padding:clamp(20px,5vw,60px); background:radial-gradient(circle at 20% 12%,rgba(215,173,99,.32),transparent 28%),linear-gradient(145deg,var(--cga-primary),#10263a); }
body.cga-portal-page .cga-access-required__card { display:flex; width:min(100%,580px); flex-direction:column; align-items:center; padding:clamp(30px,6vw,62px); border:1px solid rgba(255,255,255,.65); border-radius:calc(var(--cga-radius) * 1.25); background:rgba(255,255,255,.97); box-shadow:0 30px 80px rgba(3,16,29,.3); text-align:center; }
body.cga-portal-page .cga-access-required__card .cga-brand { margin-bottom:32px; }
body.cga-portal-page .cga-access-required__icon { display:grid; width:68px; height:68px; margin-bottom:22px; place-items:center; border-radius:50%; background:var(--cga-primary); color:#fff; box-shadow:0 12px 30px rgba(18,40,60,.2); }
body.cga-portal-page .cga-access-required__icon .dashicons { width:30px; height:30px; font-size:30px; }
body.cga-portal-page .cga-access-required h1 { max-width:470px; margin:10px 0 27px; color:var(--cga-primary); font-family:Georgia,"Times New Roman",serif; font-size:clamp(28px,5vw,42px); font-weight:400; line-height:1.12; }
body.cga-portal-page .cga-access-required .cga-button { min-width:210px; }
body.cga-portal-page .cga-access-required__logout { margin-top:18px; color:var(--cga-muted); font-size:12px; }
@media(max-width:767px) {
 body.cga-portal-page .cga-toc { top:0 !important; bottom:auto !important; height:100vh !important; height:100dvh !important; width:min(88vw,360px) !important; max-width:100vw; display:flex !important; flex-direction:column !important; padding:0 !important; }
 body.cga-portal-page .cga-toc > .cga-toc__resize { display:none !important; }
 body.cga-portal-page .cga-toc__footer { padding:12px 16px calc(12px + env(safe-area-inset-bottom)); }
 body.cga-portal-page .cga-toc__heading { padding:calc(16px + env(safe-area-inset-top)) 16px 12px; }
 body.cga-portal-page .cga-toc__heading h2 { font-size:23px !important; }
 body.cga-portal-page .cga-toc__heading button { display:block !important; min-height:40px !important; height:40px !important; width:40px !important; padding:0 !important; }
 body.cga-toc-is-open, body.cga-menu-is-open { overflow:hidden; }
 body.cga-portal-page .cga-player-progress { min-width:70px; flex:1 1 100px; }
 body.cga-portal-page .cga-school-bell { right:12px; width:44px; height:44px; }
 body.cga-portal-page .cga-school-actions > button { width:100%; }
 body.cga-portal-page .cga-sidebar { height:100vh; height:100dvh; overflow-y:auto; }
 body.cga-portal-page .cga-course-library-layout { grid-template-columns:1fr; }
 body.cga-portal-page .cga-course-suggestions { position:static; padding:20px; }
 body.cga-portal-page .cga-course-suggestion { grid-template-columns:88px minmax(0,1fr); }
 body.cga-portal-page .cga-course-suggestion__image { min-height:116px; }
 body.cga-portal-page .cga-access-required__card { padding:32px 22px; }
}
