/* © 2026 AS Sistemas · Alberto Salafia · Todos los derechos reservados */

/* Fuentes self-hosted (sin CDN) */
@font-face{font-family:'Plus Jakarta Sans';src:url('/assets/fonts/PlusJakartaSans-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}
@font-face{font-family:'Plus Jakarta Sans';src:url('/assets/fonts/PlusJakartaSans-500.woff2') format('woff2');font-weight:500;font-style:normal;font-display:swap}
@font-face{font-family:'Plus Jakarta Sans';src:url('/assets/fonts/PlusJakartaSans-600.woff2') format('woff2');font-weight:600;font-style:normal;font-display:swap}
@font-face{font-family:'Plus Jakarta Sans';src:url('/assets/fonts/PlusJakartaSans-700.woff2') format('woff2');font-weight:700;font-style:normal;font-display:swap}
@font-face{font-family:'DM Mono';src:url('/assets/fonts/DMMono-300.woff2') format('woff2');font-weight:300;font-style:normal;font-display:swap}
@font-face{font-family:'DM Mono';src:url('/assets/fonts/DMMono-400.woff2') format('woff2');font-weight:400;font-style:normal;font-display:swap}

*,*::before,*::after{margin:0;padding:0;box-sizing:border-box}
:root{
--navy:#001845;--navy-deep:#001030;--navy-mid:#002870;
--green:#00A84F;--green-h:#009144;--green-10:rgba(0,168,79,.10);--green-xl:#EDFAF3;--green-solid:#00A84F;
--cyan:#0096C7;--cyan-10:rgba(0,150,199,.10);--cyan-xl:#E0F5FF;--cyan-solid:#0096C7;
--amber:#E8961C;--amber-10:rgba(232,150,28,.10);--amber-xl:#FFF5E0;--amber-solid:#E8961C;
--rose:#C2185B;--rose-10:rgba(194,24,91,.10);--rose-xl:#FFF0F6;--rose-solid:#C2185B;
--navy-10:rgba(0,40,112,.08);--navy-xl:#E8ECF4;
--bg:#F5F7FB;--white:#FFFFFF;
--border:rgba(0,24,69,.07);--border-m:rgba(0,24,69,.13);
--ink:#0B1D3A;--ink-60:rgba(11,29,58,.60);--ink-35:rgba(11,29,58,.35);--ink-15:rgba(11,29,58,.15);
--display:'Plus Jakarta Sans',sans-serif;--body:'Plus Jakarta Sans',sans-serif;--mono:'DM Mono',monospace;
--ease:cubic-bezier(.16,1,.3,1);--r-sm:10px;--r:16px;--r-lg:22px;
--shadow-sm:0 2px 12px rgba(0,24,69,.06);--shadow:0 8px 32px rgba(0,24,69,.09);--shadow-lg:0 20px 60px rgba(0,24,69,.12);
--line-color:#C8D0DC;
}
html{scroll-behavior:smooth}
body{font-family:var(--body);background:var(--bg);color:var(--ink);-webkit-font-smoothing:antialiased;min-height:100vh;display:flex;flex-direction:column}
img{display:block}a{text-decoration:none}

/* ═══ RAINBOW TOP ═══ */
.rainbow-top{position:fixed;top:0;left:0;right:0;height:4px;z-index:9999;background:linear-gradient(90deg,var(--navy) 0%,var(--green) 28%,var(--cyan) 52%,var(--amber) 76%,var(--rose) 100%);background-size:300% 100%;animation:rf 6s linear infinite}
@keyframes rf{0%{background-position:0% 0}100%{background-position:300% 0}}

/* ═══ HEADER ═══ */
.page-header{background:var(--navy-deep);padding:18px 40px;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-top:4px;flex-shrink:0;z-index:200}
.hd-left{display:flex;align-items:center;gap:14px}
.hd-logo{width:38px;height:38px;object-fit:contain}
.hd-name{font-family:var(--display);font-size:15px;font-weight:700;color:rgba(255,255,255,.85)}
.hd-tag{font-family:var(--mono);font-size:8.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--green);opacity:.7;margin-top:1px}
.hd-center{text-align:center}
.hd-title{font-family:var(--display);font-size:18px;font-weight:800;color:white;letter-spacing:-.02em}
.hd-subtitle{font-size:11px;color:rgba(255,255,255,.35);font-weight:300;margin-top:2px}
.hd-subtitle b{color:rgba(255,255,255,.5);font-weight:500}
.hd-badge{display:inline-flex;align-items:center;gap:6px;font-family:var(--mono);font-size:9px;letter-spacing:.08em;text-transform:uppercase;padding:4px 12px;border-radius:100px;background:rgba(0,168,79,.15);color:#00D468;margin-left:10px}
.hd-badge .dot{width:5px;height:5px;border-radius:50%;background:#00D468}
.hd-right-logo{width:38px;height:38px;object-fit:contain;opacity:.5}

/* ═══ NAV TABS ═══ */
.nav-bar{background:white;border-bottom:1px solid var(--border);padding:0 40px;display:flex;align-items:center;gap:0;flex-shrink:0;z-index:150;overflow-x:auto}
.nav-tab{display:inline-flex;align-items:center;gap:7px;padding:14px 22px;font-size:12.5px;font-weight:600;color:var(--ink-35);cursor:pointer;border-bottom:3px solid transparent;transition:all .25s;white-space:nowrap;user-select:none}
.nav-tab:hover{color:var(--ink-60);background:var(--bg)}
.nav-tab.active{color:var(--green);border-bottom-color:var(--green)}
.nav-tab svg{width:15px;height:15px}
.nav-sep{width:1px;height:28px;background:var(--border-m);margin:0 4px;flex-shrink:0}
.nav-tab.action{color:var(--ink-60)}
.nav-tab.action:hover{color:var(--navy)}

/* ═══ VIEW CONTAINERS ═══ */
.view{display:none;flex:1;overflow:auto}
.view.active{display:flex;flex-direction:column}

/* ═══════════════════════════════════════
   VIEW 1: DASHBOARD
═══════════════════════════════════════ */
.dash-content{flex:1;overflow:auto;padding:28px 40px 60px}
.dash-inner{max-width:1200px;margin:0 auto}

/* Intendente card */
.int-card{background:linear-gradient(135deg,var(--navy) 0%,var(--navy-mid) 100%);border-radius:var(--r-lg);padding:24px 32px;display:flex;align-items:center;gap:18px;margin-bottom:12px;box-shadow:var(--shadow-lg);position:relative;overflow:hidden}
.int-card::before{content:'';position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.03) 1px,transparent 1px);background-size:24px 24px}
.int-icon{width:50px;height:50px;border-radius:14px;background:rgba(255,255,255,.1);display:flex;align-items:center;justify-content:center;flex-shrink:0;position:relative;z-index:1}
.int-icon svg{width:26px;height:26px;color:white}
.int-info{position:relative;z-index:1}
.int-role{font-family:var(--mono);font-size:8.5px;letter-spacing:.18em;text-transform:uppercase;color:rgba(255,255,255,.4);margin-bottom:3px}
.int-name{font-family:var(--display);font-size:20px;font-weight:800;color:white;letter-spacing:-.02em;line-height:1.2}
.int-sub{font-size:11.5px;color:rgba(255,255,255,.4);font-weight:300;margin-top:2px}

.conn-trunk{width:3px;height:24px;background:linear-gradient(180deg,var(--navy),var(--border-m));margin:0 auto;border-radius:2px}

/* Dep directas */
.dep-directas{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:12px}

/* Node genérico */
.node{background:var(--white);border:1px solid var(--border);border-radius:var(--r-sm);padding:14px 16px;position:relative;transition:all .35s var(--ease)}
.node:hover{transform:translateY(-2px);box-shadow:var(--shadow-sm);border-color:transparent}
.node::before{content:'';position:absolute;top:0;left:0;right:0;height:3px;background:var(--node-color,var(--ink-15));border-radius:var(--r-sm) var(--r-sm) 0 0;transform:scaleX(0);transform-origin:left;transition:transform .4s var(--ease)}
.node:hover::before{transform:scaleX(1)}
.node-role{font-family:var(--mono);font-size:8px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-35);margin-bottom:4px}
.node-name{font-family:var(--display);font-size:13px;font-weight:700;color:var(--ink);line-height:1.25;letter-spacing:-.01em}
.node-person{font-size:11.5px;color:var(--ink-60);font-weight:400;margin-top:4px;line-height:1.3}
.node.vacant{border-style:dashed;border-color:var(--ink-15);background:repeating-linear-gradient(-45deg,transparent,transparent 8px,rgba(0,24,69,.015) 8px,rgba(0,24,69,.015) 16px)}
.node.vacant .node-person{color:var(--ink-35);font-style:italic}

