:root{--bg:#eef0f4;--fg:#1d2230;--card:#fff;--line:#d5d9e2;--accent:#5b2a86;--accent-fg:#fff;--warn:#b42318;--ok:#1a7f37}
@media (prefers-color-scheme:dark){:root{--bg:#141722;--fg:#e6e8ef;--card:#1d2130;--line:#33394d;--accent:#b58be0;--accent-fg:#141722;--warn:#ff8a80;--ok:#5fd07a}}
*{box-sizing:border-box}
body{margin:0;background:var(--bg);color:var(--fg);font:16px/1.5 system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
header.bar{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:.6rem 1rem;background:var(--card);border-bottom:1px solid var(--line)}
header.bar form{margin:0}
main{max-width:960px;margin:1.5rem auto;padding:0 1rem}
h1{font-size:1.5rem;margin:0 0 1rem}
.card{background:var(--card);border:1px solid var(--line);border-radius:8px;padding:1.25rem}
.narrow{max-width:380px;margin:10vh auto 0}
label{display:block;margin:.8rem 0 .25rem;font-weight:600}
input{width:100%;padding:.65rem .75rem;font:inherit;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--fg)}
button{font:inherit;font-weight:600;padding:.6rem 1rem;border:0;border-radius:6px;background:var(--accent);color:var(--accent-fg);cursor:pointer}
button.ghost{background:transparent;color:var(--fg);border:1px solid var(--line)}
.card button[type=submit]{width:100%;margin-top:1.1rem}
:focus-visible{outline:3px solid var(--accent);outline-offset:2px}
.msg{padding:.6rem .8rem;border-radius:6px;margin:0 0 .5rem}
.msg.err{background:color-mix(in srgb,var(--warn) 15%,transparent);color:var(--warn)}
.msg.ok{background:color-mix(in srgb,var(--ok) 15%,transparent);color:var(--ok)}
.tablewrap{overflow-x:auto;padding:.4rem .8rem}
table{width:100%;border-collapse:collapse}
th,td{padding:.55rem .7rem;text-align:left;border-bottom:1px solid var(--line)}
tbody tr:last-child td{border-bottom:0}
th.n,td.n{text-align:right;font-variant-numeric:tabular-nums}
.over{color:var(--warn);font-weight:700}
.muted{opacity:.7}

/* ---- Schritt 2: Navigation, Kacheln, Formulare, Tabellen ---- */
main{max-width:1200px}
header.bar{flex-wrap:wrap}
.nav{display:flex;gap:.25rem;flex:1;flex-wrap:wrap}
.nav a{padding:.4rem .75rem;border-radius:6px;color:var(--fg);text-decoration:none;font-weight:600}
.nav a:hover{background:var(--bg)}
.nav a.active{background:var(--accent);color:var(--accent-fg)}
h2{font-size:1.15rem;margin:.2rem 0 .8rem}
a{color:var(--accent)}
select{width:100%;padding:.65rem .75rem;font:inherit;border:1px solid var(--line);border-radius:6px;background:var(--bg);color:var(--fg)}
input[type=checkbox]{width:auto;margin-right:.4rem;transform:scale(1.2)}
label.chk{display:flex;align-items:center;font-weight:400;margin:.8rem 0 0}
.card+.card,.card+.cols,.cols+.card,.tiles+form,.evsel+.cols{margin-top:1rem}
.cols{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:1rem;margin-top:1rem}
@media (max-width:820px){.cols{grid-template-columns:minmax(0,1fr)}}
.grid2{display:grid;grid-template-columns:1fr 1fr;gap:.8rem}
.grid3{display:grid;grid-template-columns:1fr 1fr 1fr;gap:.8rem}
@media (max-width:600px){.grid2,.grid3{grid-template-columns:1fr}}
.evsel{margin:1rem 0 .3rem;max-width:520px}
.head-row{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin-bottom:.6rem}
.head-row h1,.head-row h2{margin:0}
.btns{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:1rem}
.card .btns button[type=submit],.card .inline button[type=submit],.head-row button[type=submit]{width:auto;margin-top:0}
.btn,button{display:inline-block;text-decoration:none;font:inherit;font-weight:600;padding:.6rem 1rem;border:1px solid var(--line);border-radius:6px;background:var(--card);color:var(--fg);cursor:pointer}
button.primary,.btn.primary{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}
button.danger{background:transparent;color:var(--warn);border-color:var(--warn)}
button.ghost{background:transparent;color:var(--fg);border:1px solid var(--line)}
button:disabled{opacity:.5;cursor:wait}
form.inline{display:inline;margin:0}
.msg.ok,.msg.err{margin-bottom:.8rem}
.total{font-size:1.2rem;margin:.8rem 0}
.big{font-size:1.25rem}
.scroll{max-height:420px;overflow:auto;padding:0}
.lines input{max-width:6rem;text-align:right}
.ln{white-space:nowrap}
.nr{font-variant-numeric:tabular-nums;font-weight:600}
td small{display:block}
/* Belegungs-Kacheln */
.tiles{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:.8rem;margin:.5rem 0 1rem}
.tile{background:var(--card);border:1px solid var(--line);border-left:6px solid var(--ok);border-radius:8px;padding:.8rem 1rem}
.tile.low{border-left-color:#d68a00}
.tile.full{border-left-color:var(--warn)}
.tile.hl{outline:2px solid var(--accent)}
.tile-head{display:flex;justify-content:space-between;gap:.5rem}
.tile-big{font-size:2.4rem;font-weight:700;line-height:1.1;margin:.3rem 0}
.tile-big small{font-size:1rem;font-weight:400;opacity:.7}
.tile-sub{font-size:.85rem;opacity:.75}
.bar-track{height:8px;background:var(--bg);border-radius:4px;overflow:hidden;margin:.2rem 0 .4rem}
.bar-fill{height:100%;background:var(--accent);width:0}
.bar-fill.w0{width:0%}.bar-fill.w5{width:5%}.bar-fill.w10{width:10%}.bar-fill.w15{width:15%}.bar-fill.w20{width:20%}.bar-fill.w25{width:25%}.bar-fill.w30{width:30%}.bar-fill.w35{width:35%}.bar-fill.w40{width:40%}.bar-fill.w45{width:45%}.bar-fill.w50{width:50%}.bar-fill.w55{width:55%}.bar-fill.w60{width:60%}.bar-fill.w65{width:65%}.bar-fill.w70{width:70%}.bar-fill.w75{width:75%}.bar-fill.w80{width:80%}.bar-fill.w85{width:85%}.bar-fill.w90{width:90%}.bar-fill.w95{width:95%}.bar-fill.w100{width:100%}
/* Kasse */
.bigsum{display:flex;gap:1rem;flex-wrap:wrap;margin:1rem 0}
.bigsum>div{flex:1;min-width:220px;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:.8rem 1rem}
.bigsum span{display:block;opacity:.7}
.bigsum strong{font-size:2.2rem;line-height:1.2}
.bigsum small{display:block;opacity:.7}
/* Status und Bandfarben */
.badge{display:inline-block;padding:.1rem .6rem;border-radius:99px;font-size:.8rem;font-weight:700;background:var(--bg);border:1px solid var(--line)}
.st-reserviert{color:#6b46c1}.st-bestellt{color:#9a6700}.st-an_kasse{color:#b54708}.st-kassiert{color:#0b7285}.st-ausgegeben{color:var(--ok)}.st-storniert{color:var(--warn);text-decoration:line-through}
.chip{display:inline-block;padding:0 .5rem;border-radius:4px;font-size:.8rem;font-weight:700;color:#fff;background:#6b7280}
.c-rot{background:#d92d20}.c-gruen{background:#1a7f37}.c-blau{background:#1d4ed8}.c-gelb{background:#eab308;color:#222}
.c-orange{background:#ea580c}.c-weiss{background:#fff;color:#222;border:1px solid #999}.c-schwarz{background:#111}
.c-lila,.c-violett{background:#7e22ce}.c-rosa,.c-pink{background:#ec4899}.c-tuerkis{background:#0e9aa7}
.c-grau{background:#6b7280}.c-braun{background:#7c4a21}.c-gold{background:#b8860b}.c-silber{background:#9ca3af;color:#222}
.card button.danger[type=submit]{width:auto}

/* Kacheln als Link, Vorgänge an Kasse und Ausgabe */
a.tile{display:block;text-decoration:none;color:inherit}
a.tile:hover{border-color:var(--accent)}
.vorgang{background:var(--card);border:1px solid var(--line);border-left:8px solid #6b7280;border-radius:8px;padding:.8rem 1rem;margin:0 0 1rem}
.vorgang.m0{border-left-color:#d92d20}.vorgang.m1{border-left-color:#1d4ed8}.vorgang.m2{border-left-color:#1a7f37}
.vorgang.m3{border-left-color:#ea580c}.vorgang.m4{border-left-color:#7e22ce}.vorgang.m5{border-left-color:#0e9aa7}
.vorgang-head{display:flex;gap:.8rem;align-items:baseline;flex-wrap:wrap;margin-bottom:.4rem}
.vno{background:var(--bg);border:1px solid var(--line);border-radius:4px;padding:0 .5rem;font-weight:700}
.vorgang table{margin:.2rem 0 .6rem}
.payform{display:flex;gap:1rem;align-items:center;flex-wrap:wrap}
.payform .paysum{font-size:1.1rem}
.payform .paysum strong{font-size:1.8rem}
.payin{display:flex;gap:.4rem;align-items:center}
.payin label{margin:0}
.payin input.given{width:8rem;text-align:right}
.change{min-width:12rem;font-weight:700;font-size:1.1rem}
.change.ok{color:var(--ok)}.change.err{color:var(--warn)}
.vorgang .payform button.primary{margin-left:auto}

/* Stand 2.3: gewählte Veranstaltung, Banner, abgeschlossene Vorgänge */
.tile.hl{outline:4px solid var(--accent);outline-offset:0;background:var(--bg)}
.tile.hl .tile-head strong{font-size:1.1rem}
.tile .sel{display:inline-block;margin-top:.3rem;padding:0 .5rem;border-radius:4px;background:var(--accent);color:var(--accent-fg);font-weight:700;font-size:.85rem}
.tiles:has(.tile.hl) .tile:not(.hl){opacity:.65}
.tiles:has(.tile.hl) .tile:not(.hl):hover{opacity:1}
.evbanner{background:var(--accent);color:var(--accent-fg);border-radius:8px;padding:.7rem 1rem;margin:0 0 1rem;font-size:1.1rem}
.evbanner span{display:block;font-size:.8rem;opacity:.85;text-transform:uppercase;letter-spacing:.04em}
.evbanner small{opacity:.85}
tr.cur td{background:var(--bg)}
a.bigsum-link{flex:1;min-width:220px;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:.8rem 1rem;text-decoration:none;color:inherit;display:block}
a.bigsum-link:hover{border-color:var(--accent)}
a.bigsum-link span{display:block;opacity:.7}
a.bigsum-link strong{font-size:2.2rem;line-height:1.2}
a.bigsum-link small{display:block;opacity:.7}
.vorgang.done{opacity:.9;padding:.5rem .8rem;margin-bottom:.6rem}
.vorgang.done .vorgang-head{margin-bottom:.1rem}
.vorgang.done table{margin:0}
.head-row#abgeschlossen{margin-top:1.5rem}

/* Nummernliste */
.wide{width:min(96vw,1900px);position:relative;left:50%;transform:translateX(-50%)}
.chips{display:flex;gap:.4rem;flex-wrap:wrap;margin:.4rem 0 1rem}
.chips a{padding:.4rem .8rem;border:1px solid var(--line);border-radius:99px;background:var(--card);color:var(--fg);text-decoration:none;font-weight:600}
.chips a small{font-weight:400;opacity:.7}
.chips a.on{background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}
.listfilter{max-width:520px;margin-bottom:1rem}
.numlist{font-size:.9rem}
.numlist td,.numlist th{padding:.3rem .5rem;white-space:nowrap}
.numlist td.c-name,.numlist td.c-note{white-space:normal}
.numlist tr.gap td{background:var(--bg);font-style:italic;opacity:.8}
.numlist tr.ret td{opacity:.6}
@media print{
  header.bar,.chips,.listfilter,.head-row .btns,.evsel,button,.msg{display:none !important}
  .wide{width:auto;left:0;transform:none}
  body{background:#fff;color:#000}
  .card{border:0;box-shadow:none;padding:0}
  .numlist{font-size:9pt}
}

/* Bildschirm-Anzeige */
body.kiosk{background:#0b0f14;color:#fff;margin:0;padding:2vw;min-height:100vh}
.kgrid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,420px),1fr));gap:2vw}
.ktile{background:#16202b;border-radius:16px;padding:2vw;text-align:center;border-top:12px solid #1fa84f}
.ktile.low{border-top-color:#f0a000}
.ktile.full{border-top-color:#e5322d}
.kname{font-size:clamp(1.6rem,3vw,3rem);font-weight:700}
.kdate{font-size:clamp(1.1rem,2vw,2rem);opacity:.7}
.kfree{font-size:clamp(5rem,16vw,16rem);font-weight:800;line-height:1}
.ktile.low .kfree{color:#f0a000}
.ktile.full .kfree,.ktile.full .klabel{color:#ff5b55}
.klabel{font-size:clamp(1.4rem,3vw,3rem);opacity:.9}
.kstand{position:fixed;right:1vw;bottom:.5vw;opacity:.35;font-size:1rem}

/* Bericht, Benutzer */
.numlist tr.sumrow td{border-top:2px solid var(--line);font-weight:700}
.cashform{display:flex;gap:.3rem;align-items:center}
.cashform input{width:8.5rem;text-align:right}
.userrow{display:grid;grid-template-columns:1.2fr 1.4fr auto 1.8fr auto;gap:.6rem;align-items:center;padding:.6rem 0;border-bottom:1px solid var(--line)}
.userrow small{display:block}
@media (max-width:900px){.userrow{grid-template-columns:1fr}}
.card.narrow{max-width:520px}

/* Stand 3: Bericht und Bildschirm-Anzeige */
.report th,.report td{white-space:nowrap}
.report tr.inactive{opacity:.6}
.report tfoot th{border-top:2px solid var(--line)}
.cashin{width:7rem;text-align:right;padding:.3rem .5rem}
.cashform{display:inline-flex;gap:.3rem;align-items:center}
.cashform button{padding:.3rem .6rem}
details.card{margin-top:1rem}
details summary{cursor:pointer}
body.display{background:#000;color:#fff;margin:0;padding:2vh 2vw;min-height:100vh}
.display-head{display:flex;justify-content:space-between;align-items:baseline;font-size:clamp(1.5rem,3.5vw,3rem);font-weight:700;margin-bottom:2vh}
.display-head .stand{font-size:.5em;font-weight:400;opacity:.6}
.display-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,30rem),1fr));gap:2vw}
.dtile{border-radius:1rem;padding:2vh 2vw;background:#1b5e20;text-align:center}
.dtile.low{background:#b26a00}
.dtile.full{background:#8e1b1b}
.dtile.none{background:#37474f}
.dname{font-size:clamp(1.5rem,3vw,2.8rem);font-weight:700}
.ddate{font-size:clamp(1rem,2vw,1.8rem);opacity:.85}
.dnum{font-size:clamp(4rem,14vw,13rem);font-weight:800;line-height:1.05}
.dnum.dsold{font-size:clamp(2.5rem,7vw,6rem)}
.dlabel{font-size:clamp(1.2rem,2.5vw,2.4rem)}
.dempty{font-size:2rem;opacity:.7}

/* Auswahl einzelner freier Nummern */
.picks{border:1px solid var(--line);border-radius:8px;padding:.6rem .8rem;margin:.6rem 0}
.pickgrid{display:flex;flex-wrap:wrap;gap:.4rem}
.pick{display:inline-flex;align-items:center;border:1px solid var(--line);border-radius:6px;padding:.35rem .7rem;cursor:pointer;font-weight:700;background:var(--card);margin:0}
.pick input{margin-right:.35rem}
.pick:has(input:checked){background:var(--accent);color:var(--accent-fg);border-color:var(--accent)}
.picksum{margin:.6rem 0 0;font-size:1.05rem}

/* Liste: Sitzgruppen gruppiert */
.numlist tr.sghead td{background:var(--bg);border-top:2px solid var(--line);white-space:normal}
.numlist tr.sghead td:first-child,.numlist tr.sgrow td:first-child{border-left:8px solid #6b7280}
.numlist tr.sg0 td:first-child{border-left-color:#d92d20}.numlist tr.sg1 td:first-child{border-left-color:#1d4ed8}
.numlist tr.sg2 td:first-child{border-left-color:#1a7f37}.numlist tr.sg3 td:first-child{border-left-color:#ea580c}
.numlist tr.sg4 td:first-child{border-left-color:#7e22ce}.numlist tr.sg5 td:first-child{border-left-color:#0e9aa7}
.numlist tr.tailhead td{background:var(--bg);font-weight:700;border-top:2px solid var(--line)}

/* Sitzplan */
.planbox{padding:.5rem;overflow:auto}
svg.plan{width:100%;height:auto;max-height:80vh;display:block;background:#fafafa;border-radius:6px}
svg.plan .tbody{fill:#e8dcc4;stroke:#8a7a55;stroke-width:1.5;cursor:pointer}
svg.plan .dbody{fill:#f1f1f1;stroke:#b5b5b5;stroke-width:1.5;stroke-dasharray:6 4}
svg.plan .dtext{fill:#777;font-size:16px;font-weight:600}
svg.plan .tlabel{font-size:12px;font-weight:700;fill:#5a4d2c;pointer-events:none}
svg.plan .seat{fill:#fff;stroke:#555;stroke-width:1.2;cursor:pointer}
svg.plan .seat.nt{stroke-dasharray:3 2}
svg.plan .seat.a{stroke-width:1.6}
svg.plan .seat:hover{stroke:#000;stroke-width:2.5}
svg.plan .snum{font-size:10px;fill:#222;pointer-events:none}
svg.plan .seat.sel{stroke:#000;stroke-width:3.5}
svg.plan .seat.hit{stroke:#d92d20;stroke-width:4}
svg.plan .seat.focus{fill:#fde047;stroke:#d92d20;stroke-width:5}
svg.plan.edit{touch-action:none}
svg.plan.edit .obj{cursor:move}
svg.plan .obj.picked .tbody,svg.plan .obj.picked .dbody{stroke:#1d4ed8;stroke-width:3.5}
svg.plan .seat.g0,.grp .gdot.g0{fill:#fecaca;background:#fecaca}
svg.plan .seat.g1,.grp .gdot.g1{fill:#bfdbfe;background:#bfdbfe}
svg.plan .seat.g2,.grp .gdot.g2{fill:#bbf7d0;background:#bbf7d0}
svg.plan .seat.g3,.grp .gdot.g3{fill:#fde68a;background:#fde68a}
svg.plan .seat.g4,.grp .gdot.g4{fill:#e9d5ff;background:#e9d5ff}
svg.plan .seat.g5,.grp .gdot.g5{fill:#fbcfe8;background:#fbcfe8}
svg.plan .seat.g6,.grp .gdot.g6{fill:#a5f3fc;background:#a5f3fc}
svg.plan .seat.g7,.grp .gdot.g7{fill:#fed7aa;background:#fed7aa}
svg.plan .seat.g8,.grp .gdot.g8{fill:#d9f99d;background:#d9f99d}
svg.plan .seat.g9,.grp .gdot.g9{fill:#c7d2fe;background:#c7d2fe}
svg.plan .seat.g10,.grp .gdot.g10{fill:#fda4af;background:#fda4af}
svg.plan .seat.g11,.grp .gdot.g11{fill:#99f6e4;background:#99f6e4}

.seatlayout{display:grid;grid-template-columns:minmax(260px,340px) minmax(0,1fr);gap:1rem;align-items:start}
@media (max-width:900px){.seatlayout{grid-template-columns:minmax(0,1fr)}}
.grplist{display:flex;flex-direction:column;gap:.35rem;max-height:62vh;overflow:auto;margin-top:.6rem}
.grp{display:flex;gap:.5rem;align-items:center;padding:.45rem .6rem;border:1px solid var(--line);border-radius:6px;text-decoration:none;color:inherit;background:var(--card)}
.grp:hover{border-color:var(--accent)}
.grp.on{outline:3px solid var(--accent)}
.grp.done{opacity:.55}
.grp .gdot{flex:none;width:14px;height:14px;border-radius:3px;border:1px solid #555}
.grp .gtxt{flex:1;min-width:0}
.grp .gnames{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.grp .gcnt{font-variant-numeric:tabular-nums;white-space:nowrap}
/* Scan */
.scanform{display:flex;gap:.6rem;flex-wrap:wrap;align-items:center}
.scanform input[name=code]{font-size:1.8rem;max-width:16rem;padding:.6rem .8rem}
.scanres{border-radius:10px;padding:1rem 1.2rem;margin:1rem 0;border:3px solid var(--line);background:var(--card)}
.scanres.ok{border-color:#1a7f37}.scanres.warn{border-color:#ea580c}.scanres.err{border-color:#d92d20}
.scanres .seatbig{font-size:2.6rem;font-weight:800;line-height:1.15}
.scanres .who{font-size:1.3rem}
.scanres ul{margin:.4rem 0 0;padding-left:1.2rem}

.pick.over{border-style:dashed}

/* Scan: Smartphone */
.scanres .seatbig{font-size:clamp(2rem,9vw,2.6rem)}
details.planbox>summary{cursor:pointer;font-weight:600;padding:.4rem .2rem}
@media (max-width:600px){
  .scanform input[name=code]{max-width:none;flex:1 1 100%}
  .scanform button{flex:1 1 100%;padding:1rem;font-size:1.1rem}
  .scanres{padding:.8rem}
  .evbanner{font-size:1rem}
  svg.plan{max-height:none}
}

/* Kamera-Scan */
.camcard #camwrap video{width:100%;max-height:55vh;object-fit:cover;border-radius:8px;background:#000;display:block}
.camcard[hidden],#camwrap[hidden]{display:none}

/* Liste: Spaltenauswahl */
.numlist.hide-nr .c-nr{display:none}
.numlist.hide-qty .c-qty{display:none}
.numlist.hide-free .c-free{display:none}
.numlist.hide-ret .c-ret{display:none}
.numlist.hide-name .c-name{display:none}
.numlist.hide-place .c-place{display:none}
.numlist.hide-vno .c-vno{display:none}
.numlist.hide-seat .c-seat{display:none}
.numlist.hide-status .c-status{display:none}
.numlist.hide-price .c-price{display:none}
.numlist.hide-amount .c-amount{display:none}
.numlist.hide-res .c-res{display:none}
.numlist.hide-mail .c-mail{display:none}
.numlist.hide-note .c-note{display:none}
.numlist.hide-created .c-created{display:none}
.colpick{margin:.2rem 0 1rem}.colpick summary{cursor:pointer;font-weight:600;padding:.3rem 0}
.colgrid{display:flex;flex-wrap:wrap;gap:.4rem .9rem;margin-top:.4rem;align-items:center}
.colgrid label{display:inline-flex;align-items:center;margin:0;font-weight:400}
.numlist td.c-place{white-space:nowrap;font-variant-numeric:tabular-nums;font-weight:600}

/* Auf Vertrauen */
.trust{margin-top:.4rem;padding:.4rem .6rem;border:2px solid var(--warn);border-radius:6px;font-weight:700;color:var(--warn)}
.trustform{margin-top:.6rem}.trustform summary{cursor:pointer;font-weight:600}
.trustform input.keep{min-width:16rem;flex:1}

/* Einlass: reduzierte Ansicht */
details.manual>summary{cursor:pointer;font-weight:600;padding:.6rem .2rem}

/* Sitzeinteilung: Farbwahl der Gruppe */
.swatches{display:flex;flex-wrap:wrap;align-items:center;gap:.4rem;margin-top:.7rem}
.card .swatches .sw{width:2rem;height:2rem;min-width:0;padding:0;border-radius:50%;border:2px solid var(--line);cursor:pointer}
.card .swatches .sw.on{border:4px solid #000}
.card .swatches button.ghost{width:auto;margin-top:0}
.card .swatches .sw.g0{background:#fecaca}
.card .swatches .sw.g1{background:#bfdbfe}
.card .swatches .sw.g2{background:#bbf7d0}
.card .swatches .sw.g3{background:#fde68a}
.card .swatches .sw.g4{background:#e9d5ff}
.card .swatches .sw.g5{background:#fbcfe8}
.card .swatches .sw.g6{background:#a5f3fc}
.card .swatches .sw.g7{background:#fed7aa}
.card .swatches .sw.g8{background:#d9f99d}
.card .swatches .sw.g9{background:#c7d2fe}
.card .swatches .sw.g10{background:#fda4af}
.card .swatches .sw.g11{background:#99f6e4}

/* Sitzeinteilung: Namen umbrechen statt abschneiden */
.grp{align-items:flex-start}
.grp .gnames{display:block;white-space:normal;overflow:visible;text-overflow:clip;overflow-wrap:anywhere}
.grp .gname{display:block}
.grp .gdot{margin-top:.25rem}

/* Zu erstatten */
.nav a.alert{color:var(--warn);font-weight:700}
.refunds{border:2px solid var(--warn)}
.display-head .stand{margin-left:auto}

/* Alle-Knopf im Vorgang, Vorgang teilen, Schalter */
.vorgang-head .hdr-all{margin-left:auto}
.splitbox{margin-top:.6rem}.splitbox summary{cursor:pointer;font-weight:600}
.switch{margin:.2rem 0 0}

/* Einlass-Geräte: ohne Kopfbereich, Benutzer und Abmelden unten */
body.lean main{padding:0 .6rem;margin-top:0}
body.lean .wide{width:100%;left:0;transform:none}
body.lean .evbanner{margin:0 -.6rem .8rem;border-radius:0}
.leanfoot{display:flex;gap:1rem;align-items:center;justify-content:center;flex-wrap:wrap;padding:1.5rem 1rem 2rem}
.leanfoot form{margin:0}

/* Hinweise unten (Sitzplan) */
.toasts{position:fixed;left:50%;bottom:1rem;transform:translateX(-50%);z-index:60;display:flex;flex-direction:column;gap:.4rem;width:max-content;max-width:min(92vw,560px)}
.toast{padding:.7rem 1rem;border-radius:8px;background:#1a7f37;color:#fff;font-weight:600;box-shadow:0 4px 14px rgba(0,0,0,.35);cursor:pointer}
.toast.err{background:#b42318}
.toast.gone{opacity:0;transition:opacity .4s}

/* Liste: nicht bezahlt; Druck mit Zeilenumbruch bei Namen und Platz */
.badge.unpaid{color:var(--warn);border-color:var(--warn)}
@media print{
  .numlist td,.numlist th{white-space:normal}
  .numlist td.c-name,.numlist td.c-place,.numlist td.c-seat,.numlist td.c-note{white-space:normal;overflow-wrap:anywhere;word-break:break-word}
  .toasts{display:none}
}

/* Listen bei Posten 1: Schalter und Sortierung */
.listctl{display:flex;gap:1.2rem;flex-wrap:wrap;align-items:center;margin:.3rem 0 .7rem}
.listctl label{margin:0;font-weight:400}
.listctl select{width:auto;display:inline-block}
tr.lc-empty{display:none}
.trusthead{margin-left:auto;color:var(--warn);font-weight:700}

/* Menü: offene Vorgänge */
.nav .cnt{display:inline-block;min-width:1.4rem;padding:0 .4rem;margin-left:.35rem;border-radius:99px;background:var(--warn);color:#fff;font-size:.8rem;font-weight:700;text-align:center;line-height:1.4}
.nav .cnt.zero,.nav .refundtxt.zero{display:none}
.pick.mine{border-width:2px}
