:root{
    --gold:#d9a417;
    --gold-soft:#f0c64e;
    --black:#0c0c0f;
    --panel:#17181d;
    --panel-2:#1f2128;
    --text:#f5f5f5;
    --muted:#b7b7b7;
    --line:rgba(255,255,255,.08);
}

body{
    font-family:Arial,Helvetica,sans-serif;
    margin:0;
}

/* =========================
   LOGIN
========================= */
.login-page{
    min-height:100vh;
    background:linear-gradient(135deg, rgba(0,0,0,.88), rgba(40,18,0,.82)), url('img/logo_oficial.png') center/contain no-repeat, #0b0b0d;
    color:#ffffff;
    position:relative;
}

.login-main{
    min-height:100vh;
    display:flex;
    align-items:center;
}

.login-card{
    background:rgba(15,15,19,.94);
    border:1px solid rgba(217,164,23,.22);
    border-radius:22px;
    box-shadow:0 25px 60px rgba(0,0,0,.45);
}

.login-logo{
    width:120px;
    height:120px;
    object-fit:contain;
    border-radius:50%;
    background:#111;
    padding:8px;
    border:2px solid rgba(217,164,23,.35);
}

.login-side-card{
    background:rgba(255,255,255,.04);
    border:1px solid rgba(255,255,255,.08);
    border-radius:18px;
    padding:16px;
    height:100%;
    color:#ffffff !important;
}

.mini-logo{
    width:70px;
    height:70px;
    object-fit:contain;
    border-radius:14px;
    background:#fff;
    padding:6px;
}

/* texto blanco login */
.login-card p,
.login-side-card p,
.login-side-card,
.text-light-emphasis,
.login-page small,
.login-page .subtext,
.login-side-card h5,
.login-card h2,
.login-card label{
    color:#ffffff !important;
}

/* footer login */
.login-footer-text{
    position:absolute;
    bottom:8px;
    left:0;
    width:100%;
    text-align:center;
    color:#ffffff !important;
    font-size:11px;
    line-height:1.6;
    letter-spacing:.3px;
    opacity:.95;
    z-index:99999;
    text-shadow:0 1px 3px rgba(0,0,0,.6);
    padding:0 10px;
}

/* =========================
   BOTONES
========================= */
.btn-gold{
    background:linear-gradient(90deg,var(--gold),var(--gold-soft));
    color:#111 !important;
    font-weight:700;
    border:none;
    min-width:140px;
    min-height:46px;
    padding:10px 20px;
    border-radius:12px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
    white-space:nowrap;
    text-align:center;
}

.btn-gold:hover{
    opacity:.95;
    color:#111 !important;
}

.btn-gold.btn-wide{
    min-width:180px;
}

/* =========================
   APP GENERAL
========================= */
.app-body{
    background:#111317;
    color:#f4f4f4;
    margin:0;
}

