/* Kursseiten: Übersicht, Wochenseite, Impressum (Basis: base.css) */

/* Kopf (Marineband, Basis in base.css) */
.course { display: flex; align-items: baseline; gap: .45rem; margin: 0 0 var(--sp-2); font-size: var(--fs-sm); font-weight: 600; }
.course .bi { color: var(--sun); }
.week-title { display: flex; flex-wrap: wrap; align-items: center; gap: var(--sp-2) var(--sp-3); margin: 0 0 var(--sp-4); }
.play .week-title { padding-right: 3.75rem; }
.page-head code { background: rgba(255, 255, 255, .14); color: var(--on-hero); }
.week-badge { font: 700 .5em var(--font); letter-spacing: .04em; text-transform: uppercase; color: var(--on-sun); background: var(--sun); padding: .35em 1em; border-radius: var(--r-pill); white-space: nowrap; }
.weeks { display: flex; flex-wrap: wrap; gap: var(--sp-2); list-style: none; padding: 0; margin: 0 0 var(--sp-4); }
.weeks li { margin: 0; width: 1.875rem; height: 1.875rem; display: grid; place-items: center; border-radius: 50%; font: .8rem var(--mono); border: 1px solid var(--hero-muted); color: var(--hero-muted); }
.weeks li.done { border-color: var(--sun); color: var(--sun); }
.weeks li.current { background: var(--sun); border-color: var(--sun); color: var(--on-sun); font-weight: 700; }
.intro { max-width: 46rem; margin-bottom: 0; }

section { margin-top: var(--sp-6); }
main > section:first-of-type, main > .container > section:first-of-type { margin-top: var(--sp-6); }

/* Play-Button: nur Icon, fest oben rechts */
.quick { position: fixed; right: var(--sp-4); top: var(--sp-3); z-index: 20; display: flex; flex-direction: column; align-items: flex-end; gap: var(--sp-2); margin: 0; }
.quick a { display: inline-flex; align-items: center; justify-content: center; width: 3.25rem; height: 3.25rem; border-radius: 50%; background: var(--sun); color: var(--on-sun); box-shadow: var(--shadow-2); text-decoration: none; border: 3px solid var(--hero); }
.quick a .bi { margin: 0; font-size: 1.7rem; }
.quick a:hover { background: var(--on-hero); color: var(--hero); }
.quick a:focus-visible { outline-offset: 3px; }

/* Tagesablauf */
.h-row { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3); margin-bottom: var(--sp-3); }
.h-row h2 { margin: 0; }
.mini { min-height: var(--tap); padding: 0 var(--sp-4); font-size: var(--fs-xs); background: transparent; color: var(--accent); border-color: var(--line-strong); }
.mini:hover:not(:disabled) { background: var(--accent-soft); border-color: var(--accent); color: var(--accent); }
.timeline { list-style: none; padding: 0; margin: 0; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-md); overflow: hidden; box-shadow: var(--shadow-1); }
.timeline > li { margin: 0; border-top: 1px solid var(--line); }
.timeline > li:first-child { border-top: 0; }
.timeline summary, .timeline .row { display: grid; grid-template-columns: 3.1rem 1fr auto; align-items: center; column-gap: var(--sp-3); min-height: var(--tap); padding: var(--sp-2) var(--sp-3); }
.timeline summary { grid-template-columns: 3.1rem 1fr auto 1rem; }
.timeline summary::after { margin-left: 0; }
.timeline .time { font: 600 var(--fs-sm) var(--mono); color: var(--accent); }
.timeline .tt { font-weight: 500; line-height: 1.3; }
.timeline .tt .bi { color: var(--muted); }
.timeline .dur { font: var(--fs-xs) var(--mono); color: var(--muted); white-space: nowrap; }
.timeline .more { padding: 0 var(--sp-3) var(--sp-4) calc(3.1rem + var(--sp-3) * 2); }
.timeline .more p { margin: 0; font-size: var(--fs-sm); color: var(--muted); }
.timeline li.pause { background: var(--surface-2); }
.timeline li.pause .tt { color: var(--muted); font-weight: 400; }
.timeline li.pause .time { color: var(--muted); }
.timeline li.now { background: var(--gold-soft); box-shadow: inset 4px 0 0 var(--sun); }
.timeline li.now .time::after { content: " ● jetzt"; font-size: .7em; }

