/**
 * Helix Ultimate - STJG Trans Custom Brand Styling
 * Exact match to STJG Corporate Identity (#ec1b28, #211f20)
 */

:root {
    --stjg-primary: #ec1b28;
    --stjg-primary-dark: #be121e;
    --stjg-primary-light: #fef0f1;
    --stjg-dark: #211f20;
}

/* Off-canvas toggler visibility control */
@media (min-width: 992px) {
    #offcanvas-toggler,
    .offcanvas-toggler-secondary,
    .offcanvas-toggler-right,
    .offcanvas-toggler-left,
    .offcanvas-toggler-custom,
    .burger-icon {
        display: none !important;
        visibility: hidden !important;
        opacity: 0 !important;
        pointer-events: none !important;
    }
}

@media (max-width: 991.98px) {
    #offcanvas-toggler {
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
    }
}

/* Global button and link branding */
.btn-primary {
    background-color: var(--stjg-primary) !important;
    border-color: var(--stjg-primary) !important;
}

.btn-primary:hover,
.btn-primary:focus,
.btn-primary:active {
    background-color: var(--stjg-primary-dark) !important;
    border-color: var(--stjg-primary-dark) !important;
}

a {
    color: var(--stjg-primary);
}

a:hover, a:focus {
    color: var(--stjg-primary-dark);
}

/* Form control focus states */
.form-control:focus {
    border-color: var(--stjg-primary) !important;
    box-shadow: 0 0 0 0.25rem rgba(236, 27, 40, 0.22) !important;
}

/* Header bar accent */
#sp-header {
    border-bottom: 2px solid rgba(236, 27, 40, 0.12);
}

/* ==========================================================================
   Full-Screen Fluid Layout (De-box Website)
   ========================================================================== */
html, body {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: hidden !important;
}

.body-innerwrapper,
.body-wrapper,
#sp-main-body,
#sp-header,
#sp-bottom,
#sp-footer {
    width: 100% !important;
    max-width: 100% !important;
}

#sp-main-body {
    padding-left: clamp(16px, 2vw, 36px) !important;
    padding-right: clamp(16px, 2vw, 36px) !important;
    padding-top: 1.5rem !important;
    padding-bottom: 2rem !important;
    box-sizing: border-box !important;
}

#sp-main-body .container,
#sp-main-body .container-inner,
#sp-main-body .container-fluid,
.body-innerwrapper .container,
.body-innerwrapper .container-fluid,
body.site .container {
    max-width: 100% !important;
    width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

#sp-main-body > .row,
#sp-main-body .container-inner > .row {
    margin-left: 0 !important;
    margin-right: 0 !important;
    width: 100% !important;
}

#sp-main-body #sp-component {
    padding-left: 0 !important;
    padding-right: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
}

#sp-header .container,
#sp-header .container-fluid,
#sp-header .container-inner {
    max-width: 100% !important;
    width: 100% !important;
    padding-left: clamp(16px, 2vw, 36px) !important;
    padding-right: clamp(16px, 2vw, 36px) !important;
}

/* Table links: dark charcoal instead of red */
table.table tbody td a,
table.adminlist tbody td a {
    color: #1e293b !important;
    font-weight: 600 !important;
    text-decoration: none !important;
}

table.table tbody td a:hover,
table.adminlist tbody td a:hover {
    color: var(--stjg-primary) !important;
    text-decoration: underline !important;
}

/* Stacktable killer */
.stacktable.small-only,
table.stacktable.small-only {
    display: none !important;
    visibility: hidden !important;
    height: 0 !important;
}

table.adminlist,
.stacktable.large-only {
    display: table !important;
    width: 100% !important;
}



/* Badges & Column Widths */
.badge-parc {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-weight: 700;
    font-family: 'SFMono-Regular', Menlo, Monaco, Consolas, monospace;
    font-size: 0.82rem;
    color: #dc2626 !important;
    background-color: #fef2f2 !important;
    border: 1px solid #fecaca !important;
    padding: 0.22rem 0.55rem !important;
    border-radius: 6px !important;
    white-space: nowrap !important;
}

.badge-plate {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-weight: 700;
    font-family: 'SFMono-Regular', Menlo, Monaco, Consolas, monospace;
    font-size: 0.82rem;
    color: #92400e !important;
    background-color: #fffbeb !important;
    border: 1px solid #fde68a !important;
    padding: 0.22rem 0.55rem !important;
    border-radius: 6px !important;
    white-space: nowrap !important;
}

