:root{
        --gam-guinda:#9D1C2E; --gam-guinda-dark:#741526; --gam-guinda-alt:#891435;
        --gam-oro:#C08A2E; --gam-oro-soft:#E9D3A6;
        --eo-paper:#FBF9F9; --eo-card:#FFFFFF; --eo-ink:#2B2226; --eo-muted:#8A7B80;
        --eo-line:#EADFE2; --eo-line-strong:#D8C4C9; --eo-radius:14px;
        --eo-shadow:0 1px 2px rgba(116,21,38,.06),0 6px 18px rgba(116,21,38,.06);
        --eo-shadow-hover:0 2px 6px rgba(116,21,38,.10),0 14px 30px rgba(116,21,38,.12);
    }
    .eo-wrap{ font-family:'Poppins',system-ui,sans-serif; color:var(--eo-ink); }
    .eo-wrap .title{ letter-spacing:-.02em; }
    .eo-wrap .intro-text{ color:var(--eo-muted); max-width:70ch; }
    .eo-wrap .directorio-link{ color:var(--gam-guinda); font-weight:600; text-decoration:none; border-bottom:1px solid var(--gam-oro-soft); }
    .eo-wrap .directorio-link:hover{ border-bottom-color:var(--gam-guinda); }

    /* barra */
    .eo-toolbar{ display:flex; flex-wrap:wrap; align-items:center; gap:12px; margin:22px 0 10px; }
    .eo-search{ position:relative; flex:1 1 320px; min-width:260px; }
    .eo-search .search-input{ width:100%; height:52px; padding:0 44px 0 46px; border:1.5px solid var(--eo-line-strong); border-radius:var(--eo-radius); background:var(--eo-card); color:var(--eo-ink); font-family:inherit; font-size:.98rem; outline:none; transition:border-color .2s,box-shadow .2s; }
    .eo-search .search-input::placeholder{ color:#B7A6AB; }
    .eo-search .search-input:focus{ border-color:var(--gam-guinda); box-shadow:0 0 0 4px rgba(157,28,46,.12); }
    .eo-search .search-icon{ position:absolute; left:16px; top:50%; transform:translateY(-50%); color:var(--gam-guinda); pointer-events:none; }
    .eo-search .search-icon svg{ display:block; }
    .eo-search .clear-search{ position:absolute; right:10px; top:50%; transform:translateY(-50%); width:30px; height:30px; display:grid; place-items:center; border:0; border-radius:8px; background:transparent; color:var(--eo-muted); cursor:pointer; transition:background .15s,color .15s; }
    .eo-search .clear-search:hover{ background:#F3E7EA; color:var(--gam-guinda); }
    .eo-actions{ display:flex; gap:8px; }
    .eo-btn{ display:inline-flex; align-items:center; gap:7px; height:52px; padding:0 16px; border:1.5px solid var(--eo-line-strong); border-radius:var(--eo-radius); background:var(--eo-card); color:var(--gam-guinda-alt); font-family:inherit; font-weight:600; font-size:.86rem; cursor:pointer; transition:background .18s,border-color .18s,color .18s; white-space:nowrap; }
    .eo-btn:hover{ background:var(--gam-guinda); border-color:var(--gam-guinda); color:#fff; }
    .eo-btn svg{ transition:transform .3s; }
    .eo-btn:hover svg{ transform:scale(1.12); }
    .eo-search-info{ min-height:20px; margin:2px 4px 0; font-size:.82rem; color:var(--gam-guinda-alt); font-weight:500; }

    /* explorador */
    .org-explorer{ margin-top:12px; }
    .org-node{ position:relative; }
    .org-node.is-top{ margin-bottom:12px; }
    .org-row.org-top{ display:grid; grid-template-columns:auto auto 1fr auto; align-items:center; gap:16px; padding:16px 18px; background:var(--eo-card); border:1px solid var(--eo-line); border-left:5px solid var(--gam-guinda); border-radius:var(--eo-radius); box-shadow:var(--eo-shadow); cursor:pointer; transition:box-shadow .2s,border-color .2s; }
    .org-row.org-top:hover{ box-shadow:var(--eo-shadow-hover); }
    .org-node.is-top.is-open > .org-row.org-top{ border-left-color:var(--gam-oro); border-bottom-left-radius:0; border-bottom-right-radius:0; }
    .org-row.org-top:focus-visible{ outline:3px solid rgba(157,28,46,.35); outline-offset:2px; }
    .org-index{ font-weight:700; font-size:.9rem; letter-spacing:.04em; color:var(--gam-oro); min-width:2.2ch; text-align:right; font-variant-numeric:tabular-nums; }
    .org-glyph{ width:44px; height:44px; display:grid; place-items:center; border-radius:11px; color:#fff; background:linear-gradient(135deg,var(--gam-guinda) 0%,var(--gam-guinda-dark) 100%); box-shadow:inset 0 0 0 1px rgba(255,255,255,.12); }
    .org-glyph svg{ transition:transform .3s; }
    .org-row.org-top:hover .org-glyph svg{ transform:scale(1.15) rotate(5deg); }
    .org-body{ display:flex; flex-direction:column; gap:2px; min-width:0; }
    .org-eyebrow{ font-size:.66rem; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--gam-oro); }
    .org-cargo{ font-weight:600; line-height:1.25; color:var(--eo-ink); }
    .org-row.org-top .org-cargo{ font-size:1.02rem; letter-spacing:-.01em; }
    .org-nombre{ font-size:.9rem; color:var(--eo-muted); font-weight:400; }
    .org-meta{ display:flex; align-items:center; gap:12px; }
    .org-twist{ display:grid; place-items:center; color:var(--gam-guinda); transition:transform .3s; }
    .org-node.is-open > .org-row .org-twist{ transform:rotate(90deg); color:var(--gam-oro); }

    /* rama */
    .org-branch{ display:grid; grid-template-rows:0fr; transition:grid-template-rows .3s ease; }
    .org-node.is-open > .org-branch{ grid-template-rows:1fr; }
    .org-branch-inner{ overflow:hidden; }
    .org-node.is-top > .org-branch > .org-branch-inner{ background:var(--eo-card); border:1px solid var(--eo-line); border-top:0; border-left:5px solid var(--gam-oro); border-radius:0 0 var(--eo-radius) var(--eo-radius); box-shadow:var(--eo-shadow); }
    .org-node.is-top > .org-branch .org-stack{ padding:6px 14px 14px 26px; }

    /* espina */
    .org-stack{ position:relative; }
    .org-stack::before{ content:""; position:absolute; top:0; bottom:16px; left:12px; width:2px; background:var(--eo-line); border-radius:2px; }
    .org-node.is-child{ position:relative; padding-left:26px; }
    .org-node.is-child > .org-row::before{ content:""; position:absolute; left:-14px; top:22px; width:14px; height:2px; background:var(--eo-line); border-radius:2px; }
    .org-row.org-inner{ position:relative; display:flex; align-items:flex-start; gap:12px; padding:11px 12px; margin:4px 0; background:#fff; border:1px solid var(--eo-line); border-radius:10px; transition:border-color .18s,box-shadow .18s; }
    .org-mark{ width:12px; flex:0 0 12px; display:grid; place-items:center; margin-top:5px; }
    .org-mark::before{ content:""; width:7px; height:7px; border-radius:50%; background:transparent; box-shadow:inset 0 0 0 2px var(--gam-guinda-alt); }
    .org-row.org-inner .org-body{ flex:1 1 auto; }
    .org-row.org-inner .org-cargo{ font-size:.92rem; }
    .org-row.org-inner .org-nombre{ font-size:.82rem; }

    /* contacto */
    .org-contact{ display:flex; flex-wrap:wrap; align-items:center; gap:6px 14px; margin-top:5px; }
    .org-mail{ display:inline-flex; align-items:center; gap:6px; font-size:.79rem; color:var(--gam-guinda); text-decoration:none; font-weight:500; word-break:break-all; }
    .org-mail:hover{ text-decoration:underline; }
    .org-mail svg{ opacity:.85; flex:0 0 auto; }
    .org-ext{ display:inline-flex; align-items:center; gap:5px; font-size:.75rem; font-weight:600; color:var(--gam-guinda-alt); background:#F6E9EC; border:1px solid #EFD9DE; padding:2px 9px; border-radius:999px; font-variant-numeric:tabular-nums; white-space:nowrap; }

    /* estado */
    .org-status{ display:inline-flex; align-items:center; gap:6px; font-size:.72rem; font-weight:600; padding:3px 9px; border-radius:999px; width:fit-content; margin-top:2px; }
    .org-status::before{ content:""; width:6px; height:6px; border-radius:50%; }
    .org-status[data-kind="sin"]{ color:#8A7B80; background:#F3ECEE; }
    .org-status[data-kind="sin"]::before{ background:#B7A6AB; }

    .org-count{ font-size:.72rem; font-weight:600; color:var(--gam-guinda-alt); background:#F6E9EC; border:1px solid #EFD9DE; padding:2px 9px; border-radius:999px; font-variant-numeric:tabular-nums; }

    mark{ background:var(--gam-oro-soft); color:var(--gam-guinda-dark); padding:0 1px; border-radius:3px; }

    .no-results{ text-align:center; padding:48px 20px; color:var(--eo-muted); }
    .no-results svg{ color:var(--eo-line-strong); }
    .no-results h4{ margin:14px 0 4px; color:var(--eo-ink); font-weight:600; }
    .no-results p{ margin:0; font-size:.9rem; }

    .eo-foot{ margin:26px 2px 8px; font-size:.76rem; color:var(--eo-muted); }
    .eo-foot b{ color:var(--gam-guinda-alt); font-weight:600; }

    @media (max-width:640px){
        .org-row.org-top{ grid-template-columns:auto 1fr auto; gap:12px; padding:14px; }
        .org-glyph{ display:none; }
        .org-row.org-top .org-cargo{ font-size:.96rem; }
        .org-node.is-top > .org-branch .org-stack{ padding-left:20px; }
        .eo-btn span{ display:none; } .eo-btn{ padding:0 14px; }
    }
    @media (prefers-reduced-motion:reduce){ .org-branch,.org-twist,.org-glyph svg,.eo-btn svg{ transition:none !important; } }