/* ===== Feelochamp Jumppage (jump.html) =====
   Eigenständiges Stylesheet nur für die Jumppage – die Seite bindet
   main.css nicht ein. Enthält die paar Basisregeln aus main.css, die sie
   braucht (Farbtokens, body, .eyebrow, .mono, Fokus-Ring, Scrollbar),
   plus die .jump-* Styles. Schriften kommen aus assets/fonts.css. */

:root{
  --ink:#10141d;
  --panel: rgba(16,20,29,0.66);
  --cyan:#5bc2fc;
  --cyan-soft:#a9e0ff;
  --blue:#2d7dd8;
  --white:#ffffff;
  --slate:#a6a6a6;
  --line: rgba(255,255,255,0.12);
  --shadow: 0 20px 60px rgba(0,0,0,0.5);
}

*{ box-sizing:border-box; }
html{ scrollbar-color:#5BC2FC rgba(16,20,29,0.66); scrollbar-width:thin; }
::-webkit-scrollbar{ width:12px; height:12px; }
::-webkit-scrollbar-track{ background:rgba(16,20,29,0.66); }
::-webkit-scrollbar-thumb{ background:#5BC2FC; border-radius:8px; border:2px solid rgba(16,20,29,0.66); }
::-webkit-scrollbar-thumb:hover{ background:#8fd4ff; }

body{
  margin:0;
  background: var(--ink);
  color: var(--white);
  font-family:'Inter', system-ui, -apple-system, "Segoe UI", sans-serif;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}
a{ text-decoration:none; }
a:focus-visible{ outline: 2px solid var(--cyan); outline-offset:3px; border-radius:3px; }
.mono{ font-family:'JetBrains Mono', ui-monospace, Menlo, monospace; }
.eyebrow{
  font-family:'JetBrains Mono', ui-monospace, monospace;
  font-size:.72rem; letter-spacing:.2em; text-transform:uppercase;
  color: var(--cyan-soft);
  margin:0;
}

/* Eigenständige Einstiegsseite zu allen Tippbewerben. Jede Karte bringt ihre
   Akzentfarben als --acc / --acc-2 / --acc-text im style-Attribut mit –
   jeweils --cyan / --blue / --cyan-soft aus der main.css der Zielseite. */
body.page-jump{
  min-height:100vh;
  background:
    radial-gradient(ellipse 900px 600px at 15% 0%, rgba(91,194,252,0.22), transparent 60%),
    radial-gradient(ellipse 800px 620px at 90% 10%, rgba(180,77,255,0.18), transparent 58%),
    radial-gradient(ellipse 900px 500px at 50% 110%, rgba(255,159,28,0.12), transparent 60%),
    linear-gradient(180deg, #10141d 0%, #0b0e14 100%);
  background-attachment: fixed;
}
.jump{
  min-height:100vh; max-width:1240px; margin:0 auto;
  padding: clamp(2.5rem, 7vh, 5rem) 16px 2rem;
  display:flex; flex-direction:column; align-items:center;
}
.jump-head{ text-align:center; margin-bottom: clamp(2rem, 6vh, 3.5rem); }
.jump-logo{
  width:56px; height:56px; margin-bottom:1rem;
  filter: drop-shadow(0 0 18px rgba(91,194,252,0.35));
  animation: jump-spin 24s linear infinite;
}
@keyframes jump-spin{ to{ transform: rotate(360deg); } }
.jump-title{
  font-family:'Bebas Neue', sans-serif; font-weight:400;
  font-size: clamp(3.4rem, 11vw, 6.5rem); line-height:.9; letter-spacing:.04em;
  margin:.35rem 0 .6rem;
}
.jump-title span{
  background: linear-gradient(90deg, #ff3b3b, #ff9f1c, #ffe135, #3ddc6b, #3a9bff, #b44dff);
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.jump-lead{ color: var(--slate); font-size:1.05rem; margin:0; }

/* Hero-Panels wie auf einseitensprung.at/cl/ (.hero-panel / .kicker-badge /
   .hero-lede), hier zentriert und mit Regenbogen- statt Cyan-Akzent */
.jump-hero{ display:flex; flex-direction:column; align-items:center; gap:.75rem; margin-bottom:1.6rem; }
.hero-panel{
  display:inline-block;
  background: var(--panel);
  border:1px solid var(--line);
  border-radius:.6rem;
  padding:.55rem 1rem;
  backdrop-filter: blur(6px); -webkit-backdrop-filter: blur(6px);
}
.jump-hero .hero-panel:has(.jump-title){ padding:.7rem 1.4rem .55rem; }
.jump-hero .jump-title{ margin:0; }
.kicker-badge{
  display:inline-flex; align-items:center; gap:.5rem;
  border-radius:999px; padding:.35rem .9rem .35rem 1.1rem; /* links = letter-spacing-Ausgleich */
  border:1px solid transparent;
  background:
    linear-gradient(rgba(16,20,29,.85), rgba(16,20,29,.85)) padding-box,
    linear-gradient(90deg, #ff3b3b, #ff9f1c, #ffe135, #3ddc6b, #3a9bff, #b44dff) border-box;
}
.hero-lede{
  max-width:44rem;
  color: var(--slate);
  font-size:.8rem; line-height:1.55;
  margin:0;
}
@media (max-width: 575.98px){
  .hero-lede{ font-size:.76rem; }
  .jump-hero .hero-panel:has(.jump-title){ padding:.6rem 1rem .45rem; }
}

.jump-grid{
  width:100%;
  display:grid; gap:1rem;
  /* 7 gleich breite Karten auf 8 Halbspalten: oben 4, unten 3 zentriert */
  grid-template-columns: repeat(8, minmax(0, 1fr));
}
.jump-grid > .jump-card{ grid-column: span 2; }
.jump-grid > .jump-card:nth-child(5){ grid-column: 2 / span 2; }
.jump-card{
  --acc: var(--cyan); --acc-2: var(--blue); --acc-text: var(--cyan-soft);
  position:relative; overflow:hidden; isolation:isolate;
  display:flex; flex-direction:column;
  min-height:260px; padding:1.4rem 1.3rem 1.2rem;
  border-radius:1.1rem;
  background: var(--panel);
  border:1px solid var(--line);
  color: var(--white);
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
  transition: transform .25s ease, border-color .25s ease, box-shadow .25s ease;
  animation: jump-in .6s cubic-bezier(.2,.7,.2,1) both;
}
.jump-card:nth-child(2){ animation-delay:.06s; }
.jump-card:nth-child(3){ animation-delay:.12s; }
.jump-card:nth-child(4){ animation-delay:.18s; }
.jump-card:nth-child(5){ animation-delay:.24s; }
.jump-card:nth-child(6){ animation-delay:.30s; }
.jump-card:nth-child(7){ animation-delay:.36s; }
@keyframes jump-in{ from{ opacity:0; transform: translateY(18px); } }
/* Farbbalken oben + Glow, der beim Hover hochfährt */
.jump-card::before{
  content:""; position:absolute; inset:0 0 auto; height:4px;
  background: linear-gradient(90deg, var(--acc), var(--acc-2));
}
.jump-card::after{
  content:""; position:absolute; z-index:-1;
  width:220px; height:220px; right:-70px; bottom:-90px; border-radius:50%;
  background: radial-gradient(circle, var(--acc), transparent 70%);
  opacity:.18; transition: opacity .3s ease, transform .4s ease;
}
.jump-card:hover, .jump-card:focus-visible{
  color: var(--white);
  transform: translateY(-6px);
  border-color: color-mix(in srgb, var(--acc) 60%, transparent);
  box-shadow: var(--shadow), 0 0 0 1px color-mix(in srgb, var(--acc) 35%, transparent),
              0 18px 50px -12px color-mix(in srgb, var(--acc) 55%, transparent);
}
.jump-card:hover::after, .jump-card:focus-visible::after{ opacity:.42; transform: scale(1.35); }
.jump-code{
  font-family:'Bebas Neue', sans-serif; font-size:4.2rem; line-height:1; letter-spacing:.03em;
  background: linear-gradient(160deg, var(--acc-text), var(--acc) 55%, var(--acc-2));
  -webkit-background-clip:text; background-clip:text; color:transparent;
}
.jump-name{ font-weight:800; font-size:1.08rem; margin-top:.7rem; line-height:1.25; }
.jump-sub{ color: var(--slate); font-size:.85rem; margin-top:.35rem; line-height:1.45; }
.jump-go{
  margin-top:auto; padding-top:1.2rem;
  font-family:'JetBrains Mono', ui-monospace, monospace;
  font-size:.72rem; letter-spacing:.16em; text-transform:uppercase;
  color: var(--acc-text);
}
.jump-go span{ display:inline-block; transition: transform .25s ease; }
.jump-card:hover .jump-go span{ transform: translateX(5px); }
/* Countdown bis zum nächsten Anpfiff der Runde (Inline-JS in jump.html) */
.jump-cd{
  display:flex; flex-direction:column; gap:.2rem;
  margin-top:1rem; padding:.6rem .75rem;
  border-radius:.7rem;
  background: color-mix(in srgb, var(--acc) 9%, rgba(0,0,0,.25));
  border:1px solid color-mix(in srgb, var(--acc) 28%, transparent);
}
.jump-cd[hidden]{ display:none; }
.jump-cd-label{ font-size:.6rem; letter-spacing:.16em; text-transform:uppercase; color: var(--slate); }
.jump-cd-time{ font-size:1.05rem; color: var(--white); font-variant-numeric: tabular-nums; white-space:nowrap; }
.jump-cd-time b{ font-weight:700; }
.jump-cd-time i{ font-style:normal; font-size:.68em; color: var(--acc-text); margin-left:.08em; }
.jump-cd-match{ font-size:.74rem; color: var(--slate); white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.jump-cd-match.is-ticker{ display:block; height:1.4em; line-height:1.4em; text-overflow:clip; }
.jump-cd-reel{ display:block; transition: transform .5s ease; }
.jump-cd-reel > span{ display:block; height:1.4em; overflow:hidden; text-overflow:ellipsis; }
.jump-cd.is-live .jump-cd-label, .jump-cd.is-live .jump-cd-time{ color: var(--acc-text); }
.jump-cd-dot{
  display:inline-block; width:.5em; height:.5em; margin-right:.45em; vertical-align:.12em;
  border-radius:50%; background: var(--acc); animation: jump-pulse 1.4s ease-in-out infinite;
}
@keyframes jump-pulse{ 50%{ opacity:.25; } }
.jump-foot{ margin-top:auto; padding-top:3rem; font-size:.72rem; letter-spacing:.12em; color: rgba(166,166,166,.6); }

@media (max-width: 899.98px){
  .jump-grid{ grid-template-columns: repeat(4, minmax(0, 1fr)); }
  .jump-grid > .jump-card, .jump-grid > .jump-card:nth-child(5){ grid-column: span 2; }
  .jump-grid > .jump-card:last-child:nth-child(odd){ grid-column: 2 / span 2; } /* 7. Karte gleich breit, zentriert */
}
@media (max-width: 575.98px){
  .jump-grid{ grid-template-columns:1fr; gap:.75rem; }
  .jump-grid > .jump-card, .jump-grid > .jump-card:nth-child(5), .jump-grid > .jump-card:last-child:nth-child(odd){ grid-column:auto; }
  .jump-card{
    min-height:0; padding:1.1rem 1.1rem 1rem 5.6rem;
    display:grid; grid-template-columns:1fr; align-content:center;
  }
  .jump-code{ position:absolute; left:1.1rem; top:50%; transform:translateY(-50%); font-size:3.2rem; }
  .jump-code-long{ font-size:2.4rem; } /* dreistelliges Kürzel (ZWA) passt sonst nicht in die Spalte */
  .jump-name{ margin-top:0; }
  .jump-go{ padding-top:.6rem; }
  .jump-cd{ margin-top:.6rem; padding:.45rem .6rem; }
}
@media (prefers-reduced-motion: reduce){
  .jump-logo, .jump-card{ animation:none; }
  .jump-card, .jump-card::after, .jump-go span{ transition:none; }
  .jump-cd-dot{ animation:none; }
  .jump-cd-reel{ transition:none; }
}

.jump-cal-link{
  display:inline-flex; align-items:center; gap:.6rem; margin-top:1.75rem;
  padding:.75rem 1.2rem; border-radius:999px;
  background: var(--panel); border:1px solid var(--line); color: var(--white);
  font-weight:600; font-size:.92rem;
  transition: border-color .2s ease, background .2s ease;
}
.jump-cal-link svg{ color: var(--cyan); }
.jump-cal-link span{ display:inline-block; transition: transform .25s ease; }
.jump-cal-link:hover{ color: var(--white); border-color: rgba(91,194,252,.5); background: rgba(91,194,252,.1); }
.jump-cal-link:hover span{ transform: translateX(4px); }

/* Kalender-Icon oben rechts (jump.html): Kalenderblatt mit Regenbogen-Kopf,
   zeigt Monat + heutigen Tag. */
.jump{ position:relative; }
.jump-cal-icon{
  position:absolute; top: clamp(1rem, 3vh, 1.75rem); right:16px;
  width:64px; border-radius:14px;
  display:flex; flex-direction:column; align-items:stretch; text-align:center;
  background: #141925; border:1px solid var(--line);
  box-shadow: 0 12px 30px -10px rgba(0,0,0,.7);
  color: var(--white);
  transform: rotate(-6deg);
  transition: transform .3s cubic-bezier(.2,.7,.2,1), box-shadow .3s ease, border-color .3s ease;
}
.jci-month{
  border-radius:13px 13px 0 0; padding:.42rem 0 .3rem .18em; /* .18em gleicht letter-spacing aus */
  background: linear-gradient(90deg, #ff3b3b, #ff9f1c, #ffe135, #3ddc6b, #3a9bff, #b44dff);
  font-family:'JetBrains Mono', ui-monospace, monospace; font-weight:700;
  font-size:.62rem; letter-spacing:.18em; text-transform:uppercase; color:#0b0e14;
}
.jci-day{
  display:flex; align-items:center; justify-content:center; height:42px;
  font-family:'Bebas Neue', sans-serif; font-size:2.2rem; line-height:1; padding-top:.2rem;
}
.jci-rings{
  position:absolute; top:-6px; left:0; right:0; display:flex; justify-content:space-between; padding:0 15px;
  pointer-events:none;
}
.jci-rings i{
  width:6px; height:13px; border-radius:3px;
  background: linear-gradient(180deg, #e9edf5, #9aa3b4); box-shadow: 0 1px 2px rgba(0,0,0,.5);
}
.jump-cal-icon:hover, .jump-cal-icon:focus-visible{
  color: var(--white); transform: rotate(0deg) translateY(-3px) scale(1.06);
  border-color: rgba(91,194,252,.5);
  box-shadow: 0 16px 36px -10px rgba(0,0,0,.75), 0 0 28px -4px rgba(91,194,252,.45);
}
@media (prefers-reduced-motion: reduce){ .jump-cal-icon{ transition:none; } }
/* Mobile: Icons (Kalender + Jumppage) auf ~50 %. zoom statt transform, weil
   transform schon für Drehung/Hover belegt ist; zoom skaliert auch top/right,
   daher die Abstände hier verdoppelt (wirken effektiv wie 1rem / 16px). */
@media (max-width: 767.98px){
  .jump-cal-icon{ zoom:.5; top:2rem; right:32px; }
}

/* Gegenstück auf jump_kalender.html: zurück zur Jumppage. Gleiches Blatt,
   Inhalt = 4×2-Raster in den Rundenfarben (.c-* aus dem Kalender-Abschnitt)
   plus Pfeil in der letzten Zelle. Ohne Ringe und leicht in die andere Richtung gedreht. */
.jump-home-icon{ transform: rotate(6deg); }
.jump-home-icon .jci-month{ font-size:.5rem; letter-spacing:.14em; padding-left:.14em; }
.jhi-grid{
  display:grid; grid-template-columns: repeat(4, 1fr); grid-template-rows: repeat(2, 1fr); gap:3px;
  padding:8px 9px 9px; height:42px; box-sizing:content-box;
}
.jhi-grid i{
  border-radius:4px; background: linear-gradient(160deg, var(--acc), var(--acc-2));
  transition: transform .3s cubic-bezier(.2,.7,.2,1);
}
.jhi-grid .jhi-arrow{
  background:none; font-style:normal; font-weight:700; font-size:.95rem; line-height:1;
  display:flex; align-items:center; justify-content:center; color: var(--white);
}
.jump-home-icon:hover .jhi-grid i:not(.jhi-arrow){ transform: scale(1.12); }
.jump-home-icon:hover .jhi-arrow{ transform: translateX(-2px); }

/* Abo-Anker auf jump_kalender.html: drittes Blatt links neben dem Jumppage-Icon,
   Feed-Symbol mit Regenbogen-Wellen, gegengleich gedreht. Springt zu #abo. */
.jump-sub-icon{ right: calc(16px + 64px + 14px); }
.jsi-feed{ display:block; width:30px; height:30px; margin:14px auto 15px; overflow:visible; /* Höhe = .jhi-grid (42px + 8/9px Padding) */ }
.jsi-feed circle{ fill:#ff9f1c; }
.jsi-feed path{ fill:none; stroke-width:3; stroke-linecap:round; transition: transform .3s cubic-bezier(.2,.7,.2,1), opacity .3s ease; transform-origin:6px 18px; }
.jsi-feed .jsi-arc1{ stroke:#3ddc6b; }
.jsi-feed .jsi-arc2{ stroke:#3a9bff; }
.jump-sub-icon:hover .jsi-arc1{ transform: scale(1.08); }
.jump-sub-icon:hover .jsi-arc2{ transform: scale(1.14); }
@media (max-width: 767.98px){
  .jump-sub-icon{ right: calc(32px + 64px + 16px); } /* zoom .5 -> wirkt wie 16px + 32px + 8px */
}
@media (prefers-reduced-motion: reduce){ .jsi-feed path{ transition:none; } }
html:has(.page-jump-cal){ scroll-behavior:smooth; }
@media (prefers-reduced-motion: reduce){ html:has(.page-jump-cal){ scroll-behavior:auto; } }
.jk-sub{ scroll-margin-top:1.5rem; }

/* ---------- Kalender aller Tippbewerbe (jump_kalender.html) ---------- */
/* Rundenfarben = Akzentfarben der Karten in jump.html (aus den Paletten
   der Zielseiten). Jeder Termin trägt .c-{cl,el,nl,db,oel,zwa,pl}. */
.c-cl { --acc:#22d3ee; --acc-2:#3b82f6; --acc-text:#8fe9f7; }
.c-el { --acc:#ff6a1a; --acc-2:#e8460a; --acc-text:#ffb07a; }
.c-nl { --acc:#5bc2fc; --acc-2:#2d7dd8; --acc-text:#a9e0ff; }
.c-db { --acc:#d20515; --acc-2:#a8040f; --acc-text:#ff404a; }
.c-oel{ --acc:#ff00b3; --acc-2:#00fff5; --acc-text:#ff33c2; }
.c-zwa{ --acc:#33ffb8; --acc-2:#ea4225; --acc-text:#5cffc6; }
.c-pl { --acc:#ff2882; --acc-2:#05f0ff; --acc-text:#ff4f98; }

.jk{ padding-top: clamp(1.5rem, 4vh, 2.5rem); align-items:stretch; }
.jk-head{ display:flex; flex-direction:column; gap:1rem; margin-bottom:1.5rem; }
.jk-back{
  align-self:flex-start;
  font-family:'JetBrains Mono', ui-monospace, monospace;
  font-size:.72rem; letter-spacing:.16em; text-transform:uppercase; color: var(--slate);
  transition: color .2s ease;
}
.jk-back:hover{ color: var(--white); }
.jk-brand{ display:flex; align-items:center; gap:1rem; }
.jk-brand .jump-logo{ width:52px; height:52px; margin:0; flex:none; }
.jk-title{ font-size: clamp(2.6rem, 7vw, 4rem); margin:.15rem 0 0; }

/* Filter-Chips je Runde */
.jk-filters{ display:flex; flex-wrap:wrap; gap:.5rem; margin-bottom:1rem; }
.jk-filter{
  display:inline-flex; align-items:center; gap:.5rem;
  padding:.45rem .85rem .45rem .6rem; border-radius:999px;
  background: var(--panel); border:1px solid var(--line); color: var(--slate);
  font: 600 .82rem/1.2 'Inter', sans-serif; cursor:pointer;
  transition: border-color .2s ease, color .2s ease, background .2s ease, opacity .2s ease;
}
.jk-filter b{
  font-family:'Bebas Neue', sans-serif; font-weight:400; font-size:1.15rem; letter-spacing:.04em; line-height:1;
  padding:.1rem .4rem 0; border-radius:.35rem; color:#fff;
  background: linear-gradient(160deg, var(--acc), var(--acc-2));
}
.jk-filter[data-c="cl"]{ --acc:#22d3ee; --acc-2:#3b82f6; }
.jk-filter[data-c="el"]{ --acc:#ff6a1a; --acc-2:#e8460a; }
.jk-filter[data-c="nl"]{ --acc:#5bc2fc; --acc-2:#2d7dd8; }
.jk-filter[data-c="db"]{ --acc:#d20515; --acc-2:#a8040f; }
.jk-filter[data-c="oel"]{ --acc:#ff00b3; --acc-2:#00fff5; }
.jk-filter[data-c="zwa"]{ --acc:#33ffb8; --acc-2:#ea4225; }
.jk-filter[data-c="pl"]{ --acc:#ff2882; --acc-2:#05f0ff; }
.jk-filter[aria-pressed="true"]{ color: var(--white); border-color: color-mix(in srgb, var(--acc) 55%, transparent); background: color-mix(in srgb, var(--acc) 12%, var(--panel)); }
.jk-filter[aria-pressed="false"]{ opacity:.45; }
.jk-filter[aria-pressed="false"] b{ background: #3a404c; }
.jk-filter:focus-visible{ outline:2px solid var(--cyan); outline-offset:2px; }

/* Karte + Toolbar */
.jk-card{
  background: var(--panel); border:1px solid var(--line); border-radius:1.1rem;
  padding:1rem; backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
}
.jk-toolbar{ display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:.75rem; margin-bottom:1rem; }
.jk-nav{ display:flex; align-items:center; gap:.5rem; }
.jk-nav h2{
  font-family:'Bebas Neue', sans-serif; font-weight:400; letter-spacing:.04em;
  font-size:1.9rem; margin:0 .35rem; min-width:11ch; text-align:center; line-height:1;
}
.jk-arrow, .jk-today, .jk-view-btn{
  border:1px solid var(--line); background: rgba(255,255,255,.04); color: var(--white);
  border-radius:.6rem; cursor:pointer; font: 600 .82rem/1 'Inter', sans-serif;
  transition: background .2s ease, border-color .2s ease;
}
.jk-arrow{ width:2.3rem; height:2.3rem; font-size:1.5rem; line-height:1; padding-bottom:.15rem; }
.jk-today{ height:2.3rem; padding:0 .8rem; margin-left:.25rem; }
.jk-arrow:hover:not(:disabled), .jk-today:hover, .jk-view-btn:hover{ background: rgba(91,194,252,.12); border-color: rgba(91,194,252,.4); }
.jk-arrow:disabled{ opacity:.3; cursor:default; }
.jk-views{ display:flex; gap:.25rem; padding:.2rem; border:1px solid var(--line); border-radius:.75rem; }
.jk-view-btn{ border-color:transparent; background:none; padding:.55rem .85rem; color: var(--slate); }
.jk-view-btn.is-active{ background: linear-gradient(160deg, var(--cyan), var(--blue)); color:#06121f; }
.jk button:focus-visible, .jk-lightbox button:focus-visible, .jk-ev:focus-visible, .jk-row:focus-visible{ outline:2px solid var(--cyan); outline-offset:2px; }

/* Monats-/Wochenraster */
.jk-grid{ border:1px solid var(--line); border-radius:.8rem; overflow:hidden; }
.jk-weekdays, .jk-week{ display:grid; grid-template-columns: repeat(7, minmax(0, 1fr)); }
.jk-weekdays div{
  padding:.55rem .6rem; background: rgba(255,255,255,.04);
  font-family:'JetBrains Mono', ui-monospace, monospace; font-size:.68rem; letter-spacing:.16em; text-transform:uppercase; color: var(--slate);
}
.jk-day{
  min-height:118px; padding:.4rem; border-top:1px solid var(--line); border-left:1px solid var(--line);
  display:flex; flex-direction:column; gap:.25rem; min-width:0;
}
.jk-week .jk-day:first-child{ border-left:0; }
.jk-day.is-out{ background: rgba(0,0,0,.18); }
.jk-day.is-out > *{ opacity:.45; }
.jk-day-num{ font: 600 .78rem/1 'JetBrains Mono', ui-monospace, monospace; color: var(--slate); padding:.15rem .2rem .2rem; }
.jk-day.is-today{ background: rgba(91,194,252,.08); box-shadow: inset 0 0 0 1px rgba(91,194,252,.45); }
.jk-day.is-today .jk-day-num{ color: var(--cyan); }
.jk-day.is-next{ box-shadow: inset 0 0 0 2px rgba(169,224,255,.55); background: rgba(91,194,252,.06); scroll-margin:1rem; }
.jk-day.is-next .jk-day-num{ color: var(--cyan-soft); display:flex; align-items:center; gap:.4rem; flex-wrap:wrap; }
.jk-next-tag{
  font-family:'JetBrains Mono', ui-monospace, monospace; font-size:.56rem; font-weight:700; letter-spacing:.12em; text-transform:uppercase;
  padding:.18rem .4rem; border-radius:999px; background: var(--cyan-soft); color:#06121f; white-space:nowrap; vertical-align:middle;
}
.jk-list-day .jk-next-tag{ margin-left:.4rem; font-size:.62rem; }
.jk-list-day{ scroll-margin-top:1rem; }
.jk-list-day.is-next{ color: var(--cyan-soft); }
.jk-day-week{ min-height:260px; }
.jk-empty{ color: rgba(166,166,166,.5); padding:.2rem; }

/* Termin-Chip */
.jk-ev{
  display:flex; align-items:center; gap:.3rem; min-width:0;
  padding:.22rem .35rem; border-radius:.4rem;
  background: color-mix(in srgb, var(--acc) 14%, transparent);
  border-left:3px solid var(--acc);
  color: var(--white); font-size:.72rem; line-height:1.25;
  transition: background .15s ease;
}
.jk-ev:hover{ color: var(--white); background: color-mix(in srgb, var(--acc) 28%, transparent); }
.jk-ev.is-ko{ border-left-style:dashed; }
.jk-ev-code{
  flex:none; font-family:'Bebas Neue', sans-serif; font-size:.92rem; letter-spacing:.04em; line-height:1;
  padding-top:.1rem; color: var(--acc-text);
}
.jk-ev-time{ flex:none; font-family:'JetBrains Mono', ui-monospace, monospace; font-size:.66rem; color: var(--slate); }
.jk-ev-title{ white-space:nowrap; overflow:hidden; text-overflow:ellipsis; min-width:0; }
.jk-score{
  flex:none; font-family:'JetBrains Mono', ui-monospace, monospace; font-size:.68rem; font-weight:700;
  padding:.05rem .3rem; border-radius:.3rem; background: rgba(255,255,255,.1); color: var(--white);
}
.jk-more{
  align-self:flex-start; border:0; background:none; padding:.1rem .3rem; cursor:pointer;
  font: 600 .7rem/1.2 'JetBrains Mono', ui-monospace, monospace; color: var(--cyan-soft);
}
.jk-more:hover{ color: var(--white); }

/* Listenansicht + Lightbox-Zeilen */
.jk-list{ display:flex; flex-direction:column; }
.jk-list-day{
  display:flex; justify-content:space-between; align-items:baseline; gap:1rem;
  padding:1rem .2rem .45rem; border-bottom:1px solid var(--line);
  font-family:'Bebas Neue', sans-serif; font-size:1.35rem; letter-spacing:.04em;
}
.jk-list-day:first-child{ padding-top:.2rem; }
.jk-list-day.is-today{ color: var(--cyan); }
.jk-list-wd{ font-family:'JetBrains Mono', ui-monospace, monospace; font-size:.68rem; letter-spacing:.16em; text-transform:uppercase; color: var(--slate); }
.jk-today-tag{
  font-family:'JetBrains Mono', ui-monospace, monospace; font-size:.62rem; letter-spacing:.14em; text-transform:uppercase;
  padding:.15rem .45rem; border-radius:999px; background: var(--cyan); color:#06121f; vertical-align:middle;
}
.jk-row{
  display:grid; grid-template-columns: 3.4rem 2.4rem 1fr; align-items:center; gap:.5rem;
  padding:.55rem .6rem; margin-top:.35rem; border-radius:.55rem;
  background: color-mix(in srgb, var(--acc) 9%, transparent);
  border-left:3px solid var(--acc); color: var(--white); font-size:.9rem;
  transition: background .15s ease;
}
.jk-row:hover{ color: var(--white); background: color-mix(in srgb, var(--acc) 20%, transparent); }
.jk-row.is-ko{ border-left-style:dashed; }
.jk-row .jk-ev-code{ font-size:1.2rem; }
.jk-row-time{ font-family:'JetBrains Mono', ui-monospace, monospace; font-size:.78rem; color: var(--slate); }
.jk-row-title{ min-width:0; overflow-wrap:anywhere; }
.jk-list-empty{ text-align:center; color: var(--slate); padding:2.5rem 0; margin:0; }

.jk-lightbox{
  position:fixed; inset:0; z-index:1000; display:none;
  align-items:center; justify-content:center; padding:16px;
  background: rgba(5,8,14,.72); backdrop-filter: blur(4px); -webkit-backdrop-filter: blur(4px);
}
.jk-lightbox.is-open{ display:flex; }
.jk-lightbox-card{
  width:min(100%, 34rem); max-height:85vh; display:flex; flex-direction:column;
  background: #141925; border:1px solid var(--line); border-radius:1rem; box-shadow: var(--shadow);
}
.jk-lightbox-head{ display:flex; align-items:flex-start; justify-content:space-between; gap:1rem; padding:1rem 1.1rem .8rem; border-bottom:1px solid var(--line); }
.jk-lightbox-head h3{ font-family:'Bebas Neue', sans-serif; font-weight:400; font-size:1.7rem; letter-spacing:.04em; margin:0; line-height:1; }
.jk-lightbox-head small{ display:block; margin-top:.35rem; font-family:'JetBrains Mono', ui-monospace, monospace; font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; color: var(--slate); }
.jk-lightbox-close{ border:0; background:none; color: var(--slate); font-size:1.8rem; line-height:1; cursor:pointer; padding:0 .2rem; }
.jk-lightbox-close:hover{ color: var(--white); }
.jk-lightbox-body{ padding:.4rem 1.1rem 1.1rem; overflow-y:auto; }

@media (max-width: 767.98px){
  .jk-card{ padding:.75rem; }
  .jk-toolbar{ flex-direction:column; align-items:stretch; }
  .jk-nav{ justify-content:space-between; }
  .jk-nav h2{ font-size:1.5rem; min-width:0; flex:1; }
  .jk-views{ justify-content:stretch; }
  .jk-view-btn{ flex:1; }
  .jk-filter{ font-size:.75rem; }
  /* Woche mobil: Tage untereinander statt 7 Spalten */
  .jk-grid-week .jk-weekdays{ display:none; }
  .jk-grid-week .jk-week{ grid-template-columns:1fr; }
  .jk-grid-week .jk-day{ min-height:0; border-left:0; }
  .jk-grid-week .jk-day:first-child{ border-top:0; }
  .jk-day-week .jk-ev-title{ white-space:normal; }
  .jk-row{ grid-template-columns: 3rem 2.2rem 1fr; font-size:.85rem; }
}
@media (prefers-reduced-motion: reduce){
  .jk-filter, .jk-ev, .jk-row{ transition:none; }
}

/* Kalender-Abos (ICS-Feeds) unter dem Kalender */
.jk-sub{
  margin-top:1.5rem; padding:1.25rem; border-radius:1.1rem;
  background: var(--panel); border:1px solid var(--line);
  backdrop-filter: blur(8px); -webkit-backdrop-filter: blur(8px);
}
.jk-sub-head{ display:flex; flex-wrap:wrap; align-items:flex-end; justify-content:space-between; gap:.5rem 2rem; margin-bottom:1.1rem; }
.jk-sub-head .eyebrow{ margin:0; }
.jk-sub-head h2{ font-family:'Bebas Neue', sans-serif; font-weight:400; letter-spacing:.04em; font-size:2rem; line-height:1; margin:.2rem 0 0; }
.jk-sub-lead{ margin:0; max-width:34rem; font-size:.88rem; color: var(--slate); }

.jk-sub-feeds{ display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap:.5rem; }
.jk-sub-feed{
  display:flex; align-items:center; gap:.75rem; min-width:0;
  padding:.55rem .6rem .55rem .65rem; border-radius:.8rem;
  border:1px solid var(--line); background: rgba(255,255,255,.03);
  transition: border-color .2s ease, background .2s ease;
}
.jk-sub-feed:hover{ border-color: color-mix(in srgb, var(--acc) 50%, transparent); background: color-mix(in srgb, var(--acc) 8%, transparent); }
.jk-sub-feed.is-all{ --acc: var(--cyan); --acc-2: var(--blue); grid-column: 1 / -1; padding:.75rem .75rem .75rem .8rem; border-color: rgba(255,255,255,.2); }
.jk-sub-badge{
  flex:none; min-width:2.6rem; text-align:center;
  font-family:'Bebas Neue', sans-serif; font-weight:400; font-size:1.15rem; letter-spacing:.04em; line-height:1;
  padding:.3rem .4rem .2rem; border-radius:.4rem; color:#fff;
  background: linear-gradient(160deg, var(--acc), var(--acc-2));
}
.jk-sub-feed.is-all .jk-sub-badge{
  font-size:1.35rem; padding:.4rem .55rem .3rem;
  background: linear-gradient(120deg, #22d3ee, #ff6a1a 25%, #5bc2fc 42%, #d20515 60%, #ff00b3 78%, #33ffb8);
  text-shadow: 0 1px 2px rgba(0,0,0,.45);
}
.jk-sub-name{ flex:1; min-width:0; font-weight:600; font-size:.88rem; line-height:1.25; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.jk-sub-feed.is-all .jk-sub-name{ font-size:1rem; }
.jk-sub-name small{ display:block; font-size:.66rem; font-weight:400; letter-spacing:.1em; color: rgba(166,166,166,.7); }
.jk-sub-actions{ flex:none; display:flex; gap:.3rem; }
.jk-sub-btn{
  display:inline-flex; align-items:center; gap:.4rem; height:1.9rem; padding:0 .6rem 0 .5rem;
  border:1px solid var(--line); border-radius:.5rem; background: rgba(255,255,255,.04);
  color: var(--white); font: 600 .74rem/1 'Inter', sans-serif; cursor:pointer;
  transition: background .2s ease, border-color .2s ease, color .2s ease;
}
.jk-sub-btn:hover{ background: color-mix(in srgb, var(--acc) 22%, transparent); border-color: color-mix(in srgb, var(--acc) 60%, transparent); }
.jk-sub-btn:focus-visible{ outline:2px solid var(--cyan); outline-offset:2px; }
.jk-sub-ico{ width:14px; height:14px; flex:none; }
.jk-sub-btn:hover .jk-sub-ico{ transform: scale(1.1); }
.jk-sub-ico{ transition: transform .2s ease; }
.jk-sub-copy{ color: var(--slate); }
.jk-sub-copy.is-done{ color: var(--ink); background: #33ffb8; border-color: #33ffb8; }

/* Anleitung: dezent, zweispaltig */
.jk-sub-howto{
  display:grid; grid-template-columns: repeat(2, minmax(0,1fr)); gap:1rem 2rem;
  margin-top:1.25rem; padding-top:1.1rem; border-top:1px solid var(--line);
  font-size:.8rem; line-height:1.5; color: var(--slate);
}
.jk-sub-howto h3{
  margin:0 0 .45rem; font-family:'JetBrains Mono', ui-monospace, monospace; font-weight:600;
  font-size:.7rem; letter-spacing:.16em; text-transform:uppercase; color: var(--cyan-soft);
}
.jk-sub-howto ol{ margin:0; padding-left:1.1rem; }
.jk-sub-howto li{ margin-bottom:.3rem; }
.jk-sub-howto li::marker{ font-family:'JetBrains Mono', ui-monospace, monospace; color: rgba(166,166,166,.6); }
.jk-sub-howto b{ color: var(--white); font-weight:600; }
.jk-sub-howto i{ font-style:normal; color: #d6d6d6; }
.jk-sub-note{ margin:.5rem 0 0; font-size:.74rem; color: rgba(166,166,166,.7); }

@media (max-width: 767.98px){
  .jk-sub{ padding:1rem .85rem; }
  .jk-sub-feeds, .jk-sub-howto{ grid-template-columns:1fr; }
  .jk-sub-name{ white-space:normal; }
}
@media (max-width: 575.98px){
  /* Buttons in eigene Zeile, damit die Bewerbsnamen ganz lesbar bleiben */
  .jk-sub-feed{ flex-wrap:wrap; row-gap:.55rem; }
  .jk-sub-actions{ flex-basis:100%; }
  .jk-sub-btn{ flex:1; justify-content:center; height:2.2rem; }
}
@media (prefers-reduced-motion: reduce){
  .jk-sub-feed, .jk-sub-btn{ transition:none; }
}
