/* WIPF Kursportal – Frontend-Stile */
.wipf-course-list { list-style: none; padding: 0; }
.wipf-course-list li { display: flex; gap: .9rem; align-items: flex-start; padding: .75rem 0; border-bottom: 1px solid #e5e5e5; }
.wipf-course-list-thumb { width: 64px; height: 64px; object-fit: cover; border-radius: 6px; flex: 0 0 auto; }
.wipf-muted { color: #777; font-size: .9em; }

/* Kachel-Ansicht der Kursliste */
.wipf-course-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 1.25rem; margin: 1rem 0; }
.wipf-cols-2 { grid-template-columns: repeat(2, 1fr); }
.wipf-cols-3 { grid-template-columns: repeat(3, 1fr); }
.wipf-cols-4 { grid-template-columns: repeat(4, 1fr); }
@media (max-width: 980px) { .wipf-course-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 600px) { .wipf-course-grid { grid-template-columns: 1fr; } }
.wipf-course-card { display: flex; flex-direction: column; border: 1px solid #e0e0e0; border-radius: 10px; overflow: hidden; background: #fff; }
.wipf-course-card-image { display: block; aspect-ratio: 16 / 9; background: #eef1f5; }
.wipf-course-card-image img { width: 100%; height: 100%; object-fit: cover; display: block; }
.wipf-course-card-placeholder { display: block; width: 100%; height: 100%; background: linear-gradient(135deg, #e6ebf2, #cfd8e3); }
.wipf-course-card-body { padding: 1rem 1.1rem 1.25rem; display: flex; flex-direction: column; gap: .35rem; }
.wipf-course-card-body h3 { margin: 0; font-size: 1.15rem; }
.wipf-course-card-body h3 a { text-decoration: none; }
.wipf-course-card-body .wipf-btn { margin-top: .5rem; }

/* Dynamische Kurspräsentation 0.5 --------------------------------------- */
.wipf-course-presentation {
    --wipf-course-accent: #174b78;
    --wipf-course-accent-soft: #eaf3f9;
    --wipf-course-border: #dce3e8;
    --wipf-course-surface: #fff;
    --wipf-course-muted: #60707c;
    margin: 1.5rem 0;
    color: inherit;
}

.wipf-course-presentation.wipf-course-grid {
    display: block;
}

.wipf-course-presentation .wipf-course-items {
    display: grid;
    gap: 1.25rem;
}

.wipf-course-presentation.wipf-cols-2 .wipf-course-items { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.wipf-course-presentation.wipf-cols-3 .wipf-course-items { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.wipf-course-presentation.wipf-cols-4 .wipf-course-items { grid-template-columns: repeat(4, minmax(0, 1fr)); }

.wipf-course-presentation .wipf-course-card {
    position: relative;
    min-width: 0;
    border: 1px solid var(--wipf-course-border);
    border-radius: 14px;
    background: var(--wipf-course-surface);
    box-shadow: 0 8px 24px rgba(26, 43, 56, .06);
    transition: border-color .2s ease, box-shadow .2s ease, transform .2s ease;
}

.wipf-course-presentation .wipf-course-card:hover {
    border-color: color-mix(in srgb, var(--wipf-course-accent) 45%, var(--wipf-course-border));
    box-shadow: 0 12px 30px rgba(26, 43, 56, .1);
    transform: translateY(-2px);
}

.wipf-course-presentation .wipf-course-card-image {
    aspect-ratio: 16 / 9;
    overflow: hidden;
}

.wipf-course-presentation.wipf-ratio--4-3 .wipf-course-card-image,
.wipf-course-presentation.wipf-ratio--4-3 .wipf-featured-course__image { aspect-ratio: 4 / 3; }
.wipf-course-presentation.wipf-ratio--1-1 .wipf-course-card-image,
.wipf-course-presentation.wipf-ratio--1-1 .wipf-featured-course__image { aspect-ratio: 1 / 1; }

.wipf-course-presentation .wipf-course-card-image img,
.wipf-course-presentation .wipf-featured-course__image img {
    transition: transform .35s ease;
}

.wipf-course-presentation .wipf-course-card:hover .wipf-course-card-image img,
.wipf-course-presentation .wipf-featured-course:hover .wipf-featured-course__image img {
    transform: scale(1.025);
}

.wipf-course-presentation .wipf-course-card-body {
    flex: 1;
    padding: 1.15rem 1.2rem 1.25rem;
}

.wipf-course-card-topline {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: .55rem;
    min-height: 26px;
}

.wipf-course-categories {
    color: var(--wipf-course-accent);
    font-size: .76rem;
    font-weight: 750;
    letter-spacing: .045em;
    text-transform: uppercase;
}

.wipf-course-presentation .wipf-badge {
    flex: 0 0 auto;
    background: var(--wipf-course-accent-soft);
    color: var(--wipf-course-accent);
}

.wipf-course-presentation .wipf-badge--closed,
.wipf-course-presentation .wipf-badge--completed { background: #eef0f2; color: #50575e; }
.wipf-course-presentation .wipf-badge--running { background: #e8f3ec; color: #27623c; }
.wipf-course-presentation .wipf-badge--full { background: #fff2d8; color: #775000; }
.wipf-course-presentation .wipf-badge--cancelled { background: #fbeaea; color: #8a2424; }

.wipf-course-card-title,
.wipf-featured-course__title {
    margin: .7rem 0 .55rem;
    color: inherit;
    font-size: clamp(1.15rem, 2vw, 1.45rem);
    line-height: 1.25;
}

.wipf-course-card-title a,
.wipf-featured-course__title a {
    color: inherit;
    text-decoration: none;
}

.wipf-course-card-title a:hover,
.wipf-featured-course__title a:hover {
    color: var(--wipf-course-accent);
}

.wipf-course-card-meta {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem 1rem;
    margin: 0;
}

.wipf-course-card-meta div {
    display: flex;
    gap: .35rem;
}

.wipf-course-card-meta dt {
    color: var(--wipf-course-muted);
    font-size: .78rem;
    font-weight: 600;
}

.wipf-course-card-meta dd {
    margin: 0;
    font-size: .88rem;
    font-weight: 650;
}

.wipf-course-card-excerpt,
.wipf-featured-course__excerpt {
    margin: .7rem 0 0;
    color: var(--wipf-course-muted);
    line-height: 1.55;
}

.wipf-course-card-action {
    margin: auto 0 0;
    padding-top: 1rem;
}

.wipf-course-presentation .wipf-btn {
    background: var(--wipf-course-accent);
    text-decoration: none;
}

.wipf-course-presentation .wipf-btn:hover,
.wipf-course-presentation .wipf-btn:focus-visible {
    filter: brightness(.9);
    color: #fff;
}

.wipf-course-presentation a:focus-visible {
    outline: 3px solid #75a5c7;
    outline: 3px solid color-mix(in srgb, var(--wipf-course-accent) 55%, #fff);
    outline-offset: 3px;
}

.wipf-layout--compact_cards .wipf-course-card-image,
.wipf-layout--mini_cards .wipf-course-card-image {
    max-height: 180px;
}

.wipf-layout--compact_cards .wipf-course-card-excerpt,
.wipf-layout--mini_cards .wipf-course-card-excerpt {
    display: -webkit-box;
    overflow: hidden;
    -webkit-box-orient: vertical;
    -webkit-line-clamp: 3;
}

.wipf-layout--detail_list .wipf-course-items,
.wipf-layout--archive .wipf-course-items,
.wipf-layout--compact_list .wipf-course-items {
    grid-template-columns: 1fr;
    gap: .85rem;
}

.wipf-layout--detail_list .wipf-course-card,
.wipf-layout--archive .wipf-course-card {
    display: grid;
    grid-template-columns: minmax(190px, 280px) minmax(0, 1fr);
}

.wipf-layout--detail_list .wipf-course-card-image,
.wipf-layout--archive .wipf-course-card-image {
    height: 100%;
    aspect-ratio: auto;
    border-radius: 14px 0 0 14px;
}

.wipf-layout--compact_list .wipf-course-card {
    display: grid;
    grid-template-columns: minmax(100px, 150px) minmax(0, 1fr);
    box-shadow: none;
}

.wipf-layout--compact_list .wipf-course-card-image {
    height: 100%;
    aspect-ratio: auto;
    border-radius: 14px 0 0 14px;
}

.wipf-layout--compact_list .wipf-course-card-body {
    padding: .85rem 1rem;
}

.wipf-layout--compact_list .wipf-course-card-title {
    margin: .35rem 0;
    font-size: 1.05rem;
}

.wipf-layout--compact_list .wipf-course-card-excerpt,
.wipf-layout--compact_list .wipf-course-card-action {
    display: none;
}

.wipf-featured-course {
    display: grid;
    grid-template-columns: minmax(260px, 1.05fr) minmax(300px, 1fr);
    overflow: hidden;
    border: 1px solid var(--wipf-course-border);
    border-radius: 18px;
    background: linear-gradient(135deg, var(--wipf-course-surface), var(--wipf-course-accent-soft));
    box-shadow: 0 14px 36px rgba(26, 43, 56, .09);
}

.wipf-featured-course__image {
    display: block;
    min-height: 320px;
    overflow: hidden;
    background: #e9eef2;
}

.wipf-featured-course__image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.wipf-featured-course__content {
    align-self: center;
    padding: clamp(1.5rem, 4vw, 3rem);
}

.wipf-featured-course__title {
    font-size: clamp(1.65rem, 3.8vw, 2.75rem);
}

.wipf-layout--hero .wipf-featured-course {
    position: relative;
    display: grid;
    grid-template-columns: 1fr;
    min-height: clamp(360px, 52vw, 620px);
    color: #fff;
    background-color: #123b5f;
    background-image:
        linear-gradient(90deg, rgba(8, 30, 49, .94) 0%, rgba(8, 30, 49, .76) 44%, rgba(8, 30, 49, .2) 100%),
        var(--wipf-featured-image, linear-gradient(135deg, #174b78, #0d2f4c));
    background-position: center;
    background-size: cover;
}

.wipf-layout--hero .wipf-featured-course__content {
    width: min(720px, 82%);
    box-sizing: border-box;
    align-self: end;
    padding: clamp(2rem, 6vw, 5rem);
}

.wipf-layout--hero .wipf-featured-course__title {
    font-size: clamp(2rem, 5vw, 4rem);
}

.wipf-layout--hero .wipf-featured-course__title a,
.wipf-layout--hero .wipf-course-categories,
.wipf-layout--hero .wipf-course-card-meta dt,
.wipf-layout--hero .wipf-course-card-meta dd,
.wipf-layout--hero .wipf-featured-course__excerpt {
    color: inherit;
}

.wipf-layout--hero .wipf-btn {
    background: #fff;
    color: #123b5f;
}

.wipf-layout--hero .wipf-btn:hover,
.wipf-layout--hero .wipf-btn:focus-visible {
    color: #123b5f;
}

.wipf-course-presentation--no-image .wipf-featured-course,
.wipf-course-presentation--no-image.wipf-layout--detail_list .wipf-course-card,
.wipf-course-presentation--no-image.wipf-layout--archive .wipf-course-card,
.wipf-course-presentation--no-image.wipf-layout--compact_list .wipf-course-card {
    grid-template-columns: 1fr;
}

.wipf-course-more {
    margin: 1.25rem 0 0;
    text-align: right;
}

.wipf-course-empty {
    margin: 0;
    padding: 1.25rem;
    border: 1px dashed var(--wipf-course-border);
    border-radius: 12px;
    color: var(--wipf-course-muted);
    text-align: center;
}

.wipf-presentation-pattern {
    margin-block: 2rem;
}

.wipf-course-box {
    border-color: var(--wipf-course-border, #dce3e8);
    border-radius: 14px;
    background: #fbfcfd;
}

/* Schaufenster, Zeitstrahl und Vergleich 0.6 ---------------------------- */
.wipf-layout--horizontal .wipf-course-items {
    display: flex;
    overflow-x: auto;
    gap: 1rem;
    padding: .35rem .15rem 1rem;
    scroll-snap-type: x mandatory;
    scrollbar-color: var(--wipf-course-accent) #e9eef2;
}

.wipf-layout--horizontal .wipf-course-card {
    flex: 0 0 clamp(260px, 32vw, 390px);
    scroll-snap-align: start;
}

.wipf-layout--mosaic .wipf-course-card:nth-child(5n + 1) {
    grid-row: span 2;
}

.wipf-layout--mosaic .wipf-course-card:nth-child(5n + 1) .wipf-course-card-image {
    flex: 1;
    min-height: 260px;
}

.wipf-course-timeline {
    position: relative;
    display: grid;
    gap: 1rem;
    margin: 0;
    padding: 0 0 0 2.25rem;
    list-style: none;
}

.wipf-course-timeline::before {
    position: absolute;
    top: .4rem;
    bottom: .4rem;
    left: .62rem;
    width: 3px;
    border-radius: 999px;
    background: color-mix(in srgb, var(--wipf-course-accent) 28%, #fff);
    content: "";
}

.wipf-course-timeline__item {
    position: relative;
}

.wipf-course-timeline__marker {
    position: absolute;
    z-index: 1;
    top: 1.2rem;
    left: -2.14rem;
    width: 14px;
    height: 14px;
    border: 4px solid #fff;
    border-radius: 50%;
    background: var(--wipf-course-accent);
    box-shadow: 0 0 0 2px var(--wipf-course-accent);
}

.wipf-course-timeline__card {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    overflow: hidden;
    border: 1px solid var(--wipf-course-border);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 7px 22px rgba(26, 43, 56, .06);
}

.wipf-course-timeline__image {
    display: block;
    aspect-ratio: 16 / 9;
    overflow: hidden;
}

.wipf-ratio--4-3 .wipf-course-timeline__image,
.wipf-ratio--4-3 .wipf-course-comparison__image { aspect-ratio: 4 / 3; }
.wipf-ratio--1-1 .wipf-course-timeline__image,
.wipf-ratio--1-1 .wipf-course-comparison__image { aspect-ratio: 1 / 1; }

.wipf-course-timeline__image img,
.wipf-course-comparison__image img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.wipf-course-timeline__content {
    padding: 1rem 1.15rem 1.15rem;
}

.wipf-course-timeline__date {
    display: block;
    margin-bottom: .4rem;
    color: var(--wipf-course-accent);
    font-size: .82rem;
    font-weight: 750;
}

.wipf-layout--steps .wipf-course-timeline {
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
    overflow-x: auto;
    padding: 2.2rem 0 0;
}

.wipf-layout--steps .wipf-course-timeline::before {
    top: .65rem;
    right: .5rem;
    bottom: auto;
    left: .5rem;
    width: auto;
    height: 3px;
}

.wipf-layout--steps .wipf-course-timeline__marker {
    top: -1.98rem;
    left: 1.1rem;
}

.wipf-course-comparison-scroll {
    overflow-x: auto;
    border: 1px solid var(--wipf-course-border);
    border-radius: 14px;
    background: #fff;
}

.wipf-course-comparison {
    width: 100%;
    min-width: 700px;
    border-collapse: collapse;
}

.wipf-course-comparison th,
.wipf-course-comparison td {
    min-width: 180px;
    padding: .85rem 1rem;
    border-right: 1px solid var(--wipf-course-border);
    border-bottom: 1px solid var(--wipf-course-border);
    text-align: left;
    vertical-align: top;
}

.wipf-course-comparison thead th {
    background: color-mix(in srgb, var(--wipf-course-accent) 8%, #fff);
    font-size: 1.05rem;
}

.wipf-course-comparison tbody th {
    min-width: 130px;
    color: var(--wipf-course-muted);
    font-size: .8rem;
    text-transform: uppercase;
}

.wipf-course-comparison__image {
    display: block;
    aspect-ratio: 16 / 9;
    margin: -.4rem -.5rem .7rem;
    overflow: hidden;
    border-radius: 9px;
}

.wipf-course-comparison__actions td {
    padding-block: 1rem;
}

.wipf-course-comparison-columns {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(230px, 1fr));
    gap: 1rem;
}

.wipf-course-comparison-card {
    display: flex;
    min-width: 0;
    flex-direction: column;
    overflow: hidden;
    border: 1px solid var(--wipf-course-border);
    border-top: 5px solid var(--wipf-course-accent);
    border-radius: 14px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(26, 43, 56, .06);
}

.wipf-course-comparison-card__body {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 1rem 1.1rem 1.2rem;
}

@media (max-width: 980px) {
    .wipf-course-presentation.wipf-cols-4 .wipf-course-items,
    .wipf-course-presentation.wipf-cols-3 .wipf-course-items {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 680px) {
    .wipf-course-presentation.wipf-cols-2 .wipf-course-items,
    .wipf-course-presentation.wipf-cols-3 .wipf-course-items,
    .wipf-course-presentation.wipf-cols-4 .wipf-course-items,
    .wipf-layout--detail_list .wipf-course-card,
    .wipf-layout--archive .wipf-course-card,
    .wipf-layout--compact_list .wipf-course-card,
    .wipf-featured-course {
        grid-template-columns: 1fr;
    }

    .wipf-layout--detail_list .wipf-course-card-image,
    .wipf-layout--archive .wipf-course-card-image,
    .wipf-layout--compact_list .wipf-course-card-image {
        height: auto;
        aspect-ratio: 16 / 9;
        border-radius: 14px 14px 0 0;
    }

    .wipf-featured-course__image {
        min-height: 220px;
        aspect-ratio: 16 / 9;
    }

    .wipf-layout--hero .wipf-featured-course {
        min-height: 420px;
        background-image:
            linear-gradient(0deg, rgba(8, 30, 49, .95) 0%, rgba(8, 30, 49, .42) 100%),
            var(--wipf-featured-image, linear-gradient(135deg, #174b78, #0d2f4c));
    }

    .wipf-layout--hero .wipf-featured-course__content {
        width: 100%;
        padding: 1.5rem;
    }

    .wipf-course-card-topline {
        align-items: flex-start;
        flex-direction: column;
    }

    .wipf-layout--mosaic .wipf-course-card:nth-child(5n + 1) {
        grid-row: auto;
    }
}

@media (prefers-reduced-motion: reduce) {
    .wipf-course-presentation .wipf-course-card,
    .wipf-course-presentation .wipf-course-card-image img,
    .wipf-course-presentation .wipf-featured-course__image img {
        transition: none;
    }

    .wipf-course-presentation .wipf-course-card:hover {
        transform: none;
    }
}

/* Hinweise */
.wipf-notice { padding: .9rem 1.1rem; border-radius: 8px; margin: 1rem 0; }
.wipf-notice-info { background: #e8f0fe; border: 1px solid #b6cdf7; color: #1742b0; }
.wipf-notice-success { background: #e7f6ec; border: 1px solid #b3e0c2; color: #1b6b37; }
.wipf-notice-error { background: #fcf0f1; border: 1px solid #d63638; color: #8a2424; }

.wipf-course-box { margin-top: 2rem; padding: 1.25rem; border: 1px solid #e0e0e0; border-radius: 8px; background: #fafafa; }
.wipf-info { border-collapse: collapse; margin-bottom: 1rem; }
.wipf-info th { text-align: left; width: 40%; padding: .35rem .5rem; vertical-align: top; }
.wipf-info td { padding: .35rem .5rem; }
.wipf-units { margin: 0 0 1rem 1.2rem; }

/* Öffentliche Einzelkursseite: ausschließlich die automatisch ergänzten
   Pluginbereiche. Gutenberg-Inhalt und Theme-Layout bleiben unangetastet. */
.wipf-public-course,
.wipf-application-panel {
    --wipf-primary: #174b78;
    --wipf-primary-dark: #103754;
    --wipf-accent: #eaf3f9;
    --wipf-border: #dce3e8;
    --wipf-text-soft: #60707c;
    --wipf-header-text: #fff;
}
.wipf-public-course { display: grid; gap: 1rem; margin: 2rem 0; color: inherit; }
.wipf-public-course > .wipf-notice { margin: 0; }
.wipf-public-course__details,
.wipf-application-panel {
    overflow: hidden;
    border: 1px solid var(--wipf-border);
    border-radius: var(--wipf-style-radius, 14px);
    background: #fff;
    box-shadow: 0 10px 28px rgba(23, 75, 120, .07);
}
.wipf-public-course__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.2rem 1.35rem;
    background: linear-gradient(135deg, var(--wipf-primary), var(--wipf-primary-dark));
    color: var(--wipf-header-text, #fff);
}
.wipf-public-course__eyebrow {
    margin: 0 0 .25rem;
    font-size: .76rem;
    font-weight: 800;
    letter-spacing: .075em;
    text-transform: uppercase;
}
.wipf-public-course__header .wipf-public-course__eyebrow { color: rgba(255, 255, 255, .76); }
.wipf-public-course__header h2,
.wipf-public-course__header p { margin-top: 0; color: inherit; }
.wipf-public-course__header h2 { margin-bottom: 0; }
.wipf-public-course__status { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .45rem; max-width: 29rem; }
.wipf-public-course__header .wipf-badge { background: rgba(255, 255, 255, .14); color: inherit; }
.wipf-public-course__header .wipf-badge--accent { background: var(--wipf-header-text, #fff); color: var(--wipf-primary); }
.wipf-public-course__deadline { color: rgba(255, 255, 255, .84); font-size: .83rem; }
.wipf-public-course__deadline strong { color: var(--wipf-header-text, #fff); }
.wipf-public-course__body { display: grid; gap: 1.2rem; padding: 1.2rem 1.35rem 1.35rem; }
.wipf-course-facts { display: grid; grid-template-columns: repeat(auto-fit, minmax(150px, 1fr)); gap: .65rem; margin: 0; }
.wipf-course-facts > div { min-width: 0; padding: .75rem .85rem; border: 1px solid var(--wipf-border); border-radius: var(--wipf-style-control-radius, 8px); background: #f8fafb; }
.wipf-course-facts dt { color: var(--wipf-text-soft); font-size: .75rem; font-weight: 800; letter-spacing: .045em; text-transform: uppercase; }
.wipf-course-facts dd { margin: .2rem 0 0; color: inherit; font-weight: 700; overflow-wrap: break-word; }
.wipf-public-course__section { margin: 0; padding-top: 1.1rem; border-top: 1px solid var(--wipf-border); }
.wipf-public-course__section > h3,
.wipf-public-course__section .wipf-installment-plan > h4 { margin: 0 0 .75rem; color: var(--wipf-primary); font-size: 1rem; }
.wipf-public-course__section .wipf-installment-plan { margin: 0; padding: 0; border: 0; }
.wipf-public-course__section .wipf-schedule-groups { gap: .65rem; }
.wipf-public-course__section .wipf-schedule-group { padding: .75rem .85rem; border-radius: var(--wipf-style-control-radius, 8px); }
.wipf-public-course__section .wipf-schedule-group > h4 { margin-bottom: .45rem; }
.wipf-public-course__section .wipf-schedule-list li { padding: .6rem .75rem; border-left-width: 3px; border-radius: var(--wipf-style-control-radius, 8px); }

.wipf-application-panel { margin: 0; }
.wipf-application-panel__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.15rem 1.35rem;
    border-bottom: 1px solid var(--wipf-border);
    background: linear-gradient(135deg, color-mix(in srgb, var(--wipf-accent) 72%, #fff), #fff);
}
.wipf-application-panel__header .wipf-public-course__eyebrow { color: var(--wipf-primary); }
.wipf-application-panel__header h2 { margin: 0 0 .25rem; color: var(--wipf-primary-dark); }
.wipf-application-panel__header p:not(.wipf-public-course__eyebrow) { margin: 0; color: var(--wipf-text-soft); }
.wipf-application-panel__header .wipf-badge { flex: 0 0 auto; background: #fff; color: var(--wipf-primary); }
.wipf-application-panel--closed .wipf-access-closed { margin: 0; padding: 1.1rem 1.35rem; }
.wipf-application-form { margin: 0; padding: 1.2rem 1.35rem 1.35rem; }
.wipf-application-steps { display: grid; grid-template-columns: repeat(auto-fit, minmax(10rem, 1fr)); gap: .45rem; margin: 0 0 1.2rem; padding: 0; list-style: none; }
.wipf-application-steps li { display: flex; align-items: center; gap: .5rem; min-width: 0; padding: .55rem .6rem; border: 1px solid var(--wipf-border); border-radius: var(--wipf-style-control-radius, 8px); background: #f8fafb; color: var(--wipf-text-soft); font-size: .82rem; }
.wipf-application-steps li > span { display: inline-grid; flex: 0 0 auto; width: 1.55rem; height: 1.55rem; place-items: center; border-radius: 50%; background: #e4e9ed; color: var(--wipf-text-soft); font-size: .74rem; font-weight: 800; }
.wipf-application-steps li > strong { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.wipf-application-steps li.is-current { border-color: var(--wipf-primary); background: var(--wipf-accent); color: var(--wipf-primary); }
.wipf-application-steps li.is-current > span,
.wipf-application-steps li.is-complete > span { background: var(--wipf-primary); color: var(--wipf-header-text, #fff); }
.wipf-application-steps li.is-complete { color: var(--wipf-primary); }
.wipf-application-step { min-width: 0; }
.wipf-application-step > header { margin-bottom: 1rem; }
.wipf-application-step > header p { margin: 0 0 .2rem; color: var(--wipf-primary); font-size: .78rem; font-weight: 800; letter-spacing: .045em; text-transform: uppercase; }
.wipf-application-step > header h3 { margin: 0 0 .25rem; color: var(--wipf-primary-dark); }
.wipf-application-step > header > span { color: var(--wipf-text-soft); font-size: .9rem; }
.wipf-application-step__body > .wipf-form-section:first-child { margin-top: 0; }
.wipf-application-step__body > .wipf-form-section:last-child { margin-bottom: 0; }
.wipf-application-controls { display: flex; justify-content: space-between; gap: .75rem; margin-top: 1.2rem; padding-top: 1rem; border-top: 1px solid var(--wipf-border); }
.wipf-application-controls [data-wipf-step-previous][hidden],
.wipf-application-controls [data-wipf-step-next][hidden],
.wipf-application-submit[hidden] { display: none; }
.wipf-application-submit { margin: 1.2rem 0 0; text-align: right; }
.wipf-application-form .wipf-btn:not(.wipf-btn--secondary) { background: linear-gradient(135deg, var(--wipf-primary), var(--wipf-primary-dark)); color: var(--wipf-header-text, #fff); box-shadow: 0 5px 14px color-mix(in srgb, var(--wipf-primary) 25%, transparent); }
.wipf-application-form .wipf-btn:not(.wipf-btn--secondary):hover,
.wipf-application-form .wipf-btn:not(.wipf-btn--secondary):focus-visible { background: linear-gradient(135deg, var(--wipf-primary-dark), var(--wipf-primary)); color: var(--wipf-header-text, #fff); }
.wipf-application-form button:focus-visible,
.wipf-application-step > header h3:focus-visible { outline: 3px solid color-mix(in srgb, var(--wipf-primary) 42%, transparent); outline-offset: 3px; }

.wipf-form { margin-top: 1rem; }
.wipf-form input[type="text"], .wipf-form input[type="search"], .wipf-form input[type="email"], .wipf-form input[type="tel"], .wipf-form input[type="number"], .wipf-form input[type="date"], .wipf-form textarea, .wipf-form select { width: 100%; box-sizing: border-box; padding: .6rem .7rem; border: 1px solid #c8d0d7; border-radius: 6px; background: #fff; }
.wipf-form label { display: grid; gap: .3rem; }
.wipf-form .wipf-checkbox-label {
    display: flex;
    align-items: flex-start;
    gap: .65rem;
    line-height: 1.45;
    cursor: pointer;
}
.wipf-form .wipf-checkbox-label input[type="checkbox"] {
    flex: 0 0 auto;
    width: 1.15rem;
    height: 1.15rem;
    margin: .18em 0 0;
}
.wipf-form .wipf-checkbox-label span { min-width: 0; }
.wipf-form small { display: block; color: #60707c; }
.wipf-form-section { margin: 1.2rem 0; padding: 1rem 1.1rem 1.15rem; border: 1px solid #dce3e8; border-radius: 10px; background: #fbfcfd; }
.wipf-form-section > legend { padding: 0 .35rem; color: #174b78; font-size: 1.05rem; font-weight: 750; }
.wipf-form .wipf-form-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .35rem 1rem; }
.wipf-form .wipf-form-grid > p { margin: .35rem 0; }
.wipf-form .wipf-form-grid__wide { grid-column: 1 / -1; }
.wipf-inline-choice { display: flex; flex-wrap: wrap; gap: .6rem 1.2rem; margin: .8rem 0; padding: 0; border: 0; }
.wipf-inline-choice legend { width: 100%; margin-bottom: .25rem; font-weight: 700; }
.wipf-inline-choice label { display: inline-flex; grid-template-columns: auto 1fr; align-items: center; gap: .4rem; }
.wipf-conditional-address { margin: 1rem 0 0; padding-top: .5rem; border-top: 1px solid #dce3e8; }
.wipf-form-note { color: #4e606c; line-height: 1.55; }
.wipf-btn { display: inline-block; padding: .6rem 1.4rem; background: #1d4ed8; color: #fff; border: 0; border-radius: 6px; cursor: pointer; font-size: 1rem; }
.wipf-btn:hover { background: #1742b0; }

.wipf-portal { margin: 1.5rem 0; }
.wipf-card { padding: 1rem 1.25rem; margin-bottom: 1.25rem; border: 1px solid #e0e0e0; border-radius: 8px; background: #fff; }
.wipf-card h3, .wipf-card h4 { margin-top: 0; }

/* Anonyme Evaluation 0.6 ----------------------------------------------- */
.wipf-evaluation-privacy {
    padding: .8rem 1rem;
    border-left: 4px solid #174b78;
    background: #eef5fa;
    color: #40515d;
}

.wipf-evaluation-field {
    margin: 1.25rem 0;
    padding: 1.1rem;
    border: 1px solid #dce3e8;
    border-radius: 12px;
    background: #fbfcfd;
}

.wipf-evaluation-field legend,
.wipf-evaluation-text > label {
    display: block;
    margin-bottom: .85rem;
    padding: 0;
    font-weight: 700;
}

.wipf-evaluation-number {
    display: inline-grid;
    width: 1.8rem;
    height: 1.8rem;
    place-items: center;
    margin-right: .55rem;
    border-radius: 50%;
    background: #174b78;
    color: #fff;
    font-size: .82rem;
}

.wipf-evaluation-scale {
    display: flex;
    flex-wrap: wrap;
    gap: .45rem;
}

.wipf-evaluation-scale label {
    position: relative;
    cursor: pointer;
}

.wipf-evaluation-scale input {
    position: absolute;
    opacity: 0;
}

.wipf-evaluation-scale label span {
    display: grid;
    width: 2.65rem;
    height: 2.65rem;
    place-items: center;
    border: 1px solid #b8c4cc;
    border-radius: 9px;
    background: #fff;
    font-weight: 700;
    transition: background .15s ease, border-color .15s ease, color .15s ease;
}

.wipf-evaluation-scale input:checked + span {
    border-color: #174b78;
    background: #174b78;
    color: #fff;
}

.wipf-evaluation-scale input:focus-visible + span {
    outline: 3px solid #75a5c7;
    outline-offset: 2px;
}

.wipf-evaluation-scale-labels {
    display: flex;
    justify-content: space-between;
    max-width: 470px;
    margin-top: .45rem;
    color: #60707c;
    font-size: .78rem;
}

.wipf-evaluation-text textarea {
    width: 100%;
    max-width: none;
    box-sizing: border-box;
}

.wipf-required {
    color: #b32d2e;
    font-weight: 800;
}

.wipf-evaluation-required-note {
    color: #60707c;
    font-size: .85rem;
}

/* Block-Vorlagen für attraktive Kursseiten */
.wipf-info-box { background: #eef3fb; border: 1px solid #b6cdf7; border-radius: 10px; padding: 1.25rem 1.5rem; margin: 1.5rem 0; }
.wipf-info-box h4 { margin: 0 0 .25rem; font-size: 1rem; color: #1742b0; }
.wipf-info-box p { margin: 0; font-size: 1.05rem; font-weight: 600; }
@media (max-width: 600px) { .wipf-info-box .wp-block-columns { flex-wrap: wrap; gap: 1rem; } }

.wipf-jump-nav { gap: .5rem; margin: 1.5rem 0; flex-wrap: wrap; }
.wipf-jump-nav .wp-block-button__link { scroll-margin-top: 2rem; }

.wipf-dates-table { margin: 1rem 0; }
.wipf-dates-table table { width: 100%; border-collapse: collapse; }
.wipf-dates-table th, .wipf-dates-table td { border: 1px solid #e0e0e0; padding: .5rem .75rem; text-align: left; }
.wipf-dates-table thead th { background: #f3f6fb; }

/* WIPF-Ankerziele unter der Sprungnavigation freistellen (fixe Header etc.) */
.wipf-info-box[id], .wipf-course-box[id], .wipf-dates-table[id] { scroll-margin-top: 2rem; }

/* Nutzer-Dashboard 0.4 --------------------------------------------------- */
.wipf-dashboard {
    --wipf-primary: #174b78;
    --wipf-primary-dark: #103754;
    --wipf-accent: #eaf3f9;
    --wipf-border: #dce3e8;
    --wipf-text-soft: #60707c;
    --wipf-danger: #9b2c20;
    --wipf-document-batch-gap: .65rem;
    --wipf-document-batch-margin: .25rem 0 .9rem;
    --wipf-document-batch-padding: .75rem;
    --wipf-document-batch-radius: 8px;
    --wipf-document-batch-label-weight: 700;
    --wipf-document-batch-error-margin: .5rem 0 .25rem 1.25rem;
    margin: 2rem 0;
    color: inherit;
}
.wipf-dashboard__header { display: flex; align-items: center; justify-content: space-between; gap: 1rem; margin-bottom: 1.25rem; padding: 1.25rem 1.4rem; border-radius: 14px; background: linear-gradient(135deg, var(--wipf-primary), var(--wipf-primary-dark)); color: #fff; }
.wipf-dashboard__header h2, .wipf-dashboard__header p { margin: 0; color: inherit; }
.wipf-eyebrow { margin: 0 0 .25rem; color: var(--wipf-primary); font-size: .78rem; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; }
.wipf-dashboard__header .wipf-eyebrow { color: rgba(255,255,255,.75); }
.wipf-logout { color: #fff; font-weight: 600; }
/* Kursmanager-Benachrichtigungen im Dashboard-Kopf.
   Rein serverseitig über <details>; kein Skript nötig. Der Kopf trägt einen
   Farbverlauf mit weißer Schrift, deshalb setzt das Panel Hintergrund und
   Textfarbe ausdrücklich zurück. Wie im Teilnehmerbereich bewusst ohne roten
   Punkt: der Zähler ist ein ruhiger heller Kreis, echte Warnungen im
   Managerbereich nutzen weiterhin .wipf-badge--warning. */
.wipf-notifications { position: relative; flex: 0 0 auto; }
.wipf-notifications > summary { display: inline-flex; align-items: center; gap: .35rem; padding: .45rem .6rem; border-radius: 999px; color: #fff; cursor: pointer; list-style: none; }
.wipf-notifications > summary::-webkit-details-marker { display: none; }
.wipf-notifications > summary:hover, .wipf-notifications[open] > summary { background: rgba(255, 255, 255, .16); }
.wipf-notifications__count { display: inline-flex; align-items: center; justify-content: center; min-width: 1.35rem; padding: .05rem .35rem; border-radius: 999px; background: #fff; color: var(--wipf-primary, #174b78); font-size: .74rem; font-weight: 800; line-height: 1.4; }
.wipf-notifications--empty > summary { opacity: .8; }
.wipf-notifications__panel { position: absolute; top: calc(100% + .5rem); right: 0; z-index: 5; display: grid; gap: .5rem; min-width: 20rem; max-width: min(26rem, 90vw); padding: .85rem; border: 1px solid var(--wipf-border, #dce3e8); border-radius: var(--wipf-style-radius, 12px); background: #fff; color: #1d2327; box-shadow: 0 8px 24px rgba(0, 0, 0, .14); }
.wipf-notifications__list { display: grid; gap: .35rem; margin: 0; padding: 0; list-style: none; }
.wipf-notifications__list a { display: grid; gap: .15rem; padding: .45rem .5rem; border-radius: var(--wipf-style-control-radius, 6px); color: inherit; text-decoration: none; }
.wipf-notifications__list a:hover { background: var(--wipf-accent, #eaf3f9); }
.wipf-notifications__list strong { font-size: .88rem; font-weight: 700; }
.wipf-notifications__meta { color: var(--wipf-text-soft, #60707c); font-size: .76rem; }
.wipf-notifications__empty { margin: 0; color: var(--wipf-text-soft, #60707c); font-size: .86rem; }
.wipf-notifications__all { display: block; padding-top: .5rem; border-top: 1px solid var(--wipf-border, #dce3e8); color: var(--wipf-primary, #174b78); font-size: .84rem; font-weight: 700; }
/* Ausführliche Benachrichtigungsliste (Bereich „Benachrichtigungen“). */
.wipf-notification-feed { display: grid; gap: .85rem; margin-top: 1rem; }
.wipf-notification-card { padding: .95rem 1.05rem; border: 1px solid var(--wipf-border, #dce3e8); border-radius: var(--wipf-style-radius, 12px); background: #fff; }
.wipf-notification-card h4 { margin: .5rem 0 .35rem; }
.wipf-notification-card__text { margin: 0 0 .5rem; }
.wipf-notification-card__excerpt { margin: 0 0 .5rem; padding: .5rem .75rem; border-left: 3px solid var(--wipf-accent, #eaf3f9); background: #f9fafb; color: var(--wipf-text-soft, #60707c); font-style: italic; }
.wipf-notification-card__meta { margin: 0 0 .65rem; color: var(--wipf-text-soft, #60707c); font-size: .8rem; }
.wipf-dashboard__layout { display: grid; grid-template-columns: minmax(180px, 230px) minmax(0, 1fr); gap: 1.25rem; align-items: start; }
.wipf-account-nav { display: grid; padding: .5rem; border: 1px solid var(--wipf-border); border-radius: 12px; background: #fff; }
.wipf-account-nav a { padding: .75rem .85rem; border-radius: 8px; color: inherit; text-decoration: none; font-weight: 600; }
.wipf-account-nav a:hover { background: #f4f7f9; }
.wipf-account-nav a[aria-current="page"] { background: var(--wipf-accent); color: var(--wipf-primary); }
.wipf-account-nav__course { display: grid; margin: .35rem 0; padding: .35rem 0; border-top: 1px solid var(--wipf-border); border-bottom: 1px solid var(--wipf-border); }
.wipf-account-nav__course-title { display: flex; align-items: center; gap: .45rem; padding: .55rem .85rem .25rem; color: var(--wipf-primary); font-size: .82rem; font-weight: 800; }
.wipf-account-nav a.wipf-account-nav__child { display: flex; align-items: center; gap: .45rem; padding: .55rem .85rem .55rem 1.25rem; font-size: .9rem; font-weight: 600; }
.wipf-account-nav__logout { margin-top: .35rem; border-top: 1px solid var(--wipf-border); color: var(--wipf-danger) !important; }
/* Teilnehmer-Frontend: neue Inhalte werden durchgängig ruhig markiert – weder
   die Glocke (.wipf-new-badge) noch das „Neu“-Label (.wipf-new-label)
   verwenden einen roten Punkt/Kreis. */
.wipf-new-badge { display: inline-flex; flex: 0 0 auto; align-items: center; justify-content: center; margin-left: .25rem; color: var(--wipf-primary, #174b78); vertical-align: middle; }
.wipf-new-label { display: inline-flex; align-items: center; margin-left: .3rem; padding: .1rem .4rem; border-radius: 999px; background: var(--wipf-accent, #eaf3f9); color: var(--wipf-primary, #174b78); font-size: .7rem; font-weight: 800; line-height: 1.35; vertical-align: middle; }
/* Termine: kleineres „Neu“-Badge, damit die Terminzeile kompakt bleibt. */
.wipf-schedule-list .wipf-new-label { padding: .05rem .32rem; font-size: .62rem; }
.wipf-dashboard__content { min-width: 0; padding: 1.35rem; border: 1px solid var(--wipf-border); border-radius: 12px; background: #fff; }
.wipf-dashboard__content > :first-child, .wipf-dashboard__content h3:first-of-type { margin-top: 0; }
.wipf-summary-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(190px, 1fr)); gap: .85rem; }
.wipf-summary-card { display: flex; flex-direction: column; gap: .35rem; min-height: 105px; padding: 1rem; border: 1px solid var(--wipf-border); border-radius: 10px; background: #fbfcfd; }
.wipf-summary-card span, .wipf-summary-card small { color: var(--wipf-text-soft); }
.wipf-summary-card strong { font-size: 1.05rem; }
.wipf-summary-card a { margin-top: auto; font-weight: 700; text-decoration: none; }
.wipf-summary-card--action { background: var(--wipf-accent); }
.wipf-dashboard-welcome { margin: 0 0 1rem; padding: .9rem 1rem; border-left: 4px solid var(--wipf-primary); border-radius: 0 8px 8px 0; background: var(--wipf-accent); }
.wipf-dashboard-welcome > :first-child { margin-top: 0; }
.wipf-dashboard-welcome > :last-child { margin-bottom: 0; }
.wipf-notice-warning { border-color: #dba617 !important; background: #fff8df !important; color: #624700 !important; }
.wipf-section-heading { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; margin-bottom: 1rem; }
.wipf-section-heading h3, .wipf-section-heading p { margin-top: 0; }
.wipf-course-switcher { display: flex; align-items: end; gap: .5rem; }
.wipf-course-switcher label { display: grid; gap: .25rem; color: var(--wipf-text-soft); font-size: .85rem; font-weight: 600; }
.wipf-course-switcher select { max-width: 260px; padding: .55rem; border: 1px solid var(--wipf-border); border-radius: 6px; }
.wipf-course-detail-card { padding: 1.1rem; border: 1px solid var(--wipf-border); border-radius: 10px; background: #fff; }
.wipf-locked-area { display: grid; justify-items: center; gap: .35rem; padding: 2rem 1rem; border: 1px dashed var(--wipf-border); border-radius: 10px; background: #f8fafb; text-align: center; }
.wipf-locked-area > span { font-size: 1.5rem; }
.wipf-locked-area h4, .wipf-locked-area p { margin: 0; }
.wipf-locked-area p { color: var(--wipf-text-soft); }
.wipf-badge-row { display: flex; flex-wrap: wrap; gap: .4rem; margin-bottom: 1rem; }
.wipf-badge { display: inline-flex; align-items: center; padding: .25rem .6rem; border-radius: 999px; background: #edf1f4; color: #48545c; font-size: .78rem; font-weight: 700; }
.wipf-badge--accent { background: var(--wipf-accent); color: var(--wipf-primary); }
.wipf-badge--muted { background: #f0f0f1; color: #50575e; }
.wipf-detail-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(160px, 1fr)); gap: .8rem; margin: 0 0 1rem; }
.wipf-detail-grid div { padding: .75rem; border-radius: 8px; background: #f6f8fa; }
.wipf-detail-grid dt { color: var(--wipf-text-soft); font-size: .78rem; font-weight: 700; text-transform: uppercase; }
.wipf-detail-grid dd { margin: .25rem 0 0; font-weight: 650; }
.wipf-detail-section, .wipf-installment-plan { margin-top: 1.25rem; padding-top: 1rem; border-top: 1px solid var(--wipf-border); }
.wipf-dossier-master > summary { margin-bottom: .8rem; color: var(--wipf-primary); cursor: pointer; font-size: 1rem; font-weight: 800; }
.wipf-table-scroll { overflow-x: auto; }
.wipf-installment-plan table { width: 100%; border-collapse: collapse; }
.wipf-installment-plan th, .wipf-installment-plan td { padding: .65rem; border-bottom: 1px solid var(--wipf-border); text-align: left; }
.wipf-timeline { display: grid; gap: .6rem; padding: 0; list-style: none; }
.wipf-timeline li, .wipf-timeline article { padding: .75rem .85rem; border-left: 3px solid var(--wipf-primary); background: #f7f9fa; }
.wipf-timeline article { display: grid; gap: .15rem; }
.wipf-timeline article span { color: var(--wipf-text-soft); font-size: .82rem; }
.wipf-schedule-list li { display: grid; gap: .35rem; }
.wipf-schedule-groups { display: grid; gap: 1rem; }
.wipf-schedule-group { padding: .85rem 1rem; border: 1px solid var(--wipf-border, #dce3e8); border-radius: 10px; background: #fbfcfd; }
.wipf-schedule-group > h4 { margin: 0 0 .65rem; color: var(--wipf-primary, #174b78); }
.wipf-schedule-group .wipf-schedule-list { margin: 0; }
.wipf-unit-venue { display: block; color: var(--wipf-text-soft); font-size: .9rem; font-weight: 500; }
.wipf-unit-venue__label { font-weight: 750; color: inherit; }
.wipf-venue-badge { display: inline-flex; padding: .12rem .45rem; border-radius: 999px; background: #e8f3ec; color: #27623c; font-size: .78rem; font-weight: 750; }
.wipf-venue-link { display: inline-flex; margin-left: .35rem; font-weight: 750; }
.wipf-readonly-groups { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem; }
.wipf-readonly-group {
    min-width: 0;
    padding: 1rem 1.1rem;
    border: 1px solid var(--wipf-border);
    border-radius: 11px;
    background: #fbfcfd;
    box-shadow: 0 7px 22px rgba(23, 75, 120, .035);
}
.wipf-readonly-group h4 { margin: 0 0 .75rem; color: var(--wipf-primary); font-size: 1rem; }
.wipf-readonly-group summary, .wipf-person-data-details > summary { cursor: pointer; color: var(--wipf-primary); font-weight: 800; }
.wipf-readonly-group[open] summary, .wipf-person-data-details[open] > summary { margin-bottom: .75rem; }
.wipf-readonly-group dl { display: grid; gap: 0; margin: 0; }
.wipf-readonly-group dl div {
    display: grid;
    grid-template-columns: minmax(8.5rem, 38%) minmax(0, 1fr);
    gap: .8rem;
    padding: .55rem 0;
    border-bottom: 1px solid var(--wipf-border);
}
.wipf-readonly-group dl div:last-child { border-bottom: 0; }
.wipf-readonly-group dt { color: var(--wipf-text-soft); font-size: .82rem; font-weight: 700; overflow-wrap: normal; word-break: normal; }
.wipf-readonly-group dd { min-width: 0; margin: 0; font-weight: 620; overflow-wrap: break-word; word-break: normal; }
.wipf-readonly-note { margin: -.2rem 0 1rem; color: var(--wipf-text-soft); font-size: .9rem; }
.wipf-detail-section--first { margin-top: 0; padding-top: 0; border-top: 0; }
.wipf-course-groups { margin-bottom: 1rem; }
.wipf-profile-shell { display: grid; gap: 1rem; max-width: 960px; }
.wipf-profile-header { margin-bottom: .25rem; }
.wipf-profile-header h3 { margin: .15rem 0 .35rem; }
.wipf-profile-header > p:last-child { margin: 0; color: var(--wipf-text-soft); }
.wipf-profile-form { display: grid; gap: 1rem; margin: 0; }
.wipf-profile-master { border: 1px solid var(--wipf-border); border-radius: 12px; background: #f8fafb; }
.wipf-profile-master > summary { padding: 1rem 1.15rem; color: var(--wipf-primary); cursor: pointer; font-weight: 800; }
.wipf-profile-master[open] > summary { border-bottom: 1px solid var(--wipf-border); }
.wipf-profile-master__body { display: grid; gap: 1rem; padding: 1rem; }
.wipf-profile-group {
    min-width: 0;
    margin: 0;
    padding: 1.15rem;
    border: 1px solid var(--wipf-border);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 7px 22px rgba(23, 75, 120, .045);
}
.wipf-profile-group legend {
    padding: 0 .4rem;
    color: var(--wipf-primary);
    font-size: 1rem;
    font-weight: 800;
}
.wipf-profile-group legend span {
    margin-left: .45rem;
    color: var(--wipf-text-soft);
    font-size: .75rem;
    font-weight: 600;
}
.wipf-profile-group > p { margin: -.15rem 0 1rem; color: var(--wipf-text-soft); font-size: .9rem; }
.wipf-profile-grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: .9rem 1rem; }
.wipf-profile-grid label { display: grid; align-content: start; gap: .35rem; min-width: 0; font-weight: 650; }
.wipf-profile-grid input,
.wipf-profile-grid select {
    width: 100%;
    min-height: 44px;
    box-sizing: border-box;
    padding: .7rem .75rem;
    border: 1px solid var(--wipf-border);
    border-radius: 8px;
    background: #fff;
    color: inherit;
}
.wipf-profile-grid input:focus,
.wipf-profile-grid select:focus {
    border-color: var(--wipf-primary);
    outline: 3px solid color-mix(in srgb, var(--wipf-primary) 16%, transparent);
}
.wipf-profile-grid input[readonly] { background: #f3f5f6; color: var(--wipf-text-soft); }
.wipf-profile-grid small { color: var(--wipf-text-soft); font-weight: 400; }
.wipf-profile-grid .wipf-field--wide { grid-column: 1 / -1; }
.wipf-profile-actions { display: flex; justify-content: flex-end; margin-top: 1rem; }

.wipf-calendar-panel { display: grid; gap: 1rem; max-width: 900px; }
.wipf-calendar-panel > h3,
.wipf-calendar-panel > p { margin: 0; }
.wipf-calendar-url { display: grid; gap: .4rem; font-weight: 700; }
.wipf-calendar-url__controls { display: grid; grid-template-columns: minmax(0, 1fr) auto; gap: .55rem; }
.wipf-calendar-url input { box-sizing: border-box; width: 100%; min-width: 0; padding: .72rem .8rem; border: 1px solid var(--wipf-border); border-radius: var(--wipf-style-control-radius, 7px); background: #f5f7f8; color: var(--wipf-text-soft); font-family: ui-monospace, SFMono-Regular, Consolas, monospace; }
.wipf-calendar-actions { display: flex; flex-wrap: wrap; gap: .65rem; }
.wipf-calendar-help { padding: .8rem .9rem; border-left: 4px solid var(--wipf-primary); background: var(--wipf-accent); color: var(--wipf-text-soft); }
.wipf-calendar-reset { margin: 0; padding-top: .75rem; border-top: 1px solid var(--wipf-border); }
.wipf-calendar-reset button { border: 0; background: transparent; cursor: pointer; font: inherit; }
.wipf-btn--secondary { background: #fff; color: var(--wipf-primary); border: 1px solid var(--wipf-primary); }
.wipf-btn--secondary:hover { background: var(--wipf-accent); color: var(--wipf-primary-dark); }
.wipf-access-closed { display: flex; align-items: center; gap: .5rem; flex-wrap: wrap; }
.wipf-empty { border: 1px dashed var(--wipf-border, #dce3e8); border-radius: 8px; color: var(--wipf-text-soft, #60707c); }
.wipf-application-workflow .wipf-detail-grid dd { white-space: normal; }
/*
 * Zeitstrahl statt Kachel-Grid: eine horizontale Linie (::before) verbindet
 * die Marker; der bereits erreichte Abschnitt wird über die CSS-Variable
 * --wipf-progress (inline vom Server gesetzt, siehe render_application_workflow())
 * eingefärbt. Prozentwerte fallen exakt mit den Markerpositionen zusammen,
 * weil die Linie per left/right auf die Mittelpunkte des ersten und letzten
 * Markers eingerückt ist (4 gleich breite Spalten -> Mittelpunkte bei 12,5 %/87,5 %).
 */
.wipf-process-steps { --wipf-progress: 0%; position: relative; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .45rem; margin: 1.5rem 0 1.1rem; padding: 0; list-style: none; }
.wipf-process-steps::before { content: ""; position: absolute; top: 1.05rem; left: 12.5%; right: 12.5%; height: 3px; border-radius: 999px; background: linear-gradient(to right, #27623c var(--wipf-progress), var(--wipf-border) var(--wipf-progress)); }
.wipf-process-steps li { position: relative; z-index: 1; display: flex; flex-direction: column; align-items: center; gap: .4rem; min-width: 0; padding: 0; border: none; background: none; color: var(--wipf-text-soft); font-size: .78rem; text-align: center; }
.wipf-process-steps li > span { display: inline-grid; flex-shrink: 0; place-items: center; width: 2.1rem; height: 2.1rem; border: 3px solid #fff; border-radius: 50%; background: #dfe5e9; box-shadow: 0 0 0 1px var(--wipf-border); font-weight: 800; }
.wipf-process-steps .is-complete { color: #27623c; }
.wipf-process-steps .is-complete > span { background: #27623c; color: #fff; box-shadow: 0 0 0 1px #27623c; }
.wipf-process-steps .is-current { color: var(--wipf-primary); }
.wipf-process-steps .is-current > span { background: var(--wipf-primary); color: #fff; box-shadow: 0 0 0 1px var(--wipf-primary); }
.wipf-course-notice-list { display: grid; gap: .8rem; }
.wipf-course-notice { padding: .9rem 1rem; border: 1px solid var(--wipf-border); border-left: 4px solid var(--wipf-primary); border-radius: 8px; background: #fbfcfd; }
.wipf-course-notice header { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: .5rem; }
.wipf-course-notice h4 { margin: 0; }
.wipf-course-notice time { color: var(--wipf-text-soft); font-size: .8rem; }
.wipf-application-files ul { margin-top: .45rem; }
.wipf-thread-meta { display: flex; justify-content: space-between; gap: .75rem; }
.wipf-thread-meta span { color: var(--wipf-text-soft, #60707c); font-size: .8rem; }
.wipf-application-reply { display: grid; gap: .85rem; margin-top: 1rem; padding: 1rem; border: 1px solid #b6cdf7; border-radius: 9px; background: #f0f6fc; }
.wipf-application-reply h5 { margin: 0; }
.wipf-application-reply label { display: grid; gap: .35rem; font-weight: 700; }
.wipf-application-reply textarea,
.wipf-application-reply input[type="file"] { width: 100%; box-sizing: border-box; }
.wipf-application-reply small { color: var(--wipf-text-soft, #60707c); font-weight: 400; }
.wipf-application-reply .wipf-btn { justify-self: start; }

/* Kommunikation als Chat-Verlauf: Sprechblasen links/rechts, scrollende
   Nachrichtenliste, Eingabezeile mit „+“ für Anlagen am unteren Rand. Bleibt
   bewusst ein klassisches Formular mit Seiten-Reload (kein AJAX-Endpunkt im
   ganzen Plugin) – nur Markup/CSS wandeln die vorhandene Liste/das
   vorhandene Formular optisch um. */
.wipf-chat { display: grid; gap: 0; margin-top: .75rem; border: 1px solid var(--wipf-border, #dce3e8); border-radius: 12px; background: #fff; overflow: hidden; }
.wipf-chat-thread { display: grid; gap: .6rem; max-height: 22rem; margin: 0; padding: .9rem; list-style: none; overflow-y: auto; background: #f9fafb; }
.wipf-chat-bubble { max-width: 78%; margin: 0; padding: .6rem .8rem; border: 0; border-radius: 14px; background: #fff; box-shadow: 0 1px 2px rgba(0, 0, 0, .06); }
.wipf-chat-bubble--me { margin-left: auto; border-bottom-right-radius: 4px; background: var(--wipf-accent, #eaf3f9); }
.wipf-chat-bubble--them { margin-right: auto; border-bottom-left-radius: 4px; }
.wipf-chat-bubble.is-internal { border: 1px dashed #dba617; background: #fcf9e8; }
.wipf-chat-bubble .wipf-thread-meta { gap: .5rem; }
/* Sprungziel aus den Kursmanager-Benachrichtigungen: Der Verlauf ist ein
   eigener Scrollbereich, deshalb Abstand nach oben, damit die angesprungene
   Sprechblase nicht am Rand klebt. */
.wipf-chat-bubble[id] { scroll-margin-top: 2rem; }
.wipf-chat-bubble:target { outline: 2px solid var(--wipf-primary, #174b78); outline-offset: 2px; }
.wipf-chat-composer { margin: 0; padding: .65rem .75rem; border: 0; border-top: 1px solid var(--wipf-border, #dce3e8); border-radius: 0; background: #fff; }
/* Nur in der Admin-/Kursmanager-Ansicht vorhanden: „Art“-Auswahl und
   Aufbewahrungs-Checkbox oberhalb der eigentlichen Eingabezeile. */
.wipf-chat-composer__meta { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: .5rem 1rem; margin-bottom: .6rem; font-size: .84rem; }
.wipf-chat-composer__meta > label:first-child { display: flex; align-items: center; gap: .4rem; font-weight: 600; }
.wipf-chat-composer__meta .wipf-checkbox-label,
.wipf-chat-composer__meta .wipf-mail-choice { display: flex; align-items: center; gap: .4rem; font-weight: 400; }
.wipf-chat-composer__row { display: flex; align-items: flex-end; gap: .5rem; }
/* `label.` (Element + Klasse) statt nur `.klasse`, damit diese beiden Regeln
   zuverlässig gegen die allgemeinere `.wipf-application-reply label`-Regel
   gewinnen (gleiche Spezifität, aber später in der Datei definiert) statt
   sich auf eine schwächere Klassenregel zu verlassen. */
label.wipf-chat-composer__attach { position: relative; flex: 0 0 auto; display: inline-flex; align-items: center; justify-content: center; gap: 0; width: 2.35rem; height: 2.35rem; border: 1px solid var(--wipf-border, #dce3e8); border-radius: 50%; color: var(--wipf-primary, #174b78); font-size: 1.3rem; font-weight: 700; line-height: 1; cursor: pointer; }
.wipf-chat-composer__attach:hover { background: var(--wipf-accent, #eaf3f9); }
.wipf-chat-composer__attach input[type="file"] { position: absolute; inset: 0; width: 100%; height: 100%; margin: 0; opacity: 0; cursor: pointer; }
label.wipf-chat-composer__field { display: block; gap: 0; flex: 1 1 auto; min-width: 0; font-weight: 400; }
.wipf-chat-composer__field textarea { display: block; width: 100%; box-sizing: border-box; min-height: 2.35rem; max-height: 6rem; padding: .5rem .75rem; border: 1px solid var(--wipf-border, #dce3e8); border-radius: 1.2rem; font: inherit; resize: vertical; }
.wipf-chat-composer__send { flex: 0 0 auto; margin: 0; }
.wipf-chat-composer__hint { display: block; margin-top: .4rem; color: var(--wipf-text-soft, #60707c); font-weight: 400; font-size: .78rem; }

/* Kursmanager-Arbeitsplatz 0.9 ----------------------------------------- */
.wipf-manager-course-grid {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(min(100%, 320px), 1fr));
    gap: 1rem;
}
.wipf-manager-course-card {
    padding: 1rem 1.1rem;
    border: 1px solid var(--wipf-border);
    border-radius: 12px;
    background: #fff;
    box-shadow: 0 8px 24px rgba(23, 75, 120, .06);
}
.wipf-manager-course-card--attention {
    border-color: #d89b24;
    box-shadow: inset 4px 0 #d89b24, 0 8px 24px rgba(145, 91, 0, .08);
}
.wipf-manager-course-card h4 { margin: .4rem 0 .9rem; font-size: 1.12rem; }
.wipf-manager-course-card dl { display: grid; gap: .55rem; margin: 0; }
.wipf-manager-course-card dl div { display: grid; grid-template-columns: minmax(8.5rem, 40%) minmax(0, 1fr); gap: .75rem; align-items: start; }
.wipf-manager-course-card dt { color: var(--wipf-text-soft); font-size: .82rem; overflow-wrap: normal; word-break: normal; hyphens: auto; }
.wipf-manager-course-card dd { min-width: 0; margin: 0; text-align: right; font-weight: 700; overflow-wrap: break-word; word-break: normal; }
.wipf-badge--warning { background: #fff3cd; color: #7a4c00; text-decoration: none; }
.wipf-manager-card-actions { display: flex; flex-wrap: wrap; gap: .75rem; margin-top: 1rem; padding-top: .85rem; border-top: 1px solid var(--wipf-border); }
.wipf-manager-card-actions a { font-weight: 700; text-decoration: none; }
.wipf-manager-course-switcher {
    display: flex;
    align-items: end;
    gap: .55rem;
}
.wipf-manager-course-switcher label { display: grid; gap: .25rem; color: var(--wipf-text-soft); font-size: .82rem; font-weight: 700; }
.wipf-manager-course-switcher select,
.wipf-manager-filter input,
.wipf-manager-filter select,
.wipf-manager-actions input,
.wipf-manager-actions select,
.wipf-manager-actions textarea,
.wipf-manager-status-form input,
.wipf-manager-status-form select,
.wipf-manager-status-form textarea {
    box-sizing: border-box;
    min-height: 40px;
    padding: .55rem .65rem;
    border: 1px solid var(--wipf-border);
    border-radius: 7px;
    background: #fff;
}
.wipf-manager-filter {
    display: grid;
    grid-template-columns: minmax(180px, 1.4fr) repeat(3, minmax(145px, 1fr)) auto;
    gap: .6rem;
    margin: 1rem 0;
    padding: .8rem;
    border-radius: 9px;
    background: #f6f8fa;
}
.wipf-manager-export-actions { display: flex; justify-content: flex-end; gap: .55rem; margin: .75rem 0; }
.wipf-table { width: 100%; border-collapse: collapse; font-size: .9rem; }
.wipf-table th,
.wipf-table td { padding: .7rem .65rem; border-bottom: 1px solid var(--wipf-border); text-align: left; vertical-align: top; }
.wipf-table th { background: #edf3f7; color: #334550; font-size: .78rem; letter-spacing: .02em; text-transform: uppercase; }
.wipf-table tbody tr:nth-child(even) { background: #fafcfd; }
.wipf-table tbody tr:hover { background: #f2f7fa; }
.wipf-download-filters {
    display: grid;
    grid-template-columns: repeat(auto-fit, minmax(150px, 1fr));
    gap: .65rem;
    align-items: end;
    margin: .75rem 0 1rem;
    padding: .8rem;
    border: 1px solid var(--wipf-border);
    border-radius: var(--wipf-radius);
    background: #f7f9fb;
}
.wipf-download-filters label { display: grid; gap: .3rem; color: var(--wipf-text-soft); font-size: .82rem; font-weight: 700; }
.wipf-download-filters input,
.wipf-download-filters select { width: 100%; min-width: 0; box-sizing: border-box; padding: .5rem .55rem; border: 1px solid var(--wipf-border); border-radius: calc(var(--wipf-radius) * .65); background: #fff; color: var(--wipf-text); }
.wipf-download-filters > a { align-self: center; justify-self: start; }
.wipf-download-filters--compact { display: block; padding: .65rem .75rem; }
.wipf-download-search-row { display: grid; grid-template-columns: minmax(180px, 1fr) auto auto; gap: .55rem; align-items: end; }
.wipf-download-search-row label { min-width: 0; }
.wipf-download-search-row > a { align-self: center; padding: .4rem .15rem; }
.wipf-btn--compact { padding: .48rem .8rem; font-size: .88rem; line-height: 1.25; }
.wipf-download-filter-details { margin-top: .55rem; border-top: 1px solid var(--wipf-border); }
.wipf-download-filter-details summary { display: list-item; width: fit-content; margin-top: .55rem; color: var(--wipf-primary); cursor: pointer; font-size: .86rem; font-weight: 750; }
.wipf-download-filter-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(135px, 1fr)); gap: .55rem; align-items: end; margin-top: .6rem; }
.wipf-download-filter-grid .wipf-btn { justify-self: start; }
.wipf-download-table th a:hover { color: var(--wipf-accent); }
.wipf-download-result-count { margin: .5rem 0; color: var(--wipf-text-soft); font-size: .85rem; }
.wipf-download-selection { margin-top: .5rem; }
.wipf-download-selection__toolbar { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .55rem .75rem; margin-bottom: .55rem; }
.wipf-download-selection__toolbar > span { margin-right: auto; color: var(--wipf-text-soft); font-size: .86rem; font-weight: 700; }
.wipf-download-selection__toolbar button:disabled { cursor: not-allowed; opacity: .55; }
.wipf-participant-download-table .wipf-download-select-column { width: 1%; white-space: nowrap; vertical-align: middle; }
.wipf-participant-download-table th,
.wipf-participant-download-table td { white-space: nowrap; vertical-align: middle; }
.wipf-download-select-column label { display: inline-flex; align-items: center; gap: .4rem; cursor: pointer; }
.wipf-download-select-column input { width: 1.05rem; height: 1.05rem; margin: 0; }
.wipf-download-item__primary { display: inline-block; color: var(--wipf-primary); font-weight: 750; text-decoration: none; }
.wipf-download-item__primary:hover { text-decoration: underline; }
.wipf-download-item__meta { display: block; margin-top: .18rem; color: var(--wipf-text-soft); font-size: .8rem; line-height: 1.4; }
.wipf-download-multiple-hint { margin: .55rem 0 0; color: var(--wipf-text-soft); font-size: .8rem; }
.wipf-download-feedback { margin: .4rem 0 0; color: #27623c; font-size: .85rem; font-weight: 700; }
.wipf-invoice-downloads { margin-top: .5rem; }
.wipf-download-pagination { gap: .85rem; }
.wipf-download-pagination span { color: var(--wipf-text-soft); font-weight: 700; }
.wipf-download-pagination__pages { gap: .45rem; }
.wipf-download-pagination__pages > a,
.wipf-download-pagination__pages > span[aria-current="page"] { min-width: 1.75rem; padding: .2rem .35rem; border-radius: calc(var(--wipf-radius) * .5); text-align: center; }
.wipf-download-pagination__pages > span[aria-current="page"] { background: var(--wipf-accent); color: #fff; }
.wipf-download-pagination .screen-reader-text,
.wipf-download-selection .screen-reader-text {
    position: absolute;
    width: 1px;
    height: 1px;
    margin: -1px;
    padding: 0;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    border: 0;
    white-space: nowrap;
}
.wipf-print-title { margin: 1rem 0 .5rem; }
.wipf-manager-dossier > header { margin-bottom: 1rem; padding: 1rem 1.1rem; border-radius: 10px; background: var(--wipf-accent); }
.wipf-manager-dossier > header h3,
.wipf-manager-dossier > header p { margin: .2rem 0; }
.wipf-manager-form-data { display: grid; grid-template-columns: repeat(auto-fit, minmax(210px, 1fr)); gap: .65rem; }
.wipf-manager-form-data div { padding: .7rem; border-radius: 8px; background: #f6f8fa; }
.wipf-manager-form-data dt { color: var(--wipf-text-soft); font-size: .78rem; font-weight: 700; }
.wipf-manager-form-data dd { margin: .25rem 0 0; }
.wipf-manager-actions,
.wipf-manager-status-form {
    display: grid;
    gap: .85rem;
    margin-top: 1rem;
    padding: 1rem;
    border: 1px solid var(--wipf-border);
    border-radius: 10px;
    background: #fbfcfd;
}
.wipf-manager-actions > form,
.wipf-manager-status-form { display: grid; gap: .75rem; }
.wipf-manager-actions label,
.wipf-manager-status-form label { display: grid; gap: .3rem; font-weight: 700; }
.wipf-manager-actions .wipf-checkbox-label,
.wipf-manager-status-form .wipf-checkbox-label { display: flex; align-items: center; gap: .45rem; }
.wipf-manager-actions .wipf-btn,
.wipf-manager-status-form .wipf-btn { justify-self: start; }
.wipf-manager-editor { margin: 1rem 0; padding: .9rem 1rem; border: 1px solid var(--wipf-border); border-radius: 10px; background: #fbfcfd; }
.wipf-manager-editor summary { cursor: pointer; color: var(--wipf-primary); font-weight: 800; }
.wipf-field-hint { display: block; margin-top: .25rem; color: var(--wipf-text-soft); font-size: .82rem; }
.wipf-document-batch-row input { box-sizing: border-box; width: 100%; min-height: 40px; padding: .55rem .65rem; border: 1px solid var(--wipf-border); border-radius: 7px; }
.wipf-inline-form { display: inline; }
.wipf-link-danger { padding: 0; border: 0; background: transparent; color: #b32d2e; cursor: pointer; font: inherit; text-decoration: underline; }

/*
 * Der Kursmanager-Arbeitsplatz nutzt dieselben Editoren wie das Backend. Damit
 * die dort erzeugten WordPress-Backendklassen im Frontend nicht ungestaltet
 * erscheinen, werden sie hier auf die Portaloptik abgebildet.
 */
.wipf-dashboard .button,
.wipf-dashboard button.button {
    display: inline-block;
    padding: .48rem .95rem;
    border: 1px solid var(--wipf-primary);
    border-radius: 6px;
    background: #fff;
    color: var(--wipf-primary);
    cursor: pointer;
    font: inherit;
    font-size: .92rem;
    text-decoration: none;
}
.wipf-dashboard .button:hover,
.wipf-dashboard .button:focus-visible { background: var(--wipf-accent); }
.wipf-dashboard .button-primary { border-color: #1d4ed8; background: #1d4ed8; color: #fff; }
.wipf-dashboard .button-primary:hover,
.wipf-dashboard .button-primary:focus-visible { background: #1742b0; }
.wipf-dashboard .button-large { padding: .6rem 1.4rem; font-size: 1rem; }
.wipf-dashboard .button-link-delete {
    padding: 0;
    border: 0;
    background: transparent;
    color: #b32d2e;
    font: inherit;
    text-decoration: underline;
}
.wipf-dashboard .button-link-delete:hover { background: transparent; color: #8a2424; }
.wipf-dashboard table.widefat { width: 100%; border-collapse: collapse; }
.wipf-dashboard table.widefat th,
.wipf-dashboard table.widefat td { padding: .45rem .55rem; border-bottom: 1px solid var(--wipf-border); text-align: left; vertical-align: middle; }
.wipf-dashboard table.striped tbody tr:nth-child(odd) { background: #f6f8fa; }
.wipf-dashboard .description { display: block; margin: .2rem 0 0; color: var(--wipf-text-soft); font-size: .85rem; }
.wipf-dashboard .small-text { width: 5.5rem; }
.wipf-dashboard .widefat { box-sizing: border-box; }
.wipf-dashboard .notice { margin: .6rem 0; padding: .55rem .8rem; border-left: 4px solid var(--wipf-primary); background: #f6f8fa; }
.wipf-dashboard .notice-warning { border-left-color: #dba617; background: #fcf9e8; }
.wipf-dashboard .wipf-cockpit-form .wipf-form-grid { display: grid; grid-template-columns: repeat(2, minmax(220px, 1fr)); gap: .25rem 1.25rem; }
.wipf-dashboard .wipf-cockpit-form .wipf-form-grid > p { margin: .45rem 0; }
.wipf-dashboard .wipf-cockpit-form .wipf-form-grid__wide { grid-column: 1 / -1; }
.wipf-dashboard .wipf-cockpit-form input.widefat,
.wipf-dashboard .wipf-cockpit-form select.widefat,
.wipf-dashboard .wipf-cockpit-form textarea.widefat { box-sizing: border-box; width: 100%; }
.wipf-dashboard .wipf-header-actions,
.wipf-dashboard .wipf-inline-actions { display: flex; flex-wrap: wrap; align-items: center; gap: .45rem; }

@media (max-width: 760px) {
    .wipf-dashboard__header, .wipf-section-heading { align-items: flex-start; flex-direction: column; }
    /* Der Kopf kippt in die Spaltenanordnung; ein absolut positioniertes
       Panel würde dann aus dem Sichtbereich ragen. */
    .wipf-notifications { width: 100%; }
    .wipf-notifications__panel { position: static; min-width: 0; max-width: none; box-shadow: none; }
    .wipf-dashboard__layout { grid-template-columns: 1fr; }
    .wipf-account-nav { display: grid; overflow: visible; }
    .wipf-course-switcher { align-items: stretch; flex-direction: column; width: 100%; }
    .wipf-course-switcher select { max-width: none; width: 100%; }
    .wipf-profile-grid { grid-template-columns: 1fr; }
    .wipf-process-steps { grid-template-columns: 1fr; gap: 1rem; }
    .wipf-process-steps::before { top: .4rem; bottom: .4rem; left: 1.05rem; right: auto; width: 3px; height: auto; background: linear-gradient(to bottom, #27623c var(--wipf-progress), var(--wipf-border) var(--wipf-progress)); }
    .wipf-process-steps li { flex-direction: row; text-align: left; }
    .wipf-readonly-groups { grid-template-columns: 1fr; }
    .wipf-profile-grid .wipf-field--wide { grid-column: auto; }
    .wipf-profile-actions { justify-content: stretch; }
    .wipf-profile-actions .wipf-btn { width: 100%; justify-content: center; }
    .wipf-public-course__header,
    .wipf-application-panel__header { align-items: stretch; flex-direction: column; }
    .wipf-public-course__status { justify-content: flex-start; max-width: none; }
    .wipf-course-facts { grid-template-columns: 1fr; }
    .wipf-application-steps { grid-template-columns: 1fr; }
    .wipf-application-controls .wipf-btn,
    .wipf-application-submit .wipf-btn { flex: 1; width: 100%; }
    .wipf-calendar-url__controls { grid-template-columns: 1fr; }
    .wipf-calendar-actions { display: grid; }
    .wipf-calendar-actions .wipf-btn { justify-content: center; }
    .wipf-thread-meta { align-items: flex-start; flex-direction: column; }
    .wipf-form .wipf-form-grid { grid-template-columns: 1fr; }
    .wipf-dashboard .wipf-cockpit-form .wipf-form-grid { grid-template-columns: 1fr; }
    .wipf-manager-course-switcher { align-items: stretch; flex-direction: column; width: 100%; }
    .wipf-manager-course-switcher select { width: 100%; }
    .wipf-manager-filter { grid-template-columns: 1fr; }
    .wipf-download-search-row, .wipf-download-filter-grid { grid-template-columns: 1fr; }
    .wipf-download-search-row .wipf-btn, .wipf-download-filter-grid .wipf-btn { width: 100%; justify-content: center; }
    .wipf-download-search-row > a { justify-self: start; }
    .wipf-download-selection__toolbar { align-items: stretch; flex-direction: column; }
    .wipf-download-selection__toolbar .wipf-btn { width: 100%; justify-content: center; }
    .wipf-manager-export-actions { justify-content: flex-start; }
    .wipf-manager-course-card dl div { grid-template-columns: 1fr; gap: .1rem; }
    .wipf-manager-course-card dd { text-align: left; }
}

@media print {
    body * { visibility: hidden !important; }
    .wipf-print-area, .wipf-print-area * { visibility: visible !important; }
    .wipf-print-area { position: absolute; inset: 0; width: 100%; color: #000; }
    .wipf-no-print, .wipf-print-area form, .wipf-print-area button { display: none !important; }
    .wipf-table-scroll { overflow: visible; }
    .wipf-table { width: 100%; border-collapse: collapse; }
    .wipf-table th, .wipf-table td { border: 1px solid #888; padding: 5px; font-size: 9pt; }
}
