/* ---------- Things Tailwind can't do ---------- */
  :root { --header-h: 120px; }

  body { font-family: 'Kumbh Sans', sans-serif; }

  /* The calendar grid needs minmax — not expressible in Tailwind utility classes */
  .months-row {
    display: grid;
    grid-template-columns: repeat(10, minmax(175px, 1fr));
    gap: 0.6rem;
    min-width: 1750px;
  }

  /* Sticky month bar sits OUTSIDE the x-scroll container, synced via JS */
  .sticky-months-bar {
    position: sticky;
    top: var(--header-h);
    z-index: 20;
    overflow-x: hidden; /* JS mirrors calendarScroll.scrollLeft here */
    pointer-events: none;
  }
  .sticky-months-bar .months-row {
    /* slight bottom shadow to separate from content */
    box-shadow: 0 4px 12px -4px rgba(0,0,0,0.12);
  }

  /* Seminar block hover/selected states */
  .seminar-block { transition: transform .15s, box-shadow .15s; user-select: none; }
  .seminar-block:hover { transform: translateY(-2px); box-shadow: 0 4px 14px rgba(0,0,0,.2); }
  .seminar-block.selected { outline: 2.5px solid #4D4F5A; box-shadow: 0 0 0 4px rgba(157,38,50,.35); }
  .seminar-block.greyed { opacity: .28; filter: grayscale(.4); }
  .seminar-block.hidden-filter { display: none !important; }

  /* Besucht-Toggle: aktiver Zustand (Overlay sichtbar) */
  #besuchtBtn.besucht-active {
    background: rgba(255,255,255,.16);
    color: #fff;
    border-color: rgba(255,255,255,.6);
  }

  /* Filter buttons: active = full opacity */
  .filter-btn { opacity: .45; transition: opacity .2s, transform .15s; }
  .filter-btn.active { opacity: 1; box-shadow: 0 2px 8px rgba(0,0,0,.25); }
  .filter-btn:hover { opacity: .85; transform: translateY(-1px); }

  /*Highlight already completed courses*/
  .seminar-block.completed {
    opacity: .35;
    filter: grayscale(.6);
    cursor: not-allowed;
    text-decoration: line-through;
  }

  /* Anmeldeplattform: angemeldete Angebote (kurzübersicht, nicht „besucht“) */
  .seminar-block.registered {
    position: relative;
    box-shadow: inset 0 0 0 2px rgba(5, 150, 105, 0.85);
  }
  .seminar-block.registered::after {
    content: 'Angemeldet';
    position: absolute;
    top: 3px;
    right: 3px;
    font-size: 8px;
    font-weight: 800;
    line-height: 1;
    text-transform: uppercase;
    letter-spacing: 0.04em;
    color: #047857;
    background: rgba(209, 250, 229, 0.96);
    padding: 2px 5px;
    border-radius: 3px;
    pointer-events: none;
  }

  /* ---- PRINT / PDF ---- */
  @media print {
    * { -webkit-print-color-adjust: exact !important; print-color-adjust: exact !important; }
    body > header, .main-layout { display: none !important; }
    #printCurriculum { display: block !important; }

    @page { size: A4 portrait; margin: 18mm 16mm; }

    #printCurriculum { font-size: 9.5pt; font-family: 'Kumbh Sans', sans-serif; color: #1a1410;  margin: 18mm 16mm;  }

    .print-header { display:flex; justify-content:space-between; align-items:flex-end; border-bottom: 2.5pt solid #1a1410; padding-bottom:6pt; margin-bottom:14pt; }
    .print-header h1 { font-size:20pt; font-weight:900; line-height:1; }
    .print-header .print-meta { font-size:7.5pt; color:#7a6f65; text-align:right; line-height:1.6; }
    .print-phase-title { font-size:8pt; font-weight:600; font-style:italic; text-transform:uppercase; letter-spacing:.08em; color:#7a6f65; margin-top:14pt; margin-bottom:5pt; padding-bottom:3pt; border-bottom:.5pt solid #e0d9d0; }
    .print-month-group { margin-bottom:8pt; }
    .print-month-name { font-size:7pt; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:#9a8f85; margin-bottom:3pt; }
    .print-seminar { display:flex; align-items:stretch; margin-bottom:3pt; border-radius:4pt; overflow:hidden; page-break-inside:avoid; }
    .print-seminar-stripe { width:4pt; flex-shrink:0; }
    .print-seminar-body { flex:1; padding:4pt 6pt; background:#f7f4ef; }
    .print-seminar-date { font-size:7pt; font-weight:600; color:#7a6f65; }
    .print-seminar-title { font-size:9pt; font-weight:600; line-height:1.3; }
    .print-seminar-sub { font-size:7.5pt; color:#5a5050; }
    .print-seminar-tags { display:flex; gap:3pt; flex-wrap:wrap; margin-top:2pt; }
    .print-seminar-tag { font-size:6pt; font-weight:700; background:#e0d9d0; border-radius:2pt; padding:1pt 3pt; text-transform:uppercase; }
    .print-summary { margin-top:16pt; padding-top:8pt; border-top:1pt solid #1a1410; display:flex; justify-content:space-between; font-size:8pt; color:#7a6f65; }
    .print-summary strong { color:#1a1410; font-size:10pt; }
    .print-legend { margin-top:12pt; padding-top:8pt; border-top:.5pt solid #e0d9d0; display:flex; flex-wrap:wrap; gap:6pt; }
    .print-legend-item { display:flex; align-items:center; gap:3pt; font-size:7pt; }
    .print-legend-dot { width:7pt; height:7pt; border-radius:50%; flex-shrink:0; }
  }

  #printCurriculum { display: none; }