/* =============================================
   SAT CFDI Verificacion - Custom Overrides
   Placed AFTER main_funcional.css to fine-tune
   ============================================= */

/* --- Tab content: override the framework's .tab-content --- */
div.tab-content {
    display: none !important;
    padding: 10px 0 !important;
    border: none !important;
    border-top: none !important;
    background: #fff !important;
    margin-top: 15px;
}

div.tab-content.active {
    display: block !important;
    animation: fadeIn 0.3s ease;
}

@keyframes fadeIn {
    from { opacity: 0; transform: translateY(10px); }
    to { opacity: 1; transform: translateY(0); }
}

/* --- Radio tabs (SAT custom, from stilosVerificaXml.css) --- */
.radio-tabs-group {
    display: flex;
    margin-bottom: 20px;
    gap: 40px;
    align-items: center;
}

.radio-option {
    display: flex;
    align-items: center;
    gap: 8px;
}

.radio-option .radio {
    margin: 0;
    width: 18px;
    height: 18px;
    cursor: pointer;
}

.tab-label {
    cursor: pointer;
    font-weight: normal;
    font-size: 18px;
    color: #404041;
}

/* --- hr.red: from stilosVerificaXml.css --- */
hr.red {
    margin: 10px 0 20px !important;
    border-top-color: #DCE0E0;
}

/* --- Title --- */
.titulo {
    color: #4a4a4a;
    margin-bottom: 15px;
    margin-top: 10px;
}

/* h3 in the gobmx framework: font-family Patria, font-weight:600 */
.reduce-titulo {
    font-size: 24px !important;
    font-weight: 600 !important;
    font-family: "Patria", "Noto Sans", "Helvetica", "Arial", sans-serif !important;
    line-height: 1.1;
    color: inherit;
    margin-top: 10px;
    margin-bottom: 12.5px;
}

/* --- control-label: span labels above inputs --- */
/* Original site: span labels are NORMAL weight, not bold */
span.control-label {
    font-weight: 400;
    font-size: 18px;
    color: #404041;
    display: inline;
}

/* --- Description label (the paragraph-like label) --- */
/* Original site: <label class="control-label"> is BOLD (font-weight:700 from Bootstrap label rule) */
label.control-label {
    font-weight: 700;
    font-size: 18px;
    color: #404041;
    display: inline-block;
    margin-bottom: 5px;
    text-align: left !important;
}

/* --- form-text asterisk: NOT red by default, only red on error --- */
.form-text {
    font-size: 18px;
    margin-left: 1px;
    color: #404041;
    font-weight: 400;
}

/* Only turns red when JS adds .form-text-error class on validation failure */
.form-text.form-text-error {
    color: #D0021B !important;
    font-weight: bold;
}

small.form-text.form-text-error {
    font-size: 14px;
    color: #D0021B;
    font-weight: 400;
    display: none;
}

small.form-text.form-text-error[style*="display: block"],
small.form-text.form-text-error[style*="display:block"] {
    display: block !important;
}

/* --- Captcha image --- */
.captcha {
    margin-bottom: 5px;
}

.captchaimage {
    border: 1px solid #ccc;
    border-radius: 3px;
    background: #e8e8e8;
    display: block;
}

/* --- Results table header --- */
.colorHead {
    text-align: center !important;
    background: #646060 !important;
}

.coloFontHead {
    text-align: center !important;
    background: #646060 !important;
    color: #ddd !important;
    font-size: 18px;
    padding: 10px;
    font-weight: 700;
}

.textosTablaPrint {
    font-size: 16px;
    padding: 8px 12px !important;
    color: #404041;
}

.textosTablaPrint strong {
    font-weight: 600;
}

#tablaResultados td:first-child,
#tablaResultadosXml td:first-child {
    width: 35%;
    background-color: #f8f9fa;
}

/* --- Alert / Aviso (from stilosVerificaXml.css) --- */
.aviso {
    padding: 0px 0px !important;
    margin-bottom: 15px !important;
}

.lblAviso {
    margin: 20px 10px 20px 10px !important;
    font-size: 18px;
    font-weight: normal;
    color: inherit;
}

/* --- Progreso (loading overlay) --- */
.progresofondo {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.4);
    z-index: 9998;
}

.progreso {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: #fff;
    padding: 20px 30px;
    border-radius: 5px;
    z-index: 9999;
    display: flex;
    align-items: center;
    gap: 15px;
    box-shadow: 0 2px 10px rgba(0,0,0,0.3);
}

.spinner-sat {
    width: 30px;
    height: 30px;
    border: 4px solid #ddd;
    border-top-color: #611232;
    border-radius: 50%;
    animation: spin 0.8s linear infinite;
    float: left;
    margin-top: 5px;
}

@keyframes spin {
    to { transform: rotate(360deg); }
}

/* --- Misc from stilosVerificaXml.css --- */
.nopaddigIzq {
    padding-left: 0px !important;
}

.derecha {
    padding-right: 0px !important;
}

/* --- btn-primary: match original SAT exactly --- */
/* Original: white bg, #611232 border, hover fills #611232 */
.btn-primary {
    color: #611232 !important;
    background-color: #FFF !important;
    border: 2px solid #611232 !important;
    box-shadow: 0 0 0 0 #611232 !important;
    font-weight: 300;
    font-size: 18px;
    padding: 6px 20px;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active,
.btn-primary.active {
    color: #FFFFFF !important;
    background-color: #611232 !important;
    border-color: #611232 !important;
}

.btn-primary:disabled,
.btn-primary.aspNetDisabled {
    color: #FFF !important;
    background-color: #611232 !important;
    border-color: #611232 !important;
    cursor: not-allowed;
    opacity: 0.65;
}

/* --- sub-navbar overrides --- */
.sub-navbar {
    background: #3A0B1E !important;
    margin-top: 68px;
    width: 100%;
    z-index: 1029;
}

.sub-navbar .navbar-brand {
    text-transform: uppercase;
    color: #fff !important;
    font-size: 14px;
}

/* --- Breadcrumb --- */
.breadcrumb {
    padding: 20px 0 !important;
    margin-bottom: 15px !important;
    background-color: transparent !important;
}

/* --- Alert status colors --- */
.alert-estado-vigente {
    background-color: #dff0d8 !important;
    border-color: #d6e9c6 !important;
    color: #3c763d !important;
}

.alert-estado-cancelado {
    background-color: #f2dede !important;
    border-color: #D0021B !important;
    color: #545454 !important;
}

/* --- Print --- */
@media print {
    #noPrint { display: none !important; }
    .noPrint { display: none !important; }
}

/* --- XML file upload button --- */
#btnBuscarXml {
    cursor: pointer;
    margin-bottom: 0;
}

/* --- Ensure table borders --- */
.table-bordered > thead > tr > th,
.table-bordered > tbody > tr > td {
    border: 1px solid #ddd;
}

/* --- "* Datos obligatorios" text --- */
.text-vertical-align-button {
    padding-top: 10px;
    font-size: 14px;
}
