.rsp-v3-pulse{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(210px,.75fr);gap:12px;margin:0 0 16px;color:var(--rsp-text,#f5f5f5)}
.rsp-v3-pulse>article{border:1px solid rgba(255,255,255,.13);border:1px solid color-mix(in srgb,var(--rsp-text,#fff) 13%,transparent);border-radius:var(--rsp-card-radius,18px);background:var(--rsp-surface,#1c1c1c);background:color-mix(in srgb,var(--rsp-surface,#1c1c1c) 94%,transparent);box-shadow:var(--rsp-card-shadow,0 10px 30px rgba(0,0,0,.24));overflow:hidden}
.rsp-v3-public-onair{display:grid;grid-template-columns:112px 1fr;gap:16px;align-items:center;padding:14px;background:linear-gradient(135deg,color-mix(in srgb,var(--rsp-live,#e02424) 82%,#270000),color-mix(in srgb,var(--rsp-accent,#ff6600) 82%,#521600))!important;color:#fff}
.rsp-v3-public-cover{position:relative;width:112px;height:94px;border-radius:14px;overflow:hidden;display:grid;place-items:center;background:rgba(0,0,0,.22)}.rsp-v3-public-cover img{width:100%;height:100%;object-fit:cover}.rsp-v3-public-cover>span{font-size:35px}.rsp-v3-public-cover>i{position:absolute;inset:0;box-shadow:inset 0 0 0 1px rgba(255,255,255,.15)}
.rsp-v3-public-live{display:inline-flex;align-items:center;gap:7px;font-size:10px;font-weight:850;letter-spacing:.1em}.rsp-v3-public-live i{width:7px;height:7px;border-radius:50%;background:#fff;animation:rspV3PublicPulse 1.5s infinite}.rsp-v3-public-onair h2{font-size:clamp(21px,3vw,29px);line-height:1.05;color:#fff;margin:5px 0}.rsp-v3-public-onair p{margin:0;color:rgba(255,255,255,.82)}.rsp-v3-public-progress{display:block;height:4px;margin-top:11px;border-radius:999px;background:rgba(0,0,0,.18);overflow:hidden}.rsp-v3-public-progress i{display:block;height:100%;background:#fff;transition:width .5s}
.rsp-v3-public-offair{display:flex;align-items:center;gap:12px;padding:18px;min-height:94px}.rsp-v3-public-offair>span{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;font-size:25px;color:var(--rsp-accent,#ff6600);background:color-mix(in srgb,var(--rsp-accent,#ff6600) 14%,transparent)}.rsp-v3-public-offair div{display:grid;gap:3px}.rsp-v3-public-offair small{font-size:10px;letter-spacing:.09em;color:var(--rsp-accent,#ff6600)}
.rsp-v3-public-next{display:flex;flex-direction:column;justify-content:center;padding:16px}.rsp-v3-public-next small,.rsp-v3-public-metrics small{font-size:9px;font-weight:800;letter-spacing:.09em;color:var(--rsp-accent,#ff6600)}.rsp-v3-public-next strong{font-size:17px;margin:5px 0}.rsp-v3-public-next>span{font-size:12px;color:color-mix(in srgb,var(--rsp-text,#fff) 68%,transparent)}
.rsp-v3-public-metrics{grid-column:1/-1;display:grid;grid-template-columns:120px minmax(0,1fr) 130px}.rsp-v3-public-metrics>div{display:grid;gap:4px;padding:12px 16px;border-left:1px solid color-mix(in srgb,var(--rsp-text,#fff) 10%,transparent)}.rsp-v3-public-metrics>div:first-child{border-left:0}.rsp-v3-public-metrics strong{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.rsp-v3-public-metrics>div:first-child strong,.rsp-v3-public-metrics>div:last-child strong{font-size:20px}
@keyframes rspV3PublicPulse{0%,100%{box-shadow:0 0 0 3px rgba(255,255,255,.18)}50%{box-shadow:0 0 0 9px rgba(255,255,255,0)}}
@media(max-width:760px){.rsp-v3-pulse{grid-template-columns:1fr}.rsp-v3-public-metrics{grid-column:auto;grid-template-columns:1fr 1fr}.rsp-v3-public-metrics>div:nth-child(2){grid-column:1/-1;grid-row:1}.rsp-v3-public-onair{grid-template-columns:78px 1fr}.rsp-v3-public-cover{width:78px;height:78px}.rsp-v3-public-next{min-height:72px}}
@media(max-width:460px){.rsp-v3-public-onair{grid-template-columns:1fr}.rsp-v3-public-cover{width:100%;height:130px}.rsp-v3-public-metrics{grid-template-columns:1fr}.rsp-v3-public-metrics>div,.rsp-v3-public-metrics>div:nth-child(2){grid-column:auto;grid-row:auto;border-left:0;border-top:1px solid color-mix(in srgb,var(--rsp-text,#fff) 10%,transparent)}}

/* 3.1: Die Live-Puls-Module bleiben auch unter globalen Theme-Regeln ein
 * eigenes, horizontal lesbares Grid. */
.rsp-frontend.rsp-public-wrapper.rsp-ui .rsp-v3-pulse{
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    min-height:0!important;
    height:auto!important;
    display:grid!important;
    grid-template-columns:minmax(0,1.65fr) minmax(210px,.75fr)!important;
    float:none!important;
    writing-mode:horizontal-tb!important;
    text-orientation:mixed!important;
}
.rsp-frontend.rsp-public-wrapper.rsp-ui .rsp-v3-pulse>article{
    width:auto!important;
    max-width:100%!important;
    min-width:0!important;
    height:auto!important;
    float:none!important;
    writing-mode:horizontal-tb!important;
    text-orientation:mixed!important;
}
.rsp-frontend.rsp-public-wrapper.rsp-ui .rsp-v3-pulse :where(h2,p,small,strong,span,div){
    writing-mode:horizontal-tb!important;
    text-orientation:mixed!important;
    word-break:normal!important;
}
@media(max-width:760px){
    .rsp-frontend.rsp-public-wrapper.rsp-ui .rsp-v3-pulse{grid-template-columns:1fr!important}
}

/* 3.1 – Radio-Hub: ein geschlossenes, container-responsives Frontend.
 * Die Regeln sind bewusst auf das Hauptfrontend begrenzt. Designfarben und
 * Transparenzen bleiben variabel, Geometrie und Bedienelemente jedoch nicht
 * mehr vom aktiven WordPress-Theme abhängig. */
.rsp-frontend-v31.rsp-public-wrapper.rsp-ui {
    container-name: rsp-radio-hub;
    container-type: inline-size;
    isolation: isolate !important;
    overflow: clip !important;
}

.rsp-frontend-v31.rsp-ui,
.rsp-frontend-v31.rsp-ui :where(section, article, header, nav, aside, div, ol, ul, li, form) {
    min-inline-size: 0 !important;
    writing-mode: horizontal-tb !important;
    text-orientation: mixed !important;
}

.rsp-frontend-v31.rsp-ui :where(ol, ul) {
    margin-inline: 0 !important;
    list-style: none !important;
}

.rsp-frontend-v31.rsp-ui :where(button, input, select, textarea) {
    box-sizing: border-box !important;
    margin: 0 !important;
    float: none !important;
    font-family: var(--rsp-font-main, inherit) !important;
    writing-mode: horizontal-tb !important;
    text-orientation: mixed !important;
}

.rsp-frontend-v31.rsp-ui :where(
    .rsp-icon-button,
    .rsp-primary-button,
    .rsp-secondary-button,
    .rsp-favorite-button,
    .rsp-calendar-button,
    .rsp-wunschbox-btn,
    .rsp-favorites-filter,
    .rsp-today-link,
    .rsp-view-switcher button,
    .rsp-public-day-nav a
) {
    inline-size: auto !important;
    max-inline-size: 100% !important;
    min-inline-size: 0 !important;
    block-size: auto !important;
    float: none !important;
    clear: none !important;
    background-image: none !important;
    text-indent: 0 !important;
    writing-mode: horizontal-tb !important;
    text-orientation: mixed !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
}

.rsp-frontend-v31.rsp-ui .rsp-public-day-nav a {
    inline-size: 100% !important;
}

.rsp-frontend-v31.rsp-ui .rsp-view-switcher button {
    inline-size: auto !important;
    min-inline-size: max-content !important;
    flex: 0 0 auto !important;
}

.rsp-frontend-v31.rsp-ui .rsp-header-login-button {
    inline-size: 42px !important;
    min-inline-size: 42px !important;
    block-size: 42px !important;
}

.rsp-frontend-v31.rsp-ui :where(
    .rsp-icon-button,
    .rsp-primary-button,
    .rsp-secondary-button,
    .rsp-favorite-button,
    .rsp-calendar-button,
    .rsp-wunschbox-btn,
    .rsp-favorites-filter,
    .rsp-today-link,
    .rsp-view-switcher button,
    .rsp-public-day-nav a
)::before,
.rsp-frontend-v31.rsp-ui :where(
    .rsp-icon-button,
    .rsp-primary-button,
    .rsp-secondary-button,
    .rsp-favorite-button,
    .rsp-calendar-button,
    .rsp-wunschbox-btn,
    .rsp-favorites-filter,
    .rsp-today-link,
    .rsp-view-switcher button,
    .rsp-public-day-nav a
)::after {
    display: none !important;
    content: none !important;
}

.rsp-frontend-v31.rsp-ui .rsp-hero {
    grid-template-columns: auto minmax(0, 1fr) auto !important;
    min-block-size: 0 !important;
}

/* 3.5.1 – kompakter Kopfbereich und belastbare Aktionsbuttons. WordPress-
 * Themes setzen haeufig globale button-/a-Regeln mit eigenen Farben oder
 * verkleinern SVGs. Die sichtbaren Werte bleiben deshalb innerhalb des Hubs
 * vollstaendig an das im Sendeplan konfigurierte Farbschema gebunden. */
.rsp-frontend-v31.rsp-ui .rsp-hero .rsp-hero-copy > h1 {
    margin: 0 !important;
    max-inline-size: 100% !important;
    color: var(--rsp-copy, var(--rsp-text-main, #f5f5f5)) !important;
    font-size: clamp(30px, 3.4cqi, 44px) !important;
    font-weight: 900 !important;
    letter-spacing: -.035em !important;
    line-height: 1.05 !important;
    text-transform: none !important;
}

.rsp-frontend-v31.rsp-ui .rsp-hero-actions > :where(a, button).rsp-icon-button {
    -webkit-appearance: none !important;
    appearance: none !important;
    inline-size: auto !important;
    min-inline-size: 0 !important;
    block-size: 42px !important;
    min-block-size: 42px !important;
    max-block-size: 42px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 8px !important;
    margin: 0 !important;
    padding: 8px 13px !important;
    border: 1px solid var(--rsp-border-strong, rgba(128, 128, 128, .4)) !important;
    border-radius: 999px !important;
    background-color: var(--rsp-surface-alt, var(--rsp-bg-table-row-alt, #151515)) !important;
    background-image: none !important;
    color: var(--rsp-copy, var(--rsp-text-main, #f5f5f5)) !important;
    box-shadow: none !important;
    font-size: 13px !important;
    font-style: normal !important;
    font-weight: 800 !important;
    letter-spacing: 0 !important;
    line-height: 1 !important;
    text-align: center !important;
    text-decoration: none !important;
    text-indent: 0 !important;
    text-shadow: none !important;
    text-transform: none !important;
}

.rsp-frontend-v31.rsp-ui .rsp-hero-actions > :where(a, button).rsp-icon-button:hover,
.rsp-frontend-v31.rsp-ui .rsp-hero-actions > :where(a, button).rsp-icon-button:focus-visible {
    border-color: var(--rsp-accent, #ff6600) !important;
    color: var(--rsp-copy, var(--rsp-text-main, #f5f5f5)) !important;
}

.rsp-frontend-v31.rsp-ui .rsp-hero-actions > button.rsp-share-button {
    border-color: var(--rsp-accent, #ff6600) !important;
    background-color: var(--rsp-accent, #ff6600) !important;
    color: var(--rsp-accent-contrast, #fff) !important;
}

.rsp-frontend-v31.rsp-ui .rsp-hero-actions > button.rsp-share-button:hover,
.rsp-frontend-v31.rsp-ui .rsp-hero-actions > button.rsp-share-button:focus-visible {
    background-color: var(--rsp-accent, #ff6600) !important;
    color: var(--rsp-accent-contrast, #fff) !important;
    filter: brightness(1.07) !important;
}

.rsp-frontend-v31.rsp-ui .rsp-hero-actions > button.rsp-header-login-button {
    inline-size: 42px !important;
    min-inline-size: 42px !important;
    padding: 0 !important;
    border-color: var(--rsp-accent, #ff6600) !important;
    background-color: var(--rsp-accent-soft, rgba(255, 102, 0, .16)) !important;
    color: var(--rsp-accent, #ff6600) !important;
    overflow: visible !important;
}

.rsp-frontend-v31.rsp-ui .rsp-hero-actions > button.rsp-header-login-button svg {
    inline-size: 22px !important;
    min-inline-size: 22px !important;
    block-size: 22px !important;
    min-block-size: 22px !important;
    display: block !important;
    flex: 0 0 22px !important;
    overflow: visible !important;
    fill: none !important;
    stroke: currentColor !important;
    stroke-width: 2.15 !important;
    stroke-linecap: round !important;
    stroke-linejoin: round !important;
}

.rsp-frontend-v31.rsp-ui .rsp-hero-actions > button.rsp-header-login-button svg :where(path, circle) {
    display: initial !important;
    fill: none !important;
    stroke: currentColor !important;
    stroke-width: inherit !important;
}

.rsp-frontend-v31.rsp-ui .rsp-hero-actions > button.rsp-header-login-button.is-logged-in::after {
    width: 9px !important;
    height: 9px !important;
    display: block !important;
    position: absolute !important;
    right: 1px !important;
    bottom: 1px !important;
    border: 2px solid var(--rsp-surface-alt, var(--rsp-bg-table-row-alt, #151515)) !important;
    border-radius: 50% !important;
    background: #22c55e !important;
    content: "" !important;
}

.rsp-frontend-v31.rsp-ui button.rsp-favorite-button,
.rsp-frontend-v31.rsp-ui button.rsp-favorites-filter,
.rsp-frontend-v31.rsp-ui a.rsp-calendar-button {
    -webkit-appearance: none !important;
    appearance: none !important;
    min-block-size: 38px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    gap: 7px !important;
    padding: 7px 12px !important;
    border: 1px solid var(--rsp-border-strong, rgba(128, 128, 128, .4)) !important;
    border-radius: 999px !important;
    background-color: var(--rsp-surface-alt, var(--rsp-bg-table-row-alt, #151515)) !important;
    background-image: none !important;
    color: var(--rsp-copy, var(--rsp-text-main, #f5f5f5)) !important;
    box-shadow: none !important;
    font-size: 12px !important;
    font-style: normal !important;
    font-weight: 800 !important;
    letter-spacing: 0 !important;
    line-height: 1.2 !important;
    text-decoration: none !important;
    text-shadow: none !important;
    text-transform: none !important;
}

.rsp-frontend-v31.rsp-ui button.rsp-favorite-button:hover,
.rsp-frontend-v31.rsp-ui button.rsp-favorite-button:focus-visible,
.rsp-frontend-v31.rsp-ui button.rsp-favorites-filter:hover,
.rsp-frontend-v31.rsp-ui button.rsp-favorites-filter:focus-visible,
.rsp-frontend-v31.rsp-ui a.rsp-calendar-button:hover,
.rsp-frontend-v31.rsp-ui a.rsp-calendar-button:focus-visible {
    border-color: var(--rsp-accent, #ff6600) !important;
    background-color: var(--rsp-surface-alt, var(--rsp-bg-table-row-alt, #151515)) !important;
    color: var(--rsp-copy, var(--rsp-text-main, #f5f5f5)) !important;
}

.rsp-frontend-v31.rsp-ui button.rsp-favorite-button:is(.is-favorite, [aria-pressed="true"]),
.rsp-frontend-v31.rsp-ui button.rsp-favorites-filter:is(.is-active, [aria-pressed="true"]) {
    border-color: var(--rsp-accent, #ff6600) !important;
    background-color: var(--rsp-accent-soft, rgba(255, 102, 0, .16)) !important;
    color: var(--rsp-copy, var(--rsp-text-main, #f5f5f5)) !important;
}

.rsp-frontend-v31.rsp-ui .rsp-hub-layout.has-sidebar {
    grid-template-columns: minmax(0, 1fr) minmax(260px, 310px) !important;
    align-items: start !important;
}

.rsp-frontend-v31.rsp-ui .rsp-view-panels,
.rsp-frontend-v31.rsp-ui .rsp-view-panel,
.rsp-frontend-v31.rsp-ui .rsp-schedule-day,
.rsp-frontend-v31.rsp-ui .rsp-schedule-layout,
.rsp-frontend-v31.rsp-ui .rsp-schedule-main,
.rsp-frontend-v31.rsp-ui .rsp-slot-list {
    inline-size: 100% !important;
    max-inline-size: 100% !important;
}

.rsp-frontend-v31.rsp-ui .rsp-slot {
    inline-size: 100% !important;
    max-inline-size: 100% !important;
    min-block-size: 190px !important;
    block-size: auto !important;
    grid-template-columns: clamp(164px, 21cqi, 238px) minmax(0, 1fr) !important;
    align-items: stretch !important;
    contain: layout paint !important;
}

.rsp-frontend-v31.rsp-ui .rsp-slot-media {
    inline-size: 100% !important;
    min-block-size: 190px !important;
    max-block-size: 300px !important;
    align-self: stretch !important;
    overflow: hidden !important;
    position: relative !important;
}

.rsp-frontend-v31.rsp-ui .rsp-slot-media > img {
    inline-size: 100% !important;
    block-size: 100% !important;
    min-inline-size: 100% !important;
    min-block-size: 100% !important;
    max-inline-size: none !important;
    max-block-size: none !important;
    margin: 0 !important;
    position: absolute !important;
    inset: 0 !important;
    object-fit: cover !important;
    object-position: center !important;
}

.rsp-frontend-v31.rsp-ui .rsp-slot-content {
    inline-size: 100% !important;
    max-inline-size: 100% !important;
    min-block-size: 0 !important;
    block-size: auto !important;
    align-items: flex-start !important;
    justify-content: center !important;
    gap: 9px !important;
    overflow: hidden !important;
}

.rsp-frontend-v31.rsp-ui .rsp-slot-title {
    max-inline-size: 100% !important;
    font-size: clamp(21px, var(--rsp-show-title-size, 2.35cqi), 42px) !important;
    overflow-wrap: anywhere !important;
}

.rsp-frontend-v31.rsp-ui .rsp-slot-description {
    max-inline-size: 100% !important;
    display: -webkit-box !important;
    overflow: hidden !important;
    -webkit-box-orient: vertical !important;
    -webkit-line-clamp: 3 !important;
}

.rsp-frontend-v31.rsp-ui .rsp-slot-actions,
.rsp-frontend-v31.rsp-ui .rsp-stream-actions {
    inline-size: auto !important;
    max-inline-size: 100% !important;
    display: flex !important;
    flex-flow: row wrap !important;
    align-items: center !important;
    gap: 7px !important;
}

.rsp-frontend-v31.rsp-ui .rsp-slot-actions > :where(button, a),
.rsp-frontend-v31.rsp-ui .rsp-stream-actions > :where(button, a) {
    inline-size: auto !important;
    min-inline-size: 0 !important;
    max-inline-size: 100% !important;
    min-block-size: 38px !important;
    flex: 0 1 auto !important;
    white-space: nowrap !important;
}

.rsp-frontend-v31.rsp-ui button.rsp-wunschbox-btn {
    inline-size: auto !important;
    min-inline-size: 0 !important;
    max-inline-size: 100% !important;
    flex-direction: row !important;
    white-space: nowrap !important;
}

.rsp-frontend-v31.rsp-ui .rsp-wunschbox-btn > :where(.rsp-wunschbox-icon, .rsp-wunschbox-text) {
    inline-size: auto !important;
    block-size: auto !important;
    display: inline !important;
    white-space: inherit !important;
    writing-mode: horizontal-tb !important;
}

.rsp-frontend-v31.rsp-ui .rsp-hub-sidebar {
    inline-size: 100% !important;
    max-inline-size: 310px !important;
}

.rsp-frontend-v31.rsp-ui .rsp-today-panel,
.rsp-frontend-v31.rsp-ui .rsp-today-list,
.rsp-frontend-v31.rsp-ui .rsp-today-list > li {
    inline-size: 100% !important;
    max-inline-size: 100% !important;
}

.rsp-frontend-v31.rsp-ui .rsp-v3-pulse,
.rsp-frontend-v31.rsp-ui .rsp-v3-pulse > article {
    color: var(--rsp-copy, var(--rsp-text-main, #f5f5f5)) !important;
}

/* Einige Themes setzen fuer Dialog-Klassen ein eigenes display und hebeln
 * dadurch selbst das native hidden-Attribut aus. Geschlossene Dialoge duerfen
 * unter keinen Umstaenden am Karten-Grid teilnehmen. */
.rsp-frontend-v31.rsp-ui .rsp-wunschbox-modal[hidden],
.rsp-frontend-v31.rsp-ui .rsp-login-modal[hidden],
.rsp-frontend-v31.rsp-ui .rsp-slot-modal[hidden] {
    display: none !important;
    visibility: hidden !important;
}

/* Ein alter Seitencache darf ein frueheres Inline-Wunschformular nicht mehr
 * in die Sendungskarte quetschen. Aktuelle Ausgaben verwenden nur Dialoge. */
.rsp-frontend-v31.rsp-ui .rsp-slot > .rsp-slot-content > .rsp-slot-action {
    display: none !important;
}

@container rsp-radio-hub (max-width: 960px) {
    .rsp-frontend-v31.rsp-ui .rsp-hub-layout.has-sidebar {
        grid-template-columns: 1fr !important;
    }

    .rsp-frontend-v31.rsp-ui .rsp-hub-sidebar {
        max-inline-size: none !important;
        position: static !important;
    }

    .rsp-frontend-v31.rsp-ui .rsp-today-list {
        display: grid !important;
        grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
        gap: 8px !important;
    }
}

@container rsp-radio-hub (max-width: 720px) {
    .rsp-frontend-v31.rsp-ui .rsp-hero {
        grid-template-columns: auto minmax(0, 1fr) !important;
    }

    .rsp-frontend-v31.rsp-ui .rsp-hero-actions {
        grid-column: 1 / -1 !important;
        justify-content: flex-start !important;
    }

    .rsp-frontend-v31.rsp-ui .rsp-hero .rsp-hero-copy > h1 {
        font-size: clamp(27px, 8cqi, 36px) !important;
    }

    .rsp-frontend-v31.rsp-ui .rsp-slot {
        grid-template-columns: minmax(126px, 34%) minmax(0, 1fr) !important;
    }

    .rsp-frontend-v31.rsp-ui .rsp-slot-content {
        padding: 16px !important;
    }

    .rsp-frontend-v31.rsp-ui .rsp-slot-title {
        font-size: clamp(20px, 5cqi, 31px) !important;
    }

    .rsp-frontend-v31.rsp-ui .rsp-public-day-nav {
        grid-template-columns: repeat(7, minmax(82px, 1fr)) !important;
    }
}

@container rsp-radio-hub (max-width: 520px) {
    .rsp-frontend-v31.rsp-ui .rsp-slot {
        grid-template-columns: 1fr !important;
    }

    .rsp-frontend-v31.rsp-ui .rsp-slot-media {
        min-block-size: 150px !important;
        block-size: clamp(150px, 45cqi, 205px) !important;
        max-block-size: 205px !important;
    }

    .rsp-frontend-v31.rsp-ui .rsp-slot-actions,
    .rsp-frontend-v31.rsp-ui .rsp-stream-actions {
        inline-size: 100% !important;
    }

    .rsp-frontend-v31.rsp-ui .rsp-slot-actions > :where(button, a),
    .rsp-frontend-v31.rsp-ui .rsp-stream-actions > :where(button, a) {
        inline-size: 100% !important;
        flex: 1 1 100% !important;
        justify-content: center !important;
        white-space: normal !important;
    }

    .rsp-frontend-v31.rsp-ui .rsp-wunschbox-btn > .rsp-wunschbox-text {
        white-space: normal !important;
    }

    .rsp-frontend-v31.rsp-ui .rsp-today-list {
        grid-template-columns: 1fr !important;
    }
}

/* Dialoge liegen nach dem Oeffnen direkt unter body und brauchen deshalb
 * ihre eigene, vom Theme unabhaengige Formulargeometrie. */
body > .rsp-wunschbox-modal.rsp-ui .rsp-wunschbox-modal-header > div {
    min-inline-size: 0 !important;
}

body > .rsp-wunschbox-modal.rsp-ui .rsp-wunschbox-modal-header .rsp-eyebrow {
    margin-block-end: 3px !important;
}

body > .rsp-wunschbox-modal.rsp-ui .rsp-form-actions > button[type="submit"] {
    inline-size: auto !important;
    min-inline-size: 170px !important;
    block-size: auto !important;
    min-block-size: 44px !important;
    writing-mode: horizontal-tb !important;
}

/* Gemeinsamer Schutz fuer eigenstaendige Frontend-Shortcodes. Dadurch bleiben
 * auch Bewerbung, Filebox und Login ausserhalb des Radio-Hubs bedienbar. */
.rsp-ui.rsp-scope :where(a, button) {
    writing-mode: horizontal-tb !important;
    text-orientation: mixed !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
}

.rsp-ui.rsp-scope :where(.rsp-primary-button, button[type="submit"]) {
    inline-size: auto !important;
    max-inline-size: 100% !important;
    block-size: auto !important;
    min-block-size: 40px !important;
    float: none !important;
}

.rsp-ui.rsp-login-widget .rsp-login-form > .rsp-primary-button {
    inline-size: 100% !important;
}

.rsp-ui.rsp-scope :where(.rsp-primary-button, button[type="submit"])::before,
.rsp-ui.rsp-scope :where(.rsp-primary-button, button[type="submit"])::after {
    display: none !important;
    content: none !important;
}
