/* ==========================================================================
   GFM CRM 2026 - Executive Corporate Branding & Universal Master Overrides
   Official Brand Palette:
     - Header & Primary Navy: #0f172a (Deep Slate) / #1e3a8a (Executive Navy)
     - Success / Validated: #047857 (Corporate Emerald) | Soft BG: #ecfdf5 | Border: #a7f3d0
     - Primary / Info: #1e3a8a (Executive Navy)    | Soft BG: #eff6ff | Border: #bfdbfe
     - Warning / Pending: #b45309 (Muted Amber)      | Soft BG: #fffbeb | Border: #fde68a
     - Danger / Rejected: #b91c1c (Dark Red)         | Soft BG: #fef2f2 | Border: #fecaca
     - Neutral / Slate: #475569 (Executive Slate)    | Soft BG: #f1f5f9 | Border: #cbd5e1
   ========================================================================== */

/* --------------------------------------------------------------------------
   1. Universal Layout & Responsiveness (Zero Horizontal Overflow)
   -------------------------------------------------------------------------- */
#wrapper {
    overflow-x: hidden !important;
}

.panel_s, .panel {
    max-width: 100% !important;
    box-sizing: border-box !important;
    border-radius: 6px !important;
    border: 1px solid #e2e8f0 !important;
    box-shadow: 0 1px 3px rgba(15, 23, 42, 0.05) !important;
}

.panel-body {
    max-width: 100% !important;
    box-sizing: border-box !important;
}

/* --------------------------------------------------------------------------
   2. Header & Main Top Bar Branding
   -------------------------------------------------------------------------- */
#header, 
.navbar-default,
#setup-menu-wrapper {
    background-color: #0f172a !important;
    border-bottom: 1px solid #1e293b !important;
}

#header .navbar-nav > li > a,
#header .staff-profile-image,
.top-search-holder input {
    color: #f8fafc !important;
}

#header .navbar-nav > li > a:hover,
#header .navbar-nav > li > a:focus {
    background-color: #1e293b !important;
    color: #ffffff !important;
}

/* Top Search Bar & Quick Create Button */
.top-search-holder input.form-control {
    background-color: #1e293b !important;
    border: 1px solid #334155 !important;
    color: #ffffff !important;
    border-radius: 4px !important;
}

.top-search-holder input.form-control:focus {
    border-color: #3b82f6 !important;
}

.top-search-holder .btn,
.top-search-group .btn,
#header a.btn-primary,
#header a.btn-info,
#header .btn-primary,
#header .btn-info {
    background-color: #1e3a8a !important;
    border-color: #1e3a8a !important;
    color: #ffffff !important;
}

/* --------------------------------------------------------------------------
   4. Universal Table Header, DataTables & Split-View Responsiveness
   -------------------------------------------------------------------------- */
/* --------------------------------------------------------------------------
   4. Universal Table Header, DataTables & Overflow Safety (100% Fit & No Left Clip)
   -------------------------------------------------------------------------- */
.panel-body,
.panel_s .panel-body {
    position: relative !important;
}

.panel-table-full,
.table-responsive,
.dataTables_wrapper {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
}

/* Force override of Perfex core -20px negative margin on panel-table-full */
.panel-table-full,
.panel_s .panel-table-full,
div.panel-table-full,
.content .panel-table-full {
    margin-left: 0 !important;
    margin-right: 0 !important;
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
    position: relative !important;
    left: 0 !important;
}

.table-responsive {
    border: 1px solid #e2e8f0 !important;
    border-radius: 6px !important;
    margin-bottom: 15px !important;
    background: #ffffff !important;
    overflow-x: auto !important;
    width: 100% !important;
}

.dataTables_wrapper {
    margin: 0 !important;
    padding: 0 !important;
}

