/*
 * TimeSpy – my-absences
 * Ferien- und Abwesenheiten-Selbstbedienungsseiten.
 */

.inline-cancel-form {
    display: inline;
}

.inline-cancel-button {
    margin-left: 8px;
}

/*
 * Blauer Akzent für die Titel-Kachel - dieselbe Farbe wie die
 * Arbeitszeit-Kachel mit dem Monatstitel, für einen einheitlichen
 * "roten Faden" zwischen den beiden Seiten.
 */
.my-absences-hero-header {
    background: var(--accent-soft);
    border-color: rgba(37, 99, 235, .18);
}

/* -------------------------------------------------------
   Layout: zwei kompakte, farblich getrennte Panels
   nebeneinander auf breiten Bildschirmen, untereinander auf
   schmalen. Jeder Bereich ist EIN durchgehend eingefärbtes
   Panel statt mehrerer gestapelter Karten - deutlich
   übersichtlicher und kompakter als vorher.
   ------------------------------------------------------- */

.my-absences-panels {
    display: flex;
    flex-direction: column;

    gap: 20px;
}

@media (max-width: 1000px) {

    .my-absences-panels {
        grid-template-columns: 1fr;
    }
}

/*
 * Ferien: Indigo. Abwesenheiten: Türkis - bewusst weder Gelb
 * (= "Beantragt"-Status), Grün (= "Genehmigt"-Status), Rot
 * (= "Krankheit/Unfall") noch Violett (= "Sonstige Abwesenheit"),
 * damit diese reinen Bereichs-Markierungen niemals mit der
 * Status-/Typ-Farblogik (AbsenceColors.php) verwechselt werden
 * können, die im ganzen Programm dieselbe Bedeutung trägt.
 */

.my-absences-panel--ferien {
    --panel-accent: #4f46e5;
    --panel-accent-soft: rgba(0, 0, 0, .015);
    --panel-accent-border: var(--border);
}

.my-absences-panel--abwesenheiten {
    --panel-accent: #0d9488;
    --panel-accent-soft: rgba(0, 0, 0, .015);
    --panel-accent-border: var(--border);
}

/*
 * Flex-Spalte: dadurch kann der Verlauf-Bereich per
 * margin-top:auto an den unteren Rand "andocken". Stretcht die
 * Grid-Zelle (siehe .my-absences-panels oben) beide Panels
 * automatisch auf dieselbe Höhe, landet der zusätzliche Freiraum
 * dadurch VOR dem Verlauf statt als Lücke danach - beide
 * Verlauf-Bereiche beginnen dadurch auf gleicher Höhe, auch wenn
 * ein Panel (z.B. Ferien mit Kennzahlen-Raster) mehr eigenen
 * Inhalt hat als das andere.
 */
.my-absences-panel {
    display: flex;
    flex-direction: column;

    background: var(--panel-accent-soft);
    border: 1px solid var(--panel-accent-border);

    padding: 22px;
}

.my-absences-panel-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;

    gap: 12px;

    flex-wrap: wrap;
}

.my-absences-panel-title {
    display: flex;
    align-items: baseline;

    gap: 8px;
}

.my-absences-panel-title h3 {
    margin: 0;

    font-size: 1.15rem;
}

.my-absences-panel-dot {
    width: 10px;
    height: 10px;

    border-radius: 50%;

    background: var(--panel-accent);

    flex-shrink: 0;

    position: relative;
    top: -1px;
}

/*
 * Grosse, sofort sichtbare Kennzahl - das Wichtigste zuerst,
 * statt es in einem Raster zwischen anderen Werten zu
 * verstecken.
 */
.my-absences-hero-stat {
    text-align: right;
}

.my-absences-hero-stat span {
    display: block;

    color: var(--text-muted);
    font-size: .72rem;
    font-weight: 600;
    text-transform: uppercase;
    letter-spacing: .02em;
}

.my-absences-hero-stat strong {
    font-size: 1.5rem;
    font-weight: 750;

    color: var(--panel-accent);
}

/*
 * Kompaktes Kennzahlen-Raster - kleine, dichte Chips statt
 * grosser Karten-Zeilen.
 */
.my-absences-mini-stats {
    display: grid;
    grid-template-columns: repeat(5, minmax(0, 1fr));

    gap: 10px;

    margin-top: 16px;
}

