/* Course header: explicit actions and readable course identity. */
body:not(.is-course-player) .topbar .player-support-label { display:none; }
body.is-course-player { --player-header-height:76px; }
body.is-course-player .topbar { background:#182d47; color:white; height:auto; min-height:76px; padding:12px clamp(20px,3vw,48px); display:grid; grid-template-columns:auto minmax(0,1fr) auto auto; gap:24px; align-items:center; border-bottom:1px solid #30475f; box-shadow:0 3px 12px rgb(14 32 54 / 8%); }
body.is-course-player .topbar .brand-button { gap:11px; min-height:44px; min-width:44px; width:auto; }
body.is-course-player .topbar .brand-mark { width:40px; height:40px; flex:0 0 40px; box-shadow:none; border:0; border-radius:10px; }
body.is-course-player .topbar .brand-button .campus-brand-copy { display:grid !important; gap:4px; }
body.is-course-player .topbar .campus-brand-wordmark { width:86px; height:18px; }
body.is-course-player .topbar .brand-button .campus-brand-copy small { display:block; font-size:11px; font-weight:400; line-height:1.4; color:#bbcee3; letter-spacing:.02em; }
body.is-course-player .topbar .course-player-heading { gap:14px; min-width:0; grid-column:2; grid-row:1; }
body.is-course-player .topbar .course-player-divider { display:none; }
body.is-course-player .topbar .course-player-title-copy { display:grid; gap:5px; min-width:0; }
body.is-course-player .topbar .course-player-title-copy small { display:block; color:#bbcee3; font-size:11px; font-weight:500; letter-spacing:.03em; text-transform:none; line-height:1.4; }
body.is-course-player .topbar .course-player-title-copy strong { color:white; font-size:16px; font-weight:600; line-height:1.45; max-width:100%; }
body.is-course-player .topbar :is(.course-player-actions > button,.player-progress-disclosure > button,.topbar-actions > button,.player-back-button) { display:inline-flex; height:44px; min-height:44px; border-radius:10px; color:#f7fbff; background:#233c57; border:1px solid #466078; font-family:inherit; font-size:13px; font-weight:500; gap:9px; padding:9px 13px; cursor:pointer; transition:background-color .15s,border-color .15s; }
body.is-course-player .topbar :is(.course-player-actions > button,.player-progress-disclosure > button,.topbar-actions > button,.player-back-button):hover { background:#304d6c; border-color:#7d9ab9; transform:none; }
body.is-course-player .topbar :is(button,a):focus-visible { outline:3px solid #b9dcff; outline-offset:3px; }
body.is-course-player .topbar .player-back-button { width:44px; flex:0 0 44px; padding:0; background:transparent; border-color:#405770; }
body.is-course-player .topbar .course-player-actions { grid-column:3; grid-row:1; gap:10px; min-width:0; }
body.is-course-player .topbar .course-player-actions > .curriculum-open-button { background:#285ea4; border-color:#5487c7; width:auto; padding:10px 14px; }
body.is-course-player .topbar .curriculum-open-button span { font-size:13px; font-weight:600; }
body.is-course-player .topbar .curriculum-open-button:hover,body.is-course-player .topbar .curriculum-open-button[aria-expanded=true] { background:#3471bb; border-color:#88b4e7; }
body.is-course-player .topbar .player-progress-disclosure > .player-progress-button { padding:5px 10px !important; width:auto; height:48px; gap:9px; }
body.is-course-player .topbar .player-progress-button > span:not(.player-progress-ring) { display:grid; gap:3px; }
body.is-course-player .topbar .player-progress-button strong { font-size:11px; font-weight:400; line-height:1.25; color:#c7d8ea; }
body.is-course-player .topbar .player-progress-button small { color:white; font-size:14px; font-weight:600; line-height:1.25; }
body.is-course-player .topbar .player-action-chevron { display:block; width:12px; height:12px; transition:transform .15s; }
body.is-course-player .topbar .player-progress-button[aria-expanded=true] > .player-action-chevron { transform:rotate(180deg); }
body.is-course-player .topbar .player-progress-ring { width:30px; height:30px; flex-basis:30px; background:conic-gradient(#94ccff var(--progress),#49637f 0); }
body.is-course-player .topbar .player-progress-ring::before { background:#233c57; }
body.is-course-player .topbar .topbar-actions { grid-column:4; grid-row:1; gap:10px; width:auto; }
body.is-course-player .topbar .topbar-actions > [data-open-support] { width:auto; padding:9px 13px; }
body.is-course-player .topbar .player-support-label { position:static; background:transparent; color:inherit; border:0; padding:0; height:auto; min-width:0; font-size:13px; line-height:1.4; font-weight:500; }
body.is-course-player .topbar .topbar-actions > .profile-chip { width:auto; height:44px; min-height:44px; min-width:44px !important; padding:5px 10px 5px 6px !important; gap:9px; }
body.is-course-player .topbar .profile-chip > span:first-child { width:32px; height:32px; flex:0 0 32px; border-radius:50%; font-size:11px; font-weight:600; background:#e7f1fc; color:#194a83; }
body.is-course-player .topbar .profile-chip b { display:block; font-size:13px; font-weight:500; white-space:nowrap; }
body.is-course-player .topbar .profile-chip-chevron { display:block; width:12px; height:12px; }
body.is-course-player .topbar .player-progress-popover { position:absolute; left:auto; width:360px; max-width:calc(100vw - 24px); padding:0; gap:0; text-align:left; background:#fff; border:1px solid #d5e0ed; border-radius:18px; box-shadow:0 20px 60px rgb(8 27 51 / 24%); isolation:isolate; }
body.is-course-player .topbar .progress-celebration { position:relative; padding:25px 24px 22px; border-radius:17px 17px 0 0; color:#fff; background:radial-gradient(ellipse at 5% 0%,#315e88 0,transparent 65%),linear-gradient(135deg,#173d63,#142c46); }
body.is-course-player .topbar .progress-kicker { display:block; padding-right:28px; color:#c6dcf2; font-size:11px; font-weight:500; letter-spacing:.07em; line-height:1.6; }
body.is-course-player .topbar .progress-hero-line { display:flex; gap:18px; align-items:center; margin:23px 0 17px; }
body.is-course-player .topbar .progress-hero-line > strong { color:#fff; font-size:23px; font-weight:600; letter-spacing:-.025em; line-height:1.3; overflow-wrap:anywhere; }
body.is-course-player .topbar .progress-celebration p { color:#d3e2f1; font-size:13px; font-weight:400; line-height:1.75; margin:0 0 18px; }
body.is-course-player .topbar .progress-celebration > small { display:block; color:#e1ebf7; font-size:12px; font-weight:400; line-height:1.6; }
body.is-course-player .topbar .progress-celebration-track { height:5px; margin-top:10px; border-radius:5px; overflow:hidden; background:#49637e; }
body.is-course-player .topbar .progress-celebration-track i { display:block; height:100%; width:var(--progress); border-radius:inherit; background:#88c8ff; }
body.is-course-player .topbar .player-progress-popover > .progress-certificate-link { display:flex; align-items:center; justify-content:space-between; gap:12px; width:100%; min-height:60px; padding:16px 24px; background:#fff; border:0; border-radius:0 0 17px 17px; color:#194e87; line-height:1.5; font-family:inherit; font-size:13px; font-weight:600; cursor:pointer; }
body.is-course-player .topbar .progress-certificate-link:hover { background:#f0f6fd; }
body.is-course-player .topbar .progress-certificate-link svg { width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.7; }
body.is-course-player .topbar .player-progress-popover > .player-progress-close { position:absolute; z-index:2; right:8px; top:8px; padding:0; width:44px; min-height:44px; height:44px; display:grid; place-items:center; border:0; background:transparent; color:#d6e5f5; border-radius:50%; cursor:pointer; }
body.is-course-player .topbar .player-progress-close:hover { background:#ffffff18; color:#fff; }
body.is-course-player .topbar .player-progress-close svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.8; }
body.is-course-player .topbar .player-progress-popover :is(button,a):focus-visible { outline-color:#80bfff; outline-offset:-5px; }
body.is-course-player [data-player-progress-disclosure][data-progress-stage=complete] .progress-kicker { color:#f6d990; }
body.is-course-player [data-player-progress-disclosure][data-progress-stage=complete] .progress-celebration { background:radial-gradient(ellipse at 5% 8%,#51605d 0,transparent 60%),linear-gradient(135deg,#173d63,#142c46); }
body.is-course-player [data-player-progress-disclosure][data-progress-stage=complete] .progress-celebration-track i { background:linear-gradient(90deg,#c99c45,#f2d794); }
body.is-course-player .topbar [data-progress-stage=complete] .player-progress-ring { background:conic-gradient(#efd28b var(--progress),#49637f 0); color:#f6d990; }
/* Shared progress medallion. Completion celebrates lessons, never academic approval. */
body.is-course-player .course-progress-dial { --dial-color:#9cd5ff; --dial-inner:#1c3b59; display:grid; place-items:center; position:relative; width:96px; height:96px; flex:0 0 96px; padding:5px; border-radius:50%; background:conic-gradient(from -90deg,var(--dial-color) var(--progress),#ffffff24 0); box-shadow:0 0 0 6px #ffffff06; }
body.is-course-player .course-progress-dial > span { display:flex; flex-direction:column; align-items:center; justify-content:center; width:100%; height:100%; border-radius:50%; color:#fff; background:var(--dial-inner); box-shadow:inset 0 0 0 1px #ffffff12; }
body.is-course-player .course-progress-dial svg { width:24px; height:24px; fill:none; stroke:var(--dial-color); stroke-width:1.5; }
body.is-course-player .course-progress-dial strong { color:#fff; font-size:26px; font-weight:600; line-height:1.25; letter-spacing:-.04em; }
body.is-course-player .course-progress-dial small { margin-left:2px; color:#d6e5f5; font-size:12px; font-weight:400; letter-spacing:0; }
body.is-course-player [data-progress-stage=complete] .course-progress-dial { --dial-color:#efd28b; box-shadow:0 0 0 6px #efd28b0b,0 0 30px #efd28b12; }
body.is-course-player .curriculum-panel { top:calc(var(--player-header-height) + 20px); height:calc(100dvh - var(--player-header-height) - 40px); }
body.is-course-player .review-editor-v18 { top:calc(var(--player-header-height) + 20px); }
@media (max-width:1100px) {
  body.is-course-player .learning-main { padding-top:var(--player-header-height); }
  body.is-course-player .curriculum-panel,body.is-course-player.is-curriculum-collapsed .curriculum-panel { top:var(--player-header-height); height:calc(100dvh - var(--player-header-height)); }
  body.is-course-player .curriculum-scrim { inset:var(--player-header-height) 0 0; }
}
@media (max-width:1000px) {
  body.is-course-player { --player-header-height:122px; }
  body.is-course-player .topbar { grid-template-columns:minmax(0,1fr) auto; gap:12px; padding:10px 20px 12px; min-height:122px; }
  body.is-course-player .topbar .brand-button { grid-column:1; grid-row:1; justify-self:start; }
  body.is-course-player .topbar .topbar-actions { grid-column:2; grid-row:1; }
  body.is-course-player .topbar .course-player-heading { grid-column:1; grid-row:2; gap:10px; }
  body.is-course-player .topbar .course-player-actions { grid-column:2; grid-row:2; gap:8px; }
  body.is-course-player .topbar .course-player-title-copy strong { font-size:14px; }
  body.is-course-player .topbar .topbar-actions > [data-open-support] { padding:0; width:44px; }
  body.is-course-player .topbar :is(.player-support-label,.profile-chip b,.profile-chip-chevron) { display:none; }
  body.is-course-player .topbar .topbar-actions > .profile-chip { padding:5px !important; width:44px; }
  body.is-course-player .topbar .player-progress-button strong { display:none; }
  body.is-course-player .topbar .player-progress-button > .player-action-chevron { display:none; }
  body.is-course-player .topbar .player-progress-disclosure { position:static; }
  body.is-course-player .topbar .player-progress-popover { top:calc(100% + 8px); right:12px; max-height:calc(100dvh - var(--player-header-height) - 24px); overflow:auto; }
}
@media (max-width:520px) {
  body.is-course-player .topbar { gap:12px 10px; padding-inline:12px; }
  body.is-course-player .topbar .course-player-title-copy { gap:3px; }
  body.is-course-player .topbar .course-player-title-copy strong { font-size:13px; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:2; white-space:normal; overflow-wrap:anywhere; }
  body.is-course-player .topbar .course-player-title-copy small { font-size:10px; }
  body.is-course-player .topbar .course-player-heading { gap:8px; }
  body.is-course-player .topbar .course-player-actions > .curriculum-open-button { width:44px; height:44px; padding:0; }
  body.is-course-player .topbar .curriculum-open-button span { position:absolute; clip:rect(0,0,0,0); clip-path:inset(50%); width:1px; height:1px; overflow:hidden; }
  body.is-course-player .topbar .player-progress-ring { display:none; }
  body.is-course-player .topbar .player-progress-disclosure > .player-progress-button { min-width:66px; height:44px; padding:9px 10px !important; }
  body.is-course-player .topbar .player-progress-button small { font-size:13px; }
  body.is-course-player .topbar .progress-celebration { padding:23px 20px 20px; }
  body.is-course-player .topbar .progress-hero-line { gap:15px; }
  body.is-course-player .topbar .progress-hero-line > strong { font-size:21px; }
  body.is-course-player .topbar .progress-certificate-link { padding-inline:20px; }
}
@media (max-height:500px) and (min-width:600px) {
  body.is-course-player .topbar .player-progress-popover { width:400px; }
  body.is-course-player .topbar .progress-celebration { padding:18px 22px; }
  body.is-course-player .topbar .progress-hero-line { margin:12px 0; gap:17px; }
  body.is-course-player .topbar .progress-hero-line > strong { font-size:20px; }
  body.is-course-player .topbar .progress-celebration p { display:none; }
  body.is-course-player .topbar .course-progress-dial { width:64px; height:64px; flex-basis:64px; padding:4px; }
  body.is-course-player .topbar .course-progress-dial svg { width:18px; height:18px; }
  body.is-course-player .topbar .course-progress-dial strong { font-size:21px; }
  body.is-course-player .topbar .course-progress-dial small { font-size:10px; }
  body.is-course-player .topbar .progress-celebration-track { margin-top:8px; }
  body.is-course-player .topbar .player-progress-popover > .progress-certificate-link { min-height:52px; padding:12px 22px; }
}
@media (prefers-reduced-motion:reduce) {
  body.is-course-player .topbar :is(button,svg) { transition:none !important; }
  body.is-course-player .topbar .player-progress-popover { animation:none; }
}
