/* ─── Allgemein ──────────────────────────────────────────────────────────── */
body {
    background: #f0f2f5;
    font-size: 0.92rem;
}
.navbar-brand { font-weight: 700; letter-spacing: -0.3px; }

/* ─── Karten ─────────────────────────────────────────────────────────────── */
.stat-card { border: none; border-radius: 12px; box-shadow: 0 2px 8px rgba(0,0,0,.08); }
.stat-card .card-body { padding: 1.1rem 1.25rem; }
.stat-card .stat-value { font-size: 1.65rem; font-weight: 700; line-height: 1; }
.stat-card .stat-label { font-size: 0.78rem; text-transform: uppercase; letter-spacing: .5px; color: #6c757d; }

/* ─── Preistabelle ───────────────────────────────────────────────────────── */
.price-table th { font-size: 0.8rem; text-transform: uppercase; letter-spacing: .4px; color: #6c757d; background: #f8f9fa; }
.price-badge {
    display: inline-block; min-width: 64px; text-align: center;
    padding: 3px 8px; border-radius: 20px; font-weight: 600; font-size: 0.88rem;
}
.price-best  { background: #d1fae5; color: #065f46; }
.price-mid   { background: #fef9c3; color: #713f12; }
.price-high  { background: #fee2e2; color: #991b1b; }
.price-none  { background: #f1f5f9; color: #94a3b8; font-style: italic; }

/* ─── Beste-Zeit-Heatmap ─────────────────────────────────────────────────── */
.heatmap-table { table-layout: fixed; font-size: 0.72rem; }
.heatmap-table th { text-align: center; padding: 2px 4px; }
.heatmap-table td {
    text-align: center; padding: 3px 2px; border: 1px solid #e5e7eb;
    border-radius: 3px; cursor: default; transition: opacity .15s;
}
.heatmap-table td:hover { opacity: 0.75; }
.hm-empty { background: #f8fafc; color: #ccc; }

/* ─── Charts ─────────────────────────────────────────────────────────────── */
.chart-wrapper { position: relative; height: 340px; }
.chart-wrapper-lg { position: relative; height: 420px; }

/* ─── Kalender ───────────────────────────────────────────────────────────── */
.cal-table { table-layout: fixed; }
.cal-table th { text-align: center; font-size: 0.78rem; color: #6c757d; }
.cal-cell {
    text-align: center; vertical-align: middle;
    height: 52px; padding: 4px; border: 1px solid #e9ecef; border-radius: 4px;
    font-size: 0.82rem; cursor: default;
}
.cal-cell .day-num { font-weight: 600; display: block; }
.cal-cell .cal-label { font-size: 0.65rem; line-height: 1.1; color: #555; }
.cal-holiday   { background: #fee2e2; }
.cal-ferien    { background: #fef3c7; }
.cal-weekend   { background: #f1f5f9; }
.cal-today     { outline: 2px solid #3b82f6; }
.cal-empty     { background: transparent; border-color: transparent; }

/* ─── Sortierbare Tabelle ────────────────────────────────────────────────── */
.sortable { cursor: pointer; user-select: none; white-space: nowrap; }
.sortable:hover { background: #e9ecef !important; }
.sort-icon { font-size: 0.72rem; color: #adb5bd; margin-left: 3px; vertical-align: middle; }
.sort-asc  .sort-icon { color: #0d6efd; }
.sort-desc .sort-icon { color: #0d6efd; }

/* ─── Fetch-Log ──────────────────────────────────────────────────────────── */
#fetchLog { font-size: 0.82rem; max-height: 160px; overflow-y: auto; }
.log-ok    { color: #15803d; }
.log-error { color: #b91c1c; }

/* ─── Tabs ───────────────────────────────────────────────────────────────── */
.nav-tabs .nav-link { font-size: 0.88rem; }