/* Secretaría accordion */
.secretaria{margin-bottom:10px;border-radius:var(--r);overflow:hidden;border:1px solid var(--border);background:white;transition:box-shadow .3s}
.secretaria:hover{box-shadow:var(--shadow-sm)}
.sec-header{display:flex;align-items:center;gap:14px;padding:18px 22px;cursor:pointer;user-select:none;transition:background .25s;position:relative}
.sec-header:hover{background:var(--bg)}
.sec-color-bar{position:absolute;left:0;top:0;bottom:0;width:4px}
.sec-icon{width:42px;height:42px;border-radius:12px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.sec-icon svg{width:20px;height:20px}
/* Secretarías con fondo de color fuerte */
.sec-icon.strong{color:white!important}
.sec-info{flex:1}
.sec-label{font-family:var(--mono);font-size:8.5px;letter-spacing:.15em;text-transform:uppercase;color:var(--ink-35);margin-bottom:2px}
.sec-name{font-family:var(--display);font-size:15px;font-weight:700;color:var(--ink);letter-spacing:-.01em}
.sec-person{font-size:12px;color:var(--ink-60);font-weight:400;margin-top:2px}
.sec-toggle{width:32px;height:32px;border-radius:8px;background:var(--bg);border:none;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:all .3s;flex-shrink:0}
.sec-toggle svg{width:16px;height:16px;color:var(--ink-35);transition:transform .35s var(--ease)}
.secretaria.open .sec-toggle svg{transform:rotate(180deg)}
.sec-count{font-family:var(--mono);font-size:10px;color:var(--ink-35);padding:3px 10px;background:var(--bg);border-radius:100px;flex-shrink:0}
.sec-body{max-height:0;overflow:hidden;transition:max-height .5s var(--ease)}
.secretaria.open .sec-body{max-height:3000px}
.sec-content{padding:0 22px 20px;border-top:1px solid var(--border)}
.dep-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));gap:10px;padding-top:16px}
.subsec-block{grid-column:1/-1;background:var(--bg);border-radius:var(--r-sm);padding:14px;margin-top:6px}
.subsec-header{display:flex;align-items:center;gap:10px;margin-bottom:12px}
.subsec-dot{width:8px;height:8px;border-radius:3px;flex-shrink:0}
.subsec-name{font-family:var(--display);font-size:12.5px;font-weight:700;color:var(--ink);letter-spacing:-.01em}
.subsec-person{font-size:11px;color:var(--ink-60);font-weight:400;margin-left:auto}
.subsec-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px}
.subsec-grid .node{padding:12px 14px}
.dir-with-areas{grid-column:1/-1}
.dir-with-areas .area-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(200px,1fr));gap:8px;margin-top:8px;padding-left:16px;border-left:2px solid var(--border)}
.sec-connector{width:3px;height:14px;background:var(--border-m);margin:0 auto;border-radius:2px}

