/* Executive Tech · Componentes comunes: Cuenta, navegación, formularios, cards, badges.
   Identidad: sidebar de Bitácora + tipografía y espaciado de Cotizador. */
@import url('https://fonts.googleapis.com/css2?family=Plus+Jakarta+Sans:wght@400;500;600;700;800&display=swap');
:root{--executive-font:'Plus Jakarta Sans',system-ui,-apple-system,'Segoe UI',sans-serif;--sidebar:#0b1426;--sidebar-hover:#172941;--sidebar-line:#26394d;--sidebar-text:#c9d4e6;--sidebar-muted:#8295b2}
html[data-theme=dark]{--sidebar:#0b1426;--sidebar-hover:#172941;--sidebar-line:#26394d;--sidebar-text:#c9d4e6;--sidebar-muted:#8295b2}
body,button,input,textarea,select{font-family:var(--executive-font)}
h1,h2,h3,.page-heading h1{font-family:var(--executive-font);letter-spacing:-.035em}
.executive-sidebar{background:var(--sidebar);padding-top:18px}
.executive-sidebar .brand{margin:4px 7px 22px;padding:14px 4px;border-bottom:1px solid var(--sidebar-line)}
.executive-sidebar .brand-words strong{font-size:12.5px;font-weight:800;line-height:1.3;letter-spacing:-.025em}
.executive-sidebar .brand-words small{font-size:9px;letter-spacing:.08em;font-weight:650}
.executive-sidebar .side-label{font-size:9px;font-weight:800;letter-spacing:.14em;margin-top:14px;color:var(--sidebar-muted)}
.executive-sidebar .side-link{min-height:37px;padding:8px 11px;font-size:12px;font-weight:650;gap:10px;border-radius:6px}
.executive-sidebar .side-link .cp-icon{width:16px;height:16px;flex:0 0 16px}
.executive-sidebar .side-link.active{background:#23354c;border-color:transparent;color:#fff;box-shadow:inset 3px 0 #3983ed}
.executive-sidebar .side-link:hover{background:var(--sidebar-hover)}
.executive-sidebar .system-links{max-height:172px;overflow:auto;scrollbar-width:thin}
.executive-sidebar .system-links .side-link{font-size:11px;min-height:34px}
.executive-sidebar .admin-group-label{margin-top:20px}
.executive-sidebar .admin-links .side-link{min-height:34px}
.executive-sidebar .back-link-side{display:flex;align-items:center;gap:8px;margin:0 7px;padding:8px 4px 14px;border-bottom:1px solid var(--sidebar-line);color:#b4c5dd;font-size:11px;font-weight:700}
.executive-sidebar .back-link-side .cp-icon{width:14px;height:14px}
.executive-sidebar .sidebar-bottom{margin-top:auto;padding:14px 6px 0}
.executive-account .side-account{display:flex;align-items:center;gap:10px;padding:5px 4px 10px;min-width:0}
.executive-account .side-account-avatar{width:31px;height:31px;border-radius:7px;background:#172c48;color:#e5efff;display:grid;place-items:center;font-size:12px;font-weight:750;flex:none}
.executive-account .side-account>span:last-child{display:flex;flex-direction:column;min-width:0}
.executive-account .side-account strong{color:#fff;font-size:11px;font-weight:800;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.executive-account .side-account small{font-size:9px;color:#96a8c4}
.executive-sidebar .side-logout{color:#f4c3cc}
.admin-shell .page-heading h1{font-size:30px;font-weight:800}
.admin-shell .page-heading p{font-size:13px;line-height:1.6}
.admin-shell .panel{border-radius:12px}
.admin-shell .panel h2{font-size:17px;font-weight:750;letter-spacing:-.02em}
.executive-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;align-items:start}
.executive-cards>.panel{min-width:0;margin:0}
.section-head{display:flex;align-items:flex-start;gap:14px;margin-bottom:21px}
.section-head h2{margin:0 0 6px;font-size:18px}
.section-head p{margin:0;color:var(--muted);font-size:12px;line-height:1.55}
.badge-symbol{height:43px;width:43px;background:var(--primary-light);color:var(--primary);border-radius:10px;flex:none;display:grid;place-items:center}
.access-status{display:flex;align-items:flex-start;gap:10px;background:var(--surface-2);border:1px solid var(--line);padding:12px 14px;border-radius:10px;font-size:12px;font-weight:650;margin-bottom:20px}
.access-status.is-ok{color:var(--success);border-color:color-mix(in srgb,var(--success) 28%,var(--line));background:var(--success-soft)}
.executive-note{font-size:11.5px;line-height:1.65;color:var(--muted);margin:14px 0}
.executive-cards .form-stack,.panel .form-stack{display:flex;flex-direction:column;gap:13px}
.executive-cards .field small,.panel .field small{display:block;margin-top:5px;font-size:11px;color:var(--muted)}
.panel .form-stack>.btn,.panel .form-stack>.backup-action{align-self:flex-start}
.check-label{display:flex;align-items:flex-start;gap:9px;font-size:12px;color:var(--text);line-height:1.5}
.device-row{border-top:1px solid var(--line);padding:15px 0;display:flex;gap:15px;justify-content:space-between;align-items:center;flex-wrap:wrap}
.device-row strong,.integration-row strong{font-size:12px;display:block}
.device-row small,.integration-row small{font-size:10px;display:block;color:var(--muted);margin-top:5px}
.device-actions{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.device-actions input{min-width:160px}
.integration-list{display:flex;flex-direction:column;gap:0}.integration-row{display:flex;justify-content:space-between;align-items:center;gap:15px;padding:14px 4px;border-bottom:1px solid var(--line)}
.status-neutral{border:1px solid var(--line);background:var(--surface-2);color:var(--muted);font-size:10px;padding:5px 9px;border-radius:8px;white-space:nowrap}
.executive-details{margin-top:21px;border-top:1px solid var(--line);padding-top:13px}
.executive-details summary{font-weight:750;font-size:12px;cursor:pointer}
.migration-health{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 22px}
.health-indicator{display:inline-flex;align-items:center;gap:6px;border:1px solid var(--line);background:var(--surface);border-radius:7px;color:var(--muted);font-size:10px;font-weight:750;padding:7px 10px}
.health-indicator .cp-icon{width:13px;height:13px}
.health-ok{color:var(--success);background:var(--success-soft)}.health-warn{color:var(--danger)}
.executive-migrate-cards{margin-bottom:0}.executive-migrate-cards>.panel{margin-bottom:18px}
.executive-migrate-cards .backup-card p{min-height:0}.executive-migrate-cards .check-list{flex:1}
.migration-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}
.migration-steps>div{background:var(--surface-2);border:1px solid var(--line);border-radius:9px;padding:13px}
.migration-steps strong{font-size:11.5px}.migration-steps p{color:var(--muted);font-size:10px;line-height:1.65;margin:6px 0 0}
@media(max-width:1100px){.executive-cards{grid-template-columns:1fr}.migration-steps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:820px){.executive-sidebar .system-links{max-height:none}.executive-sidebar{padding-bottom:env(safe-area-inset-bottom,15px)}.executive-sidebar .sidebar-bottom{margin-top:30px}}
@media(max-width:580px){.migration-steps{grid-template-columns:1fr}.device-actions{width:100%}.device-actions input{flex:1}.executive-migrate-cards .backup-card{padding:18px}.executive-cards .panel{padding:17px}.back-link-side{display:none}}

.installer-checks{display:flex;gap:8px;flex-wrap:wrap;align-items:center;padding:12px;border:1px solid #e1e6f0;background:#f5f8fd;border-radius:10px;margin:18px 0;font-size:11px}
.installer-checks strong{width:100%;font-size:12px}.installer-checks span{display:inline-flex;align-items:center;gap:5px;border:1px solid #dce7ee;border-radius:6px;padding:5px 7px}
.installer-checks .good{color:#08775d}.installer-checks .bad{color:#b33240}.installer-checks .cp-icon{width:13px;height:13px}

/* Formulario sin JS: alta/edición accesibles aunque falle el modal */
.fallback-editor{border-color:var(--line-strong)}.fallback-form{max-width:780px}.fallback-actions{display:flex;flex-wrap:wrap;gap:12px;justify-content:flex-end;margin-top:24px}.fallback-editor .panel-heading{flex-wrap:wrap}.fallback-editor .field label{color:var(--text)}

/* Executive Tech — tokens oficiales del Centro; equivalencia sidebar de Cotizador */
@media(min-width:821px){.app-shell>.sidebar.executive-sidebar{width:264px;min-width:264px;max-width:264px}}
.executive-sidebar .brand-words small{display:none!important}
.brand-portal-symbol{background:transparent!important;box-shadow:none!important;border-radius:10px!important;overflow:hidden;padding:0!important;display:grid;place-items:center}
.brand-portal-symbol img{width:100%;height:100%;object-fit:contain;display:block}
.executive-sidebar .brand-words strong{font-size:12.5px;font-weight:750;line-height:1.35}
.executive-sidebar .side-logout{border:1px solid #2a394f!important;border-radius:7px!important;padding:10px 12px!important;color:#f4c3cc!important;background:#0e1b30!important}
.executive-sidebar .side-logout:hover,.executive-sidebar .side-logout:focus-visible{background:#253148!important}
.integration-list .integration-row:last-child{border-bottom:none}
.sso-status{display:inline-flex;align-items:center;gap:6px;font-size:11px;font-weight:750;border-radius:7px;padding:7px 9px;background:var(--surface-2);border:1px solid var(--line);color:var(--muted)}
.sso-status.is-connected{background:var(--success-soft);border-color:color-mix(in srgb,var(--success) 28%,var(--line));color:var(--success)}
.sso-status.needs-attention{color:var(--danger)}
.sso-actions{display:flex;gap:8px;flex-wrap:wrap;margin-top:12px;align-items:center}
.sso-actions .btn{font-size:12px}.sso-inline-form{display:flex;gap:8px;flex-wrap:wrap;align-items:end;margin-top:12px}
.sso-inline-form .field{min-width:190px;flex:1}
.sso-inline-form .btn{margin-bottom:0}
@media(max-width:580px){.integration-row{align-items:flex-start!important}.sso-inline-form{flex-direction:column;align-items:stretch}.sso-inline-form .field,.sso-inline-form .btn{width:100%}}

/* Estandar Maestro · misma altura de encabezado en escritorio y móvil. */
.app-main>.topbar{height:68px;min-height:68px}
@media(max-width:800px){.app-main>.topbar{height:60px;min-height:60px}}


/* Identidad oficial por sistema: preferir logo real; iniciales como respaldo automático. */
.system-logo{width:48px;height:48px;flex:0 0 48px;display:inline-flex;align-items:center;justify-content:center;position:relative;isolation:isolate;border-radius:12px;background:var(--primary-light);color:var(--primary);overflow:hidden}
.system-logo .logo-fallback{position:relative;z-index:0;font-weight:800;font-size:13px;letter-spacing:-.3px}
.system-logo .logo-image{position:absolute;inset:0;width:100%;height:100%;display:block;object-fit:contain;opacity:0;z-index:1;border-radius:inherit}
.system-logo.logo-ready .logo-image{opacity:1}
.system-logo.logo-ready{background:transparent!important}
.table-app .system-logo,.integration-identity .system-logo,.search-option .system-logo{width:42px;height:42px;flex-basis:42px;border-radius:11px}
.table-app .system-logo .logo-fallback,.integration-identity .system-logo .logo-fallback{font-size:11px}
.application-card .card-top .system-logo{width:52px;height:52px;flex-basis:52px;border-radius:13px}
/* Visión compacta: identidad, descripción y acceso; sin bloques laterales duplicados. */
.application-card{display:flex;flex-direction:column;gap:0;min-height:226px;padding:23px 24px;border:1px solid var(--line);transition:transform .18s ease,box-shadow .18s ease,border-color .18s ease}
.application-card:hover{transform:translateY(-2px);border-color:var(--line-strong);box-shadow:0 14px 34px rgba(18,30,55,.09)}
.application-card h3{margin-top:13px;margin-bottom:4px;font-size:14px;line-height:1.4}
.application-card>p{line-height:1.6;min-height:37px;margin:0 0 11px}
.system-card-meta{display:flex;align-items:center;gap:6px;margin-bottom:14px;flex-wrap:wrap}
.system-access-pill{display:inline-flex;align-items:center;gap:5px;font-size:10px;font-weight:750;color:var(--muted)}
.system-access-pill .cp-icon{width:12px;height:12px}
.system-access-pill.linked{color:var(--success)}
.application-card .card-footer{margin-top:auto}
/* Menú lateral de navegación simplificado: sin accesos directos redundantes. */
.executive-sidebar .admin-group-label{margin-top:28px}
@media(max-width:600px){.application-card{min-height:210px;padding:19px}.application-card .card-top .system-logo{width:48px;height:48px;flex-basis:48px}}