.badge-litre {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-weight: 700;
    color: #0369a1 !important;
    background-color: #f0f9ff !important;
    padding: 0.24rem 0.55rem !important;
    border-radius: 6px !important;
    font-size: 0.82rem;
    font-family: 'SFMono-Regular', Menlo, Monaco, Consolas, monospace;
    border: 1px solid #bae6fd !important;
    white-space: nowrap !important;
}

.badge-amount {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-weight: 700;
    color: #15803d !important;
    background-color: #f0fdf4 !important;
    padding: 0.24rem 0.55rem !important;
    border-radius: 6px !important;
    font-size: 0.82rem;
    font-family: 'SFMono-Regular', Menlo, Monaco, Consolas, monospace;
    border: 1px solid #bbf7d0 !important;
    white-space: nowrap !important;
}

.badge-km {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-weight: 600;
    font-family: 'SFMono-Regular', Menlo, Monaco, Consolas, monospace;
    font-size: 0.82rem;
    color: #334155 !important;
    background-color: #f8fafc !important;
    border: 1px solid #cbd5e1 !important;
    padding: 0.2rem 0.5rem !important;
    border-radius: 6px !important;
    white-space: nowrap !important;
}

.badge-taux {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-weight: 700;
    font-family: 'SFMono-Regular', Menlo, Monaco, Consolas, monospace;
    font-size: 0.82rem;
    padding: 0.22rem 0.55rem !important;
    border-radius: 6px !important;
    white-space: nowrap !important;
}

.badge-taux-normal {
    color: #166534 !important;
    background-color: #f0fdf4 !important;
    border: 1px solid #bbf7d0 !important;
}

.badge-taux-high {
    color: #b91c1c !important;
    background-color: #fef2f2 !important;
    border: 1px solid #fecaca !important;
}

.badge-code {
    display: inline-flex;
    align-items: center;
    gap: 3px;
    font-weight: 600;
    font-family: 'SFMono-Regular', Menlo, Monaco, Consolas, monospace;
    font-size: 0.8rem;
    color: #475569 !important;
    background-color: #f1f5f9 !important;
    border: 1px solid #e2e8f0 !important;
    padding: 0.2rem 0.5rem !important;
    border-radius: 6px !important;
    white-space: nowrap !important;
}

.badge-id {
    font-family: 'SFMono-Regular', Menlo, Monaco, Consolas, monospace;
    color: #64748b !important;
    background: #f1f5f9 !important;
    padding: 2px 8px !important;
    border-radius: 4px !important;
    font-size: 0.8rem !important;
    font-weight: 600 !important;
    border: 1px solid #e2e8f0 !important;
    display: inline-block !important;
    white-space: nowrap !important;
}

.badge-entree {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-weight: 700;
    font-size: 0.8rem;
    color: #1d4ed8 !important;
    background-color: #eff6ff !important;
    border: 1px solid #bfdbfe !important;
    padding: 0.22rem 0.55rem !important;
    border-radius: 6px !important;
    white-space: nowrap !important;
}

.badge-sortie {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-weight: 700;
    font-size: 0.8rem;
    color: #6d28d9 !important;
    background-color: #f5f3ff !important;
    border: 1px solid #ddd6fe !important;
    padding: 0.22rem 0.55rem !important;
    border-radius: 6px !important;
    white-space: nowrap !important;
}

.badge-places {
    display: inline-flex;
    align-items: center;
    gap: 4px;
    font-weight: 700;
    font-size: 0.82rem;
    color: #0e7490 !important;
    background-color: #ecfeff !important;
    border: 1px solid #a5f3fc !important;
    padding: 0.22rem 0.55rem !important;
    border-radius: 6px !important;
    white-space: nowrap !important;
}

.col-w-check  { width: 42px !important; min-width: 42px !important; max-width: 42px !important; text-align: center !important; }
.col-w-order  { width: 42px !important; min-width: 42px !important; max-width: 42px !important; text-align: center !important; }
.col-w-status { width: 75px !important; min-width: 75px !important; text-align: center !important; }
.col-w-id     { width: 75px !important; min-width: 75px !important; text-align: center !important; }
.col-w-date   { width: 125px !important; min-width: 115px !important; white-space: nowrap !important; }
.col-w-time   { width: 85px !important; min-width: 80px !important; white-space: nowrap !important; }
.col-w-parc   { width: 115px !important; min-width: 105px !important; white-space: nowrap !important; }
.col-w-plate  { width: 135px !important; min-width: 125px !important; white-space: nowrap !important; }
.col-w-metric { width: 120px !important; min-width: 110px !important; white-space: nowrap !important; text-align: right !important; }
.col-w-badge  { width: 115px !important; min-width: 100px !important; white-space: nowrap !important; text-align: center !important; }
.col-w-user   { width: 130px !important; min-width: 110px !important; white-space: nowrap !important; }
.col-w-photo  { width: 75px !important; min-width: 75px !important; text-align: center !important; }

