/* Expandigo research workspace: discovery.css, workspace-shell.css and globals.css.
 * Ported to the existing Esdra table DOM; operational handlers stay in place. */
@font-face {
    font-family: 'Esdra Inter Tight';
    font-style: normal;
    font-display: swap;
    font-weight: 100 900;
    src: url('../fonts/inter-tight/inter-tight-latin-wght-normal.woff2') format('woff2');
}
body {
    --esdra-data-surface: #fff;
    --esdra-data-subtle: #f4f7f7;
    --esdra-data-line: #dce5e6;
    --esdra-data-ink: #253746;
    --esdra-data-muted: #637781;
    --esdra-data-hover: #f9fcfb;
    --esdra-data-accent: #257f81;
}

body[data-bs-theme="dark"] {
    --esdra-data-surface: #0f172a;
    --esdra-data-subtle: #1e293b;
    --esdra-data-line: #334155;
    --esdra-data-ink: #f8fafc;
    --esdra-data-muted: #94a3b8;
    --esdra-data-hover: #1e293b;
}

:is(.page-body, .inventory-workspace, .plm-workspace) :is(.card, .widget, .panel):has(table),
:is(.page-body, .inventory-workspace, .plm-workspace) .table-wrapper > .card,
:is(.page-body, .inventory-workspace, .plm-workspace) :is(.table-responsive, .card-table) {
    border-radius: 0;
    box-shadow: none;
    background: var(--esdra-data-surface);
    color: var(--esdra-data-ink);
}

:is(.page-body, .inventory-workspace, .plm-workspace) :is(.card, .widget, .panel):has(table),
:is(.page-body, .inventory-workspace, .plm-workspace) .table-wrapper > .card {
    border: 0;
    border-block: 1px solid var(--esdra-data-line);
}

:is(.page-body, .inventory-workspace, .plm-workspace) :is(.card, .widget, .panel):has(table) :is(.card, .widget, .panel):has(table) {
    border: 0;
}

:is(.page-body, .inventory-workspace, .plm-workspace) :is(.card, .widget, .panel):has(table) > :is(.card-header, .widget-title, .panel-heading),
:is(.page-body, .inventory-workspace, .plm-workspace) .table-wrapper > .card > .card-header {
    min-height: 0;
    padding: 16px 20px;
    border-radius: 0;
    border-bottom: 1px solid var(--esdra-data-line);
    background: var(--esdra-data-surface);
}

:is(.page-body, .inventory-workspace, .plm-workspace) :is(.card, .widget, .panel):has(table) > :is(.card-header, .widget-title, .panel-heading) > .d-flex {
    width: 100%;
}

:is(.page-body, .inventory-workspace, .plm-workspace) table {
    --bb-table-bg: var(--esdra-data-surface);
    --bb-table-border-color: var(--esdra-data-line);
    --bb-table-hover-bg: var(--esdra-data-hover);
    --bb-table-striped-bg: var(--esdra-data-surface);
    --tblr-table-bg: var(--esdra-data-surface);
    --tblr-table-border-color: var(--esdra-data-line);
    --tblr-table-hover-bg: var(--esdra-data-hover);
    --tblr-table-striped-bg: var(--esdra-data-surface);
    width: 100%;
    border-collapse: separate;
    border-spacing: 0;
    font-size: 12px;
    color: var(--esdra-data-ink);
}

:is(.page-body, .inventory-workspace, .plm-workspace) table > thead > tr > th {
    height: auto;
    padding: 13px 16px;
    border-bottom: 1px solid #dfe8e8;
    border-inline-end: 1px solid #f0f3f3;
    background: var(--esdra-data-surface);
    color: #596e78;
    font-size: 10px;
    font-weight: 500;
    letter-spacing: .3px;
    text-transform: uppercase;
    vertical-align: middle;
}

:is(.page-body, .inventory-workspace, .plm-workspace) table > tbody > tr > td {
    height: auto;
    padding: 14px 16px;
    border-bottom: 1px solid #edf1f1;
    vertical-align: middle;
}

