/* Final UI contract: source modules keep behavior; shared tokens own presentation. */
/* Table headers share a centered label lane; filter controls cannot displace it. */
body.dc-subheader-ui .dc-data-area thead th { text-align:center!important; vertical-align:middle; }
body.dc-subheader-ui .dc-data-area :is(.dc-result-column-controls,.dc-column-controls) {
  display:grid; grid-template-columns:24px minmax(0,1fr) 24px; gap:4px;
  align-items:center; width:100%; min-width:0; position:relative;
}
body.dc-subheader-ui .dc-data-area :is(.dc-result-sort,.table-header-content) {
  grid-column:2; grid-row:1; width:100%; min-width:0;
  text-align:center!important; justify-content:center; justify-self:stretch;
}
body.dc-subheader-ui .dc-data-area :is(.dc-result-column-controls,.dc-column-controls) > .excel-filter-icon {
  grid-column:3; grid-row:1; justify-self:center;
}
body.dc-subheader-ui .dc-data-area .dc-column-controls .table-sort-indicator {
  position:absolute!important; left:4px; top:50%; transform:translateY(-50%)!important;
}
body.dc-subheader-ui #panel-ads .dc-column-controls {
  display:grid; grid-template-columns:minmax(0,1fr) 24px;
  width:100%; max-width:100%; margin:0; gap:4px;
}
/* ADS header order is label, sort arrow, filter. Reserve both control lanes
   in numeric cells too so the label and data keep the same right edge. */
body.dc-subheader-ui #panel-ads table.ads-compact-table { min-width:1840px!important; }
body.dc-subheader-ui #panel-ads .ads-compact-table thead th { padding-inline:10px!important; }
body.dc-subheader-ui #panel-ads .ads-compact-table th:first-child { width:120px!important; }
body.dc-subheader-ui #panel-ads .ads-compact-table th:nth-child(9) { width:176px!important; }
body.dc-subheader-ui #panel-ads .ads-compact-table th .table-header-content {
  grid-column:1; width:auto; text-align:left!important;
  overflow:visible; text-overflow:clip; justify-self:stretch;
}
body.dc-subheader-ui #panel-ads .ads-compact-table th .excel-filter-icon {
  grid-column:3; grid-row:1;
}
body.dc-subheader-ui #panel-ads .ads-compact-table th .table-sort-indicator {
  grid-column:2; grid-row:1; position:static!important;
  inset:auto!important; transform:none!important; margin:0;
}
body.dc-subheader-ui #panel-ads .ads-compact-table th:first-child .dc-column-controls {
  grid-template-columns:max-content 24px; width:max-content; margin-inline:auto;
}
body.dc-subheader-ui #panel-ads .ads-compact-table th:first-child .excel-filter-icon {
  grid-column:2;
}
body.dc-subheader-ui #panel-ads .ads-compact-table th:nth-child(2) .dc-column-controls {
  grid-template-columns:max-content 12px 24px; width:max-content;
}
body.dc-subheader-ui #panel-ads .ads-compact-table th:nth-child(n+3):nth-child(-n+9) .dc-column-controls {
  grid-template-columns:minmax(max-content,1fr) 12px 24px;
}
body.dc-subheader-ui #panel-ads .ads-compact-table th:nth-child(n+3):nth-child(-n+9) .table-header-content {
  grid-column:1; text-align:right!important;
}
body.dc-subheader-ui #panel-ads .ads-compact-table tbody td:nth-child(n+3):nth-child(-n+9) {
  padding-right:54px!important;
}
body.dc-subheader-ui #panel-ads .ads-compact-table th[data-filtered=true] .table-header-content::after {
  content:none; /* The filter button already exposes its active state. */
}
body.dc-subheader-ui .dc-data-area .account-limit-table thead th { text-align:left!important; }
/* The pinned column is below the header; its corner cell is above both layers. */
body.dc-subheader-ui #nameFilterResult .name-result-wrapper { isolation:isolate; }
body.dc-subheader-ui #nameFilterResult .name-result-table.dc-filter-table { min-width:1320px; }
body.dc-subheader-ui #nameFilterResult .dc-pin-column tbody td:first-child,
body.dc-subheader-ui #nameFilterResult .dc-pin-column tfoot td:first-child { z-index:1; }
body.dc-subheader-ui #nameFilterResult .dc-pin-column thead th:first-child { z-index:5; }
/* Long warning details stay in their own bounded area without collapsing the table. */
body.dc-subheader-ui #nameFilterResult .name-pagination-warning {
  flex:0 0 auto; max-height:min(25dvh,180px); overflow:auto; box-sizing:border-box;
  margin:0; padding:4px 12px; border-bottom:1px solid var(--dc-border);
  background:var(--dc-soft); color:var(--dc-text); font-size:13px;
}
body.dc-subheader-ui #nameFilterResult .name-pagination-warning summary {
  display:flex; min-height:28px; white-space:normal; cursor:pointer; line-height:1.4;
}
body.dc-subheader-ui #nameFilterResult .name-pagination-warning ul {
  margin:6px 0; padding-left:20px; overflow-wrap:anywhere; line-height:1.5;
}
@media(max-width:720px) {
  body.dc-subheader-ui #nameFilterResult .dc-filter-table :is(th,td):first-child { width:180px; }
}
body {
  --metric-spend:#fca5a5; --metric-data:#60a5fa; --metric-data0:#f9a8d4;
  --metric-rdt:#fbbf24; --metric-bk:#d8b4fe; --metric-ci:#86efac;
}
body.light-theme {
  --metric-spend:#b91c1c; --metric-data:#075caa; --metric-data0:#be185d;
  --metric-rdt:#9a4d00; --metric-bk:#7e22ce; --metric-ci:#166534;
}
body.dc-subheader-ui .date-budget-cell { color:var(--metric-spend)!important; }
body.dc-subheader-ui #dateResultTable [data-result-total] { background:var(--bg-input)!important; color:var(--text-table); }
body.dc-subheader-ui #dcSubHeader { height:auto; min-height:40px; flex:0 0 auto; }
body.dc-subheader-ui #dcSubHeader > .dc-tool-row {
  height:auto; min-height:40px; max-height:none; flex-wrap:nowrap;
  overflow-x:auto; overflow-y:hidden; padding:4px 0; box-sizing:border-box;
}
body.dc-subheader-ui #dcSubHeader .quick-filters {
  min-width:0; max-width:100%; flex:0 1 auto; overflow-x:auto; overflow-y:hidden;
  scrollbar-width:thin; padding-top:3px; padding-bottom:3px;
}
body.dc-subheader-ui .dc-tool-row > .search-box #clearSearch {
  width:32px!important; min-width:32px!important; max-width:32px!important;
  height:32px!important; min-height:32px!important; right:0!important;
}
body.dc-subheader-ui .dc-tool-row > .search-box input { padding-right:38px!important; }
body.dc-subheader-ui :is(.account-limit-table-wrapper,.pancake-results,.pancake-summary-grid):focus-visible,
body.dc-subheader-ui .dc-status-icon:focus-visible { outline:2px solid var(--accent); outline-offset:-2px; }

