/*
 * ATP - Capa de compatibilidad Bootstrap 3/4 para el diseño Tailwind.
 * Las paginas del portal siguen usando marcado de Bootstrap (grid, paneles, modales, formularios)
 * y su JS depende de esas clases. Aqui se dibujan con el diseño nuevo sin cargar bootstrap.min.css,
 * que chocaria con Tailwind (html{font-size:10px}, .hidden, .container...).
 * Requiere las variables de atp-tailwind.css.
 */
/* ---------- Grid Bootstrap 3 (y columnas BS4 sin prefijo) ---------- */
.col-xs-1, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9, .col-xs-10, .col-xs-11, .col-xs-12, .col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12, .col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12, .col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12, .col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12, .col { position: relative; min-height: 1px; padding-left: 15px; padding-right: 15px; }
.col-xs-1, .col-1, .col-xs-2, .col-2, .col-xs-3, .col-3, .col-xs-4, .col-4, .col-xs-5, .col-5, .col-xs-6, .col-6, .col-xs-7, .col-7, .col-xs-8, .col-8, .col-xs-9, .col-9, .col-xs-10, .col-10, .col-xs-11, .col-11, .col-xs-12, .col-12 { float: left; }
.col-xs-1, .col-1 { width: 8.333333%; }
.col-xs-2, .col-2 { width: 16.666667%; }
.col-xs-3, .col-3 { width: 25%; }
.col-xs-4, .col-4 { width: 33.333333%; }
.col-xs-5, .col-5 { width: 41.666667%; }
.col-xs-6, .col-6 { width: 50%; }
.col-xs-7, .col-7 { width: 58.333333%; }
.col-xs-8, .col-8 { width: 66.666667%; }
.col-xs-9, .col-9 { width: 75%; }
.col-xs-10, .col-10 { width: 83.333333%; }
.col-xs-11, .col-11 { width: 91.666667%; }
.col-xs-12, .col-12 { width: 100%; }
.form-row > .col-1, .form-row > .col-2, .form-row > .col-3, .form-row > .col-4, .form-row > .col-5, .form-row > .col-6, .form-row > .col-7, .form-row > .col-8, .form-row > .col-9, .form-row > .col-10, .form-row > .col-11, .form-row > .col-12 { float: none; }
@media (min-width: 768px) {
	.col-sm-1, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-sm-10, .col-sm-11, .col-sm-12 { float: left; }
	.col-sm-1 { width: 8.333333%; }
	.col-sm-2 { width: 16.666667%; }
	.col-sm-3 { width: 25%; }
	.col-sm-4 { width: 33.333333%; }
	.col-sm-5 { width: 41.666667%; }
	.col-sm-6 { width: 50%; }
	.col-sm-7 { width: 58.333333%; }
	.col-sm-8 { width: 66.666667%; }
	.col-sm-9 { width: 75%; }
	.col-sm-10 { width: 83.333333%; }
	.col-sm-11 { width: 91.666667%; }
	.col-sm-12 { width: 100%; }
	.col-sm-offset-0 { margin-left: 0%; }
	.col-sm-offset-1 { margin-left: 8.333333%; }
	.col-sm-offset-2 { margin-left: 16.666667%; }
	.col-sm-offset-3 { margin-left: 25%; }
	.col-sm-offset-4 { margin-left: 33.333333%; }
	.col-sm-offset-5 { margin-left: 41.666667%; }
	.col-sm-offset-6 { margin-left: 50%; }
	.col-sm-offset-7 { margin-left: 58.333333%; }
	.col-sm-offset-8 { margin-left: 66.666667%; }
	.col-sm-offset-9 { margin-left: 75%; }
	.col-sm-offset-10 { margin-left: 83.333333%; }
	.col-sm-offset-11 { margin-left: 91.666667%; }
}
@media (min-width: 992px) {
	.col-md-1, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-md-10, .col-md-11, .col-md-12 { float: left; }
	.col-md-1 { width: 8.333333%; }
	.col-md-2 { width: 16.666667%; }
	.col-md-3 { width: 25%; }
	.col-md-4 { width: 33.333333%; }
	.col-md-5 { width: 41.666667%; }
	.col-md-6 { width: 50%; }
	.col-md-7 { width: 58.333333%; }
	.col-md-8 { width: 66.666667%; }
	.col-md-9 { width: 75%; }
	.col-md-10 { width: 83.333333%; }
	.col-md-11 { width: 91.666667%; }
	.col-md-12 { width: 100%; }
	.col-md-offset-0 { margin-left: 0%; }
	.col-md-offset-1 { margin-left: 8.333333%; }
	.col-md-offset-2 { margin-left: 16.666667%; }
	.col-md-offset-3 { margin-left: 25%; }
	.col-md-offset-4 { margin-left: 33.333333%; }
	.col-md-offset-5 { margin-left: 41.666667%; }
	.col-md-offset-6 { margin-left: 50%; }
	.col-md-offset-7 { margin-left: 58.333333%; }
	.col-md-offset-8 { margin-left: 66.666667%; }
	.col-md-offset-9 { margin-left: 75%; }
	.col-md-offset-10 { margin-left: 83.333333%; }
	.col-md-offset-11 { margin-left: 91.666667%; }
}
@media (min-width: 1200px) {
	.col-lg-1, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-lg-10, .col-lg-11, .col-lg-12 { float: left; }
	.col-lg-1 { width: 8.333333%; }
	.col-lg-2 { width: 16.666667%; }
	.col-lg-3 { width: 25%; }
	.col-lg-4 { width: 33.333333%; }
	.col-lg-5 { width: 41.666667%; }
	.col-lg-6 { width: 50%; }
	.col-lg-7 { width: 58.333333%; }
	.col-lg-8 { width: 66.666667%; }
	.col-lg-9 { width: 75%; }
	.col-lg-10 { width: 83.333333%; }
	.col-lg-11 { width: 91.666667%; }
	.col-lg-12 { width: 100%; }
	.col-lg-offset-0 { margin-left: 0%; }
	.col-lg-offset-1 { margin-left: 8.333333%; }
	.col-lg-offset-2 { margin-left: 16.666667%; }
	.col-lg-offset-3 { margin-left: 25%; }
	.col-lg-offset-4 { margin-left: 33.333333%; }
	.col-lg-offset-5 { margin-left: 41.666667%; }
	.col-lg-offset-6 { margin-left: 50%; }
	.col-lg-offset-7 { margin-left: 58.333333%; }
	.col-lg-offset-8 { margin-left: 66.666667%; }
	.col-lg-offset-9 { margin-left: 75%; }
	.col-lg-offset-10 { margin-left: 83.333333%; }
	.col-lg-offset-11 { margin-left: 91.666667%; }
}

