/* ── Dashboard-Kalender ────────────────────────────────────────
   Nutzt CSS-Variablen aus :root (app.html) — reagiert auf
   data-theme="dark" / data-theme="light" automatisch.
── */
.calendar-container { max-width: 1400px; margin: 0 auto; }

.cal-db { background:var(--bg2); border:1px solid var(--border); border-radius:12px; overflow:hidden; color:var(--txt); font-family:var(--font-body); }

/* Header */
.cal-db-header { display:flex; align-items:center; justify-content:space-between; padding:16px 20px; border-bottom:1px solid var(--border); gap:12px; flex-wrap:wrap; }
.cal-db-header-title { font-size:1rem; font-weight:700; color:var(--txt); }
.cal-db-header-btns { display:flex; gap:8px; align-items:center; flex-wrap:wrap; }
.cal-db-gcal-badge { display:flex; align-items:center; gap:6px; padding:4px 10px; background:rgba(108,191,110,.12); border:1px solid var(--green); border-radius:6px; font-size:.74rem; color:var(--green); white-space:nowrap; }

/* Buttons */
.cal-db .btn { font-family:var(--font-body); }
.cal-db .btn-secondary { background:transparent; border:1px solid var(--border); color:var(--txt2); border-radius:6px; }
.cal-db .btn-secondary:hover { background:var(--bg3); border-color:var(--cyan); color:var(--txt); }
.cal-db .btn-primary { background:var(--cyan); color:var(--bg); border:none; border-radius:6px; font-weight:700; }
.cal-db .btn-primary:hover { opacity:.85; }

/* Stat-Karten */
.cal-db-stats { display:grid; gap:1px; background:var(--border); }
.cal-db-stat { background:var(--bg2); padding:14px 18px; display:flex; flex-direction:column; gap:4px; }
.cal-db-stat-val { font-size:1.6rem; font-weight:800; line-height:1; }
.cal-db-stat-label { font-size:.7rem; color:var(--txt2); text-transform:uppercase; letter-spacing:.05em; }
.cal-db-stat-sub { font-size:.72rem; color:var(--txt3); }

/* Haupt-Layout */
.cal-db-main { display:grid; grid-template-columns:1fr 300px; gap:1px; background:var(--border); }
.cal-db-calendar { background:var(--bg2); padding:20px; }
.cal-db-sidebar { background:var(--bg2); padding:16px; overflow:hidden; }

/* Monatsnavigation */
.cal-db-nav { display:flex; align-items:center; gap:10px; margin-bottom:16px; }
.cal-db-nav-month { font-size:.95rem; font-weight:700; flex:1; color:var(--txt); }
.cal-db-nav-btn { width:28px; height:28px; border-radius:6px; background:var(--bg3); border:1px solid var(--border); color:var(--txt2); cursor:pointer; display:flex; align-items:center; justify-content:center; font-size:.9rem; transition:.15s; }
.cal-db-nav-btn:hover { border-color:var(--cyan); color:var(--txt); }

/* Kalender-Grid */
.cal-db-grid { display:grid; grid-template-columns:repeat(7,1fr); gap:2px; }
.cal-db-head { text-align:center; font-size:.68rem; color:var(--txt3); font-family:var(--font-mono); padding:4px 0 8px; text-transform:uppercase; }
.cal-db-cell { background:var(--bg3); border-radius:6px; min-height:90px; padding:7px; cursor:pointer; transition:background .15s; position:relative; }
.cal-db-cell:hover { background:var(--border); }
.cal-db-cell.today { background:rgba(99,189,166,.08); outline:1.5px solid var(--cyan); }
.cal-db-cell.other { opacity:.35; pointer-events:none; }
.cal-db-day-num { font-size:.75rem; font-weight:600; color:var(--txt2); margin-bottom:4px; }
.cal-db-cell.today .cal-db-day-num { color:var(--cyan); font-weight:700; }

/* Event-Chips */
.cal-db-chip { font-size:.62rem; padding:2px 5px; border-radius:3px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; margin-bottom:2px; font-weight:500; line-height:1.4; }
.cal-db-chip.lernsitzung { background:rgba(99,189,166,.2);  color:var(--cyan); }
.cal-db-chip.modultest   { background:rgba(108,191,110,.2); color:var(--green); }
.cal-db-chip.pruefung    { background:rgba(217,122,114,.2); color:var(--red); font-weight:700; }
.cal-db-chip.google      { background:rgba(99,189,166,.15); color:var(--cyan); }
.cal-db-chip.personal    { background:rgba(214,162,63,.15); color:var(--yellow); }

/* Sidebar */
.cal-db-sidebar-title { font-size:.68rem; color:var(--txt3); text-transform:uppercase; letter-spacing:.08em; font-family:var(--font-mono); margin-bottom:10px; }
.cal-db-upcoming-item { display:flex; gap:8px; padding:7px 0; border-bottom:1px solid var(--border); align-items:flex-start; }
.cal-db-upcoming-item:last-child { border-bottom:none; }
.cal-db-upcoming-dot { width:8px; height:8px; border-radius:50%; flex-shrink:0; margin-top:4px; }
.cal-db-upcoming-title { font-size:.82rem; font-weight:500; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; color:var(--txt); }
.cal-db-upcoming-date { font-size:.72rem; color:var(--txt2); margin-top:1px; }

