/* R.E.SET Events -- Kundenkonto "Gruppentermine" (meine-events).
   Design-Port aus design_handoff_konto_gruppentermine (Palette B).
   ALLES unter .revt-account-events gescoped -> keine Wirkung auf andere Konto-Tabs.
   Topbar + Sidebar liefern Theme/RAM; hier nur der Inhalt (Kopf + Tabs + Karten).
   Fonts lokal gebundelt (DSGVO): Cormorant Garamond (Serif) + IBM Plex Mono (Mono,
   Ersatz fuer JetBrains Mono) + Jost (Sans, Ersatz fuer Inter Tight) -- kein Google-Hotlink. */

@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/cormorant-garamond-v21-latin-500.woff2') format('woff2');}
@font-face{font-family:'Cormorant Garamond';font-style:normal;font-weight:600;font-display:swap;src:url('../fonts/cormorant-garamond-v21-latin-600.woff2') format('woff2');}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/ibm-plex-mono-v20-latin-regular.woff2') format('woff2');}
@font-face{font-family:'IBM Plex Mono';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/ibm-plex-mono-v20-latin-500.woff2') format('woff2');}
@font-face{font-family:'Jost';font-style:normal;font-weight:400;font-display:swap;src:url('../fonts/jost-v20-latin-regular.woff2') format('woff2');}
@font-face{font-family:'Jost';font-style:normal;font-weight:500;font-display:swap;src:url('../fonts/jost-v20-latin-500.woff2') format('woff2');}

.revt-account-events{
	--ink:#1C1D1F; --brass:#B5663F; --brass-ink:#8B4A29; --brass-soft:#CE8A67;
	--paper:#F3EEE5; --paper-warm:#ECE5D6; --line:#D5CCBA; --line-soft:#E2DAC8;
	--text:#1C1D1F; --text-mid:#595B61; --text-dim:#8F919A; --on-ink:#ECE4D3;
	--ease:cubic-bezier(.2,.6,.2,1);
	--serif:'Cormorant Garamond',Georgia,serif;
	--mono:'IBM Plex Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
	--sans:'Jost',system-ui,-apple-system,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
	color:var(--text);
}
.revt-account-events *{ box-sizing:border-box; }

/* ---- Kopf ---- */
.revt-account-events .achead{ margin-bottom:30px; }
.revt-account-events .achead__eye{ font-family:var(--mono); font-size:11px; letter-spacing:.18em; text-transform:uppercase; color:var(--brass-ink); margin-bottom:12px; }
.revt-account-events .achead h1{ font-family:var(--serif); font-weight:500; font-size:clamp(32px,4vw,46px); line-height:1; letter-spacing:-.02em; color:var(--ink); margin:0; padding:0; }
.revt-account-events .achead__sub{ font-family:var(--sans); font-size:14px; line-height:1.5; color:var(--text-mid); margin-top:12px; }

/* ---- Tabs ---- */
.revt-account-events .actabs{ display:flex; gap:24px; margin-bottom:30px; border-bottom:1px solid var(--line); flex-wrap:wrap; }
.revt-account-events .actabs a,
.revt-account-events .actabs .on{ position:relative; font-family:var(--sans); font-weight:500; font-size:14.5px; color:var(--text-dim); text-decoration:none; padding:0 2px 14px; transition:color .2s var(--ease); }
.revt-account-events .actabs a:hover{ color:var(--ink); }
.revt-account-events .actabs .on{ color:var(--ink); }
.revt-account-events .actabs .on::after{ content:''; position:absolute; left:0; right:0; bottom:-1px; height:2px; background:var(--brass); }
.revt-account-events .actabs .cnt{ font-family:var(--mono); font-size:10px; color:var(--text-dim); margin-left:5px; }

/* ---- Event-Karte ---- */
/* Gruppentermine = leicht rosiges/terracotta Feld (konsistent zu RAMs "Alle Termine"). */
.revt-account-events .ev{ border:1px solid var(--line); background:color-mix(in oklab, var(--brass) 3%, var(--paper)); margin-bottom:20px; display:grid; grid-template-columns:96px 1fr; }
@media (max-width:560px){ .revt-account-events .ev{ grid-template-columns:1fr; } }
.revt-account-events .ev--past{ opacity:.6; }
.revt-account-events .ev__date{ border-right:1px solid var(--line); padding:22px 10px; text-align:center; background:transparent; }
@media (max-width:560px){ .revt-account-events .ev__date{ border-right:0; border-bottom:1px solid var(--line); display:flex; align-items:baseline; justify-content:center; gap:10px; padding:14px; } }
.revt-account-events .ev__date .dow{ font-family:var(--mono); font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--text-dim); }
.revt-account-events .ev__date .d{ font-family:var(--serif); font-weight:500; font-size:40px; line-height:1; color:var(--ink); margin:4px 0; }
.revt-account-events .ev__date .mo{ font-family:var(--mono); font-size:10px; letter-spacing:.1em; text-transform:uppercase; color:var(--text-dim); }
.revt-account-events .ev__body{ padding:22px 24px; min-width:0; }
.revt-account-events .ev__kick{ display:flex; align-items:center; font-family:var(--mono); font-size:10px; letter-spacing:.12em; text-transform:uppercase; color:var(--text-dim); margin-bottom:8px; }
/* Ring-Signet: 3 ueberlappende Ringe = Gruppentermin. */
.revt-account-events .ev__sig{ display:inline-flex; align-items:center; margin-right:8px; flex-shrink:0; }
.revt-account-events .ev__sig .r{ display:block; width:9px; height:9px; border-radius:999px; border:1.5px solid var(--brass-ink); }
.revt-account-events .ev__sig--g .r + .r{ margin-left:-4px; background:var(--paper); }
.revt-account-events .ev__title{ font-family:var(--serif); font-weight:500; font-size:27px; line-height:1.1; letter-spacing:-.01em; color:var(--ink); margin-bottom:8px; }
.revt-account-events .ev__when{ font-family:var(--mono); font-size:12px; letter-spacing:.02em; color:var(--text-mid); }
/* ⭐ Woher der Platz kommt (v0.83.0). Sie hat diesen Abend nicht gebucht --
   ohne die Zeile staende dort ein Termin ohne Herkunft und ohne Storno-Knopf,
   und das saehe wie ein Fehler aus. Zurueckhaltend: eine Angabe, keine
   Auszeichnung. */
