
.dc-wrap   { max-width: 60rem; margin: 0 auto; padding: 2rem 1.25rem 4rem; }
.dc-screen h1 { font-family: var(--display); font-weight: 600; font-size: clamp(1.55rem, 6vw, 1.9rem);
  letter-spacing: -0.01em; color: var(--text); margin: 0 0 0.4rem; overflow-wrap: anywhere; }
.dc-lead   { color: var(--text-soft); max-width: 46rem; margin: 0 0 1.4rem; }
.dc-muted  { color: var(--muted); }

.dc-panel  { background: var(--panel); border: 1px solid var(--edge);
  border-radius: var(--radius-sig); padding: 1.1rem 1.25rem; margin-top: 1.1rem; }
.dc-panel__title { font-family: var(--display); font-weight: 500; font-size: 1.02rem;
  color: var(--text-soft); margin: 0 0 0.7rem; display: flex; align-items: baseline; gap: 0.6rem; }
.dc-panel--neu .dc-panel__title { color: var(--accent-2); }
.dc-panel p { color: var(--muted); }

.dc-list { display: flex; flex-direction: column; }
.dc-row  { display: flex; justify-content: space-between; align-items: baseline;
  gap: 0.75rem; flex-wrap: wrap; padding: 0.55rem 0; border-top: 1px solid var(--border-soft); }
.dc-row:first-child { border-top: 0; }
.dc-row__main { display: inline-flex; align-items: baseline; gap: 0.6rem; min-width: 0; flex: 1; }
.dc-row__main a { overflow-wrap: anywhere; }

.dc-chip { flex: none; font-family: var(--mono); font-size: 0.64rem; text-transform: uppercase;
  letter-spacing: 0.05em; color: var(--muted); border: 1px solid var(--border-soft);
  border-radius: var(--radius-pill); padding: 0.14rem 0.5rem; }
.dc-count { font-family: var(--mono); font-size: 0.64rem; color: var(--muted);
  border: 1px solid var(--border-soft); border-radius: var(--radius-pill); padding: 0.05rem 0.55rem; }

.dc-meta { flex: none; font-size: 0.82rem; color: var(--muted); }
.dc-link { color: var(--accent); text-decoration: none; }

.dc-btn { display: inline-flex; align-items: center; justify-content: center; gap: 0.4rem;
  min-height: var(--tap-min);
  font-family: var(--mono); font-size: 0.7rem; font-weight: 500; letter-spacing: 0.07em;
  text-transform: uppercase; color: var(--text); cursor: pointer;
  padding: 0.72rem 1.5rem; border-radius: var(--radius-pill);
  border: 1px solid color-mix(in oklch, var(--accent) 45%, transparent);
  background: color-mix(in oklch, var(--accent) 16%, var(--panel)); }
.dc-btn:disabled { opacity: 0.55; cursor: default; }
.dc-btn:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.dc-btn:hover { background: color-mix(in oklch, var(--accent) 16%, var(--panel));
  border-color: color-mix(in oklch, var(--accent) 45%, transparent); }

.dc-adminbar { display: flex; align-items: center; gap: 1rem; flex-wrap: wrap; margin-top: 1.2rem; }
.dc-adminbar form { margin: 0; }
.dc-adminbar .dc-meta { color: var(--text-soft); }

.dc-field, .dc-select { font-family: var(--display); font-size: 0.95rem; color: var(--text);
  background: var(--panel); border: 1px solid var(--edge); border-radius: var(--radius-pill);
  padding: 0.6rem 1rem; width: 100%; }
.dc-field:focus, .dc-select:focus { outline: none; border-color: var(--accent);
  box-shadow: 0 0 0 3px color-mix(in oklch, var(--accent) 22%, transparent); }

.dc-nav { display: inline-flex; flex-wrap: wrap; gap: 0.35rem 1rem; }
.dc-nav a { font-family: var(--mono); font-size: 0.68rem; letter-spacing: 0.06em;
  color: var(--muted); text-decoration: none; }
.dc-nav a[aria-current] { color: var(--text); box-shadow: inset 0 -2px 0 var(--accent-2); }

.dc-dialog { background: var(--panel); border: 1px solid var(--edge);
  border-radius: var(--radius-sig); padding: 1.25rem; max-width: 32rem; color: var(--text-soft); }
.dc-dialog::backdrop { background: color-mix(in oklch, var(--bg-0) 72%, transparent); }

.dc-empty { color: var(--muted); padding: 0.4rem 0; }

.dc-filter { display: flex; align-items: center; gap: 0.6rem; flex-wrap: wrap;
  margin-top: 1.4rem; }
.dc-filter__feld { flex: 1 1 22rem; min-width: 0; margin: 0; }
.dc-filter__ergebnis { display: block; margin: 0.9rem 0 0; }

.dc-jahre { display: flex; flex-wrap: wrap; align-items: center; gap: 0.4rem;
  margin-top: 1.4rem; }
.dc-jahre__label { font-family: var(--mono); font-size: 0.62rem; letter-spacing: 0.12em;
  text-transform: uppercase; color: var(--muted); margin-right: 0.35rem; }
.dc-chip--jahr { font-size: 0.7rem; padding: 0.24rem 0.7rem; }
.dc-jahre + .dc-filter { margin-top: 0.75rem; }

.dc-filterchips { display: flex; flex-wrap: wrap; gap: 0.4rem; margin-top: 0.8rem; }
.dc-chip--filter { text-decoration: none;
  display: inline-flex; align-items: center; min-height: var(--tap-min); }
.dc-chip--filter b { font-weight: 600; color: var(--text-soft); }
.dc-chip--filter:hover { color: var(--text-soft);
  border-color: color-mix(in oklch, var(--accent) 45%, transparent); }
.dc-chip--filter.ist-aktiv { color: var(--accent);
  border-color: color-mix(in oklch, var(--accent) 55%, transparent);
  background: color-mix(in oklch, var(--accent) 12%, transparent); }
.dc-chip--filter.ist-aktiv b { color: var(--accent); }

.dc-kurs { padding: 0; }
.dc-kurs > summary { display: flex; align-items: baseline; gap: 0.6rem;
  padding: 1.1rem 1.25rem; cursor: pointer; list-style: none;
  font-family: var(--display); font-weight: 500; font-size: 1.02rem;
  color: var(--text-soft); }
.dc-kurs > summary::-webkit-details-marker { display: none; }
.dc-kurs > summary:hover { color: var(--text); }
.dc-kurs > summary:focus-visible { outline: 2px solid var(--accent);
  outline-offset: -3px; border-radius: var(--radius-sig); }
.dc-kurs__name { flex: 1; min-width: 0; overflow-wrap: anywhere; }
.dc-kurs__pfeil { flex: none; color: var(--accent); font-size: 1.15rem; line-height: 1; }
.dc-kurs[open] > summary .dc-kurs__pfeil { transform: rotate(90deg); }
.dc-kurs__inhalt { padding: 0 1.25rem 1.1rem; }

@media (prefers-reduced-motion: no-preference) {
  .dc-kurs__pfeil { transition: transform 0.2s var(--ease); }
}
.dc-error { color: var(--text-soft); border-radius: var(--radius-sig); padding: 0.75rem 0.95rem;
  margin-top: 1.1rem; background: color-mix(in oklch, var(--warn) 12%, var(--panel));
  border: 1px solid color-mix(in oklch, var(--warn) 40%, transparent); }
.dc-loading { display: inline-block; width: 0.6rem; height: 0.6rem;
  border-radius: var(--radius-pill); background: var(--accent-2); opacity: 0.5; }

.dc-kicker { font-family: var(--mono); font-size: 0.72rem; text-transform: uppercase;
  letter-spacing: 0.14em; color: var(--muted); margin: 0 0 0.5rem; }
.dc-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 0.7rem; margin-top: 1.4rem; }
.dc-prose { color: var(--muted); }
.dc-prose p { margin: 0 0 0.7rem; }
.dc-prose > :last-child { margin-bottom: 0; }
.dc-prose ul { margin: 0 0 0.7rem; padding-left: 1.15rem; display: flex; flex-direction: column; gap: 0.45rem; }
.dc-prose strong { color: var(--text-soft); font-weight: 600; }
.dc-prose a { color: var(--accent); text-decoration: underline; }
.dc-prose code { font-family: var(--mono); font-size: 0.85em; color: var(--text-soft);
  overflow-wrap: anywhere; word-break: break-all; }