.panel-table-full > .col-md-12,
.dataTables_wrapper > .row {
    margin-left: 0 !important;
    margin-right: 0 !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

table.dataTable, table.table {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
    table-layout: auto !important;
}

table.dataTable thead th,
table.table thead th,
.table > thead > tr > th,
.table-bordered > thead > tr > th {
    background-color: #0f172a !important;
    color: #ffffff !important;
    font-weight: 700 !important;
    font-size: 11px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.5px !important;
    padding: 10px 12px !important;
    border-bottom: 2px solid #1e293b !important;
    white-space: nowrap !important;
    vertical-align: middle !important;
}

table.dataTable thead th:first-child,
table.table thead th:first-child,
table.dataTable tbody td:first-child,
table.table tbody td:first-child {
    padding-left: 14px !important;
}

table.dataTable thead th:last-child,
table.table thead th:last-child,
table.dataTable tbody td:last-child,
table.table tbody td:last-child {
    padding-right: 14px !important;
}

table.dataTable tbody td,
table.table tbody td,
.table > tbody > tr > td {
    padding: 9px 12px !important;
    font-size: 12px !important;
    vertical-align: middle !important;
    color: #1e293b !important;
    border-color: #f1f5f9 !important;
}

/* --------------------------------------------------------------------------
   Split-View Tables Fix (.small-table-left, .col-md-5 & Narrow Panels)
   -------------------------------------------------------------------------- */
.small-table-left,
.col-md-5,
.col-md-4,
.col-sm-5 {
    overflow-x: auto !important;
    box-sizing: border-box !important;
}

.small-table-left .table-responsive,
.col-md-5 .table-responsive,
.small-table-left .dataTables_wrapper,
.col-md-5 .dataTables_wrapper {
    width: 100% !important;
    max-width: 100% !important;
    overflow-x: auto !important;
    -webkit-overflow-scrolling: touch !important;
    margin: 0 !important;
}

/* Compact padding & responsive typography in split view */
.small-table-left table.dataTable thead th,
.small-table-left table.table thead th,
.col-md-5 table.dataTable thead th,
.col-md-5 table.table thead th {
    padding: 7px 8px !important;
    font-size: 10px !important;
    letter-spacing: 0.3px !important;
    white-space: nowrap !important;
}

.small-table-left table.dataTable tbody td,
.small-table-left table.table tbody td,
.col-md-5 table.dataTable tbody td,
.col-md-5 table.table tbody td {
    padding: 6px 8px !important;
    font-size: 11.5px !important;
    vertical-align: middle !important;
}

/* Ensure Amount / Montant column never breaks into 2 lines */
table.table-invoices tbody td:nth-child(2),
table.table-estimates tbody td:nth-child(2),
table.table-proposals tbody td:nth-child(2),
.small-table-left td.amount-cell,
.small-table-left td.total-cell,
.amount {
    white-space: nowrap !important;
    font-weight: 700 !important;
}

/* Ensure Number / Reference column is never cut off */
table.table-invoices tbody td:first-child,
table.table-estimates tbody td:first-child,
table.table-proposals tbody td:first-child,
.small-table-left td.number-cell {
    white-space: nowrap !important;
    font-weight: 700 !important;
}

/* Truncate long client names cleanly in split view */
.small-table-left table.table tbody td.client-cell,
.small-table-left table.table tbody td:nth-child(4) {
    max-width: 130px !important;
    overflow: hidden !important;
    text-overflow: ellipsis !important;
    white-space: nowrap !important;
}

/* Fix Status badges clipping in split view */
.small-table-left .label,
.col-md-5 .label {
    padding: 3px 6px !important;
    font-size: 10px !important;
    white-space: nowrap !important;
}

/* Table Metadata No-Wrap Rules */
table.dataTable tbody td:first-child,
table.dataTable tbody td.nowrap,
table.table tbody td.nowrap,
table.table tbody td .label,
table.table tbody td .btn {
    white-space: nowrap !important;
}

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

table.table-hover > tbody > tr:hover {
    background-color: #f1f5f9 !important;
}

/* DataTables Pagination Override */
.dataTables_wrapper .dataTables_paginate .paginate_button.current,
.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
    background: #1e3a8a !important;
    color: #ffffff !important;
    border-color: #1e3a8a !important;
    border-radius: 4px !important;
}

/* --------------------------------------------------------------------------
   5. Global Corporate Badges & Status Labels (Strict Anti-AI Neon Palette)
   -------------------------------------------------------------------------- */
.label, .badge {
    font-weight: 700 !important;
    border-radius: 4px !important;
    padding: 4px 9px !important;
    font-size: 11px !important;
    display: inline-block !important;
    white-space: nowrap !important;
    text-shadow: none !important;
}

.label-success, .bg-success, .label-approved, .label-active,
.label-success-light, .status-2, .status-paid {
    background-color: #ecfdf5 !important;
    color: #047857 !important;
    border: 1px solid #a7f3d0 !important;
}

.label-info, .bg-info, .label-primary, .label-primary-light,
.label-info-light, .status-1, .status-sent {
    background-color: #eff6ff !important;
    color: #1e40af !important;
    border: 1px solid #bfdbfe !important;
}

.label-warning, .bg-warning, .label-pending, .label-warning-light,
.status-3, .status-unpaid, .status-partially_paid {
    background-color: #fffbeb !important;
    color: #b45309 !important;
    border: 1px solid #fde68a !important;
}

