/*! @xm-scheduler 0.9.8b (Light Theme) */
:root{
  --bg:#f6f7fb;
  --panel:#ffffff;
  --panel-2:#f2f4f8;
  --text:#1f2430;
  --muted:#6c768a;
  --border:#dfe3eb;

  --blue:#1677ff;
  --blue-2:#5aa1ff;

  --frueh:#e7f1ff;
  --nacht:#efe7ff;
  --urlaub:#e9f9ef;
  --krank:#ffe9e9;

  --frueh-b:#a8caff;
  --nacht-b:#c7a8ff;
  --urlaub-b:#9fe2b4;
  --krank-b:#ffb3b3;

  --sun-bg:#fff5f2;
  --holi-bg:#fffbe6;
}

body{background:var(--bg); color:var(--text)}
.xm-sched-shell{display:flex; gap:1rem; align-items:stretch}
.xm-sched-sidebar{
  width:260px; min-width:240px; max-width:300px;
  background:var(--panel); border:1px solid var(--border);
  border-radius:12px; padding:.9rem; display:flex; flex-direction:column; gap:.6rem;
  position:sticky; top:1rem; height: calc(100vh - 4rem)
}
.xm-sidebar-head strong{color:var(--text)}
.xm-sidebar-sub{font-size:.9rem; color:var(--muted)}
.xm-legend{display:flex; flex-direction:column; gap:.4rem; overflow:auto; padding-right:.25rem; flex:1}
.xm-badge{
  display:block; padding:.48rem .6rem; border-radius:.55rem;
  background:var(--panel-2); color:var(--text); cursor:grab; white-space:nowrap; text-overflow:ellipsis; overflow:hidden;
  border:1px solid var(--border);
}
.xm-badge:hover{outline:2px solid color-mix(in srgb, var(--blue) 35%, white); background:#fff}

.xm-legend-keys{margin-top:.25rem; padding-top:.5rem; border-top:1px solid var(--border); display:grid; gap:.25rem}
.xm-legend-keys .key{display:flex; align-items:center; gap:.5rem; color:var(--muted); font-size:.9rem}
.xm-legend-keys .swatch{width:14px;height:14px;border-radius:4px;border:1px solid var(--border);display:inline-block}
.sw-frueh { background:var(--frueh); border-color:var(--frueh-b); }
.sw-nacht { background:var(--nacht); border-color:var(--nacht-b); }
.sw-urlaub{ background:var(--urlaub);border-color:var(--urlaub-b);}
.sw-krank { background:var(--krank); border-color:var(--krank-b); }
.sw-note  { background:linear-gradient(180deg,var(--blue),var(--blue-2)); }

.xm-sidebar-foot{display:flex; flex-direction:column; gap:.45rem; margin-top:.25rem}
.xm-sidebar-foot button{
  padding:.55rem .75rem; border-radius:.6rem; border:1px solid var(--blue);
  background:linear-gradient(180deg, var(--blue), var(--blue-2));
  color:white; font-weight:600; box-shadow:0 2px 0 rgba(0,0,0,.05)
}
.xm-sidebar-foot button:hover{filter:brightness(1.05)}

.xm-sched-main{flex:1; min-width:0}
.xm-sched-toolbar{display:flex; justify-content:space-between; margin:.25rem 0 .5rem; gap:.5rem}
.xm-sched-toolbar .left button{
  margin-right:.25rem; padding:.45rem .7rem; border-radius:.5rem; border:1px solid var(--border);
  background:#fff; color:var(--text)
}
.xm-sched-toolbar .left button:hover{border-color:var(--blue); color:var(--blue)}
.xm-sub{margin-top:.25rem; color:var(--muted); font-size:.9rem}

/* FullCalendar Light */
.fc .fc-scrollgrid, .fc .fc-scrollgrid-section{border-color:var(--border)}
.fc-theme-standard .fc-scrollgrid{background:#fff}
.fc .fc-daygrid-day{background:#fff; color:var(--text)}
.fc .fc-col-header-cell{background:var(--panel-2); color:var(--text); border-color:var(--border)}
.fc .fc-daygrid-day-frame{padding-bottom:.25rem}
.fc .fc-event{border-width:1px}

/* Events nach Typ */
.fc .xm-ev-frueh { background:var(--frueh);  border-color:var(--frueh-b);  color:#0f2a53; }
.fc .xm-ev-nacht { background:var(--nacht);  border-color:var(--nacht-b);  color:#3b136b; }
.fc .xm-ev-urlaub{ background:var(--urlaub); border-color:var(--urlaub-b); color:#0f4a25; }
.fc .xm-ev-krank { background:var(--krank);  border-color:var(--krank-b);  color:#5a0f0f; }

/* Split-Zonen */
.xm-slot{font-size:.75rem; line-height:1.9; margin:.25rem .25rem 0; border:1px dashed var(--border); border-radius:.5rem; text-align:center; user-select:none; background:var(--panel-2); color:var(--muted)}
.xm-slot-frueh{background:linear-gradient(180deg, rgba(22,119,255,.08), transparent)}
.xm-slot-nacht{background:linear-gradient(180deg, rgba(135,76,255,.08), transparent)}
.xm-slot.over{outline:2px solid var(--blue)}

/* Sonn-/Feiertage */
.fc-daygrid-day.is-sunday .fc-daygrid-day-frame{background:linear-gradient(0deg,var(--sun-bg),transparent 45%)}
.fc-daygrid-day.is-holiday .fc-daygrid-day-frame{background:linear-gradient(0deg,var(--holi-bg),transparent 45%)}


/* Modal */
.xm-modal{position:fixed; inset:0; background:rgba(0,0,0,.25); display:flex; align-items:center; justify-content:center; z-index:10000}
.xm-modal-box{background:#fff; color:var(--text); padding:1rem; border-radius:.9rem; width:min(92vw, 520px); box-shadow:0 20px 60px rgba(0,0,0,.15); border:1px solid var(--border)}
.xm-modal-title{margin:.25rem 0 1rem; font-size:1.1rem}
.xm-modal-info{display:grid; grid-template-columns:1fr; gap:.25rem; padding:.6rem .6rem .8rem; background:var(--panel-2); border-radius:.6rem; margin-bottom:.6rem; border:1px solid var(--border)}
.xm-modal-box label{display:block; margin:.5rem 0}
.xm-modal-box select{width:100%; padding:.55rem; border-radius:.5rem; border:1px solid var(--border); background:#fff; color:var(--text)}
.xm-actions{display:flex; gap:.5rem; justify-content:flex-end; margin-top:.5rem}
.xm-actions button{padding:.5rem .7rem; border-radius:.5rem; border:1px solid var(--border); background:#fff; color:var(--text)}
.xm-actions button:hover{border-color:var(--blue); color:var(--blue)}
.xm-actions .danger{border-color:#e46a6a; background:linear-gradient(180deg,#ff8a8a,#ff6a6a); color:#fff}

/* Event-Titel + Badges */
.fc-event-title{display:inline-flex; align-items:center; gap:.25rem; font-weight:600; font-size:.92rem}
.xm-tags{margin-left:.35rem; display:inline-flex; gap:.25rem; vertical-align:middle}
.xm-tag{display:inline-flex; align-items:center; justify-content:center; padding:0 .38rem; border-radius:.35rem; font-size:.76rem; line-height:1.3; border:1px solid var(--border)}
.xm-tag-type{background:#fff; color:#0f2a53}
.xm-tag-note{background:linear-gradient(180deg,var(--blue),var(--blue-2)); color:#fff; border-color:transparent}


/* Responsive */
@media (max-width: 900px){
  .xm-sched-shell{flex-direction:column}
  .xm-sched-sidebar{position:relative; height:auto}
}

/* ---- PRINT: Nur der Kalender, eine Seite Querformat ---- */
@media print {
  @page { size: A4 landscape; margin: 10mm; }

  /* Site-Chrome ausblenden (keine globalen display:none für *!) */
  header, footer, nav, .site-header, .site-footer, .widget-area,
  .entry-header, .entry-footer, .xm-sched-sidebar, .xm-sched-toolbar,
  .xm-sub, .fc-header-toolbar {
    display: none !important;
  }

  /* Kalenderbereich auf volle Breite */
  .xm-sched-shell { display: block !important; }
  .xm-sched-main, .xm-print-area, #xm-calendar { width: 100% !important; }

  /* FullCalendar kompakt + weißer Hintergrund */
  html, body, .fc, .fc .fc-view-harness, .fc .fc-scrollgrid, .fc .fc-daygrid,
  .xm-print-area, #xm-calendar {
    background: #fff !important;
  }
  .fc, .fc .fc-view-harness, .fc .fc-scrollgrid, .fc .fc-daygrid {
    height: auto !important; max-height: none !important;
  }
  .fc-theme-standard td, .fc-theme-standard th { border-color: #999 !important; }
  .fc .fc-daygrid-day-frame { padding: 2px !important; }
  .fc .fc-daygrid-day-top { padding: 2px 3px !important; }
  .fc .fc-daygrid-day-number, .fc .fc-col-header-cell-cushion { font-size: 11px !important; }
  .fc .fc-event { padding: 1px 3px !important; margin: 2px !important; border-width: 1px !important; box-shadow: none !important; }
  .fc .fc-event-title { font-size: 11px !important; font-weight: 600 !important; }

  /* Drag-Zonen aus */
  .xm-slot { display: none !important; }

  /* kein Seitenumbruch im Grid */
  .fc .fc-scrollgrid, .fc .fc-daygrid, .fc .fc-daygrid-body, .fc .fc-daygrid-body table {
    page-break-inside: avoid !important;
  }

  /* Farben beibehalten */
  * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}
@media print {
  .fc-daygrid-day.is-sunday .fc-daygrid-day-frame,
  .fc-daygrid-day.is-holiday .fc-daygrid-day-frame {
    background: #fff !important;
  }
}

/* ===== Klarere Farben & Erkennung für Schichten ===== */
:root{
  /* Früh */
  --frueh-bg:#e9f3ff;         /* helles Blau */
  --frueh-border:#2b8cff;     /* Akzent Blau */
  --frueh-text:#0f2a4d;

  /* Nacht */
  --nacht-base:#efeaff;       /* helles Violett */
  --nacht-accent:#6a2bff;     /* Akzent Violett */
  --nacht-text:#1b1140;

  /* Urlaub / Krank */
  --urlaub-bg:#e9fbef; --urlaub-border:#22a05a; --urlaub-text:#0d3b22;
  --krank-bg:#ffe9e9;  --krank-border:#e24a4a;  --krank-text:#4d1111;
}

/* ===== Einheitliche Schichtenfarben + Icons für Früh/Nacht ===== */

/* Grund-Event-Styling */
.fc .fc-event {
  border-width: 1px !important;
  border-radius: 8px !important;
  padding: 2px 6px !important;
  font-weight: 600;
}

/* Früh & Nacht – gleiche Farbe, nur Symbol unterscheidet */
.fc .xm-ev-frueh,
.fc .xm-ev-nacht {
  background: #eaf2ff !important;   /* helles, freundliches Blau */
  border-color: #a8c5ff !important;
  color: #0f2a4d !important;
}

/* Früh-Icon ☀️ */
.fc .xm-ev-frueh .fc-event-title::before {
  content: "☀️";
  margin-right: .35rem;
}

/* Nacht-Icon 🌙 */
.fc .xm-ev-nacht .fc-event-title::before {
  content: "🌙";
  margin-right: .35rem;
}

/* Urlaub & Krank – wie bisher farblich klar abgesetzt */
.fc .xm-ev-urlaub {
  background: #e9fbef !important;
  border-color: #9fe2b4 !important;
  color: #0f4a25 !important;
}
.fc .xm-ev-krank {
  background: #ffe9e9 !important;
  border-color: #ffb3b3 !important;
  color: #5a0f0f !important;
}

/* Badge F/N/U/K etwas dezenter */
.xm-tag-type {
  background: rgba(255,255,255,.7);
  border-color: transparent;
  font-weight: 700;
}

/* Druckfarben erhalten */
@media print {
  * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}


/* ===== Einheitliche Schichtenfarben + Icons für Früh/Nacht ===== */

/* Grund-Event-Styling */
.fc .fc-event {
  border-width: 1px !important;
  border-radius: 8px !important;
  padding: 2px 6px !important;
  font-weight: 600;
}

/* Früh & Nacht – gleiche Farbe, nur Symbol unterscheidet */
.fc .xm-ev-frueh,
.fc .xm-ev-nacht {
  background: #eaf2ff !important;   /* helles, freundliches Blau */
  border-color: #a8c5ff !important;
  color: #0f2a4d !important;
}

/* Früh-Icon ☀️ */
.fc .xm-ev-frueh .fc-event-title::before {
  content: "☀️";
  margin-right: .35rem;
}

/* Nacht-Icon 🌙 */
.fc .xm-ev-nacht .fc-event-title::before {
  content: "🌙";
  margin-right: .35rem;
}

/* Urlaub & Krank – wie bisher farblich klar abgesetzt */
.fc .xm-ev-urlaub {
  background: #e9fbef !important;
  border-color: #9fe2b4 !important;
  color: #0f4a25 !important;
}
.fc .xm-ev-krank {
  background: #ffe9e9 !important;
  border-color: #ffb3b3 !important;
  color: #5a0f0f !important;
}

/* Badge F/N/U/K etwas dezenter */
.xm-tag-type {
  background: rgba(255,255,255,.7);
  border-color: transparent;
  font-weight: 700;
}

/* Druckfarben erhalten */
@media print {
  * { -webkit-print-color-adjust: exact; print-color-adjust: exact; }
}