/* ═══════════════════════════════════════
   VIEW 2: DIAGRAMA (árbol)
═══════════════════════════════════════ */
.diagram-toolbar{background:white;border-bottom:1px solid var(--border);padding:10px 40px;display:flex;align-items:center;gap:10px;flex-wrap:wrap;flex-shrink:0}
.dt-label{font-family:var(--mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-35)}
.dt-btn{display:inline-flex;align-items:center;gap:5px;padding:6px 14px;border-radius:7px;font-family:var(--body);font-size:11px;font-weight:500;border:1px solid var(--border-m);background:white;color:var(--ink-60);cursor:pointer;transition:all .2s}
.dt-btn:hover{border-color:var(--green);color:var(--green);background:var(--green-xl)}
.dt-btn svg{width:13px;height:13px}
.dt-sep{width:1px;height:20px;background:var(--border-m)}
.dt-zoom{display:flex;align-items:center;gap:4px;font-family:var(--mono);font-size:10px;color:var(--ink-35)}
.dt-zoom button{width:28px;height:28px;border-radius:6px;border:1px solid var(--border-m);background:white;cursor:pointer;display:flex;align-items:center;justify-content:center;font-size:16px;color:var(--ink-60);transition:all .2s}
.dt-zoom button:hover{background:var(--green-xl);color:var(--green);border-color:var(--green)}
#zoomLevel{min-width:36px;text-align:center}