.label-danger, .bg-danger, .label-rejected, .label-expired,
.label-danger-light, .status-4, .status-cancelled, .status-overdue {
    background-color: #fef2f2 !important;
    color: #b91c1c !important;
    border: 1px solid #fecaca !important;
}

.label-default, .bg-default, .label-muted, .label-sub-default,
.status-draft, .status-5 {
    background-color: #f1f5f9 !important;
    color: #475569 !important;
    border: 1px solid #cbd5e1 !important;
}

/* Media Specific Badges */
.gfm-media-badge {
    display: inline-flex !important;
    align-items: center !important;
    gap: 5px !important;
    padding: 3px 8px !important;
    border-radius: 4px !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    white-space: nowrap !important;
}

.gfm-media-tv {
    background-color: #eff6ff !important;
    color: #1e40af !important;
    border: 1px solid #bfdbfe !important;
}

.gfm-media-radio {
    background-color: #fef3c7 !important;
    color: #92400e !important;
    border: 1px solid #fde68a !important;
}

.gfm-media-press {
    background-color: #f1f5f9 !important;
    color: #334155 !important;
    border: 1px solid #cbd5e1 !important;
}

.gfm-media-digital {
    background-color: #f0fdf4 !important;
    color: #166534 !important;
    border: 1px solid #bbf7d0 !important;
}

.gfm-format-badge {
    background-color: #f8fafc !important;
    color: #0f172a !important;
    border: 1px solid #cbd5e1 !important;
    padding: 2px 7px !important;
    border-radius: 3px !important;
    font-size: 10.5px !important;
    font-weight: 600 !important;
    white-space: nowrap !important;
}

/* --------------------------------------------------------------------------
   6. Global Buttons, Headings & Text Colors
   -------------------------------------------------------------------------- */
.btn {
    font-weight: 600 !important;
    border-radius: 4px !important;
    transition: all 0.15s ease-in-out !important;
}

.btn-success {
    background-color: #047857 !important;
    border-color: #047857 !important;
    color: #ffffff !important;
}

.btn-success:hover, .btn-success:focus, .btn-success:active {
    background-color: #065f46 !important;
    border-color: #065f46 !important;
    color: #ffffff !important;
}

.btn-info, .btn-primary {
    background-color: #1e3a8a !important;
    border-color: #1e3a8a !important;
    color: #ffffff !important;
}

.btn-info:hover, .btn-primary:hover, .btn-info:focus, .btn-primary:focus {
    background-color: #1e293b !important;
    border-color: #1e293b !important;
    color: #ffffff !important;
}

.btn-warning {
    background-color: #b45309 !important;
    border-color: #b45309 !important;
    color: #ffffff !important;
}

.btn-warning:hover, .btn-warning:focus {
    background-color: #92400e !important;
    border-color: #92400e !important;
    color: #ffffff !important;
}

.btn-danger {
    background-color: #b91c1c !important;
    border-color: #b91c1c !important;
    color: #ffffff !important;
}

.btn-danger:hover, .btn-danger:focus {
    background-color: #991b1b !important;
    border-color: #991b1b !important;
    color: #ffffff !important;
}

.btn-default {
    background-color: #ffffff !important;
    border-color: #cbd5e1 !important;
    color: #1e293b !important;
}

.btn-default:hover, .btn-default:focus {
    background-color: #f8fafc !important;
    border-color: #94a3b8 !important;
    color: #0f172a !important;
}

/* Link Colors */
a {
    color: #1e3a8a !important;
    font-weight: 500 !important;
}

a:hover, a:focus {
    color: #0f172a !important;
    text-decoration: underline !important;
}

