/* Shared typography only; column dimensions remain owned by each table. */
:root { --table-body-size: 12px; --table-header-size: 13px; }
body table { font-family: Inter, "Noto Sans SC", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif; font-size: 12px !important; font-weight: 400; }
body table td :is(span, a, small, label, p, div):not(.material-symbols-outlined):not(.material-icons) { font-size: 12px !important; }
body table th, body table th button:not(.material-symbols-outlined) {
  font-family: inherit; font-size: var(--table-header-size) !important;
  font-weight: 500 !important; line-height: 20px; letter-spacing: 0 !important; text-transform: none !important;
}
body table td, body table td small, body table td .chip, body table td .cell-sub,
body table td input:not([type="checkbox"]), body table td textarea,
body table td button:not(.material-symbols-outlined), body .custom-select-option,
body .custom-select-trigger, body .custom-select-button, body .select-trigger, body .select-menu button, body input:not([type="checkbox"]):not([type="radio"]), body textarea {
  font-size: var(--table-body-size) !important; font-weight: 400; line-height: 20px; letter-spacing: 0;
}
body table td b, body table td .campaign b, body table td .cell-main, body table td strong,
body table td .perf-link { font-size: var(--table-body-size) !important; font-weight: 500 !important; }
table[data-table-system] th { position: relative; }
.table-wrap:has(> table[data-table-system]), .table-scroll:has(> table[data-table-system]) { position: relative; min-width: 0; max-width: 100%; }
table[data-table-system] td { overflow-wrap: anywhere; }
table[data-table-system] td .inline-editor, table[data-table-system] td .custom-select { min-width: 0; max-width: 100%; }
.table-sort { display: inline-flex; align-items: center; gap: 5px; padding: 0 12px 0 0; border: 0; background: transparent; color: inherit; cursor: pointer; text-align: left; max-width: 100%; }
.table-sort::after { content: "↕"; flex: none; font-size: 12px; color: #8691a5; }
th[aria-sort="ascending"] > .table-sort::after { content: "↑"; color: #245de8; }
th[aria-sort="descending"] > .table-sort::after { content: "↓"; color: #245de8; }
.table-resize { position: absolute; inset: 0 -3px 0 auto; width: 8px; cursor: col-resize; z-index: 2; touch-action: none; }
body table .table-resize, body table .col-resize-handle {
  background: transparent !important; outline: none !important; border: 0 !important; box-shadow: none !important;
}
body table .table-resize::after, body table .col-resize-handle::after {
  content: ""; position: absolute; top: 8px; bottom: 8px; left: 50%; width: 1px;
  transform: translateX(-50%); background: transparent; pointer-events: none;
}
body table .table-resize:hover::after, body table .col-resize-handle:hover::after { background: #8b9dbb; }
body table .table-resize:focus-visible::after, body table .table-resize.is-resizing::after,
body table .col-resize-handle:focus-visible::after, body table .col-resize-handle.active::after {
  width: 2px; background: #4477cc;
}
.table-pager { display: flex; align-items: center; flex-wrap: wrap; gap: 10px; padding: 12px 16px; border-top: 1px solid #e5e9f0; font-size: 12px; min-height: 60px; }
.table-pager > [role="status"] { margin-right: auto; }
.table-pager button { min-height: 32px; padding: 5px 10px; border: 1px solid #dce1eb; background: #fff; color: #25344a; border-radius: 6px; font: inherit; cursor: pointer; }
.table-pager button:disabled { opacity: .45; cursor: default; }
.table-page-size { display: flex; gap: 3px; }
.table-page-size button[aria-pressed="true"] { background: #edf3ff; border-color: #7198ef; color: #245de8; }
.table-pager .table-icon { width: 32px; padding: 0; }
.table-pager .material-symbols-outlined { font-size: 18px; vertical-align: middle; }
.table-select-cell { position: relative; padding-left: 36px !important; }
.table-row-select, .table-select-page { position: absolute; left: 12px; top: 50%; transform: translateY(-50%); margin: 0; accent-color: #2865df; }
.table-confirm { width: 420px; max-width: calc(100vw - 32px); border: 1px solid #dce1eb; border-radius: 8px; padding: 24px; color: #25344a; }
.table-confirm::backdrop { background: #10182866; }
.table-confirm h2 { font-size: 16px; line-height: 24px; margin: 0 0 12px; }
.table-confirm p { font-size: 13px; line-height: 22px; }
.table-confirm button { border: 1px solid #dce1eb; border-radius: 6px; background: #fff; padding: 8px 16px; margin-right: 8px; cursor: pointer; }
.table-confirm button:last-child { background: #2865df; color: #fff; }
.table-custom-select { position: relative; display: inline-block; max-width: 100%; }
.table-select-trigger { width: 100%; min-height: 36px; text-align: left; padding: 7px 28px 7px 10px; border: 1px solid #dce1eb; background: #fff; border-radius: 6px; font: 400 12px/20px Inter, "Noto Sans SC", sans-serif; cursor: pointer; }
.table-select-trigger::after { content: "⌄"; position: absolute; right: 10px; }
.table-select-menu { position: absolute; top: calc(100% + 4px); left: 0; min-width: 100%; max-height: 240px; overflow: auto; padding: 4px; border: 1px solid #dce1eb; border-radius: 6px; background: #fff; z-index: 50; box-shadow: 0 6px 18px #10204018; }
.table-select-menu button { display: block; width: 100%; padding: 7px 10px; white-space: nowrap; border: 0; background: #fff; text-align: left; font: 400 12px/20px Inter, "Noto Sans SC", sans-serif; cursor: pointer; }
.table-select-menu button:hover, .table-select-menu button:focus-visible, .table-select-menu button[aria-selected="true"] { background: #edf3ff; }
@media (max-width: 600px) { .table-pager { padding: 12px; gap: 8px; } .table-pager > [role="status"] { flex-basis: 100%; } }
