/* Events phase 2: Liste/Kalender, Assistent, Abschnitts-Editor, Training. Baut auf portal-round4.css auf;
   nur, was dort fehlt (Kalender, Wizard-Schritte, Fristenzeilen, Abschnittsnavigation). Keine Inline-Styles (CSP). */
.ev-page{--ev-ir:#f3cf8a;--ev-lmu:#9fcbff;--ev-warn:var(--r4-warn,#f0b24a)}
.ev-page h2,.ev-page h3{margin:0}
.ev-type-training{background:#1c2b22;border-color:#2a5b38;color:#b6ecc4}
.ev-type-race{background:#2b1640;border-color:#4c2d70;color:#d6b5ff}
.ev-type-endurance{background:var(--reds);border-color:#71101a;color:#ffd2d6}
.ev-type-league{background:#132235;border-color:#2b4a6d;color:#9fcbff}
.ev-type-special{background:#2f2514;border-color:#5e4c2a;color:#f3cf8a}

/* ---------- filters + list */
.ev-filters{row-gap:10px}
.ev-filters .r4-chips .r4-chip{min-height:30px}
.ev-search{min-width:200px;flex:1 1 200px;max-width:320px}
.ev-switch{display:inline-flex;align-items:center;gap:8px;font-size:13px;cursor:pointer;min-width:0}
.ev-switch input{width:16px;height:16px;margin:0;flex:none;accent-color:var(--red)}
.r4-filters label.ev-switch{height:36px}
.ev-list{display:grid;gap:10px}
.ev-row{display:grid;grid-template-columns:74px minmax(0,1fr) auto;gap:14px;align-items:center;background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:12px 16px;cursor:pointer;min-width:0}
.ev-row:hover,.ev-row:focus-visible{background:var(--panel2);outline:none;box-shadow:inset 3px 0 var(--red)}
.ev-row-date{display:grid;text-align:center;border-right:1px solid var(--line);padding-right:12px}
.ev-row-date b{font-size:13px;text-transform:uppercase;color:var(--redt)}
.ev-row-date small{color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}
.ev-row-main{min-width:0;display:grid;gap:4px}
.ev-row-main h3{font-size:15px;overflow-wrap:anywhere}
.ev-row-main p{margin:0;color:var(--muted);font-size:12.5px;overflow-wrap:anywhere}
.ev-row-badges{display:flex;gap:6px;flex-wrap:wrap}
.ev-next{color:#f3cf8a;font-size:12px}
.ev-next span{color:var(--muted)}
.ev-row-side{display:grid;gap:4px;justify-items:end;text-align:right}
.ev-row-side small{color:var(--muted);font-size:12px}

.ev-page .r4-li{border-left:0;border-right:0;border-bottom:0;width:100%;box-sizing:border-box}
.ev-kpis{display:grid;gap:8px}
.ev-kpi{display:grid;grid-template-columns:auto minmax(0,1fr);gap:0 12px;align-items:center;padding:8px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel2)}
.ev-kpi b{grid-row:span 2;font-size:24px;font-weight:800;font-variant-numeric:tabular-nums;min-width:28px;text-align:center}
.ev-kpi span{font-size:12px;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:var(--muted)}
.ev-kpi small{color:var(--muted);font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.ev-dlitem .ico.hot{color:var(--ev-warn);border-color:#5e4c2a}
.ev-dlitem{cursor:pointer}

/* ---------- calendar */
.ev-cal-head{justify-content:flex-start}
.ev-cal-head h2{min-width:150px;text-align:center;justify-content:center;text-transform:capitalize}
.ev-cal{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:4px}
.ev-cal-wd{font-size:11px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em;text-align:center;padding:4px 0}
.ev-cal-day{min-height:92px;border:1px solid var(--line);border-radius:8px;padding:4px;display:flex;flex-direction:column;gap:3px;min-width:0;background:var(--panel)}
.ev-cal-day.out{opacity:.45}
.ev-cal-day.today{border-color:var(--red);box-shadow:inset 0 0 0 1px var(--red)}
.ev-cal-n{font-size:11.5px;color:var(--muted);font-variant-numeric:tabular-nums}
.ev-cal-ev,.ev-cal-dl{all:unset;box-sizing:border-box;display:flex;align-items:center;gap:4px;font-size:11px;line-height:1.3;padding:2px 4px;border-radius:5px;cursor:pointer;min-width:0;background:var(--panel2);border:1px solid var(--line)}
.ev-cal-ev span,.ev-cal-dl span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
.ev-cal-ev i,.ev-cal-dl i,.ev-dot{width:7px;height:7px;border-radius:50%;flex:none;display:inline-block}
.ev-cal-ev.irc i,.ev-dot.irc{background:var(--ev-ir)}
.ev-cal-ev.lmu i,.ev-dot.lmu{background:var(--ev-lmu)}
.ev-cal-ev.mine{border-color:var(--red);background:var(--reds)}
.ev-dot.mine{background:var(--red)}
.ev-cal-dl{background:transparent;border-style:dashed;color:#f3cf8a}
.ev-cal-dl i,.ev-dot.dl{background:var(--ev-warn)}
.ev-cal-ev:focus-visible,.ev-cal-dl:focus-visible{outline:2px solid var(--red)}
.ev-legend .ev-dot{border-radius:50%}
.ev-agenda{display:none;gap:10px;margin-top:12px}
.ev-agenda-day{display:grid;gap:4px}
.ev-agenda-day>b{font-size:12px;color:var(--muted);text-transform:uppercase}
.ev-agenda-item{all:unset;box-sizing:border-box;display:flex;gap:8px;align-items:center;font-size:13px;padding:7px 9px;border:1px solid var(--line);border-radius:8px;background:var(--panel2);cursor:pointer;min-width:0}
.ev-agenda-item span:last-child{overflow-wrap:anywhere;min-width:0}

/* ---------- wizard */
.ev-steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:8px}
.ev-step{all:unset;box-sizing:border-box;display:flex;gap:10px;align-items:center;padding:10px 12px;border:1px solid var(--line);border-radius:10px;background:var(--panel);cursor:pointer;min-width:0}
.ev-step:disabled{cursor:not-allowed;opacity:.55}
.ev-step .n{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--panel2);border:1px solid var(--line);font-size:12px;font-weight:700;flex:none}
.ev-step b{display:block;font-size:13px}
.ev-step small{display:block;color:var(--muted);font-size:11px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ev-step span:last-child{min-width:0}
.ev-step.on{border-color:var(--red);box-shadow:inset 0 -2px var(--red)}
.ev-step.on .n{background:var(--red);border-color:var(--red);color:#fff}
.ev-step.done .n{background:#15291c;border-color:#2a5b38;color:#8de3a3}
.ev-step:focus-visible{outline:2px solid var(--red)}
.ev-sticky{align-self:start;position:sticky;top:12px}
.ev-wizard>form{align-content:start}
.ev-howto{margin:0;padding-left:18px;display:grid;gap:8px;font-size:13px;color:var(--muted)}
.ev-howto b{color:var(--text)}
.ev-wnav{display:flex;gap:10px;align-items:center;flex-wrap:wrap}
.ev-wnav small{color:var(--muted)}
.ev-sec .r4-ph{margin-bottom:8px}
.ev-sec-fold>summary{cursor:pointer;display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.ev-sec-fold>summary b{font-size:15px}
.ev-sec-fold>summary small{color:var(--muted);font-size:12px}
.ev-sec-fold[open]>summary{margin-bottom:12px}
.ev-sec-body{display:grid;gap:14px;min-width:0}
.ev-fields{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.ev-f{display:grid;gap:5px;min-width:0;align-content:start}
.ev-f>span{font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);font-weight:600}
.ev-f>span small{text-transform:none;letter-spacing:0;font-weight:500}
.ev-f>small{color:var(--muted);font-size:11.5px}
.ev-f input,.ev-f select,.ev-f textarea{width:100%;min-width:0;box-sizing:border-box;min-height:38px;padding:8px 10px;border-radius:9px;font-size:13.5px}
.ev-f textarea{min-height:76px;resize:vertical}
.ev-f input:disabled,.ev-f select:disabled{opacity:.55}
.ev-w2{grid-column:span 2}
.ev-full{grid-column:1/-1}
.ev-h3{font-size:13.5px;display:flex;gap:8px;align-items:baseline;flex-wrap:wrap}
.ev-h3 small{color:var(--muted);font-weight:500;font-size:12px}
.ev-inrow{display:flex;gap:6px;align-items:center;flex-wrap:wrap;min-width:0}
.ev-inrow input[type=number]{width:84px;flex:none}
.ev-inrow select{width:auto;flex:0 1 auto}
.ev-inrow small{color:var(--muted);font-size:12px}
.ev-combo{display:flex;gap:6px;min-width:0}
.ev-combo input{flex:1}
.ev-combo-list{display:grid;border:1px solid var(--line);border-radius:9px;overflow:hidden;background:var(--panel2);margin-top:2px}
.ev-combo-list button{all:unset;box-sizing:border-box;padding:8px 10px;cursor:pointer;display:flex;justify-content:space-between;gap:10px;font-size:13px;border-top:1px solid var(--line);min-width:0}
.ev-combo-list button:first-child{border-top:0}
.ev-combo-list button:hover,.ev-combo-list button:focus-visible{background:var(--reds)}
.ev-combo-list small{color:var(--muted);white-space:nowrap}
.ev-clsboxes{display:grid;gap:10px}
.ev-clsbox{border:1px solid var(--line);border-radius:10px;padding:10px 12px;display:grid;gap:8px;background:var(--panel2)}
.ev-clsbox header{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.ev-clsbox>small{color:var(--muted);font-size:12px}
.ev-carpick{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:4px 12px}
.ev-carpick label{display:flex;gap:7px;align-items:center;font-size:13px;min-width:0;cursor:pointer;min-height:28px}
.ev-carpick input{width:15px;height:15px;flex:none;margin:0;accent-color:var(--red)}
.ev-free{border:1px dashed var(--line);border-radius:10px;padding:10px 12px;display:grid;gap:10px}
.ev-free>summary{cursor:pointer;font-weight:600;font-size:13px}
.ev-free>summary em{font-style:normal;font-size:11px;background:#252a34;border-radius:999px;padding:0 7px;margin-left:6px}
.ev-fv{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr) auto auto;gap:10px;align-items:end}
.ev-slots{display:grid;gap:8px}
.ev-slot{display:grid;grid-template-columns:28px minmax(0,1fr) minmax(0,1fr) minmax(0,1.1fr) auto;gap:10px;align-items:end;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--panel2)}
.ev-num{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:var(--panel);border:1px solid var(--line);font-size:12px;font-weight:700;align-self:center}
.ev-conv{color:var(--muted);font-size:11.5px;padding-bottom:10px;font-variant-numeric:tabular-nums}
.ev-gen{border:1px solid var(--line);border-radius:10px;padding:10px 12px;display:grid;gap:10px}
.ev-gen>summary{cursor:pointer;font-weight:600;font-size:13px}
.ev-gen>summary small{color:var(--muted);font-weight:500}
.ev-dls{display:grid;gap:6px}
.ev-dl{display:grid;grid-template-columns:150px 140px minmax(0,1fr) minmax(0,auto);gap:10px;align-items:center;padding:8px 10px;border:1px solid var(--line);border-radius:10px;background:var(--panel2);min-width:0}
.ev-dl b{font-size:13px}
.ev-dl select,.ev-dl input{min-height:34px;padding:6px 8px;border-radius:8px;font-size:13px;min-width:0}
.ev-dl-at{color:#f3cf8a;font-size:12.5px;font-variant-numeric:tabular-nums;text-align:right}
.ev-checks{display:grid;gap:6px}
.ev-check{margin:0;font-size:12.5px;padding:7px 10px;border-radius:8px;border:1px solid var(--line)}
.ev-check.err{border-color:#71101a;background:var(--reds);color:#ffd2d6}
.ev-check.warn{border-color:#5e4c2a;background:#2f2514;color:#f3cf8a}
.ev-check.ok{border-color:#2a5b38;background:#15291c;color:#8de3a3}
.ev-issues{display:grid;gap:6px}
.ev-rems{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
.ev-rem{display:flex;gap:6px;align-items:center;border:1px solid var(--line);border-radius:9px;padding:4px 6px;background:var(--panel2)}
.ev-rem input{width:70px;min-height:30px;padding:4px 6px;border-radius:7px}
.ev-rem select{width:auto;min-height:30px;padding:4px 6px;border-radius:7px}
.ev-seg-wrap{flex-wrap:wrap}
.ev-names{display:grid;gap:6px}
.ev-names div{display:flex;gap:8px;align-items:center;flex-wrap:wrap;min-width:0}
.ev-names code{font-size:12.5px;background:var(--panel2);border:1px solid var(--line);border-radius:6px;padding:2px 7px;overflow-wrap:anywhere}
.ev-tl{list-style:none;margin:0;padding:0 0 0 14px;display:grid;gap:9px;border-left:2px solid var(--line)}
.ev-tl li{position:relative;display:grid;gap:1px}
.ev-tl li::before{content:"";position:absolute;left:-20px;top:4px;width:10px;height:10px;border-radius:50%;background:var(--panel);border:2px solid var(--red)}
.ev-tl li.past::before{border-color:var(--line);background:var(--line)}
.ev-tl b{font-size:13px}
.ev-tl small{color:var(--muted);font-size:12px;font-variant-numeric:tabular-nums}
.ev-sum{display:grid;grid-template-columns:minmax(90px,.7fr) minmax(0,1.3fr);gap:7px 12px;margin:0;font-size:13px}
.ev-sum dt{color:var(--muted)}
.ev-sum dd{margin:0;min-width:0;overflow-wrap:anywhere;display:flex;gap:6px;flex-wrap:wrap;align-items:center}
.ev-review{gap:20px}
.ev-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}
.ev-tpls{display:grid;grid-template-columns:repeat(auto-fill,minmax(210px,1fr));gap:10px}
.ev-tpl{all:unset;box-sizing:border-box;display:grid;gap:6px;padding:12px;border:1px solid var(--line);border-radius:10px;background:var(--panel2);cursor:pointer;min-width:0}
.ev-tpl:hover,.ev-tpl:focus-visible{border-color:var(--red);box-shadow:inset 0 0 0 1px var(--red)}
.ev-tpl-top{display:flex;gap:6px;flex-wrap:wrap}
.ev-tpl b{font-size:14px;overflow-wrap:anywhere}
.ev-tpl small{color:var(--muted);font-size:12px;overflow-wrap:anywhere}

/* ---------- editor */
.ev-edit-head{display:flex;justify-content:space-between;gap:12px;align-items:flex-end;flex-wrap:wrap}
.ev-edit-head h2{font-size:22px;margin:2px 0 6px;overflow-wrap:anywhere}
.ev-edit-head .r4-chips small{color:var(--muted);font-size:12px}
.ev-changebar{display:flex;gap:8px;align-items:center;flex-wrap:wrap;padding:8px 12px;border:1px solid #5e4c2a;background:#2f2514;color:#f3cf8a;border-radius:10px;position:sticky;top:8px;z-index:3}
.ev-setgrid{display:grid;grid-template-columns:230px minmax(0,1fr) 300px;gap:14px;align-items:start}
.ev-setgrid>*{min-width:0}
.ev-secnav{display:grid;gap:4px;position:sticky;top:12px}
.ev-secnav button{all:unset;box-sizing:border-box;display:grid;gap:1px;padding:9px 12px;border-radius:9px;cursor:pointer;border:1px solid transparent;min-width:0}
.ev-secnav button b{font-size:13px;font-weight:600}
.ev-secnav button small{color:var(--muted);font-size:11.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ev-secnav button:hover{background:var(--panel2)}
.ev-secnav button.on{background:var(--panel2);border-color:var(--line);box-shadow:inset 3px 0 var(--red)}
.ev-secnav button:focus-visible{outline:2px solid var(--red)}
#ev-form{display:grid;gap:14px;min-width:0}
.ev-rail{position:sticky;top:12px}
.ev-jobs{display:grid;gap:6px;font-size:13px}
.ev-jobs div{display:flex;justify-content:space-between;gap:8px;align-items:center}
.ev-tpl-table .ev-tpl-name{min-height:32px;padding:5px 8px;border-radius:7px;max-width:280px}

/* ---------- dialogs */
.ev-dialog{border:1px solid var(--line);border-radius:14px;background:var(--panel);color:var(--text);padding:0;width:min(520px,calc(100vw - 32px));max-height:calc(100vh - 32px)}
.ev-dialog::backdrop{background:rgb(0 0 0/.6)}
.ev-dialog-body{display:grid;gap:12px;padding:18px}
.ev-dialog-body h3{margin:0;font-size:16px}
.ev-cklist{display:grid;gap:8px}
.ev-cklist label{display:flex;gap:9px;align-items:flex-start;font-size:13px}
.ev-cklist input{width:16px;height:16px;margin:2px 0 0;flex:none;accent-color:var(--red)}
.ev-cklist small{display:block;color:var(--muted);font-size:11.5px}

/* ---------- training */
.ev-hero{display:grid;gap:8px}
.ev-hero h2{font-size:22px;overflow-wrap:anywhere}
.ev-hero-sub{margin:0;color:var(--muted);overflow-wrap:anywhere}
.ev-hero-when{margin:0;display:flex;gap:10px;align-items:baseline;flex-wrap:wrap}
.ev-hero-when b{font-size:18px}
.ev-hero-when small{color:var(--muted)}
.ev-rsvp{display:flex;gap:8px;flex-wrap:wrap}
.ev-rsvp .r4-btn[aria-pressed="true"]:not(.p){border-color:var(--red)}
.ev-names-list{list-style:none;margin:0;padding:0;display:flex;gap:6px;flex-wrap:wrap}
.ev-names-list li{padding:3px 10px;border:1px solid var(--line);border-radius:999px;font-size:12.5px;background:var(--panel2)}
.ev-names-list li.me{border-color:var(--red);background:var(--reds)}

@media(max-width:1180px){.ev-setgrid{grid-template-columns:210px minmax(0,1fr)}.ev-rail{grid-column:1/-1;position:static}.ev-sticky{position:static}}
@media(max-width:1023px){.ev-fields{grid-template-columns:repeat(2,minmax(0,1fr))}.ev-steps{grid-template-columns:repeat(5,minmax(0,1fr))}.ev-step small{display:none}.ev-dl{grid-template-columns:130px 120px minmax(0,1fr)}.ev-dl-at{grid-column:1/-1;text-align:left}}
@media(max-width:820px){
 .ev-setgrid{grid-template-columns:1fr}
 .ev-secnav{position:static;display:flex;overflow-x:auto;gap:6px;padding-bottom:4px;scrollbar-width:thin}
 .ev-secnav button{flex:none;border-color:var(--line)}
 .ev-secnav button small{display:none}
}
@media(max-width:699px){
 .ev-filters>*{max-width:100%}
 .ev-filters #ev-types,.ev-filters .seg,.ev-filters .ev-search{grid-column:1/-1}
 .ev-filters label.ev-switch{height:auto;min-height:36px}
 .ev-search{min-width:0;max-width:none;flex:1 1 100%}
 .ev-filters .seg{width:100%}
 .ev-row{grid-template-columns:56px minmax(0,1fr);padding:10px 12px;gap:10px}
 .ev-row-side{grid-column:1/-1;justify-items:start;text-align:left;display:flex;gap:8px;flex-wrap:wrap;align-items:center}
 .ev-cal{gap:2px}
 .ev-cal-day{min-height:46px;padding:2px}
 .ev-cal-ev span,.ev-cal-dl span{display:none}
 .ev-cal-ev,.ev-cal-dl{padding:3px;justify-content:center}
 .ev-agenda{display:grid}
 .ev-steps{gap:4px}
 .ev-step{padding:8px 4px;justify-content:center}
 .ev-step span:last-child{display:none}
 .ev-step.on span:last-child{display:block}
 .ev-step.on{grid-column:span 1}
 .ev-fields{grid-template-columns:1fr}
 .ev-w2{grid-column:auto}
 .ev-fv{grid-template-columns:1fr 1fr}
 .ev-slot{grid-template-columns:26px minmax(0,1fr);}
 .ev-slot>.ev-f,.ev-slot>.ev-conv,.ev-slot>button{grid-column:2}
 .ev-conv{padding-bottom:0}
 .ev-dl{grid-template-columns:1fr 1fr}
 .ev-dl b{grid-column:1/-1}
 .ev-dl .ev-inrow,.ev-dl input[type=datetime-local]{grid-column:1/-1}
 .ev-edit-head .r4-btns{width:100%}
 .ev-changebar{top:60px}
 .ev-edit-head .r4-btns .r4-btn{flex:1 1 auto;justify-content:center}
 .ev-wnav .r4-btn{flex:1 1 auto;justify-content:center}
 .ev-sum{grid-template-columns:96px minmax(0,1fr)}
}