.dc-form { display: flex; flex-direction: column; gap: 1rem; }
.dc-form label:not(.dc-check) { display: flex; flex-direction: column; gap: 0.3rem;
  font-size: 0.82rem; color: var(--muted); }
.dc-form button { align-self: flex-start; }

.dc-panel--danger { border-color: color-mix(in oklch, var(--warn) 40%, transparent); }
.dc-btn--danger { color: var(--text);
  border-color: color-mix(in oklch, var(--warn) 55%, transparent);
  background: color-mix(in oklch, var(--warn) 18%, var(--panel)); }
.dc-btn--danger:hover { border-color: color-mix(in oklch, var(--warn) 55%, transparent);
  background: color-mix(in oklch, var(--warn) 18%, var(--panel)); }

.dc-auth { position: relative; min-height: 100vh; min-height: 100dvh; display: flex; flex-wrap: wrap;
  align-items: stretch; }

.dc-auth-sky { position: fixed; inset: 0; z-index: -1; overflow: hidden;
  pointer-events: none; background: var(--bg-0);
  --sky-stars-1: 2084px 1670px var(--sky-star-akz),2060px 1430px var(--sky-star),371px 1682px var(--sky-star),1997px 316px var(--sky-star),1546px 14px var(--sky-star-akz),1031px 442px var(--sky-star),943px 1633px var(--sky-star),559px 1816px var(--sky-star-akz),215px 1910px var(--sky-star),1465px 1714px var(--sky-star-akz),1078px 848px var(--sky-star),1192px 1661px var(--sky-star),2014px 273px var(--sky-star-akz),317px 1903px var(--sky-star),2256px 793px var(--sky-star),164px 1802px var(--sky-star),1427px 1420px var(--sky-star),1957px 812px var(--sky-star),708px 902px var(--sky-star),200px 30px var(--sky-star),1730px 1784px var(--sky-star-akz),1027px 382px var(--sky-star),319px 725px var(--sky-star),334px 1832px var(--sky-star-akz),463px 717px var(--sky-star-akz),403px 1632px var(--sky-star),1131px 1268px var(--sky-star),670px 1167px var(--sky-star),2172px 267px var(--sky-star),1962px 1424px var(--sky-star),2336px 1542px var(--sky-star),1219px 818px var(--sky-star),2356px 1530px var(--sky-star-akz),1643px 588px var(--sky-star-akz),1179px 1399px var(--sky-star),1136px 456px var(--sky-star),2192px 1066px var(--sky-star),2347px 1183px var(--sky-star-akz),2138px 1951px var(--sky-star-akz),166px 1477px var(--sky-star-akz),1455px 1486px var(--sky-star-akz),286px 337px var(--sky-star),1936px 1330px var(--sky-star),1944px 250px var(--sky-star-akz),2203px 722px var(--sky-star-akz),2018px 1559px var(--sky-star-akz),721px 196px var(--sky-star-akz),244px 1733px var(--sky-star),2141px 1091px var(--sky-star),375px 1802px var(--sky-star-akz),274px 406px var(--sky-star-akz),570px 533px var(--sky-star),170px 831px var(--sky-star),2122px 1512px var(--sky-star-akz),957px 985px var(--sky-star),340px 84px var(--sky-star),1459px 263px var(--sky-star-akz),2205px 821px var(--sky-star-akz),324px 1775px var(--sky-star-akz),1006px 1333px var(--sky-star);
  --sky-stars-2: 527px 1017px var(--sky-star-lav),908px 1549px var(--sky-star-lav2),1454px 842px var(--sky-star-lav2),2276px 352px var(--sky-star-lav),1359px 1712px var(--sky-star-lav2),1194px 334px var(--sky-star-lav),205px 679px var(--sky-star-lav),566px 487px var(--sky-star-lav2),634px 903px var(--sky-star-lav),1393px 643px var(--sky-star-lav),125px 1704px var(--sky-star-lav2),1848px 1732px var(--sky-star-lav2),1739px 1434px var(--sky-star-lav),281px 284px var(--sky-star-lav2),1294px 286px var(--sky-star-lav),1396px 1774px var(--sky-star-lav),1798px 625px var(--sky-star-lav),1110px 1922px var(--sky-star-lav2),2340px 1978px var(--sky-star-lav),1962px 1431px var(--sky-star-lav2),1503px 1396px var(--sky-star-lav),1782px 1661px var(--sky-star-lav2),1790px 235px var(--sky-star-lav),1907px 376px var(--sky-star-lav),749px 716px var(--sky-star-lav2),672px 46px var(--sky-star-lav2),1067px 1528px var(--sky-star-lav),1475px 1838px var(--sky-star-lav2),2024px 767px var(--sky-star-lav2),1549px 411px var(--sky-star-lav2),1885px 191px var(--sky-star-lav),2213px 35px var(--sky-star-lav2),2373px 1212px var(--sky-star-lav2),720px 696px var(--sky-star-lav),1250px 313px var(--sky-star-lav2),1598px 900px var(--sky-star-lav2),680px 772px var(--sky-star-lav),1885px 321px var(--sky-star-lav2),2185px 625px var(--sky-star-lav2),36px 835px var(--sky-star-lav2),1002px 340px var(--sky-star-lav2),648px 1000px var(--sky-star-lav2),1555px 418px var(--sky-star-lav2),1510px 1396px var(--sky-star-lav2),842px 1263px var(--sky-star-lav),1531px 1427px var(--sky-star-lav2),1799px 1601px var(--sky-star-lav),210px 976px var(--sky-star-lav2),983px 847px var(--sky-star-lav2),574px 996px var(--sky-star-lav2),1271px 1368px var(--sky-star-lav2),1504px 1876px var(--sky-star-lav),1639px 1731px var(--sky-star-lav),248px 457px var(--sky-star-lav2),1487px 26px var(--sky-star-lav),437px 1832px var(--sky-star-lav2),276px 1905px var(--sky-star-lav),847px 1735px var(--sky-star-lav),2227px 260px var(--sky-star-lav2),865px 778px var(--sky-star-lav2),247px 1994px var(--sky-star-lav2),1697px 1568px var(--sky-star-lav2),2124px 1030px var(--sky-star-lav),1228px 503px var(--sky-star-lav),2211px 1842px var(--sky-star-lav),2194px 503px var(--sky-star-lav2),2173px 246px var(--sky-star-lav),765px 1461px var(--sky-star-lav2),1032px 610px var(--sky-star-lav2),462px 511px var(--sky-star-lav),301px 1424px var(--sky-star-lav2),834px 708px var(--sky-star-lav),2384px 251px var(--sky-star-lav2),428px 1879px var(--sky-star-lav2),345px 31px var(--sky-star-lav2),2380px 409px var(--sky-star-lav),914px 1490px var(--sky-star-lav2),2378px 1059px var(--sky-star-lav2),913px 1544px var(--sky-star-lav2),2220px 33px var(--sky-star-lav2),1534px 700px var(--sky-star-lav2),192px 1310px var(--sky-star-lav2),1456px 1634px var(--sky-star-lav),1272px 110px var(--sky-star-lav),1987px 430px var(--sky-star-lav2),1741px 844px var(--sky-star-lav),800px 1024px var(--sky-star-lav),1526px 1293px var(--sky-star-lav),125px 190px var(--sky-star-lav2),1317px 197px var(--sky-star-lav),1419px 765px var(--sky-star-lav),1116px 1752px var(--sky-star-lav2),22px 1666px var(--sky-star-lav),1692px 1828px var(--sky-star-lav2),1801px 587px var(--sky-star-lav2),160px 68px var(--sky-star-lav),2251px 850px var(--sky-star-lav),2173px 1805px var(--sky-star-lav2),584px 990px var(--sky-star-lav),818px 19px var(--sky-star-lav),1px 313px var(--sky-star-lav),1878px 1096px var(--sky-star-lav),1386px 1580px var(--sky-star-lav2),1237px 498px var(--sky-star-lav),254px 1176px var(--sky-star-lav),604px 1919px var(--sky-star-lav2),957px 884px var(--sky-star-lav),2097px 1127px var(--sky-star-lav2),1993px 1312px var(--sky-star-lav2),672px 101px var(--sky-star-lav),18px 120px var(--sky-star-lav),1459px 385px var(--sky-star-lav2),483px 414px var(--sky-star-lav),1639px 1819px var(--sky-star-lav2),104px 410px var(--sky-star-lav2),1930px 56px var(--sky-star-lav2),938px 1588px var(--sky-star-lav),1431px 315px var(--sky-star-lav),1240px 1243px var(--sky-star-lav2),632px 1320px var(--sky-star-lav);
  --sky-stars-3: 205px 260px var(--sky-star-dim),2359px 625px var(--sky-star-dim),1654px 656px var(--sky-star-dim),1802px 1815px var(--sky-star-dim),1792px 827px var(--sky-star-dim),1706px 719px var(--sky-star-dim),362px 1053px var(--sky-star-dim2),162px 1606px var(--sky-star-dim2),2210px 1376px var(--sky-star-dim2),1616px 894px var(--sky-star-dim),1598px 766px var(--sky-star-dim2),674px 1749px var(--sky-star-dim),539px 1591px var(--sky-star-dim),900px 1311px var(--sky-star-dim),2190px 187px var(--sky-star-dim),245px 645px var(--sky-star-dim2),923px 984px var(--sky-star-dim2),951px 1732px var(--sky-star-dim2),2366px 1627px var(--sky-star-dim),1872px 801px var(--sky-star-dim),1088px 1018px var(--sky-star-dim),938px 698px var(--sky-star-dim),826px 796px var(--sky-star-dim),1645px 1746px var(--sky-star-dim),808px 1742px var(--sky-star-dim),1515px 115px var(--sky-star-dim),1658px 240px var(--sky-star-dim),1464px 72px var(--sky-star-dim),2313px 282px var(--sky-star-dim2),2268px 1576px var(--sky-star-dim),1003px 758px var(--sky-star-dim2),866px 1928px var(--sky-star-dim2),1443px 288px var(--sky-star-dim),794px 1913px var(--sky-star-dim),2080px 367px var(--sky-star-dim),1431px 682px var(--sky-star-dim2),1565px 1280px var(--sky-star-dim2),974px 1167px var(--sky-star-dim),1395px 31px var(--sky-star-dim),593px 428px var(--sky-star-dim),1121px 1409px var(--sky-star-dim2),1872px 1886px var(--sky-star-dim),247px 322px var(--sky-star-dim2),2060px 695px var(--sky-star-dim2),1786px 499px var(--sky-star-dim),828px 1058px var(--sky-star-dim),805px 1402px var(--sky-star-dim2),285px 511px var(--sky-star-dim2),2275px 1556px var(--sky-star-dim),272px 992px var(--sky-star-dim),2269px 129px var(--sky-star-dim2),685px 426px var(--sky-star-dim2),2338px 574px var(--sky-star-dim2),2247px 282px var(--sky-star-dim2),2223px 92px var(--sky-star-dim),2302px 1857px var(--sky-star-dim),1470px 395px var(--sky-star-dim2),2388px 1254px var(--sky-star-dim2),1072px 260px var(--sky-star-dim),1159px 347px var(--sky-star-dim),1433px 1845px var(--sky-star-dim),1346px 748px var(--sky-star-dim2),1261px 1058px var(--sky-star-dim2),1600px 470px var(--sky-star-dim2),1569px 377px var(--sky-star-dim2),508px 1532px var(--sky-star-dim),112px 1132px var(--sky-star-dim2),672px 401px var(--sky-star-dim2),890px 824px var(--sky-star-dim),343px 361px var(--sky-star-dim2),840px 577px var(--sky-star-dim2),339px 44px var(--sky-star-dim),728px 1213px var(--sky-star-dim2),1942px 518px var(--sky-star-dim),289px 413px var(--sky-star-dim),210px 1636px var(--sky-star-dim2),212px 1847px var(--sky-star-dim),1879px 1064px var(--sky-star-dim),1457px 946px var(--sky-star-dim2),1387px 384px var(--sky-star-dim),98px 1429px var(--sky-star-dim2),308px 494px var(--sky-star-dim),1247px 1379px var(--sky-star-dim),399px 1279px var(--sky-star-dim),1910px 1294px var(--sky-star-dim),907px 1314px var(--sky-star-dim2),334px 954px var(--sky-star-dim),1443px 1256px var(--sky-star-dim),460px 856px var(--sky-star-dim2),766px 1613px var(--sky-star-dim),521px 1358px var(--sky-star-dim),820px 794px var(--sky-star-dim2),2173px 1214px var(--sky-star-dim),260px 693px var(--sky-star-dim),1428px 1673px var(--sky-star-dim2),1038px 1363px var(--sky-star-dim),1271px 923px var(--sky-star-dim2),1491px 1299px var(--sky-star-dim2),1949px 1856px var(--sky-star-dim2),1162px 1771px var(--sky-star-dim2),152px 1562px var(--sky-star-dim),1415px 160px var(--sky-star-dim2),915px 1020px var(--sky-star-dim),1260px 1434px var(--sky-star-dim2),308px 1017px var(--sky-star-dim),678px 1808px var(--sky-star-dim2),1623px 1492px var(--sky-star-dim2),1150px 536px var(--sky-star-dim),378px 1057px var(--sky-star-dim),722px 1143px var(--sky-star-dim),297px 86px var(--sky-star-dim2),1786px 720px var(--sky-star-dim),2389px 1821px var(--sky-star-dim2),597px 1762px var(--sky-star-dim2),1494px 216px var(--sky-star-dim),2026px 1844px var(--sky-star-dim),1666px 724px var(--sky-star-dim),1846px 317px var(--sky-star-dim),2036px 101px var(--sky-star-dim),2156px 402px var(--sky-star-dim),553px 1023px var(--sky-star-dim2),1713px 1721px var(--sky-star-dim),509px 1147px var(--sky-star-dim),1366px 1322px var(--sky-star-dim),1329px 1007px var(--sky-star-dim),185px 1034px var(--sky-star-dim2),606px 1902px var(--sky-star-dim2),499px 1735px var(--sky-star-dim),1181px 752px var(--sky-star-dim2),1429px 402px var(--sky-star-dim2),1892px 514px var(--sky-star-dim),822px 1504px var(--sky-star-dim2),887px 1780px var(--sky-star-dim2),2266px 724px var(--sky-star-dim),1637px 825px var(--sky-star-dim),1040px 1549px var(--sky-star-dim2),12px 1005px var(--sky-star-dim2),626px 418px var(--sky-star-dim2),1591px 1861px var(--sky-star-dim2),847px 1550px var(--sky-star-dim2),2340px 1918px var(--sky-star-dim),1014px 1117px var(--sky-star-dim),1992px 1538px var(--sky-star-dim2),1253px 769px var(--sky-star-dim),1863px 1235px var(--sky-star-dim),899px 1272px var(--sky-star-dim2),2023px 83px var(--sky-star-dim2),1052px 124px var(--sky-star-dim2),458px 1078px var(--sky-star-dim),1057px 208px var(--sky-star-dim),910px 961px var(--sky-star-dim),1334px 234px var(--sky-star-dim),1222px 570px var(--sky-star-dim2),1934px 1298px var(--sky-star-dim),2351px 1267px var(--sky-star-dim),1058px 1254px var(--sky-star-dim),1125px 1516px var(--sky-star-dim),1777px 1990px var(--sky-star-dim),1541px 1443px var(--sky-star-dim),996px 1447px var(--sky-star-dim),1012px 251px var(--sky-star-dim),399px 1841px var(--sky-star-dim),517px 1976px var(--sky-star-dim),1405px 1396px var(--sky-star-dim),502px 1807px var(--sky-star-dim),1243px 1589px var(--sky-star-dim),1726px 93px var(--sky-star-dim),1658px 1054px var(--sky-star-dim),2210px 1114px var(--sky-star-dim2),2239px 1833px var(--sky-star-dim2),116px 1354px var(--sky-star-dim),1199px 248px var(--sky-star-dim),519px 1417px var(--sky-star-dim),1393px 807px var(--sky-star-dim),979px 1144px var(--sky-star-dim2),1039px 1588px var(--sky-star-dim2),1626px 893px var(--sky-star-dim2),2074px 753px var(--sky-star-dim2),2005px 1731px var(--sky-star-dim2),418px 131px var(--sky-star-dim),1097px 819px var(--sky-star-dim2),2367px 578px var(--sky-star-dim),279px 1511px var(--sky-star-dim2),1850px 1299px var(--sky-star-dim2),367px 1692px var(--sky-star-dim),107px 177px var(--sky-star-dim2),1558px 997px var(--sky-star-dim2),702px 1965px var(--sky-star-dim),2172px 892px var(--sky-star-dim),1393px 895px var(--sky-star-dim),1125px 1054px var(--sky-star-dim),353px 1597px var(--sky-star-dim2),2142px 153px var(--sky-star-dim),1342px 1649px var(--sky-star-dim2),95px 684px var(--sky-star-dim),2329px 575px var(--sky-star-dim),1661px 1116px var(--sky-star-dim),1796px 1990px var(--sky-star-dim2),714px 1435px var(--sky-star-dim2),1749px 745px var(--sky-star-dim),1922px 147px var(--sky-star-dim),18px 653px var(--sky-star-dim2),842px 850px var(--sky-star-dim2),1328px 1012px var(--sky-star-dim2),1206px 1804px var(--sky-star-dim),719px 1747px var(--sky-star-dim),1336px 1061px var(--sky-star-dim2),1490px 337px var(--sky-star-dim2),1557px 374px var(--sky-star-dim),1564px 921px var(--sky-star-dim2),2145px 1856px var(--sky-star-dim),548px 267px var(--sky-star-dim2),233px 765px var(--sky-star-dim2),662px 304px var(--sky-star-dim2),661px 611px var(--sky-star-dim),433px 742px var(--sky-star-dim),1578px 1290px var(--sky-star-dim2),563px 1902px var(--sky-star-dim2),2318px 1717px var(--sky-star-dim2),1548px 1599px var(--sky-star-dim2); }
