 .cpp-dashboard{
    display:flex;
    flex-direction:column;
    min-height:100vh;
    background:#f5f7fb;
    font-family:"Merriweather Sans", Arial, sans-serif;
    width: 100%;
    max-width: 100%;
}

.cpp-dashboard .cpp-dashboard-header{
    display:flex;
    justify-content:space-between;
    align-items:center;
    background:#ffffff;
    padding:18px 30px;
    background: linear-gradient(90deg, #271254, #3e176e);
}

.cpp-dashboard .cpp-dashboard-body{ 
    display:flex;
    flex:1;
}

.cpp-dashboard-body .cpp-dashboard-sidebar{
    width:240px;
    color: #fff;
    background: linear-gradient(180deg, #321574 0%, #26135F 25%, #1D1250 50%, #2D1363 70%, #2B1461 100%);
    display: flex;
    position: relative;
    overflow: hidden;
}
/*.cpp-dashboard-sidebar .cpp-dashboard-sidebar-inner {
    min-height: 100vh;
    padding: 22px 18px; 
    background-image: url('https://estacadachurch.com/wp-content/uploads/2026/09/sidebar-background.webp');
    background-size: contain;
    background-position: bottom center;
    background-repeat: no-repeat;
}*/
/*.cpp-dashboard-sidebar .cpp-dashboard-sidebar-inner::after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 100%;

    background-image: url('https://estacadachurch.com/wp-content/uploads/2026/09/sidebar-background.webp');
    background-size: 500px 750px;
    background-position: bottom center;
    background-repeat: no-repeat;

    -webkit-mask-image: linear-gradient(
        to bottom,
        transparent 0%,
        black 45%,
        black 100%
    );

    mask-image: linear-gradient(
        to bottom,
        transparent 0%,
        black 45%,
        black 100%
    );

    pointer-events: none;
}*/

.cpp-dashboard-sidebar .cpp-dashboard-nav{
    display:flex;
    flex-direction:column;
    padding:0px;
    gap:8px;
}

.cpp-dashboard-nav .cpp-nav-item{
    display:flex;
    align-items:center;
    gap:14px;
    padding:14px 18px;
    border-radius:10px;
    text-decoration:none;
    color:#fff;
    font-weight:500;
    transition:all .2s ease;
}

.cpp-dashboard-nav .cpp-nav-item:hover{
    background: linear-gradient(90deg, #5422a5, #6e31c2);
    color:#fff;
}

.cpp-dashboard-nav .cpp-nav-active{
    background:#1d4ed8;
    color:#ffffff;
}

.cpp-dashboard-nav .cpp-nav-active:hover{
    background:#1d4ed8;
    color:#ffffff;
}

.cpp-dashboard-body .cpp-dashboard-content{
    flex:1;
    padding:30px;
    /*background-image: url('https://estacadachurch.com/wp-content/uploads/2026/09/body-background.webp');*/
    /*background-image: url('https://estacadachurch.com/wp-content/uploads/2026/08/modern-church-background-v2.webp');*/
    background-color: #fff6ec;
    background-size: cover;
    background-position: center;
    background-repeat: no-repeat;
    background-attachment: fixed;
}

.cpp-dashboard-content .cpp-dashboard-hero{
    background:#ffffff;
    border-radius:16px;
    padding:35px;
    margin-bottom:30px;
    box-shadow:0 4px 18px rgba(0,0,0,.05);
}

.cpp-dashboard-content .cpp-dashboard-hero-content{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
}

.cpp-dashboard-content .cpp-dashboard-hero h2{
    margin:0;
    font-size:32px;
    font-weight:700;
    color: #fff;
}

.cpp-dashboard-hero-content .cpp-dashboard-message{
    margin-top:10px;
    color:#6b7280;
    font-size:16px;
}

.cpp-dashboard-hero-content .cpp-dashboard-date{
    color:#9ca3af;
    font-size:15px;
    white-space:nowrap;
}

.cpp-dashboard .cpp-dashboard-widget-grid{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:24px;
}

.cpp-dashboard .cpp-widget-placeholder{
    background:#ffffff;
    min-height:220px;
    border-radius:14px;
    display:flex;
    align-items:center;
    justify-content:center;
    box-shadow:0 2px 12px rgba(0,0,0,.05);
}

/* Dashboard - Quick Actions */
.cpp-dashboard .cpp-dashboard-actions{
    margin-bottom:30px;
}

.cpp-dashboard .cpp-dashboard-actions h2{
    margin-bottom:20px;
    font-size:22px;
    color:#1f2937;
}

.cpp-dashboard .cpp-action-grid{
    display:grid;
    grid-template-columns:repeat(2,1fr);
    gap:20px;
}

.cpp-dashboard .cpp-action-card{
    display:flex;
    align-items:center;
    gap:18px;
    background:#ffffff;
    padding:22px;
    border-radius:14px;
    text-decoration:none;
    color:#374151;
    box-shadow:0 2px 12px rgba(0,0,0,.05);
    transition:all .2s ease;
}

.cpp-dashboard .cpp-action-card:hover{
    transform:translateY(-3px);
    box-shadow:0 10px 24px rgba(0,0,0,.08);
}

.cpp-dashboard .cpp-action-icon{
    width:58px;
    height:58px;
    border-radius:14px;
    display:flex;
    align-items:center;
    justify-content:center;
    background:#eef4ff;
    font-size:28px;
}

.cpp-dashboard .cpp-request-item{
    display:flex;
    align-items:flex-start;
    gap:16px;
    padding:18px 0;
    border-bottom:1px solid #ececec;
}

.cpp-dashboard .cpp-request-item:last-child{
    border-bottom:none;
}

.cpp-dashboard .cpp-request-icon{
    width:46px;
    height:46px;
    border-radius:12px;
    background:#eef4ff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:24px;
}

.cpp-dashboard .cpp-request-content{
    flex:1;
}

.cpp-dashboard .cpp-request-status{
    margin-top:6px;
    font-size:14px;
    color:#2563eb;
}

.cpp-dashboard .cpp-request-date{
    margin-top:4px;
    font-size:12px;
    color:#9ca3af;
}

.cpp-dashboard .cpp-empty-state{
    padding:24px;
    text-align:center;
    color:#6b7280;
}

.cpp-dashboard .cpp-action-content{
    flex:1;
    min-width:0;
}

.cpp-dashboard .cpp-action-content p{
    margin:6px 0 0;
}

/* Dashboard - Upcoming Events */
.cpp-dashboard .cpp-event-item{
    display:flex;
    align-items:flex-start;
    gap:16px;
    padding:18px 15px;
    border:1px solid #ced4da;
    background-color: #fff;
}

.cpp-dashboard .cpp-event-icon{
    width:46px;
    height:46px;
    border-radius:12px;
    background:#eef4ff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:22px;
}

.cpp-dashboard .cpp-event-content{
    flex:1;
}

.cpp-dashboard .cpp-event-date{
    margin-top:6px;
    color:#6b7280;
    font-size:14px;
}

/* ==========================================
   Recent Activity Widget
========================================== */

.cpp-dashboard .cpp-activity-list{
    display:flex;
    flex-direction:column;
}

.cpp-dashboard .cpp-activity-item{
    display:flex;
    align-items:flex-start;
    gap:16px;
    padding:18px 0;
    border-bottom:1px solid #ececec;
    transition:all .25s ease;
}

.cpp-dashboard .cpp-activity-item:last-child{
    border-bottom:none;
}

.cpp-dashboard .cpp-activity-item:hover{
    transform:translateX(4px);
}

.cpp-dashboard .cpp-activity-icon{
    width:46px;
    height:46px;
    border-radius:12px;
    background:#eef4ff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:22px;
    flex-shrink:0;
}

.cpp-dashboard .cpp-activity-content{
    flex:1;
}

.cpp-activity-content strong{
    display:block;
    margin-bottom:6px;
    color:#1f2937;
    font-size:15px;
}

.cpp-dashboard .cpp-activity-content p{
    margin:0;
    color:#6b7280;
    font-size:14px;
    line-height:1.5;
}

.cpp-dashboard .cpp-activity-time{
    display:inline-block;
    margin-top:8px;
    font-size:12px;
    color:#9ca3af;
}

.cpp-dashboard .cpp-empty-state{
    padding:24px;
    text-align:center;
    color:#6b7280;
}

/* ==========================================
   Dashboard Statistics Widget
========================================== */

.cpp-dashboard .cpp-stats-grid{
    display:grid;
    grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
    gap:20px;
    margin-top:20px;
}

.cpp-dashboard .cpp-stat-card{
    background:#ffffff;
    border:1px solid #edf2f7;
    border-radius:18px;
    padding:28px 20px;
    text-align:center;
    transition:all .25s ease;
    box-shadow:0 2px 8px rgba(0,0,0,.04);
}

.cpp-dashboard .cpp-stat-card:hover{
    transform:translateY(-4px);
    box-shadow:0 10px 24px rgba(0,0,0,.08);
}

.cpp-dashboard .cpp-stat-icon{
    width:64px;
    height:64px;
    margin:0 auto 18px;
    border-radius:16px;
    background:#eef4ff;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:30px;
}

.cpp-dashboard .cpp-stat-number{
    font-size:34px;
    font-weight:700;
    color:#1e3a8a;
    line-height:1;
}

.cpp-dashboard .cpp-stat-label{
    margin-top:12px;
    color:#6b7280;
    font-size:15px;
}

/* ==========================================
   My Requests Widget
========================================== */

.cpp-dashboard .cpp-request-list{
    display:flex;
    flex-direction:column;
}

.cpp-dashboard .cpp-request-item{
    display:flex;
    align-items:flex-start;
    gap:16px;
    padding:18px 0;
    border-bottom:1px solid #ececec;
    transition:transform .2s ease;
}

.cpp-dashboard .cpp-request-item:last-child{
    border-bottom:none;
}

.cpp-dashboard .cpp-request-item:hover{
    transform:translateX(4px);
}

.cpp-dashboard .cpp-request-icon{
    width:46px;
    height:46px;
    border-radius:12px;
    background:#eef4ff;
    display:flex;
    align-items:center;
    justify-content:center;
    flex-shrink:0;
    font-size:22px;
}

.cpp-dashboard .cpp-request-content{
    flex:1;
    min-width:0;
}

.cpp-dashboard .cpp-request-heading{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
}

.cpp-dashboard .cpp-request-heading strong{
    color:#1f2937;
    font-size:15px;
}

.cpp-request-reference{
    margin-top:0px;
    color:#4b5563;
    font-size:14px;
    font-weight:600;
}

.cpp-dashboard .cpp-request-date{
    margin-top:5px;
    color:#687386;
    font-size:12px;
}

.cpp-dashboard .cpp-request-status{
    display:inline-flex;
    align-items:center;
    padding:5px 10px;
    border-radius:999px;
    background:#eef4ff;
    color:#1d4ed8;
    font-size:12px;
    font-weight:600;
    white-space:nowrap;
}

.cpp-dashboard .cpp-request-status[data-status="resolved"],
.cpp-dashboard .cpp-request-status[data-status="completed"],
.cpp-dashboard .cpp-request-status[data-status="closed"]{
    background:#ecfdf5;
    color:#047857;
}

.cpp-dashboard .cpp-request-status[data-status="under-review"],
.cpp-dashboard .cpp-request-status[data-status="in-progress"],
.cpp-dashboard .cpp-request-status[data-status="assigned"]{
    background:#fffbeb;
    color:#b45309;
}

.cpp-dashboard .cpp-empty-state{
    padding:28px;
    border:1px dashed #d1d5db;
    border-radius:14px;
    text-align:center;
    color:#6b7280;
}

/* ==========================================
   Upcoming Events Widget
========================================== */

.cpp-dashboard .cpp-widget-heading{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:20px;
    margin-bottom:10px;
}

.cpp-dashboard .cpp-widget-heading h2{
    margin:0;
}

.cpp-dashboard .cpp-event-list{
    display:flex;
    flex-direction:column;
}

.cpp-dashboard .cpp-event-item{
    display:flex;
    align-items:flex-start;
    gap:18px;
    padding:20px 0;
    border-bottom:1px solid #ececec;
    transition:transform .2s ease;
}

.cpp-dashboard .cpp-event-item:hover{
    transform:translateX(4px);
}

.cpp-dashboard .cpp-event-date-box{
    width:58px;
    min-width:58px;
    overflow:hidden;
    border:1px solid #dbeafe;
    border-radius:14px;
    background:#ffffff;
    text-align:center;
}

.cpp-dashboard .cpp-event-month{
    display:block;
    padding:5px 8px;
    background:#1d4ed8;
    color:#ffffff;
    font-size:11px;
    font-weight:700;
    letter-spacing:.06em;
    text-transform:uppercase;
}

.cpp-dashboard .cpp-event-day{
    display:block;
    padding:8px;
    color:#1f2937;
    font-size:22px;
    line-height:1;
}

.cpp-dashboard .cpp-event-content{
    flex:1;
    min-width:0;
}

.cpp-dashboard .cpp-event-title{
    margin:0;
    color:#1f2937;
    font-size:16px;
    font-weight:700;
}

.cpp-dashboard .cpp-event-meta{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:8px;
    margin-top:7px;
    color:#6b7280;
    font-size:13px;
}

.cpp-dashboard .cpp-event-time::before{
    content:"•";
    margin-right:8px;
    color:#cbd5e1;
}

.cpp-dashboard .cpp-event-venue{
    margin-top:7px;
    color:#4b5563;
    font-size:13px;
}

.cpp-dashboard .cpp-event-venue{
    position:relative;
    padding-left:20px;
}

.cpp-dashboard .cpp-event-venue::before{
    content:"";
    position:absolute;
    top:.28em;
    left:3px;
    width:8px;
    height:8px;
    border:2px solid #6F2D96;
    border-radius:50% 50% 50% 0;
    transform:rotate(-45deg);
}

.cpp-dashboard .cpp-event-venue::after{
    content:"";
    position:absolute;
    top:.58em;
    left:6px;
    width:2px;
    height:2px;
    border-radius:50%;
    background:#6F2D96;
}

@media (max-width:1024px){
    .cpp-dashboard .cpp-stats-grid{
        grid-template-columns:repeat(2,minmax(180px,1fr));
    }
}

@media (max-width:600px){

    .cpp-dashboard .cpp-event-item{
        gap:14px;
    }

    .cpp-dashboard .cpp-event-date-box{
        width:52px;
        min-width:52px;
    }

    .cpp-dashboard .cpp-event-day{
        font-size:20px;
    }

    .cpp-dashboard .cpp-event-meta{
        align-items:flex-start;
        flex-direction:column;
        gap:4px;
    }

    .cpp-dashboard .cpp-event-time::before{
        display:none;
    }

}

/* ==========================================
   Live Recent Activity Widget
========================================== */

.cpp-dashboard .cpp-activity-list{
    display:flex;
    flex-direction:column;
}

.cpp-dashboard .cpp-activity-item{
    display:flex;
    align-items:flex-start;
    gap:16px;
    padding:18px 0;
    border-bottom:1px solid #ececec;
    transition:transform .2s ease;
}

.cpp-dashboard .cpp-activity-item:last-child{
    border-bottom:none;
}

.cpp-dashboard .cpp-activity-item:hover{
    transform:translateX(4px);
}

.cpp-dashboard .cpp-activity-icon{
    width:46px;
    height:46px;
    border-radius:12px;
    background:#eef4ff;
    display:flex;
    align-items:center;
    justify-content:center;
    flex-shrink:0;
    font-size:22px;
}

.cpp-dashboard .cpp-activity-content{
    flex:1;
    min-width:0;
}

.cpp-dashboard .cpp-activity-title{
    display:block;
    color:#1f2937;
    font-size:15px;
}

.cpp-dashboard .cpp-activity-description{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:8px;
    margin-top:0px;
    justify-content: space-between;
}

.cpp-dashboard .cpp-activity-reference{
    color:#4b5563;
    font-size:14px;
    font-weight:600;
}

.cpp-dashboard .cpp-activity-status{
    display:inline-flex;
    align-items:center;
    padding:4px 9px;
    border-radius:999px;
    background:#eef4ff;
    color:#1d4ed8;
    font-size:11px;
    font-weight:700;
}

.cpp-dashboard .cpp-activity-status[data-status="resolved"],
.cpp-dashboard .cpp-activity-status[data-status="completed"],
.cpp-dashboard .cpp-activity-status[data-status="closed"]{
    background:#ecfdf5;
    color:#047857;
}

.cpp-dashboard .cpp-activity-status[data-status="under-review"],
.cpp-dashboard .cpp-activity-status[data-status="assigned"],
.cpp-dashboard .cpp-activity-status[data-status="in-progress"]{
    background:#fffbeb;
    color:#b45309;
}

.cpp-dashboard .cpp-activity-time{
    display:block;
    margin-top:0px;
    color:#9ca3af;
    font-size:12px;
}

@media (max-width:600px){

    .cpp-dashboard .cpp-activity-item{
        gap:13px;
    }

    .cpp-dashboard .cpp-activity-description{
        align-items:flex-start;
        flex-direction:column;
        gap:6px;
    }

}

.cpp-dashboard .cpp-nav-icon{
    width:24px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex-shrink:0;
}

.cpp-dashboard .cpp-nav-label{
    flex:1;
}

.cpp-dashboard .cpp-nav-item:focus-visible{
    outline:3px solid rgba(29,78,216,.25);
    outline-offset:2px;
}

/* ==========================================
   Responsive Dashboard Navigation
========================================== */

.cpp-dashboard-header-left{
    display:flex;
    align-items:center;
    gap:14px;
}
.cpp-dashboard-header-left .cpp-dashboard-logo {
    display: flex;
    flex-direction: row;
    align-items: center;
    justify-content: center;
    gap: 5px;
}

.cpp-dashboard-header-left .cpp-dashboard-logo h1 {
    font-size: 24px;
    color: #6d28d9;
    margin: 0;
}

.cpp-dashboard-header-left .cpp-dashboard-logo h1 span {
    margin: 4px 0 0;
    color: #ddd5ed;
    font-size: 13px;
    font-weight: 400;
    display: block;
}

.cpp-dashboard-header-left .cpp-dashboard-menu-toggle,
.cpp-dashboard-sidebar .cpp-dashboard-sidebar-close,
.cpp-dashboard-body .cpp-dashboard-sidebar-overlay{
    appearance:none;
    border:0;
    font:inherit;
}

.cpp-dashboard-header-left .cpp-dashboard-menu-toggle{
    display:none;
    width:42px;
    height:42px;
    align-items:center;
    justify-content:center;
    border-radius:10px;
    background:#eef4ff;
    color: #6F2D96;
    cursor:pointer;
    font-size:22px;
    transition:background .2s ease,
               transform .2s ease;
}

.cpp-dashboard-header-left .cpp-dashboard-menu-toggle:hover{
    background:#dbeafe;
}

.cpp-dashboard-header-left .cpp-dashboard-menu-toggle:active{
    transform:scale(.96);
}

.cpp-dashboard-header-left .cpp-dashboard-menu-toggle:focus-visible,
.cpp-dashboard-sidebar .cpp-dashboard-sidebar-close:focus-visible{
    outline:3px solid rgba(29,78,216,.25);
    outline-offset:2px;
}

.cpp-dashboard-header-left .cpp-dashboard-menu-toggle:focus {
    background-color: #fff;
    color: #6F2D96;
}

.cpp-dashboard-sidebar .cpp-dashboard-sidebar-close{
    display:none;
}

.cpp-dashboard-body .cpp-dashboard-sidebar-overlay{
    display:none;
}

body.cpp-dashboard-no-scroll{
    overflow:hidden;
}

@media (max-width:900px){

    .cpp-dashboard .cpp-dashboard-header{
        padding:14px 18px;
    }

    .cpp-dashboard-header-left .cpp-dashboard-menu-toggle{
        display:inline-flex;
    }

    .cpp-dashboard .cpp-dashboard-body{
        position:relative;
        display:block;
    }

    .cpp-dashboard-body .cpp-dashboard-sidebar{
        position:fixed;
        top:0;
        bottom:0;
        left:0;
        z-index:1002;
        width:min(300px,86vw);
        overflow-y:auto;
        border-right:1px solid #ced4da;
        box-shadow:12px 0 30px rgba(15,23,42,.14);
        transform:translateX(-105%);
        transition:transform .25s ease;
    }

    .cpp-dashboard-nav-open
    .cpp-dashboard-sidebar{
        transform:translateX(0);
    }

    .cpp-dashboard-sidebar .cpp-dashboard-sidebar-close{
        display:flex;
        width:42px;
        height:42px;
        margin:14px 14px 0 auto;
        align-items:center;
        justify-content:center;
        border-radius:10px;
        background:#f3f4f6;
        color:#374151;
        cursor:pointer;
        font-size:28px;
        line-height:1;
    }

    .cpp-dashboard-sidebar .cpp-dashboard-sidebar-close:hover{
        background:#e5e7eb;
    }

    .cpp-dashboard-sidebar .cpp-dashboard-sidebar-overlay{
        position:fixed;
        inset:0;
        z-index:1001;
        display:block;
        visibility:hidden;
        background:rgba(15,23,42,.48);
        cursor:pointer;
        opacity:0;
        pointer-events:none;
        transition:opacity .25s ease,
                   visibility .25s ease;
    }

    .cpp-dashboard-sidebar .cpp-dashboard-nav-open
    .cpp-dashboard-sidebar .cpp-dashboard-sidebar-overlay{
        visibility:visible;
        opacity:1;
        pointer-events:auto;
    }

    .cpp-dashboard-body .cpp-dashboard-content{
        width:100%;
        padding:24px 18px;
    }

    .cpp-dashboard-hero .cpp-dashboard-hero-content{
        align-items:flex-start;
        flex-direction:column;
    }

    .cpp-dashboard-hero .cpp-dashboard-date{
        white-space:normal;
    }

}

@media (max-width:600px){

    .cpp-dashboard .cpp-dashboard-header{
        gap:12px;
    }

    .cpp-dashboard-header .cpp-dashboard-logo strong{
        font-size:15px;
    }

    .cpp-dashboard-user{
        max-width:42%;
        overflow:hidden;
    }

    .cpp-dashboard-body .cpp-dashboard-user span{
        display:block;
        overflow:hidden;
        text-overflow:ellipsis;
        white-space:nowrap;
    }

    .cpp-dashboard-body .cpp-dashboard-content{
        padding:18px 14px;
    }

    .cpp-dashboard-content .cpp-dashboard-hero{
        padding:24px 20px;
    }

    .cpp-dashboard-content .cpp-dashboard-hero h1{
        font-size:25px;
    }

}

/* ==========================================
   Dashboard Header User Menu
========================================== */

.cpp-dashboard .cpp-dashboard-user-menu{
    position:relative;
}

.cpp-dashboard-user-menu .cpp-user-menu-toggle{
    display:flex;
    align-items:center;
    gap:10px;
    padding:6px 10px;
    border:0;
    border-radius:12px;
    background:transparent;
    color:#fff;
    font:inherit;
    cursor:pointer;
    transition:background .2s ease;
}

.cpp-dashboard-user-menu .cpp-user-menu-toggle:hover{
    color: #6F2D96;
    background-color: #f3f6fb!;
    background:#f3f6fb;
}

.cpp-dashboard-user-menu .cpp-user-menu-toggle:focus{
    color: #6F2D96;
    background-color: #f3f6fb;
    background:#f3f6fb;
}

.cpp-dashboard-user-menu .cpp-user-menu-toggle:hover,
.cpp-dashboard .cpp-user-menu-open .cpp-user-menu-toggle{
    background-color: #f3f6fb;
    background:#f3f6fb;
}

.cpp-dashboard .cpp-user-menu-toggle:focus-visible{
    outline:3px solid rgba(29,78,216,.25);
    outline-offset:2px;
}

.cpp-dashboard-user-menu .cpp-user-avatar{
    width:40px;
    height:40px!important;
    border-radius:50%!important;
    object-fit:cover;
    background:#eef4ff;
}

.cpp-dashboard-user-menu .cpp-user-menu-name{
    max-width:180px;
    overflow:hidden;
    text-overflow:ellipsis;
    font-size:14px;
    font-weight:600;
    white-space:nowrap;
}

.cpp-dashboard-user-menu .cpp-user-menu-arrow{
    color:#6b7280;
    font-size:12px;
    transition:transform .2s ease;
}

.cpp-user-menu-open .cpp-user-menu-arrow{
    transform:rotate(180deg);
}

.cpp-dashboard-user-menu .cpp-user-menu-dropdown{
    position:absolute;
    top:calc(100% + 12px);
    right:0;
    z-index:1100;
    width:280px;
    overflow:hidden;
    border:1px solid #ced4da;
    border-radius:16px;
    background:#ffffff;
    box-shadow:0 18px 45px rgba(15,23,42,.16);
}

.cpp-dashboard-user-menu .cpp-user-menu-summary{
    display:flex;
    align-items:center;
    gap:13px;
    padding:18px;
    border-bottom:1px solid #edf0f4;
}

.cpp-dashboard-user-menu .cpp-user-menu-summary-avatar{
    width:48px;
    height:48px;
    border-radius:50%;
    object-fit:cover;
    background:#eef4ff;
}

.cpp-dashboard-user-menu .cpp-user-menu-summary div{
    min-width:0;
}

.cpp-dashboard-user-menu .cpp-user-menu-summary strong{
    display:block;
    overflow:hidden;
    color:#1f2937;
    text-overflow:ellipsis;
    font-size:14px;
    white-space:nowrap;
}

.cpp-dashboard-user-menu .cpp-user-menu-summary span{
    display:block;
    margin-top:4px;
    overflow:hidden;
    color:#6b7280;
    text-overflow:ellipsis;
    font-size:12px;
    white-space:nowrap;
}

.cpp-dashboard-user-menu .cpp-user-menu-links{
    display:flex;
    flex-direction:column;
    padding:8px;
}

.cpp-dashboard-user-menu .cpp-user-menu-links a{
    display:flex;
    align-items:center;
    gap:11px;
    padding:11px 12px;
    border-radius:10px;
    color:#374151;
    text-decoration:none;
    font-size:14px;
    transition:background .2s ease,
               color .2s ease;
}

.cpp-dashboard-user-menu .cpp-user-menu-links a:hover{
    background:#eef4ff;
    color:#6F2D96;
}

.cpp-dashboard-user-menu .cpp-user-menu-links a:focus-visible{
    outline:3px solid rgba(29,78,216,.2);
    outline-offset:1px;
}

.cpp-dashboard-user-menu .cpp-user-menu-links
.cpp-dashboard-user-menu .cpp-user-menu-logout{
    margin-top:4px;
    border-top:1px solid #edf0f4;
    border-radius:0 0 10px 10px;
    color:#b91c1c;
}

.cpp-dashboard-user-menu .cpp-user-menu-links
.cpp-dashboard-user-menu .cpp-user-menu-logout:hover{
    background:#fef2f2;
    color:#991b1b;
}

@media (max-width:600px){

    .cpp-dashboard .cpp-user-menu-name{
        display:none;
    }

    .cpp-dashboard .cpp-user-menu-toggle{
        gap:5px;
        padding:4px;
    }

    .cpp-dashboard .cpp-user-menu-dropdown{
        position:fixed;
        top:72px;
        right:14px;
        left:14px;
        width:auto;
    }

}

/* =========================================================
   Header — Church Inbox Notification
   ========================================================= */

.cpp-dashboard-user-menu{
    display:flex;
    align-items:center;
    gap:10px;
}

.cpp-dashboard-user-menu .cpp-header-message-notification{
    position:relative;
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
    width:42px;
    height:42px;
    border-radius:50%;
    color:inherit;
    text-decoration:none;
    transition:
        background .18s ease,
        transform .18s ease;
}

.cpp-dashboard-user-menu .cpp-header-message-notification:hover{
    background:rgba(255,255,255,.1);
    transform:translateY(-1px);
}

.cpp-dashboard-user-menu .cpp-header-message-icon{
    display:flex;
    align-items:center;
    justify-content:center;
}

.cpp-dashboard-user-menu .cpp-header-message-icon svg{
    width:23px;
    height:23px;
    stroke: #fff;
}


/* Notification bubble */

.cpp-dashboard-user-menu .cpp-header-notification-badge{
    position:absolute;
    top:2px;
    right:1px;
    display:flex;
    align-items:center;
    justify-content:center;
    min-width:18px;
    height:18px;
    padding:0 5px;
    border:2px solid
        var(--cpp-header-background,#fff);
    border-radius:999px;
    background:#dc2626;
    color:#fff;
    font-size:8px;
    font-weight:800;
    line-height:1;
    box-shadow:
        0 2px 7px
        rgba(220,38,38,.38);
    font-variant-numeric:
        tabular-nums;
}

.cpp-dashboard-user-menu .cpp-header-notification-badge[hidden]{
    display:none;
}


/* Small screens */

@media (max-width:600px){

    .cpp-dashboard-user-menu .cpp-header-message-notification{
        width:38px;
        height:38px;
    }

    .cpp-dashboard-user-menu .cpp-header-message-icon svg{
        width:21px;
        height:21px;
    }

    .cpp-dashboard-user-menu .cpp-header-notification-badge{
        top:1px;
        right:0;
        min-width:17px;
        height:17px;
        font-size:8px;
    }

}

/* ==========================================
   Dashboard Widget Layout
========================================== */

.cpp-dashboard .cpp-dashboard-widget-layout{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:24px;
}

.cpp-dashboard .cpp-widget-layout-item{
    min-width:0;
}

.cpp-dashboard .cpp-widget-layout-full{
    grid-column:1 / -1;
}

.cpp-dashboard .cpp-widget-layout-half{
    grid-column:span 1;
}

/* Standard widget container */

.cpp-dashboard .cpp-widget{
    height:100%;
    padding:26px;
    border:1px solid #8F8F8F;
    border-radius:18px;
    background: linear-gradient(135deg, rgba(107, 63, 196, .08), rgba(242, 181, 68, .10)), #fff;
    box-shadow:0 4px 16px rgba(15,23,42,.05);
}

.cpp-dashboard .cpp-widget > h2,
.cpp-dashboard .cpp-widget-heading h2,
.cpp-dashboard .cpp-dashboard-actions > h2{
    margin:0 0 10px;
    color:#1f2937;
    font-size:24px;
    font-weight:700;
    line-height:1.25;
}

/* Keep Quick Actions aligned with other widgets */

.cpp-dashboard .cpp-dashboard-actions{
    height:100%;
    margin:0;
    padding:26px;
    border:1px solid #e8edf3;
    border-radius:18px;
    background:#ffffff;
    box-shadow:0 4px 16px rgba(15,23,42,.05);
}

/* Remove nested card appearance where needed */

.cpp-dashboard .cpp-dashboard-actions .cpp-action-card{
    box-shadow:none;
    border:1px solid #edf1f5;
}

.cpp-dashboard .cpp-dashboard-actions .cpp-action-card:hover{
    box-shadow:0 10px 22px rgba(15,23,42,.08);
}

/* Improve spacing inside live list widgets */

.cpp-dashboard .cpp-event-list,
.cpp-dashboard .cpp-request-list,
.cpp-dashboard .cpp-activity-list{
    margin-top:4px;
    gap: 6px;
}

/* Responsive */

@media (max-width:1000px){

    .cpp-dashboard .cpp-dashboard-widget-layout{
        grid-template-columns:1fr;
    }

    .cpp-dashboard .cpp-widget-layout-full,
    .cpp-dashboard .cpp-widget-layout-half{
        grid-column:1;
    }

}

@media (max-width:600px){

    .cpp-dashboard .cpp-dashboard-widget-layout{
        gap:18px;
    }

    .cpp-dashboard .cpp-widget,
    .cpp-dashboard .cpp-dashboard-actions{
        padding:21px 18px;
        border-radius:15px;
    }

    .cpp-dashboard .cpp-widget > h2,
    .cpp-dashboard .cpp-widget-heading h2,
    .cpp-dashboard .cpp-dashboard-actions > h2{
        margin-bottom:16px;
        font-size:19px;
    }

}

/* ==========================================
   Dashboard SVG Icons
========================================== */

.cpp-dashboard .cpp-svg-icon{
    width:24px;
    height:24px;
    display:block;
    flex-shrink:0;
    stroke:currentColor;
    stroke-width:1.8;
    stroke-linecap:round;
    stroke-linejoin:round;
}

.cpp-statistics-widget .cpp-svg-icon { stroke:#fff; }
.cpp-dashboard-actions .cpp-action-icon .cpp-svg-icon { stroke:#fff; }
.cpp-request-icon .cpp-svg-icon { stroke:#fff; }
.cpp-activity-icon .cpp-svg-icon { stroke:#fff; }
.cpp-portal-hero-icon .cpp-svg-icon { stroke:#fff; }

.cpp-dashboard .cpp-svg-icon path,
.cpp-dashboard .cpp-svg-icon rect,
.cpp-dashboard .cpp-svg-icon circle{
    vector-effect:non-scaling-stroke;
}

.cpp-dashboard .cpp-nav-icon .cpp-svg-icon{
    width:21px;
    height:21px;
}

.cpp-dashboard .cpp-action-icon .cpp-svg-icon{
    width:28px;
    height:28px;
}

.cpp-dashboard .cpp-stat-icon .cpp-svg-icon{
    width:30px;
    height:30px;
}

.cpp-dashboard .cpp-request-icon .cpp-svg-icon,
.cpp-dashboard .cpp-activity-icon .cpp-svg-icon{
    width:22px;
    height:22px;
}

/* User menu SVG icons */
.cpp-dashboard .cpp-user-menu-link-icon{
    width:20px;
    height:20px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex-shrink:0;
}

.cpp-dashboard .cpp-user-menu-link-icon .cpp-svg-icon{
    width:19px;
    height:19px;
}

.cpp-dashboard .cpp-nav-icon,
.cpp-dashboard .cpp-action-icon,
.cpp-dashboard .cpp-stat-icon,
.cpp-dashboard .cpp-request-icon,
.cpp-dashboard .cpp-activity-icon,
.cpp-dashboard .cpp-user-menu-link-icon{
    transition:
        color .2s ease,
        background-color .2s ease,
        transform .2s ease;
}

.cpp-dashboard .cpp-action-card:hover .cpp-action-icon,
.cpp-dashboard .cpp-stat-card:hover .cpp-stat-icon{
    transform:translateY(-2px);
}

.cpp-dashboard .cpp-request-item:hover .cpp-request-icon,
.cpp-dashboard .cpp-activity-item:hover .cpp-activity-icon{
    transform:scale(1.04);
}


/* ==========================================
   Sprint L10B — Premium Visual Refinement
========================================== */
:root{
    --cpp-bg-app:#f5f7fb;
    --cpp-bg-surface:#ffffff;
    --cpp-bg-soft:#f8fafc;

    --cpp-border:#e5eaf1;
    --cpp-border-soft:#edf1f5;

    --cpp-text-heading:#172033;
    --cpp-text-body:#687386;
    --cpp-text-muted:#8a94a6;

    --cpp-primary:#1d4ed8;
    --cpp-primary-dark:#1e3a8a;
    --cpp-primary-soft:#eef4ff;

    --cpp-success:#047857;
    --cpp-success-bg:#ecfdf5;

    --cpp-warning:#b45309;
    --cpp-warning-bg:#fffbeb;

    --cpp-danger:#b91c1c;
    --cpp-danger-bg:#fef2f2;

    --cpp-info:#1d4ed8;
    --cpp-info-bg:#eef4ff;

    --cpp-radius-sm:10px;
    --cpp-radius-md:14px;
    --cpp-radius-lg:18px;
    --cpp-radius-xl:22px;
    
    --cpp-font-heading:"Merriweather", Georgia, serif;
    --cpp-font-body:"Merriweather Sans", Arial, sans-serif;

    --cpp-shadow-sm:
        0 2px 8px rgba(15,23,42,.04);

    --cpp-shadow-md:
        0 8px 24px rgba(15,23,42,.07);

    --cpp-shadow-lg:
        0 18px 45px rgba(15,23,42,.12);

    --cpp-transition:
        180ms ease;
}

/* Application background */

.cpp-dashboard p { font-family: var(--cpp-font-body)!important; }
.cpp-dashboard h2,
.cpp-dashboard h3,
.cpp-dashboard h4,
.cpp-dashboard h5,
.cpp-dashboard h6 { font-family: var(--cpp-font-body); }

.cpp-dashboard{
    background:
        radial-gradient(
            circle at top right,
            rgba(29,78,216,.055),
            transparent 30%
        ),
        var(--cpp-bg-app);
    color:var(--cpp-text-body);
    font-family: var(--cpp-font-body);
}

/* Header refinement */

.cpp-dashboard .cpp-dashboard-header{
    position:relative;
    z-index:20;
    min-height:74px;
    box-shadow:0 1px 8px rgba(15,23,42,.035);
    backdrop-filter:blur(12px);
}

.cpp-dashboard .cpp-dashboard-logo strong{
    color:var(--cpp-text-heading);
    font-size:18px;
    font-weight:750;
    letter-spacing:-.02em;
}

/* Sidebar refinement */

.cpp-dashboard .cpp-dashboard-nav{
    gap:6px;
    padding:22px 10px;
}

.cpp-dashboard .cpp-nav-item{
    min-height:48px;
    padding:12px 14px;
    border:1px solid transparent;
    border-radius:var(--cpp-radius-md);
    font-size:14px;
    font-weight:600;
    transition:
        background-color var(--cpp-transition),
        border-color var(--cpp-transition),
        color var(--cpp-transition),
        transform var(--cpp-transition);
}

.cpp-dashboard .cpp-nav-item:hover{
    border-color:#dbe7ff;
    background:var(--cpp-primary-soft);
    color:#6F2D96;
    transform:translateX(2px);
}

.cpp-dashboard .cpp-nav-active,
.cpp-dashboard .cpp-nav-active:hover{
    border-color:transparent;
    background:
        linear-gradient(
            135deg,
            var(--cpp-primary),
            var(--cpp-primary-dark)
        );
    color:#ffffff;
    box-shadow:
        0 8px 18px rgba(29,78,216,.22);
    transform:none;
}

.cpp-dashboard .cpp-nav-active .cpp-nav-icon{
    color:#ffffff;
}

.cpp-dashboard .cpp-dashboard-sidebar .cpp-dashboard-nav label {
    padding: 4px 14px 14px;
    margin-top: 10px;
    border-bottom: 1px solid #fff;
}

/* =========================================================
   Sidebar Notification Badge
   ========================================================= */

.cpp-dashboard .cpp-nav-item{
    position:relative;
}

.cpp-dashboard .cpp-nav-notification-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;

    flex:0 0 auto;

    min-width:21px;
    height:21px;

    margin-left:auto;
    padding:0 6px;

    border:2px solid #fff;
    border-radius:999px;

    background:#dc2626;
    color:#fff;

    font-size:9px;
    font-weight:800;
    line-height:1;

    box-shadow:
        0 3px 9px rgba(220,38,38,.3);

    font-variant-numeric:
        tabular-nums;
}

.cpp-dashboard .cpp-nav-notification-badge[hidden]{
    display:none;
}

/* Content spacing */

.cpp-dashboard .cpp-dashboard .cpp-dashboard-content{
    max-width:1600px;
    margin:0 auto;
    padding:30px;
}

/* Welcome hero */

.cpp-dashboard .cpp-dashboard-hero{
    min-height: 350px;
    position:relative;
    overflow:hidden;
    padding:36px 38px;
    border: 1px solid #30136c;
    background-image: url('https://estacadachurch.com/wp-content/uploads/2026/09/page-hero-background.webp');
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    /*border-radius:var(--cpp-radius-xl);
    background: linear-gradient(135deg, #30136c, #7134bd);*/
    box-shadow:var(--cpp-shadow-md);
}

/*.cpp-dashboard .cpp-dashboard-hero::after{
    content:"";
    position:absolute;
    top:-90px;
    right:-60px;
    width:260px;
    height:260px;
    border-radius:50%;
    background:
        radial-gradient(
            circle,
            rgba(29,78,216,.12),
            rgba(29,78,216,0) 70%
        );
    pointer-events:none;
}*/

.cpp-dashboard .cpp-dashboard-hero::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #1a1a1a;
    opacity: 0.3;
}

.cpp-dashboard .cpp-dashboard-hero-content{
    position:relative;
    z-index:1;
}

.cpp-dashboard .cpp-dashboard-hero h1{
    color: #fff;
    font-size:clamp(27px,3vw,36px);
    font-weight:760;
    letter-spacing:-.035em;
    line-height:1.15;
}

.cpp-dashboard .cpp-dashboard-hero .cpp-dashboard-message{
        margin: 5px 0 0;
    color: #fff;
    font-size: 18px;
    line-height: 1.45;
}


.cpp-dashboard .cpp-dashboard-message{
    margin:11px 0 0;
    color:var(--cpp-text-body);
    font-size:14px;
    line-height:1.65;
}

.cpp-dashboard .cpp-dashboard-date{
    padding:8px 12px;
    border:1px solid rgba(29,78,216,.1);
    border-radius:999px;
    background:rgba(255,255,255,.76);
    color:#667085;
    font-size:13px;
    font-weight:600;
}

/* Widget layout */

.cpp-dashboard .cpp-dashboard-widget-layout{
    gap:26px;
    margin-top:26px;
}

/* Standard widget surfaces */

.cpp-dashboard .cpp-dashboard-actions{
    position:relative;
    overflow:hidden;
    padding:28px;
    border: 1px solid #A542DE;
    border-radius:var(--cpp-radius-lg);
    background: linear-gradient(135deg, rgba(107, 63, 196, .08), rgba(242, 181, 68, .10)), #fff;
    box-shadow:var(--cpp-shadow-sm);
    transition:
        border-color var(--cpp-transition),
        box-shadow var(--cpp-transition),
        transform var(--cpp-transition);
}
/*.cpp-dashboard .cpp-widget::after {
    content: "";
    position: absolute;
    top: -48px;
    right: -38px;
    width: 150px;
    height: 150px;
    border-radius: 50%;
    background: rgba(107, 63, 196, .045);
    pointer-events: none;
}*/

.cpp-dashboard .cpp-widget {
    position: relative;
    isolation: isolate;
    overflow: hidden;
    min-height: 100%;
    background: #e6e6fa;
}
.cpp-dashboard .cpp-widget::before {
    content: "";
    position: absolute;
    z-index: -2;
    inset: 0;
    pointer-events: none;

    background-image:
        linear-gradient(
            rgba(0, 87, 243, 0.025) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(0, 87, 243, 0.025) 1px,
            transparent 1px
        );

    background-size: 60px 60px;

    /* Fade the grid toward the center/bottom */
    -webkit-mask-image:
        linear-gradient(
            to bottom,
            rgba(0,0,0,.8),
            rgba(0,0,0,.25) 55%,
            transparent
        );

    mask-image:
        linear-gradient(
            to bottom,
            rgba(0,0,0,.8),
            rgba(0,0,0,.25) 55%,
            transparent
        );
}
.cpp-dashboard .cpp-widget::after {
    content: "";
    position: absolute;
    z-index: -1;
    width: 500px;
    height: 500px;
    top: -180px;
    right: -160px;
    pointer-events: none;

    background:
        radial-gradient(
            circle at 30% 30%,
            #0057F3 0 4px,
            transparent 5px
        ),

        radial-gradient(
            circle at 50% 18%,
            #f2b544 0 5px,
            transparent 6px
        ),

        radial-gradient(
            circle at 67% 35%,
            #dc2626 0 3px,
            transparent 4px
        ),

        radial-gradient(
            circle at 38% 55%,
            #ffd52a 0 4px,
            transparent 5px
        ),

        radial-gradient(
            circle at 75% 62%,
            #0057F3 0 3px,
            transparent 4px
        ),

        radial-gradient(
            circle at 55% 78%,
            #f2b544 0 4px,
            transparent 5px
        );

    opacity: .55;

    transform: rotate(12deg);
}
.cpp-dashboard .cpp-widget > * {
    position: relative;
    z-index: 1;
}

.cpp-dashboard .cpp-widget:hover,
.cpp-dashboard .cpp-dashboard-actions:hover{
    border-color:#A542DE;
    box-shadow:var(--cpp-shadow-md);
}

.cpp-dashboard .cpp-widget > h2,
.cpp-dashboard .cpp-widget-heading h2,
.cpp-dashboard .cpp-dashboard-actions > h2{
    margin:0 0 10px;
    color:var(--cpp-text-heading);
    font-size:24px;
    font-weight:740;
    letter-spacing:-.025em;
    line-height:1.3;
}

.cpp-dashboard .cpp-widget-heading{
    margin-bottom:4px;
}

/* Statistic cards */

.cpp-dashboard .cpp-stats-grid{
    gap:18px;
}

.cpp-dashboard .cpp-stat-card{
    position:relative;
    overflow:hidden;
    min-height:170px;
    padding:24px 20px;
    border:1px solid #ced4da;
    border-radius:var(--cpp-radius-lg);
    background: #fff;
    box-shadow:none;
}

.cpp-dashboard .cpp-stat-card::after{
    content:"";
    position:absolute;
    right:-28px;
    bottom:-38px;
    width:110px;
    height:110px;
    border-radius:50%;
    background:rgba(29,78,216,.045);
    pointer-events:none;
}

.cpp-dashboard .cpp-stat-card:hover{
    border-color:#6F2D96;
    box-shadow:
        0 14px 28px rgba(15,23,42,.08);
    transform:translateY(-3px);
}

.cpp-dashboard .cpp-stat-icon{
    position:relative;
    z-index:1;
    width:58px;
    height:58px;
    margin:0 auto 17px;
    border: 1px solid #6F2D96;
    border-radius: 16px;
    background: #6F2D96;
}
.cpp-dashboard .cpp-statistics-widget .cpp-svg-icon { stroke: #fff; }

.cpp-dashboard .cpp-stat-number{
    position:relative;
    z-index:1;
    color: #6F2D96;
    font-size:38px;
    font-weight:780;
    letter-spacing:-.045em;
}

.cpp-dashboard .cpp-stat-label{
    position:relative;
    z-index:1;
    margin-top:9px;
    color:#172033;
    font-size:16px;
    font-weight:600;
}

/* =========================================================
   Administrator Dashboard Status Cards
   ========================================================= */

.cpp-dashboard .cpp-admin-status-card{
    display:flex;
    flex-direction:column;
}

.cpp-dashboard .cpp-admin-status-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
    width:100%;
    margin-top:16px;
    padding-top:14px;
    border-top:1px solid #ced4da;
}

.cpp-dashboard .cpp-admin-status-item{
    display:flex;
    align-items:center;
    flex-direction:column;
    justify-content:center;
    min-width:0;
    padding:10px 5px;
    border-radius:9px;
    background:#6d28d9;
    text-align:center;
}

.cpp-dashboard .cpp-admin-status-item strong{
    color: #fff;
    font-size:22px;
    font-weight:800;
    line-height:1.1;
}

.cpp-dashboard .cpp-admin-status-item span{
    margin-top:5px;
        color: #fff;
    font-size: 12px;
    font-weight: 500;
    line-height:1.25;
}

.cpp-admin-status-card .cpp-admin-status-button{
    appearance: none;
    /*display: inline-flex;*/
    display: none;
    width: 190px;
    min-height: 38px;
    align-items: center;
    justify-content: center;
    padding: 8px 13px;
    border: 1px solid #dbe7ff;
    border-radius: 10px;
    background: var(--cpp-primary-soft, #eef4ff);
    color: var(--cpp-primary, #1d4ed8);
    font: inherit;
    font-size: 12px;
    font-weight: 700;
    text-transform: capitalize;
    cursor: pointer;
    white-space: nowrap;
    text-decoration: none;
    margin: 15px auto 0;
    transition: background-color .18s ease, border-color .18s ease, transform .18s ease;
}
.cpp-admin-status-card .cpp-admin-status-button:hover{
    color: var(--cpp-primary, #1d4ed8);
    border-color: #c8d9ff;
    background: #ffffff;
    transform: translateY(-1px);
}

/* =========================================================
   Dashboard Members Summary
   ========================================================= */

.cpp-dashboard-widget-layout .cpp-members-summary-card{
    display:flex;
    flex-direction:column;
}

.cpp-dashboard-widget-layout .cpp-members-summary-grid{
    display:grid;
    gap:10px;
    width:100%;
    margin-top:16px;
    padding-top:14px;
    border-top:1px solid #ced4da;
}

.cpp-dashboard-widget-layout .cpp-members-summary-grid-two{
    grid-template-columns:repeat(2,minmax(0,1fr));
}

.cpp-dashboard-widget-layout .cpp-members-summary-grid-one{
    grid-template-columns:1fr;
}

.cpp-dashboard-widget-layout .cpp-members-summary-item{
    display:flex;
    align-items:center;
    flex-direction:column;
    justify-content:center;
    min-width:0;
    padding:12px 8px;
    border-radius:9px;
    background:#6d28d9;
    text-align:center;
}

.cpp-dashboard-widget-layout .cpp-members-summary-number{
    color: #fff;
    font-size:22px;
    font-weight:800;
    line-height:1;
}

.cpp-dashboard-widget-layout .cpp-members-summary-label{
    margin-top:7px;
    color: #fff;
    font-size:12px;
    font-weight:500;
    line-height:1.3;
}

@media (max-width:600px){
    .cpp-dashboard .cpp-admin-status-grid{
        grid-template-columns:repeat(1,minmax(0,1fr));
    }
    .cpp-dashboard-widget-layout .cpp-members-summary-grid-two{
        grid-template-columns:repeat(1,minmax(0,1fr));
    }
}

@media (max-width:480px){

    .cpp-dashboard-widget-layout .cpp-members-summary-grid-two{
        grid-template-columns:1fr;
    }

    .cpp-dashboard-widget-layout .cpp-members-summary-item{
        align-items:center;
        flex-direction:row;
        justify-content:space-between;
        text-align:left;
    }

    .cpp-dashboard-widget-layout .cpp-members-summary-label{
        margin-top:0;
    }

}

@media (max-width:480px){

    .cpp-dashboard .cpp-admin-status-grid{
        grid-template-columns:1fr;
    }

    .cpp-dashboard .cpp-admin-status-item{
        align-items:center;
        flex-direction:row;
        justify-content:space-between;
        padding:9px 11px;
        text-align:left;
    }

    .cpp-dashboard .cpp-admin-status-item span{
        margin-top:0;
    }

}

/* =========================================================
   Dashboard Hero Live Clock
   ========================================================= */

.cpp-dashboard .cpp-dashboard-hero-clock{
    display:flex;
    align-items:flex-end;
    flex-direction:column;
    justify-content:center;
    min-width:220px;
    text-align:right;
}

.cpp-dashboard .cpp-dashboard-hero-clock-date{
    color: #fff;
    font-size:14px;
    font-weight:600;
    line-height:1.4;
}

.cpp-dashboard .cpp-dashboard-hero-clock-time{
    margin-top:4px;
    color: #fff;
    font-size:34px;
    font-weight:800;
    line-height:1.1;
    letter-spacing:.02em;
    font-variant-numeric:tabular-nums;
        text-shadow: 0px 1px 1px #1a1a1a;
}

.cpp-dashboard .cpp-dashboard-hero-clock-zone{
        margin-top: 0px;
    color: #fff;
    font-size: 14px;
    font-weight: 600;
}


/* Responsive */

@media (max-width:700px){

    .cpp-dashboard .cpp-dashboard-hero-clock{
        align-items:flex-start;
        min-width:0;
        margin-top:18px;
        text-align:left;
    }

    .cpp-dashboard .cpp-dashboard-hero-clock-time{
        font-size:25px;
    }

}

/* =========================================================
   Dashboard Ministry Verse / Encouragement
   ========================================================= */

.cpp-dashboard-widget-layout .cpp-dashboard-encouragement{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:20px;
}

.cpp-dashboard-widget-layout .cpp-dashboard-quote-card.ministry-verse{
    background-image: url('https://estacadachurch.com/wp-content/uploads/2026/09/section-background-1.webp');
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
}
.cpp-dashboard-widget-layout .cpp-dashboard-quote-card.ministry-verse::after{
    content:"";
    position:absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #1a1a1a;
    opacity: 0.3;
}

.cpp-dashboard-widget-layout .cpp-dashboard-quote-card.encouragement{
    background-image: url('https://estacadachurch.com/wp-content/uploads/2026/09/section-background-2.webp');
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
}
.cpp-dashboard-widget-layout .cpp-dashboard-quote-card.encouragement::after{
    content:"";
    position:absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #1a1a1a;
    opacity: 0.3;
}

.cpp-dashboard-widget-layout .cpp-dashboard-quote-card-inner {
    position:relative;
    display:flex;
    align-items: flex-start;
    justify-content: flex-end;
    gap:18px;
    width: 70%;
}

.cpp-dashboard-widget-layout .cpp-dashboard-quote-card{
    display: flex;
    justify-content: flex-end;
    position:relative;
    overflow:hidden;
    min-width:0;
    padding:80px 25px;
   border: 1px solid #30136c;
    border-radius:18px;
    background: linear-gradient(135deg, #30136c, #7134bd);
    box-shadow:
        0 10px 28px rgba(15,23,42,.06);
}

/*.cpp-dashboard-widget-layout .cpp-dashboard-quote-card::after{
    content:"";
    position:absolute;
    top:-48px;
    right:-38px;
    width:150px;
    height:150px;
    border-radius:50%;
    background:
        rgba(107,63,196,.045);
    pointer-events:none;
}*/

.cpp-dashboard-widget-layout .cpp-dashboard-quote-icon{
    position:relative;
    z-index:1;
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 auto;
    width:50px;
    height:50px;
    border-radius:14px;
    background:#fff;
    color:#6b3fc4;
    box-shadow:
        0 6px 18px rgba(107,63,196,.12);
}

.cpp-dashboard-widget-layout .cpp-dashboard-quote-icon svg{
    width:24px;
    height:24px;
}

.cpp-dashboard-widget-layout .cpp-dashboard-quote-content{
    position:relative;
    z-index:1;
    min-width:0;
}

.cpp-dashboard-widget-layout .cpp-dashboard-quote-content h2{
    margin:0 0 12px;
    color:#fff;
    font-size:28px;
    font-weight:800;
}

.cpp-dashboard-widget-layout .cpp-dashboard-quote-content blockquote{
    margin:0;
}

.cpp-dashboard-widget-layout .cpp-dashboard-quote-content p{
    margin:0;
    color:#fff;
    font-size:18px;
    font-style:normal;
    line-height:1.75;
}

.cpp-dashboard-widget-layout .cpp-dashboard-quote-content cite{
    display:block;
    margin-top:5px;
    color:#fff;
    font-size:15px;
    font-style:normal;
    font-weight:800;
}

.cpp-dashboard-widget-layout .cpp-dashboard-quote-content a {
        display: inline-flex;
    min-height: 36px;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    padding: 7px 11px;
    border: 1px solid #dbe7ff;
    border-radius: 9px;
    background: var(--cpp-primary-soft, #eef4ff);
    color: var(--cpp-primary, #1d4ed8);
    font-size: 12px;
    font-weight: 750;
    font-family: 'Merriweather Sans';
    text-transform: capitalize;
    text-decoration: none;
    transition: background-color .18s ease, border-color .18s ease, transform .18s ease;
}
.cpp-dashboard-widget-layout .cpp-dashboard-quote-content a:hover {
    border-color: #c8d9ff;
    background: #fff !important;
    color: var(--cpp-primary, #1d4ed8);
    transform: translateY(-1px);
}

.cpp-dashboard-encouragement .cpp-dashboard-quote-card .flowers {
    position: absolute;
    right: 10px;
    bottom: -20px;
    font-size: 75px;
    opacity: 1;
    color: #7134bd;
}


/* Responsive */

@media (max-width:800px){

    .cpp-dashboard-widget-layout .cpp-dashboard-encouragement{
        grid-template-columns:1fr;
    }

}

@media (max-width:520px){

    .cpp-dashboard-widget-layout .cpp-dashboard-quote-card{
        gap:14px;
        padding:60px 20px;
    }

    .cpp-dashboard-widget-layout .cpp-dashboard-quote-icon{
        width:44px;
        height:44px;
        border-radius:12px;
    }

    .cpp-dashboard-widget-layout .cpp-dashboard-quote-content p{
        font-size:13px;
    }

}

/* =========================================================
   Dashboard Financial Overview
   ========================================================= */

.cpp-dashboard-widget-layout .cpp-dashboard-financial-overview{
    overflow:hidden;
}

.cpp-dashboard-widget-layout .cpp-dashboard-financial-grid{
    display:grid;
    grid-template-columns:minmax(260px,.8fr) minmax(0,1.7fr);
    gap:24px;
    margin-top:20px;
}


/* =========================================================
   Financial Summary
   ========================================================= */

.cpp-dashboard-widget-layout .cpp-dashboard-financial-summary{
    display:flex;
    flex-direction:column;
    gap:12px;
}

.cpp-dashboard-widget-layout .cpp-dashboard-financial-item{
    position:relative;
    padding:18px 20px;
    border:1px solid #ced4da;
    border-radius:13px;
    background:#fff;
        transition: all .25s ease;
}
.cpp-dashboard-widget-layout .cpp-dashboard-financial-item:hover{
        border-color: #6F2D96;
    box-shadow: 0 14px 28px rgba(15, 23, 42, .08);
    transform: translateY(-3px);
}

.cpp-dashboard-widget-layout .cpp-dashboard-financial-label{
    display:block;
    color: #172033;
    font-size:14px;
    font-weight:700;
}

.cpp-dashboard-widget-layout .cpp-dashboard-financial-value{
    display:block;
    margin-top:7px;
    color:var(--cpp-text-heading);
    font-size:28px;
    font-weight:800;
    line-height:1.1;
    font-variant-numeric:
        tabular-nums;
}


.cpp-dashboard-widget-layout .cpp-dashboard-financial-income
.cpp-dashboard-financial-value{
    color:#15803d;
}

.cpp-dashboard-widget-layout .cpp-dashboard-financial-expense
.cpp-dashboard-financial-value{
    color:#b91c1c;
}

.cpp-dashboard-widget-layout .cpp-dashboard-financial-balance-positive
.cpp-dashboard-financial-value{
    color:#15803d;
}

.cpp-dashboard-widget-layout .cpp-dashboard-financial-balance-negative
.cpp-dashboard-financial-value{
    color:#b91c1c;
}


/* =========================================================
   Monthly Chart
   ========================================================= */

.cpp-dashboard-widget-layout .cpp-dashboard-financial-chart{
    min-width:0;
    padding:20px;
    border:1px solid #ced4da;
    border-radius:14px;
    background:#fff;
    transition: all .25s ease;
}
.cpp-dashboard-widget-layout .cpp-dashboard-financial-chart:hover{
    border-color: #6F2D96;
    box-shadow: 0 14px 28px rgba(15, 23, 42, .08);
    transform: translateY(-3px);
}

.cpp-dashboard-widget-layout .cpp-dashboard-financial-chart h3{
    margin:0 0 10px;
    color:var(--cpp-text-heading);
    font-size:20px;
    font-weight:800;
}

.cpp-dashboard-widget-layout .cpp-dashboard-financial-chart-canvas{
    position:relative;
    width:100%;
    height:270px;
}


/* =========================================================
   Responsive
   ========================================================= */

@media (max-width:900px){

    .cpp-dashboard-widget-layout .cpp-dashboard-financial-grid{
        grid-template-columns:1fr;
    }

}


@media (max-width:520px){

    .cpp-dashboard-widget-layout .cpp-dashboard-financial-value{
        font-size:22px;
    }

    .cpp-dashboard-widget-layout .cpp-dashboard-financial-chart{
        padding:16px;
    }

    .cpp-dashboard-widget-layout .cpp-dashboard-financial-chart-canvas{
        height:240px;
    }

}

/* =========================================================
   Dashboard Ministry Updates
   ========================================================= */

.cpp-dashboard-widget-layout .cpp-dashboard-ministry-updates{
    width:100%;
}

.cpp-dashboard-widget-layout .cpp-dashboard-ministry-updates-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:20px;
}

.cpp-dashboard-widget-layout .cpp-dashboard-ministry-events,
.cpp-dashboard-widget-layout .cpp-dashboard-ministry-announcements{
    display:flex;
    flex-direction:column;
    min-width:0;
}

.cpp-dashboard-widget-layout .cpp-dashboard-ministry-events
.cpp-ministry-event-list,
.cpp-dashboard-widget-layout .cpp-dashboard-ministry-announcements
.cpp-ministry-announcement-list{
    flex:1;
}

.cpp-dashboard-widget-layout .cpp-dashboard-ministry-view-all{
    display: inline-flex;
    width: 190px;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    padding: 10px 17px;
    border: 1px solid transparent;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    color: #ffffff;
    text-decoration: none;
    font-size: 12px;
    font-weight: 700;
    box-shadow: 0 8px 18px rgba(29, 78, 216, .2);
    transition: transform .18s ease, box-shadow .18s ease;
    margin-top:18px;
}
.cpp-dashboard-widget-layout .cpp-dashboard-ministry-view-all:hover,
.cpp-dashboard-widget-layout .cpp-dashboard-ministry-view-all:focus{
    color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 12px 24px rgba(29, 78, 216, .26);
}


/* Responsive */

@media (max-width:850px){

    .cpp-dashboard-widget-layout .cpp-dashboard-ministry-updates-grid{
        grid-template-columns:1fr;
    }

}

@media (max-width:520px){

    .cpp-dashboard-widget-layout .cpp-dashboard-ministry-view-all{
        width:100%;
        text-align:center;
    }

}

/* Quick Actions */

.cpp-dashboard .cpp-action-grid{
    gap:16px;
}

.cpp-dashboard .cpp-action-card{
    min-height:112px;
    padding:20px;
    border:1px solid var(--cpp-border-soft);
    border-radius:var(--cpp-radius-md);
    background:var(--cpp-bg-soft);
    box-shadow:none;
    transition:
        background-color var(--cpp-transition),
        border-color var(--cpp-transition),
        box-shadow var(--cpp-transition),
        transform var(--cpp-transition);
}

.cpp-dashboard .cpp-action-card:hover{
    border-color:#d7e4ff;
    background:#ffffff;
    box-shadow:
        0 12px 26px rgba(15,23,42,.08);
    transform:translateY(-3px);
}

.cpp-dashboard .cpp-action-icon{
    width:54px;
    height:54px;
    border:1px solid #dce8ff;
    border-radius:15px;
    background:var(--cpp-primary-soft);
    color:var(--cpp-primary);
}

.cpp-dashboard .cpp-action-content strong{
    color:var(--cpp-text-heading);
    font-size:15px;
    font-weight:700;
}

.cpp-dashboard .cpp-action-content p{
    margin:7px 0 0;
    color:#778195;
    font-size:13px;
    line-height:1.5;
}

/* Event, request, and activity rows */

.cpp-dashboard .cpp-event-item,
.cpp-dashboard .cpp-request-item,
.cpp-dashboard .cpp-activity-item{
    margin:0px;
    padding:18px 15px;
    border:1px solid #ced4da;
    border-radius:10px;
    background-color: #fff;
    transition:
        background-color var(--cpp-transition),
        transform var(--cpp-transition);
}

.cpp-dashboard .cpp-event-item:hover,
.cpp-dashboard .cpp-request-item:hover,
.cpp-dashboard .cpp-activity-item:hover{
    transform:translateX(3px);
}

.cpp-dashboard .cpp-event-title,
.cpp-dashboard .cpp-request-heading strong,
.cpp-dashboard .cpp-activity-title{
    color:var(--cpp-text-heading);
    font-weight:700;
}

.cpp-dashboard .cpp-event-meta,
.cpp-dashboard .cpp-event-venue,
.cpp-dashboard .cpp-request-date,
.cpp-dashboard .cpp-activity-time{
    color:#687386;
}

/* Date box */

.cpp-dashboard .cpp-event-date-box{
    border:1px solid #dce8ff;
    border-radius:13px;
    box-shadow:0 5px 12px rgba(29,78,216,.07);
}

.cpp-dashboard .cpp-event-month{
    background:
        linear-gradient(
            135deg,
            var(--cpp-primary),
            var(--cpp-primary-dark)
        );
}

.cpp-dashboard .cpp-event-day{
    background:#ffffff;
    color:var(--cpp-text-heading);
}

/* Request and activity icons */

.cpp-dashboard .cpp-request-icon,
.cpp-dashboard .cpp-activity-icon{
    border:1px solid #6F2D96;
    background: #6F2D96;
    color: #fff;
}

/* Unified status badge system */

.cpp-dashboard .cpp-request-status,
.cpp-dashboard .cpp-activity-status{
    padding:5px 10px;
    border:1px solid rgba(29,78,216,.1);
    border-radius:999px;
    background:var(--cpp-info-bg);
    color:var(--cpp-info);
    font-size:10px;
    font-weight:750;
    letter-spacing:.015em;
    line-height:1.2;
}

.cpp-dashboard .cpp-request-status[data-status="submitted"],
.cpp-dashboard .cpp-activity-status[data-status="submitted"]{
    border-color:#dbe7ff;
    background:var(--cpp-info-bg);
    color:var(--cpp-info);
}

.cpp-dashboard .cpp-request-status[data-status="under-review"],
.cpp-dashboard .cpp-request-status[data-status="assigned"],
.cpp-dashboard .cpp-request-status[data-status="in-progress"],
.cpp-dashboard .cpp-request-status[data-status="investigating"],
.cpp-dashboard .cpp-activity-status[data-status="under-review"],
.cpp-dashboard .cpp-activity-status[data-status="assigned"],
.cpp-dashboard .cpp-activity-status[data-status="in-progress"],
.cpp-dashboard .cpp-activity-status[data-status="investigating"]{
    border-color:#fde7bd;
    background:var(--cpp-warning-bg);
    color:var(--cpp-warning);
}

.cpp-dashboard .cpp-request-status[data-status="resolved"],
.cpp-dashboard .cpp-request-status[data-status="completed"],
.cpp-dashboard .cpp-request-status[data-status="closed"],
.cpp-dashboard .cpp-activity-status[data-status="resolved"],
.cpp-dashboard .cpp-activity-status[data-status="completed"],
.cpp-dashboard .cpp-activity-status[data-status="closed"]{
    border-color:#cceede;
    background:var(--cpp-success-bg);
    color:var(--cpp-success);
}

.cpp-dashboard .cpp-request-status[data-status="rejected"],
.cpp-dashboard .cpp-request-status[data-status="cancelled"],
.cpp-dashboard .cpp-activity-status[data-status="rejected"],
.cpp-dashboard .cpp-activity-status[data-status="cancelled"]{
    border-color:#fed7d7;
    background:var(--cpp-danger-bg);
    color:var(--cpp-danger);
}

/* Empty states */

.cpp-dashboard .cpp-empty-state{
    padding:34px 24px;
    border:1px dashed #ccd5e1;
    border-radius:var(--cpp-radius-md);
    background:#fff;
    color:#737e90;
    font-size:14px;
    line-height:1.6;
}

/* User menu refinement */

.cpp-dashboard .cpp-user-menu-dropdown{
    border-color:var(--cpp-border);
    border-radius:var(--cpp-radius-lg);
    box-shadow:var(--cpp-shadow-lg);
}

.cpp-dashboard .cpp-user-menu-links a{
    font-weight:600;
}

/* Focus system */

.cpp-dashboard .cpp-action-card:focus-visible,
.cpp-dashboard .cpp-nav-item:focus-visible,
.cpp-dashboard .cpp-user-menu-links a:focus-visible{
    outline:3px solid rgba(29,78,216,.22);
    outline-offset:3px;
}

/* Responsive polish */

@media (max-width:1000px){

    .cpp-dashboard .cpp-dashboard-content{
        padding:26px 22px;
    }

    .cpp-dashboard .cpp-dashboard-hero{
        padding:30px;
    }

}

@media (max-width:600px){

    .cpp-dashboard .cpp-dashboard-content{
        padding:30px 15px 30px;
    }

    .cpp-dashboard .cpp-dashboard-widget-layout{
        gap:18px;
        margin-top:18px;
    }

    .cpp-dashboard .cpp-dashboard-hero{
        padding:25px 21px;
        border-radius:18px;
    }

    .cpp-dashboard .cpp-dashboard-date{
        padding:0;
        border:0;
        background:transparent;
    }

    .cpp-dashboard .cpp-widget,
    .cpp-dashboard .cpp-dashboard-actions{
        padding:22px 18px;
        border-radius:16px;
    }

    .cpp-dashboard .cpp-action-grid{
        grid-template-columns:1fr;
    }

    .cpp-dashboard .cpp-action-card{
        min-height:auto;
    }

    .cpp-dashboard .cpp-stat-card{
        min-height:155px;
    }

}

/* Reduced-motion support */

@media (prefers-reduced-motion:reduce){

    .cpp-dashboard *,
    .cpp-dashboard *::before,
    .cpp-dashboard *::after{
        scroll-behavior:auto !important;
        transition-duration:.01ms !important;
        animation-duration:.01ms !important;
        animation-iteration-count:1 !important;
    }

}

/* ==========================================
   Sprint L10D — Accessibility
========================================== */

.cpp-dashboard .cpp-skip-link{
    position:fixed;
    top:12px;
    left:12px;
    z-index:9999;
    padding:11px 16px;
    border-radius:10px;
    background:#172033;
    color:#ffffff;
    text-decoration:none;
    font-size:14px;
    font-weight:700;
    box-shadow:0 8px 24px rgba(15,23,42,.22);
    transform:translateY(-160%);
    transition:transform .18s ease;
}

.cpp-dashboard .cpp-skip-link:focus{
    transform:translateY(0);
}

.cpp-dashboard .cpp-dashboard-content:focus{
    outline:none;
}

.cpp-dashboard a:focus-visible,
.cpp-dashboard button:focus-visible{
    outline:3px solid rgba(29,78,216,.35);
    outline-offset:3px;
}

.cpp-dashboard .cpp-nav-active:focus-visible{
    outline-color:rgba(255,255,255,.85);
    outline-offset:-5px;
}

.cpp-dashboard .cpp-request-status,
.cpp-dashboard .cpp-activity-status{
    text-transform:none;
}

/* Screen-reader-only utility */

.cpp-dashboard .cpp-screen-reader-text{
    position:absolute !important;
    width:1px !important;
    height:1px !important;
    padding:0 !important;
    overflow:hidden !important;
    clip:rect(0,0,0,0) !important;
    white-space:nowrap !important;
    border:0 !important;
}

/* ==========================================
   Reusable Portal Page Hero
========================================== */
.cpp-dashboard .cpp-portal-hero .flowers{
    position: absolute;
    right: 30px;
    bottom: -20px;
    font-size: 75px;
    opacity: 0.1;
    color: #ffffff;
}

.cpp-dashboard .cpp-portal-hero-content{
    width:100%;
}

.page-id-9295 .cpp-portal-hero .cpp-portal-hero-content { display: none; }

.cpp-dashboard .cpp-portal-hero-primary{
        display: flex;
    align-items: flex-start;
    gap: 20px;
    min-width: 0;
    width: 55%;
}

.cpp-dashboard .cpp-portal-hero-icon{
    width:64px;
    height:64px;
    display:flex;
    align-items:center;
    justify-content:center;
    flex-shrink:0;
    border:1px solid #dce8ff;
    border-radius:18px;
    background: #fff;
    color:var(--cpp-primary, #1d4ed8);
    box-shadow:0 8px 20px rgba(29,78,216,.09);
}

.cpp-dashboard .cpp-portal-hero-icon .cpp-svg-icon{
    width:30px;
    height:30px;
    stroke: #6F2D96;
}

.cpp-dashboard .cpp-portal-hero-copy{
    min-width:0;
}

.cpp-dashboard .cpp-portal-hero-copy h2{
    margin:0;
    color: #fff;
    font-size:clamp(26px,3vw,34px);
    font-weight:760;
    letter-spacing:-.035em;
    line-height:1.15;
        text-shadow: 0px 1px 1px #1a1a1a;
}

.cpp-dashboard .cpp-portal-hero-secondary{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    flex-wrap:wrap;
    gap:12px;
}

.cpp-dashboard .cpp-portal-hero-action{
    display:inline-flex;
    min-height:42px;
    align-items:center;
    justify-content:center;
    padding:10px 17px;
    border:1px solid transparent;
    border-radius:12px;
    background:
        linear-gradient(
            135deg,
            var(--cpp-primary, #1d4ed8),
            var(--cpp-primary-dark, #1e3a8a)
        );
    color:#ffffff;
    text-decoration:none;
    font-size:14px;
    font-weight:700;
    box-shadow:0 8px 18px rgba(29,78,216,.2);
    transition:
        transform .18s ease,
        box-shadow .18s ease;
}

.cpp-dashboard .cpp-portal-hero-action:hover{
    color:#ffffff;
    transform:translateY(-2px);
    box-shadow:0 12px 24px rgba(29,78,216,.26);
}

.cpp-dashboard .cpp-portal-hero-action:focus-visible{
    outline:3px solid rgba(29,78,216,.3);
    outline-offset:3px;
}

.cpp-dashboard .cpp-dashboard-content .wpforms-container form button.wpforms-submit {
display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    padding: 10px 17px;
    border: 1px solid transparent;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    color: #ffffff;
    text-decoration: none;
    font-size: 14px;
    font-weight: 700;
    box-shadow: 0 8px 18px rgba(29, 78, 216, .2);
    transition: transform .18s ease, box-shadow .18s ease;
}
.cpp-dashboard .cpp-dashboard-content .wpforms-container form button.wpforms-submit:hover {
color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 12px 24px rgba(29, 78, 216, .26);
}

@media (max-width:900px){

    .cpp-dashboard .cpp-portal-hero-secondary{
        justify-content:flex-start;
    }

}

@media (max-width:600px){

    .cpp-dashboard .cpp-portal-hero-primary{
        align-items:flex-start;
        gap:15px;
    }

    .cpp-dashboard .cpp-portal-hero-icon{
        width:52px;
        height:52px;
        border-radius:15px;
    }

    .cpp-dashboard .cpp-portal-hero-icon .cpp-svg-icon{
        width:25px;
        height:25px;
    }

    .cpp-dashboard .cpp-portal-hero-copy h2{
        font-size:25px;
    }

    .cpp-dashboard .cpp-portal-hero-action{
        width:100%;
    }

}

/* ==========================================
   Events Portal Page
========================================== */

.cpp-dashboard .cpp-events-page-layout{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:26px;
    margin-top:26px;
}

.cpp-dashboard .cpp-events-section:first-child{
    grid-column:1 / -1;
}

.cpp-dashboard .cpp-events-request-section{
    grid-column:3 / 1;
}

.cpp-dashboard .cpp-events-request-intro{
    max-width:100%;
        margin: 0px 0 20px;
    color:var(--cpp-text-body);
    font-size:14px;
    line-height:1.7;
}

.cpp-dashboard .cpp-events-request-form{
    max-width: 100%;
}

.cpp-dashboard .cpp-events-request-section{
    scroll-margin-top:96px;
}
.cpp-events-request-section .wpforms-form .wpforms-field-container #wpforms-5351-field_1-container { display: none; }
.cpp-events-request-section .wpforms-form .wpforms-field-container #wpforms-5351-field_5-container { display: none; }

.cpp-calendar-events-section #ep-events-container #ep_event_search_form #ep_event_find_events_btn {
background-color: #6329D0;
    border: 1px solid #6329D0;
}
.cpp-calendar-events-section #ep-events-container #ep_event_search_form .ep-event-views-filter-group button.ep-active-view {
background-color: #6329D0;
    border: 1px solid #6329D0;
}
.cpp-calendar-events-section #ep-events-container #ep_event_search_form .ep-event-views-filter-group button.ep-btn:hover {
background-color: #6329D0!important;
    border: 1px solid #6329D0!important;
}
.cpp-calendar-events-section #ep-events-content-container .fc-header-toolbar .fc-toolbar-chunk .fc-button-group button { color: #6329D0!important; }
.cpp-calendar-events-section #ep-events-content-container .fc-header-toolbar .fc-toolbar-chunk .fc-button-group button:hover {
    color: #fff!important;
    background-color: #6329D0!important;
    border: 1px solid #6329D0!important;
}
.cpp-calendar-events-section #ep-events-content-container .fc-header-toolbar .fc-toolbar-chunk button.fc-today-button {
color: #fff!important;
    background-color: #6329D0!important;
    border: 1px solid #6329D0!important;
} 
.cpp-calendar-events-section #ep-events-content-container .fc-header-toolbar .fc-toolbar-chunk:last-child .fc-button-group button { color: #6329D0!important; }
.cpp-calendar-events-section #ep-events-content-container .fc-header-toolbar .fc-toolbar-chunk:last-child .fc-button-group button.fc-button-active {
    color: #fff!important;
background-color: #6329D0;
border: 1px solid #6329D0; 
}
.cpp-calendar-events-section #ep-events-content-container .fc-header-toolbar .fc-toolbar-chunk:last-child .fc-button-group button:hover {
    color: #fff!important;
background-color: #6329D0!important;
border: 1px solid #6329D0!important; 
}
.cpp-calendar-events-section #ep-events-container #ep_event_search_form .ep-box-search-form-wrap,
.cpp-calendar-events-section #ep-events-container .ep-event-list-month-container .fc-header-toolbar,
.cpp-calendar-events-section #ep-events-container .ep-event-list-month-container .fc-view-harness .fc-view { background-color: #fff!important; }
.cpp-calendar-events-section #ep-events-container .ep-event-list-month-container .fc-view-harness .fc-view {
    border-radius: 8px;
    position: relative;
    overflow: hidden;
}
.cpp-calendar-events-section #ep-events-container .ep-event-list-month-container .fc-view-harness .fc-view table thead { background-color: #6329D0!important; }
.cpp-calendar-events-section #ep-events-container .ep-event-list-month-container .fc-view-harness .fc-view table thead tr th a { color: #fff!important; }

@media (max-width:1000px){

    .cpp-dashboard .cpp-events-page-layout{
        grid-template-columns:1fr;
    }

    .cpp-dashboard .cpp-events-section:first-child,
    .cpp-dashboard .cpp-events-request-section{
        grid-column:1;
    }

}

@media (max-width:767px){

    .ep-events-container .fc-header-toolbar .fc-toolbar-title {
            font-size: 1.55em;
    margin: 12px 0;
    }

}

@media (max-width:600px){

    .cpp-dashboard .cpp-events-page-layout{
        gap:18px;
        margin-top:18px;
    }

}

@media (max-width:500px){

.cpp-events-page-layout .cpp-calendar-events-section { padding: 22px 4px; }
    .cpp-calendar-events-section #ep-events-container .fc-view table.fc-col-header thead tr th { padding: 4px 4px 4px 4px!important; }
.cpp-calendar-events-section #ep-events-container .fc-view table.fc-col-header thead tr th a { font-size: 12px !important; }
.cpp-calendar-events-section #ep-events-container .fc-view table.fc-scrollgrid-sync-table tbody tr td a.fc-daygrid-day-number { font-size: 14px; }
#ep_event_calendar.fc .fc-toolbar.fc-header-toolbar .fc-toolbar-chunk:last-child .fc-button-group .fc-button-primary { font-size: 12px; }
.cpp-calendar-events-section #ep-events-container .fc-header-toolbar .fc-toolbar-chunk h2.fc-toolbar-title { font-size: 1.45em; }

}


/* ==========================================
   Live Today’s Events
========================================== */

.cpp-dashboard .cpp-events-section-description{
    margin: 8px 0;
    color: #687386;
    font-size: 14px;
    line-height: 1.5;
}

.cpp-dashboard .cpp-events-count{
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 6px 11px;
    border: 1px solid #1d4ed8;
    border-radius: 999px;
    background: #1d4ed8;
    color: #fff;
    font-size: 12px;
    font-weight: 750;
    white-space: nowrap;
    text-transform: capitalize;
}

.cpp-dashboard .cpp-events-list{
    display:flex;
    flex-direction:column;
    gap: 6px;
}

.cpp-dashboard .cpp-events-card{
    display:flex;
    align-items:center;
    gap:18px;
    padding: 18px 15px;
    border: 1px solid #ced4da;
    border-radius: 8px;
    background-color: #fff;
    transition: background-color var(--cpp-transition), transform var(--cpp-transition);
}
.cpp-dashboard .cpp-events-card:hover{
    transform: translateX(3px);
}

.cpp-dashboard .cpp-events-card-date{
    width:60px;
    min-width:60px;
    overflow:hidden;
    border:1px solid #dce8ff;
    border-radius:14px;
    background:#ffffff;
    text-align:center;
    box-shadow:0 5px 14px rgba(29,78,216,.07);
}

.cpp-dashboard .cpp-events-card-month{
    display:block;
    padding:5px 8px;
    background:
        linear-gradient(
            135deg,
            var(--cpp-primary, #1d4ed8),
            var(--cpp-primary-dark, #1e3a8a)
        );
    color:#ffffff;
    font-size:11px;
    font-weight:750;
    letter-spacing:.06em;
    text-transform:uppercase;
}

.cpp-dashboard .cpp-events-card-day{
    display:block;
    padding:9px 8px;
    color:var(--cpp-text-heading);
    font-size:22px;
    line-height:1;
}

.cpp-dashboard .cpp-events-card-content{
    flex:1;
    min-width:0;
}

.cpp-dashboard .cpp-events-card-title{
    margin:0;
    color:var(--cpp-text-heading);
    font-size:16px;
    font-weight:730;
    line-height:1.35;
}

.cpp-dashboard .cpp-events-card-title a{
    color:inherit;
    text-decoration:none;
}

.cpp-dashboard .cpp-events-card-title a:hover{
    color:var(--cpp-primary, #1d4ed8);
}

.cpp-dashboard .cpp-events-card-meta{
    display:flex;
    flex-wrap:wrap;
    align-items:center;
    gap:9px 18px;
    margin-top:8px;
    color:#687386;
    font-size:13px;
}

.cpp-dashboard .cpp-events-card-time,
.cpp-dashboard .cpp-events-card-venue{
    position:relative;
    padding-left:18px;
}

.cpp-dashboard .cpp-events-card-time::before{
    content:"";
    position:absolute;
    top:50%;
    left:2px;
    width:9px;
    height:9px;
    border:2px solid currentColor;
    border-radius:50%;
    transform:translateY(-50%);
}

.cpp-dashboard .cpp-events-card-time::after{
    content:"";
    position:absolute;
    top:50%;
    left:7px;
    width:3px;
    height:4px;
    border-left:1px solid currentColor;
    border-bottom:1px solid currentColor;
    transform:translate(-1px,-4px);
}

.cpp-dashboard .cpp-events-card-venue::before{
    content:"";
    position:absolute;
    top:.22em;
    left:3px;
    width:8px;
    height:8px;
    border:2px solid currentColor;
    border-radius:50% 50% 50% 0;
    transform:rotate(-45deg);
}

.cpp-dashboard .cpp-events-card-link{
    display:inline-flex;
    min-height:38px;
    align-items:center;
    justify-content:center;
    padding:8px 13px;
    border:1px solid #dbe7ff;
    border-radius:10px;
    background:var(--cpp-primary-soft, #eef4ff);
    color:var(--cpp-primary, #1d4ed8);
    text-decoration:none;
    font-size:11px;
    font-weight:700;
    white-space:nowrap;
    transition:
        background-color .18s ease,
        border-color .18s ease,
        transform .18s ease;
}

.cpp-dashboard .cpp-events-card-link:hover{
    border-color:#c8d9ff;
    background:#ffffff;
    color:var(--cpp-primary, #1d4ed8);
    transform:translateY(-1px);
}

@media (max-width:1024px){
    .cpp-dashboard .cpp-events-card{
        flex-direction: column;
    align-items: flex-start;
    }
}

@media (max-width:767px){
    .cpp-dashboard .cpp-events-card{
        flex-direction: row;
    align-items: flex-start;
    }
}


@media (max-width:600px){

    .cpp-dashboard .cpp-events-card{
        align-items:flex-start;
        gap:14px;
    }

    .cpp-dashboard .cpp-events-card-date{
        width:52px;
        min-width:52px;
    }

    .cpp-dashboard .cpp-events-card-day{
        font-size:19px;
    }

    .cpp-dashboard .cpp-events-card-meta{
        align-items:flex-start;
        flex-direction:column;
        gap:7px;
    }

}

@media (max-width:450px){
    .cpp-dashboard .cpp-events-card{
        flex-direction: column;
    align-items: flex-start;
    }
}

/* ==========================================
   Calendar Events
========================================== */

.cpp-dashboard .cpp-calendar-events-section {
    grid-column: 1 / -1;
    background-image: url(https://estacadachurch.com/wp-content/uploads/2026/09/body-background-wide.webp);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    /*background: #9370db;*/
    border: 1px solid #7134bd;
    overflow: hidden;
    position: relative;
}
.cpp-dashboard .cpp-calendar-events-section::after {
    content: "";
    position: absolute;
    top: -48px;
    right: -38px;
    width: 150px;
    height: 150px;
    border-radius: 50%;
    background: rgba(107, 63, 196, .045);
    pointer-events: none;
}
#ep_event_calendar .fc-view-harness {
    border-radius: 7px;
    position: relative;
    overflow: hidden;
}
#ep_event_calendar .fc-view-harness .fc-view table.fc-scrollgrid {
    border: 0 !important;
}

/* ==========================================
   Live Upcoming Events
========================================== */

.cpp-dashboard .cpp-events-card-date-text{
    margin-top:0px;
    color:var(--cpp-text-body);
    font-size:13px;
    font-weight:600;
    line-height:1.5;
}

.cpp-dashboard .cpp-upcoming-events-page-section
.cpp-dashboard .cpp-events-card{
    transition:
        background-color .18s ease,
        transform .18s ease;
}

.cpp-dashboard .cpp-upcoming-events-page-section
.cpp-dashboard .cpp-events-card:hover{
    background:#f8faff;
    transform:translateX(3px);
}

@media (max-width:600px){

    .cpp-dashboard .cpp-events-card-date-text{
        font-size:12px;
    }

}

/* ==========================================
   Live Past Events
========================================== */

.cpp-dashboard .cpp-past-events-section
.cpp-dashboard .cpp-events-card{
    opacity:.94;
    transition:
        background-color .18s ease,
        opacity .18s ease,
        transform .18s ease;
}

.cpp-dashboard .cpp-past-events-section
.cpp-dashboard .cpp-events-card:hover{
    background:#f8faff;
    opacity:1;
    transform:translateX(3px);
}

.cpp-dashboard .cpp-past-events-section
.cpp-dashboard .cpp-events-card-month{
    background:
        linear-gradient(
            135deg,
            #64748b,
            #475569
        );
}

.cpp-dashboard .cpp-past-events-section
.cpp-dashboard .cpp-events-card-date{
    border-color:#d8dee8;
    box-shadow:0 5px 14px rgba(71,85,105,.08);
}

.cpp-dashboard .cpp-past-events-section
.cpp-dashboard .cpp-events-card-link{
    border-color:#d8dee8;
    color:#475569;
}

.cpp-dashboard .cpp-past-events-section
.cpp-dashboard .cpp-events-card-link:hover{
    border-color:#cbd3df;
    background:#f1f5f9;
    color:#334155;
}

/* ==========================================
   Administrator Event Sections
========================================== */

.cpp-events-page-layout .cpp-events-admin-grid{
    grid-column:1 / -1;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    align-items:start;
    gap:26px;
}

.cpp-events-page-layout .cpp-events-admin-grid > .cpp-widget{
    height:100%;
}

.cpp-events-page-layout .cpp-admin-events-section{
    min-width:0;
}

.cpp-events-page-layout .cpp-admin-events-section:first-child {
    grid-column: 1 / 1;
}

.cpp-events-page-layout .cpp-admin-event-card{
    align-items:flex-start;
}

.cpp-events-page-layout .cpp-events-count-pending{
    border-color:#fde7bd;
    background:var(--cpp-warning-bg, #fffbeb);
    color:var(--cpp-warning, #b45309);
}

.cpp-events-page-layout .cpp-pending-events-section
.cpp-events-page-layout .cpp-events-card-month{
    background:
        linear-gradient(
            135deg,
            #d97706,
            #b45309
        );
}

.cpp-events-page-layout .cpp-pending-events-section
.cpp-events-page-layout .cpp-events-card-date{
    border-color:#fde7bd;
    box-shadow:0 5px 14px rgba(180,83,9,.08);
}

.cpp-events-page-layout .cpp-pending-event-link{
    background: #fffbeb;
    border-color:#fde7bd;
    color:#b45309;
}

.cpp-events-page-layout .cpp-pending-event-link:hover{
    border-color:#f7d494;
    background:#fff;
    color:#92400e;
}

.cpp-widget .wpforms-form .wpforms-field input,
.cpp-widget .wpforms-form .wpforms-field select {
    width: 100%;
    min-height: 50px;
    padding: 11px 13px;
    border: 1px solid #ced4da;
    border-radius: 8px;
    background: #fff;
    font: inherit;
    transition: border-color .2s ease, box-shadow .2s ease;
}
.cpp-widget .wpforms-form .wpforms-field input:focus {
    outline: none;
    border-color: #6b3fc4 !important;
    box-shadow: 0 0 0 3px rgba(107, 63, 196, .12);
}

.cpp-widget .wpforms-form .wpforms-field textarea {
    width: 100%;
    padding: 11px 13px;
    border: 1px solid #ced4da;
    border-radius: 8px;
    background: #fff;
    font: inherit;
    transition: border-color .2s ease, box-shadow .2s ease;
}
.cpp-widget .wpforms-form .wpforms-field textarea:focus {
    outline: none;
    border-color: #6b3fc4 !important;
    box-shadow: 0 0 0 3px rgba(107, 63, 196, .12);
}

@media (max-width:900px){

    .cpp-events-page-layout .cpp-events-admin-grid{
        grid-template-columns:1fr;
    }

}

@media (max-width:600px){

    .cpp-events-page-layout .cpp-events-admin-grid{
        gap:18px;
    }

}

/* =========================================================
   Event Details Modal
   ========================================================= */

.cpp-dashboard .cpp-modal-open {
    overflow: hidden;
}

.cpp-dashboard .cpp-event-modal {
    position: fixed;
    inset: 0;
    z-index: 99999;
}

.cpp-dashboard .cpp-event-modal[hidden] {
    display: none !important;
}

.cpp-dashboard .cpp-event-modal-backdrop {
    position: absolute;
    inset: 0;

    background:
        rgba(15, 23, 42, .68);

    backdrop-filter:
        blur(4px);
}

.cpp-dashboard .cpp-event-modal-dialog {
    position: relative;
    z-index: 1;

    width: min(
        calc(100% - 32px),
        760px
    );

    max-height:
        calc(100vh - 48px);

    margin: 24px auto;

    overflow-y: auto;

    border-radius: 18px;

    background: #ffffff;

    box-shadow:
        0 30px 80px
        rgba(15, 23, 42, .28);
}

.cpp-dashboard .cpp-event-modal-close {
    position: absolute;
    top: 14px;
    right: 14px;
    z-index: 5;

    display: flex;
    align-items: center;
    justify-content: center;

    width: 38px;
    height: 38px;

    padding: 0;

    border: 0;
    border-radius: 50%;

    background:
        rgba(255, 255, 255, .94);

    color: #172033;

    font-size: 25px;
    line-height: 1;

    cursor: pointer;

    box-shadow:
        0 4px 14px
        rgba(15, 23, 42, .12);
}

.cpp-dashboard .cpp-event-modal-image {
    width: 100%;
    height: 280px;

    overflow: hidden;

    border-radius:
        18px 18px 0 0;

    background: #f1f5f9;
}

.cpp-dashboard .cpp-event-modal-image img {
    display: block;

    width: 100%;
    height: 100%;

    object-fit: cover;
}

.cpp-dashboard .cpp-event-modal-body {
    padding: 28px;
}

.cpp-dashboard .cpp-event-modal-eyebrow {
        display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 6px 11px;
    border: 1px solid #6F2D96;
    border-radius: 999px;
    background: #fff;
    color: #6F2D96;
    font-size: 12px;
    font-weight: 750;
    white-space: nowrap;
    text-transform: uppercase;
    margin-bottom: 20px;
}

.cpp-dashboard .cpp-event-modal-body h2 {
    margin: 0 0 15px;
    color: var(--cpp-text-heading);
    font-size: 26px;
    font-weight: 740;
    letter-spacing: -.025em;
    line-height: 1.3;
}

.cpp-dashboard .cpp-event-modal-meta {
    display: grid;

    grid-template-columns:
        repeat(3, minmax(0, 1fr));

    gap: 12px;

    margin-bottom: 24px;
}

.cpp-dashboard .cpp-event-modal-meta-item {
    padding: 12px 14px;

    border: 1px solid #ced4da;
    border-radius: 10px;

    background: #faf8fc;
}

.cpp-dashboard .cpp-event-modal-meta-item strong {
    display: block;
    margin-bottom: 4px;
    color: #6F2D96;
    font-size: 12px;
    font-weight: 800;
    text-transform: uppercase;
}

.cpp-dashboard .cpp-event-modal-meta-item span {
    color: #334155;
    font-size: 14px;
    line-height: 1.5;
}

.cpp-dashboard .cpp-event-modal-description {
    color: #475569;
    font-size: 16px;
    line-height: 1.75;
}

.cpp-dashboard .cpp-event-modal-description > *:first-child {
    margin-top: 0;
}

.cpp-dashboard .cpp-event-modal-description > *:last-child {
    margin-bottom: 0;
}

.cpp-dashboard .cpp-event-modal-loading,
.cpp-dashboard .cpp-event-modal-error {
    padding: 60px 30px;

    color: #64748b;

    text-align: center;
}

.cpp-dashboard .cpp-event-modal-error {
    color: #b42318;
}


/* Event title modal button */

.cpp-events-page-layout .cpp-event-title-button {
    padding: 0;

    border: 0;

    background: none;

    color: inherit;

    font: inherit;
    font-weight: inherit;

    text-align: left;

    cursor: pointer;
}

.cpp-events-page-layout .cpp-event-title-button:hover {
    color: #6F2D96;
}


/* Existing View Event link is now a button */

.cpp-events-page-layout button.cpp-events-card-link {
    font-family: inherit;
    cursor: pointer;
    text-transform: capitalize;
}

.cpp-events-page-layout button.cpp-events-card-link:focus {
        border-color: #c8d9ff;
    background: #ffffff;
    color: var(--cpp-primary, #1d4ed8);
}


/* Mobile */

@media (max-width: 700px) {

    .cpp-dashboard .cpp-event-modal-dialog {
        width:
            calc(100% - 20px);

        max-height:
            calc(100vh - 20px);

        margin: 10px auto;

        border-radius: 14px;
    }

    .cpp-dashboard .cpp-event-modal-image {
        height: 210px;

        border-radius:
            14px 14px 0 0;
    }

    .cpp-dashboard .cpp-event-modal-body {
        padding: 22px 18px;
    }

    .cpp-dashboard .cpp-event-modal-body h2 {
        font-size: 21px;
    }

    .cpp-dashboard .cpp-event-modal-meta {
        grid-template-columns: 1fr;
    }

}

/* ==========================================
   Incident Reports Portal Page
========================================== */

.cpp-dashboard .cpp-incident-page-layout{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:26px;
    margin-top:26px;
}

.cpp-dashboard .cpp-my-incident-reports-section,
.cpp-dashboard .cpp-resolved-incidents-section,
.cpp-dashboard .cpp-incident-form-section{
    grid-column:1 / -1;
}

.cpp-dashboard .cpp-incident-admin-grid{
    grid-column:1 / -1;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    align-items:start;
    gap:26px;
}

.cpp-dashboard .cpp-incident-admin-grid > .cpp-widget{
    height:100%;
}

.cpp-dashboard .cpp-portal-section-description{
    max-width:760px;
    margin:8px 0;
    color:var(--cpp-text-body);
    font-size:16px;
    line-height:1.6;
}

.cpp-dashboard .cpp-incident-form-section{
    scroll-margin-top:96px;
    grid-column: 1 / 1;
}

.cpp-dashboard .cpp-incident-report-form{
    max-width:920px;
    margin-top:24px;
}

.cpp-dashboard .cpp-portal-notice{
    margin:24px;
    padding:18px 20px;
    border:1px solid var(--cpp-border, #e5eaf1);
    border-radius:14px;
    background:#ffffff;
    color:var(--cpp-text-body);
    font-size:14px;
    line-height:1.6;
}

.cpp-dashboard .cpp-portal-notice-warning{
    border-color:#fde7bd;
    background:#fffbeb;
    color:#92400e;
}

@media (max-width:1000px){

    .cpp-dashboard .cpp-incident-page-layout,
    .cpp-dashboard .cpp-incident-admin-grid{
        grid-template-columns:1fr;
    }

    .cpp-dashboard .cpp-my-incident-reports-section,
    .cpp-dashboard .cpp-resolved-incidents-section,
    .cpp-dashboard .cpp-incident-form-section,
    .cpp-dashboard .cpp-incident-admin-grid{
        grid-column:1;
    }

}

@media (max-width:600px){

    .cpp-dashboard .cpp-incident-page-layout,
    .cpp-dashboard .cpp-incident-admin-grid{
        gap:18px;
    }

    .cpp-dashboard .cpp-incident-page-layout{
        margin-top:18px;
    }

}

/* ==========================================
   Live My Incident Reports
========================================== */

.cpp-dashboard .cpp-incident-count,
.cpp-dashboard .cpp-support-count{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:6px 11px;
    border:1px solid #dbe7ff;
    border-radius:999px;
    background:var(--cpp-primary-soft, #eef4ff);
    color:var(--cpp-primary, #1d4ed8);
    font-size:14px;
    font-weight:750;
    white-space:nowrap;
    text-transform: capitalize;
}

.cpp-dashboard .cpp-incident-report-list{
    display:flex;
    flex-direction:column;
    gap: 6px;
}

.cpp-dashboard .cpp-incident-report-card{
        display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    padding: 18px 15px;
    border: 1px solid #ced4da;
    border-radius: 8px;
    background-color: #fff;
    transition: background-color var(--cpp-transition), transform var(--cpp-transition);
}
.cpp-dashboard .cpp-incident-report-card:hover{
    transform: translateX(3px);
}

.cpp-dashboard .cpp-incident-report-main{
    min-width:0;
}

.cpp-dashboard .cpp-incident-report-heading{
    display:flex;
    align-items:center;
    justify-content:flex-start;
    gap:18px;
}

.cpp-dashboard .cpp-incident-report-heading h3{
    margin:0;
    color:var(--cpp-text-heading);
    font-size:16px;
    font-weight:730;
    line-height:1.35;
}

.cpp-dashboard .cpp-incident-report-meta{
    display:flex;
    flex-wrap:wrap;
    gap:8px 22px;
    margin-top:10px;
    color:var(--cpp-text-muted, #8a94a6);
    font-size:13px;
    line-height:1.55;
}
.cpp-dashboard .cpp-incident-report-meta span { color: #6F2D96; }

.cpp-dashboard .cpp-incident-report-meta strong{
    color:var(--cpp-text-body);
    font-weight:700;
}

.cpp-dashboard .cpp-incident-status{
    display:inline-flex;
    align-items:center;
    padding:5px 10px;
    border:1px solid #dbe7ff;
    border-radius:999px;
    background:var(--cpp-info-bg, #eef4ff);
    color:var(--cpp-info, #1d4ed8);
    font-size:12px;
    font-weight:750;
    white-space:nowrap;
}

.cpp-dashboard .cpp-incident-status[data-status="under-review"],
.cpp-dashboard .cpp-incident-status[data-status="pending"],
.cpp-dashboard .cpp-incident-status[data-status="investigating"]{
    border-color:#fde7bd;
    background:var(--cpp-warning-bg, #fffbeb);
    color:var(--cpp-warning, #b45309);
}

.cpp-dashboard .cpp-incident-status[data-status="resolved"],
.cpp-dashboard .cpp-incident-status[data-status="completed"],
.cpp-dashboard .cpp-incident-status[data-status="closed"]{
    border-color:#cceede;
    background:var(--cpp-success-bg, #ecfdf5);
    color:var(--cpp-success, #047857);
}

.cpp-dashboard .cpp-incident-status[data-status="rejected"],
.cpp-dashboard .cpp-incident-status[data-status="cancelled"]{
    border-color:#fed7d7;
    background:var(--cpp-danger-bg, #fef2f2);
    color:var(--cpp-danger, #b91c1c);
}

@media (max-width:700px){

    .cpp-dashboard .cpp-incident-report-heading{
        align-items:flex-start;
        flex-direction:column;
        gap:10px;
    }

    .cpp-dashboard .cpp-incident-report-meta{
        align-items:flex-start;
        flex-direction:column;
        gap:7px;
    }

}

/* ==========================================
   Administrator Incident Management
========================================== */

.cpp-dashboard .cpp-incident-count-warning{
    border-color:#fde7bd;
    background:var(--cpp-warning-bg, #fffbeb);
    color:var(--cpp-warning, #b45309);
}

.cpp-dashboard .cpp-incident-count-success{
    border-color:#cceede;
    background:var(--cpp-success-bg, #ecfdf5);
    color:var(--cpp-success, #047857);
}

.cpp-dashboard .cpp-incident-admin-list{
    display:flex;
    flex-direction:column;
    gap: 6px;
}

.cpp-dashboard .cpp-incident-admin-card{
        display: flex;
    align-items: center;
    gap: 18px;
    padding: 18px 15px;
    border: 1px solid #ced4da;
    border-radius: 8px;
    background-color: #fff;
    transition: background-color var(--cpp-transition), transform var(--cpp-transition);
}
.cpp-dashboard .cpp-incident-admin-card:hover{
    transform: translateX(3px);
}

.cpp-dashboard .cpp-incident-admin-content{
    flex:1;
    min-width:0;
}

.cpp-incident-report-actions .cpp-incident-view-button,
.cpp-incident-report-actions .cpp-incident-edit-link {
    appearance: none;
    display: inline-flex;
    min-height: 38px;
    align-items: center;
    justify-content: center;
    padding: 8px 13px;
    border: 1px solid #dbe7ff;
    border-radius: 10px;
    background: var(--cpp-primary-soft, #eef4ff);
    color: var(--cpp-primary, #1d4ed8);
    font: inherit;
    font-size: 11px;
    font-weight: 700;
    text-transform: capitalize;
    cursor: pointer;
    white-space: nowrap;
    text-decoration: none;
    transition: background-color .18s ease, border-color .18s ease, transform .18s ease;
}

.cpp-incident-report-actions .cpp-incident-view-button { background: var(--cpp-primary-soft, #eef4ff); }
.cpp-incident-report-actions .cpp-incident-edit-link { background: #fff; }

.cpp-incident-report-actions .cpp-incident-view-button:hover,
.cpp-incident-report-actions .cpp-incident-view-button:focus {
    color: var(--cpp-primary, #1d4ed8);
    border-color: #c8d9ff;
    background: #ffffff!important;
    transform: translateY(-1px);
}

.cpp-incident-report-actions .cpp-incident-edit-link:hover,
.cpp-incident-report-actions .cpp-incident-edit-link:focus{
    color: var(--cpp-primary, #1d4ed8);
    border-color: #c8d9ff;
    background: var(--cpp-primary-soft, #eef4ff)!important;
    transform: translateY(-1px);
}

.cpp-dashboard .cpp-portal-datatable .cpp-archive-actions a{
    display:inline-flex;
    min-height:32px;
    align-items:center;
    justify-content:center;
    padding:8px 13px;
    border:1px solid #dbe7ff;
    border-radius:10px;
    background:#ffffff;
    color:var(--cpp-primary, #1d4ed8);
    text-decoration:none;
    font-size:11px;
    font-weight:700;
    white-space:nowrap;
    transition:
        background-color .18s ease,
        border-color .18s ease,
        transform .18s ease;
}

.cpp-dashboard .cpp-portal-datatable .cpp-archive-actions a:hover{
    border-color:#c8d9ff;
    background:var(--cpp-primary-soft, #eef4ff);
    color:var(--cpp-primary, #1d4ed8);
    transform:translateY(-1px);
}

.cpp-dashboard .cpp-incident-section-footer{
    display:flex;
    justify-content:flex-start;
    margin-top:22px;
    padding-top:18px;
    border-top:1px solid var(--cpp-border-soft, #edf1f5);
}

.cpp-dashboard .cpp-incident-view-all-link{
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    padding: 10px 17px;
    border: 1px solid transparent;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    color: #ffffff;
    text-decoration: none;
    font-size: 12px;
    font-weight: 700;
    box-shadow: 0 8px 18px rgba(29, 78, 216, .2);
    transition: transform .18s ease, box-shadow .18s ease;
}

.cpp-dashboard .cpp-incident-view-all-link:hover{
    color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 12px 24px rgba(29, 78, 216, .26);
}

@media (max-width:700px){

    .cpp-dashboard .cpp-incident-admin-card{
        align-items:flex-start;
        flex-direction:column;
    }

    .cpp-dashboard .cpp-incident-edit-link{
        width:100%;
    }

}

.cpp-incident-edit-modal .cpp-incident-edit-readonly-grid {
    display: grid;
    grid-template-columns:
        repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 24px;
}

.cpp-incident-edit-modal .cpp-incident-edit-readonly {
    padding: 14px;
    border: 1px solid #ced4da;
    border-radius: 10px;
    background: #f5f3ff;
}

.cpp-incident-edit-modal .cpp-incident-edit-readonly span {
    display: block;
    margin-bottom: 5px;
    color: #64748b;
    font-size: 10px;
    font-weight: 700;
    text-transform: uppercase;
}

.cpp-incident-edit-modal .cpp-incident-edit-readonly strong {
    display: block;
    color: #172033;
    font-size: 13px;
}

.cpp-incident-edit-modal .cpp-incident-edit-grid {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.cpp-incident-edit-modal .cpp-incident-edit-grid
.cpp-form-field {
    min-width: 0;
}

.cpp-incident-edit-modal .cpp-incident-edit-grid
.cpp-form-field-full {
    grid-column: 1 / -1;
}

.cpp-incident-edit-modal .cpp-incident-edit-grid label {
    display: block;
    margin-bottom: 7px;
    color: #334155;
    font-size: 12px;
    font-weight: 700;
}

.cpp-incident-edit-modal .cpp-incident-edit-grid input,
.cpp-incident-edit-modal .cpp-incident-edit-grid select {
    width: 100%;
    min-height: 45px;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    background: #fff;
    font-size: 16px;
    font: inherit;
    padding: 12px 14px;
    transition: border-color .2s ease, box-shadow .2s ease;
}

.cpp-incident-edit-modal .cpp-incident-edit-grid textarea {
    resize: vertical;
    width: 100%;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    background: #fff;
    font-size: 16px;
    font: inherit;
    padding: 12px 14px;
    transition: border-color .2s ease, box-shadow .2s ease;
}
.cpp-incident-edit-modal .cpp-incident-edit-grid input:focus,
.cpp-incident-edit-modal .cpp-incident-edit-grid select:focus,
.cpp-incident-edit-modal .cpp-incident-edit-grid textarea:focus {
    outline: none;
    border-color: #6b3fc4;
    box-shadow: 0 0 0 3px rgba(107, 63, 196, .12);
}

.cpp-incident-edit-modal .cpp-incident-edit-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 24px;
}

.cpp-incident-edit-modal .cpp-incident-edit-actions .cpp-primary-button {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    padding: 10px 17px;
    border: 1px solid transparent;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    color: #ffffff;
    text-decoration: none;
    font-size: 12px;
    font-weight: 700;
    text-transform: capitalize;
    box-shadow: 0 8px 18px rgba(29, 78, 216, .2);
    transition: transform .18s ease, box-shadow .18s ease;
}
.cpp-incident-edit-modal .cpp-incident-edit-actions .cpp-primary-button:hover,
.cpp-incident-edit-modal .cpp-incident-edit-actions .cpp-primary-button:focus {
    color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 12px 24px rgba(29, 78, 216, .26);
}

.cpp-incident-edit-modal .cpp-incident-edit-actions .cpp-secondary-button {
        appearance: none;
    display: inline-flex;
    min-height: 38px;
    align-items: center;
    justify-content: center;
    padding: 8px 13px;
    border: 1px solid #dbe7ff;
    border-radius: 10px;
    background: var(--cpp-primary-soft, #eef4ff);
    color: var(--cpp-primary, #1d4ed8);
    font: inherit;
    font-size: 12px;
    font-weight: 700;
    text-transform: capitalize;
    cursor: pointer;
    white-space: nowrap;
    text-decoration: none;
    transition: background-color .18s ease, border-color .18s ease, transform .18s ease;
}
.cpp-incident-edit-modal .cpp-incident-edit-actions .cpp-secondary-button:hover,
.cpp-incident-edit-modal .cpp-incident-edit-actions .cpp-secondary-button:focus {
        color: var(--cpp-primary, #1d4ed8);
    border-color: #c8d9ff;
    background: #ffffff !important;
    transform: translateY(-1px);
}

.cpp-incident-edit-modal .cpp-incident-edit-message {
    margin-bottom: 18px;
    padding: 12px 14px;
    border-radius: 8px;
    font-size: 12px;
}

.cpp-incident-edit-modal .cpp-incident-edit-message-success {
    background: #ecfdf3;
    color: #027a48;
}

.cpp-incident-edit-modal .cpp-incident-edit-message-error {
    background: #fef3f2;
    color: #b42318;
}

@media (max-width: 760px) {

    .cpp-incident-edit-modal .cpp-incident-edit-readonly-grid,
    .cpp-incident-edit-modal .cpp-incident-edit-grid {
        grid-template-columns: 1fr;
    }

    .cpp-incident-edit-modal .cpp-incident-edit-grid
    .cpp-form-field-full {
        grid-column: auto;
    }

    .cpp-incident-edit-modal .cpp-incident-edit-actions {
        flex-direction: column-reverse;
    }

    .cpp-incident-edit-modal .cpp-incident-edit-actions button {
        width: 100%;
    }
}

/* ==========================================
   Incident Report Details Modal
========================================== */

.cpp-dashboard .cpp-incident-report-actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    flex-wrap:wrap;
    gap:10px;
}

.cpp-dashboard .cpp-portal-datatable .cpp-archive-actions button{
    appearance:none;
    display:inline-flex;
    min-height:32px;
    align-items:center;
    justify-content:center;
    padding:8px 13px;
    border:1px solid #dbe7ff;
    border-radius:10px;
    background:var(--cpp-primary-soft, #eef4ff);
    color:var(--cpp-primary, #1d4ed8);
    font:inherit;
    font-size:11px;
    font-weight:700;
    text-transform: capitalize;
    cursor:pointer;
    white-space:nowrap;
    transition:
        background-color .18s ease,
        border-color .18s ease,
        transform .18s ease;
}

.cpp-dashboard .cpp-portal-datatable .cpp-archive-actions button:hover{
    border-color:#c8d9ff;
    color:var(--cpp-primary, #1d4ed8);
    background: #fff;
    transform:translateY(-1px);
}

.cpp-dashboard .cpp-portal-datatable .cpp-archive-actions button.cpp-member-approve-button {
    background: #ecfdf5;
    color: #047857;
}

.cpp-dashboard .cpp-portal-datatable .cpp-archive-actions button.cpp-member-reject-button {
    background: #FFCDCE;
    color: #cf2e2e;
}

body.cpp-incident-modal-open{
    overflow:hidden;
}

.cpp-dashboard .cpp-incident-modal{
    position:fixed;
    inset:0;
    z-index:5000;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:24px;
}

.cpp-dashboard .cpp-incident-modal[hidden]{
    display:none;
}

.cpp-dashboard .cpp-incident-modal-backdrop{
    position:absolute;
    inset:0;
    background:rgba(15,23,42,.62);
    backdrop-filter:blur(4px);
}

.cpp-dashboard .cpp-incident-modal-dialog{
    position:relative;
    z-index:1;
    width:min(760px,100%);
    max-height:calc(100vh - 48px);
    overflow-y:auto;
    border:1px solid var(--cpp-border, #e5eaf1);
    border-radius:22px;
    background:#ffffff;
    box-shadow:0 30px 80px rgba(15,23,42,.28);
}

.cpp-dashboard .cpp-incident-modal-header{
    position:sticky;
    top:0;
    z-index:2;
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:20px;
    padding:24px 26px;
    border-bottom:1px solid var(--cpp-border-soft, #edf1f5);
    background:rgba(255,255,255,.96);
    backdrop-filter:blur(10px);
}

.cpp-dashboard .cpp-incident-modal-eyebrow{
    display:block;
    margin-bottom:5px;
    color:var(--cpp-primary, #1d4ed8);
    font-size:11px;
    font-weight:750;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.cpp-dashboard .cpp-incident-modal-header h2{
    margin: 0px;
    color: var(--cpp-text-heading);
    font-size: 26px;
    font-weight: 740;
    letter-spacing: -.025em;
    line-height: 1.3;
}

.cpp-dashboard .cpp-incident-modal-close{
    appearance:none;
    width:40px;
    height:40px;
    display:flex;
    align-items:center;
    justify-content:center;
    flex-shrink:0;
    border:0;
    border-radius:10px;
    background:#f1f5f9;
    color:#475569;
    font-size:26px;
    line-height:1;
    cursor:pointer;
}

.cpp-dashboard .cpp-incident-modal-body{
    padding:26px;
}

.cpp-dashboard .cpp-incident-modal-summary{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:12px;
    margin-bottom:22px;
}

.cpp-dashboard .cpp-incident-modal-severity{
    color:var(--cpp-text-body);
    font-size:14px;
}
.cpp-dashboard .cpp-incident-modal-severity strong { color: #6F2D96; }

.cpp-dashboard .cpp-incident-modal-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
}

.cpp-dashboard .cpp-incident-modal-field{
    padding:15px;
    border:1px solid var(--cpp-border-soft, #edf1f5);
    border-radius:13px;
        background: #f5f3ff;
}

.cpp-dashboard .cpp-incident-modal-field span{
    display:block;
    margin-bottom:5px;
    color:var(--cpp-text-muted, #8a94a6);
    font-size:12px;
    font-weight:700;
    text-transform:uppercase;
}

.cpp-dashboard .cpp-incident-modal-field strong{
    display:block;
    color: #334155;
    font-size:15px;
    line-height:1.5;
}

.cpp-dashboard .cpp-incident-modal-section{
    margin-top:24px;
    padding: 15px;
    border: 1px solid var(--cpp-border-soft, #edf1f5);
    border-radius: 13px;
    background: #f5f3ff;
}

.cpp-dashboard .cpp-incident-modal-section h3{
    display: block;
    margin-bottom: 5px;
    color: var(--cpp-text-muted, #8a94a6);
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
}

.cpp-dashboard .cpp-incident-modal-section p{
    display: block;
    color: var(--cpp-text-heading);
    font-size: 16px;
    line-height: 1.5;
}

.cpp-dashboard .cpp-incident-modal-loading,
.cpp-dashboard .cpp-incident-modal-error{
    padding:32px 20px;
    border-radius:14px;
    text-align:center;
    font-size:14px;
}

.cpp-dashboard .cpp-incident-modal-loading{
    background:#f8fafc;
    color:var(--cpp-text-muted, #8a94a6);
}

.cpp-dashboard .cpp-incident-modal-error{
    border:1px solid #fed7d7;
    background:#fef2f2;
    color:#b91c1c;
}

@media (max-width:1024px){
    
    .cpp-dashboard .cpp-portal-datatable .cpp-archive-actions button { display: none; }
    
}

@media (max-width:700px){

    .cpp-dashboard .cpp-incident-report-card,
    .cpp-dashboard .cpp-incident-admin-card{
        align-items:flex-start;
        flex-direction:column;
    }

    .cpp-dashboard .cpp-incident-report-actions{
        width:100%;
    }

    .cpp-dashboard .cpp-incident-view-button,
    .cpp-dashboard .cpp-incident-edit-link{
        flex:1;
    }

    .cpp-dashboard .cpp-incident-modal{
        align-items:flex-end;
        padding:0;
    }

    .cpp-dashboard .cpp-incident-modal-dialog{
        width:100%;
        max-height:92vh;
        border-radius:20px 20px 0 0;
    }

    .cpp-dashboard .cpp-incident-modal-header,
    .cpp-dashboard .cpp-incident-modal-body{
        padding:20px 18px;
    }

    .cpp-dashboard .cpp-incident-modal-grid{
        grid-template-columns:1fr;
    }

}

/* ==========================================
   All Incident Reports Archive
========================================== */

.cpp-dashboard .cpp-incident-archive-layout{
    margin-top:26px;
}

.cpp-dashboard .cpp-portal-datatable-container .cpp-portal-table-filters{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:16px;
    margin:24px 0;
    padding:18px;
    border:1px solid #ced4da;
    border-radius:14px;
    background:#fff;
}

.cpp-dashboard .cpp-archive-filter{
    min-width:0;
}

.cpp-dashboard .cpp-archive-filter label{
    display:block;
    margin-bottom:7px;
    color:var(--cpp-text-heading);
    font-size:12px;
    font-weight:700;
}

.cpp-dashboard .cpp-archive-filter select{
    width:100%;
    min-height:42px;
    padding:8px 36px 8px 11px;
    border:1px solid var(--cpp-border, #e5eaf1);
    border-radius:10px;
    background:#ffffff;
    color:var(--cpp-text-body);
    font:inherit;
    font-size:13px;
}

.cpp-dashboard .cpp-portal-table-wrapper{
    width:100%;
    overflow-x:auto;
}

.cpp-dashboard table.cpp-portal-datatable thead th{
    padding:20px 12px !important;
    background: #6F2D96;
    color: #fff;
    font-weight: bold;
    font-size: 1em;
    text-align: left;
    white-space:nowrap;
}

.cpp-dashboard table.cpp-portal-datatable tbody td{
    padding:14px 12px !important;
    color:var(--cpp-text-body);
    font-size:14px;
    vertical-align:middle;
}

.cpp-dashboard table.cpp-portal-datatable tbody tr:last-child td{ border-bottom: 0; }

.cpp-dashboard .cpp-archive-reference{
    color:var(--cpp-text-heading);
}

.cpp-dashboard .cpp-archive-severity{
    display:inline-flex;
    padding:5px 9px;
    border-radius:999px;
    background:#f1f5f9;
    color:#475569;
    font-size:11px;
    font-weight:700;
    white-space:nowrap;
}

.cpp-dashboard .cpp-archive-severity[data-severity="high"],
.cpp-dashboard .cpp-archive-severity[data-severity="critical"]{
    background:#fef2f2;
    color:#b91c1c;
}

.cpp-dashboard .cpp-archive-severity[data-severity="medium"],
.cpp-dashboard .cpp-archive-severity[data-severity="moderate"]{
    background:#fffbeb;
    color:#b45309;
}

.cpp-dashboard .cpp-archive-severity[data-severity="low"]{
    background:#ecfdf5;
    color:#047857;
}

.cpp-dashboard .cpp-archive-actions{
    display:flex;
    align-items:center;
    gap:8px;
    white-space:nowrap;
}

/* DataTables toolbar */

.cpp-dashboard .cpp-datatable-toolbar,
.cpp-dashboard .cpp-datatable-footer{
    display:flex;
    align-items:center;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:14px;
}

.cpp-dashboard .cpp-datatable-toolbar{
    margin-bottom:18px;
}

.cpp-dashboard .cpp-datatable-footer{
    margin-top:18px;
}

.cpp-dashboard .cpp-datatable-search .dataTables_filter input{
    min-width:250px;
    min-height: 45px;
    padding: 11px 13px;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    background: #fff;
    font: inherit;
    transition: border-color .2s ease, box-shadow .2s ease;
}
.cpp-dashboard .cpp-datatable-search .dataTables_filter input:focus{
        outline: none;
    border-color: #6b3fc4 !important;
    box-shadow: 0 0 0 3px rgba(107, 63, 196, .12);
}

.cpp-dashboard .cpp-datatable-length label { font-size: 14px; }
.cpp-dashboard .cpp-datatable-length select{
    min-height:38px;
    margin:5px 0;
    border:1px solid var(--cpp-border, #e5eaf1)!important;
    border-radius:8px!important;
    background:#ffffff;
    background-color: #fff!important;
}

.cpp-dashboard .cpp-datatable-buttons button.dt-button,
.cpp-dashboard .cpp-datatable-buttons button.cpp-datatable-export{
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    padding: 10px 17px;
    border: 1px solid transparent;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    color: #ffffff;
    text-decoration: none;
    font-size: 14px;
    font-weight: 700;
    box-shadow: 0 8px 18px rgba(29, 78, 216, .2);
    transition: transform .18s ease, box-shadow .18s ease;
}

.cpp-dashboard .cpp-datatable-buttons button.dt-button:hover,
.cpp-dashboard .cpp-datatable-buttons button.dt-button:focus,
.cpp-dashboard .cpp-datatable-buttons button.cpp-datatable-export:hover,
.cpp-dashboard .cpp-datatable-buttons button.cpp-datatable-export:focus{
    color: #ffffff;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a))!important;
    transform: translateY(-2px);
    box-shadow: 0 12px 24px rgba(29, 78, 216, .26);
}

.cpp-dashboard .dataTables_wrapper
.cpp-dashboard .dataTables_paginate
.cpp-dashboard .paginate_button{
    border:0 !important;
    border-radius:8px !important;
    background:transparent !important;
}

.cpp-dashboard .dataTables_wrapper
.cpp-dashboard .dataTables_paginate
.cpp-dashboard .paginate_button.current{
    background:var(--cpp-primary, #1d4ed8) !important;
    color:#ffffff !important;
}

.cpp-portal-table-wrapper .cpp-datatable-footer .dataTables_info,
.cpp-portal-table-wrapper .cpp-datatable-footer .cpp-datatable-pagination { font-size: 14px; }

@media (max-width:900px){

    .cpp-dashboard .cpp-incident-archive-filters{
        grid-template-columns:1fr;
    }

    .cpp-dashboard .cpp-datatable-toolbar,
    .cpp-dashboard .cpp-datatable-footer{
        align-items:stretch;
        flex-direction:column;
    }

    .cpp-dashboard .cpp-datatable-search input{
        width:100%;
        min-width:0;
    }

}

@media (max-width:600px){

    .cpp-dashboard .cpp-incident-archive-layout{
        margin-top:18px;
    }

    .cpp-dashboard .cpp-incident-archive-filters{
        padding:14px;
    }

    .cpp-dashboard .cpp-archive-actions{
        align-items:stretch;
        flex-direction:column;
    }

}

/* ==========================================
   Portal Access Restricted
========================================== */

.page-template .cpp-portal-access-denied,
.page-template-default .cpp-portal-access-denied{
        background-image: url(https://estacadachurch.com/wp-content/uploads/2026/08/page-restricted.webp);
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    width: 100%;
    height: 100vh;
    margin: 0;
    border-radius: 0;
    border: 0;
    display: flex;
    justify-content: center;
    align-items: center;
    flex-direction: column;
    padding: 50px 40px;
    text-align: center;
}
.page-template .cpp-portal-access-denied .access-denied-container,
.page-template-default .cpp-portal-access-denied .access-denied-container{
        max-width: 650px;
    width: 650px;
    text-align: center;
    margin: 80px auto;
    padding: 60px 40px;
    border: 1px solid var(--cpp-border, #e5eaf1);
    border-radius: 20px;
    background:#ffffff;
    box-shadow: rgba(15, 23, 42, 0.08) 0px 20px 50px;
}

.page-template .cpp-portal-access-denied-icon,
.page-template-default .cpp-portal-access-denied-icon{
    display:flex;
    align-items:center;
    justify-content:center;
    width:72px;
    height:72px;
    margin:0 auto 24px;
    border-radius:50%;
    background:#fff7ed;
    color:#d97706;
}

.page-template .cpp-portal-access-denied-icon svg,
.page-template-default .cpp-portal-access-denied-icon svg{
    width:34px;
    height:34px;
    stroke: #A542DE;
}

.page-template .cpp-portal-access-denied h2,
.page-template-default .cpp-portal-access-denied h2{
    margin:0 0 12px;
    color:var(--cpp-text-heading);
    font-size:28px;
    font-weight:700;
}

.page-template .cpp-portal-access-denied p,
.page-template-default .cpp-portal-access-denied p{
    max-width:500px;
    margin:0 auto 28px;
    color:var(--cpp-text-body);
    font-size:15px;
    line-height:1.7;
}

.cpp-portal-access-denied .cpp-primary-button {
        display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    padding: 10px 17px;
    border: 1px solid transparent;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    color: #ffffff;
    text-decoration: none;
    font-size: 14px;
    font-weight: 700;
    box-shadow: 0 8px 18px rgba(29, 78, 216, .2);
    transition: transform .18s ease, box-shadow .18s ease;
}
.cpp-portal-access-denied .cpp-primary-button:hover {
    color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 12px 24px rgba(29, 78, 216, .26);
}

@media (max-width:768px){

    .page-template .cpp-portal-access-denied,
    .page-template-default .cpp-portal-access-denied{
        margin:32px 16px;
        padding:32px 24px;
    }

    .page-template .cpp-portal-access-denied h2,
    .page-template-default .cpp-portal-access-denied h2{
        font-size:24px;
    }

}

/* ==========================================
   Shared Portal DataTables
========================================== */

.cpp-dashboard .cpp-portal-table-wrapper{
    width:100%;
    overflow-x:auto;
}

.cpp-dashboard .cpp-portal-datatable{
    width:100% !important;
    background-color: #fff;
}

.cpp-portal-datatable-container .cpp-portal-table-filters{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:16px;
    margin:24px 0;
    padding:18px;
    border:1px solid var(--cpp-border-soft, #edf1f5);
    border-radius:14px;
    background:#f8fafc;
}

.cpp-portal-table-filters .cpp-portal-table-filter{
    min-width:0;
}

.cpp-portal-table-filters .cpp-portal-table-filter label{
    display:block;
    margin-bottom:7px;
    color:var(--cpp-text-heading);
    font-size:14px;
    font-weight:700;
}

.cpp-portal-table-filters .cpp-portal-table-filter select{
    width: 100%;
    min-height: 45px;
    padding: 11px 13px;
    border: 1px solid #ced4da;
    border-radius: 8px;
    background: #fff;
    color: var(--cpp-text-body);
    font: inherit;
    font-size: 14px;
    transition: border-color .2s ease, box-shadow .2s ease;
}
.cpp-portal-table-filters .cpp-portal-table-filter select:focus{
    outline: none;
    border-color: #6b3fc4 !important;
    box-shadow: 0 0 0 3px rgba(107, 63, 196, .12);
}

.cpp-portal-table-wrapper .cpp-portal-datatable tbody td{
    padding:14px 12px !important;
    border-bottom:1px solid var(--cpp-border-soft, #edf1f5);
    color:var(--cpp-text-body);
    font-size:13px;
    vertical-align:middle;
}

.cpp-dashboard table.cpp-portal-datatable tbody td{
    padding:14px 12px !important;
    color:var(--cpp-text-body);
    font-size:14px;
    vertical-align:middle;
}

.cpp-dashboard table.cpp-portal-datatable tbody tr:last-child td{ border-bottom: 0; }

@media (max-width:900px){

    .cpp-portal-datatable-container .cpp-portal-table-filters{
        grid-template-columns:1fr;
    }

}

@media (max-width:600px){ 

    .cpp-portal-datatable-container .cpp-portal-table-filters{
        padding:14px;
    }

}

/* ==========================================
   Support Requests Portal Page
========================================== */

.cpp-support-page-layout{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:26px;
    margin-top:26px;
}

.cpp-support-page-layout .cpp-my-support-requests-section,
.cpp-support-page-layout .cpp-resolved-support-section,
.cpp-support-page-layout .cpp-support-form-section{
    grid-column:1 / -1;
}

.cpp-support-page-layout .cpp-support-admin-grid{
    grid-column:1 / -1;
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    align-items:start;
    gap:26px;
}

.cpp-support-page-layout .cpp-support-admin-grid > .cpp-widget{
    height:100%;
}

.cpp-support-page-layout .cpp-support-form-section{
    scroll-margin-top:96px;
}

.cpp-support-page-layout .cpp-support-request-form{
    max-width:920px;
    margin-top:24px;
}


@media (max-width:1024px){
    .cpp-support-page-layout .cpp-support-admin-grid{
        grid-template-columns:repeat(1,minmax(0,1fr));
    }
    .cpp-support-form-section .cpp-support-form-grid {
        grid-template-columns: repeat(1, minmax(0, 1fr))!important;
    }
}

@media (max-width:1000px){

    .cpp-support-page-layout .cpp-support-page-layout,
   .cpp-support-page-layout  .cpp-support-admin-grid{
        grid-template-columns:1fr;
    }

    .cpp-support-page-layout .cpp-my-support-requests-section,
    .cpp-support-page-layout .cpp-resolved-support-section,
    .cpp-support-page-layout .cpp-support-form-section,
    .cpp-support-page-layout .cpp-support-admin-grid{
        grid-column:1;
    }

}

@media (max-width:600px){

    .cpp-support-page-layout .cpp-support-page-layout,
    .cpp-support-page-layout .cpp-support-admin-grid{
        gap:18px;
    }

    .cpp-support-page-layout .cpp-support-page-layout{
        margin-top:18px;
    }
    .cpp-support-page-layout .cpp-support-view-button,
    .cpp-support-page-layout .cpp-support-edit-link {
        flex: 0!important;
    }
    .cpp-support-page-layout .cpp-support-request-actions {
        align-items: flex-start;
        justify-content: flex-start;
    }

}

/* ==========================================
   Live Support Requests
========================================== */

.cpp-support-page-layout .cpp-support-count{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    padding:6px 11px;
    border:1px solid #dbe7ff;
    border-radius:999px;
    background:var(--cpp-primary-soft, #eef4ff);
    color:var(--cpp-primary, #1d4ed8);
    font-size:12px;
    font-weight:750;
    white-space:nowrap;
    text-transform: capitalize;
}

.cpp-support-page-layout .cpp-support-request-list,
.cpp-support-page-layout .cpp-support-admin-list{
    display:flex;
    flex-direction:column;
    gap: 6px;
}

.cpp-support-page-layout .cpp-support-request-card,
.cpp-support-page-layout .cpp-support-admin-card{
    display:flex;
    align-items:center;
    gap:18px;
    padding: 18px 15px;
    border: 1px solid #ced4da;
    border-radius: 8px;
    background-color: #fff;
    transition: background-color var(--cpp-transition), transform var(--cpp-transition);

}
.cpp-support-page-layout .cpp-support-request-card:hover,
.cpp-support-page-layout .cpp-support-admin-card:hover{
    transform: translateX(3px);
}

.cpp-support-page-layout .cpp-support-request-main,
.cpp-support-page-layout .cpp-support-admin-content{
    flex:1;
    min-width:0;
}

.cpp-support-page-layout .cpp-support-request-heading{
    display:flex;
    align-items:center;
    justify-content:flex-start;
    gap:18px;
}

.cpp-support-page-layout .cpp-support-request-heading h3{
    margin:0;
    color:var(--cpp-text-heading);
    font-size:16px;
    font-weight:730;
    line-height:1.35;
}

.cpp-support-page-layout .cpp-support-request-meta{
    display:flex;
    flex-wrap:wrap;
    gap:8px 22px;
    margin-top:10px;
    color:var(--cpp-text-muted, #8a94a6);
    font-size:13px;
    line-height:1.55;
}
.cpp-support-page-layout .cpp-support-request-meta span{ color: #6F2D96; }

.cpp-support-page-layout .cpp-support-request-meta strong{
    color:var(--cpp-text-body);
    font-weight:700;
}

.cpp-support-page-layout .cpp-support-status{
    display:inline-flex;
    align-items:center;
    padding:5px 10px;
    border:1px solid #dbe7ff;
    border-radius:999px;
    background:var(--cpp-info-bg, #eef4ff);
    color:var(--cpp-info, #1d4ed8);
    font-size:11px;
    font-weight:750;
    white-space:nowrap;
}

.cpp-support-page-layout .cpp-support-status[data-status="under-review"]{
    border-color:#fde7bd;
    background:var(--cpp-warning-bg, #fffbeb);
    color:var(--cpp-warning, #b45309);
}

.cpp-support-page-layout .cpp-support-status[data-status="resolved"],
.cpp-support-page-layout .cpp-support-status[data-status="closed"]{
    border-color:#cceede;
    background:var(--cpp-success-bg, #ecfdf5);
    color:var(--cpp-success, #047857);
}

.cpp-support-page-layout .cpp-support-edit-link{
    display:inline-flex;
    min-height:38px;
    align-items:center;
    justify-content:center;
    padding:8px 13px;
    border:1px solid #dbe7ff;
    border-radius:10px;
    background:#ffffff;
    color:var(--cpp-primary, #1d4ed8);
    text-decoration:none;
    font-size:11px;
    font-weight:700;
    white-space:nowrap;
    transition:
        background-color .18s ease,
        border-color .18s ease,
        transform .18s ease;
}

.cpp-support-page-layout .cpp-support-edit-link:hover,
.cpp-support-page-layout .cpp-support-edit-link:focus{
    border-color:#c8d9ff;
    background:var(--cpp-primary-soft, #eef4ff);
    color:var(--cpp-primary, #1d4ed8);
    transform:translateY(-1px);
}

.cpp-support-page-layout .cpp-support-section-footer{
    display:flex;
    justify-content:flex-start;
    margin-top:22px;
    padding-top:18px;
    border-top:1px solid var(--cpp-border-soft, #edf1f5);
}

.cpp-support-page-layout .cpp-support-view-all-link{
    display: inline-flex;
    width: 190px;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    padding: 10px 17px;
    border: 1px solid transparent;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    color: #ffffff;
    text-decoration: none;
    font-size: 12px;
    font-weight: 700;
    box-shadow: 0 8px 18px rgba(29, 78, 216, .2);
    transition: transform .18s ease, box-shadow .18s ease;
}

.cpp-support-page-layout .cpp-support-view-all-link:hover{
    color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 12px 24px rgba(29, 78, 216, .26);
}

/* ==========================================
   All Support Requests Archive
========================================== */

.cpp-dashboard .cpp-support-archive-layout{
    margin-top:26px;
}

@media (max-width:600px){

    .cpp-dashboard .cpp-support-archive-layout{
        margin-top:18px;
    }

}

@media (max-width:700px){

    .cpp-support-page-layout .cpp-support-request-card,
    .cpp-support-page-layout .cpp-support-admin-card{
        align-items:flex-start;
        flex-direction:column;
    }

    .cpp-support-page-layout .cpp-support-request-heading{
        align-items:flex-start;
        flex-direction:column;
        gap:10px;
    }

    .cpp-support-page-layout .cpp-support-request-meta{
        align-items:flex-start;
        flex-direction:column;
        gap:7px;
    }

    .cpp-support-page-layout .cpp-support-edit-link{
        width:100%;
    }

}

.cpp-support-edit-modal .cpp-support-edit-readonly-grid {
    display: grid;
    grid-template-columns:
        repeat(3, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 24px;
}

.cpp-support-edit-modal .cpp-support-edit-readonly {
    padding: 14px;
    border: 1px solid #ced4da;
    border-radius: 10px;
    background: #f5f3ff;
}

.cpp-support-edit-modal .cpp-support-edit-readonly span {
    display: block;
    margin-bottom: 5px;
    color: #64748b;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
}

.cpp-support-edit-modal .cpp-support-edit-readonly strong {
    color: #172033;
    font-size: 14px;
}

.cpp-support-edit-modal .cpp-support-edit-grid {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
    gap: 16px;
}

.cpp-support-edit-modal .cpp-support-edit-grid
.cpp-form-field-full {
    grid-column: 1 / -1;
}

.cpp-support-edit-modal .cpp-support-edit-grid label {
    display: block;
    margin-bottom: 7px;
    font-size: 14px;
    font-weight: 700;
}

.cpp-support-edit-modal .cpp-support-edit-grid input,
.cpp-support-edit-modal .cpp-support-edit-grid select{
    width: 100%;
    min-height: 45px;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    background: #fff;
    font-size: 16px;
    font: inherit;
    padding: 12px 14px;
    transition: border-color .2s ease, box-shadow .2s ease;
}

.cpp-support-edit-modal .cpp-support-edit-grid textarea {
    width: 100%;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    background: #fff;
    font-size: 16px;
    font: inherit;
    padding: 12px 14px;
    transition: border-color .2s ease, box-shadow .2s ease;
}
.cpp-support-edit-modal .cpp-support-edit-grid input:focus,
.cpp-support-edit-modal .cpp-support-edit-grid select:focus,
.cpp-support-edit-modal .cpp-support-edit-grid textarea:focus {
    outline: none;
    border-color: #6b3fc4;
    box-shadow: 0 0 0 3px rgba(107, 63, 196, .12);
}

.cpp-support-edit-modal .cpp-support-edit-actions {
    display: flex;
    justify-content: flex-end;
    gap: 10px;
    margin-top: 24px;
}

.cpp-support-edit-modal .cpp-support-edit-actions .cpp-primary-button {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    padding: 10px 17px;
    border: 1px solid transparent;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    color: #ffffff;
    text-decoration: none;
    font-size: 12px;
    font-weight: 700;
    text-transform: capitalize;
    box-shadow: 0 8px 18px rgba(29, 78, 216, .2);
    transition: transform .18s ease, box-shadow .18s ease;
}
.cpp-support-edit-modal .cpp-support-edit-actions .cpp-primary-button:hover,
.cpp-support-edit-modal .cpp-support-edit-actions .cpp-primary-button:focus {
    color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 12px 24px rgba(29, 78, 216, .26);
}

.cpp-support-edit-modal .cpp-support-edit-actions .cpp-secondary-button {
    appearance: none;
    display: inline-flex;
    min-height: 38px;
    align-items: center;
    justify-content: center;
    padding: 8px 13px;
    border: 1px solid #dbe7ff;
    border-radius: 10px;
    background: var(--cpp-primary-soft, #eef4ff);
    color: var(--cpp-primary, #1d4ed8);
    font: inherit;
    font-size: 12px;
    font-weight: 700;
    text-transform: capitalize;
    cursor: pointer;
    white-space: nowrap;
    text-decoration: none;
    transition: background-color .18s ease, border-color .18s ease, transform .18s ease;
}
.cpp-support-edit-modal .cpp-support-edit-actions .cpp-secondary-button:hover,
.cpp-support-edit-modal .cpp-support-edit-actions .cpp-secondary-button:focus {
        color: var(--cpp-primary, #1d4ed8);
    border-color: #c8d9ff;
    background: #ffffff !important;
    transform: translateY(-1px);
}

.cpp-support-edit-modal .cpp-support-edit-message {
    margin-bottom: 18px;
    padding: 12px 14px;
    border-radius: 8px;
    font-size: 12px;
}

.cpp-support-edit-modal .cpp-support-edit-message-success {
    background: #ecfdf3;
    color: #027a48;
}

.cpp-support-edit-modal .cpp-support-edit-message-error {
    background: #fef3f2;
    color: #b42318;
}

@media (max-width: 760px) {

    .cpp-support-edit-modal .cpp-support-edit-readonly-grid,
    .cpp-support-edit-modal .cpp-support-edit-grid {
        grid-template-columns: 1fr;
    }

   .cpp-support-edit-modal  .cpp-support-edit-grid
    .cpp-form-field-full {
        grid-column: auto;
    }

    .cpp-support-edit-modal .cpp-support-edit-actions {
        flex-direction: column-reverse;
    }

    .cpp-support-edit-modal .cpp-support-edit-actions button {
        width: 100%;
    }
}

/* ==========================================
   Support Request Details Modal
========================================== */

.cpp-support-page-layout .cpp-support-request-actions{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    flex-wrap:wrap;
    gap:10px;
}

.cpp-support-page-layout .cpp-support-view-button,
.cpp-support-page-layout .cpp-support-edit-button{
    appearance:none;
    display:inline-flex;
    min-height:38px;
    align-items:center;
    justify-content:center;
    padding:8px 13px;
    border:1px solid #dbe7ff;
    border-radius:10px;
    background:var(--cpp-primary-soft, #eef4ff);
    color:var(--cpp-primary, #1d4ed8);
    font:inherit;
    font-size:11px;
    font-weight:700;
    text-transform: capitalize;
    cursor:pointer;
    white-space:nowrap;
    transition:
        background-color .18s ease,
        border-color .18s ease,
        transform .18s ease;
}

.cpp-support-page-layout .cpp-support-view-button{
    border:1px solid #dbe7ff;
    background:var(--cpp-primary-soft, #eef4ff);
    color:var(--cpp-primary, #1d4ed8);
}
.cpp-support-page-layout .cpp-support-edit-button{
    color:var(--cpp-primary, #1d4ed8);
    border-color:#c8d9ff;
    background:#ffffff;
}

.cpp-support-page-layout .cpp-support-view-button:hover,
.cpp-support-page-layout .cpp-support-view-button:focus{
    color:var(--cpp-primary, #1d4ed8);
    border-color:#c8d9ff;
    background:#ffffff;
    transform:translateY(-1px);
}

.cpp-support-page-layout .cpp-support-edit-button:hover,
.cpp-support-page-layout .cpp-support-edit-button:focus{
    border:1px solid #dbe7ff;
    background:var(--cpp-primary-soft, #eef4ff);
    color:var(--cpp-primary, #1d4ed8);
    transform:translateY(-1px);
}

body.cpp-support-modal-open{
    overflow:hidden;
}

.cpp-dashboard-content .cpp-support-modal{
    position:fixed;
    inset:0;
    z-index:5000;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:24px;
}

.cpp-dashboard-content .cpp-support-modal[hidden]{
    display:none;
}

.cpp-dashboard-content .cpp-support-modal-backdrop{
    position:absolute;
    inset:0;
    background:rgba(15,23,42,.62);
    backdrop-filter:blur(4px);
}

.cpp-dashboard-content .cpp-support-modal-dialog{
    position:relative;
    z-index:1;
    width:min(760px,100%);
    max-height:calc(100vh - 48px);
    overflow-y:auto;
    border:1px solid var(--cpp-border, #e5eaf1);
    border-radius:22px;
    background:#ffffff;
    box-shadow:0 30px 80px rgba(15,23,42,.28);
}

.cpp-dashboard-content .cpp-support-modal-header{
    position:sticky;
    top:0;
    z-index:2;
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:20px;
    padding:24px 26px;
    border-bottom:1px solid var(--cpp-border-soft, #edf1f5);
    background:rgba(255,255,255,.96);
    backdrop-filter:blur(10px);
}

.cpp-dashboard-content .cpp-support-modal-eyebrow{
    display:block;
    margin-bottom:5px;
    color:var(--cpp-primary, #1d4ed8);
    font-size:11px;
    font-weight:750;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.cpp-dashboard-content .cpp-support-modal-header h2{
        margin: 0px;
    color: var(--cpp-text-heading);
    font-size: 26px;
    font-weight: 740;
    letter-spacing: -.025em;
    line-height: 1.3;
}

.cpp-dashboard-content .cpp-support-modal-close{
    appearance:none;
    width:40px;
    height:40px;
    display:flex;
    align-items:center;
    justify-content:center;
    flex-shrink:0;
    border:0;
    border-radius:10px;
    background:#f1f5f9;
    color:#475569;
    font-size:26px;
    line-height:1;
    cursor:pointer;
}

.cpp-dashboard-content .cpp-support-modal-body{
    padding:26px;
}

.cpp-dashboard-content .cpp-support-modal-summary{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:12px;
    margin-bottom:22px;
}

.cpp-dashboard-content .cpp-support-modal-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
}

.cpp-dashboard-content .cpp-support-modal-field{
    padding:15px;
    border:1px solid var(--cpp-border-soft, #edf1f5);
    border-radius:13px;
    background:#f5f3ff;
}

.cpp-dashboard-content .cpp-support-modal-field span{
    display:block;
    margin-bottom:5px;
    color:var(--cpp-text-muted, #8a94a6);
    font-size:12px;
    font-weight:700;
    text-transform:uppercase;
}

.cpp-dashboard-content .cpp-support-modal-field strong{
    display:block;
    color: #334155;
    font-size:15px;
    line-height:1.5;
}

.cpp-dashboard-content .cpp-support-modal-section{
        margin-top: 24px;
    padding: 15px;
    border: 1px solid var(--cpp-border-soft, #edf1f5);
    border-radius: 13px;
    background: #f5f3ff;
}

.cpp-dashboard-content .cpp-support-modal-section h3{
        display: block;
    margin-bottom: 5px;
    color: var(--cpp-text-muted, #8a94a6);
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
}

.cpp-dashboard-content .cpp-support-modal-section p{
        display: block;
    color: var(--cpp-text-heading);
    font-size: 16px;
    line-height: 1.5;
}

.cpp-dashboard-content .cpp-support-modal-loading,
.cpp-dashboard-content .cpp-support-modal-error{
    padding:32px 20px;
    border-radius:14px;
    text-align:center;
    font-size:14px;
}

.cpp-dashboard-content .cpp-support-modal-loading{
    background:#f8fafc;
    color:var(--cpp-text-muted, #8a94a6);
}

.cpp-dashboard-content .cpp-support-modal-error{
    border:1px solid #fed7d7;
    background:#fef2f2;
    color:#b91c1c;
}

.cpp-dashboard .cpp-support-status{
    display:inline-flex;
    align-items:center;
    padding:5px 10px;
    border:1px solid #dbe7ff;
    border-radius:999px;
    background:var(--cpp-info-bg, #eef4ff);
    color:var(--cpp-info, #1d4ed8);
    font-size:11px;
    font-weight:750;
    white-space:nowrap;
}

.cpp-dashboard .cpp-support-status[data-status="under-review"],
.cpp-dashboard .cpp-support-status[data-status="pending"],
.cpp-dashboard .cpp-support-status[data-status="investigating"]{
    border-color:#fde7bd;
    background:var(--cpp-warning-bg, #fffbeb);
    color:var(--cpp-warning, #b45309);
}

.cpp-dashboard .cpp-support-status[data-status="resolved"],
.cpp-dashboard .cpp-support-status[data-status="completed"],
.cpp-dashboard .cpp-support-status[data-status="closed"]{
    border-color:#cceede;
    background:var(--cpp-success-bg, #ecfdf5);
    color:var(--cpp-success, #047857);
}

.cpp-dashboard .cpp-support-status[data-status="rejected"],
.cpp-dashboard .cpp-support-status[data-status="cancelled"]{
    border-color:#fed7d7;
    background:var(--cpp-danger-bg, #fef2f2);
    color:var(--cpp-danger, #b91c1c);
}

@media (max-width:700px){

    .cpp-support-page-layout .cpp-support-request-actions{
        width:100%;
    }

    .cpp-support-page-layout .cpp-support-view-button,
    .cpp-support-page-layout .cpp-support-edit-link{
        flex:1;
    }

    .cpp-dashboard-content .cpp-support-modal{
        align-items:flex-end;
        padding:0;
    }

    .cpp-dashboard-content .cpp-support-modal-dialog{
        width:100%;
        max-height:92vh;
        border-radius:20px 20px 0 0;
    }

    .cpp-dashboard-content .cpp-support-modal-header,
    .cpp-dashboard-content .cpp-support-modal-body{
        padding:20px 18px;
    }

    .cpp-dashboard-content .cpp-support-modal-grid{
        grid-template-columns:1fr;
    }

}

/* ==========================================
   Support Request Form and Request Paths
========================================== */

.cpp-support-form-section .cpp-support-form-grid{
    display:grid;
    grid-template-columns:minmax(0,2fr) minmax(280px,340px);
    gap:28px;
    align-items:start;
    margin-top:0px;
}

.cpp-support-form-grid .cpp-support-form-column{
    min-width:0;
}

.cpp-support-form-grid .cpp-request-paths{
    position:sticky;
    top:100px;
    min-width:0;
    padding:26px;
    border:1px solid var(--cpp-border, #e5eaf1);
    border-radius:18px;
    background: linear-gradient(135deg, #30136c, #7134bd);
    box-shadow:0 14px 32px rgba(15,23,42,.06);
}

.cpp-support-form-grid .cpp-request-paths-heading h3{
    margin:0;
    color:#fff;
    font-size:23px;
    font-weight:780;
    letter-spacing:-.025em;
    line-height:1.2;
    text-transform:uppercase;
}

.cpp-support-form-grid .cpp-request-paths-heading p{
    margin:13px 0 0;
    color:#fff;
    font-size:14px;
    line-height:1.65;
}

.cpp-support-form-grid .cpp-request-path-list{
    margin:24px 0 0;
    padding:0;
    list-style:none;
}

.cpp-support-form-grid .cpp-request-path-list li{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    padding:17px 0;
    border-bottom:1px solid var(--cpp-border-soft, #edf1f5);
}

.cpp-support-form-grid .cpp-request-path-list li:first-child{
    padding-top:0;
}

.cpp-support-form-grid .cpp-request-path-list li:last-child{
    padding-bottom:0;
    border-bottom:0;
}

.cpp-support-form-grid .cpp-request-path-name{
    min-width:0;
    color:#fff;
    font-size:14px;
    font-weight:650;
    line-height:1.4;
}

.cpp-support-form-grid .cpp-request-badge{
    display:inline-flex;
    min-height:32px;
    align-items:center;
    justify-content:center;
    flex-shrink:0;
    padding:7px 12px;
    border:1px solid transparent;
    border-radius:999px;
    font-size:10px;
    font-weight:800;
    letter-spacing:.035em;
    line-height:1;
    text-transform:uppercase;
    white-space:nowrap;
}

.cpp-support-form-grid .cpp-request-badge-prayer{
    border-color:#e8ddff;
    background:#f5f0ff;
    color:#6d28d9;
}

.cpp-support-form-grid .cpp-request-badge-pastor{
    border-color:#dbe7ff;
    background:#eef4ff;
    color:#1d4ed8;
}

.cpp-support-form-grid .cpp-request-badge-tech{
    border-color:#cceff4;
    background:#ecfeff;
    color:#0e7490;
}

.cpp-support-form-grid .cpp-request-badge-admin{
    border-color:#fde7bd;
    background:#fffbeb;
    color:#b45309;
}

.cpp-support-form-grid .cpp-request-badge-staff{
    border-color:#cceede;
    background:#ecfdf5;
    color:#047857;
}

@media (max-width:1100px){

    .cpp-support-form-section .cpp-support-form-grid{
        grid-template-columns:minmax(0,1.6fr) minmax(260px,310px);
        gap:22px;
    }

}

@media (max-width:900px){

    .cpp-support-form-section .cpp-support-form-grid{
        grid-template-columns:1fr;
    }

    .cpp-support-form-grid .cpp-request-paths{
        position:static;
    }

}

@media (max-width:600px){

    .cpp-support-form-section .cpp-support-form-grid{
        gap:18px;
        margin-top:18px;
    }

    .cpp-support-form-grid .cpp-request-paths{
        padding:21px 18px;
        border-radius:15px;
    }

    .cpp-support-form-grid .cpp-request-paths-heading h3{
        font-size:20px;
    }

    .cpp-support-form-grid .cpp-request-path-list li{
        align-items:flex-start;
        gap:12px;
    }

    .cpp-support-form-grid .cpp-request-badge{
        padding:7px 10px;
        font-size:9px;
    }

}

@media (prefers-reduced-motion: reduce){

    .cpp-support-form-grid .cpp-request-paths{
        scroll-behavior:auto;
    }

}

/* ==========================================
   My Profile Portal Page
========================================== */

.cpp-dashboard .cpp-profile-page-layout{
    display:grid;
    gap:26px;
    margin-top:26px;
}

.cpp-profile-page-layout .cpp-profile-notice{
    padding:15px 18px;
    border:1px solid;
    border-radius:13px;
    font-size:14px;
    font-weight:600;
    line-height:1.55;
}

.cpp-profile-page-layout .cpp-profile-notice-success{
    border-color:#cceede;
    background:#ecfdf5;
    color:#047857;
}

.cpp-profile-page-layout .cpp-profile-notice-error{
    border-color:#fed7d7;
    background:#fef2f2;
    color:#b91c1c;
}

.cpp-profile-page-layout .cpp-profile-notice-warning{
    border-color:#fde7bd;
    background:#fffbeb;
    color:#b45309;
}

.cpp-profile-page-layout .cpp-profile-notice-info{
    border-color:#dbe7ff;
    background:#eef4ff;
    color:#1d4ed8;
}

.cpp-profile-page-layout .cpp-profile-summary{
    display:flex;
    align-items:center;
    gap:24px;
}

.cpp-profile-page-layout .cpp-profile-avatar{
    flex-shrink:0;
}

.cpp-profile-page-layout .cpp-profile-avatar-image{
    display:block;
    width:112px;
    height:112px;
    object-fit:cover;
    border:4px solid #ffffff;
    border-radius:50%;
    box-shadow:0 10px 26px rgba(15,23,42,.14);
}

.cpp-profile-page-layout .cpp-profile-summary-copy h2{
    margin:0;
    color:var(--cpp-text-heading);
    font-size:26px;
    font-weight:780;
}

.cpp-profile-page-layout .cpp-profile-summary-copy p{
    margin:7px 0;
    color: var(--cpp-text-body);
    font-size:14px;
}

.cpp-profile-page-layout .cpp-profile-summary-copy a{
    color:var(--cpp-primary, #1d4ed8);
    font-size:14px;
    font-weight:650;
    text-decoration:none;
}

.cpp-profile-page-layout .cpp-profile-ministry-badge{
    display:inline-flex;
    align-items:center;
    margin:2px 0 9px 7px;
    padding:5px 10px;
    border:1px solid #cceede;
    border-radius:999px;
    background:#ecfdf5;
    color:#047857;
    font-size:11px;
    font-weight:750;
}

.cpp-profile-page-layout .cpp-profile-form-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    align-items:start;
    gap:26px;
}

.cpp-profile-page-layout .cpp-profile-card-heading{
    display:flex;
    align-items:center;
    gap:14px;
}

.cpp-profile-page-layout .cpp-profile-card-icon{
    width:44px;
    height:44px;
    display:flex;
    align-items:center;
    justify-content:center;
    flex-shrink:0;
    border-radius:12px;
        background: #5925dc;
    color: #fff;
}

.cpp-profile-page-layout .cpp-profile-card-icon svg{
    width:22px;
    height:22px;
}

.cpp-profile-page-layout .cpp-profile-form{
    display:grid;
    gap:18px;
    margin-top:24px;
}

.cpp-profile-page-layout .cpp-profile-fields-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px;
}

.cpp-profile-page-layout .cpp-profile-field{
    min-width:0;
}

.cpp-profile-page-layout .cpp-profile-field label{
    display:block;
    margin-bottom:7px;
    color:var(--cpp-text-heading);
    font-size:14px;
    font-weight:700;
}

.cpp-profile-page-layout .cpp-profile-field input{
    width: 100%;
    min-height: 50px;
    padding: 11px 13px;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    background: #fff;
    font: inherit;
    transition: border-color .2s ease, box-shadow .2s ease;
}

.cpp-profile-page-layout .cpp-profile-field select{
    width: 100%;
    min-height: 45px;
    padding: 11px 13px;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    background: #fff;
    font: inherit;
    transition: border-color .2s ease, box-shadow .2s ease;
}

.cpp-profile-page-layout .cpp-profile-field input:focus{
    outline: none;
    border-color: #6b3fc4 !important;
    box-shadow: 0 0 0 3px rgba(107, 63, 196, .12);
}

.cpp-profile-page-layout .cpp-profile-field select:focus{
    outline: none;
    border-color: #6b3fc4 !important;
    box-shadow: 0 0 0 3px rgba(107, 63, 196, .12);
}

.cpp-profile-page-layout .cpp-profile-field input:disabled{
    background:#f1f5f9;
    color:#64748b;
    cursor:not-allowed;
}

.cpp-profile-page-layout .cpp-profile-field small{
    display:block;
    margin-top:6px;
    color:var(--cpp-text-muted, #8a94a6);
    font-size:11px;
}

.cpp-profile-page-layout .cpp-password-input-wrapper{
    position:relative;
}

.cpp-profile-page-layout .cpp-password-input-wrapper input{
    padding-right:72px;
}

.cpp-profile-page-layout .cpp-password-toggle{
    position:absolute;
    top:50%;
    right:7px;
    min-width:54px;
    min-height:34px;
    border:0;
    border-radius:8px;
    background:#f1f5f9;
    color:#475569;
    font:inherit;
    font-size:12px;
    font-weight:700;
    cursor:pointer;
    transform:translateY(-50%);
}

.cpp-profile-page-layout .cpp-password-requirements{
    padding:17px 18px;
    border:1px solid #ced4da;
    border-radius:13px;
    background:#f8fafc;
}

.cpp-profile-page-layout .cpp-password-requirements h3{
    margin:0 0 10px;
    color:var(--cpp-text-heading);
    font-size: 14px;
    font-weight: 600;
}

.cpp-profile-page-layout .cpp-password-requirements ul{
    display:grid;
    gap:7px;
    margin:0;
    padding:0;
    list-style:none;
}

.cpp-profile-page-layout .cpp-password-requirements li{
    position:relative;
    padding-left:20px;
    color:#64748b;
    font-size:13px;
}

.cpp-profile-page-layout .cpp-password-requirements li::before{
    content:"○";
    position:absolute;
    left:0;
}

.cpp-profile-page-layout .cpp-password-requirements
.cpp-profile-page-layout .cpp-password-rule-valid{
    color:#047857;
}

.cpp-profile-page-layout .cpp-password-requirements
.cpp-profile-page-layout .cpp-password-rule-valid::before{
    content:"✓";
}

.cpp-profile-page-layout .cpp-password-requirements
.cpp-profile-page-layout .cpp-password-rule-invalid{
    color:#b91c1c;
}

.cpp-profile-page-layout .cpp-password-requirements
.cpp-profile-page-layout .cpp-password-rule-invalid::before{
    content:"×";
}

.cpp-profile-page-layout .cpp-profile-actions{
    display:flex;
    justify-content:flex-end;
    padding-top:4px;
}

.cpp-profile-form .cpp-profile-actions button {
display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    padding: 10px 17px;
    border: 1px solid transparent;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    color: #ffffff;
    text-decoration: none;
    font-size: 14px;
    font-weight: 700;
    box-shadow: 0 8px 18px rgba(29, 78, 216, .2);
    transition: transform .18s ease, box-shadow .18s ease;
}
.cpp-profile-form .cpp-profile-actions button:hover {
color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 12px 24px rgba(29, 78, 216, .26);
}

@media (max-width:1000px){

    .cpp-profile-page-layout .cpp-profile-form-grid{
        grid-template-columns:1fr;
    }

}

@media (max-width:700px){

    .cpp-dashboard .cpp-profile-page-layout{
        gap:18px;
        margin-top:18px;
    }

    .cpp-profile-page-layout .cpp-profile-summary{
        align-items:flex-start;
        flex-direction:column;
    }

    .cpp-profile-page-layout .cpp-profile-avatar-image{
        width:88px;
        height:88px;
    }

    .cpp-profile-page-layout .cpp-profile-fields-grid{
        grid-template-columns:1fr;
    }

    .cpp-profile-page-layout .cpp-profile-actions
    .cpp-profile-page-layout .cpp-primary-button{
        width:100%;
    }

}

/* ==========================================
   My Profile — Account Information
========================================== */

.cpp-profile-page-layout .cpp-profile-account-info{
    overflow:hidden;
}

.cpp-profile-page-layout .cpp-profile-info-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:14px;
    margin-top:22px;
}

.cpp-profile-page-layout .cpp-profile-info-item{
    min-width:0;
    padding:16px;
    border:1px solid #ced4da;
    border-radius:13px;
    background:#fff;
    transition: transform 0.18s ease, border-color 0.18s ease, background 0.18s ease, box-shadow 0.18s ease;
}
.cpp-profile-page-layout .cpp-profile-info-item:hover{
        transform: translateY(-1px);
    border-color: #6F2D96;
    background: #ffffff;
    box-shadow: 0 6px 18px rgba(31, 37, 46, 0.07);
}

.cpp-profile-page-layout .cpp-profile-info-label{
    display:block;
    margin-bottom:6px;
    color: var(--cpp-text-body);
    font-size:12px;
    font-weight:750;
    letter-spacing:.035em;
    text-transform:uppercase;
}

.cpp-profile-page-layout .cpp-profile-info-value{
    display:block;
    overflow-wrap:anywhere;
    color:var(--cpp-text-heading,#172033);
    font-size:14px;
    font-weight:700;
    line-height:1.45;
}

.cpp-profile-page-layout .cpp-profile-role-badge{
    display:inline-flex;
    align-items:center;
    margin:2px 0 9px;
    padding:5px 10px;
    border:1px solid #dbe7ff;
    border-radius:999px;
    background:var(--cpp-primary-soft,#eef4ff);
    color:var(--cpp-primary,#1d4ed8);
    font-size:11px;
    font-weight:750;
}

@media (max-width:1100px){

    .cpp-profile-page-layout .cpp-profile-info-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

}

@media (max-width:600px){

    .cpp-profile-page-layout .cpp-profile-info-grid{
        grid-template-columns:1fr;
    }

    .cpp-profile-page-layout .cpp-profile-info-item{
        padding:14px;
    }

}

/* ==========================================
   Shared Member Avatar
========================================== */

.cpp-dashboard .cpp-avatar{
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:50%;
    color:#fff;
    font-weight:800;
    letter-spacing:.04em;
    user-select:none;
    box-shadow:
        0 8px 24px rgba(15,23,42,.14);
    flex-shrink:0;
    border-radius: 50%;
    position: relative;
    overflow: hidden;
}

.cpp-dashboard .cpp-avatar-male{
    background:#2563EB;
}

.cpp-dashboard .cpp-avatar-female{
    background:#EC4899;
}

.cpp-dashboard .cpp-avatar-default{
    background:#64748B;
}

/* ==========================================
   Shared Portal Badges
========================================== */

.cpp-dashboard .cpp-portal-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:26px;
    padding:5px 10px;
    border:1px solid #dbe7ff;
    border-radius:999px;
    background:#eef4ff;
    color:#1d4ed8;
    font-size:12px;
    font-weight:750;
    line-height:1;
    white-space:nowrap;
}

/* Neutral */

.cpp-dashboard .cpp-portal-badge-default,
.cpp-dashboard .cpp-portal-badge-unknown{
    border-color:#e2e8f0;
    background:#f8fafc;
    color:#64748b;
}

/* Pending / Submitted */

.cpp-dashboard .cpp-portal-badge-pending,
.cpp-dashboard .cpp-portal-badge-pending-approval,
.cpp-dashboard .cpp-portal-badge-submitted{
    border-color:#fde7bd;
    background:#fffbeb;
    color:#b45309;
}

/* Review */

.cpp-dashboard .cpp-portal-badge-under-review,
.cpp-dashboard .cpp-portal-badge-investigating{
    border-color:#fed7aa;
    background:#fff7ed;
    color:#c2410c;
}

/* Success */

.cpp-dashboard .cpp-portal-badge-approved,
.cpp-dashboard .cpp-portal-badge-resolved,
.cpp-dashboard .cpp-portal-badge-completed,
.cpp-dashboard .cpp-portal-badge-active{
    border-color:#cceede;
    background:#ecfdf5;
    color:#047857!important;
}

/* Closed */

.cpp-dashboard .cpp-portal-badge-closed{
    border-color:#d8dbe2;
    background:#f3f4f6;
    color:#4b5563;
}

/* Error / Rejected */

.cpp-dashboard .cpp-portal-badge-rejected,
.cpp-dashboard .cpp-portal-badge-denied,
.cpp-dashboard .cpp-portal-badge-cancelled,
.cpp-dashboard .cpp-portal-badge-inactive{
    border-color:#fed7d7;
    background:#fef2f2;
    color:#b91c1c;
}

/* Information */

.cpp-dashboard .cpp-portal-badge-info{
    border-color:#dbe7ff;
    background:#eef4ff;
    color:#1d4ed8;
}

/* ==========================================
   Members Page
========================================== */

.cpp-dashboard .cpp-members-page-layout{
    display:grid;
    gap:26px;
    margin-top:26px;
}

.cpp-members-page-layout .cpp-members-stat-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:22px;
}

.cpp-members-page-layout .cpp-member-stat-card{
    position:relative;
    overflow:hidden;
}

.cpp-members-page-layout .cpp-member-stat-label{
    display:block;
    color: #172033;
    font-size:14px;
    font-weight:700;
}

.cpp-members-page-layout .cpp-member-counter{
    display:block;
    margin-top:10px;
    color: #6F2D96;
    font-size:42px;
    font-weight:800;
    letter-spacing:-.04em;
    line-height:1;
}

.cpp-members-page-layout .cpp-member-stat-card::after{
    content:"";
    position:absolute;
    top:-45px;
    right:-45px;
    width:130px;
    height:130px;
    border-radius:50%;
    background:var(--cpp-primary-soft,#eef4ff);
    opacity:.75;
    pointer-events:none;
}

.cpp-members-page-layout .cpp-members-directory{
    min-width:0;
}

.cpp-members-page-layout .cpp-member-view-button{
    appearance:none;
    display:inline-flex;
    min-height:38px;
    align-items:center;
    justify-content:center;
    padding:8px 13px;
    border:1px solid #dbe7ff;
    border-radius:10px;
    background:var(--cpp-primary-soft,#eef4ff);
    color:var(--cpp-primary,#1d4ed8);
    font:inherit;
    font-size:12px;
    font-weight:700;
    cursor:pointer;
}

.cpp-members-page-layout .cpp-member-view-button:hover,
.cpp-members-page-layout .cpp-member-view-button:focus{
    border-color: #c8d9ff;
    background: #fff !important;
    color: var(--cpp-primary, #1d4ed8);
    transform: translateY(-1px);
}

.cpp-members-page-layout .cpp-member-edit-link{
    display:inline-flex;
    min-height:38px;
    align-items:center;
    justify-content:center;
    padding:8px 13px;
    border:1px solid #e2e8f0;
    border-radius:10px;
    background:#fff;
    color:#475569;
    text-decoration:none;
    font-size:12px;
    font-weight:700;
}

/* ==========================================
   Member Details Modal
========================================== */

body.cpp-member-modal-open{
    overflow:hidden;
}

.cpp-dashboard .cpp-member-modal{
    position:fixed;
    inset:0;
    z-index:5000;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:24px;
}

.cpp-dashboard .cpp-member-modal[hidden]{
    display:none;
}

.cpp-dashboard .cpp-member-modal-backdrop{
    position:absolute;
    inset:0;
    background:rgba(15,23,42,.62);
    backdrop-filter:blur(4px);
}

.cpp-dashboard .cpp-member-modal-dialog{
    position:relative;
    z-index:1;
    width:min(760px,100%);
    max-height:calc(100vh - 48px);
    overflow-y:auto;
    border:1px solid var(--cpp-border,#e5eaf1);
    border-radius:22px;
    background:#fff;
    box-shadow:0 30px 80px rgba(15,23,42,.28);
}

.cpp-dashboard .cpp-member-modal-header{
    position:sticky;
    top:0;
    z-index:2;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    padding:24px 26px;
    border-bottom:1px solid var(--cpp-border-soft,#edf1f5);
    background:rgba(255,255,255,.96);
    backdrop-filter:blur(10px);
}

.cpp-dashboard .cpp-member-modal-header h2{
        margin: 0px;
    color: var(--cpp-text-heading);
    font-size: 26px;
    font-weight: 740;
    letter-spacing: -.025em;
    line-height: 1.3;
}

.cpp-dashboard .cpp-member-modal-close{
    appearance:none;
    width:40px;
    height:40px;
    display:flex;
    align-items:center;
    justify-content:center;
    border:0;
    border-radius:10px;
    background:#f1f5f9;
    color:#475569;
    font-size:26px;
    cursor:pointer;
}

.cpp-dashboard .cpp-member-modal-body{
    padding:26px;
}

.cpp-dashboard .cpp-member-modal-profile{
    display:flex;
    align-items:center;
    gap:20px;
    margin-bottom:24px;
}

.cpp-dashboard .cpp-member-modal-avatar{
    width:82px;
    height:82px;
    font-size:27px;
}

.cpp-dashboard  .cpp-member-modal-avatar-image {
    display: block;
    width: 96px;
    height: 96px;
    flex: 0 0 96px;
    object-fit: cover;
    border-radius: 50%;
    border: 3px solid #ffffff;
    box-shadow:
        0 4px 14px
        rgba(15, 23, 42, 0.12);
}

.cpp-dashboard .cpp-member-modal-profile-copy h3{
    margin:0;
    color: var(--cpp-text-heading);
    font-size: 22px;
    font-weight: 740;
    letter-spacing: -.025em;
    line-height: 1.3;
    text-transform: capitalize;
}

.cpp-dashboard .cpp-member-modal-profile-copy p{
    margin:6px 0 10px;
    color:var(--cpp-text-muted,#8a94a6);
    font-size:13px;
}

.cpp-dashboard .cpp-member-modal-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:14px;
}

.cpp-dashboard .cpp-member-modal-field{
    padding:15px;
    border:1px solid #ced4da;
    border-radius:13px;
    background:#f5f3ff;
}

.cpp-dashboard .cpp-member-modal-field span{
    display:block;
    margin-bottom:5px;
    color:var(--cpp-text-muted,#8a94a6);
    font-size:12px;
    font-weight:700;
    text-transform:uppercase;
}

.cpp-dashboard .cpp-member-modal-field strong{
    display:block;
    overflow-wrap:anywhere;
    color: #334155;
    font-size:15px;
}

.cpp-dashboard .cpp-member-modal-loading,
.cpp-dashboard .cpp-member-modal-error{
    padding:32px 20px;
    border-radius:14px;
    text-align:center;
    font-size:14px;
}

.cpp-dashboard .cpp-member-modal-loading{
    background:#f8fafc;
    color:#64748b;
}

.cpp-dashboard .cpp-member-modal-error{
    border:1px solid #fed7d7;
    background:#fef2f2;
    color:#b91c1c;
}

@media (max-width:800px){

    .cpp-members-page-layout .cpp-members-stat-grid{
        grid-template-columns:1fr;
    }

}

@media (max-width:700px){

    .cpp-dashboard .cpp-member-modal{
        align-items:flex-end;
        padding:20px;
    }

    .cpp-dashboard .cpp-member-modal-dialog{
        width:100%;
        max-height:92vh;
        border-radius:20px 20px 0 0;
    }

    .cpp-dashboard .cpp-member-modal-header,
    .cpp-dashboard .cpp-member-modal-body{
        padding:20px 18px;
    }

    .cpp-dashboard .cpp-member-modal-grid{
        grid-template-columns:1fr;
    }

    .cpp-dashboard .cpp-member-modal-profile{
        align-items:flex-start;
    }

}

@media (max-width:600px){

    .cpp-dashboard .cpp-members-page-layout{
        gap:18px;
        margin-top:18px;
    }

    .cpp-members-page-layout .cpp-member-counter{
        font-size:36px;
    }

}

/* ==========================================
   Members Overview
========================================== */

.cpp-members-page-layout .cpp-members-overview-grid{
    display:grid;
    grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);
    gap:22px;
    align-items:start;
    margin-top: 20px;
}

/* Recently Registered Members */

.cpp-members-page-layout .cpp-recent-member-list{
    display:flex;
    flex-direction:column;
    margin-top:6px;
    gap: 6px;
}

.cpp-members-page-layout .cpp-recent-member-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    padding: 18px 15px;
    border: 1px solid #ced4da;
    border-radius: 8px;
    background-color: #fff;
    transition: background-color var(--cpp-transition), transform var(--cpp-transition);
}
.cpp-members-page-layout .cpp-recent-member-row:hover{
    transform: translateX(3px);
}

.cpp-members-page-layout .cpp-recent-member-identity{
    display:flex;
    align-items:center;
    min-width:0;
    gap:13px;
}

.cpp-members-page-layout .cpp-recent-member-copy{
    min-width:0;
}

.cpp-members-page-layout .cpp-recent-member-copy h3{
    margin:0;
    overflow:hidden;
    color:var(--cpp-text-heading,#172033);
    font-size:16px;
    font-weight:730;
    line-height:1.35;
    text-overflow:ellipsis;
    text-transform: capitalize;
    white-space:nowrap;
}

.cpp-members-page-layout .cpp-recent-member-copy p{
    margin:5px 0 0;
    color:var(--cpp-text-muted,#8a94a6);
    font-size:14px;
    line-height:1.45;
}

.cpp-members-page-layout .cpp-recent-member-actions{
    display:flex;
    align-items:center;
    flex-shrink:0;
    gap:9px;
}

.cpp-members-page-layout .cpp-member-view-button-small{
    min-height:32px;
    padding:6px 10px;
    font-size:11px;
    text-transform: capitalize;
}


/* ==========================================
   Member Status Summary
========================================== */

.cpp-members-page-layout .cpp-member-status-list{
    display:flex;
    flex-direction:column;
    margin-top:6px;
}

.cpp-members-page-layout .cpp-member-status-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    padding:15px 0;
    border-bottom:1px solid var(--cpp-border-soft,#edf1f5);
}

.cpp-members-page-layout .cpp-member-status-row:first-child{
    padding-top:4px;
}

.cpp-members-page-layout .cpp-member-status-main{
    display:flex;
    align-items:center;
    min-width:0;
    gap:10px;
}

.cpp-members-page-layout .cpp-member-status-percentage{
    color:var(--cpp-text-muted,#8a94a6);
    font-size:14px;
    font-weight:650;
}

.cpp-members-page-layout .cpp-member-status-count{
    color:var(--cpp-text-heading,#172033);
    font-size:20px;
    font-weight:800;
    line-height:1;
}

.cpp-members-page-layout .cpp-member-status-total{
    display:flex;
    align-items:center;
    justify-content:space-between;
    margin-top:15px;
    padding:15px 16px;
        border: 1px solid #ced4da;
    border-radius: 12px;
    background: #f9fafb;
}

.cpp-members-page-layout .cpp-member-status-total span{
    color:var(--cpp-primary,#1d4ed8);
    font-size:14px;
    font-weight:750;
    text-transform:uppercase;
    letter-spacing:.035em;
}

.cpp-members-page-layout .cpp-member-status-total strong{
    color:var(--cpp-primary,#1d4ed8);
    font-size:22px;
    font-weight:800;
}


/* Responsive */

@media (max-width:1050px){

    .cpp-members-page-layout .cpp-members-overview-grid{
        grid-template-columns:1fr;
    }

}

@media (max-width:700px){

    .cpp-members-page-layout .cpp-recent-member-row{
        align-items:flex-start;
        flex-direction:column;
    }

    .cpp-members-page-layout .cpp-recent-member-actions{
        width:auto;
        justify-content:space-between;
        padding-left:59px;
    }

}

@media (max-width:500px){

    .cpp-members-page-layout .cpp-recent-member-actions{
        padding-left:0;
    }

    .cpp-members-page-layout .cpp-recent-member-identity{
        align-items:flex-start;
    }

}

/* =========================================================
   Members — User Roles Overview
   ========================================================= */

.cpp-members-page-layout .cpp-members-role-overview{
    margin-top:20px;
}

.cpp-members-page-layout .cpp-members-role-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:14px;
    margin-top:18px;
}

.cpp-members-page-layout .cpp-members-role-card{
    display:flex;
    align-items:center;
    flex-direction:column;
    justify-content:center;
    min-width:0;
    padding:18px 12px;
    border:1px solid #ced4da;
    border-radius:12px;
    background:#fff;
    text-align:center;
    transition: transform .18s ease, border-color .18s ease, background-color .18s ease, color .18s ease;
}
.cpp-members-page-layout .cpp-members-role-card:hover{
    border-color: #6F2D96;
    transform: translateY(-2px);
}

.cpp-members-page-layout .cpp-members-role-number{
    color: #6F2D96;
    font-size:26px;
    font-weight:800;
    line-height:1;
}

.cpp-members-page-layout .cpp-members-role-label{
    margin-top:8px;
    color: #172033;
    font-size:14px;
    font-weight:700;
    line-height:1.35;
}


@media (max-width:1100px){

    .cpp-members-page-layout .cpp-members-role-grid{
        grid-template-columns:
            repeat(3,minmax(0,1fr));
    }

}

@media (max-width:800px){

    .cpp-members-page-layout .cpp-members-role-grid{
        grid-template-columns:
            repeat(2,minmax(0,1fr));
    }

}

@media (max-width:480px){

    .cpp-members-page-layout .cpp-members-role-grid{
        grid-template-columns:1fr;
    }

    .cpp-members-page-layout .cpp-members-role-card{
        align-items:center;
        flex-direction:row;
        justify-content:space-between;
        text-align:left;
    }

    .cpp-members-page-layout .cpp-members-role-label{
        margin-top:0;
    }

}

/* ==========================================
   Member Approval Actions
========================================== */

.cpp-members-page-layout .cpp-member-approval-button{
    appearance:none;
    display:inline-flex;
    min-height:32px;
    align-items:center;
    justify-content:center;
    padding:8px 13px;
    border:1px solid transparent;
    border-radius:10px;
    font:inherit;
    font-size:11px;
    font-weight:700;
    text-transform: capitalize;
    cursor:pointer;
    white-space:nowrap;
    transition:
        background-color .18s ease,
        border-color .18s ease,
        transform .18s ease;
}

.cpp-members-page-layout .cpp-member-approve-button{
    border-color:#cceede;
    background:#ecfdf5;
    color:#047857;
}

.cpp-members-page-layout .cpp-member-approve-button:hover{
    color:#047857;
    border-color:#86d8b3;
    background:#fff;
    transform:translateY(-1px);
}

.cpp-members-page-layout .cpp-member-reject-button{
    border-color:#fed7d7;
    background:#fef2f2;
    color:#b91c1c;
}

.cpp-members-page-layout .cpp-member-reject-button:hover{
    border-color:#fca5a5;
    background:#fee2e2;
    transform:translateY(-1px);
}

.cpp-members-page-layout .cpp-member-approval-button:disabled{
    opacity:.55;
    cursor:wait;
    transform:none;
}

@media (max-width:700px){

    .cpp-members-page-layout .cpp-archive-actions{
        align-items:stretch;
        flex-wrap:wrap;
    }

    .cpp-members-page-layout .cpp-member-view-button,
    .cpp-members-page-layout .cpp-member-edit-link,
    .cpp-members-page-layout .cpp-member-approval-button{
        flex:1;
    }

}

/* ==========================================
   Member Account Controls
========================================== */

.cpp-member-modal .cpp-member-account-controls{
    margin-top:26px;
    padding-top:24px;
    border-top:1px solid var(--cpp-border-soft,#edf1f5);
}

.cpp-member-modal .cpp-member-account-controls-heading{
    margin-bottom:18px;
}

.cpp-member-modal .cpp-member-account-controls-heading h3{
    margin:0;
    color:var(--cpp-text-heading,#172033);
    font-size:16px;
    font-weight:750;
}

.cpp-member-modal .cpp-member-account-controls-heading p{
    margin:6px 0 0;
    color:var(--cpp-text-muted,#8a94a6);
    font-size:13px;
    line-height:1.5;
}

.cpp-member-modal .cpp-member-role-control label{
    display:block;
    margin-bottom:7px;
    color:var(--cpp-text-heading,#172033);
    font-size:12px;
    font-weight:700;
}

.cpp-member-modal .cpp-member-role-control-row{
    display:flex;
    align-items:center;
    gap:10px;
}

.cpp-member-modal .cpp-member-role-select{
    flex:1;
    min-width:0;
    min-height:42px;
    padding:8px 34px 8px 11px;
    border:1px solid var(--cpp-border,#e5eaf1);
    border-radius:10px;
    background:#fff;
    color:var(--cpp-text-heading,#172033);
    font:inherit;
    font-size:13px;
}

.cpp-member-modal .cpp-member-role-save {
        display: inline-flex;
    width: 190px;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    padding: 10px 17px;
    border: 1px solid transparent;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    color: #ffffff;
    text-decoration: none;
    font-size: 12px;
    font-weight: 700;
    box-shadow: 0 8px 18px rgba(29, 78, 216, .2);
    transition: transform .18s ease, box-shadow .18s ease;
}
.cpp-member-modal .cpp-member-role-save:hover,
.cpp-member-modal .cpp-member-role-save:focus {
    color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 12px 24px rgba(29, 78, 216, .26);
}

.cpp-member-modal .cpp-member-account-button{
    appearance:none;
    display:inline-flex;
    min-height:42px;
    align-items:center;
    justify-content:center;
    padding:9px 14px;
    border:1px solid transparent;
    border-radius:10px;
    font:inherit;
    font-size:12px;
    font-weight:700;
    cursor:pointer;
    white-space:nowrap;
}

.cpp-member-modal .cpp-member-account-status-control{
    margin-top:18px;
    padding-top:18px;
    border-top:1px solid var(--cpp-border-soft,#edf1f5);
}

.cpp-member-modal .cpp-member-deactivate-button{
    border-color:#fed7d7;
    background:#fef2f2;
    color:#b91c1c;
}

.cpp-member-modal .cpp-member-reactivate-button{
    border-color:#cceede;
    background:#ecfdf5;
    color:#047857;
}

.cpp-member-modal .cpp-member-role-save:disabled,
.cpp-member-modal .cpp-member-account-button:disabled{
    opacity:.55;
    cursor:wait;
}

.cpp-member-modal .cpp-member-account-restricted{
    margin-top:24px;
    padding:14px 16px;
    border:1px solid #fde7bd;
    border-radius:12px;
    background:#fffbeb;
    color:#92400e;
    font-size:13px;
    line-height:1.55;
}

@media (max-width:600px){

    .cpp-member-modal .cpp-member-role-control-row{
        align-items:stretch;
        flex-direction:column;
    }

    .cpp-member-modal .cpp-member-role-save,
    .cpp-member-modal .cpp-member-account-button{
        width:100%;
    }

}

/* ==========================================
   Administrator User Profile
========================================== */

.cpp-dashboard .cpp-member-profile-page-layout{
    display:grid;
    gap:26px;
    margin-top:26px;
}

.cpp-member-profile-page-layout .cpp-member-profile-summary{
    display:flex;
    align-items:center;
    gap:24px;
}

.cpp-member-profile-page-layout .cpp-member-profile-summary-copy{
    min-width:0;
}

.cpp-member-profile-page-layout .cpp-member-profile-summary-copy h2{
    margin:0;
    color:var(--cpp-text-heading,#172033);
    font-size:26px;
    font-weight:780;
}

.cpp-member-profile-page-layout .cpp-member-profile-summary-copy p{
    margin:6px 0 10px;
    color: var(--cpp-text-body);
    font-size:14px;
}

.cpp-member-profile-page-layout .cpp-member-profile-summary-badges{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:8px;
}

.cpp-member-profile-page-layout .cpp-member-profile-edit-section
.cpp-member-profile-page-layout .cpp-profile-form{
    max-width:900px;
}

@media (max-width:700px){

    .cpp-dashboard .cpp-member-profile-page-layout{
        gap:18px;
        margin-top:18px;
    }

    .cpp-member-profile-page-layout .cpp-member-profile-summary{
        align-items:flex-start;
        flex-direction:column;
    }

}

/* ==========================================
   Administrator User Profile
   Account Management
========================================== */

.cpp-dashboard  .cpp-member-profile-account-management{
    overflow:hidden;
}

.cpp-dashboard .cpp-member-profile-management-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:20px;
    margin-top:22px;
}

.cpp-dashboard .cpp-member-management-block{
    padding:20px;
    border:1px solid #ced4da;
    border-radius:15px;
    background:#f8fafc;
}

.cpp-dashboard .cpp-member-management-block-heading{
    margin-bottom:18px;
}

.cpp-dashboard .cpp-member-management-block-heading h3{
    margin:0;
    color:var(--cpp-text-heading,#172033);
    font-size:15px;
    font-weight:750;
}

.cpp-dashboard .cpp-member-management-block-heading p{
    margin:6px 0 0;
    color:var(--cpp-text-muted,#8a94a6);
    font-size:14px;
    line-height:1.6;
}

.cpp-dashboard .cpp-member-profile-status{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    padding:13px 14px;
    border:1px solid #ced4da;
    border-radius:11px;
    background:#fff;
}

.cpp-dashboard .cpp-member-profile-status > span{
    color:var(--cpp-text-body);
    font-size:12px;
    font-weight:700;
}

.cpp-dashboard .cpp-member-profile-account-actions{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:10px;
    margin-top:16px;
}

.cpp-dashboard .cpp-member-management-message{
    width:100%;
    padding:13px 14px;
    border:1px solid #e2e8f0;
    border-radius:10px;
    background:#fff;
    color:#64748b;
    font-size:12px;
    line-height:1.55;
}

.cpp-member-profile-page-layout .cpp-member-account-restricted{
    margin-top:24px;
    padding:14px 16px;
    border:1px solid #fde7bd;
    border-radius:12px;
    background:#fffbeb;
    color:#92400e;
    font-size:13px;
    line-height:1.55;
}

.cpp-member-profile-page-layout .cpp-member-role-select{
    width: 100%;
    min-height: 45px;
    padding: 11px 13px;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    background: #fff;
    font: inherit;
    transition: border-color .2s ease, box-shadow .2s ease;
}
.cpp-member-profile-page-layout .cpp-member-role-select:focus{
    outline: none;
    border-color: #6b3fc4 !important;
    box-shadow: 0 0 0 3px rgba(107, 63, 196, .12);
}


.cpp-member-profile-page-layout .cpp-member-role-save,
.cpp-member-profile-account-actions .cpp-member-account-button {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    padding: 10px 17px;
    border: 1px solid transparent;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    color: #ffffff;
    text-decoration: none;
    font-size: 14px;
    font-weight: 700;
    margin-top: 18px;
    box-shadow: 0 8px 18px rgba(29, 78, 216, .2);
    transition: transform .18s ease, box-shadow .18s ease;
}
.cpp-member-profile-page-layout .cpp-member-role-save:hover,
.cpp-member-profile-account-actions .cpp-member-account-button:hover {
        color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 12px 24px rgba(29, 78, 216, .26);
}
.cpp-member-profile-page-layout .cpp-member-deactivate-button,
.cpp-member-profile-page-layout .cpp-member-reactivate-button{ margin-top: 0px!important; }

@media (max-width:900px){

    .cpp-dashboard .cpp-member-profile-management-grid{
        grid-template-columns:1fr;
    }

}

@media (max-width:600px){

    .cpp-dashboard .cpp-member-management-block{
        padding:17px;
    }

    .cpp-dashboard .cpp-member-profile-status{
        align-items:flex-start;
        flex-direction:column;
    }

    .cpp-dashboard .cpp-member-profile-account-actions{
        align-items:stretch;
        flex-direction:column;
    }

    .cpp-dashboard .cpp-member-profile-account-actions
    .cpp-dashboard .cpp-member-approval-button,
    .cpp-dashboard .cpp-member-profile-account-actions
    .cpp-dashboard .cpp-member-account-button{
        width:100%;
    }

}

/* ==========================================
   Global Portal Footer
========================================== */

.cpp-dashboard .cpp-portal-footer{
    margin-top:34px;
    padding-top:20px;
    padding-left: 20px;
    padding-right: 20px;
    padding-bottom: 20px;
    border-top:1px solid var(--cpp-border-soft,#edf1f5);
    background: linear-gradient(90deg, #271254, #3e176e);
    border-radius: 18px;
}

.cpp-dashboard .cpp-portal-footer-inner{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    padding:18px 0 8px;
}

.cpp-dashboard .cpp-portal-footer-copyright{
    color:#fff;
    font-size:12px;
    line-height:1.5;
}

.cpp-dashboard .cpp-portal-footer-nav{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    justify-content:flex-end;
    gap:9px;
}

.cpp-dashboard .cpp-portal-footer-nav a{
    color:#fff;
    font-size:12px;
    font-weight:650;
    text-decoration:none;
    transition:
        color .18s ease;
}

.cpp-dashboard .cpp-portal-footer-nav a:hover{
    color:#f1c40f;
}

.cpp-dashboard .cpp-portal-footer-nav a:focus-visible{
    outline:3px solid rgba(29,78,216,.16);
    outline-offset:3px;
    border-radius:4px;
}

.cpp-dashboard .cpp-portal-footer-separator{
    color:#cbd5e1;
    font-size:11px;
}

@media (max-width:700px){

    .cpp-dashboard .cpp-portal-footer{
        margin-top:26px;
    }

    .cpp-dashboard .cpp-portal-footer-inner{
        align-items:flex-start;
        flex-direction:column;
        gap:12px;
    }

    .cpp-dashboard .cpp-portal-footer-nav{
        justify-content:flex-start;
    }

}

/* ==========================================
   Ministry Hub
========================================== */

.cpp-dashboard .cpp-ministry-page-layout{
    display:grid;
    gap:26px;
    margin-top:26px;
}


/* Ministry Navigation */

.cpp-dashboard .cpp-ministry-menu{
    width:100%;
    overflow:hidden;
}

.cpp-dashboard .cpp-ministry-menu-track{
    display:flex;
    align-items:stretch;
    gap:12px;
    overflow-x:auto;
    padding:4px 2px 12px;
    scrollbar-width:thin;
}

.cpp-dashboard .cpp-ministry-menu-item{
    min-width:126px;
    display:flex;
    align-items:center;
    justify-content:center;
    flex-direction:column;
    gap:9px;
    padding:15px 12px;
    border: 1px solid #6F2D96;
    border-radius:14px;
    background: #6F2D96;
    color: #fff;
    text-align:center;
    text-decoration:none;
    position:relative;
    transition:
        transform .18s ease,
        border-color .18s ease,
        background-color .18s ease,
        color .18s ease;
}

.cpp-dashboard .cpp-ministry-menu-item:hover{
    border-color:#6F2D96;
    background:#fff;
    color: #6F2D96;
    transform:translateY(-2px);
}
.cpp-dashboard .cpp-ministry-menu-item:hover .cpp-ministry-menu-icon svg{
    stroke: #6F2D96;
}

.cpp-dashboard .cpp-ministry-menu-active{
    border-color:#6F2D96;
    background: #fff;
    color: #6F2D96;
}

.cpp-dashboard .cpp-ministry-menu-active .cpp-ministry-menu-icon svg{
    stroke: #6F2D96;
}

.cpp-dashboard .cpp-ministry-menu-icon{
    width:34px;
    height:34px;
    display:flex;
    align-items:center;
    justify-content:center;
}

.cpp-dashboard .cpp-ministry-menu-icon svg{
    width:26px;
    height:26px;
    stroke: #fff;
}
.cpp-dashboard .cpp-ministry-menu-item:hover .cpp-ministry-menu-icon svg{
    stroke: #6F2D96;
}

.cpp-dashboard .cpp-ministry-menu-label{
   font-size: 12px;
    font-weight: 750;
    line-height: 1.3;
    color: #fff;
}
.cpp-dashboard .cpp-ministry-menu-item:hover .cpp-ministry-menu-label { color: #172033 }
.cpp-dashboard .cpp-ministry-menu-active .cpp-ministry-menu-label { color: #172033 }

/* ==========================================
   Ministry Note Notifications
========================================== */

.cpp-dashboard .cpp-ministry-menu-item .cpp-ministry-notification-badge{
    position:absolute;
    top:-7px;
    right:-7px;
    z-index:2;
    display:flex;
    align-items:center;
    justify-content:center;
    min-width:22px;
    height:22px;
    padding:0 6px;
    border:2px solid #fff;
    border-radius:999px;
    background:#dc2626;
    color:#fff;
    font-size:10px;
    font-weight:800;
    line-height:1;
    box-shadow:0 2px 6px rgba(220,38,38,.28);
}

@media (max-width:600px){

    .cpp-dashboard .cpp-ministry-menu-item .cpp-ministry-notification-badge{
        top:-5px;
        right:-5px;
        min-width:20px;
        height:20px;
        font-size:9px;
    }

}


/* Ministry Cards */

.cpp-dashboard .cpp-ministry-card-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:18px;
    margin-top:22px;
}

.cpp-dashboard .cpp-ministry-card{
    display:flex;
    align-items:flex-start;
    gap:16px;
    padding:20px;
    border: 1px solid #ced4da;
    border-radius:15px;
    background:#fff;
    transition:
        transform .18s ease,
        border-color .18s ease,
        box-shadow .18s ease;
}

.cpp-dashboard .cpp-ministry-card:hover{
    border-color:#6F2D96;
    transform:translateY(-2px); 
    box-shadow:0 10px 24px rgba(15,23,42,.06);
}

.cpp-dashboard .cpp-ministry-card-icon{
    width:46px;
    height:46px;
    display:flex;
    align-items:center;
    justify-content:center;
    flex-shrink:0;
    border-radius:12px;
    background:#6F2D96;
    color:var(--cpp-primary,#1d4ed8);
}

.cpp-dashboard .cpp-ministry-card-icon svg{
    width:23px;
    height:23px;
    stroke: #FFFFFF;
}

.cpp-dashboard .cpp-ministry-card-content{
    min-width:0;
}

.cpp-dashboard .cpp-ministry-card-content h3{
    margin:0;
    color:var(--cpp-text-heading,#172033);
    font-size:16px;
    font-weight:750;
}

.cpp-dashboard .cpp-ministry-card-content p{
    margin:8px 0 14px;
    color:var(--cpp-text-body);
    font-size:14px;
    line-height:1.6;
}

.cpp-dashboard .cpp-ministry-card-link{
    color:var(--cpp-primary,#1d4ed8);
    font-size:13px;
    font-weight:750;
    text-decoration:none;
}

.cpp-dashboard .cpp-ministry-card-meta {
    font-size: 14px;
    color: #6F2D96;
}


/* Statistics */
.cpp-dashboard .cpp-ministry-section-heading h2 {
    margin: 0 0 10px;
    color: var(--cpp-text-heading);
    font-size: 24px;
    font-weight: 740;
    letter-spacing: -.025em;
    line-height: 1.3;
}

.cpp-ministry-comms-grid .cpp-ministry-comms-heading h2 {
    margin: 0 0 22px;
    color: var(--cpp-text-heading);
    font-size: 24px;
    font-weight: 740;
    letter-spacing: -.025em;
    line-height: 1.3;
}

.cpp-dashboard .cpp-ministry-stat-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:18px;
}

.cpp-dashboard .cpp-ministry-stat-card{
    text-align:center;
}

.cpp-dashboard .cpp-ministry-stat-value{
    display:block;
    color: #6F2D96;
    font-size:38px;
    font-weight:800;
    line-height:1;
}

.cpp-dashboard .cpp-ministry-stat-label{
    display:block;
    margin-top:9px;
    color:var(--cpp-text-muted,#8a94a6);
    font-size:12px;
    font-weight:700;
}


/* Events + Leaders */

.cpp-dashboard .cpp-ministry-overview-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:22px;
    align-items:start;
}


/* Help CTA */

.cpp-dashboard .cpp-ministry-help-content{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:28px;
}

.cpp-dashboard .cpp-ministry-help-content h2{
    margin:0;
    color:var(--cpp-text-heading,#172033);
    font-size:21px;
    font-weight:780;
}

.cpp-dashboard .cpp-ministry-help-content p{
    max-width:650px;
    margin:8px 0 0;
    color:var(--cpp-text-body);
    font-size:14px;
    line-height:1.65;
}

.cpp-ministry-page-layout .cpp-primary-button {
        display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    padding: 10px 17px;
    border: 1px solid transparent;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    color: #ffffff;
    text-decoration: none;
    text-align: center;
    font-size: 14px;
    font-weight: 700;
    box-shadow: 0 8px 18px rgba(29, 78, 216, .2);
    transition: transform .18s ease, box-shadow .18s ease;
}
.cpp-ministry-page-layout .cpp-primary-button:hover {
    color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 12px 24px rgba(29, 78, 216, .26);
}

.cpp-dashboard .cpp-ministry-event-type{
    display:inline-flex;
    margin-bottom:6px;
    padding:4px 8px;
    border:1px solid #dbe7ff;
    border-radius:999px;
    background:var(--cpp-primary-soft,#eef4ff);
    color:var(--cpp-primary,#1d4ed8);
    font-size:9px;
    font-weight:800;
    letter-spacing:.035em;
    text-transform:uppercase;
}


/* Responsive */

@media (max-width:1100px){

    .cpp-dashboard .cpp-ministry-card-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .cpp-dashboard .cpp-ministry-stat-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

}

@media (max-width:850px){

    .cpp-dashboard .cpp-ministry-overview-grid{
        grid-template-columns:1fr;
    }

}

@media (max-width:650px){

    .cpp-dashboard .cpp-ministry-page-layout{
        gap:18px;
        margin-top:18px;
    }

    .cpp-dashboard .cpp-ministry-card-grid{
        grid-template-columns:1fr;
    }

    .cpp-dashboard .cpp-ministry-stat-grid{
        grid-template-columns:1fr 1fr;
    }

    .cpp-dashboard .cpp-ministry-help-content{
        align-items:flex-start;
        flex-direction:column;
    }

    .cpp-dashboard .cpp-ministry-help-content
    .cpp-dashboard .cpp-primary-button{
        width:100%;
    }

}

@media (prefers-reduced-motion:reduce){

    .cpp-dashboard .cpp-ministry-menu-item,
    .cpp-dashboard .cpp-ministry-card{
        transition:none;
    }

}

/* ==========================================
   Shared Ministry Child Pages
========================================== */

.cpp-dashboard .cpp-ministry-child-page{
    display:grid;
    gap:26px;
    margin-top:26px;
}


/* ==========================================
   Ministry Welcome
========================================== */

.cpp-dashboard .cpp-ministry-child-welcome{
        background: linear-gradient(135deg, #30136c, #7134bd);
    overflow:hidden;
    position: relative;
}

.cpp-dashboard .cpp-ministry-child-welcome::after {
    content: "";
    position: absolute;
    top: -48px;
    right: -38px;
    width: 150px;
    height: 150px;
    border-radius: 50%;
    background: rgba(107, 63, 196, .045);
    pointer-events: none;
}

.cpp-dashboard .cpp-ministry-child-welcome-layout{
    display:grid;
    grid-template-columns:180px minmax(0,1fr);
    align-items:center;
    gap:30px;
}

.cpp-dashboard .cpp-ministry-child-leader-placeholder{
    width:180px;
    height:180px;
    display:flex;
    align-items:center;
    justify-content:center;
    border:1px solid #dbe7ff;
    border-radius:22px;
    background:
        linear-gradient(
            145deg,
            var(--cpp-primary-soft,#eef4ff),
            #ffffff
        );
    color:var(--cpp-primary,#1d4ed8);
}

.cpp-dashboard .cpp-ministry-child-leader-placeholder svg{
    width:74px;
    height:74px;
    stroke: #6F2D96;
}

.cpp-dashboard .cpp-ministry-child-welcome-content{
    min-width:0;
}

.cpp-dashboard .cpp-ministry-child-eyebrow{
    display:block;
    margin-bottom:7px;
    color:#fff;
    font-size:12px;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.cpp-dashboard .cpp-ministry-child-welcome-content h2{
    margin:0;
    color:#fff;
    font-size:25px;
    font-weight:780;
    letter-spacing:-.025em;
    line-height:1.25;
}

.cpp-dashboard .cpp-ministry-child-welcome-content > p{
    max-width:760px;
    margin:12px 0 0;
    color:#fff;
    font-size:14px;
    line-height:1.75;
}

.cpp-dashboard .cpp-ministry-child-quote{
    margin:18px 0 0;
    padding:13px 16px;
    border-left:3px solid var(--cpp-primary,#1d4ed8);
        background: #f8fafcC1;
    color: #6F2D96;
    font-size: 14px;
    font-style:italic;
    line-height:1.6;
}


/* ==========================================
   Shared Ministry Widget Grid
========================================== */

.cpp-dashboard .cpp-ministry-child-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    align-items:start;
    gap:22px;
}

.cpp-dashboard .cpp-ministry-child-section{
    min-width:0;
}

.cpp-dashboard .cpp-ministry-child-section-heading{
    display:flex;
    align-items:flex-start;
    gap:13px;
}

.cpp-dashboard .cpp-ministry-child-section-icon{
    width:42px;
    height:42px;
    display:flex;
    align-items:center;
    justify-content:center;
    flex-shrink:0;
    border-radius:11px;
    background: #6F2D96;
    color: #fff;
}

.cpp-dashboard .cpp-ministry-child-section-icon svg{
    width:21px;
    height:21px;
}

.cpp-dashboard .cpp-text-in-church .cpp-text-church-button {
        display: inline-flex;
    width: 190px;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    padding: 10px 17px;
    border: 1px solid transparent;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    color: #ffffff;
    text-decoration: none;
    font-size: 14px;
    font-weight: 700;
    text-transform: capitalize;
    margin-top: 15px;
    box-shadow: 0 8px 18px rgba(29, 78, 216, .2);
    transition: transform .18s ease, box-shadow .18s ease;
}
.cpp-dashboard .cpp-text-in-church .cpp-text-church-button:hover {
    color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 12px 24px rgba(29, 78, 216, .26);
}


/* ==========================================
   Responsive Ministry Child Pages
========================================== */

@media (max-width:900px){

    .cpp-dashboard .cpp-ministry-child-grid{
        grid-template-columns:1fr;
    }

}

@media (max-width:700px){

    .cpp-dashboard .cpp-ministry-child-page{
        gap:18px;
        margin-top:18px;
    }

    .cpp-dashboard .cpp-ministry-child-welcome-layout{
        grid-template-columns:1fr;
        gap:20px;
    }

    .cpp-dashboard .cpp-ministry-child-leader-placeholder{
        width:110px;
        height:110px;
        border-radius:18px;
    }

    .cpp-dashboard .cpp-ministry-child-leader-placeholder svg{
        width:48px;
        height:48px;
    }

    .cpp-dashboard .cpp-ministry-child-welcome-content h2{
        font-size:21px;
    }

}

@media (prefers-reduced-motion:reduce){

    .cpp-dashboard .cpp-ministry-child-page *,
    .cpp-dashboard .cpp-ministry-child-page *::before,
    .cpp-dashboard .cpp-ministry-child-page *::after{
        scroll-behavior:auto;
    }

}

/* ==========================================
   Shared Ministry Event Lists
========================================== */

.cpp-dashboard .cpp-ministry-event-list{
    display:flex;
    flex-direction:column;
}

.cpp-dashboard .cpp-ministry-event-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    padding:16px 0;
    border-bottom:1px solid var(--cpp-border-soft,#edf1f5);
}

.cpp-dashboard .cpp-ministry-event-row:first-child{
    padding-top:5px;
}

.cpp-dashboard .cpp-ministry-event-row:last-child{
    padding-bottom:0;
    border-bottom:0;
}

.cpp-dashboard .cpp-ministry-event-content{
    min-width:0;
}

.cpp-dashboard .cpp-ministry-event-content h3{
    margin:0;
    color:var(--cpp-text-heading,#172033);
    font-size:14px;
    font-weight:750;
    line-height:1.4;
}

.cpp-dashboard .cpp-ministry-event-meta{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:6px;
    margin-top:6px;
    color:var(--cpp-text-muted,#8a94a6);
    font-size:12px;
}

.cpp-dashboard .cpp-ministry-event-link{
    display:inline-flex;
    min-height:36px;
    align-items:center;
    justify-content:center;
    flex-shrink:0;
    padding:7px 11px;
    border:1px solid #dbe7ff;
    border-radius:9px;
    background:var(--cpp-primary-soft,#eef4ff);
    color:var(--cpp-primary,#1d4ed8);
    font-size:11px;
    font-weight:750;
    font-family: 'Merriweather Sans';
    text-transform: capitalize;
    text-decoration:none;
    transition: background-color .18s ease, border-color .18s ease, transform .18s ease;
}

.cpp-dashboard .cpp-ministry-event-link:hover,
.cpp-dashboard .cpp-ministry-event-link:focus{
    border-color: #c8d9ff;
    background: #fff!important;
    color: var(--cpp-primary, #1d4ed8);
    transform: translateY(-1px);
}
.cpp-dashboard .cpp-ministry-event-link:focus {
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
}

@media (max-width:600px){

    .cpp-dashboard .cpp-ministry-event-row{
        align-items:flex-start;
        flex-direction:column;
    }

}

/* ==========================================
   Shared Ministry Announcements
========================================== */

.cpp-dashboard .cpp-ministry-announcement-list{
    display:flex;
    flex-direction:column;
    gap: 6px;
}

.cpp-dashboard .cpp-ministry-announcement-row{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:18px;
    padding:18px 15px;
    border:1px solid #ced4da;
    border-radius: 8px;
    background-color: #fff;
    transition: background-color var(--cpp-transition), transform var(--cpp-transition);
}
.cpp-dashboard .cpp-ministry-announcement-row:hover{
    transform: translateX(3px);
}

.cpp-dashboard .cpp-ministry-announcement-content{
    min-width:0;
}

.cpp-dashboard .cpp-ministry-announcement-content h3{
    margin:0;
    color:var(--cpp-text-heading,#172033);
    font-size:16px;
    font-weight:750;
    line-height:1.4;
}

.cpp-dashboard .cpp-ministry-announcement-category{
    display:inline-flex;
    margin-bottom:7px;
    padding:4px 8px;
    border:1px solid #dbe7ff;
    border-radius:999px;
    background:var(--cpp-primary-soft,#eef4ff);
    color: #6F2D96;
    font-size:11px;
    font-weight:800;
    letter-spacing:.035em;
    line-height:1;
    text-transform:uppercase;
}

.cpp-dashboard .cpp-ministry-announcement-meta{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:6px;
    margin-top:6px;
    color: #687386;
    font-size:13px;
}

.cpp-dashboard .cpp-ministry-announcement-excerpt{
    margin:9px 0 0;
    color:var(--cpp-text-body);
    font-size:12px;
    line-height:1.6;
}

.cpp-dashboard .cpp-ministry-announcement-link{
    display:inline-flex;
    min-height:36px;
    align-items:center;
    justify-content:center;
    flex-shrink:0;
    padding:7px 11px;
    border:1px solid #dbe7ff;
    border-radius:9px;
    background:var(--cpp-primary-soft,#eef4ff);
    color:var(--cpp-primary,#1d4ed8);
    font-size:12px;
    font-weight:750;
    font-family: 'Merriweather Sans';
    text-transform: capitalize;
    text-decoration:none;
    transition: background-color .18s ease, border-color .18s ease, transform .18s ease;
}

.cpp-dashboard .cpp-ministry-announcement-link:hover,
.cpp-dashboard .cpp-ministry-announcement-link:focus{
    border-color: #c8d9ff;
    background: #fff!important;
    color: var(--cpp-primary, #1d4ed8);
    transform: translateY(-1px);
}
.cpp-dashboard .cpp-ministry-announcement-link:focus {
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
}

@media (max-width:600px){

    .cpp-dashboard .cpp-ministry-announcement-row{
        flex-direction:column;
    }

}

/* =========================================================
   Ministry Leaders
   ========================================================= */

.cpp-dashboard .cpp-ministry-leader-grid{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:20px;
}

.cpp-dashboard .cpp-ministry-leader-card{
    display:flex;
    align-items:center;
    gap:18px;
    padding:22px;
    border:1px solid #ced4da;
    border-radius:16px;
    background:#fff;
    transition: background-color var(--cpp-transition), transform var(--cpp-transition);
}
.cpp-dashboard .cpp-ministry-leader-card:hover{
    transform: translateX(3px);
}

.cpp-dashboard .cpp-ministry-leader-avatar{
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 68px;
    width:68px;
    height:68px;
    border-radius:50%;
    font-size:20px;
    font-weight:800;
    line-height:1;
}

.cpp-dashboard .cpp-ministry-leader-avatar-male{
    background:#dbeafe;
    color:#1d4ed8;
}

.cpp-dashboard .cpp-ministry-leader-avatar-female{
    background:#fce7f3;
    color:#be185d;
}

.cpp-dashboard .cpp-ministry-leader-avatar-unknown{
    background:#f3f4f6;
    color:#4b5563;
}

.cpp-dashboard .cpp-ministry-leader-content{
    min-width:0;
}

.cpp-dashboard .cpp-ministry-leader-role{
    display:block;
    margin-bottom:4px;
    color:#6b7280;
    font-size:12px;
    font-weight:700;
    text-transform:uppercase;
    letter-spacing:.05em;
}

.cpp-dashboard .cpp-ministry-leader-content h3{
    margin:0 0 5px;
    font-size: 22px;
}

.cpp-dashboard .cpp-ministry-leader-content p{
    margin:0;
}

.cpp-dashboard .cpp-ministry-leader-ministry{
    margin:4px 0 0;
    font-size:14px;
    font-weight:600;
    color: #6F2D96;
}

/* =========================================================
   Ministry Secondary Grid
   ========================================================= */

.cpp-dashboard .cpp-ministry-secondary-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
    align-items: stretch;
}

.cpp-ministry-secondary-grid .cpp-ministry-secondary-column {
    min-width: 0;
}

.cpp-ministry-secondary-grid .cpp-ministry-secondary-column > .cpp-widget {
    height: 100%;
}


/* =========================================================
   Upcoming Birthdays
   ========================================================= */

.cpp-ministry-birthdays .cpp-ministry-birthday-list {
    display: flex;
    flex-direction: column;
    gap: 6px;
}

.cpp-ministry-birthdays .cpp-ministry-birthday-item {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 16px;
    padding: 18px 15px;
    border: 1px solid #ced4da;
    border-radius: 8px;
    background-color: #fff;
    transition: background-color var(--cpp-transition), transform var(--cpp-transition);
}
.cpp-ministry-birthdays .cpp-ministry-birthday-item:hover {
    transform: translateX(3px);
}

.cpp-ministry-birthdays .cpp-ministry-birthday-person {
    display: flex;
    align-items: center;
    gap: 12px;
    min-width: 0;
}

.cpp-ministry-birthdays .cpp-ministry-birthday-avatar {
    flex: 0 0 auto;
}

.cpp-ministry-birthdays .cpp-ministry-birthday-avatar img,
.cpp-ministry-birthdays .cpp-ministry-birthday-avatar
.cpp-member-avatar {
    width: 44px;
    height: 44px;
    border-radius: 50%;
}

.cpp-ministry-birthdays .cpp-ministry-birthday-copy {
    min-width: 0;
}

.cpp-ministry-birthdays .cpp-ministry-birthday-copy h3 {
    margin: 0;
    color: #172033;
    font-size: 15px;
    font-weight: 700;
}

.cpp-ministry-birthdays .cpp-ministry-birthday-ministry {
    display: block;
    margin-top: 3px;
    color: #6F2D96;
    font-size: 13px;
}

.cpp-ministry-birthdays .cpp-ministry-birthday-date {
    flex: 0 0 auto;
    text-align: right;
}

.cpp-ministry-birthdays .cpp-ministry-birthday-date strong {
    display: block;
    color: #6F2D96;
    font-size: 14px;
}

.cpp-ministry-birthdays .cpp-ministry-birthday-date span {
    display: block;
    margin-top: 2px;
    color: #64748b;
    font-size: 12px;
}

.cpp-ministry-birthdays .cpp-ministry-birthdays-empty {
    padding: 30px 20px;
    border: 1px dashed #d9e0ea;
    border-radius: 10px;
    color: #64748b;
    text-align: center;
}

/* =========================================================
   Ministry Subpage Information Layout
   ========================================================= */

.cpp-ministry-child-page .cpp-ministry-overview-layout {
    display: flex;
    flex-direction: column;
    gap: 20px;
}


/* Ministry Overview
   Full Width
   ========================================================= */

.cpp-ministry-child-page .cpp-ministry-overview-full {
    width: 100%;
}

.cpp-ministry-child-page .cpp-ministry-overview-full > .cpp-widget {
    width: 100%;
}


/* Ministry Leaders + Upcoming Birthdays
   ========================================================= */

.cpp-ministry-child-page .cpp-ministry-information-grid {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
    gap: 20px;
    align-items: stretch;
}

.cpp-ministry-child-page .cpp-ministry-information-grid > .cpp-widget {
    min-width: 0;
    height: 100%;
}

@media (max-width: 900px) {

    .cpp-ministry-child-page .cpp-ministry-information-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

}

@media (max-width: 760px) {

    .cpp-ministry-child-page .cpp-ministry-information-grid {
        grid-template-columns: 1fr;
    }

}


/* =========================================================
   Ministry People Statistics
   ========================================================= */

.cpp-dashboard .cpp-ministry-stat-grid{
    display:grid;
    grid-template-columns:repeat(4, minmax(0, 1fr));
    gap:18px;
}

.cpp-dashboard .cpp-ministry-stat-card{
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    min-height:135px;
    padding:22px;
    border:1px solid #8F8F8F;
    border-radius:16px;
    background:#fff;
    text-align:center;
    transition: transform .18s ease, border-color .18s ease, background-color .18s ease, color .18s ease;
}
.cpp-dashboard .cpp-ministry-stat-card:hover{
    border:1px solid #A542DE;
    transform: translateY(-2px);
}

.cpp-dashboard .cpp-ministry-stat-value{
    display:block;
    margin-bottom:7px;
    font-size:38px;
    font-weight:800;
    line-height:1;
    color #6F2D96:;
}

.cpp-dashboard .cpp-ministry-stat-label{
    color: #172033;
    font-size:14px;
    font-weight:700;
}


/* =========================================================
   Responsive
   ========================================================= */

@media (max-width: 767px){

    .cpp-dashboard .cpp-ministry-leader-grid{
        grid-template-columns:1fr;
    }

    .cpp-dashboard .cpp-ministry-stat-grid{
        grid-template-columns:1fr;
    }

}

/* ==========================================
   Ministry Detail Modals
========================================== */

body.cpp-ministry-modal-open{
    overflow:hidden;
}

.cpp-dashboard .cpp-ministry-detail-modal{
    position:fixed;
    inset:0;
    z-index:99999;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:24px;
}

.cpp-dashboard .cpp-ministry-detail-modal[hidden]{
    display:none;
}

.cpp-dashboard .cpp-ministry-detail-backdrop{
    position:absolute;
    inset:0;
    background:rgba(15,23,42,.65);
}

.cpp-dashboard .cpp-ministry-detail-dialog{
    position:relative;
    z-index:1;
    width:min(720px,100%);
    max-height:calc(100vh - 48px);
    overflow:auto;
    padding:28px;
    border-radius:18px;
    background:#fff;
    box-shadow:0 24px 70px rgba(15,23,42,.24);
}

.cpp-dashboard .cpp-ministry-detail-close{
    position:absolute;
    top:14px;
    right:16px;
    width:38px;
    height:38px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:0;
    border:0;
    border-radius:50%;
    background:#f1f5f9;
    color:#334155;
    font-size:24px;
    cursor:pointer;
}

.cpp-dashboard .cpp-ministry-detail-heading{
    padding-right:42px;
}

.cpp-dashboard .cpp-ministry-detail-heading h2{
    margin: 0 0 15px;
    color: var(--cpp-text-heading);
    font-size: 26px;
    font-weight: 740;
    letter-spacing: -.025em;
    line-height: 1.3;
}

.cpp-dashboard .cpp-ministry-detail-meta{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:7px;
    margin-top:10px;
        color: #475569;
    font-size:14px;
}

.cpp-dashboard .cpp-ministry-detail-categories{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
}

.cpp-dashboard .cpp-ministry-detail-content{
        color: #475569;
    margin-top:24px;
    padding-top:20px;
    border-top:1px solid #ced4da;
    line-height:1.7;
}

.cpp-dashboard .cpp-ministry-detail-content > :first-child{
    margin-top:0;
}

.cpp-dashboard .cpp-ministry-detail-content > :last-child{
    margin-bottom:0;
}

.cpp-dashboard .cpp-ministry-detail-loading,
.cpp-dashboard .cpp-ministry-detail-error{
    padding:32px 10px;
    text-align:center;
}

.cpp-dashboard .cpp-ministry-event-view,
.cpp-dashboard .cpp-ministry-announcement-view{
    cursor:pointer;
}

.cpp-dashboard .cpp-ministry-detail-venue{
    margin-top:8px;
    color:#64748b;
    font-size:12px;
}

.cpp-dashboard .cpp-ministry-detail-venue strong{
    color:#334155;
    font-weight:700;
}

@media (max-width:600px){

    .cpp-dashboard .cpp-ministry-detail-modal{
        align-items:flex-end;
        padding:12px;
    }

    .cpp-dashboard .cpp-ministry-detail-dialog{
        width:100%;
        max-height:88vh;
        padding:23px 19px;
        border-radius:18px 18px 10px 10px;
    }

}

/* =========================================================
   Ministry Communications
   ========================================================= */

.cpp-dashboard .cpp-ministry-comms-grid{
    display:grid;
    grid-template-columns:repeat(2, minmax(0, 1fr));
    gap:28px;
}

.cpp-dashboard .cpp-ministry-comms-column{
    min-width:0;
    padding:26px;
    border-radius:16px;
}

.cpp-dashboard .cpp-ministry-comms-heading{
    margin-bottom:24px;
}

.cpp-dashboard .cpp-ministry-comms-heading h2{
    margin:0 0 8px;
}

.cpp-dashboard .cpp-ministry-comms-heading p{
    margin:0;
}


/* Ministry Note Form */

.cpp-dashboard .cpp-ministry-note-form{
    display:flex;
    flex-direction:column;
    gap:18px;
}

.cpp-dashboard .cpp-form-field{
    display:flex;
    flex-direction:column;
    gap:7px;
}

.cpp-dashboard .cpp-form-label{
    font-size: 14px;
    font-weight: 700;
    color: #172033;
}

.cpp-dashboard .cpp-form-control{
    width:100%;
    min-height:46px;
    padding:11px 13px;
    border:1px solid #d1d5db;
    border-radius:8px;
    background:#fff;
    font:inherit;
    transition:
        border-color .2s ease,
        box-shadow .2s ease;
}

.cpp-dashboard .cpp-form-control:focus{
    outline:none;
    border-color:#6b3fc4;
    box-shadow:0 0 0 3px rgba(107,63,196,.12);
}

.cpp-dashboard .cpp-form-textarea{
    min-height:140px;
    resize:vertical;
}

.cpp-dashboard .cpp-form-file{
    padding:9px;
}

.cpp-dashboard .cpp-form-help{
    margin:0;
    color:#6b7280;
    font-size:14px;
    line-height:1.5;
}

.cpp-dashboard .cpp-ministry-note-submit{
    display: inline-flex;
    width: 150px;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    padding: 10px 17px;
    border: 1px solid transparent;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    color: #ffffff;
    text-decoration: none;
    font-size: 14px;
    font-weight: 700;
    text-transform: capitalize;
    box-shadow: 0 8px 18px rgba(29, 78, 216, .2);
    transition: transform .18s ease, box-shadow .18s ease;
}

.cpp-dashboard .cpp-ministry-note-submit:hover{
    color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 12px 24px rgba(29, 78, 216, .26);
}

.cpp-dashboard .cpp-ministry-note-message:empty{
    display:none;
}


/* WPForms column */

.cpp-dashboard .cpp-ministry-greeting-form{
    width:100%;
}

/* =========================================================
   Responsive
   ========================================================= */

@media (max-width:900px){

    .cpp-dashboard .cpp-ministry-comms-grid{
        grid-template-columns:1fr;
    }

}

@media (max-width:600px){

    .cpp-dashboard .cpp-ministry-comms-column{
        padding:20px;
    }

    .cpp-dashboard .cpp-ministry-note-submit{
        width:100%;
    }

}

/* =========================================================
   Ministry Child — Communications Layout
   ========================================================= */

.cpp-ministry-child-page .cpp-ministry-comms-grid,
.cpp-ministry-child-page .cpp-ministry-greetings-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:20px;
}

.cpp-ministry-child-page .cpp-ministry-comms-grid > *,
.cpp-ministry-child-page .cpp-ministry-greetings-grid > *{
    min-width:0;
}


/* =========================================================
   Approved Greeting Templates
   ========================================================= */

.cpp-ministry-child-page .cpp-ministry-greeting-templates{
    display:flex;
    flex-direction:column;
}

.cpp-ministry-child-page .cpp-ministry-greeting-template-list{
    display:flex;
    flex-direction:column;
    gap:10px;
}

.cpp-ministry-child-page .cpp-ministry-greeting-template-item{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    padding:14px 15px;
    border:1px solid #ced4da;
    border-radius:11px;
    background:#fff;
}

.cpp-ministry-child-page .cpp-ministry-greeting-template-content{
    min-width:0;
}

.cpp-ministry-child-page .cpp-ministry-greeting-template-content h3{
    margin:7px 0 5px;
    color:var(
        --cpp-text-heading,
        #172033
    );
    font-size:16px;
    font-weight:800;
    line-height:1.35;
}

.cpp-ministry-child-page .cpp-ministry-greeting-template-meta{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:6px;
    color: #687386;
    font-size: 13px;
}

.cpp-ministry-child-page .cpp-ministry-greetings-view-all{
    display: inline-flex;
    width: 190px;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    padding: 10px 17px;
    border: 1px solid transparent;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    color: #ffffff;
    text-decoration: none;
    font-size: 14px;
    font-weight: 700;
    text-transform: capitalize;
    margin-top: 15px;
    box-shadow: 0 8px 18px rgba(29, 78, 216, .2);
    transition: transform .18s ease, box-shadow .18s ease;
}
.cpp-ministry-child-page .cpp-ministry-greetings-view-all:hover,
.cpp-ministry-child-page .cpp-ministry-greetings-view-all:focus{
    color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 12px 24px rgba(29, 78, 216, .26);
}


/* =========================================================
   Responsive
   ========================================================= */

@media (max-width:900px){

    .cpp-ministry-child-page .cpp-ministry-comms-grid,
    .cpp-ministry-child-page .cpp-ministry-greetings-grid{
        grid-template-columns:1fr;
    }

}

@media (max-width:520px){

    .cpp-ministry-child-page .cpp-ministry-greeting-template-item{
        align-items:stretch;
        flex-direction:column;
    }

    .cpp-ministry-child-page .cpp-ministry-greeting-template-item
    .cpp-button{
        width:100%;
        text-align:center;
    }

    .cpp-ministry-child-page .cpp-ministry-greetings-view-all{
        width:100%;
        text-align:center;
    }

}

/* =========================================================
   Greetings — Approved Template Cards
   ========================================================= */

.cpp-greetings-page .cpp-greetings-approved-section{
    min-width:0;
}

.cpp-greetings-page .cpp-greetings-card-grid{
    display:grid;
    grid-template-columns:
        repeat(3,minmax(0,1fr));
    gap:20px;
    margin-top:20px;
}

.cpp-greetings-page .cpp-greeting-template-card{
    position:relative;
    display:flex;
    flex-direction:column;
    min-width:0;
    min-height:220px;
    padding:20px;
    border:1px solid #ced4da;
    border-radius:15px;
    background:
        linear-gradient(
            145deg,
            #ffffff 0%,
            #faf8fc 100%
        );
    box-shadow:
        0 8px 24px
        rgba(15,23,42,.055);
    transition:
        transform .18s ease,
        box-shadow .18s ease,
        border-color .18s ease;
}

.cpp-greetings-page .cpp-greeting-template-card:hover{
    transform:translateY(-2px);
    border-color:
        rgba(111,45,150,.22);
    box-shadow:
        0 14px 34px
        rgba(15,23,42,.09);
}

.cpp-greetings-page .cpp-greeting-template-card-content{
    display:flex;
    flex:1;
    flex-direction:column;
}

.cpp-greetings-page .cpp-greeting-template-reference{
    display:inline-flex;
    align-self:flex-start;
    margin-bottom:12px;
    padding:5px 9px;
    border-radius:999px;
    background:
        rgba(111,45,150,.08);
    color:#6F2D96;
    font-size:9px;
    font-weight:800;
    letter-spacing:.05em;
    text-transform:uppercase;
}

.cpp-greetings-page .cpp-greeting-template-card h3{
    margin:0 0 14px;
    color:#172033;
    font-size:16px;
    font-weight:800;
    line-height:1.4;
}

.cpp-greetings-page .cpp-greeting-template-card-meta{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:6px;
    margin-top:auto;
    color:#64748b;
    font-size:10px;
    line-height:1.5;
}

.cpp-greetings-page .cpp-greeting-template-card
.cpp-greeting-view{
    align-self:flex-start;
    margin-top:18px;
}

.cpp-greetings-page .cpp-greeting-template-card .cpp-greeting-remove {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    min-height: 36px;
    padding: 7px 12px;
    border: 1px solid #dbe7ff;
    border-radius: 9px;
    background: var(--cpp-primary-soft, #eef4ff);
    color: #c36;
    font-size: 12px;
    font-weight: 750;
    line-height: 1;
    text-decoration: none;
    text-transform: capitalize;
    cursor: pointer;
    transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease;
}
.cpp-greetings-page .cpp-greeting-template-card .cpp-greeting-remove:hover {
    color: #c36;
    border-color: #c8d9ff;
    background: #fff;
    transform: translateY(-1px);
}

.cpp-greetings-page .cpp-greeting-template-excerpt {
    margin: 0 0 16px;
    color: #64748b;
    font-size: 12px;
    font-weight: 400;
    line-height: 1.6;
}

.cpp-greetings-page .cpp-greetings-load-more-wrap { margin-top: 20px; }
.cpp-greetings-page .cpp-greetings-load-more-wrap .cpp-greetings-load-more {
        display: inline-flex;
    width: 150px;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    padding: 10px 17px;
    border: 1px solid transparent;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    color: #ffffff;
    text-decoration: none;
    font-size: 14px;
    font-weight: 700;
    text-transform: capitalize;
    box-shadow: 0 8px 18px rgba(29, 78, 216, .2);
    transition: transform .18s ease, box-shadow .18s ease;
}
.cpp-greetings-page .cpp-greetings-load-more-wrap .cpp-greetings-load-more:hover {
        color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 12px 24px rgba(29, 78, 216, .26);
}

/* Tablet */
@media (max-width:1000px){

    .cpp-greetings-page .cpp-greetings-card-grid{
        grid-template-columns:
            repeat(2,minmax(0,1fr));
    }

}

/* Mobile */

@media (max-width:620px){

    .cpp-greetings-page .cpp-greetings-card-grid{
        grid-template-columns:1fr;
    }

    .cpp-greetings-page .cpp-greeting-template-card{
        min-height:0;
    }

    .cpp-greetings-page .cpp-greeting-template-card
    .cpp-greeting-view{
        width:auto;
    }

}

/* =========================================================
   Main Ministry — Greetings Widget
   ========================================================= */

.cpp-dashboard .cpp-greetings-widget{
    overflow:hidden;
}

.cpp-dashboard .cpp-greetings-widget .cpp-widget-heading{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:20px;
    margin-bottom:20px;
}

.cpp-dashboard .cpp-greetings-widget .cpp-widget-heading > div{
    min-width:0;
}

.cpp-dashboard .cpp-greetings-list{
    display:flex;
    flex-direction:column;
    margin-bottom: 20px;
    gap: 6px;
}

.cpp-dashboard .cpp-greeting-item{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    padding: 18px 15px;
    border: 1px solid #ced4da;
    border-radius: 8px;
    background-color: #fff;
    transition: background-color var(--cpp-transition), transform var(--cpp-transition);
}
.cpp-dashboard .cpp-greeting-item:hover{
    transform: translateX(3px);
}

.cpp-dashboard .cpp-greeting-item-content{
    min-width:0;
}

.cpp-dashboard .cpp-greeting-item-content h3{
    margin:0;
    color:var(--cpp-text-heading,#172033);
    font-size:15px;
    font-weight:750;
    line-height:1.45;
}

.cpp-dashboard .cpp-greeting-meta{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:7px;
    margin-top:7px;
    color: #6F2D96;
    font-size:12px;
    font-weight: 600;
    line-height:1.4;
}

.cpp-dashboard .cpp-greetings-page .cpp-table-responsive {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    -webkit-overflow-scrolling: touch;
}
.cpp-dashboard table.cpp-greetings-table thead th {
    padding: 20px 12px !important;
    background: #6F2D96;
    color: #fff;
    font-weight: bold;
    font-size: 1em;
    text-align: left;
    white-space: nowrap;
}
.cpp-dashboard table.cpp-greetings-table tbody td {
    padding: 14px 12px !important;
    color: var(--cpp-text-body);
    font-size: 14px;
    vertical-align: middle;
}


/* =========================================================
   Greeting Status Badges
   ========================================================= */

.cpp-dashboard .cpp-status-badge{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:23px;
    padding:4px 9px;
    border-radius:999px;
    font-size:11px;
    font-weight:800;
    line-height:1;
}

.cpp-dashboard .cpp-status-pending{
    border:1px solid #fde68a;
    background:#fffbeb;
    color:#b45309;
}

.cpp-dashboard .cpp-status-approved{
    border:1px solid #bbf7d0;
    background:#f0fdf4;
    color:#15803d;
}


/* =========================================================
   Greeting Buttons
   ========================================================= */

.cpp-dashboard .cpp-greeting-view{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex-shrink:0;
    min-height:36px;
    padding:7px 12px;
    border:1px solid #dbe7ff;
    border-radius:9px;
    background:var(--cpp-primary-soft,#eef4ff);
    color:var(--cpp-primary,#1d4ed8);
    font-size:12px;
    font-weight:750;
    line-height:1;
    text-decoration:none;
    text-transform: capitalize;
    cursor:pointer;
    transition:
        background-color .18s ease,
        border-color .18s ease,
        color .18s ease,
        transform .18s ease;
}

.cpp-dashboard .cpp-greeting-view:hover{
    color: var(--cpp-primary, #1d4ed8);
    border-color:#c8d9ff;
    background:#fff;
    transform:translateY(-1px);
}

.cpp-dashboard .cpp-greeting-view:focus-visible{
    outline:3px solid rgba(29,78,216,.15);
    outline-offset:2px;
}

.cpp-greetings-widget .cpp-primary-button {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    padding: 10px 17px;
    border: 1px solid transparent;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    color: #ffffff;
    text-decoration: none;
    font-size: 12px;
    font-weight: 700;
    box-shadow: 0 8px 18px rgba(29, 78, 216, .2);
    transition: transform .18s ease, box-shadow .18s ease;
}

.cpp-greetings-widget .cpp-primary-button:hover {
    color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 12px 24px rgba(29, 78, 216, .26);
}

/* =========================================================
   Greeting Modal
   ========================================================= */

.cpp-dashboard .cpp-greeting-reference{
    display:inline-flex;
    align-items:center;
    margin-bottom:7px;
    padding:5px 9px;
    border:1px solid #dbe7ff;
    border-radius:999px;
    background:var(--cpp-primary-soft,#eef4ff);
    color:var(--cpp-primary,#1d4ed8);
    font-size:12px;
    font-weight:800;
    line-height:1;
    letter-spacing:.04em;
}

#cpp-greeting-modal .cpp-ministry-detail-heading h2{
    margin-top:8px;
}

#cpp-greeting-modal .cpp-ministry-detail-content{
    color:var(--cpp-text-body);
    font-size:16px;
    line-height:1.75;
}

#cpp-greeting-modal .cpp-ministry-detail-content p{
    margin:0 0 14px;
}

#cpp-greeting-modal .cpp-ministry-detail-content p:last-child{
    margin-bottom:0;
}


/* =========================================================
   Empty State
   ========================================================= */

.cpp-dashboard .cpp-greetings-widget .cpp-empty-state{
    padding:30px 18px;
    text-align:center;
}

.cpp-dashboard .cpp-greetings-widget .cpp-empty-state strong{
    display:block;
    margin-bottom:5px;
    color:var(--cpp-text-heading,#172033);
    font-size:14px;
}

.cpp-dashboard .cpp-greetings-widget .cpp-empty-state p{
    margin:0;
    color:var(--cpp-text-muted,#8a94a6);
    font-size:12px;
}


/* =========================================================
   Responsive
   ========================================================= */

@media (max-width:700px){

    .cpp-dashboard .cpp-greetings-widget .cpp-widget-heading{
        align-items:stretch;
        flex-direction:column;
    }

    .cpp-dashboard .cpp-greetings-widget
    .cpp-dashboard .cpp-widget-heading
    .cpp-dashboard .cpp-button{
        align-self:flex-start;
    }

    .cpp-dashboard .cpp-greeting-item{
        align-items:flex-start;
        flex-direction:column;
        gap:12px;
    }

    .cpp-dashboard .cpp-greeting-view{
        width:auto;
    }

}

@media (max-width:480px){

    .cpp-dashboard .cpp-greeting-meta{
        align-items:flex-start;
        flex-direction:column;
        gap:5px;
    }

    .cpp-dashboard .cpp-greeting-meta
    > span[aria-hidden="true"]{
        display:none;
    }

}

/* ==========================================================
   GREETINGS — CONVERSATION
   ========================================================== */

.cpp-ministry-detail-modal .cpp-greeting-conversation {
    margin-top: 28px;
    padding-top: 24px;
    border-top: 1px solid rgba(15, 23, 42, 0.10);
}

.cpp-ministry-detail-modal .cpp-greeting-conversation-heading {
    margin-bottom: 18px;
}

.cpp-ministry-detail-modal .cpp-greeting-conversation-heading h3 {
    margin: 0;
    font-size: 20px;
    line-height: 1.3;
    font-weight: 700;
    color: #111827;
}


/* ==========================================================
   CONVERSATION LIST
   ========================================================== */

.cpp-ministry-detail-modal .cpp-greeting-conversation-list {
    display: flex;
    flex-direction: column;
    gap: 14px;
    max-height: 420px;
    overflow-y: auto;
    overflow-x: hidden;
    padding: 4px 8px 8px 0;
    scroll-behavior: smooth;
}


/* Scrollbar */

.cpp-ministry-detail-modal .cpp-greeting-conversation-list::-webkit-scrollbar {
    width: 6px;
}

.cpp-ministry-detail-modal .cpp-greeting-conversation-list::-webkit-scrollbar-track {
    background: transparent;
}

.cpp-ministry-detail-modal .cpp-greeting-conversation-list::-webkit-scrollbar-thumb {
    background: rgba(15, 23, 42, 0.18);
    border-radius: 999px;
}

.cpp-ministry-detail-modal .cpp-greeting-conversation-list::-webkit-scrollbar-thumb:hover {
    background: rgba(15, 23, 42, 0.28);
}


/* ==========================================================
   MESSAGE BUBBLE
   ========================================================== */

.cpp-ministry-detail-modal .cpp-greeting-reply {
    width: fit-content;
    max-width: 78%;
    padding: 12px 15px;
    border-radius: 14px;
    word-break: break-word;
}


/*
 * Messages from the other participant.
 */
.cpp-ministry-detail-modal .cpp-greeting-reply-other {
    align-self: flex-start;
    background: #f3f4f6;
    border: 1px solid #e5e7eb;
    border-bottom-left-radius: 4px;
}


/*
 * Current user's messages.
 */
.cpp-ministry-detail-modal .cpp-greeting-reply-mine {
    align-self: flex-end;
    background: #ede9fe;
    border: 1px solid #ddd6fe;
    border-bottom-right-radius: 4px;
}


/* ==========================================================
   MESSAGE HEADER
   ========================================================== */

.cpp-ministry-detail-modal .cpp-greeting-reply-heading {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px 10px;
    margin-bottom: 6px;
}

.cpp-ministry-detail-modal .cpp-greeting-reply-heading strong {
    font-size: 13px;
    line-height: 1.4;
    font-weight: 700;
    color: #111827;
}

.cpp-ministry-detail-modal .cpp-greeting-reply-heading span {
    font-size: 11px;
    line-height: 1.4;
    color: #6b7280;
}


/* ==========================================================
   MESSAGE CONTENT
   ========================================================== */

.cpp-ministry-detail-modal .cpp-greeting-reply-message {
    font-size: 14px;
    line-height: 1.6;
    color: #374151;
}


/* ==========================================================
   EMPTY CONVERSATION
   ========================================================== */

.cpp-ministry-detail-modal .cpp-greeting-conversation-empty {
    padding: 18px;
    background: #f9fafb;
    border: 1px dashed #d1d5db;
    border-radius: 10px;
    text-align: center;
}

.cpp-ministry-detail-modal .cpp-greeting-conversation-empty p {
    margin: 0;
    font-size: 14px;
    line-height: 1.6;
    color: #6b7280;
}


/* ==========================================================
   REPLY FORM
   ========================================================== */

.cpp-ministry-detail-modal .cpp-greeting-reply-form {
    margin-top: 20px;
    padding-top: 18px;
    border-top: 1px solid rgba(15, 23, 42, 0.08);
}

.cpp-ministry-detail-modal .cpp-greeting-reply-form label {
    display: block;
    margin-bottom: 8px;
    font-size: 14px;
    line-height: 1.4;
    font-weight: 700;
    color: #111827;
}

.cpp-ministry-detail-modal .cpp-greeting-reply-textarea {
    display: block;
    width: 100%;
    min-height: 105px;
    padding: 12px 14px;
    border: 1px solid #d1d5db;
    border-radius: 10px;
    background: #ffffff;
    color: #111827;
    font: inherit;
    font-size: 14px;
    line-height: 1.6;
    resize: vertical;
    box-sizing: border-box;
    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease;
}

.cpp-ministry-detail-modal .cpp-greeting-reply-textarea:focus {
    outline: none;
    border-color: #6b3fc4;
    box-shadow:
        0 0 0 3px rgba(107, 63, 196, 0.12);
}

.cpp-ministry-detail-modal .cpp-greeting-reply-textarea::placeholder {
    color: #9ca3af;
}


/* ==========================================================
   REPLY FEEDBACK
   ========================================================== */

.cpp-ministry-detail-modal .cpp-greeting-reply-feedback {
    min-height: 20px;
    margin-top: 7px;
    font-size: 13px;
    line-height: 1.5;
    color: #4b5563;
}


/* ==========================================================
   REPLY ACTIONS
   ========================================================== */

.cpp-ministry-detail-modal .cpp-greeting-reply-actions {
    display: flex;
    justify-content: flex-end;
    margin-top: 8px;
}

.cpp-ministry-detail-modal .cpp-greeting-reply-actions button {
    display: inline-flex;
    width: 150px;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    padding: 10px 17px;
    border: 1px solid transparent;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    color: #ffffff;
    text-decoration: none;
    font-size: 14px;
    font-weight: 700;
    text-transform: capitalize;
    box-shadow: 0 8px 18px rgba(29, 78, 216, .2);
    transition: transform .18s ease, box-shadow .18s ease;
}
.cpp-ministry-detail-modal .cpp-greeting-reply-actions button:hover {
        color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 12px 24px rgba(29, 78, 216, .26);
}

.cpp-ministry-detail-modal .cpp-greeting-reply-submit:disabled {
    cursor: wait;
    opacity: 0.65;
}


/* ==========================================================
   RESPONSIVE
   ========================================================== */

@media (max-width: 767px) {

    .cpp-ministry-detail-modal .cpp-greeting-conversation {
        margin-top: 22px;
        padding-top: 20px;
    }

    .cpp-ministry-detail-modal .cpp-greeting-conversation-list {
        max-height: 360px;
        padding-right: 4px;
    }

    .cpp-ministry-detail-modal .cpp-greeting-reply {
        max-width: 88%;
    }

    .cpp-ministry-detail-modal .cpp-greeting-reply-heading {
        flex-direction: column;
        align-items: flex-start;
        gap: 2px;
    }

    .cpp-ministry-detail-modal .cpp-greeting-reply-actions {
        justify-content: stretch;
    }

    .cpp-ministry-detail-modal .cpp-greeting-reply-submit {
        width: 100%;
    }
}

@media (max-width: 480px) {

    .cpp-ministry-detail-modal .cpp-greeting-reply {
        max-width: 94%;
        padding: 11px 13px;
    }

    .cpp-ministry-detail-modal .cpp-greeting-reply-message {
        font-size: 13px;
    }
}

/* =========================================================
   Greetings Management Page
   ========================================================= */

.cpp-dashboard .cpp-greetings-page{
    display:grid;
    gap:26px;
    margin-top:26px;
}

.cpp-dashboard .cpp-greetings-table-section{
    min-width:0;
}

.cpp-dashboard .cpp-greetings-table{
    width:100%;
    background: #fff;
}

.cpp-dashboard .cpp-greetings-table th,
.cpp-dashboard .cpp-greetings-table td{
    vertical-align:middle;
}

.cpp-dashboard .cpp-greeting-actions{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:7px;
}

.cpp-dashboard .cpp-greeting-action{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:34px;
    padding:7px 10px;
    border:1px solid #dbe7ff;
    border-radius:8px;
    background:#fff;
    color:var(--cpp-primary,#1d4ed8);
    font-family:inherit;
    font-size:11px;
    font-weight:750;
    line-height:1;
    cursor:pointer;
    transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease; 
}

.cpp-dashboard .cpp-greeting-action:hover{
    background:var(
        --cpp-primary-soft,
        #eef4ff
    );
    transform: translateY(-1px);
}

.cpp-dashboard .cpp-greeting-actions .cpp-greeting-approve{
    border-color:#bbf7d0;
    background:#f0fdf4;
    color:#15803d;
    text-transform: capitalize;
}

.cpp-dashboard .cpp-greeting-actions .cpp-greeting-approve:hover{
    color:#15803d;
    background:#dcfce7;
}

.cpp-dashboard .cpp-greeting-actions .cpp-greeting-pending{ 
    border-color:#fde68a;
    background:#fffbeb;
    color:#b45309;
    text-transform: capitalize;
}

.cpp-dashboard .cpp-greeting-actions .cpp-greeting-pending:hover{
    color:#b45309;
    background:#fef3c7; 
}

.cpp-dashboard .cpp-greeting-actions .cpp-greeting-action:disabled{
    cursor:not-allowed;
    opacity:.6;
}


/* DataTables controls */

.cpp-dashboard .cpp-greetings-table-section .dataTables_wrapper{
    width:100%;
}

.cpp-dashboard .cpp-greetings-table-section
.dataTables_filter,
.cpp-dashboard .cpp-greetings-table-section
.dataTables_length{
    margin-bottom:16px;
}

.cpp-dashboard .cpp-greetings-table-section
.dataTables_filter input,
.cpp-dashboard .cpp-greetings-table-section
.dataTables_length select{
    margin-top: 6px;
    width: 100%;
    min-height: 46px;
    padding: 11px 13px;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    background: #fff;
    font: inherit;
    transition: border-color .2s ease, box-shadow .2s ease;
}
.cpp-dashboard .cpp-greetings-table-section
.dataTables_filter input:focus,
.cpp-dashboard .cpp-greetings-table-section
.dataTables_length select:focus{
    outline: none;
    border-color: #6b3fc4;
    box-shadow: 0 0 0 3px rgba(107, 63, 196, .12);
}


/* Responsive */

@media (max-width:767px){

    .cpp-dashboard .cpp-greetings-page{
        gap:18px;
        margin-top:18px;
    }

    .cpp-dashboard .cpp-greeting-actions{
        align-items:stretch;
        flex-direction:column;
    }

    .cpp-dashboard .cpp-greeting-action{
        width:100%;
    }

}

/* ==========================================
   Greetings DataTable Filters
========================================== */

.cpp-dashboard .cpp-greetings-table-tools{
    display:flex;
    align-items:flex-end;
    flex-wrap:wrap;
    gap:14px;
    margin:20px 0 18px;
    padding:16px;
    border:1px solid #ced4da;
    border-radius:12px;
    background:#f8fafc;
}

.cpp-dashboard .cpp-greetings-filter-group{
    display:flex;
    flex-direction:column;
    gap:6px;
    min-width:180px;
}

.cpp-dashboard .cpp-greetings-filter-group label{
    color:var(--cpp-text-heading,#172033);
    font-size:14px;
    font-weight:750;
}

.cpp-dashboard .cpp-greetings-filter-group select{
    width: 100%;
    color: var(--cpp-text-body);
    font: inherit;
    font-size: 14px;
    border: 1px solid #d1d5db !important;
    border-radius: 8px !important;
    background: #fff !important;
    min-height: 42px;
    padding: 10px 30px 10px 10px;
    transition: border-color .2s ease, box-shadow .2s ease;
}
.cpp-dashboard .cpp-greetings-filter-group select:focus{
        outline: none;
    border-color: #6b3fc4 !important;
    box-shadow: 0 0 0 3px rgba(107, 63, 196, .12);
}

.cpp-dashboard .cpp-greetings-filter-clear{
    appearance: none;
    display: inline-flex;
    min-height: 38px;
    align-items: center;
    justify-content: center;
    padding: 8px 13px;
    border: 1px solid #dbe7ff;
    border-radius: 10px;
    background: var(--cpp-primary-soft, #eef4ff);
    color: var(--cpp-primary, #1d4ed8);
    font: inherit;
    font-size: 11px;
    font-weight: 700;
    text-transform: capitalize;
    cursor: pointer;
    white-space: nowrap;
    text-decoration: none;
    transition: background-color .18s ease, border-color .18s ease, transform .18s ease;
}

.cpp-dashboard .cpp-greetings-filter-clear:hover,
.cpp-dashboard .cpp-greetings-filter-clear:focus{
    color: var(--cpp-primary, #1d4ed8);
    border-color: #c8d9ff;
    background: #fff !important;
    transform: translateY(-1px);
}

@media (max-width:600px){

    .cpp-dashboard .cpp-greetings-table-tools{
        align-items:stretch;
        flex-direction:column;
    }

    .cpp-dashboard .cpp-greetings-filter-group{
        width:100%;
    }

    .cpp-dashboard .cpp-greetings-filter-clear{
        width:100%;
    }

}

/* ==========================================
   Ministry Note Form Messages
========================================== */

.cpp-dashboard .cpp-ministry-note-message{
    display:none;
    padding:11px 13px;
    border-radius:9px;
    font-size:12px;
    font-weight:650;
    line-height:1.5;
}

.cpp-dashboard .cpp-ministry-note-message:not(:empty){
    display:block;
}

.cpp-dashboard .cpp-ministry-note-message-success{
    border:1px solid #bbf7d0;
    background:#f0fdf4;
    color:#15803d;
}

.cpp-dashboard .cpp-ministry-note-message-error{
    border:1px solid #fecaca;
    background:#fef2f2;
    color:#b91c1c;
}

.cpp-dashboard .cpp-ministry-note-submit:disabled{
    cursor:not-allowed;
    opacity:.65;
}

/* =========================================================
   Ministry Notes Feed
   ========================================================= */

.cpp-dashboard .cpp-ministry-notes-section{
    padding: 0;
    overflow:hidden;
}

.cpp-dashboard .cpp-ministry-notes-count{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    flex-shrink:0;
    min-height:28px;
    padding:5px 11px;
    border:1px solid #dbe7ff;
    border-radius:999px;
    background:var(--cpp-primary-soft,#eef4ff);
    color:var(--cpp-primary,#1d4ed8);
    font-size:11px;
    font-weight:800;
}

.cpp-dashboard .cpp-ministry-notes-list{
    display:flex;
    flex-direction:column;
}

.cpp-dashboard .cpp-ministry-note-card{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:22px;
    padding:20px 0;
    border-bottom:1px solid var(--cpp-border-soft,#edf1f5);
}

.cpp-dashboard .cpp-ministry-note-card:first-child{
    padding-top:4px;
}

.cpp-dashboard .cpp-ministry-note-card:last-child{
    border-bottom:0;
}

.cpp-dashboard .cpp-ministry-note-card-content{
    flex:1;
    min-width:0;
}

.cpp-dashboard .cpp-ministry-note-card-heading{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:9px;
}

.cpp-dashboard .cpp-ministry-note-card-heading h3{
    margin:0;
    color:var(--cpp-text-heading,#172033);
    font-size:14px;
    font-weight:750;
    line-height:1.45;
}

.cpp-dashboard .cpp-ministry-note-attachment-count{
    display:inline-flex;
    align-items:center;
    min-height:22px;
    padding:4px 8px;
    border:1px solid #e2e8f0;
    border-radius:999px;
    background:#f8fafc;
    color:#64748b;
    font-size:9px;
    font-weight:750;
}

.cpp-dashboard .cpp-ministry-note-meta{
    display:flex;
    align-items:center;
    flex-wrap:wrap;
    gap:7px;
    margin-top:7px;
    color:var(--cpp-text-muted,#8a94a6);
    font-size:11px;
}

.cpp-dashboard .cpp-ministry-note-excerpt{
    max-width:850px;
    margin:9px 0 0;
    color:var(--cpp-text-body);
    font-size:12px;
    line-height:1.65;
}

.cpp-dashboard .cpp-ministry-note-card-action{
    flex-shrink:0;
}

.cpp-dashboard .cpp-ministry-notes-footer{
    display:flex;
    justify-content:center;
    padding-top:20px;
    border-top:1px solid var(--cpp-border-soft,#edf1f5);
}

.cpp-dashboard .cpp-ministry-note-card .cpp-button {
    display: inline-flex;
    min-height: 36px;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    padding: 7px 11px;
    border: 1px solid #dbe7ff;
    border-radius: 9px;
    background: var(--cpp-primary-soft, #eef4ff);
    color: var(--cpp-primary, #1d4ed8);
    font-size: 11px;
    font-weight: 750;
    font-family: 'Merriweather Sans';
    text-transform: capitalize;
    text-decoration: none;
    transition: background-color .18s ease, border-color .18s ease, transform .18s ease;
}

.cpp-dashboard .cpp-ministry-note-card .cpp-button:hover {
    border-color: #c8d9ff;
    background: var(--cpp-primary-soft, #eef4ff);
    color: var(--cpp-primary, #1d4ed8);
    transform: translateY(-1px);
}

.cpp-ministry-child-page .cpp-ministry-comms-section {
    /*border: 1px solid #A542DE;
    background: linear-gradient(135deg, rgba(107, 63, 196, .08), rgba(242, 181, 68, .10)), #fff;*/
    position: relative;
}

.cpp-ministry-child-page .cpp-ministry-comms-section::after {
    content: "";
    position: absolute;
    top: -48px;
    right: -38px;
    width: 150px;
    height: 150px;
    border-radius: 50%;
    background: rgba(107, 63, 196, .045);
    pointer-events: none;
}

.cpp-ministry-notes-section .ministry-comms-top {
    min-height: 24px;
    margin-top: -2px;
    background-image: url('https://estacadachurch.com/wp-content/uploads/2026/08/blackboard-top-v2.jpg');
    background-position: 0.9px 0px;
    background-repeat: no-repeat;
    background-size: 100% auto;
}

.cpp-ministry-notes-section .ministry-comms-bottom {
    min-height: 122px;
    margin-top: -2px;
    background-image: url('https://estacadachurch.com/wp-content/uploads/2026/08/blackboard-bottom-v2.jpg');
    background-position: 0.9px 0px;
    background-repeat: no-repeat;
    background-size: 100% auto;
    position: relative;
}

.cpp-ministry-notes-section .ministry-comms-body {
    min-height: 445px;
    padding-top: 40px;
    padding-bottom: 60px;
    padding-left: 50px;
    padding-right: 50px;
    background-image: url('https://estacadachurch.com/wp-content/uploads/2026/08/blackboard-body-v6.jpg');
    background-position: 0.9px 0px;
    background-repeat: repeat-y;
    background-size: 100% auto;
}

.cpp-ministry-notes-section .ministry-comms-bottom:before {
    content: "";
    position: absolute;
    top: -38px;
    left: 32px;
    width: 60px;
    height: 47px;
    background-image: url('https://estacadachurch.com/wp-content/uploads/2026/08/decor-1.png'); 
    background-size: 60px 47px;
    background-repeat: no-repeat;
}

.cpp-ministry-notes-section .ministry-comms-bottom:after {
    content: "";
    position: absolute;
    top: -38px;
    right: 32px;
    width: 60px;
    height: 47px;
    background-image: url('https://estacadachurch.com/wp-content/uploads/2026/08/decor-2.png');
    background-size: 60px 47px;
    background-repeat: no-repeat;
}

.cpp-ministry-notes-section .ministry-comms-body h2 {
    color: #6F2D96;
    font-family: Merriweather, Georgia, serif;
    font-size: clamp(50px, 6vw, 60px);
    font-weight: 800;
    line-height: 1;
    text-shadow: 0 5px 16px rgba(0, 0, 0, .4), 0 0 34px rgba(255, 255, 255, .12);
}
.cpp-ministry-notes-section .ministry-comms-body .cpp-portal-section-description {
    margin: 0 0 15px;
    color: #fff;
    font-size: 16px;
}

.ministry-comms-body .cpp-ministry-note-card .cpp-ministry-note-card-heading h3 {
    color: #d8ad45;
    font-family: Merriweather, Georgia, serif;
    font-size: 26px;
}
.ministry-comms-body .cpp-ministry-note-card .cpp-ministry-note-meta {
    color: #fff;
    font-size: 12px;
}
.ministry-comms-body .cpp-ministry-note-card .cpp-ministry-note-excerpt {
    margin: 15px 0 0;
    color: #fff;
    font-size: 16px;
}

.ministry-comms-body .cpp-ministry-notes-list .cpp-ministry-note-card { border-bottom: 1px dashed var(--cpp-border-soft, #edf1f5); }

/* =========================================================
   Ministry Note Modal Attachments
   ========================================================= */

.cpp-dashboard .cpp-ministry-note-modal-attachments{
    margin-top:24px;
    padding-top:20px;
    border-top:1px solid var(--cpp-border-soft,#edf1f5);
}

.cpp-dashboard .cpp-ministry-note-modal-attachments h3{
    margin:0 0 12px;
    color:var(--cpp-text-heading,#172033);
    font-size:13px;
    font-weight:750;
}

.cpp-dashboard .cpp-ministry-note-attachment-list{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
}

.cpp-dashboard .cpp-ministry-note-attachment{
    display:inline-flex;
    align-items:center;
    min-height:36px;
    padding:8px 11px;
    border:1px solid #dbe7ff;
    border-radius:8px;
    background:var(--cpp-primary-soft,#eef4ff);
    color:var(--cpp-primary,#1d4ed8);
    font-size:11px;
    font-weight:700;
    text-decoration:none;
}

.cpp-dashboard .cpp-ministry-note-attachment:hover{
    background:#fff;
}


/* =========================================================
   Responsive Ministry Notes
   ========================================================= */

@media (max-width:700px){

    .cpp-dashboard .cpp-ministry-note-card{
        align-items:flex-start;
        flex-direction:column;
        gap:14px;
    }

    .cpp-dashboard .cpp-ministry-note-card-action{
        width:100%;
    }

    .cpp-dashboard .cpp-ministry-note-card-action .cpp-button{
        width:auto;
    }

}

@media (max-width:480px){

    .cpp-dashboard .cpp-ministry-note-meta{
        align-items:flex-start;
        flex-direction:column;
        gap:4px;
    }

    .cpp-dashboard .cpp-ministry-note-meta
    > span[aria-hidden="true"]{
        display:none;
    }

    .cpp-dashboard .cpp-ministry-note-card-heading{
        align-items:flex-start;
        flex-direction:column;
    }

    .cpp-dashboard .cpp-ministry-note-attachment-list{
        flex-direction:column;
    }

    .cpp-dashboard .cpp-ministry-note-attachment{
        width:100%;
    }

}

/* =========================================================
   Basic Accounting
   ========================================================= */

.cpp-dashboard .cpp-basic-accounting{
    display:grid;
    gap:26px;
    margin-top:26px;
}

#cpp-accounting-table_wrapper .dataTables_filter { margin-bottom: 20px; }
#cpp-accounting-table_wrapper .dataTables_filter input[type=search] {
    margin-top: 6px;
    width: 100%;
    min-height: 46px;
    padding: 11px 13px;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    background: #fff;
    font: inherit;
    transition: border-color .2s ease, box-shadow .2s ease;
}
#cpp-accounting-table_wrapper .dataTables_filter input[type=search]:focus {
    outline: none;
    border-color: #6b3fc4;
    box-shadow: 0 0 0 3px rgba(107, 63, 196, .12);
}
#cpp-accounting-table_wrapper .buttons-csv {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    padding: 10px 17px;
    border: 1px solid transparent;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    color: #ffffff;
    text-decoration: none;
    font-size: 14px;
    font-weight: 700;
    box-shadow: 0 8px 18px rgba(29, 78, 216, .2);
    transition: transform .18s ease, box-shadow .18s ease;
}
#cpp-accounting-table_wrapper .buttons-csv:hover,
#cpp-accounting-table_wrapper .buttons-csv:focus {
    color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 12px 24px rgba(29, 78, 216, .26);
}
.cpp-accounting-records .cpp-accounting-table-tools input,
.cpp-accounting-records .cpp-accounting-table-tools select {
        width: 100%;
    border: 1px solid #d1d5db !important;
    border-radius: 8px !important;
    background: #fff !important;
    transition: border-color .2s ease, box-shadow .2s ease;
}
.cpp-accounting-records .cpp-accounting-table-tools input:focus,
.cpp-accounting-records .cpp-accounting-table-tools select:focus {
    outline: none;
    border-color: #6b3fc4!important;
    box-shadow: 0 0 0 3px rgba(107, 63, 196, .12);
}


/* Summary */

.cpp-dashboard .cpp-accounting-summary{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:18px;
}

.cpp-dashboard .cpp-accounting-summary-card{
    padding:24px;
    border:1px solid #ced4da;
    border-radius:16px;
    background:#fff;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
    transition: opacity 0.25s ease, transform 0.25s ease;
}
.cpp-dashboard .cpp-accounting-summary-card:hover{
        transform: translateY(-2px);
    border-color: #A542DE;
    box-shadow: var(--cpp-shadow-md);
}

.cpp-dashboard .cpp-accounting-summary-label{
    display:block;
    margin-bottom:0px;
    color:#172033!important;
    font-size:16px!important;
    font-weight:700!important;
    font-family: var(--cpp-font-body)!important;
    letter-spacing: -.025em !important;
}

.cpp-dashboard .cpp-accounting-summary-value{
    display:block;
    font-size: clamp(26px, 3vw, 38px) !important;
    font-weight: 760 !important;
        font-family: var(--cpp-font-body) !important;
    letter-spacing: -.035em;
    line-height: 1.15;
}

.cpp-dashboard .cpp-accounting-summary-income
.cpp-accounting-summary-value{
    color:#15803d;
}

.cpp-dashboard .cpp-accounting-summary-expense
.cpp-accounting-summary-value{
    color:#b91c1c;
}


/* Charts */

.cpp-dashboard .cpp-accounting-charts{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:18px;
}

.cpp-dashboard .cpp-accounting-chart{
    min-width:0;
}

.cpp-accounting-charts .cpp-accounting-chart {
    border: 1px solid #8F8F8F!important;
    box-shadow: var(--cpp-shadow-sm)!important;
    transition: border-color var(--cpp-transition), box-shadow var(--cpp-transition), transform var(--cpp-transition);
}
.cpp-accounting-charts .cpp-accounting-chart:hover {
    border-color: #A542DE!important;
    box-shadow: var(--cpp-shadow-md)!important;
}

.cpp-accounting-chart h2{
    margin:0 0 18px;
    font-size:15px;
}

.cpp-dashboard .cpp-accounting-chart-canvas{
    position:relative;
    min-height:280px;
}


/* Records */

.cpp-dashboard .cpp-accounting-positive{
    color:#15803d;
    font-weight:700;
}

.cpp-dashboard .cpp-accounting-negative{
    color:#b91c1c;
    font-weight:700;
}

.cpp-dashboard .cpp-accounting-type{
    display:inline-flex;
    align-items:center;
    min-height:24px;
    padding:4px 9px;
    border-radius:999px;
    font-size:10px;
    font-weight:800;
}

.cpp-dashboard .cpp-accounting-type-income{
    background:#f0fdf4;
    color:#15803d;
}

.cpp-dashboard .cpp-accounting-type-expense{
    background:#fef2f2;
    color:#b91c1c;
}

.cpp-dashboard .cpp-accounting-total-label{
    text-align:right;
}


/* Responsive */

@media (max-width:1000px){

    .cpp-dashboard .cpp-accounting-charts{
        grid-template-columns:1fr;
    }

}

@media (max-width:767px){

    .cpp-dashboard .cpp-accounting-summary{
        grid-template-columns:1fr;
    }

    .cpp-dashboard .cpp-basic-accounting{
        gap:18px;
        margin-top:18px;
    }

}

/* =========================================================
   Basic Accounting Entry Form
   ========================================================= */

.cpp-dashboard .cpp-accounting-entry-section{
    min-width:0;
}

.cpp-dashboard .cpp-accounting-form-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:18px;
}

.cpp-dashboard .cpp-accounting-description-field{
    grid-column:span 2;
}

.cpp-dashboard .cpp-accounting-notes-field{
    grid-column:span 2;
}

.cpp-dashboard .cpp-accounting-form-actions{
    display:flex;
    justify-content:flex-start;
    margin-top:20px;
}

.cpp-dashboard .cpp-accounting-form-message{
    display:none;
    margin-top:18px;
    padding:11px 13px;
    border-radius:9px;
    font-size:12px;
    font-weight:650;
    line-height:1.5;
}

.cpp-dashboard .cpp-accounting-form-message:not(:empty){
    display:block;
}

.cpp-dashboard .cpp-accounting-form-message-success{
    border:1px solid #bbf7d0;
    background:#f0fdf4;
    color:#15803d;
}

.cpp-dashboard .cpp-accounting-form-message-error{
    border:1px solid #fecaca;
    background:#fef2f2;
    color:#b91c1c;
}

.cpp-dashboard .cpp-accounting-entry-form button:disabled{
    cursor:not-allowed;
    opacity:.65;
}

.cpp-accounting-form-actions .cpp-button {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    padding: 10px 17px;
    border: 1px solid transparent;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    color: #ffffff;
    text-decoration: none;
    font-size: 14px;
    font-weight: 700;
    box-shadow: 0 8px 18px rgba(29, 78, 216, .2);
    transition: transform .18s ease, box-shadow .18s ease;
}

.cpp-accounting-form-actions .cpp-button:hover {
    color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 12px 24px rgba(29, 78, 216, .26);
}

.cpp-accounting-edit-form .cpp-button {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    padding: 10px 17px;
    border: 1px solid transparent;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    color: #ffffff;
    text-decoration: none;
    font-size: 14px;
    font-weight: 700;
    box-shadow: 0 8px 18px rgba(29, 78, 216, .2);
    transition: transform .18s ease, box-shadow .18s ease;
}

.cpp-accounting-edit-form .cpp-button:hover {
    color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 12px 24px rgba(29, 78, 216, .26);
}

.cpp-accounting-modal .cpp-accounting-edit-form .cpp-form-field label {
    display: block;
    margin-bottom: 7px;
    font-size: 14px;
    font-weight: 700;
}


@media (max-width:1100px){

    .cpp-dashboard .cpp-accounting-form-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

}


@media (max-width:650px){

    .cpp-dashboard .cpp-accounting-form-grid{
        grid-template-columns:1fr;
    }

    .cpp-dashboard .cpp-accounting-description-field,
    .cpp-dashboard .cpp-accounting-notes-field{
        grid-column:auto;
    }

    .cpp-dashboard .cpp-accounting-form-actions
    .cpp-button{
        width:100%;
    }

}

/* =========================================================
   Accounting Filters
   ========================================================= */

.cpp-dashboard .cpp-accounting-table-tools{
    display:flex;
    align-items:flex-end;
    flex-wrap:wrap;
    gap:12px;
    margin:20px 0;
    padding:16px;
    border:1px solid #ced4da;
    border-radius:12px;
    background:#f8fafc;
}

.cpp-dashboard .cpp-accounting-filter-field{
    display:flex;
    flex-direction:column;
    gap:6px;
    min-width:150px;
}

.cpp-dashboard .cpp-accounting-filter-field label{
    display: block;
    margin-bottom: 7px;
    color: var(--cpp-text-heading);
    font-size: 14px;
    font-weight: 700;
}

.cpp-dashboard .cpp-accounting-filter-field select,
.cpp-dashboard .cpp-accounting-filter-field input{
        width: 100%;
    color: var(--cpp-text-body);
    font: inherit;
    font-size: 14px;
    font-weight: 500;
    border: 1px solid #d1d5db !important;
    border-radius: 8px !important;
    background: #fff !important;
    min-height: 42px;
    padding: 10px 30px 10px 10px;
    transition: border-color .2s ease, box-shadow .2s ease;
}
.cpp-dashboard .cpp-accounting-filter-field select:focus,
.cpp-dashboard .cpp-accounting-filter-field input"focus{
    outline: none;
    border-color: #6b3fc4;
    box-shadow: 0 0 0 3px rgba(107, 63, 196, .12);
}

.cpp-dashboard .cpp-accounting-clear-filters{
    min-height:38px;
    padding:7px 12px;
    border:1px solid #dbe7ff;
    border-radius:8px;
    background:#fff;
    cursor:pointer;
}

/* =========================================================
   Accounting Table
   ========================================================= */
.cpp-dashboard .cpp-basic-accounting .cpp-accounting-table {
    font-size: 14px;
    font-weight: 400;
    font-family: var(--cpp-font-body);
    background-color: #fff;
        width: 100% !important;
        border-bottom: 1px solid rgba(0, 0, 0, 0.3);
}

.cpp-dashboard .cpp-basic-accounting .cpp-accounting-table thead tr th {
    padding: 20px 12px !important;
    background: #6F2D96;
    color: #fff;
    font-weight: bold;
    font-size: 1em;
    text-align: left;
    white-space: nowrap;
}

.cpp-dashboard .cpp-basic-accounting .cpp-accounting-table tbody tr td {
    padding: 14px 12px !important;
    color: var(--cpp-text-body);
    font-size: 14px;
    vertical-align: middle;
    border-bottom: 1px solid var(--cpp-border-soft, #edf1f5);
}


/* =========================================================
   Accounting Actions
   ========================================================= */

.cpp-dashboard .cpp-accounting-row-actions{
    display:flex;
    gap:6px;
}

.cpp-dashboard .cpp-accounting-action{
    min-height:32px;
    padding:6px 10px;
    border:1px solid #dbe7ff;
    border-radius:7px;
    background:#fff;
    color:var(--cpp-primary,#1d4ed8);
    font-size:11px;
    font-weight:700;
    cursor:pointer;
    text-transform: capitalize;
}

.cpp-dashboard .cpp-accounting-action:hover{
        border-color: #c8d9ff;
    background: var(--cpp-primary-soft, #eef4ff);
    color: var(--cpp-primary, #1d4ed8);
    transform: translateY(-1px);
}


/* =========================================================
   Accounting Modal
   ========================================================= */

body.cpp-accounting-modal-open{
    overflow:hidden;
}

.cpp-dashboard .cpp-accounting-modal{
    position:fixed;
    inset:0;
    z-index:99999;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:24px;
}

.cpp-dashboard .cpp-accounting-modal[hidden]{
    display:none;
}

.cpp-dashboard .cpp-accounting-modal-backdrop{
    position:absolute;
    inset:0;
    background:rgba(15,23,42,.65);
}

.cpp-dashboard .cpp-accounting-modal-dialog{
    position:relative;
    z-index:1;
    width:min(760px,100%);
    max-height:calc(100vh - 48px);
    overflow:auto;
    padding:28px;
    border-radius:18px;
    background:#fff;
}

.cpp-dashboard .cpp-accounting-modal-close{
    position:absolute;
    top:14px;
    right:16px;
    width:38px;
    height:38px;
    border:0;
    border-radius:50%;
    background:#f1f5f9;
    font-size:23px;
    cursor:pointer;
}

.cpp-accounting-modal .cpp-accounting-modal-body h2 {
        margin: 0px;
    color: var(--cpp-text-heading);
    font-size: 26px;
    font-weight: 740;
    letter-spacing: -.025em;
    line-height: 1.3;
}

.cpp-dashboard .cpp-accounting-record-details{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:15px;
    margin-top:22px;
}

.cpp-dashboard .cpp-accounting-record-details > div{
    padding: 15px;
    border: 1px solid #ced4da;
    border-radius: 13px;
    background: #f5f3ff;
}

.cpp-dashboard .cpp-accounting-record-details span,
.cpp-dashboard .cpp-accounting-record-notes > span{
        display: block;
    margin-bottom: 5px;
    color: var(--cpp-text-muted, #8a94a6);
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
}
.cpp-dashboard .cpp-accounting-record-details strong {
    display: block;
    color: #334155;
    font-size: 15px;
    line-height: 1.5;
}

.cpp-dashboard .cpp-accounting-record-notes{
    margin-top:16px;
    padding: 15px;
    border: 1px solid #ced4da;
    border-radius: 13px;
    background: #f5f3ff;
}

.cpp-dashboard .cpp-accounting-record-notes p{
    display: block;
    color: var(--cpp-text-heading);
    font-size: 16px;
    line-height: 1.5;
}

.cpp-accounting-table-tools .cpp-accounting-clear-filters {
        appearance: none;
    display: inline-flex;
    min-height: 38px;
    align-items: center;
    justify-content: center;
    padding: 8px 13px;
    border: 1px solid #dbe7ff;
    border-radius: 10px;
    background: var(--cpp-primary-soft, #eef4ff);
    color: var(--cpp-primary, #1d4ed8);
    font: inherit; 
    font-size: 12px;
    font-weight: 700;
    text-transform: capitalize;
    cursor: pointer;
    white-space: nowrap;
    transition: background-color .18s ease, border-color .18s ease, transform .18s ease;
}

.cpp-accounting-table-tools .cpp-accounting-clear-filters:hover {
    color: var(--cpp-primary, #1d4ed8);
    border-color: #c8d9ff;
    background: #ffffff;
    transform: translateY(-1px);
}


@media (max-width:650px){

    .cpp-dashboard .cpp-accounting-table-tools{
        align-items:stretch;
        flex-direction:column;
    }

    .cpp-dashboard .cpp-accounting-filter-field{
        width:100%;
    }

    .cpp-dashboard .cpp-accounting-record-details{
        grid-template-columns:1fr;
    }

    .cpp-dashboard .cpp-accounting-row-actions{
        flex-direction:column;
    }

    .cpp-dashboard .cpp-accounting-action{
        width:100%;
    }

}

/* =========================================================
   Messaging / Church Inbox
   ========================================================= */

.cpp-dashboard .cpp-messaging-page{
    display:grid;
    gap:22px;
    margin-top:24px;
}

.cpp-dashboard .cpp-messaging-widget{
    min-width:0;
}

.cpp-dashboard .cpp-messaging-content{
    margin-top:18px;
}


/* Better Messages integration */

.cpp-dashboard .cpp-messaging-page
.bp-messages-wrap{
    width:100%;
    max-width:none;
    margin:0;
}

.cpp-dashboard .cpp-messaging-page
.bp-messages-wrap,
.cpp-dashboard .cpp-messaging-page
.bp-messages-wrap *{
    box-sizing:border-box;
}


/* Missing plugin notice */

.cpp-dashboard .cpp-messaging-plugin-notice{
    padding:20px;

    border:1px solid #fecaca;

    border-radius:12px;

    background:#fef2f2;

    color:#991b1b;
}

.cpp-dashboard .cpp-messaging-plugin-notice strong{
    display:block;

    margin-bottom:6px;

    font-size:14px;

    font-weight:800;
}

.cpp-dashboard .cpp-messaging-plugin-notice p{
    margin:0;

    font-size:12px;

    line-height:1.6;
}


/* Responsive */

@media (max-width:700px){

    .cpp-dashboard .cpp-messaging-page{
        margin-top:18px;
    }

}

/* =========================================================
   Profile Picture
   ========================================================= */

.cpp-dashboard .cpp-profile-photo-card{
    min-width:0;
}

.cpp-profile-photo-card .cpp-profile-photo-layout{
    display:flex;
    align-items:center;
    gap:26px;
    margin-top:20px;
}

.cpp-profile-photo-card .cpp-profile-photo-preview{
    flex:0 0 auto;
}

.cpp-profile-photo-card .cpp-profile-photo-controls{
    display:flex;
    align-items:flex-start;
    flex-direction:column;
    gap:12px;
    min-width:0;
}

.cpp-profile-photo-card .cpp-profile-photo-form{
    display:flex;
    align-items:flex-start;
    flex-direction:column;
    gap:10px;
}

.cpp-profile-photo-card .cpp-profile-photo-label{
    color:var(--cpp-text-heading,#172033);
    font-size:12px;
    font-weight:800;
}

.cpp-profile-photo-card .cpp-profile-photo-form input[type="file"]{
    width:100%;
    max-width:420px;
    padding:9px;

    border:1px solid #d9deea;
    border-radius:9px;

    background:#fff;
}

.cpp-profile-photo-card .cpp-profile-photo-form small{
    color:var(--cpp-text-muted,#64748b);
    font-size:10px;
    line-height:1.5;
}

.cpp-profile-photo-card .cpp-profile-photo-remove{
    padding:8px 12px;

    border:1px solid #fecaca;
    border-radius:8px;

    background:#fff;

    color:#b91c1c;

    font-size:11px;
    font-weight:750;

    cursor:pointer;
}


/* Uploaded avatar */

.cpp-profile-photo-card .cpp-avatar-photo{
    overflow:hidden;

    border-radius:50%;

    background:#e5e7eb;
}

.cpp-profile-photo-card .cpp-avatar-photo img{
    display:block;

    width:100%;
    height:100%;

    object-fit:cover;
    object-position:center;

    border-radius:inherit;
}

.cpp-profile-photo-card .cpp-profile-photo-controls form .cpp-primary-button {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    padding: 10px 17px;
    border: 1px solid transparent;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    color: #ffffff;
    text-decoration: none;
    font-size: 14px;
    font-weight: 700;
    box-shadow: 0 8px 18px rgba(29, 78, 216, .2);
    transition: transform .18s ease, box-shadow .18s ease;
}

.cpp-profile-photo-card .cpp-profile-photo-controls form .cpp-primary-button:hover,
.cpp-profile-photo-card .cpp-profile-photo-controls form .cpp-primary-button:focus {
        color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 12px 24px rgba(29, 78, 216, .26);
}


/* Portal header avatar */

.cpp-dashboard .cpp-user-avatar,
.cpp-dashboard .cpp-user-menu-summary-avatar{
    object-fit:cover;
    object-position:center;
}


@media (max-width:600px){

    .cpp-dashboard .cpp-profile-photo-layout{
        align-items:flex-start;
        flex-direction:column;
    }

    .cpp-profile-photo-card .cpp-profile-photo-controls,
    .cpp-profile-photo-card .cpp-profile-photo-form{
        width:100%;
    }

}

/* =========================================================
   Kids Ministry — Bible Stories
   ========================================================= */

.cpp-ministry-child-page .cpp-bible-stories-section{
    width:100%;
}

.cpp-bible-stories-section .cpp-bible-stories-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:20px;
    margin-top:20px;
}

.cpp-bible-stories-section .cpp-bible-story-card{
    display:flex;
    flex-direction:column;
    min-width:0;
    overflow:hidden;
    border:1px solid #ced4da;
    border-radius:16px;
    background:#fff;
    box-shadow:
        0 8px 24px rgba(15,23,42,.06);
}

.cpp-bible-stories-section .cpp-bible-story-image{
    position:relative;
    width:100%;
    aspect-ratio:16 / 9;
    overflow:hidden;
    background:#f1f5f9;
}

.cpp-bible-stories-section .cpp-bible-story-image img{
    width:100%;
    height:100%;

    object-fit:cover;
}

.cpp-bible-stories-section .cpp-bible-story-image-placeholder{
    width:100%;
    height:100%;
    background:
        linear-gradient(
            135deg,
            #efe7f7,
            #f8f5fb
        );
}

.cpp-bible-stories-section .cpp-bible-story-card-content{
    display:flex;
    flex:1;
    flex-direction:column;
    padding:18px;
}

.cpp-bible-stories-section .cpp-bible-story-meta{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    color:#64748b;
    font-size:10px;
    font-weight:650;
}

.cpp-bible-stories-section .cpp-bible-story-card-content h3{
    margin:10px 0 8px;
    color:#172033;
    font-size:16px;
    font-weight:800;
    line-height:1.35;
}

.cpp-bible-stories-section .cpp-bible-story-card-content p{
    flex:1;
    margin:0 0 16px;
    color:#64748b;
    font-size:12px;
    line-height:1.65;
}

.cpp-bible-stories-section .cpp-bible-stories-load-more-wrap{
    display:flex;
    justify-content:center;
    margin-top:24px;
}

.cpp-bible-stories-section .cpp-bible-stories-grid .cpp-button {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    padding: 10px 17px;
    border: 1px solid transparent;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    color: #ffffff;
    text-decoration: none;
    font-size: 14px;
    font-weight: 700;
    box-shadow: 0 8px 18px rgba(29, 78, 216, .2);
    transition: transform .18s ease, box-shadow .18s ease;
}
.cpp-bible-stories-section .cpp-bible-stories-grid .cpp-button:hover,
.cpp-bible-stories-section .cpp-bible-stories-grid .cpp-button:focus {
        color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 12px 24px rgba(29, 78, 216, .26);
}


/* Modal */

.cpp-dashboard .cpp-bible-story-modal{
    position:fixed;
    inset:0;
    z-index:99999;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:24px;
}

.cpp-dashboard .cpp-bible-story-modal[hidden]{
    display:none;
}

.cpp-dashboard .cpp-bible-story-modal-backdrop{
    position:absolute;
    inset:0;
    background:rgba(15,23,42,.72);
}

.cpp-dashboard .cpp-bible-story-modal-dialog{
    position:relative;
    z-index:1;
    width:min(800px,100%);
    max-height:calc(100vh - 48px);
    overflow:auto;
    padding:28px;
    border-radius:18px;
    background:#fff;
}

.cpp-dashboard .cpp-bible-story-modal-close{
    position:absolute;
    top:14px;
    right:16px;
    width:38px;
    height:38px;
    border:0;
    border-radius:50%;
    background:#f1f5f9;
    font-size:24px;
    cursor:pointer;
}

.cpp-bible-story-modal .cpp-bible-story-modal-image{
    display:block;
    width:100%;
    max-height:360px;
    margin-bottom:20px;
    border-radius:12px;
    object-fit:cover;
}

.cpp-bible-story-modal .cpp-bible-story-modal-meta{
    color:#64748b;
    font-size:11px;
    font-weight:650;
}

.cpp-bible-story-modal .cpp-bible-story-modal-content h2{
    margin:8px 0 18px;
    font-size:26px;
}

.cpp-bible-story-modal .cpp-bible-story-modal-body{
    color:#334155;
    font-size:14px;
    line-height:1.8;
}


/* Responsive */

@media (max-width:1000px){

    .cpp-bible-stories-section .cpp-bible-stories-grid{
        grid-template-columns:
            repeat(2,minmax(0,1fr));
    }

}

@media (max-width:620px){

    .cpp-bible-stories-section .cpp-bible-stories-grid{
        grid-template-columns:1fr;
    }

    .cpp-dashboard .cpp-bible-story-modal{
        padding:12px;
    }

    .cpp-dashboard .cpp-bible-story-modal-dialog{
        padding:22px 18px;
    }

}

/* =========================================================
   Attendance Tracker — Frontend Form
   ========================================================= */

.cpp-attendance-form-section .cpp-attendance-form{
    display:flex;
    flex-direction:column;
    gap:22px;
    margin-top:22px;
}

.cpp-attendance-form-section .cpp-attendance-attendees-section{
    padding-top:20px;
    border-top:1px solid #ced4da;
}

.cpp-attendance-form-section .cpp-attendance-attendees-heading h3{
    margin:0;
    font-size:20px;
    font-weight:800;
}

.cpp-attendance-form-section .cpp-attendance-attendees-heading p{
    margin:5px 0 0;
    color:#64748b;
    font-size:14px;
}

.cpp-attendance-form-section .cpp-attendance-attendee-rows{
    display:flex;
    flex-direction:column;
    gap:12px;
    margin-top:16px;
}

.cpp-attendance-form-section .cpp-attendance-attendee-row{
    display:grid;
    grid-template-columns:
        minmax(0,2fr)
        minmax(160px,1fr)
        auto;

    gap:12px;
    align-items:end;

    padding:14px;

    border:1px solid #ced4da;
    border-radius:12px;

    background:#f8fafc;
}

.cpp-attendance-form-section .cpp-attendance-remove-attendee{
    min-height:44px;
    padding:8px 12px;

    border:1px solid #fecaca;
    border-radius:8px;

    background:#fff;

    color:#b91c1c;

    font-size:11px;
    font-weight:700;

    cursor:pointer;
}

.cpp-attendance-form-section .cpp-attendance-add-attendee{
    margin-top:14px;
}

.cpp-attendance-total-card{
    display:flex;
    align-items:center;
    flex-direction:column;

    padding:22px;

    border:1px solid rgba(111,45,150,.18);
    border-radius:14px;

    background:
        linear-gradient(
            135deg,
            rgba(111,45,150,.07),
            rgba(111,45,150,.02)
        );

    text-align:center;
}

.cpp-attendance-form-section .cpp-attendance-total-card span{
    color:#172033;
    font-size:18px;
    font-weight:700;
}

.cpp-attendance-form-section .cpp-attendance-total-card strong{
    margin-top:5px;
    color:#6F2D96;
    font-size:34px;
    font-weight:850;
    line-height:1;
}

.cpp-attendance-form-section .cpp-attendance-total-card small{
    margin-top:7px;
    color:var(--cpp-text-body);
    font-size:14px;
}

.cpp-attendance-form-section .cpp-attendance-recorded-by{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    padding:14px 16px;
    border-radius:10px;
    background:#f8fafc;
    border: 1px solid #ced4da;
}

.cpp-attendance-form-section .cpp-attendance-recorded-by span{
    color:#64748b;
    font-size:14px;
    font-weight:700;
}

.cpp-attendance-form-section .cpp-attendance-recorded-by strong{
    color:#172033;
    font-size:14px;
}

.cpp-attendance-form .cpp-profile-fields-grid .cpp-profile-field:first-child { margin-bottom: 20px; }
.cpp-attendance-form .cpp-profile-field input,
.cpp-attendance-form .cpp-profile-field select {
    width: 100%;
    min-height: 50px;
    padding: 11px 13px;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    background: #fff;
    font: inherit;
    transition: border-color .2s ease, box-shadow .2s ease;
}
.cpp-attendance-form .cpp-profile-field input:focus,
.cpp-attendance-form .cpp-profile-field select:focus {
    outline: none;
    border-color: #6b3fc4!important;
    box-shadow: 0 0 0 3px rgba(107, 63, 196, .12);
}
.cpp-attendance-form .cpp-profile-field textarea {
    width: 100%;
    padding: 11px 13px;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    background: #fff;
    font: inherit;
    transition: border-color .2s ease, box-shadow .2s ease;
}
.cpp-attendance-form .cpp-profile-field textarea:focus {
    outline: none;
    border-color: #6b3fc4;
    box-shadow: 0 0 0 3px rgba(107, 63, 196, .12);
}

.cpp-attendance-form-section .cpp-button {
        display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    padding: 10px 17px;
    border: 1px solid transparent;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    color: #ffffff;
    text-decoration: none;
    font-size: 14px;
    font-weight: 700;
    box-shadow: 0 8px 18px rgba(29, 78, 216, .2);
    transition: transform .18s ease, box-shadow .18s ease;
}

.cpp-attendance-form-section .cpp-button:hover {
    color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 12px 24px rgba(29, 78, 216, .26);
}


@media (max-width:760px){

    .cpp-attendance-form-section .cpp-attendance-attendee-row{
        grid-template-columns:1fr;
    }

    .cpp-attendance-form-section .cpp-attendance-remove-attendee{
        width:100%;
    }

}

/* =========================================================
   Attendance Records
   ========================================================= */

.cpp-dashboard .cpp-attendance-records{
    margin-top:24px;
}

.cpp-attendance-records .cpp-attendance-table-event{
    color:#172033;
    font-weight:750;
}

.cpp-attendance-records .cpp-attendance-table-total{
    display:inline-flex;
    align-items:center;
    justify-content:center;

    min-width:38px;
    min-height:30px;

    padding:5px 10px;

    border-radius:8px;

    background:rgba(111,45,150,.08);

    color:#6F2D96;
    font-weight:800;
}

.cpp-attendance-records .cpp-attendance-type-badge{
    display:inline-flex;
    align-items:center;

    padding:6px 10px;

    border:1px solid rgba(111,45,150,.14);
    border-radius:999px;

    background:rgba(111,45,150,.07);

    color:#6F2D96;

    font-size:11px;
    font-weight:750;
}

.cpp-attendance-records .cpp-attendance-view-button,
.cpp-attendance-records .cpp-attendance-edit-link{
    display:inline-flex;
    align-items:center;
    justify-content:center;

    min-height:34px;

    padding:7px 12px;

    border-radius:7px;

    font-size:11px;
    font-weight:750;

    text-decoration:none;

    cursor:pointer;
}

.cpp-attendance-records .cpp-attendance-view-button{
    border:1px solid #6F2D96;

    background:#6F2D96;

    color:#fff;
}

.cpp-attendance-records .cpp-attendance-edit-link{
    border:1px solid #e2e8f0;

    background:#fff;

    color:#334155;
}


/* =========================================================
   Attendance Details Modal
   ========================================================= */

.cpp-dashboard .cpp-attendance-details-modal{
    position:fixed;
    inset:0;

    z-index:99999;
}

.cpp-dashboard .cpp-attendance-details-modal[hidden]{
    display:none;
}

.cpp-dashboard .cpp-attendance-modal-backdrop{
    position:absolute;
    inset:0;

    background:rgba(15,23,42,.62);

    backdrop-filter:blur(3px);
}

.cpp-dashboard .cpp-attendance-modal-dialog{
    position:absolute;

    top:50%;
    left:50%;

    width:min(720px, calc(100% - 32px));
    max-height:calc(100vh - 50px);

    transform:translate(-50%, -50%);

    overflow:auto;

    border-radius:18px;

    background:#fff;

    box-shadow:
        0 24px 70px rgba(15,23,42,.28);
}

.cpp-dashboard .cpp-attendance-modal-header{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;

    gap:20px;

    padding:22px 24px;

    border-bottom:1px solid #ced4da;
}

.cpp-dashboard .cpp-attendance-modal-eyebrow{
    display:block;
    margin-bottom:5px;
    color:#6F2D96;
    font-size:12px;
    font-weight:800;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.cpp-dashboard .cpp-attendance-modal-header h2{
       margin: 0px;
    color: var(--cpp-text-heading);
    font-size: 26px;
    font-weight: 740;
    letter-spacing: -.025em;
    line-height: 1.3;
}

.cpp-dashboard .cpp-attendance-modal-close{
    display:flex;
    align-items:center;
    justify-content:center;
    width:36px;
    height:36px;
    padding:0;
    border:1px solid #e2e8f0;
    border-radius:9px;
    background:#fff;
    color:#475569;
    font-size:24px;
    line-height:1;
    cursor:pointer;
}

.cpp-dashboard .cpp-attendance-modal-body{
    padding:24px;
}

.cpp-attendance-modal-loading{
    padding:40px;
    color:#64748b;
    text-align:center;
}

.cpp-attendance-modal-summary-grid{
    display:grid;
    grid-template-columns:
        repeat(3, minmax(0,1fr));

    gap:12px;
}

.cpp-dashboard .cpp-attendance-modal-detail{
    display:flex;
    flex-direction:column;
    gap:5px;
    padding:14px;
    border: 1px solid #ced4da;
    border-radius: 13px;
    background: #f5f3ff;
}

.cpp-dashboard .cpp-attendance-modal-detail span{
    display: block;
    margin-bottom: 5px;
    color: var(--cpp-text-muted, #8a94a6);
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
}

.cpp-dashboard .cpp-attendance-modal-detail strong{
       display: block;
    color: #334155;
    font-size: 15px;
    line-height: 1.5;
}

.cpp-dashboard .cpp-attendance-modal-section{
    margin-top:24px;
}

.cpp-dashboard .cpp-attendance-modal-section h3{
    margin:0 0 12px;
    color:#172033;
        font-size: 16px;
    font-weight: 600;
}

.cpp-dashboard .cpp-attendance-modal-attendee-list{
    display:grid;
    grid-template-columns:
        repeat(2, minmax(0,1fr));

    gap:9px;
}

.cpp-dashboard .cpp-attendance-modal-attendee{
    display:flex;
    align-items:center;
    gap:10px;
    padding:11px;
    border:1px solid #6F2D96;
    border-radius:9px;
}

.cpp-dashboard .cpp-attendance-modal-attendee-number{
    display:flex;
    align-items:center;
    justify-content:center;
    flex:0 0 28px;
    width:28px;
    height:28px;
    border-radius:50%;
    background:rgba(111,45,150,.09);
    color:#6F2D96;
    font-size:12px;
    font-weight:800;
}

.cpp-dashboard .cpp-attendance-modal-attendee div{
    display:flex;
    flex-direction:column;
    min-width:0;
}

.cpp-dashboard .cpp-attendance-modal-attendee strong{
    color:#172033;
    font-size:14px;
}

.cpp-dashboard .cpp-attendance-modal-attendee div span{
    margin-top:2px;
    color:#64748b;
    font-size:12px;
}

.cpp-dashboard .cpp-attendance-modal-notes{
    margin:0;
    padding:15px;
    border-radius:10px;
    background: #f5f3ff;
    color:#475569;
    font-size:14px;
    line-height:1.7;
    border: 1px solid #ced4da;
}

.cpp-dashboard .cpp-attendance-modal-empty{
    margin:0;

    color:#64748b;

    font-size:11px;
}

body.cpp-modal-open{
    overflow:hidden;
}


@media (max-width:760px){

    .cpp-dashboard .cpp-attendance-modal-summary-grid{
        grid-template-columns:1fr 1fr;
    }

    .cpp-dashboard .cpp-attendance-modal-attendee-list{
        grid-template-columns:1fr;
    }

}


@media (max-width:480px){

    .cpp-dashboard .cpp-attendance-modal-summary-grid{
        grid-template-columns:1fr;
    }

    .cpp-dashboard .cpp-attendance-modal-dialog{
        width:calc(100% - 20px);
        max-height:calc(100vh - 20px);
    }

    .cpp-dashboard .cpp-attendance-modal-header,
    .cpp-dashboard .cpp-attendance-modal-body{
        padding:18px;
    }

}

/* =========================================================
   Attendance Dashboard
   ========================================================= */

.cpp-attendance-tracker-page-layout .cpp-attendance-dashboard {
    display: flex;
    flex-direction: column;
    gap: 24px;
}

.cpp-attendance-dashboard .cpp-attendance-stat-grid {
    display: grid;
    grid-template-columns: repeat(6, minmax(0, 1fr));
    gap: 16px;
}

.cpp-attendance-dashboard .cpp-attendance-stat-card {
    position: relative;
    overflow: hidden;
    min-width: 0;
    padding: 22px;
    background-color: #ffffff;
    transition: transform .18s ease, border-color .18s ease, background-color .18s ease, color .18s ease;
}

/*.cpp-attendance-dashboard .cpp-attendance-stat-card::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 4px;
    background: #6F2D96;
}*/
.cpp-attendance-dashboard .cpp-attendance-stat-card:hover {
    transform: translateY(-2px);
}

.cpp-attendance-dashboard .cpp-attendance-stat-label {
    display: block;
    margin-bottom: 10px;
    color: #172033;
    font-size: 14px;
    font-weight: 600;
}

.cpp-attendance-dashboard .cpp-attendance-stat-number {
    display: block;
    color: #6F2D96;
    font-size: clamp(28px, 3vw, 38px);
    font-weight: 700;
    line-height: 1;
}

/*.cpp-attendance-dashboard .cpp-attendance-stat-card[
    data-attendance-stat="total"
]::before {
    background: linear-gradient(
        90deg,
        #6F2D96,
        #8B5CF6,
        #F2B544
    );
}*/

.cpp-attendance-dashboard .cpp-attendance-stat-card[
    data-attendance-stat="total"
] .cpp-attendance-stat-number {
    color: #6F2D96;
}


/* Charts */

.cpp-attendance-dashboard .cpp-attendance-chart-grid {
    display: grid;
    grid-template-columns:
        minmax(0, 1.65fr)
        minmax(320px, 0.85fr);
    gap: 20px;
}

.cpp-attendance-dashboard .cpp-attendance-chart-card {
    min-width: 0;
}

.cpp-attendance-dashboard .cpp-attendance-chart-wrapper {
    position: relative;
    width: 100%;
    height: 340px;
}

.cpp-attendance-dashboard .cpp-attendance-breakdown-chart-wrapper {
    max-width: 480px;
    margin-inline: auto;
}

.cpp-attendance-tracker-page-layout .cpp-attendance-form-section { margin-top: 24px; }

/* Tablet */

@media (max-width: 1180px) {

    .cpp-attendance-dashboard .cpp-attendance-stat-grid {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
    }

}


/* Smaller tablet */

@media (max-width: 900px) {

    .cpp-attendance-dashboard .cpp-attendance-chart-grid {
        grid-template-columns: 1fr;
    }

    .cpp-attendance-dashboard .cpp-attendance-chart-wrapper {
        height: 320px;
    }

}


/* Mobile */

@media (max-width: 640px) {

    .cpp-attendance-dashboard .cpp-attendance-stat-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .cpp-attendance-dashboard .cpp-attendance-stat-card {
        padding: 18px;
    }

    .cpp-attendance-dashboard .cpp-attendance-stat-number {
        font-size: 28px;
    }

    .cpp-attendance-dashboard .cpp-attendance-chart-wrapper {
        height: 280px;
    }

}


/* Very small phones */

@media (max-width: 390px) {

    .cpp-attendance-dashboard .cpp-attendance-stat-grid {
        grid-template-columns: 1fr;
    }

}

/* ========================================
   Attendance Tracker Edit Modal
======================================== */

.cpp-dashboard .cpp-attendance-edit-modal {
    position: fixed;
    inset: 0;
    z-index: 99999;

    width: 100%;
    height: 100%;

    padding: 30px 20px;

    overflow-y: auto;
}

/* Hidden state */
.cpp-dashboard .cpp-attendance-edit-modal[hidden] {
    display: none !important;
}

/* Open state */
.cpp-dashboard .cpp-attendance-edit-modal:not([hidden]) {
    display: flex;
    align-items: flex-start;
    justify-content: center;
}

/* Backdrop */
.cpp-dashboard .cpp-attendance-edit-modal .cpp-attendance-modal-backdrop {
    position: fixed;
    inset: 0;

    background: rgba(0, 0, 0, 0.65);

    z-index: 0;
}

/* Prevent the page behind the modal from scrolling */
body.cpp-modal-open {
    overflow: hidden;
}

/* ========================================
   Attendance Tracker Edit Modal
======================================== */

.cpp-attendance-edit-modal .cpp-attendance-modal-dialog {
    width: min(920px, calc(100% - 40px));
    max-height: calc(100vh - 60px);
    overflow-y: auto;
    background: #ffffff;
    border-radius: 14px;
    box-shadow: 0 20px 60px rgba(0, 0, 0, 0.25);
}

/* Header */

.cpp-attendance-edit-modal .cpp-attendance-modal-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;

    padding: 22px 24px;

    border-bottom: 1px solid #ced4da;
}

.cpp-attendance-edit-modal .cpp-attendance-modal-eyebrow {
    display: block;

    margin-bottom: 4px;

    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.cpp-attendance-edit-modal .cpp-attendance-modal-header h2 {
    margin: 0;

    font-size: 22px;
    line-height: 1.3;
}

/* Close button */

.cpp-attendance-edit-modal .cpp-attendance-modal-close {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 36px;
    height: 36px;

    padding: 0;

    border: 1px solid #dbe2ea;
    border-radius: 8px;

    background: #ffffff;

    cursor: pointer;
}

/* Form */

.cpp-attendance-edit-modal .cpp-attendance-edit-form {
    display: flex;
    flex-direction: column;
    gap: 22px;

    padding: 24px;
}

/* Fields */

.cpp-attendance-edit-form .cpp-profile-field {
    display: flex;
    flex-direction: column;
    gap: 7px;
}

.cpp-attendance-edit-form .cpp-profile-field label {
    font-size: 14px;
    font-weight: 700;
}

.cpp-attendance-edit-modal .cpp-attendance-edit-form input[type="text"],
.cpp-attendance-edit-modal .cpp-attendance-edit-form input[type="date"],
.cpp-attendance-edit-modal .cpp-attendance-edit-form input[type="number"],
.cpp-attendance-edit-modal .cpp-attendance-edit-form select,
.cpp-attendance-edit-modal .cpp-attendance-edit-form textarea {
    width: 100%;

    padding: 11px 12px;

    border: 1px solid #d6dbe3;
    border-radius: 8px;

    background: #ffffff;

    font: inherit;
    line-height: 1.4;

    box-sizing: border-box;
}

.cpp-attendance-edit-form textarea {
    min-height: 120px;
    resize: vertical;
}

.cpp-attendance-edit-form input:focus,
.cpp-attendance-edit-form select:focus,
.cpp-attendance-edit-form textarea:focus {
    outline: none;
    border-color: #6b3fc4;
    box-shadow: 0 0 0 3px rgba(107, 63, 196, 0.12);
}

/* Date / Attendance Type grid */

.cpp-attendance-edit-form .cpp-profile-fields-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 18px;
}

/* ========================================
   Attendees
======================================== */

.cpp-attendance-edit-form .cpp-attendance-attendees-section {
    display: flex;
    flex-direction: column;
    gap: 16px;
    padding: 20px;
    background: #f5f3ff;
    border: 1px solid #ced4da;
    border-radius: 12px;
}

.cpp-attendance-edit-form .cpp-attendance-attendees-heading h3 {
    margin: 0 0 4px;
    font-size: 18px;
}

.cpp-attendance-edit-form .cpp-attendance-attendees-heading p {
    margin: 0;
    font-size: 14px;
    color: #667085;
}

/* Each attendee row */

.cpp-attendance-edit-form .cpp-attendance-attendee-rows {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.cpp-attendance-edit-form .cpp-attendance-attendee-row {
    display: grid;
    grid-template-columns:
        minmax(0, 1.4fr)
        minmax(180px, 0.8fr)
        auto;
    align-items: end;
    gap: 12px;
    padding: 14px;
    background: #ffffff;
    border: 1px solid #ced4da;
    border-radius: 10px;
}

/* Remove button */

.cpp-attendance-edit-form
.cpp-attendance-remove-attendee {
   appearance: none;
    display: inline-flex;
    min-height: 38px;
    align-items: center;
    justify-content: center;
    padding: 8px 13px;
    border: 1px solid #dbe7ff;
    border-radius: 10px;
    background: var(--cpp-primary-soft, #eef4ff);
    color: var(--cpp-primary, #1d4ed8);
    font: inherit;
    font-size: 11px;
    font-weight: 700;
    text-transform: capitalize;
    cursor: pointer;
    white-space: nowrap;
    text-decoration: none;
    transition: background-color .18s ease, border-color .18s ease, transform .18s ease;
}

.cpp-attendance-edit-form .cpp-attendance-remove-attendee:hover,
 .cpp-attendance-edit-form .cpp-attendance-remove-attendee:focus {
        color: var(--cpp-primary, #1d4ed8);
    border-color: #c8d9ff;
    background: #ffffff !important;
    transform: translateY(-1px);
}

.cpp-attendance-edit-form .cpp-button-secondary,
.cpp-attendance-edit-form .cpp-primary-button{
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    padding: 10px 17px;
    border: 1px solid transparent;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    color: #ffffff;
    text-decoration: none;
    font-size: 12px;
    font-weight: 700;
    box-shadow: 0 8px 18px rgba(29, 78, 216, .2);
    transition: transform .18s ease, box-shadow .18s ease;
}
.cpp-attendance-edit-form .cpp-button-secondary:hover,
.cpp-attendance-edit-form .cpp-button-secondary:focus {
        color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 12px 24px rgba(29, 78, 216, .26);
}

.cpp-attendance-edit-form .cpp-primary-button:hover,
.cpp-attendance-edit-form .cpp-primary-button:focus {
        color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 12px 24px rgba(29, 78, 216, .26);
}

/* Add attendee */

.cpp-dashboard .cpp-attendance-edit-form
[data-attendance-edit-add] {
    align-self: flex-start;

    padding: 10px 16px;

    border-radius: 8px;

    cursor: pointer;
}

/* ========================================
   Total
======================================== */

.cpp-attendance-edit-form .cpp-attendance-total-card {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;

    gap: 4px;

    padding: 20px;

    text-align: center;

    border: 1px solid #e8dff7;
    border-radius: 12px;

    background:
        linear-gradient(
            135deg,
            #faf7ff,
            #ffffff
        );
}

.cpp-attendance-edit-form
.cpp-attendance-total-card span {
    color: #334155;
    font-size: 14px;
    font-weight: 700;
}

.cpp-attendance-edit-form
.cpp-attendance-total-card strong {
    color: #6F2D96;
    font-size: 28px;
    line-height: 1;
}

.cpp-attendance-edit-form
.cpp-attendance-total-card small {
    margin-top: 5px;
font-size: 14px;
    color: #667085;
}

/* ========================================
   Messages / Actions
======================================== */

.cpp-dashboard .cpp-attendance-edit-form
[data-attendance-edit-message]:empty {
    display: none;
}

.cpp-dashboard .cpp-attendance-edit-form
.cpp-profile-actions {
    display: flex;
    justify-content: flex-end;

    padding-top: 18px;

    border-top: 1px solid #ced4da;
}

.cpp-dashboard .cpp-attendance-edit-form
[data-attendance-edit-submit] {
    min-width: 150px;

    padding: 11px 20px;

    border: 0;
    border-radius: 8px;

    cursor: pointer;
}

/* ========================================
   Mobile
======================================== */

@media (max-width: 700px) {

    .cpp-dashboard .cpp-attendance-edit-modal {
        padding: 15px;
    }

    .cpp-dashboard .cpp-attendance-edit-modal
    .cpp-attendance-modal-dialog {
        width: 100%;
        max-height: calc(100vh - 30px);
    }

    .cpp-dashboard .cpp-attendance-edit-form {
        padding: 18px;
    }

    .cpp-dashboard .cpp-attendance-edit-form
    .cpp-profile-fields-grid {
        grid-template-columns: 1fr;
    }

    .cpp-dashboard .cpp-attendance-edit-form
    .cpp-attendance-attendee-row {
        grid-template-columns: 1fr;
    }

    .cpp-dashboard .cpp-attendance-edit-form
    .cpp-attendance-remove-attendee {
        width: 100%;
    }

    .cpp-dashboard .cpp-attendance-edit-form
    .cpp-profile-actions {
        justify-content: stretch;
    }

    .cpp-dashboard .cpp-attendance-edit-form
    [data-attendance-edit-submit] {
        width: 100%;
    }
}

/* ========================================
   Attendance Edit Modal Position
======================================== */

.cpp-dashboard #cpp-attendance-edit-modal {
    position: fixed;
    inset: 0;
    z-index: 99999;

    display: flex;
    align-items: center;
    justify-content: center;

    padding: 30px;

    box-sizing: border-box;
}

/*
 * The HTML hidden attribute must actually
 * remove the modal from the page.
 */
.cpp-dashboard  #cpp-attendance-edit-modal[hidden] {
    display: none !important;
}
#cpp-attendance-edit-modal .cpp-attendance-modal-backdrop {
    position: absolute;
    inset: 0;

    background: rgba(15, 23, 42, 0.65);
}

/* ========================================
   Ministry Verse Page
======================================== */

.cpp-dashboard .cpp-ministry-verse-page-layout {
    display: grid;
    gap: 32px;
}

.cpp-ministry-verse-page-layout .cpp-ministry-verse-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
}

.cpp-ministry-verse-page-layout .cpp-ministry-verse-card {
    display: flex;
    flex-direction: column;
    gap: 20px;
    padding: 24px;
   background: #ffffff;
    border: 1px solid #ced4da;
    border-radius: 16px;
    box-shadow:
        0 8px 24px
        rgba(15, 23, 42, 0.06);
    transition: transform .18s ease, border-color .18s ease, background-color .18s ease, color .18s ease;
}

.cpp-ministry-verse-page-layout .cpp-ministry-verse-card:hover {
    transform: translateY(-2px);
        border-color: #A542DE;
    box-shadow: var(--cpp-shadow-md);
}

.cpp-ministry-verse-page-layout .cpp-ministry-verse-card-date {
    display: inline-flex;
    align-self: flex-start;

    padding: 7px 12px;

    border-radius: 999px;

    background: #f3e8ff;

    font-size: 13px;
    font-weight: 700;
    line-height: 1;

    color: #6b21a8;
}

.cpp-ministry-verse-page-layout .cpp-ministry-verse-card-section {
    display: grid;
    gap: 10px;
}

.cpp-ministry-verse-page-layout .cpp-ministry-verse-card-section h3 {
    margin: 0;

    font-size: 20px;
    line-height: 1.3;
}

.cpp-ministry-verse-page-layout .cpp-ministry-verse-card-label {
    font-size: 12px;
    font-weight: 700;

    letter-spacing: 0.08em;
    text-transform: uppercase;

    color: #6b7280;
}

.cpp-ministry-verse-page-layout .cpp-ministry-verse-card-scripture,
.cpp-ministry-verse-page-layout .cpp-ministry-verse-card-encouragement p {
    margin: 0;

    line-height: 1.7;

    color: #374151;
}

.cpp-ministry-verse-page-layout .cpp-ministry-verse-card-encouragement {
    padding-top: 18px;

    border-top: 1px solid #ced4da;
}


/* ========================================
   Ministry Verse Form
======================================== */

.cpp-ministry-verse-page-layout .cpp-ministry-verse-form {
    display: grid;
    gap: 24px;
}

.cpp-ministry-verse-page-layout .cpp-ministry-verse-form-group {
    display: grid;
    gap: 18px;

    padding: 22px;

    background: #f9fafb;
    border: 1px solid #ced4da;
    border-radius: 14px;
}

.cpp-ministry-verse-page-layout .cpp-ministry-verse-form-group-heading span {
    display: block;

    font-size: 13px;
    font-weight: 700;

    letter-spacing: 0.08em;
    text-transform: uppercase;

    color: #6b21a8;
}

.cpp-ministry-verse-page-layout .cpp-ministry-verse-form input,
.cpp-ministry-verse-page-layout .cpp-ministry-verse-form select {
    width: 100%;
    min-height: 45px;
    padding: 11px 13px;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    background: #fff;
    font: inherit;
    transition: border-color .2s ease, box-shadow .2s ease;
    box-sizing: border-box;
}
.cpp-ministry-verse-page-layout .cpp-ministry-verse-form textarea {
    width: 100%;
    padding: 11px 13px;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    background: #fff;
    font: inherit;
    transition: border-color .2s ease, box-shadow .2s ease;
    box-sizing: border-box;
}

.cpp-ministry-verse-page-layout .cpp-ministry-verse-form input:focus,
.cpp-ministry-verse-page-layout .cpp-ministry-verse-form select:focus,
.cpp-ministry-verse-page-layout .cpp-ministry-verse-form textarea:focus {
    outline: none;
    border-color: #6b3fc4 !important;
    box-shadow: 0 0 0 3px rgba(107, 63, 196, .12);
}

.cpp-ministry-verse-form .cpp-primary-button {
        display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    padding: 10px 17px;
    border: 1px solid transparent;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    color: #ffffff;
    text-decoration: none;
    font-size: 14px;
    font-weight: 700;
    box-shadow: 0 8px 18px rgba(29, 78, 216, .2);
    transition: transform .18s ease, box-shadow .18s ease;
}
.cpp-ministry-verse-form .cpp-primary-button:hover,
.cpp-ministry-verse-form .cpp-primary-button:focus {
        color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 12px 24px rgba(29, 78, 216, .26);
}


/* ========================================
   Responsive
======================================== */

@media (max-width: 1024px) {

    .cpp-ministry-verse-page-layout .cpp-ministry-verse-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 700px) {

    .cpp-ministry-verse-page-layout .cpp-ministry-verse-grid {
        grid-template-columns: 1fr;
    }

    .cpp-ministry-verse-page-layout .cpp-ministry-verse-card {
        padding: 20px;
    }

    .cpp-ministry-verse-page-layout .cpp-ministry-verse-form-group {
        padding: 18px;
    }
}

/* ========================================
   Today's Ministry Verse Status
======================================== */

.cpp-ministry-verse-page-layout .cpp-ministry-verse-today-status {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 24px;
    padding: 24px 28px;
    background: #ffffff;
    border: 1px solid #8F8F8F;
    border-radius: 16px;
    box-shadow:
        0 8px 24px
        rgba(15, 23, 42, 0.06);
}

.cpp-ministry-verse-page-layout .cpp-ministry-verse-today-status-copy {
    display: grid;
    gap: 7px;
}

.cpp-ministry-verse-page-layout .cpp-ministry-verse-today-label {
    font-size: 12px;
    font-weight: 700;

    letter-spacing: 0.08em;
    text-transform: uppercase;

    color: #6b21a8;
}

.cpp-ministry-verse-page-layout .cpp-ministry-verse-today-status h2 {
    margin: 0;

    font-size: 21px;
    line-height: 1.3;
}

.cpp-ministry-verse-page-layout .cpp-ministry-verse-today-status p {
    margin: 0;

    line-height: 1.6;

    color: #6b7280;
}


/*
 * Assigned
 */
.cpp-ministry-verse-page-layout .cpp-ministry-verse-today-assigned {
    border-left: 4px solid #16a34a;
}


/*
 * Unassigned
 */
.cpp-ministry-verse-page-layout .cpp-ministry-verse-today-unassigned {
    border-left: 4px solid #f59e0b;
}


/* Responsive */

@media (max-width: 700px) {

    .cpp-ministry-verse-page-layout .cpp-ministry-verse-today-status {
        flex-direction: column;
        align-items: flex-start;

        padding: 20px;
    }
}

/* ========================================
   Ministry Verse Card Actions
======================================== */

.cpp-ministry-verse-page-layout  .cpp-ministry-verse-card-actions {
    display: flex;
    align-items: center;
    gap: 8px;

    margin-top: auto;
    padding-top: 20px;

    border-top: 1px solid #ced4da;
}


/*
 * Shared action button
 */

.cpp-ministry-verse-page-layout .cpp-ministry-verse-action {
    appearance: none;
    display: inline-flex;
    min-height: 38px;
    align-items: center;
    justify-content: center;
    padding: 8px 13px;
    border: 1px solid #dbe7ff;
    border-radius: 10px;
    font: inherit;
    font-size: 12px;
    font-weight: 700;
    text-transform: capitalize;
    cursor: pointer;
    white-space: nowrap;
    text-decoration: none;
    transition: background-color .18s ease, border-color .18s ease, transform .18s ease;
}


.cpp-ministry-verse-page-layout .cpp-ministry-verse-action:hover {
    transform: translateY(-1px);
}


.cpp-ministry-verse-page-layout .cpp-ministry-verse-action:active {
    transform: translateY(-1px);
}


.cpp-ministry-verse-page-layout .cpp-ministry-verse-action:focus-visible {
    outline: 3px solid rgba(107, 33, 168, 0.2);
    outline-offset: 2px;
}


/*
 * View
 */

.cpp-ministry-verse-page-layout .cpp-ministry-verse-view {
    border: 1px solid #dbe7ff;
    background: var(--cpp-primary-soft, #eef4ff);
    color: var(--cpp-primary, #1d4ed8);
}
.cpp-ministry-verse-page-layout .cpp-ministry-verse-view:hover,
.cpp-ministry-verse-page-layout .cpp-ministry-verse-view:focus {
    color: var(--cpp-primary, #1d4ed8);
    background: #fff;
}

/*
 * Edit
 */

.cpp-ministry-verse-page-layout .cpp-ministry-verse-edit {
    border: 1px solid #dbe7ff;
    background: #fff;
    color: var(--cpp-primary, #1d4ed8);
}
.cpp-ministry-verse-page-layout .cpp-ministry-verse-edit:hover,
.cpp-ministry-verse-page-layout .cpp-ministry-verse-edit:focus {
    color: var(--cpp-primary, #1d4ed8);
    background: var(--cpp-primary-soft, #eef4ff);
}

/*
 * Delete
 */

.cpp-ministry-verse-page-layout .cpp-ministry-verse-delete {
    margin-left: auto;

    color: #b91c1c;
    border-color: #fecaca;
}

.cpp-ministry-verse-page-layout .cpp-ministry-verse-delete:hover {
    color: #991b1b;
    border-color: #fca5a5;
    background: #fef2f2;
}


/*
 * Disabled / AJAX processing
 */

.cpp-ministry-verse-page-layout .cpp-ministry-verse-action:disabled {
    opacity: 0.55;
    cursor: not-allowed;
    transform: none;
}


/*
 * Mobile
 */

@media (max-width: 520px) {

    .cpp-ministry-verse-page-layout .cpp-ministry-verse-card-actions {
        flex-wrap: wrap;
    }

    .cpp-ministry-verse-page-layout .cpp-ministry-verse-action {
        flex: 1;
    }

    .cpp-ministry-verse-page-layout .cpp-ministry-verse-delete {
        margin-left: 0;
    }
}

/* ========================================
   Ministry Verse Modal
======================================== */

.cpp-dashboard .cpp-ministry-verse-modal[hidden] {
    display: none !important;
}

.cpp-dashboard .cpp-ministry-verse-modal {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
}


/* Backdrop */

.cpp-dashboard .cpp-ministry-verse-modal-backdrop {
    position: absolute;
    inset: 0;
    background:
        rgba(15, 23, 42, 0.68);
    backdrop-filter:
        blur(3px);
}


/* Dialog */

.cpp-dashboard .cpp-ministry-verse-modal-dialog {
    position: relative;
    z-index: 1;
    width: min(
        100%,
        720px
    );
    max-height:
        calc(100vh - 48px);
    overflow-y: auto;
    background: #ffffff;
    border-radius: 18px;
    box-shadow:
        0 24px 70px
        rgba(15, 23, 42, 0.25);
}


/* Header */

.cpp-dashboard .cpp-ministry-verse-modal-header {
    position: sticky;
    top: 0;
    z-index: 2;
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    padding: 24px 28px;
    background: #ffffff;
    border-bottom:
        1px solid #ced4da;
}


.cpp-dashboard .cpp-ministry-verse-modal-eyebrow {
    display: block;
    margin-bottom: 5px;
    color: #6b21a8;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}


.cpp-dashboard .cpp-ministry-verse-modal-header h2 {
    margin: 0;
    font-size: 24px;
    line-height: 1.25;
}


/* Close */

.cpp-dashboard .cpp-ministry-verse-modal-close {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    padding: 0;
    border: 1px solid #ced4da;
    border-radius: 50%;
    background: #ffffff;
    color: #374151;
    font-size: 26px;
    line-height: 1;
    cursor: pointer;
}


.cpp-dashboard .cpp-ministry-verse-modal-close:hover {
    background: #f9fafb;
}


/* Body */

.cpp-dashboard .cpp-ministry-verse-modal-body {
    padding: 28px;
}


/* Prevent background scrolling */

body.cpp-ministry-verse-modal-open {
    overflow: hidden;
}


/* Loading / Error */

.cpp-dashboard .cpp-ministry-verse-modal-loading,
.cpp-dashboard .cpp-ministry-verse-modal-error {
    padding: 32px;
    text-align: center;
    color: #6b7280;
}


.cpp-dashboard .cpp-ministry-verse-modal-error {
    color: #b91c1c;
    background: #fef2f2;
    border-radius: 10px;
}


/* ========================================
   View Ministry Verse
======================================== */

.cpp-dashboard .cpp-ministry-verse-view {
    display: grid;
    gap: 26px;
}


.cpp-dashboard .cpp-ministry-verse-view-date {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 15px 18px;
    background: #f9fafb;
    border-radius: 10px;
}


.cpp-dashboard .cpp-ministry-verse-view-date span {
    color: #6b7280;
    font-size: 13px;
    font-weight: 600;
}


.cpp-dashboard .cpp-ministry-verse-view-date strong {
    color: #111827;
}


/* Sections */

.cpp-dashboard .cpp-ministry-verse-view-section {
    display: grid;
    gap: 12px;
}


.cpp-dashboard .cpp-ministry-verse-view-label {
    color: #6b21a8;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}


.cpp-dashboard .cpp-ministry-verse-view-reference {
    margin: 0;
    font-size: 22px;
    line-height: 1.3;
}


.cpp-dashboard .cpp-ministry-verse-view-content {
    color: #4b5563;
    font-size: 15px;
    line-height: 1.8;
    white-space: pre-line;
}


/* Encouragement */

.cpp-dashboard .cpp-ministry-verse-view-encouragement {
    padding: 20px;
    background: #faf5ff;
    border-left:
        4px solid #9333ea;
    border-radius: 10px;
}


/* Mobile */

@media (max-width: 600px) {

    .cpp-dashboard .cpp-ministry-verse-modal {
        padding: 12px;
    }

    .cpp-dashboard .cpp-ministry-verse-modal-dialog {
        max-height:
            calc(100vh - 24px);

        border-radius: 14px;
    }

    .cpp-dashboard .cpp-ministry-verse-modal-header {
        padding: 20px;
    }

    .cpp-dashboard .cpp-ministry-verse-modal-body {
        padding: 20px;
    }
}

/*
 * Ministry Verse Edit Modal
 */

.cpp-dashboard .cpp-ministry-verse-edit-modal
.cpp-ministry-verse-modal-dialog {
    width: min(720px, calc(100% - 40px));
    max-height: calc(100vh - 60px);
    overflow-y: auto;
}

.cpp-dashboard .cpp-ministry-verse-edit-form {
    display: grid;
    gap: 20px;
}

.cpp-dashboard .cpp-ministry-verse-edit-message:empty {
    display: none;
}

.cpp-dashboard .cpp-ministry-verse-edit-message {
    padding: 12px 16px;
    border-radius: 8px;
    font-size: 14px;
    line-height: 1.5;
}

.cpp-dashboard .cpp-ministry-verse-edit-message-error {
    background: #fff1f1;
    border: 1px solid #efb6b6;
}

.cpp-dashboard .cpp-ministry-verse-edit-message-success {
    background: #edf9f0;
    border: 1px solid #a9d9b3;
}

body.cpp-ministry-verse-modal-open {
    overflow: hidden;
}

@media (max-width: 767px) {

    .cpp-dashboard .cpp-ministry-verse-edit-modal
    .cpp-ministry-verse-modal-dialog {
        width: calc(100% - 24px);
        max-height: calc(100vh - 24px);
    }
}

.cpp-dashboard .cpp-ministry-verse-card {
    transition:
        opacity 0.25s ease,
        transform 0.25s ease;
}

.cpp-dashboard .cpp-ministry-verse-card-removing {
    opacity: 0;
    transform: scale(0.97);
    pointer-events: none;
}

.cpp-ministry-verse-archive .cpp-ministry-verse-load-more-wrapper {
    display: flex;
    justify-content: center;
    margin-top: 32px;
}

/* Ministry Verse Load More */

.cpp-ministry-verse-archive .cpp-ministry-verse-card[hidden] {
    display: none !important;
}

.cpp-ministry-verse-archive .cpp-ministry-verse-load-more-wrapper {
    display: flex;
    justify-content: center;
    margin-top: 32px;
}

.cpp-ministry-verse-archive .cpp-ministry-verse-load-more-wrapper[hidden] {
    display: none !important;
}

.cpp-ministry-verse-archive .cpp-ministry-verse-load-more {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    padding: 10px 17px;
    border: 1px solid transparent;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    color: #ffffff;
    text-decoration: none;
    font-size: 14px;
    font-weight: 700;
    box-shadow: 0 8px 18px rgba(29, 78, 216, .2);
    transition: transform .18s ease, box-shadow .18s ease;
}
.cpp-ministry-verse-archive .cpp-ministry-verse-load-more:hover,
.cpp-ministry-verse-archive .cpp-ministry-verse-load-more:focus {
    color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 12px 24px rgba(29, 78, 216, .26);
}

.cpp-ministry-verse-modal .cpp-ministry-verse-edit-form input {
    width: 100%;
    min-height: 45px;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    background: #fff;
    font-size: 16px;
    font: inherit;
    padding: 12px 14px;
    transition: border-color .2s ease, box-shadow .2s ease;
}
.cpp-ministry-verse-modal .cpp-ministry-verse-edit-form textarea {
    width: 100%;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    background: #fff;
    font-size: 16px;
    font: inherit;
    padding: 12px 14px;
    transition: border-color .2s ease, box-shadow .2s ease;
}
.cpp-ministry-verse-modal .cpp-ministry-verse-edit-form input:focus,
.cpp-ministry-verse-modal .cpp-ministry-verse-edit-form textarea:focus{
        outline: none;
    border-color: #6b3fc4;
    box-shadow: 0 0 0 3px rgba(107, 63, 196, .12);
}
.cpp-ministry-verse-modal .cpp-ministry-verse-edit-form .cpp-profile-actions .cpp-button-secondary {
    appearance: none;
    display: inline-flex;
    min-height: 38px;
    align-items: center;
    justify-content: center;
    padding: 8px 13px;
    border: 1px solid #dbe7ff;
    border-radius: 10px;
    background: var(--cpp-primary-soft, #eef4ff);
    color: var(--cpp-primary, #1d4ed8);
    font: inherit;
    font-size: 12px;
    font-weight: 700;
    text-transform: capitalize;
    cursor: pointer;
    white-space: nowrap;
    text-decoration: none;
    transition: background-color .18s ease, border-color .18s ease, transform .18s ease;
}
.cpp-ministry-verse-modal .cpp-ministry-verse-edit-form .cpp-profile-actions .cpp-button-secondary:hover,
.cpp-ministry-verse-modal .cpp-ministry-verse-edit-form .cpp-profile-actions .cpp-button-secondary:focus{
    color: var(--cpp-primary, #1d4ed8);
    border-color: #c8d9ff;
    background: #ffffff !important;
    transform: translateY(-1px);
}
.cpp-ministry-verse-modal .cpp-ministry-verse-edit-form .cpp-profile-actions .cpp-primary-button {
        display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    padding: 10px 17px;
    border: 1px solid transparent;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    color: #ffffff;
    text-decoration: none;
    font-size: 12px;
    font-weight: 700;
    text-transform: capitalize;
    box-shadow: 0 8px 18px rgba(29, 78, 216, .2);
    transition: transform .18s ease, box-shadow .18s ease;
}
.cpp-ministry-verse-modal .cpp-ministry-verse-edit-form .cpp-profile-actions .cpp-primary-button:hover,
.cpp-ministry-verse-modal .cpp-ministry-verse-edit-form .cpp-profile-actions .cpp-primary-button:focus{
    color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 12px 24px rgba(29, 78, 216, .26);
}

/* Dashboard - Bible Verse */
.cpp-widget-layout-item .cpp-dashboard-bible-verse {
        display: flex;
    flex-direction: column;
    gap: 20px;
}
.cpp-dashboard-bible-verse .cpp-dashboard-quote-card {
    border: 1px solid #ced4da;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
    transition: opacity 0.25s ease, transform 0.25s ease;
}
.cpp-dashboard-bible-verse .cpp-dashboard-quote-card:hover {
    border: 1px solid #fafafa;
    transform: translateY(-2px);
    box-shadow: var(--cpp-shadow-md);
}
.cpp-dashboard-bible-verse .cpp-dashboard-quote-card .bibleText {
        color: #fafafa;
    font-size: 16px;
    font-weight: 400;
    margin: 15px 0;
}
.cpp-dashboard-bible-verse .cpp-dashboard-quote-card .bibleVerse a {
    color: #f1c40f;
    text-decoration: none;
}
.cpp-dashboard-bible-verse .cpp-dashboard-quote-card .bibleVerse a:hover { color: #fde7bd; }
.cpp-dashboard-bible-verse .cpp-dashboard-quote-card .flowers {
        position: absolute;
    right: 10px;
    bottom: -20px;
    font-size: 75px;
    opacity: 1;
    color: #7134bd;
}

/* =========================================================
   Portal Content Pages
   Privacy Policy / Terms of Service / Help Center
   ========================================================= */

.cpp-dashboard .cpp-portal-content-page {
    width: 100%;
    margin-top: 24px;
}

.cpp-dashboard .cpp-portal-content-card {
    width: 100%;
    padding: 36px;
    background: #ffffff;
    border: 1px solid rgba(15, 23, 42, 0.08);
    border-radius: 18px;
    box-shadow:
        0 10px 30px rgba(15, 23, 42, 0.05);
}
.page-id-9107 .cpp-dashboard .cpp-portal-content-card {
    padding: 0;
    background: transparent;
    border: 0;
    border-radius: 0;
}
.page-id-9107 .cpp-dashboard .cpp-portal-content-card .eag-ytv {
    padding: 0;
}

.cpp-dashboard .cpp-portal-content-card > *:first-child {
    margin-top: 0;
}

.cpp-dashboard .cpp-portal-content-card > *:last-child {
    margin-bottom: 0;
}

.cpp-dashboard .cpp-portal-content-card h2 {
    margin-top: 36px;
    margin-bottom: 14px;
    font-size: 1.45rem;
    line-height: 1.3;
}

.cpp-dashboard .cpp-portal-content-card h3 {
    margin-top: 28px;
    margin-bottom: 12px;
    font-size: 1.15rem;
    line-height: 1.4;
}

.cpp-dashboard .cpp-portal-content-card p {
    margin-bottom: 16px;
    line-height: 1.75;
}

.cpp-dashboard .cpp-portal-content-card ul,
.cpp-dashboard .cpp-portal-content-card ol {
    margin:
        0
        0
        20px
        22px;
}

.cpp-dashboard .cpp-portal-content-card li {
    margin-bottom: 8px;
    line-height: 1.65;
}

.cpp-dashboard .cpp-portal-content-card a {
    text-decoration: underline;
    text-underline-offset: 3px;
}


/* =========================================================
   Responsive
   ========================================================= */

@media (max-width: 767px) {

    .cpp-dashboard .cpp-portal-content-page {
        margin-top: 18px;
    }

    .cpp-dashboard .cpp-portal-content-card {
        padding: 24px 20px;
        border-radius: 14px;
    }

    .cpp-dashboard .cpp-portal-content-card h2 {
        margin-top: 30px;
        font-size: 1.3rem;
    }

}

/* =========================================================
   Bible Library — Shared Design Foundation
   ========================================================= */

.cpp-sermon-library {
    --cpp-bible-border:
        rgba(0, 0, 0, 0.09);

    --cpp-bible-border-strong:
        rgba(0, 0, 0, 0.14);

    --cpp-bible-surface:
        #ffffff;

    --cpp-bible-surface-soft:
        rgba(0, 0, 0, 0.025);

    --cpp-bible-surface-hover:
        rgba(0, 0, 0, 0.045);

    --cpp-bible-surface-active:
        rgba(0, 0, 0, 0.065);

    --cpp-bible-text-muted:
        rgba(0, 0, 0, 0.62);

    --cpp-bible-text-soft:
        rgba(0, 0, 0, 0.46);

    --cpp-bible-radius-sm:
        7px;

    --cpp-bible-radius-md:
        10px;

    --cpp-bible-radius-lg:
        14px;

    --cpp-bible-shadow-soft:
        0 4px 18px rgba(0, 0, 0, 0.04);

    --cpp-bible-transition:
        0.2s ease;
}

/*
 * Sermon & Bible Library
 */

.cpp-dashboard .cpp-sermon-library-page-layout {
    display: flex;
    flex-direction: column;
    gap: 28px;
}


/*
 * Explorer
 */

.cpp-sermon-library-page-layout .cpp-sermon-library-explorer {
    padding: 28px;
}

.cpp-sermon-library-page-layout .cpp-sermon-library-search {
    margin-top: 22px;
}

.cpp-sermon-library-page-layout .cpp-sermon-library-search-row {
    display: grid;
    grid-template-columns: minmax(0, 1fr) auto;
    gap: 12px;
}

.cpp-sermon-library-page-layout .cpp-sermon-search-input,
.cpp-sermon-library-page-layout .cpp-sermon-filter {
    width: 100%;
    min-height: 50px;
    border: 1px solid #dcdcde;
    border-radius: 8px;
    padding: 10px 14px;
    background: #fff;
    font: inherit;
}

.cpp-sermon-library-page-layout .cpp-sermon-search-input {
    font-size: 16px;
}

.cpp-sermon-library-page-layout .cpp-sermon-search-button {
    min-height: 46px;
    padding-left: 22px;
    padding-right: 22px;
}

.cpp-sermon-library-page-layout .cpp-sermon-library-filter-row {
    display: grid;
    grid-template-columns: repeat(
        2,
        minmax(0, 1fr)
    );
    gap: 12px;
    margin-top: 12px;
}


/*
 * Results
 */

.cpp-sermon-library-page-layout .cpp-sermon-library-results-heading {
    display: flex;
    justify-content: space-between;
    align-items: flex-start;
    gap: 20px;
    margin-bottom: 18px;
}

.cpp-sermon-library-page-layout .cpp-sermon-library-results-heading h2 {
    margin: 0 0 6px;
    color: var(--cpp-text-heading);
    font-size: 22px;
    font-weight: 740;
    letter-spacing: -.025em;
    line-height: 1.3;
}

.cpp-sermon-library-page-layout .cpp-sermon-library-count {
    flex: 0 0 auto;
    padding: 7px 15px;
    border-radius: 999px;
    background: #fff;
    font-size: 13px;
    font-weight: 600;
    text-transform: capitalize;
    color: #6F2D96;
}

.cpp-sermon-library-results-heading .cpp-sermon-results-status {
   position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

/*
 * Sermon Grid
 */

.cpp-sermon-library-page-layout .cpp-sermon-library-grid {
    display: grid;
    grid-template-columns: repeat(
        3,
        minmax(0, 1fr)
    );
    gap: 20px;
}

.cpp-sermon-library-page-layout .cpp-sermon-card {
    overflow: hidden;
    padding: 0;
}

.cpp-sermon-library-page-layout .cpp-sermon-card-placeholder-media {
    aspect-ratio: 16 / 9;
    background:
        linear-gradient(
            135deg,
            #f0f0f1,
            #e2e4e7
        );
}

.cpp-sermon-library-page-layout .cpp-sermon-card-placeholder-content {
    padding: 20px;
}

.cpp-sermon-library-page-layout .cpp-sermon-card-placeholder-label {
    display: inline-block;
    margin-bottom: 8px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.cpp-sermon-library-page-layout .cpp-sermon-card-placeholder-content h3 {
    margin-top: 0;
    margin-bottom: 8px;
}

.cpp-sermon-library-page-layout .cpp-sermon-card-placeholder-content p {
    margin-bottom: 0;
}


/*
 * Empty State
 */

.cpp-sermon-library-page-layout .cpp-sermon-library-empty {
    padding: 32px;
    text-align: center;
}

.cpp-sermon-library-page-layout .cpp-sermon-library-empty h3 {
    margin: 0 0 6px;
    color: var(--cpp-text-heading);
    font-size: 22px;
    font-weight: 740;
    letter-spacing: -.025em;
    line-height: 1.3;
}

.cpp-sermon-library-page-layout .cpp-sermon-library-empty .cpp-sermon-empty-reset {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    padding: 10px 17px;
    border: 1px solid transparent;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    color: #ffffff;
    text-decoration: none;
    font-size: 14px;
    font-weight: 700;
    text-transform: capitalize;
    box-shadow: 0 8px 18px rgba(29, 78, 216, .2);
    transition: transform .18s ease, box-shadow .18s ease;
}
.cpp-sermon-library-page-layout .cpp-sermon-library-empty .cpp-sermon-empty-reset:hover {
        color: #ffffff;
    transform: translateY(-2px);
    text-decoration: none;
    box-shadow: 0 12px 24px rgba(29, 78, 216, .26);
}


/*
 * Responsive
 */

@media (max-width: 1024px) {

    .cpp-sermon-library-page-layout .cpp-sermon-library-grid {
        grid-template-columns: repeat(
            2,
            minmax(0, 1fr)
        );
    }
}


@media (max-width: 767px) {

    .cpp-sermon-library-page-layout .cpp-sermon-library-explorer {
        padding: 20px;
    }

    .cpp-sermon-library-page-layout .cpp-sermon-library-search-row {
        grid-template-columns: 1fr;
    }

    .cpp-sermon-library-page-layout .cpp-sermon-library-filter-row {
        grid-template-columns: 1fr;
    }

    .cpp-sermon-library-page-layout .cpp-sermon-library-results-heading {
        flex-direction: column;
        gap: 10px;
    }

    .cpp-sermon-library-page-layout .cpp-sermon-library-grid {
        grid-template-columns: 1fr;
    }
}

/*
 * Sermon Cards
 */

.cpp-sermon-library-page-layout .cpp-sermon-card {
    display: flex;
    background: #fff;
    flex-direction: column;
    overflow: hidden;
    padding: 0;
    box-shadow: 0 8px 24px rgba(15, 23, 42, 0.06);
    transition: opacity 0.25s ease, transform 0.25s ease;
}
.cpp-sermon-library-page-layout .cpp-sermon-card:hover {
    transform: translateY(-2px);
    border-color: #A542DE;
    box-shadow: var(--cpp-shadow-md);
}

.cpp-sermon-library-page-layout .cpp-sermon-card-media {
    position: relative;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: #f0f0f1;
}

.cpp-sermon-library-page-layout .cpp-sermon-card-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.cpp-sermon-library-page-layout .cpp-sermon-card-image-placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 100%;
    height: 100%;
    background:
        linear-gradient(
            135deg,
            #f0f0f1,
            #e2e4e7
        );
}

.cpp-sermon-library-page-layout .cpp-sermon-card-image-placeholder span {
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.cpp-sermon-library-page-layout .cpp-sermon-card-series {
    position: absolute;
    left: 14px;
    bottom: 14px;
    max-width: calc(100% - 28px);
    padding: 6px 10px;
    border-radius: 999px;
    background: rgba(0, 0, 0, 0.72);
    color: #fff;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
}

.cpp-sermon-library-page-layout .cpp-sermon-card-content {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 20px;
}

.cpp-sermon-library-page-layout .cpp-sermon-card-title {
        margin: 0 0 22px;
    color: var(--cpp-text-heading);
    font-size: 20px;
    font-weight: 740;
    letter-spacing: -.025em;
    line-height: 1.3;
}

.cpp-sermon-library-page-layout .cpp-sermon-card-title a {
    color: inherit;
    text-decoration: none;
}

.cpp-sermon-library-page-layout .cpp-sermon-card-title a:hover,
.cpp-sermon-library-page-layout .cpp-sermon-card-title a:focus {
    color: #6F2D96;
    text-decoration: none;
}

.cpp-sermon-library-page-layout .cpp-sermon-card-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 10px;
    font-size: 13px;
}

.cpp-sermon-library-page-layout .cpp-sermon-card-scripture {
    color: #6F2D96;
    margin-bottom: 12px;
    font-size: 14px;
    font-weight: 700;
}

.cpp-sermon-library-page-layout .cpp-sermon-card-excerpt {
    margin-top: 0;
    margin-bottom: 16px;
    line-height: 1.6;
}

.cpp-sermon-library-page-layout .cpp-sermon-card-topics {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 18px;
}

.cpp-sermon-library-page-layout .cpp-sermon-topic-tag {
    display: inline-flex;
    align-items: center;
    padding: 5px 9px;
    border-radius: 999px;
    background: #ffff;
    font-size: 12px;
    line-height: 1.2;
    color: #6F2D96;
    border: 1px solid;
}

.cpp-sermon-library-page-layout .cpp-sermon-card-actions {
    margin-top: auto;
}

.cpp-sermon-library-page-layout .cpp-sermon-view-button {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    padding: 10px 17px;
    border: 1px solid transparent;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    color: #ffffff;
    text-decoration: none;
    font-size: 14px;
    font-weight: 700;
    text-transform: capitalize;
    box-shadow: 0 8px 18px rgba(29, 78, 216, .2);
    transition: transform .18s ease, box-shadow .18s ease;
}
.cpp-sermon-library-page-layout .cpp-sermon-view-button:hover {
    color: #ffffff;
    transform: translateY(-2px);
    text-decoration: none;
    box-shadow: 0 12px 24px rgba(29, 78, 216, .26);
}

/*
 * Sermon Detail
 */

.cpp-dashboard .cpp-sermon-detail-page {
    display: flex;
    flex-direction: column;
    gap: 18px;
}

.cpp-sermon-detail-page .cpp-sermon-detail-navigation {
    display: flex;
    align-items: center;
}

.cpp-sermon-detail-page .cpp-sermon-back-link {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    font-weight: 600;
    text-decoration: none;
}

.cpp-sermon-detail-page .cpp-sermon-back-link:hover,
.cpp-sermon-detail-page .cpp-sermon-back-link:focus {
    text-decoration: underline;
}

.cpp-sermon-detail-page .cpp-sermon-detail-back {
        display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    padding: 10px 17px;
    border: 1px solid transparent;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    color: #ffffff;
    text-decoration: none;
    font-size: 14px;
    font-weight: 700;
    text-transform: capitalize;
    box-shadow: 0 8px 18px rgba(29, 78, 216, .2);
    transition: transform .18s ease, box-shadow .18s ease;
}
.cpp-sermon-detail-page .cpp-sermon-detail-back:hover {
        color: #ffffff;
    transform: translateY(-2px);
    text-decoration: none;
    box-shadow: 0 12px 24px rgba(29, 78, 216, .26);
}

.cpp-sermon-detail-page .cpp-sermon-detail {
    overflow: hidden;
    padding: 0;
}

.cpp-sermon-detail-page .cpp-sermon-detail-hero-image {
    width: 100%;
    max-height: 520px;
    overflow: hidden;
    background: #f0f0f1;
}

.cpp-sermon-detail-page .cpp-sermon-detail-hero-image img {
    display: block;
    width: 100%;
    height: 100%;
    max-height: 520px;
    object-fit: cover;
}

.cpp-sermon-detail-page .cpp-sermon-detail-content {
    padding: 32px;
}

.cpp-sermon-detail-page .cpp-sermon-detail-series {
    margin-bottom: 8px;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.cpp-sermon-detail-page .cpp-sermon-detail-title {
    margin-top: 0;
    margin-bottom: 12px;
    font-size: clamp(
        28px,
        4vw,
        42px
    );
    line-height: 1.2;
}

.cpp-sermon-detail-page .cpp-sermon-detail-primary-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-bottom: 12px;
}

.cpp-sermon-detail-page .cpp-sermon-detail-scripture {
    margin-bottom: 16px;
    font-size: 17px;
    font-weight: 700;
}

.cpp-sermon-detail-page .cpp-sermon-detail-topics {
    display: flex;
    flex-wrap: wrap;
    gap: 7px;
    margin-bottom: 24px;
}

.cpp-sermon-detail-page .cpp-sermon-detail-info {
    display: grid;
    grid-template-columns: repeat(
        3,
        minmax(0, 1fr)
    );
    gap: 14px;
    margin: 0 0 28px;
}

.cpp-sermon-detail-page .cpp-sermon-detail-info > div {
    padding: 14px;
    border: 1px solid #dcdcde;
    border-radius: 8px;
}

.cpp-sermon-detail-page .cpp-sermon-detail-info dt {
    color: #172033;
    margin-bottom: 4px;
    font-size: 12px;
    font-weight: 700;
    text-transform: uppercase;
}

.cpp-sermon-detail-page .cpp-sermon-detail-info dd {
    margin: 0;
}

.cpp-sermon-detail-page .cpp-sermon-detail-body {
    padding-top: 24px;
    border-top: 1px solid #dcdcde;
    line-height: 1.7;
}

.cpp-sermon-detail-page .cpp-sermon-detail-body > :first-child {
    margin-top: 0;
}

.cpp-sermon-detail-page .cpp-sermon-detail-body > :last-child {
    margin-bottom: 0;
}


@media (max-width: 767px) {

    .cpp-sermon-detail-page .cpp-sermon-detail-content {
        padding: 22px;
    }

    .cpp-sermon-detail-page .cpp-sermon-detail-info {
        grid-template-columns: 1fr;
    }
}

/*
 * Sermon Media
 */

.cpp-sermon-detail-page .cpp-sermon-detail-media {
    margin-bottom: 28px;
}

.cpp-sermon-detail-page .cpp-sermon-section-heading {
    margin-bottom: 14px;
}

.cpp-sermon-detail-page .cpp-sermon-section-heading h3 {
    margin: 0;
}

.cpp-sermon-detail-page .cpp-sermon-video-player {
    position: relative;
    width: 100%;
    margin-bottom: 20px;
}

.cpp-sermon-detail-page .cpp-sermon-video-player iframe {
    display: block;
    width: 100%;
    aspect-ratio: 16 / 9;
    height: auto;
    border: 0;
    border-radius: 10px;
}

.cpp-sermon-detail-page .cpp-sermon-video-external {
    padding: 18px;
    border: 1px solid #dcdcde;
    border-radius: 8px;
}

.cpp-sermon-detail-page .cpp-sermon-video-external a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    min-height: 36px;
    padding: 7px 12px;
    border: 1px solid #dbe7ff;
    border-radius: 9px;
    background: var(--cpp-primary-soft, #eef4ff);
    color: var(--cpp-primary, #1d4ed8);
    font-size: 12px;
    font-weight: 600;
    line-height: 1;
    text-decoration: none;
    text-transform: capitalize;
    cursor: pointer;
    transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease;
}
.cpp-sermon-detail-page .cpp-sermon-video-external a:hover {
        color: var(--cpp-primary, #1d4ed8);
    border-color: #c8d9ff;
    background: #fff;
    transform: translateY(-1px);
}

.cpp-sermon-detail-page .cpp-sermon-audio-player {
    padding: 18px;
    border: 1px solid #dcdcde;
    border-radius: 8px;
    background-color: #f9fafb;
}

.cpp-sermon-detail-page .cpp-sermon-audio-player h4 {
    margin: 0 0 12px;
    color: var(--cpp-text-heading);
    font-size: 22px;
    font-weight: 740;
    letter-spacing: -.025em;
    line-height: 1.3;
}

.cpp-sermon-detail-page .cpp-sermon-audio-player audio {
    display: block;
    width: 100%;
}

/*
 * Sermon Scripture References
 */

.cpp-sermon-detail-page .cpp-sermon-detail-scriptures {
    margin-bottom: 28px;
}

.cpp-sermon-detail-page .cpp-sermon-scripture-list {
    display: grid;
    grid-template-columns: repeat(
        2,
        minmax(0, 1fr)
    );
    gap: 12px;
}

.cpp-sermon-detail-page .cpp-sermon-scripture-item {
    display: flex;
    flex-direction: column;
    gap: 5px;
    padding: 16px;
    border: 1px solid #ced4da;
    border-radius: 8px;
}

.cpp-sermon-detail-page .cpp-sermon-scripture-primary {
    grid-column: 1 / -1;
}

.cpp-sermon-detail-page .cpp-sermon-scripture-label {
        color: #172033;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.cpp-sermon-detail-page .cpp-sermon-scripture-item strong {
    font-size: 16px;
    line-height: 1.4;
}

.cpp-sermon-detail-page .cpp-sermon-scripture-item .cpp-sermon-scripture-read {
        display: inline-flex;
    width: 130px;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    min-height: 36px;
    padding: 7px 12px;
    border: 1px solid #dbe7ff;
    border-radius: 9px;
    background: var(--cpp-primary-soft, #eef4ff);
    color: var(--cpp-primary, #1d4ed8);
    font-size: 11px;
    font-weight: 750;
    line-height: 1;
    text-decoration: none;
    text-transform: capitalize;
    cursor: pointer;
    transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease;
}
.cpp-sermon-detail-page .cpp-sermon-scripture-item .cpp-sermon-scripture-read:hover {
        color: var(--cpp-primary, #1d4ed8);
    border-color: #c8d9ff;
    background: #fff;
    transform: translateY(-1px);
    text-decoration: none;
}


@media (max-width: 767px) {

    .cpp-sermon-detail-page .cpp-sermon-scripture-list {
        grid-template-columns: 1fr;
    }

    .cpp-sermon-detail-page .cpp-sermon-scripture-primary {
        grid-column: auto;
    }
}

/*
 * Sermon Study Content
 */

.cpp-sermon-detail-page .cpp-sermon-study-block {
    margin-top: 20px;
    padding: 20px;
    border: 1px solid #dcdcde;
    border-radius: 10px;
}

.cpp-sermon-detail-page .cpp-sermon-study-block h4 {
    margin: 0 0 22px;
    color: var(--cpp-text-heading);
    font-size: 20px;
    font-weight: 740;
    letter-spacing: -.025em;
    line-height: 1.3;
}

.cpp-sermon-detail-page .cpp-sermon-takeaway-list,
.cpp-sermon-detail-page .cpp-sermon-question-list {
    margin: 0;
    padding-left: 22px;
}

.cpp-sermon-detail-page .cpp-sermon-takeaway-list li,
.cpp-sermon-detail-page .cpp-sermon-question-list li {
    margin-bottom: 10px;
    line-height: 1.6;
}

.cpp-sermon-detail-page .cpp-sermon-takeaway-list li:last-child,
.cpp-sermon-detail-page .cpp-sermon-question-list li:last-child {
    margin-bottom: 0;
}

.cpp-sermon-detail-page .cpp-sermon-study-notes-content {
    line-height: 1.7;
}

.cpp-sermon-detail-page .cpp-sermon-study-notes-content > :first-child {
    margin-top: 0;
}

.cpp-sermon-detail-page .cpp-sermon-study-notes-content > :last-child {
    margin-bottom: 0;
}

.cpp-sermon-detail-page .cpp-sermon-study-guide {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin-top: 20px;
    padding: 20px;
    border: 1px solid #dcdcde;
    border-radius: 10px;
}

.cpp-sermon-detail-page .cpp-sermon-study-guide-content {
    display: flex;
    flex-direction: column;
    gap: 4px;
    min-width: 0;
}

.cpp-sermon-detail-page .cpp-sermon-study-guide-content span {
    overflow-wrap: anywhere;
    font-size: 13px;
}

.cpp-sermon-detail-page .cpp-sermon-study-guide-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    padding: 10px 16px;
    border-radius: 7px;
    font-weight: 600;
    text-decoration: none;
}


@media (max-width: 767px) {

    .cpp-sermon-detail-page .cpp-sermon-study-guide {
        align-items: stretch;
        flex-direction: column;
    }

    .cpp-sermon-detail-page .cpp-sermon-study-guide-button {
        width: 100%;
    }
}

/*
 * Sermon Related Resources
 */

.cpp-sermon-detail-page .cpp-sermon-resource-grid {
    display: grid;
    grid-template-columns: repeat(
        2,
        minmax(0, 1fr)
    );
    gap: 16px;
}

.cpp-sermon-detail-page .cpp-sermon-resource-card {
    display: flex;
    flex-direction: column;
    gap: 10px;
    padding: 20px;
    border: 1px solid #dcdcde;
    border-radius: 10px;
}

.cpp-sermon-detail-page .cpp-sermon-resource-type {
    color: #6F2D96;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

.cpp-sermon-detail-page .cpp-sermon-resource-title {
    margin: 0;
    color: var(--cpp-text-heading);
    font-size: 24px;
    font-weight: 740;
    letter-spacing: -.025em;
    line-height: 1.3;
}

.cpp-sermon-detail-page .cpp-sermon-resource-description {
    margin: 0;
    line-height: 1.6;
}

.cpp-sermon-detail-page .cpp-sermon-resource-file {
    margin-top: auto;
    overflow-wrap: anywhere;
    font-size: 13px;
}

.cpp-sermon-detail-page .cpp-sermon-resource-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 10px;
    margin-top: 4px;
}

.cpp-sermon-detail-page .cpp-sermon-resource-button,
.cpp-sermon-detail-page .cpp-sermon-resource-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    min-height: 36px;
    padding: 7px 12px;
    border: 1px solid #dbe7ff;
    border-radius: 9px;
    background: var(--cpp-primary-soft, #eef4ff);
    color: var(--cpp-primary, #1d4ed8);
    font-size: 12px;
    font-weight: 750;
    line-height: 1;
    text-decoration: none;
    text-transform: capitalize;
    cursor: pointer;
    transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease;
}
.cpp-sermon-detail-page .cpp-sermon-resource-button:hover,
.cpp-sermon-detail-page .cpp-sermon-resource-link:hover {
    color: var(--cpp-primary, #1d4ed8);
    border-color: #c8d9ff;
    background: #fff;
    transform: translateY(-1px);
}

.cpp-sermon-detail-page .cpp-sermon-resource-button {
    padding: 9px 14px;
    border-radius: 7px;
}


@media (max-width: 767px) {

    .cpp-sermon-detail-page .cpp-sermon-resource-grid {
        grid-template-columns: 1fr;
    }

    .cpp-sermon-detail-page .cpp-sermon-resource-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .cpp-sermon-detail-page .cpp-sermon-resource-button,
   .cpp-sermon-detail-page .cpp-sermon-resource-link {
        width: 100%;
    }
}

/*
 * Sermon Detail — Final Content Hierarchy
 */

.cpp-sermon-detail-page .cpp-sermon-detail-content {
    padding: 36px;
}

.cpp-sermon-detail-page .cpp-sermon-detail-media,
.cpp-sermon-detail-page .cpp-sermon-details-section,
.cpp-sermon-detail-page .cpp-sermon-detail-scriptures,
.cpp-sermon-detail-page .cpp-sermon-message,
.cpp-sermon-detail-page .cpp-sermon-study,
.cpp-sermon-detail-page .cpp-sermon-related-resources {
    margin-top: 34px;
}

.cpp-sermon-detail-page .cpp-sermon-details-section,
.cpp-sermon-detail-page .cpp-sermon-detail-scriptures,
.cpp-sermon-detail-page .cpp-sermon-message,
.cpp-sermon-detail-page .cpp-sermon-study,
.cpp-sermon-detail-page .cpp-sermon-related-resources {
    padding-top: 30px;
    border-top: 1px solid #dcdcde;
}

.cpp-sermon-detail-page .cpp-sermon-section-heading {
    margin-bottom: 18px;
}

.cpp-sermon-detail-page .cpp-sermon-section-heading h3 {
    margin: 0 0 22px;
    color: var(--cpp-text-heading);
    font-size: 22px;
    font-weight: 740;
    letter-spacing: -.025em;
    line-height: 1.3;
}

.cpp-sermon-detail-page .cpp-sermon-section-heading
.cpp-portal-section-description {
    max-width: 720px;
    margin: 6px 0 0;
    line-height: 1.6;
}

.cpp-sermon-detail-page .cpp-sermon-detail-series {
    color: #6F2D96;
    display: inline-flex;
    align-items: center;
    width: fit-content;
    margin-bottom: 12px;
    padding: 6px 10px;
    border: 1px solid #6F2D96;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.06em;
    line-height: 1.2;
    text-transform: uppercase;
}

.cpp-sermon-detail-page .cpp-sermon-detail-title {
    max-width: 900px;
    margin: 0 0 12px;
    color: var(--cpp-text-heading);
    font-size: 38px;
    font-weight: 740;
    letter-spacing: -.025em;
    line-height: 1.3;
}

.cpp-sermon-detail-page .cpp-sermon-detail-primary-meta {
    align-items: center;
    margin-bottom: 14px;
    font-size: 14px;
}

.cpp-sermon-detail-page .cpp-sermon-detail-scripture {
    color: #6F2D96;
    display: inline-flex;
    align-items: center;
    margin-bottom: 16px;
    font-size: 15px;
    font-weight: 700;
    padding: 6px 30px;
    border: 1px solid #6F2D96;
    border-radius: 999px;
}

.cpp-sermon-detail-page .cpp-sermon-detail-topics {
    margin-bottom: 0;
}

.cpp-sermon-detail-page .cpp-sermon-detail-info > div,
.cpp-sermon-detail-page .cpp-sermon-scripture-item,
.cpp-sermon-detail-page .cpp-sermon-study-block,
.cpp-sermon-detail-page .cpp-sermon-study-guide,
.cpp-sermon-detail-page .cpp-sermon-resource-card,
.cpp-sermon-detail-page .cpp-sermon-audio-player,
.cpp-sermon-detail-page .cpp-sermon-video-external {
    border: 1px solid #dcdcde;
    border-radius: 10px;
}

.cpp-sermon-detail-page .cpp-sermon-detail-info > div,
.cpp-sermon-detail-page .cpp-sermon-scripture-item {
    padding: 18px;
    background-color: #f9fafb;
}

.cpp-sermon-detail-page .cpp-sermon-scripture-primary {
    position: relative;
    padding: 20px;
}

.cpp-sermon-detail-page .cpp-sermon-detail-info > div {
        transition: border-color 0.2s ease, box-shadow 0.2s ease, transform 0.2s ease;
}
.cpp-sermon-detail-page .cpp-sermon-detail-info > div:hover {
    border-color: #6B3FC4;
    box-shadow: 0 8px 22px rgba(23, 32, 51, 0.08);
    transform: translateY(-2px);
}

.cpp-sermon-detail-page .cpp-sermon-scripture-primary
.cpp-sermon-scripture-label {
    font-weight: 800;
}

.cpp-sermon-detail-page .cpp-sermon-scripture-primary strong {
    font-size: 18px;
}

.cpp-sermon-detail-page .cpp-sermon-scripture-primary .cpp-sermon-scripture-read {
    display: inline-flex;
    width: 130px;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    min-height: 36px;
    padding: 7px 12px;
    border: 1px solid #dbe7ff;
    border-radius: 9px;
    background: var(--cpp-primary-soft, #eef4ff);
    color: var(--cpp-primary, #1d4ed8);
    font-size: 11px;
    font-weight: 750;
    line-height: 1;
    text-decoration: none;
    text-transform: capitalize;
    cursor: pointer;
    transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease;
}
.cpp-sermon-detail-page .cpp-sermon-scripture-primary .cpp-sermon-scripture-read:hover {
        color: var(--cpp-primary, #1d4ed8);
    border-color: #c8d9ff;
    background: #fff;
    transform: translateY(-1px);
    text-decoration: none;
}

.cpp-sermon-detail-page .cpp-sermon-takeaway-list,
.cpp-sermon-detail-page .cpp-sermon-question-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

.cpp-sermon-detail-page .cpp-sermon-takeaway-list li,
.cpp-sermon-detail-page .cpp-sermon-question-list li {
    margin: 0;
    line-height: 1.65;
}

.cpp-sermon-detail-page .cpp-sermon-question-list li::marker {
    font-weight: 700;
}

.cpp-sermon-detail-page .cpp-sermon-resource-card {
    min-height: 100%;
}

.cpp-sermon-detail-page .cpp-sermon-resource-description {
    flex-grow: 1;
}

.cpp-sermon-detail-page .cpp-sermon-resource-actions {
    margin-top: auto;
    padding-top: 6px;
}

.cpp-sermon-detail-page .cpp-sermon-detail-hero-image {
    position: relative;
    width: 100%;
    aspect-ratio: 16 / 7;
    max-height: none;
    overflow: hidden;
}

.cpp-sermon-detail-page .cpp-sermon-detail-hero-image img {
    width: 100%;
    height: 100%;
    max-height: none;
    object-fit: cover;
}

.cpp-sermon-detail-page .cpp-sermon-back-link {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    padding: 10px 17px;
    border: 1px solid transparent;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    color: #ffffff;
    text-decoration: none;
    font-size: 14px;
    font-weight: 700;
    text-transform: capitalize;
    box-shadow: 0 8px 18px rgba(29, 78, 216, .2);
    transition: transform .18s ease, box-shadow .18s ease;
}

.cpp-sermon-detail-page .cpp-sermon-back-link:hover,
.cpp-sermon-detail-page .cpp-sermon-back-link:focus-visible {
    color: #ffffff;
    transform: translateY(-2px);
    text-decoration: none;
    box-shadow: 0 12px 24px rgba(29, 78, 216, .26);
}

.cpp-sermon-detail-page .cpp-sermon-message {
    background-color: #f9fafb;
    padding: 18px 20px;
    border: 1px solid #ced4da;
    border-radius: 12px;
}
.cpp-sermon-detail-page .cpp-sermon-study {
    background-color: #f9fafb;
    padding: 18px 20px;
    border: 1px solid #ced4da;
    border-radius: 12px;
}
.cpp-sermon-detail-page .cpp-sermon-related-resources {
    background-color: #f9fafb;
    padding: 18px 20px;
    border: 1px solid #ced4da;
    border-radius: 12px;
}

@media (max-width: 767px) {

    .cpp-sermon-detail-page .cpp-sermon-detail-content {
        padding: 22px 18px;
    }

    .cpp-sermon-detail-page .cpp-sermon-detail-media,
    .cpp-sermon-detail-page .cpp-sermon-details-section,
    .cpp-sermon-detail-page .cpp-sermon-detail-scriptures,
    .cpp-sermon-detail-page .cpp-sermon-message,
    .cpp-sermon-detail-page .cpp-sermon-study,
    .cpp-sermon-detail-page .cpp-sermon-related-resources {
        margin-top: 28px;
    }

    .cpp-sermon-detail-page .cpp-sermon-details-section,
    .cpp-sermon-detail-page .cpp-sermon-detail-scriptures,
    .cpp-sermon-detail-page .cpp-sermon-message,
    .cpp-sermon-detail-page .cpp-sermon-study,
    .cpp-sermon-detail-page .cpp-sermon-related-resources {
        padding-top: 24px;
    }

    .cpp-sermon-detail-page .cpp-sermon-section-heading h3 {
        font-size: 20px;
    }

    .cpp-sermon-detail-title {
        font-size: 30px;
    }

    .cpp-sermon-detail-hero-image {
        aspect-ratio: 16 / 9;
    }

    .cpp-sermon-detail-primary-meta {
        gap: 6px;
    }
}

/*
 * Sermon Library Filters
 */

.cpp-sermon-library-page-layout .cpp-sermon-filter-form {
    margin-top: 20px;
}

.cpp-sermon-library-page-layout .cpp-sermon-filter-grid {
    display: grid;
    grid-template-columns: repeat(
        3,
        minmax(0, 1fr)
    );
    gap: 14px;
}

.cpp-sermon-library-page-layout .cpp-sermon-filter-field {
    display: flex;
    flex-direction: column;
    gap: 7px;
    min-width: 0;
}

.cpp-sermon-library-page-layout .cpp-sermon-filter-field label {
    font-size: 13px;
    font-weight: 700;
}

.cpp-sermon-library-page-layout .cpp-sermon-filter-field select {
    width: 100%;
    min-height: 50px;
    padding: 9px 12px;
    border: 1px solid #dcdcde;
    border-radius: 7px;
    background: #fff;
}

.cpp-sermon-library-page-layout .cpp-sermon-filter-actions {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 12px;
    margin-top: 16px;
}

.cpp-sermon-library-page-layout .cpp-sermon-filter-submit {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    padding: 10px 17px;
    border: 1px solid transparent;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    color: #ffffff;
    text-decoration: none;
    font-size: 14px;
    font-weight: 700;
    text-transform: capitalize;
    box-shadow: 0 8px 18px rgba(29, 78, 216, .2);
    transition: transform .18s ease, box-shadow .18s ease;
}
.cpp-sermon-library-page-layout .cpp-sermon-filter-submit:hover,
.cpp-sermon-library-page-layout .cpp-sermon-filter-submit:focus {
        color: #ffffff;
    transform: translateY(-2px);
    text-decoration: none;
    box-shadow: 0 12px 24px rgba(29, 78, 216, .26);
}

.cpp-sermon-library-page-layout .cpp-sermon-filter-reset {
        display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    min-height: 36px;
    padding: 7px 12px;
    border: 1px solid #dbe7ff;
    border-radius: 9px;
    background: var(--cpp-primary-soft, #eef4ff);
    color: var(--cpp-primary, #1d4ed8);
    font-size: 12px;
    font-weight: 750;
    line-height: 1;
    text-decoration: none;
    text-transform: capitalize;
    cursor: pointer;
    transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease;
}

.cpp-sermon-library-page-layout .cpp-sermon-filter-reset:hover,
.cpp-sermon-library-page-layout .cpp-sermon-filter-reset:focus-visible {
    color: var(--cpp-primary, #1d4ed8);
    border-color: #c8d9ff;
    background: #fff;
    transform: translateY(-1px);
    text-decoration: none;
}


@media (max-width: 900px) {

    .cpp-sermon-library-page-layout .cpp-sermon-filter-grid {
        grid-template-columns: 1fr;
    }
}


@media (max-width: 767px) {

    .cpp-sermon-library-page-layout .cpp-sermon-filter-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .cpp-sermon-library-page-layout .cpp-sermon-filter-submit,
    .cpp-sermon-library-page-layout .cpp-sermon-filter-reset {
        width: 100%;
    }
}

.cpp-sermon-library-page-layout .cpp-sermon-search-row {
    display: flex;
    align-items: stretch;
    gap: 10px;
    margin-bottom: 18px;
}

.cpp-sermon-library-page-layout .cpp-sermon-search-input {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 46px;
    padding: 10px 14px;
    border: 1px solid #dcdcde;
    border-radius: 7px;
    font-size: 15px;
}

.cpp-sermon-library-page-layout .cpp-sermon-search-button {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    padding: 10px 17px;
    border: 1px solid transparent;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    color: #ffffff;
    text-decoration: none;
    font-size: 14px;
    font-weight: 700;
    text-transform: capitalize;
    box-shadow: 0 8px 18px rgba(29, 78, 216, .2);
    transition: transform .18s ease, box-shadow .18s ease;
}
.cpp-sermon-library-page-layout .cpp-sermon-search-button:hover,
.cpp-sermon-library-page-layout .cpp-sermon-search-button:focus {
    color: #ffffff;
    transform: translateY(-2px);
    text-decoration: none;
    box-shadow: 0 12px 24px rgba(29, 78, 216, .26);
}

@media (max-width: 767px) {

    .cpp-sermon-library-page-layout .cpp-sermon-search-row {
        flex-direction: column;
    }

    .cpp-sermon-library-page-layout .cpp-sermon-search-input,
    .cpp-sermon-library-page-layout .cpp-sermon-search-button {
        width: 100%;
    }
}

/*
 * Sermon Library Active Search State
 */

.cpp-sermon-library-page-layout .cpp-sermon-active-state {
    margin-top: 20px;
    padding: 16px;
    border: 1px solid #e2e4e7;
    border-radius: 10px;
    background: #fff;
}

.cpp-sermon-library-page-layout .cpp-sermon-active-state-header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 12px;
}

.cpp-sermon-library-page-layout .cpp-sermon-active-state-label {
    font-size: 13px;
    font-weight: 700;
}

.cpp-sermon-library-page-layout .cpp-sermon-active-clear-all {
        display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    min-height: 36px;
    padding: 7px 12px;
    border: 1px solid #dbe7ff;
    border-radius: 9px;
    background: var(--cpp-primary-soft, #eef4ff);
    color: var(--cpp-primary, #1d4ed8);
    font-size: 11px;
    font-weight: 750;
    line-height: 1;
    text-decoration: none;
    text-transform: capitalize;
    cursor: pointer;
    transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease;
}

.cpp-sermon-library-page-layout .cpp-sermon-active-clear-all:hover,
.cpp-sermon-library-page-layout .cpp-sermon-active-clear-all:focus,
.cpp-sermon-library-page-layout .cpp-sermon-active-clear-all:focus-visible {
    color: var(--cpp-primary, #1d4ed8);
    border-color: #c8d9ff;
    background: #fff;
    transform: translateY(-1px);
    text-decoration: none;
}

.cpp-sermon-library-page-layout .cpp-sermon-active-chips {
    display: flex;
    flex-wrap: wrap;
    gap: 9px;
}

.cpp-sermon-library-page-layout .cpp-sermon-active-chip {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    min-height: 36px;
    padding: 7px 10px;
    border: 1px solid #dcdcde;
    border-radius: 999px;
    background: #fff;
    color: inherit;
    text-decoration: none;
    line-height: 1.2;
}

.cpp-sermon-library-page-layout .cpp-sermon-active-chip:hover,
.cpp-sermon-library-page-layout .cpp-sermon-active-chip:focus-visible {
    border-color: #8c8f94;
    text-decoration: none;
}

.cpp-sermon-library-page-layout .cpp-sermon-active-chip-type {
    font-size: 11px;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: .04em;
    opacity: .65;
}

.cpp-sermon-library-page-layout .cpp-sermon-active-chip-value {
    color: #6F2D96;
    font-size: 13px;
    font-weight: 600;
}

.cpp-sermon-library-page-layout .cpp-sermon-active-chip-remove {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 18px;
    height: 18px;
    font-size: 17px;
    line-height: 1;
}


@media (max-width: 767px) {

    .cpp-sermon-library-page-layout .cpp-sermon-active-state-header {
        align-items: flex-start;
    }

    .cpp-sermon-library-page-layout .cpp-sermon-active-chip {
        max-width: 100%;
    }

    .cpp-sermon-library-page-layout .cpp-sermon-active-chip-value {
        overflow-wrap: anywhere;
    }
}

/*
 * Sermon Library Results
 */
.cpp-sermon-library-results {}
.cpp-sermon-library-page-layout .cpp-sermon-results-header {
    margin-top: 0px;
    margin-bottom: 20px;
}

.cpp-sermon-library-page-layout .cpp-sermon-results-heading {
    display: flex;
    align-items: baseline;
    justify-content: space-between;
    gap: 16px;
}

.cpp-sermon-library-page-layout .cpp-sermon-results-title {
    margin: 0;
    color: var(--cpp-text-heading);
    font-size: 24px;
    font-weight: 740;
    letter-spacing: -.025em;
    line-height: 1.3;
}

.cpp-sermon-library-page-layout .cpp-sermon-results-count {
    flex: 0 0 auto;
    font-size: 13px;
    font-weight: 600;
        opacity: 1;
        color: #fff;
    background-color: rgb(111, 45, 150);
    padding: 8px 30px;
    border: 1px solid rgb(111, 45, 150);
    border-radius: 999px;
    text-transform: capitalize;
}

.cpp-sermon-library-page-layout .cpp-sermon-results-summary {
    margin: 0;
    line-height: 1.6;
    opacity: 1;
}

.cpp-sermon-library-page-layout .cpp-sermon-results-status {
    position: absolute !important;
    width: 1px !important;
    height: 1px !important;
    padding: 0 !important;
    margin: -1px !important;
    overflow: hidden !important;
    clip: rect(0, 0, 0, 0) !important;
    white-space: nowrap !important;
    border: 0 !important;
}

/*
 * Sermon Library Empty State
 */

.cpp-sermon-library-page-layout .cpp-sermon-empty-state {
    padding: 42px 28px;
    border: 1px solid #e2e4e7;
    border-radius: 12px;
    text-align: center;
    background: #fafafa;
}

.cpp-sermon-library-page-layout .cpp-sermon-empty-state h3 {
    margin: 0 0 10px;
}

.cpp-sermon-library-page-layout .cpp-sermon-empty-state p {
    max-width: 620px;
    margin: 0 auto;
    line-height: 1.7;
}

.cpp-sermon-library-page-layout .cpp-sermon-empty-reset {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    margin-top: 20px;
    padding: 10px 18px;
    border-radius: 8px;
    text-decoration: none;
    font-weight: 600;
}

.cpp-sermon-library-page-layout .cpp-sermon-empty-reset:hover,
.cpp-sermon-library-page-layout .cpp-sermon-empty-reset:focus-visible {
    text-decoration: none;
}

@media (max-width: 767px) {

    .cpp-sermon-library-page-layout .cpp-sermon-results-heading {
        align-items: flex-start;
        flex-direction: column-reverse;
        gap: 5px;
    }

    .cpp-sermon-library-page-layout .cpp-sermon-results-header {
        margin-top: 26px;
    }

    .cpp-sermon-library-page-layout .cpp-sermon-empty-state {
        padding: 32px 20px;
    }
}

.cpp-dashboard .cpp-spiritual-library-nav {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
    margin: 0 0 28px;
}

.cpp-dashboard .cpp-spiritual-library-nav__item {
    display: flex;
    align-items: center;
    gap: 14px;
    min-height: 82px;
    padding: 16px 18px;
    border: 1px solid #8F8F8F;
    border-radius: 14px;
    background: #ffffff;
    color: #252b33;
    text-decoration: none;
    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease,
        transform 0.2s ease,
        background 0.2s ease;
}

.cpp-dashboard .cpp-spiritual-library-nav__item:hover {
    border-color: #6b3fc4;
    box-shadow:
        0 7px 22px rgba(20, 31, 45, 0.08);
    transform: translateY(-1px);
}

.cpp-dashboard .cpp-spiritual-library-nav__item:focus-visible {
    outline: 3px solid currentColor;
    outline-offset: 3px;
}

.cpp-dashboard .cpp-spiritual-library-nav__item.is-active {
    border-color: #6b3fc4;
    background-color: #6b3fc4;
    box-shadow:
        0 8px 24px rgba(107, 63, 196, 0.10);
}
.cpp-dashboard .cpp-spiritual-library-nav__item.is-active .cpp-spiritual-library-nav__icon {
        background: #ffffff;
    color: #6b3fc4;
}
.cpp-dashboard .cpp-spiritual-library-nav__item.is-active .cpp-spiritual-library-nav__icon svg { stroke: #6F2D96; }
.cpp-dashboard .cpp-spiritual-library-nav__item.is-active .cpp-spiritual-library-nav__content { color: #fff; }
.cpp-dashboard .cpp-spiritual-library-nav__item.is-active .cpp-spiritual-library-nav__content small { color: #fff; }

.cpp-dashboard .cpp-spiritual-library-nav__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 46px;
    width: 46px;
    height: 46px;
    border-radius: 12px;
    background: #6b3fc4;
    color: #fff;
}

.cpp-dashboard .cpp-spiritual-library-nav__content {
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
}

.cpp-dashboard .cpp-spiritual-library-nav__content strong {
    color: inherit;
    font-size: 16px;
    line-height: 1.25;
}

.cpp-dashboard .cpp-spiritual-library-nav__content small {
    color: #707781;
    font-size: 13px;
    line-height: 1.4;
}


/* Bible shell */

.cpp-sermon-library-page-layout .cpp-bible-library {
    overflow: hidden;
    border: 1px solid #e3e7ec;
    border-radius: 16px;
    background: #ffffff;
}

.cpp-sermon-library-page-layout .cpp-bible-library__header {
    padding: 30px;
    background:
        linear-gradient(
            135deg,
            rgba(107, 63, 196, 0.07),
            rgba(242, 181, 68, 0.05)
        );
    border-bottom: 1px solid #e8ebef;
}

.cpp-sermon-library-page-layout .cpp-bible-library__eyebrow {
    display: inline-block;
    margin-bottom: 8px;
    color: #6b3fc4;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.cpp-sermon-library-page-layout .cpp-bible-library__header h2 {
    margin: 0 0 8px;
    color: #242830;
    font-size: 28px;
    line-height: 1.2;
}

.cpp-sermon-library-page-layout .cpp-bible-library__header p {
    max-width: 760px;
    margin: 0;
    color: #606771;
    line-height: 1.7;
}

.cpp-sermon-library-page-layout .cpp-bible-library__coming-next {
    display: flex;
    align-items: center;
    gap: 16px;
    margin: 24px;
    padding: 20px;
    border: 1px dashed #d5dae1;
    border-radius: 13px;
    background: #fafbfc;
}

.cpp-sermon-library-page-layout .cpp-bible-library__book-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 58px;
    width: 58px;
    height: 58px;
    border-radius: 14px;
    background: rgba(107, 63, 196, 0.09);
    color: #6b3fc4;
}

.cpp-sermon-library-page-layout .cpp-bible-library__coming-next strong {
    display: block;
    margin-bottom: 4px;
    color: #292e36;
}

.cpp-sermon-library-page-layout .cpp-bible-library__coming-next p {
    margin: 0;
    color: #69717c;
    line-height: 1.55;
}

/* =========================================================
   Previous Livestreams
   ========================================================= */

.cpp-sermon-library-page .cpp-livestream-grid {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
    margin-top: 24px;
}

.cpp-sermon-library-page .cpp-livestream-card {
    overflow: hidden;
    padding: 0;
    background-color: #fff;
}

.cpp-sermon-library-page .cpp-widget-header h2 {
    margin: 0 0 10px;
    color: var(--cpp-text-heading);
    font-size: clamp(24px, 3vw, 30px);
    font-weight: 760;
    letter-spacing: -.035em;
    line-height: 1.15;
}

.cpp-sermon-library-page .cpp-livestream-card__thumbnail {
    position: relative;
    display: block;
    overflow: hidden;
    aspect-ratio: 16 / 9;
    background: #111827;
}

.cpp-sermon-library-page .cpp-livestream-card__thumbnail img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
    transition:
        transform 0.3s ease;
}

.cpp-sermon-library-page .cpp-livestream-card__thumbnail:hover img {
    transform: scale(1.035);
}

.cpp-sermon-library-page .cpp-livestream-card__play {
    position: absolute;
    top: 50%;
    left: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    transform: translate(-50%, -50%);
    color: #ff0000;
    filter:
        drop-shadow(
            0 4px 12px
            rgba(0, 0, 0, 0.28)
        );
    transition:
        transform 0.2s ease;
}

.cpp-sermon-library-page .cpp-livestream-card__thumbnail:hover
.cpp-sermon-library-page .cpp-livestream-card__play {
    transform:
        translate(-50%, -50%)
        scale(1.08);
}

.cpp-sermon-library-page .cpp-livestream-card__content {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    padding: 20px;
}

.cpp-sermon-library-page .cpp-livestream-card__date {
    margin-bottom: 8px;
    font-size: 13px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.04em;
    text-transform: uppercase;
    color: #6b7280;
}

.cpp-sermon-library-page .cpp-livestream-card__title {
    margin: 0;
    font-size: 18px;
    line-height: 1.4;
}

.cpp-sermon-library-page .cpp-livestream-card__actions {
    margin-top: 18px;
}

.cpp-sermon-library-page .cpp-livestream-watch-button {
    display: inline-flex;
    min-height: 38px;
    align-items: center;
    justify-content: center;
    padding: 8px 13px;
    border: 1px solid #dbe7ff;
    border-radius: 10px;
    background: var(--cpp-primary-soft, #eef4ff);
    color: var(--cpp-primary, #1d4ed8);
    text-decoration: none;
    font-size: 12px;
    font-weight: 700;
    white-space: nowrap;
    transition: background-color .18s ease, border-color .18s ease, transform .18s ease;
}
.cpp-sermon-library-page .cpp-livestream-watch-button:hover {
        text-decoration: none;
    border-color: #c8d9ff;
    background: #ffffff;
    color: var(--cpp-primary, #1d4ed8);
    transform: translateY(-1px);
}

.cpp-sermon-library-page .cpp-livestreams-empty {
    margin-top: 24px;
}

/* =========================================================
   Previous Livestreams — Channel CTA
   ========================================================= */

.cpp-sermon-library-page .cpp-livestreams-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 32px;

    margin-top: 32px;
    padding: 26px 28px;

    border: 1px solid #e5e7eb;
    border-radius: 14px;

    background:
        linear-gradient(
            135deg,
            #ffffff 0%,
            #f8fafc 100%
        );
}

.cpp-sermon-library-page .cpp-livestreams-footer__content {
    max-width: 680px;
}

.cpp-sermon-library-page .cpp-livestreams-footer__eyebrow {
    display: block;

    margin-bottom: 6px;

    font-size: 12px;
    font-weight: 700;
    line-height: 1.4;

    letter-spacing: 0.08em;
    text-transform: uppercase;

    color: #6b7280;
}

.cpp-sermon-library-page .cpp-livestreams-footer h3 {
    margin:
        0
        0
        7px;

    font-size: 19px;
    line-height: 1.35;
}

.cpp-sermon-library-page .cpp-livestreams-footer p {
    margin: 0;

    line-height: 1.65;

    color: #6b7280;
}

.cpp-sermon-library-page .cpp-livestreams-channel-button {
        display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    color: rgb(255, 255, 255);
    font-size: 14px;
    font-weight: 700;
    box-shadow: rgba(29, 78, 216, 0.2) 0px 8px 18px;
    padding: 10px 17px;
    border-width: 1px;
    border-style: solid;
    border-color: transparent;
    border-image: none;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    text-decoration: none;
    transition: transform 0.18s, box-shadow 0.18s;
}
.cpp-sermon-library-page .cpp-livestreams-channel-button:hover {
        color: rgb(255, 255, 255);
    transform: translateY(-2px);
    box-shadow: rgba(29, 78, 216, 0.26) 0px 12px 24px;
}

.cpp-sermon-library-page .cpp-livestreams-channel-button svg {
    flex: 0 0 auto;
}

/* Tablet */

@media (max-width: 1024px) {

    .cpp-sermon-library-page .cpp-livestream-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

}

/* Tablet / Mobile */

@media (max-width: 768px) {

    .cpp-sermon-library-page .cpp-livestreams-footer {
        align-items: flex-start;
        flex-direction: column;

        gap: 20px;

        padding: 22px;
    }

    .cpp-sermon-library-page .cpp-livestreams-channel-button {
        width: 100%;
    }
    .cpp-dashboard .cpp-spiritual-library-nav {
        grid-template-columns: repeat(1, minmax(0, 1fr));
    }

}

@media (max-width: 700px) {

    .cpp-sermon-library-page-layout .cpp-spiritual-library-nav {
        grid-template-columns: 1fr;
        gap: 10px;
        margin-bottom: 22px;
    }

    .cpp-sermon-library-page-layout .cpp-spiritual-library-nav__item {
        min-height: 74px;
        padding: 14px;
    }

    .cpp-sermon-library-page-layout .cpp-bible-library__header {
        padding: 22px 18px;
    }

    .cpp-sermon-library-page-layout .cpp-bible-library__header h2 {
        font-size: 24px;
    }

    .cpp-sermon-library-page-layout .cpp-bible-library__coming-next {
        align-items: flex-start;
        margin: 16px;
        padding: 17px;
    }
}

/* Mobile */

@media (max-width: 640px) {

     .cpp-sermon-library-page .cpp-livestream-grid {
        grid-template-columns: 1fr;
        gap: 18px;
    }

    .cpp-sermon-library-page .cpp-livestream-card__content {
        padding: 18px;
    }

}

/* ==========================================================
   Bible Library - Book & Chapter Browser
   ========================================================== */

.cpp-bible-library .cpp-bible-library__meta {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 8px;
}

.cpp-bible-library .cpp-bible-library__meta
.cpp-bible-library__eyebrow {
    margin-bottom: 0;
}

.cpp-bible-library .cpp-bible-search-header { margin-bottom: 28px; }

.cpp-bible-library .cpp-bible-library__header #cpp-bible-library-title {
    margin: 0 0 10px;
    color: var(--cpp-text-heading);
    font-size: clamp(24px, 3vw, 30px);
    font-weight: 760;
    letter-spacing: -.035em;
    line-height: 1.15;
}

.cpp-bible-library .cpp-bible-library__translation {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 24px;
    padding: 3px 9px;
    border-radius: 999px;
    background: rgba(107, 63, 196, 0.1);
    color: #6b3fc4;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.05em;
}

.cpp-bible-library .cpp-bible-library__body {
    display: flex;
    flex-direction: column;
    gap: 28px;
}


/* Testament */

/*.cpp-bible-library .cpp-bible-testament {
    border: 1px solid #8F8F8F;
    border-radius: 15px;
    background: #ffffff;
}*/

.cpp-bible-library .cpp-bible-testament__header {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    padding: 10px 20px;
    border-bottom: 1px solid #e8ebef;
}

.cpp-bible-library .cpp-bible-testament__header h3 {
    color: var(--cpp-text-heading);
    font-size: 22px;
    font-weight: 740;
    letter-spacing: -0.025em;
    line-height: 1.3;
    margin: 0px;
}

.cpp-bible-library .cpp-bible-testament__header span {
        color: #fff;
    display: inline-flex;
    align-items: center;
    margin-bottom: 16px;
    font-size: 13px;
    font-weight: 700;
    padding: 6px 20px;
    border-width: 1px;
    border-style: solid;
    border-color: rgb(111, 45, 150);
    border-image: none;
    border-radius: 999px;
    background-color: rgb(111, 45, 150);
}

.cpp-bible-library .cpp-bible-testament__groups {
    display: flex;
    flex-direction: column;
    gap: 26px;
    padding: 22px;
}


/* Groups */

.cpp-bible-library .cpp-bible-book-group h4 {
    margin: 0 0 12px;
    color: #6b3fc4;
    font-size: 13px;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}


/* Book cards */

.cpp-bible-library .cpp-bible-book-grid {
    display: grid;
    grid-template-columns:
        repeat(
            4,
            minmax(0, 1fr)
        );
    gap: 10px;
}

.cpp-bible-library .cpp-bible-book-card {
    display: flex;
    flex-direction: column;
    justify-content: center;
    gap: 3px;
    min-height: 72px;
    padding: 13px 14px;
    border: 1px solid #c8bddf;
    border-radius: 11px;
    background: #fafbfc;
    color: #292e35;
    text-decoration: none;
    transition:
        transform 0.18s ease,
        border-color 0.18s ease,
        background 0.18s ease,
        box-shadow 0.18s ease;
}

.cpp-bible-library .cpp-bible-book-card:hover {
    transform: translateY(-1px);
    border-color: #6F2D96;
    background: #ffffff;
    box-shadow:
        0 6px 18px rgba(31, 37, 46, 0.07);
}

.cpp-bible-library .cpp-bible-book-card:focus-visible {
    outline: 3px solid #6b3fc4;
    outline-offset: 2px;
}

.cpp-bible-library .cpp-bible-book-card.is-active {
    border-color: #6b3fc4;
    background: linear-gradient(135deg, rgba(107, 63, 196, .08), rgba(242, 181, 68, .10)), #fff;
}

.cpp-bible-library .cpp-bible-book-card strong {
    color: inherit;
    font-size: 14px;
    line-height: 1.35;
}
.cpp-bible-library .cpp-bible-book-card span {
    font-size: 14px;
    color: #687386;
}

/* Selected book / chapter browser */

.cpp-bible-library .cpp-bible-chapter-browser {
    padding: 22px;
    border-radius: 15px;
    border: 1px solid #8F8F8F;
    background: #e6e6fa;
    overflow: hidden;
    position: relative;
}
.cpp-bible-library .cpp-bible-chapter-browser:after {
    content: "";
    position: absolute;
    top: -48px;
    right: -38px;
    width: 150px;
    height: 150px;
    border-radius: 50%;
    background: rgba(107, 63, 196, .045);
    pointer-events: none;
}

.cpp-bible-library .cpp-bible-chapter-browser__top {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 20px;
}

.cpp-bible-library .cpp-bible-chapter-browser__eyebrow {
    display: block;
    margin-bottom: 5px;
    color: #6b3fc4;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

.cpp-bible-library .cpp-bible-chapter-browser__top h3 {
    color: var(--cpp-text-heading);
    font-size: 22px;
    font-weight: 740;
    letter-spacing: -0.025em;
    line-height: 1.3;
    margin: 0px 0px 5px;
}

.cpp-bible-library .cpp-bible-chapter-browser__top p {
    margin: 0;
    color: #69707a;
}

.cpp-bible-library .cpp-bible-all-books-link {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    color: rgb(255, 255, 255);
    font-size: 14px;
    font-weight: 700;
    text-transform: capitalize;
    box-shadow: rgba(29, 78, 216, 0.2) 0px 8px 18px;
    padding: 10px 17px;
    border-width: 1px;
    border-style: solid;
    border-color: transparent;
    border-image: none;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    text-decoration: none;
    transition: transform 0.18s, box-shadow 0.18s;
}

.cpp-bible-library .cpp-bible-all-books-link:hover {
        color: rgb(255, 255, 255);
    transform: translateY(-2px);
    box-shadow: rgba(29, 78, 216, 0.26) 0px 12px 24px;
    text-decoration: none;
}


/* Chapter numbers */

.cpp-bible-library .cpp-bible-chapter-grid {
    display: grid;
    grid-template-columns:
        repeat(
            10,
            minmax(0, 1fr)
        );
    gap: 7px;
}

.cpp-bible-library .cpp-bible-chapter-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 42px;
    border: 1px solid #dddfe4;
    border-radius: 8px;
    background: #ffffff;
    color: #363b43;
    font-size: 13px;
    font-weight: 600;
    text-decoration: none;
    transition:
        background 0.16s ease,
        border-color 0.16s ease,
        transform 0.16s ease;
}

.cpp-bible-library .cpp-bible-chapter-link:hover {
    transform: translateY(-1px);
    border-color: #6b3fc4;
    color: #6b3fc4;
}

.cpp-bible-library .cpp-bible-chapter-link:focus-visible {
    outline: 3px solid #6b3fc4;
    outline-offset: 2px;
}

.cpp-bible-library .cpp-bible-chapter-link.is-active {
    border-color: #6b3fc4;
    background: #6b3fc4;
    color: #ffffff;
}


/* Chapter selected state */

.cpp-bible-library .cpp-bible-chapter-browser__selected {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-top: 18px;
    padding: 14px 16px;
    border: 1px solid rgba(107, 63, 196, 0.18);
    border-radius: 10px;
    background: rgba(107, 63, 196, 0.07);
}

.cpp-bible-library .cpp-bible-chapter-browser__selected-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 26px;
    width: 26px;
    height: 26px;
    border-radius: 50%;
    background: #6b3fc4;
    color: #ffffff;
    font-size: 13px;
    font-weight: 700;
}

.cpp-bible-library .cpp-bible-chapter-browser__selected strong {
    display: block;
    margin-bottom: 2px;
    color: #302a3b;
}

.cpp-bible-library .cpp-bible-chapter-browser__selected p {
    margin: 0;
    color: #68616f;
    font-size: 13px;
}


/* Responsive */

@media (max-width: 1100px) {

    .cpp-bible-library .cpp-bible-book-grid {
        grid-template-columns:
            repeat(
                3,
                minmax(0, 1fr)
            );
    }

    .cpp-bible-library .cpp-bible-chapter-grid {
        grid-template-columns:
            repeat(
                8,
                minmax(0, 1fr)
            );
    }
}


@media (max-width: 780px) {

    .cpp-bible-library .cpp-bible-book-grid {
        grid-template-columns:
            repeat(
                2,
                minmax(0, 1fr)
            );
    }

    .cpp-bible-library .cpp-bible-chapter-grid {
        grid-template-columns:
            repeat(
                6,
                minmax(0, 1fr)
            );
    }

    .cpp-bible-library .cpp-bible-chapter-browser__top {
        flex-direction: column;
        gap: 14px;
    }
}


@media (max-width: 520px) {

    .cpp-bible-library .cpp-bible-library__body {
        gap: 20px;
    }

    .cpp-bible-library .cpp-bible-testament__groups {
        padding: 15px;
    }

    .cpp-bible-library .cpp-bible-book-grid {
        grid-template-columns: 1fr 1fr;
    }

    .cpp-bible-library .cpp-bible-book-card {
        min-height: 65px;
        padding: 11px;
    }

    .cpp-bible-library .cpp-bible-chapter-browser {
        padding: 16px;
    }

    .cpp-bible-library .cpp-bible-chapter-grid {
        grid-template-columns:
            repeat(
                5,
                minmax(0, 1fr)
            );
    }

    .cpp-bible-library .cpp-bible-chapter-link {
        min-height: 39px;
    }

    .cpp-bible-library .cpp-bible-testament__header {
        align-items: flex-start;
        flex-direction: column;
        gap: 3px;
    }
}

/* ==========================================================
   Bible Chapter Reader
   ========================================================== */

.cpp-bible-library .cpp-bible-reader {
    overflow: hidden;
    border: 1px solid #8F8F8F;
    border-radius: 16px;
    background: #ffffff;
}

.cpp-bible-library .cpp-bible-reader__header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    padding: 26px 28px;
    border-bottom: 1px solid #e8ebef;
    background: #e6e6fa;
}

.cpp-bible-library .cpp-bible-reader__eyebrow {
    display: block;
    margin-bottom: 5px;
    color: #6b3fc4;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.cpp-bible-library .cpp-bible-reader__header h3 {
        margin: 0 0 10px;
    color: var(--cpp-text-heading);
    font-size: clamp(24px, 3vw, 30px);
    font-weight: 760;
    letter-spacing: -.035em;
    line-height: 1.15;
}

.cpp-bible-library .cpp-bible-reader__meta {
    display: flex;
    align-items: center;
    gap: 7px;
    color: #727984;
    font-size: 13px;
}

.cpp-bible-library .cpp-bible-reader__meta span:first-child {
    color: #6b3fc4;
    font-weight: 700;
}

.cpp-bible-library .cpp-bible-reader__chapters-link {
        display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    padding: 10px 17px;
    border: 1px solid transparent;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    color: #ffffff;
    text-decoration: none;
    font-size: 14px;
    font-weight: 700;
    text-transform: capitalize;
    box-shadow: 0 8px 18px rgba(29, 78, 216, .2);
    transition: transform .18s ease, box-shadow .18s ease;
}

.cpp-bible-library .cpp-bible-reader__chapters-link:hover {
    color: #ffffff;
    transform: translateY(-2px);
    text-decoration: none;
    box-shadow: 0 12px 24px rgba(29, 78, 216, .26);
}


/* Verse body */
.cpp-bible-library .cpp-bible-reader__verses-container {
    background-image: url('https://estacadachurch.com/wp-content/uploads/2026/09/body-background-wide.webp');
    background-size: cover;
    background-repeat: no-repeat;
    background-position: center;
    background-attachment: fixed;
    padding: 50px 20px;
}
.cpp-bible-library .cpp-bible-reader__verses {
    max-width: 880px;
    margin: 0 auto;
    padding: 36px 34px 40px;
    border-radius: 18px;
    background-color: #ffffffD9;
}

.cpp-bible-library .cpp-bible-verse {
    position: relative;
    margin: 0 0 17px;
    color: #333840;
    font-family:
        Georgia,
        "Times New Roman",
        serif;
    font-size: 18px;
    line-height: 1.82;
}

.cpp-bible-library .cpp-bible-verse:last-child {
    margin-bottom: 0;
}

.cpp-bible-library .cpp-bible-verse__number {
    display: inline;
    margin-right: 7px;
    color: #6b3fc4;
    font-family:
        Arial,
        Helvetica,
        sans-serif;
    font-size: 11px;
    font-weight: 700;
    line-height: 1;
    text-decoration: none;
    vertical-align: super;
}

.cpp-bible-library .cpp-bible-verse__number:hover {
    text-decoration: underline;
}

.cpp-bible-library .cpp-bible-verse__number:focus-visible {
    outline: 2px solid #6b3fc4;
    outline-offset: 2px;
}

.cpp-bible-library .cpp-bible-verse__text {
    color: inherit;
}


/* Anchor highlight */

.cpp-bible-library .cpp-bible-verse:target {
    margin-left: -10px;
    margin-right: -10px;
    padding: 8px 10px;
    border-radius: 8px;
    background: rgba(242, 181, 68, 0.12);
}


/* Previous / Next */

.cpp-bible-library .cpp-bible-reader__navigation {
    display: grid;
    grid-template-columns:
        repeat(
            2,
            minmax(0, 1fr)
        );
    gap: 14px;
    padding: 20px 24px;
    border-top: 1px solid #e8ebef;
    background: #e6e6fa;
}

.cpp-bible-library .cpp-bible-reader__navigation-side {
    min-width: 0;
}

.cpp-bible-library .cpp-bible-reader__navigation-side--next {
    display: flex;
    justify-content: flex-end;
}

.cpp-bible-library .cpp-bible-reader__nav-link {
    display: inline-flex;
    gap: 10px;
    align-items: center;
    justify-content: flex-start;
    flex-shrink: 0;
    min-height: 60px;
    padding: 8px 20px;
    border: 1px solid #dbe7ff;
    border-radius: 9px;
    background: #fafbfc;
    color: var(--cpp-primary, #1d4ed8);
    font-size: 11px;
    font-weight: 750;
    line-height: 1;
    text-decoration: none;
    text-transform: capitalize;
    cursor: pointer;
    transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease;
}

.cpp-bible-library .cpp-bible-reader__nav-link:hover {
    color: var(--cpp-primary, #1d4ed8);
    border-color: #c8d9ff;
    background: linear-gradient(135deg, rgba(107, 63, 196, .08), rgba(242, 181, 68, .10)), #fff;
    transform: translateY(-1px);
}

.cpp-bible-library .cpp-bible-reader__nav-link small {
    display: block;
    margin-bottom: 2px;
    color: #777e87;
    font-size: 11px;
}

.cpp-bible-library .cpp-bible-reader__nav-link strong {
    display: block;
    color: #5b3aa1;
    font-size: 14px;
}

.cpp-bible-library .cpp-bible-reader__nav-link--next {
    text-align: right;
}


/* Missing chapter */

.cpp-bible-library .cpp-bible-reader--empty {
    padding: 28px;
}

.cpp-bible-library .cpp-bible-reader--empty h3 {
    margin: 0 0 7px;
    color: #292e35;
}

.cpp-bible-library .cpp-bible-reader--empty p {
    margin: 0;
    color: #6d747e;
}


/* Responsive */

@media (max-width: 780px) {

    .cpp-bible-library .cpp-bible-reader__header {
        flex-direction: column;
        padding: 22px 20px;
    }

    .cpp-bible-library .cpp-bible-reader__header h3 {
        font-size: 27px;
    }

    .cpp-bible-library .cpp-bible-reader__verses {
        padding: 28px 20px 32px;
    }

    .cpp-bible-library .cpp-bible-verse {
        font-size: 17px;
        line-height: 1.78;
    }

    .cpp-bible-library .cpp-bible-reader__navigation {
        grid-template-columns: 1fr;
        padding: 16px;
    }

    .cpp-bible-library .cpp-bible-reader__navigation-side--next {
        justify-content: stretch;
    }

    .cpp-bible-library .cpp-bible-reader__nav-link,
    .cpp-bible-library .cpp-bible-reader__nav-link--next {
        width: 100%;
        box-sizing: border-box;
    }

    .cpp-bible-library .cpp-bible-reader__nav-link--next {
        justify-content: flex-end;
    }
}


@media (max-width: 520px) {

    .cpp-bible-library .cpp-bible-reader__header {
        padding: 19px 16px;
    }

    .cpp-bible-library .cpp-bible-reader__header h3 {
        font-size: 24px;
    }

    .cpp-bible-library .cpp-bible-reader__verses {
        padding: 24px 16px 28px;
    }

    .cpp-bible-library .cpp-bible-verse {
        margin-bottom: 14px;
        font-size: 16px;
        line-height: 1.75;
    }
}

.cpp-bible-library .cpp-bible-library .cpp-bible-book-card span {
    color: #767d87;
    font-size: 12px;
}

/* ==========================================================
   Bible Text Search
   ========================================================== */

.cpp-bible-library .cpp-bible-search-bar {
    display: flex;
    gap: 10px;
    margin: 0 0 24px;
}

.cpp-bible-library .cpp-bible-search-bar input[type="search"] {
    flex: 1;
    min-width: 0;
    height: 50px;
    padding: 15px 14px;
    border: 1px solid #d7dbe1;
    border-radius: 9px;
    background: #ffffff;
    color: #292e35;
    font-size: 14px;
}

.cpp-bible-library .cpp-bible-search-bar input[type="search"]:focus {
    border-color: #6b3fc4;
    outline: none;
    box-shadow:
        0 0 0 3px rgba(107, 63, 196, 0.10);
}

.cpp-bible-library .cpp-bible-search-bar button {
    flex: 0 0 auto;
    height: 46px;
    padding: 0 19px;
    border: 0;
    border-radius: 9px;
    background: #6b3fc4;
    color: #ffffff;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
}

.cpp-bible-library .cpp-bible-search-bar button:hover {
    background: #5932a7;
}


/* Search result container */

.cpp-bible-library .cpp-bible-search {
    margin-bottom: 30px;
}

.cpp-bible-library .cpp-bible-search__header {
    margin-bottom: 18px;
}

.cpp-bible-library .cpp-bible-search__eyebrow {
    display: block;
    margin-bottom: 5px;
    color: #6b3fc4;
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.cpp-bible-library .cpp-bible-search__header h3 {
        color: var(--cpp-text-heading);
    font-size: 22px;
    font-weight: 740;
    letter-spacing: -0.025em;
    line-height: 1.3;
    margin: 0px;
}

.cpp-bible-library .cpp-bible-search__form {
    display: flex;
    gap: 10px;
    margin-bottom: 18px;
}

.cpp-bible-library .cpp-bible-search__form input[type="search"] {
    flex: 1;
    min-width: 0;
    height: 44px;
    padding: 0 13px;
    border: 1px solid #d7dbe1;
    border-radius: 9px;
    color: #292e35;
}

.cpp-bible-library .cpp-bible-search__form button {
    height: 44px;
    padding: 0 18px;
    border: 0;
    border-radius: 9px;
    background: #6b3fc4;
    color: #ffffff;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
}

.cpp-bible-library .cpp-bible-search__summary {
    margin-bottom: 13px;
    color: #6d747e;
    font-size: 13px;
}

.cpp-bible-library .cpp-bible-search__results {
    display: grid;
    gap: 11px;
}

.cpp-bible-library .cpp-bible-search-result {
    padding: 18px 20px;
    border: 1px solid #e1e4e8;
    border-radius: 12px;
    background: #ffffff;
}

.cpp-bible-library .cpp-bible-search-result__reference {
    display: inline-block;
    margin-bottom: 7px;
    color: #5b3aa1;
    font-size: 14px;
    font-weight: 700;
    text-decoration: none;
}

.cpp-bible-library .cpp-bible-search-result__reference:hover {
    text-decoration: underline;
}

.cpp-bible-library .cpp-bible-search-result__text {
    margin: 0 0 10px;
    color: #41464e;
    font-family:
        Georgia,
        "Times New Roman",
        serif;
    font-size: 16px;
    line-height: 1.65;
}

.cpp-bible-library .cpp-bible-search-result__read {
        display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    min-height: 36px;
    padding: 8px 15px;
    border: 1px solid #dbe7ff;
    border-radius: 9px;
    background: var(--cpp-primary-soft, #eef4ff);
    color: var(--cpp-primary, #1d4ed8);
    font-size: 12px;
    font-weight: 750;
    line-height: 1;
    text-decoration: none;
    text-transform: capitalize;
    cursor: pointer;
    transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease;
}

.cpp-bible-library .cpp-bible-search-result__read:hover {
    color: var(--cpp-primary, #1d4ed8);
    border-color: #c8d9ff;
    background: #fff;
    transform: translateY(-1px);
    text-decoration: none;
}

.cpp-bible-library .cpp-bible-search__empty {
    padding: 22px 20px;
    border: 1px solid #e2e5e9;
    border-radius: 12px;
    background: #fafbfc;
}

.cpp-bible-library .cpp-bible-search__empty strong {
    display: block;
    margin-bottom: 5px;
    color: #30353c;
}

.cpp-bible-library .cpp-bible-search__empty p {
    margin: 0;
    color: #717780;
    font-size: 13px;
}

.cpp-bible-library .cpp-bible-search__pagination {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-top: 18px;
}

.cpp-bible-library .cpp-bible-search__pagination a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    min-height: 36px;
    padding: 7px 12px;
    border: 1px solid #dbe7ff;
    border-radius: 9px;
    background: var(--cpp-primary-soft, #eef4ff);
    color: var(--cpp-primary, #1d4ed8);
    font-size: 12px;
    font-weight: 750;
    line-height: 1;
    text-decoration: none;
    text-transform: capitalize;
    cursor: pointer;
    transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease;
}

.cpp-bible-library .cpp-bible-search__pagination a:hover {
        color: var(--cpp-primary, #1d4ed8);
    border-color: #c8d9ff;
    background: #fff;
    transform: translateY(-1px);
    text-decoration: none;
}

.cpp-bible-library .cpp-bible-search__pagination span {
    color: #777e87;
    font-size: 12px;
}


/* Mobile */

@media (max-width: 640px) {

    .cpp-bible-library .cpp-bible-search-bar,
    .cpp-bible-library .cpp-bible-search__form {
        flex-direction: column;
    }

    .cpp-bible-library .cpp-bible-search-bar button,
    .cpp-bible-library .cpp-bible-search__form button {
        width: 100%;
    }

    .cpp-bible-library .cpp-bible-search-result {
        padding: 16px;
    }

    .cpp-bible-library .cpp-bible-search-result__text {
        font-size: 15px;
    }

    .cpp-bible-library .cpp-bible-search__pagination {
        flex-wrap: wrap;
    }
}

/*
 * Related Sermon Grid
 */
.cpp-bible-library .cpp-bible-related-sermons {
    margin-top: 0px;
    padding-top: 20px;
}
.cpp-bible-library .cpp-sermon-library-grid {
    display: grid;
    grid-template-columns: repeat(
        3,
        minmax(0, 1fr)
    );
    gap: 20px;
}

.cpp-bible-library .cpp-sermon-card {
    display: flex;
    flex-direction: column;
    overflow: hidden;
    padding: 0;
}

.cpp-bible-library .cpp-sermon-card-media {
    position: relative;
    aspect-ratio: 16 / 9;
    overflow: hidden;
    background: #f0f0f1;
}
.cpp-bible-library .cpp-sermon-card-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.cpp-bible-library .cpp-sermon-card-content {
    display: flex;
    flex: 1;
    flex-direction: column;
    padding: 20px;
}

.cpp-bible-library .cpp-sermon-card-title {
        margin: 0 0 22px;
    color: var(--cpp-text-heading);
    font-size: 20px;
    font-weight: 740;
    letter-spacing: -.025em;
    line-height: 1.3;
}
.cpp-bible-library .cpp-sermon-card-title a {
    color: var(--cpp-text-heading);
    text-decoration: none;
}
.cpp-bible-library .cpp-sermon-card-title a:hover {
        color: #6F2D96;
    text-decoration: none;
}
.cpp-bible-library .cpp-sermon-card-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 10px;
    font-size: 13px;
}
.cpp-bible-library .cpp-sermon-card-scripture {
    color: #6F2D96;
    margin-bottom: 12px;
    font-size: 14px;
    font-weight: 700;
}
.cpp-bible-library .cpp-sermon-card-excerpt {
    margin-top: 0;
    margin-bottom: 16px;
    line-height: 1.6;
}
.cpp-bible-library .cpp-sermon-card-topics {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 18px;
}
.cpp-bible-library .cpp-sermon-topic-tag {
    display: inline-flex;
    align-items: center;
    padding: 5px 9px;
    border-radius: 999px;
    background: #ffff;
    font-size: 12px;
    line-height: 1.2;
    color: #6F2D96;
    border: 1px solid;
}
.cpp-bible-library .cpp-sermon-card-actions {
    margin-top: auto;
}
.cpp-bible-library .cpp-sermon-view-button {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    padding: 10px 17px;
    border: 1px solid transparent;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    color: #ffffff;
    text-decoration: none;
    font-size: 14px;
    font-weight: 700;
    text-transform: capitalize;
    box-shadow: 0 8px 18px rgba(29, 78, 216, .2);
    transition: transform .18s ease, box-shadow .18s ease;
}
.cpp-bible-library .cpp-sermon-view-button:hover {
    color: #ffffff;
    transform: translateY(-2px);
    text-decoration: none;
    box-shadow: 0 12px 24px rgba(29, 78, 216, .26);
}

/* =========================================================
   Sermon Scripture Connections
   ========================================================= */

.cpp-sermon-detail-page .cpp-sermon-scripture-list {
    display: grid;
    gap: 14px;
    margin-top: 20px;
}

.cpp-sermon-detail-page .cpp-sermon-scripture-item {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 8px;
    padding: 18px 20px;
    border: 1px solid #ced4da;
    border-radius: 12px;
    background: #FFFFFF;
    box-shadow: 0 4px 14px rgba(23, 32, 51, 0.04);
    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease,
        transform 0.2s ease;
}

.cpp-sermon-detail-page .cpp-sermon-scripture-item:hover {
    border-color: #6B3FC4;
    box-shadow: 0 8px 22px rgba(23, 32, 51, 0.08);
    transform: translateY(-2px);
}

.cpp-sermon-detail-page .cpp-sermon-scripture-item.cpp-sermon-scripture-primary {
    border-color: rgba(107, 63, 196, 0.25);
    background:
        linear-gradient(
            135deg,
            #F9F7FF 0%,
            #FFFFFF 100%
        );
}

.cpp-sermon-detail-page .cpp-sermon-scripture-label {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    padding: 4px 9px;
    border-radius: 999px;
    background: #F0EBFF;
    color: #6B3FC4;
    font-size: 0.72rem;
    font-weight: 700;
    line-height: 1;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.cpp-sermon-detail-page .cpp-sermon-scripture-item strong {
    display: block;
    color: #172033;
    font-size: 1.05rem;
    font-weight: 700;
    line-height: 1.45;
}

.cpp-sermon-detail-page .cpp-sermon-scripture-read {
    display: inline-flex;
    align-items: center;
    width: fit-content;
    margin-top: 2px;
    color: #6B3FC4;
    font-size: 0.88rem;
    font-weight: 700;
    line-height: 1.3;
    text-decoration: none;
    transition:
        color 0.2s ease,
        gap 0.2s ease;
}

.cpp-sermon-detail-page .cpp-sermon-scripture-read:hover,
.cpp-sermon-detail-page .cpp-sermon-scripture-read:focus {
    color: #592DB0;
    text-decoration: underline;
}

.cpp-sermon-detail-page .cpp-sermon-scripture-read:focus-visible {
    outline: 2px solid #6B3FC4;
    outline-offset: 3px;
    border-radius: 4px;
}

.cpp-sermon-detail-page .cpp-sermon-scripture-item.cpp-sermon-scripture-primary
.cpp-sermon-scripture-label::before {
    content: "📖";
    margin-right: 6px;
    font-size: 0.78rem;
}

.cpp-sermon-detail-page .cpp-sermon-scripture-item:not(.cpp-sermon-scripture-primary)
.cpp-sermon-scripture-label::before {
    content: "＋";
    margin-right: 5px;
    font-size: 0.78rem;
}

@media (max-width: 640px) {

    .cpp-sermon-detail-page .cpp-sermon-scripture-item {
        padding: 16px;
    }

    .cpp-sermon-detail-page .cpp-sermon-scripture-item strong {
        font-size: 1rem;
    }

    .cpp-sermon-detail-page .cpp-sermon-scripture-read {
        font-size: 0.84rem;
    }

}

@media (max-width: 1024px) {
    
    .cpp-sermon-library-page-layout .cpp-sermon-library-filter-row {
        grid-template-columns: repeat(1, minmax(0, 1fr));
    }
    
}

/* ---------------------------------------------------------
   Bible Library — Related Sermons
   --------------------------------------------------------- */

.cpp-dashboard .cpp-bible-related-sermons {
    margin-top: 48px;
    padding-top: 36px;
    border-top: 1px solid rgba(15, 23, 42, 0.12);
}

.cpp-bible-related-sermons .cpp-bible-related-sermons__heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 24px;
    margin-bottom: 24px;
}

.cpp-bible-related-sermons .cpp-bible-related-sermons__eyebrow {
    display: inline-block;
    margin-bottom: 6px;
    font-size: 12px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    color: #6b3fc4;
}

.cpp-bible-related-sermons .cpp-bible-related-sermons__heading h3 {
    margin: 0;
    color: var(--cpp-text-heading);
    font-size: 20px;
    font-weight: 740;
    letter-spacing: -.025em;
    line-height: 1.3;
}

.cpp-bible-related-sermons .cpp-bible-related-sermons__heading p {
    margin: 8px 0 0;
    color: #64748b;
}

.cpp-bible-related-sermons .cpp-bible-related-sermons__count {
    flex: 0 0 auto;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 6px 12px;
    border-radius: 999px;
    background: #6b3fc4;
    color: #fff;
    font-size: 13px;
    font-weight: 700;
    text-transform: capitalize;
}

.cpp-bible-related-sermons .cpp-bible-related-sermons__grid {
    margin-top: 0;
}


/* Related sermon cards use the existing
   Sermon Library card system. */

.cpp-bible-related-sermons .cpp-bible-related-sermon-card {
    height: 100%;
    background-color: #f9fafb;
}


@media (max-width: 767px) {

    .cpp-dashboard .cpp-bible-related-sermons {
        margin-top: 36px;
        padding-top: 28px;
    }

    .cpp-bible-related-sermons .cpp-bible-related-sermons__heading {
        flex-direction: column;
        gap: 12px;
    }
}

/* =========================================================
   Bible Verse → Related Sermons
   ========================================================= */

.cpp-bible-reader__verses .cpp-bible-verse-sermons {
    margin-top: 10px;
    margin-left: 0;
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 8px;
    background: rgba(0, 0, 0, 0.025);
    overflow: hidden;
}


/* Summary / trigger */

.cpp-bible-reader__verses .cpp-bible-verse-sermons__summary {
    display: flex;
    align-items: center;
    gap: 8px;

    width: 100%;
    padding: 8px 12px;

    cursor: pointer;

    font-size: 13px;
    font-weight: 600;
    line-height: 1.4;

    list-style: none;

    transition:
        background-color 0.2s ease,
        color 0.2s ease;
}


.cpp-bible-reader__verses .cpp-bible-verse-sermons__summary::-webkit-details-marker {
    display: none;
}


.cpp-bible-reader__verses .cpp-bible-verse-sermons__summary:hover {
    background: rgba(0, 0, 0, 0.04);
}


/* Arrow */

.cpp-bible-reader__verses .cpp-bible-verse-sermons__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 14px;
    height: 14px;

    font-size: 9px;

    transition:
        transform 0.2s ease;
}


.cpp-bible-reader__verses .cpp-bible-verse-sermons[open]
.cpp-bible-verse-sermons__icon {
    transform: rotate(90deg);
}


/* Label */

.cpp-bible-reader__verses .cpp-bible-verse-sermons__label {
    flex: 0 1 auto;
}


/* Count badge */

.cpp-bible-reader__verses .cpp-bible-verse-sermons__count {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    min-width: 22px;
    height: 22px;
    padding: 0 6px;

    border-radius: 999px;

    background: rgba(0, 0, 0, 0.08);

    font-size: 11px;
    font-weight: 700;
    line-height: 1;
}


/* Expanded area */

.cpp-bible-reader__verses .cpp-bible-verse-sermons__content {
    padding: 0 10px 10px;
}

.cpp-bible-reader__verses .cpp-bible-verse-sermons__content .cpp-bible-verse-sermon {
    display: inline-flex;
    gap: 10px;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    min-height: 0;
    padding: 5px 10px;
    border: 1px solid #dbe7ff;
    border-radius: 9px;
    background: var(--cpp-primary-soft, #eef4ff);
    color: var(--cpp-primary, #1d4ed8);
    font-size: 12px;
    font-weight: 750;
    line-height: 1;
    text-decoration: none;
    text-transform: capitalize;
    cursor: pointer;
    transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease;
}


/* Individual sermon */

.cpp-bible-reader__verses .cpp-bible-verse-sermon {
    display: grid;

    grid-template-columns:
        minmax(0, 1fr)
        auto;

    grid-template-areas:
        "title arrow"
        "meta arrow";

    align-items: center;

    column-gap: 12px;
    row-gap: 2px;

    padding: 10px 12px;

    border-radius: 6px;

    color: inherit;
    text-decoration: none;

    transition:
        background-color 0.2s ease;
}


.cpp-bible-reader__verses .cpp-bible-verse-sermon
+ .cpp-bible-verse-sermon {
    margin-top: 4px;
}


.cpp-bible-reader__verses .cpp-bible-verse-sermon:hover {
    background: rgba(0, 0, 0, 0.05);
}


/* Sermon title */

.cpp-bible-reader__verses .cpp-bible-verse-sermon__title {
    grid-area: title;

    min-width: 0;

    font-size: 13px;
    font-weight: 700;
    line-height: 1.4;
}


/* Speaker */

.cpp-bible-reader__verses .cpp-bible-verse-sermon__meta {
    grid-area: meta;

    font-size: 12px;
    line-height: 1.4;

    opacity: 0.7;
}


/* Arrow */

.cpp-bible-reader__verses .cpp-bible-verse-sermon__arrow {
    grid-area: arrow;

    align-self: center;

    font-size: 16px;

    opacity: 0.6;

    transition:
        transform 0.2s ease;
}


.cpp-bible-reader__verses .cpp-bible-verse-sermon:hover
.cpp-bible-verse-sermon__arrow {
    transform: translateX(3px);
}


/* Mobile */

@media (max-width: 767px) {

    .cpp-bible-reader__verses .cpp-bible-verse-sermons {
        margin-top: 8px;
    }


    .cpp-bible-reader__verses .cpp-bible-verse-sermons__summary {
        padding: 8px 10px;
    }


    .cpp-bible-reader__verses .cpp-bible-verse-sermon {
        padding: 9px 10px;
    }

}

/* =========================================================
   Bible Reader — Scripture Reference Context
   ========================================================= */

.cpp-bible-reader .cpp-bible-reference-context {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    margin: 15px 15px 20px;
    padding: 16px 18px;
    border: 1px solid rgba(0, 0, 0, 0.08);
    border-radius: 10px;
    background: linear-gradient(135deg, rgba(107, 63, 196, .08), rgba(242, 181, 68, .10)), #fff;
}

.cpp-bible-reader .cpp-bible-reference-context__main {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.cpp-bible-reader .cpp-bible-reference-context__eyebrow {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.cpp-bible-reader .cpp-bible-reference-context__reference {
    font-size: 16px;
    line-height: 1.4;
        color: var(--cpp-text-heading);
}

.cpp-bible-reader .cpp-bible-reference-context__current {
    font-size: 12px;
    line-height: 1.4;
}

.cpp-bible-reader .cpp-bible-reference-context__navigation {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    justify-content: flex-end;
    gap: 8px;
}

.cpp-bible-reader .cpp-bible-reference-context__link {
        display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    min-height: 36px;
    padding: 7px 12px;
    border: 1px solid #dbe7ff;
    border-radius: 9px;
    background: var(--cpp-primary-soft, #eef4ff);
    color: var(--cpp-primary, #1d4ed8);
    font-size: 11px;
    font-weight: 750;
    line-height: 1;
    text-decoration: none;
    text-transform: capitalize;
    cursor: pointer;
    transition: background-color .18s ease, border-color .18s ease, color .18s ease, transform .18s ease;
}

.cpp-bible-reader .cpp-bible-reference-context__link:hover {
    color: var(--cpp-primary, #1d4ed8);
    border-color: #c8d9ff;
    background: #fff;
    transform: translateY(-1px);
}

.cpp-bible-reader .cpp-bible-reference-context__link--next:hover {
    transform: translateX(2px);
}

@media (max-width: 767px) {

    .cpp-bible-reader .cpp-bible-reference-context {
        flex-direction: column;
        align-items: stretch;

        padding: 14px;
    }

    .cpp-bible-reader .cpp-bible-reference-context__navigation {
        justify-content: flex-start;
    }

    .cpp-bible-reader .cpp-bible-reference-context__link {
        flex: 1 1 auto;
        justify-content: center;
    }

}

/* =========================================================
   Bible Reader — Active Scripture Reference
   ========================================================= */

.cpp-bible-reader .cpp-bible-verse {
    position: relative;
}


.cpp-bible-reader .cpp-bible-verse.is-reference-verse {
    margin-left: -12px;
    margin-right: -12px;
    padding-left: 12px;
    padding-right: 12px;
    background: rgba(242, 181, 68, .10);
    padding-top: 10px;
    padding-bottom: 10px;
}


.cpp-bible-reader .cpp-bible-verse.is-reference-start {
    padding-top: 16px;

    border-top-left-radius: 8px;
    border-top-right-radius: 8px;
}


.cpp-bible-reader .cpp-bible-verse.is-reference-end {
    padding-bottom: 16px;

    border-bottom-left-radius: 8px;
    border-bottom-right-radius: 8px;
}


.cpp-bible-reader .cpp-bible-reference-marker {
    display: block;
    width: fit-content;

    margin: 0 0 7px;

    padding: 3px 7px;

    border-radius: 999px;

    background: rgba(0, 0, 0, 0.07);

    font-size: 10px;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}


.cpp-bible-reader .cpp-bible-reference-marker--start::before {
    content: "↓";
    margin-right: 4px;
}


.cpp-bible-reader .cpp-bible-reference-marker--end::before {
    content: "✓";
    margin-right: 4px;
}


.cpp-bible-reader .cpp-bible-reference-marker--single::before {
    content: "•";
    margin-right: 4px;
}


.cpp-bible-reader .cpp-bible-verse.is-reference-verse
.cpp-bible-verse__number {
    font-weight: 800;
}


@media (max-width: 767px) {

    .cpp-bible-reader .cpp-bible-verse.is-reference-verse {
        margin-left: -8px;
        margin-right: -8px;

        padding-left: 8px;
        padding-right: 8px;
    }


    .cpp-bible-reader .cpp-bible-reference-marker {
        font-size: 9px;
    }

}

/* =========================================================
   EAG Live Prayer Room
   Prayer Request Page
   ========================================================= */


/* ---------------------------------------------------------
   Page Layout
   --------------------------------------------------------- */

.cpp-prayer-request-page-layout {
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
}

.cpp-prayer-request-page-layout .cpp-prayer-request-card {
    padding: 32px;
}


/* ---------------------------------------------------------
   Card Heading
   --------------------------------------------------------- */

.cpp-prayer-request-page-layout .cpp-prayer-card-heading {
    display: flex;
    align-items: flex-start;
    gap: 16px;
}

.cpp-prayer-request-page-layout .cpp-prayer-card-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: #6F2D96;
    color: #fff;
}

.cpp-prayer-request-page-layout .cpp-prayer-card-icon svg {
    width: 24px;
    height: 24px;
}

.cpp-prayer-request-page-layout .cpp-prayer-card-heading h2 {
    margin: 0 0 6px;
}

.cpp-prayer-request-page-layout .cpp-prayer-card-heading
.cpp-portal-section-description {
    margin: 0;
}


/* ---------------------------------------------------------
   Form Layout
   --------------------------------------------------------- */

.cpp-prayer-request-page-layout .cpp-prayer-request-form {
    display: flex;
    flex-direction: column;
    gap: 28px;

    margin-top: 28px;
}

.cpp-prayer-request-form .cpp-prayer-fields-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}

.cpp-prayer-request-form .cpp-prayer-field {
    min-width: 0;
}

.cpp-prayer-request-form .cpp-prayer-field-full {
    width: 100%;
}


/* ---------------------------------------------------------
   Labels
   --------------------------------------------------------- */

.cpp-prayer-request-form .cpp-prayer-field label,
.cpp-prayer-request-form .cpp-prayer-field legend {
    display: block;
    color: var(--cpp-text-heading);
    margin-bottom: 8px;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.4;
}

.cpp-prayer-request-form .cpp-prayer-required {
    color: #b42318;
}


/* ---------------------------------------------------------
   Inputs
   --------------------------------------------------------- */

.cpp-prayer-request-form .cpp-prayer-field input[type="text"],
.cpp-prayer-request-form .cpp-prayer-field input[type="email"],
.cpp-prayer-request-form .cpp-prayer-field input[type="tel"],
.cpp-prayer-request-form .cpp-prayer-field select,
.cpp-prayer-request-form .cpp-prayer-field textarea {
    width: 100%;
    box-sizing: border-box;

    min-height: 46px;

    padding: 12px 14px;

    border: 1px solid #d0d5dd;
    border-radius: 10px;

    background: #ffffff;
    color: #101828;

    font: inherit;
    font-size: 14px;

    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease,
        background-color 0.2s ease;
}

.cpp-prayer-request-form .cpp-prayer-field textarea {
    min-height: 190px;
    resize: vertical;

    line-height: 1.65;
}

.cpp-prayer-request-form .cpp-prayer-field input:hover,
.cpp-prayer-request-form .cpp-prayer-field select:hover,
.cpp-prayer-request-form .cpp-prayer-field textarea:hover {
    border-color: #98a2b3;
}

.cpp-prayer-request-form .cpp-prayer-field input:focus,
.cpp-prayer-request-form .cpp-prayer-field select:focus,
.cpp-prayer-request-form .cpp-prayer-field textarea:focus {
    outline: none;
    border-color: #6B3FC4;
    box-shadow:
        0 0 0 3px
        rgba(107, 63, 196, 0.12);
}


/* ---------------------------------------------------------
   Help Text
   --------------------------------------------------------- */

.cpp-prayer-request-form .cpp-prayer-field-description {
    margin: 8px 0 0;
    color: #667085;
    font-size: 14px;
    line-height: 1.6;
}


/* ---------------------------------------------------------
   Privacy Section
   --------------------------------------------------------- */

.cpp-prayer-request-form .cpp-prayer-privacy-section {
    margin: 0;
    padding: 0;
    border: 0;
}

.cpp-prayer-request-form .cpp-prayer-privacy-section > legend {
    margin-bottom: 12px;
    font-size: 15px;
    font-weight: 700;
}

.cpp-prayer-request-form .cpp-prayer-privacy-options {
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.cpp-prayer-request-form .cpp-prayer-privacy-option {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 12px;
    min-height: 130px;
    padding: 18px;
    border: 1px solid #d0d5dd;
    border-radius: 12px;
    background: #ffffff;
    cursor: pointer;
    transition:
        border-color 0.2s ease,
        background-color 0.2s ease,
        box-shadow 0.2s ease,
        transform 0.2s ease;
}

.cpp-prayer-request-form .cpp-prayer-privacy-option:hover {
    border-color: #b2a4d9;
    background:
        rgba(107, 63, 196, 0.025);
    transform:
        translateY(-1px);
}

.cpp-prayer-request-form .cpp-prayer-privacy-option:has(input:checked) {
    border-color: #6B3FC4;
    background: #f9fafb;
    box-shadow:
        0 0 0 1px
        rgba(107, 63, 196, 0.08);
}

.cpp-prayer-request-form .cpp-prayer-privacy-option input[type="radio"] {
    flex: 0 0 auto;
    width: 17px;
    height: 17px;
    margin-top: 3px;
    accent-color: #6B3FC4;
}

.cpp-prayer-request-form .cpp-prayer-privacy-option-content {
    display: flex;
    flex-direction: column;
    gap: 5px;
    min-width: 0;
}

.cpp-prayer-request-form .cpp-prayer-privacy-option-content strong {
    color: #101828;
    font-size: 15px;
    line-height: 1.4;
}

.cpp-prayer-request-form .cpp-prayer-privacy-option-content span {
    color: #667085;
    font-size: 13px;
    line-height: 1.55;
}


/* ---------------------------------------------------------
   Follow-up Preferences
   --------------------------------------------------------- */

.cpp-prayer-request-form .cpp-prayer-preferences {
    display: flex;
    flex-direction: column;
    gap: 14px;

    padding: 22px;

    border: 1px solid #eaecf0;
    border-radius: 12px;

    background: #f9fafb;
}

.cpp-prayer-request-form .cpp-prayer-section-heading {
    margin-bottom: 4px;
}

.cpp-prayer-request-form .cpp-prayer-section-heading h3 {
    margin: 0 0 5px;

    font-size: 16px;
}

.cpp-prayer-request-form .cpp-prayer-section-heading p {
    margin: 0;

    color: #667085;

    font-size: 12px;
    line-height: 1.6;
}

.cpp-prayer-request-form .cpp-prayer-checkbox {
    display: flex;
    align-items: flex-start;
    gap: 12px;

    padding: 14px 16px;

    border: 1px solid #eaecf0;
    border-radius: 10px;

    background: #ffffff;

    cursor: pointer;

    transition:
        border-color 0.2s ease,
        background-color 0.2s ease;
}

.cpp-prayer-request-form .cpp-prayer-checkbox:hover {
    border-color: #b2a4d9;

    background:
        rgba(107, 63, 196, 0.025);
}

.cpp-prayer-request-form .cpp-prayer-checkbox input[type="checkbox"] {
    flex: 0 0 auto;

    width: 17px;
    height: 17px;

    margin-top: 3px;

    accent-color: #6B3FC4;
}

.cpp-prayer-request-form .cpp-prayer-checkbox span {
    display: flex;
    flex-direction: column;
    gap: 3px;
}

.cpp-prayer-request-form .cpp-prayer-checkbox strong {
    font-size: 13px;
    line-height: 1.4;
}

.cpp-prayer-request-form .cpp-prayer-checkbox small {
    color: #667085;

    font-size: 12px;
    line-height: 1.5;
}


/* ---------------------------------------------------------
   Privacy Reminder
   --------------------------------------------------------- */

.cpp-prayer-request-form .cpp-prayer-privacy-reminder {
       display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 18px;
    border: 1px solid #ced4da;
    border-radius: 12px;
    background: #f9fafb;
}

.cpp-prayer-request-form .cpp-prayer-privacy-reminder-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 36px;
    height: 36px;
    border-radius: 9px;
        background: #6F2D96;
    color: #fff;
}

.cpp-prayer-request-form .cpp-prayer-privacy-reminder-icon svg {
    width: 18px;
    height: 18px;
}

.cpp-prayer-request-form .cpp-prayer-privacy-reminder strong {
    display: block;
    margin-bottom: 4px;
    text-transform: capitalize;
    color: var(--cpp-text-heading);
}

.cpp-prayer-request-form .cpp-prayer-privacy-reminder p {
    margin: 0;
    color: #667085;
    font-size: 14px;
    line-height: 1.6;
}


/* ---------------------------------------------------------
   Form Actions
   --------------------------------------------------------- */

.cpp-prayer-request-page-layout .cpp-prayer-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;

    padding-top: 4px;
}

.cpp-prayer-request-page-layout .cpp-prayer-actions
.cpp-primary-button {
        display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    color: rgb(255, 255, 255);
    font-size: 14px;
    font-weight: 700;
    box-shadow: rgba(29, 78, 216, 0.2) 0px 8px 18px;
    padding: 10px 17px;
    border-width: 1px;
    border-style: solid;
    border-color: transparent;
    border-image: none;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    text-decoration: none;
    transition: transform 0.18s, box-shadow 0.18s;
}
.cpp-prayer-request-page-layout .cpp-prayer-actions
.cpp-primary-button:hover {
    color: rgb(255, 255, 255);
    transform: translateY(-2px);
    box-shadow: rgba(29, 78, 216, 0.26) 0px 12px 24px;
}


/* ---------------------------------------------------------
   Submission Notices
   --------------------------------------------------------- */

.cpp-prayer-request-page-layout
> .cpp-portal-notice {
    margin: 0;
    margin-bottom: 24px;
}

.cpp-prayer-request-page-layout > .cpp-portal-notice-success {
    border: 1px solid #3F9A63;
}
.cpp-prayer-request-page-layout > .cpp-portal-notice-success strong {
    color: #3F9A63;
    font-size: 16px;
}

.cpp-prayer-request-page-layout
.cpp-portal-notice-title {
    display: block;
    margin-bottom: 0px;
}

.cpp-prayer-request-page-layout
.cpp-portal-notice p {
    margin: 0;
}


/* ---------------------------------------------------------
   Responsive
   --------------------------------------------------------- */

@media (max-width: 1024px) {

    .cpp-prayer-request-form .cpp-prayer-privacy-options {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .cpp-prayer-request-form .cpp-prayer-privacy-option:last-child {
        grid-column: 1 / -1;
    }
}


@media (max-width: 767px) {

    .cpp-prayer-request-page-layout .cpp-prayer-request-card {
        padding: 22px;
    }

    .cpp-prayer-request-page-layout .cpp-prayer-request-form {
        gap: 24px;
    }

    .cpp-prayer-request-form .cpp-prayer-fields-grid {
        grid-template-columns: 1fr;
    }

    .cpp-prayer-request-form .cpp-prayer-privacy-options {
        grid-template-columns: 1fr;
    }

    .cpp-prayer-request-form .cpp-prayer-privacy-option:last-child {
        grid-column: auto;
    }

    .cpp-prayer-request-form .cpp-prayer-privacy-option {
        min-height: 0;
    }

    .cpp-prayer-request-form .cpp-prayer-card-heading {
        gap: 12px;
    }

    .cpp-prayer-request-form .cpp-prayer-card-icon {
        width: 42px;
        height: 42px;
    }

    .cpp-prayer-request-form .cpp-prayer-preferences {
        padding: 16px;
    }

    .cpp-prayer-request-form .cpp-prayer-privacy-reminder {
        padding: 15px;
    }

    .cpp-prayer-request-page-layout .cpp-prayer-actions {
        justify-content: stretch;
    }

    .cpp-prayer-request-page-layout .cpp-prayer-actions
    .cpp-primary-button {
        width: 100%;
    }
}


@media (max-width: 480px) {

    .cpp-prayer-request-page-layout .cpp-prayer-request-card {
        padding: 18px;
    }

    .cpp-prayer-request-page-layout .cpp-prayer-card-heading {
        align-items: center;
    }

    .cpp-prayer-request-form .cpp-prayer-card-heading h2 {
        font-size: 20px;
    }

    .cpp-prayer-request-form .cpp-prayer-privacy-option {
        padding: 15px;
    }

    .cpp-prayer-request-form .cpp-prayer-checkbox {
        padding: 12px;
    }
}

/* =========================================================
   My Prayer Requests
   ========================================================= */

.cpp-my-prayers-page-layout {
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
}


/* ---------------------------------------------------------
   Summary
   --------------------------------------------------------- */

.cpp-my-prayers-page-layout .cpp-my-prayers-summary {
    display: flex;
    align-items: center;
    gap: 18px;

    margin-bottom: 28px;
    padding: 22px;
}

.cpp-my-prayers-summary .cpp-my-prayers-summary-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 50px;
    height: 50px;
    border-radius: 12px;
    background: #6F2D96;
    color: #fff;
}

.cpp-my-prayers-summary .cpp-my-prayers-summary-icon svg {
    width: 24px;
    height: 24px;
}

.cpp-my-prayers-summary .cpp-my-prayers-summary-copy {
    flex: 1;
    min-width: 0;
}

.cpp-my-prayers-summary .cpp-my-prayers-summary-label {
        margin: 0;
    color: var(--cpp-text-heading);
    font-size: 18px;
    font-weight: 740;
    letter-spacing: -.025em;
    line-height: 1.3;
}

.cpp-my-prayers-summary .cpp-my-prayers-summary-count {
    display: block;
    color: #6B3FC4;
    margin-bottom: 3px;
    font-size: 30px;
    line-height: 1.1;
}

.cpp-my-prayers-summary .cpp-my-prayers-summary-copy p {
    margin: 0;
    color: #667085;
    font-size: 14px;
}

.cpp-my-prayers-summary .cpp-my-prayers-summary-action {
    flex: 0 0 auto;
}

.cpp-my-prayers-summary .cpp-my-prayers-summary-action .cpp-primary-button {
   display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    color: rgb(255, 255, 255);
    font-size: 14px;
    font-weight: 700;
    box-shadow: rgba(29, 78, 216, 0.2) 0px 8px 18px;
    padding: 10px 17px;
    border-width: 1px;
    border-style: solid;
    border-color: transparent;
    border-image: none;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    text-decoration: none;
    transition: transform 0.18s, box-shadow 0.18s; 
}
.cpp-my-prayers-summary .cpp-my-prayers-summary-action .cpp-primary-button:hover {
        color: rgb(255, 255, 255);
    transform: translateY(-2px);
    box-shadow: rgba(29, 78, 216, 0.26) 0px 12px 24px;
}


/* ---------------------------------------------------------
   Request List
   --------------------------------------------------------- */

.cpp-my-prayers-list {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.cpp-my-prayers-list .cpp-my-prayers-grid {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
    gap: 18px;
}


/* ---------------------------------------------------------
   Request Card
   --------------------------------------------------------- */

.cpp-my-prayers-grid .cpp-my-prayer-card {
    display: flex;
    flex-direction: column;
    min-width: 0;
    height: 100%;
    padding: 22px;
}

.cpp-my-prayers-grid .cpp-my-prayer-card-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 14px;
}

.cpp-my-prayers-grid .cpp-my-prayer-card-title {
    margin: 0 0 5px;
    font-size: 18px;
    line-height: 1.35;
    overflow-wrap: break-word;
}

.cpp-my-prayers-grid .cpp-my-prayer-card-date {
    margin: 0;
    color: #667085;
    font-size: 12px;
}

.cpp-my-prayers-grid .cpp-my-prayer-card-excerpt {
    margin: 0 0 18px;
    color: #475467;
    font-size: 14px;
    line-height: 1.65;
}

.cpp-my-prayers-grid .cpp-my-prayer-card .cpp-my-prayer-card-prayer-count {
    display: flex;
    gap: 10px;
}
.cpp-my-prayers-grid .cpp-my-prayer-card .cpp-my-prayer-card-prayer-count strong { font-size: 14px; }

/* ---------------------------------------------------------
   Status Badge
   --------------------------------------------------------- */
/* =========================================================
   Prayer Request Status Badges
   ========================================================= */

.cpp-my-prayers-grid .cpp-prayer-status-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    min-height: 26px;
    padding: 5px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;

    white-space: nowrap;
}

.cpp-my-prayers-grid .cpp-prayer-status-submitted {
    background: #fff;
    color: #3538cd;
    border: 1px solid #ced4da;
}

.cpp-my-prayers-grid .cpp-prayer-status-praying {
    background: #fff;
    color: #5925dc;
     border: 1px solid #ced4da;
}

.cpp-my-prayers-grid .cpp-prayer-status-pastoral_follow_up {
    background: #fffaeb;
    color: #b54708;
    border: 1px solid #ced4da;
}

.cpp-my-prayers-grid .cpp-prayer-status-answered {
    background: #ecfdf3;
    color: #027a48;
    border: 1px solid #ced4da;
}

.cpp-my-prayers-grid .cpp-prayer-status-closed {
    background: #f2f4f7;
    color: #667085;
     border: 1px solid #ced4da;
}


/* ---------------------------------------------------------
   Metadata
   --------------------------------------------------------- */

.cpp-my-prayers-grid .cpp-my-prayer-card-meta {
    display: grid;

    grid-template-columns:
        repeat(
            3,
            minmax(0, 1fr)
        );
    gap: 10px;
    margin:
        auto 0 18px;
}

.cpp-my-prayers-grid .cpp-my-prayer-card-meta-item {
    min-width: 0;
    padding: 11px;
    border: 1px solid #eaecf0;
    border-radius: 9px;
    background: #f5f3ff;
}

.cpp-my-prayers-grid .cpp-my-prayer-card-meta-label {
    display: block;
    margin-bottom: 4px;
    color: #667085;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.3;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.cpp-my-prayers-grid .cpp-my-prayer-card-meta-value {
    display: block;
    color: #344054;
    font-size: 13px;
    line-height: 1.45;

    overflow-wrap: break-word;
}

.cpp-my-prayers-grid .cpp-my-prayer-card-meta-item.is-private {
    background:
        rgba(127, 86, 217, 0.055);
    border-color:
        rgba(127, 86, 217, 0.15);
}


.cpp-my-prayers-grid .cpp-my-prayer-card-meta-item.is-anonymous {
    background: #f2f4f7;
}


.cpp-my-prayers-grid .cpp-my-prayer-card-meta-item.is-urgent {
    background: #fffaf5;
    border-color: #fedf89;
}


/* ---------------------------------------------------------
   Card Footer
   --------------------------------------------------------- */

.cpp-my-prayers-grid .cpp-my-prayer-card-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    padding-top: 14px;
    border-top: 1px solid #eaecf0;
}

.cpp-my-prayers-grid .cpp-my-prayer-card-activity {
    display: flex;
    align-items: center;
    gap: 6px;
    color: #667085;
    font-size: 11px;
}

.cpp-my-prayers-grid .cpp-my-prayer-card-view-placeholder {
    flex: 0 0 auto;
    font-size: 12px;
    font-weight: 700;
}

.cpp-my-prayers-grid .cpp-my-prayer-card-view-link {
        display: inline-flex;
    min-height: 38px;
    align-items: center;
    justify-content: center;
    padding: 8px 13px;
    border: 1px solid #dbe7ff;
    border-radius: 10px;
    background: var(--cpp-primary-soft, #eef4ff);
    color: var(--cpp-primary, #1d4ed8);
    text-decoration: none;
    font-size: 12px;
    font-weight: 700;
    white-space: nowrap;
    transition: background-color .18s ease, border-color .18s ease, transform .18s ease;
}

.cpp-my-prayers-grid .cpp-my-prayer-card-view-link:hover {
        text-decoration: none;
    border-color: #c8d9ff;
    background: #ffffff;
    color: var(--cpp-primary, #1d4ed8);
    transform: translateY(-1px);
}

.cpp-my-prayers-grid .cpp-my-prayer-card-view-link:focus-visible {
    outline: 2px solid #6B3FC4;
    outline-offset: 3px;
    border-radius: 4px;
}

/* =========================================================
   My Prayer Requests — Empty States
   ========================================================= */

.cpp-my-prayers-page-layout .cpp-my-prayers-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    width: 100%;
    padding:
        46px 28px;
    text-align: center;
}

.cpp-my-prayers-page-layout .cpp-my-prayers-empty-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 58px;
    height: 58px;
    margin-bottom: 16px;
    border-radius: 15px;
    background:
        rgba(107, 63, 196, 0.10);
}

.cpp-my-prayers-page-layout .cpp-my-prayers-empty-icon svg {
    width: 26px;
    height: 26px;
}

.cpp-my-prayers-page-layout .cpp-my-prayers-empty-eyebrow {
    display: block;
    margin-bottom: 7px;
    color: #6B3FC4;
    font-size: 12px;
    font-weight: 800;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.cpp-my-prayers-page-layout .cpp-my-prayers-empty h2 {
    margin:
        0 0 10px;
    font-size: 23px;
    line-height: 1.3;
}

.cpp-my-prayers-page-layout .cpp-my-prayers-empty-description {
    max-width: 560px;
    margin:
        0 auto 22px;
    color: #667085;
    font-size: 14px;
    line-height: 1.7;
}

.cpp-my-prayers-page-layout .cpp-my-prayers-empty-actions {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 10px;
}

.cpp-my-prayers-page-layout .cpp-my-prayers-empty-actions .cpp-primary-button {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    color: rgb(255, 255, 255);
    font-size: 14px;
    font-weight: 700;
    box-shadow: rgba(29, 78, 216, 0.2) 0px 8px 18px;
    padding: 10px 17px;
    border-width: 1px;
    border-style: solid;
    border-color: transparent;
    border-image: none;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    text-decoration: none;
    transition: transform 0.18s, box-shadow 0.18s;
}
.cpp-my-prayers-page-layout .cpp-my-prayers-empty-actions .cpp-primary-button:hover {
    color: rgb(255, 255, 255);
    transform: translateY(-2px);
    box-shadow: rgba(29, 78, 216, 0.26) 0px 12px 24px;
}

/* =========================================================
   My Prayer Requests — Pagination
   ========================================================= */

.cpp-my-prayers-page-layout .cpp-my-prayers-pagination {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 10px;
    margin-top: 10px;
    padding-top: 20px;
}

.cpp-my-prayers-page-layout .cpp-my-prayers-pagination-inner {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 7px;
}

/* Previous / Next */

.cpp-my-prayers-page-layout .cpp-my-prayers-pagination-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    gap: 6px;

    min-height: 38px;

    padding: 8px 12px;

    border: 1px solid #d0d5dd;
    border-radius: 8px;

    background: #ffffff;
    color: #344054;

    text-decoration: none;

    font-size: 11px;
    font-weight: 700;

    transition:
        border-color 0.2s ease,
        background-color 0.2s ease,
        color 0.2s ease;
}

.cpp-my-prayers-page-layout a.cpp-my-prayers-pagination-link:hover {
    border-color: #b2a4d9;

    background:
        rgba(107, 63, 196, 0.05);

    color: #6B3FC4;
}

.cpp-my-prayers-page-layout .cpp-my-prayers-pagination-link.is-disabled {
    opacity: 0.45;

    cursor: default;
}

/* Number Container */

.cpp-my-prayers-page-layout .cpp-my-prayers-pagination-pages {
    display: flex;
    align-items: center;

    gap: 5px;
}

/* Number Links */

.cpp-my-prayers-page-layout .cpp-my-prayers-pagination-page {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 38px;
    height: 38px;
    padding: 0 8px;
    background-color: #fff;
    border: 1px solid transparent;
    border-radius: 8px;
    color: #475467;
    text-decoration: none;
    font-size: 11px;
    font-weight: 700;
    transition:
        background-color 0.2s ease,
        border-color 0.2s ease,
        color 0.2s ease;
}

.cpp-my-prayers-page-layout a.cpp-my-prayers-pagination-page:hover {
    border-color: #6B3FC4;
    background: #6B3FC4;
    color: #fff;
}

.cpp-my-prayers-page-layout .cpp-my-prayers-pagination-page.is-current {
    border-color: #6B3FC4;
    background: #6B3FC4;
    color: #fff;
}


/* Ellipsis */

.cpp-my-prayers-page-layout .cpp-my-prayers-pagination-ellipsis {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    width: 28px;
    height: 38px;

    color: #98a2b3;

    font-size: 13px;
}

/* Page Summary */

.cpp-my-prayers-page-layout .cpp-my-prayers-pagination-summary {
    margin: 0;

    color: #667085;

    font-size: 10px;
    line-height: 1.4;
}

.cpp-my-prayers-page-layout .cpp-my-prayers-pagination-link:focus-visible,
.cpp-my-prayers-page-layout .cpp-my-prayers-pagination-page:focus-visible {
    outline: 2px solid #6B3FC4;
    outline-offset: 2px;
}

/* ---------------------------------------------------------
   Responsive
   --------------------------------------------------------- */

@media (max-width: 900px) {

    .cpp-my-prayers-list .cpp-my-prayers-grid {
        grid-template-columns: 1fr;
    }
}


@media (max-width: 767px) {

    .cpp-my-prayers-page-layout .cpp-my-prayers-summary {
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .cpp-my-prayers-page-layout .cpp-my-prayers-summary-action {
        width: 100%;
    }

    .cpp-my-prayers-page-layout .cpp-my-prayers-summary-action
    .cpp-primary-button {
        width: 100%;
    }

    .cpp-my-prayers-grid .cpp-my-prayer-card-header {
        flex-direction: column;
        gap: 10px;
    }

    .cpp-my-prayers-grid .cpp-my-prayer-card-meta {
        grid-template-columns: 1fr;
    }

    .cpp-my-prayers-grid .cpp-my-prayer-card-footer {
        align-items: flex-start;
        flex-direction: column;
    }

    .cpp-my-prayers-grid .cpp-my-prayers-pagination {
        flex-wrap: wrap;
    }
    
    .cpp-my-prayers-page-layout .cpp-my-prayers-pagination-inner {
        width: 100%;
    }


    .cpp-my-prayers-page-layout .cpp-my-prayers-pagination-prev,
    .cpp-my-prayers-page-layout .cpp-my-prayers-pagination-next {
        flex: 1 1 auto;
    }


    .cpp-my-prayers-page-layout .cpp-my-prayers-pagination-pages {
        order: 3;

        width: 100%;

        justify-content: center;
    }
}

@media (max-width: 420px) {

    .cpp-my-prayers-page-layout .cpp-my-prayers-pagination-page {
        min-width: 34px;
        height: 36px;
    }


    .cpp-my-prayers-page-layout .cpp-my-prayers-pagination-ellipsis {
        width: 20px;
        height: 36px;
    }

}


.cpp-my-prayers-grid .cpp-prayer-urgency-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    flex: 0 0 auto;

    padding: 4px 8px;

    border-radius: 999px;

    background: #fff4ed;
    color: #b93815;

    font-size: 10px;
    font-weight: 700;
    line-height: 1.2;

    text-transform: uppercase;
    letter-spacing: 0.02em;
}

.cpp-my-prayers-grid .cpp-my-prayer-card-heading {
    min-width: 0;
    flex: 1;
}

.cpp-my-prayers-grid .cpp-my-prayer-card-title-row {
    display: flex;
    align-items: flex-start;
    flex-wrap: wrap;
    gap: 7px 9px;
    margin-bottom: 8px;
}

.cpp-my-prayers-grid .cpp-my-prayer-card-title {
        margin: 0;
    color: var(--cpp-text-heading);
    font-size: 18px;
    font-weight: 740;
    letter-spacing: -.025em;
    line-height: 1.3;
}

.cpp-my-prayers-grid .cpp-my-prayer-card {
    position: relative;
    display: flex;
    flex-direction: column;
    min-width: 0;
    height: 100%;
    padding: 22px;
    background-color: #f9fafb;
    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease,
        transform 0.2s ease;
}

.cpp-my-prayers-grid .cpp-my-prayer-card:hover {
    transform: translateY(-1px);
}

.cpp-my-prayers-grid .cpp-my-prayer-card.is-urgent {
    border-top:
        3px solid
        #f79009;
}

.cpp-my-prayers-grid .cpp-my-prayer-card.is-private {
    border-top:
        3px solid
        #7f56d9;
}

.cpp-my-prayers-grid .cpp-my-prayer-card.is-anonymous {
    border-top:
        3px solid
        #667085;
}

.cpp-my-prayers-grid .cpp-my-prayer-card-progress {
    display: flex;
    align-items: center;
    gap: 10px;

    margin-bottom: 16px;

    padding: 12px;

    border-radius: 9px;

    background: #f9fafb;
}

.cpp-my-prayers-grid .cpp-my-prayer-card-progress-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;

    flex: 0 0 auto;

    width: 32px;
    height: 32px;

    border-radius: 8px;

    background:
        rgba(107, 63, 196, 0.09);
}

.cpp-my-prayers-grid .cpp-my-prayer-card-progress-copy {
    display: flex;
    flex-direction: column;

    min-width: 0;

    gap: 2px;
}

.cpp-my-prayers-grid .cpp-my-prayer-card-progress-copy strong {
    font-size: 11px;
    line-height: 1.4;
}


.cpp-my-prayers-grid .cpp-my-prayer-card-progress-copy span {
    color: #667085;

    font-size: 10px;
    line-height: 1.45;
}

.cpp-my-prayers-grid .cpp-my-prayer-card-privacy-note {
    color: #667085;

    font-size: 10px;
    line-height: 1.45;
}

.cpp-my-prayers-grid .cpp-my-prayer-card-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;

    gap: 16px;

    padding-top: 14px;

    border-top: 1px solid #eaecf0;
}


.cpp-my-prayers-grid .cpp-my-prayer-card-view-placeholder {
    flex: 0 0 auto;

    color: #6B3FC4;

    font-size: 11px;
    font-weight: 700;

    white-space: nowrap;
}

.cpp-my-prayers-grid .cpp-my-prayer-card-status-answered {
    border-color:
        rgba(18, 183, 106, 0.22);
}

.cpp-my-prayers-grid .cpp-my-prayer-card-status-closed
.cpp-my-prayer-card-excerpt,
.cpp-my-prayers-grid .cpp-my-prayer-card-status-closed
.cpp-my-prayer-card-meta {
    opacity: 0.82;
}

@media (max-width: 767px) {

    .cpp-my-prayers-grid .cpp-my-prayer-card {
        padding: 18px;
    }


    .cpp-my-prayers-grid .cpp-my-prayer-card-header {
        align-items: flex-start;
        flex-direction: column;
    }


    .cpp-my-prayers-grid .cpp-my-prayer-card-meta {
        grid-template-columns:
            1fr;
    }


    .cpp-my-prayers-grid .cpp-my-prayer-card-footer {
        align-items: flex-start;
        flex-direction: column;
    }


    .cpp-my-prayers-grid .cpp-my-prayer-card-view-link {
        white-space: normal;
    }

}

/* =========================================================
   Prayer Status Context
   ========================================================= */

.cpp-my-prayers-page-layout .cpp-my-prayer-status-context {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin: -2px 0 16px;
    color: #667085;
    font-size: 13px;
    line-height: 1.5;
}

.cpp-my-prayers-page-layout .cpp-my-prayer-status-context-dot {
    flex: 0 0 auto;

    width: 7px;
    height: 7px;

    margin-top: 5px;

    border-radius: 999px;

    background: #98a2b3;
}

.cpp-my-prayers-page-layout .cpp-my-prayer-status-context-dot.cpp-prayer-status-submitted {
    background: #667085;
}

.cpp-my-prayers-page-layout .cpp-my-prayer-status-context-dot.cpp-prayer-status-praying {
    background: #7f56d9;
}

.cpp-my-prayers-page-layout .cpp-my-prayer-status-context-dot.cpp-prayer-status-pastoral_follow_up {
    background: #f79009;
}

.cpp-my-prayers-page-layout .cpp-my-prayer-status-context-dot.cpp-prayer-status-answered {
    background: #12b76a;
}

.cpp-my-prayers-page-layout .cpp-my-prayer-status-context-dot.cpp-prayer-status-closed {
    background: #98a2b3;
}

.cpp-my-prayers-page-layout .cpp-my-prayer-card-meta-item.cpp-prayer-privacy-leader_only {
    background:
        rgba(127, 86, 217, 0.055);
    border-color:
        rgba(127, 86, 217, 0.16);
}

.cpp-my-prayers-page-layout .cpp-my-prayer-card-meta-item.cpp-prayer-privacy-anonymous {
    background: #f2f4f7;
    border-color: #d0d5dd;
}

.cpp-my-prayers-page-layout .cpp-my-prayer-card-meta-item.cpp-prayer-privacy-standard {
    background: #f9fafb;
    border-color: #9370db;
}
.cpp-my-prayers-page-layout .cpp-my-prayer-card-privacy-note {
    display: flex;
    align-items: flex-start;
    gap: 7px;
    color: #667085;
    font-size: 12px;
    line-height: 1.45;
}

.cpp-my-prayers-page-layout .cpp-my-prayer-card-privacy-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 18px;
    height: 18px;
}

.cpp-my-prayers-page-layout .cpp-my-prayer-card-privacy-icon svg {
    width: 18px;
    height: 18px;
}

.cpp-my-prayers-page-layout .cpp-my-prayers-page-error {
    border-style: dashed;
}


.cpp-my-prayers-page-layout .cpp-my-prayers-page-error
.cpp-my-prayers-empty-icon {
    background: #f2f4f7;
}

@media (max-width: 767px) {

    .cpp-my-prayers-page-layout .cpp-my-prayers-empty {
        padding:
            34px 20px;
    }


    .cpp-my-prayers-page-layout .cpp-my-prayers-empty h2 {
        font-size: 20px;
    }


    .cpp-my-prayers-page-layout .cpp-my-prayers-empty-actions {
        width: 100%;
    }


    .cpp-my-prayers-page-layout .cpp-my-prayers-empty-actions
    .cpp-primary-button {
        width: 100%;
    }

}

/* =========================================================
   Individual Prayer Request
   ========================================================= */
   
.cpp-prayer-detail-page-layout .cpp-my-prayer-card-title,
.cpp-prayer-detail-page-layout .cpp-my-prayer-card-excerpt,
.cpp-prayer-detail-page-layout .cpp-my-prayer-card-meta-value,
.cpp-prayer-detail-page-layout .cpp-my-prayer-card-privacy-note,
.cpp-prayer-detail-page-layout .cpp-prayer-detail-title-row h2,
.cpp-prayer-detail-page-layout .cpp-prayer-detail-request-copy,
.cpp-prayer-detail-page-layout .cpp-prayer-detail-info-value,
.cpp-prayer-detail-page-layout .cpp-prayer-detail-privacy p,
.cpp-prayer-detail-page-layout .cpp-prayer-detail-status p {
    overflow-wrap: anywhere;
    word-break: normal;
}   

.cpp-prayer-detail-page-layout .cpp-primary-button,
.cpp-prayer-detail-page-layout .cpp-my-prayers-pagination-link,
.cpp-prayer-detail-page-layout .cpp-my-prayer-card-view-link {
    max-width: 100%;
    box-sizing: border-box;
}

.cpp-prayer-detail-page-layout .cpp-my-prayers-pagination {
    overflow-x: hidden;
}

.cpp-prayer-detail-page-layout .cpp-dashboard .cpp-prayer-detail-page-layout {
    width: 100%;
    max-width: 1100px;
    margin: 0 auto;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-card-view-link:focus-visible,
.cpp-prayer-detail-page-layout .cpp-prayer-detail-back a:focus-visible,
.cpp-prayer-detail-page-layout .cpp-my-prayers-pagination-link:focus-visible,
.cpp-prayer-detail-page-layout .cpp-my-prayers-pagination-page:focus-visible,
.cpp-prayer-detail-page-layout .cpp-my-prayers-empty-actions a:focus-visible {
    outline: 2px solid #6B3FC4;
    outline-offset: 3px;
    border-radius: 4px;
}

/* Back */

.cpp-prayer-detail-page-layout .cpp-prayer-detail-back {
    margin-bottom: 18px;
}

.cpp-prayer-detail-page-layout .cpp-prayer-detail-back a {
   display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    color: rgb(255, 255, 255);
    font-size: 14px;
    font-weight: 700;
    box-shadow: rgba(29, 78, 216, 0.2) 0px 8px 18px;
    padding: 10px 17px;
    border-width: 1px;
    border-style: solid;
    border-color: transparent;
    border-image: none;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    text-decoration: none;
    transition: transform 0.18s, box-shadow 0.18s;
}

.cpp-prayer-detail-page-layout .cpp-prayer-detail-back a:hover {
        color: rgb(255, 255, 255);
    transform: translateY(-2px);
    box-shadow: rgba(29, 78, 216, 0.26) 0px 12px 24px;
}

/* Card */

.cpp-prayer-detail-page-layout .cpp-prayer-detail-card {
    padding: 30px;
}
.cpp-prayer-detail-page-layout .cpp-prayer-detail-card .cpp-prayer-status-badge {
        display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    min-height: 26px;
    padding: 5px 10px;
    border-radius: 999px;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
}
.cpp-prayer-detail-page-layout .cpp-prayer-detail-card .cpp-prayer-status-submitted {
    background: #eef4ff;
    color: #3538cd;
    border: 1px solid #c8d9ff;
}

/* Header */

.cpp-prayer-detail-page-layout .cpp-prayer-detail-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 20px;
}

.cpp-prayer-detail-page-layout .cpp-prayer-detail-heading {
    min-width: 0;
}

.cpp-prayer-detail-page-layout .cpp-prayer-detail-title-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 8px 10px;
}

.cpp-prayer-detail-page-layout .cpp-prayer-detail-title-row h2 {
    margin: 0;
    color: var(--cpp-text-heading);
    font-size: 28px;
    font-weight: 740;
    letter-spacing: -.025em;
    line-height: 1.3;
    overflow-wrap: break-word;
}

.cpp-prayer-detail-page-layout .cpp-prayer-detail-submitted {
    margin: 7px 0 0;
    color: #172033;
    font-size: 12px;
}

/* Status Context */

.cpp-prayer-detail-page-layout .cpp-prayer-detail-status {
    margin-bottom: 26px;
    padding: 15px 17px;
    border-radius: 10px;
    background: #fff;
        border: 1px solid #ced4da;
}

.cpp-prayer-detail-page-layout .cpp-prayer-detail-status strong {
    display: block;
    margin-bottom: 4px;
    font-size: 14px;
}

.cpp-prayer-detail-page-layout .cpp-prayer-detail-status p {
    margin: 0;
    color: #667085;
    font-size: 13px;
    line-height: 1.6;
}

/* Prayer Content */

.cpp-prayer-detail-page-layout .cpp-prayer-detail-content {
    margin-bottom: 30px;
    padding-bottom: 28px;
    border-bottom: 1px solid #eaecf0;
}

.cpp-prayer-detail-page-layout .cpp-prayer-detail-content h3 {
    margin:0 0 14px;
    color: var(--cpp-text-heading);
    font-size: 20px;
    font-weight: 740;
    letter-spacing: -.025em;
    line-height: 1.3;
}

.cpp-prayer-detail-page-layout .cpp-prayer-detail-request-copy {
    color: #344054;
    font-size: 14px;
    line-height: 1.8;
    overflow-wrap: anywhere;
}

.cpp-prayer-detail-page-layout .cpp-prayer-detail-request-copy p:first-child {
    margin-top: 0;
}

.cpp-prayer-detail-page-layout .cpp-prayer-detail-request-copy p:last-child {
    margin-bottom: 0;
}


/* Request Details */

.cpp-prayer-detail-page-layout .cpp-prayer-detail-information {
    margin-bottom: 28px;
}

.cpp-prayer-detail-page-layout .cpp-prayer-detail-information h3 {
        margin: 0 0 14px;
    color: var(--cpp-text-heading);
    font-size: 20px;
    font-weight: 740;
    letter-spacing: -.025em;
    line-height: 1.3;
}

.cpp-prayer-detail-page-layout .cpp-prayer-detail-info-grid {
    display: grid;
    grid-template-columns:
        repeat(3, minmax(0, 1fr));
    gap: 12px;
}

.cpp-prayer-detail-page-layout .cpp-prayer-detail-info-item {
    min-width: 0;
    padding: 14px;
    border: 1px solid #ced4da;
    border-radius: 10px;
    background: #fff;
}

.cpp-prayer-detail-page-layout .cpp-prayer-detail-info-label {
    display: block;
    margin-bottom: 5px;
    color: #667085;
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.cpp-prayer-detail-page-layout .cpp-prayer-detail-info-value {
    display: block;
    color: #344054;
    font-size: 14px;
    line-height: 1.45;
    overflow-wrap: break-word;
}

/* Privacy */

.cpp-prayer-detail-page-layout .cpp-prayer-detail-privacy {
    display: flex;
    align-items: flex-start;
    gap: 13px;
    margin-bottom: 28px;
    padding: 18px;
    border: 1px solid #ced4da;
    border-radius: 11px;
    background: #fff;
}

.cpp-prayer-detail-page-layout .cpp-prayer-detail-privacy-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 38px;
    height: 38px;
    border-radius: 9px;
    background:
        rgba(107, 63, 196, 0.10);
}

.cpp-prayer-detail-page-layout .cpp-prayer-detail-privacy-icon svg {
    width: 18px;
    height: 18px;
}

.cpp-prayer-detail-page-layout .cpp-prayer-detail-privacy h3 {
    margin: 0 0 5px;
    color: var(--cpp-text-heading);
    font-size: 18px;
    font-weight: 740;
    letter-spacing: -.025em;
    line-height: 1.3;
}

.cpp-prayer-detail-page-layout .cpp-prayer-detail-privacy strong {
    display: block;
    margin-bottom: 4px;
    font-size: 14px;
}

.cpp-prayer-detail-page-layout .cpp-prayer-detail-privacy p {
    margin: 0;
    color: #667085;
    font-size: 12px;
    line-height: 1.6;
}

/* Activity */

.cpp-prayer-detail-page-layout .cpp-prayer-detail-activity {
    padding-top: 2px;
}

.cpp-prayer-detail-page-layout .cpp-prayer-detail-activity h3 {
        margin: 0 0 14px;
    color: var(--cpp-text-heading);
    font-size: 20px;
    font-weight: 740;
    letter-spacing: -.025em;
    line-height: 1.3;
}

.cpp-prayer-detail-page-layout .cpp-prayer-detail-activity-placeholder {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 17px;
    border: 1px solid #eaecf0;
    border-radius: 10px;
    background: #f9fafb;
}

.cpp-prayer-detail-page-layout .cpp-prayer-detail-activity-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 34px;
    height: 34px;
    border-radius: 9px;
    background:
        rgba(107, 63, 196, 0.08);
}

.cpp-prayer-detail-page-layout .cpp-prayer-detail-activity-placeholder strong {
    display: block;
    margin-bottom: 4px;
    font-size: 12px;
}

.cpp-prayer-detail-page-layout .cpp-prayer-detail-activity-placeholder p {
    margin: 0;
    color: #667085;
    font-size: 11px;
    line-height: 1.6;
}

/* Unavailable */
.cpp-prayer-detail-page-layout .cpp-prayer-detail-unavailable {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 44px 26px;
    text-align: center;
}

.cpp-prayer-detail-page-layout .cpp-prayer-detail-unavailable h2 {
    margin:0 0 9px;
}

.cpp-prayer-detail-page-layout .cpp-prayer-detail-unavailable p {
    max-width: 520px;
    margin:0 0 20px;
    color: #667085;
    line-height: 1.6;
}
.cpp-prayer-detail-page-layout .cpp-prayer-detail-unavailable .cpp-primary-button {
        display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    color: rgb(255, 255, 255);
    font-size: 14px;
    font-weight: 700;
    box-shadow: rgba(29, 78, 216, 0.2) 0px 8px 18px;
    padding: 10px 17px;
    border-width: 1px;
    border-style: solid;
    border-color: transparent;
    border-image: none;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    text-decoration: none;
    transition: transform 0.18s, box-shadow 0.18s;
}
.cpp-prayer-detail-page-layout .cpp-prayer-detail-unavailable .cpp-primary-button:hover {
    color: rgb(255, 255, 255);
    transform: translateY(-2px);
    box-shadow: rgba(29, 78, 216, 0.26) 0px 12px 24px;
}

@media (max-width: 767px) {

    .cpp-prayer-detail-page-layout .cpp-prayer-detail-card {
        padding: 20px;
    }


    .cpp-prayer-detail-page-layout .cpp-prayer-detail-header {
        flex-direction: column;
    }


    .cpp-prayer-detail-page-layout .cpp-prayer-detail-info-grid {
        grid-template-columns: 1fr;
    }


    .cpp-prayer-detail-page-layout .cpp-prayer-detail-privacy {
        padding: 15px;
    }


    .cpp-prayer-detail-page-layout .cpp-prayer-detail-activity-placeholder {
        padding: 14px;
    }

}

/* =========================================================
   STEP 4 — RESPONSIVE POLISH
   My Prayer Requests
   ========================================================= */


/* ---------------------------------------------------------
   Base width protection
   --------------------------------------------------------- */

.cpp-my-prayers-page-layout,
.cpp-prayer-detail-page-layout {
    width: 100%;
    min-width: 0;
}


/* ---------------------------------------------------------
   Large desktop
   --------------------------------------------------------- */

@media (min-width: 1200px) {

    .cpp-prayer-detail-page-layout .cpp-my-prayers-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .cpp-prayer-detail-page-layout .cpp-prayer-detail-info-grid {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
    }

}

@media (max-width: 1024px) {

    .cpp-my-prayers-page-layout,
    .cpp-prayer-detail-page-layout {
        max-width: 100%;
    }


    .cpp-prayer-detail-page-layout .cpp-my-prayers-summary {
        gap: 16px;
    }


    .cpp-prayer-detail-page-layout .cpp-my-prayers-grid {
        grid-template-columns: 1fr;
    }


    .cpp-prayer-detail-page-layout .cpp-prayer-detail-info-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }


    .cpp-prayer-detail-page-layout .cpp-prayer-detail-card {
        padding: 26px;
    }

}

@media (max-width: 767px) {

    /* ---------------------------------------------
       Summary
       --------------------------------------------- */

    .cpp-prayer-detail-page-layout .cpp-my-prayers-summary {
        flex-direction: column;
        align-items: stretch;

        gap: 16px;

        padding: 20px;
    }


    .cpp-prayer-detail-page-layout .cpp-my-prayers-summary-icon {
        width: 44px;
        height: 44px;
    }


    .cpp-prayer-detail-page-layout .cpp-my-prayers-summary-copy {
        width: 100%;
    }


    .cpp-prayer-detail-page-layout .cpp-my-prayers-summary-count {
        font-size: 26px;
    }


    .cpp-prayer-detail-page-layout .cpp-my-prayers-summary-action {
        width: 100%;
    }


    .cpp-prayer-detail-page-layout .cpp-my-prayers-summary-action
    .cpp-primary-button {
        width: 100%;
    }


    /* ---------------------------------------------
       Request cards
       --------------------------------------------- */

    .cpp-prayer-detail-page-layout .cpp-my-prayers-grid {
        grid-template-columns: 1fr;

        gap: 14px;
    }


    .cpp-prayer-detail-page-layout .cpp-my-prayer-card {
        padding: 18px;
    }


    .cpp-prayer-detail-page-layout .cpp-my-prayer-card-header {
        flex-direction: column;
        align-items: flex-start;

        gap: 10px;
    }


    .cpp-prayer-detail-page-layout .cpp-my-prayer-card-title-row {
        width: 100%;
    }


    .cpp-prayer-detail-page-layout .cpp-my-prayer-card-title {
        font-size: 17px;
    }


    .cpp-prayer-detail-page-layout .cpp-prayer-status-badge {
        align-self: flex-start;
    }


    .cpp-prayer-detail-page-layout .cpp-my-prayer-card-meta {
        grid-template-columns: 1fr;

        gap: 8px;
    }


    .cpp-prayer-detail-page-layout .cpp-my-prayer-card-meta-item {
        padding: 10px 12px;
    }


    .cpp-prayer-detail-page-layout .cpp-my-prayer-card-progress {
        align-items: flex-start;
    }


    .cpp-prayer-detail-page-layout .cpp-my-prayer-card-footer {
        flex-direction: column;
        align-items: flex-start;

        gap: 12px;
    }


    .cpp-prayer-detail-page-layout .cpp-my-prayer-card-view-link {
        white-space: normal;
    }


    /* ---------------------------------------------
       Empty state
       --------------------------------------------- */

    .cpp-prayer-detail-page-layout .cpp-my-prayers-empty {
        padding:
            34px 20px;
    }


    .cpp-prayer-detail-page-layout .cpp-my-prayers-empty h2 {
        font-size: 20px;
    }


    .cpp-prayer-detail-page-layout .cpp-my-prayers-empty-actions {
        width: 100%;
    }


    .cpp-prayer-detail-page-layout .cpp-my-prayers-empty-actions
    .cpp-primary-button {
        width: 100%;
    }


    /* ---------------------------------------------
       Pagination
       --------------------------------------------- */

    .cpp-prayer-detail-page-layout .cpp-my-prayers-pagination-inner {
        width: 100%;
    }


    .cpp-prayer-detail-page-layout .cpp-my-prayers-pagination-prev,
    .cpp-prayer-detail-page-layout .cpp-my-prayers-pagination-next {
        flex: 1 1 0;
    }


    .cpp-prayer-detail-page-layout .cpp-my-prayers-pagination-pages {
        order: 3;

        width: 100%;

        justify-content: center;
        flex-wrap: wrap;
    }


    /* ---------------------------------------------
       Detail page
       --------------------------------------------- */

    .cpp-prayer-detail-page-layout .cpp-prayer-detail-back {
        margin-bottom: 14px;
    }


    .cpp-prayer-detail-page-layout .cpp-prayer-detail-card {
        padding: 20px;
    }


    .cpp-prayer-detail-page-layout .cpp-prayer-detail-header {
        flex-direction: column;
        align-items: flex-start;

        gap: 12px;
    }


    .cpp-prayer-detail-page-layout .cpp-prayer-detail-title-row {
        align-items: flex-start;
    }


    .cpp-prayer-detail-page-layout .cpp-prayer-detail-title-row h2 {
        font-size: 21px;
    }


    .cpp-prayer-detail-page-layout .cpp-prayer-detail-info-grid {
        grid-template-columns: 1fr;

        gap: 9px;
    }


    .cpp-prayer-detail-page-layout .cpp-prayer-detail-content {
        margin-bottom: 24px;
        padding-bottom: 22px;
    }


    .cpp-prayer-detail-page-layout .cpp-prayer-detail-request-copy {
        font-size: 13px;
        line-height: 1.75;
    }


    .cpp-prayer-detail-page-layout .cpp-prayer-detail-privacy {
        padding: 15px;
    }


    .cpp-prayer-detail-page-layout .cpp-prayer-detail-activity-placeholder {
        padding: 14px;
    }

}

@media (max-width: 480px) {

    .cpp-prayer-detail-page-layout .cpp-my-prayers-summary,
    .cpp-prayer-detail-page-layout .cpp-my-prayer-card,
    .cpp-prayer-detail-page-layout .cpp-prayer-detail-card {
        padding: 16px;
    }


    .cpp-prayer-detail-page-layout .cpp-my-prayer-card-title {
        font-size: 16px;
    }


    .cpp-prayer-detail-page-layout .cpp-my-prayer-card-excerpt {
        font-size: 12px;
    }


    .cpp-prayer-detail-page-layout .cpp-my-prayer-status-context {
        font-size: 10px;
    }


    .cpp-prayer-detail-page-layout .cpp-prayer-status-badge,
    .cpp-prayer-detail-page-layout .cpp-prayer-urgency-badge {
        white-space: normal;
    }


    .cpp-prayer-detail-page-layout .cpp-my-prayer-card-progress {
        padding: 10px;
    }


    .cpp-prayer-detail-page-layout .cpp-prayer-detail-title-row h2 {
        font-size: 19px;
    }


    .cpp-prayer-detail-page-layout .cpp-prayer-detail-status,
    .cpp-prayer-detail-page-layout .cpp-prayer-detail-privacy,
    .cpp-prayer-detail-page-layout .cpp-prayer-detail-activity-placeholder {
        padding: 12px;
    }


    .cpp-prayer-detail-page-layout .cpp-my-prayers-pagination-link {
        padding: 8px 10px;
    }


    .cpp-prayer-detail-page-layout .cpp-my-prayers-pagination-page {
        min-width: 34px;
        height: 36px;
    }


    .cpp-prayer-detail-page-layout .cpp-my-prayers-pagination-ellipsis {
        width: 18px;
        height: 36px;
    }

}

@media (pointer: coarse) {

    .cpp-prayer-detail-page-layout .cpp-primary-button,
    .cpp-prayer-detail-page-layout .cpp-my-prayers-pagination-link,
    .cpp-prayer-detail-page-layout .cpp-my-prayers-pagination-page,
   .cpp-prayer-detail-page-layout  .cpp-my-prayer-card-view-link {
        min-height: 44px;
    }

}

@media (prefers-reduced-motion: reduce) {

    .cpp-prayer-detail-page-layout .cpp-my-prayer-card,
    .cpp-prayer-detail-page-layout .cpp-my-prayers-pagination-link,
    .cpp-prayer-detail-page-layout .cpp-my-prayers-pagination-page {
        transition: none;
    }


    .cpp-prayer-detail-page-layout .cpp-my-prayer-card:hover {
        transform: none;
    }

}

/* =========================================================
   Prayer Team Dashboard
   ========================================================= */

.cpp-dashboard .cpp-prayer-team-page-layout {
    width: 100%;
    max-width: 1100px;
    margin: 0 auto;
}

/* ---------------------------------------------------------
   Summary
   --------------------------------------------------------- */

.cpp-prayer-team-page-layout .cpp-prayer-team-summary {
    display: grid;
    grid-template-columns:
        repeat(3, minmax(0, 1fr));
    gap: 16px;
    margin-bottom: 30px;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-summary-card {
    display: flex;
    align-items: flex-start;
    gap: 14px;
    padding: 20px;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-summary-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 44px;
    height: 44px;
    border-radius: 11px;
    background: #6F2D96;
    color: #fff;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-summary-icon svg {
    width: 21px;
    height: 21px;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-summary-copy {
    min-width: 0;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-summary-label {
    display: block;
    margin-bottom: 3px;
    color: #172033;
    font-size: 16px;
    font-weight: 700;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-summary-value {
    color: #6B3FC4;
    display: block;
    margin-bottom: 4px;
    font-size: 30px;
    line-height: 1.1;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-summary-copy p {
    margin: 0;
    color: #667085;
    font-size: 13px;
    line-height: 1.5;
}

/* ---------------------------------------------------------
   Queue
   --------------------------------------------------------- */

.cpp-prayer-team-page-layout .cpp-prayer-team-queue {
    display: flex;
    flex-direction: column;
    gap: 20px;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-grid {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
    gap: 18px;
}

/* ---------------------------------------------------------
   Queue Card
   --------------------------------------------------------- */

.cpp-prayer-team-page-layout .cpp-prayer-team-card {
    display: flex;
    flex-direction: column;
    min-width: 0;
    height: 100%;
    padding: 22px;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-card.is-urgent {
    border-top:
        3px solid #f79009;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-card-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 14px;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-card-heading {
    min-width: 0;
    flex: 1;
    margin-bottom: 10px;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-card-title-row {
    display: flex;
    flex-wrap: wrap;
    align-items: flex-start;
    gap: 7px 9px;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-card-title {
        margin: 0;
    color: var(--cpp-text-heading);
    font-size: 18px;
    font-weight: 740;
    letter-spacing: -.025em;
    line-height: 1.3;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-card-date {
    margin: 5px 0 0;
    color: #667085;
    font-size: 12px;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-card-excerpt {
    margin:
        0 0 17px;
    color: #475467;
    font-size: 14px;
    line-height: 1.65;
    overflow-wrap: anywhere;
}

/* ---------------------------------------------------------
   Metadata
   --------------------------------------------------------- */

.cpp-prayer-team-page-layout .cpp-prayer-team-card-meta {
    display: grid;
    grid-template-columns:
        repeat(3, minmax(0, 1fr));
    gap: 9px;
    margin:
        auto 0 17px;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-card-meta-item {
    min-width: 0;
    padding: 10px;
    border: 1px solid #eaecf0;
    border-radius: 8px;
    background: #f9fafb;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-card-meta-item > span {
    display: block;
    margin-bottom: 3px;
    color: #667085;
    font-size: 12px;
    font-weight: 500;
    text-transform: uppercase;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-card-meta-item > strong {
    display: block;
    font-size: 13px;
    line-height: 1.4;
    overflow-wrap: anywhere;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-card-meta-item.is-urgent {
    background: #fffaf5;
    border-color: #fedf89;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-card-meta-item.cpp-prayer-privacy-leader_only {
    background:
        rgba(127, 86, 217, 0.055);
    border-color:
        rgba(127, 86, 217, 0.15);
}

.cpp-prayer-team-page-layout .cpp-prayer-team-card-meta-item.cpp-prayer-privacy-anonymous {
    background: #f2f4f7;
}

/* ---------------------------------------------------------
   Footer
   --------------------------------------------------------- */

.cpp-prayer-team-page-layout .cpp-prayer-team-card-footer {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
    padding-top: 14px;
    border-top: 1px solid #eaecf0;
}


.cpp-prayer-team-page-layout .cpp-prayer-team-card-note {
    color: #667085;
    font-size: 10px;
    line-height: 1.5;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-card-view-placeholder {
    flex: 0 0 auto;
    color: #6B3FC4;
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
}

/* ---------------------------------------------------------
   Empty
   --------------------------------------------------------- */

.cpp-prayer-team-page-layout .cpp-prayer-team-empty {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 40px 24px;
    text-align: center;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-empty-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 54px;
    height: 54px;
    margin-bottom: 14px;
    border-radius: 14px;
    background:
        rgba(107, 63, 196, 0.10);
}

.cpp-prayer-team-page-layout .cpp-prayer-team-empty h3 {
    margin: 0 0 22px;
    color: var(--cpp-text-heading);
    font-size: 23px;
    font-weight: 740;
    letter-spacing: -.025em;
    line-height: 1.3;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-empty p {
    max-width: 520px;
    margin:
        0 0 18px;
    color: #667085;
    font-size: 12px;
    line-height: 1.6;
}

/* ---------------------------------------------------------
   Temporary Pagination
   --------------------------------------------------------- */

.cpp-prayer-team-page-layout .cpp-prayer-team-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 14px;
    padding-top: 8px;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-pagination a {
    color: #6B3FC4;
    font-size: 11px;
    font-weight: 700;
    text-decoration: none;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-pagination span {
    color: #667085;
    font-size: 10px;
}

@media (max-width: 900px) {

    .cpp-prayer-team-page-layout .cpp-prayer-team-summary {
        grid-template-columns: 1fr;
    }

    .cpp-prayer-team-page-layout .cpp-prayer-team-grid {
        grid-template-columns: 1fr;
    }

}


@media (max-width: 767px) {

    .cpp-prayer-team-page-layout .cpp-prayer-team-card {
        padding: 18px;
    }

    .cpp-prayer-team-page-layout .cpp-prayer-team-card-header {
        flex-direction: column;
    }

    .cpp-prayer-team-page-layout .cpp-prayer-team-card-meta {
        grid-template-columns: 1fr;
    }

    .cpp-prayer-team-page-layout .cpp-prayer-team-card-footer {
        flex-direction: column;
    }

    .cpp-prayer-team-page-layout .cpp-prayer-team-card-view-placeholder {
        white-space: normal;
    }

    .cpp-prayer-team-page-layout .cpp-prayer-team-pagination {
        flex-wrap: wrap;
    }

}

/* =========================================================
   Prayer Team Queue — Privacy Badge
   ========================================================= */

.cpp-prayer-team-page-layout .cpp-prayer-team-card-topline {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 14px;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-card-flags {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 6px;
}
.cpp-prayer-team-page-layout .cpp-prayer-team-card-flags .cpp-prayer-urgency-badge {
    color: #f79009;
        font-size: 12px;
    font-weight: 600;
    background: #fffaf5;
    border: 1px solid #fedf89;
    padding: 4px 10px;
    border-radius: 8px;
}
.cpp-prayer-team-page-layout .cpp-prayer-team-card-topline .cpp-prayer-status-submitted {
    color: #3538cd;
        font-size: 12px;
    font-weight: 600;
    background: #eef4ff;
    border: 1px solid #c8d9ff;
    padding: 4px 10px;
    border-radius: 8px;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-privacy-badge {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 4px 8px;
    border-radius: 999px;
    background: #f2f4f7;
    color: #475467;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-privacy-badge.cpp-prayer-privacy-standard {
    background: #f2f4f7;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-privacy-badge.cpp-prayer-privacy-anonymous {
    background: #eef4ff;
    color: #3538cd;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-privacy-badge.cpp-prayer-privacy-leader_only {
    background: #f4f3ff;
    color: #5925dc;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-requester {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 16px;
    padding: 11px 12px;
    border-radius: 9px;
    background: #f9fafb;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-requester-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 31px;
    height: 31px;
    border-radius: 8px;
    color: #fff;
    background: #5925dc;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-requester-icon svg {
    width: 15px;
    height: 15px;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-requester-copy {
    display: flex;
    flex-direction: column;
    min-width: 0;
    gap: 2px;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-requester-label {
    color: #667085;
    font-size: 10px;
    font-weight: 700;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-requester-copy strong {
    color: #344054;
    font-size: 12px;
    line-height: 1.4;
    overflow-wrap: anywhere;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-card-preferences {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
    gap: 9px;
    margin-bottom: 16px;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-preference {
    min-width: 0;
    padding: 10px 11px;
    border: 1px solid #eaecf0;
    border-radius: 8px;
    background: #ffffff;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-preference.is-enabled {
    background: #f6fef9;
    border-color: #d1fadf;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-preference.is-disabled {
    background: #f9fafb;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-preference-label {
    display: block;
    margin-bottom: 3px;
    color: #667085;
    font-size: 8px;
    font-weight: 700;
    text-transform: uppercase;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-preference-value {
    display: block;
    font-size: 10px;
    line-height: 1.4;
    overflow-wrap: anywhere;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-card-status-context {
    display: flex;
    align-items: flex-start;
    gap: 8px;
    margin-bottom: 16px;
    color: #667085;
    font-size: 14px;
    line-height: 1.55;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-card-status-dot {
    flex: 0 0 auto;
    width: 7px;
    height: 7px;
    margin-top: 4px;
    border-radius: 999px;
    background: #98a2b3;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-card-status-dot.cpp-prayer-status-praying {
    background: #7f56d9;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-card-status-dot.cpp-prayer-status-pastoral_follow_up {
    background: #f79009;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-card-status-dot.cpp-prayer-status-submitted {
    background: #667085;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-card-activity {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-bottom: 16px;
    padding: 11px 12px;
    border-radius: 9px;
    background:
        rgba(107, 63, 196, 0.045);
}

.cpp-prayer-team-page-layout .cpp-prayer-team-card-activity-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 30px;
    height: 30px;
    border-radius: 8px;
    background:
        rgba(107, 63, 196, 0.09);
}

.cpp-prayer-team-page-layout .cpp-prayer-team-card-activity-copy {
    display: flex;
    flex-direction: column;
    min-width: 0;
    gap: 2px;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-card-activity-copy strong {
    font-size: 14px;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-card-activity-copy span {
    color: #667085;
    font-size: 12px;
    line-height: 1.45;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-card-actions {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-top: auto;
    padding-top: 14px;
    border-top: 1px solid #eaecf0;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-card-view-placeholder {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    color: #6B3FC4;
    font-size: 11px;
    font-weight: 700;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-pray-placeholder {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 34px;
    padding: 7px 10px;
    border: 1px solid #eaecf0;
    border-radius: 8px;
    background: #f9fafb;
    color: #98a2b3;
    font-size: 10px;
    font-weight: 700;
    cursor: default;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-card.cpp-prayer-team-status-praying {
    border-color:
        rgba(127, 86, 217, 0.20);
}

.cpp-prayer-team-page-layout .cpp-prayer-team-card.cpp-prayer-team-status-pastoral_follow_up {
    border-color:
        rgba(247, 144, 9, 0.22);
}

.cpp-prayer-team-page-layout .cpp-prayer-team-card.cpp-prayer-privacy-leader_only {
    border-left:
        3px solid #7f56d9;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-card.cpp-prayer-privacy-anonymous {
    border-left:
        3px solid #6172f3;
}

@media (max-width: 767px) {

    .cpp-prayer-team-page-layout .cpp-prayer-team-card-topline {
        flex-direction: column;
        align-items: flex-start;
    }

    .cpp-prayer-team-page-layout .cpp-prayer-team-card-preferences {
        grid-template-columns: 1fr;
    }

    .cpp-prayer-team-page-layout .cpp-prayer-team-card-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .cpp-prayer-team-page-layout .cpp-prayer-team-card-view-placeholder,
    .cpp-prayer-team-page-layout .cpp-prayer-team-pray-placeholder {
        width: 100%;
        box-sizing: border-box;
    }

    .cpp-prayer-team-page-layout .cpp-prayer-team-pray-placeholder {
        justify-content: center;
    }

}

.cpp-prayer-team-page-layout .cpp-prayer-team-requester.is-anonymous {
    background: #f2f4f7;
}


.cpp-prayer-team-page-layout .cpp-prayer-team-requester.is-anonymous
.cpp-prayer-team-requester-icon {
    background: #eaecf0;
}


.cpp-prayer-team-page-layout .cpp-prayer-team-requester-copy small {
    color: #667085;

    font-size: 9px;
    line-height: 1.45;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-card-view-link {
        display: inline-flex;
    min-height: 38px;
    align-items: center;
    justify-content: center;
    padding: 8px 13px;
    border: 1px solid #dbe7ff;
    border-radius: 10px;
    background: var(--cpp-primary-soft, #eef4ff);
    color: var(--cpp-primary, #1d4ed8);
    text-decoration: none;
    font-size: 12px;
    font-weight: 700;
    white-space: nowrap;
    transition: background-color .18s ease, border-color .18s ease, transform .18s ease;
}


.cpp-prayer-team-page-layout .cpp-prayer-team-card-view-link:hover {
    text-decoration: none;
    border-color: #c8d9ff;
    background: #ffffff;
    color: var(--cpp-primary, #1d4ed8);
    transform: translateY(-1px);
}


.cpp-prayer-team-page-layout .cpp-prayer-team-card-view-link:focus-visible {
    outline: 2px solid #6B3FC4;
    outline-offset: 3px;

    border-radius: 4px;
}

/* =========================================================
   Prayer Team — Request Detail
   ========================================================= */

.cpp-dashboard .cpp-prayer-team-detail-page-layout {
    width: 100%;
    max-width: 100%;
    margin: 0 auto;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-back {
    margin-bottom: 18px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-back a {
        display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    color: rgb(255, 255, 255);
    font-size: 14px;
    font-weight: 700;
    box-shadow: rgba(29, 78, 216, 0.2) 0px 8px 18px;
    padding: 10px 17px;
    border-width: 1px;
    border-style: solid;
    border-color: transparent;
    border-image: none;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    text-decoration: none;
    transition: transform 0.18s, box-shadow 0.18s;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-back a:hover {
        color: rgb(255, 255, 255);
    transform: translateY(-2px);
    box-shadow: rgba(29, 78, 216, 0.26) 0px 12px 24px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-card {
    padding: 30px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 20px;
    margin-bottom: 20px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-heading {
    min-width: 0;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-flags {
    display: flex;
    flex-wrap: wrap;
    gap: 6px;
    margin-bottom: 9px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-heading h2 {
    margin: 0;
    overflow-wrap: anywhere;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-submitted {
    margin: 7px 0 0;
    color: #172033;
    font-size: 12px;
}

/* Requester */

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-requester {
    display: flex;
    align-items: center;
    gap: 11px;
    margin-bottom: 20px;
    padding: 13px;
    border-radius: 10px;
        background: #fff;
    border: 1px solid #BE4CFF;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-requester.is-anonymous {
    background: #f2f4f7;
}


.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-requester-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 36px;
    height: 36px;
    border-radius: 9px;
    background: #6d28d9;
    color: #fff;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-requester-icon svg {
    width: 17px;
    height: 17px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-requester-label {
    display: block;
        margin-bottom: 0;
    color: #344054;
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-requester strong {
    display: block;
    font-size: 14px;
    color: #344054;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-requester p {
    margin: 3px 0 0;
    color: #667085;
    font-size: 9px;
}

/* Status */

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-status {
    margin-bottom: 26px;
    padding: 15px 17px;
    border-radius: 10px;
    background: #f9fafb;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-status strong {
    display: block;
    margin-bottom: 4px;
    font-size: 11px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-status p {
    margin: 0;
    color: #667085;
    font-size: 11px;
    line-height: 1.6;
}

/* Full Request */

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-content {
    margin-bottom: 30px;
    padding-bottom: 28px;
    border-bottom: 1px solid #eaecf0;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-content h3 {
    margin: 0 0 22px;
    color: var(--cpp-text-heading);
    font-size: 20px;
    font-weight: 740;
    letter-spacing: -.025em;
    line-height: 1.3;
}
.cpp-prayer-team-detail-page-layout  #cpp-prayer-team-detail-request-title {
    margin: 0 0 22px;
    color: var(--cpp-text-heading);
    font-size: 28px;
    font-weight: 740;
    letter-spacing: -.025em;
    line-height: 1.3;
}
.cpp-prayer-team-detail-header .cpp-prayer-urgency-badge {
        color: #f79009;
    font-size: 12px;
    font-weight: 600;
    background: #fffaf5;
    border: 1px solid #fedf89;
    padding: 4px 10px;
    border-radius: 8px;
}
.cpp-prayer-team-detail-header .cpp-prayer-status-submitted {
        color: #3538cd;
    font-size: 12px;
    font-weight: 600;
    background: #eef4ff;
    border: 1px solid #c8d9ff;
    padding: 4px 10px;
    border-radius: 8px;
}
.cpp-prayer-team-detail-header .cpp-prayer-privacy-standard {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 4px 8px;
    border-radius: 999px;
    background: #f2f4f7;
    color: #475467;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
}
.cpp-prayer-team-detail-header .cpp-prayer-privacy-anonymous {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 4px 8px;
    border-radius: 999px;
    background: #eef4ff;
    color: #3538cd;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
}
.cpp-prayer-team-detail-header .cpp-prayer-privacy-leader_only {
    display: inline-flex;
    align-items: center;
    min-height: 24px;
    padding: 4px 8px;
    border-radius: 999px;
    background: #f4f3ff;
    color: #5925dc;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
}
.cpp-prayer-team-detail-page-layout #cpp-prayer-team-detail-info-title,
.cpp-prayer-team-detail-page-layout #cpp-prayer-team-detail-activity-title {
    margin: 0 0 22px;
    color: var(--cpp-text-heading);
    font-size: 20px;
    font-weight: 740;
    letter-spacing: -.025em;
    line-height: 1.3;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-copy {
    color: #344054;
    font-size: 16px;
    line-height: 1.8;
    overflow-wrap: anywhere;
}

/* Request Details */

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-information {
    margin-bottom: 28px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-information .cpp-widget-heading h3 { margin: 0 0 10px!important; }

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-info-grid {
    display: grid;
    grid-template-columns:
        repeat(3, minmax(0, 1fr));
    gap: 11px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-info-item {
    min-width: 0;
    padding: 13px;
    border: 1px solid #eaecf0;
    border-radius: 9px;
    background: #6d28d9;
    color: #fff;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-info-label {
    display: block;
    margin-bottom: 4px;
    color: #fff;
    font-size: 12px;
    font-weight: 500;
    letter-spacing: 0.05em;
    text-transform: uppercase;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-info-value {
    display: block;
    font-size: 14px;
    line-height: 1.45;
    overflow-wrap: anywhere;
}

/* Privacy */

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-privacy {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    margin-bottom: 28px;
    padding: 17px;
    border:
        1px solid
        rgba(107, 63, 196, 0.16);
    border-radius: 10px;
    background:
        rgba(107, 63, 196, 0.045);
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-privacy-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 36px;
    height: 36px;
    border-radius: 9px;
    background:
        rgba(107, 63, 196, 0.10);
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-privacy-icon svg {
    width: 17px;
    height: 17px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-privacy h3 {
    margin: 0 0 4px;
    font-size: 13px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-privacy strong {
    display: block;
    margin-bottom: 4px;
    font-size: 11px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-privacy p {
    margin: 0;
    color: #667085;
    font-size: 10px;
    line-height: 1.6;
}


/* Activity */

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-activity {
    margin-bottom: 22px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-activity-placeholder {
    display: flex;
    align-items: flex-start;
    gap: 11px;
    padding: 15px;
    border: 1px solid #eaecf0;
    border-radius: 10px;
    background: #f9fafb;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-activity-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 33px;
    height: 33px;
    border-radius: 8px;
    background:
        rgba(107, 63, 196, 0.08);
}


.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-activity-placeholder strong {
    display: block;
    margin-bottom: 3px;
    font-size: 11px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-activity-placeholder p {
    margin: 0;
    color: #667085;
    font-size: 10px;
    line-height: 1.55;
}

/* Future Actions */

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-actions {
    display: flex;
    justify-content: flex-end;
    padding-top: 18px;
    border-top: 1px solid #eaecf0;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-actions form button {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    color: rgb(255, 255, 255);
    font-size: 14px;
    font-weight: 700;
    box-shadow: rgba(29, 78, 216, 0.2) 0px 8px 18px;
    padding: 10px 17px;
    border-width: 1px;
    border-style: solid;
    border-color: transparent;
    border-image: none;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    text-decoration: none;
    transition: transform 0.18s, box-shadow 0.18s;
}
.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-actions form button:hover,
.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-actions form button:focus {
        color: rgb(255, 255, 255);
    transform: translateY(-2px);
    box-shadow: rgba(29, 78, 216, 0.26) 0px 12px 24px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-actions .cpp-prayer-team-prayed-state {
        display: inline-flex;
    min-height: 38px;
    align-items: center;
    justify-content: center;
    color: var(--cpp-primary, #1d4ed8);
    font-size: 14px;
    font-weight: 700;
    padding: 8px 13px;
    border-width: 1px;
    border-style: solid;
    border-color: rgb(219, 231, 255);
    border-image: none;
    border-radius: 10px;
    background: var(--cpp-primary-soft, #eef4ff);
    text-decoration: none;
    white-space: nowrap;
    transition: background-color 0.18s, border-color 0.18s, transform 0.18s;
}

/* Unavailable */

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-unavailable {
    display: flex;
    flex-direction: column;
    align-items: center;
    padding: 44px 26px;
    text-align: center;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-unavailable h2 {
    margin: 0 0 8px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-unavailable p {
    max-width: 520px;
    margin: 0 0 20px;
    color: #667085;
    line-height: 1.6;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-unavailable .cpp-primary-button {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    color: rgb(255, 255, 255);
    font-size: 14px;
    font-weight: 700;
    box-shadow: rgba(29, 78, 216, 0.2) 0px 8px 18px;
    padding: 10px 17px;
    border-width: 1px;
    border-style: solid;
    border-color: transparent;
    border-image: none;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    text-decoration: none;
    transition: transform 0.18s, box-shadow 0.18s;
}
.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-unavailable .cpp-primary-button:hover {
        color: rgb(255, 255, 255);
    transform: translateY(-2px);
    box-shadow: rgba(29, 78, 216, 0.26) 0px 12px 24px;
}

@media (max-width: 767px) {

    .cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-card {
        padding: 20px;
    }

    .cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-header {
        flex-direction: column;
    }

    .cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-info-grid {
        grid-template-columns: 1fr;
    }

    .cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-privacy {
        padding: 14px;
    }

    .cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-activity-placeholder {
        padding: 13px;
    }

    .cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-actions {
        justify-content: stretch;
    }

    .cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-actions
    .cpp-prayer-team-pray-placeholder {
        width: 100%;
    }

}

/* =========================================================
   Prayer Team — Filters
   ========================================================= */
.cpp-dashboard .cpp-prayer-team-page-layout {
        width: 100%;
    max-width: 100%;
    margin: 0 auto;
}   

.cpp-prayer-team-page-layout .cpp-prayer-team-filters {
    padding: 18px;
    border: 1px solid #eaecf0;
    border-radius: 12px;
    background: #f9fafb;
    margin-bottom: 20px;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-filter-grid {
    display: grid;
    grid-template-columns:
        repeat(3, minmax(0, 1fr));
    gap: 14px;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-filter-field {
    min-width: 0;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-filter-field label {
    display: block;
    margin-bottom: 6px;
    color: #344054;
    font-size: 14px;
    font-weight: 700;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-filter-field select {
    width: 100%;
    min-height: 42px;
    padding: 9px 11px;
    border: 1px solid #d0d5dd;
    border-radius: 8px;
    background: #ffffff;
    color: #344054;
    font: inherit;
    font-size: 14px;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-filter-field select:focus {
    outline: none;
    border-color: #6B3FC4;
    box-shadow:
        0 0 0 3px
        rgba(107, 63, 196, 0.10);
}

.cpp-prayer-team-page-layout .cpp-prayer-team-filter-actions {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-top: 14px;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-filter-actions .cpp-primary-button {
   display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    color: rgb(255, 255, 255);
    font-size: 14px;
    font-weight: 700;
    box-shadow: rgba(29, 78, 216, 0.2) 0px 8px 18px;
    padding: 10px 17px;
    border-width: 1px;
    border-style: solid;
    border-color: transparent;
    border-image: none;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    text-decoration: none;
    transition: transform 0.18s, box-shadow 0.18s; 
}
.cpp-prayer-team-page-layout .cpp-prayer-team-filter-actions .cpp-primary-button:hover {
        color: rgb(255, 255, 255);
    transform: translateY(-2px);
    box-shadow: rgba(29, 78, 216, 0.26) 0px 12px 24px;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-filter-reset {
    color: #667085;
    font-size: 11px;
    font-weight: 600;
    text-decoration: none;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-filter-reset:hover {
    color: #6B3FC4;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-results-summary {
    margin: -4px 0 0;
    color: #667085;
    font-size: 14px;
}

/* =========================================================
   Prayer Team — Pagination
   ========================================================= */

.cpp-prayer-team-page-layout .cpp-prayer-team-pagination {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 9px;
    padding-top: 10px;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-pagination-inner {
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
    gap: 6px;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-pagination-link,
.cpp-prayer-team-page-layout .cpp-prayer-team-pagination-page {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    border: 1px solid #d0d5dd;
    border-radius: 8px;
    background: #ffffff;
    color: #475467;
    text-decoration: none;
    font-size: 10px;
    font-weight: 700;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-pagination-link {
    padding: 8px 11px;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-pagination-page {
    min-width: 38px;
    padding: 8px;
}

.cpp-prayer-team-page-layout a.cpp-prayer-team-pagination-link:hover,
.cpp-prayer-team-page-layout a.cpp-prayer-team-pagination-page:hover {
    border-color: #6B3FC4;
    background: #6B3FC4;
    color: #fff;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-pagination-page.is-current {
    border-color: #6B3FC4;
    background: #6B3FC4;
    color: #fff;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-pagination-link.is-disabled {
    opacity: 0.45;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-pagination-ellipsis {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 24px;
    color: #98a2b3;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-pagination-summary {
    margin: 0;
    color: #667085;
    font-size: 9px;
}

@media (max-width: 767px) {

    .cpp-prayer-team-page-layout .cpp-prayer-team-filter-grid {
        grid-template-columns: 1fr;
    }

    .cpp-prayer-team-page-layout .cpp-prayer-team-filter-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .cpp-prayer-team-page-layout .cpp-prayer-team-filter-actions
    .cpp-primary-button {
        width: 100%;
    }

    .cpp-prayer-team-page-layout .cpp-prayer-team-filter-reset {
        text-align: center;
    }

    .cpp-prayer-team-page-layout .cpp-prayer-team-pagination-inner {
        width: 100%;
    }

    .cpp-prayer-team-page-layout .cpp-prayer-team-pagination-pages {
        display: flex;
        align-items: center;
        justify-content: center;
        flex-wrap: wrap;
        order: 3;
        width: 100%;
    }

}

/* =========================================================
   STEP 5J — PRAYER TEAM RESPONSIVE POLISH
   ========================================================= */


/* ---------------------------------------------------------
   Base width protection
   --------------------------------------------------------- */

.cpp-dashboard .cpp-prayer-team-page-layout,
.cpp-dashboard .cpp-prayer-team-detail-page-layout {
    width: 100%;
    min-width: 0;
}
.cpp-dashboard .cpp-prayer-team-detail-page-layout .cpp-prayer-action-notice-success {
    margin-bottom: 18px;
    padding: 13px 15px;
    border: 1px solid transparent;
    border-radius: 10px;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.55;
    overflow-wrap: anywhere;
    border-color: #abefc6;
    background: #ecfdf3;
    color: #067647;
}

/* ---------------------------------------------------------
   Large desktop
   --------------------------------------------------------- */

@media (min-width: 1200px) {

    .cpp-prayer-team-page-layout .cpp-prayer-team-summary {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
    }

    .cpp-prayer-team-page-layout .cpp-prayer-team-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-info-grid {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
    }

}


/* ---------------------------------------------------------
   Tablet / small desktop
   --------------------------------------------------------- */

@media (max-width: 1024px) {

    .cpp-prayer-team-page-layout .cpp-prayer-team-summary {
        grid-template-columns:
            repeat(3, minmax(0, 1fr));
        gap: 12px;
    }

    .cpp-prayer-team-page-layout .cpp-prayer-team-summary-card {
        padding: 16px;
    }

    .cpp-prayer-team-page-layout .cpp-prayer-team-summary-value {
        font-size: 24px;
    }

    .cpp-prayer-team-page-layout .cpp-prayer-team-grid {
        grid-template-columns: 1fr;
    }

    .cpp-prayer-team-page-layout .cpp-prayer-team-filter-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

   .cpp-prayer-team-page-layout  .cpp-prayer-team-filter-field:last-child {
        grid-column: 1 / -1;
    }

    .cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-info-grid {
        grid-template-columns:
            repeat(2, minmax(0, 1fr));
    }

    .cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-card {
        padding: 26px;
    }

}


/* ---------------------------------------------------------
   Main mobile breakpoint
   --------------------------------------------------------- */

@media (max-width: 767px) {

    /* ---------------------------------------------
       Summary
       --------------------------------------------- */

    .cpp-prayer-team-page-layout .cpp-prayer-team-summary {
        grid-template-columns: 1fr;
        gap: 12px;
        margin-bottom: 22px;
    }

    .cpp-prayer-team-page-layout .cpp-prayer-team-summary-card {
        align-items: center;
        padding: 16px;
    }

    .cpp-prayer-team-page-layout .cpp-prayer-team-summary-icon {
        width: 40px;
        height: 40px;
    }

    .cpp-prayer-team-page-layout .cpp-prayer-team-summary-value {
        font-size: 23px;
    }

    /* ---------------------------------------------
       Filters
       --------------------------------------------- */

    .cpp-prayer-team-page-layout .cpp-prayer-team-filters {
        padding: 15px;
    }

    .cpp-prayer-team-page-layout .cpp-prayer-team-filter-grid {
        grid-template-columns: 1fr;
        gap: 12px;
    }

    .cpp-prayer-team-page-layout .cpp-prayer-team-filter-field:last-child {
        grid-column: auto;
    }

    .cpp-prayer-team-page-layout .cpp-prayer-team-filter-field select {
        min-height: 44px;
    }

    .cpp-prayer-team-page-layout .cpp-prayer-team-filter-actions {
        flex-direction: column;
        align-items: stretch;
        gap: 9px;
    }

    .cpp-prayer-team-page-layout .cpp-prayer-team-filter-actions
    .cpp-prayer-team-page-layout .cpp-prayer-team-filter-actions .cpp-primary-button {
        width: 100%;
    }

    .cpp-prayer-team-page-layout .cpp-prayer-team-filter-reset {
        text-align: center;
    }

    /* ---------------------------------------------
       Queue
       --------------------------------------------- */

    .cpp-prayer-team-page-layout .cpp-prayer-team-grid {
        grid-template-columns: 1fr;
        gap: 14px;
    }

    .cpp-prayer-team-page-layout .cpp-prayer-team-card {
        padding: 18px;
    }

    .cpp-prayer-team-page-layout .cpp-prayer-team-card-topline {
        flex-direction: column;
        align-items: flex-start;
        gap: 9px;
    }

    .cpp-prayer-team-page-layout .cpp-prayer-team-card-flags {
        width: 100%;
    }

    .cpp-prayer-team-page-layout .cpp-prayer-team-card-title {
        font-size: 16px;
    }

    .cpp-prayer-team-page-layout .cpp-prayer-team-card-excerpt {
        font-size: 12px;
    }

    /* ---------------------------------------------
       Requester
       --------------------------------------------- */

    .cpp-prayer-team-page-layout .cpp-prayer-team-requester {
        align-items: flex-start;
        padding: 10px;
    }

    .cpp-prayer-team-page-layout .cpp-prayer-team-requester-icon {
        width: 30px;
        height: 30px;
    }

    /* ---------------------------------------------
       Card metadata
       --------------------------------------------- */

    .cpp-prayer-team-page-layout .cpp-prayer-team-card-meta {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    .cpp-prayer-team-page-layout .cpp-prayer-team-card-meta-item {
        padding: 10px 11px;
    }

    /* ---------------------------------------------
       Preferences
       --------------------------------------------- */

    .cpp-prayer-team-page-layout .cpp-prayer-team-card-preferences {
        grid-template-columns: 1fr;
        gap: 8px;
    }

    /* ---------------------------------------------
       Activity
       --------------------------------------------- */

    .cpp-prayer-team-page-layout .cpp-prayer-team-card-activity {
        align-items: flex-start;
        padding: 10px;
    }

    /* ---------------------------------------------
       Actions
       --------------------------------------------- */

    .cpp-prayer-team-page-layout .cpp-prayer-team-card-actions {
        flex-direction: column;
        align-items: stretch;
        gap: 10px;
    }

    .cpp-prayer-team-page-layout .cpp-prayer-team-card-view-link,
    .cpp-prayer-team-page-layout .cpp-prayer-team-card-view-placeholder,
    .cpp-prayer-team-page-layout .cpp-prayer-team-pray-placeholder {
        width: 100%;
        box-sizing: border-box;
    }

    .cpp-prayer-team-page-layout .cpp-prayer-team-card-view-link {
        justify-content: flex-start;
    }

    .cpp-prayer-team-page-layout .cpp-prayer-team-pray-placeholder {
        justify-content: center;
    }

    /* ---------------------------------------------
       Pagination
       --------------------------------------------- */

    .cpp-prayer-team-page-layout .cpp-prayer-team-pagination-inner {
        width: 100%;
    }

    .cpp-prayer-team-page-layout .cpp-prayer-team-pagination-pages {
        display: flex;
        align-items: center;
        justify-content: center;
        flex-wrap: wrap;
        order: 3;
        width: 100%;
        gap: 8px;
    }

    .cpp-prayer-team-page-layout .cpp-prayer-team-pagination-link {
        flex: 1 1 auto;
    }

    /* ---------------------------------------------
       Empty states
       --------------------------------------------- */

    .cpp-prayer-team-page-layout .cpp-prayer-team-empty {
        padding: 32px 18px;
    }

    .cpp-prayer-team-page-layout .cpp-prayer-team-empty
    .cpp-primary-button {
        width: 100%;
    }

    /* ---------------------------------------------
       Detail page
       --------------------------------------------- */

     .cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-back {
        margin-bottom: 14px;
    }

     .cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-card {
        padding: 20px;
    }

    .cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-header {
        flex-direction: column;
        align-items: flex-start;
        gap: 12px;
    }

    .cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-heading h2 {
        font-size: 21px;
    }

    .cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-requester {
        align-items: flex-start;
    }

    .cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-status {
        padding: 13px;
    }

    .cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-content {
        margin-bottom: 24px;
        padding-bottom: 22px;
    }

    .cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-copy {
        font-size: 13px;
        line-height: 1.75;
    }

    .cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-info-grid {
        grid-template-columns: 1fr;

        gap: 8px;
    }

    .cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-privacy {
        padding: 14px;
    }

    .cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-activity-placeholder {
        padding: 13px;
    }

    .cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-actions {
        justify-content: stretch;
    }

    .cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-actions
    .cpp-prayer-team-pray-placeholder {
        width: 100%;
    }

}


/* ---------------------------------------------------------
   Small phones
   --------------------------------------------------------- */

@media (max-width: 480px) {

    .cpp-prayer-team-page-layout .cpp-prayer-team-summary-card,
    .cpp-prayer-team-page-layout .cpp-prayer-team-card,
    .cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-card {
        padding: 15px;
    }

    .cpp-prayer-team-page-layout .cpp-prayer-team-card-title {
        font-size: 15px;
    }

    .cpp-prayer-team-page-layout .cpp-prayer-team-card-date,
    .cpp-prayer-team-page-layout .cpp-prayer-team-card-note,
    .cpp-prayer-team-page-layout .cpp-prayer-team-card-status-context {
        font-size: 9px;
    }

    .cpp-dashboard .cpp-prayer-team-privacy-badge,
    .cpp-dashboard .cpp-prayer-status-badge,
    .cpp-dashboard .cpp-prayer-urgency-badge {
        white-space: normal;
    }

    .cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-heading h2 {
        font-size: 19px;
    }

    .cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-status,
    .cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-privacy,
    .cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-activity-placeholder {
        padding: 11px;
    }

    .cpp-prayer-team-page-layout .cpp-prayer-team-pagination-page {
        min-width: 34px;
        height: 36px;
    }

    .cpp-prayer-team-page-layout .cpp-prayer-team-pagination-ellipsis {
        width: 18px;
    }

}


/* ---------------------------------------------------------
   Long-content protection
   --------------------------------------------------------- */

.cpp-prayer-team-page-layout .cpp-prayer-team-card-title,
.cpp-prayer-team-page-layout .cpp-prayer-team-card-excerpt,
.cpp-prayer-team-page-layout .cpp-prayer-team-requester-copy strong,
.cpp-prayer-team-page-layout .cpp-prayer-team-card-meta-item strong,
.cpp-prayer-team-page-layout .cpp-prayer-team-preference-value,
.cpp-prayer-team-page-layout .cpp-prayer-team-card-status-context,
.cpp-prayer-team-page-layout .cpp-prayer-team-card-activity-copy span,
.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-heading h2,
.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-copy,
.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-info-value,
.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-requester strong,
.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-requester p,
.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-status p,
.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-privacy p {
    overflow-wrap: anywhere;
    word-break: normal;
}


/* ---------------------------------------------------------
   Control width safety
   --------------------------------------------------------- */

.cpp-prayer-team-page-layout .cpp-prayer-team-filter-field select,
.cpp-prayer-team-page-layout .cpp-prayer-team-filter-actions .cpp-primary-button,
.cpp-prayer-team-page-layout .cpp-prayer-team-card-view-link,
.cpp-prayer-team-page-layout .cpp-prayer-team-pray-placeholder,
.cpp-prayer-team-page-layout .cpp-prayer-team-pagination-link,
.cpp-prayer-team-page-layout .cpp-prayer-team-pagination-page,
.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-actions .cpp-prayer-team-pray-placeholder {
    max-width: 100%;
    box-sizing: border-box;
}


/* ---------------------------------------------------------
   Touch targets
   --------------------------------------------------------- */

@media (pointer: coarse) {

    .cpp-prayer-team-page-layout .cpp-prayer-team-filter-field select,
    .cpp-prayer-team-page-layout .cpp-prayer-team-filter-actions .cpp-primary-button,
    .cpp-prayer-team-page-layout .cpp-prayer-team-card-view-link,
    .cpp-prayer-team-page-layout .cpp-prayer-team-pagination-link,
    .cpp-prayer-team-page-layout .cpp-prayer-team-pagination-page {
        min-height: 44px;
    }

}


/* ---------------------------------------------------------
   Keyboard focus
   --------------------------------------------------------- */

.cpp-prayer-team-page-layout .cpp-prayer-team-card-view-link:focus-visible,
.cpp-prayer-team-page-layout .cpp-prayer-team-detail-back a:focus-visible,
.cpp-prayer-team-page-layout .cpp-prayer-team-filter-field select:focus-visible,
.cpp-prayer-team-page-layout .cpp-prayer-team-filter-actions button:focus-visible,
.cpp-prayer-team-page-layout .cpp-prayer-team-filter-reset:focus-visible,
.cpp-prayer-team-page-layout .cpp-prayer-team-pagination-link:focus-visible,
.cpp-prayer-team-page-layout .cpp-prayer-team-pagination-page:focus-visible {
    outline: 2px solid #6B3FC4;
    outline-offset: 3px;

    border-radius: 4px;
}


/* ---------------------------------------------------------
   Reduced motion
   --------------------------------------------------------- */

@media (prefers-reduced-motion: reduce) {

    .cpp-prayer-team-page-layout .cpp-prayer-team-card,
    .cpp-prayer-team-page-layout .cpp-prayer-team-pagination-link,
    .cpp-prayer-team-page-layout .cpp-prayer-team-pagination-page,
    .cpp-prayer-team-page-layout .cpp-prayer-team-card-view-link {
        transition: none;
    }

}

/* =========================================================
   Step 6 — I Prayed
   ========================================================= */

.cpp-prayer-team-page-layout .cpp-prayer-team-pray-form {
    margin: 0;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-pray-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-prayed-state {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 9px 14px;
    border: 1px solid #abefc6;
    border-radius: 8px;
    background: #ecfdf3;
    color: #067647;
    font-size: 11px;
    font-weight: 700;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-pray-unavailable {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 40px;
    padding: 9px 14px;
    border: 1px solid #eaecf0;
    border-radius: 8px;
    background: #f9fafb;
    color: #98a2b3;
    font-size: 10px;
    font-weight: 600;
}

.cpp-prayer-team-page-layout .cpp-prayer-action-notice {
    margin-bottom: 18px;
    padding: 13px 15px;
    border: 1px solid transparent;
    border-radius: 10px;
    font-size: 11px;
    line-height: 1.55;
}

.cpp-prayer-team-page-layout .cpp-prayer-action-notice-success {
    border-color: #abefc6;
    background: #ecfdf3;
    color: #067647;
}

.cpp-prayer-team-page-layout .cpp-prayer-action-notice-info {
    border-color: #b2ccff;
    background: #eff4ff;
    color: #3538cd;
}

.cpp-prayer-team-page-layout .cpp-prayer-action-notice-error {
    border-color: #fecdca;
    background: #fef3f2;
    color: #b42318;
}

@media (max-width: 767px) {

    .cpp-prayer-team-page-layout .cpp-prayer-team-pray-form {
        width: 100%;
    }

    .cpp-prayer-team-page-layout .cpp-prayer-team-pray-button,
    .cpp-prayer-team-page-layout .cpp-prayer-team-prayed-state,
    .cpp-prayer-team-page-layout .cpp-prayer-team-pray-unavailable {
        width: 100%;
        box-sizing: border-box;
    }

}

/* =========================================================
   Step 6J — Member Prayer Activity Timeline
   ========================================================= */
.cpp-my-prayer-detail-activity .cpp-widget-heading h3 {
    margin: 0 0 14px;
    color: var(--cpp-text-heading);
    font-size: 20px;
    font-weight: 740;
    letter-spacing: -.025em;
    line-height: 1.3;
}
.cpp-my-prayer-detail-activity .cpp-my-prayer-detail-prayer-summary {
        display: flex;
    gap: 10px;
    font-size: 14px;
}
.cpp-my-prayer-detail-activity .cpp-my-prayer-activity-timeline {
    position: relative;
    display: flex;
    flex-direction: column;
    gap: 0;
    margin-top: 18px;
}

.cpp-my-prayer-detail-activity .cpp-my-prayer-activity-item {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 14px 15px;
    border: 1px solid #ced4da;
    border-radius: 10px;
    background: #fff;
}

.cpp-my-prayer-detail-activity .cpp-my-prayer-activity-item:not(:last-child) {
    border-bottom: 1px solid #eaecf0;
}

.cpp-my-prayer-detail-activity .cpp-my-prayer-activity-item-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 34px;
    height: 34px;
    border-radius: 9px;
    background:
        rgba(107, 63, 196, 0.09);
    font-size: 15px;
}

.cpp-my-prayer-detail-activity .cpp-my-prayer-activity-item-copy {
    display: flex;
    flex-direction: column;
    min-width: 0;
    gap: 4px;
}

.cpp-my-prayer-detail-activity .cpp-my-prayer-activity-item-copy strong {
    color: #344054;
    font-size: 13px;
    line-height: 1.55;
    overflow-wrap: anywhere;
}

.cpp-my-prayer-detail-activity .cpp-my-prayer-activity-item-copy time {
    color: #667085;
    font-size: 12px;
    line-height: 1.4;
}

.cpp-my-prayer-detail-activity .cpp-my-prayer-activity-empty {
    margin-top: 16px;
    padding: 13px 15px;
    border-radius: 9px;
    background: #f9fafb;
}

.cpp-my-prayer-detail-activity .cpp-my-prayer-activity-empty p {
    margin: 0;
    color: #667085;
    font-size: 10px;
    line-height: 1.6;
}

@media (max-width: 767px) {

    .cpp-my-prayer-detail-activity .cpp-my-prayer-activity-item {
        gap: 10px;
        padding: 12px 15px;
    }

    .cpp-my-prayer-detail-activity .cpp-my-prayer-activity-item-icon {
        width: 31px;
        height: 31px;
    }

    .cpp-my-prayer-detail-activity .cpp-my-prayer-activity-item-copy strong {
        font-size: 12px;
    }

}

/* =========================================================
   STEP 6L — I PRAYED UX POLISH
   ========================================================= */


/* ---------------------------------------------------------
   Prayer action area
   --------------------------------------------------------- */

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
    margin-top: 24px;
    padding-top: 20px;
    border-top: 1px solid #eaecf0;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-pray-form {
    margin: 0;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-pray-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 8px;
    min-height: 44px;
    padding: 10px 18px;
    cursor: pointer;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-pray-button span {
    line-height: 1;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-prayed-state {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 7px;
    min-height: 44px;
    padding: 10px 16px;
    border: 1px solid #abefc6;
    border-radius: 9px;
    background: #ecfdf3;
    color: #067647;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.35;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-pray-unavailable {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 10px 15px;
    border: 1px solid #eaecf0;
    border-radius: 9px;
    background: #f9fafb;
    color: #98a2b3;
    font-size: 10px;
    font-weight: 600;
    line-height: 1.4;
    cursor: default;
}

.cpp-prayer-team-page-layout .cpp-prayer-action-notice {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 18px;
    padding: 13px 15px;
    border: 1px solid transparent;
    border-radius: 10px;
    font-size: 11px;
    font-weight: 600;
    line-height: 1.55;
    overflow-wrap: anywhere;
}

.cpp-prayer-team-page-layout .cpp-prayer-action-notice-success {
    border-color: #abefc6;
    background: #ecfdf3;
    color: #067647;
}

.cpp-prayer-team-page-layout .cpp-prayer-action-notice-info {
    border-color: #b2ccff;
    background: #eff4ff;
    color: #3538cd;
}

.cpp-prayer-team-page-layout .cpp-prayer-action-notice-error {
    border-color: #fecdca;
    background: #fef3f2;
    color: #b42318;
}

.cpp-prayer-detail-page-layout .cpp-prayer-team-detail-activity-placeholder {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 15px;
    border: 1px solid #eaecf0;
    border-radius: 10px;
    background: #f9fafb;
}

.cpp-prayer-detail-page-layout .cpp-prayer-team-detail-activity-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 36px;
    height: 36px;
    border-radius: 9px;
    background:
        rgba(107, 63, 196, 0.09);
}

.cpp-prayer-detail-page-layout .cpp-prayer-team-detail-activity-placeholder strong {
    display: block;
    margin-bottom: 4px;
    color: #344054;
    font-size: 11px;
    line-height: 1.5;
}

.cpp-prayer-detail-page-layout .cpp-prayer-team-detail-activity-placeholder p {
    margin: 0;
    color: #667085;
    font-size: 10px;
    line-height: 1.55;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-card-activity {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    padding: 11px 12px;
    border-radius: 9px;
    background:
        rgba(107, 63, 196, 0.045);
}

.cpp-prayer-team-page-layout .cpp-prayer-team-card-activity-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 30px;
    height: 30px;
    border-radius: 8px;
    background:
        rgba(107, 63, 196, 0.09);
}

.cpp-prayer-team-page-layout .cpp-prayer-team-card-activity-copy {
    min-width: 0;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-card-activity-copy strong {
    display: block;
    margin-bottom: 0px;
    color: #344054;
    font-size: 14px;
    line-height: 1.4;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-card-activity-copy span {
    display: block;
    color: #667085;
    font-size: 12px;
    line-height: 1.5;
    overflow-wrap: anywhere;
}

.cpp-my-prayers-page-layout .cpp-my-prayer-card-prayer-count {
    display: flex;
    align-items: flex-start;
    gap: 10px;
    margin-top: 14px;
    padding: 12px;
    border: 1px solid
        rgba(107, 63, 196, 0.10);
    border-radius: 9px;
    background:
        rgba(107, 63, 196, 0.045);
}

.cpp-my-prayers-page-layout .cpp-my-prayer-card-prayer-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 31px;
    height: 31px;
    border-radius: 8px;
    background:
        rgba(107, 63, 196, 0.09);
    font-size: 14px;
}

.cpp-my-prayers-page-layout .cpp-my-prayer-card-prayer-count strong {
    display: block;
    color: #344054;
    font-size: 10px;
    line-height: 1.55;
    overflow-wrap: anywhere;
}

.cpp-my-prayers-page-layout .cpp-my-prayer-detail-prayer-summary {
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 15px;
    border: 1px solid
        rgba(107, 63, 196, 0.14);
    border-radius: 10px;
    background:
        rgba(107, 63, 196, 0.045);
}

.cpp-my-prayers-page-layout .cpp-my-prayer-detail-prayer-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 36px;
    height: 36px;
    border-radius: 9px;
    background:
        rgba(107, 63, 196, 0.10);
    font-size: 15px;
}

.cpp-my-prayers-page-layout .cpp-my-prayer-detail-prayer-summary strong {
    display: block;
    color: #344054;
    font-size: 11px;
    line-height: 1.55;
    overflow-wrap: anywhere;
}

.cpp-my-prayers-page-layout .cpp-my-prayer-activity-timeline {
    position: relative;
    display: flex;
    flex-direction: column;
    margin-top: 18px;
}

.cpp-my-prayers-page-layout .cpp-my-prayer-activity-item {
    position: relative;
    display: flex;
    align-items: flex-start;
    gap: 12px;
    padding: 14px 0;
}

.cpp-my-prayers-page-layout .cpp-my-prayer-activity-item:not(:last-child) {
    border-bottom: 1px solid #eaecf0;
}

.cpp-my-prayers-page-layout .cpp-my-prayer-activity-item-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    width: 34px;
    height: 34px;
    border-radius: 9px;
    background:
        rgba(107, 63, 196, 0.09);
    font-size: 15px;
}

.cpp-my-prayers-page-layout .cpp-my-prayer-activity-item-copy {
    min-width: 0;
}

.cpp-my-prayers-page-layout .cpp-my-prayer-activity-item-copy strong {
    display: block;
    margin-bottom: 4px;
    color: #344054;
    font-size: 11px;
    line-height: 1.55;
    overflow-wrap: anywhere;
}

.cpp-my-prayers-page-layout .cpp-my-prayer-activity-item-copy time {
    display: block;
    color: #667085;
    font-size: 9px;
    line-height: 1.4;
}

.cpp-my-prayers-page-layout .cpp-my-prayer-activity-empty {
    margin-top: 16px;
    padding: 13px 15px;
    border: 1px dashed #d0d5dd;
    border-radius: 9px;
    background: #f9fafb;
}

.cpp-my-prayers-page-layout .cpp-my-prayer-activity-empty p {
    margin: 0;
    color: #667085;
    font-size: 10px;
    line-height: 1.6;
}

@media (max-width: 1024px) {

    .cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-actions {
        gap: 10px;
    }

    .cpp-my-prayers-page-layout .cpp-my-prayer-activity-item {
        gap: 10px;
    }

}

@media (max-width: 767px) {

    /* Prayer Team action */

    .cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-actions {
        flex-direction: column;
        align-items: stretch;
        gap: 9px;
    }

    .cpp-prayer-team-page-layout .cpp-prayer-team-pray-form {
        width: 100%;
    }

    .cpp-prayer-team-page-layout .cpp-prayer-team-page-layout .cpp-prayer-team-pray-button,
    .cpp-prayer-team-page-layout .cpp-prayer-team-prayed-state,
    .cpp-prayer-team-page-layout .cpp-prayer-team-pray-unavailable {
        width: 100%;
        box-sizing: border-box;
    }

    /* Prayer Team activity */

    .cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-activity-placeholder,
    .cpp-prayer-team-card-activity {
        align-items: flex-start;
    }

    /* Member card */

    .cpp-my-prayers-page-layout .cpp-my-prayer-card-prayer-count {
        align-items: flex-start;
    }

    /* Member detail */

    .cpp-my-prayers-page-layout .cpp-my-prayer-detail-prayer-summary {
        align-items: flex-start;
    }

    .cpp-my-prayers-page-layout .cpp-my-prayer-activity-item {
        gap: 10px;
        padding: 12px 0;
    }

    .cpp-my-prayers-page-layout .cpp-my-prayer-activity-item-icon {
        width: 31px;
        height: 31px;
        font-size: 13px;
    }

    .cpp-my-prayers-page-layout .cpp-my-prayer-activity-item-copy strong {
        font-size: 10px;
    }

    .cpp-my-prayers-page-layout .cpp-my-prayer-activity-item-copy time {
        font-size: 9px;
    }

    .cpp-dashboard .cpp-prayer-action-notice {
        padding: 12px 13px;
        font-size: 10px;
    }

}

@media (max-width: 480px) {

    .cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-activity-placeholder,
    .cpp-prayer-team-detail-page-layout .cpp-my-prayer-detail-prayer-summary,
    .cpp-my-prayer-card-prayer-count {
        padding: 11px;
    }

    .cpp-prayer-team-page-layout .cpp-prayer-team-prayed-state,
    .cpp-prayer-team-page-layout .cpp-prayer-team-pray-unavailable,
    .cpp-prayer-team-page-layout .cpp-prayer-team-pray-button {
        font-size: 10px;
    }

    .cpp-my-prayers-page-layout .cpp-my-prayer-activity-item-copy strong {
        font-size: 10px;
    }

    .cpp-my-prayers-page-layout .cpp-my-prayer-activity-item-copy time {
        font-size: 8px;
    }

}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-activity-placeholder strong,
.cpp-prayer-team-detail-page-layout .cpp-prayer-team-detail-activity-placeholder p,
.cpp-prayer-team-page-layout .cpp-prayer-team-card-activity-copy strong,
.cpp-prayer-team-page-layout .cpp-prayer-team-card-activity-copy span,
.cpp-my-prayers-page-layout .cpp-my-prayer-card-prayer-count strong,
.cpp-my-prayers-page-layout .cpp-my-prayer-detail-prayer-summary strong,
.cpp-my-prayers-page-layout .cpp-my-prayer-activity-item-copy strong,
.cpp-my-prayers-page-layout .cpp-my-prayer-activity-item-copy time,
.cpp-dashboard .cpp-prayer-action-notice {
    overflow-wrap: anywhere;
    word-break: normal;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-pray-button:focus-visible {
    outline: 2px solid #6B3FC4;
    outline-offset: 3px;
}

.cpp-prayer-team-page-layout .cpp-prayer-team-pray-button:hover {
    transform: translateY(-1px);
}

.cpp-prayer-team-page-layout .cpp-prayer-team-pray-button:active {
    transform: translateY(0);
}

@media (prefers-reduced-motion: reduce) {

    .cpp-prayer-team-page-layout .cpp-prayer-team-pray-button {
        transition: none;
    }

    .cpp-prayer-team-page-layout .cpp-prayer-team-pray-button:hover,
    .cpp-prayer-team-page-layout .cpp-prayer-team-pray-button:active {
        transform: none;
    }

}

/* =========================================================
   STEP 7G — PASTORAL RESPONSE UI
   ========================================================= */

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-conversation {
    margin-top: 24px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-conversation .cpp-widget-heading h2 { margin: 0 0 10px; } 

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 28px;
    padding: 5px 10px;
    border-radius: 999px;
    background: #f9fafb;
    color: #6B3FC4;
    font-size: 9px;
    font-weight: 700;
        border: 1px solid #6B3FC4;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-conversation-thread {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-top: 18px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-item {
    max-width: 82%;
    padding: 13px 15px;
    border: 1px solid #eaecf0;
    border-radius: 12px;
    background: #ffffff;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-item.is-pastoral {
    align-self: flex-end;
    background:
        rgba(107, 63, 196, 0.055);
    border-color:
        rgba(107, 63, 196, 0.14);
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-item.is-member {
    align-self: flex-start;
    background: #f9fafb;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 7px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-meta strong {
    color: #344054;
    font-size: 9px;
    line-height: 1.4;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-meta time {
    color: #98a2b3;
    font-size: 8px;
    line-height: 1.4;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-message {
    color: #475467;
    font-size: 11px;
    line-height: 1.65;
    overflow-wrap: anywhere;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-conversation-empty {
    margin-top: 16px;
    padding: 14px;
    border: 1px dashed #d0d5dd;
    border-radius: 10px;
    background: #f9fafb;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-conversation-empty p {
    margin: 0;
    color: #667085;
    font-size: 10px;
    line-height: 1.6;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-composer {
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid #eaecf0;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-form {
    margin: 0;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-field {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-field label {
    color: #344054;
    font-size: 11px;
    font-weight: 700;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-field textarea {
    display: block;
    width: 100%;
    min-height: 130px;
    box-sizing: border-box;
    padding: 12px 13px;
    border: 1px solid #d0d5dd;
    border-radius: 9px;
    background: #ffffff;
    color: #344054;
    font: inherit;
    font-size: 11px;
    line-height: 1.6;
    resize: vertical;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-field textarea:focus {
    outline: none;
    border-color: #6B3FC4;
    box-shadow:
        0 0 0 3px
        rgba(107, 63, 196, 0.10);
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-help {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    color: #667085;
    font-size: 13px;
    line-height: 1.5;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-actions {
    display: flex;
    justify-content: flex-end;
    margin-top: 14px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-submit {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    color: rgb(255, 255, 255);
    font-size: 14px;
    font-weight: 700;
    box-shadow: rgba(29, 78, 216, 0.2) 0px 8px 18px;
    padding: 10px 17px;
    border-width: 1px;
    border-style: solid;
    border-color: transparent;
    border-image: none;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    text-decoration: none;
    transition: transform 0.18s, box-shadow 0.18s;
}
.cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-submit:hover,
.cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-submit:focus {
        color: rgb(255, 255, 255);
    transform: translateY(-2px);
    box-shadow: rgba(29, 78, 216, 0.26) 0px 12px 24px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-unavailable {
    padding: 14px 15px;
    border: 1px solid #eaecf0;
    border-radius: 10px;
    background: #f9fafb;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-unavailable strong {
    display: block;
    margin-bottom: 4px;
    color: #344054;
    font-size: 10px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-unavailable p {
    margin: 0;
    color: #667085;
    font-size: 9px;
    line-height: 1.55;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-response-notice {
    margin-bottom: 18px;
    padding: 13px 15px;
    border: 1px solid transparent;
    border-radius: 10px;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.55;
    overflow-wrap: anywhere;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-response-notice-success {
    border-color: #abefc6;
    background: #ecfdf3;
    color: #067647;
}
.cpp-prayer-team-detail-page-layout .cpp-prayer-action-notice .cpp-prayer-action-notice-error {
    color: #B8324A;
    margin-bottom: 18px;
    padding: 13px 15px;
    border: 1px solid transparent;
    border-radius: 10px;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.55;
    overflow-wrap: anywhere;
    border-color: #B8324A;
    background: #fff;
}
.cpp-prayer-team-detail-page-layout .cpp-prayer-response-notice-error {
    border-color: #fecdca;
    background: #fef3f2;
    color: #b42318;
}

@media (max-width: 767px) {

    .cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-item {
        max-width: 100%;
    }

    .cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-meta {
        align-items: flex-start;
        flex-direction: column;
        gap: 3px;
    }

    .cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-help {
        flex-direction: column;
        gap: 3px;
    }

    .cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-submit {
        width: 100%;
    }

}

/* =========================================================
   STEP 7H — MEMBER CONVERSATION
   ========================================================= */

.cpp-prayer-detail-page-layout .cpp-my-prayer-conversation {
    margin-top: 26px;
}
.cpp-prayer-detail-page-layout .cpp-my-prayer-conversation h3 {
        margin: 0 0 14px;
    color: var(--cpp-text-heading);
    font-size: 20px;
    font-weight: 740;
    letter-spacing: -.025em;
    line-height: 1.3;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-response-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 28px;
    padding: 5px 10px;
    border-radius: 999px;
    background:
        rgba(107, 63, 196, 0.08);
    color: #6B3FC4;
    font-size: 12px;
    font-weight: 700;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-conversation-thread {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-top: 18px;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-response-item {
    max-width: 82%;
    padding: 13px 15px;
    border: 1px solid #eaecf0;
    border-radius: 12px;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-response-item.is-pastoral {
    align-self: flex-start;
    background: #f9fafb;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-response-item.is-member {
    align-self: flex-end;
    border-color:
        rgba(107, 63, 196, 0.14);
    background: #fff;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-response-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    margin-bottom: 7px;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-response-meta strong {
        color: #6B3FC4;
    font-size: 13px;
    line-height: 1.4;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-response-meta time {
    color: #687386;
    font-size: 12px;
    line-height: 1.4;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-response-message {
    color: #475467;
    font-size: 14px;
    line-height: 1.65;
    overflow-wrap: anywhere;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-conversation-empty {
    margin-top: 16px;
    padding: 14px 15px;
    border: 1px dashed #d0d5dd;
    border-radius: 10px;
    background: #f9fafb;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-conversation-empty p {
    margin: 0;
    color: #667085;
    font-size: 10px;
    line-height: 1.6;
}

@media (max-width: 767px) {

    .cpp-prayer-detail-page-layout .cpp-my-prayer-response-item {
        max-width: 100%;
    }

    .cpp-prayer-detail-page-layout .cpp-my-prayer-response-meta {
        align-items: flex-start;
        flex-direction: column;
        gap: 3px;
    }

    .cpp-prayer-detail-page-layout .cpp-my-prayer-response-message {
        font-size: 12px;
    }

}

/* =========================================================
   STEP 7J — MEMBER REPLY UI
   ========================================================= */

.cpp-prayer-detail-page-layout .cpp-my-prayer-reply-notice {
    margin-bottom: 18px;
    padding: 13px 15px;
    border: 1px solid transparent;
    border-radius: 10px;
    font-size: 10px;
    font-weight: 600;
    line-height: 1.55;
    overflow-wrap: anywhere;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-reply-notice-success {
    border-color: #abefc6;
    background: #ecfdf3;
    color: #067647;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-reply-notice-error {
    border-color: #fecdca;
    background: #fef3f2;
    color: #b42318;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-reply-composer {
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid #eaecf0;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-reply-form {
    margin: 0;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-reply-field {
    display: flex;
    flex-direction: column;
    gap: 8px;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-reply-field label {
    color: #344054;
    font-size: 11px;
    font-weight: 700;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-reply-field textarea {
    display: block;
    width: 100%;
    min-height: 120px;
    box-sizing: border-box;
    padding: 12px 13px;
    border: 1px solid #d0d5dd;
    border-radius: 9px;
    background: #ffffff;
    color: #344054;
    font: inherit;
    font-size: 11px;
    line-height: 1.6;
    resize: vertical;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-reply-field textarea:focus {
    outline: none;
    border-color: #6B3FC4;
    box-shadow:
        0 0 0 3px
        rgba(107, 63, 196, 0.10);
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-reply-help {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    color: #667085;
    font-size: 13px;
    line-height: 1.5;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-reply-actions {
    display: flex;
    justify-content: flex-end;
    margin-top: 14px;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-reply-submit {
        display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    color: rgb(255, 255, 255);
    font-size: 14px;
    font-weight: 700;
    box-shadow: rgba(29, 78, 216, 0.2) 0px 8px 18px;
    padding: 10px 17px;
    border-width: 1px;
    border-style: solid;
    border-color: transparent;
    border-image: none;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    text-decoration: none;
    transition: transform 0.18s, box-shadow 0.18s;
}
.cpp-prayer-detail-page-layout .cpp-my-prayer-reply-submit:hover,
.cpp-prayer-detail-page-layout .cpp-my-prayer-reply-submit:focus {
    color: rgb(255, 255, 255);
    transform: translateY(-2px);
    box-shadow: rgba(29, 78, 216, 0.26) 0px 12px 24px;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-reply-unavailable {
    padding: 14px 15px;
    border: 1px solid #eaecf0;
    border-radius: 10px;
    background: #f9fafb;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-reply-unavailable strong {
    display: block;
    margin-bottom: 4px;
    color: #344054;
    font-size: 10px;
}


.cpp-prayer-detail-page-layout .cpp-my-prayer-reply-unavailable p {
    margin: 0;
    color: #667085;
    font-size: 9px;
    line-height: 1.55;
}

@media (max-width: 767px) {

    .cpp-prayer-detail-page-layout .cpp-my-prayer-reply-help {
        flex-direction: column;
        gap: 3px;
    }

    .cpp-prayer-detail-page-layout .cpp-my-prayer-reply-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .cpp-prayer-detail-page-layout .cpp-my-prayer-reply-submit {
        width: 100%;
    }

}

/* =========================================================
   STEP 7K — PASTORAL FOLLOW-UP
   ========================================================= */

.cpp-prayer-team-detail-page-layout .cpp-prayer-pastoral-followup {
        background-color: #f5f3ff;
    margin-top: 24px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-pastoral-followup .cpp-widget-heading h2 { margin: 0 0 10px; }

.cpp-prayer-team-detail-page-layout .cpp-prayer-followup-status {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 28px;
    padding: 5px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-followup-status.is-requested {
    /*border: 1px solid #abefc6;
    background: #ecfdf3;
    color: #067647;*/
    text-align: center;
    color: #166534;
    border: 1px solid #bbf7d0;
    background: #f0fdf4;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-followup-status.is-not-requested {
    border: 1px solid #eaecf0;
    background: #f9fafb;
    color: #667085;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-followup-grid {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-top: 16px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-followup-item {
    padding: 13px 14px;
    border: 1px solid #ced4da;
    border-radius: 10px;
    background: #f9fafb;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-followup-label {
    display: block;
    margin-bottom: 0px;
    color: #667085;
    font-size: 12px;
    font-weight: 600;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-followup-item strong {
    color: #344054;
    font-size: 14px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-followup-contact,
.cpp-prayer-team-detail-page-layout .cpp-prayer-followup-private {
    margin-top: 16px;
    padding: 14px 15px;
    border-radius: 10px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-followup-contact {
    border: 1px solid #ced4da;
    background: #f9fafb;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-followup-private {
    border: 1px solid #eaecf0;
    background: #f9fafb;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-followup-contact-heading strong,
.cpp-prayer-team-detail-page-layout .cpp-prayer-followup-private strong {
    display: block;
    margin-bottom: 4px;
    color: #344054;
    font-size: 16px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-followup-contact-heading p,
.cpp-prayer-team-detail-page-layout .cpp-prayer-followup-private p {
    margin: 0;
    color: #667085;
    font-size: 14px;
    line-height: 1.55;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-followup-contact-grid {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
    gap: 10px;
    margin-top: 12px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-followup-contact-item {
    min-width: 0;
    padding: 11px 12px;
    border-radius: 8px;
    background: #f9fafb;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-followup-contact-item span {
    display: block;
    margin-bottom: 4px;
    color: #667085;
    font-size: 14px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-followup-contact-item strong {
    display: block;
    color: #344054;
    font-size: 15px;
    line-height: 1.5;
    overflow-wrap: anywhere;
}

@media (max-width: 767px) {

    .cpp-prayer-team-detail-page-layout .cpp-prayer-followup-grid,
    .cpp-prayer-team-detail-page-layout .cpp-prayer-followup-contact-grid {
        grid-template-columns: 1fr;
    }

    .cpp-prayer-team-detail-page-layout .cpp-prayer-followup-status {
        margin-top: 8px;
    }

}

@media (max-width: 600px) {
    .cpp-prayer-team-detail-page-layout .cpp-prayer-pastoral-followup .cpp-widget-heading {
        flex-direction: column-reverse;
        align-items: flex-start;
        gap: 10px;
    }
    .cpp-prayer-team-detail-page-layout .cpp-prayer-team-conversation .cpp-widget-heading {
        flex-direction: column-reverse;
        align-items: flex-start;
        gap: 10px;
    }
    .cpp-prayer-detail-page-layout .cpp-prayer-detail-header {
        flex-direction: column-reverse;
    }
    .cpp-prayer-detail-page-layout .cpp-my-prayer-conversation .cpp-widget-heading {
        flex-direction: column-reverse;
        align-items: flex-start;
        gap: 10px;
    }
}



/* =========================================================
   STEP 7L — CONTACT ACTIONS
   ========================================================= */

.cpp-prayer-team-detail-page-layout .cpp-prayer-contact-action {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    margin-top: 10px;
    padding: 8px 12px;
    border: 1px solid
        rgba(107, 63, 196, 0.20);
    border-radius: 8px;
    background: #6B3FC4;
    color: #fff;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.3;
    text-decoration: none;
    transition:
        background-color 0.18s ease,
        border-color 0.18s ease,
        transform 0.18s ease;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-contact-action:hover {
    border-color:
        rgba(107, 63, 196, 0.35);
    background:
        rgba(107, 63, 196, 0.07);
    color: #6B3FC4;
    transform: translateY(-1px);
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-contact-action:focus-visible {
    outline: 2px solid #6B3FC4;
    outline-offset: 3px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-contact-unavailable {
    display: block;
    margin-top: 8px;
    color: #98a2b3;
    font-size: 8px;
    font-weight: 600;
    line-height: 1.45;
}

@media (max-width: 767px) {

    .cpp-prayer-team-detail-page-layout .cpp-prayer-contact-action {
        width: 100%;
        box-sizing: border-box;
        min-height: 44px;
    }

}

@media (prefers-reduced-motion: reduce) {

    .cpp-prayer-team-detail-page-layout .cpp-prayer-contact-action {
        transition: none;
    }

    .cpp-prayer-team-detail-page-layout .cpp-prayer-contact-action:hover {
        transform: none;
    }

}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-conversation {
    background-color: #f5f3ff;
    margin-top: 26px;
}

.cpp-prayer-team-detail-page-layout  .cpp-prayer-team-conversation .cpp-widget-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-conversation .cpp-widget-heading > div {
    min-width: 0;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    min-height: 30px;
    padding: 6px 11px;
    border-radius: 999px;
    background: rgba(107, 63, 196, 0.08);
    color: #6B3FC4;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-conversation-thread {
    display: flex;
    flex-direction: column;
    gap: 14px;
    margin-top: 20px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-item {
    width: fit-content;
    max-width: min(78%, 720px);
    box-sizing: border-box;
    padding: 14px 16px;
    border: 1px solid #eaecf0;
    border-radius: 12px;
    overflow-wrap: anywhere;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-item.is-pastoral {
    align-self: flex-end;
    border-color: #ced4da;
    background: #f9fafb;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-item.is-pastoral
.cpp-prayer-team-response-meta strong {
    color: #6B3FC4;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-item.is-member {
    align-self: flex-start;
    border-color: #ced4da;
    background: #f9fafb;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-item.is-member
.cpp-prayer-team-response-meta strong {
    color: #344054;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 7px;
    min-width: 0;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-meta strong {
    font-size: 13px;
    font-weight: 700;
    line-height: 1.3;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-meta time {
    flex: 0 0 auto;
    color: #687386;
    font-size: 12px;
    font-weight: 500;
    line-height: 1.3;
    white-space: nowrap;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-message {
    color: #475467;
    font-size: 15px;
    line-height: 1.7; 
    overflow-wrap: anywhere;
    word-break: normal;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-message a,
.cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-message {
    max-width: 100%;
    overflow-wrap: anywhere;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-conversation-empty {
    margin-top: 18px;
    padding: 16px;
    border: 1px dashed #d0d5dd;
    border-radius: 10px;
    background: #f9fafb;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-conversation-empty p {
    margin: 0;
    color: #667085;
    font-size: 13px;
    line-height: 1.6;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-composer {
    margin-top: 22px;
    padding-top: 22px;
    border-top: 1px solid #eaecf0;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-unavailable {
    padding: 15px 16px;
    border: 1px solid #e4e7ec;
    border-radius: 10px;
    background: #f9fafb;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-unavailable strong {
    display: block;
    margin-bottom: 5px;
    color: #344054;
    font-size: 14px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-unavailable p {
    margin: 0;
    color: #667085;
    font-size: 13px;
    line-height: 1.55;
}

@media (max-width: 767px) {

    .cpp-prayer-team-detail-page-layout .cpp-prayer-team-conversation
    .cpp-widget-heading {
        flex-direction: column;
        align-items: flex-start;
    }

    .cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-count {
        align-self: flex-start;
    }

    .cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-item {
        max-width: 92%;
    }

}

@media (max-width: 480px) {

    .cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-item {
        width: 100%;
        max-width: 100%;
    }

    .cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-meta {
        flex-direction: column;
        align-items: flex-start;
        gap: 3px;
    }

    .cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-meta time {
        white-space: normal;
    }

}

@media (max-width: 375px) {

    .cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-item {
        padding: 12px 13px;
    }

    .cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-message {
        font-size: 13px;
    }

    .cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-meta strong {
        font-size: 11px;
    }

    .cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-meta time {
        font-size: 10px;
    }

}

/* =========================================================
   7O-4 — PASTORAL RESPONSE FORM
   ========================================================= */

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-composer {
    margin-top: 22px;
    padding-top: 22px;
    border-top: 1px solid #eaecf0;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-form {
    margin: 0;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-field {
    display: flex;
    flex-direction: column;
    gap: 9px;
}


.cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-field label {
    color: #344054;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.4;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-field textarea {
    display: block;
    width: 100%;
    max-width: 100%;
    min-height: 150px;
    box-sizing: border-box;
    padding: 14px 15px;
    border: 1px solid #ced4da;
    border-radius: 10px;
    background: #ffffff;
    color: #344054;
    font: inherit;
    font-size: 14px;
    line-height: 1.65;
    resize: vertical;
    overflow-wrap: anywhere;
    transition:
        border-color 0.18s ease,
        box-shadow 0.18s ease;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-field textarea::placeholder {
    color: #98a2b3;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-field textarea:hover {
    border-color: #98a2b3;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-field textarea:focus {
    outline: none;
    border-color: #6B3FC4;
    box-shadow:
        0 0 0 3px
        rgba(107, 63, 196, 0.10);
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-help {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    color: #667085;
    font-size: 13px;
    line-height: 1.5;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-help span {
    min-width: 0;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-help {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    color: #667085;
    font-size: 13px;
    line-height: 1.5;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-help span {
    min-width: 0;
}

@media (max-width: 767px) {

    .cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-help {
        flex-direction: column;
        gap: 4px;
    }

}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-actions {
    display: flex;
    justify-content: flex-end;
    margin-top: 16px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-submit {
    min-width: 150px;
    min-height: 44px;
}

@media (max-width: 767px) {

    .cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-actions {
        align-items: stretch;
        flex-direction: column;
    }

    .cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-submit {
        width: 100%;
        min-width: 0;
        min-height: 46px;
    }

}

.cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-unavailable {
    padding: 15px 16px;
    border: 1px solid #e4e7ec;
    border-radius: 10px;
    background: #f9fafb;
}


.cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-unavailable strong {
    display: block;
    margin-bottom: 5px;
    color: #344054;
    font-size: 14px;
    font-weight: 700;
}


.cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-unavailable p {
    margin: 0;
    color: #667085;
    font-size: 13px;
    line-height: 1.55;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-response-notice {
    margin-bottom: 18px;
    padding: 13px 15px;
    border: 1px solid transparent;
    border-radius: 10px;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.55; 
    overflow-wrap: anywhere;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-response-notice-success {
    border-color: #abefc6;
    background: #ecfdf3;
    color: #067647;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-response-notice-error {
    border-color: #fecdca;
    background: #fef3f2;
    color: #b42318;
}

/* =========================================================
   7O-4 — MEMBER REPLY FORM
   ========================================================= */

.cpp-prayer-detail-page-layout .cpp-my-prayer-reply-composer {
    margin-top: 22px;
    padding-top: 22px;
    border-top: 1px solid #eaecf0;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-reply-form {
    margin: 0;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-reply-field {
    display: flex;
    flex-direction: column;
    gap: 9px;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-reply-field label {
    color: #344054;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.4;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-reply-field textarea {
    display: block;
    width: 100%;
    max-width: 100%;
    min-height: 140px;
    box-sizing: border-box;
    padding: 14px 15px;
    border: 1px solid #d0d5dd;
    border-radius: 10px;
    background: #ffffff;
    color: #344054;
    font: inherit;
    font-size: 14px;
    line-height: 1.65;
    resize: vertical;
    overflow-wrap: anywhere;
    transition:
        border-color 0.18s ease,
        box-shadow 0.18s ease;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-reply-field textarea::placeholder {
    color: #98a2b3;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-reply-field textarea:hover {
    border-color: #98a2b3;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-reply-field textarea:focus {
    outline: none;
    border-color: #6B3FC4;
    box-shadow:
        0 0 0 3px
        rgba(107, 63, 196, 0.10);
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-reply-help {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    color: #667085;
    font-size: 13px;
    line-height: 1.5;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-reply-actions {
    display: flex;
    justify-content: flex-end;
    margin-top: 16px;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-reply-submit {
    min-width: 140px;
    min-height: 44px;
}

@media (max-width: 767px) {

    .cpp-prayer-detail-page-layout .cpp-my-prayer-reply-help {
        flex-direction: column;
        gap: 4px;
    }

    .cpp-prayer-detail-page-layout .cpp-my-prayer-reply-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .cpp-prayer-detail-page-layout .cpp-my-prayer-reply-submit {
        width: 100%;
        min-width: 0;

        min-height: 46px;
    }

}

.cpp-prayer-detail-page-layout .cpp-my-prayer-reply-unavailable {
    padding: 15px 16px;
    border: 1px solid #e4e7ec;
    border-radius: 10px;
    background: #f9fafb;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-reply-unavailable strong {
    display: block;
    margin-bottom: 5px;
    color: #344054;
    font-size: 14px;
    font-weight: 700;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-reply-unavailable p {
    margin: 0;
    color: #667085;
    font-size: 13px;
    line-height: 1.55;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-reply-notice {
    margin-bottom: 18px;
    padding: 13px 15px;
    border: 1px solid transparent;
    border-radius: 10px;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.55;
    overflow-wrap: anywhere;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-reply-notice-success {
    border-color: #abefc6;
    background: #ecfdf3;
    color: #067647;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-reply-notice-error {
    border-color: #fecdca;
    background: #fef3f2;
    color: #b42318;
}

/* =========================================================
   7O-V2 — VIDEO CONTACT PREFERENCE
   ========================================================= */

.cpp-prayer-team-detail-page-layout .cpp-prayer-video-meeting-pending {
    display: inline-flex;
    align-items: center;
    flex: 0 0 auto;
    min-height: 36px;
    padding: 7px 11px;
    border: 1px solid #e4e7ec;
    border-radius: 7px;
    background: #f9fafb;
    color: #667085;
    font-size: 12px;
    font-weight: 600;
    line-height: 1.4;
}

@media (max-width: 767px) {

    .cpp-prayer-team-detail-page-layout .cpp-prayer-video-meeting-pending {
        width: 100%;
        box-sizing: border-box;
        justify-content: center;
        text-align: center;
    }

}

/* =========================================================
   7O-V5 — PASTORAL VIDEO MEETING UI
   ========================================================= */

.cpp-prayer-team-detail-page-layout .cpp-prayer-video-meeting {
    margin-top: 6px;
    padding: 16px;
    border: 1px solid #e4e7ec;
    border-radius: 10px;
    background: #ffffff;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-video-meeting-header {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-video-meeting-eyebrow {
    display: block;
    margin-bottom: 4px;
    color: #667085;
    font-size: 12px;
    font-weight: 600;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-video-meeting-header strong {
    color: #101828;
    font-size: 15px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-video-status {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 28px;
    padding: 5px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    white-space: nowrap;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-video-status.is-not-scheduled {
    border: 1px solid #e4e7ec;
    background: #f9fafb;
    color: #667085;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-video-status.is-scheduled {
    border: 1px solid #b2ddff;
    background: #eff8ff;
    color: #175cd3;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-video-status.is-completed {
    border: 1px solid #abefc6;
    background: #ecfdf3;
    color: #067647;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-video-status.is-cancelled {
    border: 1px solid #fecdca;
    background: #fef3f2;
    color: #b42318;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-video-form {
    margin-top: 16px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-video-form-grid {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
    gap: 12px;
    margin-bottom: 12px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-video-field {
    display: flex;
    flex-direction: column;
    gap: 7px;
    min-width: 0;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-video-field + .cpp-prayer-video-field {
    margin-top: 14px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-video-form-grid
.cpp-prayer-video-field + .cpp-prayer-video-field {
    margin-top: 0;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-video-field label {
    color: #344054;
    font-size: 12px;
    font-weight: 700;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-video-field select,
.cpp-prayer-team-detail-page-layout .cpp-prayer-video-field input {
    width: 100%;
    min-height: 44px;
    box-sizing: border-box;
    padding: 9px 11px;
    border: 1px solid #d0d5dd;
    border-radius: 8px;
    background: #ffffff;
    color: #344054;
    font: inherit;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-video-field select:focus,
.cpp-prayer-team-detail-page-layout .cpp-prayer-video-field input:focus {
    outline: none;
    border-color: #6B3FC4;
    box-shadow:
        0 0 0 3px
        rgba(107, 63, 196, 0.10);
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-video-field-help {
    margin: 0;
    color: #667085;
    font-size: 11px;
    line-height: 1.5;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-video-form-actions {
    display: flex;
    justify-content: flex-end;
    margin-top: 16px;
}
.cpp-prayer-team-detail-page-layout .cpp-prayer-video-form-actions .cpp-primary-button {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    color: rgb(255, 255, 255);
    font-size: 14px;
    font-weight: 700;
    box-shadow: rgba(29, 78, 216, 0.2) 0px 8px 18px;
    padding: 10px 17px;
    border-width: 1px;
    border-style: solid;
    border-color: transparent;
    border-image: none;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    text-decoration: none;
    transition: transform 0.18s, box-shadow 0.18s;
}
.cpp-prayer-team-detail-page-layout .cpp-prayer-video-form-actions .cpp-primary-button:hover,
.cpp-prayer-team-detail-page-layout .cpp-prayer-video-form-actions .cpp-primary-button:focus {
    color: rgb(255, 255, 255);
    transform: translateY(-2px);
    box-shadow: rgba(29, 78, 216, 0.26) 0px 12px 24px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-video-scheduled,
.cpp-prayer-team-detail-page-layout .cpp-prayer-video-completed,
.cpp-prayer-team-detail-page-layout .cpp-prayer-video-meeting-state {
    margin-top: 16px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-video-details {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
    gap: 10px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-video-details > div {
    min-width: 0;
    padding: 12px;
    border-radius: 8px;
    background: #f9fafb;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-video-details span {
    display: block;
    margin-bottom: 4px;
    color: #667085;
    font-size: 11px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-video-details strong {
    display: block;
    color: #344054;
    font-size: 13px;
    overflow-wrap: anywhere;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-video-primary-action {
    margin-top: 14px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-video-join {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    color: rgb(255, 255, 255);
    font-size: 14px;
    font-weight: 700;
    box-shadow: rgba(29, 78, 216, 0.2) 0px 8px 18px;
    padding: 10px 17px;
    border-width: 1px;
    border-style: solid;
    border-color: transparent;
    border-image: none;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    text-decoration: none;
    transition: transform 0.18s, box-shadow 0.18s;
}
.cpp-prayer-team-detail-page-layout .cpp-prayer-video-join:hover,
.cpp-prayer-team-detail-page-layout .cpp-prayer-video-join:focus {
        color: rgb(255, 255, 255);
    transform: translateY(-2px);
    box-shadow: rgba(29, 78, 216, 0.26) 0px 12px 24px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-video-reschedule {
    margin-top: 18px;
    border-top: 1px solid #eaecf0;
    padding-top: 16px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-video-reschedule summary {
    cursor: pointer;
    color: #6B3FC4;
    font-size: 13px;
    font-weight: 700;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-video-reschedule summary:focus-visible {
    outline: 2px solid #6B3FC4;
    outline-offset: 3px;
    border-radius: 4px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-video-lifecycle-actions {
    display: flex;
    align-items: center;
    gap: 10px;
    margin-top: 18px;
    flex-wrap: wrap;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-video-lifecycle-form {
    margin: 0;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-video-complete,
.cpp-prayer-team-detail-page-layout .cpp-prayer-video-cancel {
    min-height: 40px;
    padding: 8px 12px;
    border-radius: 8px;
    font: inherit;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-video-complete {
    border: 1px solid #abefc6;
    background: #ecfdf3;
    color: #067647;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-video-cancel {
    border: 1px solid #fecdca;
    background: #fef3f2;
    color: #b42318;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-video-notice {
    margin-bottom: 18px;
    padding: 13px 15px;
    border: 1px solid transparent;
    border-radius: 10px;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.55;
    overflow-wrap: anywhere;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-video-notice-success {
    border-color: #abefc6;
    background: #ecfdf3;
    color: #067647;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-video-notice-error {
    border-color: #fecdca;
    background: #fef3f2;
    color: #b42318;
}

@media (max-width: 767px) {

    .cpp-prayer-team-detail-page-layout .cpp-prayer-video-meeting-header {
        flex-direction: column;
    }

    .cpp-prayer-team-detail-page-layout .cpp-prayer-video-status {
        align-self: flex-start;
    }

    .cpp-prayer-team-detail-page-layout .cpp-prayer-video-form-grid,
    .cpp-prayer-team-detail-page-layout .cpp-prayer-video-details {
        grid-template-columns: 1fr;
    }

    .cpp-prayer-team-detail-page-layout .cpp-prayer-video-form-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .cpp-prayer-team-detail-page-layout .cpp-prayer-video-form-actions
    .cpp-primary-button,
    .cpp-prayer-team-detail-page-layout .cpp-prayer-video-join {
        width: 100%;
        box-sizing: border-box;
        justify-content: center;
    }

    .cpp-prayer-team-detail-page-layout .cpp-prayer-video-lifecycle-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .cpp-prayer-team-detail-page-layout .cpp-prayer-video-lifecycle-form,
    .cpp-prayer-team-detail-page-layout .cpp-prayer-video-complete,
    .cpp-prayer-team-detail-page-layout .cpp-prayer-video-cancel {
        width: 100%;
        box-sizing: border-box;
    }

}

@media (max-width: 480px) {

    .cpp-prayer-team-detail-page-layout .cpp-prayer-video-field select,
    .cpp-prayer-team-detail-page-layout .cpp-prayer-video-field input {
        font-size: 16px;
    }

}

/* =========================================================
   7O-V6 — MEMBER VIDEO MEETING
   ========================================================= */

.cpp-prayer-detail-page-layout .cpp-my-prayer-video-meeting {
    margin-top: 26px;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-video-meeting
.cpp-widget-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-video-meeting
.cpp-widget-heading > div {
    min-width: 0;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-video-status {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex: 0 0 auto;
    min-height: 28px;
    padding: 5px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
    line-height: 1.2;
    white-space: nowrap;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-video-status.is-not-scheduled {
    border: 1px solid #e4e7ec;
    background: #f9fafb;
    color: #667085;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-video-status.is-scheduled {
    border: 1px solid #b2ddff;
    background: #eff8ff;
    color: #175cd3;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-video-status.is-completed {
    border: 1px solid #abefc6;
    background: #ecfdf3;
    color: #067647;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-video-status.is-cancelled {
    border: 1px solid #fecdca;
    background: #fef3f2;
    color: #b42318;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-video-scheduled,
.cpp-prayer-detail-page-layout .cpp-my-prayer-video-state {
    margin-top: 18px;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-video-details {
    display: grid;
    grid-template-columns:
        repeat(2, minmax(0, 1fr));
    gap: 12px;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-video-detail {
    min-width: 0;
    padding: 13px 14px;
    border: 1px solid #eaecf0;
    border-radius: 9px;
    background: #f9fafb;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-video-detail span {
    display: block;
    margin-bottom: 5px;
    color: #667085;
    font-size: 12px;
    font-weight: 600;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-video-detail strong {
    display: block;
    color: #344054;
    font-size: 14px;
    overflow-wrap: anywhere;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-video-guidance {
    margin-top: 14px;
    padding: 14px 15px;
    border-radius: 9px;
    background:
        rgba(107, 63, 196, 0.045);
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-video-guidance strong {
    display: block;
    margin-bottom: 4px;
    color: #344054;
    font-size: 13px;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-video-guidance p {
    margin: 0;
    color: #667085;
    font-size: 12px;
    line-height: 1.55;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-video-actions {
    display: flex;
    margin-top: 16px;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-video-join {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    color: rgb(255, 255, 255);
    font-size: 14px;
    font-weight: 700;
    box-shadow: rgba(29, 78, 216, 0.2) 0px 8px 18px;
    padding: 10px 17px;
    border-width: 1px;
    border-style: solid;
    border-color: transparent;
    border-image: none;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    text-decoration: none;
    transition: transform 0.18s, box-shadow 0.18s;
}
.cpp-prayer-detail-page-layout .cpp-my-prayer-video-join:hover {
    color: rgb(255, 255, 255);
    transform: translateY(-2px);
    box-shadow: rgba(29, 78, 216, 0.26) 0px 12px 24px;
}

@media (max-width: 767px) {

    .cpp-prayer-detail-page-layout .cpp-my-prayer-video-actions {
        flex-direction: column;
    }

    .cpp-prayer-detail-page-layout .cpp-my-prayer-video-join {
        width: 100%;
        box-sizing: border-box;
    }

}

.cpp-prayer-detail-page-layout .cpp-my-prayer-video-state {
    padding: 15px 16px;
    border: 1px solid #e4e7ec;
    border-radius: 10px;
    background: #f9fafb;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-video-state > strong {
    display: block;
    margin-bottom: 5px;
    color: #344054;
    font-size: 14px;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-video-state > p {
    margin: 0;
    color: #667085;
    font-size: 13px;
    line-height: 1.6;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-video-state.is-completed {
    border-color: #abefc6;
    background: #f6fef9;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-video-state.is-cancelled {
    border-color: #fecdca;
    background: #fffafa;
}

.cpp-prayer-detail-page-layout .cpp-my-prayer-video-unavailable {
    margin-top: 14px;
    padding: 12px 14px;
    border: 1px solid #e4e7ec;
    border-radius: 8px;
    background: #f9fafb;
    color: #667085;
    font-size: 12px;
    line-height: 1.55;
}

@media (max-width: 767px) {

    .cpp-prayer-detail-page-layout .cpp-my-prayer-video-meeting
    .cpp-widget-heading {
        flex-direction: column;
        align-items: flex-start;
    }

    .cpp-prayer-detail-page-layout .cpp-my-prayer-video-status {
        align-self: flex-start;
    }

    .cpp-prayer-detail-page-layout .cpp-my-prayer-video-details {
        grid-template-columns: 1fr;
    }

}

@media (max-width: 480px) {

    .cpp-prayer-detail-page-layout .cpp-my-prayer-video-meeting {
        margin-top: 22px;
    }

    .cpp-prayer-detail-page-layout .cpp-my-prayer-video-detail,
    .cpp-prayer-detail-page-layout .cpp-my-prayer-video-guidance,
    .cpp-prayer-detail-page-layout .cpp-my-prayer-video-state {
        padding: 12px;
    }

}

/* =========================================================
   8F — PRAYER REQUEST MANAGEMENT
   ========================================================= */

.cpp-prayer-team-detail-page-layout .cpp-prayer-management-notice {
    margin-bottom: 18px;
    padding: 13px 15px;
    border: 1px solid transparent;
    border-radius: 10px;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.55;
    overflow-wrap: anywhere;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-management-notice-success {
    border-color: #abefc6;
    background: #ecfdf3;
    color: #067647;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-management-notice-error {
    border-color: #fecdca;
    background: #fef3f2;
    color: #b42318;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-management {
    background-color: #f5f3ff;
    margin-top: 25px;
    margin-bottom: 25px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-management .cpp-widget-heading h2 { margin: 0 0 10px; }

.cpp-prayer-team-detail-page-layout .cpp-prayer-management
.cpp-widget-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-management-current {
    margin-top: 16px;
    padding: 14px 15px;
    border: 1px solid #ced4da;
    border-radius: 10px;
    background: #f9fafb;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-management-current > span {
    display: block;
    margin-bottom: 4px;
    color: #667085;
    font-size: 12px;
    font-weight: 600;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-management-current > strong {
    display: block;
    color: #344054;
    font-size: 15px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-management-current > p {
    margin: 5px 0 0;
    color: #667085;
    font-size: 12px;
    line-height: 1.55;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-management-form {
    margin-top: 18px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-management-field {
    display: flex;
    flex-direction: column;
    gap: 7px;
    width: 40%; 
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-management-field label {
    color: #344054;
    font-size: 14px;
    font-weight: 700;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-management-field select {
    width: 100%;
    min-height: 44px;
    box-sizing: border-box;
    padding: 9px 11px;
    border: 1px solid #ced4da;
    border-radius: 8px;
    background: #ffffff;
    color: #344054;
    font: inherit;
    font-size: 14px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-management-field select:focus {
    outline: none;
    border-color: #6B3FC4;
    box-shadow:
        0 0 0 3px
        rgba(107, 63, 196, 0.10);
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-management-help {
    margin: 10px 0 0;
    color: #667085;
    font-size: 14px;
    line-height: 1.5;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-management-actions {
    display: flex;
    justify-content: flex-start;
    margin-top: 15px;
}
.cpp-prayer-team-detail-page-layout .cpp-prayer-management-actions .cpp-primary-button {
        display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    color: rgb(255, 255, 255);
    font-size: 14px;
    font-weight: 700;
    box-shadow: rgba(29, 78, 216, 0.2) 0px 8px 18px;
    padding: 10px 17px;
    border-width: 1px;
    border-style: solid;
    border-color: transparent;
    border-image: none;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    text-decoration: none;
    transition: transform 0.18s, box-shadow 0.18s;
}
.cpp-prayer-team-detail-page-layout .cpp-prayer-management-actions .cpp-primary-button:hover,
.cpp-prayer-team-detail-page-layout .cpp-prayer-management-actions .cpp-primary-button:focus {
        color: rgb(255, 255, 255);
    transform: translateY(-2px);
    box-shadow: rgba(29, 78, 216, 0.26) 0px 12px 24px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-management-reopen {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 18px;
    margin-top: 18px;
    padding: 15px;
    border: 1px solid #e4e7ec;
    border-radius: 10px;
    background: #f9fafb;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-management-reopen-copy {
    min-width: 0;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-management-reopen-copy strong {
    display: block;
    margin-bottom: 4px;
    color: #344054;
    font-size: 14px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-management-reopen-copy p {
    margin: 0;
    color: #667085;
    font-size: 12px;
    line-height: 1.55;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-management-reopen-form {
    flex: 0 0 auto;
    margin: 0;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-management-reopen-button {
    min-height: 42px;
    padding: 8px 13px;
    border: 1px solid #6B3FC4;
    border-radius: 8px;
    background: #ffffff;
    color: #6B3FC4;
    font: inherit;
    font-size: 12px;
    font-weight: 700;
    cursor: pointer;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-management-reopen-button:hover {
    color: #6B3FC4;
    background:
        rgba(107, 63, 196, 0.06);
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-management-reopen-button:focus-visible {
    outline: 3px solid
        rgba(107, 63, 196, 0.18);
    outline-offset: 2px;
}

@media (max-width: 767px) {

    .cpp-prayer-team-detail-page-layout .cpp-prayer-management
    .cpp-widget-heading {
        flex-direction: column;
        align-items: flex-start;
    }

    .cpp-prayer-team-detail-page-layout .cpp-prayer-management-actions {
        flex-direction: column;
        align-items: stretch;
    }

    .cpp-prayer-team-detail-page-layout .cpp-prayer-management-actions
    .cpp-primary-button {
        width: 100%;
        box-sizing: border-box;
    }

    .cpp-prayer-team-detail-page-layout .cpp-prayer-management-reopen {
        flex-direction: column;
        align-items: stretch;
    }

    .cpp-prayer-team-detail-page-layout .cpp-prayer-management-reopen-form,
    .cpp-prayer-team-detail-page-layout .cpp-prayer-management-reopen-button {
        width: 100%;
        box-sizing: border-box;
    }
    
    .cpp-prayer-team-detail-page-layout .cpp-prayer-management-field {
        width: 100%; 
    }


}

@media (max-width: 480px) {

    .cpp-prayer-team-detail-page-layout .cpp-prayer-management-field select {
        font-size: 16px;
    }

}

/* =========================================================
   8G — PASTORAL ASSIGNMENT
   ========================================================= */

.cpp-prayer-team-detail-page-layout .cpp-prayer-assignment {
    margin-top: 22px;
    margin-bottom: 22px;
    padding-top: 20px;
    border-top: 1px solid #eaecf0;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-assignment-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 14px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-assignment-heading h3 {
    margin: 0 0 10px;
    color: var(--cpp-text-heading);
    font-size: 20px;
    font-weight: 740;
    letter-spacing: -.025em;
    line-height: 1.3;
        margin-block-end: 0;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-assignment-eyebrow {
    display: block;
    margin-bottom: 4px;
    color: #667085;
    font-size: 11px;
    font-weight: 600;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-assignment-heading strong {
    color: #344054;
    font-size: 14px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-assignment-status {
    display: inline-flex;
    align-items: center;
    min-height: 28px;
    padding: 5px 10px;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-assignment-status.is-assigned {
    border: 1px solid #b2ddff;
    background: #eff8ff;
    color: #175cd3;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-assignment-status.is-unassigned {
    border: 1px solid #e4e7ec;
    background: #f9fafb;
    color: #667085;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-assignment-description {
    margin: 9px 0 0;
    color: #667085;
    font-size: 14px;
    line-height: 1.55;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-assignment-actions {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-top: 16px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-assignment-form {
    margin: 0;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-assignment-select-form label {
    display: block;
    margin-bottom: 7px;
    color: #344054;
    font-size: 14px;
    font-weight: 700;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-assignment-select-row {
    display: flex;
    gap: 10px;
    width: 50%;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-assignment-select-row select {
    flex: 1 1 auto;
    min-width: 0;
    min-height: 42px;
    padding: 8px 10px;
    border: 1px solid #ced4da;
    border-radius: 8px;
    background: #fff;
    font: inherit;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-assignment-form.cpp-prayer-assignment-select-form .cpp-prayer-assignment-button {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    color: rgb(255, 255, 255);
    font-size: 14px;
    font-weight: 700;
    box-shadow: rgba(29, 78, 216, 0.2) 0px 8px 18px;
    padding: 10px 17px;
    border-width: 1px;
    border-style: solid;
    border-color: transparent;
    border-image: none;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    text-decoration: none;
    transition: transform 0.18s, box-shadow 0.18s;
}
.cpp-prayer-team-detail-page-layout .cpp-prayer-assignment-form.cpp-prayer-assignment-select-form .cpp-prayer-assignment-button:hover,
.cpp-prayer-team-detail-page-layout .cpp-prayer-assignment-form.cpp-prayer-assignment-select-form .cpp-prayer-assignment-button:focus {
        color: rgb(255, 255, 255);
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    transform: translateY(-2px);
    box-shadow: rgba(29, 78, 216, 0.26) 0px 12px 24px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-assignment-form .cpp-prayer-assignment-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 36px;
    margin-top: 0px;
    padding: 8px 12px;
    border: 1px solid rgba(107, 63, 196, 0.20);
    border-radius: 8px;
    background: #6B3FC4;
    color: #FFF;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.3;
    text-decoration: none;
    transition: background-color 0.18s ease, border-color 0.18s ease, transform 0.18s ease;
}
.cpp-prayer-team-detail-page-layout .cpp-prayer-assignment-form .cpp-prayer-assignment-button:hover {
    border-color: rgba(107, 63, 196, 0.35);
    background: rgba(107, 63, 196, 0.07);
    color: #6B3FC4;
    transform: translateY(-1px);
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-assignment-button.is-secondary {
    background: #fff;
    color: #667085;
    border-color: #d0d5dd;
}

@media (max-width: 767px) {

    .cpp-prayer-team-detail-page-layout .cpp-prayer-assignment-heading {
        flex-direction: column;
    }

    .cpp-prayer-team-detail-page-layout .cpp-prayer-assignment-status {
        align-self: flex-start;
    }

    .cpp-prayer-team-detail-page-layout .cpp-prayer-assignment-select-row {
        flex-direction: column;
    }

    .cpp-prayer-team-detail-page-layout .cpp-prayer-assignment-select-row select,
    .cpp-prayer-team-detail-page-layout .cpp-prayer-assignment-button {
        width: 100%;
        box-sizing: border-box;
    }
    
    .cpp-prayer-team-detail-page-layout .cpp-prayer-assignment-select-row {
        width: 100%;
    }

}

/* =========================================================
   8H — INTERNAL PASTORAL NOTES
   ========================================================= */

.cpp-prayer-team-detail-page-layout .cpp-prayer-pastoral-notes {
    margin-top: 24px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-pastoral-notes .cpp-widget-heading h3 {
        margin: 0;
    color: var(--cpp-text-heading);
    font-size: 20px;
    font-weight: 740;
    letter-spacing: -.025em;
    line-height: 1.3;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-pastoral-notes-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
    margin-top: 18px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-pastoral-note-item {
    padding: 14px 16px;
    border: 1px solid #e4e7ec;
    border-radius: 10px;
    background: rgba(107, 63, 196, 0.045);
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-pastoral-note-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 12px;
    margin-bottom: 8px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-pastoral-note-meta strong {
    color: #344054;
    font-size: 13px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-pastoral-note-meta span {
    color: #667085;
    font-size: 11px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-pastoral-note-content {
    color: #475467;
    font-size: 13px;
    line-height: 1.6;
    overflow-wrap: anywhere;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-pastoral-notes-empty {
    margin-top: 16px;
    padding: 14px;
    border: 1px dashed #d0d5dd;
    border-radius: 9px;
    color: #667085;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-pastoral-note-form {
    margin-top: 20px;
    padding-top: 20px;
    border-top: 1px solid #eaecf0;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-pastoral-note-field label {
    display: block;
    margin-bottom: 7px;
    color: #344054;
    font-size: 13px;
    font-weight: 700;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-pastoral-note-field textarea {
    display: block;
    width: 100%;
    min-height: 110px;
    padding: 11px 12px;
    box-sizing: border-box;
    border: 1px solid #d0d5dd;
    border-radius: 9px;
    background: #fff;
    font: inherit;
    line-height: 1.5;
    resize: vertical;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-pastoral-note-help {
    display: flex;
    justify-content: space-between;
    gap: 12px;
    margin-top: 7px;
    color: #667085;
    font-size: 11px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-pastoral-note-actions {
    margin-top: 12px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-pastoral-note-actions .cpp-primary-button {
    display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    color: rgb(255, 255, 255);
    font-size: 14px;
    font-weight: 700;
    box-shadow: rgba(29, 78, 216, 0.2) 0px 8px 18px;
    padding: 10px 17px;
    border-width: 1px;
    border-style: solid;
    border-color: transparent;
    border-image: none;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    text-decoration: none;
    transition: transform 0.18s, box-shadow 0.18s;
}
.cpp-prayer-team-detail-page-layout .cpp-prayer-pastoral-note-actions .cpp-primary-button:hover,
.cpp-prayer-team-detail-page-layout .cpp-prayer-pastoral-note-actions .cpp-primary-button:focus {
        color: rgb(255, 255, 255);
    transform: translateY(-2px);
    box-shadow: rgba(29, 78, 216, 0.26) 0px 12px 24px;
}

@media (max-width: 767px) {

    .cpp-prayer-team-detail-page-layout .cpp-prayer-pastoral-note-meta {
        align-items: flex-start;
        flex-direction: column;
        gap: 3px;
    }

    .cpp-prayer-team-detail-page-layout .cpp-prayer-pastoral-note-help {
        flex-direction: column;
        gap: 3px;
    }

    .cpp-prayer-team-detail-page-layout .cpp-prayer-pastoral-note-actions .cpp-primary-button {
        width: 100%;
    }

}

/* =========================================================
   Prayer Room — Request Status Badges
   ========================================================= */

.cpp-prayer-team-detail-page-layout .cpp-prayer-status-badge,
.cpp-prayer-team-page-layout .cpp-prayer-status-badge {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 6px;
    width: fit-content;
    min-height: 30px;
    padding: 6px 12px;
    border: 1px solid transparent;
    border-radius: 999px;
    font-size: 12px;
    font-weight: 700;
    line-height: 1.2;
    letter-spacing: 0.02em;
    white-space: nowrap;
    transition:
        background-color 0.2s ease,
        border-color 0.2s ease,
        color 0.2s ease;
}

/* ---------------------------------------------------------
   Submitted
   New request waiting for Prayer Team / Pastoral attention.
   --------------------------------------------------------- */
.cpp-prayer-team-detail-page-layout .cpp-prayer-status-badge::before,
.cpp-prayer-team-page-layout .cpp-prayer-status-badge::before {
    content: "";
    display: block;
    width: 7px;
    height: 7px;
    border-radius: 50%;
    background: currentColor;
    flex: 0 0 7px;
}

.cpp-prayer-team-detail-page-layout .cpp-prayer-status-badge.is-submitted,
.cpp-prayer-team-page-layout .cpp-prayer-status-badge.is-submitted {
    color: #1d4ed8;
    background: #eff6ff;
    border-color: #bfdbfe;
}

/* ---------------------------------------------------------
   Being Prayed For
   Active Prayer Team involvement.
   --------------------------------------------------------- */

.cpp-prayer-team-detail-page-layout .cpp-prayer-status-badge.is-praying,
.cpp-prayer-team-detail-page-layout .cpp-prayer-status-praying,
.cpp-prayer-team-page-layout .cpp-prayer-status-praying,
.cpp-prayer-detail-page-layout .cpp-prayer-status-praying {
    color: #6d28d9;
    background: #f5f3ff;
    border-color: #ddd6fe;
}

/* ---------------------------------------------------------
   Pastoral Follow-Up / In Progress
   Active pastoral care or follow-up.
   --------------------------------------------------------- */

.cpp-prayer-team-detail-page-layout .cpp-prayer-status-badge.is-follow-up,
.cpp-prayer-team-detail-page-layout .cpp-prayer-status-pastoral_follow_up,
.cpp-prayer-team-page-layout .cpp-prayer-status-pastoral_follow_up,
.cpp-prayer-detail-page-layout .cpp-prayer-status-pastoral_follow_up {
    color: #b45309;
    background: #fffbeb;
    border-color: #fde68a;
}

/* ---------------------------------------------------------
   Answered
   Prayer has been marked answered.
   --------------------------------------------------------- */

.cpp-prayer-team-detail-page-layout .cpp-prayer-status-badge.is-answered,
.cpp-prayer-team-detail-page-layout .cpp-prayer-status-answered,
.cpp-prayer-team-page-layout .cpp-prayer-status-answered,
.cpp-prayer-detail-page-layout .cpp-prayer-status-answered {
    color: #047857;
    background: #ecfdf5;
    border-color: #a7f3d0;
}

/* ---------------------------------------------------------
   Closed
   Request workflow has ended.
   --------------------------------------------------------- */

.cpp-prayer-team-detail-page-layout .cpp-prayer-status-badge.is-closed,
.cpp-prayer-team-detail-page-layout .cpp-prayer-status-closed,
.cpp-prayer-team-page-layout .cpp-prayer-status-closed,
.cpp-prayer-detail-page-layout .cpp-prayer-status-closed {
    color: #475569;
    background: #f8fafc;
    border-color: #cbd5e1;
}

.cpp-ministry-page-layout .birthday-background .cpp-ministry-birthdays {
    background-image: url('https://estacadachurch.com/wp-content/uploads/2026/09/upcoming-birthday-background.webp');
    background-size: cover;
    background-position: left center;
    background-repeat: no-repeat;
    position: relative;
    overflow: hidden;
}
.cpp-ministry-page-layout .birthday-background .cpp-ministry-birthdays::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #1a1a1a;
    opacity: 0.6;
}
.cpp-ministry-page-layout .birthday-background .cpp-ministry-birthdays .cpp-widget-heading h2 {
    color: #fff;
    text-shadow: 0px 1px 1px #1a1a1a;
}
.cpp-ministry-page-layout .birthday-background .cpp-ministry-birthdays .cpp-portal-section-description {
    color: #fff;
    text-shadow: 0px 1px 1px #1a1a1a;
}

.cpp-ministry-overview-grid .cpp-ministry-events {
    background-image: url('https://estacadachurch.com/wp-content/uploads/2026/09/upcoming-ministry-events.webp');
    background-size: cover;
    background-position: left center;
    background-repeat: no-repeat;
    position: relative;
    overflow: hidden;
}
.cpp-ministry-overview-grid .cpp-ministry-events::before {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background-color: #1a1a1a;
    opacity: 0.6;
}
.cpp-ministry-overview-grid .cpp-ministry-events .cpp-widget-heading h2 {
    color: #fff;
    text-shadow: 0px 1px 1px #1a1a1a;
}
.cpp-ministry-overview-grid .cpp-ministry-events .cpp-portal-section-description {
    color: #fff;
    text-shadow: 0px 1px 1px #1a1a1a;
}

.cpp-ministry-page-layout .greetings-background .cpp-greetings-widget {
    position: relative;
    overflow: hidden;

    background:
        /* Small decorative dots */
        radial-gradient(circle at 8% 12%, #f2b544 0 3px, transparent 4px),
        radial-gradient(circle at 14% 18%, #d94b5b 0 2px, transparent 3px),
        radial-gradient(circle at 92% 15%, #3157a4 0 3px, transparent 4px),
        radial-gradient(circle at 87% 22%, #f2b544 0 2px, transparent 3px),

        /* Soft corner glows */
        radial-gradient(
            circle at 0% 0%,
            rgba(242, 181, 68, 0.18) 0%,
            transparent 30%
        ),

        radial-gradient(
            circle at 100% 0%,
            rgba(49, 87, 164, 0.12) 0%,
            transparent 32%
        ),

        radial-gradient(
            circle at 0% 100%,
            rgba(217, 75, 91, 0.10) 0%,
            transparent 30%
        ),

        radial-gradient(
            circle at 100% 100%,
            rgba(242, 181, 68, 0.12) 0%,
            transparent 30%
        ),

        /* Paper-like base */
        linear-gradient(
            135deg,
            #fffdf8 0%,
            #ffffff 45%,
            #fffaf1 100%
        );

    min-height: 100%;
}

.cpp-ministry-page-layout .greetings-background .cpp-greetings-widget::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;
    background-image:
        linear-gradient(
            rgba(49, 87, 164, 0.035) 1px,
            transparent 1px
        );
    background-size: 100% 42px; 
    opacity: 0.7;
}


/* =========================================
   Decorative Envelope Shape
========================================= */

.cpp-ministry-page-layout .greetings-background .cpp-greetings-widget::after {
    content: "✉";
    position: absolute;
    right: 5%;
    top: 0px;
    font-size: 180px;
    line-height: 1;
    color: rgba(49, 87, 164, 0.035);
    transform: rotate(-10deg);
    pointer-events: none;
        border-radius: 0;
    background: transparent;
}


/* Keep actual page content above decorations */

.cpp-ministry-page-layout .greetings-background .cpp-greetings-widget > * {
    position: relative;
    z-index: 2;
}

.cpp-ministry-page-layout .ministries-background {
    position: relative;
    overflow: hidden;

    background:
        /* Top-left blue glow */
        radial-gradient(
            circle at 8% 8%,
            rgba(0, 87, 243, 0.12) 0%,
            transparent 30%
        ),

        /* Top-right gold glow */
        radial-gradient(
            circle at 92% 12%,
            rgba(242, 181, 68, 0.16) 0%,
            transparent 28%
        ),

        /* Bottom-left red glow */
        radial-gradient(
            circle at 10% 92%,
            rgba(220, 38, 38, 0.10) 0%,
            transparent 28%
        ),

        /* Bottom-right yellow glow */
        radial-gradient(
            circle at 90% 88%,
            rgba(255, 199, 0, 0.12) 0%,
            transparent 30%
        ),

        /* Subtle connecting lines */
        repeating-linear-gradient(
            120deg,
            transparent 0,
            transparent 65px,
            rgba(0, 87, 243, 0.025) 65px,
            rgba(0, 87, 243, 0.025) 66px
        ),

        /* Main light background */
        linear-gradient(
            135deg,
            #f8fbff 0%,
            #ffffff 48%,
            #fffaf0 100%
        );

    min-height: 100%;
}

/* =========================================
   Decorative Network Pattern
========================================= */

.cpp-ministry-page-layout .ministries-background::before {
    content: "";
    position: absolute;
    inset: 0;
    pointer-events: none;

    background:
        radial-gradient(circle at 15% 30%, rgba(0,87,243,.22) 0 3px, transparent 4px),
        radial-gradient(circle at 25% 20%, rgba(242,181,68,.24) 0 3px, transparent 4px),
        radial-gradient(circle at 35% 32%, rgba(220,38,38,.18) 0 3px, transparent 4px),

        radial-gradient(circle at 70% 25%, rgba(0,87,243,.18) 0 3px, transparent 4px),
        radial-gradient(circle at 80% 35%, rgba(242,181,68,.22) 0 3px, transparent 4px),

        radial-gradient(circle at 20% 78%, rgba(242,181,68,.20) 0 3px, transparent 4px),
        radial-gradient(circle at 32% 86%, rgba(0,87,243,.18) 0 3px, transparent 4px),

        radial-gradient(circle at 78% 80%, rgba(220,38,38,.16) 0 3px, transparent 4px),
        radial-gradient(circle at 88% 72%, rgba(255,199,0,.22) 0 3px, transparent 4px);

    opacity: 0.75;
}


/* =========================================
   Large Subtle Ministry Symbol
========================================= */

.cpp-ministry-page-layout .ministries-background::after {
    content: "✦";
    position: absolute;
    right: 5%;
    top: 15px;
    font-size: 220px;
    line-height: 1;
    color: #6F2D96;
    transform: rotate(12deg);
    pointer-events: none;
    opacity: 0.2;
}


/* Keep content above background graphics */

.cpp-ministry-page-layout .ministries-background > * {
    position: relative;
    z-index: 2;
}

/* =========================================================
   Upcoming Events Background - Dashboard
========================================================= */


/* =========================================================
   SUBTLE CALENDAR GRID
========================================================= */

.cpp-dashboard .cpp-widget.events-background::before {
    content: "";
    position: absolute;
    z-index: -2;
    inset: 0;
    pointer-events: none;

    background-image:
        linear-gradient(
            rgba(0, 87, 243, 0.025) 1px,
            transparent 1px
        ),
        linear-gradient(
            90deg,
            rgba(0, 87, 243, 0.025) 1px,
            transparent 1px
        );

    background-size: 60px 60px;

    /* Fade the grid toward the center/bottom */
    -webkit-mask-image:
        linear-gradient(
            to bottom,
            rgba(0,0,0,.8),
            rgba(0,0,0,.25) 55%,
            transparent
        );

    mask-image:
        linear-gradient(
            to bottom,
            rgba(0,0,0,.8),
            rgba(0,0,0,.25) 55%,
            transparent
        );
}


/* =========================================================
   COLORFUL EVENT DECORATIONS
========================================================= */

.cpp-dashboard .cpp-widget.events-background::after {
    content: "";
    position: absolute;
    z-index: -1;
    width: 500px;
    height: 500px;
    top: -180px;
    right: -160px;
    pointer-events: none;

    background:
        radial-gradient(
            circle at 30% 30%,
            #0057F3 0 4px,
            transparent 5px
        ),

        radial-gradient(
            circle at 50% 18%,
            #f2b544 0 5px,
            transparent 6px
        ),

        radial-gradient(
            circle at 67% 35%,
            #dc2626 0 3px,
            transparent 4px
        ),

        radial-gradient(
            circle at 38% 55%,
            #ffd52a 0 4px,
            transparent 5px
        ),

        radial-gradient(
            circle at 75% 62%,
            #0057F3 0 3px,
            transparent 4px
        ),

        radial-gradient(
            circle at 55% 78%,
            #f2b544 0 4px,
            transparent 5px
        );

    opacity: .55;

    transform: rotate(12deg);
}


/* =========================================================
   OPTIONAL CONTENT PROTECTION
========================================================= */

.cpp-dashboard .cpp-widget.events-background > * {
    position: relative;
    z-index: 1;
}

.cpp-dashboard .cpp-portal-content-card .eag-front {
    max-width: 100% !important;
    margin: 0 auto !important;
    padding: 0px !important;
}

/* =========================================================
   Basic Accounting Archive
   ========================================================= */

.cpp-basic-accounting .cpp-accounting-archive {
    margin-bottom: 24px;
}

.cpp-basic-accounting .cpp-accounting-archive-form {
    display: flex;
    align-items: flex-end;
    flex-wrap: wrap;
    gap: 16px;
}

.cpp-basic-accounting .cpp-accounting-archive-field {
    display: flex;
    flex-direction: column;
    gap: 7px;
    min-width: 180px;
}

.cpp-basic-accounting .cpp-accounting-archive-field label {
    font-size: 14px;
    font-weight: 600;
}

.cpp-basic-accounting .cpp-accounting-archive-field select {
    width: 100%;
    min-height: 44px;
    padding: 9px 38px 9px 12px;
    border: 1px solid #d0d5dd;
    border-radius: 8px;
    background: #fff;
    font: inherit;
}

.cpp-basic-accounting .cpp-accounting-archive-actions {
    display: flex;
    align-items: flex-end;
}

.cpp-basic-accounting .cpp-accounting-archive-actions .cpp-button {
        display: inline-flex;
    min-height: 42px;
    align-items: center;
    justify-content: center;
    padding: 10px 17px;
    border: 1px solid transparent;
    border-radius: 12px;
    background: linear-gradient(135deg, var(--cpp-primary, #1d4ed8), var(--cpp-primary-dark, #1e3a8a));
    color: #ffffff;
    text-decoration: none;
    font-size: 14px;
    font-weight: 700;
    box-shadow: 0 8px 18px rgba(29, 78, 216, .2);
    transition: transform .18s ease, box-shadow .18s ease;
}

.cpp-basic-accounting .cpp-accounting-archive-actions .cpp-button:hover,
.cpp-basic-accounting .cpp-accounting-archive-actions .cpp-button:focus {
    color: #ffffff;
    transform: translateY(-2px);
    box-shadow: 0 12px 24px rgba(29, 78, 216, .26);
}


/* Current accounting period */

.cpp-basic-accounting .cpp-period-heading {
    display: flex;
    align-items: flex-end;
    justify-content: space-between;
    gap: 20px;
    margin: 0 0 18px;
}

.cpp-basic-accounting .cpp-period-heading h2 {
        margin: 0 0 10px;
    color: var(--cpp-text-heading);
    font-size: 24px;
    font-weight: 740;
    letter-spacing: -.025em;
    line-height: 1.3;
}

.cpp-basic-accounting .cpp-period-heading h2 small {
    display: block;
    margin-top: 4px;
    font-size: 14px;
    font-weight: 500;
    opacity: 0.7;
}

.cpp-basic-accounting .cpp-period-kicker {
    font-size: 14px;
    opacity: 0.7;
}



@media (max-width: 767px) {

    .cpp-accounting-archive-form {
        display: grid;
        grid-template-columns: 1fr;
    }

    .cpp-accounting-archive-field {
        width: 100%;
        min-width: 0;
    }

    .cpp-accounting-archive-actions {
        width: 100%;
    }

    .cpp-accounting-archive-actions .cpp-button {
        width: 100%;
    }

    .cpp-period-heading {
        align-items: flex-start;
        flex-direction: column;
        gap: 6px;
    }
    .cpp-ministry-page-layout .ministries-background::before {
        background: transparent;
    }
    .cpp-ministry-page-layout .ministries-background::after {
        right: -40%;
    }
}


/* =========================================================
   MOBILE
========================================================= */

@media (max-width: 767px) {

    .cpp-dashboard .cpp-widget.events-background::before {
        background-size: 45px 45px;
    }
    
    .cpp-dashboard .cpp-widget.events-background::after {
        width: 350px;
        height: 350px;
        top: -130px;
        right: -150px;
        opacity: .4;
    }
 
}

/* =========================================================
 * DASHBOARD GREETING POPUP
 * ======================================================= */

.cpp-dashboard-greeting-popup {
    position: fixed;
    inset: 0;
    z-index: 99999;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: 24px;
}

/* ---------------------------------------------------------
 * Backdrop
 * ------------------------------------------------------ */

.cpp-dashboard-greeting-backdrop {
    position: absolute;
    inset: 0;
    background:
        rgba(10, 15, 28, 0.68);
    backdrop-filter:
        blur(8px);

    -webkit-backdrop-filter:
        blur(8px);
    animation:
        cppGreetingBackdropIn
        240ms ease both;
}

/* ---------------------------------------------------------
 * Card
 * ------------------------------------------------------ */

.cpp-dashboard-greeting-card {
    --greeting-primary: #7c3aed;
    --greeting-secondary: #a855f7;
    --greeting-soft: #f7f2ff;
    --greeting-soft-2: #eee5ff;
    --greeting-border: #d8b4fe;
    --greeting-heading: #4c1d95;
    --greeting-text: #34303e;

    position: relative;
    z-index: 2;
    width: min(100%, 700px);

    max-height:
        min(
            780px,
            calc(100vh - 48px)
        );

    overflow: hidden;
    border:
        1px solid
        var(--greeting-border);

    border-radius: 28px;

    color:
        var(--greeting-text);

    background:
        linear-gradient(
            145deg,
            #ffffff 0%,
            var(--greeting-soft) 58%,
            var(--greeting-soft-2) 100%
        );

    box-shadow:
        0 40px 100px
            rgba(0, 0, 0, 0.32),
        0 10px 30px
            rgba(15, 23, 42, 0.16);

    isolation: isolate;

    animation:
        cppGreetingCardIn
        420ms
        cubic-bezier(
            0.16,
            1,
            0.3,
            1
        )
        both;
}


/*
 * Colored top accent.
 */
.cpp-dashboard-greeting-card::after {
    content: "";
    position: absolute;
    z-index: 4;
    top: 0;
    left: 0;
    right: 0;
    height: 6px;

    background:
        linear-gradient(
            90deg,
            var(--greeting-primary),
            var(--greeting-secondary)
        );
}


/* ---------------------------------------------------------
 * Decorative background
 * ------------------------------------------------------ */

.cpp-dashboard-greeting-decoration {
    position: absolute;
    inset: 0;
    z-index: -1;
    overflow: hidden;
    pointer-events: none;
}


.cpp-greeting-decoration-circle {
    position: absolute;
    display: block;
    border-radius: 50%;
    filter:
        blur(2px);
}


.cpp-greeting-decoration-circle-one {
    width: 280px;
    height: 280px;
    top: -145px;
    left: -120px;
    background:
        color-mix(
            in srgb,
            var(--greeting-primary) 16%,
            transparent
        );
}


.cpp-greeting-decoration-circle-two {
    width: 330px;
    height: 330px;
    right: -170px;
    bottom: -180px;
    background:
        color-mix(
            in srgb,
            var(--greeting-secondary) 14%,
            transparent
        );
}


.cpp-greeting-decoration-sparkle {
    position: absolute;
    color:
        var(--greeting-primary);

    opacity: 0.16;
    font-size: 32px;
}


.cpp-greeting-decoration-sparkle-one {
    top: 74px;
    right: 76px;
    transform:
        rotate(14deg);
}


.cpp-greeting-decoration-sparkle-two {
    right: 38px;
    bottom: 120px;
    font-size: 22px;
    transform:
        rotate(-18deg);
}


/* ---------------------------------------------------------
 * Inner scrollable content
 * ------------------------------------------------------ */

.cpp-dashboard-greeting-card-inner {
    position: relative;
    z-index: 2;
    background-color: #fff;
    max-height:
        min(
            780px,
            calc(100vh - 48px)
        );

    overflow-y: auto;

    padding:
        48px 50px 40px;

    scrollbar-width: thin;

    scrollbar-color:
        var(--greeting-border)
        transparent;
}


/* ---------------------------------------------------------
 * Close X
 * ------------------------------------------------------ */

.cpp-dashboard-greeting-card .cpp-dashboard-greeting-close-icon {
    position: absolute;
    z-index: 20;
    top: 18px;
    right: 18px;
    display: grid;
    place-items: center;
    width: 40px;
    height: 40px;
    margin: 0;
    padding: 0;
    border:
        1px solid
        rgba(255, 255, 255, 0.65);

    border-radius: 50%;
    color: #334155;
    background:
        rgba(255, 255, 255, 0.76);

    box-shadow:
        0 5px 18px
        rgba(15, 23, 42, 0.08);

    backdrop-filter:
        blur(12px);

    -webkit-backdrop-filter:
        blur(12px);

    font-family: inherit;

    font-size: 25px;
    font-weight: 300;
    line-height: 1;

    cursor: pointer;

    transition:
        transform 160ms ease,
        background-color 160ms ease;
}


.cpp-dashboard-greeting-close-icon:hover {
    transform:
        rotate(6deg)
        scale(1.05);

    background: #fff;
}


/* ---------------------------------------------------------
 * Category
 * ------------------------------------------------------ */

.cpp-dashboard-greeting-category {
    display: inline-flex;
    align-items: center;
    gap: 9px;
    margin:
        0 0 18px;

    color:
        var(--greeting-primary);

    font-size: 12px;
    font-weight: 800;
    line-height: 1.2;
    letter-spacing: 0.09em;
    text-transform: uppercase;
}


.cpp-dashboard-greeting-category-icon {
    display: inline-grid;
    place-items: center;
    width: 28px;
    height: 28px;
    flex:
        0 0 28px;

    border-radius: 50%;
    color: #fff;
    background:
        linear-gradient(
            135deg,
            var(--greeting-primary),
            var(--greeting-secondary)
        );

    box-shadow:
        0 4px 12px
        color-mix(
            in srgb,
            var(--greeting-primary) 25%,
            transparent
        );
}


/* ---------------------------------------------------------
 * Title
 * ------------------------------------------------------ */

.cpp-dashboard-greeting-title {
    max-width: 500px;
    margin:
        0 0 25px;

    padding-right: 32px;
    color:
        var(--greeting-heading);

    font-family:
        Georgia,
        "Times New Roman",
        serif;

    font-size:
        clamp(
            32px,
            5vw,
            46px
        );

    font-weight: 700;
    line-height: 1.08;
    letter-spacing:
        -0.035em;
}


/* ---------------------------------------------------------
 * Sender
 * ------------------------------------------------------ */

.cpp-dashboard-greeting-sender {
    display: flex;
    align-items: center;
    gap: 13px;
    margin-bottom: 25px;
}


.cpp-dashboard-greeting-avatar {
    display: grid;
    place-items: center;
    width: 48px;
    height: 48px;
    flex:
        0 0 48px;

    border:
        3px solid
        rgba(255, 255, 255, 0.95);

    border-radius: 50%;
    color: #fff;
    background:
        linear-gradient(
            135deg,
            var(--greeting-primary),
            var(--greeting-secondary)
        );

    box-shadow:
        0 5px 16px
        rgba(15, 23, 42, 0.14);

    font-size: 16px;
    font-weight: 800;
}


.cpp-dashboard-greeting-sender-details {
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
}


.cpp-dashboard-greeting-sender-details strong {
    color: #172033;
    font-size: 14px;
    font-weight: 750;
    line-height: 1.35;
}


.cpp-dashboard-greeting-sender-details span {
    color: #687386;
    font-size: 12px;
    line-height: 1.35;
}


/* ---------------------------------------------------------
 * Message
 * ------------------------------------------------------ */

.cpp-dashboard-greeting-message {
    position: relative;
    max-width: 510px;
    color:
        var(--greeting-text);

    font-size: 16px;
    line-height: 1.75;
}

#cpp-greeting-modal .cpp-dashboard-greeting-message {
    max-width: 100%;
}


.cpp-dashboard-greeting-message p {
    margin:
        0 0 14px;
}


.cpp-dashboard-greeting-message p:last-child {
    margin-bottom: 0;
}


/* ---------------------------------------------------------
 * Divider
 * ------------------------------------------------------ */

.cpp-dashboard-greeting-divider {
    display: flex;
    align-items: center;
    gap: 12px;
    margin:
        30px 0 25px;
    color:
        var(--greeting-primary);
}


.cpp-dashboard-greeting-divider span {
    width: 48px;
    height: 1px;

    background:
        var(--greeting-border);
}


.cpp-dashboard-greeting-divider i {
    font-size: 15px;
    font-style: normal;
}


/* ---------------------------------------------------------
 * Buttons
 * ------------------------------------------------------ */

.cpp-dashboard-greeting-actions {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 12px;
}

.cpp-dashboard-greeting-actions .cpp-dashboard-greeting-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    min-height: 48px;
    padding: 11px 21px;
    border-radius: 12px;
    font-family: inherit;
    font-size: 14px;
    font-weight: 750;
    line-height: 1;
    text-decoration: none;
    cursor: pointer;
    transition:
        transform 160ms ease,
        box-shadow 160ms ease,
        background-color 160ms ease;
}

.cpp-dashboard-greeting-actions .cpp-dashboard-greeting-button-close {
    border: 1px solid #d9dee7;
    color: #374151;
    background:
        rgba(
            255,
            255,
            255,
            0.78
        );
}

.cpp-dashboard-greeting-actions .cpp-dashboard-greeting-button-close:hover {
    color: #374151;
    background: #fff;
    transform: translateY(-2px);
}

.cpp-dashboard-greeting-actions .cpp-dashboard-greeting-button-view {
    border:
        1px solid
        var(--greeting-primary);

    color: #fff;
    background:
        linear-gradient(
            135deg,
            var(--greeting-primary),
            var(--greeting-secondary)
        );

    box-shadow:
        0 9px 24px
        color-mix(
            in srgb,
            var(--greeting-primary) 27%,
            transparent
        );
}

.cpp-dashboard-greeting-actions .cpp-dashboard-greeting-button-view:hover {
    color: #fff;
    transform: translateY(-2px);

    box-shadow:
        0 12px 28px
        color-mix(
            in srgb,
            var(--greeting-primary) 34%,
            transparent
        );
}


/* ---------------------------------------------------------
 * Focus accessibility
 * ------------------------------------------------------ */

.cpp-dashboard-greeting-button:focus-visible,
.cpp-dashboard-greeting-close-icon:focus-visible {
    outline:
        3px solid
        color-mix(
            in srgb,
            var(--greeting-primary) 40%,
            #ffffff
        );

    outline-offset: 3px;
}


/* =========================================================
 * CATEGORY THEMES
 * ======================================================= */


/* Birthday */

.cpp-dashboard-greeting-card[data-greeting-theme="birthday"] {
    --greeting-primary: #ec1672;
    --greeting-secondary: #ff4b9b;
    --greeting-soft: #fff0f7;
    --greeting-soft-2: #ffe1ef;
    --greeting-border: #ffadd0;
    --greeting-heading: #bd145c;
    padding-left: 160px;
    position: relative;
    overflow: hidden;
}
.cpp-dashboard-greeting-card[data-greeting-theme="birthday"]:before {
    content: "";
    position: absolute;
    top: 0;
    left: -65px;
    width: 100%;
    height: 100%;
    background-image: url('https://estacadachurch.com/wp-content/uploads/2026/09/birthday-art-1.webp');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: left center;
}


/* Anniversary */

.cpp-dashboard-greeting-card[data-greeting-theme="anniversary"] {
    --greeting-primary: #a66a18;
    --greeting-secondary: #d99b38;
    --greeting-soft: #fff9eb;
    --greeting-soft-2: #f8efd6;
    --greeting-border: #dfc181;
    --greeting-heading: #5d3713;
    padding-left: 160px;
    position: relative;
    overflow: hidden;
}
.cpp-dashboard-greeting-card[data-greeting-theme="anniversary"]:before {
    content: "";
    position: absolute;
    top: 0;
    left: -65px;
    width: 100%;
    height: 100%;
    background-image: url('https://estacadachurch.com/wp-content/uploads/2026/09/anniversary-1.webp');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: left center;
}

/* Get Well Soon */

.cpp-dashboard-greeting-card[data-greeting-theme="get-well"] {
    --greeting-primary: #009f91;
    --greeting-secondary: #19c7b5;
    --greeting-soft: #edfffc;
    --greeting-soft-2: #d7f7f2;
    --greeting-border: #8ddfd4;
    --greeting-heading: #08665e;
    padding-left: 160px;
    position: relative;
    overflow: hidden;
}
.cpp-dashboard-greeting-card[data-greeting-theme="get-well"]:before {
    content: "";
    position: absolute;
    top: 0;
    left: -65px;
    width: 100%;
    height: 100%;
    background-image: url('https://estacadachurch.com/wp-content/uploads/2026/09/get-well-soon-1.webp');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: left center;
}

/* Thinking of You */

.cpp-dashboard-greeting-card[data-greeting-theme="thinking-of-you"] {
    --greeting-primary: #7839db;
    --greeting-secondary: #a25bea;
    --greeting-soft: #f8f3ff;
    --greeting-soft-2: #eee3ff;
    --greeting-border: #c8a9ef;
    --greeting-heading: #54209a;
    padding-left: 160px;
    position: relative;
    overflow: hidden;
}
.cpp-dashboard-greeting-card[data-greeting-theme="thinking-of-you"]:before {
    content: "";
    position: absolute;
    top: 0;
    left: -65px;
    width: 100%;
    height: 100%;
    background-image: url('https://estacadachurch.com/wp-content/uploads/2026/09/thinking.webp');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: left center;
}

/* Sympathy */

.cpp-dashboard-greeting-card[data-greeting-theme="sympathy"] {
    --greeting-primary: #526477;
    --greeting-secondary: #71869a;
    --greeting-soft: #f6f8fa;
    --greeting-soft-2: #e8eef3;
    --greeting-border: #bcc8d2;
    --greeting-heading: #26394b;
    padding-left: 160px;
    position: relative;
    overflow: hidden;
}
.cpp-dashboard-greeting-card[data-greeting-theme="sympathy"]:before {
    content: "";
    position: absolute;
    top: 0;
    left: -65px;
    width: 100%;
    height: 100%;
    background-image: url('https://estacadachurch.com/wp-content/uploads/2026/09/sympathy.webp');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: left center;
}

/* Congratulations */

.cpp-dashboard-greeting-card[data-greeting-theme="congratulations"] {
    --greeting-primary: #f06400;
    --greeting-secondary: #ff9c1a;
    --greeting-soft: #fff8e9;
    --greeting-soft-2: #ffedc7;
    --greeting-border: #ffc86f;
    --greeting-heading: #bd4800;
    padding-left: 160px;
    position: relative;
    overflow: hidden;
}
.cpp-dashboard-greeting-card[data-greeting-theme="congratulations"]:before {
    content: "";
    position: absolute;
    top: 0;
    left: -65px;
    width: 100%;
    height: 100%;
    background-image: url('https://estacadachurch.com/wp-content/uploads/2026/09/congratulations.webp');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: left center;
}


/* New Baby */

.cpp-dashboard-greeting-card[data-greeting-theme="new-baby"] {
    --greeting-primary: #ec4b92;
    --greeting-secondary: #ff85b9;
    --greeting-soft: #fff4fa;
    --greeting-soft-2: #ffe4f0;
    --greeting-border: #f8b4d2;
    --greeting-heading: #c72e72;
    padding-left: 160px;
    position: relative;
    overflow: hidden;
}
.cpp-dashboard-greeting-card[data-greeting-theme="new-baby"]:before {
    content: "";
    position: absolute;
    top: 0;
    left: -65px;
    width: 100%;
    height: 100%;
    background-image: url('https://estacadachurch.com/wp-content/uploads/2026/09/new-baby.webp');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: left center;
}

/* Wedding Blessing */

.cpp-dashboard-greeting-card[data-greeting-theme="wedding"] {
    --greeting-primary: #d63862;
    --greeting-secondary: #ee728e;
    --greeting-soft: #fff5f6;
    --greeting-soft-2: #ffe8eb;
    --greeting-border: #efa7b6;
    --greeting-heading: #a71e43;
    padding-left: 160px;
    position: relative;
    overflow: hidden;
}
.cpp-dashboard-greeting-card[data-greeting-theme="wedding"]:before {
    content: "";
    position: absolute;
    top: 0;
    left: -65px;
    width: 100%;
    height: 100%;
    background-image: url('https://estacadachurch.com/wp-content/uploads/2026/09/wedding.webp');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: left center;
}

/* Baptism */

.cpp-dashboard-greeting-card[data-greeting-theme="baptism"] {
    --greeting-primary: #008bd2;
    --greeting-secondary: #23b9ef;
    --greeting-soft: #eefaff;
    --greeting-soft-2: #d9f3ff;
    --greeting-border: #8bd7f7;
    --greeting-heading: #0065a5;
    padding-left: 160px;
    position: relative;
    overflow: hidden;
}
.cpp-dashboard-greeting-card[data-greeting-theme="baptism"]:before {
    content: "";
    position: absolute;
    top: 0;
    left: -65px;
    width: 100%;
    height: 100%;
    background-image: url('https://estacadachurch.com/wp-content/uploads/2026/09/baptism-1.webp');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: left center;
}

/* Graduation */

.cpp-dashboard-greeting-card[data-greeting-theme="graduation"] {
    --greeting-primary: #064b9b;
    --greeting-secondary: #1676d2;
    --greeting-soft: #f0f7ff;
    --greeting-soft-2: #dcecff;
    --greeting-border: #94bce8;
    --greeting-heading: #073b79;
    padding-left: 160px;
    position: relative;
    overflow: hidden;
}
.cpp-dashboard-greeting-card[data-greeting-theme="graduation"]:before {
    content: "";
    position: absolute;
    top: 0;
    left: -65px;
    width: 100%;
    height: 100%;
    background-image: url('https://estacadachurch.com/wp-content/uploads/2026/09/graduation.webp');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: left center;
}

/* Mother's Day */

.cpp-dashboard-greeting-card[data-greeting-theme="mothers-day"] {
    --greeting-primary: #e51b69;
    --greeting-secondary: #f45a92;
    --greeting-soft: #fff2f7;
    --greeting-soft-2: #ffe0ec;
    --greeting-border: #f5a4c1;
    --greeting-heading: #b91351;
    padding-left: 160px;
    position: relative;
    overflow: hidden;
}
.cpp-dashboard-greeting-card[data-greeting-theme="mothers-day"]:before {
    content: "";
    position: absolute;
    top: 0;
    left: -65px;
    width: 100%;
    height: 100%;
    background-image: url('https://estacadachurch.com/wp-content/uploads/2026/09/mothers-day.webp');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: left center;
}

/* Father's Day */

.cpp-dashboard-greeting-card[data-greeting-theme="fathers-day"] {
    --greeting-primary: #0968bd;
    --greeting-secondary: #3695e3;
    --greeting-soft: #eff8ff;
    --greeting-soft-2: #dceeff;
    --greeting-border: #98c9ef;
    --greeting-heading: #064c8b;
    padding-left: 160px;
    position: relative;
    overflow: hidden;
}
.cpp-dashboard-greeting-card[data-greeting-theme="fathers-day"]:before {
    content: "";
    position: absolute;
    top: 0;
    left: -65px;
    width: 100%;
    height: 100%;
    background-image: url('https://estacadachurch.com/wp-content/uploads/2026/09/fathers-day.webp');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: left center;
}

/* Christmas */

.cpp-dashboard-greeting-card[data-greeting-theme="christmas"] {
    --greeting-primary: #c4141d;
    --greeting-secondary: #df3037;
    --greeting-soft: #fff5f3;
    --greeting-soft-2: #fce5df;
    --greeting-border: #eca59d;
    --greeting-heading: #a40d14;
    padding-left: 160px;
    position: relative;
    overflow: hidden;
}
.cpp-dashboard-greeting-card[data-greeting-theme="christmas"]:before {
    content: "";
    position: absolute;
    top: 0;
    left: -65px;
    width: 100%;
    height: 100%;
    background-image: url('https://estacadachurch.com/wp-content/uploads/2026/09/christmas.webp');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: left center;
}

/* Easter */

.cpp-dashboard-greeting-card[data-greeting-theme="easter"] {
    --greeting-primary: #7932c8;
    --greeting-secondary: #b153dc;
    --greeting-soft: #faf3ff;
    --greeting-soft-2: #eee0fb;
    --greeting-border: #c9a0e8;
    --greeting-heading: #572095;
    padding-left: 160px;
    position: relative;
    overflow: hidden;
}
.cpp-dashboard-greeting-card[data-greeting-theme="easter"]:before {
    content: "";
    position: absolute;
    top: 0;
    left: -65px;
    width: 100%;
    height: 100%;
    background-image: url('https://estacadachurch.com/wp-content/uploads/2026/09/easter.webp');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: left center;
}

/* Thanksgiving */

.cpp-dashboard-greeting-card[data-greeting-theme="thanksgiving"] {
    --greeting-primary: #e55a05;
    --greeting-secondary: #f7931d;
    --greeting-soft: #fff8ed;
    --greeting-soft-2: #ffebcb;
    --greeting-border: #f5bd70;
    --greeting-heading: #af4000;
    padding-left: 160px;
    position: relative;
    overflow: hidden;
}
.cpp-dashboard-greeting-card[data-greeting-theme="thanksgiving"]:before {
    content: "";
    position: absolute;
    top: 0;
    left: -65px;
    width: 100%;
    height: 100%;
    background-image: url('https://estacadachurch.com/wp-content/uploads/2026/09/thanksgiving.webp');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: left center;
}

/* Welcome to Church */

.cpp-dashboard-greeting-card[data-greeting-theme="welcome"] {
    --greeting-primary: #16813b;
    --greeting-secondary: #3cac60;
    --greeting-soft: #f1fbf3;
    --greeting-soft-2: #dff3e4;
    --greeting-border: #9fd4aa;
    --greeting-heading: #0c622b;
    padding-left: 160px;
    position: relative;
    overflow: hidden;
}
.cpp-dashboard-greeting-card[data-greeting-theme="welcome"]:before {
    content: "";
    position: absolute;
    top: 0;
    left: -65px;
    width: 100%;
    height: 100%;
    background-image: url('https://estacadachurch.com/wp-content/uploads/2026/09/welcome.webp');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: left center;
}

/* New Member */

.cpp-dashboard-greeting-card[data-greeting-theme="new-member"] {
    --greeting-primary: #06969f;
    --greeting-secondary: #28bcc2;
    --greeting-soft: #effcfc;
    --greeting-soft-2: #d8f4f4;
    --greeting-border: #8bd8da;
    --greeting-heading: #086b71;
    padding-left: 160px;
    position: relative;
    overflow: hidden;
}
.cpp-dashboard-greeting-card[data-greeting-theme="new-member"]:before {
    content: "";
    position: absolute;
    top: 0;
    left: -65px;
    width: 100%;
    height: 100%;
    background-image: url('https://estacadachurch.com/wp-content/uploads/2026/09/new-member.webp');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: left center;
}

/* Volunteer Appreciation */

.cpp-dashboard-greeting-card[data-greeting-theme="volunteer"] {
    --greeting-primary: #f05b08;
    --greeting-secondary: #ff8a28;
    --greeting-soft: #fff7ec;
    --greeting-soft-2: #ffe8ca;
    --greeting-border: #f8bb74;
    --greeting-heading: #bd4000;
    padding-left: 160px;
    position: relative;
    overflow: hidden;
}
.cpp-dashboard-greeting-card[data-greeting-theme="volunteer"]:before {
    content: "";
    position: absolute;
    top: 0;
    left: -65px;
    width: 100%;
    height: 100%;
    background-image: url('https://estacadachurch.com/wp-content/uploads/2026/09/volunteer.webp');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: left center;
}

/* Scripture Encouragement */

.cpp-dashboard-greeting-card[data-greeting-theme="scripture"] {
    --greeting-primary: #0876ce;
    --greeting-secondary: #31a5e8;
    --greeting-soft: #f0f9ff;
    --greeting-soft-2: #dcefff;
    --greeting-border: #98cef1;
    --greeting-heading: #07559b;
    padding-left: 160px;
    position: relative;
    overflow: hidden;
}
.cpp-dashboard-greeting-card[data-greeting-theme="scripture"]:before {
    content: "";
    position: absolute;
    top: 0;
    left: -65px;
    width: 100%;
    height: 100%;
    background-image: url('https://estacadachurch.com/wp-content/uploads/2026/09/scripture.webp');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: left center;
}

/* Prayer Follow-Up */

.cpp-dashboard-greeting-card[data-greeting-theme="prayer"] {
    --greeting-primary: #d94a09;
    --greeting-secondary: #f07a20;
    --greeting-soft: #fff8ec;
    --greeting-soft-2: #ffebcb;
    --greeting-border: #f2b56c;
    --greeting-heading: #ad3700;
    padding-left: 160px;
    position: relative;
    overflow: hidden;
}
.cpp-dashboard-greeting-card[data-greeting-theme="prayer"]:before {
    content: "";
    position: absolute;
    top: 0;
    left: -65px;
    width: 100%;
    height: 100%;
    background-image: url('https://estacadachurch.com/wp-content/uploads/2026/09/prayer.webp');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: left center;
}

/*
 * ============================================================
 * GREETINGS PAGE
 * CATEGORY-THEMED DETAIL MODAL
 *
 * Reuses:
 * .cpp-dashboard-greeting-card
 * [data-greeting-theme]
 * ============================================================
 */


/*
 * The standard Ministry modal dialog becomes
 * the themed Greeting card.
 */
#cpp-greeting-modal .cpp-ministry-detail-dialog.cpp-dashboard-greeting-card {
    width: min(
        750px,
        calc(100vw - 32px)
    );

    max-width: 750px;
    max-height: calc(
        100vh - 40px
    );

    overflow-y: auto;
    padding: 0;
    border:
        1px solid
        var(
            --greeting-border,
            #e5e7eb
        );

    border-radius: 28px;
    background:
        linear-gradient(
            145deg,
            var(
                --greeting-soft,
                #ffffff
            ) 0%,
            #ffffff 48%,
            var(
                --greeting-soft-2,
                #f8fafc
            ) 100%
        );

    box-shadow:
        0 30px 80px
        rgba(
            15,
            23,
            42,
            0.24
        );

    isolation: isolate;
}

/*
 * Body must not add the old generic
 * Ministry modal spacing.
 */
#cpp-greeting-modal .cpp-ministry-detail-body {
    position: relative;
    padding: 0;
}

/*
 * Main card content.
 */
#cpp-greeting-modal .cpp-dashboard-greeting-card-inner {
    position: relative;
    z-index: 2;
    padding: 42px 42px 36px;
}

#cpp-greeting-modal .cpp-dashboard-greeting-card .cpp-ministry-detail-body {
position: relative;
overflow: hidden;
}
#cpp-greeting-modal .cpp-dashboard-greeting-card .cpp-ministry-detail-body {
    padding-left: 130px;
}
#cpp-greeting-modal .cpp-dashboard-greeting-card[data-greeting-theme="birthday"] .cpp-ministry-detail-body:before {
    content: "";
    position: absolute;
    top: 0;
    left: -65px;
    width: 100%;
    height: 100%;
    background-image: url('https://estacadachurch.com/wp-content/uploads/2026/09/birthday-art-1.webp');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: left center;
}
#cpp-greeting-modal .cpp-dashboard-greeting-card[data-greeting-theme="anniversary"] .cpp-ministry-detail-body:before {
    content: "";
    position: absolute;
    top: 0;
    left: -65px;
    width: 100%;
    height: 100%;
    background-image: url('https://estacadachurch.com/wp-content/uploads/2026/09/anniversary-1.webp');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: left center;
}
#cpp-greeting-modal .cpp-dashboard-greeting-card[data-greeting-theme="get-well"] .cpp-ministry-detail-body:before {
    content: "";
    position: absolute;
    top: 0;
    left: -65px;
    width: 100%;
    height: 100%;
    background-image: url('https://estacadachurch.com/wp-content/uploads/2026/09/get-well-soon-1.webp');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: left center;
}
#cpp-greeting-modal .cpp-dashboard-greeting-card[data-greeting-theme="thinking-of-you"] .cpp-ministry-detail-body:before {
    content: "";
    position: absolute;
    top: 0;
    left: -65px;
    width: 100%;
    height: 100%;
    background-image: url('https://estacadachurch.com/wp-content/uploads/2026/09/thinking.webp');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: left center;
}
#cpp-greeting-modal .cpp-dashboard-greeting-card[data-greeting-theme="sympathy"] .cpp-ministry-detail-body:before {
    content: "";
    position: absolute;
    top: 0;
    left: -65px;
    width: 100%;
    height: 100%;
    background-image: url('https://estacadachurch.com/wp-content/uploads/2026/09/sympathy.webp');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: left center;
}
#cpp-greeting-modal .cpp-dashboard-greeting-card[data-greeting-theme="congratulations"] .cpp-ministry-detail-body:before {
    content: "";
    position: absolute;
    top: 0;
    left: -65px;
    width: 100%;
    height: 100%;
    background-image: url('https://estacadachurch.com/wp-content/uploads/2026/09/congratulations.webp');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: left center;
}
#cpp-greeting-modal .cpp-dashboard-greeting-card[data-greeting-theme="new-baby"] .cpp-ministry-detail-body:before {
    content: "";
    position: absolute;
    top: 0;
    left: -65px;
    width: 100%;
    height: 100%;
    background-image: url('https://estacadachurch.com/wp-content/uploads/2026/09/new-baby.webp');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: left center;
}
#cpp-greeting-modal .cpp-dashboard-greeting-card[data-greeting-theme="wedding"] .cpp-ministry-detail-body:before {
    content: "";
    position: absolute;
    top: 0;
    left: -65px;
    width: 100%;
    height: 100%;
    background-image: url('https://estacadachurch.com/wp-content/uploads/2026/09/wedding.webp');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: left center;
}
#cpp-greeting-modal .cpp-dashboard-greeting-card[data-greeting-theme="baptism"] .cpp-ministry-detail-body:before {
    content: "";
    position: absolute;
    top: 0;
    left: -65px;
    width: 100%;
    height: 100%;
    background-image: url('https://estacadachurch.com/wp-content/uploads/2026/09/baptism-1.webp');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: left center;
}
#cpp-greeting-modal .cpp-dashboard-greeting-card[data-greeting-theme="graduation"] .cpp-ministry-detail-body:before {
    content: "";
    position: absolute;
    top: 0;
    left: -65px;
    width: 100%;
    height: 100%;
    background-image: url('https://estacadachurch.com/wp-content/uploads/2026/09/graduation.webp');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: left center;
}
#cpp-greeting-modal .cpp-dashboard-greeting-card[data-greeting-theme="mothers-day"] .cpp-ministry-detail-body:before {
    content: "";
    position: absolute;
    top: 0;
    left: -65px;
    width: 100%;
    height: 100%;
    background-image: url('https://estacadachurch.com/wp-content/uploads/2026/09/mothers-day.webp');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: left center;
}
#cpp-greeting-modal .cpp-dashboard-greeting-card[data-greeting-theme="fathers-day"] .cpp-ministry-detail-body:before {
    content: "";
    position: absolute;
    top: 0;
    left: -65px;
    width: 100%;
    height: 100%;
    background-image: url('https://estacadachurch.com/wp-content/uploads/2026/09/fathers-day.webp');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: left center;
}
#cpp-greeting-modal .cpp-dashboard-greeting-card[data-greeting-theme="christmas"] .cpp-ministry-detail-body:before {
    content: "";
    position: absolute;
    top: 0;
    left: -65px;
    width: 100%;
    height: 100%;
    background-image: url('https://estacadachurch.com/wp-content/uploads/2026/09/christmas.webp');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: left center;
}
#cpp-greeting-modal .cpp-dashboard-greeting-card[data-greeting-theme="easter"] .cpp-ministry-detail-body:before {
    content: "";
    position: absolute;
    top: 0;
    left: -65px;
    width: 100%;
    height: 100%;
    background-image: url('https://estacadachurch.com/wp-content/uploads/2026/09/easter.webp');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: left center;
}
#cpp-greeting-modal .cpp-dashboard-greeting-card[data-greeting-theme="thanksgiving"] .cpp-ministry-detail-body:before {
    content: "";
    position: absolute;
    top: 0;
    left: -65px;
    width: 100%;
    height: 100%;
    background-image: url('https://estacadachurch.com/wp-content/uploads/2026/09/thanksgiving.webp');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: left center;
}
#cpp-greeting-modal .cpp-dashboard-greeting-card[data-greeting-theme="welcome"] .cpp-ministry-detail-body:before {
    content: "";
    position: absolute;
    top: 0;
    left: -65px;
    width: 100%;
    height: 100%;
    background-image: url('https://estacadachurch.com/wp-content/uploads/2026/09/welcome.webp');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: left center;
}
#cpp-greeting-modal .cpp-dashboard-greeting-card[data-greeting-theme="new-member"] .cpp-ministry-detail-body:before {
    content: "";
    position: absolute;
    top: 0;
    left: -65px;
    width: 100%;
    height: 100%;
    background-image: url('https://estacadachurch.com/wp-content/uploads/2026/09/new-member.webp');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: left center;
}
#cpp-greeting-modal .cpp-dashboard-greeting-card[data-greeting-theme="volunteer"] .cpp-ministry-detail-body:before {
    content: "";
    position: absolute;
    top: 0;
    left: -65px;
    width: 100%;
    height: 100%;
    background-image: url('https://estacadachurch.com/wp-content/uploads/2026/09/volunteer.webp');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: left center;
}
#cpp-greeting-modal .cpp-dashboard-greeting-card[data-greeting-theme="scripture"] .cpp-ministry-detail-body:before {
    content: "";
    position: absolute;
    top: 0;
    left: -65px;
    width: 100%;
    height: 100%;
    background-image: url('https://estacadachurch.com/wp-content/uploads/2026/09/scripture.webp');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: left center;
}
#cpp-greeting-modal .cpp-dashboard-greeting-card[data-greeting-theme="prayer"] .cpp-ministry-detail-body:before {
    content: "";
    position: absolute;
    top: 0;
    left: -65px;
    width: 100%;
    height: 100%;
    background-image: url('https://estacadachurch.com/wp-content/uploads/2026/09/prayer.webp');
    background-size: contain;
    background-repeat: no-repeat;
    background-position: left center;
}

/*
 * Keep the existing modal close button
 * above the decorative artwork.
 */
#cpp-greeting-modal .cpp-ministry-detail-close {
    position: absolute;
    top: 18px;
    right: 18px;
    z-index: 20;
}

/*
 * ============================================================
 * CATEGORY
 * ============================================================
 */

#cpp-greeting-modal .cpp-dashboard-greeting-category {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    margin-bottom: 18px;
    padding: 7px 12px;
    border:
        1px solid
        color-mix(
            in srgb,
            var(--greeting-primary)
            24%,
            transparent
        );

    border-radius: 999px;
    color: var(--greeting-primary);

    background:
        color-mix(
            in srgb,
            var(--greeting-primary)
            8%,
            #ffffff
        );

    font-size: 12px;
    font-weight: 800;
    line-height: 1;
    letter-spacing: 0.07em;
    text-transform: uppercase;
}

#cpp-greeting-modal .cpp-dashboard-greeting-category-icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
    font-size: 15px;
}

/*
 * ============================================================
 * HEADLINE
 * ============================================================
 */

#cpp-greeting-modal .cpp-dashboard-greeting-title {
    position: relative;
    z-index: 2;
    max-width: 520px;

    margin:
        0
        0
        24px;

    color:
        var(
            --greeting-heading,
            #111827
        );

    font-size:
        clamp(
            30px,
            5vw,
            44px
        );

    font-weight: 800;
    line-height: 1.08;
    letter-spacing: -0.035em;
}


/*
 * ============================================================
 * SENDER
 * ============================================================
 */

#cpp-greeting-modal .cpp-dashboard-greeting-sender {
    display: flex;
    align-items: center;
    gap: 12px;
    margin-bottom: 18px;
}

#cpp-greeting-modal .cpp-dashboard-greeting-avatar {
    display: flex;
    flex: 0 0 44px;
    align-items: center;
    justify-content: center;
    width: 44px;
    height: 44px;
    border-radius: 50%;
    color: #ffffff;

    background:
        linear-gradient(
            135deg,
            var(--greeting-primary),
            var(--greeting-secondary)
        );

    box-shadow:
        0 8px 20px
        color-mix(
            in srgb,
            var(--greeting-primary)
            22%,
            transparent
        );

    font-size: 16px;
    font-weight: 800;
}

#cpp-greeting-modal .cpp-dashboard-greeting-sender-details {
    display: flex;
    flex-direction: column;
    gap: 3px;
    min-width: 0;
}

#cpp-greeting-modal .cpp-dashboard-greeting-sender-details strong {
    color:
        var(
            --greeting-heading,
            #111827
        );

    font-size: 14px;
    line-height: 1.3;
}

#cpp-greeting-modal .cpp-dashboard-greeting-sender-details span {
    color: #6b7280;
    font-size: 12px;
}


/*
 * ============================================================
 * REFERENCE / STATUS
 * ============================================================
 */

#cpp-greeting-modal .cpp-greeting-modal-meta {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin-bottom: 14px;
}

#cpp-greeting-modal .cpp-greeting-modal-reference,
#cpp-greeting-modal .cpp-greeting-modal-status {
    display: inline-flex;
    align-items: center;
    min-height: 27px;
    padding: 5px 10px;
    border-radius: 999px;
    font-size: 11px;
    font-weight: 700;
}

#cpp-greeting-modal .cpp-greeting-modal-reference {
    color: #475569;
    background: rgba(
        255,
        255,
        255,
        0.72
    );

    border:
        1px solid
        rgba(
            148,
            163,
            184,
            0.25
        );
}

#cpp-greeting-modal .cpp-greeting-modal-status {
    color: var(--greeting-primary);
    background:
        color-mix(
            in srgb,
            var(--greeting-primary)
            9%,
            #ffffff
        );

    border:
        1px solid
        color-mix(
            in srgb,
            var(--greeting-primary)
            18%,
            transparent
        );
}

/*
 * ============================================================
 * RECIPIENT
 * ============================================================
 */

#cpp-greeting-modal .cpp-greeting-modal-recipient {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-bottom: 18px;
    color: #475569;
    font-size: 13px;
}

#cpp-greeting-modal .cpp-greeting-modal-recipient-label {
    color: #64748b;
}

#cpp-greeting-modal .cpp-greeting-modal-recipient strong {
    color:
        var(
            --greeting-heading,
            #111827
        );
}

/*
 * ============================================================
 * MESSAGE
 * ============================================================
 */

#cpp-greeting-modal .cpp-dashboard-greeting-message {
    position: relative;
    z-index: 2;
    margin-top: 8px;
    color:
        var(
            --greeting-text,
            #334155
        );

    font-size: 16px;
    line-height: 1.75;
}

#cpp-greeting-modal .cpp-dashboard-greeting-message p:first-child {
    margin-top: 0;
}

#cpp-greeting-modal .cpp-dashboard-greeting-message p:last-child {
    margin-bottom: 0;
}

/*
 * ============================================================
 * DECORATIVE DIVIDER
 * ============================================================
 */

#cpp-greeting-modal .cpp-dashboard-greeting-divider {
    /*display: grid;
    grid-template-columns:
        minmax(20px, 1fr)
        auto
        minmax(20px, 1fr);*/

    align-items: center;
    gap: 12px;
    margin: 30px 0 26px;
}

#cpp-greeting-modal .cpp-dashboard-greeting-divider span {
    height: 1px;
    background:
        color-mix(
            in srgb,
            var(--greeting-primary)
            20%,
            transparent
        );
}

#cpp-greeting-modal .cpp-dashboard-greeting-divider i {
    color: var(--greeting-primary);
    font-size: 16px;
    font-style: normal;
}

/*
 * ============================================================
 * CONVERSATION
 * ============================================================
 */

#cpp-greeting-modal .cpp-greeting-conversation {
    position: relative;
    z-index: 3;
    margin: 0;
    padding: 24px;
    border:
        1px solid
        color-mix(
            in srgb,
            var(--greeting-primary)
            13%,
            #e2e8f0
        );

    border-radius: 20px;
    background:
        rgba(
            255,
            255,
            255,
            0.72
        );

    backdrop-filter:
        blur(8px);
}

#cpp-greeting-modal .cpp-greeting-conversation-heading {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 16px;
    margin-bottom: 18px;
}

#cpp-greeting-modal .cpp-greeting-conversation-eyebrow {
    display: block;
    margin-bottom: 4px;
    color: var(--greeting-primary);
    font-size: 10px;
    font-weight: 800;
    letter-spacing: 0.11em;
    text-transform: uppercase;
}

#cpp-greeting-modal .cpp-greeting-conversation-heading h3 {
    margin: 0;
    color:
        var(
            --greeting-heading,
            #111827
        );

    font-size: 19px;
    line-height: 1.3;
}

/*
 * ============================================================
 * REPLIES
 * ============================================================
 */

#cpp-greeting-modal .cpp-greeting-conversation-list {
    display: flex;
    flex-direction: column;
    gap: 12px;
}

#cpp-greeting-modal .cpp-greeting-reply {
    padding: 14px 16px;
    border: 1px solid #e5e7eb;
    border-radius: 15px;
    background: #ffffff;
}

#cpp-greeting-modal .cpp-greeting-reply-mine {
    border-color:
        color-mix(
            in srgb,
            var(--greeting-primary)
            24%,
            #e5e7eb
        );

    background:
        color-mix(
            in srgb,
            var(--greeting-primary)
            6%,
            #ffffff
        );
}

#cpp-greeting-modal .cpp-greeting-reply-heading {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 14px;
    margin-bottom: 7px;
}

#cpp-greeting-modal .cpp-greeting-reply-heading strong {
    color:
        var(
            --greeting-heading,
            #111827
        );

    font-size: 13px;
}

#cpp-greeting-modal .cpp-greeting-reply-heading span {
    color: #94a3b8;
    font-size: 11px;
}

#cpp-greeting-modal .cpp-greeting-reply-message {
    color: #475569;
    font-size: 14px;
    line-height: 1.6;
}

#cpp-greeting-modal .cpp-greeting-conversation-empty {
    padding: 18px;
    border-radius: 14px;
    color: #64748b;
    background:
        rgba(
            248,
            250,
            252,
            0.9
        );

    text-align: center;
}

#cpp-greeting-modal .cpp-greeting-conversation-empty p {
    margin: 0;
}

/*
 * ============================================================
 * REPLY FORM
 * ============================================================
 */

#cpp-greeting-modal .cpp-greeting-reply-form {
    margin-top: 20px;
}

#cpp-greeting-modal .cpp-greeting-reply-form label {
    display: block;
    margin-bottom: 8px;
    color:
        var(
            --greeting-heading,
            #111827
        );

    font-size: 13px;
    font-weight: 700;
}

#cpp-greeting-modal .cpp-greeting-reply-textarea {
    display: block;
    width: 100%;
    min-height: 110px;
    padding: 13px 14px;
    border: 1px solid #dbe2ea;
    border-radius: 13px;
    outline: none;
    color: #334155;
    background: #ffffff;
    font: inherit;
    line-height: 1.55;
    resize: vertical;
    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease;
}

#cpp-greeting-modal .cpp-greeting-reply-textarea:focus {
    border-color:
        var(--greeting-primary);

    box-shadow:
        0 0 0 3px
        color-mix(
            in srgb,
            var(--greeting-primary)
            12%,
            transparent
        );
}

#cpp-greeting-modal .cpp-greeting-reply-feedback {
    min-height: 20px;
    margin-top: 8px;
    color: #64748b;
    font-size: 12px;
}

#cpp-greeting-modal .cpp-greeting-reply-actions {
    display: flex;
    justify-content: flex-end;
    margin-top: 8px;
}

#cpp-greeting-modal .cpp-greeting-reply-submit {
    border-color:
        var(--greeting-primary);

    color: #ffffff;

    background:
        linear-gradient(
            135deg,
            var(--greeting-primary),
            var(--greeting-secondary)
        );

    box-shadow:
        0 8px 20px
        color-mix(
            in srgb,
            var(--greeting-primary)
            18%,
            transparent
        );
}

#cpp-greeting-modal .cpp-greeting-reply-submit:hover {
    transform:
        translateY(-1px);
}


/*
 * ============================================================
 * MOBILE
 * ============================================================
 */

@media (
    max-width: 600px
) {

    #cpp-greeting-modal
    .cpp-ministry-detail-dialog.cpp-dashboard-greeting-card {
        width:
            calc(
                100vw - 20px
            );

        max-height:
            calc(
                100vh - 20px
            );

        border-radius: 22px;
    }


    #cpp-greeting-modal
    .cpp-dashboard-greeting-card-inner {
        padding:
            34px
            20px
            24px;
    }


    #cpp-greeting-modal
    .cpp-dashboard-greeting-title {
        padding-right: 30px;

        font-size:
            clamp(
                27px,
                9vw,
                36px
            );
    }


    #cpp-greeting-modal
    .cpp-greeting-conversation {
        padding:
            18px
            15px;
    }


    #cpp-greeting-modal
    .cpp-greeting-reply-heading {
        align-items: flex-start;

        flex-direction: column;

        gap: 3px;
    }


    #cpp-greeting-modal
    .cpp-greeting-reply-actions {
        display: block;
    }


    #cpp-greeting-modal
    .cpp-greeting-reply-submit {
        width: 100%;
    }

}

/*
 * ============================================================
 * GREETING FACE CARDS
 * CATEGORY COLOR THEMES
 * ============================================================
 */

.cpp-greetings-card-grid .cpp-greeting-template-card {
    --greeting-card-color: #7c3aed;
    border-color:
    color-mix(
        in srgb,
        var(--greeting-card-color) 42%,
        #d7dce5
    );
    transition:
        border-color 0.2s ease,
        box-shadow 0.2s ease,
        transform 0.2s ease;
}

/*
 * Greeting title
 */
.cpp-greetings-card-grid .cpp-greeting-template-card h3 {
    color:
        var(--greeting-card-color);
}

/*
 * Birthday Greeting
 */
.cpp-greetings-card-grid .cpp-greeting-template-card[
    data-greeting-theme="birthday"
] {
    --greeting-card-color: #ec1672;
}


/*
 * Anniversary Greeting
 */
.cpp-greetings-card-grid .cpp-greeting-template-card[
    data-greeting-theme="anniversary"
] {
    --greeting-card-color: #a66a18;
}


/*
 * Get Well Soon
 */
.cpp-greetings-card-grid .cpp-greeting-template-card[
    data-greeting-theme="get-well"
] {
    --greeting-card-color: #009f91;
}


/*
 * Thinking of You
 */
.cpp-greetings-card-grid .cpp-greeting-template-card[
    data-greeting-theme="thinking-of-you"
] {
    --greeting-card-color: #7839db;
}


/*
 * Sympathy
 */
.cpp-greetings-card-grid .cpp-greeting-template-card[
    data-greeting-theme="sympathy"
] {
    --greeting-card-color: #526477;
}


/*
 * Congratulations
 */
.cpp-greetings-card-grid .cpp-greeting-template-card[
    data-greeting-theme="congratulations"
] {
    --greeting-card-color: #f06400;
}


/*
 * New Baby
 */
.cpp-greetings-card-grid .cpp-greeting-template-card[
    data-greeting-theme="new-baby"
] {
    --greeting-card-color: #ec4b92;
}


/*
 * Wedding Blessing
 */
.cpp-greetings-card-grid .cpp-greeting-template-card[
    data-greeting-theme="wedding"
] {
    --greeting-card-color: #d63862;
}


/*
 * Baptism Congratulations
 */
.cpp-greetings-card-grid .cpp-greeting-template-card[
    data-greeting-theme="baptism"
] {
    --greeting-card-color: #008bd2;
}


/*
 * Graduation
 */
.cpp-greetings-card-grid .cpp-greeting-template-card[
    data-greeting-theme="graduation"
] {
    --greeting-card-color: #064b9b;
}


/*
 * Mother's Day
 */
.cpp-greetings-card-grid .cpp-greeting-template-card[
    data-greeting-theme="mothers-day"
] {
    --greeting-card-color: #e51b69;
}


/*
 * Father's Day
 */
.cpp-greetings-card-grid .cpp-greeting-template-card[
    data-greeting-theme="fathers-day"
] {
    --greeting-card-color: #0968bd;
}


/*
 * Christmas Blessing
 */
.cpp-greetings-card-grid .cpp-greeting-template-card[
    data-greeting-theme="christmas"
] {
    --greeting-card-color: #c4141d;
}


/*
 * Easter Greeting
 */
.cpp-greetings-card-grid .cpp-greeting-template-card[
    data-greeting-theme="easter"
] {
    --greeting-card-color: #7932c8;
}


/*
 * Thanksgiving Blessing
 */
.cpp-greetings-card-grid .cpp-greeting-template-card[
    data-greeting-theme="thanksgiving"
] {
    --greeting-card-color: #e55a05;
}


/*
 * Welcome to the Church
 */
.cpp-greetings-card-grid .cpp-greeting-template-card[
    data-greeting-theme="welcome"
] {
    --greeting-card-color: #16813b;
}


/*
 * New Member Welcome
 */
.cpp-greetings-card-grid .cpp-greeting-template-card[
    data-greeting-theme="new-member"
] {
    --greeting-card-color: #06969f;
}


/*
 * Volunteer Appreciation
 */
.cpp-greetings-card-grid .cpp-greeting-template-card[
    data-greeting-theme="volunteer"
] {
    --greeting-card-color: #f05b08;
}


/*
 * Scripture Encouragement
 */
.cpp-greetings-card-grid .cpp-greeting-template-card[
    data-greeting-theme="scripture"
] {
    --greeting-card-color: #0876ce;
}


/*
 * Prayer Follow-Up
 */
.cpp-greetings-card-grid .cpp-greeting-template-card[
    data-greeting-theme="prayer"
] {
    --greeting-card-color: #d94a09;
}

/* =========================================================
 * ANIMATIONS
 * ======================================================= */

@keyframes cppGreetingBackdropIn {

    from {
        opacity: 0;
    }

    to {
        opacity: 1;
    }

}


@keyframes cppGreetingCardIn {

    from {
        opacity: 0;

        transform:
            translateY(22px)
            scale(0.965);
    }

    to {
        opacity: 1;

        transform:
            translateY(0)
            scale(1);
    }

}


/* Respect reduced-motion preferences. */

@media (
    prefers-reduced-motion:
    reduce
) {

    .cpp-dashboard-greeting-popup .cpp-dashboard-greeting-backdrop,
    .cpp-dashboard-greeting-popup .cpp-dashboard-greeting-card {
        animation: none;
    }

    .cpp-dashboard-greeting-popup .cpp-dashboard-greeting-button,
    .cpp-dashboard-greeting-popup .cpp-dashboard-greeting-close-icon {
        transition: none;
    }

}


/* =========================================================
 * MOBILE
 * ======================================================= */

@media (max-width: 600px) {

    .cpp-dashboard-greeting-popup {
        padding: 12px;
    }


    .cpp-dashboard-greeting-popup .cpp-dashboard-greeting-card {
        width:
            calc(100vw - 24px);

        max-height:
            calc(100vh - 24px);

        border-radius: 21px;
    }


    .cpp-dashboard-greeting-popup .cpp-dashboard-greeting-card-inner {
        max-height:
            calc(100vh - 24px);

        padding:
            45px 24px 24px;
    }


    .cpp-dashboard-greeting-popup .cpp-dashboard-greeting-title {
        padding-right: 20px;

        font-size:
            clamp(
                29px,
                9vw,
                38px
            );
    }


    .cpp-dashboard-greeting-popup .cpp-dashboard-greeting-message {
        font-size: 15px;

        line-height: 1.65;
    }


    .cpp-dashboard-greeting-popup .cpp-dashboard-greeting-actions {
        flex-direction:
            column-reverse;

        align-items:
            stretch;
    }


    .cpp-dashboard-greeting-popup .cpp-dashboard-greeting-button {
        width: 100%;
    }


    .cpp-dashboard-greeting-popup .cpp-dashboard-greeting-close-icon {
        top: 12px;
        right: 12px;

        width: 38px;
        height: 38px;
    }


    .cpp-dashboard-greeting-popup .cpp-greeting-decoration-circle-one {
        width: 220px;
        height: 220px;
    }


    .cpp-dashboard-greeting-popup .cpp-greeting-decoration-circle-two {
        width: 250px;
        height: 250px;
    }

}


/* =========================================================
 * Event Request Form
 * ========================================================= */

.cpp-events-page-layout .cpp-event-request-form {
    width: 100%;
}

.cpp-events-page-layout .cpp-event-request-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}

.cpp-events-page-layout .cpp-event-request-field {
    min-width: 0;
    margin-top: 24px;
}

.cpp-events-page-layout .cpp-event-request-field label {
    display: block;
    margin: 0 0 8px;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.4;
    color: #1f2937;
}

.cpp-events-page-layout .cpp-event-request-field label span {
    color: #dc2626;
}

.cpp-events-page-layout .cpp-event-request-field input,
.cpp-events-page-layout .cpp-event-request-field select {
    display: block;
    width: 100%;
    min-height: 48px;
    padding: 11px 14px;
    border: 1px solid #d7dce5;
    border-radius: 10px;
    background: #ffffff;
    color: #1f2937;
    font: inherit;
    box-sizing: border-box;
    transition:
        border-color .2s ease,
        box-shadow .2s ease;
}

.cpp-events-page-layout .cpp-event-request-field textarea {
    display: block;
    width: 100%;
    padding: 11px 14px;
    border: 1px solid #d7dce5;
    border-radius: 10px;
    background: #ffffff;
    color: #1f2937;
    font: inherit;
    box-sizing: border-box;
    transition:
        border-color .2s ease,
        box-shadow .2s ease;
}

.cpp-events-page-layout .cpp-event-request-field input:focus,
.cpp-events-page-layout .cpp-event-request-field textarea:focus,
.cpp-events-page-layout .cpp-event-request-field select:focus {
    border-color: #4f46e5;
    outline: none;
    box-shadow: 0 0 0 3px rgba(79, 70, 229, .12);
}

.cpp-events-page-layout .cpp-event-request-actions {
    display: flex;
    justify-content: flex-end;
    margin-top: 24px;
}

.cpp-events-page-layout .cpp-event-request-submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 46px;
    padding: 11px 20px;
    border: 0;
    border-radius: 10px;
    background: #4f46e5;
    color: #ffffff;
    font: inherit;
    font-weight: 700;
    line-height: 1.2;
    cursor: pointer;
    transition:
        transform .2s ease,
        background-color .2s ease,
        box-shadow .2s ease;
}

.cpp-events-page-layout .cpp-event-request-submit:hover {
    background: #4338ca;
    transform: translateY(-1px);
    box-shadow: 0 8px 20px rgba(79, 70, 229, .18);
}

.cpp-events-page-layout .cpp-event-request-submit:focus-visible {
    outline: 3px solid rgba(79, 70, 229, .25);
    outline-offset: 2px;
}

.cpp-events-page-layout .cpp-event-request-login-notice {
    padding: 24px;
    border: 1px solid #d7dce5;
    border-radius: 12px;
    background: #f8fafc;
}

.cpp-events-page-layout .cpp-event-request-login-notice h3 {
    margin: 0 0 8px;
    color: #1f2937;
}

.cpp-events-page-layout .cpp-event-request-login-notice p {
    margin: 0 0 16px;
    color: #64748b;
}

.cpp-events-page-layout .cpp-event-request-login-link {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 44px;
    padding: 10px 18px;
    border-radius: 9px;
    background: #4f46e5;
    color: #ffffff;
    text-decoration: none;
    font-weight: 700;
}

.cpp-events-page-layout .cpp-event-request-login-link:hover {
    background: #4338ca;
    color: #ffffff;
}

/* =========================================================
 * Event Request Image Upload
 * ========================================================= */

.cpp-events-page-layout .cpp-event-request-image-field {
    margin-top: 24px;
}

.cpp-events-page-layout .cpp-event-request-image-field > label {
    display: block;
    margin: 0 0 8px;
    font-size: 14px;
    font-weight: 700;
    line-height: 1.4;
    color: #1f2937;
}

.cpp-events-page-layout .cpp-event-request-image-field > label span {
    color: #dc2626;
}

.cpp-events-page-layout .cpp-event-request-field-description {
    margin: 0 0 12px;
    color: #64748b;
    font-size: 13px;
    line-height: 1.6;
}

.cpp-events-page-layout .cpp-event-request-upload {
    position: relative;
    overflow: hidden;
    border: 1.5px dashed #c7ced9;
    border-radius: 14px;
    background: #f8fafc;
    transition:
        border-color .2s ease,
        background-color .2s ease,
        box-shadow .2s ease;
}

.cpp-events-page-layout .cpp-event-request-upload:hover {
    border-color: #818cf8;
    background: #f5f3ff;
}

.cpp-events-page-layout .cpp-event-request-upload
input[type="file"] {
    position: absolute;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

.cpp-events-page-layout .cpp-event-request-upload-placeholder {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    min-height: 190px;
    padding: 28px;
    text-align: center;
    cursor: pointer;
}

.cpp-events-page-layout .cpp-event-request-upload-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 52px;
    height: 52px;
    margin-bottom: 12px;
    border-radius: 50%;
    background: #eef2ff;
    color: #4f46e5;
    font-size: 24px;
    font-weight: 800;
}

.cpp-events-page-layout .cpp-event-request-upload-placeholder strong {
    display: block;
    margin-bottom: 5px;
    color: #1f2937;
    font-size: 15px;
}

.cpp-events-page-layout .cpp-event-request-upload-placeholder > span:last-child {
    color: #64748b;
    font-size: 13px;
}

.cpp-events-page-layout .cpp-event-request-image-preview {
    display: grid;
    grid-template-columns: minmax(180px, 260px) minmax(0, 1fr);
    gap: 20px;
    align-items: center;
    padding: 16px;
}

.cpp-events-page-layout .cpp-event-request-image-preview-media {
    overflow: hidden;
    aspect-ratio: 16 / 10;
    border-radius: 10px;
    background: #e5e7eb;
}

.cpp-events-page-layout .cpp-event-request-image-preview-media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.cpp-events-page-layout .cpp-event-request-image-preview-info {
    min-width: 0;
}

.cpp-events-page-layout .cpp-event-request-image-preview-info strong {
    display: block;
    overflow: hidden;
    margin-bottom: 5px;
    color: #1f2937;
    font-size: 14px;
    line-height: 1.5;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.cpp-events-page-layout .cpp-event-request-image-preview-info span {
    display: block;
    margin-bottom: 14px;
    color: #64748b;
    font-size: 13px;
}

.cpp-events-page-layout .cpp-event-request-image-remove {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 38px;
    padding: 8px 13px;
    border: 1px solid #d7dce5;
    border-radius: 8px;
    background: #ffffff;
    color: #374151;
    font: inherit;
    font-size: 13px;
    font-weight: 700;
    cursor: pointer;
    transition:
        border-color .2s ease,
        background-color .2s ease;
}

.cpp-events-page-layout .cpp-event-request-image-remove:hover {
    border-color: #9ca3af;
    background: #f3f4f6;
}

.cpp-events-page-layout .cpp-event-request-image-error {
    margin: 8px 0 0;
    color: #b91c1c;
    font-size: 13px;
    font-weight: 600;
    line-height: 1.5;
}

.cpp-events-page-layout .cpp-event-request-upload:focus-within {
    border-color: #4f46e5;
    box-shadow: 0 0 0 3px rgba(79, 70, 229, .12);
}

.cpp-events-page-layout .cpp-event-request-field-full {
    grid-column: 1 / -1;
}

.cpp-events-page-layout .cpp-event-request-fields-grid {
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 20px;
}

.cpp-events-page-layout .cpp-event-request-field {
    min-width: 0;
}

.cpp-events-page-layout .cpp-event-request-field label,
.cpp-events-page-layout .cpp-event-request-image-field label {
    display: block;
    margin-bottom: 8px;
    font-weight: 600;
}

.cpp-events-page-layout .cpp-event-request-field label span[aria-hidden="true"],
.cpp-events-page-layout .cpp-event-request-image-field label span[aria-hidden="true"] {
    color: #d92d20;
}

.cpp-events-page-layout .cpp-event-request-field input,
.cpp-events-page-layout .cpp-event-request-field textarea,
.cpp-events-page-layout .cpp-event-request-field select {
    width: 100%;
    box-sizing: border-box;
}

.cpp-events-page-layout .cpp-event-request-field textarea {
    min-height: 180px;
    resize: vertical;
}

.cpp-events-page-layout .cpp-event-request-field input[type="date"],
.cpp-events-page-layout .cpp-event-request-field input[type="time"] {
    min-height: 48px;
}

.cpp-events-page-layout .cpp-event-request-actions {
    display: flex;
    justify-content: flex-end;
    margin-top: 24px;
}

.cpp-events-page-layout .cpp-event-request-submit {
    border: 0;
    cursor: pointer;
}

.cpp-events-page-layout .cpp-event-request-notice {
    margin-bottom: 20px;
    padding: 14px 16px;
    border-radius: 10px;
    font-size: 0.95rem;
    line-height: 1.5;
}

.cpp-events-page-layout .cpp-event-request-notice-success {
    border: 1px solid #a7d7b0;
    background: #eef9f0;
    color: #245c2d;
}

.cpp-events-page-layout .cpp-event-request-notice-error {
    border: 1px solid #e3a7a7;
    background: #fff1f1;
    color: #8a2424;
}

.cpp-events-page-layout .cpp-event-request-message {
    margin-bottom: 24px;
    padding: 14px 18px;
    border-radius: 10px;
    font-size: 0.95rem;
    line-height: 1.5;
}

.cpp-events-page-layout .cpp-event-request-message-error {
    border: 1px solid rgba(180, 30, 30, 0.25);
    background: rgba(180, 30, 30, 0.08);
}

.cpp-events-page-layout .cpp-event-request-message-success {
    border: 1px solid rgba(20, 130, 70, 0.25);
    background: rgba(20, 130, 70, 0.08);
}

@media (max-width: 767px) {

    .cpp-events-page-layout .cpp-event-request-grid {
        grid-template-columns: 1fr;
    }

    .cpp-events-page-layout .cpp-event-request-actions {
        justify-content: stretch;
    }

    .cpp-events-page-layout .cpp-event-request-submit {
        width: 100%;
    }
    
    .cpp-events-page-layout .cpp-event-request-image-preview {
        grid-template-columns: 1fr;
    }

    .cpp-events-page-layout .cpp-event-request-image-preview-media {
        width: 100%;
    }

}

@media (max-width: 700px) {

    .cpp-events-page-layout .cpp-event-request-fields-grid {
        grid-template-columns: 1fr;
    }

    .cpp-events-page-layout .cpp-event-request-actions {
        justify-content: stretch;
    }

    .cpp-events-page-layout .cpp-event-request-submit {
        width: 100%;
    }

}

@media (max-width:1024px){
    
    .cpp-dashboard-content .cpp-dashboard-hero-content {
       flex-direction: column;
        justify-content: flex-start;
        align-items: flex-start;
        gap: 20px; 
    }
    .cpp-dashboard .cpp-incident-admin-grid {
        grid-template-columns: repeat(1, minmax(0, 1fr));
    }
    .cpp-dashboard .cpp-incident-page-layout {
        grid-template-columns: repeat(1, minmax(0, 1fr));
    }
    .cpp-attendance-dashboard .cpp-attendance-chart-grid {
        grid-template-columns: repeat(1, minmax(0, 1fr));
    }
    .cpp-dashboard .cpp-greetings-page .cpp-table-responsive {
        margin-left: -4px;
        margin-right: -4px;

        padding-bottom: 6px;
    }
    .cpp-dashboard .cpp-greetings-page .cpp-greetings-table {
        min-width: 800px;
    }
    .cpp-my-prayers-list .cpp-my-prayers-grid {
        grid-template-columns: repeat(1, minmax(0, 1fr));
    }
    .cpp-prayer-team-detail-page-layout .cpp-prayer-management-field {
        width: 100%;
    }
    .cpp-dashboard .cpp-ministry-overview-grid {
        grid-template-columns: repeat(1, minmax(0, 1fr));
    }
    .cpp-dashboard .cpp-ministry-secondary-grid {
        grid-template-columns: repeat(1, minmax(0, 1fr));
    }
    .cpp-dashboard .cpp-portal-hero-primary { width: 70%; }
    .cpp-dashboard .cpp-dashboard-hero .cpp-dashboard-message {
        font-size: 18px;
        line-height: 1.35;
    }
    
}

@media (max-width:767px){
    
    .cpp-dashboard .cpp-datatable-toolbar,
    .cpp-dashboard .cpp-datatable-footer {
        align-items: center;
        flex-direction: row;
        padding: 5px;
    }
    .cpp-my-prayer-conversation .cpp-widget-heading {
            flex-direction: column;
        justify-content: flex-start;
        align-items: flex-start;
        gap: 0px;
    }
    .cpp-prayer-team-detail-page-layout .cpp-prayer-assignment-form .cpp-prayer-assignment-button { width: 150px; }
    .cpp-prayer-team-detail-page-layout .cpp-prayer-assignment-form.cpp-prayer-assignment-select-form .cpp-prayer-assignment-button { width: 180px; }
    .cpp-prayer-pastoral-followup .cpp-widget-heading {
        flex-direction: column;
        justify-content: flex-start;
        align-items: flex-start;
        gap: 0px;
    }
    .cpp-prayer-team-detail-page-layout .cpp-prayer-contact-action { width: 150px; } 
    .cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-meta {
        align-items: flex-start;
        gap: 4px;
    }
    .cpp-prayer-team-detail-page-layout .cpp-prayer-management-actions .cpp-primary-button { width: 160px; }
    .cpp-prayer-team-detail-page-layout .cpp-prayer-team-response-submit { width: 160px; }
    .cpp-dashboard .cpp-widget::before {
        background-size: 45px 45px;
    }
   .events-background::after {
        width: 350px;
        height: 350px;
        top: -130px;
        right: -150px;
        opacity: .4;
    }
    .cpp-dashboard .cpp-dashboard-hero .cpp-dashboard-message { font-size: 16px; }
    .cpp-dashboard .cpp-portal-hero-copy h2 { font-size: 28px; }

    
}

@media (max-width:600px){
    
    .cpp-dashboard .cpp-incident-view-button,
    .cpp-dashboard .cpp-incident-edit-link {
        flex: 0;
    }
    .cpp-dashboard .cpp-portal-section-description { font-size: 14px; }
    .cpp-dashboard .cpp-stats-grid {
        grid-template-columns: repeat(1, minmax(180px, 1fr));
    }
    .cpp-dashboard .cpp-portal-hero-primary { width: 75%; }
    
}

@media (max-width:500px){
    
    .cpp-support-page-layout .cpp-my-support-requests-section .cpp-widget-heading {
        flex-direction: column;
        justify-content: flex-start;
        align-items: flex-start;
        gap: 0;
        margin-bottom: 20px;
    }
    .cpp-support-page-layout .cpp-support-admin-grid > .cpp-widget .cpp-widget-heading {
        flex-direction: column;
        justify-content: flex-start;
        align-items: flex-start;
        gap: 0;
        margin-bottom: 20px;
    }
    .cpp-support-form-section .cpp-support-form-grid { margin-top: 0px; }
    .cpp-dashboard .cpp-portal-datatable-container .cpp-portal-table-filters {
        grid-template-columns: repeat(1, minmax(0, 1fr));
    }
    .cpp-dashboard .cpp-widget .cpp-widget-heading {
        flex-direction: column;
        justify-content: flex-start;
        align-items: flex-start;
        gap: 0;
        margin-bottom: 20px;
    }
    .cpp-dashboard .cpp-portal-hero-primary { width: 90%; }
    .cpp-dashboard .cpp-spiritual-library-nav {
        grid-template-columns: repeat(1, minmax(0, 1fr));
    }
    .cpp-dashboard-widget-layout .cpp-dashboard-quote-card-inner { width: 90%; }
    .cpp-dashboard-greeting-popup .cpp-dashboard-greeting-card { padding-left: 100px!important; }
    #cpp-greeting-modal .cpp-dashboard-greeting-card .cpp-ministry-detail-body { padding-left: 80px; }
    
}

@media (max-width:430px){
    .cpp-dashboard .cpp-portal-hero-primary {
        width: 100%;
        flex-direction: column;
    }
}