/* Modal content scrolls; Close and Apply never disappear below the viewport. */
body .duf-dialog { padding:0; overflow:hidden; max-height:90dvh; color:var(--text-primary); background:var(--bg-card); border-color:var(--border); }
body .duf-dialog[open] { display:grid; grid-template-rows:auto minmax(0,1fr) auto; }
body .duf-dialog .duf-head { padding:16px 20px; border-bottom:1px solid var(--border); }
body .duf-dialog .duf-body { min-height:0; overflow:auto; padding:0 20px; overscroll-behavior:contain; scroll-padding:12px; }
body .duf-dialog .duf-footer { margin:0; padding:12px 20px; border-top:1px solid var(--border); background:var(--bg-card); }
body .duf-dialog .duf-footer button { font-size:12px; min-height:36px; padding:6px 8px; }
body .duf-dialog .duf-footer button > span { white-space:normal; overflow:visible; }
body .duf-dialog :is(.duf-group,.duf-option-panel,.duf-options summary,.duf-account-panel) { background:var(--bg-card); color:var(--text-primary); border-color:var(--border); }
body .duf-dialog :is(input,select) { color:var(--text-primary); background:var(--bg-input); border-color:var(--border); }
body .duf-dialog .duf-choice-list > :is(button,label):hover,
body .duf-dialog .duf-choice-list > button[aria-pressed=true],
body .duf-dialog .duf-choice-list > label:has(input:checked) { background:var(--bg-hover); color:var(--text-primary); }
body .duf-dialog .duf-value-chip { background:var(--bg-hover); color:var(--accent-text); }
body .duf-dialog .duf-no-options { color:var(--text-secondary); }
body .duf-dialog :is(#nameMetaAccountSummary,#dateBudgetAccountSummary) { background:#1d4ed8!important; color:#fff!important; }
body .duf-dialog :is(#nameMetaAccountSummary,#dateBudgetAccountSummary) :is(small,.dc-control-label) { color:#fff!important; }
body .duf-dialog :is(#dateBudgetAccountsDropdown,#nameMetaAccountsDropdown) .duf-account-panel .meta-account-main { color:var(--text-primary); }
@media(max-width:720px) {
  body.dc-subheader-ui #dcSubHeader > .dc-tool-row { flex-wrap:wrap; overflow:visible; gap:6px; }
  body.dc-subheader-ui #dcSubHeader .quick-filters { flex:1 1 100%; width:100%; padding-left:0; border-left:0; }
  body.dc-subheader-ui #dcSubHeader .search-box { min-width:0; max-width:100%; }
  body .duf-dialog .duf-head,body .duf-dialog .duf-footer { padding:10px 12px; }
  body .duf-dialog .duf-body { padding:0 12px; }
  body .duf-dialog .duf-head h2 { font-size:18px; }
}
@media(pointer:coarse) {
  body.dc-subheader-ui #dcSubHeader > .dc-tool-row > button { min-height:44px!important; height:44px!important; max-height:none; }
  body.dc-subheader-ui .dc-tool-row > .search-box #clearSearch { min-width:44px!important; max-width:44px!important; width:44px!important; }
  body.dc-subheader-ui .dc-tool-row > .search-box input { padding-right:48px!important; }
}