.dc-auth-neb { position: absolute; inset: -20%; mix-blend-mode: screen; }
.dc-auth-neb--1 { background: radial-gradient(38% 34% at 32% 30%, var(--sky-neb-1), transparent 68%); }
.dc-auth-neb--2 { background: radial-gradient(42% 38% at 70% 62%, var(--sky-neb-2), transparent 70%); }
.dc-auth-neb--3 { background: radial-gradient(48% 40% at 52% 84%, var(--sky-neb-3), transparent 72%); }
.dc-auth-drift { position: absolute; left: 0; top: 0; width: 1px; height: 2000px; }
.dc-auth-drift--1 { opacity: 0.9; }
.dc-auth-drift--2 { opacity: 0.75; }
.dc-auth-drift--3 { opacity: 0.55; }
.dc-auth-stars { position: absolute; left: 0; top: 0; border-radius: 50%; background: transparent; }
.dc-auth-stars--b { top: 2000px; }
.dc-auth-drift--1 .dc-auth-stars { width: 2px; height: 2px; box-shadow: var(--sky-stars-1); }
.dc-auth-drift--2 .dc-auth-stars { width: 1.5px; height: 1.5px; box-shadow: var(--sky-stars-2); }
.dc-auth-drift--3 .dc-auth-stars { width: 1px; height: 1px; box-shadow: var(--sky-stars-3); }
.dc-auth-shoot { position: absolute; height: 1px; opacity: 0; transform-origin: right center;
  background: linear-gradient(90deg, var(--sky-shoot-start), var(--sky-star) 62%, var(--sky-shoot-tip)); }
