﻿/* =========================================
   TABLES  
   ========================================= */
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@400;500;600&display=swap');

:root {
    --aw-table-header-bg: #A1C9D3; /* Base background for headers */
    --aw-table-header-hover: #D4E9EE; /* Hover color for headers */
    --aw-table-header-text: #1A4E63; /* Teal text for contrast */
    --aw-table-header-border: #1A4E63; /* Border color */
    --aw-table-divider: #E6ECEF;
    --aw-table-hover-bg: #F3F8F9;
    --aw-table-body-text: #3A3A3A;
}

/* Base Table */
.table {
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    background: #FFFFFF;
    border-radius: 0;
    overflow: visible; 
    box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.04);
    font-family: 'Poppins', system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
    font-weight: 500;
    font-size: 14px;
    line-height: 1.25;
    color: var(--aw-table-body-text);
}

/* Header Row (Thick variant) */
:root {
    --aw-table-header-bg: #A1C9D3; /* Base background */
    --aw-table-header-hover: #D4E9EE; /* Hover color */
    --aw-table-header-text: #1A4E63; /* Teal text for contrast */
}



.table thead th {
    background-color: var(--aw-table-header-bg);
    color: var(--aw-table-header-text);
    transition: background-color 0.2s ease-in-out;
    font-weight: 600;
    font-size: 14px;
    text-align: left;
    vertical-align: middle;
    padding: 0.6rem 0.85rem; /* was 1.25rem 1.5rem */
    height: auto;
    letter-spacing: 0.02em;
    border-bottom: 2px solid var(--aw-table-header-border);
    white-space: nowrap;
}

    .table thead th:hover {
        background-color: var(--aw-table-header-hover);
    }

.table thead {
    box-shadow: 0px 2px 4px rgba(0, 0, 0, 0.05);
}

    .table thead tr:first-child th:first-child {
        border-top-left-radius: 0;
    }

    .table thead tr:first-child th:last-child {
        border-top-right-radius: 0;
    }

/* =========================================
   ROW STYLES 
   ========================================= */
:root {
    --aw-row-text: #2f3a3f;
    --aw-row-bg: #ffffff;
    --aw-row-alt: #FAFBFC;
    --aw-row-hover: #F3F8F9;
    --aw-row-divider: #E6ECEF;
    --aw-row-vpad: 1.05rem;
}

/* Base Rows */
.table tbody tr {
    color: var(--aw-row-text);
    background-color: var(--aw-row-bg);
    transition: background-color .18s ease, box-shadow .18s ease;
}

.table tbody td {
    padding: var(--aw-row-vpad) 0.80rem; /* ~52px row height */
    border-bottom: 1px solid var(--aw-row-divider);
    background-color: inherit;
    vertical-align: middle;
    text-align: left;
    font-family: 'Poppins', system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
    font-weight: 400;
    font-size: 14px;
    line-height: 1.25;
    white-space: nowrap;
}

/* Secondary line inside a two-line table cell (main text 14px on line one,
   muted 12px detail on line two) — keeps multi-line cells on one type scale. */
.table tbody td .aw-cell-sub {
    font-size: 12px;
    font-weight: 400;
    line-height: 1.3;
    color: #6c757d;
}

/* Opt a column out of the default nowrap so a width cap can hold (long detail
   text wraps instead of stretching the column). */
.table tbody td.aw-cell-wrap {
    white-space: normal;
    word-break: break-word;
}

/* Wide wrapping detail column (citations, basis notes): holds a generous
   width band so long text wraps into a readable block instead of a ribbon. */
.table tbody td.aw-cell-wrap--wide {
    min-width: 28rem;
    max-width: 44rem;
}

/* Striping */
.table.table-striped tbody tr:nth-of-type(even) {
    background-color: var(--aw-row-alt);
}

/* Hover */
.table.table-hover tbody tr:hover {
    background-color: var(--aw-row-hover);
}

/* Selected / Active */
.table tbody tr.selected,
.table tbody tr.active-row {
    background-color: #E2F1F4 !important;
    box-shadow: inset 0 -1px 0 var(--aw-row-divider), inset 0 1px 0 var(--aw-row-divider);
    font-weight: 600;
}

/* Rounded Bottom Corners */
.table tbody tr:last-child td:first-child {
    border-bottom-left-radius: 0;
}

.table tbody tr:last-child td:last-child {
    border-bottom-right-radius: 0;
}

/* =========================================
   ACTIONS COLUMN — Compact Global Standard
   ========================================= */