/* Material */
details.mat-group { margin: 0 0 var(--sp-3); background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-md); box-shadow: var(--shadow-1); }
details.mat-group > summary { padding: var(--sp-2) var(--sp-4); font-weight: 600; }
details.mat-group > summary .gt .bi { color: var(--accent); }
details.mat-group > summary .cnt { margin-left: auto; font: var(--fs-xs) var(--mono); color: var(--muted); background: var(--surface-2); padding: .15em .6em; border-radius: var(--r-pill); }
details.mat-group > summary::after { margin-left: 0; }
details.mat-group > .mat-note { margin: 0 var(--sp-4) var(--sp-3); font-size: var(--fs-sm); color: var(--muted); }
.mat-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 17rem), 1fr)); gap: var(--sp-3); }
details.mat-group > .mat-grid { padding: 0 var(--sp-4) var(--sp-4); }
.mat { display: flex; gap: var(--sp-3); align-items: center; width: 100%; min-height: 4rem; padding: var(--sp-3); text-align: left; font: inherit; font-weight: 400; color: var(--text); text-decoration: none; background: var(--bg); border: 1px solid var(--line); border-radius: var(--r-md); cursor: pointer; }
a.mat:hover, button.mat:hover:not(:disabled) { background: var(--accent-soft); border-color: var(--accent); color: var(--text); }
.mat .ico { flex: none; width: 2.5rem; height: 2.5rem; display: grid; place-items: center; border-radius: var(--r-sm); background: var(--gold-soft); color: var(--gold); font-size: 1.2rem; }
.mat .ico .bi { margin: 0; }
.mat > span:nth-child(2) { flex: 1; min-width: 0; }
.mat b { display: block; line-height: 1.3; }
.mat small { display: block; margin-top: .15rem; color: var(--muted); line-height: 1.4; }
.mat .go { flex: none; color: var(--muted); }
.mat.soon { cursor: default; border-style: dashed; border-color: var(--line-strong); background: transparent; color: var(--muted); }
.mat.soon .ico { background: var(--surface-2); color: var(--muted); }
.mat .tag, .tag-soon { display: inline-block; font: normal 600 .65rem var(--mono); text-transform: uppercase; letter-spacing: .05em; padding: .1em .55em; border: 1px solid var(--line-strong); border-radius: var(--r-pill); color: var(--muted); vertical-align: .1em; white-space: nowrap; }
.mat.img { flex-direction: column; align-items: stretch; }
.mat.img img { width: 100%; max-height: 10rem; object-fit: cover; border-radius: var(--r-sm); background: var(--surface-2); }
/* Hochformat: Vorschau oben anschneiden, damit der Titel sichtbar bleibt */
.mat.img img.portrait { object-position: top; }
.mat.img .row { display: flex; gap: var(--sp-3); align-items: center; width: 100%; }

/* Spickzettel */
.steps { padding-left: 1.25rem; }
.steps li { margin-bottom: var(--sp-2); }
.tips { list-style: none; padding: 0; margin: 0; }
.tips li { margin: 0 0 var(--sp-3); font-size: var(--fs-sm); padding-left: 1.7em; text-indent: -1.7em; }
.tips li .bi { color: var(--accent); width: 1.3em; text-indent: 0; }
.tips li .bi-exclamation-triangle { color: var(--warm); }
.card .xl-wrap { margin-top: 0; }

/* Lernziele (ganz unten, zugeklappt) */
#goals { margin-top: var(--sp-6); }
details.goals > .goals-body { padding: var(--sp-2) var(--sp-4) var(--sp-5); }
.goals h4 { margin: var(--sp-5) 0 var(--sp-3); color: var(--muted); font-size: var(--fs-xs); text-transform: uppercase; letter-spacing: .08em; }
.goals .goal-grob { margin-bottom: var(--sp-2); background: var(--accent-soft); box-shadow: none; }
.goals .goal-lead { color: var(--muted); font-style: italic; }
.goals .card { background: var(--bg); box-shadow: none; }
.goals .grid-cards { grid-template-columns: 1fr; }
.goals .grid-cards > .card { border-top: 3px solid var(--accent); }
.goals .grid-cards > .card:nth-child(2) { border-top-color: var(--sun); }
.goals .grid-cards > .card:nth-child(3) { border-top-color: var(--warm); }
@media (min-width: 60rem) { .goals .grid-cards { grid-template-columns: repeat(var(--cols, 3), 1fr); } }
.goals .goal-list li { margin-bottom: var(--sp-2); }

