/* Ajustes propios sobre AdminLTE 4 / Bootstrap 5.3 */
:root {
    --bs-font-sans-serif: "Source Sans 3", system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;
}

/* Login: ancho fluido en móvil */
.login-box { width: min(380px, calc(100vw - 2rem)); }

/* Botón con spinner mientras se envía un formulario */
.btn .spinner-border { width: 1rem; height: 1rem; border-width: .15em; }

/* Inputs numéricos sin flechas (signos vitales se digitan) */
input[type=number].sin-flechas::-webkit-outer-spin-button,
input[type=number].sin-flechas::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
input[type=number].sin-flechas { -moz-appearance: textfield; }

/* Vista de firma/sello: fondo cuadriculado para apreciar transparencias */
.vista-imagen {
    height: 140px;
    padding: .5rem;
    background-color: #fff;
    background-image: linear-gradient(45deg, #eee 25%, transparent 25%), linear-gradient(-45deg, #eee 25%, transparent 25%),
        linear-gradient(45deg, transparent 75%, #eee 75%), linear-gradient(-45deg, transparent 75%, #eee 75%);
    background-size: 16px 16px;
    background-position: 0 0, 0 8px, 8px -8px, -8px 0;
}
.vista-imagen img { max-height: 100%; object-fit: contain; }

/* Tom Select dentro de modales y en modo oscuro */
[data-bs-theme=dark] .ts-dropdown, [data-bs-theme=dark] .ts-control { background-color: var(--bs-body-bg); color: var(--bs-body-color); }
.ts-wrapper.is-invalid .ts-control { border-color: var(--bs-form-invalid-border-color); }
[data-bs-theme=dark] .ts-control input, [data-bs-theme=dark] .ts-dropdown .create { color: var(--bs-body-color); }
[data-bs-theme=dark] .ts-control input::placeholder { color: var(--bs-secondary-color); }

/* Barra de guardado fija al pie en formularios largos (móvil primero) */
.barra-acciones {
    position: sticky; bottom: 0; z-index: 5;
    padding: .75rem; margin: 0 -.5rem;
    background: var(--bs-body-bg); border-top: 1px solid var(--bs-border-color);
}
/* Grupo de radios con error */
[data-grupo].is-invalid .form-check-label { color: var(--bs-form-invalid-color); }

/* Avisos: contenido del editor dentro de la ventana y la vista previa */
.aviso-contenido { word-break: break-word; }
.aviso-contenido img { max-width: 100%; height: auto; }
.aviso-contenido table { max-width: 100%; }
.aviso-contenido > :last-child { margin-bottom: 0; }
/* Tarjetas de «Avisos y noticias»: borde izquierdo según prioridad */
.aviso-card { cursor: pointer; border-left-width: 5px !important; transition: transform .1s, box-shadow .1s; }
.aviso-card:hover, .aviso-card:focus-visible { transform: translateY(-2px); box-shadow: 0 .25rem .75rem rgba(0, 0, 0, .15); }
.aviso-card.prio-URGENTE { border-left-color: var(--bs-danger) !important; }
.aviso-card.prio-OBLIGATORIO { border-left-color: var(--bs-warning) !important; }
.aviso-card.prio-NORMAL { border-left-color: var(--bs-primary) !important; }