.actions-column {
    width: 70px;
    min-width: 70px;
    max-width: 70px;
    text-align: center !important;
    white-space: nowrap;
    padding: 0.25rem !important;
    position: relative; /* fix for dropdown overflow */
    overflow: visible !important; /* Allow dropdown to extend outside */
}

    /* Center the dropdown wrapper */
    .actions-column .dropdown {
        display: inline-flex;
        justify-content: center;
        align-items: center;
    }

.actions-column--button {
    width: 130px;
    min-width: 130px;
    max-width: 150px;
    padding: 0.45rem 0.5rem !important;
}

    .actions-column--button .btn-aw {
        width: 100%;
        justify-content: center;
    }

    /* ensure kebab / button inside fits comfortably */
    .actions-column .aw-kebab,
    .actions-column .btn {
        padding: 4px 6px;
        font-size: 15px;
        border-radius: 8px;
    }

/* optional: allow a touch more width on very small screens */
@media (max-width: 576px) {
    .actions-column {
        width: 80px;
        min-width: 80px;
        max-width: 80px;
    }
}

/* Compact Variant */
.table.table-compact tbody td {
    padding: .55rem 1rem;
    font-size: 13px;
}

/* =========================================
   DATATABLES CONTROLS
   ========================================= */
/* Ensure DataTables wrapper doesn't clip dropdowns */
div.dataTables_wrapper {
    overflow: visible !important;
}

.aw-container-body.table .aw-container-card,
.aw-container-body.table .aw-container-card .aw-container-card-body,
.aw-container-body.table .aw-container-card .aw-container-card-body.aw-container-card-body--table,
.aw-container-body.table .aw-container-card .aw-container-card-body.aw-container-card-body--table .table-responsive,
.aw-container-body.table .aw-container-card .aw-container-card-body.aw-container-card-body--table .table-responsive .dataTables_wrapper {
    overflow: visible !important;
}

/* Dedicated helper class for any card that hosts a table */
.aw-container-card--table,
.aw-container-card--table .aw-container-card-body,
.aw-container-card--table .aw-container-card-body.aw-container-card-body--table,
.aw-container-card--table .aw-container-card-body.aw-container-card-body--table .table-responsive,
.aw-container-card--table .aw-container-card-body.aw-container-card-body--table .table-responsive .dataTables_wrapper {
    overflow: visible !important;
}

/* Optional helper for Bootstrap cards that need the same behavior */
.card.card--table,
.card.card--table .card-body,
.card.card--table .card-body .table-responsive,
.card.card--table .card-body .table-responsive .dataTables_wrapper {
    overflow: visible !important;
}

/* Generic Bootstrap cards that host tables (e.g., Production Revenue Details deductions)
   Must override theme-v2.css .card { overflow: hidden; } */
.card:has(.table-responsive) {
    overflow: visible !important;
}
.card-body:has(.table-responsive),
.card-body .table-responsive,
.card-body .table-responsive .dataTables_wrapper {
    overflow: visible !important;
}

.aw-container-card:has(.aw-container-card-body--table),
.aw-container-card:has(.aw-container-card-body--table) .aw-container-card-body,
.aw-container-card:has(.aw-container-card-body--table) .aw-container-card-body.aw-container-card-body--table,
.aw-container-card:has(.aw-container-card-body--table) .aw-container-card-body.aw-container-card-body--table .table-responsive,
.aw-container-card:has(.aw-container-card-body--table) .aw-container-card-body.aw-container-card-body--table .table-responsive .dataTables_wrapper {
    overflow: visible !important;
}

/* Enhanced (arrow-scroll) tables must keep horizontal scroll even inside plain
   --table cards (e.g. the Manage Archive Active/Archived sub-tab tables). The
   dropdown-overflow rule above forces overflow:visible on .table-responsive, which
   kills horizontal scrolling; adding .aw-scroll-scroller out-specifies it so the
   scroller still scrolls. Vertical dropdowns escape via Popper 'fixed' positioning,
   so clipping overflow-y here is safe. This is what the Statements table achieves
   with an inline !important style; this rule does it for ALL enhanced scrollers. */
.aw-container-card:has(.aw-container-card-body--table) .aw-container-card-body.aw-container-card-body--table .table-responsive.aw-scroll-scroller,
.aw-container-card:has(.aw-container-card-body--table) .aw-container-card-body.aw-container-card-body--table .aw-scroll-enhanced .aw-scroll-scroller {
    overflow-x: auto !important;
    overflow-y: hidden !important;
}

/* Preserve horizontal scrolling for enhanced tables.
   The aw-scroll-enhanced wrapper always needs overflow-x:auto regardless of
   which card variant contains it — the rules above only fire for --table cards. */
