/* ==================================================
   TMS · Caja Chica · estilos base
   ================================================== */
.tms-wrap{max-width:1080px;margin:0 auto;font-size:14px;color:#222}
.tms-titulo{border-bottom:2px solid #8B1A1A;padding-bottom:8px;margin-bottom:18px}
.tms-msg{padding:12px 16px;border-radius:4px;margin:14px 0;border-left:4px solid}
.tms-ok{background:#eaf7ed;border-color:#2e7d32;color:#1b5e20}
.tms-error{background:#fdecea;border-color:#ee5949;color:#8e1a1a}
.tms-info{background:#e8f0fe;border-color:#1a73e8;color:#0d47a1}
.tms-aviso{background:#fff8e1;border:1px solid #ffe082;padding:14px;border-radius:4px}

.tms-kpis{display:flex;gap:14px;margin:18px 0}
.tms-kpi{flex:1;background:#fff;border:1px solid #e0e0e0;border-radius:6px;padding:16px;text-align:center}
.tms-kpi span{display:block;font-size:30px;font-weight:700}
.tms-kpi small{color:#666;text-transform:uppercase;font-size:11px;letter-spacing:.5px}
.tms-kpi-warn span{color:#e08c00}
.tms-kpi-ok span{color:#2e7d32}
.tms-kpi-err span{color:#ee5949}

.tms-tabla{width:100%;border-collapse:collapse;margin:14px 0;background:#fff}
.tms-tabla th,.tms-tabla td{border:1px solid #ddd;padding:8px 10px;text-align:left;vertical-align:top}
.tms-tabla thead th{background:#f4f4f4;font-weight:600}
.tms-tabla-detalle th{width:28%;background:#fafafa}
.tms-vacio{text-align:center;color:#888;padding:22px}
.tms-vacio-msg{padding:22px;text-align:center;color:#888;background:#fafafa;border:1px dashed #ddd;border-radius:6px;margin:14px 0}

.tms-badge{display:inline-block;padding:2px 10px;border-radius:11px;font-size:11px;font-weight:600;text-transform:uppercase}
.tms-badge-warn{background:#fff3cd;color:#8a6100}
.tms-badge-ok{background:#e3f3e6;color:#1b5e20}
.tms-badge-err{background:#ee5949;color:#f4ecec}
.tms-badge-info{background:#e8f0fe;color:#0d47a1}

.tms-form fieldset{border:1px solid #e0e0e0;border-radius:6px;padding:16px 18px;margin:0 0 18px;background:#fff}
.tms-form legend{font-weight:700;color:#8B1A1A;padding:0 8px}
.tms-form label{display:block;margin:10px 0 4px;font-weight:600}
.tms-form input[type=text],.tms-form input[type=number],.tms-form input[type=date],.tms-form select,.tms-form textarea{width:100%;padding:8px 10px;border:1px solid #ccc;border-radius:4px;font-size:14px;box-sizing:border-box}
.tms-form input:disabled{background:#f4f4f4;color:#666}
.tms-radios label{display:inline-flex;align-items:center;gap:6px;font-weight:400;margin-right:22px}
.tms-radios-v label{display:flex;margin:6px 0}
.tms-hint{display:block;color:#777;font-size:12px;margin-top:4px}

.tms-btn{display:inline-block;background:#f0f0f0;border:1px solid #ccc;color:#222;padding:9px 18px;border-radius:4px;cursor:pointer;text-decoration:none;font-size:14px;margin:6px 6px 6px 0}
.tms-btn:hover{background:#e6e6e6}
.tms-btn-primary{background:#8B1A1A;border-color:#6d1414;color:#fff}
.tms-btn-primary:hover{background:#6d1414}
.tms-btn-danger{background:#ee5949;border-color:#8e1a1a;color:#fff}
.tms-btn-sm{padding:5px 12px;font-size:12px}
.tms-oculto{display:none}

.tms-combo{position:relative}
.tms-combo-list{position:absolute;z-index:50;left:0;right:0;top:100%;max-height:230px;overflow-y:auto;background:#fff;border:1px solid #ccc;border-top:0;margin:0;padding:0;list-style:none;display:none}
.tms-combo-list li{padding:8px 10px;cursor:pointer}
.tms-combo-list li:hover{background:#f2f2f2}

.tms-tabla-items input{width:100%;box-sizing:border-box;padding:6px 8px;border:1px solid #ccc;border-radius:3px}
.tms-del{background:#fdecea;color:#ee5949;border:1px solid #f5c6cb;border-radius:3px;cursor:pointer;padding:4px 9px;font-size:15px;line-height:1}
.tms-total td{background:#f7f7f7;font-size:15px}

.tms-preview{width:100%;height:640px;border:1px solid #ccc;border-radius:4px;margin-bottom:18px;background:#fff}
.tms-acciones{margin:18px 0}
.tms-volver{margin-top:24px}

/* ---------------- Barra de 5 pasos ---------------- */
.tms-pasos{display:inline-flex;gap:3px;align-items:center;vertical-align:middle}
.tms-paso{display:inline-flex;width:20px;height:20px;border-radius:50%;align-items:center;justify-content:center;font-size:10px;font-weight:700;background:#eeeeee;color:#999;cursor:help}
.tms-paso-ok{background:#5cbf61;color:#fff}
.tms-paso-err{background:#ee5949;color:#fff}
.tms-paso-cur{background:#f9a825;color:#fff;animation:tms-pulse 1.8s ease-in-out infinite}
.tms-paso-off{background:#eeeeee;color:#999}
@keyframes tms-pulse{0%,100%{box-shadow:0 0 0 0 rgba(249,168,37,.6)}50%{box-shadow:0 0 0 5px rgba(249,168,37,0)}}
.tms-paso-label{display:block;font-size:10px;font-weight:600;text-transform:uppercase;margin-top:4px;letter-spacing:.3px}
.tms-paso-label.tms-paso-warn{color:#b26a00}
.tms-paso-label.tms-paso-ok{color:#1b5e20}
.tms-paso-label.tms-paso-err{color:#f5f3f3}

/* ---------------- Rendición / progreso ---------------- */
.tms-rend-vacia{color:#bbb;font-style:italic}
.tms-rend-total{display:block;margin-top:3px;color:#666;font-size:11px}
.tms-monto-excede{border-color:#ee5949!important;background:#fdecea!important;box-shadow:0 0 0 1px #ee5949 inset}
#tms-total.tms-excede{color:#ee5949}

/* ---------------- Leyenda ---------------- */
.tms-leyenda{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;margin-top:16px;padding:10px 14px;background:#fafafa;border:1px solid #e0e0e0;border-radius:6px;font-size:12px;color:#555}
.tms-leyenda .tms-paso{width:14px;height:14px;font-size:9px;cursor:default}
.tms-sep{color:#bbb;margin:0 4px}
/* ---------------- Acciones como iconos ---------------- */
.tms-acciones {
    white-space: nowrap;
    text-align: center;
    vertical-align: middle;
}

.tms-icon-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 28px;
    height: 28px;
    border-radius: 4px;
    background: #f0f0f0;
    color: #555;
    margin: 2px 1px;
    text-decoration: none;
    transition: transform .15s ease, box-shadow .15s ease, filter .15s ease;
    vertical-align: middle;
    border: 1px solid transparent;
}

.tms-icon-btn svg {
    width: 16px;
    height: 16px;
    fill: currentColor;
    display: block;
}

.tms-icon-btn:hover {
    transform: translateY(-1px);
    box-shadow: 0 2px 6px rgba(0,0,0,.2);
    filter: brightness(0.92);
    color: #fff;
}

.tms-icon-btn:focus {
    outline: none;
    box-shadow: 0 0 0 2px rgba(139, 26, 26, .35);
}

/* Colores por tipo de acción */
.tms-icon-btn-detalle   { background: #e8f0fe; color: #0d47a1; }
.tms-icon-btn-gestionar { background: #fff3cd; color: #8a6100; }
.tms-icon-btn-rendir    { background: #e3f3e6; color: #1b5e20; }
.tms-icon-btn-rendicion { background: #e3f3e6; color: #1b5e20; }
.tms-icon-btn-revisar   { background: #f3e5f5; color: #6a1b9a; }
.tms-icon-btn-ej01      { background: #fdecea; color: #c62828; }

/* Hover por color (mantiene el fondo pero oscurece texto e ícono) */
.tms-icon-btn-detalle:hover   { background: #0d47a1; color: #fff; }
.tms-icon-btn-gestionar:hover { background: #8a6100; color: #fff; }
.tms-icon-btn-rendir:hover,
.tms-icon-btn-rendicion:hover { background: #1b5e20; color: #fff; }
.tms-icon-btn-revisar:hover   { background: #6a1b9a; color: #fff; }
.tms-icon-btn-ej01:hover      { background: #c62828; color: #fff; }

/* ---------------- Logo en Configuración ---------------- */
.tms-logo-field{max-width:420px}
.tms-logo-preview{width:180px;height:90px;background:#fff;border:1px dashed #ccd0d4;border-radius:4px;display:flex;align-items:center;justify-content:center;margin-bottom:8px;overflow:hidden}
.tms-logo-preview img{max-width:100%;max-height:100%}
.tms-logo-vacio{color:#999;font-size:12px}

/* ---------------- DataTables ---------------- */
.dataTables_wrapper{margin:14px 0 0}
.tms-dt-toolbar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:10px}
.dataTables_length,.dataTables_filter{font-size:13px;color:#555;margin:0}
.dataTables_length label,.dataTables_filter label{display:flex;align-items:center;gap:6px;font-weight:500}
.dataTables_length select,.dataTables_filter input{padding:6px 8px;border:1px solid #ccc;border-radius:4px;font-size:13px;background:#fff}
.dataTables_filter input{min-width:240px}
.dataTables_filter input:focus,.dataTables_length select:focus{outline:none;border-color:#8B1A1A;box-shadow:0 0 0 2px rgba(139,26,26,.12)}

table.tms-tabla.dataTable thead th{position:relative;cursor:pointer;user-select:none;padding-right:24px;background:#f4f4f4}
table.tms-tabla.dataTable thead th::after{content:"";position:absolute;right:8px;top:50%;transform:translateY(-50%);width:0;height:0;border-left:4px solid transparent;border-right:4px solid transparent;border-bottom:5px solid #bbb;opacity:.6}
table.tms-tabla.dataTable thead th.sorting_asc::after{border-bottom:0;border-top:5px solid #8B1A1A;opacity:1}
table.tms-tabla.dataTable thead th.sorting_desc::after{border-top:0;border-bottom:5px solid #8B1A1A;opacity:1}
table.tms-tabla.dataTable thead th.sorting_disabled::after{display:none}

.tms-dt-pagination{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-top:12px;font-size:13px}
.dataTables_info{color:#555;padding:0}
.dataTables_paginate{display:flex;gap:4px}
.dataTables_paginate .paginate_button{display:inline-block;padding:6px 11px;border:1px solid #ddd;border-radius:4px;background:#fff;color:#333;text-decoration:none;cursor:pointer;line-height:1;font-size:13px}
.dataTables_paginate .paginate_button:hover{background:#f5f5f5;border-color:#8B1A1A;color:#8B1A1A}
.dataTables_paginate .paginate_button.current{background:#8B1A1A;border-color:#8B1A1A;color:#fff;font-weight:600}
.dataTables_paginate .paginate_button.disabled{opacity:.45;cursor:not-allowed;background:#f9f9f9}
table.tms-tabla.dataTable td.dt-right{text-align:right;font-variant-numeric:tabular-nums}

.tms-motivo-rechazo {
    margin-top: 4px;
    font-size: 11px;
    color: #ee5949;
    font-style: italic;
    line-height: 1.3;
    max-width: 200px;
    cursor: help;
}
/* Panel de detalle de la solicitud en el Paso 4 */
.tms-solicitud-detalle {
    background: #fafafa;
    border: 1px solid #e0e0e0;
    border-left: 4px solid #8B1A1A;
    border-radius: 4px;
    padding: 14px 18px;
    margin: 0 0 18px;
}

.tms-solicitud-detalle h3 {
    margin: 0 0 10px;
    color: #8B1A1A;
    font-size: 15px;
    border-bottom: 1px solid #e0e0e0;
    padding-bottom: 6px;
}

.tms-solicitud-detalle h4 {
    color: #333;
    font-size: 13px;
    margin: 16px 0 6px;
    text-transform: uppercase;
    letter-spacing: .3px;
}

.tms-solicitud-detalle .tms-tabla {
    margin: 0 0 10px;
    background: #fff;
}

.tms-justificacion {
    background: #fff;
    border: 1px solid #e0e0e0;
    border-radius: 3px;
    padding: 10px 14px;
    margin: 10px 0;
    font-size: 13px;
}

.tms-justificacion strong {
    color: #8B1A1A;
}

.tms-justificacion p {
    margin: 6px 0 0;
    font-style: italic;
    color: #444;
    line-height: 1.5;
}
@media (max-width:760px){
    .tms-dt-toolbar,.tms-dt-pagination{flex-direction:column;align-items:stretch}
    .dataTables_filter input{min-width:0;width:100%}
    .dataTables_paginate{justify-content:center;flex-wrap:wrap}
}

/* ---------------- Paso 6 · Control interno ---------------- */
.tms-form input[type="checkbox"] {
    width: auto;
    margin-right: 8px;
    vertical-align: middle;
}

.tms-form .tms-radios-v label {
    align-items: flex-start;
    padding: 6px 0;
    border-bottom: 1px solid #f0f0f1;
}

.tms-form .tms-radios-v label:last-child {
    border-bottom: 0;
}

.tms-badge-info {
    background: #e8f0fe;
    color: #0d47a1;
}

/* Auditoría */
.tms-diff-toggle { font-size: 11px !important; }
#tms-panel-tabla code,
.wp-list-table code { font-family: ui-monospace, "SF Mono", monospace; }

/* ---------------- Filtros inline (Control interno) ---------------- */
.tms-filtros-inline {
    display: flex;
    align-items: flex-end;
    gap: 10px;
    flex-wrap: wrap;
}

.tms-filtro-inline {
    display: flex;
    flex-direction: column;
    flex: 0 0 auto;
    min-width: 220px;
    max-width: 280px;
    font-size: 12px;
    color: #555;
}

.tms-filtro-inline > span {
    font-weight: 600;
    margin-bottom: 4px;
    text-transform: uppercase;
    letter-spacing: .3px;
    font-size: 11px;
}

.tms-filtro-inline select {
    width: 100%;
    padding: 8px 10px;
    border: 1px solid #ccc;
    border-radius: 4px;
    font-size: 13px;
    background: #fff;
    box-sizing: border-box;
    line-height: 1.4;
}

.tms-filtro-inline select:focus {
    outline: none;
    border-color: #8B1A1A;
    box-shadow: 0 0 0 2px rgba(139, 26, 26, .12);
}

/* Alinear todos los botones a la misma altura que el select */
.tms-filtros-inline .tms-btn {
    margin: 0;
    height: 36px;
    display: inline-flex;
    align-items: center;
    padding: 0 18px;
    line-height: 1;
    box-sizing: border-box;
}

.tms-filtros-inline .tms-btn-export-inline {
    margin-left: auto;
    background: #2e7d32;
    border-color: #1b5e20;
    color: #fff;
    font-weight: 600;
}

.tms-filtros-inline .tms-btn-export-inline:hover {
    background: #1b5e20;
}

/* Responsive: en pantallas chicas apila todo */
@media (max-width: 640px) {
    .tms-filtros-inline {
        flex-direction: column;
        align-items: stretch;
    }
    .tms-filtro-inline {
        max-width: none;
    }
    .tms-filtros-inline .tms-btn-export-inline {
        margin-left: 0;
    }
}