/* ==== Gate (password overlay) ==== */
.gate-backdrop { position: fixed; inset: 0; z-index: 2000; display: none; align-items: center; justify-content: center; background: radial-gradient(ellipse at center, rgba(0,0,0,.55), rgba(0,0,0,.8)); }
.gate-card { width: min(420px, 92vw); border-radius: .75rem; }

/* Sidebar skin */
.sidebar-skin { background-color:#1f2937!important; background-image:linear-gradient(180deg,#1f2937 0%,#111827 100%)!important; box-shadow:1px 0 0 rgba(0,0,0,.06) inset; }

/* DataTables utilidades y compactación */
.page-item.active .page-link { background-color:#858796; border-color:#858796; }
.page-link, .page-link:hover { color:#858796; }
.dt-right { text-align:right; }
.table-compact-row>td { padding:.35rem .5rem; line-height:1.2; }
#content { overflow:hidden; }
.dataTables_wrapper .dataTables_scrollBody { border:1px solid #dee2e6; }

/* Footer */
footer.sticky-footer { padding:1rem 0; flex-shrink:0; }

/* Semáforo (borde izquierdo) */
.datatable-sem tbody tr.row-ind { box-shadow: inset 6px 0 0 var(--indc, transparent); }
.datatable-sem tbody tr.row-ind:hover { box-shadow: inset 6px 0 0 var(--indc, transparent), inset 0 0 0 9999px rgba(0,0,0,.02); }
/* En móvil, banda en primer td */
.datatable-sem tbody tr.row-ind td:first-child { position:relative; }
.datatable-sem tbody tr.row-ind td:first-child::before { content:""; position:absolute; left:0; top:0; bottom:0; width:6px; background:var(--indc,transparent); border-top-left-radius:.25rem; border-bottom-left-radius:.25rem; pointer-events:none; }

/* Loader global */
.loading-backdrop { position:fixed; inset:0; z-index:2001; background:rgba(17,24,39,.35); display:none; backdrop-filter:blur(1px); }
.loading-card { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); display:flex; align-items:center; gap:.6rem; background:#fff; padding:.75rem 1rem; border-radius:.9rem; box-shadow:0 16px 40px rgba(0,0,0,.25); color:#4b5563; font-weight:600; min-width:180px; }

/* Choices look + Bootstrap 4 (reutilizable) */
.choices { width:100%; margin-bottom:0; }
.choices__inner { background:#fff!important; border:1px solid #ced4da!important; border-radius:.35rem!important; padding:.375rem .75rem!important; min-height:calc(1.5em + .75rem + 2px)!important; box-shadow:none!important; line-height:1.2!important; font-size:1rem!important; color:#495057!important; }
.choices[data-type*="select-one"] .choices__inner { padding-right:2.25rem!important; height:calc(1.5em + .74rem + 2px)!important; display:flex!important; align-items:center!important; box-sizing:border-box!important; }
.choices[data-type*="select-one"]::after { border-color:#858796 transparent transparent transparent!important; right:.75rem!important; margin-top:-2.5px!important; }
.choices__placeholder { color:#858796!important; opacity:.9; }
.is-focused .choices__inner, .is-open .choices__inner { border-color:#ced4da!important; box-shadow:0 0 0 .2rem rgba(108,117,125,.15)!important; }
.choices__list--single { padding:0!important; }
.choices__list--single .choices__item { white-space:nowrap!important; overflow:hidden!important; text-overflow:ellipsis!important; line-height:1.2!important; margin:0!important; }
.choices__list--dropdown { z-index:2050!important; border:1px solid #ced4da!important; border-radius:.35rem!important; box-shadow:0 .5rem 1rem rgba(0,0,0,.15)!important; margin-top:.15rem!important; }
.choices__list--dropdown .choices__item { padding:.375rem .75rem!important; }
.choices__list--multiple .choices__item { background:transparent!important; border:0!important; color:#495057!important; padding:0!important; margin:0 .25rem 0 0!important; }
.choices.is-disabled .choices__inner { background:#e9ecef!important; opacity:1!important; }
@media (max-width:576.98px){ .choices__list--dropdown .choices__item{ padding:.55rem .75rem; } }

/* Focus gris en inputs Bootstrap */
.form-control:focus, .custom-select:focus, .input-group .form-control:focus { border-color:#ced4da!important; box-shadow:0 0 0 .2rem rgba(108,117,125,.25)!important; outline:0!important; }
.form-control:focus.is-valid, .form-control.is-valid:focus, .form-control:focus.is-invalid, .form-control.is-invalid:focus { box-shadow:0 0 0 .2rem rgba(108,117,125,.25)!important; border-color:#ced4da!important; }

/* Tipografía monospace util */
.mono { font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace; }

/* ===== Floating Viewer (genérico, reutilizable) ===== */
.viewer-backdrop { position:fixed; inset:0; background:rgba(0,0,0,.75); display:none; align-items:center; justify-content:center; z-index:1085; }
.viewer-panel { position:relative; width:min(96vw,1200px); height:min(94vh,820px); background:#111; border-radius:12px; box-shadow:0 20px 60px rgba(0,0,0,.4); overflow:hidden; }
.viewer-toolbar { position:absolute; top:8px; right:8px; z-index:3; display:flex; gap:6px; flex-wrap:wrap; }
.viewer-toolbar .btn { color:#fff; background:rgba(255,255,255,.12); border:1px solid rgba(255,255,255,.2); padding:.25rem .5rem; }
.viewer-stage { position:absolute; inset:48px 8px 8px 8px; background:#000; overflow:hidden; border-radius:8px; }
.viewer-canvas { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); will-change:transform; }
.viewer-stage img, .viewer-stage video, .viewer-stage iframe, .viewer-stage embed { display:block; max-width:none; max-height:none; }
.viewer-hint { position:absolute; left:12px; bottom:10px; color:#ccc; font-size:12px; z-index:2; }

/* Utilidades varias compartidas */
.evi-link { color:grey; }
.fecha-pill { display:inline-flex; align-items:center; gap:.5rem; }
.fecha-pill .pill { display:inline-block; width:6px; height:18px; border-radius:3px; background:#858796; }

/* ...otros estilos generales movidos desde index.html que se usan en varias pantallas... */
/* Logout fijo al fondo del sidebar */
#accordionSidebar {
    position: relative;
}

.sidebar-sticky-footer {
    position: sticky;
    bottom: 0;
    background-color: #6c757d;
    box-shadow: 0 -1px 0 rgba(255, 255, 255, .15) inset;
}

.sidebar-sticky-footer .nav-link {
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    padding: .75rem 1rem;
}

.sidebar-sticky-footer .nav-link:hover {
    color: #fff;
    opacity: .9;
}