.aw-scroll-enhanced .aw-scroll-scroller {
    overflow-x: auto !important;
    overflow-y: visible;
}

.aw-container-body.table .aw-container-card .aw-container-card-body.aw-container-card-body--table .aw-scroll-scroller,
.aw-container-card--table .aw-container-card-body.aw-container-card-body--table .aw-scroll-scroller,
.aw-container-card--table:has(.aw-container-card-body--table) .aw-container-card-body.aw-container-card-body--table .aw-scroll-scroller,
.aw-container-card--table:has(.aw-container-card-body--table) .aw-container-card-body.aw-container-card-body--table .table-responsive.aw-scroll-scroller,
.card.card--table .card-body .aw-scroll-scroller {
    overflow-x: auto !important;
    overflow-y: hidden;
}

div.dataTables_length,
div.dataTables_filter,
div.dataTables_info,
div.dataTables_paginate {
    font-family: 'Poppins', system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
    font-size: 14px;
    color: #4A4A4A;
    padding: 10px 15px;
}

/*    div.dataTables_filter input {
        border: 1px solid var(--aw-table-divider);
        border-radius: 8px;
        padding: 6px 10px;
        background: #fff;
        font-size: 14px;
        font-family: inherit;
    }*/

/* Responsive Wrapper */
.table-responsive {
    border-radius: 8px;
    overflow-x: auto; /* Enable horizontal scrolling on mobile */
    overflow-y: visible; /* Allow dropdowns to extend vertically */
    background: #FFFFFF;
    box-shadow: 0px 1px 2px rgba(0,0,0,0.04);
    padding: 4px 0;
}


/* === Kebab trigger === */
.aw-kebab {
    border: 1px solid #DFE7EA;
    background: #FFFFFF;
    border-radius: 10px;
    padding: 6px 8px;
    line-height: 1;
    color: #6b7a86;
}

    .aw-kebab:hover {
        background: #F3F8F9;
        color: #1A4E63;
    }

/* === Dropdown menu styling === */
.aw-actions {
    --aw-menu-shadow: 0 8px 24px rgba(16,24,40,.08), 0 2px 8px rgba(16,24,40,.06);
    padding: 8px;
    border: 1px solid #E6ECEF;
    border-radius: 12px;
    box-shadow: var(--aw-menu-shadow);
    min-width: 200px;
    z-index: 9999 !important; /* Appear above all content */
}

.aw-action-item {
    display: flex;
    align-items: center;
    gap: 10px;
    padding: 8px 10px;
    border-radius: 10px;
    font-family: 'Poppins', system-ui, -apple-system, 'Segoe UI', Roboto, Arial, sans-serif;
    font-weight: 500;
    font-size: 14px;
    color: #2f3a3f;
}

    .aw-action-item:hover {
        background: #F3F8F9;
        color: #1A4E63;
        text-decoration: none;
    }

    /* icon pill */
    .aw-action-item .icon {
        width: 28px;
        height: 28px;
        border-radius: 8px;
        display: grid;
        place-items: center;
        background: #EEF3F5;
        color: #51626d;
    }

    /* variants */
    .aw-action-item.details .icon {
        background: #EEF3F5;
        color: #51626d;
    }

    .aw-action-item.edit .icon {
        background: rgba(251,176,59,.18); /* gold */
        color: #AD7A15;
    }

    .aw-action-item.delete .icon {
        background: rgba(228,96,77,.14); /* red */
        color: #B74434;
    }

/* =========================================
   Kebab Button (⋯) 
   ========================================= */

.aw-kebab {
    display: inline-flex;
    justify-content: center;
    align-items: center;
    border: none;
    background: #FFF6E9; /* soft beige background */
    border-radius: 10px;
    padding: 6px 9px;
    line-height: 1;
    color: #1A4E63; /* teal icon color for contrast */
    font-size: 16px;
    box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05);
    transition: all 0.2s ease;
}

    .aw-kebab:hover {
        background: #FCEFD9; /* slightly darker warm hover */
        color: #1A4E63;
        transform: translateY(-1px);
        box-shadow: 0 2px 6px rgba(0, 0, 0, 0.08);
    }

    .aw-kebab:active {
        background: #FBE3B9; /* press state */
        box-shadow: inset 0 2px 3px rgba(0,0,0,0.1);
    }

/* =========================================
   LAYOUT SYSTEM TABLE OVERRIDES
   For pages using aw-container layout
   ========================================= */