.row { margin-left: -15px; margin-right: -15px; }
.row::before, .row::after, .clearfix::before, .clearfix::after,
.form-horizontal .form-group::before, .form-horizontal .form-group::after,
.panel-body::before, .panel-body::after, .modal-footer::before, .modal-footer::after { content: " "; display: table; }
.row::after, .clearfix::after, .form-horizontal .form-group::after, .panel-body::after, .modal-footer::after { clear: both; }
.form-row { display: flex; flex-wrap: wrap; margin-left: -5px; margin-right: -5px; }
.form-row > [class*="col"] { padding-left: 5px; padding-right: 5px; }
.align-self-end { align-self: flex-end; }

/* El contenedor de 9 columnas del layout viejo ahora ocupa todo el ancho */
.atp-page { max-width: 100%; }
.atp-page > .col-md-9, .atp-page > .col-md-12 { float: none; width: 100%; padding-left: 0; padding-right: 0; }
.atp-page > .col-md-9 > .row, .atp-page > .col-md-12 > .row { margin-left: 0; margin-right: 0; }

/* ---------- Utilidades Bootstrap ---------- */
.pull-right, .float-right { float: right !important; }
.pull-left, .float-left { float: left !important; }
.center-block { display: block; margin-left: auto; margin-right: auto; }
.text-right { text-align: right; }
.text-left { text-align: left; }
.text-center { text-align: center; }
.text-justify { text-align: justify; }
.text-nowrap { white-space: nowrap; }
@media (min-width: 992px) { .text-lg-right { text-align: right; } }
.text-muted { color: var(--slate-500); }
.text-primary { color: var(--atp-700); }
.text-success { color: var(--atp-700); }
.text-danger { color: var(--red-700); }
.text-warning { color: var(--amber-700); }
.text-info { color: #0369a1; }
.text-dark { color: var(--slate-800); }
.bg-success { background: var(--atp-50); }
.bg-danger { background: var(--red-50); }
.bg-warning { background: var(--amber-50); }
.bg-info { background: #f0f9ff; }
.list-unstyled, .list-inline { padding-left: 0; list-style: none; }
.list-inline > li { display: inline-block; padding: 0 5px; }
.img-thumbnail { padding: 4px; border: 1px solid var(--slate-200); border-radius: .5rem; background: #fff; max-width: 100%; }
.img-responsive { display: block; max-width: 100%; height: auto; }
.caret { display: inline-block; width: 0; height: 0; margin-left: 4px; vertical-align: middle; border-top: 4px solid; border-right: 4px solid transparent; border-left: 4px solid transparent; }
.well { min-height: 20px; padding: 1rem; margin-bottom: 1rem; background: var(--slate-50); border: 1px solid var(--slate-200); border-radius: .75rem; }
.invisible { visibility: hidden; }

/* ---------- Tipografia del contenido ---------- */
.atp-page h1, .atp-page .h1, .modal h1 { font-size: 1.6rem; font-weight: 600; margin: 0 0 .75rem; color: var(--slate-900, #0f172a); }
.atp-page h2, .atp-page .h2, .modal h2 { font-size: 1.35rem; font-weight: 600; margin: 0 0 .75rem; color: var(--slate-800); }
.atp-page h3, .atp-page .h3, .modal h3 { font-size: 1.15rem; font-weight: 600; margin: 0 0 .6rem; color: var(--slate-800); }
.atp-page h4, .atp-page .h4, .modal h4 { font-size: 1rem; font-weight: 600; margin: 0 0 .5rem; color: var(--slate-800); }
.atp-page h5, .atp-page .h5, .modal h5 { font-size: .9rem; font-weight: 600; margin: 0 0 .5rem; color: var(--slate-700); }
.atp-page h6, .modal h6 { font-size: .8rem; font-weight: 600; margin: 0 0 .5rem; color: var(--slate-600); }
.atp-page p, .modal p { margin: 0 0 .75rem; }
.atp-page hr, .modal hr { margin: 1rem 0; border: 0; border-top: 1px solid var(--slate-200); }
.atp-page small, .atp-page .small, .modal small { font-size: 85%; }
.atp-page label, .modal label { display: inline-block; max-width: 100%; margin-bottom: .35rem; font-weight: 600; font-size: .85rem; color: var(--slate-700); }
.atp-page a:not(.btn):not(.page-link), .modal a:not(.btn) { color: var(--atp-700); }
.atp-page a:not(.btn):not(.page-link):hover, .modal a:not(.btn):hover { color: var(--atp-900); text-decoration: underline; }
.atp-page ul:not(.pagination):not(.nav):not(.dropdown-menu):not(.list-unstyled):not(.list-inline):not(.atp-nav):not(.atp-tiles),
.modal ul:not(.dropdown-menu):not(.list-unstyled) { list-style: disc; padding-left: 1.25rem; margin: 0 0 .75rem; }
.atp-page ol, .modal ol { list-style: decimal; padding-left: 1.25rem; margin: 0 0 .75rem; }
.atp-page fieldset legend { font-weight: 600; margin-bottom: .5rem; }

/* Titulos heredados de bootstrap.docs.css */
h4.widget-title, h4.widget-title-success { margin: 0 0 1rem; font-size: 1.05rem; font-weight: 600; color: var(--slate-800); }
h4.widget-title::after, h4.widget-title-success::after { content: ""; display: block; width: 40px; height: 3px; margin-top: .5rem; border-radius: 2px; background: var(--brand-lime); }
.bs-callout { margin: 1rem 0; padding: 1rem 1.25rem; background: #fff; border: 1px solid var(--slate-200); border-left: 4px solid var(--slate-300); border-radius: .75rem; }
.bs-callout:empty { display: none; }
/* #callout: core.js lo llena; mientras sus hijos esten ocultos y #Table vacio, no se muestra */
.bs-callout:not(:has(> :not([style*="display:none"]):not([style*="display: none"]):not(#Table):not(.msn))):not(:has(> #Table *)) { display: none; }
.bs-callout h4 { margin-top: 0; margin-bottom: .35rem; }
.bs-callout p:last-child { margin-bottom: 0; }
.bs-callout-success { border-left-color: var(--atp-600); }
.bs-callout-success h4 { color: var(--atp-700); }
.bs-callout-danger, .bd-callout-danger { border-left-color: var(--red-600); }
.bs-callout-danger h4 { color: var(--red-700); }
.bs-callout-warning { border-left-color: var(--gold-500); }
.bs-callout-info { border-left-color: #0284c7; }

/* ---------- Paneles ---------- */
.panel { margin-bottom: 1.25rem; background: #fff; border: 1px solid var(--slate-200); border-radius: .75rem; box-shadow: 0 1px 2px rgba(15, 23, 42, .05); }
.panel-heading { padding: .85rem 1.25rem; border-bottom: 1px solid var(--slate-200); border-top-left-radius: .75rem; border-top-right-radius: .75rem; font-size: .95rem; font-weight: 600; color: var(--slate-800); background: #fff; }
.panel-heading .panel-title { margin: 0; font-size: .95rem; }
.panel-body { padding: 1.25rem; }
.panel-footer { padding: .85rem 1.25rem; background: var(--slate-50); border-top: 1px solid var(--slate-200); border-bottom-left-radius: .75rem; border-bottom-right-radius: .75rem; }
.panel-primary > .panel-heading, .panel-success > .panel-heading { background: var(--atp-50); color: var(--atp-800); border-bottom-color: var(--atp-100); }
.panel-info > .panel-heading { background: #f0f9ff; color: #075985; border-bottom-color: #e0f2fe; }
.panel-warning > .panel-heading { background: var(--amber-50); color: var(--amber-700); border-bottom-color: #fde68a; }
.panel-danger > .panel-heading { background: var(--red-50); color: var(--red-700); border-bottom-color: #fecaca; }
.panel .panel { box-shadow: none; }
.panel > .table, .panel > .table-responsive > .table { border-radius: 0 0 .75rem .75rem; }

/* ---------- Formularios ---------- */
.form-group { margin-bottom: 1rem; }
input.form-control, select.form-control { height: 2.4rem; }
input.form-control.input-sm, select.form-control.input-sm, .input-sm, input.form-control-sm, select.form-control-sm { height: 2rem; }
.input-lg { height: 2.9rem; font-size: 1rem; }
textarea.form-control { height: auto; min-height: 2.4rem; }
.form-control[disabled], fieldset[disabled] .form-control { background: var(--slate-100); color: var(--slate-500); cursor: not-allowed; }
.form-control::placeholder { color: var(--slate-400); }
.input-block-level { display: block; width: 100%; }
.help-block { display: block; margin-top: .3rem; margin-bottom: .5rem; font-size: .8rem; color: var(--slate-500); }
.has-error .form-control { border-color: var(--red-600); }
.has-error .help-block, .has-error .control-label { color: var(--red-700); }
.has-success .form-control { border-color: var(--atp-500); }
.required::after { content: " *"; color: var(--red-600); }
.form-horizontal .form-group { margin-left: -15px; margin-right: -15px; }
.form-horizontal .control-label, .col-form-label { padding-top: .6rem; margin-bottom: 0; }
@media (min-width: 768px) { .form-horizontal .control-label { text-align: right; } }
.form-inline .form-group { display: inline-block; margin-bottom: 0; vertical-align: middle; }
.form-inline .form-control { display: inline-block; width: auto; vertical-align: middle; }
.radio, .checkbox { position: relative; display: block; margin: .4rem 0; }
.radio label, .checkbox label { min-height: 1.25rem; padding-left: 1.4rem; margin-bottom: 0; font-weight: 500; cursor: pointer; }
.radio input[type=radio], .checkbox input[type=checkbox] { position: absolute; margin: .2rem 0 0 -1.4rem; }
.radio-inline, .checkbox-inline, .form-check-inline { position: relative; display: inline-flex; align-items: center; gap: .35rem; margin-right: 1rem; margin-bottom: 0; font-weight: 500; cursor: pointer; vertical-align: middle; }
.form-check { position: relative; display: block; }
.form-check-label { font-weight: 500; }
input[type=radio], input[type=checkbox] { accent-color: var(--atp-600); width: 1rem; height: 1rem; }

.input-group { position: relative; display: flex; align-items: stretch; width: 100%; }
.input-group > .form-control { position: relative; flex: 1 1 auto; width: 1%; min-width: 0; }
.input-group > .form-control:not(:last-child) { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.input-group > .form-control:not(:first-child) { border-top-left-radius: 0; border-bottom-left-radius: 0; }
.input-group-addon, .input-group-text {
	display: flex; align-items: center; padding: 0 .75rem; font-size: .875rem; color: var(--slate-500);
	background: var(--slate-50); border: 1px solid var(--slate-300); border-radius: .5rem; white-space: nowrap;
}
.input-group-addon:first-child { border-right: 0; border-top-right-radius: 0; border-bottom-right-radius: 0; }
.input-group-addon:last-child { border-left: 0; border-top-left-radius: 0; border-bottom-left-radius: 0; }
.input-group-btn { display: flex; }
.input-group-btn > .btn { height: 100%; }
.input-group-btn:last-child > .btn { border-top-left-radius: 0; border-bottom-left-radius: 0; margin-left: -1px; }
.input-group-btn:first-child > .btn { border-top-right-radius: 0; border-bottom-right-radius: 0; margin-right: -1px; }
.input-group.date .input-group-addon { cursor: pointer; }

/* ---------- Botones extra ---------- */
.btn.btn-info { background: #f0f9ff; border-color: #bae6fd; color: #075985; }
.btn.btn-info:hover { background: #e0f2fe; }
.btn.btn-warning { background: var(--amber-50); border-color: #fde68a; color: var(--amber-700); }
.btn.btn-warning:hover { background: #fef3c7; }
.btn.btn-link { background: transparent; border-color: transparent; color: var(--atp-700); }
.btn.btn-link:hover { text-decoration: underline; background: transparent; }
.btn.btn-xs, .btn.btn-small { padding: .15rem .45rem; font-size: .75rem; border-radius: .35rem; }
.btn.active { box-shadow: inset 0 2px 4px rgba(15, 23, 42, .12); }
.btn-group { position: relative; display: inline-flex; vertical-align: middle; }
.btn-group > .btn:not(:first-child) { margin-left: -1px; border-top-left-radius: 0; border-bottom-left-radius: 0; }
.btn-group > .btn:not(:last-child) { border-top-right-radius: 0; border-bottom-right-radius: 0; }
.btn-file { position: relative; overflow: hidden; }
.btn-file input[type=file] { position: absolute; top: 0; right: 0; min-width: 100%; min-height: 100%; opacity: 0; cursor: pointer; }
.btn .caret { margin-left: 2px; }

/* ---------- Alertas ---------- */
.alert { position: relative; margin-bottom: 1rem; padding: .8rem 1rem; border: 1px solid var(--slate-200); border-left-width: 4px; border-radius: .6rem; background: #fff; font-size: .875rem; color: var(--slate-700); }
.alert-success { background: var(--atp-50); border-color: var(--atp-100); border-left-color: var(--atp-600); color: var(--atp-900); }
.alert-danger { background: var(--red-50); border-color: #fecaca; border-left-color: var(--red-600); color: var(--red-700); }
.alert-warning { background: var(--amber-50); border-color: #fde68a; border-left-color: var(--gold-500); color: #92400e; }
.alert-info { background: #f0f9ff; border-color: #bae6fd; border-left-color: #0284c7; color: #075985; }
.alert-dismissable, .alert-dismissible { padding-right: 2.5rem; }
.alert-dismissable .close, .alert-dismissible .close { position: absolute; top: .55rem; right: .8rem; }
.alert h4 { color: inherit; }

.close, button.close { float: right; padding: 0 .25rem; background: transparent; border: 0; font-size: 1.35rem; font-weight: 700; line-height: 1; color: var(--slate-400); cursor: pointer; opacity: 1; }
.close:hover { color: var(--slate-700); }

.label, .badge { display: inline-block; padding: .15rem .5rem; font-size: .72rem; font-weight: 600; line-height: 1.2; border-radius: 999px; background: var(--slate-100); color: var(--slate-700); white-space: nowrap; vertical-align: middle; }
.label-success, .badge-success { background: var(--atp-100); color: var(--atp-800); }
.label-danger, .badge-danger { background: #fee2e2; color: var(--red-700); }
.label-warning, .badge-warning { background: #fef3c7; color: #92400e; }
.label-info, .badge-info { background: #e0f2fe; color: #075985; }
.label-primary, .badge-primary { background: var(--atp-600); color: #fff; }

/* ---------- Tablas BS3 ---------- */
.table-responsive { overflow-x: auto; }
table.table-condensed th, table.table-condensed td { padding: .35rem .5rem; }
table.table-hover tbody tr:hover { background: var(--atp-50); }
table.table > tbody > tr.success > td { background: var(--atp-50); }
table.table > tbody > tr.danger > td { background: var(--red-50); }
table.table > tbody > tr.warning > td { background: var(--amber-50); }
.pagination > li > a, .pagination > li > span {
	display: inline-flex; align-items: center; justify-content: center; min-width: 2rem; height: 2rem; padding: 0 .6rem;
	border-radius: .45rem; border: 1px solid var(--slate-200); background: #fff; color: var(--slate-600); font-size: .8rem; text-decoration: none; cursor: pointer;
}
.pagination > .active > a, .pagination > .active > span { background: var(--atp-600); border-color: var(--atp-600); color: #fff; }
.pagination > .disabled > a, .pagination > .disabled > span { opacity: .45; pointer-events: none; }

/* ---------- Pestañas ---------- */
.nav { display: flex; flex-wrap: wrap; padding-left: 0; margin-bottom: 0; list-style: none; }
.nav > li { position: relative; }
.nav > li > a { display: block; padding: .55rem 1rem; text-decoration: none; }
.nav-tabs { gap: .25rem; margin-bottom: 1rem; border-bottom: 1px solid var(--slate-200); }
.nav-tabs > li > a { margin-bottom: -1px; border: 1px solid transparent; border-radius: .5rem .5rem 0 0; font-size: .875rem; font-weight: 500; color: var(--slate-500) !important; }
.nav-tabs > li > a:hover { color: var(--slate-800) !important; background: var(--slate-50); text-decoration: none !important; }
.nav-tabs > li.active > a, .nav-tabs > li > a.active { color: var(--atp-700) !important; background: #fff; border-color: var(--slate-200) var(--slate-200) #fff; }
.nav-pills > li > a { border-radius: .5rem; color: var(--slate-600) !important; }
.nav-pills > li.active > a { background: var(--atp-600); color: #fff !important; }
.tab-content > .tab-pane { display: none; }
.tab-content > .active { display: block; }

/* ---------- Transiciones / collapse (BS3 usa .in, BS4 usa .show) ---------- */
.fade { opacity: 0; transition: opacity .15s linear; }
.fade.in, .fade.show { opacity: 1; }
.collapse { display: none; }
.collapse.in, .collapse.show { display: block; }
tr.collapse.in, tr.collapse.show { display: table-row; }
.collapsing { position: relative; height: 0; overflow: hidden; transition: height .35s ease; }

/* ---------- Dropdowns ---------- */
.dropdown, .dropup { position: relative; }
.dropdown-menu {
	position: absolute; top: 100%; left: 0; z-index: 1000; display: none; float: left; min-width: 10rem; margin: 2px 0 0; padding: .35rem;
	list-style: none; font-size: .875rem; text-align: left; background: #fff; border: 1px solid var(--slate-200); border-radius: .6rem;
	box-shadow: 0 10px 25px -5px rgba(15, 23, 42, .15);
}
.open > .dropdown-menu, .dropdown-menu.show { display: block; }
.dropdown-menu-right, .dropdown-menu.pull-right { right: 0; left: auto; }
.dropdown-menu > li > a, .dropdown-item { display: block; padding: .4rem .7rem; border-radius: .4rem; color: var(--slate-700); white-space: nowrap; text-decoration: none; }
.dropdown-menu > li > a:hover, .dropdown-item:hover { background: var(--slate-100); color: var(--slate-900, #0f172a); text-decoration: none; }
.dropdown-menu .divider { height: 1px; margin: .3rem 0; background: var(--slate-200); }

/* ---------- Modales ---------- */
.modal-open { overflow: hidden; }
.modal { position: fixed; inset: 0; z-index: 1050; display: none; overflow: hidden; outline: 0; }
.modal-open .modal { overflow-x: hidden; overflow-y: auto; }
.modal.fade .modal-dialog { transform: translate(0, -25px); transition: transform .2s ease-out; }
.modal.in .modal-dialog, .modal.show .modal-dialog { transform: none; }
.modal-dialog { position: relative; width: auto; margin: .75rem; }
.modal-content { position: relative; display: flex; flex-direction: column; background: #fff; background-clip: padding-box; border: 0; border-radius: 1rem; outline: 0; box-shadow: 0 25px 50px -12px rgba(15, 23, 42, .35); }
.modal-backdrop { position: fixed; inset: 0; z-index: 1040; background: #0f172a; }
.modal-backdrop.fade { opacity: 0; }
.modal-backdrop.in, .modal-backdrop.show { opacity: .5; }
.modal-header { display: flex; align-items: center; gap: .75rem; padding: 1rem 1.25rem; border-bottom: 1px solid var(--slate-200); }
.modal-header .close { order: 2; margin-left: auto; }
.modal-title { margin: 0; font-size: 1rem; font-weight: 600; color: var(--slate-800); }
.modal-body { position: relative; padding: 1.25rem; }
.modal-footer { display: flex; flex-wrap: wrap; align-items: center; justify-content: flex-end; gap: .5rem; padding: .9rem 1.25rem; border-top: 1px solid var(--slate-200); background: var(--slate-50); border-bottom-left-radius: 1rem; border-bottom-right-radius: 1rem; }
.modal-scrollbar-measure { position: absolute; top: -9999px; width: 50px; height: 50px; overflow: scroll; }
@media (min-width: 768px) {
	.modal-dialog { width: 600px; margin: 2rem auto; }
	.modal-sm { width: 320px; }
}
@media (min-width: 992px) { .modal-lg { width: 900px; } }
.modal-dialog-centered { display: flex; align-items: center; min-height: calc(100% - 4rem); }
.modal-dialog-centered .modal-content { width: 100%; }

/* ---------- Tooltip / popover (summernote, datetimepicker) ---------- */
.tooltip { position: absolute; z-index: 1070; display: block; font-size: .75rem; opacity: 0; }
.tooltip.in, .tooltip.show { opacity: 1; }
.tooltip-inner { max-width: 220px; padding: .3rem .55rem; color: #fff; text-align: center; background: var(--slate-800); border-radius: .35rem; }
.popover { position: absolute; top: 0; left: 0; z-index: 1060; display: none; max-width: 276px; padding: 1px; background: #fff; border: 1px solid var(--slate-200); border-radius: .6rem; box-shadow: 0 10px 25px -5px rgba(15, 23, 42, .15); }
.popover-title { margin: 0; padding: .5rem .8rem; font-size: .85rem; font-weight: 600; border-bottom: 1px solid var(--slate-200); }
.popover-content { padding: .5rem .8rem; }

/* ---------- Glyphicons -> FontAwesome (datetimepicker y marcado viejo) ---------- */
.glyphicon { position: relative; top: 1px; display: inline-block; font-family: FontAwesome; font-style: normal; font-weight: normal; line-height: 1; -webkit-font-smoothing: antialiased; }
.glyphicon-calendar::before { content: "\f073"; }
.glyphicon-time::before { content: "\f017"; }
.glyphicon-chevron-left::before { content: "\f053"; }
.glyphicon-chevron-right::before { content: "\f054"; }
.glyphicon-chevron-up::before { content: "\f077"; }
.glyphicon-chevron-down::before { content: "\f078"; }
.glyphicon-remove::before { content: "\f00d"; }
.glyphicon-trash::before { content: "\f1f8"; }
.glyphicon-screenshot::before { content: "\f05b"; }
.glyphicon-ok::before { content: "\f00c"; }
.glyphicon-plus::before { content: "\f067"; }
.glyphicon-minus::before { content: "\f068"; }
.glyphicon-search::before { content: "\f002"; }
.glyphicon-pencil::before { content: "\f040"; }
.glyphicon-user::before { content: "\f007"; }
.glyphicon-download::before, .glyphicon-download-alt::before { content: "\f019"; }
.glyphicon-upload::before { content: "\f093"; }
.glyphicon-file::before { content: "\f016"; }
.glyphicon-folder-open::before { content: "\f07c"; }
.glyphicon-refresh::before { content: "\f021"; }
.glyphicon-print::before { content: "\f02f"; }

/* ---------- Datetimepicker 4 ---------- */
.bootstrap-datetimepicker-widget.dropdown-menu { display: block; z-index: 1100; }
.bootstrap-datetimepicker-widget table { width: 100%; margin: 0; }
.bootstrap-datetimepicker-widget table td, .bootstrap-datetimepicker-widget table th { padding: 0; border: 0; text-align: center; white-space: nowrap; background: none; text-transform: none; letter-spacing: normal; font-size: .8rem; }
.bootstrap-datetimepicker-widget table td.active, .bootstrap-datetimepicker-widget table td.active:hover,
.bootstrap-datetimepicker-widget table td span.active { background: var(--atp-600) !important; color: #fff !important; text-shadow: none; }
.bootstrap-datetimepicker-widget table td.today::before { border-bottom-color: var(--brand-lime); }
.bootstrap-datetimepicker-widget .btn { padding: 0; border: 0; background: transparent; box-shadow: none; }
.bootstrap-datetimepicker-widget a[data-action] { color: var(--slate-700) !important; }