@media (max-width: 640px) {

    .my-absences-mini-stats {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.my-absences-mini-stats > div {
    padding: 8px 10px;

    background: var(--bg-solid);
    border-radius: 8px;
}

.my-absences-mini-stats span {
    display: block;

    color: var(--text-muted);
    font-size: .66rem;
    font-weight: 600;
}

.my-absences-mini-stats strong {
    display: block;

    margin-top: 2px;

    font-size: .82rem;
    font-weight: 700;
}

.my-absences-toggle-btn {
    margin-top: 16px;
}

.my-absences-request-form {
    margin-top: 16px;

    padding: 16px;

    background: var(--bg-solid);
    border-radius: 10px;
}

.my-absences-verlauf {
    padding-top: 18px;

    border-top: 1px solid var(--panel-accent-border);
}

.my-absences-verlauf h4 {
    margin: 0 0 12px;

    font-size: .78rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .02em;

    color: var(--text-muted);
}

.my-absences-panel .history-tab.is-active {
    background: var(--bg-solid);
    color: var(--panel-accent);
}

/*
 * Feste Höhe mit eigenem Scrollbereich für die Verlauf-Liste.
 * Das ist der eigentliche Kern-Fix: unabhängig davon, wie viele
 * Einträge ein Reiter hat (1 oder 20), bleibt die Gesamthöhe der
 * Kachel dadurch konstant - die Reiterleiste selbst bewegt sich
 * beim Wechseln nie, und die andere Kachel wird durch das
 * Grid-Stretching nicht mehr beeinflusst.
 */
.history-list-scroll {
    max-height: 280px;

    overflow-y: auto;
}

.history-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;

    gap: 10px;

    margin-bottom: 14px;

    scroll-margin-top: 24px;
}

.history-year-nav {
    display: flex;
    align-items: center;

    gap: 8px;

    font-size: .82rem;
    font-weight: 650;
}

.history-tabs {
    display: flex;
    gap: 4px;

    padding: 4px;

    background: rgba(0, 0, 0, .035);
    border-radius: 10px;

    width: fit-content;
}

.history-tab {
    padding: 6px 12px;

    border-radius: 7px;

    color: var(--text-muted);
    font-size: .76rem;
    font-weight: 600;
    text-decoration: none;
}

.history-tab.is-active {
    background: var(--accent-soft);
    color: var(--accent);
}

/*
 * Moderne Karten-Darstellung für den Verlauf, statt einzelner
 * schmuckloser Textzeilen: farbiger linker Rand nach Typ/Status
 * (dieselbe Farblogik wie überall sonst), grosses Datum links,
 * klare Titel-/Meta-Hierarchie, Aktion rechts.
 */
.history-card-list {
    display: flex;
    flex-direction: column;

    gap: 8px;
}

.history-card {
    display: flex;
    align-items: center;

    gap: 14px;

    padding: 12px 14px;

    background: var(--surface);
    border: 1px solid var(--border);
    border-left: 3px solid transparent;
    border-radius: 12px;
}

.history-card.absence-color-pending {
    border-left-color: #a16207;
}

.history-card.absence-color-approved {
    border-left-color: #16a34a;
}

.history-card.absence-color-illness {
    border-left-color: #dc2626;
}

.history-card.absence-color-other {
    border-left-color: #6d28d9;
}

.history-card-date {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    flex-shrink: 0;

    width: 48px;
    height: 48px;

    background: var(--bg-solid);
    border-radius: 10px;

    line-height: 1.1;
}

.history-card-date-day {
    font-size: 1.05rem;
    font-weight: 750;
    color: var(--text-primary);
}

.history-card-date-month {
    font-size: .64rem;
    font-weight: 650;
    text-transform: uppercase;
    color: var(--text-muted);
}

.history-card-body {
    flex: 1;
    min-width: 0;
}

.history-card-title {
    font-size: .86rem;
    font-weight: 650;
}

.history-card-meta {
    margin-top: 2px;

    font-size: .76rem;
    color: var(--text-secondary);
}

.history-card-note {
    margin-top: 4px;

    font-size: .78rem;
    color: var(--text-muted);

    font-style: italic;

    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.history-card-action {
    flex-shrink: 0;
}