/* Remove table side borders - card provides the frame */
.aw-container-card .table {
    margin-bottom: 0;
    border-left: none;
    border-right: none;
}

/* Table wrapper inside card */
.aw-container-card .table-responsive {
    margin: 0;
    border-radius: 0px;
}

/* Remove all corner rounding - card handles it */
.aw-container-card .table thead tr:first-child th:first-child,
.aw-container-card .table thead tr:first-child th:last-child,
.aw-container-card .table tbody tr:last-child td:first-child,
.aw-container-card .table tbody tr:last-child td:last-child {
    border-radius: 0 !important;
}

/* Lighter border color for cleaner look */
.aw-container-card .table-bordered th,
.aw-container-card .table-bordered td {
    border-color: #E8EBED !important;
    border-radius: 0;
}

/* Clickable row behavior */
.clickable-row {
    cursor: pointer;
    transition: background-color 0.15s ease;
}

.clickable-row:hover {
    background-color: #F8F9FA;
}

/* =========================================
   FIX: Override jQuery DataTables Default Styling
   Remove the dark bottom border that conflicts with rounded corners-important
   ========================================= */

/* Remove DataTables default bottom border - it breaks rounded corners */
.aw-container-card table.dataTable.no-footer {
    border-bottom: none !important;
}

/* Remove DataTables table borders that conflict with our card borders */
.aw-container-card table.dataTable {
    border-collapse: separate;
    border-spacing: 0;
}

/* =========================================
   HORIZONTAL SCROLL ENHANCEMENTS
   ========================================= */
.aw-scroll-shell {
    position: relative;
    width: 100%;
}

.aw-container-card-body--table .aw-scroll-shell,
.aw-container-card-body--table .aw-scroll-scroller,
.aw-container-card-body--table .aw-scroll-scroller.table-responsive {
    margin-left: 0;
    margin-right: 0;
    padding-left: 0;
    padding-right: 0;
}

.aw-scroll-scroller {
    position: relative;
    overflow-x: auto;
    scroll-behavior: smooth;
}

.aw-scroll-scroller::before,
.aw-scroll-scroller::after {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    width: 36px;
    pointer-events: none;
    opacity: 0;
    transition: opacity 0.2s ease;
    z-index: 1;
}

.aw-scroll-scroller::before {
    left: 0;
    background: linear-gradient(90deg, rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0));
}

.aw-scroll-scroller::after {
    right: 0;
    background: linear-gradient(-90deg, rgba(255, 255, 255, 0.9), rgba(255, 255, 255, 0));
}

.aw-scroll-scroller.aw-scroll-scroller--has-left::before {
    opacity: 1;
}

.aw-scroll-scroller.aw-scroll-scroller--has-right::after {
    opacity: 1;
}

.aw-scroll-arrow,
.aw-scroll-progress {
    display: none;
}

/* Only show arrows/progress when the wrapper is both enhanced AND has actual horizontal overflow.
   This ensures tables that fully fit on load (no overflow) don't show the controls until needed. */
.aw-scroll-enhanced.aw-scroll-has-overflow .aw-scroll-arrow,
.aw-scroll-enhanced.aw-scroll-has-overflow .aw-scroll-progress {
    display: flex;
}

/* We keep the native browser scrollbar as the primary horizontal scroll UI.
   The custom progress bar visually looks like a second scrollbar, so hide it
   to avoid the appearance of two horizontal scroll tracks. */
.aw-scroll-progress {
    display: none !important;
}

.aw-scroll-arrow {
    position: absolute;
    top: 50%;
    transform: translateY(-50%);
    width: 36px;
    height: 36px;
    border-radius: 50%;
    border: none;
    background: rgba(26, 78, 99, 0.85);
    color: #fff;
    align-items: center;
    justify-content: center;
    box-shadow: 0 4px 12px rgba(26, 78, 99, 0.25);
    cursor: pointer;
    z-index: 2;
    transition: opacity 0.2s ease, background 0.2s ease;
}

.aw-scroll-arrow--left {
    left: 4px;
}

.aw-scroll-arrow--right {
    right: 4px;
}

.aw-scroll-arrow:disabled {
    opacity: 0.4;
    cursor: default;
}

.aw-scroll-progress {
    position: relative;
    width: 100%;
    margin-top: 0.5rem;
}

.aw-scroll-progress__track {
    height: 4px;
    width: 100%;
    border-radius: 999px;
    background: rgba(26, 78, 99, 0.15);
    overflow: hidden;
}