/* Text Utility Overrides */
.text-success { color: #047857 !important; }
.text-info, .text-primary { color: #1e3a8a !important; }
.text-warning { color: #b45309 !important; }
.text-danger { color: #b91c1c !important; }
.text-muted { color: #64748b !important; }

/* --------------------------------------------------------------------------
   7. Form Controls & Focus States
   -------------------------------------------------------------------------- */
.form-control:focus {
    border-color: #1e3a8a !important;
    box-shadow: 0 0 0 2px rgba(30, 58, 138, 0.15) !important;
}

/* --------------------------------------------------------------------------
   8. Client Portal Global Branding Overrides
   -------------------------------------------------------------------------- */
body.clients {
    background-color: #f8fafc !important;
}

body.clients #header,
body.clients .navbar-custom,
body.clients .client-navbar {
    background-color: #0f172a !important;
    border-bottom: 1px solid #1e293b !important;
}

body.clients .navbar-custom .nav > li > a {
    color: #cbd5e1 !important;
}

body.clients .navbar-custom .nav > li > a:hover,
body.clients .navbar-custom .nav > li.active > a {
    background-color: #1e293b !important;
    color: #ffffff !important;
}

/* --------------------------------------------------------------------------
   9. Mobile & Tablet Adjustments
   -------------------------------------------------------------------------- */
@media (max-width: 991px) {
    .panel-body {
        padding: 12px !important;
    }
    
    table.dataTable thead th,
    table.table thead th {
        font-size: 10px !important;
        padding: 8px 10px !important;
    }
    
    table.dataTable tbody td,
    table.table tbody td {
        font-size: 11.5px !important;
        padding: 8px 10px !important;
    }
}

/* --------------------------------------------------------------------------
   10. Executive Clean Print Engine (@media print)
   Hides navigation, menus, sidebars, buttons, filters, pagination, links & forms.
   Forces clean 100% full-width tables with sharp borders for paper & PDF export.
   -------------------------------------------------------------------------- */
@media print {
    /* Suppress browser default link URL printing: e.g. (https://...) */
    a::after, 
    a[href]::after, 
    a[href*="http"]::after, 
    a[href*="https"]::after {
        content: "" !important;
        display: none !important;
    }

    /* Force landscape orientation & 10mm paper margins */
    @page {
        size: landscape;
        margin: 10mm 10mm 10mm 10mm;
    }

    /* Hide non-printable UI elements completely */
    #header, 
    #side-menu, 
    #menu,
    aside,
    .sidebar,
    .sidebar-user-profile,
    #setup-menu-wrapper,
    #setup-menu,
    .navbar, 
    .navbar-default,
    .asrun-filter-row, 
    .asrun-header-row button, 
    .asrun-header-row a,
    .btn, 
    .btn-group,
    .dataTables_length, 
    .dataTables_filter, 
    .dataTables_info, 
    .dataTables_paginate,
    .pagination,
    form,
    .mobile-menu,
    .breadcrumb,
    .screen-only,
    .no-print,
    #searchAsrun,
    #filterStatus,
    .sub-menu-text {
        display: none !important;
        width: 0 !important;
        height: 0 !important;
        visibility: hidden !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    /* Reset background and layout margins completely */
    html, body, body.admin, body.clients {
        background: #ffffff !important;
        color: #0f172a !important;
        padding: 0 !important;
        margin: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        height: auto !important;
        font-size: 9pt !important;
    }

    /* Eliminate left sidebar offset on #wrapper */
    #wrapper {
        margin: 0 !important;
        margin-left: 0 !important;
        padding: 0 !important;
        left: 0 !important;
        position: static !important;
        width: 100% !important;
        max-width: 100% !important;
        float: none !important;
    }

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

    .panel_s, .panel, .panel-body {
        border: none !important;
        box-shadow: none !important;
        padding: 0 !important;
        margin: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        background: transparent !important;
    }

    /* Full width table layout */
    .table-responsive {
        border: none !important;
        overflow: visible !important;
        width: 100% !important;
        max-width: 100% !important;
        margin: 0 !important;
        padding: 0 !important;
    }

    table, .table, table.dataTable {
        width: 100% !important;
        max-width: 100% !important;
        border-collapse: collapse !important;
        font-size: 8.5pt !important;
        margin-top: 5px !important;
        table-layout: auto !important;
    }

    table th, table td,
    .table > thead > tr > th,
    .table > tbody > tr > td {
        border: 1px solid #cbd5e1 !important;
        padding: 5px 6px !important;
        color: #0f172a !important;
        font-size: 8.5pt !important;
        word-break: normal !important;
    }

    table th, .table > thead > tr > th {
        background-color: #f1f5f9 !important;
        color: #0f172a !important;
        font-weight: 800 !important;
        text-transform: uppercase !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }

    .asrun-header-row {
        display: block !important;
        border-bottom: 2px solid #0f172a !important;
        padding-bottom: 6px !important;
        margin-bottom: 10px !important;
    }

    .asrun-header-row h3 {
        font-size: 16pt !important;
        font-weight: 800 !important;
        color: #0f172a !important;
        margin: 0 !important;
    }

    .asrun-kpi-grid {
        display: flex !important;
        justify-content: space-between !important;
        gap: 8px !important;
        margin-bottom: 12px !important;
    }

    .asrun-kpi-grid > div {
        flex: 1 !important;
        border: 1px solid #cbd5e1 !important;
        padding: 6px !important;
        background: #f8fafc !important;
        -webkit-print-color-adjust: exact;
        print-color-adjust: exact;
    }
}