.dc-auth-shoot--1 { top: 12%; left: 78%; width: 190px; }
.dc-auth-shoot--2 { top: 34%; left: 92%; width: 150px; }
.dc-auth-shoot--3 { top: 8%; left: 58%; width: 220px; }

.dc-auth-side { position: relative; z-index: 1; flex: 1.15 1 26.25rem; display: flex;
  flex-direction: column; justify-content: space-between; gap: 2.5rem;
  padding: clamp(1.75rem, 5vw, 4.5rem);
  background: linear-gradient(150deg, var(--auth-veil-strong), var(--auth-veil-soft)); }
.dc-auth-panel { position: relative; z-index: 1; flex: 1 1 23.75rem; display: flex;
  align-items: flex-start;
  padding: clamp(1.75rem, 5vw, 4.5rem); background: var(--auth-right-bg); }

.dc-auth-marke { display: flex; align-items: baseline; gap: 0.875rem; margin: 0;
  font-family: var(--mono); font-size: 0.6875rem; letter-spacing: 0.4em;
  text-transform: uppercase; color: var(--auth-label); }
.dc-auth-kuerzel { color: var(--auth-accent-mid); }
.dc-auth-strich { flex: 0 0 clamp(1.875rem, 6vw, 5.625rem); height: 1px;
  background: var(--auth-akzent); opacity: 0.55; }
.dc-auth-title { margin: 0; font-family: var(--display); font-weight: 700;
  font-size: clamp(2.375rem, 6.5vw, 5.375rem); line-height: 0.96;
  letter-spacing: -0.035em; color: var(--text); }
.dc-auth-title b { font-weight: 700; color: var(--auth-akzent); }
.dc-auth-side > div { margin-block: auto; }

.dc-auth-lead { margin: 1.25rem 0 0; max-width: 38ch; font-size: 0.9375rem;
  line-height: 1.65; color: var(--auth-label); text-wrap: pretty; }

.dc-auth-card { width: 100%; max-width: 26.25rem; margin-block: auto; display: flex; flex-direction: column;
  gap: 1.125rem; padding: clamp(1.375rem, 3vw, 2rem);
  border: 1px solid var(--auth-card-edge); border-top: 1px solid var(--auth-card-top);
  background: var(--auth-card-bg); border-radius: var(--radius-sig); }

.dc-auth-field { display: flex; flex-direction: column; gap: 0.5rem; margin: 0; }
.dc-auth-field > span { font-family: var(--mono); font-size: 0.625rem; letter-spacing: 0.26em;
  text-transform: uppercase; color: var(--auth-label); }
.dc-auth-box { display: flex; align-items: center; gap: 0.625rem; padding: 0 0.25rem 0 1rem;
  border: 1px solid var(--auth-field-edge); background: var(--panel); }
.dc-auth-box:focus-within { border-color: var(--auth-akzent);
  outline: 2px solid var(--auth-akzent); outline-offset: 2px; }
.dc-auth-box input:focus-visible { outline: none; }
.dc-auth-box input:focus { box-shadow: none; }
.dc-auth-box input { flex: 1; min-width: 0; width: 100%; margin: 0; background: transparent;
  border: 0; outline: none; color: var(--text); font-family: var(--mono);
  font-size: 1rem; padding: 1rem 0; }
.dc-auth-box input::placeholder { color: var(--muted-2); }

.dc-auth-eye { flex: none; display: inline-flex; align-items: center; justify-content: center;
  min-width: 2.75rem; min-height: 2.75rem; padding: 0; border: 0; background: transparent; cursor: pointer; }
.dc-auth-eye > span { position: relative; display: block; width: 42px; height: 22px;
  border-radius: var(--radius-pill); border: 1px solid var(--auth-toggle-edge);
  background: var(--auth-toggle-track); }
.dc-auth-knob { position: absolute; left: 3px; top: 2px; width: 16px; height: 16px;
  border-radius: 50%; background: var(--auth-label); transform: translateX(0); }
.dc-auth-eye[aria-checked="true"] .dc-auth-knob { transform: translateX(20px); }
.dc-auth-eye:focus-visible { outline: 2px solid var(--auth-akzent); outline-offset: 2px; }

.dc-auth-submit { position: relative; min-height: 3.25rem; margin: 0.125rem 0 0; cursor: pointer;
  border: 1px solid color-mix(in srgb, var(--auth-akzent) 50%, transparent);
  background: color-mix(in srgb, var(--auth-akzent) 18%, transparent);
  color: var(--auth-submit-text); font-family: var(--mono); font-size: 0.75rem; letter-spacing: 0.22em;
  text-transform: uppercase; border-radius: var(--radius-sig-btn); }