/* Fix Wide Tables & Prevent Letter Wrapping */
.table-responsive {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
}

table.table,
table.adminlist,
table#carburantList,
table#trajetList,
table#depenseList {
    width: 100% !important;
    min-width: max-content !important;
    table-layout: auto !important;
}

table#carburantList {
    min-width: 3100px !important;
}

table#trajetList {
    min-width: 2100px !important;
}

table#depenseList {
    min-width: 1650px !important;
}

table.table th,
table.table td,
table.adminlist th,
table.adminlist td,
.nowrap,
.text-nowrap {
    white-space: nowrap !important;
    word-break: normal !important;
    overflow-wrap: normal !important;
}

.col-w-check      { width: 46px !important; min-width: 46px !important; max-width: 46px !important; text-align: center !important; }
.col-w-order      { width: 46px !important; min-width: 46px !important; max-width: 46px !important; text-align: center !important; }
.col-w-status     { width: 75px !important; min-width: 75px !important; text-align: center !important; }
.col-w-id         { width: 80px !important; min-width: 80px !important; text-align: center !important; }
.col-w-date       { width: 130px !important; min-width: 130px !important; white-space: nowrap !important; }
.col-w-time       { width: 90px !important; min-width: 90px !important; white-space: nowrap !important; text-align: center !important; }
.col-w-station    { width: 170px !important; min-width: 170px !important; white-space: nowrap !important; }
.col-w-ville      { width: 130px !important; min-width: 130px !important; white-space: nowrap !important; }
.col-w-parc       { width: 115px !important; min-width: 115px !important; white-space: nowrap !important; }
.col-w-plate      { width: 150px !important; min-width: 150px !important; white-space: nowrap !important; }
.col-w-marque     { width: 125px !important; min-width: 125px !important; white-space: nowrap !important; }
.col-w-code       { width: 130px !important; min-width: 130px !important; white-space: nowrap !important; text-align: center !important; }
.col-w-chauffeur  { width: 190px !important; min-width: 190px !important; white-space: nowrap !important; }
.col-w-name       { width: 190px !important; min-width: 190px !important; white-space: nowrap !important; }
.col-w-bon        { width: 100px !important; min-width: 100px !important; white-space: nowrap !important; text-align: center !important; }
.col-w-qte        { width: 130px !important; min-width: 130px !important; white-space: nowrap !important; text-align: right !important; }
.col-w-pu         { width: 110px !important; min-width: 110px !important; white-space: nowrap !important; text-align: right !important; }
.col-w-ht         { width: 125px !important; min-width: 125px !important; white-space: nowrap !important; text-align: right !important; }
.col-w-tva        { width: 85px !important; min-width: 85px !important; white-space: nowrap !important; text-align: right !important; }
.col-w-ttc        { width: 150px !important; min-width: 150px !important; white-space: nowrap !important; text-align: right !important; }
.col-w-km         { width: 135px !important; min-width: 135px !important; white-space: nowrap !important; text-align: right !important; }
.col-w-ancien-km  { width: 155px !important; min-width: 155px !important; white-space: nowrap !important; text-align: right !important; }
.col-w-distance   { width: 155px !important; min-width: 155px !important; white-space: nowrap !important; text-align: right !important; }
.col-w-taux       { width: 155px !important; min-width: 155px !important; white-space: nowrap !important; text-align: center !important; }
.col-w-metric     { width: 130px !important; min-width: 130px !important; white-space: nowrap !important; text-align: right !important; }
.col-w-badge      { width: 125px !important; min-width: 125px !important; white-space: nowrap !important; text-align: center !important; }
.col-w-user       { width: 140px !important; min-width: 140px !important; white-space: nowrap !important; }
.col-w-photo      { width: 85px !important; min-width: 85px !important; text-align: center !important; }
.col-w-remarque   { width: 160px !important; min-width: 160px !important; white-space: nowrap !important; }
