/* css/calendar.css — calendar grid and sidebar */

#view-calendar { max-width: 100%; }

.calendar-layout {
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 16px;
  align-items: start;
}
@media (max-width: 768px) { .calendar-layout { grid-template-columns: 1fr; } }

/* ── Calendar panel ───────────────────────────────────────────────── */
.cal-panel { }

.cal-nav {
  display: flex; align-items: center; justify-content: space-between;
  margin-bottom: 12px;
}
.cal-month-label { font-size: 15px; font-weight: 600; color: var(--text); }

.cal-grid { width: 100%; border-collapse: collapse; }
.cal-grid th {
  text-align: center; font-size: .75rem; color: var(--text-2);
  padding: 6px 0; text-transform: none; letter-spacing: 0;
  border-bottom: 1px solid var(--border);
}
.cal-grid td {
  text-align: center; vertical-align: top;
  padding: 5px 3px; cursor: pointer;
  font-size: .9rem; min-width: 2.2rem; height: 2.6rem;
  position: relative; border-radius: var(--r-sm);
  border-bottom: none;
  transition: background 0.1s;
}
.cal-grid td:hover { background: var(--surface-1); }
.cal-grid tr:hover td { background: transparent; }
.cal-grid td:hover { background: var(--surface-1); }
.cal-grid td.other-month { color: var(--text-3); }
.cal-grid td.today {
  background: var(--accent-dim); color: var(--accent);
  font-weight: 600; border: 1px solid var(--accent-border);
}
.cal-grid td.today:hover { filter: brightness(1.1); }
.cal-grid td.selected {
  background: var(--surface-2); border: 1px solid var(--border-md);
}

/* absence backgrounds */
.absence-sick            { background: rgba(248,81,73,0.1) !important; }
.absence-vacation-paid   { background: rgba(45,212,191,0.08) !important; }
.absence-vacation-unpaid { background: rgba(139,148,158,0.08) !important; }
.absence-pending         { outline: 2px dashed rgba(139,148,158,0.4) !important; outline-offset: -2px; }

/* deadline dots */
.cal-dot-wrap {
  display: flex; justify-content: center; gap: 2px;
  position: absolute; bottom: 3px; left: 0; right: 0;
}
.cal-dot { width: 4px; height: 4px; border-radius: 50%; display: inline-block; }
.cal-dot-fatal        { background: var(--red); }
.cal-dot-important    { background: var(--amber); }
.cal-dot-nice_to_have { background: var(--text-3); }

/* ── Calendar sidebar ─────────────────────────────────────────────── */
.cal-sidebar { }
.cal-sidebar .card { padding: 14px; }

.sidebar-section { padding-bottom: 12px; margin-bottom: 12px; border-bottom: 1px solid var(--border); }
.sidebar-section:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }

.sidebar-section-header {
  display: flex; align-items: center; gap: 8px; margin-bottom: 8px;
}
.sidebar-section-title {
  font-size: 11px; font-weight: 600; text-transform: uppercase;
  letter-spacing: 0.5px; color: var(--text-2); flex: 1;
}

/* hour log entries */
.hourlog-entry {
  display: flex; align-items: center; gap: 8px;
  padding: 8px 10px;
  background: var(--surface-1); border: 1px solid var(--border);
  border-radius: var(--r-sm); margin-bottom: 4px; font-size: 13px;
}
.hourlog-entry-info { flex: 1; min-width: 0; }
.hourlog-wi { font-size: 13px; font-weight: 500; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.hourlog-time {
  font-family: 'DM Mono', monospace; font-size: 11px;
  color: var(--text-2); margin-top: 1px;
}
.hourlog-duration { font-size: 12px; color: var(--text-2); white-space: nowrap; }
.hourlog-del-btn { flex-shrink: 0; }
.hourlog-del-btn:disabled { opacity: .35; cursor: not-allowed; }

/* absence entries in sidebar */
.absence-entry { padding: 6px 0; border-bottom: 1px solid var(--border); font-size: 13px; }
.absence-entry:last-child { border-bottom: none; }
.absence-meta { font-size: 12px; color: var(--text-2); margin-top: 3px; }
