        .cod-msco__modal {
            position: fixed;
            inset: 0;
            height: 100vh;
            height: 100lvh;
            z-index: var(--cod-modal-z, 999999);
            display: none;
            align-items: center;
            justify-content: center;
            padding: 24px;
        }
        .cod-msco__modal.is-open { display: flex; }
        body.cod-msco-open { overflow: hidden; }
        .cod-msco__backdrop {
            position: absolute;
            inset: 0;
            height: 100%;
            background: var(--cod-modal-backdrop, rgba(15, 23, 42, .58));
            -webkit-backdrop-filter: blur(var(--cod-modal-backdrop-blur, 6px));
            backdrop-filter: blur(var(--cod-modal-backdrop-blur, 6px));
        }
        .cod-msco__dialog {
            position: relative;
            z-index: 2;
            width: min(92vw, var(--cod-modal-maxw, 460px));
            max-height: min(94vh, 900px);
            overflow: auto;
            background: var(--cod-modal-bg, linear-gradient(180deg, rgba(255,255,255,.98) 0%, rgba(247,250,255,.98) 100%));
            border-radius: var(--cod-modal-radius, 22px);
            border: var(--cod-modal-border, 1px solid rgba(181, 194, 216, .4));
            box-shadow: var(--cod-modal-shadow, 0 28px 64px rgba(14, 36, 74, .28));
            padding: var(--cod-modal-pad, 26px);
            font-family: var(--cod-font-body, system-ui, sans-serif);
        }
        .cod-msco__close {
            position: absolute;
            top: 16px;
            right: 16px;
            z-index: 2;
            -webkit-appearance: none; appearance: none;
            width: var(--cod-modal-close-size, 42px);
            height: var(--cod-modal-close-size, 42px);
            border-radius: 50%;
            border: 0;
            background: var(--cod-modal-close-bg, rgba(47, 141, 228, .12));
            color: var(--cod-color-heading, #1f4d86);
            cursor: pointer;
            display: flex;
            align-items: center;
            justify-content: center;
            padding: 0;
            line-height: 0;
            box-shadow: none;
        }
        .cod-msco__close svg {
            width: 18px;
            height: 18px;
            display: block;
        }
        .cod-msco__title {
            margin: 0 0 4px;
            font-size: 19px;
            line-height: 1.15;
            font-family: var(--cod-font-headline-main, "Arial Rounded MT Bold - Family", system-ui, sans-serif);
            color: var(--cod-color-heading, #1f4166);
        }
        .cod-msco__aktiv {
            display: flex;
            flex-direction: column;
            gap: 4px;
            margin: 0 0 14px;
            padding: 12px 14px;
            border-radius: 8px;
            background: #e8f6ee;
            color: #1d7a45;
            font-size: 15px;
            line-height: 1.45;
        }
        /* PFLICHT neben jedem display: Das hidden-Attribut ist nur
           display:none aus dem Browser-Stylesheet und verliert gegen jede
           eigene display-Angabe - der Banner staende sonst IMMER da, auch
           beim normalen Kauf. */
        .cod-msco__aktiv[hidden] { display: none; }
        .cod-msco__aktiv strong { font-weight: 700; }
        .cod-msco__aktiv span:empty { display: none; }
        .cod-msco__aktiv-link {
            align-self: flex-start;
            margin-top: 6px;
            /* 44 px Trefferflaeche auf Beruehrgeraeten - der Link steht allein in
               einem farbigen Block, ein Fehlgriff trifft sonst nichts. */
            min-height: 24px;
            display: inline-flex;
            align-items: center;
            color: #14603a;
            font-weight: 700;
            text-decoration: underline;
        }
        @media (pointer: coarse) {
            .cod-msco__aktiv-link { min-height: 44px; }
        }
        .cod-msco__summary {
            margin: 10px 0 16px;
            padding: 14px 14px 12px;
            background: rgba(181, 194, 216, .16);
            border-radius: var(--cod-modal-field-radius, 12px);
        }
        .cod-msco__plan {
            display: flex;
            justify-content: space-between;
            align-items: baseline;
            gap: 10px;
        }
        .cod-msco__plan b { font-size: 16px; color: var(--cod-color-heading, #1a1a1a); }
        .cod-msco__plan span { font-weight: 700; color: var(--cod-color-heading, #1a1a1a); white-space: nowrap; }
        .cod-msco__benefits {
            list-style: none;
            margin: 12px 0 0;
            padding: 12px 0 0;
            border-top: 1px solid rgba(181, 194, 216, .35);
            display: flex;
            flex-direction: column;
            gap: 7px;
        }
        .cod-msco__benefits:empty { margin: 0; padding: 0; border-top: 0; }
        .cod-msco__benefits li {
            display: flex;
            align-items: flex-start;
            gap: 8px;
            font-size: 13.5px;
            line-height: 1.4;
            color: var(--cod-color-text, #333);
        }
        .cod-msco__benefits li::before {
            content: "✓";
            flex: 0 0 auto;
            font-weight: 700;
            color: var(--cod-color-accent-blue, #2f8de4);
        }
        .cod-msco__meta {
            margin-top: 10px;
            padding-top: 10px;
            border-top: 1px solid rgba(181, 194, 216, .35);
            font-size: 12.5px;
            line-height: 1.5;
            color: var(--cod-color-muted, #657085);
        }
        .cod-msco__field { margin-bottom: 14px; }
        .cod-msco__field > label {
            display: block;
            font-weight: 600;
            font-size: 13px;
            margin-bottom: 6px;
            color: var(--cod-color-text, #333);
        }
        .cod-msco__discount { display: flex; gap: 8px; }
        .cod-msco__discount input {
            flex: 1;
            min-height: 44px;
            border: 1px solid rgba(181, 194, 216, .75);
            border-radius: var(--cod-modal-field-radius, 12px);
            padding: 9px 12px;
            text-transform: uppercase;
            color: var(--cod-color-text, #2f3640);
            box-sizing: border-box;
            font-size: 15px;
        }
        .cod-msco__discount button {
            border: 0;
            border-radius: var(--cod-modal-field-radius, 12px);
            padding: 9px 14px;
            background: rgba(181, 194, 216, .28);
            color: var(--cod-color-heading, #1f4d86);
            cursor: pointer;
            font-weight: 600;
        }
        .cod-msco__discount input:disabled,
        .cod-msco__discount button:disabled {
            opacity: .55;
            cursor: not-allowed;
            background: rgba(181, 194, 216, .18);
        }
        .cod-msco__fb { margin-top: 6px; font-size: 13px; min-height: 18px; }
        .cod-msco__friends-teaser { margin: -4px 0 12px; font-size: 13px; color: var(--cod-color-muted, #657085); }
        .cod-msco__friends-teaser button {
            border: 0;
            background: none;
            padding: 0;
            font: inherit;
            font-weight: 600;
            color: var(--cod-color-accent-blue, #2f8de4);
            text-decoration: underline;
            cursor: pointer;
        }
        .cod-msco__agb {
            display: flex;
            gap: 9px;
            align-items: flex-start;
            font-size: 12.5px;
            color: var(--cod-color-text, #333);
            line-height: 1.5;
            margin: 6px 0 16px;
        }
        .cod-msco__agb input { margin-top: 3px; }
        .cod-msco__agb a { color: var(--cod-color-accent-blue, #2f8de4); }
        .cod-msco__widerruf {
            font-size: 11.5px;
            color: var(--cod-color-muted, #657085);
            line-height: 1.5;
            margin: -8px 0 14px;
        }
        .cod-msco__widerruf a { color: var(--cod-color-accent-blue, #2f8de4); }
        .cod-msco__btn {
            -webkit-appearance: none; appearance: none;
            display: block;
            width: 100%;
            border: 0;
            border-radius: 999px;
            background: var(--cod-cta, #3598db);
            color: #fff;
            padding: 13px;
            font-size: 15px;
            font-weight: 700;
            cursor: pointer;
            box-shadow: 0 14px 28px rgba(23, 105, 199, .22);
            transition: opacity .15s ease;
        }
        .cod-msco__btn:disabled { opacity: .6; cursor: not-allowed; }
        .cod-msco__back {
            display: inline-block;
            margin-top: 12px;
            border: 0;
            background: transparent;
            color: var(--cod-color-muted, #657085);
            cursor: pointer;
            font-size: 13px;
            text-decoration: underline;
        }
        .cod-msco__done { text-align: center; padding: 18px 6px; }
        .cod-msco__done-check { font-size: 46px; color: #66b32e; line-height: 1; }
        .cod-msco__done p {
            font-size: 16px;
            font-weight: 700;
            margin: 10px 0 0;
            color: var(--cod-color-heading, #1a1a1a);
        }
        .cod-msco__err { margin-top: 12px; color: #dc3545; font-size: 13px; min-height: 16px; }
        