.dc-auth-submit > span { display: flex; align-items: center; justify-content: center; gap: 0.625rem; }
.dc-auth-busy { position: absolute; inset: 0; opacity: 0; transform: translateY(6px); }
.dc-auth-spin { flex: none; width: 0.8125rem; height: 0.8125rem; border-radius: 50%;
  border: 1.5px solid color-mix(in srgb, var(--auth-submit-text) 30%, transparent); border-top-color: var(--auth-submit-text); }
.dc-auth-submit:focus-visible { outline: 2px solid var(--auth-akzent); outline-offset: 2px; }

.dc-auth-error { display: flex; align-items: center; gap: 0.5rem; margin: 0;
  font-family: var(--mono); font-size: 0.75rem; line-height: 1.5; color: var(--auth-accent-mid); }
.dc-auth-hinweis { display: flex; align-items: center; gap: 0.5rem; margin: 0;
  font-family: var(--mono); font-size: 0.75rem; line-height: 1.5; color: var(--sky-star-lav); }

.dc-auth-foot { display: flex; justify-content: space-between; align-items: baseline;
  flex-wrap: wrap; gap: 0.75rem 1.2rem; margin: 0;
  font-family: var(--mono); font-size: 0.6875rem; line-height: 1.55; color: var(--muted); }
.dc-auth-foot a { color: var(--sky-star-lav); text-decoration: none; }
.dc-auth-foot a:hover { text-decoration: underline; }

.dc-auth-check { display: flex; align-items: flex-start; gap: 0.6rem; margin: 0;
  font-family: var(--mono); font-size: 0.72rem; line-height: 1.6; color: var(--text-soft); cursor: pointer; }
.dc-auth-check input { flex: none; margin-top: 0.2rem; accent-color: var(--auth-akzent); }
.dc-auth-check a { color: var(--accent); text-decoration: underline; }

@media (max-width: 52rem) {
  .dc-auth { flex-direction: column; flex-wrap: nowrap; border-radius: 0; }
  .dc-auth-side { flex: 0 0 auto; gap: 1rem;
    padding: clamp(1.75rem, 7vw, 2.75rem) clamp(1.25rem, 6vw, 2rem) 1rem;
    background: linear-gradient(180deg, var(--auth-veil-strong), var(--auth-veil-soft)); }
  .dc-auth-panel { flex: 1 1 auto; align-items: flex-start;
    padding: 0.5rem clamp(1.25rem, 6vw, 2rem) clamp(2.5rem, 10vw, 3.5rem);
    background: var(--auth-veil-soft); }
  .dc-auth-title { font-size: clamp(2rem, 9vw, 2.75rem); line-height: 1.08; }
  .dc-auth-marke { letter-spacing: 0.24em; }
  .dc-auth-field > span { letter-spacing: 0.14em; }
  .dc-auth-card { max-width: none; width: 100%; }
}

@media (prefers-reduced-motion: no-preference) {
  .dc-auth-neb--1 { animation: csx-neb1 46s ease-in-out infinite; }
  .dc-auth-neb--2 { animation: csx-neb2 62s ease-in-out infinite; }
  .dc-auth-neb--3 { animation: csx-neb3 84s ease-in-out infinite; }
  .dc-auth-drift--1 { animation: csx-drift 13s linear infinite; }
  .dc-auth-drift--2 { animation: csx-drift 22s linear infinite; }
  .dc-auth-drift--3 { animation: csx-drift 34s linear infinite; }
  .dc-auth-shoot--1 { animation: csx-starfall 9s cubic-bezier(.4, 0, .7, 1) 0s infinite; }
  .dc-auth-shoot--2 { animation: csx-starfall 11.5s cubic-bezier(.4, 0, .7, 1) 4.5s infinite; }
  .dc-auth-shoot--3 { animation: csx-starfall 13s cubic-bezier(.4, 0, .7, 1) 9.2s infinite; }
  .dc-auth-knob { transition: transform 0.42s cubic-bezier(.34, 1.56, .64, 1), background 0.25s var(--ease); }
  .dc-auth-submit > span { transition: opacity 0.18s ease, transform 0.28s cubic-bezier(.2, .8, .2, 1); }
  .dc-auth-spin { animation: csx-spin 0.7s linear infinite; }
  .dc-auth-card--shake { animation: csx-shake 0.5s cubic-bezier(.36, .07, .19, .97); }
  .dc-auth-submit { transition: background 0.2s var(--ease), border-color 0.2s var(--ease), transform 0.2s var(--ease); }
  .dc-auth-eye > span { transition: background 0.25s var(--ease), border-color 0.25s var(--ease); }
}
body.anims-paused .dc-auth-sky * { animation: none !important; }
#navProgress.htmx-request ~ #appShell .dc-auth-idle { opacity: 0; }
#navProgress.htmx-request ~ #appShell .dc-auth-busy { opacity: 1; transform: translateY(0); }

@keyframes csx-neb1 { 0%, 100% { transform: translate3d(-6%, -4%, 0) scale(1.05); } 50% { transform: translate3d(7%, 5%, 0) scale(1.18); } }
@keyframes csx-neb2 { 0%, 100% { transform: translate3d(8%, 6%, 0) scale(1.14); } 50% { transform: translate3d(-7%, -6%, 0) scale(1); } }
@keyframes csx-neb3 { 0%, 100% { transform: translate3d(-4%, 8%, 0) scale(1); } 50% { transform: translate3d(6%, -7%, 0) scale(1.22); } }
@keyframes csx-drift { from { transform: translate3d(0, 0, 0); } to { transform: translate3d(0, -2000px, 0); } }
@keyframes csx-starfall { 0% { transform: translate3d(0, 0, 0) rotate(28deg); opacity: 0; } 3% { opacity: 1; } 26% { opacity: 0.9; } 30%, 100% { transform: translate3d(-620px, 420px, 0) rotate(28deg); opacity: 0; } }
@keyframes csx-shake { 0%, 100% { transform: translateX(0); } 18% { transform: translateX(-7px); } 36% { transform: translateX(6px); } 54% { transform: translateX(-4px); } 72% { transform: translateX(3px); } 88% { transform: translateX(-1px); } }
@keyframes csx-spin { to { transform: rotate(360deg); } }

.dc-check { display: flex; align-items: flex-start; gap: 0.55rem; font-size: 0.85rem;
  color: var(--muted); cursor: pointer; }
.dc-check input { flex: none; margin-top: 0.15rem; accent-color: var(--accent); }
.dc-check a { color: var(--accent); text-decoration: underline; }

.dc-wrap--weit { max-width: 72rem; }
.dc-table-wrap { position: relative; overflow-x: auto; overscroll-behavior-x: contain;
  background: var(--panel); border: 1px solid var(--edge); border-radius: var(--radius-sig); }
.dc-table { border-collapse: collapse; width: 100%; min-width: 32rem; }
.dc-table th, .dc-table td { padding: 0.5rem 0.7rem; text-align: left; vertical-align: top;
  border-bottom: 1px solid var(--border-soft); }
.dc-table tbody tr:last-child th, .dc-table tbody tr:last-child td { border-bottom: 0; }
.dc-table thead th { color: var(--text); font-weight: 600;
  background: color-mix(in oklch, var(--accent) 12%, var(--panel)); }
.dc-table small { color: var(--muted); }

.dc-plan th, .dc-plan td { text-align: center; border: 1px solid var(--border-soft); }
.dc-plan .std { font-family: var(--mono); font-weight: 400; color: var(--muted);
  white-space: nowrap; width: 7.5rem; }
.dc-plan thead th[aria-current="date"] {
  background: color-mix(in oklch, var(--accent-2) 16%, var(--panel));
  border-radius: 7px 7px 0 0;
  box-shadow: inset 0 -2px 0 var(--accent-2),
              inset 0 0 20px -10px var(--schein-jetzt); }
.dc-plan thead th[aria-current="date"] small { color: var(--accent-2); opacity: 0.9; }

.dc-plan .dc-fach { font-weight: 600; color: var(--fc-text, var(--text)); }

