/* Kalender-Symbol in der App-Leiste (Font Awesome: calendar-alt) */
#taskmenu a.calendar:before { content: "\f073"; }

/* ---------- Kalenderseite ---------- */
body.task-calendar #layout-content { display: flex; flex-direction: column; min-width: 0; }
.olcal-body { flex: 1 1 auto; min-height: 0; padding: 0 12px 12px; background: var(--ol-card, #fff); }
.olcal-header { display: flex !important; align-items: center; gap: 12px; padding: 0 16px !important; height: 56px; }
.olcal-header .header-title { display: none !important; }
.olcal-nav { display: flex; align-items: center; gap: 4px; flex: 1; min-width: 0; }
.olcal-nav h2 { margin: 0 0 0 10px; font-size: 18px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.olcal-btn {
  height: 32px; padding: 0 14px; border: 1px solid var(--ol-stroke, #d1d1d1); border-radius: 6px;
  background: var(--ol-card, #fff); color: var(--ol-fg, #242424); font: 600 13px var(--ol-font, sans-serif); cursor: pointer;
}
.olcal-btn:hover { background: var(--ol-hover, #f5f5f5); }
.olcal-primary { background: var(--ol-brand, #0f6cbd); border-color: transparent; color: #fff; }
.olcal-primary:hover { background: var(--ol-brand-hover, #115ea3); }
.olcal-danger { color: #c50f1f; border-color: transparent; background: transparent; }
.olcal-danger:hover { background: rgba(197, 15, 31, .08); }
.olcal-icon {
  width: 32px; height: 32px; padding: 0; border: 0; border-radius: 6px; background: transparent;
  color: var(--ol-fg-2, #424242); font-size: 22px; line-height: 1; cursor: pointer;
}
.olcal-icon:hover { background: var(--ol-hover, #f5f5f5); }
.olcal-views { display: inline-flex; padding: 2px; border: 1px solid var(--ol-stroke, #e0e0e0); border-radius: 8px; background: var(--ol-card-2, #fafafa); }
.olcal-views button {
  height: 28px; padding: 0 12px; border: 0; border-radius: 6px; background: transparent;
  color: var(--ol-fg-2, #424242); font: 500 13px var(--ol-font, sans-serif); cursor: pointer;
}
.olcal-views button.active, .olcal-views button.active:hover { background: var(--ol-card, #fff) !important; color: var(--ol-brand, #0f6cbd) !important; box-shadow: 0 1px 2px rgba(0, 0, 0, .12); font-weight: 600; opacity: 1 !important; }
.olcal-views button:hover { background: rgba(0, 0, 0, .04); color: var(--ol-fg, #242424); }
@media (max-width: 1100px) { .olcal-views button[data-view="listMonth"] { display: none; } }
@media (max-width: 768px) { .olcal-views { display: none; } .olcal-nav h2 { font-size: 15px; } }

/* Seitenleiste */
.olcal-new-wrap { padding: 4px 12px 14px; }
.olcal-new {
  display: inline-flex; align-items: center; gap: 8px; height: 36px; padding: 0 16px; border: 0; border-radius: 4px;
  background: var(--ol-brand, #0f6cbd); color: #fff; font: 600 14px var(--ol-font, sans-serif); cursor: pointer;
  box-shadow: var(--ol-shadow, 0 1px 2px rgba(0, 0, 0, .14));
}
.olcal-new:hover { background: var(--ol-brand-hover, #115ea3); }
.olcal-plus { font-size: 18px; line-height: 1; }
.olcal-section-title { padding: 10px 16px 6px; color: var(--ol-fg-3, #616161); font-size: 12px; font-weight: 600; text-transform: uppercase; letter-spacing: .04em; }
.olcal-list { list-style: none; margin: 0; padding: 0 8px; }
.olcal-list label { display: flex; align-items: center; gap: 10px; padding: 7px 8px; border-radius: 4px; cursor: pointer; font-size: 14px; }
.olcal-list label:hover { background: rgba(0, 0, 0, .05); }
.olcal-list input { accent-color: var(--olcal-color); width: 16px; height: 16px; margin: 0; }
.olcal-swatch { display: none; }
.olcal-sync { margin-top: 18px; }
.olcal-sync p { margin: 0 16px; color: var(--ol-fg-3, #616161); font-size: 12.5px; line-height: 1.5; word-break: break-word; }

/* FullCalendar im Outlook-Look */
#olcal { --fc-border-color: var(--ol-stroke, #e8e8e8); --fc-today-bg-color: rgba(15, 108, 189, .06); --fc-now-indicator-color: #c50f1f;
  --fc-page-bg-color: var(--ol-card, #fff); --fc-neutral-bg-color: var(--ol-card-2, #fafafa); --fc-list-event-hover-bg-color: var(--ol-hover, #f5f5f5);
  --fc-highlight-color: rgba(15, 108, 189, .12); --fc-non-business-color: rgba(0, 0, 0, .025);
  font-family: var(--ol-font, sans-serif); font-size: 13px; color: var(--ol-fg, #242424); }
#olcal .fc-col-header-cell { padding: 6px 0; font-weight: 600; color: var(--ol-fg-2, #424242); }
#olcal .fc-col-header-cell-cushion, #olcal .fc-daygrid-day-number { color: inherit; text-decoration: none; }
#olcal .fc-day-today .fc-daygrid-day-number { display: inline-grid; place-items: center; min-width: 24px; height: 24px; margin: 2px; border-radius: 12px; background: var(--ol-brand, #0f6cbd); color: #fff; }
#olcal .fc-timegrid-slot { height: 2.4em; }
#olcal .fc-timegrid-slot-label-cushion { color: var(--ol-fg-3, #616161); font-size: 12px; }
#olcal .fc-event { border-radius: 4px; border-width: 0 0 0 3px; padding: 1px 3px; box-shadow: 0 1px 2px rgba(0, 0, 0, .08); }
#olcal .fc-timegrid-event .fc-event-main, #olcal .fc-daygrid-block-event .fc-event-main { color: #fff; }
#olcal .fc-daygrid-dot-event:hover, #olcal .fc-daygrid-event:hover { background: var(--ol-hover, #f5f5f5); }
#olcal .fc-list-event-title, #olcal .fc-list-day-cushion { font-size: 13px; }
#olcal .fc-scrollgrid { border-radius: 8px; overflow: hidden; }
#olcal .fc-week-number, #olcal .fc-timegrid-axis-cushion { color: var(--ol-fg-3, #616161); font-size: 11px; text-decoration: none; }
html.dark-mode #olcal { --fc-non-business-color: rgba(255, 255, 255, .025); --fc-today-bg-color: rgba(71, 158, 245, .08); }

/* Dialog */
.olcal-overlay { position: fixed; inset: 0; z-index: 2000; display: grid; place-items: center; padding: 16px; background: rgba(0, 0, 0, .35); }
.olcal-dialog { width: min(560px, 100%); max-height: calc(100vh - 32px); display: flex; flex-direction: column; border-radius: 12px; background: var(--ol-card, #fff); color: var(--ol-fg, #242424); box-shadow: 0 16px 40px rgba(0, 0, 0, .25); font-family: var(--ol-font, sans-serif); }
.olcal-dialog-head { display: flex; align-items: center; justify-content: space-between; padding: 16px 20px 0; }
.olcal-dialog-head h3 { margin: 0; font-size: 13px; font-weight: 600; color: var(--ol-fg-3, #616161); text-transform: uppercase; letter-spacing: .04em; }
.olcal-x { width: 32px; height: 32px; border: 0; border-radius: 6px; background: transparent; color: var(--ol-fg-3, #616161); font-size: 22px; cursor: pointer; }
.olcal-x:hover { background: var(--ol-hover, #f5f5f5); }
.olcal-dialog-body { padding: 8px 20px 4px; overflow: auto; }
.olcal-title-input { width: 100%; height: 44px; margin: 0 0 12px; padding: 0 2px; border: 0; border-bottom: 2px solid var(--ol-stroke, #e0e0e0); background: transparent; color: inherit; font: 600 20px var(--ol-font, sans-serif); outline: none; }
.olcal-title-input:focus { border-bottom-color: var(--ol-brand, #0f6cbd); }
.olcal-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 12px 14px; }
.olcal-grid label { display: flex; flex-direction: column; gap: 4px; font-size: 12.5px; font-weight: 600; color: var(--ol-fg-2, #424242); }
.olcal-grid .olcal-wide, .olcal-grid .olcal-check { grid-column: 1 / -1; }
.olcal-grid .olcal-check { flex-direction: row; align-items: center; gap: 8px; font-weight: 500; }
.olcal-grid .form-control { height: 36px; font-weight: 400; }
.olcal-grid textarea.form-control { height: auto; }
.olcal-note { margin: 0 0 12px; padding: 8px 12px; border-radius: 6px; background: #fff4ce; color: #5c4400; font-size: 13px; }
.olcal-dialog-foot { display: flex; align-items: center; gap: 8px; padding: 16px 20px; }
.olcal-spacer { flex: 1; }
@media (max-width: 560px) { .olcal-grid { grid-template-columns: 1fr; } }

#olcal .fc-daygrid-dot-event .fc-event-title { color: var(--ol-fg, #242424); font-weight: 600; }
#olcal .fc-daygrid-dot-event .fc-event-time { color: var(--ol-fg-3, #616161); }
#olcal .fc-list-event-time { color: var(--ol-fg-3, #616161); }
