/* ============================================
   SISTEMA TALLER UNIFICADO - COMPONENTES BASE
   Plantilla 2: Paleta, botones, inputs, cards, grid, badges
   Basado en V2 style.css (UI real en produccion)
   ============================================ */

/* === RESET BASICO === */
h1, h2, h3, h4, h5, h6, p, a, ul, ol, li { margin: 0; padding: 0; }
h1, h2, h3, h4, h5, h6 { font-weight: normal; color: #424242; }
ul, li { list-style: none; }
*, *:before, *:after { box-sizing: border-box; }

body {
    color: #242424;
    margin: 0;
    font-size: 13px;
    font-family: arial, sans-serif;
    background: #f0f0f0;
}
html, body { height: 100%; }

a, a:visited { text-decoration: none; color: #0d9cc4; }
a:hover { color: #575757; }

/* === PALETA DE COLORES ===
   Primario:      #0d9cc4 (cyan/teal - links, botones, acentos)
   Secundario:    #575757 (gris oscuro - hover, textos secundarios)
   Fondo:         #ffffff (blanco)
   Fondo alt:     #f5f5f5 (gris claro)
   Fondo page:    #f0f0f0 (gris pagina)
   Texto:         #242424 (casi negro)
   Texto sec:     #545454 (gris medio)
   Borde:         #e2e2e2 (gris borde)
   Input bg:      #e3e3e3 -> #f5f5f5 (gradiente)
   Search bg:     #EEECC0 (amarillo palido - filtros)
   Hover fila:    #ffff99 (amarillo highlight)
   Exito:         #5DC964 (verde)
   Error:         #A1170C (rojo)
   Warning:       #F78F1E (naranjo)
   Info:          #0d9cc4 (cyan)
*/

/* === TIPOGRAFIA === */
.font-titulo { font-family: 'Raleway', sans-serif; font-weight: 600; }
h2 { font-size: 18px; color: #242424; font-family: 'Raleway', sans-serif; }

/* === BOTONES === */
.boton-azul, .boton-gris, .boton-verde, .boton-rojo {
    display: inline-block;
    padding: 6px 16px;
    font-size: 12px;
    font-weight: bold;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    text-align: center;
    text-decoration: none;
    color: #ffffff;
    transition: opacity 0.2s;
}
.boton-azul {
    background: #0d9cc4;
    background: -webkit-linear-gradient(top, #12b5e3 0%, #0a7fa0 100%);
    background: linear-gradient(to bottom, #12b5e3 0%, #0a7fa0 100%);
}
.boton-gris {
    background: #888888;
    background: -webkit-linear-gradient(top, #999999 0%, #666666 100%);
    background: linear-gradient(to bottom, #999999 0%, #666666 100%);
    color: #ffffff;
}
.boton-verde {
    background: #5DC964;
    background: -webkit-linear-gradient(top, #6dd674 0%, #3da843 100%);
    background: linear-gradient(to bottom, #6dd674 0%, #3da843 100%);
}
.boton-rojo {
    background: #c0392b;
    background: -webkit-linear-gradient(top, #e04333 0%, #a1170c 100%);
    background: linear-gradient(to bottom, #e04333 0%, #a1170c 100%);
}

.boton-azul:hover, .boton-gris:hover, .boton-verde:hover, .boton-rojo:hover {
    opacity: 0.85;
    color: #ffffff;
}
.boton-azul:disabled, .boton-gris:disabled, .boton-verde:disabled, .boton-rojo:disabled {
    opacity: 0.5;
    cursor: not-allowed;
}

/* Tamanos de boton */
.boton-sm { padding: 3px 8px; font-size: 11px; }
.boton-lg { padding: 8px 24px; font-size: 14px; }
.boton-block { display: block; width: 100%; }

/* Boton outline (variante) */
.boton-outline {
    display: inline-block;
    padding: 5px 15px;
    font-size: 12px;
    font-weight: bold;
    border: 2px solid #0d9cc4;
    border-radius: 4px;
    cursor: pointer;
    background: transparent;
    color: #0d9cc4;
}
.boton-outline:hover { background: #0d9cc4; color: #ffffff; }

/* Grupo de botones */
.boton-grupo { display: inline-block; }
.boton-grupo .boton-azul,
.boton-grupo .boton-gris { border-radius: 0; margin-left: -1px; }
.boton-grupo > :first-child { border-radius: 4px 0 0 4px; }
.boton-grupo > :last-child { border-radius: 0 4px 4px 0; }

/* === INPUTS Y FORMULARIOS === */
fieldset { border: none; margin: 0; padding: 0; }

input[type="text"],
input[type="password"],
input[type="email"],
input[type="number"],
input[type="search"],
textarea {
    padding: 5px 8px;
    font-size: 12px;
    font-family: arial, sans-serif;
    color: #242424;
    border-top: 1px solid #949494;
    border-left: 1px solid #949494;
    border-bottom: 1px solid #c1c1c1;
    border-right: 1px solid #c1c1c1;
    border-radius: 3px;
    box-shadow: inset 1px 1px 1px 0px rgba(0, 0, 0, 0.15);
    background: #e3e3e3;
    background: -webkit-linear-gradient(top, #e3e3e3 0%, #f5f5f5 100%);
    background: linear-gradient(to bottom, #e3e3e3 0%, #f5f5f5 100%);
    max-width: 100%;
}
input[type="text"]:focus,
input[type="password"]:focus,
input[type="email"]:focus,
textarea:focus {
    border-color: #0d9cc4;
    outline: none;
    box-shadow: 0 0 3px rgba(13, 156, 196, 0.4);
}

select {
    padding: 4px 6px;
    font-size: 12px;
    border: 1px solid #bebebe;
    border-radius: 5px;
    cursor: pointer;
    box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.2);
    background: #ffffff;
    background: -webkit-linear-gradient(top, #ffffff 0%, #e8e8e8 100%);
    background: linear-gradient(to bottom, #ffffff 0%, #e8e8e8 100%);
    max-width: 100%;
}

/* Tamanos de input */
.input-full  { width: 100%; }
.input-medio { width: 50%; }
.input-corto { width: 120px; }

/* Label */
label, .tabla-form th {
    font-size: 12px;
    color: #545454;
    font-weight: bold;
}

/* Tabla-form: formularios con tabla (patron V2) */
.tabla-form {
    width: 100%;
    border-collapse: collapse;
}
.tabla-form th {
    text-align: right;
    padding: 6px 12px 6px 6px;
    width: 180px;
    vertical-align: middle;
    white-space: nowrap;
}
.tabla-form td {
    padding: 4px 6px;
    vertical-align: middle;
}
.tabla-form tr { border-bottom: 1px solid #f0f0f0; }

.formulario-botones {
    padding: 15px 0 5px;
    text-align: left;
    overflow: hidden;
}

/* === CARDS === */
.card {
    background: #ffffff;
    border: 1px solid #e2e2e2;
    border-radius: 5px;
    padding: 15px;
    margin-bottom: 15px;
    box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.08);
}
.card-titulo {
    font-size: 14px;
    font-weight: bold;
    color: #242424;
    margin-bottom: 10px;
    padding-bottom: 8px;
    border-bottom: 2px solid #0d9cc4;
}
.card-cuerpo { padding: 5px 0; }

/* === GRID RESPONSIVO (sin framework) === */
.fila-flex { overflow: hidden; margin: 0 -8px; }
.fila-flex:after { content: ""; display: table; clear: both; }
.col-1, .col-2, .col-3, .col-4, .col-5, .col-6, .col-7, .col-8, .col-9, .col-10, .col-11, .col-12 {
    float: left;
    padding: 0 8px;
    min-height: 1px;
}
.col-12 { width: 100%; }
.col-11 { width: 91.66%; }
.col-10 { width: 83.33%; }
.col-9  { width: 75%; }
.col-8  { width: 66.66%; }
.col-7  { width: 58.33%; }
.col-6  { width: 50%; }
.col-5  { width: 41.66%; }
.col-4  { width: 33.33%; }
.col-3  { width: 25%; }
.col-2  { width: 16.66%; }
.col-1  { width: 8.33%; }

@media (max-width: 768px) {
    .col-1, .col-2, .col-3, .col-4, .col-5, .col-6,
    .col-7, .col-8, .col-9, .col-10, .col-11 { width: 100%; }
}

/* === BADGES / ETIQUETAS DE ESTADO === */
.badge {
    display: inline-block;
    padding: 2px 10px;
    border-radius: 10px;
    font-size: 11px;
    font-weight: bold;
    white-space: nowrap;
}
/* Cada estilo significa una cosa y solo una: verde termino bien, rojo murio,
   amarillo espera algo, cian esta en curso, gris ya no se toca. Un estado sin
   estilo propio se ve igual que los demas y la columna deja de informar. */
.badge-activo    { background: #d4edda; color: #155724; }
.badge-inactivo  { background: #f8d7da; color: #721c24; }
.badge-pendiente { background: #fff3cd; color: #856404; }
.badge-warning   { background: #ffe0c2; color: #8a4b0f; }
.badge-info      { background: #d1ecf1; color: #0c5460; }
.badge-cerrado   { background: #e2e3e5; color: #383d41; }

/* === TABLAS === */
.tabla {
    display: table;
    font-size: 12px;
    color: #404040;
    width: 100%;
    border: 1px solid #e2e2e2;
    border-collapse: collapse;
}
.tabla thead th,
.tabla th.celda {
    background: #c4c4c4;
    color: #242424;
    text-align: left;
    padding: 6px 8px;
    border: 1px solid #b0b0b0;
    font-weight: bold;
    font-size: 11px;
    white-space: nowrap;
}
.tabla tbody tr.fila { background: #ffffff; }
.tabla tbody tr.fila:nth-child(odd) { background: #f7f8f9; }
.tabla tbody tr.fila:hover { background: #eef6f9; }
.tabla tbody td {
    padding: 6px 10px;
    border: 1px solid #e2e2e2;
    vertical-align: middle;
}

/* === COLUMNAS SEGUN QUE DATO LLEVAN ===
   Un numero de OT, una fecha, una patente y un monto se comparan de arriba
   abajo, no se leen como texto. En proporcional cada digito mide distinto y la
   columna deja de alinear, que es justo para lo que existe. */
.tabla td.dato,
.tabla td.monto {
    font-family: ui-monospace, "Cascadia Mono", "Roboto Mono", Menlo, Consolas, monospace;
    font-variant-numeric: tabular-nums;
    font-size: 12px;
    white-space: nowrap;
}
.tabla td.monto { font-weight: bold; }
.tabla td.derecha,
.tabla th.celda.derecha { text-align: right; }

/* La patente es el identificador con el que el taller habla del vehiculo. Se
   muestra como lo que es: una placa. */
.tabla td.placa { white-space: nowrap; }
.tabla td.placa:not(:empty) {
    font-family: ui-monospace, "Cascadia Mono", "Roboto Mono", Menlo, Consolas, monospace;
    letter-spacing: 0.06em;
    font-weight: bold;
    color: #242424;
}

/* Tabla responsive */
.tabla-responsive { width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }

/* Ordenamiento */
th.ordenable { cursor: pointer; position: relative; padding-right: 18px; }
th.ordenable:hover { background: #b0b0b0; }
th.ordenable .orden-flecha { position: absolute; right: 5px; top: 50%; margin-top: -5px; font-size: 10px; color: #666; }

/* === BUSQUEDA / FILTROS ===
   Neutra a proposito: el amarillo es el color de mas peso de la pantalla y
   estaba puesto en la barra de filtros, que es lo que menos se mira. Ahora el
   color solo aparece donde significa algo, que es el estado. */
.search {
    font-size: 13px;
    margin-top: 10px;
    padding: 10px 12px;
    background: #f5f6f7;
    border: 1px solid #e2e2e2;
    display: block;
    width: 100%;
    border-radius: 3px;
}
.search table { width: 100%; }
.search table tr th { text-align: right; padding: 3px 6px; white-space: nowrap; font-size: 11px; }
.search table tr td { padding: 3px 4px; }

/* Filtros colapsables movil */
.filtros-toggle { display: none; padding: 8px; text-align: center; }
.filtros-toggle a { color: #545454; font-weight: bold; text-decoration: none; font-size: 13px; }
@media (max-width: 768px) {
    .filtros-toggle { display: block !important; }
    .filtros-contenido { display: none; }
    .search table th, .search table td { display: block; text-align: left; width: 100%; }
    .search table input[type="text"], .search table select { width: 100%; }
}

/* === PAGINACION === */
.pagination-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    flex-wrap: wrap;
    gap: 10px;
    margin: 15px 0;
    font-size: 12px;
}
.pagination-limit {
    color: #545454;
    display: flex;
    align-items: center;
    gap: 6px;
}
.pagination-limit select {
    padding: 3px 6px;
    border: 1px solid #e2e2e2;
    border-radius: 3px;
    font-size: 12px;
    color: #545454;
    background: #fff;
    cursor: pointer;
}
.pagination {
    font-size: 12px;
    overflow: hidden;
    padding: 5px 0;
    margin-left: auto;
    text-align: right;
}
.pagination a { color: #0d9cc4; padding: 3px 8px; border: 1px solid #e2e2e2; border-radius: 3px; margin: 0 1px; }
.pagination a:hover { background: #0d9cc4; color: #fff; }
.pagination a.activo { background: #0d9cc4; color: #fff; font-weight: bold; }
.pagination input[type="text"] { width: 40px; text-align: center; padding: 3px; }
.pagination-info { color: #545454; }

@media (max-width: 768px) {
    .pagination-bar { justify-content: center; }
    .pagination { margin-left: 0; }
}

/* === ACCIONES (sobre tabla) === */
.acciones {
    padding: 8px 0;
    margin-bottom: 5px;
}
.acciones a, .acciones input[type="button"] { margin-right: 8px; }
.add {
    display: inline-block;
    padding: 4px 12px;
    background: #5DC964;
    color: #fff;
    border-radius: 3px;
    font-weight: bold;
    font-size: 12px;
    text-decoration: none;
}
.add:hover { opacity: 0.85; color: #fff; }

/* === CONTENIDO PRINCIPAL === */
.top {
    display: block;
    width: 100%;
    color: #545454;
    font-size: 14px;
    margin: 15px 0;
    position: relative;
}

.main-content {
    background: #ffffff;
    padding: 15px;
    display: block;
    width: 100%;
    position: relative;
    box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.1);
    border-radius: 3px;
}

.main-content-pop {
    margin-top: 10px;
    background: #ffffff;
    padding: 20px;
    display: block;
    width: 100%;
    position: relative;
    box-shadow: 1px 1px 3px rgba(0, 0, 0, 0.1);
}

section {
    display: block;
    margin: 0 auto 15px;
    width: 96%;
    max-width: 1400px;
}

/* === FLASH MESSAGES === */
.flash-msg {
    padding: 10px 15px;
    margin: 10px auto;
    width: 96%;
    max-width: 1400px;
    border-radius: 4px;
    font-size: 13px;
    position: relative;
}
.flash-ok { background: #d4edda; color: #155724; border: 1px solid #c3e6cb; }
.flash-error { background: #f8d7da; color: #721c24; border: 1px solid #f5c6cb; }
.flash-info { background: #d1ecf1; color: #0c5460; border: 1px solid #bee5eb; }
.flash-warning { background: #fff3cd; color: #856404; border: 1px solid #ffeeba; }

/* === TOAST (notificacion no intrusiva) === */
.toast-msg {
    position: fixed;
    top: 20px;
    right: 20px;
    padding: 10px 20px;
    border-radius: 5px;
    z-index: 99999;
    font-size: 13px;
    box-shadow: 2px 2px 8px rgba(0, 0, 0, 0.3);
    color: #ffffff;
}

/* === NAVEGACION === */
nav#nav {
    background: #ffffff;
    border-bottom: 1px solid #e2e2e2;
}
nav .contenido {
    display: block;
    height: 60px;
    margin: 0 auto;
    padding: 0 15px;
    max-width: 1400px;
    overflow: hidden;
}
nav .logo {
    float: left;
    height: 60px;
    line-height: 60px;
}
nav .logo img { height: 40px; vertical-align: middle; }
nav .logo .logo-texto {
    display: inline-block;
    vertical-align: middle;
    font-family: 'Raleway', sans-serif;
    font-weight: 600;
    font-size: 16px;
    color: #242424;
    margin-left: 10px;
}
nav .botones {
    float: right;
    padding: 10px 0;
}
nav .botones table { border-collapse: collapse; }
nav .botones table td { padding: 2px 6px; vertical-align: middle; }

/* La sucursal se decia tres veces en la misma pantalla: en un chip, en el
   selector y en una columna de la tabla. Queda una sola, la que ademas se puede
   cambiar. */
.rotulo-sucursal {
    color: #6b6b6b;
    font-size: 11px;
    text-transform: uppercase;
    letter-spacing: 0.06em;
}
.selector-sucursal {
    font-size: 12px;
    max-width: 220px;
}
.usuario-link {
    color: #242424;
    text-decoration: underline;
    font-size: 12px;
}

/* Menu toggle movil */
.menu-toggle { display: none; float: right; padding: 15px 0; }
.menu-toggle a { color: #242424; font-size: 24px; text-decoration: none; }

/* Sub-nav (barra de menu) */
.sub-nav {
    background: #222;
    min-height: 35px;
}
.sub-nav .contenido {
    margin: 0 auto;
    max-width: 1400px;
    padding: 0 15px;
}

ul.topnav {
    list-style: none;
    padding: 0;
    margin: 0;
    overflow: hidden;
}
ul.topnav li {
    float: left;
    margin: 0;
    padding: 0 10px 0 0;
    position: relative;
}
ul.topnav li a {
    padding: 9px 10px;
    color: #fff;
    font-weight: bold;
    display: block;
    text-decoration: none;
    float: left;
    font-size: 12px;
}
ul.topnav li a:hover { background: #333; color: #0d9cc4; }
ul.topnav li span {
    width: 17px;
    height: 35px;
    float: left;
    cursor: pointer;
    color: #888;
    line-height: 35px;
    text-align: center;
    font-size: 10px;
}
ul.topnav li span.subhover { color: #0d9cc4; }

ul.topnav li ul.subnav {
    z-index: 1000;
    list-style: none;
    position: absolute;
    left: 0;
    top: 35px;
    background: #333;
    margin: 0;
    padding: 0;
    display: none;
    float: left;
    min-width: 200px;
    border: 1px solid #111;
    border-radius: 0 0 4px 4px;
    box-shadow: 2px 2px 8px rgba(0,0,0,0.3);
}
ul.topnav li ul.subnav li {
    margin: 0;
    padding: 0;
    border-top: 1px solid #3a3a3a;
    clear: both;
    width: 100%;
}
ul.topnav li ul.subnav li a {
    float: none;
    display: block;
    width: auto;
    background: #333;
    padding: 8px 15px;
    font-weight: normal;
    font-size: 12px;
}
ul.topnav li ul.subnav li a:hover { background: #444; color: #0d9cc4; }

/* Breadcrumb */
.breadcrumb-bar {
    background: #f5f5f5;
    padding: 6px 15px;
    font-size: 12px;
    color: #545454;
    border-bottom: 1px solid #e2e2e2;
    max-width: 1400px;
    margin: 0 auto;
}
.breadcrumb-bar a { color: #0d9cc4; }
.breadcrumb-bar span { color: #242424; font-weight: bold; }

/* Wrapper y Footer */
.wrapper {
    min-height: calc(100% - 140px);
    padding-bottom: 50px;
}
footer {
    background: #fbfbfb;
    border-top: 1px solid #e2e2e2;
    padding: 10px 15px;
    text-align: center;
    font-size: 12px;
    color: #999;
}
footer .contenido {
    max-width: 1400px;
    margin: 0 auto;
    overflow: hidden;
}

/* === RESPONSIVE === */
@media (max-width: 768px) {
    .menu-toggle { display: block !important; }
    .sub-nav { display: none; }
    ul.topnav { overflow: visible; }
    ul.topnav li { float: none; width: 100%; padding: 0; }
    ul.topnav li a { float: none; }
    ul.topnav li ul.subnav {
        position: relative;
        left: 0;
        top: 0;
        width: 100%;
        border: none;
        box-shadow: none;
    }
    nav .logo .logo-texto { display: none; }
    nav .botones { font-size: 11px; }
    section { width: 100%; padding: 0 5px; }
    .tabla-form th { display: block; text-align: left; width: 100%; padding: 4px 6px 0; }
    .tabla-form td { display: block; width: 100%; padding: 2px 6px 6px; }
    .tabla-form input[type="text"], .tabla-form select, .tabla-form textarea { width: 100%; }
}

/* === LOGIN === */
.home-bg {
    background: #01a3f0;
    min-height: 100vh;
    display: block;
    padding-top: 5%;
}
.login-container {
    max-width: 460px;
    width: 92%;
    margin: 0 auto;
}
.login {
    background: #ffffff;
    padding: 25px;
    border: 1px solid #cfcfcf;
    border-radius: 6px;
    box-shadow: 2px 3px 15px rgba(0, 0, 0, 0.3);
}
.login .logo-login {
    text-align: center;
    padding-bottom: 15px;
    margin-bottom: 15px;
    border-bottom: 1px solid #e2e2e2;
}
.login .logo-login img { max-width: 200px; height: auto; }
.login .logo-login p {
    color: #999;
    font-size: 12px;
    margin-top: 5px;
    font-family: 'Raleway', sans-serif;
}

.login-tabs {
    display: table;
    width: 100%;
    margin-bottom: 15px;
    border-bottom: 2px solid #e2e2e2;
}
.login-tabs .tab {
    display: table-cell;
    text-align: center;
    padding: 8px 0;
    cursor: pointer;
    color: #545454;
    font-size: 14px;
    font-family: 'Raleway', sans-serif;
    font-weight: 600;
    border-bottom: 3px solid transparent;
    margin-bottom: -2px;
}
.login-tabs .tab:hover { color: #0d9cc4; }
.login-tabs .tab.active {
    color: #0d9cc4;
    border-bottom-color: #0d9cc4;
}

.login label {
    display: block;
    color: #545454;
    font-size: 12px;
    font-weight: bold;
    margin-bottom: 4px;
    margin-top: 10px;
}
.login input[type="text"],
.login input[type="password"],
.login input[type="email"] {
    width: 100%;
    padding: 8px 10px;
    font-size: 14px;
}
.login .boton-azul {
    width: 100%;
    padding: 10px;
    font-size: 14px;
    margin-top: 15px;
}

.login-msg {
    padding: 8px 12px;
    margin-top: 12px;
    border-radius: 4px;
    font-size: 12px;
    display: none;
}
.login-msg.ok { background: #d4edda; color: #155724; display: block; }
.login-msg.error { background: #f8d7da; color: #721c24; display: block; }

.login-footer {
    text-align: center;
    margin-top: 20px;
    padding-top: 15px;
    border-top: 1px solid #e2e2e2;
    font-size: 11px;
    color: #999;
}

/* === UTILIDADES === */
.left { float: left; }
.right { float: right; }
.text-center { text-align: center; }
.text-right { text-align: right; }
.text-left { text-align: left; }
.mt-5 { margin-top: 5px; }
.mt-10 { margin-top: 10px; }
.mt-15 { margin-top: 15px; }
.mb-5 { margin-bottom: 5px; }
.mb-10 { margin-bottom: 10px; }
.mb-15 { margin-bottom: 15px; }
.p-10 { padding: 10px; }
.p-15 { padding: 15px; }
.clearfix:after { content: ""; display: table; clear: both; }

/* === CAMPOS DE FORMULARIO === */
/* Un campo se arma siempre igual: etiqueta arriba, control, ayuda y error.
   Vive aca para que ningun formulario decida por su cuenta donde va el error. */
.campo {
    margin-bottom: 12px;
    max-width: 420px;
}
.campo label {
    display: block;
    font-size: 12px;
    font-weight: bold;
    color: #242424;
    margin-bottom: 4px;
}
.campo input,
.campo select,
.campo textarea {
    width: 100%;
    padding: 6px 8px;
    font-size: 12px;
    border: 1px solid #cfcfcf;
    border-radius: 3px;
    background: #ffffff;
    box-sizing: border-box;
}
.campo input:focus,
.campo select:focus,
.campo textarea:focus {
    border-color: #0d9cc4;
    outline: none;
}
.campo-obligatorio { color: #c0392b; }
.campo-ayuda {
    display: block;
    font-size: 11px;
    color: #777777;
    margin-top: 3px;
}
.campo-error {
    display: block;
    font-size: 11px;
    color: #c0392b;
    margin-top: 3px;
}
.campo-con-error input,
.campo-con-error select,
.campo-con-error textarea {
    border-color: #c0392b;
    background: #fdf3f2;
}

.formulario-nota {
    font-size: 12px;
    color: #555555;
    background: #f7f7f7;
    border-left: 3px solid #0d9cc4;
    padding: 8px 10px;
    margin: 12px 0;
    max-width: 420px;
}
.detalle-cabecera {
    font-size: 12px;
    color: #555555;
    margin: 0 0 12px;
}

/* === PANEL DE DEPURACION ===
   Se inyecta al pie cuando la sesion tiene la depuracion encendida. No se
   parece al resto a proposito: tiene que ser evidente que no es parte de la
   pantalla, para que nadie lo confunda con un dato del negocio. */
.panel-depuracion {
    margin: 20px 0 0;
    border-top: 3px solid #242424;
    background: #1c1f22;
    color: #e6e6e6;
    font-family: ui-monospace, "Cascadia Mono", "Roboto Mono", Menlo, Consolas, monospace;
    font-size: 11px;
}
.panel-depuracion-cifras {
    padding: 8px 12px;
    display: flex;
    flex-wrap: wrap;
    gap: 18px;
    align-items: baseline;
}
.panel-depuracion-cifras strong { color: #E8A33D; letter-spacing: 0.08em; text-transform: uppercase; }
.panel-depuracion-cifras b { color: #ffffff; }
.panel-depuracion-cifras a { color: #E8A33D; margin-left: auto; }
.panel-depuracion-consultas { width: 100%; border-collapse: collapse; }
.panel-depuracion-consultas td { padding: 3px 12px; border-top: 1px solid #2e3236; vertical-align: top; }
.panel-depuracion-consultas .numero { color: #7d848b; width: 1%; }
.panel-depuracion-consultas .ms { color: #E8A33D; width: 1%; white-space: nowrap; text-align: right; }
.panel-depuracion-consultas .sql { color: #c9d1d9; word-break: break-all; }
.enlace-depuracion { color: #bbb; }