/* Countdown-Balken */
.cal-db-cd-row { display:flex; align-items:center; gap:8px; margin-bottom:8px; }
.cal-db-cd-label { font-size:.78rem; font-weight:600; min-width:30px; }
.cal-db-cd-bar-bg { flex:1; height:5px; background:var(--bg3); border-radius:3px; }
.cal-db-cd-bar-fill { height:100%; border-radius:3px; }
.cal-db-cd-days { font-size:.72rem; min-width:40px; text-align:right; }

/* Agenda-Footer */
.cal-db-footer { padding:16px 20px; border-top:1px solid var(--border); background:var(--bg2); }
.cal-db-footer-title { font-size:.72rem; color:var(--txt3); text-transform:uppercase; letter-spacing:.08em; margin-bottom:10px; }
.cal-db-agenda-row { display:flex; align-items:center; gap:10px; padding:6px 0; border-bottom:1px solid var(--border); cursor:pointer; transition:background .1s; }
.cal-db-agenda-row:last-child { border-bottom:none; }
.cal-db-agenda-row:hover { background:rgba(128,128,128,.06); border-radius:4px; }
.cal-db-agenda-date { font-size:.72rem; color:var(--txt2); min-width:56px; font-family:var(--font-mono); flex-shrink:0; }
.cal-db-agenda-title { font-size:.84rem; flex:1; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; color:var(--txt); }
.cal-db-agenda-badge { font-size:.72rem; font-weight:600; padding:2px 7px; border-radius:4px; flex-shrink:0; }
.cal-db-agenda-time { font-size:.72rem; color:var(--txt3); flex-shrink:0; white-space:nowrap; }

/* Legende */
.cal-db-legend { display:flex; gap:14px; flex-wrap:wrap; padding:10px 16px; border-top:1px solid var(--border); background:var(--bg2); }
.cal-db-legend-item { display:flex; align-items:center; gap:5px; font-size:.7rem; color:var(--txt2); }
.cal-db-legend-dot { width:8px; height:8px; border-radius:2px; flex-shrink:0; }

/* ── Lerninhalte nach Fach — Accordion ──────────────────────────────────── */
.cal-fach-section { padding:16px 20px 20px; border-top:1px solid var(--border); background:var(--bg2); }
.cal-fach-section-title { font-size:.68rem; color:var(--txt3); text-transform:uppercase; letter-spacing:.08em; font-family:var(--font-mono); margin-bottom:12px; }
.cal-fach-row {
  display:flex; align-items:center; gap:10px;
  padding:10px 14px; background:var(--bg3); border-radius:8px;
  cursor:pointer; margin-bottom:4px;
  transition:background .15s, border-color .15s;
  border:1px solid transparent; user-select:none;
}
.cal-fach-row:hover { background:var(--border); border-color:var(--border); }
.cal-fach-row.open { background:rgba(99,189,166,.06); border-color:var(--cyan); border-radius:8px 8px 0 0; margin-bottom:0; }
.cal-fach-row-emoji { font-size:1.1rem; flex-shrink:0; line-height:1; }
.cal-fach-row-name  { font-size:.88rem; font-weight:600; color:var(--txt); flex:1; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.cal-fach-row-meta  { font-size:.72rem; color:var(--txt2); flex-shrink:0; white-space:nowrap; }
.cal-fach-row-arrow { font-size:.9rem; color:var(--txt3); flex-shrink:0; transition:transform .2s; line-height:1; }
.cal-fach-row.open .cal-fach-row-arrow { transform:rotate(90deg); color:var(--cyan); }

.cal-fach-detail {
  display:none; padding:10px 14px 14px 44px;
  background:var(--bg); border:1px solid var(--cyan);
  border-top:none; border-radius:0 0 8px 8px;
  margin-bottom:4px;
}
.cal-fach-detail.open { display:block; }

.cal-fach-evt {
  display:flex; align-items:center; gap:8px;
  padding:6px 0; border-bottom:1px solid var(--bg3);
  cursor:pointer; transition:background .1s; border-radius:3px;
}
.cal-fach-evt:last-of-type { border-bottom:none; }
.cal-fach-evt:hover { background:rgba(128,128,128,.06); }
.cal-fach-evt-dot   { width:6px; height:6px; border-radius:50%; flex-shrink:0; }
.cal-fach-evt-title { font-size:.82rem; flex:1; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; color:var(--txt); }
.cal-fach-evt-badge { font-size:.66rem; padding:1px 6px; border-radius:4px; flex-shrink:0; font-weight:600; }
.cal-fach-evt-date  { font-size:.7rem; color:var(--txt2); flex-shrink:0; white-space:nowrap; }
.cal-fach-action-row { display:flex; gap:8px; margin-top:10px; padding-top:8px; border-top:1px solid var(--bg3); }