.aw-scroll-progress__bar {
    height: 100%;
    width: 0;
    background: linear-gradient(90deg, #1A4E63, #3E8DA8);
    transition: width 0.2s ease;
}

/* =========================================
   TOTALS / SUMMARY ROW (client-rendered tfoot)
   Generic footer treatment for any aw table that appends a totals row
   (Land Analytics, etc.) — mirrors the existing report tfoot pattern.
   ========================================= */
.aw-table-totals td,
.aw-table-totals th {
    background: #F3F8F9;
    font-weight: 600;
    border-top: 2px solid var(--aw-table-divider, #E6ECEF);
}

/* =========================================
   SUPPORT TICKET THREAD — Chat bubbles
   ========================================= */

/* Unread indicator dot shown in the ticket list */
.aw-unread-dot {
    display: inline-block;
    width: 8px;
    height: 8px;
    border-radius: 50%;
    background-color: #058586;
    vertical-align: middle;
    margin-bottom: 1px;
}

/* Base bubble */
.aw-thread-msg {
    padding: 0.85rem 1rem;
    border-radius: 12px;
    font-size: 14px;
    line-height: 1.6;
    word-break: break-word;
}

/* User-sent messages (right-aligned, light teal tint) */
.aw-thread-msg--user {
    background-color: #E8F5F5;
    border: 1px solid #C0DFE0;
}

/* Staff replies (left-aligned, soft blue-grey) */
.aw-thread-msg--staff {
    background-color: #F0F4F8;
    border: 1px solid #D0DAE3;
}

/* Body text within a bubble — preserve line breaks */
.aw-thread-body {
    white-space: pre-wrap;
}

/* AP check register: allocations as fixed sub-columns (2026-09-08). The header carries a
   second line naming them; the cell renders one grid row per allocation so dates, amounts and
   statement links line up down the page. Cleared/Voided gives up the width. */
#apPaymentsRegisterTable thead th { vertical-align: bottom; white-space: normal; }
#apPaymentsRegisterTable th.ap-cleared-th { width: 7rem; }
#apPaymentsRegisterTable td.ap-cleared-cell { white-space: nowrap; font-size: 0.85rem; }
#apPaymentsRegisterTable th.ap-alloc-th { min-width: 22rem; }
.ap-alloc-sub,
.ap-alloc-grid { display: grid; grid-template-columns: 5.5rem 6.5rem 1fr; column-gap: 0.75rem; align-items: baseline; }
.ap-alloc-sub { margin-top: 0.25rem; font-size: 0.75rem; font-weight: 500; color: #6c757d; }
.ap-alloc-grid { row-gap: 0.15rem; font-size: 0.85rem; }
.ap-alloc-sub .num,
.ap-alloc-grid .num { text-align: right; }

/* GL report account-number links (balance sheet, trial balance, income statement), 2026-09-08:
   the default link blue read too light against the white rows; these are the drill-down into
   the account detail and should look like it. tables.css loads from _Layout on every page. */
.bs-account-link, .gl-account-link, .is-account-link,
.bs-account-link:link, .gl-account-link:link, .is-account-link:link,
.bs-account-link:visited, .gl-account-link:visited, .is-account-link:visited {
    color: #1a5fb4; /* a deep link blue: clearly a link, dark enough to read on white */
    font-weight: 600;
    text-decoration: underline !important;
    text-decoration-color: rgba(26, 95, 180, 0.35) !important;
    text-underline-offset: 2px;
}
.bs-account-link:hover, .gl-account-link:hover, .is-account-link:hover,
.bs-account-link:focus, .gl-account-link:focus, .is-account-link:focus {
    color: #0b3d7a;
    text-decoration-color: #0b3d7a !important;
}

/* Printing a report page (2026-09-08): the chrome goes, the content takes the sheet, scrollers
   unclip so a wide ledger prints whole. The GL report views add a landscape @page rule. */
@media print {
    #sidebar, .navbar, footer.footer, .gl-dimensional-filters, .breadcrumb,
    .btn, .btn-aw, button, .aw-scroll-arrow, .aw-report-filter-bar { display: none !important; }
    #content, .main-content { margin-left: 0 !important; width: 100% !important; padding: 0 !important; }
    .container-fluid { padding: 0 !important; }
    .table-responsive, .aw-scroll-scroller { overflow: visible !important; }
    .aw-container-card { box-shadow: none !important; border: none !important; break-inside: avoid; }
    table { font-size: 8.5pt !important; width: 100% !important; }
    table th, table td { padding: 2px 4px !important; white-space: normal !important; }
    a[href]:after { content: none !important; }
    .bs-account-link, .gl-account-link, .is-account-link { text-decoration: none !important; color: #000 !important; }
}
