.add-csp-modal {
    position: fixed;
    inset: 0;
    display: none;
    z-index: 999999;
}

.add-csp-modal.is-visible {
    display: flex;
    align-items: center;
    justify-content: center;

    padding: 30px;

    /* Allow scrolling if the modal is taller than the viewport */
    overflow-y: auto;
    overflow-x: hidden;
}

.add-csp-modal-overlay {
    position: fixed;
    inset: 0;
    background: rgba(0,0,0,.65);
    backdrop-filter: blur(2px);
}

.add-csp-modal-window {
    position: relative;
    z-index: 2;

    width: 100%;
    max-width: 560px;

    background: #fff;
    border-radius: 10px;
    padding: 30px;

    box-shadow: 0 20px 60px rgba(0,0,0,.25);

    /* NEW */
    max-height: calc(100vh - 60px);
    overflow-y: auto;

    animation: addCspFade .25s ease;
}

@keyframes addCspFade{

from{

opacity:0;
transform:translateY(20px);

}

to{

opacity:1;
transform:none;

}

}

.add-csp-close{

position:absolute;
right:18px;
top:18px;
border:0;
background:none;
font-size:28px;
cursor:pointer;
line-height:1;
color:#666;

}

.add-csp-close:hover{

color:#000;

}

#add-csp-request-form p{

margin-bottom:18px;

}

#add-csp-request-form label{

display:block;
font-weight:600;
margin-bottom:6px;

}

#add-csp-request-form input,
#add-csp-request-form textarea{

width:100%;
padding:12px;
border:1px solid #dcdcdc;
border-radius:6px;
font-size:15px;

}

#add-csp-request-form textarea{

min-height:120px;
resize:vertical;

}

#add-csp-request-form input:focus,
#add-csp-request-form textarea:focus{

outline:none;
border-color:#2271b1;
box-shadow:0 0 0 2px rgba(34,113,177,.15);

}

#add-csp-request-form button{

width:100%;
margin-top:10px;

}

.add-csp-request-response{

margin-top:20px;
display:none;
padding:15px;
border-radius:6px;

}

.add-csp-request-response.success{

display:block;
background:#ecf9f1;
color:#0a7c3c;

}

.add-csp-request-response.error{

display:block;
background:#fdecec;
color:#a12622;

}

.add-csp-loading{

pointer-events:none;
opacity:.6;

}

body.add-csp-modal-open{

overflow:hidden;

}
#add-csp-request-form button[type="submit"]{
    display:block;
    width:100%;
    margin-top:10px;
    padding:14px 20px;
    border:none;
    border-radius:6px;
    background:#2271b1;
    color:#fff;
    font-size:16px;
    font-weight:600;
    line-height:1.4;
    cursor:pointer;
    transition:background .2s ease, transform .15s ease, box-shadow .2s ease;
}

#add-csp-request-form button[type="submit"]:hover{
    background:#135e96;
}

#add-csp-request-form button[type="submit"]:focus{
    outline:none;
    box-shadow:0 0 0 3px rgba(34,113,177,.25);
}

#add-csp-request-form button[type="submit"]:active{
    transform:translateY(1px);
}

#add-csp-request-form button[type="submit"]:disabled{
    opacity:.6;
    cursor:not-allowed;
}

@media(max-width:600px){

.add-csp-modal-window{

padding:20px;

}

}