.modal-backdrop{
    position:fixed;
    inset:0;
    display:grid;
    place-items:center;
    padding:22px;
    background:rgba(2,6,14,.88);
    backdrop-filter:blur(7px);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity var(--transition), visibility var(--transition);
    z-index:140;
}

.modal-backdrop.is-open{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
}

.modal-card{
    width:min(100%, 560px);
    border-radius:26px;
    border:1px solid var(--stroke);
    background:linear-gradient(180deg, rgba(19,29,58,.98), rgba(10,18,36,.98));
    box-shadow:var(--shadow-3);
    overflow:hidden;
}

.modal-card--sm{ width:min(100%, 560px); }
.modal-card--md,
.templos-modal-card{ width:min(100%, 680px); }
.modal-card--lg,
.caso-view-modal-card,
.cierre-view-modal-card,
.pastor-view-modal-card,
.atencion-view-modal-card{ width:min(100%, 760px); }
.modal-card--xl,
.pastores-modal-card,
.casos-modal-card,
.cierres-modal-card{ width:min(100%, 860px); }
.modal-card--xxl,
.atenciones-modal-card{ width:min(100%, 920px); }

.modal-head{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:16px;
    padding:22px 22px 16px;
    border-bottom:1px solid rgba(255,255,255,.08);
}

.modal-head h3{ margin:0 0 4px; font-size:20px; }
.modal-head p{ margin:0; color:var(--text-soft); font-size:13px; }

.modal-body{
    padding:20px 22px;
    color:var(--text-soft);
    line-height:1.6;
}

.modal-actions{
    display:flex;
    justify-content:flex-end;
    gap:10px;
    padding:0 22px 22px;
}




.case-view-modal-card{
    max-height:min(88vh, 820px);
    display:flex;
    flex-direction:column;
}

.case-view-modal-card .modal-body{
    overflow:auto;
    padding:16px;
}

.case-view-shell{
    display:flex;
    flex-direction:column;
    gap:12px;
}

.case-view-top{
    display:flex;
    align-items:flex-start;
    justify-content:space-between;
    gap:12px;
    padding:14px 16px;
    border:1px solid rgba(255,255,255,.08);
    border-radius:18px;
    background:
        linear-gradient(135deg, rgba(26,67,128,.20), rgba(14,28,59,.18) 55%, rgba(54,117,198,.08)),
        rgba(255,255,255,.03);
}

.case-view-top-main{
    display:flex;
    flex-direction:column;
    gap:4px;
    min-width:0;
}

.case-view-kicker{
    font-size:11px;
    font-weight:700;
    letter-spacing:.05em;
    text-transform:uppercase;
    color:var(--text-soft);
}

.case-view-top-main h4{
    margin:0;
    font-size:24px;
    line-height:1.05;
    letter-spacing:-.03em;
    color:var(--text);
}

.case-view-top-main p{
    margin:0;
    font-size:14px;
    line-height:1.4;
    color:var(--text-soft);
}

.case-view-top-badges{
    display:flex;
    flex-wrap:wrap;
    justify-content:flex-end;
    gap:8px;
    max-width:280px;
}

.case-view-grid{
    display:grid;
    grid-template-columns:repeat(3, minmax(0, 1fr));
    gap:10px;
}

.case-view-card{
    display:flex;
    flex-direction:column;
    gap:6px;
    padding:12px 14px;
    border-radius:16px;
    border:1px solid rgba(255,255,255,.08);
    background:rgba(255,255,255,.03);
    min-width:0;
}

.case-view-card-wide{
    grid-column:span 3;
}

.case-view-card-full{
    grid-column:span 3;
    background:
        linear-gradient(180deg, rgba(255,255,255,.03), rgba(255,255,255,.02)),
        rgba(16,24,42,.75);
}

.case-view-label{
    font-size:11px;
    font-weight:800;
    letter-spacing:.05em;
    text-transform:uppercase;
    color:var(--text-soft);
}

.case-view-card strong{
    font-size:14px;
    line-height:1.4;
    color:var(--text);
    word-break:break-word;
}

.case-view-text{
    font-size:14px;
    line-height:1.55;
    color:var(--text);
    white-space:pre-wrap;
    word-break:break-word;
}

#cv-nivel-badge,
#cv-estatus-badge,
#cv-derivacion-badge{
    white-space:nowrap;
}

@media (max-width: 860px){
    .case-view-top{
        flex-direction:column;
    }

    .case-view-top-badges{
        justify-content:flex-start;
        max-width:none;
    }

    .case-view-grid{
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }

    .case-view-card-wide,
    .case-view-card-full{
        grid-column:span 2;
    }
}

@media (max-width: 560px){
    .case-view-modal-card{
        max-height:92vh;
    }

    .case-view-modal-card .modal-body{
        padding:12px;
    }

    .case-view-top{
        padding:12px;
        border-radius:16px;
    }

    .case-view-top-main h4{
        font-size:20px;
    }

    .case-view-top-main p{
        font-size:13px;
    }

    .case-view-grid{
        grid-template-columns:1fr;
        gap:8px;
    }

    .case-view-card{
        padding:10px 12px;
        border-radius:14px;
    }

    .case-view-card-wide,
    .case-view-card-full{
        grid-column:span 1;
    }

    .case-view-card strong,
    .case-view-text{
        font-size:13px;
        line-height:1.5;
    }
}


/* =========================================
   LIGHT MODE - CASE VIEW
========================================= */

body.light .case-view-top{
    background:linear-gradient(135deg, rgba(24,76,145,.06), rgba(52,120,199,.04) 55%, rgba(255,255,255,.22)), var(--panel-2);
}

body.light .case-view-card{
    background:var(--panel-2);
    border-color:var(--stroke);
}

body.light .case-view-card-full{
    background:var(--panel-3);
}




