:root {
  --glass-blur: 18px;
  --glass-bg: rgba(255,255,255,0.18);
  --glass-bg-solid: #ffffff;
  --glass-bg-dark: rgba(30,32,38,0.55);
  --glass-border: rgba(255,255,255,0.35);
  --glass-border-dark: rgba(255,255,255,0.12);
  --glass-shadow: 0 8px 24px -6px rgba(0,0,0,0.25);
  --glass-radius: 22px;
  --glass-accent: #667eea;
  --glass-danger: #ff7b47;
  --glass-muted-text: rgba(255,255,255,0.75);
  --glass-muted-text-dark: rgba(255,255,255,0.55);
  --glass-muted-text-light: rgba(0,0,0,0.55);
  --glass-transition: 0.45s cubic-bezier(.4,.2,.2,1);
  --timeline-gap: 2rem;
  --timeline-card-width: clamp(260px, 40vw, 400px);
}

.my-events-glass-view-wrapper { position:relative; font-family:system-ui,-apple-system,Segoe UI,Roboto; --glass-accent: var(--glass-accent, #667eea); }
.my-events-glass-view-wrapper.theme-dark { --glass-bg: var(--glass-bg-dark); --glass-border: var(--glass-border-dark); color:#f1f5f9; --timeline-month-default-color: rgba(255,255,255,.98); }
.my-events-glass-view-wrapper.theme-light { --glass-bg: rgba(255,255,255,0.62); --glass-border: rgba(0,0,0,0.12); color:#111827; --timeline-month-default-color: #0f172a; }
/* Strengthen overlay and text in light mode */
.my-events-glass-view-wrapper.theme-light .glass-event-card .gec-clip::before { opacity:.52; filter:brightness(.78) contrast(1.05) saturate(.95); }
.my-events-glass-view-wrapper.theme-light .glass-event-card .gec-date,
.my-events-glass-view-wrapper.theme-light .glass-event-card .gec-title,
.my-events-glass-view-wrapper.theme-light .glass-event-card .gec-time,
.my-events-glass-view-wrapper.theme-light .glass-event-card .gec-excerpt { color:#111827; text-shadow:0 1px 1px rgba(255,255,255,.35); }
.my-events-glass-view-wrapper.theme-auto { color: inherit; }

.my-events-glass-view-wrapper .my-events-glass-toolbar { display:flex; flex-wrap:wrap; gap:1rem; justify-content:space-between; align-items:center; background:var(--glass-bg); backdrop-filter:blur(var(--glass-blur)); -webkit-backdrop-filter:blur(var(--glass-blur)); padding:1rem 1.25rem; border:1px solid var(--glass-border); border-radius: var(--glass-radius); box-shadow: var(--glass-shadow); margin-bottom:1.5rem; }
/* Hide toolbar in calendar view: replaced by centered header buttons */
.my-events-glass-view-wrapper[data-view="calendar"] .my-events-glass-toolbar { display:none !important; }
/* Frontend-Feedback (z.B. '2 Events geladen') ausblenden */
.my-events-glass-view-wrapper .my-events-glass-feedback { display:none; }
/* Hide toolbar completely when timeline-only */
.my-events-glass-view-wrapper[data-view="timeline"][data-attributes*='"allowToggle":false'] .my-events-glass-toolbar { display:none !important; }
/* Hide date-nav when not in calendar */
.my-events-glass-view-wrapper[data-view="timeline"] .date-nav { display:none !important; }

.my-events-glass-toolbar .view-toggle { display:flex; gap:.5rem; }
.view-toggle .toggle-btn { background: linear-gradient(135deg, var(--glass-accent) 0%, calc(var(--glass-accent) + 30%) 100%); border:none; color:#fff; padding:.65rem 1.1rem; border-radius: 14px; font-weight:600; cursor:pointer; position:relative; isolation:isolate; font-size:.9rem; letter-spacing:.5px; box-shadow:0 4px 14px -4px rgba(0,0,0,.35); opacity:.55; transition:var(--glass-transition); }
.view-toggle .toggle-btn.is-active { opacity:1; transform:translateY(-2px); box-shadow:0 8px 20px -6px rgba(0,0,0,.45); }
.view-toggle .toggle-btn:focus-visible { outline:2px solid #fff; outline-offset:2px; }

.date-nav { display:flex; align-items:center; gap:.75rem; }
.date-nav .nav-btn { background:var(--glass-bg); backdrop-filter:blur(var(--glass-blur)); border:1px solid var(--glass-border); width:42px; height:42px; display:grid; place-items:center; border-radius:14px; font-size:1.25rem; cursor:pointer; color:inherit; transition:var(--glass-transition); }
.date-nav .nav-btn:hover { transform:translateY(-3px); box-shadow:0 8px 18px -6px rgba(0,0,0,.35); }
.date-nav .nav-btn[disabled], .date-nav .nav-btn[aria-disabled="true"] { opacity:.45; cursor:not-allowed; transform:none; box-shadow:none; }
.date-nav .current-range { font-weight:600; font-size:1rem; min-width:180px; text-align:center; }

.toolbar-filters select { background:var(--glass-bg); border:1px solid var(--glass-border); padding:.5rem .75rem; border-radius:12px; font-size:.85rem; backdrop-filter:blur(var(--glass-blur)); color:inherit; }

.my-events-glass-content { position:relative; }

/* Timeline */
.glass-timeline-view { position:relative; overflow:visible; }
.glass-timeline-view .timeline-scroller { overflow-x:auto; overflow-y:hidden; display:flex; align-items:stretch; gap:var(--timeline-gap); padding:2rem var(--timeline-gap) 2.25rem; scroll-snap-type:x proximity; scrollbar-width:none; }
.glass-timeline-view .timeline-scroller { -webkit-mask-image:none; mask-image:none; }
.glass-timeline-view .timeline-scroller::-webkit-scrollbar { display:none; }
.glass-timeline-view .timeline-scroller.is-dragging { scroll-snap-type: none; -webkit-user-select: none; user-select: none; }
.glass-timeline-view .timeline-scroller.is-dragging .gec-link { pointer-events: none; }
.glass-timeline-view .timeline-scroller::-webkit-scrollbar { height:10px; }
.glass-timeline-view .timeline-scroller::-webkit-scrollbar-track { background:transparent; }
.glass-timeline-view .timeline-scroller::-webkit-scrollbar-thumb { background:linear-gradient(180deg,var(--glass-accent),rgba(255,255,255,.3)); border-radius:6px; }

.timeline-rail { display:none; }
.timeline-dot { display:none; }

.timeline-events { display:flex; gap:var(--timeline-gap); position:relative; padding: 2.5rem 0 0; }
.timeline-events .tl-progress { position:absolute; top:1.2rem; left:0; height:3px; width:0%; background: var(--glass-accent, #667eea); box-shadow:0 0 0 1px rgba(255,255,255,.25) inset; transition: width .2s ease; border-radius:999px; opacity:.9; }
/* Overlay nav + fades */
.tl-nav { pointer-events:none; }
.tl-nav .tl-btn { pointer-events:auto; position:absolute; top:50%; transform:translateY(-50%); width:46px; height:46px; border-radius:14px; border:1px solid var(--glass-border); background:var(--glass-bg); color:inherit; box-shadow:0 10px 24px -8px rgba(0,0,0,.45); cursor:pointer; z-index:3; display:grid; place-items:center; transition:transform .2s ease, box-shadow .2s ease, opacity .2s ease; font-size:1.2rem; line-height:1; }
.tl-nav .tl-btn:hover { transform:translateY(-50%) translateY(-2px); box-shadow:0 12px 26px -10px rgba(0,0,0,.45); }
.tl-nav .tl-prev { left:.5rem; }
.tl-nav .tl-next { right:.5rem; }
.tl-nav .tl-prev { padding-right:1px; }
.tl-nav .tl-next { padding-left:1px; }
.tl-nav .tl-btn[disabled], .tl-nav .tl-btn[aria-disabled="true"] { opacity:.15; cursor:not-allowed; box-shadow:none; }

@media (hover: none) {
  .tl-nav .tl-btn { display:none; }
}
@media (hover: none) {
  .glass-event-card:hover { transform:none; box-shadow: var(--glass-shadow); }
  .glass-event-card:hover::after { transform:none; }
}
/* Performance hints */
.glass-event-card::before { will-change: opacity, filter; }
.glass-event-card::after { will-change: transform; }
/* Vertical month labels in timeline */
.timeline-month-label { writing-mode: vertical-rl; transform: rotate(180deg); align-self:center; font-weight:900; font-size:1.5rem; letter-spacing:.6px; color: var(--timeline-month-color, var(--timeline-month-default-color, rgba(165, 28, 207, 0.98))); margin-right:.25rem; }
.glass-timeline-view .timeline-scroller { cursor: grab; }
.glass-timeline-view .timeline-scroller.is-dragging { cursor: grabbing; }
.my-events-glass-view-wrapper.theme-light .timeline-month-label { text-shadow:0 1px 0 rgba(255,255,255,.7); opacity:1; filter:none; }

.glass-event-card { scroll-snap-align:start; flex: 0 0 var(--timeline-card-width); background: var(--glass-bg); backdrop-filter:blur(var(--glass-blur)); -webkit-backdrop-filter:blur(var(--glass-blur)); border-radius: var(--glass-radius); padding:1.2rem 1.2rem 1.3rem; box-shadow: 0 24px 20px -10px rgba(0,0,0,.35); display:flex; flex-direction:column; gap:.5rem; position:relative; transition:var(--glass-transition); overflow:visible; -webkit-backface-visibility:hidden; backface-visibility:hidden; transform:translateZ(0); }
.glass-event-card .gec-clip { position:absolute; inset:0; border-radius: var(--glass-radius); overflow:hidden; pointer-events:none; z-index:0; }
.glass-event-card .gec-clip::before { content:""; position:absolute; inset:0; background-image: var(--card-bg-image); background-size:cover; background-position:center; opacity:.3; filter:grayscale(.1) contrast(1.05) saturate(1.05) brightness(.85); }
.glass-event-card .gec-clip::after { content:none; }
.my-events-glass-view-wrapper.theme-dark .glass-event-card .gec-clip::before { opacity:.26; }
.glass-event-card.has-image .gec-clip::before { opacity:.48; }
.glass-event-card > * { position:relative; z-index:1; }
.glass-event-card > .gec-clip { z-index:0; }
.glass-event-card .gec-inner { position:relative; z-index:1; }
.glass-event-card{ transform:translateY(0); transition: transform .3s ease, box-shadow .3s ease; }
.glass-event-card:hover { transform: translateY(-5px); box-shadow:0 26px 20px -16px rgba(0,0,0,.4); }
/* shine overlay disabled */
.glass-event-card:focus-visible { outline:2px solid var(--glass-accent); outline-offset:3px; }
.glass-event-card .gec-date { font-size:.82rem; font-weight:700; letter-spacing:.5px; opacity:.9; }
.glass-event-card .gec-date, .glass-event-card .gec-time { display:inline-flex; align-items:center; gap:.35rem; }
.glass-event-card .gec-target-inline { display:inline-flex; align-items:center; gap:.3rem; margin-left:.5rem; padding:.1rem .45rem; border-radius:999px; font-size:.66rem; font-weight:800; letter-spacing:.4px; background: rgba(0,0,0,.35); color:#fff; box-shadow:0 2px 6px rgba(0,0,0,.25); }
.my-events-glass-view-wrapper.theme-light .glass-event-card .gec-target-inline { background: rgba(15,23,42,.85); color:#fff; }
.glass-event-card .gec-target-inline .em-icon { font-size:.9rem; transform: translateY(.5px); }
.glass-event-card .gec-target-inline .gt-text { white-space:nowrap; }
.glass-event-card .gec-title { margin:.1rem 0 .25rem; font-size:1.14rem; line-height:1.28; font-weight:800; letter-spacing:.3px; }
/* Old standalone target style kept for compatibility (no longer used in timeline header) */
.glass-event-card .gec-target { font-size:.6rem; text-transform:uppercase; letter-spacing:.8px; background:linear-gradient(135deg,var(--glass-accent),#fff); -webkit-background-clip:text; background-clip:text; color:transparent; font-weight:600; }
.glass-event-card .gec-badge.status-past { position:absolute; top:.55rem; left:.6rem; background: linear-gradient(135deg,var(--glass-danger),#ffb347); color:#fff; font-size:.55rem; padding:.3rem .55rem .28rem; border-radius:8px; font-weight:700; letter-spacing:.7px; box-shadow:0 4px 12px -4px rgba(0,0,0,.4); }
.glass-event-card .gec-badge.status-soldout { display:inline-flex; align-items:center; gap:.3rem; margin-left:.5rem; background: linear-gradient(135deg,#ff6b6b,#ff2e93); color:#fff; font-size:.62rem; padding:.22rem .5rem .2rem; border-radius:999px; font-weight:900; letter-spacing:.6px; box-shadow:0 4px 12px -6px rgba(0,0,0,.4); text-transform:uppercase; }
.glass-event-card .gec-time { font-size:.9rem; opacity:.9; letter-spacing:.5px; font-weight:bold }
.glass-event-card .em-icon { font-size:1rem; line-height:1; display:inline-block; transform: translateY(.5px); }
.glass-event-card .gec-excerpt { font-size:.8rem; line-height:1.35; max-height:4.5em; overflow:hidden; }
.glass-event-card .gec-persons { display:flex; gap:.5rem; flex-wrap:wrap; margin-top:.35rem; }
.glass-event-card .gec-person { --p-size:28px; position:relative; display:inline-flex; align-items:center; gap:.5rem; font-size:.68rem; font-weight:800; letter-spacing:.3px; color:#fff; }
.glass-event-card .gec-person::before { content:""; position:absolute; inset:-2px; border-radius:999px; background:linear-gradient(135deg, var(--p-color,#ff6b6b), #b388ff); z-index:0; }
.glass-event-card .gec-person .label { position:relative; z-index:1; background:#111319; color:#fff; padding:.35rem .7rem; border-radius:999px; box-shadow:inset 0 0 0 1px rgba(255,255,255,.12); }
.my-events-glass-view-wrapper.theme-light .glass-event-card .gec-person .label { background:#0f172a; }
.glass-event-card .gec-person img { position:relative; z-index:1; width: var(--p-size); height: var(--p-size); object-fit:cover; border-radius:50%; box-shadow:0 2px 8px rgba(0,0,0,.45); border:2px solid #0f172a; }
.glass-event-card .gec-link { position:absolute; top:.6rem; right:.6rem; background: linear-gradient(135deg,var(--glass-accent), color-mix(in oklab, var(--glass-accent) 65%, #000 35%)); width:38px; height:38px; display:grid; place-items:center; border-radius:12px; color:#fff; text-decoration:none; font-weight:800; box-shadow:0 8px 18px -8px rgba(0,0,0,.55); text-shadow:0 1px 1px rgba(0,0,0,.4); }
.my-events-glass-view-wrapper.theme-light .glass-event-card .gec-link { box-shadow:0 6px 16px -6px rgba(0,0,0,.35), inset 0 0 0 1px rgba(255,255,255,.7); }
.glass-event-card .gec-link { border:1px solid rgba(255,255,255,.45); }
.glass-event-card .gec-link:hover { transform: translateY(-2px); box-shadow:0 12px 24px -10px rgba(0,0,0,.5); }

/* Calendar */
.glass-calendar-view { margin-top:2rem; }
.calendar-header { display:flex; justify-content:center; margin-bottom:1rem; }
.cal-nav { display:grid; grid-template-columns: 42px auto auto; align-items:center; gap:.75rem; }
.cal-nav .nav-right { display:grid; grid-template-columns: 42px 42px; gap:.5rem; }
.cal-nav .nav-btn { background:var(--glass-bg); backdrop-filter:blur(var(--glass-blur)); border:1px solid var(--glass-border); width:42px; height:42px; display:grid; place-items:center; border-radius:14px; font-size:1.25rem; cursor:pointer; color:inherit; transition:var(--glass-transition); }
.cal-nav .nav-btn.today { font-size:.9rem; font-weight:800; }
.cal-nav .nav-btn:hover { transform:translateY(-2px); box-shadow:0 8px 18px -6px rgba(0,0,0,.35); }
.cal-nav .nav-btn[disabled], .cal-nav .nav-btn[aria-disabled="true"] { opacity:.45; cursor:not-allowed; transform:none; box-shadow:none; }
.cal-title { margin:0; text-align:center; font-size:1.35rem; font-weight:700; letter-spacing:.5px; }
.calendar-grid { display:grid; grid-template-columns: repeat(7, minmax(0,1fr)); gap:.8rem; position:relative; overflow:visible; }
.cal-day { position:relative; aspect-ratio: 1 / 1; min-height:84px; background: var(--glass-bg); backdrop-filter:blur(var(--glass-blur)); border:1px solid var(--glass-border); border-radius:18px; padding:.35rem .4rem .5rem; overflow:visible; display:flex; flex-direction:column; box-shadow:0 4px 16px -6px rgba(0,0,0,.35); z-index:0; }
.cal-day:hover, .cal-day:focus-within, .cal-day.is-active { z-index:100; }
.cal-day.is-pad { background:transparent; border:none; box-shadow:none; }
.cal-day .day-number { font-size:.75rem; font-weight:600; opacity:.7; }
.cal-day.is-today { border-color: color-mix(in oklab, var(--glass-accent) 75%, transparent); outline:2px solid var(--glass-accent); outline-offset:-2px; box-shadow:0 0 0 4px color-mix(in oklab, var(--glass-accent) 28%, transparent), 0 10px 24px -10px rgba(0,0,0,.5); }
.cal-day.is-today .day-number { opacity:1; color: var(--glass-accent); font-weight:700; }
.day-events { margin-top:auto; margin-bottom:auto; display:flex; flex-wrap:wrap; gap:.35rem .35rem; align-content:center; justify-content:center; }
.day-ev { --ev-color: var(--glass-accent); width:22px; height:22px; border-radius:50%; background: radial-gradient(circle at 30% 30%, rgba(255,255,255,.55), rgba(255,255,255,.1) 35%, transparent 36%), var(--ev-color); position:relative; box-shadow:0 4px 10px -4px rgba(0,0,0,.45), inset 0 0 0 1px rgba(255,255,255,.35); z-index:2; cursor:pointer; }
.day-ev .ev-tip { position:absolute; left:50%; bottom:120%; transform:translateX(-50%) translateY(6px); opacity:0; pointer-events:none; background:var(--glass-bg); backdrop-filter:blur(var(--glass-blur)); border:1px solid var(--glass-border); color:inherit; border-radius:14px; padding:0; min-width:220px; max-width:260px; box-shadow:0 14px 28px -10px rgba(0,0,0,.5); transition: opacity .2s ease, transform .2s ease; z-index: 20; overflow:hidden; }
.day-ev .ev-tip::after { content:""; position:absolute; top:100%; left:50%; transform:translateX(-50%); border:6px solid transparent; border-top-color: var(--glass-bg); filter: drop-shadow(0 -1px 0 var(--glass-border)); }
.day-ev:hover, .day-ev:focus-visible { z-index:120; }
.day-ev:hover .ev-tip, .day-ev.is-open .ev-tip, .day-ev:focus-visible .ev-tip { opacity:1; transform:translateX(-50%) translateY(0); pointer-events:auto; }
/* Tooltip inner structure with image header */
.day-ev .ev-tip .ev-clip { position:absolute; inset:0; }
.day-ev .ev-tip .ev-clip::before { content:""; position:absolute; inset:0; background-image:var(--tip-image); background-size:cover; background-position:center; filter: saturate(1.05) contrast(1.05) brightness(.72); }
.day-ev .ev-tip .ev-clip::after { content:""; position:absolute; inset:0; background: radial-gradient(120% 100% at 50% 0%, rgba(0,0,0,.35), rgba(0,0,0,.55)); border-radius:inherit; }
.day-ev .ev-tip .ev-body { padding:.7rem .8rem .85rem; display:grid; gap:.3rem; position:relative; z-index:1; color:#fff; text-shadow: 0 1px 2px rgba(0,0,0,.45); }
.day-ev .ev-tip .ev-title { font-weight:700; font-size:1rem; line-height:1.2; }
.day-ev .ev-tip .ev-time { opacity:.95; font-size:.9rem; }
.day-ev .ev-tip .ev-link { margin-top:.2rem; display:inline-block; font-weight:700; text-decoration:none; color:#fff; }
.day-ev .ev-tip .ev-link:hover { text-decoration:underline; }
.ev-title { font-weight:800; font-size:.85rem; margin:0 0 .25rem; }
.ev-time { font-size:.78rem; opacity:.85; margin:0 0 .25rem; }
.ev-link { font-size:.78rem; font-weight:700; color:inherit; text-decoration:underline; }
.day-more { font-size:.55rem; text-align:center; background:rgba(0,0,0,.35); color:#fff; padding:2px 4px; border-radius:10px; }

/* Density */
.glass-event-card.density-compact { --timeline-card-width: 240px; padding:.85rem .9rem; }
.glass-event-card.density-spacious { --timeline-card-width: 460px; padding:1.4rem 1.4rem 1.6rem; }

/* Animations */
@media (prefers-reduced-motion: no-preference) {
  .glass-event-card { animation: fadeIn .7s ease both; }
  .calendar-grid .cal-day { animation: fadeScale .5s ease both; }
}
@keyframes fadeIn { from { opacity:0; transform:translateY(12px); } to { opacity:1; transform:translateY(0); } }
@keyframes fadeScale { from { opacity:0; transform:scale(.96); } to { opacity:1; transform:scale(1); } }
/* Removed calendar slide animations */

/* Responsive */
@media (max-width: 900px) {
  .glass-timeline-view .timeline-scroller { gap:1.25rem; }
  .glass-event-card { --timeline-card-width: 72vw; }
  .calendar-grid { gap:.6rem; grid-auto-rows: 1fr; }
  .cal-day { min-height:auto; }
  /* Center snapping on mobile/tablet for nicer alignment */
  .glass-timeline-view .timeline-scroller { scroll-padding-left: 50%; scroll-padding-right: 50%; }
  .glass-event-card { scroll-snap-align: center; }
}
@media (max-width: 600px) {
  .my-events-glass-view-wrapper .my-events-glass-toolbar { flex-direction:column; align-items:stretch; }
  .date-nav { width:100%; justify-content:space-between; }
  .view-toggle { width:100%; }
  .glass-event-card { --timeline-card-width: 88vw; scroll-snap-align: center; }
  .glass-timeline-view .timeline-scroller { scroll-padding-left: 50%; scroll-padding-right: 50%; }
  .day-ev { width:20px; height:20px; }
}

/* Neve theme scoping for light/dark contrast */
[data-neve-theme="light"] .my-events-glass-view-wrapper { color:#111827; }
[data-neve-theme="light"] .my-events-glass-view-wrapper .glass-event-card::before { opacity:.52; filter:brightness(.78) contrast(1.05) saturate(.95); }
[data-neve-theme="light"] .my-events-glass-view-wrapper .glass-event-card .gec-date,
[data-neve-theme="light"] .my-events-glass-view-wrapper .glass-event-card .gec-title,
[data-neve-theme="light"] .my-events-glass-view-wrapper .glass-event-card .gec-time,
[data-neve-theme="light"] .my-events-glass-view-wrapper .glass-event-card .gec-excerpt { color:#111827; text-shadow:0 1px 1px rgba(255,255,255,.35); }
[data-neve-theme="dark"] .my-events-glass-view-wrapper { color:#f1f5f9; }
