.direcciones-map-panel{
    margin-bottom:22px;
}

.direcciones-map-head{
    gap:18px;
    align-items:center;
}

.direcciones-main-map{
    width:100%;
    height:420px;
    min-height:320px;
    border-radius:18px;
    overflow:hidden;
    border:1px solid rgba(148,163,184,.22);
    background:#e2e8f0;
}

.direcciones-map-legend{
    display:flex;
    flex-wrap:wrap;
    gap:10px 16px;
    margin-top:14px;
    color:#64748b;
    font-size:.88rem;
}

.direcciones-legend-item{
    display:inline-flex;
    align-items:center;
    gap:7px;
}

.direcciones-legend-item i{
    display:inline-block;
    width:11px;
    height:11px;
    border-radius:999px;
    box-shadow:0 0 0 3px rgba(15,23,42,.08);
}

.direcciones-panel-head{
    gap:18px;
    align-items:flex-end;
}

.direcciones-search-wrap{
    min-width:260px;
    max-width:360px;
    width:100%;
}

.direcciones-search-wrap label{
    display:block;
    margin-bottom:6px;
    font-weight:700;
    font-size:.82rem;
    color:#64748b;
}

.direcciones-inline-table.data-table-div .data-row{
    grid-template-columns: .9fr 1.2fr .7fr 1.15fr 1.8fr;
}

.direcciones-inline-table .data-row.is-saving{
    opacity:.68;
}

.direcciones-inline-table .data-row.is-saving .table-input{
    cursor: wait;
}

.direcciones-inline-table .data-table-body.is-loading{
    opacity:.68;
}

.direcciones-inline-table input.table-input,
.direcciones-inline-table select.table-input{
    min-width:0;
    width:100%;
}

body.direcciones-modal-open{
    overflow:hidden;
}

.direcciones-modal{
    position:fixed;
    inset:0;
    z-index:9999;
    display:none;
    align-items:center;
    justify-content:center;
    padding:24px;
}

.direcciones-modal.is-open{
    display:flex;
}

.direcciones-modal-backdrop{
    position:absolute;
    inset:0;
    background:rgba(15,23,42,.72);
    backdrop-filter:blur(3px);
}

.direcciones-modal-dialog{
    position:relative;
    width:90vw;
    height:90vh;
    max-width:1500px;
    background:#fff;
    border-radius:22px;
    overflow:hidden;
    box-shadow:0 30px 90px rgba(15,23,42,.35);
    display:flex;
    flex-direction:column;
}

.direcciones-modal-head{
    display:flex;
    justify-content:space-between;
    align-items:center;
    gap:16px;
    padding:16px 20px;
    border-bottom:1px solid rgba(148,163,184,.22);
}

.direcciones-modal-head h3{
    margin:0;
    font-size:1.1rem;
}

.direcciones-modal-head p{
    margin:4px 0 0;
    color:#64748b;
    font-size:.9rem;
}

.direcciones-modal-close{
    width:38px;
    height:38px;
    border:0;
    border-radius:999px;
    background:#f1f5f9;
    color:#0f172a;
    font-size:26px;
    line-height:1;
    cursor:pointer;
}

.direcciones-map{
    width:100%;
    flex:1;
    min-height:0;
}

