*, *::before, *::after { box-sizing:border-box; margin:0; padding:0; }
html, body { width:100%; height:100%; font-family:'Exo 2','Roboto',-apple-system,BlinkMacSystemFont,'Segoe UI',Helvetica,Arial,sans-serif; background:#0d1a3a; overflow:hidden; }
.window { width:100vw; height:100vh; display:flex; flex-direction:column; overflow:hidden; }
.title-bar { background:#14142a; color:#9aa8c8; font-size:11px; padding:6px 12px; display:flex; align-items:center; justify-content:space-between; flex-shrink:0; user-select:none; }
.tb-left { display:flex; align-items:center; gap:8px; }
#title-text { color:#4da6ff; font-weight:700; }
.tb-controls { display:flex; gap:6px; }
.tb-btn { width:13px; height:13px; border-radius:50%; border:none; cursor:pointer; font-size:0; }
.tb-min{background:#f0c040;} .tb-max{background:#50c050;} .tb-cls{background:#e04040;}
:root{--tile-col:clamp(128px,9.6vw,168px);--surface-screen:#f0f4fa;}
.screen { display:none; flex-direction:column; flex:1; overflow-x:hidden; overflow-y:auto; min-height:0; }
.screen::-webkit-scrollbar { width:10px; height:10px; }
.screen::-webkit-scrollbar-track { background:#eef3fa; }
.screen::-webkit-scrollbar-thumb { background:#88a8c8; border-radius:6px; }
.screen::-webkit-scrollbar-thumb:hover { background:#5a90c8; }
.screen.active { display:flex; }
#screen-login { flex-direction:row; border:3px solid #1a3e8a; border-radius:16px; overflow:hidden; box-shadow:0 8px 32px rgba(10,30,80,.25); margin:8px; }
.login-left { width:40%; background:linear-gradient(160deg,#16223f 0%,#1c2f55 45%,#0d1526 100%); display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px; padding:48px 36px; position:relative; overflow:hidden; }
.login-left::before { content:""; position:absolute; inset:0; z-index:-1; opacity:.16; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='74' viewBox='0 0 64 74'%3E%3Cpath d='M32 0 L64 18.5 L64 55.5 L32 74 L0 55.5 L0 18.5 Z' fill='none' stroke='%236b8bd6' stroke-width='1.2'/%3E%3C/svg%3E"); background-size:64px 74px; }
.login-logo-strongest { width:clamp(90px,10vw,130px); height:auto; filter:drop-shadow(0 4px 12px rgba(0,0,0,.4)); }
.login-badge { width:108px; height:108px; border-radius:28px; background:linear-gradient(160deg,#2a5ec2,#12275c); display:flex; align-items:center; justify-content:center; box-shadow:0 12px 32px rgba(0,0,0,.45); border:1.5px solid rgba(255,255,255,.18); }
.login-sig { font-family:'Exo 2',sans-serif; font-size:clamp(80px,10vw,120px); font-weight:800; color:#5a90e8; line-height:0.85; letter-spacing:-4px; text-shadow:0 4px 16px rgba(0,0,0,.3); }
.login-company { font-size:clamp(13px,1.2vw,16px); font-weight:700; color:#cce0fc; text-align:center; margin-top:10px; letter-spacing:.5px; }
.login-created { font-size:10.5px; color:#4a7ec8; text-align:center; margin-top:4px; font-weight:500; }
.exit-btn-login { position:absolute; top:14px; right:14px; background:rgba(220,40,40,.85); color:#fff; border:none; border-radius:8px; padding:7px 16px; font-size:12px; font-weight:700; cursor:pointer; display:flex; align-items:center; gap:6px; transition:all .18s; box-shadow:0 2px 8px rgba(0,0,0,.2); }
.exit-btn-login:hover { background:#d82020; transform:translateY(-1px); box-shadow:0 4px 12px rgba(0,0,0,.3); }
.login-right { flex:1; background:linear-gradient(160deg,#dce8f8 0%,#f0f6ff 50%,#e4f0fe 100%); display:flex; flex-direction:column; align-items:center; justify-content:center; padding:clamp(24px,4vw,60px) clamp(32px,6vw,80px); gap:20px; position:relative; }
.login-deco-squares { position:absolute; display:grid; gap:6px; }
.login-deco-top { top:18px; right:18px; grid-template-columns:1fr; }
.login-deco-bottom { bottom:18px; right:18px; grid-template-columns:1fr 1fr 1fr 1fr; }
.login-deco-sq { width:28px; height:28px; border-radius:5px; box-shadow:0 2px 6px rgba(0,0,0,.15); }
.login-title { font-family:'Exo 2',sans-serif; font-size:clamp(24px,3vw,38px); font-weight:800; color:#091848; letter-spacing:-.5px; }
.form-group { width:100%; max-width:420px; display:flex; flex-direction:column; gap:6px; }
.form-label { font-size:clamp(13px,1.1vw,15px); font-weight:700; color:#12285a; }
.input-wrap { position:relative; display:flex; align-items:center; }
.input-wrap input { width:100%; height:46px; border:1.5px solid #a4c4e2; border-radius:10px; padding:0 44px 0 16px; font-size:13.5px; background:#fff; color:#091848; outline:none; box-shadow:0 2px 6px rgba(10,30,80,.04); transition:border-color .18s,box-shadow .18s; }
.input-wrap input:hover { border-color:#4a82d0; }
.input-wrap input:focus { border-color:#1848a0; box-shadow:0 0 0 3.5px rgba(24,72,160,.18); }
.eye-btn { position:absolute; right:14px; background:none; border:none; cursor:pointer; font-size:18px; color:#3b6cb8; padding:0; transition:color .15s; }
.eye-btn:hover { color:#1848a0; }
.login-btns { width:100%; max-width:420px; display:flex; flex-direction:column; gap:12px; }
.login-btn { width:100%; height:48px; border:none; border-radius:999px; font-family:'Exo 2',sans-serif; font-size:clamp(14px,1.2vw,17px); font-weight:700; cursor:pointer; display:flex; align-items:center; justify-content:center; gap:8px; transition:opacity .18s cubic-bezier(.2,.8,.2,1),transform .18s cubic-bezier(.2,.8,.2,1),box-shadow .18s ease; box-shadow:0 4px 14px rgba(10,30,80,.22); }
.login-btn:hover { opacity:.94; transform:translateY(-2px); box-shadow:0 8px 22px rgba(10,30,80,.32); }
.login-btn:active { transform:translateY(0); box-shadow:0 2px 6px rgba(10,30,80,.2); }
.btn-iniciar{background:linear-gradient(135deg,#0c2e70,#1648a8);color:#fff;} .btn-registrar{background:linear-gradient(135deg,#1848aa,#2860d4);color:#fff;}
.login-error { font-size:12px; min-height:16px; text-align:center; font-weight:600; max-width:420px; color:#c02020; }
.login-version { font-size:12px; color:#0c4890; font-weight:700; }
.login-footer { font-size:10.5px; color:#4068b0; text-align:center; font-weight:500; }
.app-header { background:linear-gradient(180deg,#0c2868,#14388a); display:flex; align-items:stretch; border-bottom:3px solid #1c4ec0; flex-shrink:0; }
.header-back-btn { background:#183ea0; color:#fff; border:none; font-family:'Exo 2',sans-serif; font-size:clamp(14px,1.4vw,20px); font-weight:700; padding:14px clamp(16px,2vw,28px); cursor:pointer; letter-spacing:1px; transition:background .15s,transform .1s; border-right:2px solid #1c4ec0; }
.header-back-btn:hover { background:#1e54c8; }
.header-title { flex:1; display:flex; align-items:center; justify-content:center; font-family:'Exo 2',sans-serif; font-size:clamp(20px,2.6vw,36px); font-weight:800; color:#fff; letter-spacing:clamp(2px,.5vw,6px); text-transform:uppercase; text-shadow:0 2px 10px rgba(0,0,0,.4); }
#screen-menu .header-title { color:#4da6ff; }
.exit-btn-header { background:rgba(200,30,30,.85); color:#fff; border:none; font-family:'Exo 2',sans-serif; font-size:clamp(12px,1vw,14px); font-weight:700; padding:0 clamp(14px,2vw,24px); cursor:pointer; display:flex; align-items:center; gap:6px; transition:background .15s; border-left:2px solid #1c4ec0; }
.exit-btn-header:hover { background:rgba(220,20,20,.95); }
.save-btn-header { background:rgba(30,150,70,.9); color:#fff; border:none; font-family:'Exo 2',sans-serif; font-size:clamp(12px,1vw,14px); font-weight:700; padding:0 clamp(14px,2vw,24px); cursor:pointer; display:flex; align-items:center; gap:6px; transition:background .15s; border-left:2px solid #1c4ec0; }
.save-btn-header:hover { background:rgba(20,140,60,.95); }
.save-btn-header:disabled { opacity:.6; cursor:wait; }
.status-bar { background:linear-gradient(180deg,#0c2868,#14388a); display:flex; align-items:center; justify-content:space-between; padding:10px 28px; border-top:2px solid #1c4ec0; flex-shrink:0; }
.status-item { display:flex; align-items:center; gap:6px; color:#d0e8ff; font-size:clamp(12px,1vw,15px); font-weight:500; }
.status-version { color:#d0e8ff; font-size:clamp(11px,.9vw,14px); font-weight:600; }
.three-col { flex:1; display:grid; grid-template-columns:clamp(220px,22vw,340px) 1fr clamp(220px,22vw,340px); gap:clamp(10px,1.2vw,20px); padding:clamp(12px,1.5vw,22px) clamp(14px,1.8vw,26px); overflow:hidden; }
.panel { background:linear-gradient(160deg,#c4dcf2,#a8c6e6); border:1.5px solid #88a8c8; border-radius:12px; padding:clamp(10px,1.2vw,18px) clamp(10px,1vw,16px); display:flex; flex-direction:column; gap:clamp(7px,.8vw,12px); box-shadow:0 4px 14px rgba(10,30,80,.1); }
.center-panel { background:linear-gradient(160deg,#c4dcf2,#a8c6e6); border:1.5px solid #88a8c8; border-radius:12px; display:flex; flex-direction:column; align-items:center; justify-content:flex-end; padding:clamp(12px,1.5vw,22px); box-shadow:0 4px 14px rgba(10,30,80,.1); }
.center-brand { font-size:clamp(12px,1vw,15px); font-weight:600; color:#244878; text-align:center; padding-bottom:12px; line-height:1.6; }
.mod-btn { display:flex; align-items:center; gap:clamp(8px,.8vw,14px); background:linear-gradient(180deg,#1e4aa0,#143278); color:#fff; border:none; border-radius:8px; padding:clamp(10px,1.1vw,16px) clamp(12px,1.2vw,20px); font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif; font-size:clamp(13px,1.1vw,18px); font-weight:600; cursor:pointer; width:100%; text-align:left; transition:background .15s,transform .1s,box-shadow .15s; box-shadow:0 3px 8px rgba(0,0,0,.22); }
.mod-btn:hover { background:linear-gradient(180deg,#2558c8,#1a3e98); transform:translateY(-1px); box-shadow:0 5px 14px rgba(0,0,0,.3); }
.mod-btn:active { transform:translateY(0); }

/* ═══ Submenú dividido: tiles a la izquierda (3-3-3), bloque de contenido a la derecha (Almacén y reutilizable) ═══ */
.submenu-split{flex:1;display:flex;overflow:hidden;background:var(--surface-screen);}
.submenu-tiles{flex:0 0 50%;display:grid;grid-template-columns:repeat(auto-fit,var(--tile-col));grid-auto-rows:min-content;align-content:center;justify-content:center;gap:clamp(12px,1.4vw,22px);padding:clamp(20px,2.6vw,40px);box-sizing:border-box;}
#screen-unidades-hub .submenu-tiles{grid-template-columns:repeat(auto-fit,var(--tile-col));overflow-y:auto;max-height:100%;align-content:start;}
#screen-unidades-hub .submenu-tiles::-webkit-scrollbar{width:12px;}
#screen-unidades-hub .submenu-tiles::-webkit-scrollbar-track{background:#dce5f2;border-radius:8px;}
#screen-unidades-hub .submenu-tiles::-webkit-scrollbar-thumb{background:#4a7ab8;border-radius:8px;border:2px solid #dce5f2;}
#screen-unidades-hub .submenu-tiles::-webkit-scrollbar-thumb:hover{background:#3a6aa8;}
.submenu-tiles .mod-tile{width:100%;}
.submenu-content-block{flex:0 0 50%;background:var(--surface-screen);display:flex;align-items:center;justify-content:center;overflow:auto;}
.submenu-content-placeholder{color:#9ab0cc;font-size:14px;font-weight:600;letter-spacing:.02em;}
.mod-icon { font-size:clamp(20px,1.8vw,28px); flex-shrink:0; }
#screen-salida { background:var(--surface-screen); }
.salida-subheader { background:linear-gradient(180deg,#0c2868,#14388a); display:flex; align-items:center; justify-content:space-between; padding:10px 20px; flex-shrink:0; border-bottom:2px solid #1c4ec0; flex-wrap:wrap; gap:8px; }
.salida-cajero { display:flex; align-items:center; gap:8px; color:#d0e8ff; font-size:14px; font-weight:600; }
.salida-meta { display:flex; align-items:center; gap:18px; color:#d0e8ff; font-size:13px; font-weight:600; }
.salida-meta-item { display:flex; align-items:center; gap:6px; }
.salida-form { background:#b4cee8; border:1.5px solid #88a8c8; margin:12px 16px 0; border-radius:8px; padding:14px 18px; flex-shrink:0; }
.salida-row { display:flex; align-items:center; gap:16px; flex-wrap:wrap; margin-bottom:10px; }
.salida-row:last-child { margin-bottom:0; }
.sf-label { font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif; font-size:14px; font-weight:700; color:#0a1e50; white-space:nowrap; min-width:80px; }
.sf-select,.sf-input { height:36px; border:1.5px solid #7098c0; border-radius:6px; background:#fff; color:#0a1e50; font-size:13px; padding:0 10px; outline:none; font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif; }
.sf-select { min-width:260px; max-width:320px; }
.sf-input  { width:110px; }
.sf-stock  { font-size:13px; font-weight:600; color:#0a1e50; background:#d8ecff; border-radius:6px; padding:4px 12px; border:1px solid #7098c0; }
.action-btns { display:flex; gap:10px; margin-left:auto; }
.act-btn { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; width:78px; height:72px; border:none; border-radius:12px; font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif; font-size:11px; font-weight:700; cursor:pointer; background:#fff; color:#0a1e50; box-shadow:0 2px 8px rgba(0,0,0,.18); transition:box-shadow .18s cubic-bezier(.2,.8,.2,1),transform .18s cubic-bezier(.2,.8,.2,1); border:1.5px solid #9ab8d8; }
.act-btn:hover { box-shadow:0 6px 16px rgba(0,0,0,.28); transform:translateY(-2px); }
.act-btn:active { transform:translateY(0); }
.act-icon { font-size:27px; }
.act-eliminar { border-color:#c08080; }
.act-editar   { border-color:#c0c080; }
.act-limpiar  { border-color:#80a8c8; }
.salida-table-wrap { flex:1; margin:10px 16px; overflow-y:auto; background:#fff; border:1.5px solid #88a8c8; border-radius:8px; }
.salida-table { width:100%; border-collapse:collapse; font-size:13px; }
.salida-table thead { background:#1a3e8a; color:#fff; position:sticky; top:0; }
.salida-table th { padding:10px 14px; text-align:left; font-family:'Exo 2',sans-serif; font-weight:700; font-size:12px; letter-spacing:.3px; }
.salida-table td { padding:9px 14px; border-bottom:1px solid #d0e0f0; color:#000; font-weight:700; }
.salida-table tbody tr:hover { background:#eef5fc; }
.col-n{width:50px;} .col-fac{width:90px;} .col-precio,.col-cant,.col-total{width:110px;text-align:right;}
.salida-table td.col-precio,.salida-table td.col-cant,.salida-table td.col-total{text-align:right;}
.salida-footer { background:#e8f0fa; border-top:2px solid #88a8c8; display:flex; align-items:center; gap:12px; padding:10px 16px; flex-shrink:0; flex-wrap:wrap; }
.sf-footer-btn { display:flex; align-items:center; gap:8px; height:46px; padding:0 22px; border:none; border-radius:10px; font-family:'Exo 2',sans-serif; font-size:14px; font-weight:700; cursor:pointer; transition:opacity .18s cubic-bezier(.2,.8,.2,1),transform .18s cubic-bezier(.2,.8,.2,1),box-shadow .18s ease; box-shadow:0 2px 8px rgba(0,0,0,.18); }
.sf-footer-btn:hover { opacity:.92; transform:translateY(-2px); box-shadow:0 6px 16px rgba(0,0,0,.26); }
.sf-footer-btn:active { transform:translateY(0); }
.sfb-pagar{background:#1a3e8a;color:#fff;} .sfb-informe{background:#fff;color:#0a1e50;border:2px solid #1a3e8a;} .sfb-anular{background:#1a3e8a;color:#fff;}
.sfb-total { background:#e8a010; color:#fff; margin-left:auto; font-size:16px; padding:0 28px; border-radius:999px; }
#screen-inventario { background:var(--surface-screen); }
.inv-toolbar { background:#b4cee8; border:1.5px solid #88a8c8; margin:12px 16px 0; border-radius:8px; padding:12px 18px; display:flex; align-items:center; gap:14px; flex-shrink:0; flex-wrap:wrap; }
.inv-action-btn { display:flex; align-items:center; gap:8px; height:40px; padding:0 18px; border:none; border-radius:10px; font-family:'Exo 2',sans-serif; font-size:13px; font-weight:700; cursor:pointer; transition:opacity .18s cubic-bezier(.2,.8,.2,1),transform .18s cubic-bezier(.2,.8,.2,1),box-shadow .18s ease; box-shadow:0 2px 6px rgba(0,0,0,.18); }
.inv-action-btn:hover { opacity:.92; transform:translateY(-2px); box-shadow:0 6px 14px rgba(0,0,0,.24); }
.inv-action-btn:active { transform:translateY(0); }
.iab-registrar{background:#1a3e8a;color:#fff;} .iab-editar{background:#1a3e8a;color:#fff;} .iab-eliminar{background:#c03020;color:#fff;}
.inv-search-wrap { margin-left:auto; display:flex; align-items:center; gap:8px; }
#screen-alm-tabla-entradas .inv-search-wrap { margin-left:0; }
.inv-search { height:36px; border:1.5px solid #7098c0; border-radius:6px; padding:0 12px; font-size:12px; width:220px; outline:none; background:#fff; color:#0a1e50; }
.inv-search-btn { height:36px; width:40px; border:1.5px solid #7098c0; border-radius:6px; background:#fff; cursor:pointer; font-size:17px; display:flex; align-items:center; justify-content:center; transition:background .15s; }
.inv-search-btn:hover { background:#d0e8ff; }
.inv-meta { display:flex; align-items:center; gap:18px; color:#0a1e50; font-size:13px; font-weight:600; margin-left:16px; }
.inv-table-wrap { flex:1; margin:10px 16px; overflow-y:auto; overflow-x:auto; background:#fff; border:1.5px solid #88a8c8; border-radius:8px; }
.inv-table { width:100%; min-width:980px; border-collapse:collapse; font-size:12.5px; table-layout:fixed; }
.inv-table thead { background:#1a3e8a; color:#fff; position:sticky; top:0; z-index:2; }
.inv-table th { padding:12px 16px; text-align:center; font-family:'Exo 2',sans-serif; font-weight:700; font-size:12px; letter-spacing:.3px; border-right:1px solid #2858b0; white-space:nowrap; }
.inv-table th:last-child { border-right:none; }
.inv-table th[data-sort]{cursor:pointer;user-select:none;transition:background .15s; }
.inv-table th[data-sort]:hover{background:#2a50a8; }
.inv-table td { padding:10px 16px; border-bottom:1px solid #d0e0f0; color:#000; text-align:center; font-weight:700; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
/* Tabla Salidas: permitir wrap en columnas de texto */
#alm-ts-table td:nth-child(2), /* Personal */
#alm-ts-table td:nth-child(3), /* Empresa */
#alm-ts-table td:nth-child(4), /* Producto */
#alm-ts-table td:nth-child(6), /* Unidad Móvil */
#alm-ts-table td:nth-child(9), /* Despachado */
#alm-ts-table td:nth-child(10), /* Servicio/Obra */
#alm-ts-table td:nth-child(11) /* Área de trabajo */
{ text-align:left; white-space:normal; word-break:break-word; }
.inv-table tbody tr:hover { background:#eef5fc; cursor:pointer; }
.inv-table tbody tr.selected { background:#d6eaf8; color:#1a1a1a; font-weight:700; }
.inv-table tbody tr.selected td { color:#1a1a1a; }
.inv-footer { background:#e8f0fa; border-top:2px solid #88a8c8; display:flex; align-items:center; justify-content:space-between; padding:10px 16px; flex-shrink:0; }
.inv-export-btn { display:flex; align-items:center; gap:8px; height:42px; padding:0 20px; background:#1a7a30; color:#fff; border:none; border-radius:10px; font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif; font-size:13px; font-weight:700; cursor:pointer; transition:opacity .18s cubic-bezier(.2,.8,.2,1),transform .18s cubic-bezier(.2,.8,.2,1),box-shadow .18s ease; box-shadow:0 2px 6px rgba(0,0,0,.18); }
.inv-export-btn:hover { opacity:.92; transform:translateY(-2px); box-shadow:0 6px 14px rgba(0,0,0,.24); }
.inv-export-btn:active { transform:translateY(0); }
.inv-paginacion { display:flex; align-items:center; gap:10px; color:#0a1e50; font-size:13px; font-weight:600; }
.inv-pag-btn { width:34px; height:34px; border:2px solid #1a3e8a; border-radius:8px; background:#1a3e8a; color:#fff; font-size:17px; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .15s,transform .15s; }
.inv-pag-btn:hover { background:#2558c8; transform:translateY(-1px); }
.inv-pag-btn:disabled { background:#88a8c8; border-color:#88a8c8; cursor:default; }
.vr-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,.6); z-index:200; align-items:center; justify-content:center; }
.vr-overlay.open { display:flex; }
.vr-box { background:#f0f4fa; border:2px solid #88a8c8; border-radius:10px; width:min(900px,95vw); max-height:88vh; display:flex; flex-direction:column; box-shadow:0 20px 60px rgba(0,0,0,.5); overflow:hidden; }
.vr-header { background:linear-gradient(180deg,#0c2868,#14388a); display:flex; align-items:center; justify-content:space-between; padding:0 20px; flex-shrink:0; }
.vr-title { font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif; font-size:23px; font-weight:800; color:#fff; padding:18px 0; letter-spacing:2px; flex:1; text-align:center; }
.vr-close { background:rgba(200,30,30,.85); color:#fff; border:none; font-size:19px; font-weight:700; width:36px; height:36px; border-radius:6px; cursor:pointer; transition:background .15s; }
.vr-close:hover { background:#c02020; }
.vr-filters { background:#1a3e8a; display:flex; align-items:center; gap:14px; padding:12px 20px; flex-shrink:0; flex-wrap:wrap; }
.vr-filter-label { color:#d0e8ff; font-size:13px; font-weight:600; }
.vr-filter-input { height:34px; border:1.5px solid #88a8e8; border-radius:6px; padding:0 12px; font-size:12px; background:#fff; color:#0a1e50; outline:none; width:180px; }
.vr-filter-btn { display:flex; align-items:center; gap:6px; height:34px; padding:0 18px; background:#e03030; color:#fff; border:none; border-radius:6px; font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif; font-size:12px; font-weight:700; cursor:pointer; transition:opacity .15s; }
.vr-filter-btn:hover { opacity:.88; }
.vr-table-wrap { flex:1; overflow-y:auto; background:#fff; }
.vr-table { width:100%; border-collapse:collapse; font-size:12px; }
.vr-table thead { background:#e8f0fa; position:sticky; top:0; }
.vr-table th { padding:9px 14px; text-align:center; font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif; font-weight:700; color:#000; border-bottom:2px solid #b8d0e8; }
.vr-table td { padding:8px 14px; border-bottom:1px solid #d8e8f8; color:#000; font-weight:700; text-align:center; }
.vr-table tbody tr:hover { background:#eef5fc; cursor:pointer; }
.vr-table tbody tr.vr-selected { background:#d6eaf8; color:#1a1a1a; font-weight:700; }
.vr-table tbody tr.vr-selected td { color:#1a1a1a; }
.vr-footer { background:#e8f0fa; border-top:2px solid #b8d0e8; display:flex; align-items:center; justify-content:space-between; padding:12px 20px; flex-shrink:0; flex-wrap:wrap; gap:10px; }
.vr-nav { display:flex; gap:10px; }
.vr-nav-btn { display:flex; align-items:center; gap:6px; height:40px; padding:0 18px; background:#1a3e8a; color:#fff; border:none; border-radius:8px; font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif; font-size:13px; font-weight:700; cursor:pointer; transition:opacity .15s; }
.vr-nav-btn:hover { opacity:.88; }
.vr-nav-btn:disabled { background:#88a8c8; cursor:default; }
.vr-export-btns { display:flex; gap:10px; }
.vr-export-btn { display:flex; align-items:center; gap:6px; height:40px; padding:0 18px; background:#1a7a30; color:#fff; border:none; border-radius:8px; font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif; font-size:12px; font-weight:700; cursor:pointer; transition:opacity .15s; }
.vr-export-btn:hover { opacity:.88; }
/* ═══ LABORATORIO ═══ */
#screen-laboratorio { background:var(--surface-screen); }
.lab-grid { flex:1; display:grid; grid-template-columns:1fr 1fr 1fr; grid-template-rows:1fr 1fr; gap:20px; padding:24px; overflow:hidden; }
.lab-card { background:linear-gradient(160deg,#1f4fae,#0f2c72); border:1.5px solid #2a5ec2; border-radius:16px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:14px; cursor:pointer; box-shadow:0 8px 20px rgba(5,15,40,.45); transition:transform .22s cubic-bezier(.2,.8,.2,1),box-shadow .22s cubic-bezier(.2,.8,.2,1),background .22s ease; }
.lab-card:hover { background:linear-gradient(160deg,#2a5ec2,#173a90); transform:translateY(-5px) scale(1.02); box-shadow:0 14px 28px rgba(10,30,80,.5),0 0 0 2px #4a7ec8; }
.lab-card:active { transform:translateY(-1px) scale(1.005); }
.lab-card-icon { font-size:clamp(40px,5vw,60px); }
.lab-card-title { font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif; font-size:clamp(14px,1.6vw,20px); font-weight:700; color:#fff; text-align:center; padding:0 16px; }
.lab-card-sub { font-size:11px; color:#88b8e8; text-align:center; padding:0 16px; }
/* === NUEVO: card de seguimiento === */
.lab-card.seguimiento { background:linear-gradient(135deg,#2a0c60,#4a1a8a); border-color:#7a3ab8; }
#screen-lab-calibracion,#screen-lab-inventario,#screen-lab-mantenimiento,#screen-lab-ensayos,#screen-lab-seguimiento { background:var(--surface-screen); }
.calib-table-wrap { flex:1; overflow:auto; margin:10px 14px; background:#fff; border:1.5px solid #88a8c8; border-radius:8px; min-height:0; }
/* T8: la tabla crece dentro del módulo y su barra de scroll horizontal queda al pie del módulo */
#calib-print-area { flex:1; display:flex; flex-direction:column; min-height:0; }
#calib-print-area > *:not(.calib-table-wrap) { flex-shrink:0; }
.calib-table { border-collapse:collapse; font-size:11px; width:100%; table-layout:auto; }
.calib-table thead tr:first-child th { background:#1a3e8a; color:#fff; padding:10px 12px; font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif; font-weight:700; font-size:11px; text-align:center; border:1px solid #2a5ab8; white-space:normal; }
.calib-table thead tr:nth-child(2) th { background:#2a50a0; color:#e8f0ff; padding:8px 10px; font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif; font-weight:600; font-size:10px; text-align:center; border:1px solid #3a60b0; }
.calib-table tbody td { padding:10px 12px; border:1px solid #d0e0f0; color:#000; font-weight:600; vertical-align:middle; line-height:1.4; }
.calib-table tbody td:nth-child(1) { text-align:center; width:50px; }
.calib-table tbody td:nth-child(2) { text-align:center; width:80px; }
.calib-table tbody td:nth-child(3) { text-align:center; font-weight:700; width:100px; }
.calib-table tbody td:nth-child(4) { text-align:left; width:220px; white-space:normal; }
.calib-table tbody td:nth-child(5) { text-align:left; width:150px; white-space:normal; }
.calib-table tbody td:nth-child(6) { text-align:center; width:110px; }
.calib-table tbody td:nth-child(7) { text-align:center; width:90px; }
.calib-table tbody td:nth-child(8) { text-align:left; width:180px; white-space:normal; }
.calib-table tbody td:nth-child(9) { text-align:center; white-space:nowrap; width:auto; }
.calib-table tbody tr:nth-child(even) { background:#f0f6fc; }
.calib-table tbody tr:hover { background:#d8eeff; cursor:pointer; }
.calib-table tbody tr.calib-sel { background:#d6eaf8; color:#1a1a1a; font-weight:700; }
.calib-table tbody tr.calib-sel td { color:#1a1a1a; }
.status-op { color:#1a7a30; font-weight:700; }
.calib-toolbar { background:#b4cee8; border:1.5px solid #88a8c8; margin:10px 14px 0; border-radius:8px; padding:10px 16px; display:flex; align-items:center; gap:12px; flex-shrink:0; flex-wrap:wrap; }
.calib-search { height:34px; border:1.5px solid #7098c0; border-radius:6px; padding:0 12px; font-size:12px; width:200px; outline:none; background:#fff; color:#0a1e50; }
.calib-btn { display:flex; align-items:center; gap:6px; height:34px; padding:0 16px; border:none; border-radius:6px; font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif; font-size:12px; font-weight:700; cursor:pointer; transition:opacity .15s; }
.calib-btn:hover { opacity:.88; }
/* T8 — Panel de ítems (ocultar/mostrar filas de calibración). Solo visual. */
.calib-chip-ocultas { background:#e07818; color:#fff; font-size:11px; font-weight:800; padding:5px 12px; border-radius:14px; cursor:pointer; border:1px solid #b85c08; }
.calib-chip-ocultas:hover { background:#c86610; }
.calib-items-panel { margin:8px 14px 0; background:#fff; border:1.5px solid #88a8c8; border-radius:8px; padding:10px 14px; flex-shrink:0; }
.calib-items-head { display:flex; align-items:center; justify-content:space-between; gap:10px; font-size:12px; color:#0a1e50; margin-bottom:8px; }
.calib-items-tools { display:flex; align-items:center; gap:8px; flex-wrap:wrap; margin-bottom:8px; }
.calib-items-buscar { width:240px; }
.calib-items-contador { margin-left:auto; font-size:12px; font-weight:700; color:#0a1e50; }
.calib-items-lista { max-height:230px; overflow:auto; border:1px solid #c8d8ea; border-radius:6px; padding:6px 8px; background:#f7fafd; }
.calib-items-item { display:flex; align-items:center; gap:8px; font-size:11.5px; color:#0a1e50; padding:3px 4px; border-bottom:1px solid #e6eef7; }
.calib-items-item:last-child { border-bottom:none; }
.calib-items-item input { width:14px; height:14px; cursor:pointer; }
.calib-items-item .ci-n { font-weight:800; min-width:34px; }
.calib-items-item .ci-cod { font-weight:700; color:#1a5e9a; min-width:110px; }
.calib-items-item.ci-oculto { opacity:.55; text-decoration:line-through; }
.calib-items-nota { margin-top:6px; font-size:10.5px; color:#6688aa; font-style:italic; }
.calib-fila-oculta { display:none !important; }
.cb-export { background:#1a7a30; color:#fff; }
.cb-add    { background:#1a3e8a; color:#fff; }
.cb-edit   { background:#d07010; color:#fff; }

/* Botones de acciones y estado - Requerimientos Calibración */
.reqcal-acc-btn {
  padding: 4px 8px;
  color: #fff;
  border: none;
  border-radius: 4px;
  font-size: 11px;
  cursor: pointer;
  white-space: nowrap;
}
.reqcal-acc-btn:hover { opacity: .85; }
.reqcal-estado-btn {
  padding: 4px 10px;
  color: #fff;
  border: none;
  border-radius: 4px;
  font-size: 10px;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
  letter-spacing: .2px;
}
.reqcal-estado-btn:hover { opacity: .85; }
.reqcal-env  { background: #1a5e9a; }
.reqcal-seg  { background: #7a1a9a; }
.reqcal-ate  { background: #1a7a30; }

/* Header menu dropdown */
.header-menu { position:relative; }
.header-menu-dropdown {
  display:none;
  position:absolute;
  top:100%;
  right:0;
  background:#fff;
  border:1px solid #c0d4e8;
  border-radius:6px;
  box-shadow:0 4px 12px rgba(0,0,0,0.15);
  min-width:180px;
  z-index:1000;
  margin-top:4px;
  overflow:hidden;
}
.header-menu-item {
  display:block;
  width:100%;
  text-align:left;
  padding:10px 14px;
  border:none;
  background:#fff;
  color:#0a1e50;
  font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  font-size:12px;
  font-weight:600;
  cursor:pointer;
  border-bottom:1px solid #eef3f8;
}
.header-menu-item:last-child { border-bottom:none; }
.header-menu-item:hover { background:#f0f6fc; color:#1a3e8a; }

.app-header { position:relative; }
.cfg-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,.6); z-index:150; align-items:center; justify-content:center; }
.cfg-overlay.open { display:flex; }
#screen-mantenimiento { background:var(--surface-screen); }
.mant-grid { flex:1; display:grid; grid-template-columns:repeat(3,1fr); grid-template-rows:repeat(3,1fr); gap:16px; padding:18px; overflow:hidden; }
.mant-card { background:linear-gradient(160deg,#1f4fae,#0f2c72); border:1.5px solid #2a5ec2; border-radius:16px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:10px; cursor:pointer; box-shadow:0 8px 20px rgba(5,15,40,.45); transition:transform .22s cubic-bezier(.2,.8,.2,1),box-shadow .22s cubic-bezier(.2,.8,.2,1),background .22s ease; }
.mant-card:hover { background:linear-gradient(160deg,#2a5ec2,#173a90); transform:translateY(-5px) scale(1.02); box-shadow:0 14px 28px rgba(10,30,80,.5),0 0 0 2px #4a7ec8; }
.mant-card:active { transform:translateY(-1px) scale(1.005); }
.mant-card-icon { font-size:clamp(36px,4vw,52px); }
.mant-card-title { font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif; font-size:clamp(12px,1.2vw,15px); font-weight:700; color:#fff; text-align:center; padding:0 10px; }
.mant-screen { background:var(--surface-screen); }
#screen-seguridad { background:var(--surface-screen); }
.seg-grid { flex:0 0 50%; display:grid; grid-template-columns:repeat(auto-fit,var(--tile-col)); justify-content:center; align-content:center; grid-auto-rows:min-content; gap:16px; padding:20px; overflow-y:auto; box-sizing:border-box; }
.seg-card { background:linear-gradient(160deg,#1f4fae,#0f2c72); border:1.5px solid #2a5ec2; border-radius:16px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; cursor:pointer; box-shadow:0 8px 20px rgba(5,15,40,.45); transition:transform .22s cubic-bezier(.2,.8,.2,1),box-shadow .22s cubic-bezier(.2,.8,.2,1),background .22s ease; }
.seg-card:hover { background:linear-gradient(160deg,#2a5ec2,#173a90); transform:translateY(-5px) scale(1.02); box-shadow:0 14px 28px rgba(10,30,80,.5),0 0 0 2px #4a7ec8; }
.seg-card:active { transform:translateY(-1px) scale(1.005); }
.seg-card-icon { font-size:clamp(40px,5vw,60px); }
.seg-card-title { font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif; font-size:clamp(14px,1.4vw,18px); font-weight:700; color:#fff; text-align:center; padding:0 12px; }
.seg-card-sub{font-size:11px;color:#c9d8f5;text-align:center;padding:0 14px;line-height:1.4;margin-top:-6px;}
.seg-card-pct{font-size:20px;font-weight:800;color:#fff;background:rgba(255,255,255,.14);border-radius:20px;padding:2px 14px;margin-top:2px;}
.pg-tab-btn{border:1.5px solid #b0c8e8!important;background:#fff!important;color:#0a1e50!important;font-weight:600!important;transition:all .15s!important;}
.pg-tab-btn:hover{background:#e8f0fa!important;border-color:#0a1e50!important;}
.pg-tab-btn.active{background:#0a1e50!important;color:#fff!important;border-color:#0a1e50!important;box-shadow:0 2px 8px rgba(10,30,80,.3)!important;}
.pg-tab-panel{min-height:0;}
/* T11 — Membrete formal de los sub-módulos de Programas SST.
   Barra de selección (no se imprime) + membrete con la empresa del grupo,
   el nombre del programa y el bloque de control documentario. */
.pg-membrete-bar{display:flex;align-items:center;gap:8px;flex-wrap:wrap;padding:6px 14px;background:#fffdf0;border-bottom:1px solid #e8dfb0;}
.pg-membrete-bar-lbl{font-size:12px;font-weight:800;color:#1a7a3c;}
.pg-membrete-select{height:30px;min-width:260px;max-width:340px;border:1.5px solid #90b8d8;border-radius:6px;padding:0 8px;font-size:12px;font-weight:700;color:#0a1e50;background:#fff;}
.pg-membrete-anio{height:30px;width:82px;border:1.5px solid #90b8d8;border-radius:6px;padding:0 8px;font-size:12px;font-weight:700;color:#0a1e50;background:#fff;}
.pg-membrete{display:grid;grid-template-columns:minmax(220px,1.4fr) minmax(200px,1.6fr) minmax(180px,auto);gap:12px;align-items:stretch;
  padding:8px 14px;background:#fff;border-bottom:2px solid #0a1e50;}
.pg-membrete:empty{display:none;}
.pg-mb-emp{display:flex;flex-direction:column;justify-content:center;border-right:1px solid #c0d4e8;padding-right:12px;}
.pg-mb-razon{font-size:14px;font-weight:800;color:#0a1e50;line-height:1.25;text-transform:uppercase;}
.pg-mb-sub{font-size:10.5px;color:#556a88;font-weight:700;margin-top:2px;}
.pg-mb-rep{font-size:10.5px;color:#556a88;margin-top:2px;}
.pg-mb-centro{display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;border-right:1px solid #c0d4e8;padding-right:12px;}
.pg-mb-doc{font-size:13px;font-weight:800;color:#0a1e50;text-transform:uppercase;line-height:1.25;}
.pg-mb-anio{font-size:11px;font-weight:700;color:#33475b;margin-top:3px;}
.pg-mb-datos{display:grid;grid-template-columns:repeat(2,minmax(84px,1fr));gap:4px;align-content:center;}
.pg-mb-dato{padding:3px 7px;background:#f0f4fa;border:1px solid #c0d4e8;border-radius:4px;}
.pg-mb-dato-k{font-size:9px;color:#556a88;font-weight:700;letter-spacing:.3px;}
.pg-mb-dato-v{font-size:12px;font-weight:800;color:#0a1e50;}
.pg-mb-aviso{grid-column:1/-1;text-align:center;color:#a02020;font-size:11.5px;font-weight:700;}
@media print{.pg-membrete-bar{display:none!important;}}
@media (max-width:900px){.pg-membrete{grid-template-columns:1fr;}
  .pg-mb-emp,.pg-mb-centro{border-right:none;padding-right:0;}}
/* Índice de Programas SST: los tiles usan emoji (no tienen logo propio), por eso
   se les devuelve el fondo del tile y se muestra la etiqueta que .mod-tile-3d oculta. */
#screen-sst-programas .submenu-tiles .mod-tile-3d{background:linear-gradient(160deg,#1f4fae,#0f2c72);border:1.5px solid #2a5ec2;padding:10px 6px;}
#screen-sst-programas .submenu-tiles .mod-tile-3d:hover{background:linear-gradient(160deg,#2a5ec2,#173a90);}
#screen-sst-programas .submenu-tiles .mod-tile-3d .mod-tile-label{display:block;}
.pg-toolbar{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:10px;padding:12px 16px;background:linear-gradient(150deg,#17398c,#0c2868);border-bottom:1.5px solid #0a1e50;}
.pg-table-wrap{flex:1;overflow:auto;background:#fff;}
.pg-table{width:100%;border-collapse:collapse;font-size:10.5px;min-width:1500px;}
.pg-table thead th{background:linear-gradient(150deg,#17398c,#0c2868);color:#fff;position:sticky;top:0;z-index:2;padding:6px 4px;text-align:center;white-space:nowrap;}
.pg-table td{border:1px solid #e0e6ef;padding:3px 4px;text-align:center;vertical-align:middle;}
.pg-table td.pg-txt{text-align:left;min-width:170px;}
.pg-mes-cell{display:flex;flex-direction:column;gap:1px;align-items:center;padding:2px;}
.pg-mes-cell label{display:flex;align-items:center;gap:2px;font-size:9px;color:#5a6a80;}
.pg-mes-cell input{width:11px;height:11px;}
.pg-avance-bar{width:60px;height:8px;background:#e2e8f2;border-radius:5px;overflow:hidden;display:inline-block;vertical-align:middle;margin-right:4px;}
.pg-avance-fill{height:100%;border-radius:5px;}
.pg-input-mini{width:100%;border:1px solid #cdd8e6;border-radius:4px;padding:2px 4px;font-size:10.5px;}
.seg-screen { background:var(--surface-screen); }
.seg-toolbar { background:#b4cee8; border:1.5px solid #88a8c8; margin:10px 16px 0; border-radius:8px; padding:10px 16px; display:flex; align-items:center; gap:12px; flex-shrink:0; flex-wrap:wrap; }
.seg-search { height:34px; border:1.5px solid #7098c0; border-radius:6px; padding:0 12px; font-size:12px; width:200px; outline:none; background:#fff; color:#0a1e50; }
.seg-btn { display:flex; align-items:center; gap:6px; height:34px; padding:0 16px; border:none; border-radius:6px; font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif; font-size:12px; font-weight:700; cursor:pointer; transition:opacity .15s; }
.seg-btn:hover { opacity:.88; }
.sb-add    { background:#1a3e8a; color:#fff; }
.sb-edit   { background:#d07010; color:#fff; }
.sb-del    { background:#c02020; color:#fff; }
.sb-export { background:#1a7a30; color:#fff; }
.sb-sql    { background:#7a1a9a; color:#fff; }
.seg-table-wrap { flex:1; margin:10px 16px; overflow-y:auto; background:#fff; border:1.5px solid #88a8c8; border-radius:8px; }
.seg-table { width:100%; border-collapse:collapse; font-size:12px; }
.seg-table thead { background:#1a3e8a; color:#fff; position:sticky; top:0; }
.seg-table th { padding:9px 12px; text-align:left; font-family:'Exo 2',sans-serif; font-weight:700; font-size:11.5px; letter-spacing:.3px; border-right:1px solid #2858b0; }
.seg-table th:last-child { border-right:none; }
.seg-table td { padding:8px 12px; border-bottom:1px solid #d0e0f0; color:#000; font-weight:700; }
.seg-table tbody tr:hover { background:#eef5fc; cursor:pointer; }
.seg-table tbody tr.seg-sel { background:#d6eaf8; color:#1a1a1a; font-weight:700; }
.seg-table tbody tr.seg-sel td { color:#1a1a1a; }
.seg-table tbody tr.row-selected,
.seg-table tbody tr.row-selected td { background:#d6eaf8 !important; color:#1a1a1a !important; font-weight:700 !important; }
.seg-table tbody tr.row-selected:hover { background:#c5dded !important; }
.seg-badge { display:inline-block; padding:2px 10px; border-radius:999px; font-size:10px; font-weight:700; }

/* Matriz maestra unificada — mismo formato de tabla (columnas N°, Tipo,
   Código, Nombre/Título, Versión, Fecha, Estado, ... Acciones) reutilizado
   en Control de Documentos (Lista Maestra de Documentos y Lista Maestra de
   Registros, ControlDocumentos.php) y en los submódulos de SIG → Documentos
   y Trazabilidad (Procedimientos Operativos, PETAR, Manual del SIG,
   Instructivos, Documentos Generales, Estándares — SIG.php). La 2da
   columna siempre lleva el badge de "Tipo" que distingue de un vistazo qué
   representa cada fila (Documento, Registro, o la carpeta SIG que aplica). */
.doc-master-table td:nth-child(2) { text-align:center; }
.sb-verde   { background:#d4f4dc; color:#1a7a30; }
.sb-rojo    { background:#fde8e8; color:#c02020; }
.sb-naranja { background:#fef0d8; color:#c07010; }
.sb-azul    { background:#dce8fc; color:#1a3e8a; }
.sb-gris    { background:#e8edf4; color:#4a6080; }
.sstreq-kanban { flex:1; display:flex; flex-direction:column; overflow:hidden; margin:10px 16px; }
.sstreq-kanban .sstreq-kanban-columns { display:flex; gap:12px; overflow-x:auto; padding:4px 0 10px; flex:1; }
.sstreq-kanban-column { min-width:240px; max-width:280px; display:flex; flex-direction:column; flex-shrink:0; background:#f8fbfd; border:1px solid #c0d4e8; border-radius:8px; overflow:hidden; }
.sstreq-kanban-column-header { display:flex; justify-content:space-between; align-items:center; padding:6px 10px; color:#fff; font-size:11px; font-weight:700; }
.sstreq-kanban-cards { flex:1; padding:6px; overflow-y:auto; min-height:60px; }
.sstreq-kanban-card { background:#fff; border:1px solid #d0e0f0; border-radius:6px; padding:6px 8px; margin-bottom:6px; cursor:pointer; transition:box-shadow .15s,transform .15s; }
.sstreq-kanban-card:hover { box-shadow:0 2px 8px rgba(0,0,0,.12); transform:translateY(-1px); }
.sstreq-card-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:4px; }
.sstreq-card-body { font-size:10px; color:#3a5a86; margin-bottom:4px; }
.sstreq-card-body div { margin-bottom:2px; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.sstreq-card-footer { display:flex; justify-content:flex-end; }
.sstreq-col-btn { background:#e0e6f0; color:#0a1e50; border:1px solid #b0c4de; border-radius:5px; padding:5px 10px; font-size:11px; font-weight:600; cursor:pointer; transition:background .15s; flex-shrink:0; }
.sstreq-col-btn:hover { background:#c8d8f0; }
.sstreq-col-btn.active { background:#0a1e50; color:#fff; border-color:#0a1e50; }
#screen-dashboard { background:var(--surface-screen); }
.dash-body { flex:1; display:flex; flex-direction:column; gap:16px; padding:16px 20px 28px; overflow-y:auto; background:var(--surface-screen); scrollbar-width:thin; scrollbar-color:#88a8c8 #eef2f7; }
.dash-body::-webkit-scrollbar { width:10px; }
.dash-body::-webkit-scrollbar-track { background:#eef2f7; border-radius:8px; }
.dash-body::-webkit-scrollbar-thumb { background:#88a8c8; border-radius:8px; }
.dash-body::-webkit-scrollbar-thumb:hover { background:#5a90c8; }
.dash-kpi-row { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; flex-shrink:0; }
.dash-kpi { background:linear-gradient(135deg,#1a3e8a,#0c2460); border:1px solid #2a5ab8; border-radius:12px; padding:16px 18px; display:flex; flex-direction:column; gap:6px; position:relative; overflow:hidden; box-shadow:0 2px 8px rgba(10,30,80,.12); }
.dash-kpi::after { content:''; position:absolute; right:-14px; top:-14px; width:70px; height:70px; border-radius:50%; background:rgba(255,255,255,.05); }
.dash-kpi-label { font-family:'Exo 2',sans-serif; font-size:11px; font-weight:700; color:#88b8e8; text-transform:uppercase; letter-spacing:.5px; }
.dash-kpi-value { font-family:'DM Mono','Roboto',monospace; font-size:26px; font-weight:800; color:#fff; }
.dash-kpi-sub { font-size:10px; color:#5588c0; }
.dash-kpi-icon { position:absolute; right:14px; top:50%; transform:translateY(-50%); font-size:29px; opacity:.3; }
.dash-kpi.green { background:linear-gradient(135deg,#1a6a30,#0c4020); border-color:#2a8a40; }
.dash-kpi.orange{ background:linear-gradient(135deg,#7a4010,#5a2a08); border-color:#c07020; }
.dash-kpi.purple{ background:linear-gradient(135deg,#4a1a8a,#2a0c60); border-color:#7a3ab8; }
.dash-charts-row { display:grid; grid-template-columns:1fr 1fr; gap:14px; flex:1; min-height:220px; }
.dash-chart-card { background:#f6f9fd; border:1px solid #d3e0ef; border-radius:12px; padding:14px 16px; display:flex; flex-direction:column; gap:8px; overflow:hidden; box-shadow:0 1px 4px rgba(20,40,90,.06); }
.dash-chart-title { font-family:'Exo 2',sans-serif; font-size:13px; font-weight:800; color:#1a3e8a; letter-spacing:.5px; display:flex; align-items:center; justify-content:space-between; }
.dash-chart-area { flex:1; min-height:0; }
.dash-bar-chart { display:flex; align-items:flex-end; gap:6px; height:100%; padding-bottom:18px; position:relative; }
.dash-bar-group { display:flex; flex-direction:column; align-items:center; gap:3px; flex:1; height:100%; justify-content:flex-end; }
.dash-bar { width:100%; border-radius:4px 4px 0 0; cursor:pointer; position:relative; min-height:3px; transition:opacity .15s; }
.dash-bar:hover { opacity:.75; }
.dash-bar-val { position:absolute; bottom:calc(100% + 2px); left:50%; transform:translateX(-50%); font-size:8px; font-weight:700; color:#c8deff; white-space:nowrap; }
.dash-bar-label { font-size:8px; color:#5580a8; font-weight:600; white-space:nowrap; text-align:center; }
.dash-donut-wrap { display:flex; align-items:center; justify-content:center; gap:20px; height:100%; }
.dash-legend { display:flex; flex-direction:column; gap:7px; }
.dash-legend-item { display:flex; align-items:center; gap:7px; font-size:10px; color:#a8c8e8; }
.dash-legend-dot { width:9px; height:9px; border-radius:50%; flex-shrink:0; }
.dash-alert-list { flex:1; overflow-y:auto; display:flex; flex-direction:column; gap:5px; }
.dash-alert-item { display:flex; align-items:center; justify-content:space-between; padding:7px 11px; background:#1a2a40; border-radius:7px; }
.dash-alert-item.crit { border-left:3px solid #ff4040; }
.dash-alert-item.warn { border-left:3px solid #ffb040; }
.dash-alert-name { font-size:10px; color:#d8eaff; font-weight:600; flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; margin-right:8px; }
.dash-alert-stock { font-size:11px; font-weight:800; }
.dash-alert-stock.crit { color:#ff6060; }
.dash-alert-stock.warn { color:#ffb040; }
.dash-recent-table { width:100%; border-collapse:collapse; font-size:10px; }
.dash-recent-table th { padding:6px 8px; text-align:left; color:#5580a8; font-weight:600; border-bottom:1px solid #2a4070; }
.dash-recent-table td { padding:6px 8px; color:#c0d8f8; border-bottom:1px solid #1a2848; }
.dash-filter-row { display:flex; gap:8px; align-items:center; flex-shrink:0; }
.dash-filter-btn { padding:5px 12px; border:1.5px solid #2a4070; border-radius:999px; background:transparent; color:#88b8e8; font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif; font-size:10px; font-weight:700; cursor:pointer; transition:all .15s; }
.dash-filter-btn:hover,.dash-filter-btn.active { background:#1a3e8a; color:#fff; border-color:#1a3e8a; }
.dash-refresh-btn { margin-left:auto; padding:5px 14px; border:none; border-radius:6px; background:#1a3e8a; color:#fff; font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif; font-size:10px; font-weight:700; cursor:pointer; transition:opacity .15s; }
.dash-refresh-btn:hover { opacity:.85; }
.cfg-box { background:#d8e8f8; border:2px solid #88a8c8; border-radius:10px; width:min(680px,94vw); max-height:90vh; display:flex; flex-direction:column; box-shadow:0 20px 60px rgba(0,0,0,.5); overflow:hidden; }
.cfg-header { background:linear-gradient(180deg,#0c2868,#14388a); padding:14px 20px; display:flex; align-items:center; justify-content:space-between; flex-shrink:0; }
.cfg-title { font-family:'Exo 2',sans-serif; font-size:21px; font-weight:800; color:#fff; letter-spacing:2px; text-transform:uppercase; }
.cfg-close { background:rgba(200,30,30,.85); color:#fff; border:none; font-size:17px; font-weight:700; width:32px; height:32px; border-radius:6px; cursor:pointer; }
.cfg-body { flex:1; overflow-y:auto; padding:20px; }
.cfg-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(120px,1fr)); gap:16px; }
.cfg-item { display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px; background:#fff; border:1.5px solid #88a8c8; border-radius:10px; padding:18px 10px; cursor:pointer; transition:background .15s,transform .1s,box-shadow .15s; text-align:center; }
.cfg-item:hover { background:#e0f0ff; transform:translateY(-2px); box-shadow:0 4px 14px rgba(0,0,0,.2); }
.cfg-item:active { transform:translateY(0); }
.cfg-item-icon { font-size:39px; }
.cfg-item-label { font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif; font-size:12px; font-weight:700; color:#0a1e50; }
.sub-cfg-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,.5); z-index:200; align-items:center; justify-content:center; }
.sub-cfg-overlay.open { display:flex; }
.sub-cfg-box { background:#f0f4fa; border:2px solid #88a8c8; border-radius:10px; width:min(520px,94vw); max-height:88vh; display:flex; flex-direction:column; box-shadow:0 16px 48px rgba(0,0,0,.5); overflow:hidden; }
.sub-cfg-header { background:#1a3e8a; padding:12px 18px; display:flex; align-items:center; justify-content:space-between; flex-shrink:0; }
.sub-cfg-title { font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif; font-size:15px; font-weight:700; color:#fff; }
.sub-cfg-close { background:rgba(200,30,30,.85); color:#fff; border:none; font-size:15px; font-weight:700; width:28px; height:28px; border-radius:5px; cursor:pointer; }
.sub-cfg-body { flex:1; overflow-y:auto; padding:18px 20px; display:flex; flex-direction:column; gap:14px; }
.sub-cfg-fieldset { border:2px solid #88a8c8; border-radius:8px; padding:14px 16px; background:#e8f2fc; }
.sub-cfg-fieldset legend { font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif; font-size:14px; font-weight:700; color:#0a1e50; padding:0 6px; }
.sub-cfg-row { display:flex; align-items:center; gap:10px; margin-bottom:10px; min-width:0; }
.sub-cfg-row:last-child { margin-bottom:0; }
.sub-cfg-label { font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif; font-size:13px; font-weight:700; color:#0a1e50; min-width:110px; }
.sub-cfg-input { flex:1; min-width:0; box-sizing:border-box; height:36px; border:2px solid #5a90c8; border-radius:6px; padding:0 12px; font-size:13px; background:#fff; color:#0a1e50; outline:none; }
textarea.sub-cfg-input { height:auto; min-height:36px; padding:8px 12px; line-height:1.4; resize:vertical; overflow:auto; }
.mdo-unidad-lista { position:absolute; top:calc(100% + 4px); left:0; right:0; z-index:80; background:#fff; border:2px solid #5a90c8; border-radius:6px; max-height:260px; overflow-y:auto; box-shadow:0 6px 18px rgba(10,30,80,.25); }
.mdo-unidad-lista .mdo-unidad-opt { padding:8px 12px; font-size:12.5px; color:#0a1e50; cursor:pointer; border-bottom:1px solid #eef4fb; }
.mdo-unidad-lista .mdo-unidad-opt:last-child { border-bottom:none; }
.mdo-unidad-lista .mdo-unidad-opt:hover { background:#eaf2fb; }
.mdo-unidad-lista .mdo-unidad-vacio { padding:8px 12px; font-size:12.5px; color:#88a0c0; font-style:italic; }
.sub-cfg-btns { display:flex; gap:10px; }
.mdo-item-cumple, .mdo-item-nocumple { width:18px; height:18px; accent-color:#0a1e50; cursor:pointer; -webkit-print-color-adjust:exact; print-color-adjust:exact; }
.mdo-item-cumple[readonly], .mdo-item-nocumple[readonly], .mdo-item-obs[readonly] { pointer-events:none; opacity:1; background:#fff; color:#0a1e50; }
@media print {
  .mdo-item-cumple, .mdo-item-nocumple { -webkit-print-color-adjust:exact; print-color-adjust:exact; }
}
.sub-cfg-btn { flex:1; height:40px; border:none; border-radius:8px; font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif; font-size:13px; font-weight:700; cursor:pointer; display:flex; align-items:center; justify-content:center; gap:6px; transition:opacity .15s; }
.sub-cfg-btn:hover { opacity:.88; }
.scb-save { background:#1a3e8a; color:#fff; }
.scb-del  { background:#c02020; color:#fff; }
.sub-cfg-table { width:100%; border-collapse:collapse; font-size:12px; }
.sub-cfg-table thead { background:#1a3e8a; color:#fff; }
.sub-cfg-table th { padding:8px 12px; text-align:center; font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif; font-size:11px; }
.sub-cfg-table td { padding:7px 12px; border-bottom:1px solid #d0e0f0; text-align:center; color:#0a1e50; }
.sub-cfg-table tbody tr:hover { background:#eef5fc; cursor:pointer; }
.sub-cfg-table tbody tr.cfg-sel { background:#d6eaf8; color:#1a1a1a; font-weight:700; }
.sub-cfg-table tbody tr.cfg-sel td { color:#1a1a1a; }
.usr-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,.6); z-index:150; align-items:center; justify-content:center; }
.usr-overlay.open { display:flex; }
.usr-box { background:#f0f4fa; border:2px solid #88a8c8; border-radius:14px; width:min(700px,94vw); max-height:88vh; display:flex; flex-direction:column; box-shadow:0 24px 64px rgba(0,0,0,.55); overflow:hidden; animation:modalPopIn .2s cubic-bezier(.2,.8,.2,1) both; }
.usr-header { background:linear-gradient(180deg,#0c2868,#14388a); padding:14px 20px; display:flex; align-items:center; justify-content:space-between; flex-shrink:0; }
.usr-title { font-family:'Exo 2',sans-serif; font-size:19px; font-weight:800; color:#fff; letter-spacing:2px; text-transform:uppercase; }
.usr-close { background:rgba(200,30,30,.85); color:#fff; border:none; font-size:17px; font-weight:700; width:32px; height:32px; border-radius:6px; cursor:pointer; transition:background .15s,transform .15s; }
.usr-close:hover { background:#c82020; transform:scale(1.06); }
.usr-body { flex:1; display:grid; grid-template-columns:1fr auto; gap:14px; padding:16px; overflow:hidden; }
.usr-table-wrap { overflow-y:auto; background:#fff; border:1.5px solid #88a8c8; border-radius:8px; }
.usr-table { width:100%; border-collapse:collapse; font-size:12px; }
.usr-table thead { background:#1a3e8a; color:#fff; position:sticky; top:0; }
.usr-table th { padding:9px 12px; text-align:center; font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif; font-size:11px; }
.usr-table td { padding:8px 12px; border-bottom:1px solid #d0e0f0; text-align:center; color:#0a1e50; }
.usr-table tbody tr:hover { background:#eef5fc; cursor:pointer; }
.usr-table tbody tr.usr-sel { background:#d6eaf8; color:#1a1a1a; font-weight:700; }
.usr-table tbody tr.usr-sel td { color:#1a1a1a; }
.usr-actions { display:flex; flex-direction:column; gap:10px; width:110px; }
.usr-act-btn { width:100%; height:80px; border:none; border-radius:12px; font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif; font-size:11px; font-weight:700; cursor:pointer; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:6px; transition:opacity .18s cubic-bezier(.2,.8,.2,1),transform .18s cubic-bezier(.2,.8,.2,1),box-shadow .18s ease; box-shadow:0 2px 8px rgba(0,0,0,.18); }
.usr-act-btn:hover { opacity:.94; transform:translateY(-2px); box-shadow:0 6px 16px rgba(0,0,0,.26); }
.usr-act-btn:active { transform:translateY(0); }
.uab-add    { background:#1a7a30; color:#fff; }
.uab-update { background:#1a3e8a; color:#fff; }
.uab-del    { background:#c02020; color:#fff; }
.uab-perm   { background:#d07010; color:#fff; }
.usr-act-icon { font-size:25px; }
.usr-meta { background:#e8f0fa; border-top:2px solid #88a8c8; padding:10px 16px; display:flex; gap:16px; align-items:center; flex-shrink:0; }
.usr-meta-item { color:#0a1e50; font-size:12px; font-weight:600; }
#screen-ingreso { background:var(--surface-screen); }

#screen-rack { background:var(--surface-screen); }
#screen-rack .app-header { background:linear-gradient(180deg,#0c1e50,#0c2868); }
.rack-body { flex:1; display:flex; flex-direction:column; padding:20px 28px 10px; overflow:hidden; }
.rack-legend { display:flex; align-items:center; gap:8px; background:#1a2a4a; border:1.5px solid #2a4080; border-radius:8px; padding:10px 18px; margin-bottom:16px; width:fit-content; }
.rack-legend-dot { width:14px; height:14px; border-radius:50%; }
.rack-dot-ocupado { background:#2563eb; }
.rack-dot-libre   { background:#3a4a6a; border:1.5px solid #5a6a8a; }
.rack-legend-label { color:#c8d8f0; font-size:13px; font-weight:600; margin-right:14px; }
.rack-grid-wrap { flex:1; overflow-y:auto; }
.rack-grid { display:flex; flex-direction:column; gap:10px; }
.rack-row { display:flex; align-items:center; gap:10px; }
.rack-row-label { color:#8aaccc; font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif; font-size:17px; font-weight:700; width:28px; text-align:center; flex-shrink:0; }
.rack-cells { display:flex; gap:10px; flex:1; }
.rack-cell { flex:1; min-height:72px; border-radius:10px; border:none; cursor:pointer; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; transition:transform .1s, box-shadow .15s; font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif; }
.rack-cell:hover { transform:scale(1.04); box-shadow:0 4px 16px rgba(0,0,0,.4); }
.rack-cell.libre   { background:#1e2a3e; color:#5a7a9a; }
.rack-cell.ocupado { background:#1d4ed8; color:#e8f0ff; box-shadow:0 2px 10px rgba(29,78,216,.5); }
.rack-cell-code  { font-size:11px; font-weight:700; letter-spacing:.5px; }
.rack-cell-name  { font-size:10px; font-weight:600; max-width:90%; text-align:center; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.rack-footer-nav { display:flex; justify-content:center; gap:14px; padding:14px 0 6px; flex-shrink:0; }
.rack-nav-btn { width:52px; height:52px; border-radius:10px; border:none; background:#2563eb; color:#fff; font-size:21px; cursor:pointer; transition:background .15s,transform .1s; display:flex; align-items:center; justify-content:center; box-shadow:0 2px 10px rgba(37,99,235,.5); }
.rack-nav-btn:hover { background:#1d4ed8; transform:scale(1.07); }
.rack-nav-btn:disabled { background:#2a3a5a; color:#4a5a7a; cursor:default; transform:none; box-shadow:none; }
.rack-page-info { color:#8aaccc; font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif; font-size:13px; font-weight:600; display:flex; align-items:center; }
.modal-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,.55); z-index:100; align-items:center; justify-content:center; backdrop-filter:blur(2px); }
.modal-overlay.open { display:flex; animation:modalFadeIn .18s ease both; }
.modal-box { background:#ffffff; border:1.5px solid #c8d8e8; border-radius:18px; padding:36px 40px; text-align:center; box-shadow:0 20px 48px rgba(10,30,80,.25); max-width:380px; width:90%; animation:modalPopIn .2s cubic-bezier(.2,.8,.2,1) both; }
@keyframes modalFadeIn{from{opacity:0;}to{opacity:1;}}
@keyframes modalPopIn{from{opacity:0;transform:translateY(12px) scale(.97);}to{opacity:1;transform:translateY(0) scale(1);}}
.modal-icon { font-size:47px; margin-bottom:12px; }
.modal-title { font-family:'Exo 2',sans-serif; font-size:20px; font-weight:800; color:#0c1e50; margin-bottom:8px; }
.modal-sub { font-size:13.5px; color:#4a6080; margin-bottom:24px; font-weight:500; }
.modal-btns { display:flex; gap:12px; justify-content:center; }
.modal-btn { padding:11px 30px; border:none; border-radius:999px; font-family:'Exo 2',sans-serif; font-size:14px; font-weight:700; cursor:pointer; transition:all .18s; box-shadow:0 3px 10px rgba(0,0,0,.15); }
.modal-btn:hover { transform:translateY(-2px); box-shadow:0 6px 16px rgba(0,0,0,.25); }
.modal-btn:active { transform:translateY(0); }
.modal-yes{background:linear-gradient(135deg,#c02020,#e03030);color:#fff;} .modal-no{background:linear-gradient(135deg,#122f6d,#1a4fa0);color:#fff;}
.reg-screen { background:var(--surface-screen); }
.reg-body { flex:1; display:grid; grid-template-columns:360px 1fr; gap:16px; padding:14px 18px; overflow:hidden; }
.reg-form-panel { background:#e8f2fc; border:2px solid #88a8c8; border-radius:10px; padding:22px 20px; display:flex; flex-direction:column; gap:0; }
.reg-form-title { font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif; font-size:15px; font-weight:700; color:#0a1e50; border:2px solid #88a8c8; border-radius:6px; padding:8px 14px; margin-bottom:16px; }
.reg-field { display:flex; flex-direction:column; gap:4px; margin-bottom:13px; }
.reg-field label { font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif; font-size:13px; font-weight:700; color:#0a1e50; }
.reg-field input, .reg-field select { height:36px; border:2px solid #5a90c8; border-radius:6px; padding:0 12px; font-size:13px; background:#fff; color:#0a1e50; outline:none; font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif; }
.reg-field input:focus, .reg-field select:focus { border-color:#1848a0; box-shadow:0 0 0 2px rgba(24,72,160,.15); }
.reg-action-btns { display:flex; gap:10px; margin-top:auto; padding-top:14px; }
.reg-btn { flex:1; height:62px; border:none; border-radius:8px; font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif; font-size:12px; font-weight:700; cursor:pointer; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:4px; transition:opacity .15s,transform .1s; box-shadow:0 3px 8px rgba(0,0,0,.2); }
.reg-btn:hover { opacity:.88; transform:translateY(-1px); }
.reg-btn:active { transform:translateY(0); }
.reg-btn-icon { font-size:23px; }
.rbtn-reg  { background:#1a7a30; color:#fff; }
.rbtn-del  { background:#c02020; color:#fff; }
.rbtn-edit { background:#d07010; color:#fff; }
.reg-right-panel { display:flex; flex-direction:column; gap:10px; overflow:hidden; }
.reg-search-bar { display:flex; align-items:center; gap:10px; flex-wrap:wrap; }
.reg-search-label { font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif; font-size:14px; font-weight:700; color:#0a1e50; }
.reg-search-input { height:36px; border:1.5px solid #7098c0; border-radius:6px; padding:0 12px; font-size:13px; background:#fff; color:#0a1e50; outline:none; width:220px; }
.reg-search-btn { width:36px; height:36px; border:1.5px solid #7098c0; border-radius:6px; background:#fff; cursor:pointer; font-size:15px; display:flex; align-items:center; justify-content:center; transition:background .15s; }
.reg-search-btn:hover { background:#d0e8ff; }
.reg-meta { display:flex; align-items:center; gap:14px; margin-left:auto; color:#0a1e50; font-size:12px; font-weight:600; }
.reg-table-wrap { flex:1; overflow-y:auto; background:#fff; border:1.5px solid #88a8c8; border-radius:8px; }
.reg-table { width:100%; border-collapse:collapse; font-size:12px; }
.reg-table thead { background:#1a3e8a; color:#fff; position:sticky; top:0; }
.reg-table th { padding:9px 12px; text-align:center; font-family:'Exo 2',sans-serif; font-weight:700; font-size:11.5px; letter-spacing:.3px; border-right:1px solid #2858b0; }
.reg-table th:last-child { border-right:none; }
.reg-table td { padding:7px 12px; border-bottom:1px solid #d0e0f0; color:#000; font-weight:700; text-align:center; font-size:11.5px; }
.reg-table tbody tr:hover { background:#eef5fc; cursor:pointer; }
.reg-table tbody tr.reg-selected { background:#d6eaf8; color:#1a1a1a; font-weight:700; }
.reg-table tbody tr.reg-selected td { color:#1a1a1a; }
.reg-pagination { display:flex; align-items:center; justify-content:flex-end; gap:10px; }
.reg-pag-btn { width:32px; height:32px; border:2px solid #1a3e8a; border-radius:6px; background:#1a3e8a; color:#fff; font-size:15px; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:background .15s; }
.reg-pag-btn:hover { background:#2558c8; }
.reg-pag-btn:disabled { background:#88a8c8; border-color:#88a8c8; cursor:default; }
.reg-pag-info { font-size:12px; font-weight:600; color:#0a1e50; }
.client-tabs { display:flex; gap:6px; flex-shrink:0; }
.client-tab { flex:1; padding:8px 10px; border:2px solid #88a8c8; border-radius:8px 8px 0 0; background:#b4cee8; font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif; font-size:11px; font-weight:700; color:#0a1e50; cursor:pointer; text-align:center; transition:background .15s; border-bottom:none; }
.client-tab:hover { background:#c8ddf0; }
.client-tab.active { background:#1a3e8a; color:#fff; border-color:#1a3e8a; }
.prod-modal { max-width:520px; width:92%; text-align:left; padding:0; overflow:hidden; }
.prod-modal-header { background:#1a3e8a; padding:16px 22px; }
.prod-modal-title { font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif; font-size:17px; font-weight:700; color:#fff; }
.prod-modal-body { padding:22px 26px; display:flex; flex-direction:column; gap:12px; background:#d0e4f8; }
.prod-modal-fieldset { border:2px solid #88a8c8; border-radius:8px; padding:14px 18px; display:flex; flex-direction:column; gap:10px; background:#e8f2fc; }
.prod-modal-fieldset legend { font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif; font-size:14px; font-weight:700; color:#0a1e50; padding:0 6px; }
.prod-field { display:flex; align-items:center; gap:12px; }
.prod-field label { font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif; font-size:13px; font-weight:700; color:#0a1e50; min-width:100px; }
.prod-field input, .prod-field select { flex:1; height:38px; border:2px solid #5a90c8; border-radius:8px; padding:0 12px; font-size:13px; background:#fff; color:#0a1e50; outline:none; font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif; transition:border-color .15s,box-shadow .15s; }
.prod-field input:focus, .prod-field select:focus { border-color:#1848a0; box-shadow:0 0 0 3px rgba(24,72,160,.15); }
.prod-note { background:#fff8e8; border:1.5px solid #d0a030; border-radius:8px; padding:10px 14px; font-size:11px; color:#7a5010; line-height:1.5; }
.prod-save-btn { width:100%; height:44px; background:#2563eb; color:#fff; border:none; border-radius:10px; font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif; font-size:15px; font-weight:700; cursor:pointer; display:flex; align-items:center; justify-content:center; gap:8px; transition:opacity .18s cubic-bezier(.2,.8,.2,1),transform .18s cubic-bezier(.2,.8,.2,1),box-shadow .18s ease; box-shadow:0 2px 8px rgba(37,99,235,.3); }
.prod-save-btn:hover { opacity:.94; transform:translateY(-2px); box-shadow:0 8px 18px rgba(37,99,235,.4); }
.prod-save-btn:active { transform:translateY(0); }
/* ═══ MODALES GRANDES (calibración, trazabilidad, seguimiento) ═══ */
.big-modal-overlay { display:none; position:fixed; inset:0; background:rgba(0,0,0,.65); z-index:300; align-items:center; justify-content:center; }
.big-modal-overlay.open { display:flex; }
.big-modal-box { background:#e8f2fc; border:2px solid #88a8c8; border-radius:12px; width:min(820px,96vw); max-height:92vh; display:flex; flex-direction:column; box-shadow:0 24px 64px rgba(0,0,0,.6); overflow:hidden; }
.big-modal-box.wide { width:min(1100px,98vw); }
.big-modal-header { background:linear-gradient(180deg,#0c2868,#14388a); padding:14px 20px; display:flex; align-items:center; justify-content:space-between; flex-shrink:0; }
.big-modal-title { font-family:'Exo 2',sans-serif; font-size:19px; font-weight:800; color:#fff; letter-spacing:2px; text-transform:uppercase; }
.big-modal-close { background:rgba(200,30,30,.85); color:#fff; border:none; font-size:17px; font-weight:700; width:34px; height:34px; border-radius:6px; cursor:pointer; }
.big-modal-body { flex:1; overflow-y:auto; padding:20px 24px; display:flex; flex-direction:column; gap:14px; }
.bm-section { background:#fff; border:1.5px solid #b0cce8; border-radius:8px; padding:14px 18px; }
.bm-section-title { font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif; font-size:13px; font-weight:700; color:#0a1e50; margin-bottom:12px; border-bottom:2px solid #c8ddf0; padding-bottom:6px; }
.bm-grid { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.bm-grid-3 { display:grid; grid-template-columns:1fr 1fr 1fr; gap:10px; }
.bm-field { display:flex; flex-direction:column; gap:4px; }
.bm-field label { font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif; font-size:11px; font-weight:700; color:#4a6080; text-transform:uppercase; letter-spacing:.3px; }
.bm-field input, .bm-field select { height:36px; border:1.5px solid #7098c0; border-radius:6px; padding:0 10px; font-size:12px; background:#fff; color:#0a1e50; outline:none; }
.bm-field input:focus, .bm-field select:focus { border-color:#1848a0; box-shadow:0 0 0 2px rgba(24,72,160,.1); }
.bm-field.full { grid-column:1/-1; }
.bm-save-row { display:flex; gap:10px; justify-content:flex-end; padding-top:4px; }
.bm-btn { height:40px; padding:0 24px; border:none; border-radius:8px; font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif; font-size:13px; font-weight:700; cursor:pointer; transition:opacity .15s; }
.bm-btn:hover { opacity:.88; }
.bm-btn-save { background:#1a3e8a; color:#fff; }
.bm-btn-cancel { background:#6688aa; color:#fff; }
/* Trazabilidad tabs */
.traz-tabs { display:flex; gap:6px; margin-bottom:12px; }
.traz-tab { padding:7px 16px; border:2px solid #88a8c8; border-radius:6px 6px 0 0; background:#b4cee8; font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif; font-size:11px; font-weight:700; color:#0a1e50; cursor:pointer; border-bottom:none; transition:background .12s; }
.traz-tab:hover { background:#c8ddf0; }
.traz-tab.active { background:#1a3e8a; color:#fff; border-color:#1a3e8a; }
.traz-pane { display:none; }
.traz-pane.active { display:block; }
.mini-table { width:100%; border-collapse:collapse; font-size:11px; }
.mini-table thead { background:#1a3e8a; color:#fff; }
.mini-table th { padding:7px 10px; font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif; font-size:10px; text-align:center; }
.mini-table td { padding:6px 10px; border-bottom:1px solid #d0e0f0; color:#0a1e50; text-align:center; }
.mini-table tbody tr:hover { background:#eef5fc; }
/* Seguimiento de equipos */
.seg-equip-form { background:#b4cee8; border:1.5px solid #88a8c8; margin:10px 16px 0; border-radius:8px; padding:12px 18px; flex-shrink:0; display:flex; align-items:center; gap:12px; flex-wrap:wrap; }
.se-input { height:34px; border:1.5px solid #7098c0; border-radius:6px; padding:0 10px; font-size:12px; background:#fff; color:#0a1e50; outline:none; }
.se-btn { height:34px; padding:0 16px; border:none; border-radius:6px; font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif; font-size:12px; font-weight:700; cursor:pointer; transition:opacity .15s; }
.se-btn:hover { opacity:.88; }
.se-btn-add  { background:#1a3e8a; color:#fff; }
.se-btn-del  { background:#c02020; color:#fff; }
.se-btn-ficha{ background:#7a1a9a; color:#fff; }
.se-btn-excel{ background:#1a7a30; color:#fff; }
.plan-filter-btn{height:28px;padding:0 12px;border:1.5px solid #7098c0;border-radius:999px;background:#fff;color:#0a1e50;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;font-size:11px;font-weight:700;cursor:pointer;transition:all .15s;}
.plan-filter-btn.active,.plan-filter-btn:hover{background:#1a3e8a;color:#fff;border-color:#1a3e8a;}
.plan-cell{width:22px;height:22px;border-radius:4px;cursor:pointer;display:inline-block;margin:1px;transition:opacity .15s;}
.plan-cell:hover{opacity:.75;}
.plan-cell.concluido{background:#2ecc40;}
.plan-cell.en-curso{background:#1a3e8a;}
.plan-cell.en-espera{background:#f5a623;}
.plan-cell.abierto{background:#00bfff;}
.plan-cell.programado{background:#d0d8e8;}
.plan-cell.adelantado{background:#b39ddb;}
.plan-cell.vacio{background:#eef2f8;}
.plan-equipo-col{min-width:160px;padding:8px 12px;font-size:12px;color:#0a1e50;font-weight:600;border-bottom:1px solid #e0eaf4;border-right:2px solid #c8d8ea;white-space:nowrap;}
.plan-mes-header{text-align:center;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;font-size:11px;font-weight:700;color:#0a1e50;padding:8px 4px;border-bottom:2px solid #c8d8ea;border-right:1px solid #e0eaf4;background:#eef4fc;}
.plan-semana-header{text-align:center;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;font-size:9px;font-weight:600;color:#6688aa;padding:4px 2px;border-bottom:1px solid #e0eaf4;border-right:1px solid #e0eaf4;background:#f5f8fc;}
.plan-cell-td{padding:4px 3px;border-bottom:1px solid #e0eaf4;border-right:1px solid #e0eaf4;text-align:center;vertical-align:middle;}
.plan-row-sel td{background:#dce8fc !important;}
/* ===== Dashboard Mantenimiento (scoped #dm-root) ===== */

#dm-root,#dm-root *,#dm-root *::before,#dm-root *::after{box-sizing:border-box}
:root{
  --bg:#f0f4fa;--surface:#ffffff;--surface2:#f8f9fb;--surface3:#eef0f4;
  --border:#e5e8ef;--border2:#d0d5e0;--text:#0f1623;--text2:#4b5468;--text3:#96a0b5;
  --green:#0ea855;--green-dim:#e8f8ee;--green-mid:#dcf5e7;
  --red:#e03131;--red-dim:#fff0f0;--orange:#e8730a;--orange-dim:#fff4eb;
  --blue:#1971c2;--blue-dim:#e8f3ff;--amber:#d08700;--amber-dim:#fff8e1;
  --purple:#7048e8;--purple-dim:#f3f0ff;
  --radius:8px;--radius-lg:12px;
  --shadow:0 1px 3px rgba(0,0,0,0.07),0 1px 2px rgba(0,0,0,0.04);
  --shadow-md:0 4px 12px rgba(0,0,0,0.08),0 2px 4px rgba(0,0,0,0.04);
}
#dm-root{scroll-behavior:smooth}
#dm-root{font-family:'Plus Jakarta Sans',sans-serif;background:var(--bg);color:var(--text);min-height:100vh;padding:20px 24px 40px;font-size:13px;line-height:1.5;display:block;overflow-y:auto}
.dm-mono{font-family:'DM Mono',monospace}
.dm-dash{max-width:1300px;margin:0 auto}
.dm-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:24px;padding:18px 24px;background:var(--surface);border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow)}
.dm-header-brand{display:flex;align-items:center;gap:14px}
.dm-header-logo{width:40px;height:40px;border-radius:10px;background:linear-gradient(135deg,#1971c2,#1098ad);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.dm-header-logo svg{width:22px;height:22px;stroke:#fff;fill:none;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.dm-header-brand h1{font-size:18px;font-weight:800;color:var(--text);letter-spacing:-0.3px}
.dm-header-brand h1 em{font-style:normal;color:var(--blue)}
.dm-header-brand p{font-size:11px;color:var(--text3);margin-top:1px;font-family:'DM Mono',monospace}
.dm-header-right{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.dm-status-pill{display:flex;align-items:center;gap:6px;font-size:11px;color:var(--green);font-weight:600;background:var(--green-dim);padding:5px 12px;border-radius:99px;border:1px solid rgba(14,168,85,0.2)}
.dm-status-dot{width:6px;height:6px;border-radius:50%;background:var(--green);flex-shrink:0;animation:pulse 2s infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:0.4}}
.dm-upload-btn{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:600;padding:8px 16px;border-radius:var(--radius);cursor:pointer;border:1px solid var(--border2);background:var(--surface);color:var(--text);font-family:'Plus Jakarta Sans',sans-serif;transition:all 0.15s;box-shadow:var(--shadow)}
.dm-upload-btn:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-dim)}
.dm-icon-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);cursor:pointer;transition:all 0.15s;box-shadow:var(--shadow);flex-shrink:0;text-decoration:none}
.dm-icon-btn:hover{border-color:var(--border2);background:var(--surface2);transform:translateY(-1px);box-shadow:var(--shadow-md)}
.dm-footer-icon-btn{display:inline-flex;align-items:center;justify-content:center;width:28px;height:28px;border-radius:6px;border:1px solid var(--border);background:var(--surface2);transition:all 0.15s;text-decoration:none;vertical-align:middle}
.dm-footer-icon-btn:hover{border-color:var(--border2);background:var(--surface3);transform:translateY(-1px)}
.dm-upload-btn-excel{display:flex;align-items:center;gap:7px;font-size:12px;font-weight:700;padding:8px 16px;border-radius:var(--radius);cursor:pointer;border:1.5px solid #16a34a;background:linear-gradient(135deg,#16a34a,#15803d);color:#fff;font-family:'Plus Jakarta Sans',sans-serif;transition:all 0.18s;box-shadow:0 2px 8px rgba(22,163,74,0.25)}
.dm-upload-btn-excel:hover{background:linear-gradient(135deg,#15803d,#166534);box-shadow:0 4px 14px rgba(22,163,74,0.35);transform:translateY(-1px)}
.dm-upload-btn-excel.loaded{border-color:#0891b2;background:linear-gradient(135deg,#0891b2,#0e7490);box-shadow:0 2px 8px rgba(8,145,178,0.25)}
.dm-upload-btn-excel.loaded:hover{background:linear-gradient(135deg,#0e7490,#155e75);box-shadow:0 4px 14px rgba(8,145,178,0.35)}
.dm-file-loaded-pill{display:flex;align-items:center;gap:6px;font-size:11px;color:#0891b2;font-weight:600;background:#ecfeff;padding:5px 11px;border-radius:99px;border:1px solid rgba(8,145,178,0.25);max-width:190px;overflow:hidden}
.dm-file-loaded-pill span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* OUTLIER WARNING BANNER */
.dm-outlier-banner{display:none;align-items:center;gap:10px;background:var(--amber-dim);border:1px solid rgba(208,135,0,0.3);border-radius:var(--radius);padding:9px 14px;margin-bottom:14px;font-size:11px;color:var(--amber);font-weight:600}
.dm-outlier-banner.visible{display:flex}
.dm-outlier-banner svg{flex-shrink:0}

.dm-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:20px;align-items:center}
.dm-filter-label{font-size:11px;color:var(--text3);font-weight:700;text-transform:uppercase;letter-spacing:0.08em;margin-right:2px}
#dm-root select{font-size:12px;font-weight:500;padding:7px 12px;border-radius:var(--radius);border:1px solid var(--border);background:var(--surface);color:var(--text);cursor:pointer;font-family:'Plus Jakarta Sans',sans-serif;outline:none;box-shadow:var(--shadow);transition:border-color 0.15s}
#dm-root select:focus{border-color:var(--blue)}
/* Orphan select option highlight */
#dm-root select.dm-has-orphan{border-color:var(--amber);background:var(--amber-dim)}

.dm-section-title{font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:0.1em;color:var(--text3);margin-bottom:10px;margin-top:22px;display:flex;align-items:center;gap:8px}
.dm-section-title::after{content:'';flex:1;height:1px;background:var(--border)}
.dm-kpi-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:10px}
.dm-kpi{border-radius:var(--radius-lg);padding:16px 18px;box-shadow:var(--shadow);position:relative;overflow:hidden;transition:box-shadow 0.2s,transform 0.2s;border:none}
.dm-kpi:hover{box-shadow:var(--shadow-md);transform:translateY(-2px)}
.dm-kpi-icon-wrap{width:34px;height:34px;border-radius:9px;display:flex;align-items:center;justify-content:center;margin-bottom:10px;font-size:16px;background:rgba(255,255,255,0.2)}
.dm-kpi-label{font-size:10px;color:rgba(255,255,255,0.85);text-transform:uppercase;letter-spacing:0.09em;font-weight:700;margin-bottom:5px}
.dm-kpi-value{font-size:26px;font-weight:800;font-family:'DM Mono',monospace;line-height:1;color:#fff;letter-spacing:-1px}
.dm-kpi-value.md{font-size:22px}
.dm-kpi-sub{font-size:11px;color:rgba(255,255,255,0.75);margin-top:5px}
.dm-kpi-bar{height:3px;border-radius:2px;margin-top:10px;background:rgba(255,255,255,0.25)}
.dm-kpi-bar-fill{height:100%;border-radius:2px;background:rgba(255,255,255,0.8)!important;transition:width 0.8s ease}
.dm-kpi.kpi-blue{background:linear-gradient(135deg,#3b82f6,#2563eb)}
.dm-kpi.kpi-green{background:linear-gradient(135deg,#0ea855,#059642)}
.dm-kpi.kpi-red{background:linear-gradient(135deg,#e03131,#c92a2a)}
.dm-kpi.kpi-orange{background:linear-gradient(135deg,#e8730a,#d06209)}
.dm-kpi.kpi-purple{background:linear-gradient(135deg,#7048e8,#5f3dc4)}
.dm-kpi.kpi-teal{background:linear-gradient(135deg,#1098ad,#0c8599)}
.dm-kpi.kpi-amber{background:linear-gradient(135deg,#d08700,#b87700)}
.dm-charts-row{display:grid;gap:12px;margin-bottom:12px}
.dm-col-2{grid-template-columns:1fr 1fr}
.dm-col-3{grid-template-columns:1fr 1fr 1fr}
.dm-col-13{grid-template-columns:1fr 3fr}
.dm-col-31{grid-template-columns:3fr 1fr}
.dm-chart-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:18px 20px;box-shadow:var(--shadow)}
.dm-card-header{margin-bottom:14px}
.dm-card-title{font-size:12px;font-weight:700;color:var(--text);text-transform:uppercase;letter-spacing:0.06em;display:flex;align-items:center;gap:6px}
.dm-card-title::before{content:'';width:3px;height:14px;border-radius:2px;background:var(--blue);display:inline-block;flex-shrink:0}
.dm-card-sub{font-size:11px;color:var(--text3);margin-top:3px;font-family:'DM Mono',monospace}
.dm-chart-wrap{position:relative}
.dm-legend{display:flex;flex-wrap:wrap;gap:12px;margin-bottom:10px;font-size:11px;color:var(--text2)}
.dm-legend span{display:flex;align-items:center;gap:5px;font-weight:500}
.dm-legend b{width:9px;height:9px;border-radius:2px;display:inline-block;flex-shrink:0}
.dm-gauge-wrap{display:flex;flex-direction:column;align-items:center;padding:10px 0 4px}
.dm-gauge-svg{overflow:visible}
.dm-gauge-kpis{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px;width:100%}
.dm-gauge-kpi{background:var(--surface2);border-radius:8px;padding:10px;text-align:center;border:1px solid var(--border)}
.dm-gauge-kpi-val{font-size:18px;font-weight:700;font-family:'DM Mono',monospace;color:var(--text);line-height:1}
.dm-gauge-kpi-lbl{font-size:9px;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;color:var(--text3);margin-top:3px}
.dm-gauge-kpi-sub{font-size:10px;color:var(--text3);margin-top:2px}
.dm-bar-list{display:flex;flex-direction:column;gap:7px;margin-top:4px}
.dm-bar-row{display:flex;align-items:center;gap:10px}
.dm-bar-label{font-size:11px;font-weight:600;color:var(--text2);width:72px;flex-shrink:0;text-align:right;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.dm-bar-track{flex:1;background:var(--surface3);border-radius:3px;height:18px;overflow:hidden;position:relative}
.dm-bar-fill{height:100%;border-radius:3px;display:flex;align-items:center;justify-content:flex-end;padding-right:7px;transition:width 0.8s ease;min-width:30px}
.dm-bar-val{font-size:10px;font-weight:700;font-family:'DM Mono',monospace;color:#fff;white-space:nowrap}
.dm-eq-table{width:100%;border-collapse:collapse;font-size:11px}
.dm-eq-table th{text-align:left;padding:8px 12px;font-size:10px;color:var(--text3);font-weight:700;border-bottom:1px solid var(--border);background:var(--surface2);text-transform:uppercase;letter-spacing:0.06em;white-space:nowrap}
.dm-eq-table td{padding:8px 12px;color:var(--text2);border-bottom:1px solid var(--border);vertical-align:middle;font-family:'DM Mono',monospace}
.dm-eq-table td.nm{font-family:'Plus Jakarta Sans',sans-serif;font-weight:600;color:var(--text)}
.dm-eq-table tr:last-child td{border-bottom:none}
.dm-eq-table tr:hover td{background:var(--surface2)}
.dm-eq-pagination{display:flex;align-items:center;justify-content:space-between;padding:10px 12px;border-top:1px solid var(--border);flex-wrap:wrap;gap:8px;background:var(--surface2);border-radius:0 0 var(--radius-lg) var(--radius-lg)}
.dm-badge{display:inline-flex;align-items:center;font-size:10px;font-weight:700;padding:2px 8px;border-radius:4px;letter-spacing:0.04em;font-family:'DM Mono',monospace}
.dm-b-exec{background:var(--green-dim);color:var(--green)}
.dm-b-prog{background:var(--blue-dim);color:var(--blue)}
.dm-b-corr{background:var(--red-dim);color:var(--red)}
.dm-b-prev{background:var(--green-dim);color:var(--green)}
.dm-b-crit{background:#fff0f0;color:#c92a2a}
.dm-b-alto{background:var(--orange-dim);color:var(--orange)}
.dm-b-med{background:var(--amber-dim);color:var(--amber)}
.dm-risk-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:12px}
.dm-risk-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);padding:16px 18px;box-shadow:var(--shadow)}
.dm-risk-title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:0.09em;color:var(--text3);margin-bottom:12px;display:flex;align-items:center;gap:6px}
.dm-risk-item{display:flex;align-items:center;justify-content:space-between;padding:7px 0;border-bottom:1px solid var(--border)}
.dm-risk-item:last-child{border-bottom:none}
.dm-risk-name{font-size:12px;color:var(--text2)}
.dm-risk-val{font-size:13px;font-weight:700;font-family:'DM Mono',monospace;color:var(--text)}
.dm-table-card{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius-lg);overflow:hidden;margin-top:12px;box-shadow:var(--shadow)}
.dm-table-header{padding:14px 20px;border-bottom:1px solid var(--border);display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:wrap}
.dm-table-header h3{font-size:12px;font-weight:700;color:var(--text);text-transform:uppercase;letter-spacing:0.06em}
.dm-table-count{font-size:11px;color:var(--text3);font-family:'DM Mono',monospace}
.dm-table-wrap{overflow-x:auto}
table.dm-main{width:100%;border-collapse:collapse;font-size:11px}
table.dm-main th{text-align:left;padding:9px 14px;font-size:10px;color:var(--text3);font-weight:700;border-bottom:1px solid var(--border);background:var(--surface2);text-transform:uppercase;letter-spacing:0.06em;white-space:nowrap}
table.dm-main td{padding:9px 14px;color:var(--text2);border-bottom:1px solid var(--border);vertical-align:middle;max-width:220px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-family:'DM Mono',monospace}
table.dm-main td.tc{font-family:'Plus Jakarta Sans',sans-serif;color:var(--text);font-size:11px}
table.dm-main tr:last-child td{border-bottom:none}
table.dm-main tr:hover td{background:var(--surface2)}
.dm-pagination{display:flex;align-items:center;justify-content:space-between;padding:10px 20px;border-top:1px solid var(--border);flex-wrap:wrap;gap:8px}
.dm-pg-info{font-size:11px;color:var(--text3);font-family:'DM Mono',monospace}
.dm-pg-btns{display:flex;gap:4px}
.dm-pg-btn{font-size:11px;padding:4px 10px;border-radius:6px;border:1px solid var(--border);background:var(--surface);color:var(--text2);cursor:pointer;font-family:'DM Mono',monospace;transition:all 0.15s}
.dm-pg-btn:hover:not(:disabled){border-color:var(--blue);color:var(--blue)}
.dm-pg-btn.active{background:var(--blue);color:#fff;border-color:var(--blue);font-weight:700}
.dm-pg-btn:disabled{opacity:0.3;cursor:default}
.dm-footer{margin-top:32px;padding:18px 24px;background:var(--surface);border-radius:var(--radius-lg);border:1px solid var(--border);box-shadow:var(--shadow);display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:12px}
.dm-footer-brand{font-size:13px;font-weight:800;color:var(--text);letter-spacing:-0.2px}
.dm-footer-brand em{font-style:normal;color:var(--blue)}
.dm-footer-links{display:flex;align-items:center;gap:20px;font-size:12px;color:var(--text2);flex-wrap:wrap}
.dm-footer-links a{color:var(--text2);text-decoration:none;transition:color 0.15s;font-weight:500}
.dm-footer-links a:hover{color:var(--blue)}
.dm-footer-sep{color:var(--border2)}
@media(max-width:900px){
  .dm-kpi-grid{grid-template-columns:repeat(2,1fr)}
  .dm-col-2,.dm-col-3,.dm-col-13,.dm-col-31{grid-template-columns:1fr}
  .dm-risk-row{grid-template-columns:1fr}
}
@media(max-width:560px){
  .dm-help-steps{grid-template-columns:1fr}
  .dm-help-step:nth-child(odd){border-right:none}
  .dm-help-step:nth-last-child(2){border-bottom:1px solid var(--border)}
  .dm-header{flex-direction:column;align-items:flex-start;gap:12px}
}
@media(prefers-reduced-motion:reduce){
  *{animation:none!important;transition:none!important}
}

/* ===== HELP BUTTON & MODAL ===== */
.dm-help-btn{display:flex;align-items:center;justify-content:center;width:32px;height:32px;border-radius:50%;border:2px solid var(--blue);background:var(--blue);color:#fff;cursor:pointer;font-size:15px;font-weight:800;font-family:'Plus Jakarta Sans',sans-serif;transition:all 0.18s;box-shadow:0 2px 8px rgba(25,113,194,0.35);flex-shrink:0;line-height:1}
.dm-help-btn:hover{background:#fff;color:var(--blue);transform:translateY(-1px);box-shadow:0 4px 14px rgba(25,113,194,0.45)}
.dm-help-btn:focus-visible{outline:3px solid var(--blue);outline-offset:2px}

.dm-help-overlay{display:none;position:fixed;inset:0;background:rgba(15,22,35,0.45);z-index:1000;backdrop-filter:blur(2px);align-items:center;justify-content:center}
.dm-help-overlay.active{display:flex}

.dm-help-modal{background:#fff;border-radius:16px;box-shadow:0 20px 60px rgba(0,0,0,0.18),0 4px 16px rgba(0,0,0,0.08);width:100%;max-width:720px;margin:16px;overflow:hidden;animation:modalIn 0.22s cubic-bezier(0.34,1.56,0.64,1)}
@keyframes modalIn{from{opacity:0;transform:scale(0.92) translateY(12px)}to{opacity:1;transform:scale(1) translateY(0)}}

.dm-help-modal-header{background:linear-gradient(135deg,#1971c2,#1098ad);padding:16px 22px 14px;position:relative;display:flex;align-items:center;gap:14px}
.dm-help-modal-header-icon{width:38px;height:38px;border-radius:10px;background:rgba(255,255,255,0.18);display:flex;align-items:center;justify-content:center;flex-shrink:0}
.dm-help-modal-header h2{font-size:15px;font-weight:800;color:#fff;letter-spacing:-0.2px;display:flex;align-items:center;gap:8px}
.dm-help-modal-header p{font-size:11px;color:rgba(255,255,255,0.8);margin-top:2px;font-family:'DM Mono',monospace}
.dm-help-close{position:absolute;top:12px;right:14px;width:28px;height:28px;border-radius:50%;border:none;background:rgba(255,255,255,0.2);color:#fff;font-size:16px;cursor:pointer;display:flex;align-items:center;justify-content:center;transition:background 0.15s;line-height:1}
.dm-help-close:hover{background:rgba(255,255,255,0.35)}

.dm-help-modal-body{padding:16px 20px 18px}

.dm-help-steps{display:grid;grid-template-columns:1fr 1fr;gap:0}
.dm-help-step{display:flex;gap:11px;padding:11px 10px;border-bottom:1px solid var(--border);position:relative}
.dm-help-step:nth-child(odd){border-right:1px solid var(--border)}
.dm-help-step:nth-last-child(1):nth-child(odd){grid-column:1/-1;border-right:none}
.dm-help-step:nth-last-child(1),.dm-help-step:nth-last-child(2):not(:nth-child(odd)){border-bottom:none}
.dm-help-step:nth-last-child(1):nth-child(odd){border-bottom:none}
.dm-step-num{width:26px;height:26px;border-radius:50%;background:linear-gradient(135deg,#1971c2,#1098ad);color:#fff;font-size:12px;font-weight:800;display:flex;align-items:center;justify-content:center;flex-shrink:0;margin-top:1px;box-shadow:0 2px 6px rgba(25,113,194,0.3)}
.dm-step-title{font-size:12px;font-weight:700;color:var(--text);margin-bottom:2px}
.dm-step-desc{font-size:11px;color:var(--text2);line-height:1.5}
.dm-step-tag{display:inline-flex;align-items:center;gap:5px;font-size:10px;font-weight:700;padding:2px 8px;border-radius:4px;margin-top:4px;letter-spacing:0.04em;font-family:'DM Mono',monospace}
.dm-tag-app{background:var(--blue-dim);color:var(--blue)}
.dm-tag-section{background:var(--purple-dim);color:var(--purple)}
.dm-tag-btn{background:var(--green-dim);color:var(--green)}
.dm-tag-file{background:var(--amber-dim);color:var(--amber)}
.dm-tag-upload{background:var(--orange-dim);color:var(--orange)}

.dm-help-tip{display:flex;align-items:flex-start;gap:9px;background:var(--blue-dim);border:1px solid rgba(25,113,194,0.2);border-radius:8px;padding:10px 13px;margin-top:12px}
.dm-help-tip-icon{font-size:14px;flex-shrink:0;margin-top:1px}
.dm-help-tip p{font-size:11px;color:var(--blue);line-height:1.5;font-weight:500}

/* ===== VALIDATION MODAL ===== */
.dm-val-overlay{display:none;position:fixed;inset:0;background:rgba(15,22,35,0.5);z-index:1100;backdrop-filter:blur(2px);align-items:center;justify-content:center}
.dm-val-overlay.active{display:flex}
.dm-val-modal{background:#fff;border-radius:16px;box-shadow:0 20px 60px rgba(0,0,0,0.2);width:100%;max-width:420px;margin:16px;overflow:hidden;animation:modalIn 0.22s cubic-bezier(0.34,1.56,0.64,1)}
.dm-val-header{padding:18px 22px 16px;display:flex;align-items:flex-start;gap:13px}
.dm-val-header-icon{width:40px;height:40px;border-radius:10px;display:flex;align-items:center;justify-content:center;flex-shrink:0;font-size:20px}
.dm-val-header-icon.dm-error{background:#fff0f0}
.dm-val-header-icon.warn{background:var(--amber-dim)}
.dm-val-header h3{font-size:15px;font-weight:800;color:var(--text);margin-bottom:3px}
.dm-val-header p{font-size:12px;color:var(--text2);line-height:1.5}
.dm-val-body{padding:0 22px 20px}
.dm-val-missing{background:var(--surface2);border:1px solid var(--border);border-radius:8px;padding:12px 14px;margin-bottom:12px}
.dm-val-missing-title{font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:0.08em;color:var(--text3);margin-bottom:8px}
.dm-val-missing-list{display:flex;flex-direction:column;gap:5px}
.dm-val-missing-item{display:flex;align-items:center;gap:8px;font-size:12px;color:var(--red);font-weight:600;font-family:'DM Mono',monospace}
.dm-val-missing-item::before{content:'✕';font-size:10px;font-weight:800;background:#fff0f0;width:18px;height:18px;border-radius:4px;display:flex;align-items:center;justify-content:center;flex-shrink:0}
.dm-val-hint{display:flex;align-items:flex-start;gap:8px;background:var(--blue-dim);border:1px solid rgba(25,113,194,0.2);border-radius:8px;padding:10px 12px}
.dm-val-hint p{font-size:11px;color:var(--blue);line-height:1.55;font-weight:500}
.dm-val-footer{padding:14px 22px 18px;display:flex;justify-content:flex-end;gap:8px;border-top:1px solid var(--border)}
.dm-val-btn-close{font-size:12px;font-weight:700;padding:8px 18px;border-radius:var(--radius);cursor:pointer;border:1.5px solid var(--border2);background:var(--surface);color:var(--text);font-family:'Plus Jakarta Sans',sans-serif;transition:all 0.15s}
.dm-val-btn-close:hover{border-color:var(--blue);color:var(--blue);background:var(--blue-dim)}
.dm-val-btn-help{font-size:12px;font-weight:700;padding:8px 18px;border-radius:var(--radius);cursor:pointer;border:1.5px solid var(--blue);background:var(--blue);color:#fff;font-family:'Plus Jakarta Sans',sans-serif;transition:all 0.15s}
.dm-val-btn-help:hover{background:#1560a8}

/* ==================== SIG - Checklists ISO / SA8000 ==================== */
.iso-menu-grid{flex:0 0 50%;overflow-y:auto;padding:26px;display:grid;grid-template-columns:repeat(auto-fit,var(--tile-col));justify-content:center;align-content:center;gap:18px;box-sizing:border-box;}
.iso-detail-body{flex:1;overflow-y:auto;padding:18px 22px;}
.iso-card{background:#fff;border:1.5px solid #d3e0ef;border-radius:14px;padding:20px 16px;cursor:pointer;text-align:center;}
.iso-card:hover{border-color:#0a3d8a;}
.iso-card-icono{font-size:32px;margin-bottom:6px;}
.iso-card-nombre{font-weight:800;color:#0a1e50;font-size:16px;}
.iso-card-sub{font-size:12px;color:#5a7290;margin:4px 0 10px;}
.iso-card-pct{font-size:22px;font-weight:800;color:#1e7a3c;}

.iso-dash{display:flex;align-items:center;gap:24px;background:#f3f8ff;border:1px solid #d3e0ef;border-radius:14px;padding:18px 22px;margin-bottom:20px;flex-wrap:wrap;}
.iso-dash-donut{position:relative;width:120px;height:120px;flex-shrink:0;}
.iso-dash-donut-label{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-size:24px;font-weight:800;color:#0a1e50;}
.iso-dash-info{flex:1;min-width:220px;}
.iso-dash-titulo{font-weight:800;color:#0a1e50;font-size:15px;}
.iso-dash-sub{font-size:12px;color:#5a7290;margin:2px 0 10px;}
.iso-dash-areas{display:flex;flex-direction:column;gap:6px;}
.iso-area-bar{display:grid;grid-template-columns:150px 1fr 40px;align-items:center;gap:8px;font-size:11px;color:#334a66;}
.iso-area-bar-track{background:#e2ecf7;border-radius:6px;height:8px;overflow:hidden;}
.iso-area-bar-fill{background:linear-gradient(90deg,#1e7a3c,#2fa657);height:100%;border-radius:6px;transition:width .25s;}
.iso-btn-reporte{background:#0a3d8a;color:#fff;border:none;border-radius:10px;padding:10px 18px;font-weight:700;cursor:pointer;white-space:nowrap;}
.iso-btn-reporte:hover{background:#0a2e66;}

.iso-area-block{background:#fff;border:1px solid #e2ecf7;border-radius:10px;margin-bottom:12px;overflow:hidden;}
.iso-area-header{background:#eaf2fb;padding:9px 14px;font-weight:700;color:#0a1e50;font-size:13.5px;display:flex;justify-content:space-between;}
.iso-area-pct{color:#1e7a3c;}

.iso9001-hub-top{padding:16px 26px 0;}
.iso9001-hub-badge{display:inline-block;background:#eaf2fb;color:#0a3d8a;font-weight:700;font-size:12.5px;padding:6px 14px;border-radius:20px;border:1px solid #d3e0ef;}
.iso9001-hub-grid{flex:0 0 50%;overflow-y:auto;padding:18px 26px 26px;display:grid;grid-template-columns:repeat(auto-fit,var(--tile-col));justify-content:center;align-content:center;gap:16px;box-sizing:border-box;}
.iso9001-hub-card{background:#fff;border:1.5px solid #d3e0ef;border-radius:14px;padding:0 0 16px;cursor:pointer;text-align:center;overflow:hidden;transition:.15s;box-shadow:0 1px 3px rgba(10,30,80,.06);}
.iso9001-hub-card:hover{transform:translateY(-2px);box-shadow:0 4px 12px rgba(10,30,80,.14);border-color:var(--cat-color);}
.iso9001-hub-card-top{background:var(--cat-color);padding:16px 0;}
.iso9001-hub-card-icono{font-size:28px;}
.iso9001-hub-card-nombre{font-weight:800;color:#0a1e50;font-size:14px;margin:12px 10px 4px;}
.iso9001-hub-card-sub{font-size:11px;color:#5a7290;margin:0 10px 10px;min-height:28px;}
.iso9001-hub-card-pct{font-size:20px;font-weight:800;}
.iso-item{display:flex;align-items:center;gap:10px;padding:9px 14px;border-top:1px solid #f0f4fa;font-size:13.5px;color:#213652;cursor:pointer;}
.iso-item:hover{background:#f7fafd;}
.iso-item input[type=checkbox]{width:17px;height:17px;accent-color:#1e7a3c;cursor:pointer;}

/* ═══ IMPRESIÓN — Informe de Ingresos ═══ */
@media print {
  body * { visibility: hidden; }

  /* ══ REQUERIMIENTOS EMO — A4 LIMPIO ══ */
  /* CASO 1: Impresión desde tabla general (lista de requerimientos) */
  #screen-rrhh-emo-requerimientos > #emo-req-print-area,
  #screen-rrhh-emo-requerimientos > #emo-req-print-area * { visibility: visible; }
  #screen-rrhh-emo-requerimientos > #emo-req-print-area { position: relative; left: auto; top: auto; width: 100%; padding: 0; margin: 0; display: block !important; }
  #screen-rrhh-emo-requerimientos > #emo-req-print-area .no-print { display: none !important; }
  #screen-rrhh-emo-requerimientos > #emo-req-print-area * { visibility: visible; }

  /* CASO 2: Impresión desde modal detalle (requerimiento individual) */
  body.print-emo-detail #modal-emo-req-detalle #emo-req-print-area,
  body.print-emo-detail #modal-emo-req-detalle #emo-req-print-area * { visibility: visible; }
  body.print-emo-detail #modal-emo-req-detalle #emo-req-print-area { position: relative; width: 100%; padding: 0; margin: 0; display: block !important; }
  body.print-emo-detail #modal-emo-req-detalle #emo-req-print-area .no-print { display: none !important; }

  /* Ocultar tabla general cuando se imprime desde modal */
  body.print-emo-detail #screen-rrhh-emo-requerimientos > #emo-req-print-area { visibility: hidden; }

  /* A4 portrait con márgenes y tabla limpia */
  @page { size: A4 portrait; margin: 10mm; }
  #screen-rrhh-emo-requerimientos #emo-req-print-area { background: #fff; }

  /* ══ UNIDADES MÓVILES — impresión de la tabla del submódulo activo ══ */
  body.print-unidades #screen-unidades .um-table-area,
  body.print-unidades #screen-unidades .um-table-area * { visibility: visible; }
  body.print-unidades #screen-unidades .um-table-area { position: absolute; left: 0; top: 0; width: 100%; }
  body.print-unidades #screen-unidades .um-print-title { display: block !important; visibility: visible; }
  body.print-unidades #screen-unidades .um-print-title * { visibility: visible; }
  body.print-unidades .um-toolbar,
  body.print-unidades .app-header,
  body.print-unidades .status-bar,
  body.print-unidades .reg-pagination,
  body.print-unidades .um-detbtn { display: none !important; }
  body.print-unidades #screen-unidades .reg-table-wrap { overflow: visible !important; }
  body.print-unidades #screen-unidades .reg-table { font-size: 7.5px; width: 100%; table-layout: auto; }
  body.print-unidades #screen-unidades .reg-table th,
  body.print-unidades #screen-unidades .reg-table td { padding: 2px 3px; }
  body.print-unidades { -webkit-print-color-adjust: exact; print-color-adjust: exact; }

  /* Encabezado con espacio suficiente */
  #screen-rrhh-emo-requerimientos #emo-req-print-area > div:first-child {
    text-align: center;
    margin: 0 0 12mm 0;
    padding: 0;
    page-break-after: avoid;
  }
  #screen-rrhh-emo-requerimientos #emo-req-print-area > div:first-child div:first-child {
    font-size: 12px;
    font-weight: 700;
    color: #0a1e50;
    margin: 0 0 4mm 0;
    padding: 0;
    line-height: 1.2;
  }
  #screen-rrhh-emo-requerimientos #emo-req-print-area > div:first-child div:last-child {
    font-size: 9px;
    color: #6688aa;
    margin: 0;
    padding: 0;
  }

  /* Tabla con espacios claros */
  #screen-rrhh-emo-requerimientos #emo-req-print-area .calib-table-wrap {
    overflow: visible !important;
    max-height: none !important;
    margin: 0;
    padding: 0;
  }
  #screen-rrhh-emo-requerimientos #emo-req-print-area .calib-table {
    width: 100%;
    font-size: 9px;
    border-collapse: collapse;
    margin: 0;
    padding: 0;
  }
  #screen-rrhh-emo-requerimientos #emo-req-print-area .calib-table thead { background: #0a1e50; color: #fff; }
  #screen-rrhh-emo-requerimientos #emo-req-print-area .calib-table th,
  #screen-rrhh-emo-requerimientos #emo-req-print-area .calib-table td { padding: 2.5mm; border: 1px solid #999; text-align: left; word-break: break-word; }
  #screen-rrhh-emo-requerimientos #emo-req-print-area .calib-table th { font-weight: 700; font-size: 8px; }
  #screen-rrhh-emo-requerimientos #emo-req-print-area .calib-table tbody tr { page-break-inside: avoid; break-inside: avoid; }

  #screen-rrhh-emo-requerimientos #emo-req-print-area > div:last-child { text-align: right; font-size: 10px; font-weight: 700; color: #0a1e50; padding: 4mm 0 0 0; }

  /* ══ OTRAS ÁREAS DE IMPRESIÓN ══ */
  #inf-ing-print-area, #inf-ing-print-area * { visibility: visible; }
  #inf-ing-print-area { position: absolute; left: 0; top: 0; width: 100%; }
  #inf-ing-print-area .no-print { display: none !important; }
  /* Modulo Salidas (pantalla). */
  #alm-ts-print-area, #alm-ts-print-area * { visibility: visible; }
  #alm-ts-print-area { position: absolute; left: 0; top: 0; width: 100%; padding: 15px; display: block !important; min-height: 0 !important; }
  #alm-ts-print-area .no-print { display: none !important; }
  /* En pantalla la tabla vive en un contenedor con scroll; al imprimir debe fluir completa. */
  #alm-ts-print-area .inv-table-wrap { overflow: visible !important; max-height: none !important; height: auto !important; }
  #alm-ts-print-area .alm-ts-print-titulo { display: block !important; font-size: 15px; font-weight: 700; color: #0a1e50; margin-bottom: 10px; }
  #alm-ts-print-area .inv-table { font-size: 9px; }
  #alm-ts-print-area .inv-table th, #alm-ts-print-area .inv-table td { padding: 3px 4px; }
  @page { size: landscape; margin: 10mm; }
  #rep-ing-print-area, #rep-ing-print-area * { visibility: visible; }
  #rep-ing-print-area { position: absolute; left: 0; top: 0; width: 100%; padding: 20px; }
  #rep-ing-print-area .no-print { display: none !important; }
  #calib-print-area, #calib-print-area * { visibility: visible; }
  #calib-print-area { position: absolute; left: 0; top: 0; width: 100%; padding: 15px; }
  #calib-print-area .no-print { display: none !important; }
  #calib-print-area .rep-mb { display: flex !important; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; }
  #calib-print-area .rep-mb-emp { flex: 1; min-width: 200px; }
  #calib-print-area .rep-mb-razon { font-size: 13px !important; }
  #calib-print-area .rep-mb-datos { display: flex; gap: 8px; flex-wrap: wrap; min-width: unset; text-align: left; }
  #calib-print-area .rep-mb-dato { margin-bottom: 0 !important; padding: 3px 8px !important; }
  #seg-eq-print-area, #seg-eq-print-area * { visibility: visible; }
  #seg-eq-print-area { position: absolute; left: 0; top: 0; width: 100%; padding: 20px; }
  #seg-eq-print-area .no-print { display: none !important; }
  #lab-inv-print-area, #lab-inv-print-area * { visibility: visible; }
  #lab-inv-print-area { position: absolute; left: 0; top: 0; width: 100%; padding: 15px; }
  #lab-inv-print-area .no-print { display: none !important; }
  #lab-inv-print-area .rep-mb { display: flex !important; justify-content: space-between; align-items: flex-start; gap: 12px; flex-wrap: wrap; }
  #lab-inv-print-area .rep-mb-emp { flex: 1; min-width: 200px; }
  #lab-inv-print-area .rep-mb-razon { font-size: 13px !important; }
  #lab-inv-print-area .rep-mb-datos { display: flex; gap: 8px; flex-wrap: wrap; min-width: unset; text-align: left; }
  #lab-inv-print-area .rep-mb-dato { margin-bottom: 0 !important; padding: 3px 8px !important; }
  .rep-print-target, .rep-print-target * { visibility: visible; }
  .rep-print-target { position: absolute; left: 0; top: 0; width: 100%; padding: 20px; }
  .rep-print-target .no-print { display: none !important; }

  /* Evita que los campos (Modelo, Color, etc.) se salgan del marco del fieldset al imprimir */
  fieldset.sub-cfg-fieldset > div[style*="grid-template-columns:1fr 1fr 1fr"] { grid-template-columns:1fr 1fr !important; }
  .sub-cfg-fieldset { overflow:hidden; }
  .sub-cfg-row { min-width:0; }
  .sub-cfg-label { min-width:88px; font-size:11.5px; }
  .sub-cfg-input { font-size:11.5px; padding:0 8px; text-overflow:ellipsis; }

  /* Declaración de Operatividad — fuerza 2 hojas, cada una con su propio bloque de firmas */
  @page { size: A4; margin: 10mm; }
  .mdo-hoja { page-break-after: always; break-after: page; border-width: 0 !important; margin-top: 0 !important; }
  .mdo-hoja:last-of-type { page-break-after: auto; break-after: auto; }
  .mdo-hoja + .mdo-hoja::before { display: none !important; }

  /* Declaración de Operatividad — compactado de impresión.
     El checklist llega a 92 criterios (rodillo) y en pantalla cada fila mide
     unos 46px, con lo que el documento salía en 14 hojas. Aquí se imprime como
     una tabla densa: ~3 hojas, sin cortar filas por la mitad. */
  .rep-print-target { padding: 0 !important; }
  .rep-print-target .umchk-area-block { margin-bottom: 3px; border-radius: 0; }
  .rep-print-target .umchk-area-header { padding: 2px 6px; font-size: 9px; }
  .rep-print-target .umchk-row {
    grid-template-columns: 18px 1fr 88px 150px;
    gap: 5px; padding: 0 5px; min-height: 0;
    page-break-inside: avoid; break-inside: avoid;
  }
  .rep-print-target .umchk-row-num { font-size: 7px; }
  .rep-print-target .umchk-row-criterio { font-size: 7.8px; line-height: 1.12; font-weight: 600; }
  .rep-print-target .umchk-row-evalua,
  .rep-print-target .umchk-obs-alerta,
  .rep-print-target .umchk-area-pct { display: none !important; }
  .rep-print-target .umchk-opt { font-size: 6.6px; padding: 0 3px; gap: 2px; border-width: 1px; }
  .rep-print-target .umchk-opt input { width: 7px; height: 7px; }
  .rep-print-target .umchk-obs-input { height: 11px; font-size: 7px; padding: 0 3px; border-width: 1px; }
  .rep-print-target .umchk-row-badge { font-size: 7px; padding: 0 2px; }

  /* Encabezado, fichas de datos y textos de la hoja */
  .rep-print-target fieldset { margin: 0 0 3px; padding: 2px 6px; }
  .rep-print-target legend { font-size: 8.2px; }
  .rep-print-target .sub-cfg-row { margin: 1px 0; }
  .rep-print-target .sub-cfg-label { min-width: 68px; font-size: 7.8px; }
  .rep-print-target .sub-cfg-input { font-size: 7.8px; height: 14px; padding: 0 4px; }
  .rep-print-target textarea { font-size: 7.8px; line-height: 1.15; }
  .rep-print-target p { margin: 1px 0; font-size: 7.8px; }
}

/* ═══ Declaración de Operatividad — separador visual entre hoja 1 y hoja 2 en pantalla ═══ */
.mdo-hoja + .mdo-hoja { margin-top: 22px; position: relative; }
.mdo-hoja + .mdo-hoja::before { content: "── FIN HOJA 1 / INICIO HOJA 2 ──"; display: block; text-align: center; font-size: 10.5px; font-weight: 700; color: #8899aa; letter-spacing: .5px; margin-bottom: 10px; }

/* ═══ Módulo de Reportes — membrete de empresa ═══ */
.rep-membrete{padding:6px 4px;}


/* ═══ UNIDADES MÓVILES — badges de estado y alarmas de Notificaciones ═══ */
.um-badge{display:inline-block;padding:3px 10px;border-radius:12px;font-size:11px;font-weight:700;white-space:nowrap;}
.um-badge-vigente{background:#e2f5e6;color:#1a7a30;}
.um-badge-porvencer{background:#fff2d6;color:#a86a00;}
.um-badge-venc{background:#fbe0e0;color:#a02020;}
.um-badge-nd{background:#eaeef4;color:#5a6a80;}
.um-badge-vendido{background:#e4e0f0;color:#5b3a8a;}
.um-badge-prog{background:#dce8f8;color:#1a5aa0;}

/* Editor de restricciones EMO */
.emo-restricciones-box{border:1px solid #d7e1ee;border-radius:8px;background:#f8fafd;padding:8px;display:flex;flex-direction:column;gap:6px;}
.emo-restricciones-list{display:flex;flex-direction:column;gap:4px;max-height:180px;overflow-y:auto;}
.emo-restricciones-item{display:flex;align-items:center;gap:8px;background:#fff;border:1px solid #e0e8f0;border-radius:6px;padding:6px 10px;font-size:12px;}
.emo-restricciones-item-num{font-weight:800;color:#1a5aa0;min-width:22px;text-align:right;}
.emo-restricciones-item-text{flex:1;color:#1a1a1a;}
.emo-restricciones-item-del{background:none;border:none;color:#c04040;font-size:14px;cursor:pointer;padding:0 4px;line-height:1;}
.emo-restricciones-item-del:hover{color:#a02020;}
.emo-restricciones-add{display:flex;gap:6px;align-items:center;}
.emo-restricciones-vacio{font-size:11px;color:#8ea0ba;text-align:center;padding:6px 0;}

/* Seguimiento de Capacitaciones */
.capseg-badge{display:inline-block;padding:2px 8px;border-radius:10px;font-size:10px;font-weight:700;}

/* Tabs dentro del Programa de Capacitación */
.capseg-tabs{display:flex;gap:0;border-bottom:2px solid #d7e1ee;padding:0 16px;background:#f4f8fc;border-radius:10px 10px 0 0;margin:0 16px;}
.capseg-tab{padding:10px 18px;font-size:12px;font-weight:700;color:#5a6a80;background:none;border:none;border-bottom:3px solid transparent;cursor:pointer;transition:all .15s;}
.capseg-tab:hover{color:#1a3e8a;}
.capseg-tab.active{color:#1a3e8a;border-bottom-color:#1a5aa0;background:#fff;border-radius:8px 8px 0 0;}

/* Matriz de Seguimiento */
.capseg-matriz-container{padding:16px;display:flex;flex-direction:column;gap:12px;}
.capseg-matriz-toolbar{display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:10px;padding:10px 14px;background:#f4f8fc;border:1px solid #d7e1ee;border-radius:8px;}
.capseg-matriz-body{display:grid;grid-template-columns:350px 1fr;gap:0;border:1px solid #d7e1ee;border-radius:8px;overflow:hidden;max-height:520px;}
.capseg-matriz-personal{overflow-y:auto;border-right:2px solid #d7e1ee;background:#fff;}
.capseg-matriz-asistencia{overflow-y:auto;background:#fafbfd;}
.capseg-matriz-header-personal,.capseg-matriz-header-asistencia{padding:10px 14px;font-size:12px;font-weight:800;color:#1a3e8a;background:#eef3fb;border-bottom:1px solid #d7e1ee;position:sticky;top:0;z-index:2;}
.capseg-matriz-header-asistencia{background:#f0f6fc;}
.capseg-matriz-row-personal{display:grid;grid-template-columns:30px 1fr;gap:6px;padding:7px 10px;border-bottom:1px solid #f0f3f8;font-size:12px;align-items:center;}
.capseg-matriz-row-personal:hover{background:#f8fafd;}
.capseg-matriz-row-personal.capseg-mat-presente{background:#e8f5e9;border-left:3px solid #1a7a30;}
.capseg-matriz-row-personal.capseg-mat-ausente{background:#fff8f0;border-left:3px solid #e8a838;}
.capseg-mat-row-num{font-weight:700;color:#8ea0ba;font-size:11px;}
.capseg-mat-row-name{font-weight:600;color:#1a1a1a;}
.capseg-mat-row-emp{font-size:10px;color:#8ea0ba;display:none;}
.capseg-matriz-row-asistencia{padding:7px 14px;border-bottom:1px solid #f0f3f8;display:flex;align-items:center;}
.capseg-matriz-row-asistencia.capseg-mat-checked{background:#e8f5e9;}
.capseg-mat-check-label{display:flex;align-items:center;gap:8px;cursor:pointer;font-size:12px;}
.capseg-mat-check-label input[type="checkbox"]{width:16px;height:16px;accent-color:#1a7a30;}
.capseg-mat-check-text{color:#5a6a80;font-weight:600;}
.capseg-mat-checked .capseg-mat-check-text{color:#1a7a30;}

/* Matriz General de EPPs */
#eppmat-table{font-size:11px;}
#eppmat-table th{position:sticky;top:0;z-index:3;background:#eef3fb;}
#eppmat-table td{white-space:nowrap;}
.noti-item{background:#fff;border:1.5px solid #e0e6ef;border-left:6px solid #5a6a80;border-radius:10px;padding:10px 14px;margin-bottom:10px;}
.noti-item.um-badge-venc{border-left-color:#a02020;background:#fff7f7;}
.noti-item.um-badge-porvencer{border-left-color:#e8a010;background:#fffdf5;}
.noti-item-top{font-size:14px;color:#0a1e50;margin-bottom:4px;}
.noti-item-body{font-size:12.5px;color:#3a4a60;}

/* ═══ UNIDADES MÓVILES v2 — toolbar superior, modales, checklist ═══ */
.um-toolbar{display:flex;align-items:center;gap:16px;flex-wrap:wrap;padding:10px 18px;background:#c8ddf0;border-bottom:1.5px solid #90b8d8;}
.um-toolbar-search{display:flex;align-items:center;gap:8px;}
.um-toolbar-btns{display:flex;gap:8px;flex-wrap:wrap;}
.um-tbtn{height:36px;padding:0 14px;border:none;border-radius:8px;font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;font-size:12px;font-weight:700;color:#fff;cursor:pointer;transition:filter .15s;}
.um-tbtn:hover{filter:brightness(1.08);}
.um-tbtn-add{background:#1a3e8a;}
.um-tbtn-edit{background:#e8a010;}
.um-tbtn-del{background:#a02020;}
.um-tbtn-excel{background:#1a7a30;}
.um-tbtn-sql{background:#7a3fa0;}
.um-table-area{flex:1;display:flex;flex-direction:column;padding:12px 18px;overflow:hidden;}
.um-form-section-title{font-size:12.5px;font-weight:800;color:#1a3e8a;margin:16px 0 8px;padding-bottom:4px;border-bottom:2px solid #d3e0ef;}
.um-form-section-title:first-child{margin-top:0;}
.um-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px 14px;}
.um-insp-table-wrap{max-height:320px;overflow-y:auto;border:1.5px solid #88a8c8;border-radius:8px;}
.um-insp-table-wrap .reg-table{font-size:11px;}
.um-insp-table-wrap .reg-table th{position:sticky;top:0;z-index:2;}
.um-checklist-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px 14px;}
.um-chk{display:flex;align-items:flex-start;gap:8px;font-size:13px;color:#0a1e50;font-weight:600;background:#eef4fb;padding:8px 12px;border-radius:8px;border:1.5px solid #d3e0ef;cursor:pointer;line-height:1.35;}
.um-chk input{width:17px;height:17px;accent-color:#1a7a30;cursor:pointer;flex-shrink:0;margin-top:2px;}

/* Dropdown checklist styles */
.mhc-checklist-dropdown{position:relative;}
.mhc-checklist-toggle{display:flex;align-items:center;gap:8px;width:100%;padding:10px 14px;background:#f7fafd;border:1.5px solid #c8d8ea;border-radius:8px;color:#0a1e50;font-size:13px;font-weight:600;cursor:pointer;text-align:left;box-sizing:border-box;}
.mhc-checklist-toggle:hover{background:#eef4fb;border-color:#88a8c8;}
.mhc-checklist-toggle:focus{outline:none;border-color:#1a3e8a;box-shadow:0 0 0 2px rgba(26,62,138,0.2);}
.mhc-checklist-label{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.mhc-checklist-arrow{font-size:10px;color:#5a6a80;transition:transform 0.2s;}
.mhc-checklist-count{font-size:11px;color:#1a3e8a;font-weight:700;margin-left:auto;}
.mhc-checklist-panel{position:absolute;top:100%;left:0;right:0;z-index:100;background:#fff;border:1.5px solid #88a8c8;border-radius:8px;box-shadow:0 8px 24px rgba(0,0,0,0.15);margin-top:4px;max-height:300px;overflow-y:auto;padding:8px;display:flex;flex-direction:column;gap:4px;}
.mhc-checklist-panel .um-chk{background:#fff;border-color:#e0e6ef;}
.mhc-checklist-panel .um-chk:hover{background:#f0f5fb;border-color:#c8d8ea;}
.mhc-checklist-panel .calib-btn{background:#eef4fb;color:#1a3e8a;border:1px solid #c8d8ea;}
.mhc-checklist-panel .calib-btn:hover{background:#dce6f5;}
.um-print-title{display:none;}
.um-cols-dropdown{display:inline-block;}
.um-cols-dropdown .um-cols-panel{left:auto;right:0;width:250px;z-index:200;}
.um-row-view{cursor:pointer;width:32px;text-align:center;}
.um-det-section{margin-bottom:18px;}
.um-det-title{font-size:13px;font-weight:800;color:#1a3e8a;margin-bottom:8px;padding-bottom:4px;border-bottom:2px solid #d3e0ef;}
.um-det-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px 16px;}
.um-det-item{background:#f7fafd;border:1.5px solid #e0e6ef;border-radius:8px;padding:8px 12px;}
.um-det-item .lbl{font-size:10.5px;color:#5a6a80;font-weight:700;text-transform:uppercase;margin-bottom:2px;}
.um-det-item .val{font-size:13.5px;color:#0a1e50;font-weight:700;}
.um-det-item input.sub-cfg-input,.um-det-item select.sub-cfg-input{width:100%;height:32px;}
.um-detbtn{height:28px;padding:0 10px;border:none;border-radius:6px;background:#1a3e8a;color:#fff;font-size:11px;font-weight:700;cursor:pointer;white-space:nowrap;}
.um-detbtn:hover{filter:brightness(1.1);}

/* ═══ NOTIFICACIONES — botones de accion por alarma ═══ */
.noti-tags{display:flex;gap:6px;flex-wrap:wrap;margin-top:4px;}
.noti-tag{display:inline-block;padding:2px 8px;border-radius:10px;font-size:10.5px;font-weight:700;}
.noti-tag-record{background:#e8f0ff;color:#1a3e8a;}
.noti-tag-obs{background:#fff2d6;color:#8a5a00;}
.noti-item-btns{display:flex;gap:8px;flex-wrap:wrap;margin-top:8px;}
.noti-btn{height:28px;padding:0 12px;border:none;border-radius:6px;font-size:11.5px;font-weight:700;cursor:pointer;color:#fff;}
.noti-btn:hover{filter:brightness(1.1);}
.noti-btn-record{background:#1a3e8a;}
.noti-btn-obs{background:#c78300;}
.noti-btn-arch{background:#5a6a80;}
.noti-btn-restore{background:#1a7a30;}
.noti-item-archivada{opacity:.85;border-left-color:#8899aa;}

/* ═══ DASHBOARD — layout con barra lateral de filtros y gráficos ═══ */
.dash-layout{display:flex;flex:1;overflow:hidden;position:relative;background:#f4f7fb;}
.dash-sidebar{width:210px;flex-shrink:0;background:#0a1e50;color:#fff;padding:16px 14px;display:flex;flex-direction:column;gap:8px;overflow-y:auto;transition:margin-left .22s ease;}
.dash-sidebar.dash-sidebar-hidden{margin-left:-210px;}
.dash-sidebar-head{display:flex;align-items:center;justify-content:space-between;font-size:13px;font-weight:800;letter-spacing:.3px;margin-bottom:6px;color:#fff;}
.dash-sidebar-close{background:rgba(255,255,255,.12);border:none;color:#fff;width:24px;height:24px;border-radius:5px;cursor:pointer;font-size:14px;line-height:1;}
.dash-sidebar-close:hover{background:rgba(255,255,255,.25);}
.dash-filter-label{font-size:10.5px;font-weight:700;color:#bcd0ff;text-transform:uppercase;letter-spacing:.4px;margin-top:4px;}
.dash-filter-input{height:32px;border-radius:6px;border:1.5px solid #24408a;background:#132a68;color:#fff;padding:0 8px;font-size:12px;width:100%;box-sizing:border-box;}
.dash-filter-input::-webkit-calendar-picker-indicator{filter:invert(1);}
.dash-filter-clear{margin-top:12px;height:32px;border:1.5px solid rgba(255,255,255,.35);background:transparent;color:#fff;border-radius:6px;font-size:11.5px;font-weight:700;cursor:pointer;}
.dash-filter-clear:hover{background:rgba(255,255,255,.12);}
.dash-filter-note{margin-top:10px;font-size:10.5px;color:#a8bcec;line-height:1.4;border-top:1px solid rgba(255,255,255,.15);padding-top:10px;}
.dash-sidebar-toggle{position:absolute;top:10px;left:10px;z-index:5;width:30px;height:30px;border:none;border-radius:6px;background:#0a1e50;color:#fff;font-size:14px;cursor:pointer;display:none;}
.dash-sidebar.dash-sidebar-hidden ~ .dash-sidebar-toggle{display:block;}
/* Texto en negro/oscuro para mayor legibilidad en todo el dashboard */
.dash-chart-title{color:#0a0a0a !important;font-weight:800;}
.dash-kpi-label{color:#0a0a0a !important;}
.dash-kpi-sub{color:#222 !important;}
.dash-filter-resumen,#dash-filter-resumen{color:#a8bcec;}
/* Gráfico de barras (SVG) */
.dash-bar-row{display:flex;align-items:center;gap:8px;margin-bottom:6px;}
.dash-bar-label{width:92px;font-size:10.5px;color:#0a0a0a;font-weight:700;flex-shrink:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.dash-bar-track{flex:1;height:14px;background:#e2eaf5;border-radius:4px;overflow:hidden;}
.dash-bar-fill{height:100%;border-radius:4px;}
.dash-bar-val{width:70px;text-align:right;font-size:10.5px;color:#0a0a0a;font-weight:800;flex-shrink:0;}
.dash-pie-legend{display:flex;flex-direction:column;gap:5px;font-size:10.5px;color:#0a0a0a;font-weight:700;}
.dash-pie-legend span.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px;}

/* ═══ MENÚ PRINCIPAL — grilla de tiles (estilo imagen de referencia) ═══ */
.menu-grid-wrap{flex:1;display:flex;flex-direction:column;justify-content:flex-start;gap:22px;padding:clamp(16px,2vw,32px);overflow-y:auto;background:var(--surface-screen);}
.menu-grid{--tile-col:clamp(185px,15.5vw,235px);display:grid;grid-template-columns:repeat(auto-fit,var(--tile-col));justify-content:start;gap:clamp(14px,1.3vw,22px);max-width:1700px;margin:0;width:100%;}
.menu-grid .mod-tile-3d:has(img[alt="SIG"]),
.menu-grid .mod-tile-3d:has(img[alt="Almacén"]),
.menu-grid .mod-tile-3d:has(img[alt="Laboratorio"]){
  width:clamp(160px,13vw,210px);height:clamp(160px,13vw,210px);justify-self:center;
}
.mod-tile{
  aspect-ratio:1/1;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;
  background:linear-gradient(160deg,#1f4fae,#0f2c72);border:1.5px solid #2a5ec2;border-radius:16px;
  color:#fff;cursor:pointer;padding:10px 6px;text-align:center;
  box-shadow:0 4px 10px rgba(10,30,80,.25),inset 0 1px 0 rgba(255,255,255,.08);transition:transform .2s cubic-bezier(.2,.8,.2,1),box-shadow .2s cubic-bezier(.2,.8,.2,1),background .2s ease;
}
.mod-tile:hover{transform:translateY(-4px) scale(1.02);box-shadow:0 12px 24px rgba(10,30,80,.4),0 0 0 2px #4a7ec8;background:linear-gradient(160deg,#2a5ec2,#173a90);}
.mod-tile:active{transform:translateY(-1px) scale(1.005);}
.mod-tile-icon{font-size:clamp(24px,2.2vw,34px);line-height:1;filter:drop-shadow(0 2px 4px rgba(0,0,0,.3));}
.mod-tile-label{font-size:clamp(10.5px,.85vw,12.5px);font-weight:700;line-height:1.25;}

/* ═══ Tile con logo propio a pantalla completa + efecto 3D e iluminación (Almacén) ═══ */
.mod-tile-3d{position:relative;overflow:hidden;padding:0;background:none;border:none;border-radius:18px;box-shadow:0 8px 20px rgba(5,15,40,.45),inset 0 1px 0 rgba(255,255,255,.08);transition:transform .22s cubic-bezier(.2,.8,.2,1),box-shadow .22s cubic-bezier(.2,.8,.2,1);}
.mod-tile-3d::after{content:'';position:absolute;inset:0;border-radius:18px;background:linear-gradient(115deg,rgba(255,255,255,.32) 0%,rgba(255,255,255,0) 26%);opacity:0;transition:opacity .25s ease;pointer-events:none;}
.mod-tile-3d:hover::after{opacity:1;}
.mod-tile-3d .mod-tile-label{display:none;}
.mod-tile-3d .mod-tile-icon-img{display:block;width:100%;height:100%;position:absolute;inset:0;}
.mod-tile-3d .mod-tile-icon-img img{width:100%;height:100%;object-fit:cover;border-radius:14px;display:block;transition:transform .22s cubic-bezier(.2,.8,.2,1);}
.mod-tile-3d:hover{transform:translateY(-6px) scale(1.035);box-shadow:0 18px 36px rgba(10,30,80,.62),0 0 0 2px #4a7ec8;}
.mod-tile-3d:active{transform:translateY(-2px) scale(1.01);box-shadow:0 8px 18px rgba(10,30,80,.5),0 0 0 2px #4a7ec8;}
.mod-tile-3d:hover .mod-tile-icon-img img{transform:none;filter:none;}
@keyframes tileIn{from{opacity:0;transform:translateY(10px) scale(.96);}to{opacity:1;transform:translateY(0) scale(1);}}

/* ═══ Hub de tiles — Flujo de Abastecimiento (Logística) / Flujo de Obra (Obras) ═══ */
.flujo-hub-body{flex:1;overflow-y:auto;background:#eef3fa;padding:22px clamp(18px,3vw,40px);}
.flujo-tile-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:18px;max-width:1200px;margin:0 auto;}
.flujo-tile{position:relative;aspect-ratio:1;border-radius:18px;border:none;padding:14px 10px;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;background:linear-gradient(160deg,#17398c,#0c2868);box-shadow:0 8px 20px rgba(5,15,40,.45),inset 0 1px 0 rgba(255,255,255,.08);transition:transform .22s cubic-bezier(.2,.8,.2,1),box-shadow .22s cubic-bezier(.2,.8,.2,1);animation:tileIn .5s ease both;}
.flujo-tile:hover{transform:translateY(-6px) scale(1.035);box-shadow:0 18px 36px rgba(10,30,80,.62),0 0 0 2px #4a7ec8;}
.flujo-tile:active{transform:translateY(-2px) scale(1.01);}
.flujo-tile-icon{width:44px;height:44px;border-radius:12px;display:flex;align-items:center;justify-content:center;font-size:22px;box-shadow:0 3px 8px rgba(0,0,0,.3);flex-shrink:0;transition:transform .22s cubic-bezier(.2,.8,.2,1);}
.flujo-tile:hover .flujo-tile-icon{transform:scale(1.08);}
.flujo-tile-label{font-size:12px;font-weight:600;color:#e4edfa;text-align:center;line-height:1.25;}

.menu-grid .mod-tile{animation:tileIn .5s ease both;}
.menu-grid .mod-tile:nth-child(1){animation-delay:.02s;}
.menu-grid .mod-tile:nth-child(2){animation-delay:.05s;}
.menu-grid .mod-tile:nth-child(3){animation-delay:.08s;}
.menu-grid .mod-tile:nth-child(4){animation-delay:.11s;}
.menu-grid .mod-tile:nth-child(5){animation-delay:.14s;}
.menu-grid .mod-tile:nth-child(6){animation-delay:.17s;}
.menu-grid .mod-tile:nth-child(7){animation-delay:.2s;}
.menu-grid .mod-tile:nth-child(8){animation-delay:.23s;}
.menu-section{margin-bottom:8px;}
.menu-section-title{font-family:'Exo 2',sans-serif;font-size:13px;font-weight:700;color:#dce8fb;text-transform:uppercase;letter-spacing:.14em;padding:0 4px 10px;margin-bottom:16px;position:relative;display:flex;align-items:center;gap:8px;}
.menu-section-title::before{content:'';width:9px;height:9px;background:#29b6d8;flex-shrink:0;border-radius:2px;}
.menu-section-title::after{content:'';position:absolute;left:0;right:0;bottom:0;height:3px;border-radius:2px;background:linear-gradient(90deg,#29b6d8,rgba(41,182,216,.05));}
.menu-section-title.azul-oscuro{color:#1a3e8a;}
.menu-section-title.azul-oscuro::before{background:#1a3e8a;}
.menu-section-title.azul-oscuro::after{background:linear-gradient(90deg,#1a3e8a,rgba(26,62,138,.05));}

/* ═══ Menú principal — los PNG (icon-almacen.png, etc.) ya son la insignia
   completa (badge azul brillante + texto), igual que en los submenús de
   Almacén/Mantenimiento. Solo se muestra la imagen completa, sin caja
   ni etiqueta extra encima. ═══ */
.menu-grid .mod-tile-3d{
  background:transparent;border:none;border-radius:18px;
  padding:0;box-sizing:border-box;
  box-shadow:0 8px 20px rgba(5,15,40,.45),inset 0 1px 0 rgba(255,255,255,.08);
}
.menu-grid .mod-tile-3d:hover{box-shadow:0 12px 24px rgba(10,30,80,.4),0 0 0 2px #4a7ec8;}
.menu-grid .mod-tile-3d::after{display:none;}
.menu-grid .mod-tile-3d .mod-tile-icon-img{
  position:static;width:100%;height:100%;
}
.menu-grid .mod-tile-3d .mod-tile-icon-img img{
  width:100%;height:100%;object-fit:contain;object-position:center;
  border-radius:14px;background:transparent;
}
.menu-grid-brand{display:flex;align-items:center;justify-content:center;gap:16px;flex-wrap:wrap;}
.menu-grid-brand-badge{background:#fff;border:1px solid #dde5f0;border-radius:10px;padding:10px 16px;text-align:center;font-size:10px;font-weight:800;color:#1a3e8a;line-height:1.3;box-shadow:0 2px 6px rgba(0,0,0,.08);}

/* ═══ Logo de marca IA PROTEOS — decorativo, esquina inferior derecha ═══ */
#screen-menu{position:relative;}
.brand-corner-logo{
  position:absolute;bottom:105px;right:20px;width:clamp(140px,15vw,210px);height:auto;
  pointer-events:none;opacity:.92;z-index:2;filter:drop-shadow(0 2px 6px rgba(0,0,0,.15));
}
.menu-grid-brand-badge span{display:block;font-size:8.5px;font-weight:600;color:#5a6a80;margin-top:3px;max-width:170px;}
@media (max-width:900px){.menu-grid{grid-template-columns:repeat(4,1fr);}}

/* ═══ UNIDADES — reutiliza el mismo patrón de Almacén (.submenu-split /
   .submenu-tiles / .submenu-content-block, ver estilos.css ~línea 53).
   Solo se estiliza el contenido propio del bloque derecho: la pizarra
   de notificaciones. ═══ */
#screen-unidades-hub .submenu-content-block{align-items:stretch;justify-content:stretch;padding:clamp(16px,2vw,28px);box-sizing:border-box;}
#screen-almacen .submenu-content-block{align-items:stretch;justify-content:stretch;padding:clamp(16px,2vw,28px);box-sizing:border-box;}
#screen-laboratorio .submenu-content-block{align-items:stretch;justify-content:stretch;padding:clamp(16px,2vw,28px);box-sizing:border-box;}
#screen-sst-checklist-um .submenu-content-block{align-items:stretch;justify-content:stretch;padding:clamp(16px,2vw,28px);box-sizing:border-box;}
/* Check List de Unidades: submódulos de inspección como en Unidades, con
   barra lateral deslizante (scroll horizontal) para ver todas las categorías
   cuando son muchas o el panel se reduce. 2026-08-13 */
#screen-sst-checklist-um .submenu-tiles{
  grid-template-rows:repeat(4,min-content);
  grid-auto-flow:column;
  grid-auto-columns:var(--tile-col);
  overflow-x:auto;overflow-y:hidden;
  justify-content:start;align-content:start;
  scrollbar-width:thin;scrollbar-color:#4a7ab8 #dce5f2;
}
#screen-sst-checklist-um .submenu-tiles::-webkit-scrollbar{height:10px;}
#screen-sst-checklist-um .submenu-tiles::-webkit-scrollbar-track{background:#dce5f2;border-radius:8px;}
#screen-sst-checklist-um .submenu-tiles::-webkit-scrollbar-thumb{background:#4a7ab8;border-radius:8px;}
@media (max-height:620px){
  #screen-sst-checklist-um .submenu-tiles{grid-template-rows:repeat(2,min-content);}
}
.unidades-pizarra{flex:1;width:100%;display:flex;flex-direction:column;background:#fff;border:1px solid #d7e1ee;border-radius:16px;box-shadow:0 4px 14px rgba(10,30,80,.10);overflow:hidden;}
#screen-unidades-hub .unidades-pizarra{margin-top:48px;}
.unidades-pizarra-header{display:flex;align-items:center;gap:10px;padding:16px 20px;background:linear-gradient(160deg,#1f4fae,#0f2c72);color:#fff;}
  .unidades-pizarra-icon{font-size:20px;}
  .unidades-pizarra-titulo{font-size:15px;font-weight:800;letter-spacing:.3px;}
  .unidades-pizarra-btn{margin-left:auto;background:rgba(255,255,255,.15);border:none;border-radius:6px;padding:6px 12px;font-size:12px;color:#fff;cursor:pointer;transition:background .15s;}
  .unidades-pizarra-btn:hover{background:rgba(255,255,255,.3);}
.unidades-pizarra-body{flex:1;overflow-y:auto;padding:18px;display:flex;flex-direction:column;gap:10px;}
.unidades-pizarra-vacio{margin:auto;text-align:center;color:#7189a8;max-width:320px;}
.unidades-pizarra-vacio-icon{font-size:34px;display:block;margin-bottom:10px;opacity:.6;}
.unidades-pizarra-vacio p{margin:4px 0;font-size:13px;font-weight:700;color:#3a5a86;}
.unidades-pizarra-vacio-sub{font-size:11.5px !important;font-weight:500 !important;color:#8ea0ba !important;line-height:1.5;}
.mant-tiles{flex:0 0 50%;display:grid;grid-template-columns:repeat(auto-fit,var(--tile-col));grid-auto-rows:min-content;align-content:center;justify-content:center;gap:clamp(12px,1.4vw,20px);padding:clamp(20px,2.6vw,40px);box-sizing:border-box;}
.mant-tiles .mant-card{width:100%;aspect-ratio:1/1;padding:8px;}

/* ===== Pizarra de Notificaciones — items de observaciones pendientes (2026-07-13) ===== */
.unidades-pizarra-item{display:flex;align-items:flex-start;gap:12px;background:#fff5f0;border:1.3px solid #f0b088;border-radius:10px;padding:12px 14px;}
.unidades-pizarra-item-icon{font-size:20px;flex-shrink:0;}
.unidades-pizarra-item-body{flex:1;min-width:0;}
.unidades-pizarra-item-titulo{font-size:13px;font-weight:800;color:#a03810;}
.unidades-pizarra-item-sub{font-size:11.5px;font-weight:600;color:#3a5a86;margin-top:2px;}
.unidades-pizarra-item-obs{font-size:11.5px;font-style:italic;color:#6a4020;margin-top:3px;}
.unidades-pizarra-item-fecha{font-size:10px;color:#a08868;margin-top:4px;}
.unidades-pizarra-item-btn{flex-shrink:0;background:#1e7a3c;color:#fff;border:none;border-radius:6px;padding:8px 12px;font-size:11px;font-weight:700;cursor:pointer;white-space:nowrap;}
.unidades-pizarra-item-btn:hover{background:#166030;}

/* ===== Check List Unidades Móviles — rediseño en tarjetas (2026-07-13) ===== */
.umchk-area-block{background:#fff;border:1px solid #e2ecf7;border-radius:10px;margin-bottom:14px;overflow:hidden;}
.umchk-area-header{background:#eaf2fb;padding:9px 14px;font-weight:700;color:#0a1e50;font-size:13.5px;display:flex;justify-content:space-between;}
.umchk-area-pct{color:#1e7a3c;font-weight:800;}
.umchk-row{display:grid;grid-template-columns:32px 1fr auto 220px 70px;align-items:center;gap:12px;padding:9px 14px;border-top:1px solid #f0f4fa;transition:background .15s;}
.umchk-row:hover{background:#f7fafd;}
.umchk-row-no{background:#fffaf6;}
.umchk-row-num{font-size:12px;font-weight:800;color:#8899aa;text-align:center;}
.umchk-row-body{min-width:0;}
.umchk-row-criterio{font-size:12.5px;font-weight:700;color:#0a1e50;}
.umchk-row-evalua{font-size:10.5px;color:#6a7a92;margin-top:2px;}
.umchk-row-opciones{display:flex;gap:6px;}
.umchk-opt{display:flex;align-items:center;gap:4px;font-size:10.5px;font-weight:800;border-radius:6px;padding:5px 8px;cursor:pointer;border:1.3px solid transparent;white-space:nowrap;}
.umchk-opt input{width:14px;height:14px;cursor:pointer;}
.umchk-opt-na{background:#eef1f6;color:#6a7a92;}
.umchk-opt-si{background:#e3edfc;color:#0a4bbf;}
.umchk-opt-no{background:#dbe8fb;color:#0a2e7a;}
.umchk-row-obs{display:flex;flex-direction:column;gap:3px;}
.umchk-obs-input{height:28px;border:1.3px solid #c8d6e8;border-radius:6px;padding:0 8px;font-size:11px;outline:none;}
.umchk-obs-alerta{font-size:9.5px;font-weight:700;color:#c02020;}
.umchk-row-badge{text-align:center;font-size:11px;font-weight:800;border-radius:6px;padding:6px 4px;}
.umchk-badge-si{background:#1e7a3c;color:#fff;}
.umchk-badge-no{background:#c02020;color:#fff;}
.umchk-badge-na{background:#8899aa;color:#fff;}
.umchk-badge-vacio{background:#eef1f6;color:#aab4c4;}
@media (max-width:900px){.umchk-row{grid-template-columns:1fr;}.umchk-row-badge{justify-self:start;}}

/* ===== Evidencias fotográficas de inspección (2026-07-13) ===== */
.umchk-evidencias-panel{background:#f4f7fb;border:1.3px solid #dbe4f0;border-radius:10px;padding:12px 14px;margin-top:12px;}
.umchk-evidencias-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.umchk-evidencias-titulo{font-size:12.5px;font-weight:800;color:#0a1e50;}
.umchk-evid-add-btn{background:#1a3e8a;color:#fff;border:none;border-radius:6px;padding:7px 12px;font-size:11px;font-weight:700;cursor:pointer;}
.umchk-evid-grid{display:flex;flex-wrap:wrap;gap:10px;}
.umchk-evid-thumb{position:relative;width:100px;height:100px;border-radius:8px;overflow:hidden;border:1.3px solid #c8d6e8;background:#fff;}
.umchk-evid-thumb img{width:100%;height:100%;object-fit:cover;display:block;}
.umchk-evid-quitar{position:absolute;top:3px;right:3px;width:20px;height:20px;background:rgba(192,32,32,.9);color:#fff;border:none;border-radius:50%;font-size:11px;cursor:pointer;line-height:1;}
.umchk-evid-vacio{font-size:11.5px;color:#8ea0ba;padding:10px 0;}

/* ===== Check List de Unidades — Resultado, firmas y motivo de cambio (2026-08-12) ===== */
.umchk-resultados-panel{background:#f4f7fb;border:1.3px solid #dbe4f0;border-radius:10px;padding:12px 14px;margin-top:12px;}
.umchk-resultados-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;}
.umchk-resultados-titulo{font-size:12.5px;font-weight:800;color:#0a1e50;}
.umchk-checklist-grid{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:10px;}
.umchk-check-urgente{color:#a11;font-weight:800;}
.umchk-obs-generales{width:100%;min-height:64px;border:1.3px solid #c8d6e8;border-radius:8px;padding:8px 10px;font-size:12px;font-family:inherit;resize:vertical;outline:none;box-sizing:border-box;}
.umchk-firmas-form{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:12px;}
.umchk-firma-form-item{display:flex;flex-direction:column;gap:4px;}
.umchk-firma-form-item label{font-size:11px;font-weight:800;color:#0a1e50;}
@media (max-width:700px){.umchk-firmas-form{grid-template-columns:1fr;}}

/* ===== Íconos PNG para tiles de Mantenimiento y Laboratorio (2026-07-13) ===== */
.mant-card-icon-img,.lab-card-icon-img{display:flex;align-items:center;justify-content:center;}
.mant-card-icon-img img{width:clamp(44px,4.4vw,64px);height:clamp(44px,4.4vw,64px);object-fit:contain;filter:drop-shadow(0 2px 4px rgba(0,0,0,.35));}
.lab-card-icon-img img{width:clamp(50px,5.5vw,72px);height:clamp(50px,5.5vw,72px);object-fit:contain;filter:drop-shadow(0 2px 4px rgba(0,0,0,.35));}

/* ============================================================
   RESPONSIVE GENERAL — adaptación automática a ventana angosta
   (media pantalla / split-screen), tablet y celular. 2026-07-13
   ============================================================ */

/* Tablet horizontal y ventana reducida a la mitad de un monitor
   (rango típico 760–1100px de ancho visible) */
@media (max-width:1100px){
  .submenu-split{flex-direction:column;overflow:visible;}
  .submenu-tiles,.mant-tiles,.seg-grid,.iso-menu-grid,.iso9001-hub-grid{
    flex:0 0 auto;max-height:none;overflow-y:visible;
  }
  .submenu-content-block{flex:0 0 auto;min-height:200px;}
  :root{--tile-col:clamp(104px,22vw,150px);}
  .seg-card{padding:14px 10px;gap:8px;}
  .seg-card-icon{font-size:clamp(28px,4vw,42px);}
  .seg-card-title{font-size:clamp(12px,1.2vw,16px);}
}

/* Tablet vertical / celular en horizontal */
@media (max-width:820px){
  .app-header{flex-wrap:wrap;}
  .header-title{font-size:clamp(16px,4vw,22px);letter-spacing:1px;order:1;flex-basis:100%;padding:6px 0;}
  .header-back-btn{order:0;}
  .exit-btn-header{order:2;}
  .status-bar{flex-wrap:wrap;gap:6px;padding:8px 14px;}
  .status-bar .status-item{font-size:11px;}
  .seg-toolbar,.calib-toolbar{padding:8px 10px;gap:8px;}
  .cfg-box,.modal-os .cfg-box{width:98vw!important;max-height:96vh;}
}

/* Celular (portrait) — apilar todo, tablas siguen con scroll
   horizontal propio (seg-table-wrap / pg-table-wrap ya lo traen) */
@media (max-width:560px){
  :root{--tile-col:clamp(96px,40vw,140px);}
  .menu-grid{gap:10px;padding:10px;}
  .header-title{font-size:14px;letter-spacing:.5px;}
  .header-back-btn,.exit-btn-header{padding:0 10px;font-size:11px;height:38px;}
  .submenu-tiles,.mant-tiles,.seg-grid,.iso-menu-grid,.iso9001-hub-grid{
    padding:12px;gap:10px;max-height:none;overflow-y:visible;
  }
  .seg-card{padding:12px 8px;gap:6px;}
  .seg-card-icon{font-size:26px;}
  .seg-card-title{font-size:11px;}
  .mod-tile-label,.mant-card-title,.lab-card-title{font-size:11px!important;}
  .status-bar{justify-content:center;text-align:center;}
  .status-version{display:none;}
  fieldset.sub-cfg-fieldset > div[style*="grid-template-columns:1fr 1fr"]{
    grid-template-columns:1fr!important;
  }
}

/* Altura reducida (ventana anclada a media pantalla en un monitor
   panorámico) — los módulos se adaptan y siempre son visibles */
@media (max-height:560px){
  .submenu-tiles,.mant-tiles,.seg-grid,.iso-menu-grid,.iso9001-hub-grid{max-height:none;overflow-y:visible;}
  .seg-card{padding:10px 8px;gap:6px;}
  .seg-card-icon{font-size:24px;}
  .seg-card-title{font-size:11px;}
  .seg-card-sub{display:none;}
  .cfg-box{max-height:94vh;}
}

/* Barra de título decorativa (imita ventana de escritorio) — en
   celular no aporta nada y quita espacio vertical útil */
@media (max-width:560px){
  .title-bar{padding:4px 8px;font-size:9px;}
  .tb-btn{width:10px;height:10px;}
}

/* Pantalla de Login — apilar en celular/tablet vertical */
@media (max-width:760px){
  #screen-login{flex-direction:column;overflow-y:auto;}
  .login-left{width:100%;padding:24px 20px;}
  .login-sig{font-size:clamp(48px,16vw,72px);letter-spacing:-2px;}
  .login-badge{width:64px;height:64px;border-radius:16px;}
  .login-badge svg{width:34px;height:34px;}
  .login-right{padding:24px 20px;}
}


/* === Refuerzo global de legibilidad en todas las tablas del sistema (letras oscuras y en negrita) === */
table td { color:#000; }
table th { color:#fff; font-weight:700; }


/* === Grillas forzadas a 3 columnas (Almacén, Mantenimiento Unidades Móviles, Mantenimiento Línea Amarilla, Laboratorio) === */
#screen-almacen .submenu-tiles,
#screen-mantenimiento .submenu-tiles,
#screen-mant-amarilla .submenu-tiles,
#screen-laboratorio .submenu-tiles,
#screen-rrhh .submenu-tiles {
  grid-template-columns: repeat(3, var(--tile-col)) !important;
}

/* ============================================================
   PANEL DE ADMINISTRACIÓN
   ============================================================ */
.admin-tabs {
  display: flex;
  gap: 2px;
  background: linear-gradient(180deg,#132449,#1a2a4a);
  padding: 0 16px;
  flex-shrink: 0;
  overflow-x: auto;
}
.admin-tab {
  padding: 12px 18px;
  background: transparent;
  color: #8aacd0;
  border: none;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  border-bottom: 3px solid transparent;
  white-space: nowrap;
  transition: all .15s;
}
.admin-tab:hover { color: #fff; background: rgba(255,255,255,.06); }
.admin-tab.active { color: #fff; border-bottom-color: #4a8ef0; background: rgba(74,142,240,.14); }
.admin-content {
  flex: 1;
  overflow-y: auto;
  padding: 18px 22px;
  background: #eef2f8;
}
.admin-panel { display: none; flex-direction: column; gap: 16px; }
.admin-panel.active { display: flex; }
.admin-section-header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  flex-wrap: wrap;
  padding-bottom: 8px;
  border-bottom: 1px solid #d4e0ec;
}
.admin-section-header h3 {
  font-size: 16px;
  font-weight: 700;
  color: #0a1e50;
  margin: 0;
  position: relative;
  padding-left: 12px;
}
.admin-section-header h3::before {
  content: '';
  position: absolute;
  left: 0; top: 2px; bottom: 2px;
  width: 4px;
  border-radius: 3px;
  background: #4a8ef0;
}
.admin-filter-group {
  display: flex;
  align-items: center;
  gap: 10px;
}
.admin-kpi-row {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
  gap: 12px;
}
.admin-kpi-card {
  background: #fff;
  border: 1px solid #d4e0ec;
  border-left: 4px solid #4a8ef0;
  border-radius: 10px;
  padding: 14px 16px;
  display: flex;
  align-items: center;
  gap: 12px;
  box-shadow: 0 1px 3px rgba(10,30,80,.06);
  transition: box-shadow .15s, transform .15s;
}
.admin-kpi-card:hover { box-shadow: 0 4px 14px rgba(10,30,80,.12); transform: translateY(-1px); }
.admin-kpi-icon {
  font-size: 20px;
  line-height: 1;
  width: 40px;
  height: 40px;
  flex-shrink: 0;
  border-radius: 9px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: rgba(74,142,240,.12);
}
.admin-kpi-info { display: flex; flex-direction: column; min-width: 0; }
.admin-kpi-num { font-size: 22px; font-weight: 800; color: #0a1e50; line-height: 1.15; }
.admin-kpi-label { font-size: 11px; color: #5580a8; font-weight: 600; text-transform: uppercase; letter-spacing: .3px; }

.admin-kpi-blue   { border-left-color: #4a8ef0; }
.admin-kpi-blue   .admin-kpi-icon { background: rgba(74,142,240,.14); }
.admin-kpi-teal   { border-left-color: #1aa08a; }
.admin-kpi-teal   .admin-kpi-icon { background: rgba(26,160,138,.14); }
.admin-kpi-purple { border-left-color: #8a5cd0; }
.admin-kpi-purple .admin-kpi-icon { background: rgba(138,92,208,.14); }
.admin-kpi-orange { border-left-color: #e08a2e; }
.admin-kpi-orange .admin-kpi-icon { background: rgba(224,138,46,.14); }
.admin-kpi-green  { border-left-color: #2ea040; }
.admin-kpi-green  .admin-kpi-icon { background: rgba(46,160,64,.14); }
.admin-kpi-red    { border-left-color: #d0453a; }
.admin-kpi-red    .admin-kpi-icon { background: rgba(208,69,58,.14); }
.admin-kpi-slate  { border-left-color: #64758c; }
.admin-kpi-slate  .admin-kpi-icon { background: rgba(100,117,140,.14); }

.admin-table-wrap {
  background: #fff;
  border: 1px solid #d4e0ec;
  border-radius: 10px;
  overflow-x: auto;
  box-shadow: 0 1px 3px rgba(10,30,80,.06);
}
.admin-table {
  width: 100%;
  border-collapse: collapse;
  font-size: 12px;
}
.admin-table th {
  background: #132449;
  color: #fff;
  font-weight: 700;
  padding: 9px 10px;
  text-align: left;
  white-space: nowrap;
  position: sticky;
  top: 0;
  z-index: 1;
}
.admin-table td {
  color: #091d3e;
  padding: 8px 10px;
  border-bottom: 1px solid #d0dfed;
  font-weight: 500;
}
.admin-table tbody tr:hover { background: #edf4fc; }
.admin-table tbody tr:nth-child(even) { background: #f7fafd; }
.admin-table tbody tr:nth-child(even):hover { background: #edf4fc; }
.admin-role-badge {
  display: inline-block;
  padding: 2px 10px;
  border-radius: 12px;
  font-size: 11px;
  font-weight: 700;
  background: #dce8f8;
  color: #0a3a7a;
}
.admin-btn {
  padding: 7px 16px;
  border: none;
  border-radius: 6px;
  font-size: 12px;
  font-weight: 600;
  cursor: pointer;
  transition: background .15s;
}
.admin-btn-primary { background: #1a4fa0; color: #fff; }
.admin-btn-primary:hover { background: #0e3a7a; }
.admin-btn-sm {
  padding: 3px 8px;
  border: 1px solid #b8ccdc;
  border-radius: 4px;
  background: #f4f8fc;
  cursor: pointer;
  font-size: 12px;
  transition: background .15s;
}
.admin-btn-sm:hover { background: #dce8f8; }
.admin-btn-danger-sm { border-color: #d06060; color: #a03030; }
.admin-btn-danger-sm:hover { background: #fce8e8; }
.admin-pagination {
  display: flex;
  align-items: center;
  gap: 4px;
  justify-content: center;
  padding: 8px 0;
}
.admin-pag-btn {
  padding: 4px 10px;
  border: 1px solid #b8ccdc;
  border-radius: 4px;
  background: #fff;
  font-size: 12px;
  cursor: pointer;
  transition: all .15s;
}
.admin-pag-btn:hover { background: #dce8f8; }
.admin-pag-btn.active { background: #1a4fa0; color: #fff; border-color: #1a4fa0; }
.admin-info-card {
  background: #fff;
  border: 1.5px solid #b8ccdc;
  border-radius: 8px;
  padding: 10px 14px;
  display: flex;
  flex-direction: column;
  gap: 2px;
}
.admin-info-card strong { font-size: 11px; color: #5580a8; font-weight: 600; }
.admin-info-card span { font-size: 14px; color: #0a1e50; font-weight: 700; }
.admin-form-row {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 8px;
}
.admin-form-row label {
  font-size: 12px;
  font-weight: 600;
  color: #0a1e50;
  min-width: 180px;
}
.admin-input {
  flex: 1;
  height: 34px;
  border: 1.5px solid #90b8d8;
  border-radius: 6px;
  padding: 0 10px;
  font-size: 12px;
  outline: none;
  transition: border-color .15s;
}
.admin-input:focus { border-color: #1848a0; box-shadow: 0 0 0 3px rgba(24,72,160,.1); }
select.admin-input { height: 34px; }

/* ============================================================
   PIZARRA NOTIFICACIONES — Vencidos / Por Vencer
   ============================================================ */
.unidades-pizarra-item{
  display:flex;align-items:flex-start;gap:10px;padding:10px 12px;
  background:#fff;border:1px solid #dce6f0;border-radius:8px;
  margin-bottom:8px;transition:box-shadow .15s;
}
.unidades-pizarra-item:hover{box-shadow:0 2px 8px rgba(0,0,0,.08);}
.unidades-pizarra-item-vencido{border-color:#e88;background:#fff8f8;}
  .unidades-pizarra-item-stock{border-color:#e8a838;background:#fffbf0;}
  .unidades-pizarra-item-req{border-color:#5a8fda;background:#f0f6fc;}
  .unidades-pizarra-item-stockbajo{border-color:#d4a017;background:#fff9e6;}
  .unidades-pizarra-item-proveedor{border-color:#c0392b;background:#fdf2f2;}
  .unidades-pizarra-item-obs-alert{border-color:#e67e22;background:#fef5ec;}
  .unidades-pizarra-item-icon{font-size:16px;flex-shrink:0;}
.unidades-pizarra-item-body{flex:1;min-width:0;}
.unidades-pizarra-item-titulo{font-weight:700;color:#0a1e50;font-size:13px;}
.unidades-pizarra-item-sub{font-size:11px;color:#4a6a8a;margin-top:2px;}
.unidades-pizarra-item-obs{font-size:10px;color:#666;font-style:italic;margin-top:2px;}
.unidades-pizarra-item-fecha{font-size:10px;color:#888;margin-top:4px;}
.unidades-pizarra-item-btn{
  padding:4px 10px;border:1px solid #b8ccdc;border-radius:4px;
  background:#f4f8fc;color:#1a3e8a;font-size:11px;font-weight:600;cursor:pointer;
  transition:background .15s;
}
.unidades-pizarra-item-btn:hover{background:#dce8f8;}

/* Print styles for pizarra */
@media print{
  .unidades-pizarra-btn,.unidades-pizarra-item-btn,.no-print{display:none !important;}
  .cfg-overlay{position:static !important;background:none !important;display:block !important;}
  .cfg-box{width:100% !important;max-height:none !important;box-shadow:none !important;border:none !important;}
  .cfg-header,.cfg-close,.sub-cfg-btns{display:none !important;}
  .cfg-body{padding:0 !important;overflow:visible !important;}
  #emo-req-print-area{border:1px solid #ccc;padding:15px !important;}
  #emo-req-print-area .rep-mb{border-bottom:2px solid #0a1e50 !important;}
  .sub-cfg-table{width:100% !important;}
  .sub-cfg-table th{background:#1a3e8a !important;color:#fff !important;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
  .unidades-pizarra-item{break-inside:avoid;page-break-inside:avoid;}
  .unidades-pizarra-item-vencido{border-color:#e88 !important;background:#fff8f8 !important;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
  .unidades-pizarra-item-stock{border-color:#e8a838 !important;background:#fffbf0 !important;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
  .unidades-pizarra-item-req{border-color:#5a8fda !important;background:#f0f6fc !important;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
  .unidades-pizarra-item-stockbajo{border-color:#d4a017 !important;background:#fff9e6 !important;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
  .unidades-pizarra-item-proveedor{border-color:#c0392b !important;background:#fdf2f2 !important;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
  .unidades-pizarra-item-obs-alert{border-color:#e67e22 !important;background:#fef5ec !important;-webkit-print-color-adjust:exact;print-color-adjust:exact;}
}

/* ═══ Profundidad en tarjetas de submenús (SIG / Mantenimiento / Seguridad) ═══ */
.iso-card,.mant-card,.seg-card{box-shadow:0 10px 26px rgba(5,15,40,.4),inset 0 1px 0 rgba(255,255,255,.12);transition:transform .18s ease,box-shadow .18s ease;}
.iso-card:hover,.mant-card:hover,.seg-card:hover{transform:translateY(-5px);box-shadow:0 18px 36px rgba(10,30,80,.55),0 0 0 2px #4a7ec8;}

/* ═══ Asistente flotante con avatar ═══ */
.assistant-widget{position:fixed;right:22px;bottom:22px;z-index:400;display:flex;flex-direction:column;align-items:flex-end;gap:10px;}
.assistant-fab{width:58px;height:58px;border-radius:50%;border:none;cursor:pointer;overflow:hidden;background:linear-gradient(160deg,#2a5ec2,#12275c);box-shadow:0 6px 20px rgba(10,30,80,.5);animation:avatarPulse 3s ease-in-out infinite;display:flex;align-items:center;justify-content:center;font-size:26px;padding:0;}
.assistant-fab img{width:100%;height:100%;object-fit:cover;border-radius:50%;}
@keyframes avatarPulse{0%,100%{box-shadow:0 6px 20px rgba(10,30,80,.5),0 0 0 0 rgba(74,126,200,.5);}50%{box-shadow:0 6px 20px rgba(10,30,80,.5),0 0 0 8px rgba(74,126,200,0);}}
.assistant-bubble{width:260px;background:#fff;border-radius:14px;box-shadow:0 16px 40px rgba(0,0,0,.35);overflow:hidden;animation:bubbleIn .2s ease both;}
@keyframes bubbleIn{from{opacity:0;transform:translateY(8px) scale(.96);}to{opacity:1;transform:translateY(0) scale(1);}}
.assistant-bubble-head{background:linear-gradient(180deg,#0c2868,#14388a);padding:12px 14px;display:flex;align-items:center;gap:10px;}
.assistant-avatar-mini{width:34px;height:34px;border-radius:50%;overflow:hidden;flex-shrink:0;border:2px solid rgba(255,255,255,.5);display:flex;align-items:center;justify-content:center;background:#12275c;color:#fff;font-size:16px;}
.assistant-avatar-mini img{width:100%;height:100%;object-fit:cover;}
.assistant-bubble-name{color:#fff;font-size:13px;font-weight:700;flex:1;}
.assistant-cfg-btn{background:none;border:none;color:#cfe0f8;cursor:pointer;display:flex;padding:2px;font-size:15px;}
.assistant-bubble-msg{padding:14px;font-size:12.5px;color:#334a66;line-height:1.5;}
.assistant-cfg-panel{border-top:1px solid #e0e8f4;padding:14px;display:flex;flex-direction:column;gap:10px;background:#f6f9fd;}
.assistant-cfg-title{font-size:11px;font-weight:700;color:#0a1e50;text-transform:uppercase;letter-spacing:.05em;}
.assistant-cfg-avatar{width:64px;height:64px;border-radius:50%;align-self:center;overflow:hidden;background:#e4edfa;display:flex;align-items:center;justify-content:center;font-size:28px;}
.assistant-cfg-avatar img{width:100%;height:100%;object-fit:cover;}
.assistant-cfg-upload{height:30px;border:1.5px solid #90b8d8;border-radius:6px;background:#fff;font-size:11.5px;font-weight:600;color:#1a4fa0;cursor:pointer;}
#assistant-name-input{height:34px;border:1.5px solid #90b8d8;border-radius:6px;padding:0 10px;font-size:12px;outline:none;}
@media(max-width:640px){
  .assistant-widget{right:12px;bottom:12px;}
  .assistant-bubble{width:220px;}
}

/* ═══════════════════════════════════════════════════════════════════════
   REDISEÑO ALMACÉN — Ingreso / Salida / Proveedores / Dashboard
   Capa visual (mockup Design): fondo claro, tarjetas blancas redondeadas,
   botones sólidos y outline. Escopado por ID de pantalla para no afectar
   los demás módulos que comparten estas clases (.salida-*, .reg-*, .dash-*).
   Los !important solo neutralizan estilos inline del markup original.
   ═══════════════════════════════════════════════════════════════════════ */
#screen-ingreso,#screen-salida{background:var(--surface-screen);}

/* — Barra de cajero (tarjeta navy redondeada) — */
#screen-ingreso .salida-subheader,#screen-salida .salida-subheader{
  background:#1c3157;border:none;border-radius:12px;
  margin:14px 16px 0;padding:12px 18px;box-shadow:0 2px 8px rgba(15,35,75,.25);
}
#screen-ingreso .salida-cajero,#screen-salida .salida-cajero{color:#fff;font-weight:700;}
#screen-ingreso .salida-meta,#screen-salida .salida-meta{color:#e2ebf8;}

/* — Tarjeta de formulario — */
#screen-ingreso .salida-form,#screen-salida .salida-form{
  background:#fff;border:1px solid #e3e9f2;border-radius:12px;
  box-shadow:0 1px 5px rgba(20,40,90,.07);
}
#screen-ingreso .sf-label,#screen-salida .sf-label{font-size:12px;font-weight:600;color:#5a6a80;min-width:0;}
#screen-ingreso .salida-form input[type="text"],
#screen-ingreso .salida-form input[type="number"],
#screen-ingreso .salida-form select,
#screen-salida .salida-form input[type="text"],
#screen-salida .salida-form input[type="number"],
#screen-salida .salida-form select{
  background:#fff !important;border:1.5px solid #d6dfeb !important;
  border-radius:8px !important;color:#12305e !important;
}
#screen-ingreso .salida-form input:focus,#screen-ingreso .salida-form select:focus,
#screen-salida .salida-form input:focus,#screen-salida .salida-form select:focus{
  border-color:#2f6fd0 !important;box-shadow:0 0 0 3px rgba(47,111,208,.15) !important;
}
#screen-ingreso .sf-stock,#screen-salida .sf-stock{
  background:#f1f5fa;border:1.5px solid #dde5ef;border-radius:8px;
  color:#12305e;font-weight:700;padding:7px 12px;
}

/* — Botones Agregar / Editar / Eliminar (sólidos horizontales) — */
#screen-ingreso .act-btn,#screen-salida .act-btn{
  flex-direction:row;width:auto;height:38px;padding:0 16px;gap:7px;
  border:none;border-radius:8px;background:#1e8a3c;color:#fff;font-size:12.5px;
  box-shadow:0 2px 6px rgba(20,40,90,.18);
}
#screen-ingreso .act-btn .act-icon,#screen-salida .act-btn .act-icon{font-size:15px;}
#screen-ingreso .act-editar,#screen-salida .act-editar{background:#1d4f9e;}
#screen-ingreso .act-eliminar,#screen-salida .act-eliminar{background:#c62828;}

/* — Salida: botones de acción en columna que llenan el alto disponible — */
#screen-salida .salida-actions-col{align-self:stretch;}
#screen-salida .action-btns{flex-direction:column;align-items:stretch;margin-left:0;width:100%;height:100%;}
#screen-salida .action-btns .act-btn{flex:1;width:100%;height:auto;justify-content:center;font-size:13px;margin:0;}
#screen-salida .action-btns .act-btn + .act-btn{margin-top:8px;}

/* — Salida: checklist de Unidad ligado a Unidades Móviles — */
#screen-salida #sal-unidad-box{margin-top:0;}
#screen-salida #sal-unidad-cats{grid-template-columns:repeat(auto-fill,minmax(134px,1fr));gap:5px;align-content:start;max-height:132px;overflow-y:auto;padding-right:4px;}
#screen-salida #sal-unidad-cats label{padding:4px 7px;font-size:11.5px;}
#screen-salida #sal-unidad-cats input[type="checkbox"]{width:13px !important;height:13px !important;}
#screen-salida #sal-unidad-cats .um-cat-count{margin-left:auto;font-size:9.5px;font-weight:800;color:#0a8a8a;background:#e3f4f4;border-radius:10px;padding:1px 6px;flex-shrink:0;}

/* — Salida: compactar cabecera y formulario para que la tabla suba — */
#screen-salida .salida-subheader{margin:8px 16px 0;padding:8px 16px;}
#screen-salida .salida-form{margin:8px 16px 0;padding:10px 14px;}
#screen-salida .salida-table-wrap{margin:8px 16px;}

/* — Tabla — */
#screen-ingreso .salida-table-wrap,#screen-salida .salida-table-wrap{
  border:none;border-radius:12px;box-shadow:0 1px 5px rgba(20,40,90,.08);
}
#screen-ingreso .salida-table thead,#screen-salida .salida-table thead{background:#0f2a5e;}
#screen-ingreso .salida-table th,#screen-salida .salida-table th{font-weight:700;}
#screen-ingreso .salida-table td,#screen-salida .salida-table td{font-weight:600;color:#22334a;}

/* — Pie de acciones — */
#screen-ingreso .salida-footer,#screen-salida .salida-footer{
  background:#fff;border-top:1px solid #e3e9f2;padding:12px 16px;
}
#screen-ingreso .sf-footer-btn,#screen-salida .sf-footer-btn{
  height:42px;border-radius:9px;font-size:13px;box-shadow:none;padding:0 18px;
}
#screen-ingreso .sfb-pagar{background:#fdf7e8;color:#8a6510;border:1.5px solid #e4c264;}
#screen-salida .sfb-pagar{background:#f2f7ff;color:#1d4f9e;border:1.5px solid #a9c4e8;}
#screen-ingreso .sfb-anular,#screen-salida .sfb-anular{background:#fdefee;color:#b3261e;border:1.5px solid #eba6a0;}
#screen-ingreso .sfb-informe,#screen-salida .sfb-informe{background:#fff;color:#1d4f9e;border:1.5px solid #a9c4e8;}
#screen-ingreso .sfb-total,#screen-salida .sfb-total{background:#12305e;border-radius:10px;font-size:14.5px;}

/* — PROVEEDORES — */
#screen-proveedores{background:var(--surface-screen);}
#screen-proveedores .reg-form-panel{background:#fff;border:1px solid #e3e9f2;border-radius:12px;box-shadow:0 1px 5px rgba(20,40,90,.07);}
#screen-proveedores .reg-form-title{border:none;border-bottom:1px solid #edf1f6;border-radius:0;padding:0 0 12px;margin-bottom:12px;font-size:16px;color:#12305e;}
#screen-proveedores .reg-field label{font-size:12px;font-weight:600;color:#5a6a80;}
#screen-proveedores .reg-field input,#screen-proveedores .reg-field select{border:1.5px solid #d6dfeb !important;border-radius:8px !important;background:#fff !important;}
#screen-proveedores .reg-field input:focus,#screen-proveedores .reg-field select:focus{border-color:#2f6fd0 !important;box-shadow:0 0 0 3px rgba(47,111,208,.15) !important;}
#screen-proveedores .reg-btn{flex-direction:row;height:40px;gap:7px;border-radius:8px;font-size:12.5px;box-shadow:0 2px 6px rgba(20,40,90,.15);}
#screen-proveedores .reg-btn-icon{font-size:15px;}
#screen-proveedores .rbtn-edit{background:#1d4f9e;}
#screen-proveedores .reg-right-panel{background:#fff;border:1px solid #e3e9f2;border-radius:12px;box-shadow:0 1px 5px rgba(20,40,90,.07);padding:12px;}
#screen-proveedores .reg-search-bar{background:#12305e;border-radius:10px;padding:10px 14px;}
#screen-proveedores .reg-search-label{color:#fff;}
#screen-proveedores .reg-search-input{flex:1;min-width:160px;border:none;border-radius:8px;}
#screen-proveedores .reg-meta{color:#dbe7f8;}
#screen-proveedores .reg-table-wrap{border:none;}
#screen-proveedores .reg-table thead{background:#e2ebf6;}
#screen-proveedores .reg-table th{color:#12305e;border-right:none;text-align:left;}
#screen-proveedores .reg-table td{text-align:left;font-weight:600;color:#22334a;}
#screen-proveedores .reg-pagination{justify-content:center;}
#screen-proveedores .reg-pag-btn{background:#eef2f8;border:1px solid #d6dfeb;color:#12305e;}
#screen-proveedores .reg-pag-btn:hover{background:#dce6f2;}

/* — DASHBOARD — */
#screen-dashboard .dash-layout{background:var(--surface-screen);}
#screen-dashboard .dash-body{background:var(--surface-screen);}
.dash-sec-head{display:flex;align-items:center;gap:11px;flex-shrink:0;}
.dash-sec-ico{width:38px;height:38px;border-radius:10px;display:flex;align-items:center;justify-content:center;font-size:19px;flex-shrink:0;color:#fff;box-shadow:0 1px 4px rgba(20,40,90,.18);}
.dash-sec-titulo{font-family:'Exo 2',sans-serif;font-size:13px;font-weight:800;color:#12305e;letter-spacing:.8px;}
.dash-sec-sub{font-size:10.5px;color:#7a8aa0;font-weight:600;}
#screen-dashboard .dash-kpi,#screen-dashboard .dash-kpi.green,#screen-dashboard .dash-kpi.orange,#screen-dashboard .dash-kpi.purple{
  background:#fff;border:1px solid #e3e9f2;box-shadow:0 1px 5px rgba(20,40,90,.06);border-radius:14px;
  transition:transform .18s cubic-bezier(.2,.8,.2,1),box-shadow .18s cubic-bezier(.2,.8,.2,1);
}
#screen-dashboard .dash-kpi:hover{transform:translateY(-3px);box-shadow:0 10px 24px rgba(20,40,90,.14);}
#screen-dashboard .dash-kpi-icon{transition:transform .18s cubic-bezier(.2,.8,.2,1);}
#screen-dashboard .dash-kpi:hover .dash-kpi-icon{transform:scale(1.08);}
#screen-dashboard .dash-kpi::after{content:none;}
#screen-dashboard .dash-kpi-icon{position:static;transform:none;opacity:1;font-size:19px;width:40px;height:40px;border-radius:10px;background:#e8effa;display:flex;align-items:center;justify-content:center;margin-bottom:2px;}
#screen-dashboard .dash-kpi.green .dash-kpi-icon{background:#e2f4e6;}
#screen-dashboard .dash-kpi.orange .dash-kpi-icon{background:#fdf2dd;}
#screen-dashboard .dash-kpi.purple .dash-kpi-icon{background:#ece4fb;}
#screen-dashboard .dash-kpi-label{color:#5a6a80 !important;text-transform:none;font-size:12px;}
#screen-dashboard .dash-kpi-value{color:#12305e;font-size:26px;}
#screen-dashboard .dash-kpi-sub{color:#8a9ab0 !important;}
#screen-dashboard .dash-chart-card{background:#fff;border:1px solid #e6ecf4;border-radius:12px;box-shadow:0 1px 5px rgba(20,40,90,.06);}

/* — PROGRAMA DE MANTENIMIENTO (líneas blanca y amarilla) — misma capa clara.
     La tarjeta blanca del toolbar/calendario/pie va inline en el markup;
     aquí solo el fondo de pantalla y el afinado de los filtros. — */
#screen-mant-programa-la{background:var(--surface-screen);}
#screen-mant-programa-la .plan-filter-btn{border-color:#c9d6e8;}
#screen-mant-programa-la .plan-filter-btn.active,#screen-mant-programa-la .plan-filter-btn:hover{border-color:#1a3e8a;}

/* — DECLARACIÓN DE OPERATIVIDAD (generar / historial / cronograma) —
     fondo claro + toolbar como tarjeta blanca; la hoja imprimible
     (.mdo-hoja) conserva su formato de documento intacto. — */
#screen-mant-declaracion-op,
#screen-mant-declaracion-op-historial,
#screen-mant-declaracion-op-cronograma{background:var(--surface-screen);}
#screen-mant-declaracion-op .calib-toolbar,
#screen-mant-declaracion-op-historial .calib-toolbar,
#screen-mant-declaracion-op-cronograma .calib-toolbar{
  background:#fff;border:1px solid #e3e9f2;border-radius:12px;
  box-shadow:0 1px 5px rgba(20,40,90,.07);margin:10px 14px;
}
#screen-mant-declaracion-op .calib-toolbar .sub-cfg-input{
  border:1.5px solid #d6dfeb;border-radius:8px;background:#fff;
}
#screen-mant-declaracion-op .calib-toolbar .sub-cfg-input:focus{
  border-color:#2f6fd0;box-shadow:0 0 0 3px rgba(47,111,208,.15);
}
#screen-mant-declaracion-op .calib-btn,
#screen-mant-declaracion-op .um-tbtn,
#screen-mant-declaracion-op-historial .um-tbtn,
#screen-mant-declaracion-op-cronograma .um-tbtn{border-radius:8px;}

/* — PROGRAMAS DE GESTIÓN SST (Auditoría, Vigilancia, Monitoreo, Capacitación,
     Simulacros) — misma capa clara del rediseño usada en Declaración de
     Operatividad / Proveedores / Inventario. — */
#screen-sst-auditoria,
#screen-sst-vigilancia,
#screen-sst-monitoreo,
#screen-sst-capacitacion,
#screen-sst-simulacros{background:var(--surface-screen);}
#screen-sst-auditoria .calib-toolbar,
#screen-sst-vigilancia .calib-toolbar,
#screen-sst-monitoreo .calib-toolbar,
#screen-sst-capacitacion .calib-toolbar,
#screen-sst-simulacros .calib-toolbar{
  background:#fff;border:1px solid #e3e9f2;border-radius:12px;
  box-shadow:0 1px 5px rgba(20,40,90,.07);margin:10px 14px;
}
#screen-sst-auditoria .calib-btn,
#screen-sst-vigilancia .calib-btn,
#screen-sst-monitoreo .calib-btn,
#screen-sst-capacitacion .calib-btn,
#screen-sst-simulacros .calib-btn{border-radius:8px;}

/* — Tabla de Programas SST: sin grilla, sin bandeado de filas — blanco
     limpio y un único acento azul, igual que Declaración de Operatividad. — */
#screen-sst-auditoria .pg-table-wrap,
#screen-sst-vigilancia .pg-table-wrap,
#screen-sst-monitoreo .pg-table-wrap,
#screen-sst-capacitacion .pg-table-wrap,
#screen-sst-simulacros .pg-table-wrap{
  border:1px solid #e3e9f2 !important;border-radius:12px;
  box-shadow:0 1px 5px rgba(20,40,90,.07);
}
#screen-sst-auditoria .pg-table,
#screen-sst-vigilancia .pg-table,
#screen-sst-monitoreo .pg-table,
#screen-sst-capacitacion .pg-table,
#screen-sst-simulacros .pg-table{border-collapse:separate;border-spacing:0;background:#fff;}
#screen-sst-auditoria .pg-table td,
#screen-sst-vigilancia .pg-table td,
#screen-sst-monitoreo .pg-table td,
#screen-sst-capacitacion .pg-table td,
#screen-sst-simulacros .pg-table td{
  border:none !important;padding:8px 6px;background:#fff;
}
#screen-sst-auditoria .pg-table tbody tr,
#screen-sst-vigilancia .pg-table tbody tr,
#screen-sst-monitoreo .pg-table tbody tr,
#screen-sst-capacitacion .pg-table tbody tr,
#screen-sst-simulacros .pg-table tbody tr{transition:background .12s;}
#screen-sst-auditoria .pg-table tbody tr:hover td,
#screen-sst-vigilancia .pg-table tbody tr:hover td,
#screen-sst-monitoreo .pg-table tbody tr:hover td,
#screen-sst-capacitacion .pg-table tbody tr:hover td,
#screen-sst-simulacros .pg-table tbody tr:hover td{background:#eef5fc !important;}
/* — Un solo acento azul en la barra de avance, sin semáforo rojo/naranja/verde — */
#screen-sst-auditoria .pg-avance-bar,
#screen-sst-vigilancia .pg-avance-bar,
#screen-sst-monitoreo .pg-avance-bar,
#screen-sst-capacitacion .pg-avance-bar,
#screen-sst-simulacros .pg-avance-bar{background:#e2e8f2;}

/* — Inputs de texto (Actividad/Responsable/Frecuencia/Observaciones):
     sin recuadro por defecto, como texto plano; el borde solo aparece
     al enfocar/editar — igual de "limpio" que el Check List. — */
#screen-sst-auditoria .pg-input-mini,
#screen-sst-vigilancia .pg-input-mini,
#screen-sst-monitoreo .pg-input-mini,
#screen-sst-capacitacion .pg-input-mini,
#screen-sst-simulacros .pg-input-mini{
  border:1px solid transparent;background:transparent;border-radius:5px;
  transition:border-color .15s,background .15s;
}
#screen-sst-auditoria .pg-input-mini:hover,
#screen-sst-vigilancia .pg-input-mini:hover,
#screen-sst-monitoreo .pg-input-mini:hover,
#screen-sst-capacitacion .pg-input-mini:hover,
#screen-sst-simulacros .pg-input-mini:hover{background:#f4f8fc;border-color:#dfe8f2;}
#screen-sst-auditoria .pg-input-mini:focus,
#screen-sst-vigilancia .pg-input-mini:focus,
#screen-sst-monitoreo .pg-input-mini:focus,
#screen-sst-capacitacion .pg-input-mini:focus,
#screen-sst-simulacros .pg-input-mini:focus{background:#fff;border-color:#2f6fd0;outline:none;box-shadow:0 0 0 2px rgba(47,111,208,.12);}

/* — Meses: reemplaza los checkbox nativos (16 cajitas por fila = "grilla")
     por pastillas redondeadas azules, igual de simples que las opciones
     N/A · SÍ · NO del Check List. — */
#screen-sst-auditoria .pg-mes-cell,
#screen-sst-vigilancia .pg-mes-cell,
#screen-sst-monitoreo .pg-mes-cell,
#screen-sst-capacitacion .pg-mes-cell,
#screen-sst-simulacros .pg-mes-cell{padding:2px;}
#screen-sst-auditoria .pg-mes-cell label,
#screen-sst-vigilancia .pg-mes-cell label,
#screen-sst-monitoreo .pg-mes-cell label,
#screen-sst-capacitacion .pg-mes-cell label,
#screen-sst-simulacros .pg-mes-cell label{
  position:relative;width:22px;height:22px;border-radius:6px;
  background:#eef2f8;display:flex;align-items:center;justify-content:center;
  cursor:pointer;transition:background .15s;margin:0 auto;
}
#screen-sst-auditoria .pg-mes-cell label:hover,
#screen-sst-vigilancia .pg-mes-cell label:hover,
#screen-sst-monitoreo .pg-mes-cell label:hover,
#screen-sst-capacitacion .pg-mes-cell label:hover,
#screen-sst-simulacros .pg-mes-cell label:hover{background:#dde8f6;}
#screen-sst-auditoria .pg-mes-cell input[type="checkbox"],
#screen-sst-vigilancia .pg-mes-cell input[type="checkbox"],
#screen-sst-monitoreo .pg-mes-cell input[type="checkbox"],
#screen-sst-capacitacion .pg-mes-cell input[type="checkbox"],
#screen-sst-simulacros .pg-mes-cell input[type="checkbox"]{
  position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;
}
#screen-sst-auditoria .pg-mes-cell label:has(input:checked),
#screen-sst-vigilancia .pg-mes-cell label:has(input:checked),
#screen-sst-monitoreo .pg-mes-cell label:has(input:checked),
#screen-sst-capacitacion .pg-mes-cell label:has(input:checked),
#screen-sst-simulacros .pg-mes-cell label:has(input:checked){background:#2f6fd0;}
#screen-sst-auditoria .pg-mes-cell label:has(input:checked)::after,
#screen-sst-vigilancia .pg-mes-cell label:has(input:checked)::after,
#screen-sst-monitoreo .pg-mes-cell label:has(input:checked)::after,
#screen-sst-capacitacion .pg-mes-cell label:has(input:checked)::after,
#screen-sst-simulacros .pg-mes-cell label:has(input:checked)::after{
  content:'✓';color:#fff;font-size:12px;font-weight:800;pointer-events:none;
}

/* — INVENTARIO (Almacén) — misma capa clara del rediseño — */
#screen-inventario{background:var(--surface-screen);}
#screen-inventario .inv-toolbar{background:#fff;border:1px solid #e3e9f2;border-radius:12px;box-shadow:0 1px 5px rgba(20,40,90,.07);}
#screen-inventario .inv-search{border:1.5px solid #d6dfeb;border-radius:8px;}
#screen-inventario .inv-search:focus{border-color:#2f6fd0;box-shadow:0 0 0 3px rgba(47,111,208,.15);}
#screen-inventario .inv-search-btn{border:1.5px solid #d6dfeb;border-radius:8px;}
#screen-inventario .inv-action-btn{box-shadow:0 2px 6px rgba(20,40,90,.15);}
#screen-inventario .iab-registrar{background:#1e8a3c;}
#screen-inventario .iab-editar{background:#1d4f9e;}
#screen-inventario .iab-eliminar{background:#c62828;}
#screen-inventario .inv-table-wrap{border:none;border-radius:12px;box-shadow:0 1px 5px rgba(20,40,90,.08);}
#screen-inventario .inv-table thead{background:#0f2a5e;}
#screen-inventario .inv-table td{font-weight:600;color:#22334a;}
#screen-inventario .inv-footer{background:#fff;border-top:1px solid #e3e9f2;}
#screen-inventario .inv-pag-btn{background:#eef2f8;border:1px solid #d6dfeb;color:#12305e;}
#screen-inventario .inv-pag-btn:hover{background:#dce6f2;}
#screen-inventario .inv-pag-btn:disabled{background:#f4f6f9;border-color:#e3e9f2;color:#b4c0d0;}

/* — MAPA DE RACKS — de tema oscuro a la capa clara; las celdas ocupadas
     conservan el azul (funciona sobre fondo claro) — */
#screen-rack{background:var(--surface-screen);}
#screen-rack .rack-legend{background:#fff;border:1px solid #e3e9f2;box-shadow:0 1px 5px rgba(20,40,90,.07);border-radius:10px;}
#screen-rack .rack-legend-label{color:#12305e;}
#screen-rack .rack-dot-libre{background:#e3e9f2;border:1.5px solid #c9d6e8;}
#screen-rack .rack-row-label{color:#5a6a80;}
#screen-rack .rack-cell.libre{background:#fff;color:#8a9ab0;border:1.5px dashed #c9d6e8;}
#screen-rack .rack-cell:hover{box-shadow:0 4px 14px rgba(20,40,90,.18);}
#screen-rack .rack-nav-btn:disabled{background:#dde5ef;color:#a8b4c4;}
#screen-rack .rack-page-info{color:#5a6a80;}

/* — TABLAS DE MANTENIMIENTO (ambas líneas: órdenes, PyC, histograma,
     requerimiento, compra, llantas) — escopado por .mant-screen para
     no tocar las pantallas seg-* del módulo Seguridad — */
.mant-screen{background:var(--surface-screen);}
.mant-screen .seg-toolbar{background:#fff;border:1px solid #e3e9f2;border-radius:12px;box-shadow:0 1px 5px rgba(20,40,90,.07);}
.mant-screen .seg-search{border:1.5px solid #d6dfeb;border-radius:8px;}
.mant-screen .seg-search:focus{border-color:#2f6fd0;box-shadow:0 0 0 3px rgba(47,111,208,.15);}
.mant-screen .seg-btn{border-radius:8px;box-shadow:0 2px 6px rgba(20,40,90,.12);}
.mant-screen .sb-add{background:#1e8a3c;}
.mant-screen .sb-edit{background:#1d4f9e;}
.mant-screen .sb-del{background:#c62828;}
.mant-screen .seg-table-wrap{border:none;border-radius:12px;box-shadow:0 1px 5px rgba(20,40,90,.08);}
.mant-screen .seg-table thead{background:#0f2a5e;}
.mant-screen .seg-table td{font-weight:600;color:#22334a;}

/* Historial de Mantenimiento — panel scrolleable + status-bar fija */
#screen-mant-pyc{overflow:hidden;}
#mant-pyc-panel-historial{flex:1;min-height:0;display:flex;flex-direction:column;overflow:hidden;}
#mant-pyc-panel-historial .seg-table-wrap{flex:1;min-height:0;overflow-x:auto;overflow-y:auto;}
#mant-pyc-panel-historial .seg-table-wrap::-webkit-scrollbar{height:12px;}
#mant-pyc-panel-historial .seg-table-wrap::-webkit-scrollbar-track{background:#eef3fa;border-radius:6px;}
#mant-pyc-panel-historial .seg-table-wrap::-webkit-scrollbar-thumb{background:#4a7ab8;border-radius:6px;}
#mant-pyc-panel-historial .seg-table-wrap::-webkit-scrollbar-thumb:hover{background:#3a6aa8;}
#screen-mant-pyc .status-bar{flex-shrink:0;}

/* ═══════════════════════════════════════════════════════════
   MÓDULO CONTROL DE DOCUMENTOS Y MATRICES LEGALES (screen-docleg-*)
   ═══════════════════════════════════════════════════════════ */

/* — Pizarra de alertas — */
.docleg-alerta{display:flex;gap:10px;align-items:flex-start;padding:9px 12px;border-bottom:1px solid #eef3f9;}
.docleg-alerta:hover{background:#f6f9fd;}
.docleg-alerta-icon{font-size:16px;line-height:1.3;flex-shrink:0;}
.docleg-alerta-txt{min-width:0;flex:1;}
.docleg-alerta-titulo{font-size:12.5px;font-weight:800;color:#0a1e50;}
.docleg-alerta-sub{font-size:11.5px;color:#334a66;margin-top:1px;}
.docleg-alerta-obs{font-size:10.5px;color:#6688aa;margin-top:2px;}

/* — Formularios de los modales — */
.docleg-form-sec{font-size:11px;font-weight:800;color:#1a3e8a;text-transform:uppercase;letter-spacing:.6px;
  border-bottom:1.5px solid #d3e0ef;padding-bottom:4px;margin-top:6px;}
.docleg-grid-2{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;}
.docleg-grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;}
.docleg-grid-4{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;}
.docleg-grid-2 .sub-cfg-label,.docleg-grid-3 .sub-cfg-label,.docleg-grid-4 .sub-cfg-label{font-size:11.5px;}
@media (max-width:900px){
  .docleg-grid-3,.docleg-grid-4{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:600px){
  .docleg-grid-2,.docleg-grid-3,.docleg-grid-4{grid-template-columns:1fr;}
}

/* — Dashboard — */
.docleg-dash-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(320px,1fr));gap:14px;}
.docleg-dash-card{background:#fff;border:1px solid #d7e1ee;border-radius:14px;padding:14px 16px;
  box-shadow:0 2px 8px rgba(10,30,80,.07);}
.docleg-dash-title{font-size:12.5px;font-weight:800;color:#0a1e50;margin-bottom:10px;}
.docleg-dash-canvas{position:relative;height:250px;}
.docleg-semaforo{display:flex;flex-direction:column;gap:6px;}
.docleg-sem-fila{display:flex;align-items:center;gap:10px;padding:7px 10px;background:#f6f9fd;border-radius:8px;}
.docleg-sem-icon{font-size:15px;flex-shrink:0;}
.docleg-sem-txt{flex:1;font-size:12px;font-weight:600;color:#334a66;}
.docleg-sem-num{font-size:13px;font-weight:800;padding:2px 12px;border-radius:10px;min-width:38px;text-align:center;}

/* ============================================================
   SAP PM Style — Horizontal Maintenance Matrix
   ============================================================ */

/* Matrix container */
.sap-matrix-wrap {
  overflow-x: auto;
  overflow-y: auto;
  max-height: calc(100vh - 260px);
  border: 1px solid #d0d8e8;
  border-radius: 8px;
  background: #fff;
}

/* Matrix table */
.sap-matrix-table {
  border-collapse: collapse;
  width: 100%;
  min-width: 1400px;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  font-size: 11px;
}

.sap-matrix-table thead th {
  position: sticky;
  top: 0;
  z-index: 10;
  background: #1a3e8a;
  color: #fff;
  font-weight: 700;
  padding: 8px 6px;
  text-align: center;
  border-right: 1px solid #3a5ab8;
  border-bottom: 2px solid #0d2660;
  white-space: nowrap;
  font-size: 10px;
}

.sap-matrix-table thead th:first-child,
.sap-matrix-table thead th:nth-child(2),
.sap-matrix-table thead th:nth-child(3),
.sap-matrix-table thead th:nth-child(4) {
  position: sticky;
  left: 0;
  z-index: 15;
  text-align: left;
  padding-left: 10px;
  min-width: 120px;
}

.sap-matrix-table thead th:nth-child(1) { left: 0; z-index: 20; min-width: 40px; max-width: 40px; }
.sap-matrix-table thead th:nth-child(2) { left: 40px; z-index: 19; min-width: 160px; }
.sap-matrix-table thead th:nth-child(3) { left: 200px; z-index: 18; min-width: 90px; }
.sap-matrix-table thead th:nth-child(4) { left: 290px; z-index: 17; min-width: 90px; }

/* Item columns header */
.sap-matrix-table thead th.sap-item-col {
  min-width: 80px;
  max-width: 90px;
  writing-mode: horizontal-tb;
  font-size: 9px;
  line-height: 1.2;
  padding: 6px 3px;
}

/* Body rows */
.sap-matrix-table tbody tr {
  transition: background 0.15s;
}

.sap-matrix-table tbody tr:nth-child(even) {
  background: #f8fafd;
}

.sap-matrix-table tbody tr:hover {
  background: #e8f2fc !important;
}

.sap-matrix-table tbody tr.sap-row-selected {
  background: #d4e8ff !important;
  outline: 2px solid #1a3e8a;
  outline-offset: -1px;
}

/* Body cells */
.sap-matrix-table tbody td {
  padding: 6px 6px;
  border-bottom: 1px solid #e8eef6;
  border-right: 1px solid #e8eef6;
  text-align: center;
  vertical-align: middle;
  font-size: 11px;
  color: #1a2a4a;
}

/* Sticky left columns */
.sap-matrix-table tbody td:nth-child(1) {
  position: sticky;
  left: 0;
  z-index: 5;
  background: inherit;
  font-weight: 700;
  color: #3a5a86;
  max-width: 40px;
}

.sap-matrix-table tbody td:nth-child(2) {
  position: sticky;
  left: 40px;
  z-index: 4;
  background: inherit;
  text-align: left;
  font-weight: 700;
  color: #0a1e50;
  white-space: nowrap;
}

.sap-matrix-table tbody td:nth-child(3) {
  position: sticky;
  left: 200px;
  z-index: 3;
  background: inherit;
  text-align: left;
}

.sap-matrix-table tbody td:nth-child(4) {
  position: sticky;
  left: 290px;
  z-index: 2;
  background: inherit;
  text-align: left;
  font-size: 10px;
  color: #5a6a80;
}

/* Checkbox cell */
.sap-matrix-table tbody td.sap-chk-cell {
  padding: 4px;
}

.sap-matrix-table tbody td.sap-chk-cell input[type="checkbox"] {
  width: 16px;
  height: 16px;
  accent-color: #1a7a4a;
  cursor: pointer;
  margin: 0;
}

/* Checked state */
.sap-matrix-table tbody td.sap-checked {
  background: #e2f5e2 !important;
  color: #146a24;
  font-weight: 800;
}

/* Summary row */
.sap-matrix-table tbody tr.sap-summary-row {
  background: #eef4fb !important;
  font-weight: 800;
  border-top: 2px solid #1a3e8a;
}

.sap-matrix-table tbody tr.sap-summary-row td {
  background: #eef4fb !important;
  color: #1a3e8a;
  font-weight: 800;
  border-top: 2px solid #1a3e8a;
  padding: 8px 6px;
}

/* Category group header */
.sap-matrix-table tbody tr.sap-cat-header td {
  background: #d8e4f4 !important;
  color: #0a1e50;
  font-weight: 800;
  font-size: 11px;
  padding: 6px 10px;
  text-align: left;
  border-bottom: 2px solid #1a3e8a;
}

/* Legend bar */
.sap-matrix-legend {
  display: flex;
  gap: 16px;
  padding: 8px 14px;
  background: #f4f6f9;
  border-bottom: 1px solid #e3e9f2;
  flex-wrap: wrap;
  align-items: center;
}

.sap-matrix-legend-item {
  display: flex;
  align-items: center;
  gap: 5px;
  font-size: 11px;
  font-weight: 600;
  color: #3a5a86;
}

.sap-matrix-legend-dot {
  width: 12px;
  height: 12px;
  border-radius: 3px;
  display: inline-block;
}

/* Print styles */
@media print {
  .sap-matrix-table thead th {
    position: static !important;
    z-index: auto !important;
  }
  .sap-matrix-table tbody td:nth-child(1),
  .sap-matrix-table tbody td:nth-child(2),
  .sap-matrix-table tbody td:nth-child(3),
  .sap-matrix-table tbody td:nth-child(4) {
    position: static !important;
    z-index: auto !important;
  }
  .sap-matrix-wrap {
    max-height: none !important;
    overflow: visible !important;
  }
  .no-print { display: none !important; }
}

/* Scrollbar styling */
.sap-matrix-wrap::-webkit-scrollbar {
  width: 8px;
  height: 8px;
}

.sap-matrix-wrap::-webkit-scrollbar-track {
  background: #f0f2f8;
  border-radius: 4px;
}

.sap-matrix-wrap::-webkit-scrollbar-thumb {
  background: #a0b4d0;
  border-radius: 4px;
}

.sap-matrix-wrap::-webkit-scrollbar-thumb:hover {
  background: #7098c0;
}

/* Status badges for matrix */
.sap-status-ok {
  display: inline-block;
  background: #2ecc40;
  color: #fff;
  font-size: 9px;
  font-weight: 700;
  padding: 2px 6px;
  border-radius: 3px;
}

.sap-status-pending {
  display: inline-block;
  background: #f5a623;
  color: #fff;
  font-size: 9px;
  font-weight: 700;
  padding: 2px 6px;
  border-radius: 3px;
}

.sap-status-overdue {
  display: inline-block;
  background: #c02020;
  color: #fff;
  font-size: 9px;
  font-weight: 700;
  padding: 2px 6px;
  border-radius: 3px;
}

/* ============================================================ */
/* MODULO DIGITAL DE CAPACITACIONES - Estilo LMS tipo ADP        */
/* ============================================================ */

.cap-digital-container {
  flex: 1;
  display: flex;
  flex-direction: column;
  overflow: hidden;
  background: #eef3fa;
}

.cap-digital-tabs {
  display: flex;
  gap: 0;
  background: #fff;
  border-bottom: 2px solid #d0dce8;
  padding: 0 20px;
  flex-shrink: 0;
}

.cap-digital-tab {
  padding: 14px 22px;
  border: none;
  background: none;
  font-size: 13px;
  font-weight: 600;
  color: #5a6a80;
  cursor: pointer;
  border-bottom: 3px solid transparent;
  transition: all .2s;
  font-family: 'Exo 2', sans-serif;
}

.cap-digital-tab:hover {
  color: #1a5aa0;
  background: #f4f8fc;
}

.cap-digital-tab.active {
  color: #1a5aa0;
  border-bottom-color: #1a5aa0;
}

.cap-digital-panel {
  flex: 1;
  overflow-y: auto;
  padding: 24px;
}

.cap-digital-panel::-webkit-scrollbar { width: 8px; }
.cap-digital-panel::-webkit-scrollbar-track { background: #eef3fa; }
.cap-digital-panel::-webkit-scrollbar-thumb { background: #88a8c8; border-radius: 4px; }

/* Welcome / Tablero */
.cap-digital-welcome {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background: linear-gradient(135deg, #1a3e8a 0%, #2a5ec2 100%);
  border-radius: 12px;
  padding: 24px 28px;
  margin-bottom: 24px;
  color: #fff;
}

.cap-digital-welcome-text h2 {
  font-size: 20px;
  font-weight: 700;
  margin-bottom: 6px;
}

.cap-digital-welcome-text p {
  font-size: 13px;
  opacity: .85;
}

.cap-digital-stats {
  display: flex;
  gap: 16px;
}

.cap-digital-stat {
  background: rgba(255,255,255,.15);
  border-radius: 10px;
  padding: 14px 18px;
  text-align: center;
  min-width: 80px;
}

.cap-digital-stat-value {
  font-size: 28px;
  font-weight: 800;
  font-family: 'DM Mono', monospace;
}

.cap-digital-stat-label {
  font-size: 10px;
  opacity: .85;
  text-transform: uppercase;
  letter-spacing: .5px;
}

/* Section titles */
.cap-digital-section-title {
  font-size: 15px;
  font-weight: 700;
  color: #0a1e50;
  margin: 20px 0 14px;
  padding-bottom: 8px;
  border-bottom: 1px solid #d0dce8;
}

/* Grid de cursos (tarjetas) */
.cap-digital-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 18px;
  margin-bottom: 24px;
}

.cap-digital-card {
  background: #fff;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 2px 8px rgba(0,0,0,.06);
  transition: all .2s;
  cursor: pointer;
  border: 1px solid #e4ecf4;
}

.cap-digital-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 6px 20px rgba(10,30,80,.12);
  border-color: #1a5aa0;
}

.cap-digital-card-thumb {
  height: 140px;
  background: linear-gradient(135deg, #1a3e8a, #2a5ec2);
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
}

.cap-digital-card-thumb.pdf { background: linear-gradient(135deg, #c03020, #e05040); }
.cap-digital-card-thumb.presentacion { background: linear-gradient(135deg, #d07010, #e8a010); }
.cap-digital-card-thumb.video { background: linear-gradient(135deg, #1a3e8a, #2a5ec2); }

.cap-digital-card-thumb-icon {
  font-size: 48px;
  opacity: .9;
}

.cap-digital-card-badge {
  position: absolute;
  top: 10px;
  right: 10px;
  background: rgba(0,0,0,.6);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  padding: 3px 8px;
  border-radius: 4px;
  text-transform: uppercase;
}

.cap-digital-card-body {
  padding: 14px 16px;
}

.cap-digital-card-title {
  font-size: 14px;
  font-weight: 700;
  color: #0a1e50;
  margin-bottom: 6px;
  line-height: 1.3;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.cap-digital-card-meta {
  font-size: 11px;
  color: #6a7a90;
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 10px;
}

.cap-digital-card-progress {
  margin-top: 8px;
}

.cap-digital-progress-bar {
  height: 6px;
  background: #e4ecf4;
  border-radius: 3px;
  overflow: hidden;
}

.cap-digital-progress-fill {
  height: 100%;
  background: linear-gradient(90deg, #1a7a3c, #20b050);
  border-radius: 3px;
  transition: width .3s;
}

.cap-digital-progress-text {
  font-size: 11px;
  font-weight: 600;
  color: #1a7a3c;
  margin-top: 4px;
  display: block;
}

/* Status badges */
.cap-digital-status {
  display: inline-block;
  font-size: 10px;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 10px;
  text-transform: uppercase;
}

.cap-digital-status.pendiente { background: #fff3e0; color: #d07010; }
.cap-digital-status.en_progreso { background: #e3f2fd; color: #1a5aa0; }
.cap-digital-status.completado { background: #e8f5e9; color: #1a7a3c; }
.cap-digital-status.vencido { background: #ffebee; color: #c02020; }

/* Timeline */
.cap-digital-timeline {
  position: relative;
  padding-left: 24px;
}

.cap-digital-timeline::before {
  content: '';
  position: absolute;
  left: 8px;
  top: 0;
  bottom: 0;
  width: 2px;
  background: #d0dce8;
}

.cap-digital-timeline-item {
  position: relative;
  padding: 12px 0 12px 20px;
}

.cap-digital-timeline-item::before {
  content: '';
  position: absolute;
  left: -20px;
  top: 18px;
  width: 10px;
  height: 10px;
  border-radius: 50%;
  background: #1a5aa0;
  border: 2px solid #fff;
  box-shadow: 0 0 0 2px #1a5aa0;
}

.cap-digital-timeline-date {
  font-size: 11px;
  color: #888;
  font-weight: 600;
}

.cap-digital-timeline-text {
  font-size: 13px;
  color: #0a1e50;
  margin-top: 2px;
}

/* Toolbar */
.cap-digital-toolbar {
  display: flex;
  gap: 10px;
  margin-bottom: 18px;
  flex-wrap: wrap;
}

.cap-digital-search {
  flex: 1;
  min-width: 200px;
  height: 38px;
  border: 1.5px solid #90b8d8;
  border-radius: 8px;
  padding: 0 14px;
  font-size: 13px;
  font-family: 'Exo 2', sans-serif;
  outline: none;
  transition: border-color .2s;
}

.cap-digital-search:focus {
  border-color: #1a5aa0;
  box-shadow: 0 0 0 3px rgba(26,90,160,.1);
}

.cap-digital-select {
  height: 38px;
  border: 1.5px solid #90b8d8;
  border-radius: 8px;
  padding: 0 12px;
  font-size: 13px;
  font-family: 'Exo 2', sans-serif;
  background: #fff;
  cursor: pointer;
  outline: none;
}

.cap-digital-select:focus {
  border-color: #1a5aa0;
}

/* Buttons */
.cap-digital-btn {
  height: 38px;
  padding: 0 18px;
  border: none;
  border-radius: 8px;
  font-size: 13px;
  font-weight: 600;
  cursor: pointer;
  font-family: 'Exo 2', sans-serif;
  transition: all .18s;
  display: inline-flex;
  align-items: center;
  gap: 6px;
}

.cap-digital-btn-primary { background: #1a5aa0; color: #fff; }
.cap-digital-btn-primary:hover { background: #14388a; }
.cap-digital-btn-success { background: #1a7a3c; color: #fff; }
.cap-digital-btn-success:hover { background: #145a2a; }
.cap-digital-btn-danger { background: #c02020; color: #fff; }
.cap-digital-btn-danger:hover { background: #a01818; }
.cap-digital-btn-secondary { background: #6a7a90; color: #fff; }
.cap-digital-btn-secondary:hover { background: #4a5a70; }

/* Empty state */
.cap-digital-empty {
  text-align: center;
  padding: 60px 20px;
  color: #888;
}

.cap-digital-empty p {
  margin-top: 12px;
  font-size: 14px;
}

/* Admin tabs */
.cap-digital-admin-tabs {
  display: flex;
  gap: 0;
  background: #fff;
  border-bottom: 2px solid #d0dce8;
  margin: -24px -24px 20px;
  padding: 0 24px;
}

.cap-digital-adm-tab {
  padding: 12px 18px;
  border: none;
  background: none;
  font-size: 12px;
  font-weight: 600;
  color: #5a6a80;
  cursor: pointer;
  border-bottom: 2px solid transparent;
  transition: all .2s;
  font-family: 'Exo 2', sans-serif;
}

.cap-digital-adm-tab:hover { color: #1a5aa0; }
.cap-digital-adm-tab.active { color: #1a5aa0; border-bottom-color: #1a5aa0; }

.cap-digital-adm-panel {
  display: block;
}

/* Player */
.cap-digital-player-container {
  flex: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  background: #0a0a1a;
  padding: 24px;
  overflow-y: auto;
}

.cap-digital-player-content {
  width: 100%;
  max-width: 960px;
  background: #14142a;
  border-radius: 12px;
  overflow: hidden;
}

#cap-dig-player-media {
  width: 100%;
  background: #000;
  min-height: 400px;
  display: flex;
  align-items: center;
  justify-content: center;
}

#cap-dig-player-media video,
#cap-dig-player-media iframe {
  width: 100%;
  max-height: 540px;
  border: none;
}

.cap-digital-player-info {
  padding: 20px 24px;
  color: #dce8fb;
}

.cap-digital-player-info #cap-dig-player-desc {
  font-size: 13px;
  line-height: 1.6;
  margin-bottom: 16px;
  color: #9aa8c8;
}

.cap-digital-player-progress {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 16px;
}

.cap-digital-player-progress .cap-digital-progress-bar {
  flex: 1;
  height: 8px;
  background: #2a3a5a;
}

#cap-dig-player-progress-text {
  font-size: 13px;
  font-weight: 700;
  color: #5ad850;
  min-width: 40px;
  text-align: right;
}

/* Certificados - Diseño formal tipo diploma */
.cap-digital-cert-grid {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
  gap: 24px;
  margin-bottom: 24px;
}

.cap-digital-cert-card {
  background: #fff;
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 2px 12px rgba(0,0,0,.08);
  border: 1px solid #e4ecf4;
  transition: all .2s;
}

.cap-digital-cert-card:hover {
  box-shadow: 0 6px 24px rgba(10,30,80,.15);
  transform: translateY(-2px);
}

.cap-digital-cert-preview {
  background: linear-gradient(135deg, #f8f0d0 0%, #fffef5 50%, #f8f0d0 100%);
  border: 8px solid #c8a84a;
  border-radius: 4px;
  padding: 24px 20px;
  text-align: center;
  position: relative;
  min-height: 180px;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
}

.cap-digital-cert-preview::before {
  content: '';
  position: absolute;
  top: 6px; left: 6px; right: 6px; bottom: 6px;
  border: 2px solid #c8a84a;
  border-radius: 2px;
  pointer-events: none;
}

.cap-digital-cert-icon {
  font-size: 36px;
  margin-bottom: 8px;
}

.cap-digital-cert-title {
  font-family: 'Exo 2', serif;
  font-size: 14px;
  font-weight: 700;
  color: #2a1a00;
  text-transform: uppercase;
  letter-spacing: 1px;
  margin-bottom: 6px;
}

.cap-digital-cert-company {
  font-size: 10px;
  color: #6a5a30;
  font-weight: 600;
  letter-spacing: .5px;
}

.cap-digital-cert-lines {
  width: 60%;
  height: 2px;
  background: #c8a84a;
  margin: 10px 0;
  opacity: .5;
}

.cap-digital-cert-body {
  padding: 14px 18px;
  display: flex;
  align-items: center;
  justify-content: space-between;
}

.cap-digital-cert-name {
  font-size: 13px;
  font-weight: 600;
  color: #0a1e50;
}

.cap-digital-cert-date {
  font-size: 11px;
  color: #888;
}

/* Responsive */
@media (max-width: 768px) {
  .cap-digital-welcome { flex-direction: column; gap: 16px; text-align: center; }
  .cap-digital-stats { flex-wrap: wrap; justify-content: center; }
  .cap-digital-grid { grid-template-columns: 1fr; }
  .cap-digital-cert-grid { grid-template-columns: 1fr; }
  .cap-digital-tabs { overflow-x: auto; }
  .cap-digital-tab { padding: 12px 14px; font-size: 12px; white-space: nowrap; }
}

/* ═══ SST — Modal de previsualización de impresión ═══ */
#sst-print-preview-modal .cfg-body { background:#c8d0db !important; }
#sst-print-preview-body { min-height:400px; }
#sst-print-preview-body .print-page { page-break-after:always; }
#sst-print-preview-body .print-page:last-child { page-break-after:auto; }
#sst-print-preview-body .page-break { display:block;height:1px;margin:8px 0;border-top:2px dashed #8899aa;page-break-before:always; }

/* Pre-Uso preview (tabla) */
#sst-print-preview-body .umchk-membrete{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;padding:6px 0;border-bottom:2px solid #0a1e50;margin-bottom:6px;}
#sst-print-preview-body .umchk-membrete-emp{flex:1;min-width:240px;}
#sst-print-preview-body .umchk-membrete-razon{font-size:14px;font-weight:800;color:#0a1e50;line-height:1.2;}
#sst-print-preview-body .umchk-membrete-ruc{font-size:10px;color:#556a88;font-weight:700;}
#sst-print-preview-body .umchk-membrete-controles{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;}
#sst-print-preview-body .umchk-mb-ctrl{background:#f0f4fa;border-radius:4px;border:1px solid #c0d4e8;padding:3px 8px;min-width:70px;text-align:center;}
#sst-print-preview-body .umchk-mb-ctrl-dark{background:#0a1e50;border-radius:4px;padding:3px 8px;min-width:70px;text-align:center;}
#sst-print-preview-body .umchk-mb-ctrl-label{font-size:7px;color:#556a88;font-weight:700;text-transform:uppercase;}
#sst-print-preview-body .umchk-mb-ctrl-label-dark{font-size:7px;color:#fff;font-weight:700;text-transform:uppercase;}
#sst-print-preview-body .umchk-mb-ctrl-val{font-size:10px;font-weight:800;color:#0a1e50;}
#sst-print-preview-body .umchk-mb-ctrl-val-dark{font-size:10px;font-weight:800;color:#fff;}
#sst-print-preview-body .umchk-titulo{font-size:13pt;font-weight:bold;color:#0a1e50;text-align:center;margin:8px 0 4px;}
#sst-print-preview-body .umchk-seccion-objetivo{margin:6px 0;padding:6px 8px;background:#f0f7ff;border-left:4px solid #1a3e8a;border-radius:4px;}
#sst-print-preview-body .umchk-seccion-alcance{margin-bottom:6px;padding:6px 8px;background:#f0fff4;border-left:4px solid #1a7a3c;border-radius:4px;}
#sst-print-preview-body .umchk-seccion-titulo{font-size:10px;font-weight:800;color:#0a1e50;margin-bottom:3px;}
#sst-print-preview-body .umchk-seccion-texto{font-size:9px;color:#333;line-height:1.2;}
#sst-print-preview-body .info-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:2px 8px;margin-bottom:8px;font-size:8pt;}
#sst-print-preview-body .info-grid div{display:flex;gap:3px;}
#sst-print-preview-body .info-grid label{font-weight:bold;min-width:65px;color:#0a1e50;}
#sst-print-preview-body .info-grid span{flex:1;border-bottom:1px solid #999;}
#sst-print-preview-body .umchk-tabla{width:100%;border-collapse:collapse;font-size:8pt;table-layout:fixed;}
#sst-print-preview-body .umchk-tabla th,#sst-print-preview-body .umchk-tabla td{padding:2px 3px;vertical-align:top;border-bottom:1px solid #e0e0e0;}
#sst-print-preview-body .umchk-tabla th{background:#0a1e50;color:#fff;font-weight:bold;text-align:center;font-size:7.5pt;padding:3px 2px;}
#sst-print-preview-body .umchk-tabla .sec-row td{background:#eef3fb;font-weight:bold;font-size:8pt;padding:3px 4px;border:none;color:#0a1e50;}
#sst-print-preview-body .umchk-tabla .col-num{width:24px;text-align:center;font-weight:bold;color:#0a1e50;}
#sst-print-preview-body .umchk-tabla .col-criterio{width:55%;}
#sst-print-preview-body .umchk-tabla .col-eval{width:12%;}
#sst-print-preview-body .umchk-tabla .col-chk{width:30px;text-align:center;}
#sst-print-preview-body .umchk-tabla .col-obs{width:22%;}
#sst-print-preview-body .chk{width:9px;height:9px;border:1px solid #333;display:inline-block;margin:0 1px;vertical-align:middle;}
#sst-print-preview-body .chk-si::before{content:'\\2713';font-size:7pt;text-align:center;display:block;line-height:9px;}
#sst-print-preview-body .chk-no::before{content:'\\2717';font-size:7pt;text-align:center;display:block;line-height:9px;color:#c00;}
#sst-print-preview-body .chk-na::before{content:'\\2014';font-size:7pt;text-align:center;display:block;line-height:9px;color:#666;}
#sst-print-preview-body .obs-txt{font-size:7pt;color:#333;}
#sst-print-preview-body .footer{margin-top:8px;font-size:7pt;color:#555;display:flex;justify-content:space-between;align-items:flex-end;}
#sst-print-preview-body .sig-line{border-top:1px solid #333;width:150px;display:inline-block;margin-top:20px;padding-top:2px;text-align:center;font-size:7pt;}
#sst-print-preview-body .umchk-sec{margin-bottom:6px;page-break-inside:avoid;break-inside:avoid;}
#sst-print-preview-body .umchk-sec-titulo{background:#eef3fb;font-weight:800;font-size:9.5px;color:#0a1e50;padding:3px 6px;border-left:4px solid #0a1e50;margin-bottom:2px;}
#sst-print-preview-body .umchk-cols{display:flex;gap:6px;align-items:flex-start;}
#sst-print-preview-body .umchk-tabla.mit{width:50%;}
#sst-print-preview-body .umchk-tabla.mit .col-num{width:16px;}
#sst-print-preview-body .umchk-tabla.mit .col-criterio{width:52%;}
#sst-print-preview-body .umchk-tabla.mit .col-eval{width:11%;}
#sst-print-preview-body .umchk-tabla.mit .col-chk{width:24px;}
#sst-print-preview-body .umchk-tabla.mit .col-obs{width:14%;}
#sst-print-preview-body .umchk-tabla.mit th{font-size:7px;padding:2px 1px;}
#sst-print-preview-body .umchk-tabla.mit td{font-size:7.5px;padding:2px 2px;}
#sst-print-preview-body .umchk-resultados{margin-top:10px;border:1.5px solid #0a1e50;border-radius:4px;page-break-inside:avoid;break-inside:avoid;}
#sst-print-preview-body .umchk-resultados-titulo{background:#0a1e50;color:#fff;font-weight:800;font-size:9px;text-align:center;padding:3px;}
#sst-print-preview-body .umchk-resultados-checks{display:flex;gap:18px;padding:6px 8px;font-size:8px;font-weight:700;color:#333;flex-wrap:wrap;}
#sst-print-preview-body .umchk-ckgrp{display:inline-flex;align-items:center;gap:4px;}
#sst-print-preview-body .umchk-resultados-obs{padding:5px 8px 8px;font-size:8px;border-top:1px dashed #c0d4e8;}
#sst-print-preview-body .umchk-resultados-obs-label{font-weight:800;color:#0a1e50;}
#sst-print-preview-body .umchk-firmas{display:flex;justify-content:space-between;gap:14px;margin-top:16px;page-break-inside:avoid;break-inside:avoid;}
#sst-print-preview-body .umchk-firma{flex:1;text-align:center;}
#sst-print-preview-body .umchk-firma-nombre{min-height:22px;font-size:9px;font-weight:700;color:#333;}
#sst-print-preview-body .umchk-firma-line{border-top:1.5px solid #333;margin-top:6px;padding-top:2px;}
#sst-print-preview-body .umchk-firma-cargo{font-size:8.5px;font-weight:800;color:#0a1e50;margin-top:4px;text-transform:uppercase;}
#sst-print-preview-body .umchk-cc-titulo{font-size:11pt;font-weight:800;color:#0a1e50;text-align:center;margin:6px 0 4px;}
#sst-print-preview-body .umchk-cc-note{font-size:8px;color:#444;background:#f0f7ff;border-left:4px solid #1a3e8a;padding:5px 8px;margin-bottom:8px;line-height:1.25;}
#sst-print-preview-body .umchk-cc-tabla{width:100%;border-collapse:collapse;font-size:8pt;table-layout:fixed;}
#sst-print-preview-body .umchk-cc-tabla th,#sst-print-preview-body .umchk-cc-tabla td{padding:4px 5px;border:1px solid #8899aa;vertical-align:top;text-align:center;}
#sst-print-preview-body .umchk-cc-tabla th{background:#0a1e50;color:#fff;font-weight:800;font-size:7.5pt;}
#sst-print-preview-body .umchk-cc-tabla th:nth-child(1),#sst-print-preview-body .umchk-cc-tabla td:nth-child(1){width:6%;}
#sst-print-preview-body .umchk-cc-tabla th:nth-child(2),#sst-print-preview-body .umchk-cc-tabla td:nth-child(2){width:15%;}
#sst-print-preview-body .umchk-cc-tabla th:nth-child(3),#sst-print-preview-body .umchk-cc-tabla td:nth-child(3){width:17%;}
#sst-print-preview-body .umchk-cc-tabla th:nth-child(4),#sst-print-preview-body .umchk-cc-tabla td:nth-child(4){width:13%;}
#sst-print-preview-body .umchk-cc-tabla th:nth-child(5),#sst-print-preview-body .umchk-cc-tabla td:nth-child(5){width:16%;}
#sst-print-preview-body .umchk-cc-tabla th:nth-child(6),#sst-print-preview-body .umchk-cc-tabla td:nth-child(6){width:33%;text-align:left;}

/* Membrete inspección (preview) */
.insp-membrete{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;flex-wrap:wrap;padding:6px 0;border-bottom:2px solid #0a1e50;margin-bottom:6px;}
.insp-membrete-emp{flex:1;min-width:240px;}
.insp-membrete-razon{font-size:14px;font-weight:800;color:#0a1e50;line-height:1.2;}
.insp-membrete-ruc{font-size:10px;color:#556a88;font-weight:700;}
.insp-membrete-controles{display:flex;gap:6px;flex-wrap:wrap;justify-content:flex-end;}
.insp-mb-ctrl{background:#f0f4fa;border-radius:4px;border:1px solid #c0d4e8;padding:3px 8px;min-width:70px;text-align:center;}
.insp-mb-ctrl-dark{background:#0a1e50;border-radius:4px;padding:3px 8px;min-width:70px;text-align:center;}
.insp-mb-ctrl-label{font-size:7px;color:#556a88;font-weight:700;text-transform:uppercase;}
.insp-mb-ctrl-label-dark{font-size:7px;color:#fff;font-weight:700;text-transform:uppercase;}
.insp-mb-ctrl-val{font-size:10px;font-weight:800;color:#0a1e50;}
.insp-mb-ctrl-val-dark{font-size:10px;font-weight:800;color:#fff;}
.insp-titulo{font-size:13pt;font-weight:bold;color:#0a1e50;text-align:center;margin:8px 0 4px;}
.insp-subtitulo{font-size:10pt;color:#333;text-align:center;margin-bottom:8px;}
.insp-tabla{width:100%;border-collapse:collapse;font-size:8pt;table-layout:fixed;}
.insp-tabla th,.insp-tabla td{padding:3px 4px;vertical-align:top;border-bottom:1px solid #e0e0e0;}
.insp-tabla th{background:#0a1e50;color:#fff;font-weight:bold;text-align:center;font-size:7.5pt;padding:4px 3px;}
.insp-tabla td:nth-child(1){width:26px;text-align:center;font-weight:bold;color:#0a1e50;}
.insp-tabla td:nth-child(2){width:42%;}
.insp-tabla td:nth-child(3),.insp-tabla td:nth-child(4){width:30px;text-align:center;font-weight:700;}
.insp-tabla td:nth-child(5){width:42px;text-align:center;}
.insp-tabla td:nth-child(6){width:22%;}
.insp-tabla td:nth-child(7){width:18%;}
.insp-no-data{text-align:center;color:#8899aa;padding:20px;font-style:italic;font-size:11px;}

/* ═══ PROCEDIMIENTOS OPERATIVOS — estilos de impresión ═══ */
.po-print-wrapper{background:#fff;padding:20px;min-height:200px;}
.po-print-wrapper h1{font-size:14pt;font-weight:800;color:#0a1e50;text-align:center;margin:12px 0 8px;border-bottom:1px solid #0a1e50;padding-bottom:6px;}
.po-print-membrete{border-bottom:2px solid #0a1e50;padding-bottom:8px;margin-bottom:12px;}
.po-print-indice h2{border-bottom:1px solid #0a1e50;padding-bottom:4px;margin-bottom:8px;}
.po-print-indice ul{list-style:none;padding:0;margin:0 0 14px;}
.po-print-indice li{margin:1px 0;}
.po-print-indice a{color:#1a5fbf;text-decoration:none;font-weight:700;}
.po-print-indice a:hover{text-decoration:underline;}
.po-print-indice li:nth-child(1){margin-left:0;}
.po-print-indice li:nth-child(2n+1){margin-left:0;}
.po-print-indice li:nth-child(-n+3){margin-left:0;}
.po-print-indice li{word-break:break-word;}
.po-print-seccion{margin-bottom:10px;}
.po-print-seccion h3{font-size:12px;font-weight:800;color:#0a1e50;margin:14px 0 4px;border-bottom:1px solid #556a88;padding-bottom:2px;}
.po-print-subseccion{margin-left:14px;margin-bottom:8px;}
.po-print-subseccion h4{font-size:11px;font-weight:700;color:#0a1e50;margin:10px 0 2px;}
.po-print-pie-pagina{
  border-top:1px solid #0a1e50;padding-top:8px;margin-top:20px;
  font-size:8px;color:#0a1e50;line-height:1.4;text-align:justify;
}
.po-print-pie-pagina strong{font-weight:800;}

/* Ocultar elementos que no deben imprimirse */
@media print{
  #screen-docleg-procedimiento-print .no-print,.calib-toolbar,.app-header,.status-bar{display:none!important;}
  #screen-docleg-procedimiento-print .po-print-wrapper{display:block;padding:0;}
  body{margin:0;padding:10mm;}
  #screen-docleg-procedimiento-print .rep-print-target{display:none;}
}
@media screen{
  .no-print{display:block;}
  #screen-docleg-procedimiento-print .po-print-wrapper{box-shadow:0 1px 8px rgba(20,40,90,.1);border-radius:8px;}
}

.rep-mb-container{border-bottom:2px solid #0a1e50;padding-bottom:6px;margin-bottom:10px;}
.rep-mb-razon{font-size:15px;font-weight:800;color:#0a1e50;line-height:1.3;}
.rep-mb-dato{background:#f0f4fa;border:1px solid #c0d4e8;border-radius:4px;padding:4px 8px;margin-bottom:6px;}
.rep-mb-dato div{font-size:10px;color:#556a88;font-weight:700;}
.rep-mb-datos .rep-mb-dato:last-child{background:#0a1e50;}
.rep-mb-datos .rep-mb-dato:last-child div{color:#fff;}

/* ----------------------------------------------------------------
   M�dulo: Reuniones de SST y Alta Direcci�n (POG-E-008)
   ---------------------------------------------------------------- */
.rsst-hub-wrap{display:grid;grid-template-columns:1fr 1.4fr;gap:16px;padding:16px 24px;align-items:start;}
.rsst-col{background:#fff;border:1px solid #dfe7f1;border-radius:10px;padding:14px;box-shadow:0 1px 6px rgba(20,40,90,.06);}
.rsst-col-title{font-size:13px;font-weight:800;color:#0a1e50;margin-bottom:10px;border-bottom:2px solid #1a5aa0;padding-bottom:6px;}
.rsst-list{display:flex;flex-direction:column;gap:8px;}
.rsst-list-item{background:#f4f8fc;border:1px solid #d2e0f0;border-radius:8px;padding:10px 12px;}
.rsst-list-item .rsst-li-nombre{font-weight:700;color:#0a1e50;font-size:13px;}
.rsst-list-item .rsst-li-sub{font-size:11px;color:#556a88;margin-top:2px;}
.rsst-li-btns{display:flex;gap:6px;flex-wrap:wrap;margin-top:8px;}
.rsst-doc-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.rsst-doc-card{background:#f4f8fc;border:1px solid #d2e0f0;border-radius:8px;padding:10px 12px;cursor:pointer;transition:.15s;}
.rsst-doc-card:hover{border-color:#1a5aa0;background:#e8f1fb;transform:translateY(-1px);}
.rsst-doc-card .rsst-dc-cod{font-size:11px;font-weight:800;color:#1a5aa0;}
.rsst-doc-card .rsst-dc-tit{font-size:12.5px;font-weight:700;color:#0a1e50;margin-top:3px;line-height:1.3;}
.rsst-doc-card .rsst-dc-est{font-size:10px;color:#556a88;margin-top:4px;}

.rsst-doc{max-width:820px;margin:18px auto;background:#fff;padding:26px 32px;border:1px solid #cdd9e8;border-radius:8px;box-shadow:0 1px 8px rgba(20,40,90,.08);}
.rsst-membrete{border-bottom:2px solid #0a1e50;padding-bottom:8px;margin-bottom:10px;}
.rsst-membrete .rsst-mb-emp{font-size:16px;font-weight:800;color:#0a1e50;line-height:1.3;text-transform:uppercase;}
.rsst-membrete .rsst-mb-sub{font-size:11px;color:#33475b;margin-top:3px;}
.rsst-membrete .rsst-mb-rep{font-size:11px;color:#33475b;margin-top:2px;}
.rsst-codbar{display:flex;flex-wrap:wrap;gap:14px;background:#eef3fa;border:1px solid #cdd9e8;border-radius:6px;padding:6px 10px;font-size:11px;color:#22354f;margin-bottom:12px;}
.rsst-doc-h{text-align:center;font-size:14px;font-weight:800;color:#0a1e50;margin:8px 0 16px;letter-spacing:.3px;}
.rsst-doc-p{font-size:12.5px;color:#22354f;line-height:1.6;margin:10px 0;text-align:justify;}
.rsst-tabla-datos{width:100%;border-collapse:collapse;margin:10px 0;font-size:12.5px;}
.rsst-tabla-datos td{border:1px solid #c7d4e6;padding:6px 10px;vertical-align:top;}
.rsst-td-lab{width:230px;background:#eef3fa;font-weight:700;color:#0a1e50;}
.rsst-firmas{display:flex;gap:40px;margin-top:34px;justify-content:center;}
.rsst-firma{width:220px;text-align:center;font-size:11.5px;color:#22354f;}
.rsst-firma-line{border-top:1px solid #22354f;margin-bottom:6px;height:26px;}

.rsst-lab{font-size:11px;font-weight:700;color:#0a1e50;}
.rsst-input{width:100%;height:34px;border:1.5px solid #90b8d8;border-radius:6px;padding:0 10px;font-size:13px;box-sizing:border-box;}
textarea.rsst-input{padding:8px 10px;height:auto;resize:vertical;}
.rsst-input-inline{height:28px;border:1px solid #90b8d8;border-radius:5px;padding:0 6px;font-size:12px;}
.rsst-doc-campos{display:flex;flex-direction:column;gap:12px;margin-top:6px;}
.rsst-campo{display:flex;flex-direction:column;gap:4px;}
.rsst-campo label{font-size:11.5px;font-weight:700;color:#0a1e50;}
.rsst-campo .rsst-campo-val{font-size:13px;color:#22354f;border-bottom:1px solid #90b8d8;padding:4px 2px;min-height:22px;white-space:pre-wrap;}

@media print{
  .no-print{display:none !important;}
  .rsst-doc{box-shadow:none;border:none;margin:0;padding:0;max-width:100%;}
  body{margin:0;padding:10mm;}
}

/* -- Editor de Acta Prellenada (Vista de acta / Vista de campos) -- */
.rsst-doc-toggle{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin-bottom:14px;}
.rsst-doc-toggle .calib-btn.cb-active{background:#1a5aa0;color:#fff;}
.rsst-doc-hint{font-size:11px;color:#6688aa;margin-left:6px;}
.rsst-acta{background:#fff;border:1px solid #d2e0f0;border-radius:10px;padding:22px 26px;max-width:900px;margin:0 auto;box-shadow:0 1px 4px rgba(10,30,80,.08);font-family:'Times New Roman',Georgia,serif;color:#141414;line-height:1.55;}
.rsst-acta-cab{display:flex;gap:18px;flex-wrap:wrap;justify-content:center;font-size:10.5px;color:#556a88;background:#f4f8fc;border:1px solid #d2e0f0;border-radius:6px;padding:6px 10px;margin-bottom:16px;font-family:Arial,sans-serif;}
.rsst-acta-cab b{color:#0a1e50;}
.rsst-acta-titulo{font-size:14px;font-weight:800;text-align:center;text-transform:uppercase;color:#0a1e50;margin:6px 0 14px;line-height:1.4;}
.rsst-acta-sub{font-size:12.5px;font-weight:800;color:#0a1e50;margin:16px 0 6px;}
.rsst-acta-p{font-size:12.5px;text-align:justify;margin:0 0 10px;}
.rsst-acta-nota{font-size:11px;font-style:italic;color:#6688aa;margin:0 0 10px;}
.rsst-acta-lista{margin:0 0 10px;padding-left:22px;font-size:12.5px;}
.rsst-acta-lista li{margin-bottom:4px;text-align:justify;}
.rsst-acta-vin{color:#1a5aa0;font-weight:800;margin-right:2px;}
.rsst-acta-vacio{font-size:11.5px;color:#a05a1a;background:#fff6ea;border:1px dashed #e0b070;border-radius:6px;padding:6px 10px;margin:0 0 10px;}
.rsst-acta-tabla-wrap{overflow-x:auto;margin:0 0 14px;}
.rsst-acta-tabla{width:100%;border-collapse:collapse;font-size:11.5px;}
.rsst-acta-tabla th,.rsst-acta-tabla td{border:1px solid #b8c8dc;padding:5px 8px;text-align:left;vertical-align:top;}
.rsst-acta-tabla th{background:#eaf1fa;color:#0a1e50;font-weight:800;}
.rsst-acta-firmas-tit{font-size:11.5px;font-weight:800;color:#0a1e50;text-align:center;margin:18px 0 6px;text-transform:uppercase;}
.rsst-acta-firmas{display:flex;flex-wrap:wrap;gap:14px;justify-content:center;margin:10px 0 6px;}
.rsst-acta-firma{text-align:center;font-size:11px;padding:0 6px;box-sizing:border-box;}
.rsst-acta-firma-linea{color:#333;letter-spacing:1px;margin-bottom:4px;}
.rsst-acta-firma-nom{font-weight:800;text-transform:uppercase;color:#0a1e50;}
.rsst-acta-firma-car{color:#33475b;}
.rsst-acta-firma-dni{color:#6688aa;font-size:10px;}
.rsst-var{background:#fff6d8;border-bottom:1px dashed #c9a227;padding:0 2px;border-radius:2px;cursor:text;}
.rsst-var:focus{outline:2px solid #1a5aa0;background:#fffef0;}
.rsst-var-vacio{background:#ffe3e3;border-bottom:1px dashed #c02020;}
.rsst-var-fijo{color:#0a1e50;font-weight:700;}
.rsst-doc-campos-form{max-width:900px;margin:0 auto;}
.rsst-doc-extras{margin-top:18px;border-top:2px dashed #d2e0f0;padding-top:12px;}
.rsst-doc-extras-tit{font-size:11.5px;font-weight:800;color:#a05a1a;margin-bottom:8px;}
@media print{
  .rsst-doc-toggle{display:none;}
  .rsst-acta{box-shadow:none;border:none;padding:0;}
  .rsst-var{background:transparent;border-bottom:none;}
}

/* -- Archivo de Documentos y Actas Elaborados (subm�dulo) -- */
.rsst-membrete-preview{font-size:12px;}
.rsst-arch-sec{font-size:13px;font-weight:800;color:#0a1e50;margin:18px 0 8px;padding-bottom:5px;border-bottom:2px solid #1a5aa0;}
.rsst-arch-vacio{font-size:12px;color:#888;padding:6px 2px 12px;}
.rsst-arch-row{display:flex;align-items:center;gap:12px;background:#f4f8fc;border:1px solid #d2e0f0;border-radius:8px;padding:10px 12px;margin-bottom:8px;flex-wrap:wrap;}
.rsst-arch-info{display:flex;flex-direction:column;gap:2px;flex:1;min-width:240px;}
.rsst-arch-cod{font-size:11px;font-weight:800;color:#1a5aa0;}
.rsst-arch-tit{font-size:13px;font-weight:700;color:#0a1e50;}
.rsst-arch-fecha{font-size:10.5px;color:#556a88;}
.rsst-arch-actions{display:flex;gap:6px;flex-wrap:wrap;}
.rsst-arch-actions .calib-btn{padding:5px 10px;font-size:11px;}

/* T13: Tabla de archivo de actas — DESCRIPCIÓN · EMPRESA · CÓDIGO · FECHA · ACCIONES */
.rsst-arch-tabla-wrap{margin-bottom:12px;overflow-x:auto;}
.rsst-arch-tabla{width:100%;border-collapse:collapse;font-size:12px;background:#fff;border:1px solid #d0d8e6;border-radius:6px;overflow:hidden;}
.rsst-arch-tabla thead{background:#0a1e50;color:#fff;font-weight:bold;}
.rsst-arch-tabla th{padding:10px;text-align:left;border-bottom:2px solid #1a5aa0;white-space:nowrap;}
.rsst-th-desc{width:40%;}
.rsst-th-emp{width:20%;}
.rsst-th-cod{width:12%;}
.rsst-th-fec{width:12%;}
.rsst-th-acc{width:16%;text-align:center;}
.rsst-arch-tabla tbody tr{border-bottom:1px solid #e0e0e0;}
.rsst-arch-tabla tbody tr:last-child{border-bottom:none;}
.rsst-arch-tabla tbody tr:hover{background:#f9fbfd;}
.rsst-arch-tabla td{padding:10px;vertical-align:middle;}
.rsst-td-desc{text-align:left;font-weight:500;color:#0a1e50;}
.rsst-td-emp{text-align:left;color:#556a88;}
.rsst-td-cod{text-align:center;font-weight:bold;color:#1a5aa0;font-family:monospace;}
.rsst-td-fec{text-align:center;color:#666;font-size:11px;}
.rsst-td-acc{text-align:center;}
.rsst-arch-vacio-row td{text-align:center;color:#888;padding:16px;font-style:italic;}
.rsst-arch-actions{display:flex;gap:4px;justify-content:center;flex-wrap:wrap;}
.rsst-arch-actions .calib-btn{padding:5px 8px;font-size:10px;white-space:nowrap;}

/* ============================================================
   Headroom.js v0.12.0 — cabeceras que se ocultan al bajar
   Se aplica solo a los elementos activados con activarHeadroom().
   ============================================================ */
.headroom{will-change:transform;transition:transform .25s ease-in-out;}
.headroom--pinned{transform:translateY(0%);}
.headroom--unpinned{transform:translateY(-100%);}
.headroom--fija{position:sticky;top:0;z-index:60;}

/* ============================================================
   Reporte Técnico - Mantenimiento Preventivo y Correctivo
   ============================================================ */

.mrt-section {
  margin-bottom: 12px;
  page-break-inside: avoid;
}

.mrt-grid-2col {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
  gap: 14px;
  margin-bottom: 10px;
}

.mrt-field {
  display: flex;
  flex-direction: column;
  gap: 3px;
  margin-bottom: 8px;
}

.mrt-field label {
  font-size: 11.5px;
  font-weight: 700;
  color: #0a1e50;
}

.mrt-input, .mrt-textarea {
  border: 1px solid #b8ccdc;
  border-radius: 5px;
  padding: 7px 8px;
  font-size: 12.5px;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  color: #0a1e50;
  background: #fff;
}

.mrt-input:focus, .mrt-textarea:focus {
  outline: none;
  border-color: #1a3e8a;
  box-shadow: 0 0 0 2px rgba(26, 62, 138, .12);
}

.mrt-input[readonly] {
  background: #f4f6fb;
  color: #33507f;
}

.mrt-input-table {
  border: none;
  padding: 4px;
  font-size: 12px;
  font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
  color: #0a1e50;
  background: transparent;
}

.mrt-input-table:focus {
  outline: 1px solid #0066cc;
  background: #f0f8ff;
}

.mrt-textarea {
  min-height: 50px;
  resize: vertical;
}

/* Estilos de impresión */
@media print {
  .no-print {
    display: none !important;
  }

  .seg-toolbar,
  #mrt-table-container,
  .status-bar {
    display: none !important;
  }

  .mrt-form-container {
    padding: 0 !important;
    background: white !important;
  }

  .mrt-reporte-print {
    max-width: 100% !important;
    margin: 0 !important;
    padding: 10mm !important;
    font-size: 11px;
  }

  .mrt-grid-2col {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 8px;
  }

  .mrt-input,
  .mrt-textarea {
    border: 1px solid #000;
    background: white;
  }

  /* Optimizar para A4 */
  @page {
    size: A4;
    margin: 10mm;
  }

  body {
    margin: 0;
    padding: 0;
    background: white;
  }

  .mrt-section {
    page-break-inside: avoid;
    margin-bottom: 10px;
  }

  table {
    width: 100%;
    page-break-inside: avoid;
  }

  h4 {
    font-size: 10.5px;
    margin-bottom: 4px;
  }
}

/* Responsivo para pantallas pequeñas */
@media (max-width: 768px) {
  .mrt-grid-2col {
    grid-template-columns: 1fr;
  }

  .mrt-reporte-print {
    font-size: 10px;
  }

  .mrt-field label {
    font-size: 9px;
  }
}

/* ═══════════════════════════════════════════════════════════════════════════
   T9 — PROGRAMAS SST: tablas con el mismo look-and-feel que Laboratorio/EMOs
   (.calib-table-wrap + .calib-table). Se escopa a las 5 pantallas de programa
   (screen-sst-prog-*) para no tocar la pantalla índice (screen-sst-programas)
   ni los otros .pg-table del módulo. El marco exterior ya reutiliza la clase
   real .calib-table-wrap en el HTML; aquí se replican cabecera, grilla,
   bandeado y hover de .calib-table sobre .pg-table, que no puede llevar la
   clase directamente porque las reglas .calib-table td:nth-child(n) fijan
   anchos incompatibles con las 12 columnas de meses.
   ═════════════════════════════════════════════════════════════════════════ */
#screen-sst-prog-auditoria .pg-table,
#screen-sst-prog-vigilancia .pg-table,
#screen-sst-prog-monitoreo .pg-table,
#screen-sst-prog-capacitacion .pg-table,
#screen-sst-prog-simulacros .pg-table{
  border-collapse:collapse;width:100%;min-width:1500px;font-size:11px;background:#fff;
}
#screen-sst-prog-auditoria .pg-table thead th,
#screen-sst-prog-vigilancia .pg-table thead th,
#screen-sst-prog-monitoreo .pg-table thead th,
#screen-sst-prog-capacitacion .pg-table thead th,
#screen-sst-prog-simulacros .pg-table thead th{
  background:#1a3e8a;color:#fff;
  font-family:-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,Helvetica,Arial,sans-serif;
  font-weight:700;font-size:11px;padding:9px 8px;text-align:center;
  border:1px solid #2a5ab8;position:sticky;top:0;z-index:2;
}
#screen-sst-prog-auditoria .pg-table tbody td,
#screen-sst-prog-vigilancia .pg-table tbody td,
#screen-sst-prog-monitoreo .pg-table tbody td,
#screen-sst-prog-capacitacion .pg-table tbody td,
#screen-sst-prog-simulacros .pg-table tbody td{
  padding:7px 8px;border:1px solid #d0e0f0;color:#000;font-weight:600;
  vertical-align:middle;line-height:1.4;text-align:center;
}
#screen-sst-prog-auditoria .pg-table tbody td.pg-txt,
#screen-sst-prog-vigilancia .pg-table tbody td.pg-txt,
#screen-sst-prog-monitoreo .pg-table tbody td.pg-txt,
#screen-sst-prog-capacitacion .pg-table tbody td.pg-txt,
#screen-sst-prog-simulacros .pg-table tbody td.pg-txt{text-align:left;white-space:normal;}
/* Bandeado y hover idénticos a .calib-table */
#screen-sst-prog-auditoria .pg-table tbody tr:nth-child(even),
#screen-sst-prog-vigilancia .pg-table tbody tr:nth-child(even),
#screen-sst-prog-monitoreo .pg-table tbody tr:nth-child(even),
#screen-sst-prog-capacitacion .pg-table tbody tr:nth-child(even),
#screen-sst-prog-simulacros .pg-table tbody tr:nth-child(even){background:#f0f6fc;}
#screen-sst-prog-auditoria .pg-table tbody tr:hover,
#screen-sst-prog-vigilancia .pg-table tbody tr:hover,
#screen-sst-prog-monitoreo .pg-table tbody tr:hover,
#screen-sst-prog-capacitacion .pg-table tbody tr:hover,
#screen-sst-prog-simulacros .pg-table tbody tr:hover{background:#d8eeff;}
/* Columna Avance (última de datos): que la barra + % no se parta en dos líneas */
#screen-sst-prog-auditoria .pg-table tbody td.pg-avance-td,
#screen-sst-prog-vigilancia .pg-table tbody td.pg-avance-td,
#screen-sst-prog-monitoreo .pg-table tbody td.pg-avance-td,
#screen-sst-prog-capacitacion .pg-table tbody td.pg-avance-td,
#screen-sst-prog-simulacros .pg-table tbody td.pg-avance-td{white-space:nowrap;font-weight:700;}
/* Inputs en línea: se leen como texto de celda (igual que Laboratorio, que no
   tiene inputs); el recuadro aparece solo al pasar el mouse o al enfocar. */
#screen-sst-prog-auditoria .pg-input-mini,
#screen-sst-prog-vigilancia .pg-input-mini,
#screen-sst-prog-monitoreo .pg-input-mini,
#screen-sst-prog-capacitacion .pg-input-mini,
#screen-sst-prog-simulacros .pg-input-mini{
  border:1px solid transparent;background:transparent;border-radius:5px;
  font-size:11px;font-weight:600;color:#000;
  transition:border-color .15s,background .15s;
}
#screen-sst-prog-auditoria .pg-input-mini:hover,
#screen-sst-prog-vigilancia .pg-input-mini:hover,
#screen-sst-prog-monitoreo .pg-input-mini:hover,
#screen-sst-prog-capacitacion .pg-input-mini:hover,
#screen-sst-prog-simulacros .pg-input-mini:hover{background:#fff;border-color:#c9d9ea;}
#screen-sst-prog-auditoria .pg-input-mini:focus,
#screen-sst-prog-vigilancia .pg-input-mini:focus,
#screen-sst-prog-monitoreo .pg-input-mini:focus,
#screen-sst-prog-capacitacion .pg-input-mini:focus,
#screen-sst-prog-simulacros .pg-input-mini:focus{
  background:#fff;border-color:#2a5ab8;outline:none;box-shadow:0 0 0 2px rgba(42,90,184,.15);
}
/* Meses: checkbox nativo -> pastilla azul, para que las 12 columnas no ensucien
   la grilla limpia del estilo Laboratorio. */
#screen-sst-prog-auditoria .pg-mes-cell label,
#screen-sst-prog-vigilancia .pg-mes-cell label,
#screen-sst-prog-monitoreo .pg-mes-cell label,
#screen-sst-prog-capacitacion .pg-mes-cell label,
#screen-sst-prog-simulacros .pg-mes-cell label{
  position:relative;width:22px;height:22px;border-radius:6px;background:#eef2f8;
  display:flex;align-items:center;justify-content:center;cursor:pointer;
  transition:background .15s;margin:0 auto;
}
#screen-sst-prog-auditoria .pg-mes-cell label:hover,
#screen-sst-prog-vigilancia .pg-mes-cell label:hover,
#screen-sst-prog-monitoreo .pg-mes-cell label:hover,
#screen-sst-prog-capacitacion .pg-mes-cell label:hover,
#screen-sst-prog-simulacros .pg-mes-cell label:hover{background:#dde8f6;}
#screen-sst-prog-auditoria .pg-mes-cell input[type="checkbox"],
#screen-sst-prog-vigilancia .pg-mes-cell input[type="checkbox"],
#screen-sst-prog-monitoreo .pg-mes-cell input[type="checkbox"],
#screen-sst-prog-capacitacion .pg-mes-cell input[type="checkbox"],
#screen-sst-prog-simulacros .pg-mes-cell input[type="checkbox"]{
  position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;
}
#screen-sst-prog-auditoria .pg-mes-cell label:has(input:checked),
#screen-sst-prog-vigilancia .pg-mes-cell label:has(input:checked),
#screen-sst-prog-monitoreo .pg-mes-cell label:has(input:checked),
#screen-sst-prog-capacitacion .pg-mes-cell label:has(input:checked),
#screen-sst-prog-simulacros .pg-mes-cell label:has(input:checked){background:#1a3e8a;}
#screen-sst-prog-auditoria .pg-mes-cell label:has(input:checked)::after,
#screen-sst-prog-vigilancia .pg-mes-cell label:has(input:checked)::after,
#screen-sst-prog-monitoreo .pg-mes-cell label:has(input:checked)::after,
#screen-sst-prog-capacitacion .pg-mes-cell label:has(input:checked)::after,
#screen-sst-prog-simulacros .pg-mes-cell label:has(input:checked)::after{
  content:'✓';color:#fff;font-size:12px;font-weight:800;pointer-events:none;
}

/* ============================================================
   T9 — IMPRESIÓN HORIZONTAL Y AJUSTADA — Calibración de Equipos
   Acotado a body.print-calib / #calib-print-area para no afectar
   la impresión de los demás módulos del sistema.
   ============================================================ */
@media print {
  body.print-calib #calib-print-area {
    padding: 0 !important;
    overflow: visible !important;
  }
  body.print-calib #calib-print-area .calib-table-wrap {
    overflow: visible !important;
    max-height: none !important;
    min-height: 0 !important;
    margin: 4px 0 !important;
    border: none !important;
    border-radius: 0 !important;
  }
  body.print-calib #calib-print-area .calib-table {
    width: 100% !important;
    font-size: 6.6px !important;
    table-layout: fixed !important;
    border-collapse: collapse !important;
  }
  body.print-calib #calib-print-area .calib-table thead { display: table-header-group !important; }
  body.print-calib #calib-print-area .calib-table tfoot { display: table-footer-group !important; }
  body.print-calib #calib-print-area .calib-table tr { page-break-inside: avoid !important; break-inside: avoid !important; }
  body.print-calib #calib-print-area .calib-table th,
  body.print-calib #calib-print-area .calib-table td {
    padding: 1.2px 2px !important;
    border: 1px solid #999 !important;
    white-space: normal !important;
    word-break: break-word !important;
    line-height: 1.12 !important;
    min-width: 0 !important;
    width: auto !important;
    font-size: 6.6px !important;
    color: #000 !important;
    -webkit-print-color-adjust: exact; print-color-adjust: exact;
  }
  body.print-calib #calib-print-area .calib-table thead th {
    background: #1a3e8a !important; color: #fff !important; font-size: 6.2px !important; font-weight: 700 !important;
  }
  body.print-calib #calib-print-area .calib-table tbody tr:nth-child(even) { background: #f2f6fb !important; }
  body.print-calib #calib-print-area .calib-table tbody tr.calib-sel { background: transparent !important; }
  /* Las filas ocultas por el panel de ítems (T8) tampoco se imprimen */
  body.print-calib #calib-print-area .calib-fila-oculta { display: none !important; }
  body.print-calib #calib-print-area .no-print,
  body.print-calib .calib-items-panel { display: none !important; }
  body.print-calib #calib-print-membrete { margin-bottom: 4px; }
  body.print-calib #calib-print-control {
    background: #f0f4fa !important; border: 1px solid #c0d4e8 !important;
    font-size: 7.5px !important; padding: 3px 6px !important; margin-bottom: 5px !important;
    page-break-inside: avoid; break-inside: avoid;
    -webkit-print-color-adjust: exact; print-color-adjust: exact;
  }
}

/* ============================================================
   RECLUTAMIENTO DE PERSONAL — Pipeline / Kanban
   ============================================================ */
.reclu-kanban{
  display:flex;gap:12px;overflow-x:auto;padding:14px;flex:1;align-items:flex-start;
}
.reclu-col{
  flex:0 0 220px;min-width:220px;background:#f4f7fb;border:1px solid #dde5f0;border-radius:10px;
  display:flex;flex-direction:column;max-height:100%;
}
.reclu-col-head{
  font-size:12px;font-weight:800;text-transform:uppercase;letter-spacing:.3px;
  padding:10px 12px;border-bottom:2px solid #1a3e8a;background:#fff;border-radius:10px 10px 0 0;
  display:flex;align-items:center;justify-content:space-between;
}
.reclu-col-count{
  background:#eaf0fb;color:#0a1e50;border-radius:10px;padding:1px 8px;font-size:11px;font-weight:700;
}
.reclu-col-body{
  padding:8px;display:flex;flex-direction:column;gap:8px;overflow-y:auto;min-height:80px;
}
.reclu-col-vacio{
  text-align:center;color:#8296b5;font-size:11px;padding:16px 4px;font-style:italic;
}
.reclu-card{
  background:#fff;border:1px solid #dde5f0;border-radius:8px;padding:8px 10px;cursor:pointer;
  box-shadow:0 1px 2px rgba(10,30,80,.06);transition:box-shadow .15s,border-color .15s;
}
.reclu-card:hover{ box-shadow:0 2px 6px rgba(10,30,80,.14); border-color:#1a3e8a; }
.reclu-card-sel{ border-color:#1a3e8a; box-shadow:0 0 0 2px rgba(26,62,138,.25); }
.reclu-card-nombre{ font-weight:700; font-size:12.5px; color:#0a1e50; margin-bottom:2px; }
.reclu-card-meta{ font-size:11px; color:#5a6b85; margin-bottom:2px; }
.reclu-card-btns{ display:flex; gap:4px; margin-top:6px; flex-wrap:wrap; }
.reclu-mini-btn{
  border:none;border-radius:6px;background:#eaf0fb;color:#0a1e50;font-size:10.5px;font-weight:700;
  padding:3px 7px;cursor:pointer;
}
.reclu-mini-btn:hover{ opacity:.85; }
