/* ============================================================
   pages/ridingschool.css — Reitschule (0.1.6 / 0.1.8)
   ------------------------------------------------------------
   0.1.8: Wochenübersicht von horizontal scrollender Tabelle auf
   responsive Grid umgebaut. Desktop = 7 Spalten, Tablet = 2,
   Mobile = 1 — vertikal stackt sauber, kein Scroll-Balken mehr.
============================================================ */

/* ----------------------------------------------------------------
   Wochenübersicht — responsive Grid
   ---------------------------------------------------------------- */
.rs-pub-week {
    display: grid;
    grid-template-columns: repeat(7, minmax(0, 1fr));
    gap: 10px;
    margin-top: 12px;
}

@media (max-width: 1100px) {
    .rs-pub-week { grid-template-columns: repeat(3, minmax(0, 1fr)); }
}

@media (max-width: 800px) {
    .rs-pub-week { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 520px) {
    .rs-pub-week { grid-template-columns: 1fr; gap: 8px; }
}

/* ----------------------------------------------------------------
   Tages-Block
   ---------------------------------------------------------------- */
.rs-pub-week-day {
    display: flex;
    flex-direction: column;
    background: var(--pub-bg-surface);
    border: 1px solid var(--pub-border);
    border-radius: var(--pub-radius-md);
    box-shadow: var(--pub-shadow-sm);
    min-width: 0;
    overflow: hidden;
}

.rs-pub-week-day.is-today {
    border-color: var(--pub-brand);
    box-shadow: 0 0 0 1px var(--pub-brand-soft), var(--pub-shadow-sm);
}

.rs-pub-week-day-header {
    background: var(--pub-bg-subtle);
    padding: 8px 12px;
    border-bottom: 1px solid var(--pub-border);
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 6px;
}

.rs-pub-week-day.is-today .rs-pub-week-day-header {
    background: var(--pub-brand-tint);
    border-bottom-color: var(--pub-brand-soft);
}

.rs-pub-week-day-name {
    font-weight: 600;
    color: var(--pub-text);
    font-size: 0.9rem;
    text-transform: capitalize;
}

.rs-pub-week-day-date {
    color: var(--pub-text-muted);
    font-size: 0.82rem;
    font-variant-numeric: tabular-nums;
}

.rs-pub-week-day-body {
    padding: 8px 10px;
    flex: 1;
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.rs-pub-week-day-empty {
    margin: 0;
    color: var(--pub-text-muted);
    font-style: italic;
    text-align: center;
    font-size: 0.85rem;
    padding: 12px 0;
}

/* ----------------------------------------------------------------
   Lesson-Card innerhalb einer Tageszelle
   ---------------------------------------------------------------- */
.rs-pub-lesson {
    background: var(--pub-bg-subtle);
    border-left: 3px solid var(--pub-brand);
    border-radius: var(--pub-radius-sm);
    padding: 8px 10px;
    margin-bottom: 0;
    font-size: 0.88rem;
    line-height: 1.5;
    color: var(--pub-text);
}

.rs-pub-lesson:last-child { margin-bottom: 0; }

.rs-pub-lesson__title {
    font-weight: 600;
    color: var(--pub-text);
}

.rs-pub-lesson__meta {
    color: var(--pub-text-muted);
    font-size: 0.82rem;
}

.rs-pub-lesson__participants {
    margin-top: 6px;
    padding-top: 6px;
    border-top: 1px dashed var(--pub-border);
    font-size: 0.82rem;
}

.rs-pub-lesson__participants ul {
    margin: 4px 0 0;
    padding-left: 18px;
    color: var(--pub-text);
}

.rs-pub-lesson__participants em {
    color: var(--pub-text-muted);
    font-style: italic;
}

.rs-pub-lesson__link {
    display: inline-block;
    margin-top: 6px;
    color: var(--pub-brand);
    font-weight: 600;
    text-decoration: none;
    font-size: 0.82rem;
}

.rs-pub-lesson__link:hover,
.rs-pub-lesson__link:focus-visible {
    color: var(--pub-brand-strong);
    text-decoration: underline;
    outline: none;
}

/* ----------------------------------------------------------------
   Detail-Page (lesson.php)
   ---------------------------------------------------------------- */
.rs-pub-detail-meta {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
    gap: 10px;
    margin: 8px 0 20px;
}

.rs-pub-detail-meta__item {
    background: var(--pub-bg-subtle);
    padding: 10px 12px;
    border-radius: var(--pub-radius-sm);
    border-left: 3px solid var(--pub-brand);
}

.rs-pub-detail-meta__label {
    display: block;
    font-size: 0.78rem;
    font-weight: 600;
    color: var(--pub-text-muted);
    text-transform: uppercase;
    letter-spacing: 0.04em;
    margin-bottom: 2px;
}

.rs-pub-detail-meta__value {
    color: var(--pub-text);
    font-weight: 600;
}

.rs-pub-date-form {
    display: flex;
    flex-wrap: wrap;
    align-items: end;
    gap: 10px;
    margin: 12px 0 18px;
}

.rs-pub-date-form .pub-field { margin: 0; flex: 1 1 220px; }

/* ----------------------------------------------------------------
   Teilnehmer-Tabelle
   ---------------------------------------------------------------- */
.rs-pub-table-wrap {
    background: var(--pub-bg-surface);
    border: 1px solid var(--pub-border);
    border-radius: var(--pub-radius-md);
    overflow: hidden;
    box-shadow: var(--pub-shadow-sm);
}

.rs-pub-table {
    width: 100%;
    border-collapse: collapse;
}

.rs-pub-table th,
.rs-pub-table td {
    padding: 10px 14px;
    text-align: left;
    border-bottom: 1px solid var(--pub-border);
}

.rs-pub-table th {
    background: var(--pub-bg-subtle);
    color: var(--pub-text-muted);
    font-size: 0.82rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: 0.04em;
}

.rs-pub-table tbody tr:last-child td { border-bottom: 0; }

.rs-pub-table-empty {
    text-align: center;
    color: var(--pub-text-muted);
    font-style: italic;
    padding: 20px !important;
}

/* ============================================================
   0.1.8.1 — Mobile-Anpassung Teilnehmer-Tabelle
   ------------------------------------------------------------
   Auf schmalen Viewports war die Tabelle abgeschnitten — die
   "Anmerkung"-Spalte ragte rechts raus. Statt horizontalem Scroll
   wird die Tabelle bei <600px zu einem Card-Layout: jeder
   Teilnehmer ist eine eigene Card, die Spalten-Header werden per
   data-label-Attribut + ::before als Mini-Labels angezeigt.

   Voraussetzung: jedes <td> trägt data-label="...".
============================================================ */

@media (max-width: 600px) {

    /* Das Wrapper-Stück: kein Wrap mehr nötig, weil Tabelle stacked */
    .rs-pub-table-wrap {
        border: 0;
        background: transparent;
        box-shadow: none;
        overflow: visible;
    }

    /* Tabelle als Block-Stack */
    .rs-pub-table,
    .rs-pub-table thead,
    .rs-pub-table tbody,
    .rs-pub-table tr,
    .rs-pub-table td {
        display: block;
        width: 100%;
    }

    /* Spalten-Header verstecken — werden via data-label gerendert */
    .rs-pub-table thead {
        position: absolute;
        left: -9999px;
        height: 0;
        overflow: hidden;
    }

    /* Jede Tabellen-Zeile wird eine Card */
    .rs-pub-table tr {
        background: var(--pub-bg-surface);
        border: 1px solid var(--pub-border);
        border-radius: var(--pub-radius-md);
        box-shadow: var(--pub-shadow-sm);
        margin-bottom: 10px;
        padding: 4px 0;
    }

    .rs-pub-table tr:last-child { margin-bottom: 0; }

    /* Jede Zelle wird eine Zeile mit kleinem Label oben */
    .rs-pub-table td {
        padding: 8px 14px;
        border-bottom: 1px dashed var(--pub-border);
        text-align: left;
    }

    .rs-pub-table td:last-child {
        border-bottom: 0;
    }

    /* Label = data-label-Attribut, oben in muted-uppercase */
    .rs-pub-table td::before {
        content: attr(data-label);
        display: block;
        font-size: 0.72rem;
        font-weight: 600;
        color: var(--pub-text-muted);
        text-transform: uppercase;
        letter-spacing: 0.04em;
        margin-bottom: 3px;
    }

    /* "Keine Teilnehmer"-Zelle — kein Label davor */
    .rs-pub-table-empty,
    .rs-pub-table td.rs-pub-table-empty {
        padding: 16px !important;
        text-align: center;
    }
    .rs-pub-table-empty::before {
        content: none;
    }

    /* Date-Form: bei wenig Platz Select voll-breit, Button drunter */
    .rs-pub-date-form {
        flex-direction: column;
        align-items: stretch;
    }
    .rs-pub-date-form .pub-field {
        flex: 1 1 auto;
    }
    .rs-pub-date-form .pub-btn {
        width: 100%;
    }
}