.dc-plan .dc-fach-link small { display: block; font-size: 0.72rem;
  line-height: 1.45; color: var(--text-soft); }
.dc-plan tr.dc-pause td { color: var(--muted); font-style: italic; }

.dc-block-list { display: flex; flex-direction: column; gap: 0.5rem;
  list-style: none; margin: 0; padding: 0; }
.dc-block-row { display: flex; align-items: baseline; flex-wrap: wrap; gap: 0.35rem 0.8rem;
  padding: 0.6rem 0.85rem; text-decoration: none; color: var(--text);
  border: 1px solid var(--border-soft); border-radius: var(--radius-sig); }
.dc-block-row[aria-current] { border-color: color-mix(in oklch, var(--accent) 55%, transparent); }
.dc-block-name { font-family: var(--display); font-weight: 500; }
.dc-block-date { font-family: var(--mono); font-size: 0.82rem; color: var(--muted); margin-left: auto; }
.dc-chip--live { color: var(--accent-2); border-color: color-mix(in oklch, var(--accent-2) 45%, transparent); }

@media (prefers-reduced-motion: no-preference) {
  .dc-btn, .dc-link, .dc-chip { transition:
      transform var(--ms-hover-ein) var(--ease),
      opacity   var(--ms-hover-ein) var(--ease); }
  .dc-loading { animation: dc-pulse 1.1s var(--ease) infinite; }
}
@keyframes dc-pulse { 0%, 100% { opacity: 0.4; } 50% { opacity: 1; } }
@media (any-pointer: fine) and (prefers-reduced-motion: no-preference) {
  .dc-btn:not(:disabled):hover  { transform: translateY(-1px) scale(1.02); }
  .dc-btn:not(:disabled):active { transform: scale(0.98); }
  .dc-link:hover { color: var(--text); text-decoration: underline; }
  .dc-row:hover .dc-chip { color: var(--text-soft); }
  .dc-auth-submit:not(:disabled):hover { transform: translateY(-1px);
    background: color-mix(in srgb, var(--auth-akzent) 30%, transparent);
    border-color: color-mix(in srgb, var(--auth-akzent-hover) 85%, transparent); }
}

.dc-plan td[rowspan] { vertical-align: middle; }
.dc-fach-meta { letter-spacing: 0.02em; color: var(--muted); }

.dc-kurs__quelle { display: block; font-family: var(--mono); font-size: 0.62rem;
  font-weight: 400; letter-spacing: 0.04em; color: var(--muted); margin-top: 0.15rem; }
.dc-kurs__quelle--offen { color: var(--accent-2); }
.dc-mats { display: flex; flex-direction: column; }
.dc-mat + .dc-mat { margin-top: 1.15rem; padding-top: 1.15rem;
  border-top: 1px solid var(--border-soft); }
.dc-mat.hat-loesung { padding-bottom: 0.3rem; }

.dc-mat__kopf { display: flex; flex-wrap: wrap; align-items: baseline;
  gap: 0.3rem 0.65rem; }
.dc-mat__kopf > .dc-chip { min-width: 4.6rem; text-align: center; }
.dc-mat__titel { flex: 1 1 12rem; min-width: 0; overflow-wrap: anywhere; }
.dc-mat__datum { flex: none; font-family: var(--mono); font-size: 0.62rem;
  color: var(--muted); white-space: nowrap; }

.dc-abgabe { flex: none; margin: 0; }
.dc-abgabe > summary { display: inline-flex; align-items: center; gap: 0.3rem;
  list-style: none; cursor: pointer; border-radius: var(--radius-pill);
  padding: 0.42rem 0.55rem; margin: -0.42rem 0;
  font-family: var(--mono); font-size: 0.6rem; letter-spacing: 0.06em;
  text-transform: uppercase; color: var(--muted); }
.dc-abgabe > summary::-webkit-details-marker { display: none; }
.dc-abgabe > summary:focus-visible { outline: 2px solid var(--accent);
  outline-offset: 2px; color: var(--text); }
.dc-abgabe__pfeil { font-size: 0.85rem; line-height: 1; }
.dc-abgabe[open] > summary { color: var(--accent); }
.dc-abgabe[open] { flex: 1 1 100%; }
.dc-abgabe__form { display: flex; flex-wrap: wrap; align-items: center;
  gap: 0.5rem; margin-top: 0.45rem; padding: 0.7rem 0.85rem;
  border: 1px dashed var(--border); border-radius: var(--radius-sig);
  background: color-mix(in oklch, var(--accent) 4%, transparent); }
.dc-abgabe__form input[type=file] { flex: 1 1 11rem; min-width: 0;
  font-size: 0.72rem; color: var(--muted); }
.dc-abgabe__hinweis { flex: 1 1 100%; margin: 0; font-family: var(--mono);
  font-size: 0.6rem; letter-spacing: 0.04em; color: var(--muted); }
.dc-btn--klein { min-height: var(--tap-min); padding: 0.3rem 0.8rem; font-size: 0.6rem; }

.dc-verschieben[open] > summary { color: var(--accent); }
.dc-verschieben .dc-abgabe__form {
  border-color: color-mix(in oklch, var(--accent) 40%, transparent);
  background: color-mix(in oklch, var(--accent) 5%, transparent); }
.dc-verschieben select { flex: 1 1 11rem; min-width: 0; }

.dc-inhalt { flex: none; margin: 0; }
.dc-inhalt > summary { display: inline-flex; align-items: center; gap: 0.3rem;
  list-style: none; cursor: pointer; border-radius: var(--radius-pill);
  padding: 0.42rem 0.55rem; margin: -0.42rem 0;
  font-family: var(--mono); font-size: 0.6rem; letter-spacing: 0.06em;
  text-transform: uppercase; color: var(--muted);
  transition: color 0.2s var(--ease); }
.dc-inhalt > summary::-webkit-details-marker { display: none; }
.dc-inhalt > summary:hover { color: var(--text-soft); }
.dc-inhalt > summary:focus-visible { outline: 2px solid var(--accent);
  outline-offset: 2px; color: var(--text); }
.dc-inhalt[open] > summary { color: var(--accent-2); }
.dc-inhalt[open] { flex: 1 1 100%; }
.dc-inhalt__pfeil { display: inline-block; font-size: 0.85rem; line-height: 1;
  transition: transform 0.2s var(--ease); }
.dc-inhalt[open] .dc-inhalt__pfeil { transform: rotate(90deg); }
@media (prefers-reduced-motion: reduce) {
  .dc-inhalt__pfeil { transition: none; }
}
.dc-inhalt__liste { list-style: none; margin: 0.45rem 0 0; padding: 0.6rem 0.85rem;
  border: 1px dashed color-mix(in oklch, var(--accent-2) 40%, transparent);
  border-radius: var(--radius-sig);
  background: color-mix(in oklch, var(--accent-2) 4%, transparent); }
.dc-inhalt__zeile { display: flex; flex-wrap: wrap; align-items: baseline;
  gap: 0.35rem; padding: 0.2rem 0; font-size: 0.86rem; }
.dc-inhalt__zeile > a { min-width: 0; overflow-wrap: anywhere; }
.dc-inhalt__pfad { font-family: var(--mono); font-size: 0.62rem;
  letter-spacing: 0.04em; color: var(--muted); }
.dc-inhalt__groesse { font-family: var(--mono); font-size: 0.62rem;
  letter-spacing: 0.04em; color: var(--muted); white-space: nowrap; }

.dc-hinweis-sortieren {
  margin: 0 0 0.9rem; padding: 0.7rem 0.9rem; font-size: 0.88rem;
  color: var(--text-soft);
  border-left: 2px solid var(--accent);
  background: color-mix(in oklch, var(--accent) 6%, transparent); }
.dc-hinweis-sortieren b { font-weight: 600; color: var(--text); }

.dc-bloecke { list-style: none; margin: 0 0 1.1rem; padding: 0;
  display: flex; flex-direction: column; gap: 1px;
  background: var(--rand); border: 1px solid var(--rand); }
.dc-block form { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem;
  margin: 0; padding: 0.6rem 0.75rem; background: var(--panel); }
.dc-block__name { flex: 1 1 12rem; min-width: 0; font-size: 0.9rem;
  color: var(--text-soft); overflow-wrap: anywhere; }