.revt-account-events .ev__quelle{ font-family:var(--mono); font-size:11px; letter-spacing:.06em; text-transform:uppercase; color:var(--brass-ink,#8B4A29); margin-top:4px; }
.revt-account-events .ev__note{ font-family:var(--sans); font-size:13px; color:var(--text-mid); margin:14px 0 0; }
.revt-account-events .ev__join{ display:inline-flex; align-items:center; gap:9px; margin-top:18px; font-family:var(--sans); font-weight:600; font-size:13.5px; text-decoration:none; padding:12px 18px; border:1px solid var(--ink); color:var(--ink); background:transparent; transition:background .2s var(--ease),color .2s var(--ease); }
.revt-account-events .ev__join:hover{ background:var(--ink); color:var(--on-ink); }
.revt-account-events .ev__join svg{ width:16px; height:16px; flex-shrink:0; }
/* Gesperrter Zoom-Button (Link noch nicht freigegeben, > 24 Std. vor dem Termin) */
.revt-account-events .ev__join.is-locked,
.revt-account-events .ev--soon .ev__join.is-locked{ background:var(--paper-warm); border-color:var(--line); color:var(--text-dim); cursor:not-allowed; pointer-events:none; font-size:13.5px; padding:12px 18px; box-shadow:none; }
.revt-account-events .ev__note--lock{ color:var(--text-mid); max-width:520px; }

/* Zugangscode */
.revt-account-events .ev__code{ display:flex; align-items:center; gap:12px; margin-top:16px; border:1px dashed var(--line); padding:11px 14px; max-width:420px; }
.revt-account-events .ev__code .lbl{ font-family:var(--mono); font-size:9.5px; letter-spacing:.1em; text-transform:uppercase; color:var(--text-dim); }
.revt-account-events .ev__code .val{ font-family:var(--mono); font-size:14px; font-weight:500; color:var(--ink); letter-spacing:.04em; }
.revt-account-events .ev__code .copy{ margin-left:auto; background:transparent; border:0; cursor:pointer; color:var(--brass-ink); display:inline-flex; align-items:center; gap:5px; font-family:var(--mono); font-size:9.5px; letter-spacing:.06em; text-transform:uppercase; }
.revt-account-events .ev__code .copy svg{ width:13px; height:13px; }
.revt-account-events .ev__code .copy .ic-check{ display:none; }
.revt-account-events .ev__code .copy.is-copied .ic-copy{ display:none; }
.revt-account-events .ev__code .copy.is-copied .ic-check{ display:inline; }
.revt-account-events .ev__code .copy.is-copied{ color:#2d7a50; }

/* Fuss: "Gleiche Gruppentermine finden" + Storno */
.revt-account-events .ev__links{ display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px 18px; margin-top:18px; padding-top:16px; border-top:1px solid var(--line-soft); }
.revt-account-events .ev__find{ font-family:var(--mono); font-size:11px; letter-spacing:.04em; color:var(--brass-ink); text-decoration:none; }
.revt-account-events .ev__find:hover{ color:var(--ink); }
.revt-account-events .ev__cancel{ font-family:var(--mono); font-size:10.5px; letter-spacing:.03em; color:var(--text-dim); display:inline-flex; align-items:center; gap:6px; flex-wrap:wrap; }
.revt-account-events .ev__cancel s{ text-decoration-color:var(--line); }
/* Storno-Button optisch identisch zum Einzeltermin-"Stornieren"-Button
   (RAM .ram-storno-link): grauer Rahmen-Button, Hover -> Kupfer. */
.revt-account-events .ev__cancel-btn{ font-family:var(--sans); font-size:12px; font-weight:400; letter-spacing:0; background:transparent; border:1px solid var(--line); border-radius:6px; padding:4px 10px; cursor:pointer; color:var(--text-dim); text-decoration:none; text-transform:none; transition:color .15s var(--ease), border-color .15s var(--ease); }
.revt-account-events .ev__cancel-btn:hover{ color:var(--brass-ink); border-color:var(--brass-ink); }
.revt-account-events .ev__cancel-btn.is-blocked{ color:var(--text-dim); border-color:var(--line); text-decoration:none; cursor:help; }
.revt-account-events .ev__cancel-btn.is-blocked:hover{ color:var(--text-dim); border-color:var(--line); }
.revt-account-events .ev__cancel-hint{ color:var(--text-dim); }
.revt-account-events .revt-storno-msg{ display:none; font-family:var(--sans); font-size:12px; }

/* ---- Hervorgehoben (Start < 72 Std.) ---- */
.revt-account-events .ev--soon{ border:1px solid var(--brass); box-shadow:0 0 0 1px var(--brass), 0 24px 60px -34px rgba(0,0,0,.4); }
.revt-account-events .ev--soon .ev__date{ background:var(--paper-warm); background:color-mix(in oklab, var(--brass) 8%, var(--paper)); }
.revt-account-events .ev--soon .ev__date .d{ color:var(--brass); }
.revt-account-events .ev__ribbon{ grid-column:1 / -1; display:flex; align-items:center; gap:9px; background:var(--ink); color:var(--on-ink); padding:9px 20px; font-family:var(--mono); font-size:10.5px; letter-spacing:.12em; text-transform:uppercase; }
.revt-account-events .ev__ribbon .dot{ width:7px; height:7px; border-radius:999px; background:var(--brass-soft); position:relative; flex-shrink:0; }
.revt-account-events .ev__ribbon .dot::after{ content:''; position:absolute; inset:-4px; border-radius:999px; border:1px solid var(--brass-soft); opacity:.6; animation:revt-acpulse 2s var(--ease) infinite; }
@keyframes revt-acpulse{ 0%{ transform:scale(.6); opacity:.6; } 100%{ transform:scale(1.8); opacity:0; } }
@media (prefers-reduced-motion:reduce){ .revt-account-events .ev__ribbon .dot::after{ animation:none; } }
.revt-account-events .ev__count{ display:inline-flex; align-items:center; gap:12px; margin-top:16px; padding:12px 16px; background:var(--paper-warm); background:color-mix(in oklab, var(--brass) 9%, var(--paper)); border:1px solid var(--line); border-color:color-mix(in oklab, var(--brass) 30%, transparent); }
.revt-account-events .ev__count .u{ text-align:center; }
.revt-account-events .ev__count .n{ font-family:var(--serif); font-weight:600; font-size:26px; line-height:1; color:var(--ink); display:block; }
.revt-account-events .ev__count .l{ font-family:var(--mono); font-size:9px; letter-spacing:.08em; text-transform:uppercase; color:var(--text-dim); margin-top:4px; display:block; }
.revt-account-events .ev__count .sepc{ font-family:var(--serif); font-size:22px; color:var(--brass); }
.revt-account-events .ev--soon .ev__join{ background:var(--brass); border-color:var(--brass); color:#fff; font-size:14.5px; padding:14px 22px; }
.revt-account-events .ev--soon .ev__join:hover{ background:var(--brass-ink); border-color:var(--brass-ink); color:#fff; }

/* Leerzustand */
.revt-account-events .revt-ae-empty{ font-family:var(--sans); font-size:14px; color:var(--text-mid); }

/* Redundante Endpoint-Topbar (RAM: .reset-acc-topbar = navy "Gruppentermine" + Linie ganz
   oben) auf DIESER Seite ausblenden -- der eigene .achead liefert den Titel. Nur DESKTOP
   (>1024px = RAM-Default-Breakpoint); mobil bleibt die Topbar als Zurueck-Navigation. Greift
   ausschliesslich auf body.revt-meine-events, also nur auf der Gruppentermine-Konto-Seite. */
@media (min-width: 1025px) {
	body.revt-meine-events .reset-acc-topbar { display: none !important; }
}

/* Vergangene Termine -- eingeklappt (Standard zu), auf Klick aufklappbar. */
.revt-account-events .revt-ae-past{ margin-top:26px; border-top:1px solid var(--line); padding-top:22px; }
.revt-account-events .revt-ae-past__toggle{ cursor:pointer; list-style:none; display:inline-flex; align-items:center; gap:10px; font-family:var(--mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase; color:var(--brass-ink); -webkit-user-select:none; user-select:none; }
.revt-account-events .revt-ae-past__toggle::-webkit-details-marker{ display:none; }
.revt-account-events .revt-ae-past__toggle::before{ content:"+"; display:inline-flex; align-items:center; justify-content:center; width:20px; height:20px; border:1px solid var(--line); color:var(--brass); font-size:15px; line-height:1; }
.revt-account-events details.revt-ae-past[open] .revt-ae-past__toggle::before{ content:"\2013"; }
.revt-account-events .revt-ae-past__toggle:hover{ color:var(--ink); }
.revt-account-events .revt-ae-past__list{ margin-top:20px; }

/* ── Storno-Modal (haengt am <body> -> eigene Palette-Vars, da .revt-account-events-Scope hier nicht greift) ── */
.revt-modal-overlay{
	--revt-ink:#1c1d1f; --revt-muted:#595b61; --revt-dim:#8f919a; --revt-line:#d5ccba; --revt-terra:#b5663f;
	--revt-serif:'Cormorant Garamond',Georgia,serif; --revt-mono:'IBM Plex Mono',ui-monospace,monospace; --revt-sans:'Jost',ui-sans-serif,system-ui,sans-serif;
	position:fixed; inset:0; z-index:100000; display:flex; align-items:center; justify-content:center; padding:20px;
	background:rgba(28,29,31,.55); -webkit-backdrop-filter:blur(3px); backdrop-filter:blur(3px);
}
.revt-modal-overlay[hidden]{ display:none !important; }
.revt-modal{
	width:100%; max-width:440px; background:#fff; border:1px solid var(--revt-line); padding:26px 26px 22px;
	position:relative; box-shadow:0 18px 50px rgba(0,0,0,.22); font-family:var(--revt-sans); color:var(--revt-ink);
}
.revt-modal *{ box-sizing:border-box; }
.revt-modal__x{ position:absolute; top:10px; right:10px; width:34px; height:34px; line-height:1; border:0; background:transparent; cursor:pointer; font-size:26px; color:var(--revt-dim); }
.revt-modal__x:hover{ color:var(--revt-terra); }
.revt-modal__title{ margin:0 0 12px; font-family:var(--revt-serif); font-weight:500; font-size:25px; line-height:1.15; letter-spacing:-.01em; color:var(--revt-ink); }
.revt-modal__text{ margin:0 0 14px; font-size:15px; line-height:1.6; color:var(--revt-muted); }
.revt-modal__amount{ display:flex; justify-content:space-between; align-items:baseline; padding:10px 0; border-top:1px solid var(--revt-line); border-bottom:1px solid var(--revt-line); margin:0 0 16px; }
.revt-modal__amount span{ font-family:var(--revt-mono); font-size:11px; text-transform:uppercase; letter-spacing:.12em; color:var(--revt-dim); }
.revt-modal__amount strong{ font-family:var(--revt-serif); font-size:24px; color:var(--revt-ink); }
.revt-modal__mlabel{ display:block; font-family:var(--revt-mono); font-size:11px; text-transform:uppercase; letter-spacing:.12em; color:var(--revt-dim); margin:0 0 6px; }
.revt-modal__select{
	width:100%; padding:11px 36px 11px 12px; font-size:15px; font-family:inherit; border:1px solid var(--revt-line);
	background:#fff; color:var(--revt-ink); border-radius:0; -webkit-appearance:none; appearance:none;
	background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23595b61' stroke-width='2'%3E%3Cpath d='M6 9l6 6 6-6'/%3E%3C/svg%3E");
	background-repeat:no-repeat; background-position:right 12px center; background-size:16px;
}
.revt-modal__hint{ margin:8px 0 0; font-size:13px; line-height:1.55; color:var(--revt-dim); }
.revt-modal__msg{ margin:12px 0 0; font-size:14px; }
.revt-modal__code{ font-family:var(--revt-mono); font-size:22px; font-weight:700; letter-spacing:1px; text-align:center; color:var(--revt-ink); background:#faf7f1; border:2px dashed var(--revt-terra); padding:16px; margin:6px 0 4px; word-break:break-all; }
.revt-modal__actions{ display:flex; gap:10px; justify-content:flex-end; margin-top:20px; }
.revt-modal__btn{ -webkit-appearance:none; appearance:none; border:1px solid var(--revt-line); background:#fff; color:var(--revt-ink); padding:11px 18px; font-size:14px; font-family:inherit; cursor:pointer; border-radius:0; }
.revt-modal__btn:hover{ border-color:var(--revt-terra); }
.revt-modal__btn--primary{ background:var(--revt-terra); border-color:var(--revt-terra); color:#fff; }
.revt-modal__btn--primary:hover{ filter:brightness(.95); }
.revt-modal__btn:disabled{ opacity:.55; cursor:default; }
@media (max-width:480px){
	.revt-modal{ padding:22px 18px 18px; }
	.revt-modal__actions{ flex-direction:column-reverse; }
	.revt-modal__btn{ width:100%; }
}

/* v0.96.0: verschenkter Platz -- ein ganzer Satz, darum in normaler Schrift statt der kurzen Versal-Zeile. */
.revt-account-events .ev__quelle--geschenk { text-transform: none; letter-spacing: normal; font-family: inherit; font-size: 14px; line-height: 1.5; font-weight: 500; }