/* Kursübersicht */
.week-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 15rem), 1fr)); gap: var(--sp-3); }
.wk { display: flex; align-items: center; justify-content: space-between; gap: var(--sp-3); min-height: 6rem; padding: var(--sp-4); color: var(--text); text-decoration: none; background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-md); box-shadow: var(--shadow-1); }
a.wk:hover { border-color: var(--accent); color: var(--text); background: var(--accent-soft); }
.wk-body { display: flex; flex-direction: column; gap: .15rem; min-width: 0; }
.wk-num { font: 600 var(--fs-xs) var(--mono); color: var(--accent); text-transform: uppercase; letter-spacing: .06em; }
.wk-title { font: 700 var(--fs-lg)/1.25 var(--font-head); line-height: 1.3; }
.wk small { color: var(--muted); line-height: 1.4; }
.wk-go { flex: none; display: grid; place-items: center; width: 2.5rem; height: 2.5rem; border-radius: 50%; background: var(--sun); color: var(--on-sun); }
.wk.soon { border-style: dashed; border-color: var(--line-strong); background: transparent; box-shadow: none; }
.wk.soon .wk-num, .wk.soon .wk-title { color: var(--muted); }

/* Lightbox */
#lightbox { border: 0; padding: var(--sp-3); background: transparent; width: 100%; max-width: none; height: 100%; max-height: none; color: var(--text); }
#lightbox[open] { display: grid; place-items: center; }
#lightbox::backdrop { background: var(--scrim); }
#lightbox article { position: relative; margin: 0; width: 100%; max-width: min(96vw, 60rem); max-height: 94vh; overflow: auto; padding: var(--sp-4); background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-lg); box-shadow: var(--shadow-2); }
#lightbox article img { display: block; width: 100%; max-height: 74vh; object-fit: contain; border-radius: var(--r-sm); background: var(--surface-2); }
.lb-cap { margin: var(--sp-3) 0 var(--sp-2); color: var(--muted); font-size: var(--fs-sm); }
.lb-open { display: inline-flex; align-items: center; min-height: var(--tap); }
.lb-close { position: absolute; top: var(--sp-2); right: var(--sp-2); width: var(--tap); padding: 0; z-index: 1; border-radius: 50%; box-shadow: var(--shadow-1); }

@media (max-width: 30rem) {
  .timeline summary, .timeline .row { grid-template-columns: 2.9rem 1fr auto; column-gap: var(--sp-2); }
  .timeline summary { grid-template-columns: 2.9rem 1fr auto 1rem; }
  .timeline .more { padding-left: calc(2.9rem + var(--sp-2) + var(--sp-3)); }
  .timeline .dur { display: none; }
  .timeline .tt { font-size: var(--fs-sm); }
  .quick { right: var(--sp-3); top: var(--sp-3); }
}
.xl.fit { width: 100%; }
.xl.fit th, .xl.fit td { white-space: normal; }
.xl.fit td:last-child { white-space: nowrap; }

/* Wochen verlinken: Punkte im Kopf als Links, Zurück/Weiter am Seitenende */
.weeks li.online { padding: 0; }
.weeks li.online a { position: relative; display: grid; place-items: center; width: 100%; height: 100%; border-radius: 50%; color: inherit; text-decoration: none; }
.weeks li.online a::after { content: ""; position: absolute; inset: -.4rem -.25rem; }
.weeks li.online:hover { background: var(--sun); color: var(--on-sun); }
.pager { display: grid; grid-template-columns: 1fr 1fr; gap: var(--sp-3); margin-top: var(--sp-6); }
.pager[hidden] { display: none; }
.pager .wk { min-height: 4.5rem; justify-content: flex-start; }
.pager .pager-next { justify-content: flex-end; text-align: right; }
.pager .wk > .bi { flex: none; color: var(--accent); font-size: 1.25rem; }
@media (max-width: 40rem) { .pager { grid-template-columns: 1fr; } .pager > span:empty { display: none; } }