.dc-block__zahl { flex: none; font-family: var(--mono); font-size: 0.62rem;
  color: var(--muted); font-variant-numeric: tabular-nums; }
.dc-block select { flex: 0 1 11rem; min-width: 6rem; margin-top: 0; }
.dc-block.hat-vorschlag form {
  box-shadow: inset 2px 0 0 color-mix(in oklch, var(--accent) 65%, transparent); }
.dc-block__hinweis { flex: 1 1 100%; font-family: var(--mono); font-size: 0.58rem;
  letter-spacing: 0.05em; color: var(--accent); }
.dc-kurs.ist-unsortiert { border-left: 3px dashed color-mix(in oklch, var(--accent) 45%, transparent); }

.dc-kursweit { margin: 0 0 1.1rem; display: flex; flex-direction: column; gap: 1px; }
.dc-kursweit__block { border-left: 3px dotted var(--border-soft);
  padding-left: 0.7rem; }
.dc-kursweit__kopf { display: flex; flex-wrap: wrap; align-items: baseline;
  gap: 0.15rem 0.5rem; padding: 0.35rem 0; cursor: pointer;
  list-style: none; font-size: 0.82rem; color: var(--text-soft); }
.dc-kursweit__kopf::-webkit-details-marker { display: none; }
.dc-kursweit__pfeil { flex: none; color: var(--muted);
  transition: transform var(--ms-hover-aus) var(--ease); }
.dc-kursweit__block[open] .dc-kursweit__pfeil { transform: rotate(90deg); }
.dc-kursweit__name { min-width: 0; overflow-wrap: anywhere; }
.dc-kursweit__vermerk { flex: 1 1 100%; font-family: var(--mono);
  font-size: 0.58rem; letter-spacing: 0.05em; color: var(--muted); }
.dc-kursweit__liste { list-style: none; margin: 0 0 0.5rem; padding: 0;
  display: flex; flex-direction: column; gap: 0.4rem; font-size: 0.8rem; }
.dc-kursweit__liste li { display: flex; flex-wrap: wrap; align-items: baseline;
  gap: 0.15rem 0.45rem; }

.dc-mat__dateien { flex: none; font-family: var(--mono); font-size: 0.62rem;
  color: var(--muted); white-space: nowrap; font-variant-numeric: tabular-nums; }

@media (prefers-reduced-motion: reduce) {
  .dc-kursweit__pfeil { transition: none; }
}

.dc-loesungen { list-style: none; margin: 0.4rem 0 0; padding: 0 0 0 1.1rem;
  display: flex; flex-direction: column; gap: 0.3rem; }
.dc-loesung { display: flex; flex-wrap: wrap; align-items: baseline;
  gap: 0.15rem 0.45rem; font-size: 0.78rem;
  padding-left: 1.2rem; }
.dc-loesung__ast { flex: none; width: 0.75rem; height: 0.55em;
  margin-left: -1.2rem; align-self: flex-start; transform: translateY(0.3em);
  border-left: 1px solid color-mix(in oklch, var(--muted) 45%, transparent);
  border-bottom: 1px solid color-mix(in oklch, var(--muted) 45%, transparent);
  border-bottom-left-radius: 4px; }
.dc-loesung__name { color: var(--text-soft); text-decoration: underline;
  text-decoration-color: var(--border); text-underline-offset: 3px;
  overflow-wrap: anywhere; flex: 0 1 auto; min-width: min(100%, 12rem); }
.dc-loesung__wer { flex: none; font-family: var(--mono); font-size: 0.62rem;
  letter-spacing: 0.04em; color: var(--muted); }
.dc-loesung__weg { margin: 0; }
.dc-loesung__weg::before { content: '·'; margin-right: 0.4rem;
  color: color-mix(in oklch, var(--muted) 55%, transparent); }
.dc-loesung__weg-knopf { background: none; border: 0; cursor: pointer;
  padding: 0.35rem 0.3rem; margin: -0.35rem 0;
  font-family: var(--mono); font-size: 0.62rem; letter-spacing: 0.06em;
  text-transform: uppercase; color: var(--muted); }
.dc-loesung__weg-knopf:focus-visible { outline: 2px solid var(--warn);
  outline-offset: 2px; color: var(--text); }

.dc-plan td.ist-jetzt { position: relative; }
.dc-plan td.ist-jetzt::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  box-shadow: 0 0 30px -12px var(--schein-jetzt);
}