.canvas-wrap{flex:1;overflow:hidden;position:relative;cursor:grab;background:var(--bg)}
.canvas-wrap:active{cursor:grabbing}
.canvas{position:absolute;padding:60px 80px 120px;min-width:max-content;left:50%;top:50%;transform-origin:0 0}

/* Bubble styles */
.bubble{background:white;border:2px solid var(--border-m);border-radius:14px;padding:12px 16px;text-align:center;min-width:138px;max-width:175px;position:relative;transition:all .3s var(--ease);cursor:default;z-index:2}
.bubble:hover{transform:translateY(-3px);box-shadow:0 8px 28px rgba(0,24,69,.12);border-color:var(--bbl-color,var(--border-m))}
.bubble.intendente-b{background:linear-gradient(140deg,var(--navy) 0%,var(--navy-mid) 100%);border:none;padding:16px 24px;min-width:210px;max-width:260px;border-radius:18px;box-shadow:0 12px 40px rgba(0,24,69,.25)}
.bubble.intendente-b .bbl-role{color:rgba(255,255,255,.4)}
.bubble.intendente-b .bbl-name{color:white;font-size:14px}
.bubble.intendente-b .bbl-person{color:rgba(255,255,255,.55)}
/* Secretarías FUERTES */
.bubble.sec-b{border:none;padding:13px 16px;min-width:165px;max-width:195px}
.bubble.sec-b .bbl-name{color:white;font-size:12px}
.bubble.sec-b .bbl-role{color:rgba(255,255,255,.55)}
.bubble.sec-b .bbl-person{color:rgba(255,255,255,.75)}
.bubble.sec-b .bbl-dot{background:rgba(255,255,255,.4)}
.bubble.sec-b.bg-green{background:linear-gradient(140deg,#00994A,#00C060);box-shadow:0 6px 24px rgba(0,168,79,.3)}
.bubble.sec-b.bg-cyan{background:linear-gradient(140deg,#0080AA,#00AADD);box-shadow:0 6px 24px rgba(0,150,199,.3)}
.bubble.sec-b.bg-amber{background:linear-gradient(140deg,#CC8318,#F0A020);box-shadow:0 6px 24px rgba(232,150,28,.3)}
.bubble.sec-b.bg-rose{background:linear-gradient(140deg,#A01550,#D42070);box-shadow:0 6px 24px rgba(194,24,91,.3)}
.bubble.sec-b.bg-navy{background:linear-gradient(140deg,#001845,#003090);box-shadow:0 6px 24px rgba(0,24,69,.3)}
/* Subsec */
.bubble.subsec-b{border-color:var(--bbl-color);background:linear-gradient(180deg,white 0%,var(--bbl-bg,#f9f9fc) 100%);min-width:148px;max-width:172px}
.bubble.vacant-b{border-style:dashed;border-color:var(--ink-35);background:repeating-linear-gradient(-45deg,transparent,transparent 6px,rgba(0,24,69,.02) 6px,rgba(0,24,69,.02) 12px)}
.bubble.vacant-b .bbl-person{color:var(--ink-35);font-style:italic}
.bubble .bbl-dot{width:7px;height:7px;border-radius:50%;background:var(--bbl-color,var(--ink-35));margin:0 auto 5px}
.bubble.intendente-b .bbl-dot{display:none}
.bbl-role{font-family:var(--mono);font-size:7.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-35);margin-bottom:3px}
.bbl-name{font-family:var(--display);font-size:11px;font-weight:700;color:var(--ink);letter-spacing:-.01em;line-height:1.25;margin-bottom:3px}
.bbl-person{font-size:9.5px;color:var(--ink-60);font-weight:400;line-height:1.3}

.tree-branch{display:flex;flex-direction:column;align-items:center;position:relative;padding:0 5px}
.tree-children{display:flex;justify-content:center;position:relative;padding-top:24px}
.vline{width:2px;background:var(--line-color);margin:0 auto;flex-shrink:0}
.vline-sm{height:18px}
.vline-md{height:24px}

/* ═══════════════════════════════════════
   VIEW 3: DATOS COMPLETOS
═══════════════════════════════════════ */
.datos-content{flex:1;overflow:auto;padding:28px 40px 60px}
.datos-inner{max-width:1000px;margin:0 auto}
.datos-header-card{background:transparent;border:none;border-radius:0;padding:0 0 24px;margin-bottom:0;display:flex;align-items:center;gap:20px}
.datos-header-card img{width:48px;height:48px;object-fit:contain;max-width:48px;max-height:48px;flex-shrink:0}
.dhc-info{}
.dhc-title{font-family:var(--display);font-size:20px;font-weight:800;color:var(--ink)}
.dhc-sub{font-size:12px;color:var(--ink-60);margin-top:3px}

.datos-section{margin-bottom:20px}
.datos-sec-title{font-family:var(--display);font-size:14px;font-weight:800;color:white;padding:12px 20px;border-radius:var(--r-sm) var(--r-sm) 0 0;display:flex;align-items:center;gap:10px}
.datos-sec-title .dst-badge{font-family:var(--mono);font-size:9px;letter-spacing:.06em;padding:3px 10px;border-radius:100px;background:rgba(255,255,255,.15);color:rgba(255,255,255,.7)}
.datos-table{width:100%;border-collapse:collapse;background:white;border-radius:0 0 var(--r-sm) var(--r-sm);overflow:hidden;border:1px solid var(--border);border-top:none}
.datos-table th{font-family:var(--mono);font-size:9px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-35);padding:10px 16px;text-align:left;background:var(--bg);border-bottom:1px solid var(--border)}
.datos-table td{padding:10px 16px;font-size:12px;border-bottom:1px solid var(--border);vertical-align:top}
.datos-table tr:last-child td{border-bottom:none}
.datos-table tr:hover td{background:rgba(0,168,79,.03)}
.dt-cargo{font-weight:600;color:var(--ink)}
.dt-nombre{color:var(--ink-60)}
.dt-dni{font-family:var(--mono);font-size:11px;color:var(--ink-35);letter-spacing:.03em}
.dt-vacant{font-style:italic;color:var(--ink-35)}
.dt-subsec-row td{background:var(--bg)}
.dt-subsec-label{font-family:var(--mono);font-size:8.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-35);padding:8px 16px;background:var(--bg);border-bottom:1px solid var(--border)}
.dt-subsec-label td{padding:8px 16px}

/* ═══ FOOTER ═══ */
.page-footer{background:var(--navy-deep);padding:18px 40px;display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;flex-shrink:0}
.pf-copy{font-size:11px;color:rgba(255,255,255,.22);font-weight:300}
.pf-copy b{color:rgba(255,255,255,.38);font-weight:500}
.pf-dir{font-family:var(--mono);font-size:8.5px;letter-spacing:.1em;text-transform:uppercase;color:rgba(255,255,255,.18)}
.cbar{height:4px;background:linear-gradient(90deg,var(--navy) 0%,var(--green) 28%,var(--cyan) 55%,var(--amber) 78%,var(--rose) 100%);flex-shrink:0}

/* ═══ RESPONSIVE ═══ */
@media(max-width:768px){
.page-header,.nav-bar,.dash-content,.datos-content,.page-footer{padding-left:16px;padding-right:16px}
.dep-directas{grid-template-columns:1fr 1fr}
.dep-grid,.subsec-grid{grid-template-columns:1fr}
.int-card{flex-direction:column;text-align:center;padding:20px}
.hd-center,.hd-right-logo{display:none}
.nav-tab{padding:12px 14px;font-size:11px}
.datos-header-card{flex-direction:column;text-align:center}
}
@media(max-width:480px){
.dep-directas{grid-template-columns:1fr}
.nav-tab span.tab-text{display:none}
}

/* ═══ PRINT ═══ */
/* ═══ PRINT MODAL ═══ */
.print-modal-overlay{display:none;position:fixed;inset:0;background:rgba(0,24,69,.5);z-index:10000;align-items:center;justify-content:center;backdrop-filter:blur(4px)}
.print-modal-overlay.show{display:flex}
.print-modal{background:white;border-radius:var(--r-lg);padding:32px;max-width:420px;width:90%;box-shadow:var(--shadow-lg)}
.pm-title{font-family:var(--display);font-size:18px;font-weight:800;color:var(--ink);margin-bottom:6px}
.pm-sub{font-size:12px;color:var(--ink-60);margin-bottom:20px}
.pm-option{display:flex;align-items:center;gap:14px;padding:14px 16px;border:1.5px solid var(--border-m);border-radius:12px;cursor:pointer;transition:all .25s;margin-bottom:10px;background:white}
.pm-option:hover{border-color:var(--green);background:var(--green-xl);transform:translateY(-1px);box-shadow:var(--shadow-sm)}
.pm-option .pm-ico{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:20px}
.pm-option .pm-opt-title{font-family:var(--display);font-size:13px;font-weight:700;color:var(--ink)}
.pm-option .pm-opt-desc{font-size:11px;color:var(--ink-60);margin-top:2px}
.pm-close{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;border-radius:8px;border:1px solid var(--border-m);background:white;color:var(--ink-60);font-family:var(--body);font-size:12px;font-weight:500;cursor:pointer;margin-top:8px;transition:all .2s}
.pm-close:hover{background:var(--bg);color:var(--ink)}

/* ═══ PRINT STYLES ═══ */
@media print{
body{overflow:visible;height:auto;background:white;-webkit-print-color-adjust:exact;print-color-adjust:exact}
.rainbow-top,.nav-bar,.diagram-toolbar,.print-modal-overlay,.cbar,.page-footer{display:none!important}
.view{display:none!important}
.view.print-target{display:block!important;overflow:visible!important}
.page-header{padding:8px 16px;position:static}
.bubble:hover,.node:hover{transform:none!important;box-shadow:none!important}

/* Dashboard print */
body.print-dashboard .dash-content{padding:8px 16px;overflow:visible}
body.print-dashboard .int-card{margin-bottom:6px;padding:14px 20px}
body.print-dashboard .conn-trunk{height:8px}
body.print-dashboard .dep-directas{margin-bottom:6px}
body.print-dashboard .sec-connector{height:6px}
body.print-dashboard div[style*="justify-content:center"]{display:none!important}
body.print-dashboard .secretaria{break-inside:avoid;page-break-inside:avoid;margin-bottom:8px}
body.print-dashboard .secretaria .sec-body{max-height:none!important;overflow:visible!important}
body.print-dashboard .sec-toggle{display:none!important}
body.print-dashboard .node{padding:10px 12px}
body.print-dashboard .subsec-block{padding:10px;margin-top:4px}

/* Diagrama print — contenido completo escalado */
body.print-diagrama #view-diagrama{overflow:visible!important}
body.print-diagrama .canvas-wrap{overflow:visible!important;height:auto!important;position:relative!important;width:100%!important}
body.print-diagrama .canvas{position:relative!important;left:0!important;top:0!important;padding:10px!important;width:max-content}
body.print-diagrama .org-tree{transform-origin:top left}
body.print-diagrama #connSvg{display:none!important}

/* Datos print */
body.print-datos .datos-content{padding:8px 16px;overflow:visible}
body.print-datos .datos-section{break-inside:avoid;page-break-inside:avoid;margin-bottom:10px}
body.print-datos .datos-section:not(:last-child){page-break-after:always}
}

/* ═══ DIAGRAMA VERTICAL (para impresión) ═══ */
.orgv{display:flex;flex-direction:column;align-items:center}
.orgv-int{background:linear-gradient(135deg,var(--navy),var(--navy-mid));border-radius:12px;padding:14px 28px;text-align:center;color:white}
.orgv-role{font-family:var(--mono);font-size:8px;letter-spacing:.15em;text-transform:uppercase;color:rgba(255,255,255,.4)}
.orgv-name-int{font-family:var(--display);font-size:16px;font-weight:800}
.orgv-vline{width:2px;height:14px;background:var(--line-color);margin:0 auto}
.orgv-vline-sm{width:2px;height:8px;background:var(--line-color);margin:0 auto}
.orgv-level{display:flex;justify-content:center;gap:0;align-items:flex-start}
.orgv-branch{display:flex;flex-direction:column;align-items:center;padding:0 4px}
.orgv-node{background:white;border:1.5px solid var(--border);border-radius:8px;padding:6px 8px;text-align:center;min-width:100px;max-width:125px}
.orgv-r{font-family:var(--mono);font-size:6.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-35)}
.orgv-n{font-family:var(--display);font-size:9px;font-weight:700;color:var(--ink);line-height:1.25}
.orgv-p{font-size:7.5px;color:var(--ink-60);margin-top:1px}
.orgv-sec{border:none;color:white;padding:8px 10px}
.orgv-sec .orgv-r{color:rgba(255,255,255,.5)}
.orgv-sec .orgv-n{color:white;font-size:9.5px}
.orgv-sec .orgv-p{color:rgba(255,255,255,.7)}
.orgv-deps{display:flex;flex-direction:column;align-items:center;gap:3px;padding-top:3px}
.orgv-dep{min-width:105px;max-width:122px;padding:4px 6px}
.orgv-dep .orgv-n{font-size:8px}
.orgv-dep .orgv-p{font-size:7px}
.orgv-subsec{display:flex;flex-direction:column;align-items:center;gap:2px;margin-top:3px;padding:4px;background:rgba(0,0,0,.02);border-radius:6px;border-left:2px solid var(--line-color)}
.orgv-sub-head{background:var(--bg)!important}
.orgv-vacant{border-style:dashed!important;border-color:var(--ink-35)!important}
.orgv-vacant .orgv-p{color:var(--ink-35);font-style:italic}

/* Print para diagrama vertical */
body.print-diagrama-v .page-header{padding:6px 12px}
body.print-diagrama-v #view-diagrama-v{display:block!important;overflow:visible!important}
#view-diagrama-v.hide-names .orgv-p{display:none!important}
#view-diagrama-v.hide-names .orgv-name-int{display:none!important}

/* Clases que reemplazan los style= inline del original (CSP) */
.nc-green{--node-color:var(--green)}
.nc-navy-mid{--node-color:var(--navy-mid)}
.nc-rose{--node-color:var(--rose)}
.nc-amber{--node-color:var(--amber)}
.nc-navy{--node-color:var(--navy)}
.nc-cyan{--node-color:var(--cyan)}
.bg-cyan{background:var(--cyan)}
.bg-navy-mid{background:var(--navy-mid)}
.bg-amber{background:var(--amber)}
.bg-green{background:var(--green)}
.bg-rose{background:var(--rose)}
.bg-none{background:transparent}
.tx-w{color:white}
.org-ctl{display:inline-flex;align-items:center;gap:6px;padding:8px 18px;border-radius:8px;font-family:var(--body);font-size:12px;font-weight:600;border:1px solid var(--border-m);background:white;color:var(--ink-60);cursor:pointer;transition:all .25s}
.org-ctl:hover{border-color:var(--green);color:var(--green);background:var(--green-xl)}
.u-mb12{margin-bottom:12px}
.u-center{text-align:center}
.u-note{font-size:12px;color:rgba(255,255,255,.5)}
.u-logorow{display:flex;align-items:center;gap:10px;justify-content:center;margin:16px 0 8px}
.u-logo42{width:42px;height:42px;object-fit:contain}
