/* ── Variables ──────────────────────────────────────────────────────── */
:root {
  --bg:      #0a0c10;
  --bg2:     #111827;
  --bg3:     #1e293b;
  --text:    #e2e8f0;
  --muted:   #94a3b8;
  --dim:     #64748b;
  --border:  #1e293b;
  --border2: #334155;
  --blue:    #1d4ed8;
  --blue-l:  #3b82f6;
  --green:   #16a34a;
  --orange:  #ea580c;
  --red:     #dc2626;
  --gold:    #d97706;
  --gold-l:  #fbbf24;
  --font-head: 'Bebas Neue', sans-serif;
  --font-body: 'Barlow', sans-serif;
}
* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { background:var(--bg); color:var(--text); font-family:var(--font-body); font-size:13px; min-height:100vh; }
.hidden { display:none !important; }

/* ── Role-dependent buttons: hidden until JS sets them visible ──────── */
#btn-zeitraum, #btn-nutzer, #btn-log, #btn-versionen { display: none; }

/* ── Login ──────────────────────────────────────────────────────────── */
#login-screen {
  min-height:100vh;
  background:
    linear-gradient(135deg, rgba(0,0,0,.55) 0%, rgba(0,10,30,.65) 100%),
    url('login-bg.jpg') center/cover no-repeat;
  display:flex; align-items:center; justify-content:center;
}
.login-card {
  background:rgba(5,5,10,.88); border:1px solid var(--gold);
  border-radius:16px; padding:40px; width:360px; text-align:center;
  box-shadow: 0 0 60px rgba(217,119,6,.4), 0 0 0 1px rgba(255,255,255,.05),
              0 25px 60px rgba(0,0,0,.7);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
}
.login-logo { width:60px; height:60px; display:block; margin:0 auto 16px; filter:drop-shadow(0 2px 10px rgba(217,119,6,.5)); }
.login-card h1 { font-family:var(--font-head); font-size:32px; letter-spacing:3px; color:var(--gold-l); }
.login-sub { color:var(--gold); font-size:11px; letter-spacing:2px; font-weight:600; margin-bottom:24px; text-transform:uppercase; }
.login-card input {
  width:100%; padding:11px 14px; margin-bottom:10px;
  background:rgba(255,255,255,.06); border:1px solid var(--border2);
  border-radius:8px; color:var(--text); font-family:var(--font-body); font-size:14px; outline:none;
}
.login-card input:focus { border-color:var(--gold); box-shadow:0 0 0 2px rgba(217,119,6,.2); }
.btn-gold { background:var(--gold); color:#000; font-weight:700; width:100%; margin-top:4px; }
.btn-gold:hover { background:var(--gold-l); }

/* ── Header ─────────────────────────────────────────────────────────── */
header {
  background: linear-gradient(135deg, #0a0800 0%, #1a1200 100%);
  border-bottom:2px solid var(--gold);
  padding:10px 20px; display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:8px;
  position:sticky; top:0; z-index:100;
}
.header-left { display:flex; align-items:center; gap:12px; }
.header-logo { height:36px; width:36px; display:block; filter:drop-shadow(0 2px 6px rgba(217,119,6,.5)); }
.header-title { font-family:var(--font-head); font-size:22px; letter-spacing:3px; color:var(--gold-l); }
.header-right { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
.header-right label { color:var(--muted); font-size:12px; }
#season-select {
  background:var(--bg2); border:1px solid var(--border2); color:var(--text);
  padding:6px 10px; border-radius:6px; font-family:var(--font-body); font-size:12px;
}

/* ── Buttons ─────────────────────────────────────────────────────────── */
.btn {
  padding:7px 14px; border-radius:6px; border:none; cursor:pointer;
  font-family:var(--font-body); font-size:12px; font-weight:600;
  transition:background .15s, opacity .15s, transform .1s;
}
.btn:hover { opacity:.9; transform:scale(1.02); }
.btn:disabled { opacity:.4; cursor:not-allowed; transform:none; }
.btn-slate   { background:#334155; color:#cbd5e1; }
.btn-outline { background:transparent; border:1px solid var(--border2); color:var(--muted); }
.btn-outline:hover { border-color:var(--gold); color:var(--gold-l); }
.btn-blue    { background:var(--blue); color:#fff; }
.btn-green   { background:var(--green); color:#fff; }
.btn-orange  { background:var(--orange); color:#fff; }
.btn-blue-l  { background:#0ea5e9; color:#fff; }
.btn-config  { background:#1e3a5f; color:#93c5fd; border:1px solid #1e40af; }
.btn-config:hover { background:#1e40af; color:#fff; }
.btn-pdf     { background:#0f766e; color:#fff; }
.btn-admin   { background:#4c1d95; color:#c4b5fd; }
.btn-audit   { background:#1e293b; color:#94a3b8; border:1px solid #334155; }
.btn-purple  { background:#7c3aed; color:#fff; }

/* ── Role badge ──────────────────────────────────────────────────────── */
.role-badge { padding:5px 10px; border-radius:5px; font-size:11px; font-weight:700; letter-spacing:1px; }
.role-badge.admin  { background:rgba(217,119,6,.2); color:var(--gold-l); border:1px solid var(--gold); }
.role-badge.editor { background:rgba(29,78,216,.2); color:#93c5fd; border:1px solid #1d4ed8; }
.role-badge.viewer { background:rgba(100,116,139,.15); color:var(--muted); border:1px solid var(--border2); }
.pw-error { color:#f87171; font-size:12px; margin-top:6px; }

/* ── Legend ──────────────────────────────────────────────────────────── */
.legend { display:flex; align-items:center; flex-wrap:wrap; gap:14px; padding:8px 20px; background:rgba(0,0,0,.3); border-bottom:1px solid var(--border); }
.legend-item { display:flex; align-items:center; gap:5px; font-size:11px; color:var(--muted); }
.dot { width:12px; height:12px; border-radius:3px; display:inline-block; }
.dot.green  { background:var(--green); }
.dot.orange { background:var(--orange); }
.dot.blue   { background:#0ea5e9; }
.dot.red    { background:var(--red); }
.dot.yellow { background:#ca8a04; border:1px solid #fbbf24; }
.dot.dark   { background:#1e293b; border:1px solid #334155; }
.wknd-legend { gap:4px; }
.wknd-swatch { display:inline-block; width:12px; height:12px; border-radius:3px; border:1px solid rgba(255,255,255,.15); }
.wknd-swatch.wknd-a { background:#2a1f00; border-color:var(--gold); }
.wknd-swatch.wknd-b { background:#0a1628; border-color:var(--blue); }

/* ── Season range bar ────────────────────────────────────────────────── */
.season-range-bar { padding:6px 20px; background:#0a1628; border-bottom:1px solid #1e3a5f; font-size:12px; color:#60a5fa; }

/* ── Table ───────────────────────────────────────────────────────────── */
.table-wrap { overflow-x:auto; padding:0; }
.loading { padding:40px; text-align:center; color:var(--muted); font-size:14px; }

table#schedule-table { width:100%; border-collapse:collapse; table-layout:fixed; min-width:900px; }

thead th {
  background:#0a1628; color:var(--muted); font-family:var(--font-head);
  font-size:11px; letter-spacing:1.5px; padding:8px 4px; text-align:center;
  border:1px solid var(--border); position:sticky; top:62px; z-index:10;
  white-space:nowrap; overflow:hidden;
}
thead th:first-child { width:72px; }
thead th:nth-child(2){ width:90px; }
thead th.special-team { color:#a5b4fc; background:#0d0a28; }

tbody td { border:1px solid var(--border); padding:2px; vertical-align:middle; text-align:center; }

.date-cell { font-size:11px; padding:6px 4px; text-align:center; font-weight:700; }
.slot-cell { font-size:10px; color:var(--muted); padding:4px 2px; }

/* ── Alternating weekends ────────────────────────────────────────────── */
tr.wknd-even td                { background-color:#2a1f00 !important; }
tr.wknd-even .slot-cell        { background-color:#251c00 !important; color:var(--gold-l); }
tr.wknd-even td.date-cell      { background-color:#1c1500 !important; color:var(--gold); border-left:4px solid var(--gold); }
tr.wknd-odd  td                { background-color:#0a1628 !important; }
tr.wknd-odd  .slot-cell        { background-color:#091320 !important; color:#93c5fd; }
tr.wknd-odd  td.date-cell      { background-color:#07101c !important; color:#60a5fa; border-left:4px solid var(--blue); }

tr.wknd-even td .cell-btn.state-free { background:rgba(217,119,6,.08); border-color:rgba(245,158,11,.15); color:#78716c; }
tr.wknd-odd  td .cell-btn.state-free { background:rgba(29,78,216,.08); border-color:rgba(59,130,246,.12); color:var(--dim); }

tr.day-note-row.wknd-even td { background-color:#1c1500 !important; border-left:4px solid var(--gold); }
tr.day-note-row.wknd-odd  td { background-color:#07101c !important; border-left:4px solid var(--blue); }
tr.weekend-sep td { height:5px !important; background:linear-gradient(90deg,rgba(217,119,6,.3),rgba(29,78,216,.3)) !important; border:none !important; }

/* ── Slot comment highlight ──────────────────────────────────────────── */
td.has-slot-comment { background-color:#3d2e00 !important; outline:1px solid #ca8a04; }

/* ── Cell buttons ────────────────────────────────────────────────────── */
.cell-btn {
  width:100%; min-height:36px; border:1px solid transparent; border-radius:5px;
  cursor:default; font-family:var(--font-body); font-size:10px; font-weight:600;
  display:flex; flex-direction:column; align-items:center; justify-content:center;
  padding:3px 2px; transition:transform .1s, opacity .1s; gap:2px;
}
.cell-btn:not([disabled]):hover { opacity:.85; transform:scale(1.04); }
.cell-btn[disabled] { cursor:not-allowed; }
.cell-btn.state-home    { background:var(--green);  color:#fff; border-color:#15803d; cursor:pointer; }
.cell-btn.state-away    { background:var(--orange); color:#fff; border-color:#c2410c; cursor:pointer; }
.cell-btn.state-busy    { background:#0ea5e9;       color:#fff; border-color:#0284c7; cursor:pointer; }
.cell-btn.state-blocked { background:var(--red);    color:#fff; border-color:#b91c1c; }
.cell-btn.state-blocked:not([disabled]) { cursor:pointer; }
.cell-btn.state-blocked:not([disabled]):hover { background:#b91c1c; opacity:1; transform:scale(1.03); }
.cell-btn.state-free    { background:rgba(255,255,255,.03); color:var(--dim); border-color:rgba(255,255,255,.06); cursor:pointer; }
.cell-note { font-size:9px; font-weight:400; opacity:.85; max-width:90%; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }

/* ── Row selected highlight ──────────────────────────────────────────── */
@keyframes rowPulse { 0%,100%{box-shadow:inset 0 0 0 2px rgba(250,204,21,.9)} 50%{box-shadow:inset 0 0 0 2px rgba(250,204,21,.3)} }
.row-selected td { animation:rowPulse 1.4s ease-in-out infinite; background-color:rgba(250,204,21,.1) !important; }
.row-selected td.date-cell { background-color:rgba(250,204,21,.2) !important; color:#fde047 !important; border-left-color:#eab308 !important; }

/* ── Comment button ──────────────────────────────────────────────────── */
.comment-btn {
  background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1);
  border-radius:4px; color:var(--dim); font-size:10px; cursor:pointer; padding:2px 5px;
  transition:background .12s;
}
.comment-btn:hover { background:rgba(255,255,255,.1); color:var(--text); }
.comment-btn.has-comment { background:rgba(202,138,4,.2); border-color:#ca8a04; color:#fbbf24; }

/* ── Day note ────────────────────────────────────────────────────────── */
.day-note-wrap { padding:4px 8px; }
.day-note-toggle { background:transparent; border:none; color:var(--dim); font-size:11px; cursor:pointer; padding:3px 0; display:flex; align-items:center; gap:4px; }
.day-note-toggle .arrow { font-size:9px; transition:transform .15s; }
.day-note-content { display:none; padding:8px 0 4px; }
.day-note-content.open { display:block; }
.day-note-textarea { width:100%; min-height:60px; background:var(--bg); border:1px solid var(--border2); border-radius:6px; color:var(--text); font-family:var(--font-body); font-size:12px; padding:8px; resize:vertical; outline:none; }
.day-note-text { color:var(--muted); font-size:12px; padding:4px 0; }
.day-note-text.placeholder { color:var(--dim); font-style:italic; }

/* ── Modals ──────────────────────────────────────────────────────────── */
.modal-overlay { position:fixed; inset:0; background:rgba(0,0,0,.7); backdrop-filter:blur(4px); display:flex; align-items:center; justify-content:center; z-index:1000; padding:20px; }
.modal-card {
  background:var(--bg2); border:1px solid var(--border2); border-radius:14px;
  padding:28px; width:380px; max-width:100%; max-height:90vh; overflow-y:auto;
  box-shadow:0 24px 64px rgba(0,0,0,.6);
}
.modal-card h3 { font-family:var(--font-head); font-size:20px; letter-spacing:2px; color:var(--text); margin-bottom:6px; }
.modal-card p  { color:var(--dim); font-size:12px; margin-bottom:16px; }
.modal-btns    { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:14px; }
.modal-btns .btn { flex:1; min-width:90px; }
#modal-note, #comment-text {
  width:100%; padding:10px 12px; background:var(--bg); border:1px solid var(--border2);
  border-radius:8px; color:var(--text); font-family:var(--font-body); font-size:13px; outline:none; margin-bottom:8px;
}
#comment-text { resize:vertical; min-height:80px; }
#modal-note:focus, #comment-text:focus { border-color:var(--gold); }
.modal-hint { color:var(--dim) !important; font-size:11px !important; margin-bottom:12px !important; }
.modal-cancel { width:100%; margin-top:4px; }

/* ── Config modal ────────────────────────────────────────────────────── */
.cfg-card { max-width:380px; }
.cfg-row { display:flex; flex-direction:column; gap:5px; margin-bottom:14px; }
.cfg-row label { font-size:12px; color:var(--muted); font-weight:600; }
.cfg-row input[type=date], .cfg-row input[type=text], .cfg-row input[type=password], .cfg-row select {
  padding:9px 12px; border-radius:7px; border:1px solid var(--border2);
  background:var(--bg); color:var(--text); font-family:var(--font-body); font-size:13px; outline:none;
}
.cfg-row input:focus, .cfg-row select:focus { border-color:var(--gold); }
.cfg-warning { background:rgba(217,119,6,.15); border:1px solid var(--gold); border-radius:7px; padding:10px 12px; color:var(--gold-l); font-size:12px; margin-bottom:12px; }

/* ── Free slots popup ────────────────────────────────────────────────── */
.free-card { background:var(--bg2); border:1px solid var(--border2); border-radius:14px; width:420px; max-width:calc(100vw - 32px); max-height:80vh; display:flex; flex-direction:column; box-shadow:0 24px 64px rgba(0,0,0,.65); overflow:hidden; }
.free-header { display:flex; align-items:flex-start; justify-content:space-between; padding:20px 20px 12px; border-bottom:1px solid var(--border2); flex-shrink:0; }
.free-header h3 { font-family:var(--font-head); font-size:20px; letter-spacing:2px; color:var(--text); }
#free-count { color:var(--dim); font-size:12px; margin-top:2px; }
.free-close { background:transparent; border:1px solid var(--border2); color:var(--muted); width:28px; height:28px; border-radius:50%; cursor:pointer; font-size:13px; display:flex; align-items:center; justify-content:center; }
.free-close:hover { background:var(--bg); color:var(--text); }
.free-list { list-style:none; overflow-y:auto; padding:10px 0 14px; flex:1; }
.free-month-sep { padding:8px 20px 4px; font-size:10px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase; color:var(--blue-l); background:rgba(29,78,216,.08); }
.free-item { padding:0; }
.free-empty { padding:20px; color:var(--dim); font-size:13px; text-align:center; }
.free-link { display:flex; align-items:center; gap:10px; padding:9px 20px; color:var(--text); text-decoration:none; font-size:13px; transition:background .12s; }
.free-arrow { font-size:14px; flex-shrink:0; }
.free-wknd-even                  { background:rgba(42,31,0,.55); }
.free-wknd-odd                   { background:rgba(10,22,40,.55); }
.free-wknd-even .free-link:hover { background:rgba(217,119,6,.2); }
.free-wknd-odd  .free-link:hover { background:rgba(29,78,216,.2); }
.free-wknd-even .free-link { border-left:3px solid var(--gold); padding-left:17px; color:var(--gold-l); }
.free-wknd-odd  .free-link { border-left:3px solid var(--blue); padding-left:17px; color:#93c5fd; }
.free-wknd-even .free-arrow { color:var(--gold); }
.free-wknd-odd  .free-arrow { color:var(--blue-l); }
.free-btn { display:inline-block; background:rgba(255,255,255,.07); color:#bfdbfe; border:1px solid rgba(255,255,255,.12); border-radius:4px; font-size:9px; font-family:var(--font-body); font-weight:600; padding:2px 6px; cursor:pointer; transition:background .15s; }
.free-btn:hover { background:rgba(99,179,237,.25); color:#fff; }

/* ── User admin modal ────────────────────────────────────────────────── */
.admin-card { max-width:520px; width:520px; }
.user-row { display:flex; align-items:center; gap:8px; padding:8px 0; border-bottom:1px solid var(--border); flex-wrap:wrap; }
.user-name { flex:1; min-width:100px; font-weight:600; font-size:13px; }
.user-name.inactive { color:var(--dim); text-decoration:line-through; }
.user-role-sel { background:var(--bg); border:1px solid var(--border2); color:var(--text); padding:4px 8px; border-radius:5px; font-size:12px; }

/* ── Audit log modal ─────────────────────────────────────────────────── */
.audit-card { max-width:640px; width:640px; }
.audit-list { max-height:60vh; overflow-y:auto; }
.audit-row { border-bottom:1px solid var(--border); padding:10px 0; font-size:11px; }
.audit-type { font-weight:700; color:var(--gold-l); font-size:12px; margin-bottom:3px; }
.audit-meta { color:var(--muted); margin-bottom:3px; }
.audit-meta code { background:rgba(255,255,255,.06); padding:1px 5px; border-radius:3px; font-size:10px; }
.audit-old { color:#f87171; background:rgba(220,38,38,.08); border-radius:4px; padding:3px 6px; margin:2px 0; font-family:monospace; font-size:10px; word-break:break-all; }
.audit-new { color:#4ade80; background:rgba(22,163,74,.08); border-radius:4px; padding:3px 6px; margin:2px 0; font-family:monospace; font-size:10px; word-break:break-all; }
.audit-who { color:var(--dim); font-size:10px; margin-top:3px; }

/* ── Responsive ──────────────────────────────────────────────────────── */
@media (max-width:768px) {
  header { padding:8px 12px; }
  .header-title { font-size:16px; }
  .admin-card, .audit-card { width:calc(100vw - 40px); }
}

/* ── Backup / Snapshot ───────────────────────────────────────────────── */
.btn-backup  { background:#065f46; color:#6ee7b7; border:1px solid #047857; }
.btn-backup:hover { background:#047857; color:#fff; }
.btn-red     { background:#dc2626; color:#fff; }
.btn-red:hover { background:#b91c1c; }
.btn-red-soft { background:rgba(220,38,38,.15); color:#fca5a5; border:1px solid #dc2626; }
.btn-red-soft:hover { background:rgba(220,38,38,.3); }

.backup-card { max-width:580px; width:580px; }

.snapshot-list { max-height:55vh; overflow-y:auto; }
.snapshot-row {
  display:flex; align-items:center; justify-content:space-between;
  padding:10px 4px; border-bottom:1px solid var(--border); gap:10px; flex-wrap:wrap;
}
.snapshot-row:last-child { border-bottom:none; }
.snapshot-latest { background:rgba(217,119,6,.06); border-radius:6px; padding:10px 8px; }
.snapshot-info { flex:1; min-width:200px; }
.snapshot-reason { font-size:13px; font-weight:600; color:var(--text); display:flex; align-items:center; gap:6px; }
.snapshot-meta  { font-size:11px; color:var(--dim); margin-top:3px; }
.snapshot-badge { background:var(--gold); color:#000; font-size:9px; font-weight:700; padding:2px 6px; border-radius:10px; letter-spacing:.5px; }
.snapshot-actions { display:flex; gap:6px; align-items:center; flex-shrink:0; }

/* ── Changes Modal ───────────────────────────────────────────────────── */
.changes-card { max-width:620px; width:620px; max-height:85vh; display:flex; flex-direction:column; padding:0; overflow:hidden; }
.changes-header { padding:24px 24px 16px; border-bottom:1px solid var(--border2); flex-shrink:0; display:flex; justify-content:space-between; align-items:flex-start; gap:12px; }
.changes-header h3 { font-family:var(--font-head); font-size:20px; letter-spacing:2px; color:var(--text); margin-bottom:4px; }
.changes-header p  { color:var(--dim); font-size:11px; margin:0; }
.changes-list { overflow-y:auto; flex:1; padding:8px 16px 8px; }
.changes-card > .btn { margin:0 24px 20px; width:calc(100% - 48px); flex-shrink:0; }

.chg-date-sep { font-size:10px; font-weight:700; letter-spacing:1.5px; text-transform:uppercase;
  color:var(--blue-l); background:rgba(29,78,216,.08); border-radius:5px;
  padding:5px 10px; margin:10px 0 4px; }

.chg-row { display:flex; justify-content:space-between; align-items:flex-start;
  gap:8px; padding:8px 10px; border-radius:7px; margin-bottom:3px; border-left:3px solid transparent; }
.chg-create { background:rgba(22,163,74,.08);  border-left-color:#16a34a; }
.chg-update { background:rgba(217,119,6,.07);  border-left-color:var(--gold); }
.chg-delete { background:rgba(220,38,38,.08);  border-left-color:#dc2626; }
.chg-restore{ background:rgba(139,92,246,.08); border-left-color:#7c3aed; }

.chg-left  { display:flex; flex-wrap:wrap; align-items:center; gap:5px; flex:1; }
.chg-right { display:flex; flex-direction:column; align-items:flex-end; gap:2px; flex-shrink:0; }

.chg-action { font-size:10px; font-weight:700; padding:2px 7px; border-radius:10px;
  background:rgba(255,255,255,.07); color:var(--muted); letter-spacing:.5px; }
.chg-entity { font-size:11px; color:var(--muted); }
.chg-key    { font-size:12px; font-weight:600; color:var(--text); }
.chg-detail { font-size:11px; color:var(--muted); width:100%; margin-top:1px; }
.chg-detail strong { color:var(--gold-l); }
.chg-who    { font-size:11px; color:var(--blue-l); white-space:nowrap; }
.chg-time   { font-size:10px; color:var(--dim); white-space:nowrap; }

/* ══════════════════════════════════════════════════════════════════
   THEMES
   ══════════════════════════════════════════════════════════════════ */


/* ══════════════════════════════════════════════════════════════════
   ROUNDED CELLS (global)
   ══════════════════════════════════════════════════════════════════ */
.cell-btn {
  border-radius: 8px;
}
tbody td {
  padding: 3px 3px;
}
tbody td:first-child { border-radius: 0; }

/* ══════════════════════════════════════════════════════════════════
   THEME: DARK (default – unchanged)
   ══════════════════════════════════════════════════════════════════ */
/* Dark is the base :root, no [data-theme] needed */

/* ══════════════════════════════════════════════════════════════════
   THEME: GLASSMORPHISM
   ══════════════════════════════════════════════════════════════════ */
[data-theme="glass"] {
  --bg:      #0d0d1a;
  --bg2:     rgba(255,255,255,.06);
  --bg3:     rgba(255,255,255,.1);
  --text:    #e8eaf6;
  --muted:   #9fa8da;
  --dim:     #5c6bc0;
  --border:  rgba(255,255,255,.08);
  --border2: rgba(255,255,255,.15);
  --gold:    #7c4dff;
  --gold-l:  #b388ff;
  --blue:    #40c4ff;
  --blue-l:  #80d8ff;
}
[data-theme="glass"] body {
  background: linear-gradient(135deg, #0d0d1a 0%, #1a0a2e 50%, #0a1628 100%);
  min-height: 100vh;
}
[data-theme="glass"] header {
  background: rgba(255,255,255,.04);
  backdrop-filter: blur(20px);
  -webkit-backdrop-filter: blur(20px);
  border-bottom: 1px solid rgba(255,255,255,.1);
  box-shadow: 0 4px 30px rgba(0,0,0,.3);
}
[data-theme="glass"] .header-title { color: #b388ff; }
[data-theme="glass"] #login-screen {
  background: linear-gradient(135deg, #0d0d1a 0%, #1a0a2e 50%, #0a1628 100%),
              url('login-bg.jpg') center/cover no-repeat;
  background-blend-mode: overlay;
}
[data-theme="glass"] .login-card {
  background: rgba(255,255,255,.07);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border: 1px solid rgba(255,255,255,.15);
  box-shadow: 0 8px 32px rgba(0,0,0,.4), inset 0 1px 0 rgba(255,255,255,.1);
}
[data-theme="glass"] .login-card h1 { color: #b388ff; }
[data-theme="glass"] .login-sub     { color: #7c4dff; }
[data-theme="glass"] .login-card input {
  background: rgba(255,255,255,.08);
  border-color: rgba(255,255,255,.15);
}
[data-theme="glass"] .btn-gold { background: linear-gradient(135deg,#7c4dff,#40c4ff); color:#fff; border:none; }
[data-theme="glass"] .btn-gold:hover { background: linear-gradient(135deg,#651fff,#00b0ff); }
[data-theme="glass"] .modal-card, [data-theme="glass"] .free-card,
[data-theme="glass"] .backup-card, [data-theme="glass"] .changes-card {
  background: rgba(255,255,255,.06);
  backdrop-filter: blur(24px);
  -webkit-backdrop-filter: blur(24px);
  border: 1px solid rgba(255,255,255,.12);
}
[data-theme="glass"] .modal-card h3,
[data-theme="glass"] .changes-header h3 { color: #b388ff; }
[data-theme="glass"] table#schedule-table thead th {
  background: rgba(255,255,255,.06);
  backdrop-filter: blur(10px);
  border-color: rgba(255,255,255,.08);
}
[data-theme="glass"] tr.wknd-even td           { background: rgba(124,77,255,.12) !important; }
[data-theme="glass"] tr.wknd-even .slot-cell   { background: rgba(124,77,255,.18) !important; color:#b388ff; }
[data-theme="glass"] tr.wknd-even td.date-cell { background: rgba(124,77,255,.25) !important; color:#ce93d8; border-left: 4px solid #7c4dff; }
[data-theme="glass"] tr.wknd-odd  td           { background: rgba(64,196,255,.08) !important; }
[data-theme="glass"] tr.wknd-odd  .slot-cell   { background: rgba(64,196,255,.14) !important; color:#80d8ff; }
[data-theme="glass"] tr.wknd-odd  td.date-cell { background: rgba(64,196,255,.2)  !important; color:#80d8ff; border-left: 4px solid #40c4ff; }
[data-theme="glass"] .cell-btn.state-free {
  background: rgba(255,255,255,.04);
  border-color: rgba(255,255,255,.08);
}
[data-theme="glass"] .cell-btn.state-free:hover { background: rgba(255,255,255,.09); }
[data-theme="glass"] .role-badge.admin  { background:rgba(124,77,255,.2); color:#b388ff; border-color:#7c4dff; }
[data-theme="glass"] .role-badge.editor { background:rgba(64,196,255,.2); color:#80d8ff; border-color:#40c4ff; }
[data-theme="glass"] .legend            { background: rgba(255,255,255,.03); }
[data-theme="glass"] .season-range-bar  { background: rgba(124,77,255,.1); color:#b388ff; border-color:rgba(124,77,255,.3); }
[data-theme="glass"] #date-jump, [data-theme="glass"] #season-select, [data-theme="glass"] #theme-select {
  background: rgba(255,255,255,.08); border-color: rgba(255,255,255,.15);
}
[data-theme="glass"] .wknd-swatch.wknd-a { background:rgba(124,77,255,.4); border-color:#7c4dff; }
[data-theme="glass"] .wknd-swatch.wknd-b { background:rgba(64,196,255,.3); border-color:#40c4ff; }
[data-theme="glass"] .weekend-sep td { background: linear-gradient(90deg,rgba(124,77,255,.4),rgba(64,196,255,.3)) !important; }
[data-theme="glass"] .free-wknd-even .free-link { border-left-color:#7c4dff; color:#b388ff; }
[data-theme="glass"] .free-wknd-odd  .free-link { border-left-color:#40c4ff; color:#80d8ff; }
[data-theme="glass"] .free-wknd-even { background:rgba(124,77,255,.08); }
[data-theme="glass"] .free-wknd-odd  { background:rgba(64,196,255,.06); }
[data-theme="glass"] .snapshot-latest { background:rgba(124,77,255,.08); }
[data-theme="glass"] .chg-date-sep    { background:rgba(124,77,255,.08); color:#b388ff; }

/* ══════════════════════════════════════════════════════════════════
   THEME: ARENA (Stadion-Atmosphäre)
   ══════════════════════════════════════════════════════════════════ */
[data-theme="arena"] {
  --bg:      #050a12;
  --bg2:     #0a1520;
  --bg3:     #0f2035;
  --text:    #cfe8ff;
  --muted:   #6eb3e8;
  --dim:     #3a7cb8;
  --border:  #0f2035;
  --border2: #1a3a5c;
  --gold:    #38bdf8;
  --gold-l:  #7dd3fc;
  --blue:    #0ea5e9;
  --blue-l:  #38bdf8;
}
[data-theme="arena"] body {
  background: #050a12;
  background-image:
    radial-gradient(ellipse at 50% 0%, rgba(56,189,248,.15) 0%, transparent 60%),
    radial-gradient(ellipse at 20% 50%, rgba(14,165,233,.08) 0%, transparent 50%),
    radial-gradient(ellipse at 80% 50%, rgba(14,165,233,.08) 0%, transparent 50%);
}
[data-theme="arena"] header {
  background: linear-gradient(180deg, #030810 0%, #050e1c 100%);
  border-bottom: 2px solid #0ea5e9;
  box-shadow: 0 2px 30px rgba(56,189,248,.2);
}
[data-theme="arena"] .header-title {
  color: #fff;
  text-shadow: 0 0 20px rgba(56,189,248,.8), 0 0 40px rgba(56,189,248,.4);
}
[data-theme="arena"] #login-screen {
  background:
    linear-gradient(180deg, rgba(3,8,16,.3) 0%, rgba(5,20,40,.7) 100%),
    url('login-bg.jpg') center/cover no-repeat;
}
[data-theme="arena"] .login-card {
  background: rgba(5,14,28,.85);
  border: 1px solid #0ea5e9;
  box-shadow: 0 0 60px rgba(56,189,248,.3), 0 0 120px rgba(14,165,233,.1), inset 0 1px 0 rgba(56,189,248,.1);
  backdrop-filter: blur(10px);
}
[data-theme="arena"] .login-card h1 { color:#fff; text-shadow:0 0 20px rgba(56,189,248,.9); letter-spacing:5px; }
[data-theme="arena"] .login-sub     { color:#38bdf8; letter-spacing:3px; }
[data-theme="arena"] .login-card input { background:rgba(14,165,233,.06); border-color:#1a3a5c; }
[data-theme="arena"] .login-card input:focus { border-color:#38bdf8; box-shadow:0 0 0 2px rgba(56,189,248,.2); }
[data-theme="arena"] .btn-gold {
  background: linear-gradient(135deg,#0ea5e9,#0284c7);
  color:#fff; border:none;
  box-shadow: 0 4px 15px rgba(14,165,233,.4);
}
[data-theme="arena"] .btn-gold:hover { background: linear-gradient(135deg,#38bdf8,#0ea5e9); }
[data-theme="arena"] table#schedule-table thead th {
  background: #030810;
  color: #38bdf8;
  border-color: #0f2035;
  text-shadow: 0 0 10px rgba(56,189,248,.5);
}
[data-theme="arena"] tr.wknd-even td           { background:#070f1e !important; }
[data-theme="arena"] tr.wknd-even .slot-cell   { background:#050c18 !important; color:#38bdf8; }
[data-theme="arena"] tr.wknd-even td.date-cell { background:#030810 !important; color:#7dd3fc; border-left:4px solid #0ea5e9; box-shadow:inset 2px 0 10px rgba(14,165,233,.2); }
[data-theme="arena"] tr.wknd-odd  td           { background:#060d1c !important; }
[data-theme="arena"] tr.wknd-odd  .slot-cell   { background:#040a14 !important; color:#7dd3fc; }
[data-theme="arena"] tr.wknd-odd  td.date-cell { background:#030810 !important; color:#bae6fd; border-left:4px solid #38bdf8; box-shadow:inset 2px 0 10px rgba(56,189,248,.15); }
[data-theme="arena"] .cell-btn.state-free { background:rgba(14,165,233,.04); border-color:rgba(14,165,233,.08); color:#1a3a5c; }
[data-theme="arena"] .weekend-sep td { background:linear-gradient(90deg,rgba(14,165,233,.4),rgba(56,189,248,.2)) !important; }
[data-theme="arena"] .modal-card, [data-theme="arena"] .free-card,
[data-theme="arena"] .backup-card, [data-theme="arena"] .changes-card {
  background:#0a1520; border-color:#1a3a5c;
}
[data-theme="arena"] .season-range-bar { background:rgba(14,165,233,.08); color:#38bdf8; border-color:#1a3a5c; }
[data-theme="arena"] .legend           { background:rgba(3,8,16,.6); }
[data-theme="arena"] .role-badge.admin { background:rgba(14,165,233,.15); color:#7dd3fc; border-color:#0ea5e9; }
[data-theme="arena"] #date-jump, [data-theme="arena"] #season-select, [data-theme="arena"] #theme-select {
  background:#0a1520; border-color:#1a3a5c;
}
[data-theme="arena"] .wknd-swatch.wknd-a { background:rgba(14,165,233,.4); border-color:#0ea5e9; }
[data-theme="arena"] .wknd-swatch.wknd-b { background:rgba(56,189,248,.25); border-color:#38bdf8; }
[data-theme="arena"] .free-wknd-even .free-link { border-left-color:#0ea5e9; color:#38bdf8; }
[data-theme="arena"] .free-wknd-odd  .free-link { border-left-color:#38bdf8; color:#7dd3fc; }
[data-theme="arena"] .free-wknd-even { background:rgba(14,165,233,.06); }
[data-theme="arena"] .free-wknd-odd  { background:rgba(56,189,248,.04); }

/* ══════════════════════════════════════════════════════════════════
   THEME: CLEAN MINIMAL
   ══════════════════════════════════════════════════════════════════ */
[data-theme="minimal"] {
  --bg:      #f8fafc;
  --bg2:     #ffffff;
  --bg3:     #f1f5f9;
  --text:    #0f172a;
  --muted:   #64748b;
  --dim:     #94a3b8;
  --border:  #e2e8f0;
  --border2: #cbd5e1;
  --gold:    #0f172a;
  --gold-l:  #1e293b;
  --blue:    #2563eb;
  --blue-l:  #3b82f6;
}
[data-theme="minimal"] body { background:#f8fafc; color:#0f172a; }
[data-theme="minimal"] header {
  background: #ffffff;
  border-bottom: 1px solid #e2e8f0;
  box-shadow: 0 1px 3px rgba(0,0,0,.06);
}
[data-theme="minimal"] .header-title { color:#0f172a; font-size:18px; letter-spacing:2px; }
[data-theme="minimal"] .header-logo  { filter:none; }
[data-theme="minimal"] #login-screen {
  background:
    linear-gradient(180deg,rgba(248,250,252,.2) 0%,rgba(241,245,249,.4) 100%),
    url('login-bg.jpg') center/cover no-repeat;
}
[data-theme="minimal"] .login-card {
  background: rgba(255,255,255,.95);
  border: 1px solid #e2e8f0;
  box-shadow: 0 20px 60px rgba(0,0,0,.15);
  backdrop-filter: blur(10px);
}
[data-theme="minimal"] .login-card h1 { color:#0f172a; }
[data-theme="minimal"] .login-sub     { color:#64748b; }
[data-theme="minimal"] .login-card input { background:#f8fafc; border-color:#e2e8f0; color:#0f172a; }
[data-theme="minimal"] .login-card input:focus { border-color:#0f172a; box-shadow:0 0 0 2px rgba(15,23,42,.1); }
[data-theme="minimal"] .btn-gold { background:#0f172a; color:#fff; }
[data-theme="minimal"] .btn-gold:hover { background:#1e293b; }
[data-theme="minimal"] table#schedule-table thead th {
  background:#0f172a; color:#f8fafc; border-color:#1e293b;
}
[data-theme="minimal"] tr.wknd-even td           { background:#fafafa !important; }
[data-theme="minimal"] tr.wknd-even .slot-cell   { background:#f4f4f5 !important; color:#71717a; }
[data-theme="minimal"] tr.wknd-even td.date-cell { background:#e4e4e7 !important; color:#18181b; border-left:4px solid #18181b; }
[data-theme="minimal"] tr.wknd-odd  td           { background:#f0f9ff !important; }
[data-theme="minimal"] tr.wknd-odd  .slot-cell   { background:#e0f2fe !important; color:#0369a1; }
[data-theme="minimal"] tr.wknd-odd  td.date-cell { background:#bae6fd !important; color:#0c4a6e; border-left:4px solid #0369a1; }
[data-theme="minimal"] .cell-btn.state-free { background:#fff; border-color:#e2e8f0; color:#94a3b8; box-shadow:0 1px 2px rgba(0,0,0,.05); }
[data-theme="minimal"] .cell-btn.state-home  { box-shadow:0 2px 6px rgba(22,163,74,.3); }
[data-theme="minimal"] .cell-btn.state-away  { box-shadow:0 2px 6px rgba(234,88,12,.3); }
[data-theme="minimal"] .cell-btn.state-busy  { box-shadow:0 2px 6px rgba(14,165,233,.3); }
[data-theme="minimal"] .weekend-sep td { background:linear-gradient(90deg,#e4e4e7,#bae6fd) !important; height:3px !important; }
[data-theme="minimal"] .modal-card, [data-theme="minimal"] .free-card,
[data-theme="minimal"] .backup-card, [data-theme="minimal"] .changes-card {
  background:#fff; border-color:#e2e8f0; color:#0f172a;
  box-shadow:0 20px 60px rgba(0,0,0,.12);
}
[data-theme="minimal"] .modal-card h3, [data-theme="minimal"] .changes-header h3 { color:#0f172a; }
[data-theme="minimal"] #modal-note, [data-theme="minimal"] #comment-text,
[data-theme="minimal"] .cfg-row input, [data-theme="minimal"] .cfg-row select { background:#f8fafc; color:#0f172a; border-color:#e2e8f0; }
[data-theme="minimal"] .day-note-textarea { background:#f8fafc; color:#0f172a; }
[data-theme="minimal"] .season-range-bar  { background:#eff6ff; color:#1d4ed8; border-color:#bfdbfe; }
[data-theme="minimal"] .legend { background:#fff; border-color:#e2e8f0; box-shadow:0 1px 3px rgba(0,0,0,.05); }
[data-theme="minimal"] .role-badge.admin  { background:#f1f5f9; color:#0f172a; border-color:#cbd5e1; }
[data-theme="minimal"] .role-badge.editor { background:#eff6ff; color:#1d4ed8; border-color:#bfdbfe; }
[data-theme="minimal"] .role-badge.viewer { background:#f8fafc; color:#64748b; border-color:#e2e8f0; }
[data-theme="minimal"] #date-jump, [data-theme="minimal"] #season-select, [data-theme="minimal"] #theme-select {
  background:#fff; border-color:#e2e8f0; color:#0f172a;
}
[data-theme="minimal"] .btn-outline { color:#64748b; border-color:#e2e8f0; }
[data-theme="minimal"] .btn-outline:hover { color:#0f172a; border-color:#0f172a; }
[data-theme="minimal"] .wknd-swatch.wknd-a { background:#e4e4e7; border-color:#18181b; }
[data-theme="minimal"] .wknd-swatch.wknd-b { background:#bae6fd; border-color:#0369a1; }
[data-theme="minimal"] .free-wknd-even { background:rgba(228,228,231,.4); }
[data-theme="minimal"] .free-wknd-odd  { background:rgba(186,230,253,.3); }
[data-theme="minimal"] .free-wknd-even .free-link { border-left-color:#18181b; color:#0f172a; }
[data-theme="minimal"] .free-wknd-odd  .free-link { border-left-color:#0369a1; color:#0c4a6e; }
[data-theme="minimal"] .audit-row, [data-theme="minimal"] .snapshot-row { border-color:#e2e8f0; }
[data-theme="minimal"] .chg-date-sep { background:#f1f5f9; color:#1d4ed8; }
[data-theme="minimal"] .free-header  { border-color:#e2e8f0; }
[data-theme="minimal"] .free-card    { background:#fff; }

/* ══════════════════════════════════════════════════════════════════
   THEME: ERC GOLD
   ══════════════════════════════════════════════════════════════════ */
[data-theme="gold"] {
  --bg:      #0a0800;
  --bg2:     #140f00;
  --bg3:     #1f1700;
  --text:    #fef3c7;
  --muted:   #d97706;
  --dim:     #92400e;
  --border:  #1f1700;
  --border2: #2d2000;
  --gold:    #f59e0b;
  --gold-l:  #fcd34d;
  --blue:    #d97706;
  --blue-l:  #fbbf24;
}
[data-theme="gold"] body {
  background: #0a0800;
  background-image:
    radial-gradient(ellipse at 50% 0%,   rgba(245,158,11,.12) 0%, transparent 60%),
    radial-gradient(ellipse at 0%   100%, rgba(217,119,6,.08) 0%, transparent 50%),
    radial-gradient(ellipse at 100% 100%, rgba(245,158,11,.08) 0%, transparent 50%);
}
[data-theme="gold"] header {
  background: linear-gradient(135deg, #050400 0%, #0f0900 100%);
  border-bottom: 2px solid #f59e0b;
  box-shadow: 0 2px 30px rgba(245,158,11,.25), 0 0 60px rgba(245,158,11,.05);
}
[data-theme="gold"] .header-title {
  color: #fcd34d;
  text-shadow: 0 0 20px rgba(245,158,11,.6);
}
[data-theme="gold"] #login-screen {
  background:
    linear-gradient(135deg, rgba(10,8,0,.6) 0%, rgba(20,15,0,.7) 100%),
    url('login-bg.jpg') center/cover no-repeat;
}
[data-theme="gold"] .login-card {
  background: rgba(10,8,0,.92);
  border: 1px solid #f59e0b;
  box-shadow: 0 0 80px rgba(245,158,11,.4), 0 0 160px rgba(245,158,11,.1), inset 0 1px 0 rgba(252,211,77,.1);
  backdrop-filter: blur(12px);
}
[data-theme="gold"] .login-card h1 {
  color: #fcd34d;
  text-shadow: 0 0 30px rgba(245,158,11,.8);
}
[data-theme="gold"] .login-sub { color: #f59e0b; }
[data-theme="gold"] .login-card input { background:rgba(245,158,11,.06); border-color:#2d2000; }
[data-theme="gold"] .login-card input:focus { border-color:#f59e0b; box-shadow:0 0 0 2px rgba(245,158,11,.2); }
[data-theme="gold"] .btn-gold {
  background: linear-gradient(135deg,#f59e0b,#d97706);
  color: #0a0800;
  font-weight: 800;
  box-shadow: 0 4px 20px rgba(245,158,11,.4);
}
[data-theme="gold"] .btn-gold:hover { background:linear-gradient(135deg,#fcd34d,#f59e0b); box-shadow:0 6px 25px rgba(245,158,11,.6); }
[data-theme="gold"] table#schedule-table thead th {
  background: #050400;
  color: #f59e0b;
  border-color: #1f1700;
  text-shadow: 0 0 8px rgba(245,158,11,.4);
}
[data-theme="gold"] tr.wknd-even td           { background:#0f0900 !important; }
[data-theme="gold"] tr.wknd-even .slot-cell   { background:#0a0600 !important; color:#f59e0b; }
[data-theme="gold"] tr.wknd-even td.date-cell { background:#070500 !important; color:#fcd34d; border-left:4px solid #f59e0b; box-shadow:inset 2px 0 15px rgba(245,158,11,.15); }
[data-theme="gold"] tr.wknd-odd  td           { background:#140f00 !important; }
[data-theme="gold"] tr.wknd-odd  .slot-cell   { background:#0f0900 !important; color:#d97706; }
[data-theme="gold"] tr.wknd-odd  td.date-cell { background:#0a0600 !important; color:#fbbf24; border-left:4px solid #d97706; }
[data-theme="gold"] .cell-btn.state-free { background:rgba(245,158,11,.04); border-color:rgba(245,158,11,.1); color:#2d2000; }
[data-theme="gold"] .cell-btn.state-free:hover { background:rgba(245,158,11,.1); }
[data-theme="gold"] .weekend-sep td { background:linear-gradient(90deg,rgba(245,158,11,.5),rgba(217,119,6,.3)) !important; }
[data-theme="gold"] .modal-card, [data-theme="gold"] .free-card,
[data-theme="gold"] .backup-card, [data-theme="gold"] .changes-card {
  background: #0f0900;
  border-color: #2d2000;
  box-shadow: 0 20px 60px rgba(0,0,0,.6), 0 0 0 1px rgba(245,158,11,.1);
}
[data-theme="gold"] .modal-card h3, [data-theme="gold"] .changes-header h3 { color:#fcd34d; }
[data-theme="gold"] #modal-note, [data-theme="gold"] #comment-text,
[data-theme="gold"] .cfg-row input, [data-theme="gold"] .cfg-row select {
  background:#0a0600; border-color:#2d2000; color:#fef3c7;
}
[data-theme="gold"] .day-note-textarea { background:#0a0600; color:#fef3c7; }
[data-theme="gold"] .season-range-bar  { background:rgba(245,158,11,.08); color:#f59e0b; border-color:#2d2000; }
[data-theme="gold"] .legend            { background:rgba(0,0,0,.4); }
[data-theme="gold"] .role-badge.admin  { background:rgba(245,158,11,.15); color:#fcd34d; border-color:#f59e0b; }
[data-theme="gold"] #date-jump, [data-theme="gold"] #season-select, [data-theme="gold"] #theme-select {
  background:#0f0900; border-color:#2d2000; color:#fef3c7;
}
[data-theme="gold"] .btn-outline { color:#d97706; border-color:#2d2000; }
[data-theme="gold"] .btn-outline:hover { color:#fcd34d; border-color:#f59e0b; }
[data-theme="gold"] .wknd-swatch.wknd-a { background:rgba(245,158,11,.4); border-color:#f59e0b; }
[data-theme="gold"] .wknd-swatch.wknd-b { background:rgba(217,119,6,.25); border-color:#d97706; }
[data-theme="gold"] .free-wknd-even { background:rgba(245,158,11,.06); }
[data-theme="gold"] .free-wknd-odd  { background:rgba(217,119,6,.04); }
[data-theme="gold"] .free-wknd-even .free-link { border-left-color:#f59e0b; color:#fcd34d; }
[data-theme="gold"] .free-wknd-odd  .free-link { border-left-color:#d97706; color:#fbbf24; }
[data-theme="gold"] .snapshot-latest { background:rgba(245,158,11,.06); }
[data-theme="gold"] .chg-date-sep    { background:rgba(245,158,11,.06); color:#f59e0b; }
[data-theme="gold"] .audit-row   { border-color:#1f1700; }
[data-theme="gold"] .free-header { border-color:#2d2000; }

/* ══════════════════════════════════════════════════════════════════
   Header tools + sticky fix (all themes)
   ══════════════════════════════════════════════════════════════════ */
.header-tools { display:flex; align-items:center; gap:8px; flex-wrap:wrap; }
#date-jump {
  background:var(--bg2); border:1px solid var(--border2); color:var(--text);
  padding:6px 10px; border-radius:6px; font-family:var(--font-body); font-size:12px; cursor:pointer;
}
#date-jump:focus { border-color:var(--gold); outline:none; }
#theme-select {
  background:var(--bg2); border:1px solid var(--border2); color:var(--text);
  padding:6px 10px; border-radius:6px; font-family:var(--font-body); font-size:12px; cursor:pointer;
}
thead th { position:sticky; top:0; z-index:20; }
html { scroll-padding-top:120px; }

/* Role-dependent buttons: hidden until JS sets them visible */
#btn-zeitraum, #btn-nutzer, #btn-log, #btn-versionen { display:none; }

/* ── Reserviert cell ─────────────────────────────────────────────── */
.cell-btn.state-reserved { background:#ca8a04; color:#fff; border-color:#a16207; cursor:pointer; }
.cell-btn.state-reserved:hover { background:#b45309; }

/* ── Yellow button ───────────────────────────────────────────────── */
.btn-yellow { background:#ca8a04; color:#fff; }
.btn-yellow:hover { background:#b45309; }

/* ── Bulk button ─────────────────────────────────────────────────── */
.btn-bulk { background:#1e3a5f; color:#7dd3fc; border:1px solid #1d4ed8; }
.btn-bulk:hover { background:#1d4ed8; color:#fff; }
#btn-bulk { display:none; }

/* ── Bulk modal ──────────────────────────────────────────────────── */
.bulk-card { max-width:420px; }
.bulk-slots { display:flex; flex-direction:column; gap:8px; margin-top:4px; }
.bulk-slots label { display:flex; align-items:center; gap:8px; font-size:13px; color:var(--text); cursor:pointer; }
.bulk-slots input[type=checkbox] { width:16px; height:16px; accent-color:var(--gold); cursor:pointer; }

/* ── Free slots filter ───────────────────────────────────────────── */
.free-filters { padding:10px 20px 6px; border-bottom:1px solid var(--border2); }
.free-filter-label { display:flex; align-items:center; gap:8px; font-size:12px; color:var(--muted); cursor:pointer; }
.free-filter-label input { accent-color:var(--gold); cursor:pointer; }

/* ── Free slot markers ───────────────────────────────────────────── */
.free-marker { width:10px; height:10px; border-radius:50%; flex-shrink:0; display:inline-block; }
.free-marker-free     { background:#16a34a; box-shadow:0 0 5px rgba(22,163,74,.6); }
.free-marker-reserved { background:#ca8a04; box-shadow:0 0 5px rgba(202,138,4,.6); }

/* ── Reset button ────────────────────────────────────────────────── */
.btn-reset { background:rgba(220,38,38,.15); color:#fca5a5; border:1px solid #dc2626; }
.btn-reset:hover { background:#dc2626; color:#fff; }
#btn-reset { display:none; }

/* ── Slot editor button ───────────────────────────────────────────── */
.btn-slots { background:#064e3b; color:#6ee7b7; border:1px solid #047857; }
.btn-slots:hover { background:#047857; color:#fff; }
#btn-slots { display:none; }

/* ── Slot editor modal ───────────────────────────────────────────── */
.slot-editor-card { max-width:680px; width:95vw; max-height:85vh; overflow-y:auto; }
.slot-editor-header {
  display:grid; grid-template-columns:140px 90px 90px 1fr 36px;
  gap:6px; padding:6px 4px; border-bottom:1px solid var(--border2);
  font-size:11px; font-weight:700; color:var(--muted); text-transform:uppercase;
}
.slot-editor-row {
  display:grid; grid-template-columns:140px 90px 90px 1fr 36px;
  gap:6px; padding:6px 4px; border-bottom:1px solid var(--border);
  align-items:center;
}
.slot-editor-row:hover { background:rgba(255,255,255,.03); }
.slot-editor-row select,
.slot-editor-row input[type=time],
.slot-editor-row input[type=text] {
  background:var(--bg2); border:1px solid var(--border2); color:var(--text);
  padding:5px 8px; border-radius:6px; font-size:13px; font-family:var(--font-body);
  width:100%;
}
.slot-editor-row input[type=time]:focus,
.slot-editor-row input[type=text]:focus,
.slot-editor-row select:focus { border-color:var(--gold); outline:none; }
.slot-del-btn { background:rgba(220,38,38,.15); color:#fca5a5; border:1px solid #dc2626;
  padding:4px 8px; border-radius:6px; font-size:14px; cursor:pointer; }
.slot-del-btn:hover { background:#dc2626; color:#fff; }
.btn-sm { padding:5px 12px; font-size:12px; border-radius:6px; cursor:pointer; }

/* Season config tabs */
.cfg-tabs { display:flex; gap:4px; margin-bottom:16px; border-bottom:1px solid var(--border2); padding-bottom:8px; }
.cfg-tab { background:transparent; border:1px solid var(--border2); color:var(--muted);
  padding:6px 12px; border-radius:6px; font-size:12px; cursor:pointer; font-family:var(--font-body); }
.cfg-tab.active { background:var(--gold); color:#000; border-color:var(--gold); font-weight:700; }
.cfg-tab:hover:not(.active) { background:rgba(255,255,255,.06); color:var(--text); }

/* Season list */
.season-list-row { display:flex; justify-content:space-between; align-items:center;
  padding:10px 12px; border-radius:8px; margin-bottom:6px; border:1px solid var(--border2); }
.season-list-row:hover { background:rgba(255,255,255,.03); }
.season-list-current { border-color:var(--gold); background:rgba(245,158,11,.06); }
.season-list-info { display:flex; flex-direction:column; gap:2px; }
.season-list-actions { flex-shrink:0; }
