
.fvspf-app{--bg:#0b1722;--panel:#13212e;--panel2:#172836;--line:#29445a;--cyan:#19c8ff;--blue:#168bff;--green:#75f23b;--text:#eef8ff;--muted:#9fb4c5;--warn:#f5b942;--danger:#ff6476;width:100%;max-width:none;margin:0;padding:0;color:var(--text);font-family:inherit}
.fvspf-app *{box-sizing:border-box}.fvspf-hero{display:flex;align-items:center;gap:18px;padding:22px 24px;background:linear-gradient(135deg,#13212e,#182a38);border:1px solid #24435a;border-radius:14px;margin-bottom:18px}.fvspf-icon{width:82px;height:82px;object-fit:contain;flex:0 0 82px}.fvspf-heading{min-width:0;flex:1}.fvspf-title-row{display:flex;align-items:center;gap:12px}.fvspf-title-row h1{margin:0!important;font-size:28px!important;line-height:1.15!important;color:#fff!important}.fvspf-version{margin-left:auto;font-size:11px;border:1px solid #31526a;border-radius:999px;padding:4px 9px;color:#a9c9dc;background:#0e1e2a}.fvspf-heading p{margin:8px 0 0;color:#b7cad7;line-height:1.55;font-size:14px}
.fvspf-search,.fvspf-panel{background:linear-gradient(180deg,#13212e,#172836);border:1px solid #29445a;border-radius:12px;padding:18px 20px;margin:14px 0}.fvspf-search label{display:block;font-weight:700;font-size:13px;margin-bottom:8px}.fvspf-search-row{display:flex;gap:10px}.fvspf-search input{flex:1;min-width:0;background:#091621;border:1px solid #34566d;border-radius:8px;color:#fff;padding:12px 13px;font-size:14px;outline:none}.fvspf-search input:focus{border-color:#19c8ff;box-shadow:0 0 0 2px rgba(25,200,255,.12)}.fvspf-search button{border:0;border-radius:8px;background:linear-gradient(135deg,#168bff,#19c8ff);color:#03121d;font-weight:800;padding:0 20px;cursor:pointer;min-height:44px}.fvspf-search button:disabled{opacity:.55;cursor:wait}.fvspf-msg{min-height:18px;margin-top:8px;font-size:12px;color:#a9c2d3}.fvspf-msg.error{color:#ff8c98}
.fvspf-summary{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin:16px 0}.fvspf-kpi{background:#13212e;border:1px solid #29445a;border-radius:10px;padding:14px}.fvspf-kpi span{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.06em;color:#8faabd}.fvspf-kpi strong{display:block;margin-top:7px;font-size:20px;color:#fff}.fvspf-kpi.ok strong{color:#75f23b}.fvspf-kpi.warning strong{color:#f5b942}.fvspf-kpi.error strong{color:#ff6476}
.fvspf-panel-title{display:flex;align-items:center;justify-content:space-between;gap:12px}.fvspf-panel h2{font-size:16px!important;margin:0 0 12px!important;color:#fff!important}.fvspf-panel-title span{font-size:12px;color:#9fb4c5}.fvspf-record{white-space:pre-wrap;word-break:break-word;margin:0;padding:13px;background:#08131d;border:1px solid #244257;border-radius:8px;color:#c8f0ff;font:12px/1.6 ui-monospace,SFMono-Regular,Consolas,monospace}.fvspf-meter{height:12px;background:#08131d;border:1px solid #27465c;border-radius:999px;overflow:hidden}.fvspf-meter>div{height:100%;width:0;background:linear-gradient(90deg,#75f23b,#19c8ff);transition:width .25s}.fvspf-meter>div.warning{background:#f5b942}.fvspf-meter>div.error{background:#ff6476}.fvspf-note{font-size:12px;color:#9fb4c5;margin-top:8px}
.fvspf-issue{display:flex;gap:9px;align-items:flex-start;padding:9px 0;border-bottom:1px solid rgba(72,107,132,.28);font-size:13px}.fvspf-issue:last-child{border-bottom:0}.fvspf-badge{display:inline-flex;align-items:center;justify-content:center;min-width:72px;padding:3px 7px;border-radius:999px;font-size:10px;text-transform:uppercase;font-weight:800}.fvspf-badge.ok,.fvspf-badge.info{background:rgba(117,242,59,.1);color:#93fb68;border:1px solid rgba(117,242,59,.28)}.fvspf-badge.warning{background:rgba(245,185,66,.1);color:#ffd26f;border:1px solid rgba(245,185,66,.3)}.fvspf-badge.error{background:rgba(255,100,118,.1);color:#ff8997;border:1px solid rgba(255,100,118,.3)}
.fvspf-tree-node{position:relative;margin:6px 0;padding-left:18px}.fvspf-tree-node:before{content:"";position:absolute;left:3px;top:0;bottom:-6px;border-left:1px solid #34566d}.fvspf-tree-card{background:#0d1a25;border:1px solid #29445a;border-radius:8px;padding:9px 11px}.fvspf-tree-name{font-weight:800;color:#dff5ff}.fvspf-tree-via{font-size:10px;margin-left:7px;color:#19c8ff}.fvspf-tree-record{margin-top:4px;color:#93adbf;font:11px/1.45 ui-monospace,Consolas,monospace;word-break:break-word}.fvspf-tree-children{margin-left:16px}
.fvspf-table-wrap{overflow:auto}.fvspf-table{width:100%;border-collapse:collapse;font-size:12px}.fvspf-table th{text-align:left;color:#87a8bc;font-size:10px;text-transform:uppercase;letter-spacing:.05em;padding:8px 9px;border-bottom:1px solid #3a5d74;white-space:nowrap}.fvspf-table td{padding:9px;border-bottom:1px solid rgba(66,98,120,.35);vertical-align:top;color:#dbeaf3}.fvspf-table tr:last-child td{border-bottom:0}.fvspf-code{font-family:ui-monospace,Consolas,monospace;color:#bfefff}.fvspf-rfc p{font-size:12px;color:#a9becd;line-height:1.55}.fvspf-rfc a{color:#19c8ff;text-decoration:none;font-weight:700}
@media(max-width:820px){.fvspf-summary{grid-template-columns:repeat(2,minmax(0,1fr))}.fvspf-hero{align-items:flex-start}.fvspf-icon{width:66px;height:66px;flex-basis:66px}.fvspf-search-row{flex-direction:column}.fvspf-search button{height:44px}.fvspf-title-row{flex-wrap:wrap}.fvspf-version{margin-left:0}}@media(max-width:520px){.fvspf-summary{grid-template-columns:1fr 1fr}.fvspf-hero{padding:16px}.fvspf-heading p{font-size:12px}.fvspf-title-row h1{font-size:22px!important}.fvspf-icon{width:58px;height:58px;flex-basis:58px}.fvspf-panel,.fvspf-search{padding:14px}}

/* v0.2.0 */
.fvspf-executive p{margin:0;color:#d8e8f2;font-size:13px;line-height:1.65}.fvspf-tree-cost{float:right;color:#8fcce8;font-size:10px;font-weight:800;margin-left:12px}.fvspf-change{padding:10px 0;border-bottom:1px solid rgba(66,98,120,.35);font-size:12px}.fvspf-change:last-child{border-bottom:0}.fvspf-change.add strong{color:#8df867}.fvspf-change.remove strong{color:#ff8997}.fvspf-change.metric strong{color:#bfefff}.fvspf-change-values{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:7px}.fvspf-change-values span{padding:8px;background:#08131d;border-radius:6px;color:#a9becd;word-break:break-word}.fvspf-no-change{padding:9px 0;color:#8df867;font-size:12px}.fvspf-secondary{border:1px solid #37627d;background:#0d1a25;color:#bfefff;border-radius:7px;padding:6px 10px;font-size:11px;cursor:pointer}.fvspf-history-list{display:grid;gap:6px}.fvspf-history-row{display:grid;grid-template-columns:170px minmax(140px,1fr) 95px 75px 70px;gap:10px;align-items:center;padding:8px 9px;background:#0d1a25;border:1px solid rgba(55,98,125,.55);border-radius:7px;font-size:11px;color:#aec4d3}.fvspf-history-row strong{color:#fff}.fvspf-history-row .fvspf-badge{min-width:0}.fvspf-table td strong{color:#bfefff}@media(max-width:720px){.fvspf-history-row{grid-template-columns:1fr 1fr}.fvspf-change-values{grid-template-columns:1fr}}

/* =========================================================
   v0.2.1 — Optimización tablas Mecanismos / IPs autorizadas
   ========================================================= */

.fvspf-panel:has(#fvspf-terms),
.fvspf-panel:has(#fvspf-ips){
    padding:18px 18px 14px;
}

.fvspf-panel:has(#fvspf-terms) .fvspf-table-wrap,
.fvspf-panel:has(#fvspf-ips) .fvspf-table-wrap{
    overflow:visible;
    border:1px solid rgba(55,98,125,.45);
    border-radius:9px;
    background:#0b1722;
}

/* Cabecera más clara */
.fvspf-panel:has(#fvspf-terms) .fvspf-table,
.fvspf-panel:has(#fvspf-ips) .fvspf-table{
    table-layout:fixed;
    border-collapse:separate;
    border-spacing:0;
}

.fvspf-panel:has(#fvspf-terms) .fvspf-table th,
.fvspf-panel:has(#fvspf-ips) .fvspf-table th{
    background:#10202d;
    color:#9fc7dc;
    font-size:10px;
    letter-spacing:.055em;
    padding:10px 11px;
    border-bottom:1px solid #35566d;
}

.fvspf-panel:has(#fvspf-terms) .fvspf-table td,
.fvspf-panel:has(#fvspf-ips) .fvspf-table td{
    padding:10px 11px;
    line-height:1.45;
    vertical-align:middle;
}

/* Alternancia sutil de filas */
.fvspf-panel:has(#fvspf-terms) .fvspf-table tbody tr:nth-child(even),
.fvspf-panel:has(#fvspf-ips) .fvspf-table tbody tr:nth-child(even){
    background:rgba(23,40,54,.42);
}

/* Hover para seguir una fila larga */
.fvspf-panel:has(#fvspf-terms) .fvspf-table tbody tr:hover,
.fvspf-panel:has(#fvspf-ips) .fvspf-table tbody tr:hover{
    background:rgba(25,200,255,.055);
}

/* ---- Tabla Mecanismos ---- */
.fvspf-panel:has(#fvspf-terms) .fvspf-table th:nth-child(1),
.fvspf-panel:has(#fvspf-terms) .fvspf-table td:nth-child(1){
    width:20%;
}

.fvspf-panel:has(#fvspf-terms) .fvspf-table th:nth-child(2),
.fvspf-panel:has(#fvspf-terms) .fvspf-table td:nth-child(2){
    width:25%;
}

.fvspf-panel:has(#fvspf-terms) .fvspf-table th:nth-child(3),
.fvspf-panel:has(#fvspf-terms) .fvspf-table td:nth-child(3){
    width:35%;
}

.fvspf-panel:has(#fvspf-terms) .fvspf-table th:nth-child(4),
.fvspf-panel:has(#fvspf-terms) .fvspf-table td:nth-child(4){
    width:8%;
    text-align:center;
}

.fvspf-panel:has(#fvspf-terms) .fvspf-table th:nth-child(5),
.fvspf-panel:has(#fvspf-terms) .fvspf-table td:nth-child(5){
    width:12%;
    text-align:center;
}

.fvspf-panel:has(#fvspf-terms) td:nth-child(1),
.fvspf-panel:has(#fvspf-terms) td:nth-child(2),
.fvspf-panel:has(#fvspf-terms) td:nth-child(3){
    overflow-wrap:anywhere;
    word-break:break-word;
}

.fvspf-panel:has(#fvspf-terms) td:nth-child(2){
    color:#bfefff;
    font-family:ui-monospace,SFMono-Regular,Consolas,monospace;
}

.fvspf-panel:has(#fvspf-terms) td:nth-child(3){
    color:#c9dbe7;
}

/* ---- Tabla IPs ---- */
.fvspf-panel:has(#fvspf-ips) .fvspf-table th:nth-child(1),
.fvspf-panel:has(#fvspf-ips) .fvspf-table td:nth-child(1){
    width:30%;
}

.fvspf-panel:has(#fvspf-ips) .fvspf-table th:nth-child(2),
.fvspf-panel:has(#fvspf-ips) .fvspf-table td:nth-child(2){
    width:55%;
}

.fvspf-panel:has(#fvspf-ips) .fvspf-table th:nth-child(3),
.fvspf-panel:has(#fvspf-ips) .fvspf-table td:nth-child(3){
    width:15%;
    text-align:center;
}

.fvspf-panel:has(#fvspf-ips) td:nth-child(1){
    color:#bfefff;
    font-family:ui-monospace,SFMono-Regular,Consolas,monospace;
    font-weight:700;
    overflow-wrap:anywhere;
}

.fvspf-panel:has(#fvspf-ips) td:nth-child(2){
    color:#c9dbe7;
    overflow-wrap:anywhere;
    word-break:break-word;
}

.fvspf-panel:has(#fvspf-ips) td:nth-child(3){
    white-space:nowrap;
}

/* Badge TYPE para IP */
.fvspf-panel:has(#fvspf-ips) td:nth-child(3){
    color:#9adfff;
    font-weight:800;
}

/* Escritorio estrecho / tablet */
@media(max-width:900px){
    .fvspf-panel:has(#fvspf-terms) .fvspf-table-wrap,
    .fvspf-panel:has(#fvspf-ips) .fvspf-table-wrap{
        overflow-x:auto;
        -webkit-overflow-scrolling:touch;
    }

    .fvspf-panel:has(#fvspf-terms) .fvspf-table{
        min-width:780px;
    }

    .fvspf-panel:has(#fvspf-ips) .fvspf-table{
        min-width:620px;
    }
}

/* Móvil: cada fila pasa a ficha */
@media(max-width:620px){
    .fvspf-panel:has(#fvspf-terms) .fvspf-table-wrap,
    .fvspf-panel:has(#fvspf-ips) .fvspf-table-wrap{
        border:0;
        background:transparent;
        overflow:visible;
    }

    .fvspf-panel:has(#fvspf-terms) .fvspf-table,
    .fvspf-panel:has(#fvspf-ips) .fvspf-table,
    .fvspf-panel:has(#fvspf-terms) .fvspf-table tbody,
    .fvspf-panel:has(#fvspf-ips) .fvspf-table tbody{
        display:block;
        width:100%;
    }

    .fvspf-panel:has(#fvspf-terms) .fvspf-table thead,
    .fvspf-panel:has(#fvspf-ips) .fvspf-table thead{
        display:none;
    }

    .fvspf-panel:has(#fvspf-terms) .fvspf-table tr,
    .fvspf-panel:has(#fvspf-ips) .fvspf-table tr{
        display:block;
        width:100%;
        background:#0d1a25 !important;
        border:1px solid #29445a;
        border-radius:9px;
        padding:9px 11px;
        margin:0 0 10px;
    }

    .fvspf-panel:has(#fvspf-terms) .fvspf-table td,
    .fvspf-panel:has(#fvspf-ips) .fvspf-table td{
        display:grid;
        grid-template-columns:105px minmax(0,1fr);
        gap:10px;
        width:100% !important;
        text-align:left !important;
        border-bottom:1px solid rgba(55,98,125,.28);
        padding:7px 0;
    }

    .fvspf-panel:has(#fvspf-terms) .fvspf-table td:last-child,
    .fvspf-panel:has(#fvspf-ips) .fvspf-table td:last-child{
        border-bottom:0;
    }

    .fvspf-panel:has(#fvspf-terms) .fvspf-table td:before,
    .fvspf-panel:has(#fvspf-ips) .fvspf-table td:before{
        color:#87a8bc;
        font-size:9px;
        font-weight:800;
        text-transform:uppercase;
        letter-spacing:.05em;
    }

    .fvspf-panel:has(#fvspf-terms) .fvspf-table td:nth-child(1):before{content:"Dominio";}
    .fvspf-panel:has(#fvspf-terms) .fvspf-table td:nth-child(2):before{content:"Mecanismo";}
    .fvspf-panel:has(#fvspf-terms) .fvspf-table td:nth-child(3):before{content:"Detalle";}
    .fvspf-panel:has(#fvspf-terms) .fvspf-table td:nth-child(4):before{content:"DNS";}
    .fvspf-panel:has(#fvspf-terms) .fvspf-table td:nth-child(5):before{content:"Estado";}

    .fvspf-panel:has(#fvspf-ips) .fvspf-table td:nth-child(1):before{content:"IP / red";}
    .fvspf-panel:has(#fvspf-ips) .fvspf-table td:nth-child(2):before{content:"Origen";}
    .fvspf-panel:has(#fvspf-ips) .fvspf-table td:nth-child(3):before{content:"Tipo";}
}

/* =========================================================
   v0.3.0 — Cajas desplegables
   ========================================================= */
.fvspf-collapse-controls{
    display:flex;
    justify-content:flex-end;
    gap:8px;
    margin:4px 0 8px;
}

.fvspf-panel{
    transition:border-color .18s ease, background .18s ease;
}

.fvspf-panel.is-collapsed{
    padding-bottom:12px;
}

.fvspf-panel.is-collapsed:hover{
    border-color:#3d6781;
}

.fvspf-panel-title{
    min-height:28px;
}

.fvspf-panel-title h2{
    margin-bottom:0!important;
}

.fvspf-panel-body{
    margin-top:12px;
}

.fvspf-collapse-toggle{
    width:30px;
    height:30px;
    flex:0 0 30px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    margin-left:8px;
    border:1px solid #365a72;
    border-radius:7px;
    background:#0d1a25;
    color:#bfefff;
    cursor:pointer;
    padding:0;
    box-shadow:none;
    transition:border-color .16s ease, background .16s ease, transform .16s ease;
}

.fvspf-collapse-toggle:hover{
    border-color:#19c8ff;
    background:#102431;
}

.fvspf-collapse-chevron{
    font-size:18px;
    line-height:1;
    transform:rotate(0deg);
    transition:transform .18s ease;
}

.fvspf-panel.is-collapsed .fvspf-collapse-chevron{
    transform:rotate(-90deg);
}

.fvspf-panel.is-collapsed .fvspf-panel-title{
    margin-bottom:0;
}

.fvspf-panel.is-collapsed .fvspf-panel-title > span:not(.fvspf-collapse-chevron){
    opacity:.8;
}

.fvspf-panel-title{
    cursor:default;
}

@media(max-width:620px){
    .fvspf-collapse-controls{
        justify-content:stretch;
    }
    .fvspf-collapse-controls .fvspf-secondary{
        flex:1 1 50%;
    }
}

/* =========================================================
   v0.4.0 — Salud, recomendaciones, proveedores y SPF expandido
   ========================================================= */
.fvspf-health{display:grid;grid-template-columns:120px 1fr;gap:14px 18px;align-items:center}.fvspf-health-score{display:flex;align-items:baseline;justify-content:center;background:#0d1a25;border:1px solid #29445a;border-radius:10px;padding:16px}.fvspf-health-score strong{font-size:34px;color:#fff}.fvspf-health-score span{font-size:12px;color:#8ea9ba;margin-left:3px}.fvspf-health-meter{height:14px;background:#08131d;border:1px solid #27465c;border-radius:999px;overflow:hidden}.fvspf-health-meter>div{height:100%;width:0;transition:width .25s}.fvspf-health-meter>div.good{background:#75f23b}.fvspf-health-meter>div.ok{background:#19c8ff}.fvspf-health-meter>div.warning{background:#f5b942}.fvspf-health-meter>div.error{background:#ff6476}.fvspf-health .fvspf-note{grid-column:2}

.fvspf-rec{display:grid;grid-template-columns:72px 1fr;gap:12px;padding:11px 0;border-bottom:1px solid rgba(66,98,120,.35)}.fvspf-rec:last-child{border-bottom:0}.fvspf-rec strong{color:#fff}.fvspf-rec p{margin:4px 0 0;color:#a9becd;font-size:12px;line-height:1.5}.fvspf-priority{display:inline-flex;align-items:center;justify-content:center;align-self:start;border-radius:999px;padding:4px 8px;text-transform:uppercase;font-size:9px;font-weight:900;border:1px solid}.fvspf-priority.alta{color:#ff8997;border-color:rgba(255,100,118,.4);background:rgba(255,100,118,.08)}.fvspf-priority.media{color:#ffd26f;border-color:rgba(245,185,66,.4);background:rgba(245,185,66,.08)}.fvspf-priority.baja{color:#8df867;border-color:rgba(117,242,59,.35);background:rgba(117,242,59,.08)}

.fvspf-provider-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.fvspf-provider{background:#0d1a25;border:1px solid #29445a;border-radius:9px;padding:11px}.fvspf-provider strong{display:block;color:#fff;margin-bottom:7px}.fvspf-provider code{display:block;color:#bfefff;font-size:10px;word-break:break-word;margin:3px 0}

.fvspf-expanded-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:14px}.fvspf-expanded-grid h3{font-size:12px!important;color:#9fc7dc!important;margin:0 0 8px!important;text-transform:uppercase;letter-spacing:.05em}.fvspf-expanded-summary{display:grid;gap:7px}.fvspf-expanded-summary>div{display:flex;justify-content:space-between;gap:10px;padding:8px 9px;background:#0d1a25;border:1px solid rgba(55,98,125,.45);border-radius:7px}.fvspf-expanded-summary span{color:#8faabd;font-size:10px;text-transform:uppercase}.fvspf-expanded-summary strong{color:#fff;font-size:11px;text-align:right}

@media(max-width:700px){.fvspf-health{grid-template-columns:1fr}.fvspf-health .fvspf-note{grid-column:1}.fvspf-provider-grid,.fvspf-expanded-grid{grid-template-columns:1fr}}

/* =========================================================
   v0.5.0 — Dependencias, auditoría, riesgo y exportación
   ========================================================= */
.fvspf-dependency-table th:nth-child(1){width:20%}.fvspf-dependency-table th:nth-child(2){width:34%}.fvspf-dependency-table th:nth-child(3){width:10%;text-align:center}.fvspf-dependency-table th:nth-child(4){width:11%;text-align:center}.fvspf-dependency-table th:nth-child(5){width:13%;text-align:center}.fvspf-dependency-table th:nth-child(6){width:12%;text-align:center}.fvspf-dependency-table td:nth-child(3),.fvspf-dependency-table td:nth-child(4),.fvspf-dependency-table td:nth-child(5),.fvspf-dependency-table td:nth-child(6){text-align:center}.fvspf-dependency-table td:nth-child(1),.fvspf-dependency-table td:nth-child(2){overflow-wrap:anywhere}

.fvspf-audit-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px}.fvspf-audit-grid>div{background:#0d1a25;border:1px solid #29445a;border-radius:8px;padding:10px}.fvspf-audit-grid span{display:block;color:#8faabd;font-size:9px;text-transform:uppercase;letter-spacing:.05em}.fvspf-audit-grid strong{display:block;margin-top:6px;color:#fff;font-size:15px}

.fvspf-export-actions{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:8px}.fvspf-export-actions .fvspf-secondary{min-width:130px}

.fvspf-change-risk{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:10px 11px;margin-bottom:8px;border-radius:8px;border:1px solid #29445a;background:#0d1a25}.fvspf-change-risk span{font-size:10px;color:#8faabd;text-transform:uppercase;letter-spacing:.05em}.fvspf-change-risk strong{font-size:12px}.fvspf-change-risk.better strong{color:#8df867}.fvspf-change-risk.worse strong{color:#ff8997}.fvspf-change-risk.same strong{color:#bfefff}.fvspf-change-risk.sin-datos strong{color:#9fb4c5}

@media(max-width:800px){.fvspf-audit-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:520px){.fvspf-audit-grid{grid-template-columns:1fr 1fr}.fvspf-export-actions .fvspf-secondary{flex:1 1 100%}}

/* =========================================================
   v0.6.0 — Barra clicable, inputs legibles e IP remitente
   ========================================================= */

.fvspf-panel-title{
    cursor:pointer!important;
    user-select:none;
    border-radius:7px;
    transition:background .15s ease;
}
.fvspf-panel-title:hover{
    background:rgba(25,200,255,.045);
}
.fvspf-panel-title .fvspf-collapse-toggle{
    pointer-events:auto;
}

/* Formulario más claro */
.fvspf-search > label{
    display:none!important;
}
.fvspf-search-grid{
    display:grid;
    grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr) auto;
    gap:10px;
    align-items:end;
}
.fvspf-input-group{
    min-width:0;
}
.fvspf-input-label{
    display:block;
    margin-bottom:7px;
    font-size:12px;
    font-weight:800;
    color:#d7e8f3;
}
.fvspf-input-label small{
    color:#7896aa;
    font-size:9px;
    font-weight:600;
}
.fvspf-input-group input{
    width:100%;
    min-width:0;
    background:#08131d!important;
    border:1px solid #35566d!important;
    border-radius:8px!important;
    color:#f7fcff!important;
    padding:12px 13px!important;
    font-size:14px!important;
    line-height:1.25!important;
    outline:none!important;
    transition:background .16s ease,border-color .16s ease,box-shadow .16s ease;
}
.fvspf-input-group input::placeholder{
    color:#678396!important;
    opacity:1;
}
.fvspf-input-group input.is-focus,
.fvspf-input-group input:focus{
    background:#102a3a!important;
    border-color:#19c8ff!important;
    box-shadow:0 0 0 2px rgba(25,200,255,.13)!important;
}
.fvspf-input-group input.has-value{
    background:#123246!important;
    color:#ffffff!important;
    border-color:#3d728f!important;
    font-weight:700;
}
.fvspf-input-group input.has-value:focus{
    background:#153c52!important;
    border-color:#19c8ff!important;
}
.fvspf-search-grid #fvspf-run{
    min-height:44px;
    height:44px;
    white-space:nowrap;
}

/* Validación IP remitente */
.fvspf-sender-result{
    border:1px solid #29445a;
    background:#0d1a25;
    border-radius:9px;
    padding:12px 13px;
}
.fvspf-sender-result strong{
    display:block;
    margin-bottom:5px;
    font-size:13px;
}
.fvspf-sender-result p{
    margin:0;
    color:#b7cad7;
    font-size:12px;
    line-height:1.5;
}
.fvspf-sender-result small{
    display:block;
    margin-top:7px;
    color:#829dac;
    font-size:10px;
    line-height:1.45;
}
.fvspf-sender-result.ok{
    border-color:rgba(117,242,59,.35);
}
.fvspf-sender-result.ok strong{
    color:#8df867;
}
.fvspf-sender-result.warning{
    border-color:rgba(245,185,66,.35);
}
.fvspf-sender-result.warning strong{
    color:#ffd26f;
}
.fvspf-sender-result.error{
    border-color:rgba(255,100,118,.4);
}
.fvspf-sender-result.error strong{
    color:#ff8997;
}
.fvspf-sender-matches{
    display:grid;
    gap:7px;
    margin-top:10px;
}
.fvspf-sender-matches>div{
    display:grid;
    grid-template-columns:minmax(130px,.6fr) minmax(0,1fr) 70px;
    gap:10px;
    align-items:center;
    padding:9px 10px;
    background:#08131d;
    border:1px solid rgba(55,98,125,.45);
    border-radius:7px;
}
.fvspf-sender-matches code{
    color:#bfefff;
    overflow-wrap:anywhere;
}
.fvspf-sender-matches span{
    color:#c9dbe7;
    font-size:11px;
    overflow-wrap:anywhere;
}
.fvspf-sender-matches small{
    color:#7fa7bc;
    text-align:right;
}

@media(max-width:820px){
    .fvspf-search-grid{
        grid-template-columns:1fr 1fr;
    }
    .fvspf-search-grid #fvspf-run{
        grid-column:1 / -1;
    }
}
@media(max-width:560px){
    .fvspf-search-grid{
        grid-template-columns:1fr;
    }
    .fvspf-search-grid #fvspf-run{
        grid-column:auto;
    }
    .fvspf-sender-matches>div{
        grid-template-columns:1fr;
    }
    .fvspf-sender-matches small{
        text-align:left;
    }
}

/* =========================================================
   v0.7.0 — contraste de entrada + calidad/optimización
   ========================================================= */

/* El campo mantiene el lenguaje visual oscuro de FoxVision.
   El foco se identifica principalmente por el borde, no aclarando toda la caja. */
.fvspf-input-group input,
.fvspf-input-group input.has-value,
.fvspf-input-group input.is-focus,
.fvspf-input-group input:focus,
.fvspf-input-group input.has-value:focus{
    background:#0b1823!important;
    color:#edf7fc!important;
    border-color:#35566d!important;
    box-shadow:none!important;
    font-weight:600;
}
.fvspf-input-group input:focus,
.fvspf-input-group input.is-focus,
.fvspf-input-group input.has-value:focus{
    background:#0d1d29!important;
    border-color:#19c8ff!important;
    box-shadow:0 0 0 1px rgba(25,200,255,.08)!important;
}
.fvspf-input-group input::placeholder{
    color:#5f7b8d!important;
}
.fvspf-input-group input.has-value{
    border-color:#3a6078!important;
}

/* Nueva revisión de calidad */
.fvspf-quality-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:9px;
}
.fvspf-quality-grid>div{
    min-width:0;
    padding:11px;
    border:1px solid #29445a;
    border-radius:8px;
    background:#0b1823;
}
.fvspf-quality-grid>div.ok{border-color:rgba(117,242,59,.22)}
.fvspf-quality-grid>div.warning{border-color:rgba(245,185,66,.32)}
.fvspf-quality-grid>div.error{border-color:rgba(255,100,118,.38)}
.fvspf-quality-grid span{
    display:block;
    color:#87a8bc;
    font-size:9px;
    font-weight:800;
    text-transform:uppercase;
    letter-spacing:.05em;
}
.fvspf-quality-grid strong{
    display:block;
    margin-top:5px;
    color:#f3f9fc;
    font-size:14px;
    overflow-wrap:anywhere;
}
.fvspf-quality-grid p{
    margin:6px 0 0;
    color:#91a9b8;
    font-size:10px;
    line-height:1.45;
    overflow-wrap:anywhere;
}
.fvspf-quality-grid>div.warning strong{color:#ffd26f}
.fvspf-quality-grid>div.error strong{color:#ff8997}
@media(max-width:760px){.fvspf-quality-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:480px){.fvspf-quality-grid{grid-template-columns:1fr}}

/* =========================================================
   v1.0.0 — diagnóstico SPF consolidado
   ========================================================= */
.fvspf-path{display:flex;align-items:center;gap:7px;flex-wrap:wrap;padding:11px;background:#0b1823;border:1px solid #29445a;border-radius:9px;margin-bottom:8px}.fvspf-path>div{display:flex;align-items:center;gap:6px;min-width:0;padding:6px 8px;background:#08131d;border:1px solid #29445a;border-radius:7px}.fvspf-path>div span{display:flex;width:18px;height:18px;align-items:center;justify-content:center;border-radius:50%;background:#142b3a;color:#8fc8e6;font-size:9px;font-weight:800}.fvspf-path code{color:#c7eefe;font-size:10px;overflow-wrap:anywhere}.fvspf-path b{color:#55758a;font-weight:400}.fvspf-path>div.pass{border-color:rgba(117,242,59,.4)}.fvspf-path>div.pass code{color:#8df867;font-weight:900}

.fvspf-redundancy{display:grid;grid-template-columns:minmax(160px,.4fr) 1fr;gap:12px;padding:10px 0;border-bottom:1px solid rgba(55,98,125,.3)}.fvspf-redundancy:last-child{border-bottom:0}.fvspf-redundancy strong{color:#ffd26f;font-family:ui-monospace,SFMono-Regular,Consolas,monospace;font-size:11px;overflow-wrap:anywhere}.fvspf-redundancy span{color:#a8bdca;font-size:11px;line-height:1.5}

.fvspf-compare-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:9px}.fvspf-compare-grid h3{font-size:10px!important;text-transform:uppercase;letter-spacing:.05em;color:#8faabd!important;margin:0 0 7px!important}.fvspf-compare-grid .fvspf-record{height:100%;min-height:86px}

@media(max-width:700px){.fvspf-compare-grid{grid-template-columns:1fr}.fvspf-redundancy{grid-template-columns:1fr}.fvspf-path{align-items:stretch}.fvspf-path>b{display:none}.fvspf-path>div{width:100%}}

/* =========================================================
   v1.1.0 — comparación sin solapamientos + mantenibilidad
   ========================================================= */

/* Corrige la caja mostrada en la captura: ninguna columna puede forzar
   el ancho del grid ni invadir la columna vecina. */
.fvspf-compare-grid{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    gap:14px!important;
    width:100%!important;
    min-width:0!important;
    overflow:hidden!important;
}
.fvspf-compare-grid>div{
    min-width:0!important;
    width:100%!important;
    max-width:100%!important;
    overflow:hidden!important;
}
.fvspf-compare-grid h3{
    max-width:100%!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    white-space:nowrap!important;
}
.fvspf-compare-grid .fvspf-record{
    display:block!important;
    box-sizing:border-box!important;
    width:100%!important;
    max-width:100%!important;
    min-width:0!important;
    min-height:112px!important;
    height:auto!important;
    margin:0!important;
    padding:12px!important;
    overflow-x:auto!important;
    overflow-y:auto!important;
    white-space:pre-wrap!important;
    overflow-wrap:anywhere!important;
    word-break:break-word!important;
}
#fvspf-proposal-note{
    display:block!important;
    clear:both!important;
    position:relative!important;
    width:100%!important;
    box-sizing:border-box!important;
    margin-top:12px!important;
    line-height:1.55!important;
}
.fvspf-panel:has(.fvspf-compare-grid){
    overflow:hidden!important;
}

/* Mantenibilidad */
.fvspf-maint-grid{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:9px;
}
.fvspf-maint-grid>div{
    min-width:0;
    padding:11px;
    border:1px solid #29445a;
    border-radius:8px;
    background:#0b1823;
}
.fvspf-maint-grid span{
    display:block;color:#87a8bc;font-size:9px;font-weight:800;
    text-transform:uppercase;letter-spacing:.05em
}
.fvspf-maint-grid strong{
    display:block;margin-top:5px;color:#f3f9fc;font-size:16px
}
.fvspf-maint-grid small{
    display:block;margin-top:4px;color:#91a9b8;font-size:10px
}

/* Distribución de autorización */
.fvspf-distribution{display:grid;gap:10px}
.fvspf-dist-row{
    padding:9px 10px;background:#0b1823;border:1px solid #29445a;border-radius:8px
}
.fvspf-dist-head{
    display:flex;justify-content:space-between;gap:12px;align-items:center;margin-bottom:7px
}
.fvspf-dist-head strong{
    min-width:0;color:#dcebf3;font-size:11px;overflow-wrap:anywhere
}
.fvspf-dist-head span{
    flex:0 0 auto;color:#87a8bc;font-size:9px
}
.fvspf-dist-meter{
    height:5px;background:#07131c;border-radius:99px;overflow:hidden
}
.fvspf-dist-meter i{
    display:block;height:100%;background:currentColor;color:#19c8ff;border-radius:99px
}

@media(max-width:760px){
    .fvspf-compare-grid{grid-template-columns:1fr!important}
    .fvspf-maint-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:480px){
    .fvspf-maint-grid{grid-template-columns:1fr}
    .fvspf-dist-head{align-items:flex-start;flex-direction:column;gap:4px}
}

/* =========================================================
   v1.1.1 — contraste de Validación de IP remitente
   ========================================================= */

.fvspf-sender-matches{
    display:grid;
    gap:8px;
    margin-top:10px;
}

.fvspf-sender-matches>div{
    display:grid;
    grid-template-columns:minmax(150px,.7fr) minmax(0,1fr) 80px;
    gap:12px;
    align-items:center;
    padding:10px 12px;
    background:#0b1823!important;
    border:1px solid #29445a!important;
    border-radius:8px!important;
    box-shadow:none!important;
}

.fvspf-sender-matches code{
    display:block;
    width:100%;
    min-width:0;
    padding:0!important;
    margin:0!important;
    background:transparent!important;
    color:#bfefff!important;
    border:0!important;
    border-radius:0!important;
    box-shadow:none!important;
    font-family:ui-monospace,SFMono-Regular,Consolas,monospace;
    font-size:12px!important;
    font-weight:800!important;
    line-height:1.35!important;
    overflow-wrap:anywhere;
    word-break:break-word;
}

.fvspf-sender-matches span{
    display:block;
    min-width:0;
    color:#d5e6ef!important;
    font-size:11px!important;
    line-height:1.4!important;
    overflow-wrap:anywhere;
    word-break:break-word;
}

.fvspf-sender-matches small{
    display:block;
    color:#8fb2c5!important;
    font-size:10px!important;
    font-weight:700!important;
    text-align:right!important;
    text-transform:uppercase;
    letter-spacing:.04em;
}

/* Anula estilos globales del tema sobre code/pre/input en esta caja */
#fvspf-sender-validation code,
#fvspf-sender-validation pre{
    background:transparent!important;
    color:#bfefff!important;
    border:0!important;
    box-shadow:none!important;
}

/* Mejor separación visual */
.fvspf-sender-matches>div::before{
    content:"";
    display:block;
    position:absolute;
}

@media(max-width:720px){
    .fvspf-sender-matches>div{
        grid-template-columns:1fr;
        gap:6px;
    }
    .fvspf-sender-matches small{
        text-align:left!important;
    }
}

/* v1.2.0 Dashboard SPF */
.fvspf-dashboard{width:100%!important;max-width:none!important;padding:0 0 44px!important}
.fvspf-topbar{position:sticky;top:0;z-index:80;display:flex;align-items:center;justify-content:space-between;gap:18px;margin:0 0 14px;padding:14px 18px;background:rgba(6,18,28,.97);border:1px solid #1d3a4f;border-top:0;border-radius:0 0 12px 12px;backdrop-filter:blur(12px)}
.fvspf-brand{display:flex;align-items:center;gap:12px;min-width:0}.fvspf-brand .fvspf-icon{width:50px!important;height:50px!important;flex:0 0 50px!important}.fvspf-brand-line{display:flex;align-items:center;gap:10px}.fvspf-brand-line h1{margin:0!important;font-size:20px!important;color:#fff!important}.fvspf-brand p{margin:3px 0 0!important;color:#819cad!important;font-size:11px!important}.fvspf-brand .fvspf-version{margin:0!important}
.fvspf-nav{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.fvspf-nav button{border:0;border-bottom:2px solid transparent;background:transparent;color:#a7bfce;padding:12px 14px 10px;font-size:11px;font-weight:800;cursor:pointer}.fvspf-nav button:hover,.fvspf-nav button.is-active{color:#19c8ff;border-bottom-color:#19c8ff}
.fvspf-dashboard-head{display:flex;justify-content:space-between;align-items:flex-start;gap:20px;padding:22px 20px;margin-bottom:14px;border:1px solid #24445a;border-radius:12px;background:linear-gradient(180deg,#0f1e2a,#0b1823)}.fvspf-dashboard-head h2{margin:0!important;color:#fff!important;font-size:23px!important}.fvspf-dashboard-head p{margin:5px 0 0!important;color:#8ea9b9!important;font-size:12px!important}.fvspf-dashboard-actions{display:flex;gap:8px}
.fvspf-analysis-zone{margin-bottom:14px}.fvspf-search{margin:0!important;border-color:#24445a!important;background:linear-gradient(180deg,#102331,#0e1d28)!important}
.fvspf-kpi-grid{display:grid!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;gap:12px!important;margin:14px 0!important}.fvspf-kpi{min-height:112px!important;padding:16px!important;background:linear-gradient(180deg,#102231,#0c1a25)!important;border:1px solid #25485f!important;border-radius:10px!important}.fvspf-kpi span{font-size:10px!important}.fvspf-kpi strong{margin-top:10px!important;font-size:28px!important}
.fvspf-dashboard-grid{display:grid;gap:12px;margin:12px 0}.fvspf-dashboard-grid-main{grid-template-columns:1.2fr .8fr .8fr}.fvspf-dashboard-grid-wide{grid-template-columns:1fr 1fr 1fr}.fvspf-dashboard-grid-split{grid-template-columns:1fr 1fr}
.fvspf-panel{margin:0!important;background:linear-gradient(180deg,#102231,#0c1a25)!important;border:1px solid #25485f!important;border-radius:10px!important}.fvspf-panel-title{min-height:32px!important}.fvspf-panel-title h2{font-size:14px!important}.fvspf-panel-body{margin-top:10px!important}
.fvspf-provider-grid{grid-template-columns:1fr!important}.fvspf-health{grid-template-columns:92px 1fr!important}.fvspf-health-score{padding:12px!important}.fvspf-health-score strong{font-size:30px!important}.fvspf-quality-grid,.fvspf-maint-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.fvspf-audit-grid{grid-template-columns:repeat(4,minmax(0,1fr))!important}.fvspf-table{font-size:11px!important}.fvspf-table th{background:#0c1d29!important}.fvspf-record{background:#07131c!important;border-color:#214158!important}
.fvspf-dashboard .fvspf-secondary{background:#102433!important;border-color:#315b74!important;color:#c8e8f7!important}.fvspf-dashboard .fvspf-secondary:hover{border-color:#19c8ff!important}
@media(max-width:1180px){.fvspf-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}.fvspf-dashboard-grid-main,.fvspf-dashboard-grid-wide{grid-template-columns:1fr 1fr}}
@media(max-width:860px){.fvspf-topbar{position:relative;align-items:flex-start;flex-direction:column}.fvspf-nav{width:100%;overflow:auto;flex-wrap:nowrap}.fvspf-dashboard-grid-main,.fvspf-dashboard-grid-wide,.fvspf-dashboard-grid-split{grid-template-columns:1fr}.fvspf-kpi-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}.fvspf-audit-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}}
@media(max-width:560px){.fvspf-dashboard{padding:0 0 30px!important}.fvspf-dashboard-head{flex-direction:column}.fvspf-dashboard-actions{width:100%}.fvspf-dashboard-actions .fvspf-secondary{flex:1}.fvspf-kpi-grid,.fvspf-quality-grid,.fvspf-maint-grid,.fvspf-audit-grid{grid-template-columns:1fr!important}}

/* =========================================================
   v1.2.1 — corrección visual del Dashboard
   ========================================================= */

/* Elimina el gran hueco superior del tema solo en la página SPF */
body.fvspf-page .site-main,
body.fvspf-page main,
body.fvspf-page .content-area,
body.fvspf-page .site-content{
    padding-top:0!important;
    margin-top:0!important;
}
body.fvspf-page .entry-header,
body.fvspf-page .page-header,
body.fvspf-page .entry-title,
body.fvspf-page .page-title,
body.fvspf-page .hero-section{
    display:none!important;
}
body.fvspf-page .entry-content{
    margin-top:0!important;
    padding-top:0!important;
}
body.fvspf-page .fvspf-app{
    margin-top:0!important;
}

/* La barra superior forma parte del dashboard y no flota separada */
.fvspf-topbar{
    position:relative!important;
    top:auto!important;
    margin-top:0!important;
    margin-bottom:12px!important;
    border-radius:12px!important;
    border-top:1px solid #1d3a4f!important;
}

/* Contenedor general algo más compacto */
.fvspf-dashboard{
    padding-top:12px!important;
}
.fvspf-dashboard-head{
    padding:17px 20px!important;
    margin-bottom:12px!important;
}
.fvspf-analysis-zone{
    margin-bottom:12px!important;
}

/* Todas las tarjetas recuperan presencia visual consistente */
.fvspf-dashboard-grid{
    align-items:start!important;
}
.fvspf-dashboard-grid > .fvspf-panel,
.fvspf-results > .fvspf-panel{
    display:block!important;
    min-width:0!important;
    width:100%!important;
    height:auto!important;
    padding:16px 18px!important;
    background:linear-gradient(180deg,#102433 0%,#0d1d29 100%)!important;
    border:1px solid #28506a!important;
    border-radius:10px!important;
    box-shadow:0 1px 0 rgba(255,255,255,.015) inset!important;
    overflow:hidden!important;
}
.fvspf-panel-body{
    min-width:0!important;
    width:100%!important;
}

/* Recomendaciones + proveedores arriba, calidad debajo a ancho completo.
   Evita la fila con dos enormes huecos vacíos vista en la captura. */
.fvspf-dashboard-grid-wide{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    align-items:start!important;
}
.fvspf-dashboard-grid-wide > .fvspf-panel:nth-child(3){
    grid-column:1 / -1!important;
}
.fvspf-dashboard-grid-wide > .fvspf-panel:nth-child(3) .fvspf-quality-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
}

/* Evita cajas internas blancas heredadas del tema */
.fvspf-dashboard code,
.fvspf-dashboard pre,
.fvspf-dashboard .fvspf-provider code,
.fvspf-dashboard .fvspf-sender-matches code{
    background:#07141e!important;
    background-color:#07141e!important;
    color:#b9eaff!important;
    border-color:#24485f!important;
    box-shadow:none!important;
}
.fvspf-provider code{
    display:block!important;
    padding:7px 9px!important;
    border:1px solid #24485f!important;
    border-radius:6px!important;
    margin-top:5px!important;
    line-height:1.4!important;
    overflow-wrap:anywhere!important;
}

/* Cabeceras de tarjeta más compactas y alineadas */
.fvspf-panel-title{
    display:flex!important;
    align-items:center!important;
    gap:10px!important;
    width:100%!important;
    min-width:0!important;
    margin:0!important;
    padding:0 0 8px!important;
    background:transparent!important;
}
.fvspf-panel-title h2{
    flex:1 1 auto!important;
    min-width:0!important;
    margin:0!important;
}
.fvspf-panel-title > span{
    flex:0 0 auto!important;
    margin-left:auto!important;
}
.fvspf-collapse-toggle{
    margin-left:4px!important;
}

/* Las tarjetas plegadas mantienen forma de tarjeta real */
.fvspf-panel.is-collapsed{
    padding:13px 18px!important;
}
.fvspf-panel.is-collapsed .fvspf-panel-title{
    padding-bottom:0!important;
}

/* Mejor composición del bloque principal */
.fvspf-dashboard-grid-main{
    grid-template-columns:minmax(0,1.3fr) minmax(260px,.7fr) minmax(260px,.7fr)!important;
    align-items:stretch!important;
}
.fvspf-dashboard-grid-main > .fvspf-panel{
    height:100%!important;
}

/* Los split no deben heredar alturas gigantes */
.fvspf-dashboard-grid-split{
    align-items:start!important;
}
.fvspf-dashboard-grid-split > .fvspf-panel{
    height:auto!important;
}

/* Menos aire vertical dentro del dashboard */
.fvspf-results > section{
    margin-top:10px!important;
    margin-bottom:10px!important;
}

/* Registro/tabla no empujan fuera de las tarjetas */
.fvspf-table-wrap{
    max-width:100%!important;
    min-width:0!important;
}
.fvspf-table{
    max-width:100%!important;
}
.fvspf-record{
    max-width:100%!important;
    box-sizing:border-box!important;
}

/* Navegación superior más integrada */
.fvspf-nav button{
    padding:9px 12px!important;
}
.fvspf-brand p{
    max-width:520px;
}

/* Responsive */
@media(max-width:1180px){
    .fvspf-dashboard-grid-main{
        grid-template-columns:1fr 1fr!important;
    }
    .fvspf-dashboard-grid-main > .fvspf-panel:first-child{
        grid-column:1 / -1!important;
    }
    .fvspf-dashboard-grid-wide{
        grid-template-columns:1fr 1fr!important;
    }
    .fvspf-dashboard-grid-wide > .fvspf-panel:nth-child(3){
        grid-column:1 / -1!important;
    }
}
@media(max-width:860px){
    .fvspf-dashboard-grid-main,
    .fvspf-dashboard-grid-wide,
    .fvspf-dashboard-grid-split{
        grid-template-columns:1fr!important;
    }
    .fvspf-dashboard-grid-main > .fvspf-panel:first-child,
    .fvspf-dashboard-grid-wide > .fvspf-panel:nth-child(3){
        grid-column:auto!important;
    }
    .fvspf-dashboard-grid-wide > .fvspf-panel:nth-child(3) .fvspf-quality-grid{
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
    }
}
@media(max-width:520px){
    .fvspf-dashboard-grid-wide > .fvspf-panel:nth-child(3) .fvspf-quality-grid{
        grid-template-columns:1fr!important;
    }
}

/* v1.2.2 — cabecera simplificada */
.fvspf-topbar{
    justify-content:flex-start!important;
    padding:14px 18px!important;
    margin-bottom:12px!important;
}
.fvspf-nav,
.fvspf-dashboard-head,
#fvspf-dashboard-overview{
    display:none!important;
}
.fvspf-analysis-controls{
    display:flex;
    justify-content:flex-end;
    gap:8px;
    margin-top:10px;
    padding-top:10px;
    border-top:1px solid rgba(40,80,106,.45);
}
.fvspf-analysis-controls .fvspf-secondary{
    min-width:104px;
}
.fvspf-analysis-zone{margin-top:0!important}
.fvspf-results{margin-top:10px!important}
@media(max-width:560px){
    .fvspf-analysis-controls{justify-content:stretch}
    .fvspf-analysis-controls .fvspf-secondary{flex:1 1 50%}
}


/* v1.3.0 — dashboard compacto, campos legibles e iconografía FoxVision */
.fvspf-search input{background:#eef3f7!important;color:#102536!important;border-color:#6d8798!important;transition:background .15s ease,color .15s ease,border-color .15s ease}
.fvspf-search input:placeholder-shown{background:#dfe6eb!important;color:#536a79!important}
.fvspf-search input:not(:placeholder-shown){background:#fff!important;color:#071923!important;border-color:#9eb4c2!important}
.fvspf-search input:focus{background:#fff!important;color:#071923!important;border-color:#1db7ff!important;box-shadow:0 0 0 2px rgba(29,183,255,.14)!important}
.fvspf-kpi-grid{grid-template-columns:repeat(6,minmax(0,1fr))!important}
.fvspf-kpi{position:relative;padding-left:54px!important;min-height:108px}
.fvspf-kpi:before{position:absolute;left:18px;top:24px;width:24px;height:24px;display:grid;place-items:center;font-size:21px;color:#20c7ff}
.fvspf-kpi:nth-child(1):before{content:'✓';color:#52ef68;border:2px solid currentColor;border-radius:50%}
.fvspf-kpi:nth-child(2):before{content:'⌁'}
.fvspf-kpi:nth-child(3):before{content:'↔'}
.fvspf-kpi:nth-child(4):before{content:'∅';color:#ffc23d}
.fvspf-kpi:nth-child(5):before{content:'▦'}
.fvspf-kpi:nth-child(6):before{content:'◈';color:#a96cff}
.fvspf-static-warning{margin:0 0 14px;padding:10px 12px;border:1px solid rgba(255,194,61,.35);border-radius:8px;background:rgba(255,194,61,.06);color:#c9d9e4;font-size:12px}
.fvspf-auth-summary{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.fvspf-auth-summary>div{padding:14px;border:1px solid #294d61;border-radius:9px;background:#091d29;display:grid;grid-template-columns:auto 1fr;gap:2px 10px;align-items:center}
.fvspf-auth-summary strong{grid-row:1/3;font-size:25px;color:#25cfff}
.fvspf-auth-summary span{font-weight:700;overflow-wrap:anywhere}
.fvspf-auth-summary small{color:#8eb3c8}
.fvspf-distribution>.fvspf-note{margin-top:10px}
.fvspf-panel-title h2:before{display:inline-grid;place-items:center;width:22px;height:22px;margin-right:7px;border:1px solid rgba(32,199,255,.32);border-radius:6px;color:#25cfff;font-size:12px;vertical-align:-2px;content:'◆'}
.fvspf-panel:has(#fvspf-record) .fvspf-panel-title h2:before{content:'TXT'}
.fvspf-panel:has(#fvspf-tree) .fvspf-panel-title h2:before{content:'⌘'}
.fvspf-panel:has(#fvspf-issues) .fvspf-panel-title h2:before{content:'!';color:#ffc23d}
.fvspf-panel:has(#fvspf-history) .fvspf-panel-title h2:before{content:'↶'}
.fvspf-rfc .fvspf-panel-title h2:before{content:'§'}
@media(max-width:1100px){.fvspf-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}}
@media(max-width:650px){.fvspf-kpi-grid{grid-template-columns:1fr 1fr!important}.fvspf-auth-summary{grid-template-columns:1fr}.fvspf-kpi{padding-left:48px!important}}

/* v1.3.1 — precisión, iconografía y compactación */
.fvspf-summary{grid-template-columns:repeat(6,minmax(0,1fr))}.fvspf-section-icon{width:22px;height:22px;vertical-align:-5px;margin-right:9px;fill:none;stroke:#19c8ff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}.fvspf-panel-title h2{display:flex;align-items:center}.fvspf-compliance-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.fvspf-compliance-grid>div{background:#0b1722;border:1px solid #29445a;border-radius:9px;padding:12px}.fvspf-compliance-grid span,.fvspf-compliance-grid small{display:block;color:#9fb4c5;font-size:11px}.fvspf-compliance-grid strong{display:block;margin:5px 0;color:#fff}.fvspf-compliance-grid small.ok{color:#75f23b}.fvspf-compliance-grid small.warning{color:#f5b942}.fvspf-auth-summary{grid-template-columns:repeat(2,minmax(0,1fr))!important}.fvspf-auth-summary>div{min-height:88px!important}.fvspf-panel.is-collapsed{padding-top:13px;padding-bottom:13px}.fvspf-panel.is-collapsed .fvspf-panel-title h2{margin-bottom:0!important}@media(max-width:900px){.fvspf-summary{grid-template-columns:repeat(3,minmax(0,1fr))}.fvspf-compliance-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:520px){.fvspf-summary,.fvspf-compliance-grid{grid-template-columns:1fr 1fr}}


/* =========================================================
   v1.3.2 — tarjetas diagnósticas compactas e iconografía
   ========================================================= */
.fvspf-metric-icon{width:24px;height:24px;fill:none;stroke:#19c8ff;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round;flex:0 0 24px}
.fvspf-analysis-kpi strong{font-size:23px!important;color:#fff!important}
.fvspf-analysis-kpi small{display:block;margin-top:7px;color:#b9ccda;font-size:10px;line-height:1.45}
.fvspf-analysis-kpi.info{border-color:rgba(169,108,255,.35)}
.fvspf-analysis-kpi.info .fvspf-metric-icon{stroke:#a96cff}

/* Calidad */
.fvspf-quality-grid>div{display:flex;align-items:flex-start;gap:12px;min-height:104px;padding:13px!important}
.fvspf-quality-icon{display:grid;place-items:center;width:38px;height:38px;flex:0 0 38px;border-radius:9px;background:#0d2533;border:1px solid #24516a}
.fvspf-quality-copy{min-width:0}
.fvspf-quality-copy span{margin-top:0}
.fvspf-quality-grid>div.ok .fvspf-quality-icon{border-color:rgba(117,242,59,.30)}
.fvspf-quality-grid>div.warning .fvspf-quality-icon{border-color:rgba(245,185,66,.38)}
.fvspf-quality-grid>div.warning .fvspf-metric-icon{stroke:#ffc248}
.fvspf-quality-grid>div.error .fvspf-metric-icon{stroke:#ff6476}

/* Riesgo y mantenibilidad */
.fvspf-maint-health{display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:center;padding:12px 14px;margin-bottom:10px;background:#091923;border:1px solid #29445a;border-radius:9px}
.fvspf-maint-health span{display:block;color:#8faabd;font-size:10px;text-transform:uppercase}
.fvspf-maint-health strong{display:block;color:#75f23b;font-size:20px;margin-top:3px}
.fvspf-maint-bar{height:9px;background:#06131d;border:1px solid #29445a;border-radius:999px;overflow:hidden}
.fvspf-maint-bar i{display:block;height:100%;background:linear-gradient(90deg,#19c8ff,#75f23b);border-radius:inherit}
.fvspf-maint-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.fvspf-maint-grid>div{display:flex;gap:11px;align-items:center;padding:12px;background:#0b1823;border:1px solid #29445a;border-radius:9px}
.fvspf-maint-grid span,.fvspf-maint-grid small{display:block;color:#8faabd;font-size:10px}
.fvspf-maint-grid strong{display:block;color:#fff;font-size:17px;margin:2px 0}

/* Resumen autorización */
.fvspf-auth-overview{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.fvspf-auth-overview>div{display:flex;align-items:center;gap:13px;padding:15px;background:#091d29;border:1px solid #294d61;border-radius:10px;min-height:94px}
.fvspf-auth-overview>div.direct{border-color:rgba(117,242,59,.28)}
.fvspf-auth-overview>div.inherited{border-color:rgba(25,200,255,.30)}
.fvspf-auth-overview span,.fvspf-auth-overview small{display:block;color:#91afc2;font-size:10px}
.fvspf-auth-overview strong{display:block;color:#fff;font-size:17px;margin:4px 0}
.fvspf-auth-totals{margin-top:10px;padding:11px 13px;border:1px solid #29445a;border-radius:9px;background:#0b1823}
.fvspf-auth-totals strong{color:#fff;margin-right:12px}
.fvspf-auth-totals span{color:#b9ccda}
.fvspf-auth-totals small{display:block;color:#809caf;margin-top:5px}

/* Cumplimiento */
.fvspf-compliance-grid{display:block!important}
.fvspf-compliance-summary{display:flex;align-items:center;gap:12px;padding:13px 14px;margin-bottom:10px;border:1px solid #29445a;border-radius:9px;background:#091923}
.fvspf-compliance-summary.ok{border-color:rgba(117,242,59,.28)}
.fvspf-compliance-summary.warning{border-color:rgba(245,185,66,.35)}
.fvspf-compliance-summary strong,.fvspf-compliance-summary span{display:block}
.fvspf-compliance-summary strong{color:#fff;font-size:15px}
.fvspf-compliance-summary span{color:#9fb4c5;font-size:11px;margin-top:2px}
.fvspf-compliance-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}
.fvspf-compliance-cards>div{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;background:#0b1722;border:1px solid #29445a;border-radius:9px;padding:12px}
.fvspf-compliance-cards span{display:block;color:#9fb4c5;font-size:10px}
.fvspf-compliance-cards strong{display:block;color:#fff;margin-top:3px;font-size:15px}
.fvspf-compliance-cards small{padding:3px 7px;border-radius:999px;font-size:9px;font-weight:800}
.fvspf-compliance-cards small.ok{color:#75f23b;background:rgba(117,242,59,.08);border:1px solid rgba(117,242,59,.25)}
.fvspf-compliance-cards small.warning{color:#f5b942;background:rgba(245,185,66,.08);border:1px solid rgba(245,185,66,.28)}

/* Auditoría */
.fvspf-audit-head{display:flex;align-items:center;gap:8px}
.fvspf-mini-btn{min-height:30px!important;padding:0 9px!important;font-size:10px!important}
.fvspf-audit-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
.fvspf-audit-grid>div{display:grid;grid-template-columns:auto 1fr;column-gap:9px;align-items:center;min-height:70px}
.fvspf-audit-grid>div .fvspf-metric-icon{grid-row:1/3}
.fvspf-audit-grid>div span{align-self:end}
.fvspf-audit-grid>div strong{align-self:start;margin-top:2px}
.fvspf-audit-grid>div.ok .fvspf-metric-icon{stroke:#75f23b}
.fvspf-audit-grid>div.info .fvspf-metric-icon{stroke:#a96cff}
.fvspf-audit-grid>div.warning .fvspf-metric-icon{stroke:#ffc248}
.fvspf-audit-grid>div.error .fvspf-metric-icon{stroke:#ff6476}

@media(max-width:900px){
 .fvspf-compliance-cards,.fvspf-audit-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:650px){
 .fvspf-auth-overview,.fvspf-maint-grid,.fvspf-compliance-cards{grid-template-columns:1fr}
 .fvspf-audit-head{align-items:flex-end;flex-direction:column}
}


/* =========================================================
   v1.3.3 — compactación visual y coherencia del dashboard
   ========================================================= */

/* Inputs: fondo oscuro siempre; vacío gris claro, contenido blanco */
.fvspf-input-group input,
.fvspf-input-group input.has-value,
.fvspf-input-group input:focus,
.fvspf-input-group input.is-focus,
.fvspf-search input{
    background:#0b1b27!important;
    border-color:#35566d!important;
    color:#ffffff!important;
    -webkit-text-fill-color:#ffffff!important;
    caret-color:#ffffff!important;
    box-shadow:none!important;
}
.fvspf-input-group input::placeholder,
.fvspf-search input::placeholder{
    color:#a9b7c1!important;
    -webkit-text-fill-color:#a9b7c1!important;
    opacity:1!important;
}
.fvspf-input-group input:focus,
.fvspf-search input:focus{
    border-color:#19c8ff!important;
    box-shadow:0 0 0 1px rgba(25,200,255,.12)!important;
}
.fvspf-input-group input:-webkit-autofill,
.fvspf-input-group input:-webkit-autofill:hover,
.fvspf-input-group input:-webkit-autofill:focus{
    -webkit-text-fill-color:#fff!important;
    caret-color:#fff!important;
    box-shadow:0 0 0 1000px #0b1b27 inset!important;
    transition:background-color 9999s ease-out 0s;
}

/* Calidad: seis indicadores compactos en desktop */
.fvspf-quality-grid{
    grid-template-columns:repeat(6,minmax(0,1fr))!important;
    gap:8px!important;
}
.fvspf-quality-grid>div{
    min-height:82px!important;
    padding:10px!important;
    gap:8px!important;
    align-items:center!important;
}
.fvspf-quality-icon{
    width:32px!important;
    height:32px!important;
    flex-basis:32px!important;
    border-radius:7px!important;
}
.fvspf-quality-icon .fvspf-metric-icon{
    width:19px!important;
    height:19px!important;
}
.fvspf-quality-copy span{font-size:8px!important}
.fvspf-quality-copy strong{
    font-size:14px!important;
    margin-top:2px!important;
    line-height:1.2!important;
}
.fvspf-quality-copy small{
    display:block;
    color:#91a9b8;
    font-size:9px;
    line-height:1.25;
    margin-top:3px;
}

/* Riesgo y mantenibilidad: barra arriba y cuadrícula limpia 2x2 */
.fvspf-maintenance-wrap{display:block!important}
.fvspf-maint-health{
    grid-template-columns:170px minmax(0,1fr)!important;
    min-height:58px!important;
    margin-bottom:8px!important;
    padding:9px 11px!important;
}
.fvspf-maint-health strong{font-size:17px!important}
.fvspf-maint-grid{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:8px!important;
}
.fvspf-maint-grid>div{
    min-width:0!important;
    min-height:64px!important;
    padding:9px 10px!important;
}
.fvspf-maint-grid .fvspf-metric-icon{
    width:20px!important;height:20px!important;flex-basis:20px!important
}
.fvspf-maint-grid span{font-size:8px!important;text-transform:uppercase;letter-spacing:.04em}
.fvspf-maint-grid strong{font-size:15px!important;margin:1px 0!important}
.fvspf-maint-grid small{font-size:9px!important}

/* Autorización: resumen compacto + detalle consultable */
.fvspf-auth-overview>div{
    min-height:74px!important;
    padding:10px 12px!important;
}
.fvspf-auth-overview .fvspf-metric-icon{width:21px;height:21px;flex-basis:21px}
.fvspf-auth-overview strong{font-size:15px!important;margin:2px 0!important}
.fvspf-auth-totals{
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:12px!important;
    padding:8px 10px!important;
}
.fvspf-auth-totals>div{min-width:0}
.fvspf-auth-totals small{display:none!important}
.fvspf-auth-detail-toggle{
    min-width:92px!important;
    min-height:31px!important;
    padding:0 10px!important;
    font-size:10px!important;
}
.fvspf-auth-detail{
    margin-top:8px;
    border:1px solid #29445a;
    border-radius:9px;
    background:#08151f;
    padding:10px;
}
.fvspf-auth-source-detail+.fvspf-auth-source-detail{
    margin-top:9px;padding-top:9px;border-top:1px solid rgba(55,98,125,.35)
}
.fvspf-auth-source-title{
    display:flex;justify-content:space-between;gap:10px;align-items:center;margin-bottom:7px
}
.fvspf-auth-source-title strong{color:#fff;font-size:12px}
.fvspf-auth-source-title span{color:#8faabd;font-size:10px}
.fvspf-auth-network-list{
    display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px
}
.fvspf-auth-network-list code{
    display:block;padding:6px 7px;border:1px solid #244257;border-radius:6px;
    background:#0b1b27;color:#bfefff;font-size:10px;overflow-wrap:anywhere
}

/* Cumplimiento: ocupa menos altura */
.fvspf-compliance-summary{
    min-height:52px!important;
    padding:8px 11px!important;
    margin-bottom:8px!important;
}
.fvspf-compliance-summary .fvspf-metric-icon{width:19px;height:19px;flex-basis:19px}
.fvspf-compliance-summary strong{font-size:13px!important}
.fvspf-compliance-summary span{font-size:9px!important}
.fvspf-compliance-cards{
    grid-template-columns:repeat(6,minmax(0,1fr))!important;
    gap:7px!important;
}
.fvspf-compliance-cards>div{
    grid-template-columns:auto 1fr!important;
    min-height:58px!important;
    gap:7px!important;
    padding:8px!important;
}
.fvspf-compliance-cards>div .fvspf-metric-icon{width:18px;height:18px;flex-basis:18px}
.fvspf-compliance-cards span{font-size:8px!important}
.fvspf-compliance-cards strong{font-size:13px!important;margin-top:1px!important}
.fvspf-compliance-cards small{
    grid-column:1/3;
    justify-self:start;
    padding:2px 5px!important;
    font-size:8px!important;
}

/* Cambios: una línea compacta cuando no hay cambios */
#fvspf-change-panel .fvspf-panel-body{
    padding-top:2px!important;
}
.fvspf-change-compact{
    min-height:34px;
    display:flex;
    align-items:center;
    padding:6px 9px;
    border-radius:7px;
    background:#0b1823;
    border:1px solid #29445a;
    font-size:10px;
}
.fvspf-change-compact.ok{color:#75f23b;border-color:rgba(117,242,59,.24)}
#fvspf-change-panel:not(.is-collapsed){padding-bottom:10px!important}

/* Auditoría: 5 columnas, tarjetas bajas */
.fvspf-audit-grid{
    grid-template-columns:repeat(5,minmax(0,1fr))!important;
    gap:6px!important;
}
.fvspf-audit-grid>div{
    min-height:55px!important;
    padding:7px 8px!important;
    column-gap:6px!important;
}
.fvspf-audit-grid>div .fvspf-metric-icon{
    width:18px!important;height:18px!important;flex-basis:18px!important
}
.fvspf-audit-grid span{font-size:7px!important}
.fvspf-audit-grid strong{font-size:13px!important}
.fvspf-audit-head{gap:6px!important}
.fvspf-mini-btn{min-height:27px!important}

/* Menos aire vertical en estos paneles */
.fvspf-compliance-panel,
#fvspf-change-panel,
#fvspf-audit-panel,
#fvspf-authorization-summary-panel{
    padding-top:11px!important;
    padding-bottom:11px!important;
}
.fvspf-compliance-panel .fvspf-panel-title,
#fvspf-change-panel .fvspf-panel-title,
#fvspf-audit-panel .fvspf-panel-title{
    margin-bottom:7px!important;
}

@media(max-width:1250px){
 .fvspf-quality-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
 .fvspf-compliance-cards{grid-template-columns:repeat(3,minmax(0,1fr))!important}
 .fvspf-audit-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
}
@media(max-width:760px){
 .fvspf-quality-grid,.fvspf-compliance-cards,.fvspf-audit-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
 .fvspf-auth-network-list{grid-template-columns:repeat(2,minmax(0,1fr))}
 .fvspf-maint-health{grid-template-columns:1fr!important}
}
@media(max-width:520px){
 .fvspf-quality-grid,.fvspf-compliance-cards,.fvspf-audit-grid,.fvspf-maint-grid{grid-template-columns:1fr!important}
 .fvspf-auth-network-list{grid-template-columns:1fr}
 .fvspf-auth-totals{align-items:flex-start!important;flex-direction:column!important}
}

/* v1.3.3 ajuste del mensaje sin cambios existente */
#fvspf-change-panel .fvspf-no-change{
    margin:0!important;
    min-height:34px!important;
    padding:7px 9px!important;
    display:flex!important;
    align-items:center!important;
    color:#75f23b!important;
    background:#0b1823!important;
    border:1px solid rgba(117,242,59,.24)!important;
    border-radius:7px!important;
    font-size:10px!important;
}


/* =========================================================
   v1.3.6 — mejor aprovechamiento horizontal
   ========================================================= */

/* Calidad y optimización: caja más estrecha y visualmente compacta */
.fvspf-panel:has(#fvspf-quality){
    max-width:1180px;
    margin-left:auto;
    margin-right:auto;
}
.fvspf-quality-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:7px!important;
}
.fvspf-quality-grid>div{
    min-height:70px!important;
    padding:8px 10px!important;
}
.fvspf-quality-icon{
    width:29px!important;
    height:29px!important;
    flex-basis:29px!important;
}
.fvspf-quality-icon .fvspf-metric-icon{
    width:17px!important;
    height:17px!important;
}
.fvspf-quality-copy strong{
    font-size:13px!important;
}
.fvspf-quality-copy small{
    font-size:8.5px!important;
}

/* Cumplimiento SPF: 2 filas de 3 tarjetas */
.fvspf-compliance-cards{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:7px!important;
}
.fvspf-compliance-cards>div{
    min-height:54px!important;
    padding:7px 9px!important;
}
.fvspf-compliance-summary{
    min-height:46px!important;
    padding:7px 10px!important;
}
.fvspf-compliance-summary strong{
    font-size:12px!important;
}
.fvspf-compliance-summary span{
    font-size:8.5px!important;
}

/* En pantallas grandes no estirar demasiado el bloque de cumplimiento */
.fvspf-compliance-panel{
    max-width:1500px;
    margin-left:auto;
    margin-right:auto;
}

@media(max-width:1100px){
    .fvspf-panel:has(#fvspf-quality){max-width:none}
    .fvspf-quality-grid{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:760px){
    .fvspf-quality-grid,
    .fvspf-compliance-cards{grid-template-columns:1fr!important}
}


/* =========================================================
   v1.3.7 — bloques de media página
   ========================================================= */
.fvspf-half-panel{
    width:calc(50% - 6px)!important;
    max-width:none!important;
    margin-left:0!important;
    margin-right:auto!important;
    box-sizing:border-box!important;
}

/* Calidad: mantener 3 columnas x 2 filas dentro de media página */
.fvspf-quality-panel .fvspf-quality-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
}

/* Cumplimiento: 3 columnas x 2 filas dentro de media página */
.fvspf-compliance-panel .fvspf-compliance-cards{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
}

/* Cambios: media página, contenido compacto */
#fvspf-change-panel{
    min-height:auto!important;
}

/* Al quedar a media página, reducir ligeramente tipografía interna */
.fvspf-quality-panel .fvspf-quality-grid>div{
    min-width:0!important;
}
.fvspf-quality-panel .fvspf-quality-copy strong,
.fvspf-compliance-panel .fvspf-compliance-cards strong{
    overflow-wrap:anywhere;
}

@media(max-width:1050px){
    .fvspf-half-panel{
        width:100%!important;
        margin-right:0!important;
    }
    .fvspf-quality-panel .fvspf-quality-grid,
    .fvspf-compliance-panel .fvspf-compliance-cards{
        grid-template-columns:repeat(3,minmax(0,1fr))!important;
    }
}
@media(max-width:760px){
    .fvspf-quality-panel .fvspf-quality-grid,
    .fvspf-compliance-panel .fvspf-compliance-cards{
        grid-template-columns:1fr!important;
    }
}


/* =========================================================
   v1.3.8 — corrección definitiva de ancho e inputs vacíos
   ========================================================= */

/* Estado vacío: mantener el mismo fondo oscuro del dashboard.
   El placeholder queda gris claro; al escribir el texto es blanco. */
.fvspf-dashboard .fvspf-search input:placeholder-shown,
.fvspf-dashboard .fvspf-input-group input:placeholder-shown{
    background:#0b1b27!important;
    background-color:#0b1b27!important;
    color:#a9b7c1!important;
    -webkit-text-fill-color:#a9b7c1!important;
    border-color:#35566d!important;
    box-shadow:none!important;
}
.fvspf-dashboard .fvspf-search input:placeholder-shown:focus,
.fvspf-dashboard .fvspf-input-group input:placeholder-shown:focus{
    background:#0b1b27!important;
    background-color:#0b1b27!important;
    color:#a9b7c1!important;
    -webkit-text-fill-color:#a9b7c1!important;
    border-color:#19c8ff!important;
    box-shadow:0 0 0 1px rgba(25,200,255,.12)!important;
}
.fvspf-dashboard .fvspf-search input:not(:placeholder-shown),
.fvspf-dashboard .fvspf-input-group input:not(:placeholder-shown){
    background:#0b1b27!important;
    background-color:#0b1b27!important;
    color:#fff!important;
    -webkit-text-fill-color:#fff!important;
}

/* El CSS histórico hacía que el tercer panel de este grid ocupase ambas columnas.
   Esta regla lo anula específicamente para Calidad y optimización SPF. */
.fvspf-dashboard-grid-wide > .fvspf-quality-panel,
.fvspf-dashboard-grid-wide > .fvspf-panel.fvspf-quality-panel:nth-child(3){
    grid-column:1 / 2!important;
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    justify-self:stretch!important;
    align-self:start!important;
}

/* Calidad mantiene 3 x 2 dentro de su media página. */
.fvspf-dashboard-grid-wide > .fvspf-quality-panel .fvspf-quality-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
}

/* Cumplimiento y Cambios: media página real en escritorio. */
.fvspf-dashboard > .fvspf-compliance-panel.fvspf-half-panel,
.fvspf-dashboard > #fvspf-change-panel.fvspf-half-panel{
    width:calc(50% - 6px)!important;
    max-width:calc(50% - 6px)!important;
    margin-left:0!important;
    margin-right:auto!important;
}

@media(max-width:1050px){
    .fvspf-dashboard-grid-wide > .fvspf-quality-panel,
    .fvspf-dashboard-grid-wide > .fvspf-panel.fvspf-quality-panel:nth-child(3){
        grid-column:1 / -1!important;
        width:100%!important;
    }
    .fvspf-dashboard > .fvspf-compliance-panel.fvspf-half-panel,
    .fvspf-dashboard > #fvspf-change-panel.fvspf-half-panel{
        width:100%!important;
        max-width:100%!important;
    }
}


/* =========================================================
   v1.3.9 — Cumplimiento 50% + Cambios al final 50%
   ========================================================= */

/* Cumplimiento SPF: media página real en escritorio */
.fvspf-dashboard .fvspf-compliance-panel.fvspf-half-panel{
    width:calc(50% - 6px)!important;
    max-width:calc(50% - 6px)!important;
    min-width:0!important;
    margin-left:0!important;
    margin-right:auto!important;
    grid-column:auto!important;
    box-sizing:border-box!important;
}

/* Sus seis métricas se mantienen en 3 columnas x 2 filas */
.fvspf-dashboard .fvspf-compliance-panel .fvspf-compliance-cards{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
}

/* Cambios queda al final del flujo y ocupa media página */
.fvspf-dashboard #fvspf-change-panel.fvspf-half-panel{
    width:calc(50% - 6px)!important;
    max-width:calc(50% - 6px)!important;
    min-width:0!important;
    margin-left:0!important;
    margin-right:auto!important;
    grid-column:auto!important;
    box-sizing:border-box!important;
}

/* Responsive */
@media(max-width:1050px){
    .fvspf-dashboard .fvspf-compliance-panel.fvspf-half-panel,
    .fvspf-dashboard #fvspf-change-panel.fvspf-half-panel{
        width:100%!important;
        max-width:100%!important;
    }
}
@media(max-width:760px){
    .fvspf-dashboard .fvspf-compliance-panel .fvspf-compliance-cards{
        grid-template-columns:1fr!important;
    }
}


/* =========================================================
   v1.4.0 — layout híbrido para reducir huecos verticales
   ========================================================= */

/* Los grupos marcados como flujo variable dejan de sincronizar
   la altura de sus dos columnas. Cada panel cae bajo el anterior
   de su propia columna, evitando grandes huecos. */
.fvspf-layout-v140 .fvspf-variable-flow{
    display:block!important;
    column-count:2;
    column-gap:12px;
}
.fvspf-layout-v140 .fvspf-variable-flow > .fvspf-panel{
    display:inline-block;
    width:100%!important;
    max-width:100%!important;
    margin:0 0 12px!important;
    vertical-align:top;
    break-inside:avoid;
    page-break-inside:avoid;
}

/* Los paneles de altura estable siguen utilizando las rejillas originales. */
.fvspf-layout-v140 .fvspf-dashboard-grid-main,
.fvspf-layout-v140 .fvspf-dashboard-grid-wide,
.fvspf-layout-v140 .fvspf-dashboard-grid-split{
    align-items:start!important;
}

/* Evita que un panel pequeño herede una altura artificial de su compañero. */
.fvspf-layout-v140 .fvspf-panel{
    align-self:start!important;
    min-height:0;
}

/* Separación vertical más uniforme y compacta. */
.fvspf-layout-v140 .fvspf-dashboard-grid-main,
.fvspf-layout-v140 .fvspf-dashboard-grid-wide,
.fvspf-layout-v140 .fvspf-dashboard-grid-split{
    row-gap:12px!important;
}

/* Paneles a media página solicitados: conservan su tamaño,
   pero no fuerzan la altura de ningún bloque vecino. */
.fvspf-layout-v140 .fvspf-quality-panel,
.fvspf-layout-v140 .fvspf-compliance-panel,
.fvspf-layout-v140 #fvspf-change-panel{
    align-self:start!important;
}

/* Los bloques extensos conservan ancho completo cuando ya lo tenían. */
.fvspf-layout-v140 .fvspf-full-width,
.fvspf-layout-v140 .fvspf-tree-panel{
    column-span:all;
}

/* Responsive: flujo normal a una sola columna. */
@media(max-width:1050px){
    .fvspf-layout-v140 .fvspf-variable-flow{
        column-count:1;
    }
}

/* v1.4.1 — estado y cobertura separados en histórico */
.fvspf-history-analysis{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:62px;
    padding:3px 7px;
    border-radius:999px;
    font-size:9px;
    font-weight:800;
    border:1px solid #35566d;
    color:#c8d8e3;
    background:#0b1b27;
}
.fvspf-history-analysis.partial{
    color:#d9b8ff;
    border-color:rgba(169,108,255,.38);
    background:rgba(169,108,255,.08);
}
.fvspf-history-analysis.complete{
    color:#75f23b;
    border-color:rgba(117,242,59,.28);
    background:rgba(117,242,59,.06);
}


/* =========================================================
   v1.4.2 — placeholders de ejemplo claramente diferenciados
   ========================================================= */
.fvspf-dashboard .fvspf-search input::placeholder,
.fvspf-dashboard .fvspf-input-group input::placeholder{
    color:#9fb0bc!important;
    -webkit-text-fill-color:#9fb0bc!important;
    opacity:1!important;
    font-style:italic;
    font-weight:500;
}
.fvspf-dashboard .fvspf-search input:placeholder-shown,
.fvspf-dashboard .fvspf-input-group input:placeholder-shown{
    background:#0b1b27!important;
    color:#9fb0bc!important;
    -webkit-text-fill-color:#9fb0bc!important;
}
.fvspf-dashboard .fvspf-search input:not(:placeholder-shown),
.fvspf-dashboard .fvspf-input-group input:not(:placeholder-shown){
    color:#fff!important;
    -webkit-text-fill-color:#fff!important;
    font-style:normal;
}

/* v1.4.3 — Cabecera y footer FoxVision unificados */
.fvspf-topbar{position:relative!important;display:grid!important;grid-template-columns:64px minmax(0,1fr) auto!important;align-items:center!important;gap:16px!important;min-height:106px!important;padding:18px 20px!important;margin:0 0 12px!important;background:linear-gradient(105deg,#0d1a2b 0%,#0e1d31 70%,#0c2635 100%)!important;border:1px solid #29405b!important;border-radius:12px!important;backdrop-filter:none!important}
.fvspf-topbar>.fvspf-icon{width:58px!important;height:58px!important;flex:0 0 58px!important;object-fit:contain!important}.fvspf-heading-copy{min-width:0}.fvspf-eyebrow{display:block;margin-bottom:4px;color:#22d3ee;font-size:10px!important;font-weight:900;letter-spacing:.14em}.fvspf-heading-copy h1{margin:0!important;color:#fff!important;font-size:23px!important;line-height:1.1}.fvspf-heading-copy p{margin:7px 0 0!important;max-width:760px;color:#b9c9dc!important;font-size:11px!important}.fvspf-topbar>.fvspf-version{align-self:start!important;margin:2px 0 0!important;background:#0c2233!important;border:1px solid #245875!important;color:#a9e9ff!important;padding:4px 8px!important;border-radius:999px!important}
.fvspf-footer{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;padding:10px 2px 0;border-top:1px solid #243a4a;color:#8499aa;font-size:10px}.fvspf-footer b{color:#36cbff}
@media(max-width:650px){.fvspf-topbar{grid-template-columns:48px 1fr!important;padding:14px!important;min-height:auto!important}.fvspf-topbar>.fvspf-icon{width:44px!important;height:44px!important}.fvspf-topbar>.fvspf-version{grid-column:2!important;justify-self:start!important}.fvspf-heading-copy h1{font-size:19px!important}.fvspf-footer{display:block}.fvspf-footer span{display:block;margin-top:4px}}


/* =========================================================
   v1.4.4 — Cabecera alineada con Header Analyzer
   ========================================================= */

/* Mismo ancho de trabajo y presencia que el Analizador de Cabeceras */
body.fvspf-page .fvspf-app.fvspf-dashboard{
    width:100%!important;
    max-width:none!important;
    margin:0!important;
    padding:14px!important;
}

/* Cabecera compacta: texto a la izquierda, versión a la derecha.
   Sin icono independiente, igual que Header Analyzer. */
body.fvspf-page .fvspf-topbar{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:12px!important;
    min-height:82px!important;
    padding:14px 18px!important;
    margin:0 0 12px!important;
    background:linear-gradient(105deg,#0d1a2b 0%,#0e1d31 70%,#0c2635 100%)!important;
    border:1px solid #29405b!important;
    border-radius:12px!important;
    box-shadow:none!important;
}
body.fvspf-page .fvspf-topbar>.fvspf-icon{
    display:none!important;
}
body.fvspf-page .fvspf-heading-copy{
    flex:1 1 auto!important;
    width:auto!important;
    min-width:0!important;
    margin:0 auto 0 0!important;
    text-align:left!important;
}
body.fvspf-page .fvspf-heading-copy>*{
    text-align:left!important;
    margin-left:0!important;
    margin-right:0!important;
}
body.fvspf-page .fvspf-eyebrow{
    display:block!important;
    margin:0 0 4px!important;
    color:#22d3ee!important;
    font-size:10px!important;
    line-height:1.25!important;
    font-weight:900!important;
    letter-spacing:.14em!important;
}
body.fvspf-page .fvspf-heading-copy h1{
    margin:0!important;
    color:#fff!important;
    font-size:21px!important;
    line-height:1.1!important;
    font-weight:800!important;
}
body.fvspf-page .fvspf-heading-copy p{
    margin:7px 0 0!important;
    max-width:760px!important;
    color:#b9c9dc!important;
    font-size:11px!important;
    line-height:1.4!important;
}
body.fvspf-page .fvspf-topbar>.fvspf-version{
    flex:0 0 auto!important;
    align-self:center!important;
    margin:0!important;
    padding:4px 8px!important;
    background:#0c2233!important;
    border:1px solid #245875!important;
    border-radius:999px!important;
    color:#a9e9ff!important;
    font-size:11px!important;
    line-height:1.2!important;
    font-weight:700!important;
}

/* Zona de consulta algo más compacta y alineada con el nuevo dashboard */
body.fvspf-page .fvspf-analysis-zone{
    margin-bottom:12px!important;
}
body.fvspf-page .fvspf-search{
    padding:14px 16px!important;
    border:1px solid #29405b!important;
    border-radius:10px!important;
    background:#0d1d2a!important;
}
body.fvspf-page .fvspf-search-grid{
    gap:10px!important;
    align-items:end!important;
}
body.fvspf-page .fvspf-input-label{
    margin-bottom:6px!important;
    font-size:11px!important;
}
body.fvspf-page .fvspf-search input{
    min-height:42px!important;
    padding:9px 12px!important;
    font-size:12px!important;
}
body.fvspf-page #fvspf-run{
    min-height:42px!important;
    padding:0 18px!important;
    font-size:12px!important;
}

/* Los controles secundarios dejan de crear un gran hueco visual */
body.fvspf-page .fvspf-analysis-controls{
    margin-top:10px!important;
    padding-top:10px!important;
}
body.fvspf-page .fvspf-analysis-controls .fvspf-secondary{
    min-height:34px!important;
    padding:6px 12px!important;
    font-size:11px!important;
}

/* Footer interno con el mismo comportamiento visual transparente */
body.fvspf-page .fvspf-footer{
    background:transparent!important;
    background-color:transparent!important;
    background-image:none!important;
    box-shadow:none!important;
}

@media(max-width:650px){
    body.fvspf-page .fvspf-app.fvspf-dashboard{
        width:100%!important;
        margin:8px auto 30px!important;
        padding:10px!important;
    }
    body.fvspf-page .fvspf-topbar{
        align-items:flex-start!important;
        flex-wrap:wrap!important;
        min-height:auto!important;
        padding:14px!important;
    }
    body.fvspf-page .fvspf-heading-copy{
        flex:1 1 calc(100% - 60px)!important;
    }
    body.fvspf-page .fvspf-topbar>.fvspf-version{
        margin-left:0!important;
    }
}


/* =========================================================
   v1.4.5 — Elimina el gran espacio entre menú y herramienta
   Afecta únicamente a páginas con body.fvspf-page.
   ========================================================= */

/* Blocksy / CreativeThemes: neutraliza el espaciado vertical de contenido. */
body.fvspf-page{
    --content-vertical-spacing:16px!important;
}
body.fvspf-page [data-vertical-spacing],
body.fvspf-page [data-vertical-spacing*="top"],
body.fvspf-page [data-vertical-spacing*="bottom"]{
    padding-top:0!important;
    margin-top:0!important;
}

/* Contenedores habituales del tema y WordPress. */
body.fvspf-page #main,
body.fvspf-page #main-container,
body.fvspf-page #primary,
body.fvspf-page .site-main,
body.fvspf-page main.site-main,
body.fvspf-page .content-area,
body.fvspf-page .site-content,
body.fvspf-page .ct-container,
body.fvspf-page .ct-container-full,
body.fvspf-page .ct-content,
body.fvspf-page article.page,
body.fvspf-page article.type-page,
body.fvspf-page .entry-content,
body.fvspf-page .wp-site-blocks main{
    min-height:0!important;
    padding-top:0!important;
    margin-top:0!important;
}

/* Títulos/hero del tema no deben reservar espacio oculto. */
body.fvspf-page .hero-section,
body.fvspf-page .ct-page-title,
body.fvspf-page .entry-header,
body.fvspf-page .page-header{
    display:none!important;
    min-height:0!important;
    height:0!important;
    margin:0!important;
    padding:0!important;
}

/* El plugin empieza inmediatamente bajo la cabecera global del sitio. */
body.fvspf-page .fvspf-app.fvspf-dashboard{
    margin-top:16px!important;
    transform:none!important;
}

/* Gutenberg: un Spacer vacío situado en la página SPF no debe crear
   cientos de píxeles antes del shortcode. El JS v1.4.5 elimina solo
   los spacers vacíos anteriores al plugin; esta regla actúa de respaldo. */
body.fvspf-page .entry-content > .wp-block-spacer:empty{
    max-height:16px!important;
    height:16px!important;
}

/* Evita centrado vertical accidental en wrappers del contenido. */
body.fvspf-page .entry-content,
body.fvspf-page .site-main,
body.fvspf-page main{
    align-content:start!important;
    align-items:stretch!important;
    justify-content:flex-start!important;
}

/* Mobile */
@media(max-width:650px){
    body.fvspf-page .fvspf-app.fvspf-dashboard{
        margin-top:10px!important;
    }
}


/* =========================================================
   v1.4.6 — Header/Footer idénticos al Header Analyzer
   ========================================================= */

/* Contenedor general equivalente a .fvha-wrap */
body.fvspf-page .fvspf-app.fvspf-dashboard{
    box-sizing:border-box!important;
    max-width:none!important;
    width:100%!important;
    margin:0!important;
    padding:14px!important;
    background:#0f172a!important;
    color:#e5e7eb!important;
    border:1px solid #25324a!important;
    border-radius:10px!important;
}

/* Cabecera copiada del patrón actual del Header Analyzer */
body.fvspf-page .fvspf-heading{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-start!important;
    gap:12px!important;
    min-height:82px!important;
    padding:14px 18px!important;
    margin:0 0 12px!important;
    background:linear-gradient(105deg,#0d1a2b 0%,#0e1d31 70%,#0c2635 100%)!important;
    border:1px solid #29405b!important;
    border-radius:12px!important;
    box-shadow:none!important;
}
body.fvspf-page .fvspf-heading-copy{
    flex:1 1 auto!important;
    width:auto!important;
    min-width:0!important;
    margin:0 auto 0 0!important;
    text-align:left!important;
}
body.fvspf-page .fvspf-heading-copy>*{
    text-align:left!important;
    margin-left:0!important;
    margin-right:0!important;
}
body.fvspf-page .fvspf-eyebrow{
    display:block!important;
    margin-bottom:4px!important;
    color:#22d3ee!important;
    font-size:10px!important;
    line-height:1.35!important;
    font-weight:900!important;
    letter-spacing:.14em!important;
}
body.fvspf-page .fvspf-heading h2{
    margin:0!important;
    color:#fff!important;
    font-size:21px!important;
    line-height:1.1!important;
    font-weight:800!important;
}
body.fvspf-page .fvspf-heading p{
    margin:7px 0 0!important;
    max-width:760px!important;
    color:#b9c9dc!important;
    font-size:11px!important;
    line-height:1.4!important;
}
body.fvspf-page .fvspf-version{
    flex:0 0 auto!important;
    align-self:center!important;
    margin:0!important;
    padding:4px 8px!important;
    background:#0c2233!important;
    border:1px solid #245875!important;
    border-radius:999px!important;
    color:#a9e9ff!important;
    font-size:11px!important;
    font-weight:700!important;
    white-space:nowrap!important;
}

/* Footer interno exactamente con el patrón Header Analyzer.
   Se usa DIV para evitar estilos globales del tema aplicados a <footer>. */
body.fvspf-page .fvspf-tool-footer{
    display:flex!important;
    justify-content:space-between!important;
    align-items:center!important;
    gap:12px!important;
    margin-top:14px!important;
    padding:10px 2px 0!important;
    border:0!important;
    border-top:1px solid #243a4a!important;
    background:transparent!important;
    background-color:transparent!important;
    background-image:none!important;
    box-shadow:none!important;
    color:#8499aa!important;
    font-size:10px!important;
}
body.fvspf-page .fvspf-tool-footer span,
body.fvspf-page .fvspf-tool-footer b{
    font-size:10px!important;
    background:transparent!important;
}
body.fvspf-page .fvspf-tool-footer b{
    color:#36cbff!important;
}

/* El footer debe verse también antes de ejecutar un análisis */
body.fvspf-page #fvspf-results[hidden] + .fvspf-tool-footer{
    display:flex!important;
}

/* Elimina el espacio real entre el menú y la herramienta */
body.fvspf-page{
    --content-vertical-spacing:0px!important;
}
body.fvspf-page #main-container,
body.fvspf-page #main,
body.fvspf-page #primary,
body.fvspf-page .site-main,
body.fvspf-page main,
body.fvspf-page .content-area,
body.fvspf-page .site-content,
body.fvspf-page .ct-container,
body.fvspf-page .ct-container-full,
body.fvspf-page .entry-content,
body.fvspf-page article.page,
body.fvspf-page article.type-page{
    margin-top:0!important;
    padding-top:0!important;
    min-height:0!important;
}
body.fvspf-page .entry-header,
body.fvspf-page .page-header,
body.fvspf-page .page-title,
body.fvspf-page .entry-title,
body.fvspf-page .hero-section,
body.fvspf-page .ct-page-title{
    display:none!important;
    height:0!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
}

/* Blocksy puede dejar un primer bloque vacío con min-height.
   Solo se neutralizan hermanos vacíos anteriores al shortcode. */
body.fvspf-page .entry-content > .wp-block-spacer,
body.fvspf-page .entry-content > p:empty{
    height:0!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
}

/* Oculta el footer CreativeThemes/Blocksy únicamente en la página SPF */
body.fvspf-page #footer.site-footer,
body.fvspf-page footer.site-footer,
body.fvspf-page .site-footer,
body.fvspf-page .ct-footer{
    display:none!important;
    height:0!important;
    min-height:0!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
}

@media(max-width:650px){
    body.fvspf-page .fvspf-app.fvspf-dashboard{
        width:100%!important;
        margin:0!important;
        padding:10px!important;
    }
    body.fvspf-page .fvspf-heading{
        display:flex!important;
        align-items:flex-start!important;
        flex-wrap:wrap!important;
        min-height:auto!important;
        padding:14px!important;
    }
    body.fvspf-page .fvspf-heading-copy{
        flex:1 1 calc(100% - 70px)!important;
    }
    body.fvspf-page .fvspf-version{
        margin-left:0!important;
    }
    body.fvspf-page .fvspf-tool-footer{
        display:block!important;
    }
    body.fvspf-page .fvspf-tool-footer span{
        display:block!important;
        margin-top:4px!important;
    }
}


/* =========================================================
   v1.4.7 — Icono SPF en la cabecera
   ========================================================= */
body.fvspf-page .fvspf-heading-icon-wrap{
    display:flex!important;
    align-items:center!important;
    justify-content:center!important;
    flex:0 0 66px!important;
    width:66px!important;
    height:66px!important;
    padding:7px!important;
    box-sizing:border-box!important;
    border:1px solid #31516e!important;
    border-radius:14px!important;
    background:#102238!important;
}
body.fvspf-page .fvspf-heading-icon{
    display:block!important;
    width:100%!important;
    height:100%!important;
    max-width:52px!important;
    max-height:52px!important;
    object-fit:contain!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    background:transparent!important;
    box-shadow:none!important;
}
body.fvspf-page .fvspf-heading-copy{
    align-self:center!important;
}
@media(max-width:650px){
    body.fvspf-page .fvspf-heading-icon-wrap{
        flex:0 0 54px!important;
        width:54px!important;
        height:54px!important;
        padding:6px!important;
        border-radius:12px!important;
    }
    body.fvspf-page .fvspf-heading-icon{
        max-width:42px!important;
        max-height:42px!important;
    }
    body.fvspf-page .fvspf-heading-copy{
        flex:1 1 calc(100% - 126px)!important;
    }
}


/* =========================================================
   v1.4.8 — icono SPF limpio y completamente estático
   ========================================================= */
body.fvspf-page .fvspf-heading-icon-wrap{
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    overflow:visible!important;
    cursor:default!important;
}

body.fvspf-page .fvspf-heading-icon{
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    outline:0!important;
    cursor:default!important;
    pointer-events:none!important;
    transform:none!important;
    transition:none!important;
    filter:none!important;
}

body.fvspf-page .fvspf-heading-icon-wrap:hover,
body.fvspf-page .fvspf-heading-icon-wrap:focus,
body.fvspf-page .fvspf-heading-icon-wrap:active,
body.fvspf-page .fvspf-heading-icon:hover,
body.fvspf-page .fvspf-heading-icon:focus,
body.fvspf-page .fvspf-heading-icon:active{
    transform:none!important;
    scale:1!important;
    filter:none!important;
    box-shadow:none!important;
    border:0!important;
    background:transparent!important;
}




/* =========================================================
   v1.4.15 — ancho, RFC, tipografía y limpieza visual
   ========================================================= */

body.fvspf-page,
body.fvspf-mounted-wide,
body.fvspf-page #page,
body.fvspf-page .site,
body.fvspf-page .site-content,
body.fvspf-page #primary,
body.fvspf-page .content-area,
body.fvspf-page #main,
body.fvspf-page .site-main,
body.fvspf-page article,
body.fvspf-page .entry-content,
body.fvspf-page .wp-block-post-content,
body.fvspf-page .wp-block-shortcode{
    overflow:visible!important;
}

.fvspf-fullwidth-host{
    display:block!important;
    width:calc(100vw - 74px)!important;
    max-width:none!important;
    min-width:0!important;
    position:relative!important;
    left:50%!important;
    transform:translateX(-50%)!important;
    margin:14px 0 40px!important;
    padding:0!important;
    box-sizing:border-box!important;
    overflow:visible!important;
}

.fvspf-fullwidth-host > .fvspf-app.fvspf-dashboard{
    width:100%!important;
    max-width:none!important;
    min-width:0!important;
    position:static!important;
    left:auto!important;
    transform:none!important;
    margin:0!important;
    padding:14px!important;
    box-sizing:border-box!important;
}

.fvspf-fullwidth-host .fvspf-topbar,
.fvspf-fullwidth-host .fvspf-analysis-zone,
.fvspf-fullwidth-host .fvspf-results,
.fvspf-fullwidth-host .fvspf-dashboard-grid,
.fvspf-fullwidth-host .fvspf-panel{
    max-width:none!important;
    min-width:0!important;
    box-sizing:border-box!important;
}

.fvspf-kpi-grid{
    grid-template-columns:repeat(6,minmax(0,1fr))!important;
}
.fvspf-kpi{
    min-height:92px!important;
    padding:13px!important;
}
.fvspf-kpi small{
    display:block;
    margin-top:5px;
    color:#8faabd;
    font-size:9.5px;
    line-height:1.3;
}

.fvspf-rfc-summary-row{
    display:block!important;
}
.fvspf-rfc-summary-row > .fvspf-panel{
    width:100%!important;
}
.fvspf-rfc-executive{
    display:grid;
    gap:12px;
}
.fvspf-rfc-overview{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    padding:11px 12px;
    background:#0d1a25;
    border:1px solid #29445a;
    border-radius:8px;
}
.fvspf-rfc-overview strong{color:#fff;font-size:13px}
.fvspf-rfc-overview span{color:#9fb4c5;font-size:11px;white-space:nowrap}
.fvspf-rfc-overview.ok{border-color:rgba(117,242,59,.35)}
.fvspf-rfc-overview.warning{border-color:rgba(245,185,66,.4)}
.fvspf-rfc-overview.error{border-color:rgba(255,100,118,.45)}
.fvspf-rfc-checks{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:8px;
}
.fvspf-rfc-checks>div{
    display:flex;
    gap:9px;
    align-items:flex-start;
    padding:10px;
    background:#0d1a25;
    border:1px solid #29445a;
    border-radius:8px;
}
.fvspf-rfc-checks>div>b{
    display:flex;
    align-items:center;
    justify-content:center;
    width:22px;
    height:22px;
    flex:0 0 22px;
    border-radius:999px;
    font-size:11px;
}
.fvspf-rfc-checks>div.ok>b{color:#8df867;background:rgba(117,242,59,.10);border:1px solid rgba(117,242,59,.28)}
.fvspf-rfc-checks>div.warning>b{color:#ffd26f;background:rgba(245,185,66,.10);border:1px solid rgba(245,185,66,.3)}
.fvspf-rfc-checks strong{display:block;color:#f8fafc;font-size:11px}
.fvspf-rfc-checks small{display:block;margin-top:3px;color:#92a8b8;font-size:9.5px;line-height:1.35}

/* SPF como texto normal, nunca como etiqueta blanca */
.fvspf-app .fvspf-plain-acronym,
.fvspf-app .fvspf-plain-acronym *,
.fvspf-app .fvspf-heading-copy code,
.fvspf-app .fvspf-heading-copy kbd,
.fvspf-app .fvspf-heading-copy mark{
    display:inline!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    background-color:transparent!important;
    background-image:none!important;
    box-shadow:none!important;
    color:inherit!important;
    font:inherit!important;
    line-height:inherit!important;
    text-decoration:none!important;
}

/* En la herramienta no hace falta repetir SPF como etiqueta visual */
.fvspf-app .fvspf-panel-title code,
.fvspf-app .fvspf-panel-title kbd,
.fvspf-app .fvspf-panel-title mark,
.fvspf-app .fvspf-kpi code,
.fvspf-app .fvspf-kpi kbd,
.fvspf-app .fvspf-kpi mark{
    display:inline!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    border-radius:0!important;
    background:transparent!important;
    box-shadow:none!important;
    color:inherit!important;
    font:inherit!important;
}

@media(max-width:1100px){
    .fvspf-kpi-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
    .fvspf-rfc-checks{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:900px){
    .fvspf-fullwidth-host{width:calc(100vw - 32px)!important}
    .fvspf-fullwidth-host > .fvspf-app.fvspf-dashboard{padding:12px!important}
}
@media(max-width:650px){
    .fvspf-fullwidth-host{width:calc(100vw - 18px)!important}
    .fvspf-rfc-checks{grid-template-columns:1fr}
    .fvspf-rfc-overview{align-items:flex-start;flex-direction:column}
    .fvspf-rfc-overview span{white-space:normal}
}


/* =========================================================
   FoxVision SPF Analyzer v1.4.16
   Acciones web + iconografía SVG futurista
   ========================================================= */

/* Botón analizar con acciones justo debajo */
body.fvspf-page .fvspf-search-grid{
    grid-template-columns:minmax(260px,1.35fr) minmax(220px,1fr) auto!important;
    align-items:end!important;
}
body.fvspf-page .fvspf-run-column{
    display:flex!important;
    flex-direction:column!important;
    align-items:stretch!important;
    gap:7px!important;
    min-width:150px!important;
}
body.fvspf-page .fvspf-run-column #fvspf-run{
    width:100%!important;
    min-width:150px!important;
}
body.fvspf-page .fvspf-analysis-controls{
    display:flex!important;
    justify-content:center!important;
    align-items:center!important;
    gap:14px!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
}
body.fvspf-page .fvspf-text-action{
    appearance:none!important;
    display:inline-flex!important;
    align-items:center!important;
    gap:5px!important;
    margin:0!important;
    padding:0!important;
    border:0!important;
    outline:0!important;
    background:transparent!important;
    box-shadow:none!important;
    color:#8dbbd0!important;
    font:600 10px/1.2 Inter,system-ui,sans-serif!important;
    cursor:pointer!important;
    white-space:nowrap!important;
    transition:color .16s ease,transform .16s ease!important;
}
body.fvspf-page .fvspf-text-action svg{
    width:14px!important;
    height:14px!important;
    fill:none!important;
    stroke:currentColor!important;
    stroke-width:1.7!important;
    stroke-linecap:round!important;
    stroke-linejoin:round!important;
}
body.fvspf-page .fvspf-text-action:hover{
    color:#35d3ff!important;
    transform:translateY(-1px)!important;
}
body.fvspf-page .fvspf-text-action:focus-visible{
    color:#67e8f9!important;
    text-decoration:underline!important;
    text-underline-offset:3px!important;
}

/* Iconos SVG tecnológicos: únicos por sección */
.fvspf-section-icon,
.fvspf-kpi-svg{
    fill:none!important;
    stroke:currentColor!important;
    stroke-width:1.6!important;
    stroke-linecap:round!important;
    stroke-linejoin:round!important;
    color:#2bd6ff!important;
    filter:drop-shadow(0 0 5px rgba(34,211,238,.22))!important;
}
.fvspf-section-icon{
    width:25px!important;
    height:25px!important;
    flex:0 0 25px!important;
    margin-right:9px!important;
    padding:4px!important;
    border:1px solid rgba(43,214,255,.35)!important;
    border-radius:7px!important;
    background:linear-gradient(145deg,rgba(10,39,58,.94),rgba(7,22,35,.96))!important;
    box-shadow:inset 0 0 12px rgba(34,211,238,.05),0 0 12px rgba(34,211,238,.04)!important;
}
.fvspf-svg-tech{
    stroke-width:1!important;
    opacity:.36!important;
}

/* KPIs: eliminar iconos Unicode antiguos y usar SVG */
.fvspf-kpi:before{
    content:none!important;
    display:none!important;
}
.fvspf-kpi{
    display:flex!important;
    align-items:center!important;
    gap:13px!important;
    padding-left:16px!important;
}
.fvspf-kpi > div{
    min-width:0!important;
}
.fvspf-kpi-svg{
    width:35px!important;
    height:35px!important;
    flex:0 0 35px!important;
    padding:6px!important;
    border:1px solid rgba(43,214,255,.28)!important;
    border-radius:10px!important;
    background:rgba(5,24,38,.58)!important;
}
.fvspf-kpi.ok .fvspf-kpi-svg{color:#66f58a!important;border-color:rgba(102,245,138,.28)!important}
.fvspf-kpi.warning .fvspf-kpi-svg{color:#ffd166!important;border-color:rgba(255,209,102,.28)!important}
.fvspf-kpi.error .fvspf-kpi-svg{color:#ff7588!important;border-color:rgba(255,117,136,.3)!important}
.fvspf-kpi.info .fvspf-kpi-svg{color:#55cfff!important}

/* Al desaparecer recomendaciones, proveedores aprovecha mejor el ancho */
.fvspf-dashboard-grid-wide{
    grid-template-columns:minmax(0,1fr)!important;
}
.fvspf-dashboard-grid-wide > .fvspf-panel{
    width:100%!important;
    max-width:none!important;
}
.fvspf-provider-grid{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
}

/* Ocultar cualquier resto histórico de secciones eliminadas */
#fvspf-change-panel,
#fvspf-recommendations{
    display:none!important;
}

/* Tablet */
@media(max-width:900px){
    body.fvspf-page .fvspf-search-grid{
        grid-template-columns:1fr 1fr!important;
    }
    body.fvspf-page .fvspf-run-column{
        grid-column:1 / -1!important;
        width:100%!important;
    }
    body.fvspf-page .fvspf-run-column #fvspf-run{
        width:100%!important;
    }
    .fvspf-provider-grid{
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
    }
}
@media(max-width:620px){
    body.fvspf-page .fvspf-search-grid{
        grid-template-columns:1fr!important;
    }
    .fvspf-provider-grid{
        grid-template-columns:1fr!important;
    }
    body.fvspf-page .fvspf-analysis-controls{
        justify-content:flex-start!important;
        gap:18px!important;
    }
}


/* =========================================================
   FoxVision SPF Analyzer v1.4.17
   Registro prioritario + KPIs seguros en tablet
   ========================================================= */

/* Registro: principal resultado de la consulta */
.fvspf-results > .fvspf-panel:has(#fvspf-record){
    order:-1;
    border-color:rgba(43,214,255,.34)!important;
    background:linear-gradient(180deg,rgba(12,36,54,.96),rgba(8,24,38,.96))!important;
}
.fvspf-results > .fvspf-panel:has(#fvspf-record) .fvspf-panel-title{
    border-bottom-color:rgba(43,214,255,.2)!important;
}
#fvspf-record{
    font-size:12px!important;
    line-height:1.55!important;
    white-space:pre-wrap!important;
    overflow-wrap:anywhere!important;
}

/* El texto del estado nunca puede salir de su tarjeta */
.fvspf-kpi{
    min-width:0!important;
    overflow:hidden!important;
}
.fvspf-kpi > div{
    min-width:0!important;
    width:100%!important;
}
.fvspf-kpi strong{
    max-width:100%!important;
    white-space:normal!important;
    overflow-wrap:anywhere!important;
    word-break:normal!important;
    line-height:1.05!important;
}
.fvspf-kpi:first-child strong{
    font-size:clamp(17px,1.55vw,25px)!important;
    letter-spacing:-.02em!important;
}
.fvspf-kpi:first-child{
    padding-left:13px!important;
    padding-right:10px!important;
}
.fvspf-kpi:first-child .fvspf-kpi-svg{
    width:31px!important;
    height:31px!important;
    flex-basis:31px!important;
}

/* Resumen de autorización ocupa toda la fila tras eliminar mantenibilidad */
.fvspf-authorization-row{
    display:block!important;
}
.fvspf-authorization-row > .fvspf-panel{
    width:100%!important;
    max-width:none!important;
}

/* Secciones retiradas definitivamente */
#fvspf-sender-validation-panel,
#fvspf-auth-path,
#fvspf-maintenance{
    display:none!important;
}

@media(max-width:1180px){
    .fvspf-kpi:first-child strong{
        font-size:clamp(16px,1.75vw,22px)!important;
    }
    .fvspf-kpi{
        gap:9px!important;
        padding-left:11px!important;
        padding-right:9px!important;
    }
    .fvspf-kpi-svg{
        width:30px!important;
        height:30px!important;
        flex-basis:30px!important;
    }
}

@media(max-width:900px){
    .fvspf-kpi:first-child strong{
        font-size:22px!important;
    }
}


/* v1.4.18 — un único icono SVG por cabecera */
.fvspf-panel-title h2::before,
.fvspf-panel-title h2:before,
.fvspf-panel-title::before,
.fvspf-panel-title:before{
 content:none!important;
 display:none!important;
}
.fvspf-panel-title h2{padding-left:0!important;margin-left:0!important}
.fvspf-dashboard-grid-split>.fvspf-panel:only-child,
.fvspf-dashboard-grid>.fvspf-panel:only-child{
 grid-column:1/-1!important;width:100%!important;max-width:none!important
}


/* v1.4.19 — alinear Analizar con los campos */
body.fvspf-page .fvspf-search-grid{
    align-items:end!important;
}
body.fvspf-page .fvspf-run-column{
    align-self:end!important;
    justify-content:flex-end!important;
}
body.fvspf-page .fvspf-run-column #fvspf-run{
    margin-top:0!important;
}

/* Las acciones quedan debajo sin elevar el botón */
body.fvspf-page .fvspf-analysis-controls{
    min-height:18px!important;
}

/* En escritorio compensamos el espacio de etiqueta de los inputs:
   Analizar queda a la altura exacta de las cajas Dominio/IP */
@media(min-width:901px){
    body.fvspf-page .fvspf-run-column{
        transform:translateY(25px)!important;
    }
}


/* v1.4.20 — Registro y Árbol más legibles */
.fvspf-inline-copy{
 appearance:none!important;min-height:30px!important;padding:5px 10px!important;
 border:1px solid rgba(52,146,190,.48)!important;border-radius:7px!important;
 background:rgba(5,23,36,.58)!important;color:#a9ddef!important;box-shadow:none!important;
 font:700 10px/1.2 Inter,system-ui,sans-serif!important;cursor:pointer!important
}
.fvspf-inline-copy:hover{border-color:#27c9f5!important;color:#e8fbff!important;background:rgba(11,51,72,.68)!important}
.fvspf-panel-actions{display:flex!important;align-items:center!important;gap:10px!important}

.fvspf-record-blocks{
 display:flex!important;flex-wrap:wrap!important;gap:7px!important;align-items:center!important;
 white-space:normal!important
}
.fvspf-record-token{
 display:inline-flex!important;align-items:center!important;min-height:29px!important;padding:5px 9px!important;
 border:1px solid #29465b!important;border-radius:7px!important;background:#0a1823!important;color:#c7d7e4!important;
 font:600 10.5px/1.25 ui-monospace,SFMono-Regular,Consolas,monospace!important;overflow-wrap:anywhere!important
}
.fvspf-record-token.version{color:#80e5ff!important;border-color:rgba(43,214,255,.45)!important;background:rgba(5,40,55,.72)!important}
.fvspf-record-token.include{color:#c4a8ff!important;border-color:rgba(155,114,255,.4)!important;background:rgba(43,28,70,.56)!important}
.fvspf-record-token.ip{color:#8df3ac!important;border-color:rgba(95,226,133,.36)!important;background:rgba(15,56,35,.52)!important}
.fvspf-record-token.dns{color:#74d8ff!important;border-color:rgba(50,165,220,.34)!important}
.fvspf-record-token.policy{color:#ffd36f!important;border-color:rgba(245,185,66,.44)!important;background:rgba(65,47,12,.48)!important}
.fvspf-record-token.modifier{color:#ffafcf!important;border-color:rgba(239,105,160,.34)!important}
.fvspf-record-empty{color:#8196a8;font-style:italic}

.fvspf-tree-card{border-left:3px solid rgba(43,214,255,.52)!important;padding:10px 11px!important}
.fvspf-tree-node:nth-child(even)>.fvspf-tree-card{border-left-color:rgba(139,92,246,.52)!important}
.fvspf-tree-meta{display:flex!important;align-items:center!important;flex-wrap:wrap!important;gap:7px!important}
.fvspf-tree-record{margin-top:9px!important;padding-top:8px!important;border-top:1px solid rgba(68,99,120,.32)!important}


/* =========================================================
   FoxVision SPF Analyzer v1.4.21
   Alineación Analizar + acciones TXT/JSON
   ========================================================= */

/* El bloque del botón baja hasta alinear su botón con los inputs */
@media(min-width:901px){
  body.fvspf-page .fvspf-run-column{
    transform:translateY(38px)!important;
  }
}

/* Fila de acciones más compacta */
body.fvspf-page .fvspf-analysis-controls{
  flex-wrap:wrap!important;
  row-gap:5px!important;
  column-gap:13px!important;
}
body.fvspf-page .fvspf-text-action:disabled{
  opacity:.38!important;
  cursor:not-allowed!important;
  transform:none!important;
}

/* Resumen autorización debajo del árbol, a todo el ancho */
.fvspf-tree-panel + .fvspf-authorization-row{
  margin-top:12px!important;
}
.fvspf-authorization-row{
  display:block!important;
  width:100%!important;
}
.fvspf-authorization-row>.fvspf-panel{
  width:100%!important;
  max-width:none!important;
}


/* =========================================================
   FoxVision SPF Analyzer v1.4.22
   Redes autorizadas + acciones expandir/contraer
   ========================================================= */

/* Expandir / Contraer con iconografía más clara */
body.fvspf-page .fvspf-text-action{
    gap:6px!important;
    font-size:10.5px!important;
}
body.fvspf-page .fvspf-text-action .fvspf-action-icon{
    width:17px!important;
    height:17px!important;
    flex:0 0 17px!important;
    fill:none!important;
    stroke:currentColor!important;
    stroke-width:1.8!important;
    stroke-linecap:round!important;
    stroke-linejoin:round!important;
    filter:drop-shadow(0 0 4px rgba(43,214,255,.16))!important;
}

/* Resumen de autorización / redes: eliminar cajas blancas heredadas */
#fvspf-authorization-summary-panel code,
#fvspf-authorization-summary-panel kbd,
#fvspf-authorization-summary-panel mark,
#fvspf-authorization-summary-panel pre,
#fvspf-authorization-summary-panel .fvspf-code{
    background:transparent!important;
    background-color:transparent!important;
    color:inherit!important;
    border:0!important;
    box-shadow:none!important;
}

/* Bloques de redes más modernos */
#fvspf-authorization-summary-panel{
    background:linear-gradient(180deg,rgba(9,29,43,.96),rgba(7,23,35,.96))!important;
}
#fvspf-authorization-summary-panel .fvspf-auth-summary,
#fvspf-authorization-summary-panel .fvspf-authorization-summary{
    display:block!important;
    width:100%!important;
}
#fvspf-authorization-summary-panel .fvspf-auth-header,
#fvspf-authorization-summary-panel .fvspf-authorization-header{
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:12px!important;
    padding:10px 12px!important;
    border:1px solid #29485d!important;
    border-radius:9px!important;
    background:rgba(7,20,31,.72)!important;
}

/* Cualquier grupo de redes */
#fvspf-authorization-summary-panel .fvspf-auth-group,
#fvspf-authorization-summary-panel .fvspf-provider-block,
#fvspf-authorization-summary-panel .fvspf-network-group{
    margin-top:10px!important;
    padding:12px!important;
    border:1px solid #29485d!important;
    border-radius:10px!important;
    background:rgba(8,24,36,.62)!important;
}

/* Redes como chips oscuros, no cajas blancas */
#fvspf-authorization-summary-panel .fvspf-auth-networks,
#fvspf-authorization-summary-panel .fvspf-provider-networks,
#fvspf-authorization-summary-panel .fvspf-network-list{
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
    gap:7px!important;
}
#fvspf-authorization-summary-panel .fvspf-auth-networks > *,
#fvspf-authorization-summary-panel .fvspf-provider-networks > *,
#fvspf-authorization-summary-panel .fvspf-network-list > *{
    display:block!important;
    min-width:0!important;
    padding:7px 9px!important;
    border:1px solid #2d4c61!important;
    border-radius:7px!important;
    background:#0a1823!important;
    color:#d6e5ef!important;
    font:600 10.5px/1.25 ui-monospace,SFMono-Regular,Consolas,monospace!important;
    overflow-wrap:anywhere!important;
    white-space:normal!important;
}

/* Fallback directo por patrones internos */
#fvspf-authorization-summary-panel div[style],
#fvspf-authorization-summary-panel span[style]{
    box-shadow:none!important;
}

/* Botón mostrar/ocultar redes */
#fvspf-authorization-summary-panel button{
    border:1px solid rgba(43,214,255,.48)!important;
    border-radius:8px!important;
    background:rgba(7,30,44,.65)!important;
    color:#aeeaff!important;
    box-shadow:none!important;
}
#fvspf-authorization-summary-panel button:hover{
    border-color:#29d6ff!important;
    background:rgba(11,48,67,.82)!important;
    color:#fff!important;
}

@media(max-width:1100px){
    #fvspf-authorization-summary-panel .fvspf-auth-networks,
    #fvspf-authorization-summary-panel .fvspf-provider-networks,
    #fvspf-authorization-summary-panel .fvspf-network-list{
        grid-template-columns:repeat(2,minmax(0,1fr))!important;
    }
}
@media(max-width:700px){
    #fvspf-authorization-summary-panel .fvspf-auth-networks,
    #fvspf-authorization-summary-panel .fvspf-provider-networks,
    #fvspf-authorization-summary-panel .fvspf-network-list{
        grid-template-columns:1fr!important;
    }
}


/* =========================================================
   FoxVision SPF Analyzer v1.4.23
   Copia por rama + RFC full width + hallazgos agrupados
   ========================================================= */

/* Cada rama del árbol tiene su propio copiar */
.fvspf-tree-meta{
    justify-content:space-between!important;
    gap:10px!important;
}
.fvspf-tree-meta-main{
    display:flex!important;
    align-items:center!important;
    flex-wrap:wrap!important;
    gap:7px!important;
    min-width:0!important;
}
.fvspf-copy-branch{
    flex:0 0 auto!important;
    margin-left:auto!important;
    padding:4px 8px!important;
    min-height:27px!important;
    font-size:9.5px!important;
}
@media(max-width:700px){
    .fvspf-tree-meta{
        align-items:flex-start!important;
        flex-direction:column!important;
    }
    .fvspf-copy-branch{
        margin-left:0!important;
    }
}

/* Cumplimiento RFC ocupa todo el ancho */
.fvspf-compliance-full{
    display:block!important;
    width:100%!important;
    max-width:none!important;
    grid-column:1 / -1!important;
    margin-left:0!important;
    margin-right:0!important;
    box-sizing:border-box!important;
}
.fvspf-compliance-full .fvspf-compliance-grid{
    width:100%!important;
    max-width:none!important;
}

/* Problemas y redundancias dentro de una única caja */
.fvspf-findings-panel{
    width:100%!important;
    max-width:none!important;
}
.fvspf-findings-grid{
    display:grid!important;
    grid-template-columns:1fr 1fr!important;
    gap:10px!important;
}
.fvspf-findings-block{
    min-width:0!important;
    padding:11px!important;
    border:1px solid #29485d!important;
    border-radius:9px!important;
    background:rgba(7,22,34,.55)!important;
}
.fvspf-findings-head{
    display:flex!important;
    align-items:center!important;
    justify-content:space-between!important;
    gap:10px!important;
    margin-bottom:8px!important;
    padding-bottom:8px!important;
    border-bottom:1px solid rgba(52,84,105,.38)!important;
}
.fvspf-findings-head strong{
    color:#f1f7fb!important;
    font-size:11px!important;
}
.fvspf-findings-head span{
    color:#8ea9ba!important;
    font-size:9.5px!important;
}
@media(max-width:850px){
    .fvspf-findings-grid{
        grid-template-columns:1fr!important;
    }
}


/* =========================================================
   FoxVision SPF Analyzer v1.4.24
   Evaluación dinámica RFC 7208
   ========================================================= */

.fvspf-dynamic-eval{
    margin:10px 0!important;
    padding:12px!important;
    border:1px solid #29485d!important;
    border-radius:10px!important;
    background:linear-gradient(180deg,rgba(7,25,38,.8),rgba(6,20,31,.78))!important;
}
.fvspf-dynamic-eval.ok{border-color:rgba(93,230,127,.42)!important}
.fvspf-dynamic-eval.warning{border-color:rgba(245,185,66,.46)!important}
.fvspf-dynamic-eval.error{border-color:rgba(255,105,120,.5)!important}
.fvspf-dynamic-eval.neutral{border-color:rgba(80,166,212,.34)!important}

.fvspf-dynamic-head{
    display:grid!important;
    grid-template-columns:auto 1fr auto!important;
    align-items:center!important;
    gap:10px!important;
}
.fvspf-dynamic-head .fvspf-metric-icon{
    width:27px!important;
    height:27px!important;
}
.fvspf-dynamic-head span{
    display:block!important;
    color:#8faabd!important;
    font-size:9.5px!important;
}
.fvspf-dynamic-head strong{
    display:block!important;
    margin-top:2px!important;
    color:#fff!important;
    font-size:18px!important;
    letter-spacing:.02em!important;
}
.fvspf-dynamic-eval.ok .fvspf-dynamic-head strong{color:#8df3ac!important}
.fvspf-dynamic-eval.warning .fvspf-dynamic-head strong{color:#ffd36f!important}
.fvspf-dynamic-eval.error .fvspf-dynamic-head strong{color:#ff8597!important}
.fvspf-dynamic-head small{
    color:#9fb4c5!important;
    font-size:9.5px!important;
    white-space:nowrap!important;
}

.fvspf-dynamic-detail{
    display:grid!important;
    grid-template-columns:minmax(180px,.7fr) minmax(0,1.3fr)!important;
    gap:8px!important;
    margin-top:10px!important;
}
.fvspf-dynamic-detail>div{
    min-width:0!important;
    padding:9px 10px!important;
    border:1px solid rgba(50,79,99,.58)!important;
    border-radius:8px!important;
    background:#0a1823!important;
}
.fvspf-dynamic-detail span,
.fvspf-dynamic-path>span{
    display:block!important;
    color:#839bab!important;
    font-size:9px!important;
    margin-bottom:4px!important;
}
.fvspf-dynamic-detail strong{
    display:block!important;
    color:#dceaf2!important;
    font-size:10.5px!important;
    line-height:1.4!important;
    overflow-wrap:anywhere!important;
}

.fvspf-dynamic-path{
    margin-top:9px!important;
    padding:9px 10px!important;
    border:1px solid rgba(50,79,99,.58)!important;
    border-radius:8px!important;
    background:#081620!important;
}
.fvspf-dynamic-path>div{
    display:flex!important;
    flex-wrap:wrap!important;
    align-items:center!important;
    gap:6px!important;
}
.fvspf-dynamic-path code{
    padding:4px 7px!important;
    border:1px solid rgba(43,214,255,.28)!important;
    border-radius:6px!important;
    background:#0b2130!important;
    color:#9fe8ff!important;
    font-size:9.5px!important;
}
.fvspf-dynamic-path b{
    color:#526f82!important;
    font-weight:500!important;
}

.fvspf-dynamic-context{
    margin-top:9px!important;
    padding:8px 10px!important;
    border-radius:7px!important;
    color:#a9bcc8!important;
    background:rgba(13,29,40,.7)!important;
    font-size:9.5px!important;
    line-height:1.4!important;
}
.fvspf-dynamic-context.ok{border-left:3px solid #54dc7a!important}
.fvspf-dynamic-context.warning{border-left:3px solid #f5b942!important;color:#e1c27b!important}

@media(max-width:760px){
    .fvspf-dynamic-head{
        grid-template-columns:auto 1fr!important;
    }
    .fvspf-dynamic-head small{
        grid-column:2!important;
        white-space:normal!important;
    }
    .fvspf-dynamic-detail{
        grid-template-columns:1fr!important;
    }
}


/* =========================================================
   FoxVision SPF Analyzer v1.4.28
   Resumen ejecutivo y auditoría unificados
   ========================================================= */
.fvspf-executive-actions{
    display:flex!important;
    align-items:center!important;
    justify-content:flex-end!important;
    gap:10px!important;
    flex-wrap:wrap!important;
}
.fvspf-audit-inline{
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    gap:8px!important;
    margin-top:12px!important;
    padding-top:11px!important;
    border-top:1px solid rgba(54,88,110,.38)!important;
}
.fvspf-audit-inline>div{
    min-width:0!important;
    padding:9px 10px!important;
    border:1px solid #29485d!important;
    border-radius:8px!important;
    background:rgba(7,22,34,.56)!important;
}
.fvspf-audit-inline>div[hidden]{display:none!important}
.fvspf-audit-inline span{
    display:block!important;
    margin-bottom:3px!important;
    color:#839baa!important;
    font-size:9px!important;
    text-transform:uppercase!important;
    letter-spacing:.055em!important;
}
.fvspf-audit-inline strong{
    display:block!important;
    color:#e7f1f6!important;
    font-size:10.5px!important;
    line-height:1.35!important;
    overflow-wrap:anywhere!important;
}
#fvspf-audit-inline-dynamic{color:#8de8ff!important}
#fvspf-audit-panel,#fvspf-audit-summary{display:none!important}

@media(max-width:1050px){
    .fvspf-audit-inline{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media(max-width:600px){
    .fvspf-executive-actions{align-items:flex-start!important;flex-direction:column!important}
    .fvspf-audit-inline{grid-template-columns:1fr!important}
}