@media (max-width: 1180px){
    .direcciones-inline-table.data-table-div .data-row{
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
}

@media (max-width: 760px){
    .direcciones-panel-head,
    .direcciones-map-head{
        align-items:stretch;
    }
    .direcciones-search-wrap{
        max-width:none;
    }
    .direcciones-main-map{
        height:360px;
    }
    .direcciones-inline-table.data-table-div .data-row{
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .direcciones-modal{
        padding:10px;
    }
    .direcciones-modal-dialog{
        width:96vw;
        height:92vh;
        border-radius:16px;
    }
}

@media (max-width: 480px){
    .direcciones-inline-table.data-table-div .data-row{
        grid-template-columns: repeat(1, minmax(0, 1fr));
    }
}

.direcciones-filters{
    display:flex;
    flex-direction:column;
    gap:12px;
    align-items:flex-end;
    min-width:320px;
    max-width:620px;
    width:100%;
}

.direcciones-group-filter{
    display:flex;
    flex-wrap:wrap;
    justify-content:flex-end;
    gap:8px;
}

.direcciones-radio{
    display:inline-flex;
    align-items:center;
    cursor:pointer;
    user-select:none;
}

.direcciones-radio input{
    position:absolute;
    opacity:0;
    pointer-events:none;
}

.direcciones-radio span{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-height:34px;
    padding:7px 12px;
    border-radius:999px;
    border:1px solid rgba(148,163,184,.35);
    background:#fff;
    color:#475569;
    font-weight:700;
    font-size:.82rem;
    transition:.18s ease;
}

.direcciones-radio.is-active span,
.direcciones-radio input:checked + span{
    background:#0f172a;
    border-color:#0f172a;
    color:#fff;
    box-shadow:0 8px 20px rgba(15,23,42,.18);
}

.direcciones-map-popup{
    min-width:190px;
}

.direcciones-popup-meta{
    margin-top:4px;
    color:#475569;
}

.direcciones-popup-address{
    margin-top:6px;
    color:#64748b;
    line-height:1.35;
}

.direcciones-popup-label{
    display:block;
    margin-top:10px;
    margin-bottom:4px;
    font-size:.78rem;
    font-weight:700;
    color:#64748b;
}

.direcciones-popup-select{
    width:100%;
    min-height:34px;
    border:1px solid rgba(148,163,184,.45);
    border-radius:10px;
    padding:6px 8px;
    background:#fff;
    color:#0f172a;
}

@media (max-width: 760px){
    .direcciones-filters{
        align-items:stretch;
        min-width:0;
        max-width:none;
    }
    .direcciones-group-filter{
        justify-content:flex-start;
    }
}

.direcciones-group-summary{
    display:grid;
    grid-template-columns:repeat(6, minmax(130px, 1fr));
    gap:12px;
    margin:14px 0 22px;
}

.direcciones-group-summary-card{
    min-width:0;
    border:1px solid var(--grupo-border, rgba(148,163,184,.28));
    background:var(--grupo-bg, rgba(15,23,42,.06));
    color:var(--grupo-color, #0f172a);
    border-radius:18px;
    padding:13px 14px;
    box-shadow:0 10px 26px rgba(15,23,42,.06);
}

.direcciones-group-summary-card span{
    display:block;
    font-size:.78rem;
    font-weight:800;
    margin-bottom:6px;
}

.direcciones-group-summary-card strong{
    display:block;
    font-size:.98rem;
    color:#0f172a;
}

.direcciones-search-input{
    width:100%;
    min-height:44px;
    border:1px solid rgba(148,163,184,.30);
    border-radius:16px;
    background:#fff;
    color:#0f172a;
    padding:10px 14px;
    box-shadow:0 10px 28px rgba(15,23,42,.06);
    outline:none;
    font-size:.94rem;
    transition:.18s ease;
}

.direcciones-search-input:focus{
    border-color:rgba(37,99,235,.45);
    box-shadow:0 0 0 4px rgba(37,99,235,.10), 0 12px 30px rgba(15,23,42,.08);
}

.direcciones-map-legend{
    padding:2px 4px 0;
    margin-left:0;
    overflow:visible;
}

.direcciones-legend-item{
    border:1px solid var(--grupo-border, rgba(148,163,184,.28));
    background:var(--grupo-bg, rgba(15,23,42,.06));
    color:var(--grupo-color, #0f172a);
    border-radius:999px;
    padding:7px 11px;
    font-weight:800;
    line-height:1;
}

.direcciones-legend-item i{
    flex:0 0 auto;
    box-shadow:none;
}

.direcciones-radio span{
    border-color:var(--grupo-border, rgba(148,163,184,.35));
    background:var(--grupo-bg, rgba(15,23,42,.06));
    color:var(--grupo-color, #475569);
    gap:7px;
}

.direcciones-radio span:before{
    content:"";
    display:inline-block;
    width:8px;
    height:8px;
    border-radius:999px;
    background:var(--grupo-color, #475569);
}

.direcciones-radio.is-active span,
.direcciones-radio input:checked + span{
    background:var(--grupo-bg, rgba(15,23,42,.16));
    border-color:var(--grupo-border, rgba(15,23,42,.35));
    color:var(--grupo-color, #0f172a);
    box-shadow:0 8px 20px rgba(15,23,42,.10);
}

@media (max-width: 1180px){
    .direcciones-group-summary{
        grid-template-columns:repeat(3, minmax(150px, 1fr));
    }
}

@media (max-width: 760px){
    .direcciones-group-summary{
        grid-template-columns:repeat(2, minmax(130px, 1fr));
    }
}

@media (max-width: 430px){
    .direcciones-group-summary{
        grid-template-columns:1fr;
    }
}

/* v6: ajustes visuales dark/light, filtros y leyenda */
.direcciones-panel-head{
    display:grid;
    grid-template-columns:minmax(220px, .75fr) minmax(520px, 1.25fr);
    align-items:end;
}

.direcciones-filters{
    display:grid;
    grid-template-columns:minmax(260px, 1fr) minmax(360px, 1.55fr);
    align-items:end;
    gap:14px;
    min-width:0;
    max-width:none;
    width:100%;
}

.direcciones-search-wrap{
    min-width:0;
    max-width:none;
}

.direcciones-search-input{
    min-height:40px;
    border-radius:14px;
    background:rgba(15,23,42,.22);
    border:1px solid rgba(148,163,184,.18);
    color:#e5e7eb;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}

.direcciones-search-input::placeholder{
    color:rgba(203,213,225,.58);
}

.direcciones-search-input:focus{
    border-color:rgba(96,165,250,.48);
    background:rgba(15,23,42,.32);
    box-shadow:0 0 0 4px rgba(37,99,235,.16);
}

.direcciones-group-filter{
    display:grid;
    grid-template-columns:repeat(4, minmax(92px, 1fr));
    gap:8px;
    justify-content:stretch;
}

.direcciones-radio span{
    width:100%;
    min-height:40px;
    border-radius:999px;
    border:1px solid var(--grupo-border, rgba(148,163,184,.28));
    background:var(--grupo-solid, #64748b);
    color:var(--grupo-text, #fff);
    box-shadow:0 10px 20px rgba(2,6,23,.18);
    opacity:.72;
}

.direcciones-radio span:before{
    background:currentColor;
    box-shadow:0 0 0 2px rgba(255,255,255,.18);
}

.direcciones-radio.is-active span,
.direcciones-radio input:checked + span{
    background:var(--grupo-solid, #64748b);
    border-color:rgba(255,255,255,.28);
    color:var(--grupo-text, #fff);
    opacity:1;
    box-shadow:0 0 0 3px var(--grupo-ring, rgba(148,163,184,.18)), 0 12px 24px rgba(2,6,23,.22);
    transform:translateY(-1px);
}

.direcciones-group-summary{
    grid-template-columns:repeat(6, minmax(120px, 1fr));
    gap:12px;
}

.direcciones-group-summary-card{
    position:relative;
    overflow:hidden;
    border:1px solid rgba(148,163,184,.18);
    background:linear-gradient(180deg, rgba(30,41,59,.86), rgba(15,23,42,.92));
    color:#e5e7eb;
    box-shadow:0 16px 34px rgba(2,6,23,.22);
}

.direcciones-group-summary-card:before{
    content:"";
    position:absolute;
    inset:0 auto 0 0;
    width:4px;
    background:var(--grupo-color, #64748b);
}

.direcciones-group-summary-card span{
    color:rgba(226,232,240,.78);
}

.direcciones-group-summary-card strong{
    color:#f8fafc;
}

.direcciones-map-legend{
    gap:10px;
    padding:8px 8px 0;
    margin-left:0;
    margin-right:0;
    overflow:visible;
}

.direcciones-legend-item{
    border:1px solid var(--grupo-border, rgba(148,163,184,.28));
    background:var(--grupo-bg, rgba(148,163,184,.14));
    color:#e5e7eb;
    border-radius:999px;
    padding:8px 12px;
    font-weight:800;
    line-height:1;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.05), 0 8px 18px rgba(2,6,23,.12);
}

.direcciones-legend-item i{
    width:10px;
    height:10px;
    box-shadow:0 0 0 3px rgba(255,255,255,.10);
}

body.light .direcciones-search-input{
    background:#fff;
    border-color:rgba(20,30,60,.08);
    color:#0f172a;
    box-shadow:0 10px 28px rgba(15,23,42,.06);
}

body.light .direcciones-search-input::placeholder{
    color:#94a3b8;
}

body.light .direcciones-group-summary-card{
    background:#fff;
    border-color:var(--grupo-border, rgba(148,163,184,.24));
    box-shadow:0 10px 26px rgba(15,23,42,.06);
}

body.light .direcciones-group-summary-card span{
    color:var(--grupo-color, #334155);
}

body.light .direcciones-group-summary-card strong{
    color:#0f172a;
}

body.light .direcciones-legend-item{
    color:var(--grupo-color, #334155);
    box-shadow:none;
}

body.light .direcciones-radio span{
    box-shadow:0 8px 18px rgba(15,23,42,.08);
}

@media (max-width: 1180px){
    .direcciones-panel-head{
        grid-template-columns:1fr;
    }
    .direcciones-filters{
        grid-template-columns:1fr;
    }
    .direcciones-group-filter{
        grid-template-columns:repeat(4, minmax(92px, 1fr));
    }
    .direcciones-group-summary{
        grid-template-columns:repeat(3, minmax(150px, 1fr));
    }
}

@media (max-width: 760px){
    .direcciones-group-filter{
        grid-template-columns:repeat(2, minmax(120px, 1fr));
    }
    .direcciones-group-summary{
        grid-template-columns:repeat(2, minmax(130px, 1fr));
    }
}

@media (max-width: 430px){
    .direcciones-group-filter,
    .direcciones-group-summary{
        grid-template-columns:1fr;
    }
}

/* v7: pulido final de grupos, leyenda, filtros y marcadores */
.direcciones-group-summary-card span{
    font-size:.88rem;
    letter-spacing:.01em;
}

.direcciones-group-summary-card strong{
    font-size:1.02rem;
}

.direcciones-legend-item{
    position:relative;
    isolation:isolate;
    padding:8px 13px 8px 10px;
    background:linear-gradient(180deg, rgba(255,255,255,.13), rgba(255,255,255,.055)), var(--grupo-soft, rgba(148,163,184,.16));
    border-color:var(--grupo-border, rgba(148,163,184,.32));
    box-shadow:inset 0 1px 0 rgba(255,255,255,.16), 0 10px 24px rgba(2,6,23,.18), 0 0 0 1px rgba(255,255,255,.025);
    backdrop-filter:blur(8px);
}

.direcciones-legend-item:after{
    content:"";
    position:absolute;
    inset:1px 1px auto 1px;
    height:45%;
    border-radius:999px 999px 12px 12px;
    background:linear-gradient(180deg, rgba(255,255,255,.16), rgba(255,255,255,0));
    z-index:-1;
    pointer-events:none;
}

.direcciones-legend-item i{
    width:11px;
    height:11px;
    border:2px solid rgba(255,255,255,.45);
    box-shadow:0 0 0 3px var(--grupo-soft, rgba(148,163,184,.18)), 0 0 12px var(--grupo-glow, rgba(148,163,184,.28));
}

body.light .direcciones-legend-item{
    background:linear-gradient(180deg, rgba(255,255,255,.95), rgba(255,255,255,.72)), var(--grupo-soft, rgba(148,163,184,.12));
    box-shadow:inset 0 1px 0 rgba(255,255,255,.85), 0 8px 20px rgba(15,23,42,.08);
}

.direcciones-map-marker{
    filter:drop-shadow(0 4px 7px rgba(2,6,23,.38)) drop-shadow(0 0 5px rgba(255,255,255,.50));
    stroke-linecap:round;
}

.direcciones-radio span{
    min-height:34px;
    padding:6px 11px;
    font-size:.78rem;
    letter-spacing:.01em;
    background:linear-gradient(135deg, rgba(255,255,255,.22), rgba(255,255,255,0) 42%), linear-gradient(180deg, var(--grupo-solid, #64748b), color-mix(in srgb, var(--grupo-solid, #64748b) 76%, #000 24%));
    border-color:rgba(255,255,255,.18);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.20), 0 8px 16px rgba(2,6,23,.16);
    opacity:.88;
    transform:translateY(0);
}

.direcciones-radio:hover span{
    opacity:1;
    transform:translateY(-1px);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.24), 0 10px 22px var(--grupo-glow, rgba(15,23,42,.22));
}

.direcciones-radio.is-active span,
.direcciones-radio input:checked + span{
    opacity:1;
    transform:translateY(-1px);
    border-color:rgba(255,255,255,.34);
    box-shadow:0 0 0 3px var(--grupo-ring, rgba(148,163,184,.18)), inset 0 1px 0 rgba(255,255,255,.28), 0 14px 26px var(--grupo-glow, rgba(2,6,23,.24));
}

.direcciones-radio.is-active span:after,
.direcciones-radio input:checked + span:after{
    content:"";
    width:6px;
    height:6px;
    margin-left:2px;
    border-radius:999px;
    background:currentColor;
    box-shadow:0 0 0 2px rgba(255,255,255,.16);
}

.direcciones-group-filter{
    grid-template-columns:repeat(4, minmax(78px, 1fr));
    gap:7px;
}

.direcciones-modal-legend{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
    padding:12px 20px;
    border-bottom:1px solid rgba(148,163,184,.18);
    background:linear-gradient(180deg, rgba(15,23,42,.04), rgba(15,23,42,.015));
}

@media (max-width: 1180px){
    .direcciones-group-filter{
        grid-template-columns:repeat(4, minmax(78px, 1fr));
    }
}

@media (max-width: 760px){
    .direcciones-group-filter{
        grid-template-columns:repeat(2, minmax(112px, 1fr));
    }
    .direcciones-modal-legend{
        padding:10px 14px;
    }
}

/* v8: ajuste final de leyenda, modal y botones de grupo */
.direcciones-map-panel .direcciones-map-legend{
    order:2;
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin:0 0 12px 0;
    padding:0 0 2px 0;
    overflow:visible;
}

.direcciones-map-panel .direcciones-main-map{
    order:3;
}

.direcciones-legend-item{
    min-height:28px;
    padding:5px 11px 5px 8px;
    border-radius:999px;
    border:1px solid color-mix(in srgb, var(--grupo-color, #64748b) 62%, #ffffff 8%);
    background:linear-gradient(90deg, color-mix(in srgb, var(--grupo-color, #64748b) 26%, #0f172a 74%), color-mix(in srgb, var(--grupo-color, #64748b) 18%, #111827 82%));
    color:#f8fafc;
    font-size:.78rem;
    font-weight:800;
    letter-spacing:.005em;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.13);
    backdrop-filter:none;
}

.direcciones-legend-item:after{
    display:none;
}

.direcciones-legend-item i{
    width:9px;
    height:9px;
    border:0;
    background:var(--grupo-color, #64748b) !important;
    box-shadow:0 0 0 2px color-mix(in srgb, var(--grupo-color, #64748b) 24%, transparent), 0 0 9px color-mix(in srgb, var(--grupo-color, #64748b) 70%, transparent);
}

body.light .direcciones-legend-item,
.light .direcciones-legend-item,
[data-theme="light"] .direcciones-legend-item{
    background:linear-gradient(90deg, color-mix(in srgb, var(--grupo-color, #64748b) 16%, #ffffff 84%), color-mix(in srgb, var(--grupo-color, #64748b) 8%, #ffffff 92%));
    color:#152033;
    border-color:color-mix(in srgb, var(--grupo-color, #64748b) 34%, #d7dde8 66%);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.78), 0 5px 13px rgba(15,23,42,.06);
}

.direcciones-map-marker{
    filter:drop-shadow(0 5px 8px rgba(2,6,23,.58)) drop-shadow(0 0 8px rgba(255,255,255,.74));
}

.direcciones-group-summary-card span{
    font-size:.96rem;
    font-weight:900;
    color:#eef2ff;
}

body.light .direcciones-group-summary-card span,
.light .direcciones-group-summary-card span,
[data-theme="light"] .direcciones-group-summary-card span{
    color:var(--grupo-color, #334155);
}

.direcciones-group-filter,
.direcciones-modal-filter{
    display:grid;
    grid-template-columns:repeat(4, minmax(72px, 1fr));
    gap:7px;
}

.direcciones-modal-filter{
    padding:12px 20px;
    border-bottom:1px solid rgba(148,163,184,.16);
    background:rgba(15,23,42,.08);
}

.direcciones-radio span{
    min-height:32px;
    padding:6px 10px;
    border-radius:999px;
    border:1px solid color-mix(in srgb, var(--grupo-solid, #64748b) 65%, rgba(255,255,255,.20));
    background:linear-gradient(90deg, color-mix(in srgb, var(--grupo-solid, #64748b) 94%, #ffffff 6%), color-mix(in srgb, var(--grupo-solid, #64748b) 74%, #000000 26%));
    color:var(--grupo-text, #ffffff);
    box-shadow:none;
    opacity:.96;
    transform:none;
    transition:background .18s ease, border-color .18s ease, color .18s ease, opacity .18s ease, transform .18s ease;
}

.direcciones-radio span:before{
    background:currentColor;
    width:8px;
    height:8px;
    box-shadow:0 0 0 2px rgba(255,255,255,.16);
}

.direcciones-radio:hover span{
    opacity:1;
    transform:translateY(-1px);
    box-shadow:none;
    filter:brightness(1.06);
}

.direcciones-radio.is-active span,
.direcciones-radio input:checked + span{
    background:linear-gradient(90deg, #ffffff, #d9dee7);
    color:#172033;
    border-color:rgba(255,255,255,.72);
    box-shadow:none;
    opacity:1;
    transform:none;
}

.direcciones-radio.is-active span:before,
.direcciones-radio input:checked + span:before{
    background:var(--grupo-solid, #64748b);
    box-shadow:0 0 0 2px color-mix(in srgb, var(--grupo-solid, #64748b) 25%, transparent);
}

.direcciones-radio.is-active span:after,
.direcciones-radio input:checked + span:after{
    display:none;
}

body.light .direcciones-radio span,
.light .direcciones-radio span,
[data-theme="light"] .direcciones-radio span{
    box-shadow:none;
}

.direcciones-modal-dialog{
    background:linear-gradient(180deg, rgba(12,29,61,.98), rgba(10,24,50,.98));
    color:#e5e7eb;
    border-color:rgba(59,130,246,.20);
}

body.light .direcciones-modal-dialog,
.light .direcciones-modal-dialog,
[data-theme="light"] .direcciones-modal-dialog{
    background:#f8fafc;
    color:#0f172a;
    border-color:rgba(15,23,42,.10);
}

body.light .direcciones-modal-filter,
.light .direcciones-modal-filter,
[data-theme="light"] .direcciones-modal-filter{
    background:#ffffff;
    border-bottom-color:rgba(15,23,42,.08);
}

body.light .direcciones-modal-head,
.light .direcciones-modal-head,
[data-theme="light"] .direcciones-modal-head{
    background:#ffffff;
    border-bottom-color:rgba(15,23,42,.08);
}

@media (max-width: 1180px){
    .direcciones-group-filter,
    .direcciones-modal-filter{
        grid-template-columns:repeat(4, minmax(72px, 1fr));
    }
}

@media (max-width: 760px){
    .direcciones-group-filter,
    .direcciones-modal-filter{
        grid-template-columns:repeat(2, minmax(104px, 1fr));
    }
    .direcciones-modal-filter{
        padding:10px 14px;
    }
}


/* v9: pulido de estilos finales para mapa, modal y filtros */
.direcciones-map-panel{
    padding:20px !important;
}

.direcciones-map-panel .direcciones-map-head{
    margin-bottom:16px;
}

.direcciones-map-panel .direcciones-map-legend{
    margin:0 0 14px 0;
    padding:0;
}

.direcciones-map-panel .direcciones-main-map{
    width:100%;
    border-radius:18px;
}

.direcciones-group-summary-card span{
    font-size:1.03rem !important;
    line-height:1.15;
}

.direcciones-legend-item{
    min-height:26px;
    padding:4px 12px 4px 8px;
    border-radius:999px;
    border:1px solid color-mix(in srgb, var(--grupo-color, #64748b) 72%, rgba(255,255,255,.18));
    background:linear-gradient(180deg, color-mix(in srgb, var(--grupo-color, #64748b) 26%, rgba(15,23,42,.92) 74%), color-mix(in srgb, var(--grupo-color, #64748b) 16%, rgba(15,23,42,.96) 84%));
    box-shadow:inset 0 1px 0 rgba(255,255,255,.18), inset 0 -1px 0 rgba(0,0,0,.18), 0 8px 18px rgba(2,6,23,.18);
    color:#f8fafc;
    font-size:.80rem;
    font-weight:800;
}

.direcciones-legend-item i{
    width:11px !important;
    height:11px !important;
    box-shadow:0 0 0 2px color-mix(in srgb, var(--grupo-color, #64748b) 34%, transparent), 0 0 10px color-mix(in srgb, var(--grupo-color, #64748b) 80%, transparent) !important;
}

body.light .direcciones-legend-item,
.light .direcciones-legend-item,
[data-theme="light"] .direcciones-legend-item{
    background:linear-gradient(180deg, color-mix(in srgb, var(--grupo-color, #64748b) 15%, #ffffff 85%), color-mix(in srgb, var(--grupo-color, #64748b) 7%, #ffffff 93%));
    border-color:color-mix(in srgb, var(--grupo-color, #64748b) 42%, #d7dde8 58%);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.85), 0 7px 16px rgba(15,23,42,.08);
    color:#172033;
}

.direcciones-map-marker{
    filter:drop-shadow(0 7px 10px rgba(2,6,23,.70)) drop-shadow(0 0 6px rgba(255,255,255,.85)) !important;
}

.direcciones-radio span{
    min-height:28px !important;
    padding:5px 11px !important;
    font-size:.78rem !important;
    line-height:1.05;
    border-radius:999px;
    background:linear-gradient(90deg, color-mix(in srgb, var(--grupo-solid, #64748b) 96%, #ffffff 4%), color-mix(in srgb, var(--grupo-solid, #64748b) 72%, #000000 28%)) !important;
    border-color:color-mix(in srgb, var(--grupo-solid, #64748b) 72%, rgba(255,255,255,.20)) !important;
    color:var(--grupo-text, #ffffff) !important;
    box-shadow:none !important;
    filter:none;
}

.direcciones-radio span:before{
    width:10px !important;
    height:10px !important;
    margin-right:6px;
    box-shadow:0 0 0 2px rgba(255,255,255,.18), 0 0 8px color-mix(in srgb, currentColor 34%, transparent) !important;
}

.direcciones-radio:hover span{
    transform:translateY(-1px);
    box-shadow:none !important;
    filter:brightness(1.06);
}

.direcciones-radio.is-active span,
.direcciones-radio input:checked + span{
    background:linear-gradient(90deg, #ffffff, #d8dde5) !important;
    border-color:rgba(255,255,255,.76) !important;
    color:#172033 !important;
    box-shadow:none !important;
    filter:none;
}

.direcciones-radio.is-active[data-grupo="Todos"] span:before,
.direcciones-radio[data-grupo="Todos"] input:checked + span:before{
    background:#111827 !important;
    box-shadow:0 0 0 2px rgba(17,24,39,.18) !important;
}

.direcciones-radio.is-active[data-grupo="Sin Grupo"] span:before,
.direcciones-radio[data-grupo="Sin Grupo"] input:checked + span:before{
    background:#475569 !important;
    box-shadow:0 0 0 2px rgba(71,85,105,.20) !important;
}

.direcciones-panel-head .direcciones-filters{
    max-width:760px;
}

.direcciones-group-filter{
    grid-template-columns:repeat(3, minmax(96px, 1fr)) !important;
    gap:7px;
}

.direcciones-modal{
    padding:28px;
}

.direcciones-modal-dialog{
    width:min(90vw, 1500px);
    height:90vh;
    border-radius:22px;
    overflow:hidden;
}

.direcciones-modal-head{
    padding:16px 22px;
}

.direcciones-modal-close{
    width:auto !important;
    height:36px !important;
    min-width:76px;
    padding:0 18px !important;
    border-radius:12px !important;
    border:1px solid rgba(148,163,184,.24) !important;
    background:linear-gradient(90deg, rgba(51,65,85,.96), rgba(30,41,59,.96)) !important;
    color:#f8fafc !important;
    font-size:.86rem !important;
    line-height:1 !important;
    font-weight:800;
    box-shadow:none !important;
}

body.light .direcciones-modal-close,
.light .direcciones-modal-close,
[data-theme="light"] .direcciones-modal-close{
    background:linear-gradient(90deg, #f8fafc, #e2e8f0) !important;
    color:#172033 !important;
    border-color:rgba(15,23,42,.12) !important;
}

.direcciones-modal-filter{
    grid-template-columns:repeat(7, minmax(96px, 1fr)) !important;
    gap:8px;
    padding:12px 22px 14px !important;
}

.direcciones-map{
    margin:0 22px 22px;
    width:calc(100% - 44px) !important;
    border-radius:16px;
    overflow:hidden;
    border:1px solid rgba(148,163,184,.16);
}

@media (max-width: 1220px){
    .direcciones-modal-filter{
        grid-template-columns:repeat(4, minmax(96px, 1fr)) !important;
    }
}

@media (max-width: 900px){
    .direcciones-panel-head .direcciones-filters{
        max-width:none;
    }
    .direcciones-group-filter{
        grid-template-columns:repeat(2, minmax(108px, 1fr)) !important;
    }
    .direcciones-modal{
        padding:14px;
    }
    .direcciones-map{
        margin:0 14px 14px;
        width:calc(100% - 28px) !important;
    }
}

@media (max-width: 640px){
    .direcciones-map-panel{
        padding:14px !important;
    }
    .direcciones-modal-filter{
        grid-template-columns:repeat(2, minmax(112px, 1fr)) !important;
        padding:10px 14px 12px !important;
    }
    .direcciones-modal-head{
        padding:14px;
    }
}

/* v10: estructura interna para respetar padding original del theme */
.direcciones-map-panel{
    padding:0 !important;
}

.direcciones-map-panel .direcciones-map-head{
    padding:20px 20px 16px;
    margin-bottom:0;
}

.direcciones-map-body{
    padding:16px 20px 20px;
}

.direcciones-map-panel .direcciones-map-legend{
    margin:0 0 14px 0;
}

.direcciones-map-panel .direcciones-main-map{
    width:100%;
    border-radius:18px;
}

@media (max-width: 640px){
    .direcciones-map-panel .direcciones-map-head{
        padding:14px 14px 12px;
    }

    .direcciones-map-body{
        padding:0 14px 14px;
    }
}



/* v11: paleta oficial de grupos aplicada a todo el modulo direcciones
   Grupo 1 #2f6fed | Grupo 2 #1E9B56 | Grupo 3 #F59C1E | Grupo 4 #C92137 | Grupo 5 #7c3aed | Sin Grupo #1f2937 | Todos #c0c7d1 */

.direcciones-group-summary-card,
.direcciones-legend-item,
.direcciones-radio span{
    --grupo-dark-mix: color-mix(in srgb, var(--grupo-color, #64748b) 34%, #020617 66%);
    --grupo-soft-fill: color-mix(in srgb, var(--grupo-color, #64748b) 18%, transparent);
}

/* Indicadores de personas por grupo */
.direcciones-group-summary-card{
    border-color:color-mix(in srgb, var(--grupo-color, #64748b) 42%, rgba(148,163,184,.18));
    background:
        linear-gradient(180deg, rgba(255,255,255,.055), rgba(255,255,255,0)),
        linear-gradient(135deg, color-mix(in srgb, var(--grupo-color, #64748b) 16%, rgba(15,23,42,.95) 84%), rgba(15,23,42,.94));
}

.direcciones-group-summary-card:before{
    background:linear-gradient(180deg, var(--grupo-color, #64748b), color-mix(in srgb, var(--grupo-color, #64748b) 65%, #000 35%));
    box-shadow:0 0 18px color-mix(in srgb, var(--grupo-color, #64748b) 48%, transparent);
}

.direcciones-group-summary-card span{
    color:color-mix(in srgb, var(--grupo-color, #e5e7eb) 28%, #ffffff 72%) !important;
}

.direcciones-group-summary-card strong{
    color:#f8fafc;
}

body.light .direcciones-group-summary-card,
.light .direcciones-group-summary-card,
[data-theme="light"] .direcciones-group-summary-card{
    background:linear-gradient(180deg, #ffffff, color-mix(in srgb, var(--grupo-color, #64748b) 5%, #ffffff 95%));
    border-color:color-mix(in srgb, var(--grupo-color, #64748b) 34%, #d7dde8 66%);
}

/* Etiquetas de mapa: estilo pill con profundidad usando la misma paleta */
.direcciones-legend-item{
    border-color:color-mix(in srgb, var(--grupo-color, #64748b) 70%, rgba(255,255,255,.16));
    background:
        linear-gradient(90deg, color-mix(in srgb, var(--grupo-color, #64748b) 38%, #111827 62%), color-mix(in srgb, var(--grupo-color, #64748b) 20%, #020617 80%));
    color:#f8fafc;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.18), inset 0 -1px 0 rgba(0,0,0,.18);
}

.direcciones-legend-item i{
    background:var(--grupo-color, #64748b) !important;
    box-shadow:
        0 0 0 2px color-mix(in srgb, var(--grupo-color, #64748b) 28%, rgba(255,255,255,.08)),
        0 0 10px color-mix(in srgb, var(--grupo-color, #64748b) 76%, transparent) !important;
}

body.light .direcciones-legend-item,
.light .direcciones-legend-item,
[data-theme="light"] .direcciones-legend-item{
    background:linear-gradient(90deg, color-mix(in srgb, var(--grupo-color, #64748b) 18%, #ffffff 82%), color-mix(in srgb, var(--grupo-color, #64748b) 7%, #ffffff 93%));
    color:#172033;
    border-color:color-mix(in srgb, var(--grupo-color, #64748b) 38%, #d7dde8 62%);
}

/* Botones de filtros: gradiente izquierda-derecha con bullets de la paleta */
.direcciones-radio span{
    background:linear-gradient(90deg, color-mix(in srgb, var(--grupo-solid, #64748b) 94%, #ffffff 6%), color-mix(in srgb, var(--grupo-solid, #64748b) 70%, #000000 30%)) !important;
    border-color:color-mix(in srgb, var(--grupo-solid, #64748b) 70%, rgba(255,255,255,.18)) !important;
    color:var(--grupo-text, #ffffff) !important;
}

.direcciones-radio span:before{
    width:11px !important;
    height:11px !important;
    background:var(--grupo-solid, #64748b) !important;
    box-shadow:0 0 0 2px rgba(255,255,255,.20), 0 0 9px color-mix(in srgb, var(--grupo-solid, #64748b) 62%, transparent) !important;
}

.direcciones-radio:hover span{
    filter:brightness(1.08) saturate(1.03);
    transform:translateY(-1px);
    box-shadow:none !important;
}

.direcciones-radio.is-active span,
.direcciones-radio input:checked + span{
    background:linear-gradient(90deg, #ffffff, #d8dde5) !important;
    color:#172033 !important;
    border-color:rgba(255,255,255,.72) !important;
    filter:none;
    box-shadow:none !important;
}

.direcciones-radio.is-active span:before,
.direcciones-radio input:checked + span:before{
    background:var(--grupo-solid, #64748b) !important;
    box-shadow:0 0 0 2px color-mix(in srgb, var(--grupo-solid, #64748b) 25%, transparent), 0 0 8px color-mix(in srgb, var(--grupo-solid, #64748b) 58%, transparent) !important;
}

.direcciones-radio[data-grupo="Todos"] span:before,
.direcciones-radio.is-active[data-grupo="Todos"] span:before,
.direcciones-radio[data-grupo="Todos"] input:checked + span:before{
    background:#111827 !important;
    box-shadow:0 0 0 2px rgba(17,24,39,.18) !important;
}

.direcciones-radio[data-grupo="Sin Grupo"] span:before,
.direcciones-radio.is-active[data-grupo="Sin Grupo"] span:before,
.direcciones-radio[data-grupo="Sin Grupo"] input:checked + span:before{
    background:#1f2937 !important;
    box-shadow:0 0 0 2px rgba(31,41,55,.22), 0 0 8px rgba(31,41,55,.45) !important;
}

/* Modal y mapa mantienen la misma paleta */
.direcciones-modal-filter .direcciones-radio span{
    min-height:30px !important;
}

.direcciones-map-marker{
    filter:drop-shadow(0 7px 10px rgba(2,6,23,.72)) drop-shadow(0 0 7px rgba(255,255,255,.72)) !important;
}


/* v12: correccion final de colores en modo light con paleta oficial */
body.light .direcciones-group-summary-card,
.light .direcciones-group-summary-card,
[data-theme="light"] .direcciones-group-summary-card{
    background:
        linear-gradient(180deg, rgba(255,255,255,.98), rgba(248,250,252,.96)),
        linear-gradient(135deg, color-mix(in srgb, var(--grupo-color, #64748b) 10%, #ffffff 90%), #ffffff) !important;
    border-color:color-mix(in srgb, var(--grupo-color, #64748b) 38%, #dbe3ef 62%) !important;
    box-shadow:0 10px 24px rgba(15,23,42,.07) !important;
}

body.light .direcciones-group-summary-card:before,
.light .direcciones-group-summary-card:before,
[data-theme="light"] .direcciones-group-summary-card:before{
    background:linear-gradient(180deg, var(--grupo-color, #64748b), color-mix(in srgb, var(--grupo-color, #64748b) 72%, #111827 28%)) !important;
    box-shadow:0 0 15px color-mix(in srgb, var(--grupo-color, #64748b) 34%, transparent) !important;
}

body.light .direcciones-group-summary-card span,
.light .direcciones-group-summary-card span,
[data-theme="light"] .direcciones-group-summary-card span{
    color:color-mix(in srgb, var(--grupo-color, #334155) 78%, #172033 22%) !important;
}

body.light .direcciones-group-summary-card strong,
.light .direcciones-group-summary-card strong,
[data-theme="light"] .direcciones-group-summary-card strong{
    color:#111827 !important;
}

body.light .direcciones-legend-item,
.light .direcciones-legend-item,
[data-theme="light"] .direcciones-legend-item{
    background:
        linear-gradient(180deg, rgba(255,255,255,.92), rgba(255,255,255,.74)),
        linear-gradient(90deg, color-mix(in srgb, var(--grupo-color, #64748b) 18%, #ffffff 82%), color-mix(in srgb, var(--grupo-color, #64748b) 8%, #ffffff 92%)) !important;
    color:#172033 !important;
    border-color:color-mix(in srgb, var(--grupo-color, #64748b) 42%, #d5deea 58%) !important;
    box-shadow:inset 0 1px 0 rgba(255,255,255,.92), 0 7px 15px rgba(15,23,42,.07) !important;
}

body.light .direcciones-legend-item i,
.light .direcciones-legend-item i,
[data-theme="light"] .direcciones-legend-item i{
    background:var(--grupo-color, #64748b) !important;
    box-shadow:
        0 0 0 2px color-mix(in srgb, var(--grupo-color, #64748b) 22%, #ffffff 78%),
        0 0 8px color-mix(in srgb, var(--grupo-color, #64748b) 44%, transparent) !important;
}

body.light .direcciones-radio span,
.light .direcciones-radio span,
[data-theme="light"] .direcciones-radio span{
    background:linear-gradient(90deg, color-mix(in srgb, var(--grupo-solid, #64748b) 82%, #ffffff 18%), color-mix(in srgb, var(--grupo-solid, #64748b) 64%, #ffffff 36%)) !important;
    border-color:color-mix(in srgb, var(--grupo-solid, #64748b) 52%, #dbe3ef 48%) !important;
    color:#ffffff !important;
    box-shadow:none !important;
    filter:none;
}

body.light .direcciones-radio[data-grupo="Todos"] span,
.light .direcciones-radio[data-grupo="Todos"] span,
[data-theme="light"] .direcciones-radio[data-grupo="Todos"] span{
    background:linear-gradient(90deg, #d7dde6, #aeb7c4) !important;
    border-color:#aeb7c4 !important;
    color:#111827 !important;
}

body.light .direcciones-radio[data-grupo="Sin Grupo"] span,
.light .direcciones-radio[data-grupo="Sin Grupo"] span,
[data-theme="light"] .direcciones-radio[data-grupo="Sin Grupo"] span{
    background:linear-gradient(90deg, #374151, #1f2937) !important;
    border-color:#1f2937 !important;
    color:#ffffff !important;
}

body.light .direcciones-radio:hover span,
.light .direcciones-radio:hover span,
[data-theme="light"] .direcciones-radio:hover span{
    filter:brightness(1.04) saturate(1.04);
    transform:translateY(-1px);
    box-shadow:none !important;
}

body.light .direcciones-radio.is-active span,
body.light .direcciones-radio input:checked + span,
.light .direcciones-radio.is-active span,
.light .direcciones-radio input:checked + span,
[data-theme="light"] .direcciones-radio.is-active span,
[data-theme="light"] .direcciones-radio input:checked + span{
    background:linear-gradient(90deg, #ffffff, #e4e9f1) !important;
    color:#172033 !important;
    border-color:#cbd5e1 !important;
    filter:none !important;
    box-shadow:none !important;
}

body.light .direcciones-radio span:before,
.light .direcciones-radio span:before,
[data-theme="light"] .direcciones-radio span:before{
    background:var(--grupo-solid, #64748b) !important;
    box-shadow:
        0 0 0 2px rgba(255,255,255,.52),
        0 0 7px color-mix(in srgb, var(--grupo-solid, #64748b) 44%, transparent) !important;
}

body.light .direcciones-radio[data-grupo="Todos"] span:before,
body.light .direcciones-radio.is-active[data-grupo="Todos"] span:before,
body.light .direcciones-radio[data-grupo="Todos"] input:checked + span:before,
.light .direcciones-radio[data-grupo="Todos"] span:before,
.light .direcciones-radio.is-active[data-grupo="Todos"] span:before,
.light .direcciones-radio[data-grupo="Todos"] input:checked + span:before,
[data-theme="light"] .direcciones-radio[data-grupo="Todos"] span:before,
[data-theme="light"] .direcciones-radio.is-active[data-grupo="Todos"] span:before,
[data-theme="light"] .direcciones-radio[data-grupo="Todos"] input:checked + span:before{
    background:#111827 !important;
    box-shadow:0 0 0 2px rgba(17,24,39,.12) !important;
}

body.light .direcciones-radio[data-grupo="Sin Grupo"] span:before,
body.light .direcciones-radio.is-active[data-grupo="Sin Grupo"] span:before,
body.light .direcciones-radio[data-grupo="Sin Grupo"] input:checked + span:before,
.light .direcciones-radio[data-grupo="Sin Grupo"] span:before,
.light .direcciones-radio.is-active[data-grupo="Sin Grupo"] span:before,
.light .direcciones-radio[data-grupo="Sin Grupo"] input:checked + span:before,
[data-theme="light"] .direcciones-radio[data-grupo="Sin Grupo"] span:before,
[data-theme="light"] .direcciones-radio.is-active[data-grupo="Sin Grupo"] span:before,
[data-theme="light"] .direcciones-radio[data-grupo="Sin Grupo"] input:checked + span:before{
    background:#1f2937 !important;
    box-shadow:0 0 0 2px rgba(31,41,55,.16), 0 0 7px rgba(31,41,55,.34) !important;
}

body.light .direcciones-search-input,
.light .direcciones-search-input,
[data-theme="light"] .direcciones-search-input{
    background:#ffffff !important;
    color:#111827 !important;
    border-color:rgba(15,23,42,.10) !important;
    box-shadow:0 9px 22px rgba(15,23,42,.06) !important;
}

body.light .direcciones-search-input:focus,
.light .direcciones-search-input:focus,
[data-theme="light"] .direcciones-search-input:focus{
    border-color:rgba(47,111,237,.38) !important;
    box-shadow:0 0 0 4px rgba(47,111,237,.10), 0 10px 24px rgba(15,23,42,.07) !important;
}

body.light .direcciones-modal-dialog,
.light .direcciones-modal-dialog,
[data-theme="light"] .direcciones-modal-dialog{
    background:#f8fafc !important;
    color:#111827 !important;
}

body.light .direcciones-modal-filter,
.light .direcciones-modal-filter,
[data-theme="light"] .direcciones-modal-filter,
body.light .direcciones-modal-head,
.light .direcciones-modal-head,
[data-theme="light"] .direcciones-modal-head{
    background:#ffffff !important;
    border-color:rgba(15,23,42,.08) !important;
}

/* v19: modo solo lectura para Consejo en tabla de direcciones */
.direcciones-readonly-value{
    display:block;
    width:100%;
    min-height:28px;
    padding:5px 0;
    line-height:1.35;
    color:inherit;
    overflow-wrap:anywhere;
}

.direcciones-inline-table .js-direccion-input[type="hidden"]{
    display:none !important;
}

/* v20: columna de acciones para Ver / Maps / Eliminar */
.direcciones-inline-table.direcciones-inline-table--actions .data-row{
    grid-template-columns:.85fr 1.15fr .65fr 1.05fr 1.55fr 1.05fr !important;
}

.direcciones-row-actions{
    display:flex;
    flex-wrap:wrap;
    gap:6px;
    align-items:center;
}

.direcciones-row-actions .btn{
    min-height:28px;
    padding:5px 10px;
    line-height:1;
}

@media (max-width: 1180px){
    .direcciones-inline-table.direcciones-inline-table--actions .data-row{
        grid-template-columns:repeat(3, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 760px){
    .direcciones-inline-table.direcciones-inline-table--actions .data-row{
        grid-template-columns:repeat(2, minmax(0, 1fr)) !important;
    }
}

@media (max-width: 480px){
    .direcciones-inline-table.direcciones-inline-table--actions .data-row{
        grid-template-columns:1fr !important;
    }
}