.dc-jetzt-lauf { display: none; }
.dc-plan td.ist-jetzt .dc-jetzt-lauf {
  display: block; position: absolute; inset: 0; pointer-events: none;
  padding: 2px; overflow: hidden;
  -webkit-mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
  -webkit-mask-composite: xor;
          mask: linear-gradient(#fff 0 0) content-box, linear-gradient(#fff 0 0);
          mask-composite: exclude;
}
.dc-plan td.ist-jetzt .dc-jetzt-lauf::before {
  content: ""; position: absolute; inset: -70%;
  background: conic-gradient(from 0deg,
    color-mix(in oklch, var(--accent-2) 30%, transparent) 0 55%,
    color-mix(in oklch, var(--accent-2) 60%, transparent) 72%,
    var(--accent-2) 82%, var(--led-hell) 86%, var(--accent-2) 90%,
    color-mix(in oklch, var(--accent-2) 30%, transparent) 100%);
}

@media (prefers-reduced-motion: no-preference) {
  .dc-plan td.ist-jetzt::after { animation: jetzt-atmen 2.8s ease-in-out infinite; }
  @keyframes jetzt-atmen { 0%, 100% { opacity: 0.55; } 50% { opacity: 1; } }
  .dc-plan td.ist-jetzt .dc-jetzt-lauf::before {
    animation: jetzt-umlauf 4.2s linear infinite; }
  @keyframes jetzt-umlauf { to { transform: rotate(1turn); } }
}
@media (prefers-reduced-motion: reduce) {
  .dc-plan td.ist-jetzt .dc-jetzt-lauf::before {
    background: var(--accent-2); opacity: 0.7; }
}

.dc-fach-link { display: block; min-height: var(--tap-min); padding: 0.1rem 0;
  color: inherit; text-decoration: none; }
.dc-fach-link:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
@media (any-pointer: fine) {
  .dc-fach-link:hover .dc-fach { text-decoration: underline; }
  .dc-abgabe > summary:hover { color: var(--text); }
  .dc-abgabe > summary:hover .dc-abgabe__pfeil { color: var(--accent); }
  .dc-loesung__name:hover { color: var(--text);
    text-decoration-color: var(--accent); }
  .dc-loesung__weg-knopf:hover { color: var(--warn); }
}
.dc-fachfilter { margin-top: 0.4rem; }

.dc-fach-link.ohne-kurs .dc-fach {
  text-decoration: underline dotted;
  text-underline-offset: 3px;
  text-decoration-color: color-mix(in oklch, var(--muted) 70%, transparent);
}

.dc-fach-link.ist-entfall .dc-fach,
.dc-fach-link.ist-entfall .dc-fach-meta {
  text-decoration: line-through;
  text-decoration-thickness: 1px;
  color: var(--muted); }
.dc-fach-link.ist-entfall { border: 1px dashed var(--warn); border-radius: 6px; }
.dc-fach-link.ist-vertretung { border: 1px solid var(--accent-2); border-radius: 6px; }
.dc-fach-link.ist-hinweis { border: 1px dotted var(--muted); border-radius: 6px; }
.dc-abw-marke { display: inline-block; margin-top: 0.1rem;
  font-family: var(--mono); font-size: 0.54rem; letter-spacing: 0.05em;
  text-transform: uppercase; color: var(--warn); text-decoration: none; }
.dc-fach-link.ist-vertretung .dc-abw-marke { color: var(--accent-2); }
.dc-fach-link.ist-hinweis .dc-abw-marke { color: var(--muted); }

.dc-legende { display: flex; flex-wrap: wrap; gap: 0.5rem 1.1rem;
  list-style: none; margin: 0.9rem 0 0; padding: 0; }
.dc-legende li { display: inline-flex; align-items: center; gap: 0.4rem;
  font-family: var(--mono); font-size: 0.64rem; letter-spacing: 0.06em;
  color: var(--muted); }
.dc-legende i { width: 0.55rem; height: 0.55rem; flex: none; border-radius: 2px;
  background: var(--fc-kante, var(--fc, var(--accent))); }
.dc-legende__name { color: var(--muted-2); }

.dc-block-row.ist-jetzt {
  border-left: 3px solid var(--accent-2);
  background: linear-gradient(90deg,
              color-mix(in oklch, var(--accent-2) 12%, transparent), transparent 55%);
}
.dc-block-row.ist-vorbei { border-left: 3px solid var(--border); }
.dc-block-row.ist-vorbei .dc-block-name { color: var(--muted); }
.dc-block-row.ist-vorbei .dc-block-date { color: var(--muted-2); }

@media (max-width: 40rem) {
  .dc-block-row { flex-wrap: wrap; }
  .dc-block-date { flex: 1 1 100%; }
}

.dc-klausur { border-left: 3px solid var(--fc-kante, var(--accent)); }
.dc-klausur__titel { margin: 0.2rem 0 0; font-size: 1.15rem; font-weight: 600;
  letter-spacing: -0.01em; }
.dc-klausur__datum { margin: 0.25rem 0 0; font-family: var(--mono);
  font-size: 0.72rem; color: var(--muted); }
.dc-klausur__kurs { display: inline-flex; align-items: center;
  min-height: var(--tap-min); margin-top: 0.4rem; font-family: var(--mono);
  font-size: 0.66rem; letter-spacing: 0.08em; text-transform: uppercase; }

.dc-countdown { position: relative; overflow: hidden; display: block;
  margin-top: 0.9rem; padding: 0.7rem 0.85rem;
  border-top: 1px solid color-mix(in oklch, var(--accent) 45%, transparent); }
.dc-countdown__balken { position: absolute; inset: 0 auto 0 0; width: 100%;
  background: color-mix(in oklch, var(--accent) 14%, transparent);
  transition: width 0.3s linear; }
.dc-countdown__rahmen { position: absolute; inset: 0; pointer-events: none;
  border: 1px solid var(--accent-2); opacity: 0; }
.dc-countdown__rahmen.ist-knapp { opacity: 0.6; }
@media (prefers-reduced-motion: no-preference) {
  .dc-countdown__rahmen.ist-knapp { animation: countdown-atmen 2.6s ease-in-out infinite; }
  @keyframes countdown-atmen { 0%, 100% { opacity: 0.3; } 50% { opacity: 1; } }
}
.dc-countdown__rest { position: relative; font-family: var(--mono);
  font-size: 0.72rem; color: var(--text-soft); }

.dc-haken { display: inline-flex; align-items: center; gap: 0.45rem;
  min-height: var(--tap-min); padding: 0 0.3rem; margin-left: auto;
  border: 0; background: none; cursor: pointer; color: var(--muted);
  font-family: var(--mono); font-size: 0.6rem; letter-spacing: 0.1em;
  text-transform: uppercase; }
.dc-haken:focus-visible { outline: 2px solid var(--accent); outline-offset: 2px; }
.dc-haken__kasten { display: grid; place-items: center; width: 1.15rem; height: 1.15rem;
  flex: none; border: 1px solid var(--border); border-radius: 3px;
  color: transparent; font-size: 0.7rem; }
.dc-haken[aria-pressed="true"] .dc-haken__kasten {
  background: var(--accent); border-color: var(--accent); color: var(--bg-0, #0a0a0a); }
.dc-row.ist-erledigt .dc-row__main { opacity: 0.62; }

@media (prefers-reduced-motion: no-preference) {
  .dc-row.wackelt { animation: haken-wackelt 0.42s cubic-bezier(.36,.07,.19,.97); }
  @keyframes haken-wackelt {
    0%, 100% { transform: translateX(0); }
    18% { transform: translateX(-6px); } 36% { transform: translateX(5px); }
    54% { transform: translateX(-3px); } 72% { transform: translateX(2px); }
  }
}

.dc-kurs.hat-fach { border-left: 3px solid var(--fc-kante, var(--accent)); }
.dc-sortierung { margin-top: 0.7rem; }

.dc-kurs.ist-ziel { border-left-width: 5px; }

@media (prefers-reduced-motion: no-preference) {
  .dc-kurs.ist-ziel { animation: dc-ziel 1.1s var(--ease) 2; }
  @keyframes dc-ziel {
    from { opacity: 1; }
    50%  { opacity: 0.72; }
    to   { opacity: 1; }
  }
}

.dc-fachmarken { display: inline-flex; flex-wrap: wrap; gap: 0.3rem; margin-left: 0.5rem; }
.dc-fachmarke { display: inline-block; font-family: var(--mono); font-size: 0.6rem;
  font-style: normal; letter-spacing: 0.06em; padding: 0.1rem 0.36rem;
  border: 1px solid var(--fc-kante, var(--accent)); border-radius: 2px;
  color: var(--fc-text, var(--text)); }

.dc-list--termine .dc-row { padding: 0.7rem 0; }
.dc-list--termine .dc-row.ist-wichtig {
  padding: 1.05rem 0 1.05rem 0.9rem;
  border-left: 3px solid var(--fc-kante, var(--warn));
}
.dc-list--termine .dc-row.ist-wichtig .dc-row__main { gap: 0.7rem; }

.dc-list--termine .dc-row__main { flex-wrap: wrap; }
.dc-list--termine .termin-bei { flex: 1 1 100%; margin-top: 0.1rem;
  font-size: 0.72rem; color: var(--muted); }
.dc-list--termine .dc-row.ist-wichtig .dc-row__main strong {
  font-family: var(--display); font-size: 1.15rem; letter-spacing: -0.01em;
}
.dc-list--termine .dc-row.ist-wichtig .dc-meta { font-size: 0.88rem; color: var(--text-soft); }
.dc-list--termine .dc-row.ist-wichtig.ist-erledigt { border-left-color: var(--border); }

.dc-list--termine .dc-countdown { flex: 1 1 100%; margin-top: 0.55rem; }
.dc-row__mehr { flex: 1 1 100%; margin-top: 0.55rem; }
.dc-row__mehr form { margin: 0.4rem 0 0; display: flex; gap: 0.5rem;
  flex-wrap: wrap; align-items: center; }

.dc-row__kurs { flex: 1 1 100%; margin-top: 0.45rem; font-family: var(--mono);
  font-size: 0.66rem; letter-spacing: 0.08em; text-transform: uppercase; }
.dc-row__kurs.ohne-kurs { text-decoration: underline dotted; text-underline-offset: 3px; }

.dc-chip--jahr b {
  margin-left: 0.55rem; padding-left: 0.55rem;
  border-left: 1px solid color-mix(in oklch, currentColor 30%, transparent);
  font-variant-numeric: tabular-nums;
}

.dc-auth-hint { margin: -0.15rem 0 0; font-size: 0.74rem; line-height: 1.5;
  color: var(--text-soft); }

.dc-auth-optional { margin: 0.1rem 0; }
.dc-auth-optional > summary { display: flex; align-items: center; gap: 0.5rem;
  min-height: var(--tap-min); cursor: pointer; list-style: none;
  font-family: var(--mono); font-size: 0.68rem; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--auth-label); }
.dc-auth-optional > summary::-webkit-details-marker { display: none; }
.dc-auth-optional > summary::before { content: '+'; font-size: 0.9rem; line-height: 1;
  color: var(--auth-akzent); }
.dc-auth-optional[open] > summary::before { content: '\2212'; }
.dc-auth-optional > summary span { letter-spacing: 0.06em; text-transform: none;
  color: var(--muted); }
.dc-auth-optional[open] { display: flex; flex-direction: column; gap: 0.9rem;
  padding-bottom: 0.2rem; }

.dc-auth-zustimmung { display: flex; flex-direction: column; gap: 0.7rem;
  border: 0; margin: 0.3rem 0 0; padding: 0.9rem 0 0;
  border-top: 1px solid color-mix(in srgb, var(--auth-label) 22%, transparent); }
.dc-auth-zustimmung legend { padding: 0; font-family: var(--mono);
  font-size: 0.64rem; letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--auth-label); }
