/* Admin LV 2026 – baut auf teaser.css (Variablen, .field, .submit, .msg) auf */
[hidden]{display:none!important}
/* Anmelde-Karte, Hinweise & Fokus wie bisher (die Startseite ist inzwischen randlos, der Admin-Bereich bleibt so) */
.admin .signup{width:min(100%, 640px);text-align:left;background:var(--bg2);border:1px solid var(--line);border-radius:16px;padding:clamp(18px, calc(var(--u) * 3.2), 32px)}
.admin .intro{margin:0 0 16px;color:var(--muted)}
.admin .field input::placeholder{color:#8a8a8a}
.admin input:focus-visible,.admin select:focus-visible,.admin .submit:focus-visible{outline:3px solid #fff;outline-offset:3px}
.admin{color-scheme:dark;width:100%;max-width:1320px;margin:0 auto;padding:24px 20px 60px;font-size:15px}
.admin .top{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;min-height:38px}
.admin .back{color:var(--muted);text-decoration:none}
.admin .back:hover{color:var(--text)}
.admin .me{display:flex;gap:10px;align-items:center;min-width:0;max-width:100%}
#who{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.admin h1{font-family:Lemonmilk,Ubuntu,sans-serif;font-style:italic;text-transform:uppercase;font-size:min(34px, 7vw);margin:10px 0 22px}
.admin h1 .accent{color:var(--accent)}
.admin h2{font-family:Lemonmilk,Ubuntu,sans-serif;font-style:italic;text-transform:uppercase;font-size:15px;letter-spacing:.02em;margin:0 0 14px}
.admin .opt{font-family:Ubuntu,sans-serif;font-style:normal;text-transform:none;font-weight:400;font-size:12px;color:var(--muted);margin-left:6px}
.login{margin:0 auto}
.muted{color:var(--muted)}.small{font-size:.85em}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* Buttons */
.submit.small{width:auto;padding:10px 18px;font-size:13px}
.ghost{font:inherit;background:transparent;color:var(--text);border:1px solid var(--line);border-radius:999px;padding:9px 16px;cursor:pointer;text-decoration:none;display:inline-flex;align-items:center}
.ghost:hover{border-color:var(--muted)}
.ghost.sm{padding:6px 12px;font-size:13px}
/* Download-Links sehen aus wie Knöpfe; ohne Link (noch nicht geholt / abgemeldet) inaktiv */
a.submit,a.ghost{display:inline-flex;align-items:center;justify-content:center;text-decoration:none;box-sizing:border-box}
a.submit[aria-disabled="true"],a.ghost[aria-disabled="true"]{opacity:.5;pointer-events:none;transform:none;cursor:default}
.ghost.danger:hover{border-color:var(--error);color:var(--error)}
.btn{font:inherit;font-size:13px;background:#111;color:var(--text);border:1px solid var(--line);border-radius:999px;padding:5px 12px;cursor:pointer;white-space:nowrap}
.btn:hover{border-color:var(--muted)}
.btn.accept{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:700}
.btn.accept:hover{box-shadow:0 4px 14px rgba(215,249,22,.2)}
.link{font:inherit;background:none;border:0;padding:0;color:var(--accent);cursor:pointer;text-decoration:underline;text-underline-offset:2px}
/* kleine Textknöpfe (Nebenaktionen) */
.tbtn{font:inherit;font-size:13px;background:none;border:0;padding:4px 0;color:var(--muted);cursor:pointer;text-decoration:underline;text-decoration-color:#555;text-underline-offset:3px}
.tbtn:hover:not(:disabled){color:var(--text);text-decoration-color:currentColor}
.tbtn:disabled{opacity:.5;cursor:default}
.admin button:focus-visible,.admin a:focus-visible,.admin select:focus-visible,.admin input:focus-visible{outline:2px solid #fff;outline-offset:2px}

/* Tabs */
.tabs{display:flex;gap:4px;border-bottom:1px solid var(--line);margin-bottom:18px;overflow-x:auto;overflow-y:hidden;scrollbar-width:none}
.tabs [role=tab]{font:inherit;font-weight:700;background:none;border:0;border-bottom:2px solid transparent;color:var(--muted);padding:10px 14px;margin-bottom:-1px;cursor:pointer;white-space:nowrap}
.tabs [role=tab]:hover{color:var(--text)}
.tabs [role=tab][aria-selected=true]{color:var(--text);border-bottom-color:var(--accent)}

/* Toolbar */
.toolbar{display:flex;flex-wrap:wrap;gap:12px;align-items:center;justify-content:space-between;margin-bottom:6px}
.actions{display:flex;flex-wrap:wrap;gap:8px;align-items:center}
.actions input{font:inherit;color:var(--text);background:#111;border:1px solid var(--line);border-radius:999px;padding:9px 14px;min-width:220px}
.seg{display:inline-flex;background:#111;border:1px solid var(--line);border-radius:999px;padding:3px}
.seg button{font:inherit;font-size:14px;background:none;border:0;color:var(--muted);padding:7px 14px;border-radius:999px;cursor:pointer}
.seg button b{font-weight:700;margin-left:4px;color:var(--text)}
.seg button[aria-pressed=true]{background:var(--accent);color:var(--accent-ink)}
.seg button[aria-pressed=true] b{color:var(--accent-ink)}
.stats{margin:4px 0 12px;min-height:1.3em}
.notice{border:1px solid #5a5220;background:#232112;border-radius:12px;padding:10px 14px;margin-bottom:12px;font-size:14px}
.notice p{margin:2px 0}

/* Tabelle */
.tablewrap{overflow:auto;border:1px solid var(--line);border-radius:12px;background:var(--bg2);max-height:72vh}
table{border-collapse:collapse;width:100%;font-size:14px}
th,td{padding:10px 12px;text-align:left;border-bottom:1px solid #2a2a2a;white-space:nowrap;vertical-align:middle}
th{position:sticky;top:0;background:#1a1a1a;font-weight:700;font-size:13px;color:var(--muted);z-index:2}
tbody tr:hover td{background:#242424}
tbody tr:last-child td{border-bottom:0}
td.num{color:var(--muted);font-variant-numeric:tabular-nums}
td.strong{font-weight:700}
.namebtn{font:inherit;font-weight:700;color:var(--text);background:none;border:0;padding:0;cursor:pointer;text-align:left}
.namebtn:hover{color:var(--accent);text-decoration:underline;text-underline-offset:3px}
tbody tr.pick{cursor:pointer}
td.empty{text-align:center;color:var(--muted);padding:28px}
th.act,td.act{position:sticky;right:0;background:var(--bg2);z-index:1;box-shadow:-10px 0 12px -10px rgba(0,0,0,.6)}
th.act{background:#1a1a1a;z-index:3}
.rowact{display:flex;gap:6px;justify-content:flex-end}
.badge{display:inline-block;padding:2px 10px;border-radius:999px;font-size:12px;border:1px solid var(--line);white-space:nowrap}
.badge.d{background:var(--accent);color:var(--accent-ink);border-color:var(--accent);font-weight:700}
.badge.l{border-color:var(--accent);color:var(--accent)}
.badge.z-open{color:var(--muted)}
.badge.z-ok{background:#1f2a06;border-color:#5d6d12;color:var(--accent);font-weight:700}
.badge.z-off{border-color:#5a2a2a;color:var(--error)}
tr.is-off td:not(.act){opacity:.55}
.mail{display:inline-block;max-width:280px;overflow:hidden;text-overflow:ellipsis;vertical-align:middle;font-size:13px}
.mail.ok{color:var(--muted)}
.mail.fail{color:var(--error)}
.mail.wait{color:#e3d36b}
.mail.none{color:#666}

/* Tabs außer „Anmeldungen“: eine schmale Spalte */
.view{max-width:800px}
#panel .msg{text-align:left;min-height:0;overflow-wrap:anywhere}
#panel .msg:empty{margin:0}
/* eine Karte je Tab, Abschnitte nur durch Haarlinien getrennt */
.pane{background:var(--bg2);border:1px solid var(--line);border-radius:14px}
.blk{padding:22px}
.blk + .blk{border-top:1px solid #2a2a2a}
.note.warnline{margin:0 0 12px}

/* Formulare */
.grid{display:grid;grid-template-columns:repeat(6, minmax(0, 1fr));gap:0 12px}
.grid .s2{grid-column:span 2}.grid .s3{grid-column:span 3}.grid .s4{grid-column:span 4}.grid .s6{grid-column:span 6}
@media (max-width:620px){.grid .s3,.grid .s4{grid-column:span 6}.grid .s2{grid-column:span 6}}
/* Handy: Server + Port und Benutzername + Passwort bleiben nebeneinander */
@media (max-width:620px){.grid .m4{grid-column:span 4}.grid .m2{grid-column:span 2}.grid .m3{grid-column:span 3}}
@media (min-width:620.02px){.grid .check-mid{align-self:end;margin:0 0 26px}} /* Häkchen neben einem Feld: auf Höhe des Felds */
.admin .field{margin-bottom:14px}
.admin .field label{display:block;font-weight:700;font-size:13px;margin-bottom:6px}
.admin .field input,.admin .field select,.inline input{width:100%;font:inherit;color:var(--text);background:#111;border:1px solid var(--line);border-radius:10px;padding:10px 12px}
.admin .field select{appearance:none;-webkit-appearance:none;padding-right:34px;cursor:pointer;
  background-image:linear-gradient(45deg, transparent 50%, var(--muted) 50%),linear-gradient(135deg, var(--muted) 50%, transparent 50%);
  background-position:calc(100% - 18px) 55%, calc(100% - 13px) 55%;background-size:5px 5px;background-repeat:no-repeat}
.admin [aria-invalid=true]{border-color:var(--error)!important}
.check{display:flex;gap:10px;align-items:center;font-size:14px;color:var(--muted);margin:-4px 0 14px;cursor:pointer}
.check input{width:18px;height:18px;accent-color:var(--accent);margin:0}
.formfoot{display:flex;flex-wrap:wrap;gap:14px;align-items:center;margin-top:6px}
.inline{display:flex;gap:10px;flex-wrap:wrap}
.inline input{flex:1;min-width:min(220px, 100%);width:auto}
.admin .msg{margin-top:10px}

/* Datei-Knöpfe (verstecktes input[type=file] im Label) */
.uploadrow{display:flex;gap:14px;align-items:center;flex-wrap:wrap}
.filebtn{position:relative;overflow:hidden;display:inline-flex}
.filebtn input{position:absolute;inset:0;opacity:0;cursor:pointer;font-size:0}
.filebtn:focus-within{outline:2px solid #fff;outline-offset:2px}
progress{width:100%;max-width:420px;height:6px;margin-top:14px;accent-color:var(--accent)}

/* Einstellungen: ein Kasten, je Bereich eine aufklappbare Zeile (Titel links, Status rechts) */
.set{background:var(--bg2);border:1px solid var(--line);border-radius:14px;overflow:hidden}
.set-sec{scroll-margin-top:12px}
.set-sec + .set-sec{border-top:1px solid #2a2a2a}
.set-sec > summary{display:flex;align-items:center;gap:12px;min-height:58px;padding:14px 20px;cursor:pointer;list-style:none;-webkit-tap-highlight-color:transparent}
.set-sec > summary::-webkit-details-marker{display:none}
.set-sec > summary:hover{background:#242424}
.admin .set-sec > summary:focus-visible{outline:2px solid #fff;outline-offset:-2px}
.admin .set-t{flex:1;min-width:0;margin:0;font-size:14px;overflow-wrap:anywhere}
.set-st{flex:none;font-size:13px;color:var(--muted);white-space:nowrap}
.set-st.warn{color:#f1e28a}
.set-chev{flex:none;color:#6b6b6b;font-size:20px;line-height:1;transition:transform .15s}
.set-sec[open] > summary .set-chev{transform:rotate(90deg);color:var(--accent)}
.set-body{padding:2px 20px 20px}
.sub-h{display:block;margin:4px 0 10px;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
/* optionaler Teil (IMAP) eingeklappt */
.more{margin:0 0 14px;border-top:1px solid #2a2a2a}
.more > summary{display:flex;align-items:center;gap:8px;padding:12px 0;cursor:pointer;list-style:none;font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.more > summary::-webkit-details-marker{display:none}
.more > summary::after{content:'›';order:3;font-size:16px;line-height:1;color:#6b6b6b;transition:transform .15s}
.more[open] > summary::after{transform:rotate(90deg);color:var(--accent)}
.more > summary:hover{color:var(--text)}
.admin .more > summary:focus-visible{outline:2px solid #fff;outline-offset:2px;border-radius:6px}
.more > summary .opt{order:2;margin-left:0;letter-spacing:0;text-transform:none}
.more[open] > summary{padding-bottom:10px}
.set-test{margin-top:18px;padding-top:16px;border-top:1px solid #2a2a2a}
/* Dateien: eine Zeile je Datei – Name (öffnet sie) + Größe, Hochladen/Ersetzen, Entfernen */
.frow{display:grid;grid-template-columns:170px minmax(0, 1fr) auto;grid-template-areas:"l f a" "p p p" "m m m";align-items:center;gap:0 14px;padding:12px 0;scroll-margin-top:12px}
.frow:first-child{padding-top:2px}
.frow:last-child{padding-bottom:0}
.frow + .frow{border-top:1px solid #2a2a2a}
.frow-l{grid-area:l;font-weight:700;font-size:14px}
.frow-f{grid-area:f;min-width:0;font-size:14px}
.frow-acts{grid-area:a;display:flex;gap:8px;justify-content:flex-end}
.frow progress{grid-area:p;margin-top:10px}
.frow .msg{grid-area:m}
.frow-file{display:flex;align-items:baseline;gap:8px;min-width:0}
.frow-name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text);text-decoration:none}
.frow-name[href]{text-decoration:underline;text-decoration-color:#555;text-underline-offset:3px}
.frow-name[href]:hover{color:var(--accent);text-decoration-color:currentColor}
.frow-size{flex:none;font-size:12px;color:var(--muted);white-space:nowrap}
.frow-none{color:var(--muted)}
@media (max-width:559.98px){
  .frow{grid-template-columns:minmax(0, 1fr) auto;grid-template-areas:"l a" "f f" "p p" "m m";gap:2px 10px}
  .frow-l{min-width:0;overflow-wrap:anywhere}
}
/* sehr schmal: Knöpfe unter den Dateinamen */
@media (max-width:399.98px){
  .frow{grid-template-columns:minmax(0, 1fr);grid-template-areas:"l" "f" "a" "p" "m"}
  .frow-acts{justify-content:flex-start;margin-top:6px}
}

/* Einladungen */
.admin .field textarea{display:block;width:100%;font:inherit;line-height:1.5;color:var(--text);background:#111;border:1px solid var(--line);border-radius:10px;padding:10px 12px;resize:vertical}
.admin .field textarea::placeholder{color:#8a8a8a}
.admin textarea:focus-visible{outline:2px solid #fff;outline-offset:2px}
#invText{min-height:200px}
#invListe{min-height:150px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:13px}
.check > span{min-width:0;overflow-wrap:anywhere}
.check.off{opacity:.55;cursor:default}
.inv-hint{margin:-8px 0 14px;overflow-wrap:anywhere}
.admin code{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.95em;color:var(--text);background:#111;border:1px solid var(--line);border-radius:6px;padding:0 5px;white-space:nowrap}
#invPlatzWarn,#txWarn{overflow-wrap:anywhere}
#invPlatzWarn span,#txWarn span{display:block}
#invPlatzWarn span + span,#txWarn span + span{margin-top:4px}
/* Platzhalter aus der Liste (Knöpfe zum Einfügen) */
.inv-chips{margin:-6px 0 14px;min-width:0}
.inv-chips-head{margin:0 0 6px;font-size:13px;font-weight:700}
.inv-chips-head .muted{font-weight:400}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:12.5px;line-height:1.3;color:var(--text);background:#111;border:1px solid var(--line);border-radius:999px;padding:5px 10px;cursor:pointer;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.chip:hover{border-color:var(--accent);color:var(--accent)}
.chip:active{background:#1a1f06}
/* Vorschau mit den Werten eines Empfängers */
.inv-vorschau{border:1px solid var(--line);border-radius:12px;background:#161616;margin:0 0 14px;min-width:0}
.inv-vorschau > summary{display:flex;align-items:center;gap:8px;padding:10px 14px;cursor:pointer;list-style:none;font-size:14px;min-width:0}
.inv-vorschau > summary::-webkit-details-marker{display:none}
.inv-vorschau > summary::before{content:'›';flex:none;color:var(--accent);font-size:18px;line-height:1;transition:transform .15s}
.inv-vorschau[open] > summary::before{transform:rotate(90deg)}
.inv-vorschau > summary:focus-visible{outline:2px solid #fff;outline-offset:-2px;border-radius:12px}
.vs-sum{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--muted)}
.vs-sum strong{color:var(--text)}
.vs-body{padding:0 14px 12px;border-top:1px solid #2a2a2a}
.vs-nav{display:flex;align-items:center;gap:8px;padding:8px 0;min-width:0}
.vs-btn{flex:none;font:inherit;font-size:18px;line-height:1;width:32px;height:32px;display:grid;place-items:center;color:var(--text);background:#111;border:1px solid var(--line);border-radius:999px;cursor:pointer;padding:0}
.vs-btn:hover:not(:disabled){border-color:var(--accent);color:var(--accent)}
.vs-btn:disabled{opacity:.35;cursor:default}
.vs-pos{flex:none;font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}
.vs-adr{flex:1;min-width:0;font-size:13px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:right}
.vs-betreff{margin:2px 0 8px;font-weight:700;overflow-wrap:anywhere}
.vs-k{display:block;font-weight:400;font-size:12px;color:var(--muted)}
.vs-text{white-space:pre-wrap;overflow-wrap:anywhere;font-size:14px;line-height:1.5;max-height:280px;overflow:auto;padding:10px 12px;background:#111;border:1px solid #2a2a2a;border-radius:10px}
.inv-vorschau mark{background:#2a3308;color:var(--accent);border-radius:4px;padding:0 2px}
.vs-foot{margin:8px 0 0;font-size:12px;color:var(--muted)}
/* Einstellungen: E-Mail-Texte (Auswahl, Betreff, Text, Schluss, Platzhalter, Vorschau wie bei den Einladungen) */
.tx-feld{border:0;margin:0;padding:0;min-width:0}
.tx-feld:disabled{opacity:.6}
.tx-info{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin:-6px 0 14px;font-size:13px;overflow-wrap:anywhere}
.tx-info:has(#txBadge[hidden]):has(#txWann:empty){display:none}
#txText{min-height:120px}
.tx-hint{margin:-4px 0 14px;overflow-wrap:anywhere;line-height:1.6}
.tx-vs{white-space:normal;max-height:min(60vh, 520px)}
.tx-vs p{margin:0 0 10px}
.tx-vs p:last-child{margin-bottom:0}
.tx-vs strong,.vs-text strong{font-weight:700}
.tx-vs em,.vs-text em{font-style:italic}
.tx-auto{color:var(--muted);font-size:13px}
#texteForm .ghost:disabled{opacity:.5;cursor:default}
.check.inv-append{margin:0}
.inv-count{margin-top:-6px}
.inv-liste{margin-top:12px}
#invAnzahl.warn{color:#f1e28a}
#invNotReady .link{white-space:nowrap}
#invTestForm{margin-bottom:12px}
#view-inv .submit:disabled,#view-inv .ghost:disabled{cursor:not-allowed}
#view-inv .ghost:disabled{opacity:.5}
/* Verlauf: je Versand eine Zeile, Details aufklappbar */
.jobs{list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:12px;background:#161616;overflow:hidden}
.jobs > li{min-width:0}
.jobs > li + li{border-top:1px solid #2a2a2a}
.jobs > li.empty{color:var(--muted);padding:14px}
.jobs > li.empty:empty{display:none}
.jobs:has(> li.empty:empty){display:none}
.job-row{display:flex;align-items:center;gap:10px;width:100%;min-height:48px;font:inherit;color:inherit;text-align:left;background:none;border:0;padding:8px 10px 6px 14px;cursor:pointer;-webkit-tap-highlight-color:transparent}
.job-row:hover,.job.open .job-row{background:#1d1d1d}
.admin .job-row:focus-visible{outline:2px solid #fff;outline-offset:-2px}
.job-l{flex:1;min-width:0;display:flex;align-items:center;gap:10px}
.job-when{flex:none;font-size:13px;color:var(--muted);font-variant-numeric:tabular-nums}
.job-t{flex:1;min-width:0;display:flex;align-items:center;gap:6px}
.job-title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-weight:700;font-size:14px}
.job-tag{flex:none;font-size:11px;line-height:1.5;color:var(--muted);border:1px solid var(--line);border-radius:999px;padding:0 7px}
.job-r{flex:none;display:flex;align-items:center;gap:10px}
.pill{display:inline-block;font-size:12px;line-height:1.5;border:1px solid var(--line);border-radius:999px;padding:1px 9px;white-space:nowrap;color:var(--muted)}
.pill.p-run{color:#e3d36b;border-color:#5a5220;background:#232112}
.pill.p-ok{color:var(--accent);border-color:#5d6d12;background:#1f2a06;font-weight:700}
.pill.p-err{color:var(--error);border-color:#5a2a2a;background:#2a1717}
.job-n{font-size:13px;font-variant-numeric:tabular-nums;white-space:nowrap;min-width:4.5em;text-align:right}
.job-bad{color:var(--error)}
.job-chev{flex:none;color:#6b6b6b;font-size:20px;line-height:1;transition:transform .15s}
.job.open .job-chev{transform:rotate(90deg);color:var(--accent)}
.job-bar{display:flex;height:3px;margin:0 14px 8px;background:#2a2a2a;border-radius:3px;overflow:hidden}
.job-bar .ok{background:var(--accent)}
.job-bar .bad{background:var(--error)}
.job-bar span{transition:width .3s}
.job-det{padding:10px 14px 14px;min-width:0}
.job-facts{margin:0;font-size:13px}
.job-facts > div{display:grid;grid-template-columns:92px minmax(0, 1fr);gap:2px 12px;padding:3px 0}
.job-facts dt{color:var(--muted)}
.job-facts dd{margin:0;min-width:0;overflow-wrap:anywhere}
.job-err{margin:0 0 8px;font-size:13px;color:var(--error);overflow-wrap:anywhere}
.job-acts{display:flex;flex-wrap:wrap;gap:8px;margin-top:10px}
.job-fehler{margin-top:10px;min-width:0}
@media (max-width:559.98px){
  /* Handy: links Zeit über dem Betreff, rechts Status über der Zahl */
  .job-row{align-items:center;padding:7px 8px 5px 12px;gap:8px}
  .job-l{flex-direction:column;align-items:stretch;gap:1px}
  .job-when{font-size:12px}
  .job-r{flex-direction:column;align-items:flex-end;gap:3px}
  .job-n{min-width:0;font-size:12px}
  .job-bar{margin:0 12px 7px}
  .job-det{padding:8px 12px 12px}
  .job-facts > div{grid-template-columns:78px minmax(0, 1fr)}
}
.job-fehler p{margin:0}
.fehlerliste{list-style:none;margin:0;padding:6px 12px;background:#161616;border:1px solid var(--line);border-radius:10px;max-height:300px;overflow:auto;font-size:13px}
.fehlerliste li{display:flex;flex-wrap:wrap;gap:0 10px;padding:5px 0;overflow-wrap:anywhere}
.fehlerliste li + li{border-top:1px solid #2a2a2a}
.fl-mail{font-weight:700;min-width:0}
.fl-why{color:var(--error);min-width:0}
.el-st{min-width:0;color:var(--muted)}
.el-ok{color:#9fd47f}
.el-bad{color:var(--error)}
.el-offen{color:#f1e28a}

/* Dialoge */
.dlg{background:var(--bg2);color:var(--text);border:1px solid var(--line);border-radius:16px;padding:22px;width:min(460px, calc(100% - 32px));max-height:calc(100dvh - 32px);box-shadow:0 30px 80px rgba(0,0,0,.6)}
.dlg.wide{width:min(680px, calc(100% - 32px))}
.dlg::backdrop{background:rgba(0,0,0,.65)}
.dlg h2{margin-bottom:10px}
.dlg-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px}
.dlg-head h2{font-family:Ubuntu,sans-serif;font-style:normal;text-transform:none;letter-spacing:0;font-size:19px;overflow-wrap:anywhere}
.x{font:inherit;font-size:24px;line-height:1;background:none;border:0;color:var(--muted);cursor:pointer;padding:0 4px}
.x:hover{color:var(--text)}
.dlg-body p{margin:0 0 10px;font-size:14px;line-height:1.5;overflow-wrap:anywhere}
.dlg-body .warn,.note{color:#f1e28a;background:#232112;border:1px solid #5a5220;border-radius:10px;padding:8px 12px;font-size:13px}
.note{margin:0 0 14px}
#editMeta{margin:0 0 12px;overflow-wrap:anywhere}
.dlg-foot{display:flex;gap:10px;justify-content:flex-end;margin-top:16px;flex-wrap:wrap}
.log{margin:4px 0 0;font-size:13px}
.log summary{cursor:pointer;color:var(--muted)}
.log ul{margin:8px 0 0;padding:0;list-style:none}
.log li{margin:3px 0;overflow-wrap:anywhere}
.log li.fail{color:var(--error)}

/* Liste fürs Handy (unter 760 px statt der Tabelle) */
.cards{display:none;list-style:none;margin:0;padding:0;border:1px solid var(--line);border-radius:12px;background:var(--bg2);overflow:hidden}
.cards li + li{border-top:1px solid #2a2a2a}
.cards .row{display:flex;align-items:center;gap:10px;width:100%;min-height:60px;font:inherit;color:inherit;text-align:left;background:none;border:0;padding:12px 12px 12px 14px;cursor:pointer;-webkit-tap-highlight-color:transparent}
.cards .row:hover,.cards .row:active{background:#242424}
.admin .cards .row:focus-visible{outline:2px solid #fff;outline-offset:-3px;border-radius:12px}
.row-main{flex:1;min-width:0;display:flex;flex-direction:column;gap:2px}
.row-name{font-weight:700;font-size:16px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row-meta{color:var(--muted);font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.row-warn{color:var(--error);font-size:12px}
.cards .badge{flex:none}
.cards .chev{flex:none;color:#6b6b6b;font-size:22px;line-height:1;margin-left:-2px}
.cards .empty{padding:28px 16px;text-align:center;color:var(--muted)}

/* Detailansicht (Desktop: Dialog, Handy: Vollbild) */
.sheet{padding:0;width:min(640px, calc(100% - 32px));overflow:hidden;overscroll-behavior:contain}
.sheet[open]{display:flex;flex-direction:column}
.sheet-bar{position:absolute;top:14px;right:14px;z-index:2}
.sheet-back{display:none;font:inherit;font-weight:700;font-size:15px;color:var(--text);background:none;border:0;border-radius:999px;padding:8px 12px;min-height:44px;align-items:center;gap:8px;cursor:pointer}
.sheet-back span{color:var(--accent);font-size:18px;line-height:1}
.sheet-back:hover{background:#262626}
.sheet-body{flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;padding:22px 22px 10px}
.sheet-body:focus{outline:none}
.sheet-title{display:flex;align-items:center;flex-wrap:wrap;gap:6px 12px;padding-right:34px}
.admin .sheet-title h2{font-family:Ubuntu,sans-serif;font-style:normal;text-transform:none;letter-spacing:0;font-size:21px;line-height:1.25;margin:0;min-width:0;overflow-wrap:anywhere}
#detailSub{margin:4px 0 0;overflow-wrap:anywhere}
#detailGone{margin:14px 0 0}
.sec{font-size:12px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin:22px 0 6px}
.facts{margin:0}
.fact{display:grid;grid-template-columns:150px minmax(0, 1fr);gap:4px 14px;align-items:baseline;padding:9px 0;border-top:1px solid #2a2a2a}
.fact dt{font-size:13px;color:var(--muted)}
.fact dd{margin:0;min-width:0;overflow-wrap:anywhere}
.fact dd a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}
.fact .badge{white-space:normal}
.fact .by{display:block;font-size:13px;color:var(--muted)}
.maillog{list-style:none;margin:0;padding:0}
.maillog li{display:flex;flex-direction:column;gap:1px;padding:9px 0;border-top:1px solid #2a2a2a;font-size:14px;overflow-wrap:anywhere}
.ml-head{font-weight:700}
.ml-ico{display:inline-block;width:1.2em;color:var(--accent)}
.maillog li.fail .ml-head,.maillog li.fail .ml-ico{color:var(--error)}
.ml-meta{font-size:13px;color:var(--muted);padding-left:1.2em}
.ml-err{font-size:13px;color:var(--error);padding-left:1.2em}
.maillog li.ok .ml-err{color:var(--muted)}
.maillog li.wait{color:#e3d36b}
.maillog li.none{color:var(--muted)}
.sheet-foot{flex:none;display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end;padding:14px 22px 18px;border-top:1px solid var(--line);background:var(--bg2)}
@keyframes sheet-in{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}

@media (max-width:759.98px){
  .tablewrap{display:none}
  .cards{display:block}
  .toolbar{gap:10px}
  /* Details als Vollbild-Ansicht */
  .admin .sheet{inset:0;margin:0;width:100%;max-width:none;height:100%;height:100dvh;max-height:none;border:0;border-radius:0;box-shadow:none;animation:sheet-in .18s ease}
  .sheet-bar{position:static;flex:none;display:flex;align-items:center;padding:6px 8px;padding-top:calc(6px + env(safe-area-inset-top));border-bottom:1px solid var(--line);background:var(--bg2)}
  .sheet-back{display:inline-flex}
  .sheet .x{display:none}
  .sheet-body{padding:18px 16px 16px}
  .sheet-title{padding-right:0}
  .fact{grid-template-columns:minmax(96px, 34%) minmax(0, 1fr)}
  .sheet-foot{padding:12px 16px;padding-bottom:calc(12px + env(safe-area-inset-bottom))}
  .sheet-foot > button{flex:1 1 0;justify-content:center;min-height:46px}
  .sheet .toast{bottom:calc(84px + env(safe-area-inset-bottom))}
  .toast{border-radius:14px}
}
@media (max-width:559.98px){
  .tabs [role=tab]{flex:1 1 auto}
}

/* Hinweis unten */
/* als Popover im Top-Layer, damit der Hinweis auch über offenen Dialogen (Detailansicht) sichtbar ist */
.toast{position:fixed;inset:auto;margin:0;left:50%;bottom:calc(24px + env(safe-area-inset-bottom));transform:translateX(-50%);z-index:50;width:max-content;max-width:calc(100% - 32px);overflow:visible;text-align:center;background:#101010;border:1px solid var(--accent);color:var(--text);border-radius:999px;padding:10px 18px;font-size:14px;box-shadow:0 14px 40px rgba(0,0,0,.6)}
.toast.error{border-color:var(--error);color:var(--error)}

@media (max-width:620px){
  .admin{padding:18px 16px 60px}
  .actions,.actions input{width:100%}
  .actions input{min-width:0}
  .seg{width:100%}.seg button{flex:1;padding:7px 4px;font-size:13px;white-space:nowrap}
  .tabs [role=tab]{padding:10px 9px;font-size:14px}
  th.act,td.act{position:static;box-shadow:none}
  .blk{padding:16px}
  .set-sec > summary{padding:12px 16px;min-height:54px}
  .set-body{padding:2px 16px 16px}
}
/* vier Tabs auch auf schmalen Handys in einer Zeile */
@media (max-width:469.98px){.tabs{gap:2px}.tabs [role=tab]{padding:10px 5px}}
@media (max-width:420px){.tabs{gap:1px}.tabs [role=tab]{padding:10px 4px;font-size:13px}}
@media (max-width:383.98px){.tabs{gap:0}.tabs [role=tab]{padding:10px 2px;font-size:12.5px}}
@media (max-width:347.98px){.tabs [role=tab]{font-size:11px}}

/* Anträge: Kopfzeile (Zähler, Word-Dokument), darunter die Liste wie der Einladungs-Verlauf */
#view-antr .submit:disabled{cursor:not-allowed}
.antr-bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:10px 16px;margin-bottom:14px}
.antr-n{margin:0;font-size:14px;color:var(--muted);font-variant-numeric:tabular-nums}
.antr-n b{color:var(--text);font-weight:700}
.antr-n .an-bad b{color:var(--error)}
.antr-acts{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px}
.wd-meta{font-variant-numeric:tabular-nums}
.wd-meta:empty{display:none}
#wordState{margin:0 0 12px}
#wordState.wd-run{color:#e3d36b}
.jobs > li.ae > .job-row{padding-top:8px;padding-bottom:8px}
.ae-kopf{flex:none;display:flex;align-items:center;gap:10px;min-width:0}
.ae .job-facts dd a{color:var(--accent);text-decoration:underline;text-underline-offset:2px}
.ae-art.s{color:var(--accent);border-color:#5d6d12}
.ae-mail{margin-left:6px}
.ae-mail.ok{color:var(--accent)}
.ae-mail.fail{color:var(--error)}
.ae-mail.wait{color:#e3d36b}
.ae-ml{display:block}
.ae-ml.fail{color:var(--error)}
.ae-files{list-style:none;margin:10px 0 0;padding:0;border:1px solid #2a2a2a;border-radius:10px;background:#111}
.ae-files li{display:flex;align-items:center;gap:10px;padding:8px 10px;min-width:0}
.ae-files li + li{border-top:1px solid #2a2a2a}
.ae-info{flex:1;min-width:0;display:flex;flex-direction:column}
.ae-name{font-size:14px;font-weight:700;overflow-wrap:anywhere}
.ae-size{font-size:12px;color:var(--muted)}
.ae-files .ghost{flex:none}
@media (max-width:559.98px){
  .jobs > li.ae > .job-row{padding:7px 8px 7px 12px}
  .ae-kopf{gap:8px}
  /* lange Dateinamen: Knopf rutscht unter den Namen statt ihn zu quetschen */
  .ae-files li{flex-wrap:wrap;gap:6px 10px}
  .ae-info{flex:1 1 auto}
}
#view-antr{max-width:880px} /* Kopfzeile (Zähler + Word-Dokument) passt so in eine Zeile */

/* Einladungen: Abschlussmail (Links der Knöpfe, Empfänger = angenommene Anmeldungen, Testmail, Senden) */
#absBlk{scroll-margin-top:12px}
#absBlk:focus{outline:none}
.abs-info{margin:-6px 0 8px;line-height:1.6;overflow-wrap:anywhere}
.abs-info .link{text-align:left}
.abs-betreff{margin:0 0 14px;font-weight:700;overflow-wrap:anywhere}
.abs-anzahl{margin:4px 0 12px;overflow-wrap:anywhere}
.abs-betreff.warn,.abs-anzahl.warn,#absHint.warn{color:#f1e28a}
#absTestForm{margin-bottom:12px}
.job-tag.abs{color:var(--accent);border-color:#5d6d12}
/* Einstellungen: Anmeldeschluss */
.fr-info{margin:0 0 14px;line-height:1.6;overflow-wrap:anywhere}
.admin .field input[type=datetime-local]{min-height:44px}
.fr-weg{display:block;margin-top:2px;font-size:12px}
.fr-st{margin:-2px 0 12px;overflow-wrap:anywhere}
.fr-st:empty{display:none}
.fr-st span{display:block}
.fr-st span + span{margin-top:2px}
.fr-zu{color:#f1e28a}

/* Anträge: jede Datei eine eigene Zeile; Beschluss der Antragskommission (Annahme / Ablehnung / Überweisung) */
.ae-datei{flex:none;max-width:40%;font-size:12px;color:var(--muted);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pill.p-open{color:var(--muted)}
.bs{margin-top:12px;padding:12px 14px;border:1px solid #2a2a2a;border-radius:12px;background:#161616}
.bs-t{margin:0 0 8px;font-size:13px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--muted)}
.bs-stand{margin:0 0 10px;display:flex;flex-wrap:wrap;align-items:center;gap:6px 8px;font-size:13px}
.bs-seg{margin-bottom:10px}
.bs-felder textarea,.bs-felder input{display:block;width:100%;font:inherit;line-height:1.5;color:var(--text);background:#111;border:1px solid var(--line);border-radius:10px;padding:10px 12px;margin-bottom:10px}
.bs-felder textarea{resize:vertical}
.bs-felder [hidden]{display:none!important}
.bs-acts{margin-top:0}
@media (max-width:559.98px){
  .ae-datei{max-width:100%}
  .bs-seg{display:flex}
  .bs-seg button{flex:1 1 0;padding:7px 6px;font-size:13px}
}
.bs.lv{margin-top:10px}
.lv-seg{flex-wrap:wrap}
@media (max-width:559.98px){.lv-seg{display:flex}.lv-seg button{flex:1 1 30%}}
