/* ============================================================================
   Smart Select Marketing — Shared Table System
   Drop-in stylesheet. Load AFTER Bootstrap, DataTables, and tokens.css in
   _Layout.cshtml:

     <link rel="stylesheet" href="~/css/tokens.css" />
     <link rel="stylesheet" href="~/css/ssm-tables.css" />

   Additive only — restyles DataTables-generated DOM and Bootstrap `.table`.
   No markup, handler, route, or column changes required. Per-column color
   classes (.ssm-col-date / .ssm-col-due / .ssm-col-money) are applied via
   DataTables `columnDefs.className` (a config change, not page markup).
   ============================================================================ */

:root {
  --ssm-tbl-header:       var(--ssm-canvas, #F6F7F3);
  --ssm-tbl-header-text:  var(--ssm-ink-700, #4A5040);
  --ssm-tbl-row-border:   var(--ssm-border, #DFE5D8);
  --ssm-tbl-ink:          var(--ssm-ink-900, #1F2418);
  --ssm-tbl-ink-soft:     var(--ssm-ink-700, #4A5040);
  --ssm-tbl-due:          #805B19;                         /* Creative Due dates */
  --ssm-tbl-money:        var(--ssm-ink-900, #1F2418);     /* currency figures   */
  --ssm-tbl-audience:     var(--ssm-brand-400, #5B7F42);   /* targeting tags     */
  --ssm-tbl-surface:      #ffffff;
  --ssm-tbl-mono: 'JetBrains Mono', ui-monospace, SFMono-Regular, monospace;
}

/* ---- Wrapper / card ---- */
.dataTables_wrapper,
.dt-container {
  width: 100%;
  max-width: 100%;
  background: var(--ssm-tbl-surface);
  border: 1px solid var(--ssm-border, #DFE5D8);
  border-radius: 14px;
  padding: 0;
  box-shadow: 0 1px 2px rgba(32, 40, 32, .06);
}

/* ---- Header row ---- */
table.table.dataTable > thead > tr > th,
table.table.ssm-data-table > thead > tr > th,
.table > thead > tr > th {
  background: var(--ssm-tbl-header);
  color: var(--ssm-tbl-header-text);
  font-weight: 700;
  font-size: 12px;
  letter-spacing: 0;
  vertical-align: middle;
  border-color: var(--ssm-tbl-row-border);
  border-bottom: 2px solid var(--ssm-border-strong);
  padding: 12px 16px;
  line-height: 1.4;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}
table.dataTable thead th:first-child { border-top-left-radius: 0; }

/* Sorting remains recognizable without a second accent color. */
table.dataTable thead .sorting::after,
table.dataTable thead .sorting::before,
table.dataTable thead .sorting_asc::after,
table.dataTable thead .sorting_desc::after {
  color: var(--ssm-ink-500);
  opacity: 1;
}
table.dataTable thead .sorting_asc::after,
table.dataTable thead .sorting_desc::after { color: var(--ssm-brand-600); }

/* ---- Body ---- */
table.dataTable tbody td,
.table > tbody > tr > td,
.table > tbody > tr > th {
  font-size: 14px;
  color: var(--ssm-tbl-ink);
  border-bottom: 1px solid var(--ssm-tbl-row-border);
  padding: 12px 16px;
  line-height: 1.5;
  vertical-align: middle;
  font-variant-numeric: tabular-nums;
}
table.dataTable tbody tr { background: transparent; }
table.table.dataTable > tbody > tr:nth-of-type(odd) > *,
table.table.dataTable > tbody > tr:nth-of-type(even) > *,
table.table.ssm-data-table > tbody > tr:nth-of-type(odd) > *,
table.table.ssm-data-table > tbody > tr:nth-of-type(even) > * {
  --bs-table-accent-bg: transparent;
  background: var(--ssm-tbl-surface);
}
table.table.dataTable.table-striped > tbody > tr:nth-of-type(odd) > * {
  box-shadow: none;
}
table.table.dataTable > tbody > tr.selected > * {
  background: var(--ssm-tint-100);
  color: var(--ssm-ink-900);
  box-shadow: none;
}
table.table.dataTable > tbody > tr:not(.selected):hover > *,
table.table.ssm-data-table > tbody > tr:not(.selected):hover > *,
.table > tbody > tr:not(.selected):focus-within > * {
  --bs-table-accent-bg: transparent;
  --bs-table-bg-state: var(--ssm-tint-50);
  background: var(--ssm-tint-50);
}

.table :is(td, th) { overflow-wrap: break-word; }
.table :is(td, th).text-nowrap { overflow-wrap: normal; }
.table .ssm-col-money { white-space: nowrap; }
.table .ssm-col-partner { min-width: 10rem; }
.table .ssm-name-cell { min-width: 10rem; max-width: 24rem; }
.table .form-control:not([type="checkbox"]):not([type="radio"]) { min-width: 8rem; }
.table .ssm-col-response {
  min-width: 12rem;
  max-width: 20rem;
  white-space: normal;
}
.table > tfoot > tr > * {
  background: var(--ssm-tbl-header);
  color: var(--ssm-ink-900);
  border-top: 2px solid var(--ssm-border-strong);
  padding: 12px 16px;
  font-weight: 700;
  font-variant-numeric: tabular-nums;
}

/* Keep legacy and current DataTables toolbars outside the scrolling table. */
:is(.dataTables_wrapper, .dt-container) > .row {
  margin-inline: 0;
  align-items: center;
}
.dt-container .dt-layout-row:not(.dt-layout-table) {
  margin: 0;
  padding: 16px;
  gap: 12px;
}
.dt-container .dt-layout-row.dt-layout-table { margin-block: 0; }
:is(.dataTables_wrapper, .dt-container) :is(.dt-layout-cell, .col-sm-12) { min-width: 0; }
:is(.dataTables_wrapper, .dt-container) .dt-buttons {
  display: inline-flex;
  flex-wrap: wrap;
  gap: 8px;
  padding: 12px 16px;
}
.dt-container .dt-layout-cell .dt-buttons { padding: 0; }
.dataTables_length { padding: 12px 16px; }
:is(.dataTables_length, .dt-length, .dt-search, .dataTables_filter) label {
  font-size: 13px;
  font-weight: 600;
  color: var(--ssm-tbl-ink-soft);
}
:is(.dataTables_length, .dt-length) select {
  min-height: 40px;
  width: auto;
  border: 1px solid var(--ssm-border-strong);
  border-radius: var(--ssm-radius-ctrl);
  background-color: var(--ssm-surface);
  color: var(--ssm-ink-900);
  margin-inline: 8px;
  padding: 8px 28px 8px 12px;
}

/* ---- Column color coding (apply via columnDefs.className) ---- */
td.ssm-col-date,
td.ssm-col-due,
td.ssm-col-money { font-family: var(--ssm-tbl-mono); }
td.ssm-col-date  { text-align: center; color: var(--ssm-tbl-ink); }
td.ssm-col-due   { text-align: center; color: var(--ssm-tbl-due); }      /* Creative Due → amber */
td.ssm-col-money { text-align: right;  color: var(--ssm-tbl-money); font-weight: 600; }
td.ssm-col-pdue  { text-align: center; color: #2B5E8C; }                 /* Partner Inputs Due → blue */

/* Editable date inputs inside color-coded columns (Production Manager) */
td.ssm-col-date input[type="date"] { border-color: #D8DACE; }
td.ssm-col-due  input[type="date"] { border-color: #E3C68E; background: #FDF8EE; color: #8A6420; }
td.ssm-col-pdue input[type="date"] { border-color: #B9CEE8; background: #F2F7FC; color: #2B5E8C; }

/* Grouped run header cells (two-tier headers) */
table.table.dataTable > thead > tr > th.ssm-pm-run,
table.table.ssm-data-table > thead > tr > th.ssm-pm-run {
  background: var(--ssm-tint-100, #DDE8D2);
  color: var(--ssm-brand-700);
  letter-spacing: 0;
  text-transform: uppercase;
  -webkit-print-color-adjust: exact;
  print-color-adjust: exact;
}

/* Column color legend chip row */
.ssm-col-legend {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  align-items: center;
  font-size: 12px;
  font-weight: 600;
  color: var(--ssm-tbl-ink-soft);
  padding: 4px 2px 8px;
}
.ssm-col-legend span {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 4px 10px;
  border-radius: 999px;
  border: 1px solid #E2E7DA;
  background: #fff;
}
.ssm-col-legend span::before {
  content: "";
  width: 9px;
  height: 9px;
  border-radius: 50%;
  background: var(--ssm-tbl-ink);
}
.ssm-col-legend .ssm-legend-due::before  { background: var(--ssm-tbl-due); }
.ssm-col-legend .ssm-legend-pdue::before { background: #2B5E8C; }
.ssm-audience-tag { display: block; font-size: 11.5px; line-height: 1.35; color: var(--ssm-tbl-audience); }

/* ---- Search box (.dataTables_filter) ---- */
.dataTables_filter { padding: 12px 16px; }
.dataTables_filter label { font-size: 13px; font-weight: 600; color: var(--ssm-tbl-ink-soft); }
.dataTables_filter input,
.dt-search input {
  border: 1px solid var(--ssm-border-strong, #C9D2BF);
  background: var(--ssm-surface, #FFFFFF);
  border-radius: 8px;
  padding: 8px 12px;
  margin-left: 10px;
  min-width: 240px;
  min-height: 40px;
  max-width: 100%;
  font-size: 14px;
  color: var(--ssm-tbl-ink);
  transition: border-color .15s, box-shadow .15s;
}
.dataTables_filter input:focus,
.dt-search input:focus,
:is(.dataTables_length, .dt-length) select:focus {
  outline: none;
  border-color: var(--ssm-brand-500, #3D5A2A);
  box-shadow: 0 0 0 3px var(--ssm-brand-100, #DDE8D2);
}

/* ---- DataTables SearchBuilder (Custom Search Builder / Add Condition) ---- */
.dtsb-searchBuilder {
  background: var(--ssm-tbl-surface);
  border: 1px solid var(--ssm-border, #DFE5D8);
  border-radius: 12px;
  padding: 14px 16px;
  margin-bottom: 14px;
}
.dtsb-searchBuilder .dtsb-titleRow .dtsb-title {
  font-size: 13px;
  font-weight: 700;
  color: var(--ssm-brand-600, #2E461F);
}
.dtsb-searchBuilder .dtsb-group { background: transparent; border: none; }
.dtsb-add, .dtsb-clearGroup {
  background: var(--ssm-tbl-surface);
  color: var(--ssm-brand-500, #3D5A2A);
  border: 1px solid var(--ssm-tint-200, #C2D4B2);
  border-radius: 8px;
  font-weight: 700;
  font-size: 12.5px;
  padding: 7px 13px;
}
.dtsb-add:hover, .dtsb-clearGroup:hover { background: var(--ssm-tint-50, #F0F4EC); }
.dtsb-data, .dtsb-condition, .dtsb-value select, .dtsb-value input {
  border: 1px solid var(--ssm-border-strong, #C9D2BF);
  border-radius: 7px;
  background: var(--ssm-canvas, #F6F7F3);
  color: var(--ssm-ink-800, #2D3324);
  font-size: 12.5px;
  padding: 6px 10px;
}
.dtsb-searchBuilder .dtsb-logic {
  background: var(--ssm-brand-500, #3D5A2A);
  color: #fff;
  border: none;
  border-radius: 7px;
  font-weight: 700;
}
.dtsb-deleteCondition {
  background: var(--ssm-danger-bg, #F9E9E5);
  color: var(--ssm-danger, #B13B2E);
  border: 1px solid #F0CABF;
  border-radius: 7px;
}

/* ---- Export buttons (CSV / Excel / PDF) ---- */
.dt-buttons .dt-button,
:is(.dataTables_wrapper, .dt-container) .dt-buttons .btn {
  background: var(--ssm-surface);
  color: var(--ssm-ink-700);
  border: 1px solid var(--ssm-border-strong);
  border-radius: var(--ssm-radius-ctrl);
  font-weight: 600;
  font-size: 13px;
  letter-spacing: 0;
  padding: 10px 14px;
  min-height: 40px;
  line-height: 1.4;
  margin: 0;
  box-shadow: none;
}
.dt-buttons .dt-button:hover,
:is(.dataTables_wrapper, .dt-container) .dt-buttons .btn:hover {
  background: var(--ssm-tint-50);
  border-color: var(--ssm-brand-300);
  color: var(--ssm-brand-700);
  box-shadow: none;
}
.dt-buttons :is(.dt-button, .btn):focus-visible,
table.dataTable thead :is(th, td):focus-visible {
  outline: 2px solid var(--ssm-brand-500);
  outline-offset: -2px;
}

/* ---- Pagination / info ---- */
.dataTables_info,
.dt-info { font-size: 13px; color: var(--ssm-ink-500, #646B5A); padding: 12px 16px; }
.dt-layout-cell .dt-info { padding: 0; }
.dataTables_paginate { padding: 12px 16px; }
.dt-paging .pagination,
.dataTables_paginate .pagination { gap: 4px; margin-bottom: 0; }
.dt-paging .page-link,
.dataTables_paginate .page-link {
  min-width: 40px;
  min-height: 40px;
  border: 1px solid var(--ssm-border);
  border-radius: var(--ssm-radius-ctrl);
  background: var(--ssm-surface);
  color: var(--ssm-ink-700);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 8px 12px;
  box-shadow: none;
}
.dt-paging .page-item.active .page-link,
.dataTables_paginate .page-item.active .page-link {
  background: var(--ssm-brand-500);
  color: var(--ssm-surface);
  border-color: var(--ssm-brand-500);
}
:is(.dt-paging, .dataTables_paginate) .page-item.disabled .page-link {
  color: var(--ssm-ink-500);
  background: var(--ssm-canvas);
}
:is(.dt-paging, .dataTables_paginate) .page-link:focus-visible {
  outline: 2px solid var(--ssm-brand-500);
  outline-offset: 2px;
}
.dataTables_wrapper .dataTables_paginate .paginate_button.current,
.dataTables_wrapper .dataTables_paginate .paginate_button.current:hover {
  background: var(--ssm-brand-500, #3D5A2A);
  color: #fff;
  border: none;
  border-radius: 8px;
}
.dataTables_paginate .paginate_button { border-radius: 8px; }

/* Wide tables scroll independently; their filters and headings stay in place. */
.ssm-table-scroll {
  width: 100%;
  max-width: 100%;
  min-width: 0;
}
.ssm-table-scroll.ssm-table-scroll--overflow {
  overflow-x: auto;
  overscroll-behavior-x: contain;
  scrollbar-width: thin;
  scrollbar-color: var(--ssm-border-strong) var(--ssm-canvas);
}
.ssm-table-scroll:focus-visible {
  outline: 2px solid var(--ssm-brand-500);
  outline-offset: -2px;
}
.ssm-table-scroll > table { margin-bottom: 0; }
.ssm-table-scroll-hint {
  margin: 0;
  padding: 8px 16px;
  border-top: 1px solid var(--ssm-border);
  color: var(--ssm-ink-500);
  background: var(--ssm-canvas);
  font-size: 12px;
  line-height: 1.5;
}
.ssm-table-scroll-hint[hidden] { display: none; }

@media (pointer: coarse) {
  :is(.dt-buttons, .dt-paging, .dataTables_paginate) :is(.btn, .dt-button, .page-link),
  :is(.dt-length, .dataTables_length) select,
  :is(.dt-search, .dataTables_filter) input {
    min-height: 44px;
  }
}

@media print {
  .ssm-table-scroll,
  .ssm-table-scroll.ssm-table-scroll--overflow { overflow: visible; max-width: none; }
  .ssm-table-scroll-hint { display: none; }
  :is(.dataTables_wrapper, .dt-container) { border: 0; box-shadow: none; }
}

/* ---- Status pills (Workstream C — awards / menu-generation matrix) ----
   Applied by class swap on existing <a class="btn"> elements:
   bg-success → ssm-status ssm-status--done · bg-danger → ssm-status ssm-status--todo */
.ssm-status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  font-size: 12.5px;
  font-weight: 700;
  line-height: 1.25;
  padding: 6px 13px;
  border-radius: 999px;
  border: 1px solid transparent;
  text-decoration: none;
}
.ssm-status--done {
  color: var(--ssm-success, #2F6F4B);
  background: #E4F0E8;
  border-color: #CBE3D3;
}
.ssm-status--done::before { content: "\2713"; font-weight: 800; }
.ssm-status--todo {
  color: var(--ssm-danger, #B13B2E);
  background: #F9E9E5;
  border-color: #F0CABF;
}
.ssm-status--todo::before { content: "\25CB"; font-weight: 800; }
.ssm-status:hover { filter: brightness(.97); }
.ssm-status:focus-visible {
  outline: 2px solid var(--ssm-brand-500, #3D5A2A);
  outline-offset: 2px;
}

/* ---- Award note rows (merged from custom.css, 2026-07-22) ----
   Later cascade position replaces the old !important on border-top. */
.award-note-row td {
    background-color: #f8f9fa;
    border-top: none;
}

/* ============================================================
   Authenticated grid overrides
   (merged from authenticated-shell.css, 2026-07-22; scoped to
   body.precision-authenticated; excludes .dataTable grids, which the
   shared table system above owns.
   !important survives ONLY where it fights third-party !important:
   Bootstrap/apple .bg-* utilities, thead backgrounds, and the
   :not()-heavy cell rule (group rows, action cells).
   ============================================================ */
.precision-authenticated .table:not(.ssm-data-table):not(.dataTable),
.precision-authenticated .widget-table:not(.ssm-data-table):not(.dataTable) {
    margin-bottom: 0;
    border-color: var(--ssm-auth-table-border);
    background: var(--ssm-surface);
    color: var(--ssm-ink-900);
    font-size: 0.875rem;
    font-variant-numeric: tabular-nums;
}

.precision-authenticated .table:not(.table-profile):not(.table-policy):not(.ssm-data-table):not(.dataTable),
.precision-authenticated .widget-table:not(.ssm-data-table):not(.dataTable) {
    overflow: hidden;
    border-radius: 0.85rem;
    box-shadow: 0 1px 2px rgba(32, 40, 32, 0.04);
}

.precision-authenticated .table:not(.ssm-data-table):not(.dataTable) thead th,
.precision-authenticated .widget-table:not(.ssm-data-table):not(.dataTable) thead th {
    border-color: var(--ssm-auth-table-border) !important;
    border-bottom-color: var(--ssm-auth-table-border-strong) !important;
    background: var(--ssm-tbl-header) !important;
    color: var(--ssm-tbl-header-text) !important;
    font-family: var(--ssm-font-sans);
    font-size: 0.75rem;
    font-weight: 700;
    line-height: 1.4;
    letter-spacing: 0;
    text-shadow: none;
    vertical-align: middle;
}

.precision-authenticated .table:not(.ssm-data-table):not(.dataTable) > :not(caption) > * > * {
    padding: 0.75rem 1rem;
    border-color: var(--ssm-auth-table-border);
    color: var(--ssm-forest-950);
    vertical-align: middle;
}

.precision-authenticated .table-striped:not(.ssm-data-table):not(.dataTable) > tbody > tr:nth-of-type(odd) > *,
.precision-authenticated .table-striped:not(.ssm-data-table):not(.dataTable) > tbody > tr:nth-of-type(even) > * {
    --bs-table-accent-bg: transparent;
}

.precision-authenticated .table:not(.ssm-data-table):not(.dataTable) tbody tr > * {
    background: var(--ssm-auth-table-surface);
    transition: background-color 0.16s ease, box-shadow 0.16s ease;
}

.precision-authenticated .table:not(.ssm-data-table):not(.dataTable) tbody tr:nth-child(even) > * {
    background: var(--ssm-auth-table-surface);
}

.precision-authenticated .table-hover:not(.ssm-data-table):not(.dataTable) tbody tr:hover > *,
.precision-authenticated .table:not(.ssm-data-table):not(.dataTable) tbody tr:hover > * {
    background: var(--ssm-auth-table-hover);
    box-shadow: inset 0 1px 0 rgba(61, 90, 42, 0.06), inset 0 -1px 0 rgba(61, 90, 42, 0.06);
}

.precision-authenticated .table td.bg-success,
.precision-authenticated .table th.bg-success,
.precision-authenticated .table tbody tr.bg-success > * {
    border-color: var(--ssm-auth-status-success-border) !important;
    background: var(--ssm-auth-status-success-cell) !important;
    color: var(--ssm-auth-status-text) !important;
}

.precision-authenticated .table td.bg-danger,
.precision-authenticated .table th.bg-danger,
.precision-authenticated .table tbody tr.bg-danger > * {
    border-color: var(--ssm-auth-status-danger-border) !important;
    background: var(--ssm-auth-status-danger-cell) !important;
    color: var(--ssm-auth-status-text) !important;
}

.precision-authenticated .table td.bg-warning,
.precision-authenticated .table th.bg-warning,
.precision-authenticated .table tbody tr.bg-warning > * {
    border-color: var(--ssm-auth-status-warning-border) !important;
    background: var(--ssm-auth-status-warning-cell) !important;
    color: var(--ssm-auth-status-text) !important;
}

.precision-authenticated .table td.bg-primary,
.precision-authenticated .table th.bg-primary,
.precision-authenticated .table td.bg-info,
.precision-authenticated .table th.bg-info,
.precision-authenticated .table tbody tr.bg-primary > *,
.precision-authenticated .table tbody tr.bg-info > * {
    border-color: var(--ssm-auth-status-primary-border) !important;
    background: var(--ssm-auth-status-primary-cell) !important;
    color: var(--ssm-surface) !important;
}

.precision-authenticated .table td.bg-secondary,
.precision-authenticated .table th.bg-secondary,
.precision-authenticated .table tbody tr.bg-secondary > * {
    border-color: var(--ssm-auth-status-secondary-border) !important;
    background: var(--ssm-auth-status-secondary-cell) !important;
    color: var(--ssm-surface) !important;
}

.precision-authenticated .table td.bg-dark,
.precision-authenticated .table th.bg-dark,
.precision-authenticated .table td.bg-black,
.precision-authenticated .table th.bg-black,
.precision-authenticated .table tbody tr.bg-dark > *,
.precision-authenticated .table tbody tr.bg-black > * {
    border-color: var(--ssm-auth-status-primary-border) !important;
    background:
        linear-gradient(180deg, rgba(58, 76, 56, 0.98), rgba(35, 48, 35, 0.98)),
        var(--ssm-brand-700) !important;
    color: var(--ssm-surface) !important;
}

.precision-authenticated .table td.bg-light,
.precision-authenticated .table th.bg-light,
.precision-authenticated .table tbody tr.bg-light > * {
    border-color: var(--ssm-auth-table-border-strong) !important;
    background: var(--ssm-auth-table-surface-alt) !important;
    color: var(--ssm-forest-950) !important;
}

.precision-authenticated .table tbody tr:hover > td.bg-success,
.precision-authenticated .table tbody tr:hover > th.bg-success,
.precision-authenticated .table tbody tr.bg-success:hover > * {
    background: var(--ssm-auth-status-success-cell-hover) !important;
}

.precision-authenticated .table tbody tr:hover > td.bg-danger,
.precision-authenticated .table tbody tr:hover > th.bg-danger,
.precision-authenticated .table tbody tr.bg-danger:hover > * {
    background: var(--ssm-auth-status-danger-cell-hover) !important;
}

.precision-authenticated .table tbody tr:hover > td.bg-warning,
.precision-authenticated .table tbody tr:hover > th.bg-warning,
.precision-authenticated .table tbody tr.bg-warning:hover > * {
    background: var(--ssm-auth-status-warning-cell-hover) !important;
}

.precision-authenticated .table tbody tr:hover > td.bg-primary,
.precision-authenticated .table tbody tr:hover > th.bg-primary,
.precision-authenticated .table tbody tr:hover > td.bg-info,
.precision-authenticated .table tbody tr:hover > th.bg-info,
.precision-authenticated .table tbody tr.bg-primary:hover > *,
.precision-authenticated .table tbody tr.bg-info:hover > * {
    background: var(--ssm-auth-status-primary-cell-hover) !important;
}

.precision-authenticated .table tbody tr:hover > td.bg-secondary,
.precision-authenticated .table tbody tr:hover > th.bg-secondary,
.precision-authenticated .table tbody tr.bg-secondary:hover > * {
    background: var(--ssm-auth-status-secondary-cell-hover) !important;
}

.precision-authenticated .table tbody tr:hover > td.bg-dark,
.precision-authenticated .table tbody tr:hover > th.bg-dark,
.precision-authenticated .table tbody tr:hover > td.bg-black,
.precision-authenticated .table tbody tr:hover > th.bg-black,
.precision-authenticated .table tbody tr.bg-dark:hover > *,
.precision-authenticated .table tbody tr.bg-black:hover > * {
    background:
        linear-gradient(180deg, rgba(66, 88, 63, 1), rgba(31, 48, 20, 1)),
        var(--ssm-brand-800) !important;
}

.precision-authenticated .table .ssm-name-cell {
    color: var(--ssm-forest-950);
    font-weight: 700;
    letter-spacing: 0;
}

.precision-authenticated .table .ssm-name-cell a {
    color: inherit;
    font-weight: 700;
    text-decoration-color: rgba(31, 48, 20, 0.35);
}

.precision-authenticated .table .ssm-status-cell {
    font-weight: 600;
    line-height: 1.4;
    text-align: center;
}

.precision-authenticated .table .ssm-table-group-cell,
.precision-authenticated .table tbody tr.ssm-table-group-row > * {
    border-color: var(--ssm-auth-status-primary-border) !important;
    background:
        linear-gradient(180deg, rgba(58, 76, 56, 0.98), rgba(35, 48, 35, 0.98)),
        var(--ssm-brand-700) !important;
    color: var(--ssm-surface) !important;
    font-weight: 900;
    letter-spacing: 0;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

/* Level-2 subtotal rows (Snapshot) — soft moss tint replacing bg-secondary */
.precision-authenticated .table tbody tr.ssm-table-group-row--l2 > * {
    background: var(--ssm-tint-100, #DDE8D2) !important;
    color: var(--ssm-ink-900, #1F2418) !important;
    border-color: #C9D2BF !important;
    font-weight: 800;
    -webkit-print-color-adjust: exact;
    print-color-adjust: exact;
}

/* Numeric figure spans used by report tables (footerCallback hooks .sum/.Int/.Value) */
.precision-authenticated .table td span.Value {
    color: var(--ssm-ink-900, #1F2418);
    font-variant-numeric: tabular-nums;
    font-weight: 600;
}

.precision-authenticated .table td span.Int {
    font-variant-numeric: tabular-nums;
}

.precision-authenticated .table .ssm-icon-action-cell {
    width: 1%;
    min-width: 2.75rem;
    text-align: center;
    white-space: nowrap;
}

.precision-authenticated .table .ssm-icon-action-cell > .btn,
.precision-authenticated .table .ssm-icon-action-cell > i {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.35rem;
    min-height: 2.35rem;
}

.precision-authenticated .table .ssm-icon-action-cell > i {
    cursor: pointer;
}

.precision-authenticated .table .ssm-action-cell {
    padding: 0.5rem;
    text-align: center;
}

.precision-authenticated .table .ssm-action-cell:has(> .btn.bg-success),
.precision-authenticated .table .ssm-action-cell:has(> .btn-success),
.precision-authenticated .table .ssm-action-cell:has(> .btn-outline-success) {
    background: var(--ssm-auth-status-success-cell) !important;
}

.precision-authenticated .table .ssm-action-cell:has(> .btn.bg-danger),
.precision-authenticated .table .ssm-action-cell:has(> .btn-danger),
.precision-authenticated .table .ssm-action-cell:has(> .btn-outline-danger) {
    background: var(--ssm-auth-status-danger-cell) !important;
}

.precision-authenticated .table .ssm-action-cell:has(> .btn.bg-warning),
.precision-authenticated .table .ssm-action-cell:has(> .btn-warning),
.precision-authenticated .table .ssm-action-cell:has(> .btn-outline-warning) {
    background: var(--ssm-auth-status-warning-cell) !important;
}

.precision-authenticated .table tbody tr:hover > .ssm-action-cell:has(> .btn.bg-success),
.precision-authenticated .table tbody tr:hover > .ssm-action-cell:has(> .btn-success),
.precision-authenticated .table tbody tr:hover > .ssm-action-cell:has(> .btn-outline-success) {
    background: var(--ssm-auth-status-success-cell-hover) !important;
}

.precision-authenticated .table tbody tr:hover > .ssm-action-cell:has(> .btn.bg-danger),
.precision-authenticated .table tbody tr:hover > .ssm-action-cell:has(> .btn-danger),
.precision-authenticated .table tbody tr:hover > .ssm-action-cell:has(> .btn-outline-danger) {
    background: var(--ssm-auth-status-danger-cell-hover) !important;
}

.precision-authenticated .table tbody tr:hover > .ssm-action-cell:has(> .btn.bg-warning),
.precision-authenticated .table tbody tr:hover > .ssm-action-cell:has(> .btn-warning),
.precision-authenticated .table tbody tr:hover > .ssm-action-cell:has(> .btn-outline-warning) {
    background: var(--ssm-auth-status-warning-cell-hover) !important;
}

.precision-authenticated .table .ssm-action-cell > .btn:not(.ssm-status),
.precision-authenticated .table .ssm-action-cell > .dropdown,
.precision-authenticated .table .ssm-action-cell > form {
    display: flex !important;
    width: 100%;
    height: auto;
    margin: 0;
}

.precision-authenticated .table .ssm-action-cell > .btn:not(.ssm-status),
.precision-authenticated .table .ssm-action-cell > .dropdown > .btn,
.precision-authenticated .table .ssm-action-cell > form > .btn {
    width: 100%;
    height: auto;
    min-height: 2.6rem;
    border-radius: var(--ssm-radius-ctrl);
    box-shadow: none;
}
.precision-authenticated .table .ssm-action-cell > .btn:not(.btn-link):not(.btn-close):not(.ssm-status),
.precision-authenticated .table .ssm-action-cell > .dropdown > .btn:not(.btn-link):not(.btn-close),
.precision-authenticated .table .ssm-action-cell > form > .btn:not(.btn-link):not(.btn-close) {
    border-radius: var(--ssm-radius-ctrl);
    box-shadow: none;
    transform: none;
}

.precision-authenticated .table .ssm-action-cell > .btn:not(.btn-link):not(.btn-close):not(.ssm-status):hover,
.precision-authenticated .table .ssm-action-cell > .dropdown > .btn:not(.btn-link):not(.btn-close):hover,
.precision-authenticated .table .ssm-action-cell > form > .btn:not(.btn-link):not(.btn-close):hover {
    box-shadow: inset 0 0 0 999px rgba(255, 255, 255, 0.08);
    transform: none;
}
.precision-authenticated .bg-dark,
.precision-authenticated .bg-black {
    background:
        linear-gradient(180deg, rgba(58, 76, 56, 0.98), rgba(35, 48, 35, 0.98)),
        var(--ssm-brand-700) !important;
    color: var(--ssm-surface) !important;
}
/* Tables placed inside themed .bg-dark/.bg-black wrappers (e.g. Production
   Summary) have no bg-white of their own — give them a readable surface so
   the forest gradient doesn't show through their transparent cells. */
.precision-authenticated .bg-dark .table,
.precision-authenticated .bg-black .table {
    background-color: var(--ssm-surface);
}

/* Keep both generations of DataTables controls usable in a narrow workspace. */
@media (max-width: 767.98px) {
    :is(.dataTables_wrapper, .dt-container) {
        min-width: 0;
        max-width: 100%;
    }

    :is(.dataTables_wrapper, .dt-container) > .row {
        margin-inline: 0;
    }

    :is(.dataTables_wrapper, .dt-container) > .row > div {
        min-width: 0;
    }

    :is(.dataTables_wrapper .dataTables_filter, .dt-container .dt-search) {
        float: none;
        width: 100%;
        min-width: 0;
        padding: 0.5rem;
        text-align: left;
        white-space: normal;
    }

    .dataTables_wrapper .dataTables_filter label,
    .dt-container .dt-search {
        display: grid;
        gap: 0.35rem;
    }

    .dataTables_wrapper .dataTables_filter label {
        width: 100%;
    }

    :is(.dataTables_wrapper .dataTables_filter, .dt-container .dt-search) input {
        display: block;
        width: 100%;
        min-width: 0;
        max-width: 100%;
        margin-inline: 0;
    }

    .dataTables_wrapper .dataTables_length label,
    .dt-container .dt-length {
        display: flex;
        align-items: center;
        flex-wrap: wrap;
        gap: 0.5rem;
        padding: 0.5rem;
        white-space: normal;
    }

    :is(.dataTables_wrapper, .dt-container) .dt-buttons {
        display: flex;
        flex-wrap: wrap;
        gap: 0.35rem;
        width: 100%;
        max-width: 100%;
        padding: 0.5rem;
        text-align: left;
    }

    :is(.dataTables_wrapper, .dt-container) .dt-buttons :is(.dt-button, .btn) {
        min-width: 0;
        max-width: 100%;
        white-space: normal;
        line-height: 1.3;
        text-overflow: clip;
    }

    :is(.dataTables_wrapper .dataTables_info, .dt-container .dt-info) {
        padding: 0.5rem;
        white-space: normal;
    }

    :is(.dataTables_wrapper .dataTables_paginate, .dt-container .dt-paging) {
        max-width: 100%;
        padding: 0.5rem;
        white-space: normal;
    }

    :is(.dataTables_wrapper .dataTables_paginate, .dt-container .dt-paging) .pagination {
        flex-wrap: wrap;
        gap: 0.25rem;
    }

    .dt-container .dt-layout-row:not(.dt-layout-table) {
        display: flex;
        flex-wrap: wrap;
        gap: 12px;
        padding: 12px;
    }

    .dt-container .dt-layout-row:not(.dt-layout-table) .dt-layout-cell {
        width: 100%;
        text-align: left;
    }
}