.sidebar{
    position:fixed;
    left:0;
    top:0;
    width:290px;
    height:100vh;
    background:linear-gradient(180deg,#0a0a0d,#191209);
    padding:22px;
    border-right:1px solid rgba(217,164,23,.16);
    overflow:auto;
}

.sidebar a{
    display:block;
    color:#ececec;
    text-decoration:none;
    padding:12px 14px;
    border-radius:14px;
    margin-bottom:8px;
    transition:.2s;
    font-size:15px;
}

.sidebar a:hover{
    background:rgba(217,164,23,.14);
    color:#fff;
}

.sidebar i{
    margin-right:10px;
    color:var(--gold-soft);
}

.brand-box{
    padding:10px 8px 20px;
    border-bottom:1px solid rgba(255,255,255,.08);
    margin-bottom:16px;
}

.brand-logo{
    width:110px;
    height:110px;
    object-fit:contain;
    border-radius:50%;
    background:#0e0e10;
    padding:10px;
    border:2px solid rgba(217,164,23,.35);
}

.main-content{
    margin-left:290px;
    padding:28px;
}

.topbar{
    display:flex;
    justify-content:space-between;
    align-items:center;
    background:var(--panel);
    border:1px solid var(--line);
    padding:18px 22px;
    border-radius:22px;
    margin-bottom:24px;
}

.top-icon{
    width:48px;
    height:48px;
    object-fit:contain;
    border-radius:12px;
    background:#fff;
    padding:4px;
}

.card-soft{
    background:var(--panel);
    border:1px solid var(--line);
    border-radius:22px;
    box-shadow:0 12px 30px rgba(0,0,0,.22);
}

.card-soft .card-body{
    padding:22px;
}

.metric-card{
    background:linear-gradient(135deg, #1a1b21, #121316);
    border:1px solid rgba(217,164,23,.16);
    border-radius:24px;
    padding:22px;
    height:100%;
}

.metric-card h2{
    font-size:36px;
    color:var(--gold-soft);
    margin:8px 0 0;
}

.section-title{
    display:flex;
    justify-content:space-between;
    align-items:center;
    margin-bottom:18px;
}

.print-hide{
    display:inline-block;
}

/* =========================
   FORMULARIOS
========================= */
.form-control,
.form-select{
    background:#101216;
    border:1px solid rgba(255,255,255,.1);
    color:#ffffff !important;
    border-radius:14px;
}

.form-control:focus,
.form-select:focus{
    background:#101216;
    color:#ffffff !important;
    border-color:rgba(217,164,23,.45);
    box-shadow:0 0 0 .2rem rgba(217,164,23,.12);
}

input,
select,
textarea{
    color:#ffffff !important;
}

input::placeholder,
textarea::placeholder,
.form-control::placeholder,
.form-select::placeholder{
    color:#cfcfcf !important;
    opacity:1 !important;
}

input[type="date"],
input[type="time"],
input[type="datetime-local"]{
    color:#ffffff !important;
}

input[type="date"]::-webkit-calendar-picker-indicator,
input[type="time"]::-webkit-calendar-picker-indicator,
input[type="datetime-local"]::-webkit-calendar-picker-indicator{
    filter:invert(1);
    opacity:1;
}

select option{
    background:#101216 !important;
    color:#ffffff !important;
}

/* =========================
   TABLAS EN PANTALLA
========================= */
.table-dark-custom{
    --bs-table-bg:#17181d;
    --bs-table-striped-bg:#1b1d23;
    --bs-table-border-color:rgba(255,255,255,.08);
    --bs-table-color:#f1f1f1;
}

.table{
    color:#ffffff !important;
}

.table th{
    color:#f1c40f !important;
}

.table td{
    color:#ffffff !important;
    vertical-align:middle;
}

/* =========================
   CABECERA SOLO IMPRESION
========================= */
.print-header{
    display:none;
}

/* =========================
   IMPRESION
========================= */
@media print{
    .sidebar,
    .topbar,
    .print-hide,
    .btn,
    .alert,
    .menu,
    nav{
        display:none !important;
    }

    body,
    .app-body,
    .main-content,
    .card-soft,
    .card-soft .card-body{
        background:#ffffff !important;
        color:#000000 !important;
        box-shadow:none !important;
    }

    .main-content{
        margin-left:0 !important;
        padding:0 !important;
        width:100% !important;
    }

    .card-soft{
        border:none !important;
        border-radius:0 !important;
    }

    .print-header{
        display:block !important;
        text-align:center;
        margin-bottom:20px;
        color:#000 !important;
    }

    .table,
    .table-dark-custom,
    .table-dark-custom tbody,
    .table-dark-custom thead,
    .table-dark-custom tr,
    .table-dark-custom td,
    .table-dark-custom th,
    table,
    tbody,
    thead,
    tr,
    td,
    th{
        color:#000000 !important;
        background:#ffffff !important;
        border-color:#cccccc !important;
        box-shadow:none !important;
        text-shadow:none !important;
        background-image:none !important;
    }

    .table th,
    .table td{
        color:#000000 !important;
        background:#ffffff !important;
    }

    .table-striped > tbody > tr:nth-of-type(odd),
    .table-striped > tbody > tr:nth-of-type(even){
        background:#ffffff !important;
    }

    .table-striped > tbody > tr:nth-of-type(odd) > *,
    .table-striped > tbody > tr:nth-of-type(even) > *{
        background:#ffffff !important;
        color:#000000 !important;
    }

    a{
        color:#000000 !important;
        text-decoration:none !important;
    }

    input,
    select,
    textarea{
        color:#000000 !important;
        background:#ffffff !important;
        border:1px solid #cccccc !important;
    }

    @page{
        margin:12mm;
    }
}

/* =========================
   RESPONSIVE
========================= */
@media (max-width: 992px){
    .sidebar{
        position:relative;
        width:100%;
        height:auto;
        border-right:none;
    }

    .main-content{
        margin-left:0;
        padding:18px;
    }

    .login-main{
        padding-bottom:60px;
    }

    .login-footer-text{
        bottom:6px;
        font-size:10px;
        padding:0 12px;
    }
}

.textbox-larga{
    width:100% !important;
    min-width:420px;
    height:44px;
    font-size:15px;
}

.menu-group{
    margin-bottom:8px;
}

.menu-toggle{
    display:block;
    color:#ececec;
    text-decoration:none;
    padding:12px 14px;
    border-radius:14px;
    transition:.2s;
    font-size:15px;
    background:transparent;
}

.menu-toggle:hover{
    background:rgba(217,164,23,.14);
    color:#fff;
}

.submenu{
    display:none;
    padding-left:14px;
    margin-top:6px;
}

.submenu-link{
    display:block;
    color:#d8d8d8;
    text-decoration:none;
    padding:10px 14px;
    border-radius:12px;
    margin-bottom:6px;
    font-size:14px;
    transition:.2s;
}

.submenu-link:hover{
    background:rgba(217,164,23,.10);
    color:#fff;
}