.programme-wrapper {
    position: relative;
}

/* Modal overlay (scoped per instance) */
.programme-wrapper .programme-modal {
    /* position: absolute; */
    inset: 0;
    display: flex;
    align-items: center;
    justify-content: center;
    background: rgba(0,0,0,0.5);
    padding: 40px;
    z-index: 10;
}

/* Optional: blur background when modal is visible */
.programme-wrapper.is-locked .programme-content {
    filter: blur(8px);
    pointer-events: none;
}

/* Modal box */
.programme-box {
    background: #fff;
    padding: 40px;
    border-radius: 8px;
    text-align: center;
    max-width: 400px;
    width: 100%;
}

/* Input styling (optional but cleaner UX) */
.programme-box input {
    width: 100%;
    padding: 10px;
    margin: 10px 0;
}

/* Button styling */
.programme-box button {
    padding: 10px 20px;
    cursor: pointer;
}

/* Error message */
.programme-error {
    color: red;
    display: none;
    margin-top: 10px;
}

/* Content area */
.programme-wrapper .programme-content {
    filter: none;
    pointer-events: auto;
}