/**
 * elementORG GravityView styles
 *
 * Contains:
 * - Legacy GravityView styling
 * - GravityView search widgets
 * - GravityView DataTables styling
 * - GravityView Vantage theme overrides
 *
 * Keep site-specific colours in the shared elementORG CSS custom properties.
 */


/* ==========================================================================
   Legacy GravityView tables and DataTables
   ========================================================================== */

.gv-datatables-container table.dataTable tbody th,
.gv-datatables-container table.dataTable tbody td {
    font-size: 0.9em;
    padding: 4px 5px !important;
    vertical-align: top;
}

.gv-datatables-container .dataTables_wrapper .dataTables_filter input,
.gv-datatables-container .dataTables_filter select {
    padding: 5px;
}

.gv-datatables-container table.dataTable thead th,
.gv-datatables-container table.dataTable thead td,
.gv-datatables-container table.dataTable tfoot th,
.gv-datatables-container table.dataTable tfoot td {
    vertical-align: top;
    padding: 1px !important;
    text-transform: none !important;
}

.gv-table-view tbody,
.gv-table-view th,
.gv-table-view td {
    vertical-align: top;
}

.gv-container .alt,
.gv-container .even {
    background-color: var(--fieldBackgroundColour);
    border: 1px solid var(--fieldBorderColour);
}


/* ==========================================================================
   Legacy GravityView row and section styling
   ========================================================================== */

.gv-container .alt,
.gv-container .even {
    background-color: #ffffff;
    border: 1px solid var(--fieldBorderColour);
}

.gv-section {
    border-top: 2px solid var(--gvSectionColour);
}

.gv-section .gv-field-label {
    color: var(--gvSectionColour);
    font-size: 1.2em;
}


/* ==========================================================================
   GravityView search widgets
   ========================================================================== */

.gv-widget-search .gv-search-box.gv-search-field-search_all {
    flex-grow: 1;
}

.gv-widget-search .gv-search-box.gv-search-date {
    display: block;
}

.gv-widget-search .gv-search-box.gv-search-date input {
    flex: 0 0 auto;
}

a.button.gv-search-clear {
    margin-left: 20px;
}

.gv-search-box input[type="text"],
.gv-search-box input[type="search"] {
    padding: 8px;
}

.gv-widget-search select {
    padding: 7px;
}


/* ==========================================================================
   GravityView search buttons
   ========================================================================== */

.gv-widget-search .gv-search-box.gv-search-box-submit .gv-search-button,
.gv-themed .gv-widget-search.gv-widget-search .gv-search-box-submit .gv-search-button {
    background: var(--buttonBackgroundColour);
    border: 2px solid var(--buttonBorderColour);
    color: var(--buttonTextColour);
    border-radius: 5px;
    cursor: pointer;
}

.gv-widget-search .gv-search-box.gv-search-box-submit .gv-search-button:hover,
.gv-themed .gv-widget-search.gv-widget-search .gv-search-box-submit .gv-search-button:hover {
    background: var(--buttonHoverBackgroundColour);
    border: 2px solid var(--buttonHoverBorderColour);
    color: var(--buttonHoverTextColour);
}


/* ==========================================================================
   GravityView file upload fields
   ========================================================================== */

ul.gv-field-file-uploads {
    list-style-type: none;
    padding-left: 0;
}

ul.gv-field-file-uploads li {
    padding-bottom: 5px;
}


/* ==========================================================================
   GravityView Vantage design tokens
   ========================================================================== */

.gv-themed {
    /* Brand */
    --gv-color-primary: var(--primaryColour);
    --gv-color-primary-hover: var(--primaryColourLight);
    --gv-color-link: var(--primaryColour);
    --gv-color-link-hover: var(--primaryColourLight);
    --gv-color-link-visited: var(--primaryColour);

    /* Buttons */
    --gv-button-bg: var(--buttonBackgroundColour);
    --gv-button-bg-hover: var(--buttonHoverBackgroundColour);
    --gv-button-color: var(--buttonTextColour);

    /* Typography */
    --gv-font-size-base: 12px;
    --gv-font-size-sm: 14px;
    --gv-field-label-font-size: 12px;
    --gv-field-label-font-weight: 700;
    --gv-line-height-normal: 1.5;

    /* Table spacing */
    --gv-table-cell-padding-block: 10px;
    --gv-table-cell-padding-inline: 14px;
}

:where(.gv-themed) :is(a:link,a:visited) {
    text-decoration: none;
}


/* ==========================================================================
   GravityView Vantage DataTables
   ========================================================================== */

.gv-themed table.gv-datatables.dataTable tbody th,
.gv-themed table.gv-datatables.dataTable tbody td {
    padding-block: var(--gv-table-cell-padding-block) !important;
    padding-inline: var(--gv-table-cell-padding-inline) !important;
}

.gv-themed table.gv-datatables.dataTable thead th,
.gv-themed table.gv-datatables.dataTable thead td,
.gv-themed table.gv-datatables.dataTable tfoot th,
.gv-themed table.gv-datatables.dataTable tfoot td {
    padding-block: var(--gv-table-cell-padding-block) !important;
    padding-inline: var(--gv-table-cell-padding-inline) !important;
}


/* ==========================================================================
   GravityView Vantage responsive DataTables
   ========================================================================== */

/* Leave room for the responsive expand/collapse icon. */
.gv-themed table.gv-datatables.dataTable.dtr-inline tbody tr td.dtr-control {
    padding-inline-start: 36px !important;
}

/* Vertically centre the responsive expand/collapse icon. */
.gv-themed table.gv-datatables.dataTable.dtr-inline tbody tr td.dtr-control::before {
    top: 50%;
    left: 10px;
    transform: translateY(-50%);
}

/* Compact expanded responsive details. */
.gv-themed table.gv-datatables.dataTable tbody tr.child td {
    padding: 6px 10px !important;
}

.gv-themed table.gv-datatables.dataTable tbody tr.child ul[data-dtr-index] li {
    grid-template-columns: 25% 1fr;
    gap: 6px;
    padding-block: 4px;
}