html,
body{
    height:100%;
    margin:0;
    font-family:'Segoe UI',sans-serif;
}

.login-container{

    height:100vh;

    background-image:url('/assets/img/login-bg.png');

   background-size:cover;
background-position:center center;

    display:flex;

    justify-content:flex-end;
    align-items:center;

    padding-right:7%;
    
    
}


/* CELULARES */
@media (max-width: 768px){

    .login-container{

        justify-content:center;

        padding-right:0;

        padding-left:0;
    }
    
    .titulo-login{
        font-size:20px;
    }

    .subtitulo-login{
        font-size:14px;
    }

    .login-card{
        padding:25px;
    }

}


.login-overlay{

    position:absolute;

    top:0;
    left:0;

    width:100%;
    height:100%;

    background:rgba(3,18,43,.15);
}

.login-card{

    width:400px;
    min-height:650px;
    height:auto;
    max-width:95%;
    max-height:94vh;
    background:rgba(255,255,255,.90);

    backdrop-filter:blur(10px);

    border-radius:24px;

    box-shadow:
    0 25px 60px rgba(0,0,0,.28);

    padding:18px 20px 16px;
    overflow:hidden;
}

.logo-container{

    text-align:center;
}





.subtitulo-login{

    text-align:center;

    color:#c89c42;

    margin-bottom:18px;
}

.campo-login{

    height:50px;

    border-radius:10px;
}

.btn-ingresar{

    width:100%;

    height:52px;

    border:none;

    background:#0b2346;

    color:white;

    border-radius:10px;

    font-weight:600;
}

.btn-ingresar:hover{

    background:#173a73;
}

.login-forgot-link{
    color:#d7b46a;
    font-weight:800;
    text-decoration:none;
}

.login-forgot-link:hover{
    color:#fff;
    text-decoration:underline;
}

.login-card .alert{
    margin:0 4px 14px;
    padding:10px 12px;
    font-size:14px;
}

.footer-login{

    margin-top:16px;

    text-align:center;

    color:#7d7d7d;

    font-size:13px;
}

.titulo-login{
    text-align:center;
    margin-top:12px;
    margin-bottom:16px;
    color:#0b2346;
    font-size:25px;
    font-weight:700;
    line-height:1.1;
}

.texto-dorado{
    color:#c89c42;
}

.logo-hima{

    max-width:205px;

    display:block;

    margin:auto;

    animation:
        logoEntrance 1s ease-out,
        logoGlow 4s ease-in-out infinite 1s;
}

@keyframes logoEntrance {

    from{
        opacity:0;
        transform:translateY(-20px);
    }

    to{
        opacity:1;
        transform:translateY(0);
    }
}

@keyframes logoGlow {

    0%{
        filter: drop-shadow(0 0 3px rgba(200,156,66,.20));
    }

    50%{
        filter: drop-shadow(0 0 12px rgba(200,156,66,.40));
    }

    100%{
        filter: drop-shadow(0 0 3px rgba(200,156,66,.20));
    }
}