:is(.page-body, .inventory-workspace, .plm-workspace) table > tbody > tr:hover > td { background: var(--esdra-data-hover); }
:is(.page-body, .inventory-workspace, .plm-workspace) table > tbody > tr:last-child > td { border-bottom: 1px solid #edf1f1; }
:is(.page-body, .inventory-workspace, .plm-workspace) .table-responsive { overflow-x: auto; scrollbar-width: thin; }
:is(.page-body, .inventory-workspace, .plm-workspace) .table-responsive.dropdown-visible { overflow: visible; }
:is(.page-body, .inventory-workspace, .plm-workspace) .table-wrapper .card-header :is(.btn, .form-control) { min-height: 34px; border-radius: 7px; font-size: 12px; }
:is(.page-body, .inventory-workspace, .plm-workspace) .table-wrapper .table-search-input { width: min(210px, 100%); }
:is(.page-body, .inventory-workspace, .plm-workspace) .table-wrapper :is(.card-footer, .dataTables_info, .dataTables_paginate) { font-size: 11px; }
:is(.page-body, .inventory-workspace, .plm-workspace) .table-wrapper .card-footer { min-height: 54px; border-color: var(--esdra-data-line); }

/* A primary table fills the workspace; embedded tables retain their grid. */
:is(.page-body, .inventory-workspace, .plm-workspace):has(> :is(.container, .container-fluid, .container-xl, .container-3xl) > .table-wrapper) {
    background: var(--esdra-data-surface);
    margin-block: 0;
}
:is(.page-body, .inventory-workspace, .plm-workspace) > :is(.container, .container-fluid, .container-xl, .container-3xl):has(> .table-wrapper) { max-width: none; padding: 0; }
:is(.page-body, .inventory-workspace, .plm-workspace) > :is(.container, .container-fluid, .container-xl, .container-3xl) > .table-wrapper > .card:not(.table-configuration-wrap) { margin-bottom: 0; }
:is(.page-body, .inventory-workspace, .plm-workspace) > :is(.container, .container-fluid, .container-xl, .container-3xl):has(> .table-wrapper) > :not(.table-wrapper, .esdra-action-rail) { margin-inline: 24px; }

@media (max-width: 780px) {
    :is(.page-body, .inventory-workspace, .plm-workspace) > :is(.container, .container-fluid, .container-xl, .container-3xl):has(> .table-wrapper) > :not(.table-wrapper, .esdra-action-rail) { margin-inline: 12px; }
}

.esdra-action-rail {
    display: flex;
    flex: 0 1 auto;
    flex-wrap: wrap;
    justify-content: flex-end;
    align-items: center;
    gap: 8px;
    min-width: 0;
    max-width: 48vw;
    margin-inline-start: 16px;
    padding-block: 10px;
    order: 100;
    pointer-events: none;
}
.esdra-action-slot { flex: 0 0 auto; max-width: 100%; }
.esdra-actions-docked {
    position: fixed !important;
    z-index: 1041;
    display: flex !important;
    flex-direction: row !important;
    flex-wrap: wrap !important;
    justify-content: flex-end !important;
    align-items: center !important;
    gap: 8px !important;
    width: max-content !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    background: transparent;
}
.esdra-actions-docked > .btn-list { display: flex; flex-wrap: wrap; justify-content: flex-end; gap: 8px; margin: 0; }
.esdra-actions-docked :is(.btn, button:not(.dropdown-item)) { min-height: 40px; border-radius: 9px; }
.esdra-actions-docked .dropdown-menu { max-width: min(420px, calc(100vw - 32px)); }
.esdra-topbar__inner:has(.esdra-action-rail) .esdra-header-search { min-width: 120px; flex-shrink: 1; }
.esdra-topbar__inner:has(.esdra-action-rail) .esdra-header-title { min-width: 0; flex-shrink: 1; }
.esdra-topbar__inner:has(.esdra-action-rail) .esdra-header-title__text { overflow: hidden; text-overflow: ellipsis; white-space: nowrap; }
.esdra-form-action-card:has(.esdra-actions-docked) { border: 0; box-shadow: none; margin: 0; }
.esdra-form-action-card:has(.esdra-actions-docked) > .card-header { display: none; }
.esdra-form-action-card:has(.esdra-actions-docked) > .card-body { padding: 0; }
.esdra-form-action-card:has(.esdra-actions-docked) ~ #form-actions { display: none !important; }
.esdra-action-rail--content { position: sticky; top: 0; z-index: 1040; order: -1; max-width: none; width: 100%; margin: 0 0 16px; padding: 10px 16px; background: var(--esdra-data-surface); border-bottom: 1px solid var(--esdra-data-line); }

@media (max-width: 767px) {
    :is(.page-body, .inventory-workspace, .plm-workspace) .table-wrapper .card-header > .d-flex > .d-flex { flex-wrap: wrap !important; width: 100%; }
    :is(.page-body, .inventory-workspace, .plm-workspace) .table-search-input { flex: 1 1 100%; }
    .esdra-actions-docked :is(.btn, button:not(.dropdown-item)) { min-height: 44px; white-space: normal; }
}
@media print {
    .esdra-action-rail, .esdra-actions-docked { display: none !important; }
}

/* The header owns the area title; the workspace occupies the remaining canvas. */
.page-body.page-content {
    margin-block: 0 !important;
    padding: 0 !important;
    min-width: 0;
    flex: 1;
}
.page-body.page-content > :is(.container, .container-xl, .container-fluid, .container-3xl),
.plm-workspace > .plm-page-content {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding: 0 !important;
    min-width: 0;
}
body .inventory-workspace,
body .plm-workspace {
    width: 100% !important;
    max-width: none !important;
    margin: 0 !important;
    padding-inline: 0 !important;
    padding-bottom: 0 !important;
}
body .inventory-workspace { padding-top: var(--inventory-topbar-height, 4rem) !important; }
body .plm-workspace { padding-top: var(--plm-topbar-height, 4rem) !important; }
[data-esdra-area-copy], .esdra-kanban .kb-heading { display: none !important; }
.page-body.page-content > :is(.container, .container-xl, .container-fluid, .container-3xl) > :not(.esdra-action-rail) {
    margin-inline: 0 !important;
}
.page-body.page-content > :is(.container, .container-xl, .container-fluid, .container-3xl) > .row,
:is(.inventory-workspace, .plm-page-content) > .row { margin-inline: 0 !important; }
.esdra-kanban .kb-board { padding: 0 !important; }
.esdra-kanban .kb-live:empty { display: none; }
.esdra-kanban .kb-toolbar { justify-content: flex-end; }
.esdra-action-rail--content { margin-bottom: 0; }

/* Exact research surface typography, controls and cells from Expandigo. */
:is(.page-body, .inventory-workspace, .plm-workspace), .esdra-actions-docked {
    font-family: 'Esdra Inter Tight', 'Inter Tight', Arial, sans-serif;
    line-height: 1.55;
    color: var(--esdra-data-ink);
}
.page-wrapper:has(.page-body), .inventory-workspace, .plm-workspace { background: var(--esdra-data-surface); }
:is(.page-body, .inventory-workspace, .plm-workspace) table { line-height: 1.55; text-align: left; }
:is(.page-body, .inventory-workspace, .plm-workspace) table thead { position: sticky; top: 0; z-index: 2; background: var(--esdra-data-surface); }
:is(.page-body, .inventory-workspace, .plm-workspace) table th { white-space: nowrap; }
:is(.page-body, .inventory-workspace, .plm-workspace) table td { min-width: 100px; max-width: 300px; }
:is(.page-body, .inventory-workspace, .plm-workspace) .card-table table tr > :is(th, td):first-child:not(:has(input[type=checkbox])) { padding-left: 16px; }
:is(.page-body, .inventory-workspace, .plm-workspace) .card-table table tr > :is(th, td):last-child:not(:has(input[type=checkbox])) { padding-right: 16px; }
:is(.page-body, .inventory-workspace, .plm-workspace) table :is(th, td):has(input[type=checkbox]) { width: 40px; min-width: 40px; padding: 12px; }
:is(.page-body, .inventory-workspace, .plm-workspace) table input[type=checkbox] { width: 14px; height: 14px; min-height: 0; padding: 0; accent-color: #328a7e; }
:is(.page-body, .inventory-workspace, .plm-workspace) table small { font-size: 10px; color: var(--esdra-data-muted); line-height: 1.5; }
:is(.page-body, .inventory-workspace, .plm-workspace) table td > a:not(.btn) { color: var(--esdra-data-ink); font-weight: 550; }
:is(.page-body, .inventory-workspace, .plm-workspace) table td > a:not(.btn):hover { color: var(--esdra-data-accent); }
:is(.page-body, .inventory-workspace, .plm-workspace) .table-wrapper .card-header .btn,
.esdra-kanban .kb-button {
    gap: 7px; min-height: 33px; padding: 7px 10px; border: 1px solid #dbe4e5;
    border-radius: 7px; background: var(--esdra-data-surface); color: var(--esdra-data-ink); font-size: 12px;
}
:is(.page-body, .inventory-workspace, .plm-workspace) .table-wrapper .card-header .btn:hover,
.esdra-kanban .kb-button:hover { background: #f1f8f6; border-color: #aacfc8; }
.esdra-actions-docked :is(.btn, button:not(.dropdown-item)) { min-height: 36px; padding: 8px 13px; border-radius: 7px; font-size: 13px; }
.esdra-actions-docked .btn-primary, .esdra-kanban .kb-button-primary { background: #253746; border-color: #253746; color: white; }
:is(.page-body, .inventory-workspace, .plm-workspace) .table-wrapper .card-header .form-control { padding: 8px 10px; border-color: #cbd8db; }
:is(.page-body, .inventory-workspace, .plm-workspace) .table-wrapper .card-header .table-search-input input { padding-right: 34px; }
:is(.page-body, .inventory-workspace, .plm-workspace) .table-wrapper .card-header .gap-1 { gap: 9px !important; }
:is(.page-body, .inventory-workspace, .plm-workspace) .table-wrapper .card-footer { padding: 12px 16px; min-height: 0; border-top: 1px solid #dfe8e8; background: var(--esdra-data-surface); }
.product-view-switch, .esdra-kanban .kb-stage { background: #f4f7f7; border-radius: 8px; }
.product-view-switch { padding: 3px !important; gap: 3px !important; border: 0 !important; }
.product-view-switch button { padding: 7px 10px !important; font-size: 12px; color: var(--esdra-data-muted) !important; }
.product-view-switch button.active { background: white; color: #23766c !important; box-shadow: 0 1px 4px #1b403316 !important; }
.esdra-kanban { --kb-ink: var(--esdra-data-ink); --kb-muted: var(--esdra-data-muted); --kb-accent: var(--esdra-data-accent); --kb-line: var(--esdra-data-line); --kb-paper: var(--esdra-data-subtle); }
.esdra-kanban .kb-toolbar { padding: 16px 20px; }
.esdra-research-surface { display: flex; flex-direction: column; height: max(360px, calc(100dvh - var(--esdra-surface-top, 72px))); min-height: 0; margin: 0 !important; overflow: hidden; }
.esdra-research-surface > .card-header { flex-shrink: 0; }
.esdra-research-surface > .card-table { flex: 1; min-height: 0; display: flex; flex-direction: column; }
.esdra-research-surface > .card-table > .table-responsive { flex: 1; min-height: 0; overflow: auto; position: relative; }
.esdra-research-surface:has(.dropdown-visible),
.esdra-research-surface > .card-table > .table-responsive.dropdown-visible { overflow: visible; }
@media(max-width:1200px) {
    :is(.page-body, .inventory-workspace, .plm-workspace) .table-wrapper > .card > .card-header { padding: 12px; }
    :is(.page-body, .inventory-workspace, .plm-workspace) .table-wrapper .table-search-input { width: 170px; }
}
@media(max-width:700px) {
    :is(.page-body, .inventory-workspace, .plm-workspace) .table-wrapper .card-header .btn { font-size: 11px; padding: 6px 8px; }
}
body[data-bs-theme=dark] :is(.page-body, .inventory-workspace, .plm-workspace) table :is(th, td) { border-color: var(--esdra-data-line); color: var(--esdra-data-ink); }
@media print { .esdra-research-surface { height: auto; overflow: visible; } .esdra-research-surface > .card-table > .table-responsive { overflow: visible; } }

/* One continuous work surface, including the view switch and summary/filter panels. */
:is(.page-body, .inventory-workspace, .plm-workspace) :is(.card, .widget, .panel):not(:where(dialog *, .modal *, .offcanvas *)) {
    border-radius: 0 !important;
    box-shadow: none !important;
}
:is(.page-body, .inventory-workspace, .plm-workspace) :is(.card-header, .card-footer):not(:where(dialog *, .modal *, .offcanvas *)) { border-radius: 0 !important; }
:is(.page-body, .inventory-workspace, .plm-workspace) [data-esdra-view-controls] {
    display: inline-flex; flex: 0 0 auto; align-items: center; flex-wrap: wrap;
    gap: 4px !important; margin: 0 !important; padding: 0 !important;
    border: 0 !important; border-radius: 0 !important; background: transparent !important; box-shadow: none !important;
}
:is(.page-body, .inventory-workspace, .plm-workspace) [data-esdra-view-controls] > :is(a, button) {
    display: inline-flex; align-items: center; gap: 7px; min-height: 34px;
    padding: 7px 10px !important; border: 0; border-bottom: 2px solid transparent;
    border-radius: 0 !important; background: transparent !important; box-shadow: none !important;
    color: var(--esdra-data-muted) !important; font-size: 12px; font-weight: 550;
}
:is(.page-body, .inventory-workspace, .plm-workspace) [data-esdra-view-controls] > :is(.active, .is-active) { color: #23766c !important; border-bottom-color: #257f81; }
.esdra-kanban .kb-toolbar { justify-content: flex-start; gap: 12px; min-height: 58px; background: var(--esdra-data-surface); padding: 10px 16px; }
.esdra-kanban .kb-search { margin-left: auto; min-height: 34px; font-size: 12px; padding: 8px 10px; }
.esdra-kanban .kb-board { gap: 0 !important; background: var(--esdra-data-surface); }
.esdra-kanban .kb-column { border-radius: 0; border-width: 0 1px 0 0; }
.esdra-kanban .kb-column-header { border-radius: 0; border-top: 0; }
@media(max-width:767px) {
    .esdra-kanban .kb-toolbar { flex-direction: row; flex-wrap: wrap; }
    .esdra-kanban .kb-search { flex: 1 1 170px; width: auto; min-width: 0; }
    :is(.page-body, .inventory-workspace, .plm-workspace) [data-esdra-view-controls] { max-width: 100%; }
}
