/* Handelskalender / Verfallstage: Timeline + kompakte Feiertagsliste (mobile first) */

/* ---------- Jahresauswahl / Sprungmarken ---------- */
.mc-nav{display:flex;flex-wrap:wrap;gap:.5rem;list-style:none;margin:0 0 1rem;padding:0}
.mc-nav a{display:inline-block;padding:.25rem .75rem;border:1px solid var(--bs-border-color,#dee2e6);border-radius:2rem;font-size:.875rem;text-decoration:none;color:var(--bs-body-color,#212529);background:#fff}
.mc-nav a.active,.mc-nav a:hover{background:var(--bs-body-color,#212529);border-color:var(--bs-body-color,#212529);color:#fff}

/* ---------- Timeline ---------- */
.mc-tl-view{position:relative}
.mc-tl-scroll{position:relative;overflow-x:auto;overflow-y:hidden;overscroll-behavior-x:contain;scrollbar-width:thin;-webkit-overflow-scrolling:touch;padding-bottom:.5rem;cursor:grab}
.mc-tl-scroll.is-drag{cursor:grabbing;user-select:none}
.mc-tl-track{display:flex;list-style:none;margin:0;padding:0;width:max-content}
.mc-tl-item{position:relative;flex:0 0 9.75rem;padding:2.25rem .35rem 0;text-align:center}
/* axis: every item draws its part of the line */
.mc-tl-item::before{content:"";position:absolute;left:0;right:0;top:1.875rem;height:2px;background:var(--bs-border-color,#dee2e6)}
.mc-tl-item:first-child::before{left:50%}
.mc-tl-item:last-child::before{right:50%}
.mc-tl-mon{position:absolute;top:0;left:0;right:0;font-size:.8125rem;font-weight:600;line-height:1.5;text-transform:uppercase;color:#6c757d;white-space:nowrap}
.mc-tl-mon b{color:#000}
.mc-tl-node{position:absolute;top:1.875rem;left:50%;z-index:1;width:.875rem;height:.875rem;margin:-.4375rem 0 0 -.4375rem;border-radius:50%;background:#fff;border:3px solid var(--bs-warning,#ffc107)}
.mc-tl-item.is-q .mc-tl-node{width:1.375rem;height:1.375rem;margin:-.6875rem 0 0 -.6875rem;background:var(--bs-danger,#dc3545);border:3px solid #fff;box-shadow:0 0 0 2px var(--bs-danger,#dc3545)}
.mc-tl-card{position:relative;z-index:1;margin-top:1rem;padding:.5rem .5rem .375rem;border:1px solid var(--bs-border-color,#dee2e6);border-radius:.5rem;background:#fff;line-height:1.3;transition:box-shadow .2s,border-color .2s}
/* today marker (set by JS): dashed line, behind the cards */
.mc-tl-today{position:absolute;top:1.25rem;bottom:.5rem;width:0;margin-left:-1px;border-left:2px dashed var(--bs-secondary,#07b);pointer-events:none}
.mc-tl-today::before{content:"Heute";position:absolute;top:-1.25rem;left:0;transform:translateX(-50%);padding:0 .25rem;background:#fff;font-size:.6875rem;font-weight:700;line-height:1.25rem;text-transform:uppercase;color:var(--bs-secondary,#07b)}
.mc-tl-today.is-on::before{display:none}
.mc-tl-item.is-q .mc-tl-card{border-color:var(--bs-danger,#dc3545)}
.mc-tl-type{font-size:.8125rem;font-weight:700;color:#6c757d}
.mc-tl-item.is-q .mc-tl-type{color:var(--bs-danger,#dc3545)}
.mc-tl-row{display:flex;justify-content:space-between;align-items:baseline;gap:.25rem;margin-top:.25rem;font-size:.875rem;white-space:nowrap}
.mc-tl-row .mc-tl-mk{font-size:.75rem;color:#6c757d}
.mc-tl-row time{font-weight:700;color:#000}
.mc-tl-card.is-single .mc-tl-row{flex-direction:column;align-items:center;gap:0}
.mc-tl-card.is-single .mc-tl-row time{font-size:1.0625rem}
.mc-tl-when{position:relative;z-index:1;display:block;min-height:1.25rem;margin-top:.25rem;font-size:.75rem;font-weight:600;color:var(--bs-danger,#dc3545)}
.mc-tl-when:not(:empty){background:#fff}
.mc-tl-item.is-past{opacity:.5}
.mc-tl-item.is-next .mc-tl-card{border-color:var(--bs-danger,#dc3545);box-shadow:0 0 0 3px rgba(220,53,69,.18)}
.mc-tl-item.is-next .mc-tl-node{animation:mc-pulse 2s ease-out infinite}
@keyframes mc-pulse{0%{box-shadow:0 0 0 0 rgba(220,53,69,.55)}70%,100%{box-shadow:0 0 0 .6rem rgba(220,53,69,0)}}
@media (prefers-reduced-motion:reduce){.mc-tl-item.is-next .mc-tl-node{animation:none}.mc-tl-card{transition:none}}
/* fade hints at the edges */
.mc-tl-view::before,.mc-tl-view::after{content:"";position:absolute;top:0;bottom:1rem;width:1.5rem;z-index:2;pointer-events:none}
.mc-tl-view::before{left:0;background:linear-gradient(90deg,#fff,rgba(255,255,255,0))}
.mc-tl-view::after{right:0;background:linear-gradient(270deg,#fff,rgba(255,255,255,0))}
/* buttons (touch devices swipe, buttons are a plus) */
.mc-tl-ctrl{display:flex;justify-content:flex-end;gap:.5rem;margin-bottom:.25rem}
.mc-tl-btn{width:2.25rem;height:2.25rem;padding:0;border:1px solid var(--bs-border-color,#dee2e6);border-radius:50%;background:#fff;font-size:1.25rem;line-height:1;color:var(--bs-body-color,#212529)}
.mc-tl-btn:hover:not(:disabled){background:var(--bs-body-color,#212529);color:#fff}
.mc-tl-btn:disabled{opacity:.35}
.mc-tl-legend{margin-top:.5rem;font-size:.75rem;color:#6c757d}
.mc-dot{display:inline-block;width:.75rem;height:.75rem;margin-right:.25rem;vertical-align:-.1rem;border-radius:50%;background:#fff;border:3px solid var(--bs-warning,#ffc107)}
.mc-dash{display:inline-block;width:0;height:.75rem;margin:0 .375rem 0 .25rem;vertical-align:-.1rem;border-left:2px dashed var(--bs-secondary,#07b)}
.mc-dot.is-q{background:var(--bs-danger,#dc3545);border-color:#fff;box-shadow:0 0 0 1px var(--bs-danger,#dc3545)}

/* ---------- Börsenfreie Tage (kompakt) ---------- */
.mc-hl-filter{display:flex;flex-wrap:wrap;gap:.375rem;margin-bottom:.5rem}
.mc-hl-filter button{padding:.125rem .5rem;border:1px solid var(--bs-border-color,#dee2e6);border-radius:1rem;background:#fff;font-size:.75rem;line-height:1.5;color:var(--bs-body-color,#212529)}
.mc-hl-filter button[aria-pressed="true"]{background:var(--bs-body-color,#212529);border-color:var(--bs-body-color,#212529);color:#fff}
.mc-hl{list-style:none;margin:0;padding:0}
.mc-hl-mon{padding:.5rem 0 .125rem;border-bottom:1px solid var(--bs-border-color,#dee2e6);font-size:.75rem;font-weight:700;text-transform:uppercase;color:#6c757d}
.mc-hl-row{display:grid;grid-template-columns:4.5rem 1fr auto;gap:.5rem;align-items:center;padding:.25rem 0;border-bottom:1px solid #f1f3f5;font-size:.875rem}
.mc-hl-row[hidden],.mc-hl-mon[hidden]{display:none}
.mc-hl-row.is-past{opacity:.5}
.mc-hl-d{font-weight:600;color:#000;white-space:nowrap}
.mc-hl-b{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.125rem;max-width:11rem}
.mc-hl-b .badge{font-weight:600;cursor:help}
.mc-hl-empty{padding:.75rem 0;color:#6c757d}

/* ---------- Übersicht Termine (Grid Cards) ---------- */
.mc-card{--mc-c:var(--bs-secondary,#07b);border:1px solid var(--bs-border-color,#dee2e6);border-top:4px solid var(--mc-c);transition:transform .15s,box-shadow .15s}
.mc-card:hover,.mc-card:focus-within{transform:translateY(-2px);box-shadow:0 .5rem 1rem rgba(0,0,0,.08)}
.mc-card-green{--mc-c:var(--bs-success,#198754)}
.mc-card-red{--mc-c:var(--bs-danger,#dc3545)}
.mc-card-yellow{--mc-c:var(--bs-warning,#ffc107)}
.mc-card-blue{--mc-c:var(--bs-secondary,#07b)}
.mc-card .card-title a{color:#000;text-decoration:none}
.mc-card-kicker{font-size:.6875rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:var(--mc-c)}
.mc-card-yellow .mc-card-kicker{color:#997404}
.mc-card-live{background:#f8f9fa;font-size:.8125rem;line-height:1.4}
.mc-card-row{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem;padding:.125rem 0}
.mc-card-when{display:block;min-height:1.2em;font-weight:600;color:var(--bs-danger,#dc3545)}
@media (prefers-reduced-motion:reduce){.mc-card{transition:none}.mc-card:hover,.mc-card:focus-within{transform:none}}
