/* Canonical platform list and header presentation. Page files own columns and
   domain-specific controls only. Both HTML tables and virtual/grid rows use it. */
.app .content-body .frame.platform-directory {
 --directory-gutter:24px; --directory-cell-x:12px; --directory-cell-y:14px;
 --directory-font:13px; --directory-small:11px; --directory-columns-height:42px;
 --directory-border:var(--layoutBorderColor); --directory-muted:var(--subColor);
 --directory-stripe:var(--rowAlternateBackground,#00000029);
 --directory-hover:var(--rowHighlightBackground,color-mix(in srgb,var(--foreColor) 6%,transparent));
 --layoutFirstColumnIndent:var(--directory-gutter);
 color:var(--foreColor); min-width:0; min-height:0;
}
.app .content-body .frame.platform-directory [hidden] {display:none!important;}
.app .content-body .frame.platform-directory>.frame-main {display:flex;flex:1;flex-direction:column;min-width:0;min-height:0;}
.app .content-body .frame.platform-directory .directory-scroll {min-width:0;min-height:0;flex:1;overflow:auto;scrollbar-gutter:stable;overscroll-behavior:contain;}
/* Nested table surfaces must not intercept sticky positioning. Only the
   directory-scroll wrapper owns scrolling; legacy .table adds overflow:auto. */
.app .content-body .frame.platform-directory .directory-scroll .list.table:has(> .directory-table) {height:auto;overflow:visible;flex:none;}
.app .content-body .frame.platform-directory .frame-main .directory-table {display:table;width:100%;height:auto;min-height:0;overflow:visible;border-collapse:collapse;border-spacing:0;flex:none;}
.app .content-body .frame.platform-directory .frame-main .directory-table tbody {display:table-row-group;height:auto;overflow:visible;}
.app .content-body .frame.platform-directory .frame-main .directory-table tbody::after {content:none;display:none;}
.app .content-body .frame.platform-directory .frame-main .directory-table :is(td,th) {box-sizing:border-box;border:0;border-bottom:var(--layoutBorderWidth) solid var(--layoutBorderColor);background:transparent;font-size:var(--directory-font);line-height:1.5;vertical-align:middle;padding:var(--directory-cell-y) var(--directory-cell-x);font-weight:400;}
/* Legacy tables used !important for edge indents. Keep that reset in one place. */
.app .content-body .frame.platform-directory .frame-main .directory-table :is(td,th):first-child {padding-left:var(--directory-gutter)!important;}
.app .content-body .frame.platform-directory .frame-main .directory-table :is(td,th):last-child {padding-right:var(--directory-gutter)!important;}
.app .content-body .frame.platform-directory .frame-main .directory-table .thead th {height:var(--directory-columns-height);padding-block:0;font-size:var(--directory-small);font-weight:400;line-height:1.5;color:var(--directory-muted);background:var(--frameBackground,var(--moduleBackground));white-space:nowrap;border-bottom:var(--layoutBorderWidth,1px) solid var(--directory-border);position:sticky;top:0;z-index:2;}
.app .content-body .frame.platform-directory .frame-main .directory-table .directory-row {height:auto;border:0;background:transparent;color:var(--foreColor);font-size:var(--directory-font);font-weight:400;}
.app .content-body .frame.platform-directory .frame-main .directory-table .directory-row:nth-child(odd of :where(.directory-row)) {background:var(--directory-stripe);}
.app .content-body .frame.platform-directory .frame-main .directory-table .directory-row:hover {background:var(--directory-hover);}
.app .content-body .frame.platform-directory .frame-main .directory-table .directory-row:is(.active,.selected) {background:var(--activeItemBackground);}
.app .content-body .frame.platform-directory .frame-main .directory-table .no-items :is(h2,h3) {font-size:var(--directory-font);font-weight:400;color:var(--subColor);margin:20px 0;}
.app .content-body .frame.platform-directory .frame-main .directory-table.loading:has(.directory-row) {opacity:1;}
/* The column headings and row grid are vertical siblings. Legacy .table-list
   flex layout can otherwise put the entire grid to the right of its headings. */
.app .content-body .frame.platform-directory .frame-main .list.table:has(>.directory-columns):has(>.directory-grid) {display:block;}
.app .content-body .frame.platform-directory .frame-main .directory-grid {display:block;width:100%;height:auto;min-height:0;min-width:var(--directory-min-width,800px);flex:none;gap:0;padding:0;margin:0;}
.app .content-body .frame.platform-directory .frame-main .directory-grid>.directory-row,
.app .content-body .frame.platform-directory .frame-main .directory-columns {display:grid;grid-template-columns:var(--directory-columns,var(--automation-columns));align-items:center;gap:24px;box-sizing:border-box;width:100%;min-width:var(--directory-min-width,800px);height:auto;max-height:none;min-height:56px;flex:none;align-self:stretch;padding:var(--directory-cell-y) var(--directory-gutter);margin:0;border:0;border-bottom:var(--layoutBorderWidth) solid var(--layoutBorderColor);border-radius:0;background:transparent;color:var(--foreColor);font-size:var(--directory-font);font-weight:400;line-height:1.5;text-align:left;text-decoration:none;}
.app .content-body .frame.platform-directory .frame-main .directory-columns {position:sticky;top:0;z-index:2;height:var(--directory-columns-height);min-height:var(--directory-columns-height);padding-block:0;color:var(--directory-muted);font-size:var(--directory-small);background:var(--frameBackground,var(--moduleBackground));border-bottom:var(--layoutBorderWidth,1px) solid var(--directory-border);}
.app .content-body .frame.platform-directory .frame-main .directory-grid>.directory-row:nth-child(odd of :where(.directory-row)) {background:var(--directory-stripe);}
.app .content-body .frame.platform-directory .frame-main .directory-grid>.directory-row:hover {background:var(--directory-hover);}
.app .content-body .frame.platform-directory .frame-main .directory-grid>.directory-row :is(.automation-title,.sequence-list-name strong) {font-size:var(--directory-font);font-weight:500;line-height:1.5;}
.app .content-body .frame.platform-directory .frame-main .directory-grid>.directory-row :is(small,.automation-event-label,.automation-subtitle) {display:block;font-size:var(--directory-small);line-height:1.5;color:var(--directory-muted);margin-top:3px;}
.app .content-body .frame.platform-directory .frame-main .directory-grid>.directory-row :is(.automation-last-sent,.automation-schedule,.automation-health,.automation-approval,.automation-trigger,.automation-messages,.automation-activity) {font-size:var(--directory-font);line-height:1.5;}
/* Inline spans do not establish an ellipsis box. Keep Trigger/Audience text
   inside its grid cell, including when the shared label layout is block. */
.app .content-body .frame.platform-directory .frame-main .directory-grid>.directory-row .automation-event-text {display:block;flex:1;min-width:0;width:100%;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.app .content-body .frame.platform-directory :is(.directory-sort,[data-message-sort],[data-automation-sort],[data-channel-sort],[data-metrc-sort]) {display:inline-flex;align-items:center;gap:6px;max-width:100%;border:0;padding:0;background:transparent;color:inherit;font:inherit;text-align:inherit;cursor:pointer;white-space:nowrap;}
/* Keep small currentColor carets inline, including hover/press states. */
.app .content-body .frame.platform-directory .directory-sort::after,
.app .content-body .frame .directory-sort-indicator {content:none;display:none;position:static;inset:auto;transform:none;order:1;align-self:center;flex:none;width:0;height:0;margin:0;padding:0;border:0;border-left:3px solid transparent;border-right:3px solid transparent;border-radius:0;background:none;box-shadow:none;color:inherit;opacity:1;z-index:auto;pointer-events:none;transition:none;}
.app .content-body .frame.platform-directory [aria-sort=ascending]>.directory-sort::after,
.app .content-body .frame.platform-directory .directory-sort[aria-sort=ascending]::after,
.app .content-body .frame [aria-sort=ascending]>.directory-sort-indicator {content:'';display:inline-block;border-bottom:4px solid currentColor;}
.app .content-body .frame.platform-directory [aria-sort=descending]>.directory-sort::after,
.app .content-body .frame.platform-directory .directory-sort[aria-sort=descending]::after,
.app .content-body .frame [aria-sort=descending]>.directory-sort-indicator {content:'';display:inline-block;border-top:4px solid currentColor;}
.app .content-body .frame .directory-sort-indicator {margin-left:6px;vertical-align:middle;}
.app .content-body .frame.platform-directory :is(.directory-sort,:is([tab-for],.directory-tab),[data-directory-link-row],.directory-row,a,button):focus-visible {outline:2px solid var(--activeLabelColor,#8e9afd);outline-offset:-2px;}
.app .content-body .frame.platform-directory [data-directory-link-row] {cursor:pointer;}
.app .content-body .frame.platform-directory .directory-notice {margin:0;padding:12px var(--directory-gutter);color:var(--subColor);font-size:var(--directory-font);line-height:1.5;}
.app .content-body .frame.platform-directory .directory-notice.is-error {color:var(--failedColor,#f34f52);}
.app .content-body .frame.platform-directory .directory-empty {padding:48px var(--directory-gutter);margin:auto;max-width:540px;text-align:center;}
.app .content-body .frame.platform-directory .directory-empty h2 {font-size:16px;font-weight:500;}
.app .content-body .frame.platform-directory .directory-empty p {font-size:var(--directory-font);line-height:1.6;color:var(--subColor);}
@media(max-width:1023px) {
 .app .content-body .frame.platform-directory {--directory-gutter:16px;}
}
/* Only column definitions belong to page-specific layout. */
.app .content-body .frame.platform-directory.messages-frame {--directory-min-width:1200px;--directory-columns:145px 140px 140px minmax(200px,1fr) 55px 85px 100px 45px 45px 60px;}
.app .content-body .frame.platform-directory.agents-frame {--directory-min-width:1040px;}
.app .content-body .frame.platform-directory .directory-sort>i {display:none;}
.app .content-body .frame.platform-directory .frame-main .directory-table .directory-row :is(strong,a,span) {font-size:inherit;line-height:inherit;}
.app .content-body .frame.platform-directory .frame-main .directory-table .directory-row :is(.crm-row-meta,.crm-row-meta span) {font-size:var(--directory-small);color:var(--directory-muted);}
.app .content-body .frame.platform-directory .frame-main .directory-table .directory-row :is(.template-thumbnail,.crm-row-avatar) {max-width:40px;max-height:40px;}
.app .content-body .frame.platform-directory .frame-main .directory-table .directory-row .crm-row-avatar {width:36px;height:36px;}
.app .content-body .frame.platform-directory .frame-main .directory-columns>button {font:inherit;color:inherit;}
.app .content-body .frame.platform-directory .frame-main .directory-grid>.directory-row>:is(div,span,time) {min-width:0;}
.app .content-body .frame.platform-directory .frame-main .directory-grid>.directory-row.automation-row {max-width:none;}
.app .content-body .frame.platform-directory .frame-main .directory-grid>.directory-row.automation-row .automation-title {font-size:var(--directory-font);font-weight:500;}
.app .content-body .frame.platform-directory .frame-main .directory-grid>.directory-row.messages-directory-row {border-radius:0;text-transform:none;cursor:pointer;}
/* Product grids retain their configurable/pinned columns and tree structure,
   while using the same type scale, gutters, header and interaction colors. */
.app .content-body .frame.platform-directory .metrc-products[data-blp-app] {--ui-body:var(--directory-font);--ui-small:var(--directory-small);--ui-font:inherit;--ui-space-6:var(--directory-gutter);}
.app .content-body .frame.platform-directory .metrc-products[data-blp-app] .blp-app__product-row {font-size:var(--directory-font);min-height:56px;padding-block:var(--directory-cell-y);padding-inline:var(--directory-gutter);--metrc-product-row-tint:transparent;}
.app .content-body .frame.platform-directory .metrc-products[data-blp-app] .blp-app__product-row--item:nth-child(odd of :where(.blp-app__product-row--item)) {--metrc-product-row-tint:var(--directory-stripe);}
.app .content-body .frame.platform-directory .metrc-products[data-blp-app] .blp-app__product-row:hover {--metrc-product-row-tint:var(--directory-hover);}
.app .content-body .frame.platform-directory .metrc-products[data-blp-app] .blp-app__product-row:has(input:checked) {--metrc-product-row-tint:var(--activeItemBackground);}
.app .content-body .frame.platform-directory .metrc-products[data-blp-app] .blp-app__product-columns {box-sizing:border-box;height:var(--directory-columns-height);min-height:var(--directory-columns-height);padding:0 var(--directory-gutter);border:0;border-bottom:var(--layoutBorderWidth) solid var(--layoutBorderColor);font-size:var(--directory-small);line-height:1.5;font-weight:400;color:var(--directory-muted);backdrop-filter:none;}
.app .content-body .frame.platform-directory .metrc-products[data-blp-app] .blp-app__product-row>:is(.blp-product-check,[data-product-column="actions"]) {margin-block:calc(-1 * var(--directory-cell-y));}
.app .content-body .frame.platform-directory .metrc-products[data-blp-app] .blp-product-check {left:var(--directory-gutter);}
.app .content-body .frame.platform-directory .metrc-products[data-blp-app] .blp-product-check::before {left:calc(-1 * var(--directory-gutter));}

.app .content-body .frame.platform-directory .frame-main .directory-grid>.automation-event-group {padding-inline:var(--directory-gutter);font-size:var(--directory-font);}

/* These are shared column headers, including the product grid's pinned cells. */
.app .content-body .frame.platform-directory .frame-main :is(.directory-columns,.blp-app__product-columns)>:is(button,a,span,label) {box-sizing:border-box;margin-block:0;min-height:0;line-height:1.5;}
.app .content-body .frame.platform-directory .frame-main .blp-app__product-columns>.blp-product-check {height:100%;}
.app .content-body .frame.platform-directory .frame-main .blp-app__product-columns>.blp-product-actions-heading {padding-block:0;}
/* Grid selection has the same precedence as table selection, after hover. */
.app .content-body .frame.platform-directory .frame-main .directory-grid>.directory-row:is(.active,.selected) {background:var(--activeItemBackground);}