.app-sidebar{
    position:fixed;
    top:0;
    left:0;
    z-index:20;
    width:255px;
    height:100vh;
    background:linear-gradient(180deg,#071f3d 0%,#0b2b53 100%);
    color:#ffffff;
    display:flex;
    flex-direction:column;
    box-shadow:10px 0 30px rgba(8,35,68,.18);
}

.sidebar-brand{
    padding:16px 16px 12px;
    border-bottom:1px solid rgba(255,255,255,.12);
}

.sidebar-logo-card{
    width:100%;
    min-height:92px;
    background:#ffffff;
    border-radius:10px;
    display:flex;
    align-items:center;
    justify-content:center;
    padding:8px;
    box-shadow:0 14px 28px rgba(0,0,0,.18);
    overflow:hidden;
}

.sidebar-logo{
    width:84%;
    max-width:84%;
    max-height:76px;
    height:auto;
    object-fit:contain;
    display:block;
}

.sidebar-system{
    display:block;
    margin-top:10px;
    color:rgba(255,255,255,.74);
    font-size:10px;
    font-weight:700;
    letter-spacing:.08em;
    text-transform:uppercase;
}

.sidebar-nav{
    flex:1;
    display:flex;
    flex-direction:column;
    gap:6px;
    padding:14px 12px;
    overflow-y:auto;
    overflow-x:hidden;
    scrollbar-width:thin;
    scrollbar-color:rgba(255,255,255,.28) transparent;
}

.sidebar-nav::-webkit-scrollbar{
    width:7px;
}

.sidebar-nav::-webkit-scrollbar-track{
    background:transparent;
}

.sidebar-nav::-webkit-scrollbar-thumb{
    background:rgba(255,255,255,.24);
    border:2px solid transparent;
    border-radius:999px;
    background-clip:content-box;
}

.sidebar-nav::-webkit-scrollbar-thumb:hover{
    background:rgba(255,255,255,.40);
    border:2px solid transparent;
    background-clip:content-box;
}

.sidebar-section{
    padding:0 10px 8px;
    color:rgba(255,255,255,.46);
    font-size:11px;
    font-weight:800;
    letter-spacing:.10em;
    text-transform:uppercase;
}

.sidebar-link{
    min-height:44px;
    display:flex;
    align-items:center;
    gap:11px;
    padding:9px 11px;
    color:rgba(255,255,255,.82);
    text-decoration:none;
    border-radius:10px;
    font-size:14px;
    font-weight:700;
    transition:background .18s ease, color .18s ease, transform .18s ease;
}

.sidebar-icon{
    width:32px;
    height:32px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    border-radius:9px;
    background:rgba(255,255,255,.10);
    color:#c89c42;
    font-size:17px;
    flex:0 0 auto;
}

.sidebar-link:hover,
.sidebar-link.active{
    color:#ffffff;
    background:rgba(255,255,255,.12);
    box-shadow:inset 3px 0 0 #c89c42;
}

.sidebar-link.active .sidebar-icon{
    background:#c89c42;
    color:#082344;
}

.sidebar-footer{
    padding:14px;
    border-top:1px solid rgba(255,255,255,.12);
}

.sidebar-user{
    display:flex;
    align-items:center;
    gap:10px;
    padding:12px;
    background:rgba(255,255,255,.09);
    border:1px solid rgba(255,255,255,.10);
    border-radius:12px;
}

.user-avatar{
    width:40px;
    height:40px;
    border-radius:12px;
    background:linear-gradient(135deg,#36d957,#9ff25d);
    color:#082344;
    display:flex;
    align-items:center;
    justify-content:center;
    font-weight:800;
    flex:0 0 auto;
}

.sidebar-user strong,
.sidebar-user small{
    display:block;
    line-height:1.2;
    max-width:140px;
    overflow:hidden;
    text-overflow:ellipsis;
    white-space:nowrap;
}

.sidebar-user strong{
    color:#ffffff;
    font-size:13px;
}

.sidebar-user small{
    color:rgba(255,255,255,.66);
    font-size:12px;
}

.sidebar-logout,
.sidebar-password-btn{
    margin-top:10px;
    min-height:44px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:9px;
    color:#ffffff;
    background:rgba(255,255,255,.08);
    border:1px solid rgba(255,255,255,.14);
    border-radius:12px;
    text-decoration:none;
    font-weight:800;
    width:100%;
}

.sidebar-password-btn{
    cursor:pointer;
}

.sidebar-logout:hover,
.sidebar-password-btn:hover{
    color:#082344;
    background:#ffffff;
    border-color:#ffffff;
}

.app-main{
    min-height:100vh;
    margin-left:255px;
    padding:34px;
    background:linear-gradient(180deg,#f7f9fc 0%,#eef3f8 100%);
}

.app-topbar{
    min-height:74px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    margin-bottom:22px;
}

.topbar-kicker,
.welcome-label{
    display:block;
    color:#65758b;
    font-size:12px;
    font-weight:800;
    letter-spacing:.06em;
    text-transform:uppercase;
}

.app-topbar h1{
    margin:4px 0 0;
    color:#10233f;
    font-size:28px;
    font-weight:800;
}

.topbar-status{
    min-height:42px;
    display:flex;
    align-items:center;
    gap:8px;
    padding:0 14px;
    color:#0b2346;
    background:#ffffff;
    border:1px solid #dce4ef;
    border-radius:8px;
    font-weight:700;
    white-space:nowrap;
}

.topbar-status i{
    color:#27845f;
}

.app-alert{
    border-radius:8px;
}

.welcome-panel{
    background:#ffffff;
    border:1px solid #dce4ef;
    border-left:5px solid #c89c42;
    border-radius:8px;
    padding:24px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:20px;
    box-shadow:0 10px 26px rgba(15,35,63,.06);
}

.welcome-panel h2{
    margin:4px 0 8px;
    color:#0b2346;
    font-size:24px;
    font-weight:800;
}

.welcome-panel p{
    max-width:720px;
    margin:0;
    color:#5c6b7e;
}

.welcome-badge{
    min-width:190px;
    min-height:54px;
    display:flex;
    align-items:center;
    justify-content:center;
    gap:10px;
    background:#eef4fb;
    color:#0b2346;
    border-radius:8px;
    font-weight:800;
}

.welcome-badge i{
    color:#c89c42;
    font-size:22px;
}

.module-grid{
    display:grid;
    grid-template-columns:repeat(4, minmax(0, 1fr));
    gap:16px;
    margin-top:22px;
}

.module-card{
    min-height:150px;
    background:#ffffff;
    border:1px solid #dce4ef;
    border-radius:8px;
    padding:18px;
    color:#0b2346;
    text-decoration:none;
    display:flex;
    flex-direction:column;
    justify-content:space-between;
    box-shadow:0 10px 24px rgba(15,35,63,.05);
    transition:border-color .18s ease, transform .18s ease, box-shadow .18s ease;
}

.module-card:hover{
    color:#0b2346;
    border-color:#c89c42;
    transform:translateY(-3px);
    box-shadow:0 14px 30px rgba(15,35,63,.10);
}

.module-icon{
    width:44px;
    height:44px;
    border-radius:8px;
    background:#eef4fb;
    color:#c89c42;
    display:flex;
    align-items:center;
    justify-content:center;
    font-size:22px;
}

.module-title{
    margin-top:16px;
    font-size:17px;
    font-weight:800;
}

.module-card small{
    color:#65758b;
    font-weight:600;
}

.empty-module{
    min-height:360px;
    background:#ffffff;
    border:1px solid #dce4ef;
    border-radius:8px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    padding:28px;
    color:#5c6b7e;
    text-align:center;
}

.empty-module i{
    color:#c89c42;
    font-size:44px;
    margin-bottom:12px;
}

.empty-module h2{
    color:#0b2346;
    font-weight:800;
}

@media (max-width: 1100px){
    .module-grid{
        grid-template-columns:repeat(2, minmax(0, 1fr));
    }
}

@media (max-width: 768px){
    .app-sidebar{
        position:relative;
        width:100%;
        height:auto;
    }

    .sidebar-brand{
        min-height:auto;
        align-items:center;
    }

    .sidebar-logo{
        max-width:150px;
    }

    .sidebar-nav{
        display:grid;
        grid-template-columns:repeat(2, minmax(0, 1fr));
        gap:8px;
        padding:14px;
    }

    .sidebar-link{
        margin-bottom:0;
    }

    .app-main{
        margin-left:0;
        padding:16px;
    }

    .app-topbar,
    .welcome-panel{
        align-items:flex-start;
        flex-direction:column;
    }

    .module-grid{
        grid-template-columns:1fr;
    }
}


.config-tabs{
    display:flex;
    gap:25px;
    margin-bottom:10px;
    margin-top: 15px;
    margin-left: 20px;
}

.config-tab{
    border:none;
    padding:12px 20px;
    border-radius:10px;
    cursor:pointer;
    font-weight:600;
    
}

.config-tab.active{
    background:#0b2c5f;
    color:white;
}

.tab-content{
    display:none;
    padding:12px 20px;
}

.tab-content.active{
    display:block;
}

.alert-success-custom{
    background:#e8f8ee;
    border:1px solid #38c172;
    color:#146c43;
    padding:15px 20px;
    border-radius:12px;
    margin-bottom:20px;
    font-weight:600;
}

.logo-preview-box{
    width:220px;
    height:120px;

    border:1px solid #dbe3ee;
    border-radius:12px;

    display:flex;
    align-items:center;
    justify-content:center;

    background:#fff;
    margin-top: 15px;
    margin-bottom: 15px;
}

.logo-preview-img{
    max-width:180px;
    max-height:80px;
   
}

.logo-preview
{
    width:250px;
    height:140px;

    border:1px solid #dbe3ef;

    border-radius:12px;

    background:white;

    display:flex;
    align-items:center;
    justify-content:center;
    
}

.config-card
{
    max-width:1100px;
    margin:auto;
    
}

.form-control-sig{

    width:100%;

    padding:12px 15px;

    border:1px solid #d6dde8;

    border-radius:10px;

    font-size:15px;
}

.form-label-sig{

    display:block;

    margin-bottom:6px;

    font-weight:600;

    color:#1e293b;
}

.btn-guardar
{
    background:#0c2d63;
    color:#fff;
    border:none;
    padding:14px 28px;
    border-radius:10px;
    font-weight:600;
    cursor:pointer;
    transition:.3s;
}

.btn-guardar:hover
{
    transform:translateY(-2px);
    
    box-shadow:0 8px 20px rgba(0,0,0,.15);
}

.form-group
{
    margin-bottom: 20px;
    max-width: 800px;
    
    margin-top: 20px;
    margin-bottom: 30px;
}

.form-group label
{
    display: block;
    margin-bottom: 6px;
    
    font-size: 13px;
    font-weight: 600;

    color: #334155;
}

.form-group input
{
    width: 100%;

    height: 46px;

    border: 1px solid #d6dce5;
    border-radius: 10px;

    padding: 0 14px;

    font-size: 15px;

    background: #fff;
}

.form-group input:focus
{
    outline: none;

    border-color: #0c2d63;

    box-shadow: 0 0 0 3px rgba(12,45,99,.10);
}

.config-content h3
{
    margin-bottom: 15px;
}

.config-content p
{
    margin-bottom: 35px;
}

.logo-section
{
    margin-top: 20px;
    margin-bottom: 30px;
}

.procesar-xml-card{
    display:flex;
    flex-direction:column;
    gap:22px;
    padding:28px;
}

.xml-upload-panel{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:18px;
    padding:22px;
    border:1px solid #dce4ef;
    border-radius:14px;
    background:#fff;
}

.xml-upload-box{
    flex:1;
    display:flex;
    align-items:center;
    gap:16px;
    min-height:86px;
    padding:16px;
    border:1px dashed #b8c6d8;
    border-radius:14px;
    background:#f8fafc;
}

.xml-upload-box i{
    width:48px;
    height:48px;
    display:flex;
    align-items:center;
    justify-content:center;
    border-radius:12px;
    color:#0f2d62;
    background:#eaf1fb;
    font-size:26px;
}

.xml-upload-box strong,
.xml-upload-box span{
    display:block;
}

.xml-upload-box span{
    color:#64748b;
    font-size:13px;
    margin-top:4px;
}

.xml-upload-box input{
    margin-left:auto;
    max-width:320px;
}

.xml-summary{
    padding:22px;
    border:1px solid #dce4ef;
    border-radius:14px;
    background:#fff;
}

.xml-summary-header{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:16px;
    margin-bottom:14px;
}

.xml-summary h3{
    margin:0 0 14px;
    color:#172232;
    font-size:20px;
    font-weight:800;
}

.xml-summary-header h3{
    margin:0;
}

.xml-download-all{
    display:inline-flex;
    align-items:center;
    gap:8px;
    text-decoration:none;
}

.xml-filter-panel{
    display:flex;
    align-items:end;
    gap:14px;
    padding:16px;
    margin-bottom:14px;
    border:1px solid #e4ebf5;
    border-radius:14px;
    background:#f8fafc;
}

.xml-filter-group{
    display:flex;
    flex-direction:column;
    gap:6px;
}

.xml-filter-group label{
    color:#334155;
    font-size:12px;
    font-weight:800;
    text-transform:uppercase;
}

.xml-filter-group input,
.xml-filter-group select{
    height:42px;
    min-width:120px;
    padding:0 12px;
    border:1px solid #cbd7e6;
    border-radius:12px;
    background:#fff;
}

.trazabilidad-filter-panel{
    display:grid;
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:12px;
    align-items:end;
    overflow:hidden;
}

.trazabilidad-filter-panel .xml-filter-group{
    min-width:0;
}

.trazabilidad-filter-panel .xml-filter-group label{
    font-size:10px;
    letter-spacing:.02em;
}

.trazabilidad-filter-panel .xml-filter-group input,
.trazabilidad-filter-panel .xml-filter-group select{
    width:100%;
    min-width:0;
    height:40px;
    font-size:13px;
}

.trazabilidad-filter-actions{
    align-self:end;
}

.trazabilidad-filter-actions .btn-primary{
    width:100%;
    min-height:40px;
    justify-content:center;
}

.xml-file-col{
    display:none;
}

.xml-history-table{
    font-size:12px;
    table-layout:auto;
}

.xml-history-table thead th{
    position:relative;
    padding:10px 26px 10px 10px;
    white-space:nowrap;
}

.xml-history-table tbody td{
    padding:9px 10px;
    vertical-align:middle;
}

.xml-history-table .badge-active,
.xml-history-table .badge-inactive,
.xml-history-table .badge-warning-soft{
    font-size:10px;
    padding:5px 9px;
}

.xml-history-table .btn-table{
    width:32px;
    height:32px;
    border-radius:9px;
}

.xml-summary .table-responsive{
    max-height:560px;
}

.col-resizer{
    position:absolute;
    top:0;
    right:0;
    width:8px;
    height:100%;
    cursor:col-resize;
    user-select:none;
}

.col-resizer:hover{
    background:rgba(13,71,161,.15);
}

.resizing-columns{
    cursor:col-resize;
    user-select:none;
}

.xml-pagination{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:14px;
    margin-top:14px;
    color:#64748b;
    font-size:12px;
    font-weight:700;
}

.xml-pagination a{
    display:inline-flex;
    align-items:center;
    min-height:34px;
    padding:0 12px;
    margin-left:8px;
    border:1px solid #dce4ef;
    border-radius:10px;
    color:#0d47a1;
    background:#fff;
    text-decoration:none;
    font-weight:800;
}

.badge-warning-soft{
    display:inline-flex;
    align-items:center;
    padding:6px 12px;
    border-radius:30px;
    background:#fff7e6;
    color:#9a5a00;
    font-size:12px;
    font-weight:800;
}

.campo-manual-xml-modal{
    max-width:760px;
}

#formCamposManualXml{
    padding:28px 32px;
}

.manual-fields-grid{
    display:grid;
    grid-template-columns:1fr 1fr;
    gap:18px;
}

.manual-field-item{
    padding:16px;
    border:1px solid #dbe4ee;
    border-radius:16px;
    background:#f8fafc;
}

.manual-field-item label,
.manual-field-item small{
    display:block;
}

.manual-field-item label{
    margin-bottom:10px;
    color:#26364c;
    font-size:13px;
    font-weight:800;
}

.manual-field-item input[type="text"]{
    width:100%;
    height:44px;
    padding:0 14px;
    border:1px solid #cbd7e6;
    border-radius:12px;
    background:#fff;
}

.manual-field-item small{
    margin-top:8px;
    color:#64748b;
    font-size:12px;
    text-transform:capitalize;
}

.text-muted-small{
    display:block;
    margin-top:4px;
    color:#64748b;
    font-size:12px;
    font-weight:600;
}

@media(max-width: 820px){
    .xml-upload-panel,
    .xml-upload-box{
        flex-direction:column;
        align-items:stretch;
    }

    .xml-upload-box input{
        max-width:100%;
        margin-left:0;
    }

    .xml-summary-header,
    .manual-fields-grid,
    .xml-filter-panel{
        align-items:stretch;
        flex-direction:column;
        grid-template-columns:1fr;
    }
}

.usuario-modal-content{
    width:min(1040px,94vw);
}

.password-modal-content{
    width:min(560px,94vw);
}

.usuario-tabs{
    display:flex;
    gap:10px;
    padding:0 28px;
    margin:0 0 18px;
}

.usuario-tab{
    border:1px solid #d8e2ee;
    background:#f7fafc;
    color:#334155;
    border-radius:10px;
    padding:11px 18px;
    font-weight:800;
    cursor:pointer;
}

.usuario-tab.active{
    background:#082344;
    border-color:#082344;
    color:#fff;
}

.usuario-tab-panel{
    display:none;
    padding:0 28px;
}

.usuario-tab-panel.active{
    display:block;
}

.usuarios-permisos-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:14px;
    max-height:52vh;
    overflow:auto;
    padding-right:4px;
}

.permiso-card{
    border:1px solid #dce4ef;
    background:#fff;
    border-radius:12px;
    padding:14px;
    box-shadow:0 10px 22px rgba(15,35,63,.05);
}

.permiso-card-title{
    display:flex;
    align-items:center;
    gap:10px;
    padding-bottom:10px;
    margin-bottom:10px;
    border-bottom:1px solid #edf2f7;
    color:#082344;
}

.permiso-card-title span{
    width:34px;
    height:34px;
    border-radius:10px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    background:#eef4fb;
    color:#c89c42;
}

.permiso-switch-row{
    display:flex;
    align-items:center;
    justify-content:space-between;
    gap:10px;
    min-height:34px;
    margin:4px 0;
    font-size:13px;
    font-weight:750;
    color:#334155;
}

.switch-mini{
    position:relative;
    width:44px;
    height:24px;
    flex:0 0 auto;
}

.switch-mini input{
    opacity:0;
    width:0;
    height:0;
}

.switch-mini i{
    position:absolute;
    inset:0;
    background:#cbd5e1;
    border-radius:999px;
    transition:.18s ease;
    cursor:pointer;
}

.switch-mini i::before{
    content:'';
    position:absolute;
    width:18px;
    height:18px;
    top:3px;
    left:3px;
    border-radius:50%;
    background:#fff;
    transition:.18s ease;
    box-shadow:0 2px 6px rgba(15,35,63,.18);
}

.switch-mini input:checked + i{
    background:#15803d;
}

.switch-mini input:checked + i::before{
    transform:translateX(20px);
}

.concepto-switch-group{
    align-self:end;
}

.concepto-zero-switch{
    align-items:center;
    background:#ffffff;
    border:1px solid #d8e2ee;
    border-radius:12px;
    min-height:58px;
    padding:12px 16px;
    box-shadow:0 10px 24px rgba(15,35,63,.05);
}

.concepto-zero-copy{
    color:#334155;
    font-size:13px;
    font-weight:800;
}

.concepto-zero-control{
    display:inline-flex;
    align-items:center;
    gap:10px;
    flex:0 0 auto;
}

.concepto-zero-state{
    display:inline-flex;
    align-items:center;
    justify-content:center;
    min-width:34px;
    height:24px;
    padding:0 10px;
    border-radius:999px;
    background:#eef2f7;
    color:#64748b;
    border:1px solid #d8e2ee;
    font-size:11px;
    font-weight:900;
    letter-spacing:.04em;
}

.concepto-zero-state::before{
    content:'NO';
}

.concepto-zero-switch .switch-mini{
    width:44px;
    height:24px;
}

.concepto-zero-switch .switch-mini input:checked + i{
    background:#15803d;
}

.concepto-zero-control:has(input:checked) .concepto-zero-state{
    background:#dcfce7;
    border-color:#86efac;
    color:#166534;
}

.concepto-zero-control:has(input:checked) .concepto-zero-state::before{
    content:'SI';
}

.trazabilidad-table{
    font-size:12px;
}

.trazabilidad-table th,
.trazabilidad-table td{
    padding:10px 12px;
    vertical-align:middle;
}

.trace-description{
    max-width:280px;
    white-space:normal;
}

.filter-actions{
    display:flex;
    align-items:end;
    gap:10px;
}

.password-modal-content form{
    padding:22px 28px 0;
}

.password-input-group.full{
    grid-column:1 / -1;
}

.password-eye-wrap{
    position:relative;
    width:100%;
}

.password-eye-wrap input{
    padding-right:48px;
}

.password-eye-btn{
    position:absolute;
    right:8px;
    top:50%;
    transform:translateY(-50%);
    width:34px;
    height:34px;
    border:0;
    border-radius:9px;
    background:#eef4fb;
    color:#082344;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    cursor:pointer;
}

.password-eye-btn:hover{
    background:#dce8f6;
}

.modal-inline-alert{
    align-items:center;
    border-radius:12px;
    font-size:14px;
    font-weight:700;
    gap:10px;
    line-height:1.35;
    margin:0 0 16px;
    padding:13px 15px;
}

.modal-inline-alert.error{
    background:#fff1f2;
    border:1px solid #fecdd3;
    color:#9f1239;
}

.modal-inline-alert.success{
    background:#ecfdf5;
    border:1px solid #bbf7d0;
    color:#047857;
}

.resizable-table{
    table-layout:fixed;
}

.resizable-table th{
    position:relative;
}

.column-resize-handle{
    bottom:8px;
    cursor:col-resize;
    position:absolute;
    right:0;
    top:8px;
    width:8px;
    z-index:2;
}

.column-resize-handle::after{
    background:#c7d4e6;
    border-radius:999px;
    content:"";
    display:block;
    height:100%;
    margin-left:3px;
    opacity:0;
    transition:opacity .15s ease;
    width:2px;
}

.resizable-table th:hover .column-resize-handle::after,
.is-resizing-column .column-resize-handle::after{
    opacity:1;
}

.campos-xml-table .col-variable-xml{
    width:180px;
}

.empresa-representante-grid{
    display:grid;
    gap:18px;
    grid-template-columns:repeat(2,minmax(0,1fr));
    margin-top:18px;
}

.firma-preview-box{
    min-height:92px;
}

.firma-preview-img{
    max-height:74px;
    object-fit:contain;
}

.xml-upload-limit-alert{
    grid-column:1 / -1;
    margin:0;
}

@media(max-width:720px){
    .empresa-representante-grid{
        grid-template-columns:1fr;
    }
}

@media(max-width:1100px){
    .usuarios-permisos-grid{
        grid-template-columns:repeat(2,minmax(0,1fr));
    }

    .trazabilidad-filter-panel{
        grid-template-columns:repeat(3,minmax(0,1fr));
    }
}

@media(max-width:720px){
    .usuarios-permisos-grid{
        grid-template-columns:1fr;
    }

    .trazabilidad-filter-panel{
        grid-template-columns:1fr;
    }
}

