/* ===================== Hausschrift (Securitas Pro Office) ===================== */
@font-face { font-family:"Securitas Pro Office"; src:url("/fonts/SecuritasProOffice-Light.ttf") format("truetype"); font-weight:300; font-style:normal; font-display:swap; }
@font-face { font-family:"Securitas Pro Office"; src:url("/fonts/SecuritasProOffice-LightItalic.ttf") format("truetype"); font-weight:300; font-style:italic; font-display:swap; }
@font-face { font-family:"Securitas Pro Office"; src:url("/fonts/SecuritasProOffice-Regular.ttf") format("truetype"); font-weight:400; font-style:normal; font-display:swap; }
@font-face { font-family:"Securitas Pro Office"; src:url("/fonts/SecuritasProOffice-RegularItalic.ttf") format("truetype"); font-weight:400; font-style:italic; font-display:swap; }
@font-face { font-family:"Securitas Pro Office"; src:url("/fonts/SecuritasProOffice-Bold.ttf") format("truetype"); font-weight:700; font-style:normal; font-display:swap; }
@font-face { font-family:"Securitas Pro Office"; src:url("/fonts/SecuritasProOffice-BoldItalic.ttf") format("truetype"); font-weight:700; font-style:italic; font-display:swap; }

:root {
  /* Corporate Identity (SEC) – exakte Markenfarben */
  --blue: #8d5fff;        /* SEC Purple – Akzent (Buttons, Links, aktive Elemente) */
  --blue-dark: #56419e;   /* SEC Mid Purple – Akzent dunkler (Hover) */
  --purple-light: #c1b4fc;/* SEC Light Purple */
  --purple-dark: #28234c; /* SEC Dark Purple */
  --navy: #052033;        /* SEC Navy Blue – Markenfläche dunkel (Kopfleiste, dunkle Sektionen) */
  --navy-deep: #041824;   /* sehr dunkel (Footer) */
  --midblue: #42638c;     /* SEC Mid Blue */
  --bg: #f2f3f6;
  --card: #ffffff;
  --text: #052033;
  --muted: #53565b;       /* SEC Dark Grey */
  --border: #e3e3e6;
  --green: #16a34a;
  --red: #fd273f;         /* SEC Red */
  --red-dark: #ab1834;    /* SEC Mid Red */
  --amber: #d97706;
}
* { box-sizing: border-box; margin: 0; padding: 0; }
body {
  font-family: "Securitas Pro Office", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif;
  background: var(--bg);
  color: var(--text);
  line-height: 1.5;
}
.topbar {
  background: var(--navy);
  color: #fff;
  border-bottom: 1px solid rgba(255,255,255,.08);
  padding: 0 24px;
  display: flex;
  align-items: center;
  gap: 32px;
  position: sticky;
  top: 0;
  z-index: 10;
}
.brand { display: flex; flex-direction: column; align-items: center; gap: 4px; padding: 9px 0; line-height: 1; }
.brand-logo { height: 13px; width: auto; display: block; }
.brand-name { font-size: 16px; font-weight: 700; color: #fff; }
.std-switch { background: rgba(255,255,255,.12); color: #fff; border: 1px solid rgba(255,255,255,.25); border-radius: 8px; padding: 6px 9px; font-size: 13px; margin-right: 10px; font-family: inherit; }
.std-switch option { color: #0c1640; }
.tabs { display: flex; flex-wrap: wrap; gap: 10px; align-items: center; }
.tab, .navbtn {
  background: none; border: none; padding: 16px 13px;
  font-size: 14px; cursor: pointer; color: rgba(255,255,255,.72);
  border-bottom: 3px solid transparent; font-weight: 500; font-family: inherit;
  white-space: nowrap;
}
.tab:hover, .navbtn:hover { color: #fff; }
.tab.active, .navbtn.active { color: #fff; border-bottom-color: var(--blue); }
/* Dropdown-Gruppen */
.navgroup { position: relative; display: inline-flex; }
.navmenu {
  display: none; position: absolute; top: 100%; left: 0; z-index: 60;
  min-width: 190px; flex-direction: column; padding: 6px;
  background: var(--card); border: 1px solid var(--border); border-radius: 10px;
  box-shadow: 0 12px 30px rgba(0,0,0,.28);
}
.navgroup.open .navmenu { display: flex; }
.navmenu .tab {
  display: block; width: 100%; text-align: left; padding: 9px 12px;
  border-bottom: none; border-radius: 7px; color: var(--text); font-size: 14px;
}
.navmenu .tab:hover { color: var(--text); background: var(--bg); }
.navmenu .tab.active { color: var(--blue); background: var(--bg); border-bottom: none; }
.topbar .userbox .uname { color: #fff; }
.topbar .userbox .urole { color: rgba(255,255,255,.6); }
.topbar .theme-toggle { color: #fff; }
.topbar .btn-ghost { background: rgba(255,255,255,.12); color: #fff; }
.topbar .btn-ghost:hover { background: rgba(255,255,255,.22); }

main { max-width: 1080px; margin: 0 auto; padding: 30px 28px; transition: max-width .18s ease; }
body.breit main { max-width: 1750px; }
.topbar .width-toggle { color: #fff; font-size: 17px; }

h1 { font-size: 24px; margin-bottom: 4px; }
.subtitle { color: var(--muted); margin-bottom: 20px; }

.row-between { display: flex; justify-content: space-between; align-items: center; margin-bottom: 18px; }

.btn {
  background: var(--blue); color: #fff; border: none;
  padding: 9px 16px; border-radius: 8px; font-size: 14px;
  cursor: pointer; font-weight: 600;
}
.btn:hover { background: var(--blue-dark); }
.btn-sm { padding: 5px 10px; font-size: 13px; border-radius: 6px; }
.btn-ghost { background: #f0ebff; color: var(--blue-dark); }
.btn-ghost:hover { background: #e4dcff; }
.btn-danger { background: #ffe9ec; color: var(--red-dark); }
.btn-danger:hover { background: #ffd6dc; }

.cards { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px,1fr)); gap: 16px; margin-bottom: 28px; }
.stat {
  background: var(--card); border: 1px solid var(--border);
  border-radius: 12px; padding: 18px;
}
.stat .label { color: var(--muted); font-size: 13px; }
.stat .value { font-size: 28px; font-weight: 700; margin-top: 4px; }
.stat-link { cursor: pointer; transition: border-color .12s, box-shadow .12s, transform .12s; }
.stat-link:hover { border-color: var(--blue); box-shadow: 0 2px 10px rgba(0,0,0,.08); transform: translateY(-1px); }

.card {
  background: var(--card); border: 1px solid var(--border);
  border-radius: 12px; padding: 0; overflow: hidden; margin-bottom: 20px;
}
.card-title { padding: 14px 18px; font-weight: 600; border-bottom: 1px solid var(--border); }

table { width: 100%; border-collapse: collapse; }
th, td { text-align: left; padding: 11px 18px; font-size: 14px; }
th { color: var(--muted); font-weight: 600; font-size: 12px; text-transform: uppercase; letter-spacing: .03em; background: #f2f3f6; }
tr { border-top: 1px solid var(--border); }
tbody tr:hover { background: #f5f4fb; }
td .actions { display: flex; gap: 6px; flex-wrap: wrap; }

.badge {
  display: inline-block; padding: 3px 9px; border-radius: 99px;
  font-size: 12px; font-weight: 700; color: #fff; text-align: center; background: #64748b;
}
/* Kräftige, satte Badge-Farben mit weißem Text – gut lesbar in Hell- UND Dunkelmodus */
.badge.geplant { background: #6d28d9; }
.badge.laufend { background: #15803d; }
.badge.abgeschlossen { background: #475569; }
.badge.abgesagt { background: #dc2626; }
.badge.angemeldet { background: #6d28d9; }
.badge.bestaetigt { background: #15803d; }
.badge.storniert { background: #dc2626; }
.badge.teilgenommen { background: #7c3aed; }

.bar { height: 7px; background: var(--border); border-radius: 99px; overflow: hidden; width: 120px; }
.bar > span { display: block; height: 100%; background: var(--blue); }

.empty { padding: 40px; text-align: center; color: var(--muted); }

/* Forms */
.field { margin-bottom: 14px; }
.field label { display: block; font-size: 13px; font-weight: 600; margin-bottom: 5px; }
.field input, .field select, .field textarea {
  width: 100%; padding: 9px 11px; border: 1px solid var(--border);
  border-radius: 8px; font-size: 14px; font-family: inherit;
}
.field input:focus, .field select:focus, .field textarea:focus {
  outline: none; border-color: var(--blue);
}
.grid2 { display: grid; grid-template-columns: 1fr 1fr; gap: 14px; }
.form-actions { display: flex; justify-content: flex-end; gap: 10px; margin-top: 20px; }

/* Modal */
.modal-overlay {
  position: fixed; inset: 0; background: rgba(15,23,42,.45);
  display: flex; align-items: flex-start; justify-content: center;
  padding: 40px 16px; z-index: 50; overflow-y: auto;
}
.modal {
  background: #fff; border-radius: 14px; width: 100%; max-width: 560px;
  box-shadow: 0 20px 60px rgba(0,0,0,.2);
}
.modal-head { display: flex; justify-content: space-between; align-items: center; padding: 18px 22px; border-bottom: 1px solid var(--border); }
.modal-head h3 { font-size: 18px; }
.modal-body { padding: 22px; }
.icon-btn { background: none; border: none; font-size: 18px; cursor: pointer; color: var(--muted); }
.hidden { display: none !important; }

.toast {
  position: fixed; bottom: 24px; left: 50%; transform: translateX(-50%);
  background: var(--text); color: #fff; padding: 12px 20px;
  border-radius: 10px; font-size: 14px; z-index: 100;
  box-shadow: 0 10px 30px rgba(0,0,0,.25);
}
.toast.error { background: var(--red); }

.termin-list { list-style: none; }
.termin-list li { display: flex; justify-content: space-between; align-items: center; padding: 6px 0; font-size: 14px; border-bottom: 1px solid var(--border); }
.muted { color: var(--muted); }
.detail-grid { display: grid; grid-template-columns: 140px 1fr; gap: 6px 14px; font-size: 14px; margin-bottom: 16px; }
.detail-grid .k { color: var(--muted); }
.section-h { font-weight: 600; margin: 18px 0 8px; }
.inline-add { display: flex; gap: 8px; margin-bottom: 12px; flex-wrap: wrap; }
.inline-add select, .inline-add input { padding: 8px 10px; border: 1px solid var(--border); border-radius: 8px; }

/* ---- v2 Ergänzungen ---- */
.modal.wide { max-width: 860px; }
.badge.intern { background:#b45309; }
.badge.extern { background:#4338ca; }
.badge.warteliste { background:#c2410c; }
.badge.abgebrochen { background:#dc2626; }
.badge.anwesend { background:#15803d; }
.badge.krank { background:#c2410c; }
.badge.entschuldigt { background:#1d4ed8; }
.badge.unentschuldigt { background:#dc2626; }
.badge.warn { background:#d97706; }
.badge.ok { background:#15803d; }

.subtabs { display:flex; gap:4px; border-bottom:1px solid var(--border); margin-bottom:16px; flex-wrap:wrap; }
.subtab { background:none; border:none; padding:9px 13px; cursor:pointer; color:var(--muted); border-bottom:2px solid transparent; font-size:14px; font-weight:500; }
.subtab.active { color:var(--blue); border-bottom-color:var(--blue); }
.subpane { display:none; }
.subpane.active { display:block; }

.aw-grid { overflow-x:auto; }
.aw-grid table { font-size:13px; }
.aw-grid td.namecol { white-space:nowrap; font-weight:600; }
.aw-grid select { padding:3px 5px; border:1px solid var(--border); border-radius:6px; font-size:12px; }
.aw-cell-anwesend { background:#f0fdf4; }
.aw-cell-unentschuldigt { background:#fef2f2; }
.aw-cell-krank, .aw-cell-entschuldigt { background:#fffbeb; }

.akte-section { border:1px solid var(--border); border-radius:10px; padding:14px; margin-bottom:14px; }
.akte-section h4 { margin-bottom:10px; font-size:15px; display:flex; justify-content:space-between; align-items:center; }
.pill { font-size:12px; padding:2px 8px; border-radius:99px; background:#f1f5f9; color:var(--muted); }
.warnbox { background:#fef2f2; border:1px solid #fecaca; color:#991b1b; padding:10px 14px; border-radius:10px; margin-bottom:14px; font-size:14px; }
.warnbox a { color:#991b1b; font-weight:600; text-decoration:underline; }
.warnbox-link { cursor:pointer; transition:filter .12s; }
.warnbox-link:hover { filter:brightness(0.97); }
[data-theme="dark"] .warnbox a { color:#fecaca; }
/* dezente Variante der Warnbox (weit entfernte / unkritische Hinweise) */
.warnbox.soft { background:#f3f4f6; border-color:#e5e7eb; color:#4b5563; }
.warnbox.soft a { color:#374151; }
[data-theme="dark"] .warnbox.soft { background:rgba(148,163,184,.12); border-color:rgba(148,163,184,.35); color:#cbd5e1; }
[data-theme="dark"] .warnbox.soft a { color:#e2e8f0; }
/* Dozenten-Lücken-Badges: kritisch (rot) vs. weit entfernt (dezent) */
.badge.badge-doz-krit { background:#dc2626; color:#fff; }
.badge.badge-doz-fern { background:#e5e7eb; color:#4b5563; }
[data-theme="dark"] .badge.badge-doz-fern { background:#374151; color:#d1d5db; }
/* Vakanz-Wizard */
.tagchip.sel { background:var(--blue); color:#fff; border-color:var(--blue); }
.vak-semlist { max-height:320px; overflow:auto; margin-top:8px; }
.vak-semrow { display:flex; justify-content:space-between; align-items:center; gap:10px; padding:10px 12px; border:1px solid var(--border); border-radius:8px; margin-bottom:6px; cursor:pointer; transition:border-color .12s, background .12s; }
.vak-semrow:hover { border-color:var(--blue); background:rgba(37,99,235,.05); }
.vak-unpassend { opacity:.5; }
.sammel-bar { display:flex; align-items:center; gap:8px; flex-wrap:wrap; padding:7px 10px; margin:8px 0; background:var(--card); border:1px solid var(--border); border-radius:8px; font-size:13px; }
/* Globale Suche */
.global-search { position:relative; margin:0 6px; }
.global-search input { width:180px; padding:7px 12px; border-radius:8px; border:1px solid var(--border); background:var(--card); color:var(--text); font-size:14px; }
.gsuche-res { position:absolute; top:112%; right:0; width:340px; max-height:64vh; overflow:auto; background:var(--card); border:1px solid var(--border); border-radius:10px; box-shadow:0 8px 24px rgba(0,0,0,.16); z-index:60; }
.gsuche-res.hidden { display:none; }
.gs-grp { font-size:11px; text-transform:uppercase; letter-spacing:.05em; color:var(--muted); padding:8px 12px 4px; border-top:1px solid var(--border); }
.gs-grp:first-child { border-top:none; }
.gs-item { padding:8px 12px; cursor:pointer; font-size:14px; }
.gs-item:hover { background:rgba(141,95,255,.10); }
.checkrow { display:flex; align-items:center; gap:8px; font-size:14px; }
small.hint { color:var(--muted); font-size:12px; }

/* ---- Auth / Login (F-RB) ---- */
.userbox { margin-left:auto; display:flex; align-items:center; gap:10px; font-size:14px; }
.userbox .uname { font-weight:600; }
.userbox .urole { font-size:12px; color:var(--muted); }
.login-wrap { max-width:380px; margin:8vh auto; }
.login-card { background:var(--card); border:1px solid var(--border); border-radius:14px; padding:28px; box-shadow:0 10px 40px rgba(0,0,0,.06); }
.login-card h2 { margin-bottom:4px; }
.login-card .subtitle { margin-bottom:20px; }
.login-logo { font-size:34px; text-align:center; margin-bottom:8px; }
.link-btn { background:none; border:none; color:var(--blue); cursor:pointer; font-size:13px; padding:0; }
.hidden-tab { display:none !important; }

/* ---- Teilnehmer-Suche (Anmeldungen) ---- */
.tn-search { position:relative; min-width:260px; }
.tn-search input { width:100%; padding:8px 10px; border:1px solid var(--border); border-radius:8px; }
.tn-results { position:absolute; z-index:30; left:0; right:0; background:#fff; border:1px solid var(--border); border-radius:8px; margin-top:2px; box-shadow:0 8px 24px rgba(0,0,0,.12); max-height:240px; overflow-y:auto; }
.tn-res-item { padding:8px 11px; cursor:pointer; font-size:14px; }
.tn-res-item:hover { background:#eef2ff; }

/* ---- Monatskalender (Outlook-Stil) ---- */
.viewtoggle { display:inline-flex; border:1px solid var(--border); border-radius:8px; overflow:hidden; }
.viewtoggle button { background:#fff; border:none; padding:7px 12px; font-size:13px; cursor:pointer; color:var(--muted); }
.viewtoggle button.active { background:var(--blue); color:#fff; }
.cal-head { display:flex; align-items:center; justify-content:center; gap:12px; margin:4px 0 12px; }
.cal-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:4px; }
.cal-wd { font-size:12px; font-weight:600; color:var(--muted); text-align:center; padding:4px 0; }
.cal-cell { min-height:96px; border:1px solid var(--border); border-radius:8px; padding:4px; background:#fff; overflow:hidden; }
.cal-out { background:#f8fafc; border:1px solid transparent; }
.cal-today { border-color:var(--blue); box-shadow:0 0 0 1px var(--blue) inset; }
.cal-daynum { font-size:12px; color:var(--muted); font-weight:600; margin-bottom:3px; }
.cal-ev { font-size:11px; background:#ece8ff; color:var(--blue-dark); border-radius:4px; padding:2px 5px; margin-bottom:2px; cursor:pointer; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cal-ev:hover { background:#ddd5ff; }
.cal-konflikt { background:#fee2e2; color:#991b1b; }
.cal-more { font-size:11px; color:var(--muted); padding-left:3px; }

/* ===================== Rollen-Vorschau-Banner ===================== */
#viewas-banner { background:var(--amber); color:#fff; padding:9px 16px; text-align:center; font-size:14px; display:flex; align-items:center; justify-content:center; gap:12px; flex-wrap:wrap; }
#viewas-banner button { background:#fff; color:var(--amber); border:none; padding:5px 12px; border-radius:7px; font-weight:600; cursor:pointer; font-size:13px; }
#viewas-banner button:hover { background:#fff7ed; }

/* ===================== Tags ===================== */
.tagchip { display:inline-block; background:#f0ebff; color:var(--blue-dark); border:1px solid var(--border); border-radius:99px; padding:3px 10px; font-size:13px; margin:2px; cursor:pointer; }
.tagchip.sm { cursor:default; background:#eef0f3; color:var(--muted); font-size:12px; padding:2px 8px; }
.tagchip.on { background:var(--blue); color:#fff; border-color:var(--blue); }
.tagchip a { color:inherit; text-decoration:none; font-weight:700; margin-left:4px; }
.tagcloud { display:flex; flex-wrap:wrap; gap:4px; }
.tagbox { display:flex; flex-wrap:wrap; gap:4px; margin-bottom:6px; min-height:30px; }
[data-theme="dark"] .tagchip { background:rgba(141,95,255,.18); color:#c1b4fc; }
[data-theme="dark"] .tagchip.sm { background:#243145; color:var(--muted); }
[data-theme="dark"] .tagchip.on { background:var(--blue); color:#fff; }

/* ===================== Seminar-Kacheln ===================== */
.tilegrid { display:grid; grid-template-columns:repeat(auto-fill, minmax(300px,1fr)); gap:16px; }
.tile { background:var(--card); border:1px solid var(--border); border-radius:14px; padding:16px; display:flex; flex-direction:column; transition:box-shadow .15s, border-color .15s; }
.tile:hover { box-shadow:0 6px 24px rgba(0,0,0,.07); border-color:var(--purple-light); }
.tile .kat { font-size:12px; font-weight:600; color:var(--blue); text-transform:uppercase; letter-spacing:.04em; }
.tile h3 { font-size:17px; margin:4px 0 8px; }
.tile h3 a { color:var(--text); text-decoration:none; }
.tile h3 a:hover { color:var(--blue); }
.tile .meta { display:flex; flex-wrap:wrap; gap:6px; margin:4px 0; }
.tile-foot { margin-top:auto; padding-top:12px; border-top:1px solid var(--border); display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:8px; }
.tile-toggle { margin-left:auto; background:none; border:1px solid var(--border); color:var(--muted); border-radius:8px; width:32px; height:26px; cursor:pointer; font-size:12px; line-height:1; display:flex; align-items:center; justify-content:center; transition:transform .15s, color .15s, border-color .15s; }
.tile-toggle:hover { color:var(--blue); border-color:var(--blue); }
.tile-toggle.open { transform:rotate(180deg); color:var(--blue); border-color:var(--blue); }
.tile-actions { display:none; flex-basis:100%; flex-direction:column; gap:6px; margin-top:8px; }
.tile-actions.show { display:flex; }
.tile-actions .btn { width:100%; justify-content:center; text-align:center; }
/* Dokumentenvorschau (Inline-Overlay) */
.preview-overlay { position:fixed; inset:0; background:rgba(0,0,0,.55); z-index:9000; display:flex; align-items:center; justify-content:center; padding:24px; }
.preview-box { background:var(--card); border-radius:14px; width:min(1050px,96vw); height:90vh; display:flex; flex-direction:column; overflow:hidden; box-shadow:0 20px 60px rgba(0,0,0,.45); }
.preview-head { display:flex; align-items:center; gap:10px; padding:12px 16px; border-bottom:1px solid var(--border); }

/* ===================== Anwesenheitsliste (Kiosk) ===================== */
.grid3 { display: grid; grid-template-columns: 1fr 1fr 1fr; gap: 14px; }
.btn-xs { padding: 3px 8px; font-size: 12px; border-radius: 6px; }
.abl-tab { width:100%; border-collapse:collapse; }
.abl-tab th, .abl-tab td { border:1px solid var(--border); padding:6px 8px; font-size:13px; vertical-align:middle; }
.abl-tab thead th { background:var(--bg); text-align:center; font-size:12px; line-height:1.15; }
.sign-overlay { position:fixed; inset:0; background:rgba(0,0,0,.55); z-index:9500; display:flex; align-items:center; justify-content:center; padding:24px; }
.sign-box { background:var(--card); border-radius:14px; padding:16px; box-shadow:0 20px 60px rgba(0,0,0,.45); }
.sign-head { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:10px; }
.sign-canvas { display:block; background:#fff; border:1px dashed #94a3b8; border-radius:8px; touch-action:none; cursor:crosshair; max-width:90vw; }
.sign-actions { display:flex; justify-content:flex-end; gap:8px; margin-top:10px; }

/* ===================== Dark Mode ===================== */
.theme-toggle { background:none; border:none; cursor:pointer; font-size:18px; padding:8px; line-height:1; border-radius:8px; color:var(--text); }
.theme-toggle:hover { background:rgba(127,127,127,.15); }

[data-theme="dark"] {
  --blue: #8d5fff;        /* SEC Purple */
  --blue-dark: #c1b4fc;   /* SEC Light Purple (heller für Hover auf dunkel) */
  --navy: #04141f;
  --navy-deep: #03101a;
  --bg: #041a29;          /* SEC Navy-Basis (dunkel) */
  --card: #0a2536;
  --text: #e6edf3;
  --muted: #9aa7b4;
  --border: #173243;
  --green: #22c55e;
  --red: #fd6b7a;
  --red-dark: #fd273f;
  --amber: #fbbf24;
  color-scheme: dark;
}
[data-theme="dark"] th { background:#243145; }
[data-theme="dark"] tbody tr:hover { background:#243145; }
[data-theme="dark"] .btn-ghost { background:rgba(141,95,255,.18); color:#c1b4fc; }
[data-theme="dark"] .btn-ghost:hover { background:rgba(141,95,255,.30); }
[data-theme="dark"] .btn-danger { background:rgba(248,113,113,.15); color:#fca5a5; }
[data-theme="dark"] .btn-danger:hover { background:rgba(248,113,113,.28); }
[data-theme="dark"] .modal { background:var(--card); box-shadow:0 20px 60px rgba(0,0,0,.5); }
[data-theme="dark"] .field input, [data-theme="dark"] .field select, [data-theme="dark"] .field textarea,
[data-theme="dark"] .inline-add input, [data-theme="dark"] .inline-add select,
[data-theme="dark"] .tn-search input {
  background:#0b1424; color:var(--text); border-color:var(--border);
}
[data-theme="dark"] ::placeholder { color:#64748b; }
[data-theme="dark"] .tn-results { background:var(--card); }
[data-theme="dark"] .tn-res-item:hover { background:#243145; }
[data-theme="dark"] .viewtoggle button { background:var(--card); color:var(--muted); }
[data-theme="dark"] .viewtoggle button.active { background:var(--blue); color:#fff; }
[data-theme="dark"] .cal-cell { background:var(--card); }
[data-theme="dark"] .cal-out { background:#16202e; }
[data-theme="dark"] .pill { background:#243145; color:var(--muted); }
[data-theme="dark"] .warnbox { background:rgba(248,113,113,.12); border-color:rgba(248,113,113,.4); color:#fecaca; }
[data-theme="dark"] .toast { background:#334155; color:#fff; }
[data-theme="dark"] .aw-cell-anwesend { background:rgba(34,197,94,.18); }
[data-theme="dark"] .aw-cell-unentschuldigt { background:rgba(248,113,113,.18); }
[data-theme="dark"] .aw-cell-krank, [data-theme="dark"] .aw-cell-entschuldigt { background:rgba(251,191,36,.16); }
[data-theme="dark"] .cal-ev { background:rgba(141,95,255,.28); color:#d7ccff; }
[data-theme="dark"] .cal-ev:hover { background:rgba(141,95,255,.45); }
/* helle Inline-Hintergründe (z. B. gesperrte Benutzerzeile) abdunkeln */
[data-theme="dark"] [style*="fffbeb"] { background:rgba(251,191,36,.1) !important; }
