:root{
  --brand:#00a7a7;--brand-2:#1d7480;--brand-dark:#17313d;--accent:#19c2bd;
  --bg:#eef4ff;--bg-2:#f8fafc;--card:rgba(255,255,255,.92);--text:#0f172a;--muted:#64748b;
  --border:#dbe7f5;--border-strong:#c7d7ea;--success:#16a34a;--danger:#dc2626;--warning:#f59e0b;
  --shadow:0 18px 45px rgba(15,23,42,.10);--shadow-soft:0 10px 25px rgba(15,23,42,.07);
  --radius:18px;--radius-sm:12px;
}
*{box-sizing:border-box}
html{min-height:100%}
body{margin:0;min-height:100%;font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;background:radial-gradient(circle at top left,rgba(0,167,167,.18),transparent 34rem),radial-gradient(circle at top right,rgba(124,58,237,.14),transparent 32rem),linear-gradient(180deg,#f8fbff 0%,var(--bg) 42%,#f8fafc 100%);color:var(--text);font-size:15px;line-height:1.5}
a{color:var(--brand);text-decoration:none;font-weight:650}a:hover{color:var(--brand-dark);text-decoration:none}
code{background:#eef2ff;color:#3730a3;border:1px solid #dbe3ff;border-radius:8px;padding:.15rem .35rem;font-size:.9em}.wrap{max-width:1220px;margin:26px auto;padding:0 18px}.wrap.login{max-width:460px;margin:9vh auto}.login .card h1{font-size:1.9rem;margin-top:0}.login .card{padding:28px}.login::before{content:"";display:block;width:72px;height:72px;margin:0 auto 18px;background:url('../icons/icon.svg') center/contain no-repeat;filter:drop-shadow(0 12px 18px rgba(0,167,167,.22))}
.topbar{position:sticky;top:0;z-index:50;display:flex;align-items:center;justify-content:space-between;gap:18px;padding:14px 24px;background:rgba(255,255,255,.82);border-bottom:1px solid rgba(219,231,245,.95);backdrop-filter:blur(16px);box-shadow:0 10px 28px rgba(15,23,42,.06)}
.brand{display:flex;align-items:center;gap:11px;min-width:0;font-weight:850;font-size:20px;letter-spacing:-.02em;color:#0f172a}.brand-logo{height:44px;max-width:210px;object-fit:contain;border-radius:10px}.brand span:first-of-type{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.server-time{font-size:.8rem;font-weight:700;color:#164e63;background:linear-gradient(135deg,#ecfeff,#e0f2fe);border:1px solid #bae6fd;padding:.28rem .6rem;border-radius:999px;margin-left:.25rem;white-space:nowrap;box-shadow:inset 0 1px 0 rgba(255,255,255,.8)}
.nav{display:flex;align-items:center;justify-content:flex-end;gap:8px;flex-wrap:wrap}.nav a{display:inline-flex;align-items:center;gap:6px;padding:8px 11px;border-radius:999px;color:#334155;font-size:.92rem;font-weight:750}.nav a:hover{background:#eef6ff;color:var(--brand);box-shadow:inset 0 0 0 1px #d6f7f5}.nav a[href$="logout.php"]{color:#b91c1c}.nav a[href$="logout.php"]:hover{background:#fef2f2;color:#991b1b}
.card{position:relative;background:var(--card);border:1px solid rgba(219,231,245,.98);border-radius:var(--radius);padding:20px;box-shadow:var(--shadow-soft);margin-bottom:20px;overflow:hidden}.card::before{content:"";position:absolute;inset:0 0 auto 0;height:4px;background:linear-gradient(90deg,var(--brand),var(--brand-2),var(--accent));opacity:.75}.card h1,.card h2,.card h3{letter-spacing:-.025em;color:#0f172a}.card h1{font-size:1.65rem;margin:0 0 16px}.card h2{font-size:1.25rem;margin:0 0 12px}.card h3{font-size:1rem;margin:14px 0 8px}.muted{color:var(--muted)}.notice,.error{padding:13px 15px;border-radius:14px;margin:12px 0;font-weight:600}.notice{background:#ecfeff;border:1px solid #a5f3fc;color:#155e75}.error{background:#fef2f2;border:1px solid #fecaca;color:#991b1b}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(245px,1fr));gap:16px}.row{display:grid;grid-template-columns:1fr 1fr;gap:14px}.actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.actions h1{margin:0 auto 0 0}.btn,button.btn,input[type=submit].btn{display:inline-flex;align-items:center;justify-content:center;gap:7px;min-height:40px;background:linear-gradient(135deg,var(--brand),var(--brand-dark));color:#fff!important;border:0;border-radius:12px;padding:10px 15px;font-weight:800;cursor:pointer;box-shadow:0 9px 18px rgba(0,167,167,.22);transition:transform .12s ease,box-shadow .12s ease,filter .12s ease}.btn:hover{transform:translateY(-1px);box-shadow:0 12px 24px rgba(0,167,167,.28);filter:saturate(1.05);color:#fff!important}.btn.secondary{background:#fff;color:#1f2937!important;border:1px solid var(--border-strong);box-shadow:0 6px 14px rgba(15,23,42,.05)}.btn.secondary:hover{background:#f8fafc;color:#0f172a!important;box-shadow:0 10px 22px rgba(15,23,42,.08)}.btn.danger{background:linear-gradient(135deg,#ef4444,#b91c1c);box-shadow:0 9px 18px rgba(220,38,38,.22)}.btn.small{min-height:32px;padding:6px 10px;font-size:13px;border-radius:10px}
.input,select,textarea,input[type=text],input[type=email],input[type=password],input[type=date],input[type=datetime-local],input[type=tel],input[type=url],input[type=number],input[type=file]{width:100%;padding:11px 12px;border:1px solid var(--border-strong);border-radius:12px;background:#fff;color:var(--text);outline:none;transition:border-color .12s ease,box-shadow .12s ease}textarea{min-height:110px;resize:vertical}.input:focus,select:focus,textarea:focus,input:focus{border-color:#6edbd7;box-shadow:0 0 0 4px rgba(0,167,167,.12)}label{font-weight:800;font-size:13px;display:block;margin:11px 0 6px;color:#334155}.inline-check{display:inline-flex;align-items:center;gap:.42rem;margin:.35rem .7rem .35rem 0;font-size:.92rem;white-space:nowrap;background:#f8fafc;border:1px solid var(--border);border-radius:999px;padding:.35rem .65rem}.inline-check input{accent-color:var(--brand)}
.table{width:100%;border-collapse:separate;border-spacing:0;overflow:hidden;border-radius:15px;border:1px solid var(--border);background:#fff}.table th,.table td{padding:12px 13px;border-bottom:1px solid var(--border);text-align:left;vertical-align:top}.table th{background:linear-gradient(180deg,#f8fafc,#effcfc);font-size:.82rem;text-transform:uppercase;letter-spacing:.04em;color:#475569}.table tr:last-child td{border-bottom:0}.table tr:hover td{background:#f8fbff}
.fc{background:#fff;border-radius:18px;padding:14px;box-shadow:inset 0 0 0 1px var(--border)}.fc .fc-toolbar-title{font-size:1.35rem!important;font-weight:850;letter-spacing:-.03em}.fc .fc-button{background:var(--brand)!important;border-color:var(--brand)!important;border-radius:10px!important;font-weight:750!important;box-shadow:none!important}.fc .fc-button-primary:not(:disabled).fc-button-active{background:#0f172a!important;border-color:#0f172a!important}.fc .fc-daygrid-day-number{font-weight:700;color:#334155}.fc .fc-day-today{background:#effcfc!important}.fc-event{border:0!important;border-radius:9px!important;padding:2px 4px!important;font-weight:700!important;box-shadow:0 4px 10px rgba(15,23,42,.12)}.fc-col-header-cell{background:#f8fafc}.fc-list{border-radius:14px;overflow:hidden}
.color-dot{display:inline-block;width:12px;height:12px;border-radius:50%;margin-right:6px;box-shadow:0 0 0 3px rgba(15,23,42,.06)}.modal{position:fixed;inset:0;background:rgba(15,23,42,.55);display:none;align-items:center;justify-content:center;z-index:100;padding:18px;backdrop-filter:blur(6px)}.modal.open{display:flex}.modal-box{width:min(780px,94vw);max-height:90vh;overflow:auto;background:#fff;border-radius:22px;padding:24px;box-shadow:var(--shadow)}
.logo-preview,.attachments{margin:14px 0;padding:15px;border:1px solid var(--border);border-radius:16px;background:linear-gradient(180deg,#f8fafc,#fff)}.logo-preview{display:flex;align-items:center;gap:16px}.logo-preview img{max-height:84px;max-width:250px;object-fit:contain}.group-pills{display:flex;gap:7px;flex-wrap:wrap}.group-pill{display:inline-flex;align-items:center;border:1px solid #bcefeb;border-radius:999px;padding:4px 9px;font-size:12px;font-weight:750;background:#effcfc;color:#007d82}.reminder-rows{display:flex;flex-direction:column;gap:9px;margin-bottom:10px}.reminder-row{display:flex;align-items:center;gap:.55rem;flex-wrap:wrap}.reminder-row .input{max-width:130px}.reminder-row .btn{min-height:38px}.status-badge{display:inline-block;border-radius:999px;padding:5px 10px;font-size:12px;font-weight:850;background:#e2e8f0;color:#0f172a}.status-open{background:#fef3c7;color:#92400e}.status-in_progress{background:#d6f7f5;color:#17313d}.status-done{background:#dcfce7;color:#166534}.checkline{font-weight:650}.attachment-row{display:flex;gap:10px;align-items:center;justify-content:space-between;flex-wrap:wrap;padding:10px 0;border-bottom:1px solid var(--border)}.attachment-row:last-child{border-bottom:0}.attachment-row a{font-weight:800}.attachments h3{margin:8px 0 8px}
.admin-hint{font-size:.9rem;color:var(--muted)}
@media(max-width:900px){.topbar{align-items:flex-start;flex-direction:column}.brand{width:100%;font-size:18px}.server-time{margin-left:auto}.nav{justify-content:flex-start;width:100%}.nav a,.nav .btn{font-size:.88rem}.wrap{margin:18px auto;padding:0 12px}.card{padding:16px}.fc .fc-toolbar{display:grid!important;gap:8px}.fc .fc-toolbar-chunk{display:flex;justify-content:center;flex-wrap:wrap}.row{grid-template-columns:1fr}.table{display:block;overflow-x:auto;white-space:nowrap}.logo-preview{align-items:flex-start;flex-direction:column}}
@media(max-width:560px){body{font-size:14px}.brand{flex-wrap:wrap}.brand-logo{height:38px}.server-time{width:100%;margin:.2rem 0 0}.nav{gap:6px}.nav a{padding:7px 9px;background:rgba(255,255,255,.72);border:1px solid var(--border)}.actions{align-items:stretch}.actions .btn{width:100%}.btn{width:auto}.fc{padding:8px}.fc .fc-toolbar-title{font-size:1.1rem!important}.fc .fc-button{padding:.32rem .5rem!important;font-size:.82rem!important}.wrap.login{margin:5vh auto}.login .card{padding:22px}}
.nav-badge{display:inline-flex;align-items:center;justify-content:center;min-width:18px;height:18px;margin-left:4px;padding:0 6px;border-radius:999px;background:#ef4444;color:#fff;font-size:11px;font-weight:900;vertical-align:middle}
.push-help-panel{margin-bottom:18px}.push-card{border-color:#bcefeb;background:linear-gradient(180deg,#effcfc,#fff)}.push-card h2{margin-top:0}.push-card ol{margin:8px 0 14px 1.2rem}.push-card li{margin:.25rem 0}.push-card .actions{margin-top:12px}
.card.subtle{background:#f8fafc;border-style:dashed}.ajax-toolbar select{min-width:180px}.fc-bg-event{opacity:.45!important}.fc-bg-event .fc-event-title{font-weight:700;color:#475569;padding:2px 4px}.nav-badge{background:#ef4444;color:#fff;border-radius:999px;padding:1px 6px;font-size:.75rem}
/* v1.2.7 Teilnahme/Rückmeldung: mobile App-Ansicht */
.app-response-body{background:#eef4ff;min-height:100vh;padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom);}
.app-response{max-width:560px;margin:0 auto;padding:14px 14px 28px;}
.app-card{background:rgba(255,255,255,.96);border:1px solid #dbe7f5;border-radius:24px;padding:18px;margin:12px 0;box-shadow:0 16px 42px rgba(15,23,42,.10)}
.app-card.hero{background:linear-gradient(135deg,#00a7a7,#17313d);color:#fff;border:0}.app-card.hero h1{color:#fff;margin:.3rem 0;font-size:1.55rem}.app-card.hero .muted{color:#d6f7f5}.app-kicker{text-transform:uppercase;font-size:.76rem;letter-spacing:.08em;font-weight:900;opacity:.88}.app-date{font-weight:800;margin:.7rem 0}.app-alert{border-radius:18px;padding:13px 15px;margin:12px 0;font-weight:800}.app-alert.ok{background:#dcfce7;color:#166534;border:1px solid #86efac}.app-alert.bad{background:#fee2e2;color:#991b1b;border:1px solid #fca5a5}.app-actions{display:grid;grid-template-columns:1fr;gap:10px}.app-action{display:flex;align-items:center;justify-content:center;min-height:58px;border-radius:18px;padding:13px 15px;font-size:1.05rem;font-weight:900;color:#fff!important;box-shadow:0 12px 24px rgba(15,23,42,.14)}.app-action.yes{background:linear-gradient(135deg,#22c55e,#15803d)}.app-action.no{background:linear-gradient(135deg,#ef4444,#b91c1c)}.app-wide{width:100%;margin-top:10px}.required{color:#dc2626}.attendance-list{display:flex;flex-direction:column;gap:9px}.attendance-row{display:flex;gap:12px;align-items:flex-start;padding:13px;border-radius:18px;background:#f8fafc;border:1px solid #e2e8f0}.attendance-row.status-yes{background:#f0fdf4;border-color:#bbf7d0}.attendance-row.status-no{background:#fef2f2;border-color:#fecaca}.attendance-row.status-pending{background:#fffbeb;border-color:#fde68a}.avatar-dot{width:18px;height:18px;border-radius:999px;display:inline-block;margin-top:3px;box-shadow:0 0 0 4px rgba(255,255,255,.8)}.decline-reason{margin:.35rem 0 0;color:#991b1b;font-size:.92rem}.btn[disabled]{opacity:.5;cursor:not-allowed;filter:grayscale(.4)}
@media(max-width:560px){.app-response{padding:10px 10px 24px}.app-card{border-radius:22px;padding:16px}.app-card.hero h1{font-size:1.35rem}.attendance-row{padding:12px}.app-action{min-height:56px}}
.group-admin-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px;margin-top:14px}.dashboard-tile{display:block;text-decoration:none;color:inherit;border:1px solid rgba(148,163,184,.35);border-radius:18px;padding:16px;background:linear-gradient(180deg,#fff,#f8fafc);box-shadow:0 10px 24px rgba(15,23,42,.06)}.dashboard-tile strong{display:block;font-size:1.05rem;margin-bottom:6px}.dashboard-tile span{display:block;color:#64748b;font-size:.92rem}.dashboard-tile:hover{transform:translateY(-1px);box-shadow:0 14px 30px rgba(15,23,42,.11)}


/* v1.2.11 Teilnehmerliste als mobile App */
.attendance-admin-app .app-response{max-width:560px;padding-bottom:calc(24px + env(safe-area-inset-bottom));}
.sticky-hero{position:sticky;top:0;z-index:5;border-radius:0 0 28px 28px;margin-left:-16px;margin-right:-16px;box-shadow:0 16px 40px rgba(15,23,42,.16)}
.attendance-legend{display:grid;gap:6px;margin-top:12px;font-size:.86rem;color:#475569}
.app-card.compact{padding:10px;background:rgba(255,255,255,.86);backdrop-filter:blur(10px)}
.attendance-mobile-list{display:grid;gap:10px}
.attendance-tap-row{width:100%;border:0;border-radius:22px;padding:14px 14px;display:flex;align-items:center;gap:14px;text-align:left;background:#f8fafc;box-shadow:0 8px 24px rgba(15,23,42,.08);font:inherit;color:#0f172a;transition:transform .12s ease, box-shadow .12s ease, background .12s ease;touch-action:manipulation}
.attendance-tap-row:active{transform:scale(.985)}
.attendance-tap-row.is-saving{opacity:.65;pointer-events:none}
.attendance-mark{display:grid;place-items:center;width:46px;height:46px;border-radius:16px;background:#e2e8f0;font-size:1.9rem;font-weight:900;line-height:1;color:#64748b;flex:0 0 46px}
.attendance-person{display:grid;gap:4px;min-width:0}.attendance-person strong{font-size:1.06rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.attendance-person small{color:#64748b;font-weight:650}
.attendance-tap-row.status-yes{background:#ecfdf5}.attendance-tap-row.status-yes .attendance-mark{background:#16a34a;color:#fff}.attendance-tap-row.status-yes small{color:#166534}
.attendance-tap-row.status-no{background:#fef2f2}.attendance-tap-row.status-no .attendance-mark{background:#ef4444;color:#fff}.attendance-tap-row.status-no small{color:#991b1b}
.attendance-tap-row.status-pending{background:#f8fafc}.attendance-tap-row.status-pending .attendance-mark{background:#cbd5e1;color:#475569}
.app-bottom-actions{display:grid;gap:10px;padding:0 4px 20px}.app-wide{text-align:center;justify-content:center;width:100%}
@media (max-width:640px){.attendance-admin-app .app-response{padding-left:16px;padding-right:16px}.attendance-tap-row{min-height:76px}.attendance-mark{width:50px;height:50px}.attendance-person strong{font-size:1.1rem}}

/* v1.2.13 Teilnehmerlisten-App: bessere Lesbarkeit/Kontrast auf Handy */
.attendance-admin-app .sticky-hero,
.attendance-admin-app .app-card.hero{
  color:#ffffff;
}
.attendance-admin-app .sticky-hero .app-kicker,
.attendance-admin-app .sticky-hero .app-date,
.attendance-admin-app .sticky-hero .muted,
.attendance-admin-app .sticky-hero p,
.attendance-admin-app .sticky-hero h1{
  color:#ffffff !important;
  text-shadow:0 1px 2px rgba(15,23,42,.28);
}
.attendance-admin-app .attendance-legend{
  color:#ffffff !important;
  display:grid;
  grid-template-columns:1fr;
  gap:8px;
  margin-top:14px;
}
.attendance-admin-app .attendance-legend span{
  display:block;
  width:100%;
  padding:9px 11px;
  border-radius:14px;
  background:rgba(255,255,255,.18);
  color:#ffffff !important;
  font-weight:900;
  border:1px solid rgba(255,255,255,.28);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12);
}
.attendance-admin-app .app-card.compact{
  background:#ffffff;
}
.attendance-admin-app .attendance-tap-row{
  color:#0f172a !important;
  border:1px solid rgba(148,163,184,.22);
}
.attendance-admin-app .attendance-person strong{
  color:#0f172a !important;
  font-weight:950;
}
.attendance-admin-app .attendance-person small{
  color:#334155 !important;
  font-weight:800;
}
.attendance-admin-app .attendance-tap-row.status-yes{
  background:#dcfce7;
  border-color:#86efac;
}
.attendance-admin-app .attendance-tap-row.status-yes .attendance-person small{
  color:#14532d !important;
}
.attendance-admin-app .attendance-tap-row.status-no{
  background:#fee2e2;
  border-color:#fca5a5;
}
.attendance-admin-app .attendance-tap-row.status-no .attendance-person small{
  color:#7f1d1d !important;
}
.attendance-admin-app .attendance-tap-row.status-pending{
  background:#f8fafc;
  border-color:#cbd5e1;
}
.attendance-admin-app .attendance-tap-row.status-pending .attendance-person small{
  color:#334155 !important;
}
@media (max-width:640px){
  .attendance-admin-app .attendance-legend{font-size:.94rem;}
  .attendance-admin-app .attendance-legend span{padding:10px 12px;}
  .attendance-admin-app .attendance-person small{font-size:.92rem;line-height:1.35;}
}

/* v1.2.17 App-Shell: mobile first, angelehnt an das rote/schwarze Logo */
:root{--app-red:#00a7a7;--app-red-2:#13c2bd;--app-ink:#161616;--app-cream:#f4fbfb;--app-soft:#eef8f8;--app-line:#d7eeed;--app-tab:#141d25;}
body.app-shell{background:linear-gradient(180deg,#fff 0%,#f3fbfb 45%,#f5f6f8 100%);color:var(--app-ink);padding-bottom:calc(86px + env(safe-area-inset-bottom));}
.app-topbar{position:sticky;top:0;z-index:80;display:flex;align-items:center;gap:12px;min-height:64px;padding:10px 16px;background:rgba(255,255,255,.94);border-bottom:1px solid rgba(0,167,167,.12);backdrop-filter:blur(16px);box-shadow:0 8px 24px rgba(22,22,22,.06)}
.app-menu-btn{width:44px;height:44px;border:0;background:#fff;border-radius:16px;display:grid;place-content:center;gap:5px;box-shadow:0 8px 22px rgba(0,167,167,.15);cursor:pointer}.app-menu-btn span{display:block;width:22px;height:2px;background:var(--app-red);border-radius:9px}
.app-brand{display:flex;align-items:center;gap:10px;min-width:0;text-decoration:none;color:var(--app-ink);font-weight:900;letter-spacing:.03em}.app-brand .brand-logo{width:44px;height:44px;object-fit:contain;border-radius:14px;background:#fff}.app-brand span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:38vw}.server-time{margin-left:auto;font-size:.82rem;color:#4b5563;background:#f3fbfb;border:1px solid #c8e9e7;border-radius:999px;padding:7px 10px;white-space:nowrap}.app-main{padding-top:18px}.wrap.app-main{max-width:1180px}.app-drawer-overlay{position:fixed;inset:0;background:rgba(0,0,0,.38);z-index:98}.app-drawer{position:fixed;left:0;top:0;bottom:0;width:min(86vw,360px);z-index:99;background:#fff;box-shadow:24px 0 60px rgba(0,0,0,.22);transform:translateX(-105%);transition:transform .22s ease;padding:18px 14px calc(24px + env(safe-area-inset-bottom));overflow:auto;border-radius:0 28px 28px 0}.app-drawer.open{transform:translateX(0)}.drawer-head{display:flex;align-items:center;gap:12px;padding:10px 8px 18px;border-bottom:1px solid var(--app-line);margin-bottom:10px}.drawer-head img{width:64px;height:64px;object-fit:contain;border-radius:20px;background:#fff;box-shadow:0 10px 30px rgba(0,167,167,.12)}.drawer-head strong{display:block;font-size:1.06rem}.drawer-head span{display:block;color:#69707a;font-size:.9rem}.app-drawer a,.app-drawer .drawer-install{display:flex;align-items:center;gap:10px;width:100%;padding:13px 14px;border-radius:18px;margin:4px 0;text-decoration:none;color:#20242a;background:transparent;border:0;font-weight:800;text-align:left}.app-drawer a:hover,.app-drawer .drawer-install:hover{background:#ecfbfb;color:var(--app-red)}.nav-badge{background:var(--app-red);color:#fff;border-radius:999px;padding:2px 7px;font-size:.75rem}.app-bottom-nav{position:fixed;left:0;right:0;bottom:0;z-index:90;display:grid;grid-template-columns:repeat(4,1fr);padding:8px 8px calc(8px + env(safe-area-inset-bottom));background:var(--app-tab);box-shadow:0 -12px 35px rgba(20,29,37,.22);border-radius:24px 24px 0 0}.app-bottom-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;min-height:58px;color:#fff;text-decoration:none;font-weight:800;font-size:.78rem;border-radius:18px}.app-bottom-nav a:hover,.app-bottom-nav a:focus{background:rgba(255,255,255,.09);color:#fff}.app-nav-icon{font-size:1.45rem;line-height:1}.app-home-checks{margin:0 0 18px}.app-check-card{background:linear-gradient(135deg,#fff 0%,#f2fbfb 100%);border:1px solid #ccefed;border-radius:28px;padding:18px;box-shadow:0 16px 40px rgba(0,167,167,.12)}.app-check-title{font-size:1.25rem;font-weight:950;margin-bottom:12px;color:var(--app-ink)}.app-check-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.app-check-item{border:1px solid #d7eeed;border-radius:22px;padding:14px;background:#fff;display:flex;flex-direction:column;gap:8px}.app-check-item strong{font-size:1rem}.app-check-item span{font-size:.92rem;color:#4b5563}.app-check-item.warn{border-color:#8ddbd8;background:#f3fbfb}.app-check-item.ok{border-color:#bbf7d0;background:#f0fdf4}.btn,.button,button.btn,a.btn{background:linear-gradient(135deg,var(--app-red),var(--app-red-2));border:0;color:#fff;border-radius:16px;box-shadow:0 10px 24px rgba(0,167,167,.2);font-weight:850}.btn.secondary{background:#fff;color:var(--app-red);border:1px solid #c8e9e7;box-shadow:none}.card,.panel,.box,form,.table-wrap{border-radius:24px;border-color:#d5eeee;box-shadow:0 14px 38px rgba(22,22,22,.06)}input.input,select.input,textarea.input,.input{border-radius:16px;border-color:#c8e2e1}.fc .fc-button-primary{background:var(--app-red);border-color:var(--app-red);border-radius:14px}.fc .fc-toolbar-title{font-weight:950;color:var(--app-ink)}.fc .fc-daygrid-event{border-radius:12px;padding:2px 5px}
.account-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:18px}.group-pill{display:inline-flex;align-items:center;margin:4px 6px 4px 0;padding:8px 12px;border-radius:999px;background:#ecfbfb;color:#8f111b;font-weight:800;border:1px solid #f0c7cc}.muted-card{background:#fff;border:1px solid var(--app-line);border-radius:22px;padding:14px;color:#4b5563}
@media (max-width:760px){body.app-shell{font-size:16px}.app-topbar{min-height:60px;padding:8px 12px}.server-time{display:none}.app-brand span{max-width:58vw}.wrap.app-main{padding:14px 12px 104px}.app-check-grid,.account-grid{grid-template-columns:1fr}.app-check-card{border-radius:24px;padding:15px}.topbar,.nav{display:none!important}.card,.panel,.box,form,.table-wrap{border-radius:22px;padding:15px}.fc .fc-toolbar{gap:8px;align-items:stretch}.fc .fc-toolbar.fc-header-toolbar{flex-direction:column}.fc .fc-toolbar-title{font-size:1.35rem}.fc .fc-button{padding:.55rem .7rem}.table-wrap{overflow:auto}.app-bottom-nav span:last-child{font-size:.72rem}.app-nav-icon{font-size:1.35rem}}
@media (min-width:761px){.app-bottom-nav{max-width:560px;left:50%;transform:translateX(-50%);border-radius:28px 28px 0 0}.app-drawer{width:340px}.app-home-checks[hidden]{display:none}}


/* v1.2.18 Desktop-Korrektur: App-Look nur mobil erzwingen, Desktop wieder sauber breit */
.app-topbar img.brand-logo{width:52px!important;height:52px!important;max-width:52px!important;max-height:52px!important;object-fit:contain!important;}
@media (min-width:761px){
  body.app-shell{padding-bottom:0;background:radial-gradient(circle at top left,rgba(0,167,167,.10),transparent 28rem),linear-gradient(180deg,#ffffff 0%,#f8fafc 100%);} 
  .app-topbar{min-height:72px;padding:12px 28px;display:flex;align-items:center;gap:16px;}
  .app-brand span{max-width:none;font-size:1.05rem;}
  .wrap.app-main{max-width:1220px;margin:24px auto;padding:0 18px;}
  .app-bottom-nav{display:none!important;}
  .app-home-checks{max-width:1220px;margin:0 auto 18px;}
  .app-check-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:760px){
  .app-topbar img.brand-logo{width:44px!important;height:44px!important;max-width:44px!important;max-height:44px!important;}
}


/* v1.2.20 Mobile App Kalender: Home getrennt, Kalender pur, Punkte statt Text */
@media (max-width:760px){
  body.app-shell.calendar-page .wrap.app-main{padding:12px 0 96px;}
  body.app-shell.calendar-page .calendar-only-card{margin:0 10px 18px;padding:10px;border-radius:28px;background:#fff;box-shadow:0 18px 45px rgba(17,24,39,.10);overflow:hidden;}
  body.app-shell.calendar-page .calendar-only-card::before{display:none;}
  body.app-shell.calendar-page #calendar.card{border:1px solid #d7eeed;}
  body.app-shell.calendar-page .fc{padding:0;background:#fff;border:0;box-shadow:none;border-radius:24px;}
  body.app-shell.calendar-page .fc .fc-toolbar.fc-header-toolbar{display:grid!important;grid-template-columns:48px 1fr 48px;align-items:center;margin:4px 4px 14px;gap:6px;}
  body.app-shell.calendar-page .fc .fc-toolbar-chunk{display:flex;justify-content:center;align-items:center;}
  body.app-shell.calendar-page .fc .fc-toolbar-title{font-size:2.05rem!important;line-height:1.05;text-align:center;color:#111827;font-weight:950;letter-spacing:-.05em;}
  body.app-shell.calendar-page .fc .fc-button{width:44px;height:44px;border-radius:18px!important;background:#fff!important;color:#00a7a7!important;border:1px solid #ccefed!important;box-shadow:0 9px 22px rgba(0,167,167,.12)!important;font-size:0!important;position:relative;}
  body.app-shell.calendar-page .fc .fc-prev-button::after{content:'‹';font-size:2rem;line-height:1;font-weight:900;position:absolute;inset:0;display:grid;place-items:center;}
  body.app-shell.calendar-page .fc .fc-next-button::after{content:'›';font-size:2rem;line-height:1;font-weight:900;position:absolute;inset:0;display:grid;place-items:center;}
  body.app-shell.calendar-page .fc .fc-scrollgrid{border:0!important;}
  body.app-shell.calendar-page .fc-theme-standard td,
  body.app-shell.calendar-page .fc-theme-standard th{border-color:#ece5e6!important;}
  body.app-shell.calendar-page .fc .fc-col-header-cell{background:#fff;border-bottom:1px solid #d7eeed!important;}
  body.app-shell.calendar-page .fc .fc-col-header-cell-cushion{font-weight:950;color:#00a7a7;padding:9px 0;text-transform:uppercase;}
  body.app-shell.calendar-page .fc .fc-daygrid-day{min-height:92px;background:#fff;}
  body.app-shell.calendar-page .fc .fc-daygrid-day.fc-day-today{background:#fff5f6!important;}
  body.app-shell.calendar-page .fc .fc-daygrid-day-number{font-size:1.18rem;font-weight:950;color:#1f2937;padding:7px 8px;}
  body.app-shell.calendar-page .fc .fc-day-other .fc-daygrid-day-number{color:#c4c8cf;}
  body.app-shell.calendar-page .fc-daygrid-event-harness{display:inline-block;margin:0 1px 2px 0;vertical-align:top;}
  body.app-shell.calendar-page .fc-daygrid-event{display:inline-flex!important;align-items:center;justify-content:center;width:10px!important;height:10px!important;min-width:10px!important;max-width:10px!important;padding:0!important;margin:0 2px 2px 0!important;border-radius:50%!important;box-shadow:none!important;overflow:hidden;background:transparent!important;}
  body.app-shell.calendar-page .fc-daygrid-event .fc-event-main{display:flex!important;align-items:center;justify-content:center;line-height:0;color:transparent!important;}
  body.app-shell.calendar-page .fc-event-title,
  body.app-shell.calendar-page .fc-event-time{display:none!important;}
  body.app-shell.calendar-page .fc-mobile-dot{display:inline-block;width:9px;height:9px;border-radius:999px;background:#00a7a7;box-shadow:0 0 0 2px rgba(0,167,167,.08);}
  body.app-shell.calendar-page .fc-mobile-dot-muted{background:#a8adb5;opacity:.65;}
  body.app-shell.calendar-page .fc .fc-daygrid-day-bg .fc-bg-event{opacity:.18!important;background:#cbd5e1!important;}
  body.app-shell.calendar-page .fc .fc-daygrid-more-link{font-size:.72rem;font-weight:900;color:#6b7280;background:#f3f4f6;border-radius:999px;padding:1px 5px;margin-top:1px;}
  .app-bottom-nav{grid-template-columns:repeat(5,1fr);padding-left:6px;padding-right:6px;}
  .app-bottom-nav a{min-height:60px;font-size:.68rem;gap:2px;}
  .app-nav-icon{font-size:1.22rem;}
  .home-page .app-home-hero{background:linear-gradient(135deg,#fff 0%,#fff4f5 100%);border-color:#ccefed;}
  .home-kicker{margin:0 0 4px;color:#00a7a7;font-size:.82rem;text-transform:uppercase;letter-spacing:.12em;font-weight:950;}
  .home-page .app-home-hero h1{font-size:1.8rem;margin:0 0 4px;color:#111827;}
  .home-actions .btn{width:100%;}
  .upcoming-list{display:grid;gap:10px;}
  .upcoming-item{display:flex;align-items:center;gap:12px;padding:13px 12px;background:#fff;border:1px solid #d7eeed;border-radius:18px;color:#111827;text-decoration:none;box-shadow:0 8px 18px rgba(17,24,39,.05);}
  .upcoming-dot{width:12px;height:12px;border-radius:999px;flex:0 0 auto;}
  .upcoming-main{min-width:0;display:flex;flex-direction:column;gap:2px;}
  .upcoming-main strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#111827;}
  .upcoming-main small{color:#6b7280;font-weight:750;}
  .upcoming-arrow{margin-left:auto;color:#00a7a7;font-size:1.6rem;font-weight:900;}
}
@media (min-width:761px){
  .app-bottom-nav{grid-template-columns:repeat(5,1fr);}
  .home-page .app-home-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;}
  .home-kicker{margin:0 0 4px;color:#00a7a7;font-size:.8rem;text-transform:uppercase;letter-spacing:.12em;font-weight:950;}
  .upcoming-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:12px;}
  .upcoming-item{display:flex;align-items:center;gap:12px;padding:13px;background:#fff;border:1px solid #d7eeed;border-radius:16px;color:#111827;text-decoration:none;}
  .upcoming-dot{width:12px;height:12px;border-radius:999px;flex:0 0 auto;}
  .upcoming-main{display:flex;flex-direction:column;min-width:0;}
  .upcoming-main strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .upcoming-main small{color:#64748b;}
  .upcoming-arrow{margin-left:auto;color:#00a7a7;font-size:1.4rem;font-weight:900;}
}

/* v1.2.21 Terminliste: mobile Teilnahme per Ajax */
.events-list-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:8px}.event-kicker{margin:0 0 4px;color:#00a7a7;text-transform:uppercase;letter-spacing:.12em;font-size:.78rem;font-weight:950}.mobile-event-list{display:grid;gap:10px}.mobile-event-item{display:grid;grid-template-columns:14px minmax(74px,.6fr) minmax(0,1fr) 18px;align-items:center;gap:10px;padding:13px 12px;background:#fff;border:1px solid #e5e7eb;border-left-width:6px;border-radius:18px;color:#111827;text-decoration:none;box-shadow:0 8px 20px rgba(15,23,42,.06)}.mobile-event-item.status-yes{border-left-color:#22c55e;background:linear-gradient(90deg,rgba(34,197,94,.10),#fff 36%)}.mobile-event-item.status-no{border-left-color:#ef4444;background:linear-gradient(90deg,rgba(239,68,68,.10),#fff 36%)}.mobile-event-item.status-pending{border-left-color:#facc15;background:linear-gradient(90deg,rgba(250,204,21,.16),#fff 36%)}.event-status-dot{width:12px;height:12px;border-radius:999px;display:inline-block}.event-status-dot.status-yes{background:#22c55e}.event-status-dot.status-no{background:#ef4444}.event-status-dot.status-pending{background:#facc15}.event-date{display:flex;flex-direction:column;gap:2px;min-width:0}.event-date strong{font-size:.93rem;color:#111827}.event-date small{font-size:.78rem;color:#6b7280;font-weight:850}.event-title{min-width:0;display:flex;flex-direction:column;gap:2px}.event-title strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;font-size:1rem;color:#111827}.event-title small{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;color:#6b7280;font-size:.8rem;font-weight:750}.event-arrow{color:#00a7a7;font-size:1.55rem;font-weight:950}.app-event-detail{max-width:760px;margin-inline:auto}.back-link{display:inline-flex;margin-bottom:14px;color:#00a7a7;font-weight:950;text-decoration:none}.event-detail-head{display:flex;align-items:flex-start;gap:12px}.event-detail-head .event-status-dot{width:16px;height:16px;margin-top:11px;box-shadow:0 0 0 5px rgba(0,167,167,.06)}.event-detail-head h1{margin:0 0 8px;font-size:2rem;line-height:1.05;color:#111827}.event-meta-list{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:10px;margin:16px 0}.event-meta-list div{background:#f9fafb;border:1px solid #e5e7eb;border-radius:16px;padding:12px}.event-meta-list strong{display:block;margin-bottom:3px;color:#111827}.event-meta-list span{color:#4b5563;font-weight:750}.event-description{background:#f3fbfb;border:1px solid #c8e9e7;border-radius:18px;padding:14px;margin:10px 0 16px;color:#1f2937}.attendance-app-box{margin-top:18px;border-radius:24px;border:1px solid #d7eeed;background:linear-gradient(135deg,#fff,#f3fbfb);padding:16px}.attendance-app-box h2{margin-top:0}.status-text{font-weight:950;border-radius:999px;display:inline-flex;padding:7px 11px}.status-text.status-yes{background:#dcfce7;color:#166534}.status-text.status-no{background:#fee2e2;color:#991b1b}.status-text.status-pending{background:#fef9c3;color:#854d0e}.attendance-quick-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:14px 0}.attendance-btn{border:0;border-radius:18px;padding:15px 12px;font-weight:950;font-size:1rem;box-shadow:0 10px 20px rgba(15,23,42,.08)}.attendance-btn.yes{background:#22c55e;color:#fff}.attendance-btn.no{background:#ef4444;color:#fff}.decline-form{display:grid;gap:8px;margin-top:12px}.decline-form textarea{width:100%;border:1px solid #c8e2e1;border-radius:18px;padding:12px;font:inherit}.ajax-msg{font-weight:850;color:#4b5563}.attendance-app-box.is-saved{outline:3px solid rgba(34,197,94,.25)}
@media (max-width:760px){body.app-shell.events-page .wrap.app-main{padding:12px 10px 104px}.app-events-list-card,.app-event-detail{border-radius:28px;padding:16px;box-shadow:0 18px 45px rgba(17,24,39,.10)}.mobile-event-list{gap:9px}.mobile-event-item{grid-template-columns:12px 70px minmax(0,1fr) 14px;border-radius:20px;padding:13px 10px}.event-detail-head h1{font-size:1.75rem}.event-meta-list{grid-template-columns:1fr}.attendance-quick-actions{grid-template-columns:1fr}.attendance-btn{min-height:56px}.event-kicker{font-size:.74rem}.events-list-head h1{font-size:1.75rem;margin:.1rem 0}.app-event-detail.status-yes{border-color:#bbf7d0}.app-event-detail.status-no{border-color:#fecaca}.app-event-detail.status-pending{border-color:#fde68a}}
.status-badge.ok{background:#dcfce7;color:#166534;border:1px solid #86efac}.status-badge.warn{background:#fef3c7;color:#92400e;border:1px solid #fcd34d}.fc-daygrid-day{cursor:pointer}.fc-daygrid-day:hover{background:rgba(0,167,167,.045)}

/* v1.2.33 Dateiserver App-UI */
.app-card{background:rgba(255,255,255,.96);border-radius:22px;box-shadow:0 12px 35px rgba(15,23,42,.10);border:1px solid rgba(148,163,184,.22);padding:20px;margin:14px auto;max-width:1120px}.file-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:14px}.file-tile{background:#fff;border:1px solid rgba(148,163,184,.25);border-radius:20px;padding:12px;box-shadow:0 8px 20px rgba(15,23,42,.08);display:flex;flex-direction:column;gap:10px}.file-preview{height:150px;border:0;border-radius:16px;background:linear-gradient(135deg,#f8fafc,#e2e8f0);display:flex;align-items:center;justify-content:center;overflow:hidden;cursor:pointer}.file-preview img{width:100%;height:100%;object-fit:cover}.file-icon{font-size:48px}.file-info strong{display:block;color:#0f172a;font-size:1rem}.file-info small,.file-info p{color:#475569}.file-actions{display:flex;gap:7px;flex-wrap:wrap}.media-modal{position:fixed;inset:0;background:rgba(2,6,23,.72);backdrop-filter:blur(10px);z-index:9999;display:none;align-items:center;justify-content:center;padding:16px}.media-modal.open{display:flex}.media-sheet{position:relative;width:min(980px,100%);max-height:92vh;background:#0f172a;color:#fff;border-radius:26px;box-shadow:0 20px 70px rgba(0,0,0,.35);padding:18px;overflow:hidden}.edit-sheet{background:#fff;color:#0f172a;max-width:520px}.media-close{position:absolute;right:12px;top:10px;border:0;background:rgba(255,255,255,.15);color:#fff;border-radius:999px;width:42px;height:42px;font-size:30px;z-index:2}.edit-sheet .media-close{background:#f1f5f9;color:#0f172a}.media-body{padding:18px 52px;text-align:center}.viewer-media{max-width:100%;max-height:68vh;border-radius:16px}.viewer-audio{width:100%;margin:40px 0}.media-nav{position:absolute;top:50%;transform:translateY(-50%);border:0;background:rgba(255,255,255,.16);color:#fff;border-radius:999px;width:44px;height:58px;font-size:42px}.media-nav.prev{left:10px}.media-nav.next{right:10px}@media(max-width:700px){.app-card{border-radius:24px;margin:10px 8px;padding:16px}.file-grid{grid-template-columns:1fr}.file-tile{border-radius:22px}.file-preview{height:190px}.media-modal{padding:0}.media-sheet{width:100%;height:100%;max-height:100vh;border-radius:0;padding-top:54px}.media-body{padding:10px 48px}.viewer-media{max-height:70vh}.media-nav{width:40px;height:54px}.file-actions .btn{flex:1 1 auto;text-align:center}}


/* v1.2.35 Login-Logo + Mobile-App-UI Feinschliff */
.login-page,
.app-login-page{
  background:
    radial-gradient(circle at top left, rgba(0,167,167,.16), transparent 28rem),
    radial-gradient(circle at bottom right, rgba(17,24,39,.10), transparent 25rem),
    linear-gradient(180deg,#ffffff 0%,#f2fbfb 48%,#f8fafc 100%);
}
.app-login-page .wrap.login{max-width:440px;margin:5vh auto;padding:0 18px;}
.app-login-page .login::before{display:none!important;content:none!important;}
.app-login-card{border-radius:30px!important;padding:24px 20px 22px!important;text-align:center;border:1px solid #ccefed!important;box-shadow:0 22px 55px rgba(0,167,167,.14)!important;background:rgba(255,255,255,.96)!important;}
.app-login-card::before{background:linear-gradient(90deg,#00a7a7,#111827)!important;height:5px!important;opacity:1!important;}
.login-logo-box{display:flex;justify-content:center;align-items:center;margin:4px auto 14px;}
.login-school-logo{display:block;max-width:min(310px,88vw);width:100%;height:auto;object-fit:contain;filter:drop-shadow(0 12px 22px rgba(17,24,39,.12));}
.app-login-card h1{font-size:1.55rem!important;line-height:1.18;margin:4px 0 18px!important;color:#111827;letter-spacing:-.03em;}
.app-login-card label{text-align:left;color:#1f2937;font-size:.9rem;margin-top:13px;}
.app-login-card .input,
.app-login-card input[type=email],
.app-login-card input[type=password]{min-height:48px;border-radius:18px!important;background:#fff;border-color:#d7eeed!important;font-size:1rem;}
.app-login-card .btn{width:100%;min-height:50px;border-radius:18px;font-size:1.02rem;margin-top:4px;}
.app-login-card .muted{margin-top:16px;font-size:.95rem;}

@media (max-width:760px){
  html,body{overscroll-behavior-y:none;}
  body.app-shell{background:#fff7f8!important;}
  .wrap.app-main{max-width:100%;margin:0 auto;padding:14px 12px 104px!important;}
  .app-topbar{position:sticky;top:0;z-index:80;border-bottom:1px solid #f0d4d8;background:rgba(255,255,255,.94);backdrop-filter:blur(18px);box-shadow:0 8px 28px rgba(17,24,39,.07);}
  .app-brand{min-width:0;}
  .app-brand img.brand-logo{border-radius:16px;background:#fff;box-shadow:0 8px 20px rgba(0,167,167,.14);}
  .hamburger,.app-menu-toggle{width:46px;height:46px;border-radius:16px;border:1px solid #ccefed;background:#fff;color:#00a7a7;box-shadow:0 8px 20px rgba(0,167,167,.10);}
  .card,.panel,.box,form,.table-wrap{border-radius:26px!important;border:1px solid #ccefed!important;background:rgba(255,255,255,.97)!important;box-shadow:0 16px 38px rgba(17,24,39,.07)!important;margin-bottom:14px!important;}
  .card h1,.card h2,.panel h1,.panel h2{font-size:1.35rem!important;line-height:1.15;color:#111827;margin-bottom:12px!important;}
  label{font-size:.86rem;color:#374151;}
  .input,select,textarea,input[type=text],input[type=email],input[type=password],input[type=date],input[type=datetime-local],input[type=tel],input[type=url],input[type=number],input[type=file]{min-height:47px;border-radius:17px!important;font-size:1rem;background:#fff!important;border-color:#d7eeed!important;}
  .btn,button.btn,a.btn,input[type=submit].btn{min-height:46px;border-radius:17px!important;font-size:.98rem;box-shadow:0 12px 24px rgba(0,167,167,.18)!important;}
  .actions{gap:8px;}
  .actions .btn{flex:1 1 auto;}
  .table{border:0!important;background:transparent!important;}
  .table thead{display:none;}
  .table tr{display:block;background:#fff;border:1px solid #ccefed;border-radius:22px;margin:0 0 10px;padding:10px;box-shadow:0 10px 24px rgba(17,24,39,.05);}
  .table td{display:flex;justify-content:space-between;gap:12px;border:0!important;padding:7px 4px!important;background:transparent!important;}
  .table td::before{content:attr(data-label);font-weight:900;color:#6b7280;flex:0 0 42%;}
  .app-bottom-nav{grid-template-columns:repeat(5,1fr)!important;background:#151515!important;border-radius:26px 26px 0 0!important;box-shadow:0 -16px 36px rgba(0,0,0,.24)!important;}
  .app-bottom-nav a{min-height:62px;border-radius:19px;color:#fff!important;opacity:.92;}
  .app-bottom-nav a:hover,.app-bottom-nav a:focus,.app-bottom-nav a.active{background:rgba(255,255,255,.12);opacity:1;}
  .app-nav-icon{font-size:1.35rem!important;}
  .app-drawer{border-radius:0 28px 28px 0;background:#fff;box-shadow:20px 0 60px rgba(17,24,39,.18);}
  .app-drawer a{border-radius:18px;font-size:1rem;min-height:46px;}
  .modal-box{border-radius:28px!important;padding:18px!important;width:min(94vw,760px);}
}


/* v1.2.37 Mobile Listen-UI-Fix */
@media (max-width:760px){
  /* Kalender: komplette Tageszelle wirkt klickbar */
  body.calendar-page .fc .fc-daygrid-day-frame{min-height:86px;cursor:pointer;}
  body.calendar-page .fc .fc-daygrid-day-events{min-height:18px;padding:0 6px 4px;}

  /* Terminliste: keine Überlappung von Datum und Text */
  .mobile-event-item{grid-template-columns:12px 86px minmax(0,1fr) 12px!important;gap:8px!important;align-items:center!important;width:100%!important;box-sizing:border-box!important;}
  .mobile-event-item .event-date{width:86px!important;overflow:hidden!important;}
  .mobile-event-item .event-date strong,
  .mobile-event-item .event-date small{display:block;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}
  .mobile-event-item .event-title{min-width:0!important;overflow:hidden!important;}
  .mobile-event-item .event-title strong,
  .mobile-event-item .event-title small{display:block;white-space:nowrap!important;overflow:hidden!important;text-overflow:ellipsis!important;}

  /* Tabellen in Admin/PWA als linksbündige Listen statt Kartenblöcke */
  .table-wrap, .responsive-table, .table-responsive{overflow-x:hidden!important;width:100%!important;}
  table.table{display:block!important;width:100%!important;border-collapse:collapse!important;background:#fff!important;border:0!important;box-shadow:none!important;}
  table.table tbody, table.table tr{display:block!important;width:100%!important;}
  table.table tr{border:0!important;border-bottom:1px solid #d7eeed!important;border-radius:0!important;margin:0!important;padding:9px 0!important;box-shadow:none!important;background:#fff!important;}
  table.table td{display:block!important;width:100%!important;text-align:left!important;border:0!important;padding:4px 2px!important;white-space:normal!important;overflow-wrap:anywhere!important;color:#111827!important;}
  table.table td:before{display:none!important;content:none!important;}
  table.table td .btn, table.table td a.btn, table.table td button.btn{min-height:34px!important;padding:7px 9px!important;border-radius:12px!important;font-size:.86rem!important;width:auto!important;display:inline-flex!important;margin:2px 3px 2px 0!important;}

  /* Generische App-Listen */
  .app-list-card{padding:14px!important;border-radius:24px!important;}
  .compact-list{display:block;width:100%;background:#fff;border-top:1px solid #d7eeed;}
  .admin-list-row{display:flex;align-items:center;justify-content:space-between;gap:8px;width:100%;padding:11px 0;border-bottom:1px solid #d7eeed;background:#fff;box-sizing:border-box;}
  .admin-list-main{display:grid;grid-template-columns:82px minmax(0,1fr);gap:8px;align-items:center;min-width:0;flex:1;color:#111827;text-decoration:none;}
  .admin-list-date{display:flex;flex-direction:column;gap:1px;color:#111827;min-width:0;}
  .admin-list-date strong{font-size:.9rem;white-space:nowrap;}
  .admin-list-date small{font-size:.78rem;color:#6b7280;font-weight:800;white-space:nowrap;}
  .admin-list-title{min-width:0;display:flex;flex-direction:column;gap:2px;}
  .admin-list-title strong{font-size:.96rem;color:#111827;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .admin-list-title small{font-size:.78rem;color:#6b7280;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
  .icon-actions{display:flex;align-items:center;gap:4px;flex:0 0 auto;}
  .icon-actions form{margin:0!important;padding:0!important;background:transparent!important;border:0!important;box-shadow:none!important;}
  .icon-btn{width:34px!important;height:34px!important;min-height:34px!important;padding:0!important;border-radius:12px!important;border:1px solid #d7eeed!important;background:#fff!important;color:#111827!important;display:inline-grid!important;place-items:center!important;text-decoration:none!important;font-size:1rem!important;box-shadow:none!important;}
  .icon-btn.danger{color:#b91c1c!important;background:#fff5f5!important;}

  /* Nachrichten-Protokoll, Mitglieder, Gruppen, Benutzer: flache Listenoptik */
  body.list-ui-page .card, body.admin-events-page .card, body.messages-page .card, body.members-page .card, body.groups-page .card, body.users-page .card{overflow:hidden!important;}
  .ajax-toolbar.toolbar{display:grid!important;grid-template-columns:1fr!important;gap:8px!important;align-items:start!important;}
  .ajax-toolbar.toolbar select,.ajax-toolbar.toolbar input{width:100%!important;}
  .actions.list-head{align-items:center!important;}
}
@media (min-width:761px){
  .admin-list-row{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid #e5e7eb}.admin-list-main{display:grid;grid-template-columns:120px minmax(0,1fr);gap:12px;align-items:center;color:#111827;text-decoration:none;flex:1}.admin-list-date{display:flex;flex-direction:column}.admin-list-date small{color:#6b7280}.admin-list-title{display:flex;flex-direction:column}.admin-list-title small{color:#6b7280}.icon-actions{display:flex;gap:6px}.icon-actions form{margin:0}.icon-btn{width:36px;height:36px;border-radius:12px;border:1px solid #e5e7eb;background:#fff;display:grid;place-items:center;text-decoration:none}
}


/* v1.2.38: einheitliche mobile Listen statt Karten/Blöcke */
.sortable-mobile-list,.admin-list.compact-list{width:100%;max-width:100%;overflow:hidden}.list-headline-row{display:grid;grid-template-columns:1.2fr 1.4fr 1.2fr .8fr auto;gap:8px;padding:8px 0;border-bottom:2px solid #e5e7eb;font-size:.78rem;font-weight:800;color:#6b7280;text-transform:uppercase}.member-list-row{min-width:0}.member-list-row .admin-list-main{min-width:0}.member-list-row .icon-actions{flex:0 0 auto}.list-price{white-space:nowrap;font-weight:800;color:#111827;margin-right:6px}.icon-btn.danger-icon{color:#b91c1c;border-color:#fecaca;background:#fff5f5}button.icon-btn{font:inherit;cursor:pointer}.members-page .card{overflow:hidden}.members-page .toolbar{display:flex;flex-wrap:wrap;gap:8px;align-items:end}.members-page .toolbar select{max-width:100%}
@media(max-width:760px){.list-headline-row{display:none}.admin-list-row{padding:12px 0!important;align-items:center!important}.admin-list-main{grid-template-columns:72px minmax(0,1fr)!important;gap:10px!important}.icon-actions{gap:4px!important}.icon-btn{width:34px!important;height:34px!important;border-radius:11px!important;font-size:.9rem}.list-price{display:none}.admin-list-title strong,.admin-list-title small{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.member-landing-actions .btn{border-radius:18px}.card{max-width:100%;overflow:hidden}}


/* v1.2.39: Listenlayout ohne Textüberlappung */
.admin-list.compact-list{display:block;width:100%;max-width:100%;overflow:visible}.admin-list-row{display:flex;align-items:center;gap:10px;width:100%;max-width:100%;border-bottom:1px solid #e5e7eb;padding:10px 0;box-sizing:border-box}.admin-list-main{display:grid;grid-template-columns:minmax(64px,90px) minmax(0,1fr);gap:10px;align-items:center;min-width:0;flex:1 1 auto;color:inherit;text-decoration:none}.admin-list-date,.admin-list-title{min-width:0;display:block}.admin-list-date strong,.admin-list-date small,.admin-list-title strong,.admin-list-title small{display:block;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.25}.admin-list-title small{color:#6b7280;margin-top:2px}.icon-actions{display:flex;gap:5px;align-items:center;justify-content:flex-end;flex:0 0 auto}.icon-btn{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid #e5e7eb;border-radius:10px;background:#fff;text-decoration:none;box-sizing:border-box}.danger-icon{color:#b91c1c}.assign-cell{flex:0 0 min(360px,42vw);min-width:0}.compact-assign{display:flex;align-items:center;gap:6px;min-width:0}.compact-assign select{min-width:0;flex:1 1 auto;max-width:100%}.list-headline-row{display:grid;grid-template-columns:1fr 1.2fr 1fr .9fr auto;gap:8px;padding:8px 0;border-bottom:2px solid #e5e7eb;font-size:.78rem;font-weight:800;color:#6b7280;text-transform:uppercase}.unassigned-head{grid-template-columns:1fr 1.2fr 1fr 1.1fr auto}.mobile-event-list{display:block;width:100%;max-width:100%;overflow:hidden}.mobile-event-item{display:grid;grid-template-columns:14px minmax(68px,84px) minmax(0,1fr) 20px;align-items:center;gap:8px;width:100%;max-width:100%;box-sizing:border-box;padding:11px 8px;border-bottom:1px solid #e5e7eb;text-decoration:none;color:inherit}.mobile-event-item .event-date,.mobile-event-item .event-title{min-width:0}.mobile-event-item .event-date strong,.mobile-event-item .event-date small,.mobile-event-item .event-title strong,.mobile-event-item .event-title small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;line-height:1.25}.mobile-event-item .event-title small,.mobile-event-item .event-date small{color:#6b7280}
@media(max-width:760px){.card{overflow:hidden}.list-headline-row{display:none!important}.admin-list-row{gap:8px;padding:12px 0}.admin-list-main{grid-template-columns:72px minmax(0,1fr)}.assign-cell{flex:1 1 100%;order:3;width:100%;max-width:100%}.unassigned-list-row{flex-wrap:wrap}.unassigned-list-row .icon-actions{margin-left:auto}.compact-assign{width:100%}.compact-assign select{font-size:.92rem}.compact-assign .btn{white-space:nowrap}.icon-btn{width:32px;height:32px;border-radius:10px;font-size:.88rem}.admin-list-date strong,.admin-list-date small,.admin-list-title strong,.admin-list-title small{white-space:normal;overflow-wrap:anywhere}.mobile-event-item{grid-template-columns:12px 72px minmax(0,1fr) 14px;padding:12px 2px}.mobile-event-item .event-title strong,.mobile-event-item .event-title small{white-space:normal;overflow-wrap:anywhere}.mobile-event-item .event-date strong,.mobile-event-item .event-date small{white-space:nowrap}}


/* v1.2.40: einheitliche mobile Listen mit Icon-Aktionen */
.unified-list{display:block;width:100%;max-width:100%;overflow:hidden;background:#fff;border-radius:16px;border:1px solid #e5e7eb}
.unified-row{display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;box-sizing:border-box;padding:10px 12px;border-bottom:1px solid #e5e7eb;text-decoration:none;color:#111827;background:#fff}
.unified-row:last-child{border-bottom:0}
.unified-main{display:grid;grid-template-columns:minmax(74px,110px) minmax(0,1fr);gap:10px;align-items:center;min-width:0;flex:1 1 auto}
.unified-date,.unified-title{min-width:0;line-height:1.25}.unified-date strong,.unified-date small,.unified-title strong,.unified-title small{display:block;min-width:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.unified-title small,.unified-date small{color:#6b7280;margin-top:2px}.unified-actions{display:flex;align-items:center;gap:5px;flex:0 0 auto}.unified-actions form{margin:0!important;padding:0!important;background:transparent!important;border:0!important;box-shadow:none!important}.icon-btn,.unified-actions .icon-btn{width:34px!important;height:34px!important;min-width:34px!important;min-height:34px!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;border:1px solid #e5e7eb!important;border-radius:11px!important;background:#fff!important;text-decoration:none!important;color:#111827!important;padding:0!important;font-size:.95rem!important;line-height:1!important;box-shadow:none!important}.icon-btn.danger,.danger-icon{color:#b91c1c!important;background:#fff5f5!important;border-color:#fecaca!important}.sort-row{display:flex;flex-wrap:wrap;gap:8px;margin:8px 0 12px}.sort-row a{font-size:.86rem;border:1px solid #e5e7eb;border-radius:999px;padding:7px 10px;text-decoration:none;color:#111827;background:#fff}.sort-row a.active{background:#111827;color:#fff;border-color:#111827}
@media(max-width:760px){.unified-row{padding:12px 8px;gap:8px}.unified-main{grid-template-columns:72px minmax(0,1fr);gap:9px}.unified-date strong,.unified-date small{white-space:nowrap}.unified-title strong,.unified-title small{white-space:normal;overflow-wrap:anywhere}.unified-actions{gap:4px}.icon-btn,.unified-actions .icon-btn{width:32px!important;height:32px!important;min-width:32px!important;min-height:32px!important;border-radius:10px!important;font-size:.86rem!important}.list-ui-page .card{overflow:hidden}.table{max-width:100%}}

/* v2.0.3: übersichtliches Menü mit Gruppen und Tanzschulinhaber-Dashboard */
.nav-section-label{margin:14px 8px 6px;color:#8a4850;text-transform:uppercase;letter-spacing:.08em;font-size:.72rem;font-weight:950}.nav-group{margin:6px 0;border:1px solid #d5eeee;border-radius:20px;background:#f4fbfb;overflow:hidden}.nav-group summary{cursor:pointer;list-style:none;padding:13px 14px;font-weight:950;color:#20242a;display:flex;align-items:center;justify-content:space-between}.nav-group summary::-webkit-details-marker{display:none}.nav-group summary:after{content:'▾';font-size:.85rem;color:#00a7a7;transition:transform .18s ease}.nav-group:not([open]) summary:after{transform:rotate(-90deg)}.app-drawer .nav-group a{margin:0 8px 7px 22px;width:calc(100% - 30px);background:#fff;border:1px solid rgba(240,217,220,.65);font-size:.95rem;min-height:40px;padding:10px 12px}.app-drawer .nav-group a:hover{background:#ecfbfb}.dashboard-hero{background:linear-gradient(135deg,#fff,#f3fbfb)}.dashboard-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin:18px 0}.metric-card{display:block;text-decoration:none;color:inherit;border:1px solid #d5eeee;border-radius:24px;padding:18px;background:#fff;box-shadow:0 14px 34px rgba(22,22,22,.06)}.metric-card strong{display:block;font-size:2rem;line-height:1;color:#00a7a7}.metric-card span{display:block;margin-top:7px;color:#4b5563;font-weight:850}.dashboard-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(300px,1fr));gap:16px;margin:18px 0}.dashboard-widget{min-height:220px}.widget-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:10px}.widget-head h2{margin:0}.compact-list{display:grid;gap:8px}.compact-row{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px 12px;border:1px solid #edf0f4;border-radius:16px;background:#fbfdff;text-decoration:none;color:inherit}.compact-row.warning{border-color:#fde68a;background:#fffbeb}.compact-row strong{display:block;color:#111827}.compact-row small{display:block;color:#6b7280;font-weight:750;margin-top:2px}.compact-row em{font-style:normal;color:#00a7a7;font-weight:900;font-size:.85rem;white-space:nowrap}.compact-row:hover{border-color:#c8e9e7;background:#f3fbfb}
@media (max-width:760px){.dashboard-grid{grid-template-columns:1fr}.dashboard-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.metric-card{padding:15px}.metric-card strong{font-size:1.65rem}.widget-head{align-items:flex-start}.compact-row{align-items:flex-start;flex-direction:column}.compact-row em{white-space:normal}}

/* Rollenmatrix v2.0.4 */
.role-cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;margin-top:14px}
.role-card{border:1px solid var(--border,#e5e7eb);border-radius:18px;padding:16px;background:linear-gradient(180deg,#fff,#f8fafc);box-shadow:0 10px 24px rgba(15,23,42,.06)}
.role-card h3{margin:.7rem 0 .35rem;font-size:1.05rem}.role-card p{margin:.2rem 0 .8rem;color:#475569}.role-card small{color:#64748b}
.role-badge{display:inline-flex;align-items:center;gap:6px;border-radius:999px;padding:4px 10px;font-size:.82rem;font-weight:700;line-height:1;border:1px solid transparent}
.role-danger{background:#fee2e2;color:#991b1b;border-color:#fecaca}.role-warning{background:#fef3c7;color:#92400e;border-color:#fde68a}.role-info{background:#d6f7f5;color:#17313d;border-color:#bcefeb}.role-success{background:#dcfce7;color:#166534;border-color:#bbf7d0}.role-secondary{background:#f1f5f9;color:#334155;border-color:#e2e8f0}
.table-scroll{overflow:auto;-webkit-overflow-scrolling:touch}.role-matrix-table th,.role-matrix-table td{vertical-align:top}.role-matrix-table th:not(:first-child),.role-matrix-table td:not(:first-child){min-width:150px}.perm-yes{color:#14532d;background:#f0fdf4}.perm-no{color:#7f1d1d;background:#fef2f2}.checklist-clean{margin:0;padding-left:1.2rem}.checklist-clean li{margin:.45rem 0}

/* v2.0.5 Anwesenheit */
.table-scroll{overflow:auto;width:100%;-webkit-overflow-scrolling:touch}.attendance-matrix th,.attendance-matrix td{text-align:center;white-space:nowrap}.attendance-matrix th:first-child,.attendance-matrix td:first-child{text-align:left;position:sticky;left:0;background:#fff;z-index:1}.attendance-matrix tr.attendance-warning td{background:#fff7ed}.attendance-matrix .att-yes{font-weight:900;color:#166534}.attendance-matrix .att-no{font-weight:900;color:#991b1b}.attendance-matrix .att-pending{font-weight:900;color:#854d0e}.badge.danger{display:inline-flex;margin-top:4px;border-radius:999px;padding:3px 8px;background:#fee2e2;color:#991b1b;font-size:.78rem;font-weight:900}.qr-checkin-card{text-align:center}.qr-box{display:inline-grid;place-items:center;background:#fff;border:1px solid #e5e7eb;border-radius:24px;padding:16px;margin:14px auto;box-shadow:0 18px 50px rgba(15,23,42,.08)}.qr-box img{display:block;max-width:100%;height:auto}.filter-bar{display:flex;gap:10px;flex-wrap:wrap;align-items:end}.filter-bar label{display:grid;gap:4px;font-weight:800}.dashboard-grid{grid-template-columns:repeat(auto-fit,minmax(170px,1fr))}


/* v2.0.9: mobiler Dateibereich */
.file-page-tabs{display:flex;gap:10px;flex-wrap:wrap;margin:12px auto;max-width:1120px}.file-page-tabs .btn{flex:1 1 220px;text-align:center}.file-page-tabs .active{background:#00a7a7;color:#fff!important}.file-start-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:16px;max-width:1120px;margin:14px auto}.file-start-card{display:flex;flex-direction:column;gap:10px;background:#fff;border:1px solid rgba(148,163,184,.25);border-radius:24px;padding:22px;text-decoration:none;color:#0f172a!important;box-shadow:0 14px 32px rgba(15,23,42,.10)}.file-start-card strong{font-size:1.25rem}.file-start-card small{color:#475569}.file-start-icon{font-size:42px}.file-upload-wizard{display:flex;flex-direction:column;gap:18px}.file-step{display:grid;grid-template-columns:46px 1fr;gap:14px;padding:16px;border:1px solid #e2e8f0;border-radius:22px;background:#f8fafc}.file-step h2{margin:.1rem 0 .25rem}.file-step-no{width:42px;height:42px;border-radius:999px;background:#00a7a7;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:1.25rem}.file-big-input{padding:18px;background:#fff;border:2px dashed #6edbd7}.file-check-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,1fr));gap:10px}.file-check{display:flex;align-items:center;gap:10px;padding:13px 14px;border:1px solid #cbd5e1;border-radius:16px;background:#fff;font-weight:800}.file-check input{width:20px;height:20px}.file-check.single{margin:12px 0}.form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.file-advanced{border:1px solid #e2e8f0;border-radius:20px;padding:14px;background:#fff}.file-advanced summary{cursor:pointer;font-weight:900}.file-upload-main{font-size:1.1rem;padding:15px 18px}.file-browser-toolbar h2{margin-top:0}.file-type-filter{display:flex;gap:8px;flex-wrap:wrap}.filter-pill{display:inline-flex;align-items:center;justify-content:center;gap:6px;border:1px solid #cbd5e1;border-radius:999px;padding:10px 14px;background:#fff;color:#0f172a!important;text-decoration:none;font-weight:900}.filter-pill.active{background:#00a7a7;color:#fff!important;border-color:#00a7a7}.file-retention-card{border-color:#fecaca}.inline-form{display:inline-flex;gap:6px;flex-wrap:wrap}@media(max-width:700px){.file-page-tabs{margin:10px 8px}.file-page-tabs .btn{flex:1 1 100%;padding:14px}.file-start-grid{grid-template-columns:1fr;margin:10px 8px}.file-start-card{border-radius:22px;padding:18px}.file-step{grid-template-columns:1fr;padding:14px}.file-step-no{width:38px;height:38px}.file-check-grid{grid-template-columns:1fr}.file-type-filter{display:grid;grid-template-columns:1fr 1fr;gap:8px}.filter-pill{padding:12px 8px}.file-upload-main{width:100%;padding:16px}.file-preview small{display:block;margin-top:6px}.file-actions{display:grid;grid-template-columns:1fr 1fr;width:100%}.file-actions .btn,.file-actions form,.file-actions button{width:100%;justify-content:center}.inline-form{display:grid;grid-template-columns:1fr 1fr;width:100%}}



/* v2.0.11 Online-Anmeldung */
.public-registration .wrap{max-width:980px;margin:0 auto;padding:18px}.public-form h2{margin-top:1.4rem}.choice-grid,.course-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}.choice-card,.course-card{display:block;border:1px solid var(--border,#d7dde7);border-radius:16px;padding:14px;background:#fff;box-shadow:0 2px 10px rgba(15,23,42,.05);cursor:pointer}.choice-card input,.course-card input{margin-right:8px}.choice-card strong,.course-card strong{display:block;margin-bottom:6px}.choice-card span,.course-card span{display:block;color:#64748b;font-size:.95rem;margin:2px 0}.choice-card:has(input:checked),.course-card:has(input:checked){border-color:#00a7a7;box-shadow:0 0 0 3px rgba(0,167,167,.12)}.soft-details{border:1px solid var(--border,#d7dde7);border-radius:14px;padding:10px 12px;background:#f8fafc}.checkline{display:flex;gap:10px;align-items:flex-start}.mobile-card-list{display:grid;gap:12px}.list-card{border:1px solid var(--border,#d7dde7);border-radius:16px;padding:14px;background:#fff}.list-card-head{display:flex;justify-content:space-between;gap:10px;align-items:center}.tabbar{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:14px}@media(max-width:700px){.choice-grid,.course-grid{grid-template-columns:1fr}.list-card .actions form{display:block!important;margin:6px 0}.list-card .actions .btn{width:100%}}


/* v2.0.13 Rollenmatrix / Testmodus */
.perm-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:10px;margin:14px 0}.perm-toggle{display:flex;align-items:center;gap:10px;border:1px solid #e5e7eb;border-radius:14px;padding:12px;background:#fff}.perm-toggle.on{border-color:#16a34a;background:#f0fdf4}.perm-toggle input{width:22px;height:22px}.perm-toggle span{font-weight:700}.perm-toggle small{margin-left:auto;color:#64748b}.impersonation-banner{display:flex;align-items:center;gap:10px;justify-content:space-between;flex-wrap:wrap}pre{white-space:pre-wrap;word-break:break-word;background:#f8fafc;border:1px solid #e5e7eb;border-radius:10px;padding:10px;max-height:220px;overflow:auto}.role-card{text-decoration:none;color:inherit}.notice.error{background:#fef2f2;border-color:#fecaca;color:#991b1b}.notice.warn{background:#fffbeb;border:1px solid #fde68a;color:#92400e}


/* v2.0.14 Tanzschul-spezifische Oberfläche */
.switchline{display:flex;gap:.55rem;align-items:center;padding:.75rem;border:1px solid #e5e7eb;border-radius:14px;background:#fff}
.trainer-group-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:14px}
.trainer-group-card{border:1px solid #e5e7eb;border-radius:18px;padding:16px;background:#fff;box-shadow:0 8px 20px rgba(15,23,42,.06)}
.trainer-group-card h3{margin:.1rem 0 .25rem}.mini-member-list{display:grid;gap:8px;margin-top:10px}.mini-member-list div{padding:9px;border-radius:12px;background:#f8fafc}.mini-member-list small{display:block;color:#64748b}.trainer-mobile-page .unified-actions{display:flex;gap:8px;flex-wrap:wrap}@media(max-width:720px){.trainer-mobile-page .unified-row{align-items:stretch}.trainer-mobile-page .unified-actions .btn{width:100%;justify-content:center}.trainer-group-card{padding:14px}.app-drawer .nav-group a{padding:.8rem 1rem}}


/* v2.0.16 Lizenzsystem */
.license-banner{display:flex;gap:.6rem;align-items:center;justify-content:space-between;flex-wrap:wrap}
textarea.input{width:100%;min-height:10rem;font-family:ui-monospace,SFMono-Regular,Consolas,monospace}
.btn.danger{background:#b91c1c;color:#fff;border-color:#991b1b}
code{background:#f1f5f9;border-radius:.4rem;padding:.1rem .35rem}
/* v2.0.18 Warteliste / Online-Zahlung */
.course-card.is-full{border-style:dashed;opacity:.92}.course-card .badge.warn{background:#fff3cd;color:#7a4a00}.course-card .badge.ok{background:#dcfce7;color:#166534}.payment-provider-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:12px}.payment-provider-grid .btn{width:100%;justify-content:center}

/* v2.0.25: Dashboard besser lesbar und mobilfreundlicher */
.dashboard-page .wrap.app-main{max-width:1280px}
.dashboard-page .dashboard-hero{display:flex;align-items:center;justify-content:space-between;gap:18px;padding:24px 26px;margin-bottom:16px}
.dashboard-page .dashboard-hero h1{font-size:1.9rem;line-height:1.12;margin:.15rem 0 .35rem}.dashboard-page .dashboard-hero .muted{max-width:760px}
.dashboard-page .dashboard-metrics{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;margin:16px 0 20px}.dashboard-page .metric-card{display:flex;align-items:center;gap:14px;min-height:86px;padding:18px 20px;border-radius:22px}.dashboard-page .metric-card strong{flex:0 0 auto;font-size:2.25rem;min-width:46px;text-align:center}.dashboard-page .metric-card span{margin:0;font-size:.98rem;line-height:1.25;color:#243044}
.dashboard-page .dashboard-grid{display:grid!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:18px;margin:18px 0 22px;align-items:start}.dashboard-page .dashboard-widget{min-height:0!important;padding:20px;border-radius:24px}.dashboard-page .dashboard-widget-wide{grid-column:1/-1}.dashboard-page .widget-head{border-bottom:1px solid #eef2f7;padding-bottom:10px;margin-bottom:12px}.dashboard-page .widget-head h2{font-size:1.18rem;line-height:1.2}.dashboard-page .widget-head .btn.small{white-space:nowrap}.dashboard-page .compact-list{display:grid;gap:10px;max-height:390px;overflow:auto;padding-right:4px}.dashboard-page .dashboard-widget-wide .compact-list{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));max-height:none;overflow:visible;padding-right:0}.dashboard-page .compact-row{min-width:0;align-items:flex-start;border-radius:18px;padding:13px 14px;background:#fff}.dashboard-page .compact-row span{min-width:0;max-width:100%}.dashboard-page .compact-row strong{font-size:1rem;line-height:1.25;white-space:normal;overflow-wrap:anywhere}.dashboard-page .compact-row small{font-size:.86rem;line-height:1.35;white-space:normal;overflow-wrap:anywhere}.dashboard-page .compact-row em{flex:0 0 auto;max-width:160px;text-align:right;white-space:normal;line-height:1.25}.dashboard-page .dashboard-widget-files .compact-row em{font-size:.78rem}.dashboard-page .dashboard-bottom-card{margin-top:18px}.dashboard-page .upcoming-list{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:10px}
@media(max-width:980px){.dashboard-page .dashboard-grid{grid-template-columns:1fr!important}.dashboard-page .dashboard-metrics{grid-template-columns:repeat(2,minmax(0,1fr))}.dashboard-page .dashboard-hero{align-items:flex-start;flex-direction:column}.dashboard-page .dashboard-hero .home-actions{width:100%}.dashboard-page .dashboard-hero .home-actions .btn{flex:1 1 220px}.dashboard-page .compact-list{max-height:none;overflow:visible}}
@media(max-width:560px){.dashboard-page .wrap.app-main{padding:0 10px}.dashboard-page .dashboard-hero{padding:20px 16px;border-radius:22px}.dashboard-page .dashboard-hero h1{font-size:1.55rem}.dashboard-page .dashboard-metrics{grid-template-columns:1fr;gap:10px}.dashboard-page .metric-card{min-height:72px;padding:15px 16px}.dashboard-page .metric-card strong{font-size:2rem}.dashboard-page .dashboard-widget{padding:16px;border-radius:22px}.dashboard-page .widget-head{align-items:flex-start;gap:8px}.dashboard-page .compact-row{gap:8px}.dashboard-page .compact-row em{text-align:left;max-width:100%}.dashboard-page .dashboard-widget-wide .compact-list,.dashboard-page .upcoming-list{grid-template-columns:1fr}}


/* v2.0.30 DancePilot Branding */
:root{
  --brand:#00a7a7;
  --brand-2:#13c2bd;
  --brand-dark:#17313d;
  --accent:#19c2bd;
  --bg:#f4fbfb;
  --bg-2:#f8fcfc;
  --border:#d7eeed;
  --border-strong:#a9ddda;
  --app-red:#00a7a7;
  --app-red-2:#13c2bd;
  --app-ink:#172633;
  --app-cream:#f4fbfb;
  --app-soft:#eef8f8;
  --app-line:#d7eeed;
  --app-tab:#172633;
}
body.app-shell{background:linear-gradient(180deg,#f6fcfc 0%,#eef8f8 48%,#f8fcfc 100%);}
.app-topbar{border-bottom-color:rgba(0,167,167,.14)!important;box-shadow:0 8px 24px rgba(23,38,51,.06)!important;}
.app-menu-btn{box-shadow:0 8px 22px rgba(0,167,167,.16)!important;}
.app-brand span{color:#172633;letter-spacing:-.01em;}
.app-brand img.brand-logo{box-shadow:0 8px 20px rgba(0,167,167,.14)!important;}
.server-time{background:#f0fbfb!important;border-color:#ccefed!important;color:#17424a!important;}
.app-card.hero,.dashboard-hero,.home-page .app-home-hero{background:linear-gradient(135deg,#ffffff 0%,#f1fbfb 58%,#ecf8f8 100%)!important;border-color:#ccefed!important;}
.home-kicker,.event-kicker,.app-kicker{color:#00a7a7!important;}
.btn,.button,button.btn,a.btn,.fc .fc-button-primary{background:linear-gradient(135deg,#00a7a7,#17313d)!important;border-color:#00a7a7!important;box-shadow:0 10px 24px rgba(0,167,167,.20)!important;}
.btn.secondary,.btn.ghost{background:#fff!important;color:#007d82!important;border:1px solid #a9ddda!important;box-shadow:none!important;}
.nav-badge,.status-badge.primary{background:#00a7a7!important;color:#fff!important;}
.app-drawer a:hover,.app-drawer .drawer-install:hover{background:#ecfbfb!important;color:#007d82!important;}
a{color:#007d82;}
.card,.panel,.box,form,.table-wrap,.app-card,.dashboard-widget{border-color:#d7eeed!important;}
input.input,select.input,textarea.input,.input{border-color:#c8e2e1!important;}
.filter-pill.active,.file-step-no,.file-page-tabs .active{background:#00a7a7!important;border-color:#00a7a7!important;color:#fff!important;}
.app-bottom-nav{background:#172633!important;}
.login-school-logo{max-width:320px;width:100%;height:auto;object-fit:contain;}
.login-logo-box{margin-bottom:12px;text-align:center;}

/* Shared navigation: visible desktop navigation and accessible mobile drawer. */
[hidden]{display:none!important}
.skip-link{position:fixed;left:12px;top:-100px;z-index:200;background:#fff;color:#173344;padding:12px 18px;border:2px solid #007d82;border-radius:8px}
.skip-link:focus{top:10px}
.app-drawer .drawer-close{display:block;margin-left:auto;border:1px solid #b6d9db;border-radius:10px;background:#fff;color:#173344;width:44px;height:44px;cursor:pointer}
.nav-search-label{display:block;font-weight:700;margin:14px 4px 6px}
.app-drawer .nav-search{width:100%;margin-bottom:12px}
.app-drawer a[aria-current=page]{background:#d9f3f1!important;color:#005b60!important;border-left:4px solid #007d82;border-radius:8px}
.app-drawer .nav-group summary{min-height:44px;display:list-item;cursor:pointer;padding:12px 8px;font-weight:800}
.app-drawer .nav-group a{font-size:.9rem;padding:10px 12px;margin:2px 0;min-height:44px;box-sizing:border-box}
.page-context{font-size:.85rem;color:#506274;margin:0 0 16px}
.page-context a{color:#006b70}
body.menu-open{overflow:hidden}
.app-bottom-nav button{border:0;background:transparent;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;color:#fff;font:inherit;font-size:.72rem;font-weight:800;min-height:60px;cursor:pointer;border-radius:14px}
.app-bottom-nav [aria-current=page]{background:rgba(255,255,255,.16);outline:1px solid rgba(255,255,255,.3)}
:where(a,button,input,select,textarea,summary):focus-visible{outline:3px solid #087f87;outline-offset:3px}
@media(min-width:1200px){
  .app-shell .app-drawer{transform:none;width:264px;top:var(--dp-topbar-height,76px);bottom:0;border-radius:0;box-shadow:none;border-right:1px solid #d5e7e8;padding:12px;z-index:70}
  .app-shell .drawer-head{padding:4px 0 12px}.app-shell .drawer-head img{width:40px;height:40px}
  .app-shell .app-menu-btn,.app-shell .drawer-close{display:none}
  .app-shell .wrap.app-main{margin:24px 24px 40px 312px;max-width:none;min-width:0;padding:0 12px}
  .app-shell .table-wrap{max-width:100%;overflow:auto}
}
@media(max-width:1199px){.app-drawer{max-width:360px}.app-drawer .nav-group summary{padding-top:14px;padding-bottom:14px}}
@media(prefers-reduced-motion:reduce){.app-drawer{transition:none}}
.push-help-panel details.push-card{padding:12px 16px;margin-bottom:12px;border-radius:12px;box-shadow:none}
.push-help-panel details.push-card>summary{cursor:pointer;font-weight:700;min-height:28px}

/* 2.0.33: course punch cards */
.cards-form-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:1rem;align-items:end}.cards-form-grid label,.cards-page details label{display:block;margin:.7rem 0 .3rem}.cards-metrics{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:1rem;margin:1rem 0}.cards-metrics>div{padding:1rem;background:var(--surface-alt,#f1f8f8);border-radius:12px}.cards-metrics strong{display:block;font-size:1.45rem}.cards-metrics span{display:block}.cards-list{display:grid;gap:1rem;margin-top:1rem}.cards-row{display:flex;gap:1.25rem;align-items:center;justify-content:space-between;padding:1rem;border:1px solid #d6e4e4;border-radius:12px;flex-wrap:wrap}.cards-row p{margin:.3rem 0}.cards-page details{margin:1rem 0;padding:1rem;border:1px solid #d6e4e4;border-radius:12px}.cards-page summary{cursor:pointer;font-weight:700}.presence-note{display:block;margin:.3rem 0;font-size:.85rem}.cards-page input,.cards-page select,.cards-page textarea{max-width:100%}@media(max-width:600px){.cards-row{display:grid;grid-template-columns:1fr}.cards-row .btn{width:100%}.cards-form-grid{grid-template-columns:1fr}}@media print{.cards-page .app-drawer,.cards-page .app-header,.cards-page .mobile-nav,.cards-page button,.cards-page details,.cards-page form{display:none!important}.cards-page .wrap{margin:0!important;padding:0!important}.cards-page .mobile-scroll{overflow:visible}}
/* v2.0.33: actual attendance must remain visible and tappable after scrolling. */
.app-response-body .app-card.hero,.app-response-body .app-card.hero h1,.app-response-body .app-card.hero p,.app-response-body .app-card.hero .app-kicker,.app-response-body .app-card.hero .muted{color:#173344!important;text-shadow:none}
.attendance-admin-app .sticky-hero{position:static;margin-left:0;margin-right:0;border-radius:24px}
.attendance-admin-app .attendance-legend,.attendance-admin-app .attendance-legend span{color:#173344!important}
.attendance-admin-app .attendance-legend span{background:#e4f3f3;border-color:#bad9dc}
#attendanceSaveStatus:not(:empty){padding:12px;margin-bottom:12px;border:1px solid #b8d8db;border-radius:12px;background:#f0fafa;color:#173344;font-weight:700}
/* Offline work and visible synchronisation state. */
.offline-banner{padding:12px 16px;margin:12px 0;border:1px solid #b99126;border-radius:12px;background:#fff7da;color:#493600;font-weight:700;overflow-wrap:anywhere}
.offline-pages{display:flex;gap:10px;flex-wrap:wrap}.offline-operation{margin:16px 0;padding:16px;border:1px solid #c9dcdf;border-radius:16px;background:#f8fcfc}.offline-operation h3{margin-top:0}.offline-operation button{margin:8px 8px 0 0}.offline-operation p{overflow-wrap:anywhere}.offline-operation details{max-height:320px;overflow:auto}.offline-page .card>button{margin:6px 8px 6px 0}
@media(max-width:600px){.offline-pages{display:grid;grid-template-columns:1fr}.offline-pages a,.offline-operation button{width:100%}}

.offline-review-action{outline:3px solid #b45309;outline-offset:3px}
